[
  {
    "path": "COPYING",
    "content": "PicoLisp Copyright (c) Software Lab. Alexander Burger\n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be included\nin all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\nOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n"
  },
  {
    "path": "INSTALL",
    "content": "# 23jan26 Software Lab. Alexander Burger\n\n\n         PicoLisp Installation\n         =====================\n\n\nPicoLisp needs a POSIX compatible system and the LLVM infrastructure. It\nsupports two installation strategies: Local and Global.\n\nFor a global installation, allowing system-wide access to the executable\nand library/documentation files, you can either install it from a\nready-made distribution, or set some symbolic links to one of the local\ninstallation directories as described below.\n\nNote that you are still free to have local installations along with a\nglobal installation, and invoke them explicitly as desired.\n\n\n      Local Installation\n      ------------------\n\nThe following instructions work on Debian Linux. They should be similar\non other systems (for e.g. MacOS see src/Makefile.macos).\n\n1. Install required packages\n\n   $ sudo apt install binutils make clang llvm libreadline-dev libffi-dev libssl-dev pkg-config\n\n2. Unpack the tarball\n\n   $ wget https://software-lab.de/pil21.tgz\n   $ tar xfz pil21.tgz\n\n3. Change the directory\n\n   $ cd pil21\n\n4. Compile the PicoLisp interpreter\n\n   $ (cd src; make)\n\n\n      Global Installation\n      -------------------\n\nThe recommended way for a global installation is to use a picolisp\npackage from the OS distribution.\n\nIf that is not available, you can (as root) create symbolic links from\n/usr/lib and /usr/bin to a local installation directory:\n\n   # ln -s /<path>/pil21 /usr/lib/picolisp\n   # ln -s /usr/lib/picolisp/bin/picolisp /usr/bin\n   # ln -s /usr/lib/picolisp/bin/pil /usr/bin\n\nFor additional access to the man pages, utilities and bash completion:\n\n   # ln -s /<path>/pil21/man/man1/picolisp.1 /usr/share/man/man1\n   # ln -s /<path>/pil21/man/man1/pil.1 /usr/share/man/man1\n   # ln -s /<path>/pil21 /usr/share/picolisp\n   # ln -s /<path>/pil21/lib/bash_completion /usr/share/bash-completion/completions/pil\n\n\n      Invocation\n      ----------\n\nIn a global installation, the 'pil' command should be used. You can\neither start in plain or in debug mode. The difference is that for debug\nmode the command is followed by single plus ('+') sign. The '+' must be\nthe very last argument on the command line.\n\n   $ pil       # Plain mode\n   :\n\n   $ pil +     # Debug mode\n   :\n\nIn both cases, the colon ':' is PicoLisp's prompt. You may enter some\nLisp expression,\n\n   : (+ 1 2 3)\n   -> 6\n\nTo exit the interpreter, enter\n\n   : (bye)\n\nor just type Ctrl-D.\n\n\nFor a local invocation, specify a path name, e.g.\n\n   $ ./pil     # Plain mode\n   :\n\n   $ ./pil +   # Debug mode\n   :\n\nor\n\n   $ /home/app/pil  # Invoking a local installation from some other directory\n\nNote that 'pil' can also serve as a template for your own stand-alone\nscripts.\n\n\n      Documentation\n      -------------\n\nFor further information, please look at \"doc/index.html\". There you find\nthe PicoLisp Reference Manual (\"doc/ref.html\"), the PicoLisp tutorial\n(\"doc/tut.html\"), and the frequently asked questions (\"doc/faq.html\").\n\nAs always, the most accurate and complete documentation is the source\ncode ;-)\n\nAny feedback is welcome!\nHope you enjoy :-)\n\n--------------------------------------------------------------------------------\n\n   Alexander Burger\n   Software Lab. / 7fach GmbH\n   Bahnhofstr. 24a, D-86462 Langweid\n   abu@software-lab.de, https://www.software-lab.de, +49 8230 5060\n"
  },
  {
    "path": "README",
    "content": "# 05nov25 Software Lab. Alexander Burger\n\n                                                  Perfection is attained\n                                   not when there is nothing left to add\n                             but when there is nothing left to take away\n                                              (Antoine de Saint-Exupery)\n\n      The PicoLisp System\n      ===================\n\n      _PI_co Lisp is not _CO_mmon Lisp\n\nPicoLisp can be viewed from two different aspects: As a general purpose\nprogramming language, and a dedicated application server framework.\n\n\n(1) As a programming language, PicoLisp provides a 1-to-1 mapping of a\nclean and powerful Lisp derivate, to a simple and efficient virtual\nmachine. It supports persistent objects as a first class data type,\nresulting in a database system of Entity/Relation classes and a\nProlog-like query language tightly integrated into the system.\n\nThe virtual machine was designed to be\n\n   Simple\n      The internal data structure should be as simple as possible. Only\n      one single data structure is used to build all higher level\n      constructs.\n   Unlimited\n      There are no limits imposed upon the language due to limitations\n      of the virtual machine architecture. That is, there is no upper\n      bound in symbol name length, number digit counts, or data\n      structure and buffer sizes, except for the total memory size of\n      the host machine.\n   Dynamic\n      Behavior should be as dynamic as possible (\"run\"-time vs.\n      \"compile\"-time). All decisions are delayed till runtime where\n      possible. This involves matters like memory management, dynamic\n      symbol binding, and late method binding.\n   Practical\n      PicoLisp is not just a toy of theoretical value. PicoLisp is used\n      since 1988 in actual application development, research and\n      production.\n\nThe language inherits the major advantages of classical Lisp systems\nlike\n\n   * Dynamic data types and structures\n   * Formal equivalence of code and data\n   * Functional programming style\n   * An interactive environment\n\nPicoLisp is very different from any other Lisp dialect. This is partly\ndue to the above design principles, and partly due to its long\ndevelopment history since 1984.\n\nYou can download the latest release version at\n\n   https://software-lab.de/pil21.tgz\n\n\n(2) As an application server framework, PicoLisp provides for\n\n   NoSQL Database Management\n      Index trees\n      Object local indexes\n      Entity/Relation classes\n      Pilog (PicoLisp Prolog) queries\n      Multi-user synchronization\n      DB Garbage collection\n      Journaling, Replication\n   User Interface\n      Browser GUI\n      (X)HTML/CSS\n      XMLHttpRequest/JavaScript\n   Application Server\n      Process management\n      Process family communication\n      XML I/O\n      Import/export\n      User administration\n      Internationalization\n      Security\n      Object linkage\n      Postscript/Printing\n\nPicoLisp is not an IDE. All program development in Software Lab. is done\nusing the console, bash, vip (vi-style editor) and the Lisp interpreter.\n\nThe only type of GUI supported for applications is through a browser via\nHTML. This makes the client side completely platform independent. The\nGUI is created dynamically. Though it uses JavaScript and XMLHttpRequest\nfor speed improvements, it is fully functional also without JavaScript\nor CSS.\n\nThe GUI is deeply integrated with - and generated dynamically from - the\napplication's data model. Because the application logic runs on the\nserver, multiple users can view and modify the same database object\nwithout conflicts, everyone seeing changes done by other users on her\nscreen immediately due to the internal process and database\nsynchronization.\n\nPicoLisp is free software, and you are welcome to use and redistribute\nit under the conditions of the MIT/X11 License (see \"COPYING\").\n\nIt is based on LLVM and compiles and runs on any 64-bit POSIX system.\n\n--------------------------------------------------------------------------------\n\n   Alexander Burger\n   Software Lab. / 7fach GmbH\n   Bahnhofstr. 24a, D-86462 Langweid\n   abu@software-lab.de, http://www.software-lab.de\n"
  },
  {
    "path": "bin/pil",
    "content": "#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n(load \"@lib/net.l\" \"@lib/misc.l\" \"@lib/btree.l\" \"@lib/db.l\" \"@lib/pilog.l\")\n\n`*Dbg\n(docs \"@doc/\")\n"
  },
  {
    "path": "bin/psh",
    "content": "#!/usr/bin/pil\n# 06aug24 Software Lab. Alexander Burger\n\n(load \"@lib/net.l\" \"@lib/misc.l\" \"@lib/http.l\")\n\n(let Arg (opt)\n   (client \"localhost\"\n      (or\n         (format Arg)\n         (client \"localhost\" 80 (pack Arg \"/!psh\") (read)) )\n      (pack (opt) \"!psh?\"\n         (pw) \"&\"\n         (in '(\"tty\") (line T)) \"&\"\n         (sys \"TERM\") )\n      (ctty (read))\n      (line)\n      (line) ) )\n(bye)\n"
  },
  {
    "path": "bin/pty",
    "content": "#!/usr/bin/pil\n# 05jul24abu\n# Pseudo Terminal (PilBox)\n# pty [host] [flg]\n\n(load \"@lib/term.l\")\n\n(setq\n   *Host (or (opt) \"localhost\")\n   *Port 8081 )  # Sync with ~/Port in PilBox\n\n(unless (setq *Sock (connect *Host (inc *Port)))\n   (bye) )\n\n(out *Sock\n   (in \"~/.pty\" (echo))  # Sync with ~/.pty in PilBox\n   (prinl) )\n(in *Sock (rd 2))  # Skip \"\\r\\n\"\n\n(finish (prinl))\n\n(de sendCmd @\n   (udp *Host `(inc *Port)\n      (cons (in \"~/.pty\" (line T)) (rest)) ) )\n\n(unless (opt)\n   (task (port (+ *Port 2))\n      (let? S (accept @)\n         (catch '(NIL)\n            (in S\n               (when (= (rd) (in \"~/.pty\" (line T)))\n                  (let Z (tmp \"pty.zip\")\n                     (casq (rd)\n                        (+\n                           (apply call (rd) \"zip\" \"-r\" Z)\n                           (in Z (out S (echo))) )\n                        (-\n                           (out Z (echo))\n                           (call \"unzip\" \"-o\" Z) ) ) ) ) )\n            (off *Msg) )\n         (close S)\n         (and *Msg (prinl @)) ) ) )\n\n(when (getTerm)\n   (sendCmd\n      (cons 'setTerm (sys \"TERM\") @)\n      '(off *Err) )\n   (de *Winch\n      (sendCmd (cons 'setTerm (sys \"TERM\") (getTerm))) ) )\n\n(raw T)\n(call \"stty\" \"intr\" NIL)\n\n(task *Sock\n   (in @\n      (ifn (rd 1)\n         (bye)\n         (wr @)\n         (flush) ) ) )\n\n(loop\n   (and (key) (out *Sock (prin @))) )\n"
  },
  {
    "path": "bin/vip",
    "content": "#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n# 30apr26abu\n\n(unless *Dbg\n   (load \"@lib/vip.l\") )\n\n(stack 1024)\n\n(bye\n   (if\n      (vip~vi  ## [+<pat> | +[<num>]] <file1>  [+[<num>]] <file2> ..\n         (make\n            (while (opt)\n               (let (S @  L (chop S))\n                  (cond\n                     ((pre? \"+\" S)\n                        (link\n                           (cond\n                              ((format S) (cons @ (opt)))\n                              ((= \"+\" S) (cons T (opt)))\n                              ((get (any (cdr L)) '*Dbg 1)\n                                 (symbols (cddr @))\n                                 (cons (car @) (cadr @)) )\n                              (T (cons (cdr L) (opt))) ) ) )\n                     ((pre? \"-\" S) (load S))\n                     (T (link S)) ) ) ) ) )\n      0\n      1 ) )\n"
  },
  {
    "path": "bin/watchdog",
    "content": "#!/usr/bin/pil\n# 13apr23 Software Lab. Alexander Burger\n# Use: bin/watchdog <host> <port> <from> <to1> <to2> ..\n\n(load \"@lib/misc.l\")\n\n# *MailHost *MailPort *MailFrom *MailTo *Watch\n\n(argv *MailHost *MailPort *MailFrom .  *MailTo)\n(setq *MailPort (format *MailPort))\n\n(unless (call 'test \"-p\" \"fifo/beat\")\n   (call 'mkdir \"-p\" \"fifo\")\n   (call 'rm \"-f\" \"fifo/beat\")\n   (call 'mkfifo \"fifo/beat\") )\n\n(finish (call 'rm \"fifo/beat\"))\n\n(de *Err\n   (prin (stamp))\n   (space)\n   (println *Watch) )\n\n(task (open \"fifo/beat\")\n   (in @\n      (let X (rd)\n         (cond\n            ((not X) (bye))\n            ((num? X)\n               (let? W (assoc X *Watch)\n                  (when (caddr W)\n                     (msg (car W) \" \" (stamp) \" bye\") )\n                  (del W '*Watch) ) )\n            ((atom X)  # bin/picolisp -\"out 'fifo/beat (pr '$(tty))\" -bye\n               (let D (+ (* 86400 (date T)) (time T))\n                  (out X\n                     (for W *Watch\n                        (prinl\n                           (align 7 (car W))\n                           \" \"\n                           (- (cadr W) D)\n                           \" \"\n                           (or (caddr W) \"o\")\n                           \" \"\n                           (cdddr W) ) ) ) ) )\n            ((assoc (car X) *Watch)    # X = (Pid Tim . Any)\n               (let W @                # W = (Pid Tim Flg . Any)\n                  (when (caddr W)\n                     (msg (car W) \" \" (stamp) \" resumed\") )\n                  (set (cdr W) (cadr X))\n                  (set (cddr W))\n                  (con (cddr W) (or (cddr X) (cdddr W))) ) )\n            (T (push '*Watch (list (car X) (cadr X) NIL (cddr X)))) ) ) ) )\n\n(task -54321 54321\n   (let D (+ (* 86400 (date T)) (time T))\n      (for W *Watch\n         (cond\n            ((>= (cadr W) D))\n            ((caddr W)\n               (msg (car W) \" \" (stamp)\n                  (if (kill (car W) 15) \" killed\" \" gone\") )\n               (del W '*Watch) )\n            (T\n               (inc (cdr W) 3600)\n               (set (cddr W) T)\n               (let Sub (pack \"Timeout \" (car W) \" \" (cdddr W))\n                  (msg (car W) \" \" (stamp))\n                  (unless (mail *MailHost *MailPort *MailFrom *MailTo Sub)\n                     (msg (cons Sub *MailTo) \" mail failed \" (stamp)) ) ) ) ) ) ) )\n\n(wait)\n"
  },
  {
    "path": "doc/ChangeLog",
    "content": "26.4.30\n   Re-introduce 'any' (for '+<ns~sym>' arguments)\n      bin/vip\n\n26.4.24\n   Check 'format' before 'get' (Bruno)\n      bin/vip\n\n26.4.12\n   Bug in 'aux' for hooks (Andreas Rüegger)\n      lib/db.l\n\n26.4.5\n   Use level 2 in 'not' rule\n      lib/pilog.l\n\n26.4.4\n   ESC terminates '?'\n      doc/ref.html\n\n26.3.31\n   Call 'dbFetch' also in 'prove'\n      src/subr.l\n\n26.3.29\n   Minor comma\n      doc/refP.html\n\n####### 26.3 #######\n26.3.26\n   Remove \".\" after content and show whole week\n      lib/vip/cal.rc.l\n\n26.3.21\n   'for' takes 'cnt', not 'num'\n      doc/refF.html\n\n26.3.17\n   Use separate '$InChar' and '$OutChar' instead of '$IoChar'\n      src/glob.l\n      src/io.l\n\n26.3.13\n   Force 'touch *.ll' if bootstrapping\n      src/Makefile\n\n26.2.28\n   Show terminating \".\" after content\n      lib/vip/cal.rc.l\n\n26.2.20\n   Remove '+Init' from radio button in 'bagBag'\n      lib/form.l\n\n26.1.23\n   Fix MacOS build (Mike Pechkin, Andreas Hauser)\n      INSTALL\n      src/Makefile.macos\n\n26.1.19\n   Restore \"Constant Data\" section from 22.5.29\n      doc/native.html\n\n26.1.13\n   'iter>' for '+List' to set '*Iter+'\n      lib/db.l\n   Remove \"lib/android.l\" from distribution (is kept in PilBox)\n\n26.1.12\n   Define PROT_READ, PROT_WRITE, MAP_SHARED and MAP_FAILED\n   Define \"domainSock\" (AF_UNIX domain sockets)\n      src/sysdefs.c\n\n26.1.3\n   GET and POST restriction was removed jul23\n      doc/httpGate.html\n\n26.1.2\n   Fix alphabetic order\n      doc/refC.html\n\n26.1.1\n   Bug in 'dirname' for \"/\"\n      lib/misc.l\n      test/lib/misc.l\n\n####### 25.12 #######\n25.12.21\n   Vip \":cal\" (calendar) command\n      doc/viprc.sample\n   New file\n      lib/vip/cal.rc.l\n\n25.12.14\n   Namespace specification \"ap~\" not needed\n      doc/search.html\n\n25.12.11\n   'scratch' returns buffer\n      lib/vip.l\n\n25.12.9\n   Rename 'shift' to 'shiftN'\n   Refactor 'patMatch' to (search> . +Buffer)\n      lib/vip.l\n   'this' function\n      src/glob.l\n      src/flow.l\n      doc/ref.html\n      doc/refT.html\n      doc/refW.html\n      lib/sq.l\n      lib/vip.l\n      lib/simul.l\n   'keys' function\n      lib/vip.l\n\n25.12.8\n   Support initial key sequence in \"# VIP \" header\n      lib/vip.l\n\n25.12.7\n   Check for buffer-local command mappings\n      lib/vip.l\n\n25.12.6\n   Inherit window methods when split\n   'status>' continued\n   'drawin' function\n      lib/vip.l\n\n25.12.5\n   Fix 'any1' and 'any2' for 'init', 'iter' and 'scan'\n      doc/refI.html\n      doc/refS.html\n   'status>' method for '+Window'\n      lib/vip.l\n\n25.12.4\n   'delBuf' function\n      lib/vip.l\n\n25.12.3\n   Check for buffer-local key mappings\n      lib/vip.l\n\n25.12.1\n   Revert res_init() from 25.11.29\n      src/ssl.c\n\n25.11.30\n   Decode \"%21\", and handle multple header values (Mansur Mamkin)\n      lib/http.l\n\n25.11.29\n   Reinitialize resolver before getaddrinfo()\n      src/ssl.c\n\n25.11.26\n   Pointer casts for bufFloat() and bufDouble()\n      src/main.l\n\n25.11.22\n   Typo\n      loc/RU.l\n\n25.11.21\n   Add (val> . +Swap/R)\n      lib/form.l\n\n25.11.20\n   Handle swap symbol replacement in '+Swap'\n      lib/db.l\n   (val> . +Swp) not needed\n      lib/form.l\n\n25.11.14\n   \"%\" also matches braces \"{\" and \"}\"\n      lib/vip.l\n\n25.11.10\n   Pointer casts for bufFloat() and bufDouble()\n      src/dec.l\n      src/lib.c\n\n25.11.6\n   Optionally start 'lsn' listennig processes\n      src/httpGate.c\n\n25.11.5\n   Remove phone number\n      README\n   Restore 'pkg-config --cflags libffi'\n      src/Makefile\n   Avoid stale 'CliSock' if fork() fails\n      src/httpGate.c\n   Add 'stat' output to 'proc'\n      lib/debug.l\n\n25.11.2\n   New file\n      lib/xxhash.l\n\n25.10.12\n   Set initial alarm to 2 seconds\n      lib/http.l\n\n25.10.10\n   Extend example for 'yield' with 'env' arg\n      doc/refY.html\n\n25.10.8\n   Optional 'prg' argument to 'yield'\n      src/flow.l\n      doc/refY.html\n\n25.10.5\n   Bug in 'U' unsigned integer suppport\n      src/main.l\n   'i64u' type cast\n      src/lib/llvm.l\n\n25.10.1\n   Use just CONTEXT in 'permit'\n      lib/android.l\n\n####### 25.9 #######\n25.9.28\n   Import 'U'\n      lib/reflect.l\n\n25.9.27\n   Support 'U' unsigned integer result specification\n      src/glob.l\n      src/main.l\n      src/pico.h\n      doc/refN.html\n\n25.9.26\n   Default scale 6\n      lib/reflect.l\n\n25.9.25\n   'xCnt64' function\n      src/main.l\n      src/io.l\n\n25.9.20\n   Recurse on nested structures\n   Remove '*Reflect'\n      lib/reflect.l\n\n25.9.19\n   Use 'def' instead of 'set'\n      lib/reflect.l\n\n25.9.17\n   Fix comment for linked libraries\n      soTest.c\n\n25.9.16\n   New file\n      lib/reflect.l\n\n25.9.15\n   Re-arrange evaluation in 'picolisp' to preserve stdout\n      src/main.l\n   Recommend (load) for \"full\" library\n      src/lib/so.l\n\n25.9.13\n   Shared library continued\n      src/Makefile\n      src/main.l\n      soTest.c\n\n25.9.9\n   reflect() function\n      src/lib/ex.l\n      src/lib/so.l\n      src/glob.l\n      src/main.l\n      doc/ref.html\n      doc/refR.html\n   evExe() function\n      src/main.l\n      src/io.l\n      src/apply.l\n\n25.9.7\n   Add comment for \"full\" library\n      src/lib/so.l\n   Use 'parse' in 'picolisp'\n      src/main.l\n\n25.9.6\n   Add interactive line input\n      soTest.c\n   Clean up\n      src/Makefile\n      src/dec.l\n      src/main.l\n      src/lib.so.c\n\n25.9.2\n   New files\n      src/lib.so.c\n      soTest.c\n   'patch' function\n      src/lib/llvm.l\n      src/lib/so.l\n   'exclude' continued\n      src/Makefile\n      src/lib/llvm.l\n      src/lib/ex.l\n      src/lib/so.l\n      src/main.l\n      src/pico.h\n      src/big.l\n      src/subr.l\n\n25.8.28\n   '$StkLimit' related to stack size\n      src/glob.l\n      src/main.l\n      src/flow.l\n   Call ulimStk() to set '$SysStkLimit'\n      src/lib.c\n      lib/ulimit.l\n   Quiche mode\n      src/lib/llvm.l\n      src/gc.l\n      src/sym.l\n      src/db.l\n      src/apply.l\n   'export' never worked!\n      lib.l\n      doc/refE.html\n\n25.8.22\n   'dlfun' instruction\n      src/lib/llvm.l\n      src/main.l\n\n25.8.21\n   'exclude' function\n      src/lib/llvm.l\n      src/lib/ex.l\n      src/lib/so.l\n\n25.8.20\n   '!!' function\n      src/glob.l\n      src/flow.l\n      doc/ref.html\n      doc/ref_.html\n\n25.8.15\n   Save position mark on every move\n      lib/vip.l\n\n25.8.13\n   'stoplisp' function\n      src/main.l\n\n25.8.12\n   Optionally build as shared library\n      src/Makefile\n      src/lib/llvm.l\n      src/dec.l\n      src/main.l\n      src/lib.c\n      src/io.l\n   New files\n      src/lib/ex.l\n      src/lib/so.l\n\n25.7.29\n   Pass 'exe' instead of 'prg' to 'event' and 'wake'\n      lib/simul.l\n      doc/des.html\n\n25.7.28\n   Handle circular lists in 'less'\n      lib.l\n\n25.7.27\n   'sq' function\n      src/glob.l\n      src/big.l\n      test/src/big.l\n      doc/ref.html\n      doc/refS.html\n      doc/ref_.html\n\n25.7.22\n   Use 'tco' in 'gcd'\n      lib/frac.l\n\n25.7.19\n   Remove 'saveCoIO'\n      src/flow.l\n\n25.7.15\n   Allow to stop main coroutine with (co T)\n      src/flow.l\n      doc/refS.html\n\n25.7.5\n   'allowed' must be called before any GUI libs and/or 'allow' calls\n      doc/refA.html\n\n####### 25.6 #######\n25.6.27\n   'recur' signature analog to 'tco'\n      doc/refR.html\n   Return cons pair with hard limit\n      lib/ulimit.l\n\n25.6.26\n   New file\n      lib/ulimit.l\n   Define RLIMIT_STACK, RLIMIT_NOFILE and RLIMIT_NPROC\n      src/sysdefs.c\n\n25.6.17\n  Increase '$GcCount' in 'gc' dynamically\n      src/gc.l\n\n25.6.7\n   Skip comments\n      lib/xm.l\n\n25.6.4\n   Optional 'sub?' start byte position\n      src/dec.l\n      src/main.l\n      src/sym.l\n      test/src/sym.l\n      doc/refS.html\n   'flg' argument to 'group' for pre-grouped lists\n      src/subr.l\n      doc/refG.html\n\n25.5.30\n   New file\n      lib/select.l\n   Deprecate 'db/x' and 'select/3' Pilog predicates, and move to \"lib/select.l\"\n      lib/pilog.l\n      doc/refB.html\n      doc/refD.html\n      doc/refF.html\n      doc/refH.html\n      doc/refI.html\n      doc/refP.html\n      doc/refR.html\n      doc/refS.html\n      doc/refT.html\n      doc/refV.html\n      doc/select.html\n   Deprecate Pilog GUI functions, and move to \"lib/select.l\"\n      lib/form.l\n\n25.5.25\n   'idx' in 'search' also for 'relQs'\n      lib/db.l\n\n25.5.23\n   Optional index argument to 'accu'\n      lib.l\n      test/lib.l\n      doc/refA.html\n   Minor tuning in 'cache' and 'once'\n      lib.l\n\n25.5.22\n   Keep all command lines non-unique but longer than 3 in TAB-completion\n      lib/vip.l\n   Optionally return reversed key-value pairs from 'enum'\n      src/sym.l\n      doc/refE.html\n      test/src/sym.l\n\n25.5.21\n   'min' and 'max' also accept a single list argument\n      src/subr.l\n      test/src/subr.l\n      doc/refM.html\n\n25.5.17\n   Mention '@@' in the 'forall' reference\n      doc/refF.html\n\n25.5.16\n   'sub?' stores substrig byte position in '@@'\n      src/dec.l\n      src/main.l\n      src/sym.l\n      test/src/sym.l\n      doc/refS.html\n\n25.5.11\n   Auto-init in 'inc' and 'dec'\n      src/lib/llvm.l\n      src/big.l\n   Revert to 20 instead of 21 bits from 'hash'\n      src/big.l\n      test/src/big.l\n      doc/refH.html\n\n25.5.10\n   Print times in 'bench' also as [hh:mm]\n      lib/debug.l\n      doc/refB.html\n\n25.5.9\n   Bug in 'attr'\n      lib/xm.l\n\n25.5.8\n   'version' can also check for a required version\n      src/main.l\n      doc/refV.html\n   Optimize 'idx' in 'search' for (+Ref +Link) and '+Joint'\n      lib/db.l\n\n25.5.5\n   New files\n      src/Makefile.openbsd\n      src/Makefile.macos\n\n25.4.24\n   'forall' also accepts an 'init' step structure\n      lib/db.l\n      doc/refF.html\n\n25.4.20\n   Return 21 instead of 20 bits from 'hash'\n      src/big.l\n      test/src/big.l\n      doc/refH.html\n   'idx' in 'search' *after* filtering\n      lib/db.l\n\n25.4.19\n   Bug in 'initSeed' for external symbols\n      src/big.l\n\n25.4.18\n   'X' and 'Prg' in 'forall' private\n      lib/db.l\n\n25.4.17\n   Simplify 'body' and 'attr'\n      lib/xm.l\n\n25.4.14\n   'forall' also accepts a 'search' query structure\n      lib/db.l\n      doc/refF.html\n   'idx' in 'search' only if necessary\n      lib/db.l\n\n25.4.13\n   Avoid catch/throw in 'step'\n      lib/btree.l\n\n25.4.9\n   Add 'rt' to 'pretty'\n      lib.l\n   Return 20 instead of 16 bits from 'hash'\n      src/big.l\n      test/src/big.l\n      doc/refH.html\n   Hash 'idx' in 'search'\n      lib/db.l\n\n25.4.7\n   Support 'prune' also in 'scan' and 'iter'\n      lib/btree.l\n      doc/refP.html\n   Make 'for' on lists more gc-conservative\n      src/flow.l\n\n####### 25.3 #######\n25.3.24\n   Don't skip empty value in 'create' for updates\n   More 'create' tuning\n      lib/db.l\n\n25.3.20\n   'stdEval' must preserve '$At2'\n      src/io.l\n   'rt' function\n      src/glob.l\n      src/main.l\n      doc/ref.html\n      doc/refR.html\n\n25.3.19\n   Remove parallelization with 'later' from 'create'\n      lib/db.l\n\n25.3.13\n   KeyEvent 'keyCode' and 'charCode' are deprecated\n      lib/form.js\n\n25.3.11\n   \"onkeypress\" is deprecated\n      lib/xhtml.l\n\n25.3.9\n   Fix description of 'peek' (does not block, but returns only the next byte)\n      doc/refP.html\n\n25.3.8\n   Scroll page on horizontal touch movements in tables\n      lib/form.js\n   Cosmetics\n      src/io.l\n      lib/form.l\n\n25.3.7\n   Move 'pagehide' handling (back/forward cache) from 'html' to 'form'\n      lib/xhtml.l\n      lib/form.l\n\n25.3.6\n   Remove @lib/tinymce.l from distribution\n\n25.3.2\n   Change type of '$NsLink' from 'i64*' to 'any'\n      src/glob.l\n\n25.2.27\n   Export namespace list from 'repl' via 'T' argument to 'symbols'\n      src/glob.l\n      src/sym.l\n      src/io.l\n      doc/refS.html\n\n25.2.26\n   Typo\n      doc/refI.html\n      doc/refN.html\n   Use 'any' instead of 'intern' for '+<pat>' arguments\n      bin/vip\n\n25.2.21\n   Move cursor left in final left scroll\n      lib/vip.l\n\n25.2.17\n   Scroll two steps with horizontal arrow keys\n      lib/vip.l\n\n25.2.13\n   'tco' continued\n      lib/lint.l\n\n25.2.9\n   'tco' continued\n      src/flow.l\n      lib.l\n      test/src/flow.l\n\n25.2.8\n   'tco' and 'tc' tail call optimization functions\n      src/glob.l\n      src/flow.l\n      doc/ref.html\n      doc/refR.html\n      doc/refT.html\n\n25.2.5\n   'if@@' function\n      src/glob.l\n      src/flow.l\n      test/src/flow.l\n      doc/ref.html\n      doc/refC.html\n      doc/refI.html\n\n25.2.1\n   Missing 'F' argument to 'packJson'\n      lib/json.l\n\n25.1.22\n   Change 'permute' to use a callback function\n      lib/simul.l\n\n25.1.21\n   Postpone first move event for better double-click detection\n      lib/canvas.js\n\n25.1.9\n   Re-introduce \"array\" feature\n      lib/json.l\n\n25.1.5\n   Handle \"^?\"\n      lib/vip.l\n   Read and print decimal unicode in symbol names\n      src/io.l\n      lib.l\n\n25.1.4\n   Wrong examples for 'eval' and 'run' offset\n      doc/refE.html\n      doc/refR.html\n   Fix 'remark'\n      lib.l\n\n####### 24.12 #######\n24.12.30\n   Remove '*SesAdr' check\n      lib/http.l\n      lib/adm.l\n\n24.12.23\n   Automatic lib configuration (Mike Pechkin)\n      src/Makefile\n   Reset form on 'pagehide' event to disable back/forward cache\n      lib/xhtml.l\n\n24.12.22\n   Reduce Cache-Control to 'no-store'\n      lib/http.l\n\n24.12.17\n   'remark' continued\n      lib.l\n      lib/vip.l\n   Typo\n      doc/refT.html\n\n24.12.16\n   'remark' function to generalize REPL-comments\n      src/glob.l\n      src/io.l\n      lib.l\n      lib/vip.l\n      doc/refR.html\n   'complete' reference\n      doc/refC.html\n\n24.12.14\n   Print namespace of symbols in REPL-comments\n      src/io.l\n      lib/vip.l\n\n24.12.13\n   Cyan attribute for REPL-comments\n      src/io.l\n   'markup' also in 'scratch'\n   Print numbers as fixnum-comments also in Vip REPL\n      lib/vip.l\n\n24.12.10\n   New file\n      lib/vip/load.l\n\n24.12.5\n   Add \":wq\" as alias for \":x\"\n      lib/vip.l\n\n24.12.2\n   Add section about namespaces\n      doc/ref.html\n      doc/refE.html\n      doc/refI.html\n      doc/refL.html\n      doc/refN.html\n      doc/refP.html\n      doc/refS.html\n\n24.11.23\n   Example for catching errors\n      doc/refC.html\n\n24.11.21\n   Intern mark names into 'vip'\n      lib/vip.l\n\n24.11.20\n   Generalize 'llvm~fmtNum'\n   Print numbers as fixnum-comments in REPL\n      src/big.l\n      src/io.l\n      src/subr.l\n      doc/rc.sample\n      doc/refR.html\n      doc/refS.html\n      doc/ref_.html\n\n24.11.7\n   Remove obsolete C-level 'lisp' descriptions\n      doc/refN.html\n      doc/native.html\n\n24.10.16\n   Support also HOME and END keys\n      lib/vip.l\n\n####### 24.9 #######\n24.9.7\n   '0' for empty name in minimal symbol diagram\n      doc/ref.html\n\n24.8.19\n   Stop 'gps' via 'Flg' argument\n      lib/android.l\n\n24.8.16\n   'pil' is obsolete\n      doc/refT.html\n\n24.8.7\n   Add 'L' and 'S' to private symbols\n      lib/vip.l\n\n24.8.6\n   Pass TERM environment variable to 'psh'\n      lib/http.l\n      bin/psh\n\n24.8.4\n   'wake' returns 'isHeld'\n      lib/android.l\n\n24.8.3\n   Fix 'gps' with two Location Listeners\n      lib/android.l\n\n24.7.30\n   Typo\n      doc/refN.html\n\n24.7.23\n   Call 'restart' as a UI thread (avoid 'java' reentrancy)\n      lib/android.l\n\n24.7.15\n   Cosmetics\n      src/io.l\n      src/ht.l\n\n24.7.10\n   'volatile' access to '$Signal'\n      src/lib/llvm.l\n      src/dec.l\n\n24.7.9\n   'Exe' argument to 'xName' not used\n      src/main.l\n      src/sym.l\n      src/io.l\n      src/db.l\n      src/flow.l\n      src/ext.l\n   'prompt' function\n      src/glob.l\n      src/main.l\n      doc/ref.html\n      doc/refP.html\n   Typo\n      doc/structures\n\n24.7.7\n   Check for stale I/O frames in 'unwind'\n      src/main.l\n\n24.7.5\n   Change pbPut/pbGet to Zip transfers\n      bin/pty\n   Bug in 'erVar'\n      lib/form.l\n   Typo\n      doc/refD.html\n\n24.7.4\n   Mention '~' in the 'pico' reference\n      doc/refP.html\n\n24.7.3\n   Check for SDK_INT >= 31 in 'alarm?'\n      lib/android.l\n\n24.7.2\n   Adjust 'alarm' for changed numeric arguments\n      lib/android.l\n\n####### 24.6 #######\n24.6.27\n   Minimal delay time 1 ms in 'des'\n      lib/simul.l\n   Force frame buffer register through runCo()\n      src/flow.l\n   Re-arrange structures for alignment\n      src/glob.l\n      src/dec.l\n\n24.6.26\n   'otg' in coroutine structure missing\n      doc/structures\n\n24.6.23\n   Show terminated originator in 'yield' error\n      src/flow.l\n\n24.6.22\n   'prv' in coroutine structure is obsolete\n      doc/structures\n   Fix 'This' upon coroutine termination\n   Bug in coroutines with non-symbolic tags\n      src/flow.l\n\n24.6.21\n   Change 'opt' from \"-O3\" to \"-O2\"\n      src/Makefile\n   Generalize 'all*'\n      lib.l\n   dirString() function\n      src/main.l\n   Bug in coroutine free-list management\n      src/flow.l\n\n24.6.20\n   Generalize output in 'tty'\n      src/main.l\n      src/gc.l\n   Check for terminated originator in 'yield'\n      src/flow.l\n\n24.6.18\n   Clear 'at' in coroutine 'unwind'\n      src/main.l\n   'putCrtEnv' clean up\n      src/dec.l\n      src/flow.l\n\n24.6.17\n   Reentrant 'co' checks\n      src/flow.l\n\n24.6.16\n   Thread exceptions revisited\n      lib/android.l\n\n24.6.14\n   'alarm?' function\n      lib/android.l\n\n24.6.13\n   Call fcntlSetFl() in 'accept' if OpenBSD or FreeBSD\n      lib/net.l\n\n24.6.12\n   Disallow reentrant 'co' calls\n      src/flow.l\n      doc/ref.html\n      doc/refC.html\n\n24.6.9\n   Default format 72 columns\n      lib/vip.l\n      COPYING\n      README\n      INSTALL\n      doc/microTemplates\n\n24.6.5\n   Handle thread exceptions in 'java1'\n      lib/android.l\n\n24.6.2\n   Make 'dirname' and 'basename' non-destructive\n      lib/misc.l\n\n24.5.30\n   'catch' stores throw/error-flag in '@@'\n      src/flow.l\n      test/src/flow.l\n      doc/refC.html\n      lib/vip.l\n      lib/form.l\n\n24.5.24\n   'iter' returns 'NIL'\n      doc/refI.html\n\n24.5.23\n   Typo\n      doc/search.html\n\n24.5.8\n   Minor mismatch\n      doc/faq.html\n\n24.4.4\n   TAB-completion also for search commands\n      lib/vip.l\n\n24.4.3\n   No 'flushAll' in child process 'bye'\n      src/main.l\n      src/lib.c\n\n24.4.1\n   'for' instead of 'while' in 'des'\n      lib/simul.l\n\n24.3.31\n   Change 'sendCmd' protocol to UDP -> background task\n      bin/pty\n\n####### 24.3 #######\n24.3.29\n   Include lib/sysdefs in \"clean2\"\n      src/Makefile\n\n24.3.28\n   Ignore ESC in command mode\n      lib/vip.l\n\n24.3.11\n   Call (raw T) at start and (raw NIL) when done\n      lib/vip.l\n\n24.3.10\n   'scale' function\n      lib/svg.l\n\n24.3.5\n   Bug in \"words\"\n      doc/viprc.sample\n\n24.2.3\n   Fix 'stack' reference\n      doc/refS.html\n\n24.1.29\n   Runtime relations via 'erVar' function\n      lib/form.l\n\n24.1.21\n   Add \"apk\" to '*Mimes'\n      lib/http.l\n\n23.12.29\n   Minor comment\n      lib/simul.l\n\n####### 23.12 #######\n23.12.18\n   requestAnimationFrame() not helpful\n      lib/canvas.js\n\n23.12.13\n   'P' instead of 'N' in native call (malloc() returns pointer)\n      test/src/main.l\n   '*DB' is 'NIL' while no database is open\n      src/glob.l\n      src/main.l\n      src/gc.l\n      src/db.l\n      doc/refD.html\n\n23.12.12\n   'server' single-shot (non-forking) mode with 'Flg' argument\n      lib/http.l\n\n23.12.9\n    ZERO-cache also for 'co' stopping\n      src/flow.l\n\n23.12.8\n   ZERO-cache and free-list for 'co' speedup\n      src/glob.l\n      src/dec.l\n      src/main.l\n      src/flow.l\n      doc/ref.html\n\n23.12.6\n   'co' crashes when gc() runs in put()\n      src/flow.l\n\n23.12.5\n   Return 1 from ulimStk() for minimal stack address\n      src/lib.c\n\n23.12.4\n   Use 'key' instead of 'line' (because of GNU readline behaviour change)\n   in 'more' and 'bt'\n      lib/debug.l\n      doc/refM.html\n      doc/refB.html\n   in 'select'\n      lib/sq.l\n      doc/refS.html\n   and in 'query' (and thus also '?')\n      lib/pilog.l\n      doc/refQ.html\n      doc/ref_.html\n\n23.12.3\n   Global '$StkBrk' not needed\n      src/glob.l\n      src/main.l\n\n23.12.1\n   Change transient \"U\" in 'bench' to private\n      lib/debug.l\n\n23.11.30\n   Typo\n      doc/refN.html\n\n23.11.29\n   Default '*Rt' off\n      lib/simul.l\n      doc/des.html\n   Check for empty 'lst' in renderCanvas()\n      lib/canvas.js\n\n23.11.28\n   Transient \"U\" in 'bench'\n      lib/debug.l\n\n23.11.27\n   Resume all coroutines waiting for the same point in time\n      lib/simul.l\n      doc/des.html\n\n23.11.26\n   Use '*@@' instead of '@@'\n      lib/vip.l\n   'make' stores linkage cell in '@@'\n      src/subr.l\n      doc/refM.html\n\n23.11.22\n   Simplify key loop in 'des'\n      lib/simul.l\n\n23.11.19\n   Fix 'help' for new reference format\n      lib/debug.l\n      doc/refH.html\n\n23.11.18\n   Handle optional count in \":bd\"\n      lib/vip.l\n   Explicit symbol argument to 'new'\n      src/flow.l\n      doc/refN.html\n\n23.11.17\n   'sext' constexprs are deprecated (Mike Pechkin)\n      src/lib/llvm.l\n\n23.11.12\n   Use 'push1' instead of 'push' in 'finish'\n      lib.l\n   Mark end of layout in 'tracks' also with \"#\"\n      lib/simul.l\n   Remove @lib/compat.l from distribution\n\n23.11.7\n   Fix 'cancel' call in 'alarm'\n   Checks for SDK_INT >= 26 are obsolete\n      lib/android.l\n\n23.11.3\n   Search also for inherited indexes in 'select'\n   Clean up\n      lib/sq.l\n      doc/refS.html\n\n23.10.31\n   Handle external symbols in 'xName'\n      src/main.l\n   'flg' argument to 'ext?' to check physical existence\n      src/db.l\n      lib/debug.l\n      lib/vip.l\n\n23.10.30\n   More general matching in 'search'\n      lib/db.l\n   Skip duplicates in 'hintQ'\n      lib/form.l\n\n23.10.29\n   Load @lib/sq.l at the end of @lib/db.l\n      lib/db.l\n      lib/pilog.l\n   Keep relative file position\n      lib/vip/html.l\n\n23.10.28\n   Change 'hintQ' to use 'match>'\n      lib/form.l\n   Return 'Val' from 'match>' methods\n      lib/db.l\n\n23.10.27\n   Minor comment\n      lib/svg.l\n   Change 'dump' to use 'search'\n      lib/too.l\n\n23.10.26\n   Insert \"# VIP \" headers\n   Fix <pre> markups\n      *.html\n\n23.10.25\n   Typo\n      doc/search.html\n   Minor comments\n      src/subr.l\n      doc/refC.html\n\n23.10.24\n   Typo\n      doc/search.html\n\n23.10.23\n   Continued\n      doc/search.html\n   Add \"search.html\"\n      doc/toc.html\n   Comments\n      lib/db.l\n\n23.10.22\n   Style for <pre> tags\n      doc/doc.css\n\n23.10.21\n   Documentation continued\n      doc/refS.html\n      doc/search.html\n\n23.10.20\n   New file\n      doc/search.html\n   Use (sys \"BROWSER\") if set\n      lib/vip.l\n\n23.10.19\n   Cosmetics\n      lib/vip/draw.l\n   New file\n      lib/vip/html.l\n   Check for \"# VIP \" in the first three lines\n      lib/vip.l\n\n23.10.18\n   Use inherited tree\n      lib/db.l\n\n23.10.17\n   Optional extract-function argument to 'search'\n      lib/db.l\n      doc/refS.html\n\n23.10.16\n   Bug in 'iter>' for '+Sn'\n      lib/db.l\n\n23.10.15\n   Change 'select' to use 'search'\n      lib/sq.l\n   '+DbChart' and 'hintQ' functions\n      lib/form.l\n   'search' function with 'iter>' and 'match>' methods\n      lib/db.l\n      doc/ref.html\n      doc/refC.html\n      doc/refS.html\n   New file\n      doc/search\n\n23.10.5\n   Check 'status != 200' in 'onload'\n      lib/form.js\n\n####### 23.9 #######\n23.9.27\n   Add namespace \"-ap~main\"\n      doc/select.html\n\n23.9.26\n   Cosmetics\n      lib/form.l\n\n23.9.23\n   Use '*Evt' mechanism instead of 'Busy'\n      lib/form.l\n      lib/form.js\n   Remove 'vf'\n      lib/vip.l\n\n23.9.20\n   Change global 'FormReq' to local\n      lib/form.js\n\n23.9.19\n   Optionally cache image in 'csDrawImage'\n      lib/canvas.l\n      lib/canvas.js\n\n23.9.17\n   Missing semicolon\n      lib/canvas.js\n\n23.9.13\n   Remove 'Queue' global\n      lib/form.js\n\n23.9.9\n   Remove \"form.html\" and \"app.html\", add \"des.html\"\n      doc/toc.html\n\n23.9.8\n   Don't fall back to stdin/stdout for closed files\n      src/io.l\n   Load also @lib/lint.l in 'psh'\n      lib/http.l\n\n23.9.7\n   Realtime mode 'off' in \"dining\" demo\n      doc/des.html\n\n23.9.6\n   Preserve initial 'This' in coroutines\n      src/flow.l\n      doc/ref.html\n\n23.9.5\n   Adjust LLVM version check (Mike Pechkin)\n      src/Makefile\n\n23.9.4\n   Mark 'tag' and 'prg' also in non-running coroutines\n      src/gc.l\n\n23.9.3\n   Allow reentrancy in coroutines\n      src/flow.l\n      doc/ref.html\n\n23.8.31\n   Tag checks in 'co' and 'yield'\n      src/dec.l\n      src/flow.l\n   Cosmetics\n      doc/des.html\n\n23.8.29\n   'noLint' for 'RED'\n      lib/term.l\n\n23.8.28\n   Homogenize 'input' and' 'output'\n      src/glob.l\n      src/dec.l\n      src/main.l\n      src/gc.l\n      src/io.l\n      src/flow.l\n   'null' instead of '@null' in 'table'\n      src/lib/llvm.l\n\n23.8.27\n   Set namespace for '+<pat>' argument in debug mode\n      bin/vip\n\n23.8.26\n   Handle $ErrFrames and $CtlFrames in coroutines\n      src/flow.l\n      src/dec.l\n   'yield' bug revisited\n      src/flow.l\n\n23.8.25\n   Release reference to Java object (Todd Coram)\n      lib/android.l\n\n23.8.22\n   Bug in 'yield' for nested coroutines\n      src/flow.l\n\n23.8.21\n   Move 'getSize' to lib/term.l\n      lib/term.l\n      lib/vip.l\n   'clear' function\n      lib/term.l\n\n23.8.20\n   Generalize 'attr'\n      lib/term.l\n\n23.8.15\n   Note about coroutine environments\n      doc/ref.html\n\n23.8.13\n   Clarify 'stack' reference\n      doc/refN.html\n\n23.8.12\n   Avoid 'read' in 'download'\n      lib/misc.l\n\n23.8.8\n   Search first 'priv' in 'nsp'\n      src/sym.l\n      doc/refP.html\n   Rename lisp-level functions '_xxx' to '_Xxx'\n      src/glob.l\n      src/main.l\n      src/gc.l\n      src/big.l\n      src/sym.l\n      src/io.l\n      src/db.l\n      src/apply.l\n      src/flow.l\n      src/subr.l\n\n23.8.7\n   'startForeground' with service type\n      lib/android.l\n\n23.8.6\n   Set SSL_CERT_FILE only if on mobile device\n      lib/android.l\n\n23.8.4\n   Check local variables for lower case in 'lint'\n      lib.l\n      lib/lint.l\n      lib/xhtml.l\n      lib/form.l\n      lib/svg.l\n\n23.8.3\n   Defer advancing the list pointer in 'for'\n      src/flow.l\n\n23.8.1\n   Fixes to 'native' description\n      doc/refN.html\n      doc/native.html\n   Target SDK 34 / androidx\n      lib/android.l\n\n23.7.28\n   opaque-pointers for '18 > LLVM >= 15' (Mike Pechkin)\n      src/Makefile\n\n23.7.24\n   Partially revert style simplification from 21.11.21\n      lib/form.l\n      lib/form.js\n\n23.7.23\n   New Vip commands\n      - \"gw\" View Web page\n      - \"gh\" View HTTP code\n      - \"gb\" Invoke Browser (w3m)\n   Implicit writing to 'scratch' files\n   Extend 'map+', 'map+g' and 'map+q'\n      lib/vip.l\n\n23.7.21\n   Minor clarification of @-result\n      doc/ref.html\n\n23.7.20\n   Revisit 'allow'\n      lib/svg.l\n\n23.7.19\n   Missing arg to \"getnameinfo\" in 'host'\n      lib/net.l\n\n23.7.17\n   Generalize 'def' for 'any' keys\n      src/flow.l\n      doc/refD.html\n   Don't 'allow' temporary files by default any longer\n      lib/http.l\n      lib/xhtml.l\n      lib/svg.l\n\n23.7.13\n   Bug in 'input' and 'output': Must preserve '@'\n      src/io.l\n\n23.7.10\n   Revert change from 23.7.6\n      bin/vip\n   TAB-completion also from command history\n      lib/vip.l\n\n23.7.8\n   Note about accessing symbol values in ':'\n      doc/ref_.html\n\n23.7.7\n   'all*' function\n      doc/ref.html\n   Exponent notation in 'parseJson' and 'readJson'\n      lib/json.l\n\n23.7.6\n   Use 'str' instead of direct 'intern' to handle namespaces\n      bin/vip\n\n23.7.4\n   Generalize HTTP method support\n      src/httpGate.c\n\n23.7.2\n   Deprecate 'zxing?' / 'queryIntentActivities'\n      lib/android.l\n\n####### 23.6 #######\n23.6.25\n   Print current coroutine in 'stkErr'\n      src/main.l\n\n23.6.18\n   Minor comment\n      bin/pty\n\n23.6.16\n   Minor elaboration on the 'sect' reference\n      doc/refS.html\n\n23.6.6\n   Disallow append mode (via \"+file\") in 'in' and 'load'\n      src/io.l\n      doc/refI.html\n      doc/refO.html\n\n23.6.4\n   '+<pat>' defaults to tag in debug mode\n      bin/vip\n   Accept 'any' in 'intern'\n      src/lib/llvm.l\n      src/sym.l\n      lib.l\n      test/src/sym.l\n      doc/refI.html\n      lib/form.l\n      lib/dbgc.l\n\n23.5.27\n   Global '*AlwaysAsk'\n      lib/form.l\n\n23.5.25\n   Track network functions\n      lib/simul.l\n   New file\n      doc/Tracks\n   Add more stack checks\n      src/main.l\n      src/flow.l\n\n23.5.24\n   Change stack segment safety margin from 4096 to 1024\n      src/glob.l\n      src/flow.l\n\n23.5.15\n   Remove 'Cpy' from getCrtEnv(), set 'env' and '$StkLimit' in loadCoEnv()\n      src/dec.l\n      src/main.l\n      src/flow.l\n\n23.5.7\n   Show buffer and dirty status also for long path names\n      lib/vip.l\n\n23.5.6\n   Deprecate \"ta\" abbreviation for \"tag\" command\n      lib/vip.l\n\n23.5.5\n   Fix description of left/right fork signals\n      doc/des.html\n\n23.4.28\n   Set 'home' property in '<drawCanvas>' to '*Top'\n      lib/canvas.l\n\n23.4.25\n   Wait for multiple events in 'pause'\n      lib/simul.l\n      doc/des.html\n\n23.4.24\n   Use 'idx' instead of 'rank' in '*Next'\n      lib/simul.l\n      doc/des.html\n   Bug in 'compare' for anonymous symbols\n      src/main.l\n\n23.4.22\n   New file\n      doc/des.html\n   Return max and min from 'idx' for 'T' and 'NIL' key arguments\n   Randomize 'idx' if 'flg' is '0'\n      src/sym.l\n      src/io.l\n      doc/refI.html\n   chance() function\n      src/dec.l\n      src/lib.c\n\n23.4.18\n   Needs 'symb?' instead of 'sym?' in 'repl'\n      src/io.l\n   Cache coroutines for 'yield' in ZERO-properties\n      src/main.l\n      src/flow.l\n   Clean up ZERO key handling in 'put' and 'get'\n      src/sym.l\n      src/flow.l\n   Bug in ffiPrep() for direct Lisp arguments\n      src/lib.c\n\n23.4.16\n   'private' cosmetics\n      lib/net.l\n\n23.4.13\n   'finish' function\n      lib.l\n      lib/app.l\n      lib/heartbeat.l\n      bin/pty\n      bin/watchdog\n      doc/ref.html\n      doc/refB.html\n      doc/refF.html\n      doc/refO.html\n\n23.4.5\n   Evaluate list arguments in 'select'\n      lib/sq.l\n      doc/refS.html\n\n23.4.3\n   Examples and test cases for 'ext:Base64' in 'input' and 'output'\n      test/src/ext.l\n      doc/refI.html\n      doc/refO.html\n\n####### 23.3 #######\n23.3.29\n   Make second port for pbPut/pbGet optional\n      bin/pty\n\n23.3.28\n   Suppress duplicates in 'db/[345]'\n      lib/pilog.l\n\n23.3.27\n   Fix escapes for special characters\n      lib/debug.l\n      doc/ref.html\n      doc/refB.html\n      doc/refD.html\n      doc/refE.html\n      doc/refN.html\n      doc/refM.html\n      doc/refP.html\n      doc/refR.html\n      doc/refU.html\n      doc/refX.html\n      doc/ref_.html\n      doc/tut.html\n      doc/native.html\n\n23.3.26\n   Fix various markup issues\n      lib/debug.l\n      lib/form.l\n      ref.html\n      ref?.html\n      faq.html\n      tut.html\n      native.html\n      select.html\n      httpGate.html\n   Set download link to demoApp.tgz\n      doc/select.html\n\n23.3.25\n   Undo tag argument restriction from 14feb23\n      src/flow.l\n      doc/refC.html\n      doc/refY.html\n\n23.3.19\n   Allow one \"-\" in uppercase global constants\n   Handle 'default'\n      lib/lint.l\n   'noLint' for 'null'\n      lib/android.l\n\n23.3.17\n   Repeat last shell command with \":$\"\n      lib/vip.l\n\n23.3.13\n   Support more attributes in 'serverSentEvent'\n   Force chunked transfer in 'serverSend'\n      lib/xhtml.l\n\n23.3.5\n   Typo\n      lib/vip.l\n   Restrict 'words' command to 'delimNs'\n      doc/viprc.sample\n\n23.2.27\n   Bug in 'js>' for '+Url'\n      lib/form.l\n\n23.2.22\n   Default hasbangs to /usr/bin/pil\n      bin/pty\n      bin/psh\n      bin/watchdog\n\n23.2.14\n   Tag argument to 'co' and 'yield' must be a symbol\n      src/flow.l\n      doc/refC.html\n      doc/refY.html\n\n23.2.9\n   Add \"mp4\" to '*Mimes'\n      lib/http.l\n\n####### 23.2 #######\n23.2.8\n   Check for atomic argument in 'made'\n      src/subr.l\n\n23.2.6\n   Undo cosmetics from 14jul22\n      lib/btree.l\n\n23.2.5\n   Keep 'prg' argument to 'des' private\n      lib/simul.l\n\n23.2.4\n   Allow numeric argument to 'repl'\n      src/io.l\n   Add BROWN and PURPLE\n      lib/term.l\n\n23.2.1\n   Numeric '*Rt' as speedup factor\n   Optional 'prg' argument to 'des'\n   Change '*Key' to fifo structure '*Keys'\n      lib/simul.l\n\n23.1.31\n   Optional 'var' argument to 'key'\n      src/io.l\n      doc/refK.html\n\n23.1.27\n   Optional anchor for '<this>'\n   '<a>' anchor function\n      lib/xhtml.l\n\n23.1.21\n   Init '*Key' in 'des'\n   Bug in 'wake'\n      lib/simul.l\n\n23.1.15\n   Handle 'onOff'\n      lib/lint.l\n\n23.1.14\n   Auto-quote 'null'\n      lib/android.l\n\n23.1.13\n   'setCooked', 'setRaw' not needed in 'main' and 'brkLoad'\n      src/main.l\n      src/flow.l\n   Call rl_deprep_terminal() in 'setCooked'\n      src/lib.c\n\n23.1.9\n   Minor cosmetics\n      src/main.l\n\n23.1.6\n   Add link to @lib/bash_completion\n      INSTALL\n\n23.1.2\n   Separate buffer for each \"$\" (shell) command call\n      lib/vip.l\n\n23.1.1\n   Clear *Complete upon backspace\n      lib/vip.l\n\n22.12.30\n   Handle destructuring function parameters\n      lib/lint.l\n\n22.12.28\n   Move 'less' to @lib.l\n      lib.l\n      lib/debug.l\n      doc/refL.html\n\n####### 22.12 #######\n22.12.21\n   Use 'less' in 'show'\n      lib.l\n      doc/refB.html\n      doc/refM.html\n      doc/tut.html\n   Minor fix indentation\n      lib/debug.l\n   'circ' for atomic mapping arguments no longer needed\n      lib/http.l\n\n22.12.20\n   Global '*Key'\n      lib/simul.l\n\n22.12.18\n   Add GREEN and BLUE\n      lib/term.l\n\n22.12.15\n   Handle destructuring function parameters in 'funq'\n      src/main.l\n\n22.12.12\n   Fix 'tword' to go to the last space\n      lib/vip.l\n\n22.12.11\n   Clear 'last' for deleted buffer\n      lib/vip.l\n   Directly call 'symbols' in 'tag'\n      lib/vip.l\n\n22.12.2\n   Add percentage display to '<progress>'\n      lib/xhtml.l\n   Commented example for LEFT and RIGHT\n      doc/viprc.sample\n\n22.12.1\n   Check for \":\" delimiter in TAB-completion\n      lib/vip.l\n\n22.11.22\n   'boss' is obsolete\n      lib/android.l\n   TAB-completion also for colon-commands\n      lib/vip.l\n\n22.11.20\n   Minor privates\n      lib/vip.l\n\n22.11.19\n   Fix 'unwind'ing coroutines\n      src/dec.l\n      src/main.l\n      src/flow.l\n   Reset screen and namespaces upon error\n      lib/vip.l\n      bin/vip\n\n22.11.18\n   'namespaces' function\n      lib/debug.l\n      doc/refN.html\n      doc/refS.html\n   Exchange also 'last', 'mark' and 'sc' in \":bx\"\n      lib/vip.l\n\n22.11.15\n   'shadows' function\n      lib/debug.l\n      doc/refS.html\n   Allow also new namespace for '-symbols'\n      lib.l\n\n22.11.14\n   Wrong 'save' / 'safe' in 'rdList'\n      src/io.l\n   Private 'queue'\n      lib/simul.l\n\n22.11.12\n   'tabs' command to replace tabs with spaces\n   'words' command to toggle between Lisp an C\n      doc/viprc.sample\n   Generalize delimiter checking\n      lib/vip.l\n\n22.11.11\n   Store 'symbols' source info after the change\n      src/sym.l\n\n22.11.10\n   'info' returns local time instead of UTC if the flag argument is zero\n      src/dec.l\n      src/main.l\n      src/lib.c\n      doc/refI.html\n      lib/vip.l\n\n22.11.9\n   Set blob symlinks in mirror destination directories\n      src/ssl.c\n\n22.11.2\n   Clear references to deleted buffer in \":bd\"\n      lib/vip.l\n\n22.10.30\n   Don't clear '@' and '@@' before (gc)\n      src/gc.l\n      doc/refG.html\n\n22.10.26\n   Passing zero to 'tell' refers to the parent process\n      src/io.l\n      src/db.l\n      doc/refT.html\n   Remove \"lib/boss.l\" from distribution\n\n22.10.21\n   Use 'delete' instead of 'replace'\n      lib/dbgc.l\n\n22.10.20\n   Minor cosmetics\n      src/main.l\n      src/subr.l\n\n22.10.17\n   Decrement 'Ms' in 'waitFd' only if not 292MY\n      src/io.l\n   Include external declaration of ppoll()\n      src/lib.c\n   Fix reference of '*CPU'.\n      doc/refC.html\n\n22.10.15\n   Avoid setting 'last' to current buffer\n      lib/vip.l\n   Call 'flush' in 'beep'\n      lib.l\n\n22.10.6\n   'able' checks in 'val>' for '+ObjVal' and '+ObjVar'\n      lib/form.l\n\n22.10.4\n   Add 'put' and 'get' to reference of '+Joint'\n      doc/refJ.html\n\n####### 22.9 #######\n22.9.29\n   Bitmask bug in <menu>\n      lib/xhtml.l\n\n22.9.24\n   Use opaque-pointers in LLVM >= 15 (Mike Pechkin)\n      src/Makefile\n\n22.9.16\n   Support partially circular lists in 'pretty' and 'view'\n   Print 'def' in 'pp' instead of 'de' for non-functions\n      lib.l\n   Simplify printing of circular lists\n      src/io.l\n\n22.9.13\n   Move \"ix.io\" to @doc/viprc.sample, added \"pb1n\"\n      lib/vip.l\n      doc/viprc.sample\n   Bug in 'server' for non-numeric arguments\n      lib/net.l\n\n22.9.9\n   Allow empty 'url' argument\n      src/ssl.c\n\n22.9.6\n   Pass FLAG_IMMUTABLE to PendingIntent\n      lib/android.l\n\n22.9.4\n   Avoid multiple auto timers\n      lib/canvas.js\n\n22.9.3\n   Pass flag 'T' for mouse/touch events\n      lib/canvas.l\n      lib/canvas.js\n\n22.9.1\n   Make 'all*' selective with 'T' or '0'\n      lib.l\n      doc/refA.html\n      lib/vip.l\n\n22.8.31\n   Change 'http' abort time to 20 minutes\n      lib/http.l\n\n22.8.30\n   '<progress>' function\n      lib/xhtml.l\n   Abort 'http' after 7 seconds\n      lib/http.l\n\n22.8.29\n   Remove stale symbolic links\n      src/ssl.c\n\n22.8.26\n   'cmd' function\n      lib/vip.l\n\n22.8.22\n   Store debug source info in 'symbols'\n      src/dec.l\n      src/sym.l\n      lib/debug.l\n      doc/refD.html\n      doc/refS.html\n\n22.8.21\n   Extend 'pool' tests\n      test/src/db.l\n      test/lib/db.l\n\n22.8.20\n   'b8+' aligns stack buffers to 8 bytes\n      src/lib/llvm.l\n      src/main.l\n      src/io.l\n      src/db.l\n      src/flow.l\n   Pad 'dbFile' and 'child' to multiples of 8\n      src/dec.l\n   Add file\n      doc/viprc.sample\n   Improve use cases\n      doc/rc.sample\n\n22.8.19\n   'gPrintf' returns void\n      src/dec.l\n   Size check in gPrintf()\n      src/lib.c\n   'save' before 'loop'\n      src/main.l\n   '$TickU' and '$TickS' are obsolete\n      src/glob.l\n\n22.8.18\n   Declare 'Tio' and 'Fsign' as \"char\" instead of \"int\"\n      src/lib.c\n   Make insensitive to endianness\n      test/src/main.l\n\n22.8.1\n   Add note on destructuring bind of function parameters\n      doc/ref.html\n\n22.7.27\n   Bug in 'extra' assuming positive pointers\n      src/flow.l\n   Display applied functions in backtraces\n      lib/debug.l\n      lib/app.l\n\n22.7.20\n   Bug in 'compare' for circular lists\n      src/main.l\n      test/src/subr.l\n\n22.7.16\n   Call 'blob+' in (clone> . +Entity)\n      lib/db.l\n\n22.7.15\n   Improve 'hex' argument verification\n      lib/misc.l\n\n22.7.14\n   Use 'skip' instead of 'line' in 'here'\n      lib/misc.l\n   Minor cosmetics\n      lib/btree.l\n\n22.7.13\n   'overview' function\n      lib/android.l\n   Go to last instead of previous buffer in \":bd\"\n      lib/vip.l\n\n22.7.12\n   Remove \"Building httpGate\"\n      doc/httpGate.html\n   '<drawCanvas>' function\n      lib/canvas.l\n\n22.7.11\n   Go to previous instead of next buffer in \":bd\"\n      lib/vip.l\n\n22.7.9\n   Correct earth mean radius to 6371 km\n      lib/gis.l\n\n22.7.8\n   'map+', 'map+g' and 'map+q' functions\n      lib/vip.l\n\n22.7.3\n   Default values in 'print>' methods\n      lib/sq.l\n\n22.7.2\n   Uncomment 'shift' import\n      src/lib/llvm.l\n   Let 'beep' return 'NIL'\n      lib.l\n      lib/vip.l\n      doc/refB.html\n\n22.6.30\n    Show blank screen in 'restart'\n      lib/android.l\n\n####### 22.6 #######\n22.6.30\n   Bug in realpath() handling\n      lib/vip.l\n\n22.6.26\n   Corrections (Christos Gitsis)\n      doc/ref.html\n      doc/refA.html\n   More fixes in local coroutine stacks\n      src/flow.l\n\n22.6.25\n   realpath() directly if directory\n      lib/vip.l\n\n22.6.24\n   Apply realpath() only to path of the file\n      lib/vip.l\n   More fixes in local coroutine stacks\n      src/flow.l\n\n22.6.23\n   Set 'org' when resuming a coroutine in 'co'\n      src/flow.l\n\n22.6.22\n   Silent exit if connect fails\n      src/ssl.c\n\n22.6.17\n   Bugs in 'sort' with 'fun' argument\n      src/subr.l\n\n22.6.15\n   Disable '*Run' in 'sync' calls\n      lib/form.l\n\n22.6.13\n   Bug in printing symbols overshadowed in 'priv'\n      src/io.l\n\n22.6.10\n   Don't lock remote symbols\n      lib/vip.l\n\n22.6.9\n   Check empty name in '+SymField'\n      lib/form.l\n\n22.6.7\n   Refined system clipboard copy\n      lib/vip.l\n\n22.6.6\n   Missing \"void *\" in '*C-Defs'\n      src/lib/llvm.l\n\n22.6.3\n   Disable form action for stale locks\n      lib/form.l\n\n22.5.31\n   Remove 'visibilitychange' event handling\n      lib/xhtml.l\n\n22.5.30\n   'h' function\n      lib/debug.l\n      doc/refH.html\n\n22.5.29\n   String arguments do no longer cause strdup(3) calls\n      doc/native.html\n\n22.5.26\n   Add 'binutils'\n      INSTALL\n   Use 'output' instead of 'pipe'\n      lib/misc.l\n   Replace control characters with backslash sequences\n      lib/misc.l\n      lib/db.l\n      lib/vip.l\n      lib/term.l\n      lib/http.l\n      lib/xhtml.l\n      lib/form.l\n      lib/canvas.l\n      lib/xm.l\n      lib/tinymce.l\n      test/src/io.l\n      test/src/sym.l\n      test/lib/misc.l\n      doc/tut.html\n      doc/refA.html\n      doc/refP.html\n      doc/form/refS.html\n      doc/app.html\n      misc/bigtest\n\n22.5.25\n   Bug in 'untrace'\n      lib/debug.l\n   Multi-line data in 'serverSend'\n      lib/xhtml.l\n   'input' and 'output' functions\n      src/glob.l\n      src/dec.l\n      src/main.l\n      src/gc.l\n      src/io.l\n      test/src/io.l\n      doc/ref.html\n      doc/refI.html\n      doc/refO.html\n\n22.5.18\n   Fix 'raw' example\n      doc/refR.html\n   Clear stdin 'tty' flag in 'pipe' child\n      src/io.l\n\n22.5.15\n   Replace \"%\" also if in command window\n      lib/vip.l\n\n22.5.13\n   Optional \"dup\" file descriptor argument to 'fd'\n      src/io.l\n      doc/refF.html\n   Use 'in' instead of 'pipe' for \"ccrypt\" call\n      lib/vip.l\n\n22.5.12\n   Fix 'dbs' example\n      doc/refD.html\n\n22.5.11\n   Use '*Uri' instead of '*Url' in 'post'\n      lib/form.l\n\n22.5.10\n   Support also PUT, PATCH and DELETE\n      src/httpGate.c\n\n22.5.6\n   Global '*Uri'\n      lib/http.l\n   Clean up '*Err'\n      lib/app.l\n\n22.5.5\n   Call 'flush' in 'tty'\n      src/dec.l\n      src/main.l\n      src/ht.l\n\n22.5.3\n   Use 'tty' in 'msg'\n      lib.l\n   Re-introduce 'visibilitychange' event handling\n      lib/xhtml.l\n\n22.5.1\n   'fun' function\n      src/glob.l\n      src/apply.l\n      test/src/apply.l\n      doc/ref.html\n      doc/refF.html\n\n22.4.30\n   Add \"epub\" mime type\n      lib/http.l\n\n22.4.26\n   Outdated example for 'lisp'\n      doc/refL.html\n\n22.4.24\n   Define PATH_MAX\n      src/sysdefs.c\n      lib/vip.l\n\n22.4.22\n   Preserve 'errno' across readline(3) calls\n      src/dec.l\n      src/io.l\n      src/lib.c\n   Word search without 'match' support\n      lib/vip.l\n\n22.4.20\n   'noLint' declarations\n      lib/xhtml.l\n      lib/svg.l\n      lib/canvas.l\n\n22.4.17\n   Don't maintain ErrFrames and CtlFrames in coroutines\n   Fix file descriptor leak when stopping coroutines\n      src/dec.l\n      src/flow.l\n\n22.4.11\n   'trail' check not needed\n      lib/app.l\n\n22.4.9\n   Collect also C-tags into @lib/map\n      src/lib/llvm.l\n      src/main.l\n      src/pico.h\n      src/lib.c\n\n22.4.8\n   Add \"-o lib.bc\"\n   Add \"clean2\" target\n      src/Makefile\n\n22.4.6\n   Optional rounding in 'lat', 'lon' and 'fmt'\n      lib/gis.l\n\n22.4.5\n   Check zero charCode in hint key events\n      lib/form.js\n\n####### 22.3 #######\n22.3.16\n   Pre-set 'home' property in 'form'\n   Conditionally unlock and enable in 'panel'\n      lib/form.l\n\n22.3.14\n   Bug in 'ps'\n      lib/svg.l\n   Local and private declarations\n      lib/xm.l\n   Escape also backslashes in '<poi>'\n      lib/gis.l\n\n22.3.13\n   Escape single quotes in '<poi>' text argument\n      lib/gis.l\n   Use 'get' instead of (cdr (asoq ..))\n      lib/xm.l\n\n22.3.8\n   Revisit tcsetpgrp() calls\n      src/dec.l\n      src/flow.l\n      lib/debug.l\n\n22.3.4\n   Plain searches without 'match' overhead\n      lib/vip.l\n\n22.2.28\n   Issues with tcsetpgrp() calls\n      src/io.l\n      src/flow.l\n\n22.2.26\n   Transient and private namespaces in catch and coroutine frames\n      src/glob.l\n      src/dec.l\n      src/main.l\n      src/gc.l\n      src/flow.l\n\n22.2.24\n   Refactor 'repl' loops\n      src/io.l\n\n22.2.23\n   Don't exit top-level REPL\n      src/main.l\n      src/io.l\n\n22.2.22\n   Print error location in 'repl'\n      lib/form.l\n   Print error location in 'evCmd'\n      lib/vip.l\n\n22.2.21\n   'height' function\n   Handle '0' and 'T' directly in 'ps'\n      lib/svg.l\n\n22.2.19\n   Handle NILs in (has> . +List)\n      lib/db.l\n   Increase stack size\n      bin/vip\n\n22.2.13\n   'move!>' method for '+Entity'\n      lib/too.l\n\n22.2.11\n   Comment for 'fill'\n      src/subr.l\n\n22.2.5\n   Remove 'dbs+'\n      lib/db.l\n      doc/ref.html\n      doc/refD.html\n   Pass '*Uuid' and arguments to RPC calls\n      lib/android.l\n\n22.2.2\n   Revisit (rel> . +Dep)\n      lib/db.l\n\n22.2.1\n   Add 'nth' to \"see also\" of 'get'\n      doc/refG.html\n\n22.1.30\n   Additional arguments to 'fish'\n      src/apply.l\n      doc/refF.html\n      test/src/apply.l\n      lib/too.l\n\n22.1.28\n   Optional third argument to 'fill'\n      src/subr.l\n      doc/refF.html\n      test/src/subr.l\n\n22.1.27\n   'wrap' also converts string to list of strings\n      lib/misc.l\n      doc/refW.html\n      test/lib/misc.l\n   'badDep' function\n      lib/too.l\n\n22.1.26\n   Bug in (rel> . +Dep)\n      lib/db.l\n\n22.1.21\n   Optional database file for 'forall'\n      lib/db.l\n      doc/refF.html\n   Inherit tags from superclasses\n      lib/vip.l\n   Refactor screen handling\n      lib/term.l\n      lib/vip.l\n\n22.1.20\n   'seq' instead of 'dbMap' in 'dangling'\n   'displaced' function\n      lib/too.l\n\n22.1.18\n   Stack check in 'apply'\n      src/apply.l\n   Discrete-Event Simulation: 'des', 'pause', 'event' and 'wake' functions\n      lib/simul.l\n\n22.1.15\n   '-debug' and '-trace' functions\n      lib/debug.l\n      doc/ref.html\n      doc/refD.html\n      doc/refT.html\n\n22.1.13\n   Change \"EMail\" to \"E-Mail\"\n      doc/form/refM.html\n\n22.1.11\n   Central Kurdish localization (Hunar Omar)\n      loc/CKB.l\n      loc/ckb\n\n22.1.10\n   Variable '*Port'\n      bin/pty\n\n22.1.8\n   Handle SIGWINCH\n      bin/pty\n   Reset readline in 'setTerm'\n      lib/term.l\n   Display namespace in 'repl'\n      lib/form.l\n\n22.1.7\n   'refObj' searches also values\n      lib/too.l\n\n22.1.6\n   Don't reset 'Busy' in ping()\n      lib/form.js\n\n22.1.4\n   Bug in 'name' for external symbols\n      src/sym.l\n\n####### 21.12 #######\n22.1.3\n   Bugs in (del> . +Entity) and (has> . +List)\n      lib/db.l\n      test/lib/db.l\n   'assoc', 'rassoc', 'asoq' and 'rasoq' accept circular lists\n      src/subr.l\n      test/src/subr.l\n\n21.12.30\n   Enable file transfers (via 'pbPut' and 'pbGet' in PilBox)\n      bin/pty\n\n21.12.29\n   Fix touch scrolling in chart tables\n      lib/form.l\n      lib/form.js\n      lib/xhtml/table\n\n21.12.27\n   '-symbols' function\n      lib.l\n      doc/ref.html\n      doc/refS.html\n\n21.12.22\n   OpenBSD patch (Frithjof Schulze)\n      src/httpGate.c\n\n21.12.20\n   Don't put single \".\" into readline history\n\n21.12.14\n   Avoid 'resolveActivity' in 'startActivityForResult'\n      lib/android.l\n\n21.12.13\n   Splice also atomic results in \"~\" read macros and 'fill'\n      src/io.l\n      src/subr.l\n      test/src/subr.l\n      doc/refF.html\n\n21.12.12\n   Bug in 'format' (llvm~fmtNum)\n      src/big.l\n   Overflow float/double to bignum\n      src/dec.l\n      src/main.l\n      src/pico.h\n      src/lib.c\n\n21.12.10\n   'native' and 'struct' not limited to C functions\n      doc/refN.html\n      doc/refS.html\n   'Str' not used in 'getWord'\n      lib/vip.l\n\n21.12.8\n   Add 'adr' to \"see also\" of 'native'\n      doc/refN.html\n\n21.12.5\n   Global '*Keys'\n   \":map\" command\n      lib/vip.l\n\n21.12.4\n   Lock, sync and commit external symbols\n      lib/vip.l\n\n21.11.30\n   'R' may be modified in 'evCmd'\n      lib/vip.l\n\n21.11.29\n   Extend 'command' with '*CmdMap'\n   Continue direct editing only with \"K\" (\"^]\" always goes to source)\n      lib/vip.l\n\n21.11.28\n   Remove '*Complete' filter\n      lib/vip.l\n\n21.11.26\n   'all*' function\n      lib.l\n      doc/refA.html\n   Refactor TAB-completion\n      lib/vip.l\n\n21.11.25\n   Search namespaces in TAB-completion\n      lib/vip.l\n\n21.11.22\n   Minor cosmetics\n      lib.css\n      lib/canvas.js\n      lib/plio.js\n      lib/gis.js\n      loc/ar\n      loc/ch\n      loc/cn\n      loc/de\n      loc/hr\n      loc/it\n      loc/ja\n      loc/tr\n\n21.11.21\n   Simplify style manipulations\n      lib/form.l\n      lib/form.js\n\n21.11.18\n   Bug in 'bagBag'\n      lib/form.l\n\n21.11.17\n   Minor cosmetics\n      lib/form.l\n   Inherit 'Dbf' in 'forall' from superclasses\n      lib/db.l\n\n21.11.16\n   Re-introduce the '====' function\n      src/glob.l\n      src/sym.l\n      test/src/sym.l\n      doc/ref_.html\n      doc/diff\n   and use it in 'locale'\n      lib/misc.l\n   Preserve transients in comma read macro\n      src/io.l\n\n21.11.15\n   Use 'fName' in 'vf'\n      lib/vip.l\n\n21.11.12\n   '+ObjVar' prefix class\n      lib/form.l\n\n21.11.11\n   Missing semicolon (Mia)\n      lib/form.js\n\n21.11.9\n   Increase escape delay from 80 to 120\n      lib/vip.l\n\n21.10.31\n   Mention Ctrl-D to terminate 'bt', 'query' and '?'\n      doc/ref.html\n      doc/refB.html\n      doc/refM.html\n      doc/refQ.html\n      doc/ref_.html\n\n21.10.30\n   Generalize cut in 'prove'\n      src/subr.l\n\n21.10.29\n   rl_initialize() not necessary\n      src/lib.c\n\n21.10.28\n   Display namespace in 'status'\n      lib/vip.l\n   Minor optimization in '*Prompt'\n      lib/debug.l\n\n21.10.27\n   'vf' (vi/find) function\n      lib/vip.l\n   Default '*Tab' to 1\n      lib/xhtml.l\n\n21.10.25\n   '*KeyMap', '*KeyMap-g' and '*KeyMap-q' globals (Erik Gustafson)\n   More transients\n      lib/vip.l\n\n21.10.18\n   Refactor (gui> . +User)\n      lib/adm.l\n      lib/user.l\n\n21.10.15\n   Mention Ctrl-D to terminate 'more'\n      doc/refM.html\n\n21.10.11\n   \"CSV\" -> \"Export CSV\" in 'csv'\n      lib/xhtml.l\n\n21.10.9\n   'pico~cells' function\n      lib/vip/draw.l\n   Minor cosmetics\n      lib/vip.l\n   Fix 'arrow' for small distances\n      lib/vip/draw.l\n\n21.10.2\n   Remove '+JsField'\n      lib/form.l\n      doc/app.html\n      doc/form/refJ.html\n   Import 'permute' from 'pico' namespace\n      lib/simul.l\n\n21.9.29\n   '+hintObj' prefix class for '+Obj' and '+ObjVal'\n      lib/form.l\n\n21.9.25\n   'rand' argument checks\n      src/big.l\n      doc/refR.html\n\n21.9.24\n   Ignore SIGINT in 'ctty' parent process\n      src/main.l\n   Forward \"^D\"\n      bin/pty\n\n21.9.23\n   Clear '*Err'\n      bin/pty\n\n21.9.20\n   Initial '$StkBrk' and '$StkLimit'\n      src/glob.l\n      src/main.l\n\n21.9.19\n   ulimStk() system call\n      src/dec.l\n      src/pico.h\n      src/lib.c\n\n21.9.17\n   Clear 'history' after argument evaluation\n      src/main.l\n\n21.9.16\n   Insert \"^M\" before \"^J\" in 'mail' body\n      lib/misc.l\n   'refObj' function\n      lib/too.l\n\n21.9.13\n   Insert \"^M\" before \"^J\" in 'mail' body\n      lib/misc.l\n   'prBase64' optional \"^M\" argument\n      lib/misc.l\n      doc/refP.html\n   Explanations for reference syntax\n      doc/ref.html\n\n21.9.10\n   \"gg\" uses *Count\n      lib/vip.l\n\n21.9.3\n   'mis>' method for '+Swap'\n      lib/db.l\n\n21.9.1\n   select() system calls are now poll()\n      doc/refK.html\n      doc/refL.html\n      doc/refR.html\n      doc/refS.html\n      doc/refW.html\n\n21.8.30\n   Typo\n      doc/refR.html\n\n21.8.28\n   Add note about 'native'\n      doc/faq.html\n   'rid' function\n      test/src/sym.l\n\n21.8.27\n   'rid' function\n      src/glob.l\n      src/sym.l\n      test/src/sym.l\n      doc/ref.html\n      doc/refC.html\n      doc/refD.html\n      doc/refF.html\n      doc/refQ.html\n      doc/refR.html\n\n21.8.26\n   Bug in 'place'\n      src/subr.l\n      test/src/subr.l\n\n21.8.25\n   Division by zero did not throw an error\n      src/big.l\n   Private declarations\n      lib/xhtml.l\n\n21.8.22\n   Default alert text color black\n      lib.css\n\n21.8.20\n   Wrong 'tty' checks for stdin/stdout\n      src/main.l\n      src/flow.l\n\n21.8.19\n   LLC and LINK variables\n      src/Makefile\n\n21.8.18\n   Strip binaries\n      src/Makefile\n   'rasoq' function\n      src/glob.l\n      src/subr.l\n      test/src/subr.l\n      doc/ref.html\n      doc/refA.html\n      doc/refR.html\n\n21.8.16\n   Add 'packJson'\n      lib/json.l\n\n21.8.14\n   Sort TAB-completion\n      lib/vip.l\n   Host option\n      bin/pty\n\n21.8.13\n   Check (sys \"SHELL\") for default shell\n      lib/vip.l\n\n21.8.12\n   Some Pilog variables private again\n      lib/pilog.l\n\n21.8.11\n   Default shell \"bash\" -> \"sh\"\n      lib/vip.l\n   Shell prefix \"$ \" -> \"!\" in 'repl'\n      lib/form.l\n\n21.8.9\n   'go', 'up', 'down', 'left' and 'right functions\n   'block' function\n      lib/vip/draw.l\n   Preset terminal attributes in setRaw()\n      src/lib.c\n\n21.8.8\n   Add files\n      lib/term.l\n      bin/pty\n\n21.8.7\n   Clean up terminal handling\n      lib/vip.l\n\n21.8.6\n   Define TIOCSWINSZ\n      src/sysdefs.c\n   Set standard I/O to a PTY with (ctty)\n      src/Makefile\n      src/dec.l\n      src/main.l\n      doc/refC.html\n\n21.8.3\n   'tty' flag also in 'inFile'\n      src/dec.l\n      src/main.l\n      src/io.l\n      src/flow.l\n\n21.7.27\n   Direct 'run' in auto-load with \"# VIP (...)\"\n      lib/vip.l\n\n21.7.26\n   Bug in reading non-ASCII characters in internal symbols\n      src/io.l\n\n21.7.25\n   'cnt' argument to 'unify'\n      src/subr.l\n      lib/pilog.l\n      doc/refU.html\n\n21.7.24\n   Signal handler in 'prove'\n      src/subr.l\n\n21.7.23\n   Pilog variables not private\n      lib/pilog.l\n   Revisit Pilog variables in Lisp expressions\n      src/subr.l\n\n21.7.22\n   Revisit private symbols in properties\n      lib/vip.l\n\n21.7.21\n   Global '*Rule' cleared in 'repl'\n      src/glob.l\n      src/io.l\n      doc/ref.html\n      doc/refB.html\n      doc/refC.html\n      doc/refR.html\n   Maintain source properties also in 'clause'\n      lib/pilog.l\n   Bind Pilog variables in Lisp expressions\n      src/subr.l\n      lib/pilog.l\n      test/src/subr.l\n      doc/ref.html\n      doc/refM.html\n      doc/refR.html\n      doc/refT.html\n   Intern private symbols also in properties\n      lib/vip.l\n   Bug in 'putSrc' for first property\n      src/flow.l\n\n21.7.18\n   Minor cosmetics\n      src/subr.l\n\n21.7.16\n   em120 and em150 styles\n      lib.css\n\n21.7.13\n   'buf' function\n      doc/ref.html\n      doc/refB.html\n\n21.7.10\n   Revisit (put> . +Swap)\n      lib/db.l\n      test/lib/db.l\n\n21.7.5\n   Fix 'clone>' for '+Swap' in '+Bag'\n      lib/db.l\n\n21.7.4\n   E/R unit tests\n      lib/test.l\n      test/src/sym.l\n      test/src/db.l\n      test/lib/db.l\n   Clean up 'has>' methods\n      lib/db.l\n      lib/tinymce.l\n   Revisit '+Bag' and '+Swap'\n      lib/db.l\n\n21.7.3\n   Support methods as \":ta msg> +Cls\"\n      lib/vip.l\n   Make 'bagBag' non-destructive\n      lib/form.l\n\n21.7.2\n   'forall' function\n      doc/ref.html\n   Add file\n      doc/rc.sample\n\n21.7.1\n   'forall' function\n      lib/db.l\n      doc/refF.html\n\n####### 21.6 #######\n21.6.30\n   '+Swp' prefix class\n      lib/form.l\n   Lazy external symbol creation in '+Swap'\n      lib/db.l\n   'has>' check in (rel> . +Joint)\n      lib/db.l\n   Keep application namespaces for background tasks in '*Ns'\n      lib/vip.l\n\n21.6.29\n   Keep application namespaces for background tasks in '*Ns'\n      lib/vip.l\n      bin/vip\n\n21.6.24\n   Minor addition\n      doc/microTemplates\n\n21.6.23\n   Micro-templates for '<table>' and '<grid>'\n      doc/microTemplates\n\n21.6.22\n   Micro-templates for '<table>' and '<grid>'\n      lib/xhtml.l\n      lib/xhtml/table\n      lib/xhtml/grid\n   Add <tr> and </tr>\n      lib/xhtml/tab\n\n21.6.21\n   Minor fix in reference for 'all'\n      doc/refA.html\n\n21.6.20\n   Micro-templates 2.0\n      lib/xhtml.l\n      lib/xhtml/\n      doc/microTemplates\n\n21.6.19\n   Wrong 'Attr' output in 'html'\n      lib/xhtml.l\n   'pack' not needed\n      lib/vip.l\n   General argument to 'any'\n      src/io.l\n      doc/refA.html\n\n21.6.18\n   Also 'flip'ped sort in 'sortButton'\n      lib/form.l\n\n21.6.17\n   'sortButton' function\n      lib/form.l\n\n21.6.16\n   Vip running in coroutine\n   Suspend with \"qz\", resume with (v)\n      lib/vip.l\n      doc/refV.html\n\n21.6.15\n   Fix terminal after 'pipe', 'in' and 'out'\n      src/io.l\n\n21.6.14\n   Minor fix indentation\n      src/flow.l\n   Restore private declarations\n      lib/xhtml.l\n   Missing '+Remote' methods\n      lib/db.l\n\n21.6.13\n   Add '\\e' to escape markups\n      src/io.l\n      doc/ref.html\n\n21.6.11\n   Optional 'put' and 'get' function arguments for '+Joint'\n      lib/db.l\n\n21.6.9\n   Revert confirm row deletion (01may21)\n      lib/form.l\n\n21.6.4\n   'ctty' 'NIL' argument is obsolete\n      src/main.l\n      doc/refC.html\n   Minor renaming\n      src/flow.l\n\n21.6.2\n   Push tag stack in \"gf\" command\n      lib/vip.l\n   Add A3 page sizes\n      lib/svg.l\n   Intern some globals for reload\n      lib/form.l\n\n21.6.1\n   'class' clears old method and var definitions\n   'var' uses 'def' instead of 'put'\n      lib.l\n      test/lib.l\n\n21.5.29\n   Set cooked terminal mode in 'repl'\n      src/io.l\n\n21.5.27\n   Revisit TAB-completion\n      lib/vip.l\n   Use 'val' for '+Swap' relations in 'set>'\n      lib/db.l\n\n21.5.25\n   Revisit TAB-completion from 'history'\n      lib/vip.l\n   Unary '+' is obsolete in '*Run' setup\n      lib.l\n\n21.5.24\n   Nesting bug in 'cells'\n      lib/vip/draw.l\n\n21.5.23\n   Maintain 'symbols' per buffer\n      lib/vip.l\n\n21.5.21\n   TAB-complete from 'history' on \": \"\n   \":v\" command\n      lib/vip.l\n\n21.5.20\n   setCooked() only if necessary\n      src/lib.c\n\n21.5.19\n   Add file\n      lib/clang.l\n\n21.5.18\n   Fix 'struct'  example\n      doc/refS.html\n\n21.5.14\n   '<grid>' vertical-aligns to top\n      lib.css\n   Optional submenu CSS class index\n      lib/xhtml.l\n      lib/xhtml/menu\n\n21.5.12\n   Add file\n      doc/microTemplates\n   Needs '*XhtmlField' in '<field>'\n      lib/xhtml.l\n\n21.5.11\n   Don't set IPV6_V6ONLY for OpenBSD\n      lib/net.l\n\n21.5.10\n   64-bit check not needed\n      lib/adm.l\n\n21.5.6\n   Missing '+Remote' methods\n      lib/db.l\n   Missing 'mail' handshake (Mike Pechkin)\n      lib/misc.l\n\n21.5.5\n   Fix catch/throw between coroutines\n      src/dec.l\n      src/main.l\n      src/flow.l\n      doc/structures\n      doc/ref.html\n\n21.5.4\n   I/O save/restore bug in 'co' / 'yield'\n      src/main.l\n      src/flow.l\n   Minor cosmetics (collapse two 'let's)\n      src/flow.l\n   Fix docs and comments about coroutine tags\n      src/main.l\n      src/flow.l\n      doc/ref.html\n      doc/refC.html\n      doc/refS.html\n      doc/refY.html\n\n21.5.3\n   (co) returns tag of current coroutine\n      src/flow.l\n      doc/refC.html\n   'shift' function\n      src/glob.l\n      src/sym.l\n      doc/ref.html\n      doc/refS.html\n      doc/refP.html\n      test/src/sym.l\n\n21.5.1\n   Confirm row deletion also if repeated\n      lib/form.l\n\n21.4.30\n   Add file\n      doc/app.html\n\n21.4.29\n   Call 'loadCoEnv' in 'unwind'\n      src/main.l\n      src/flow.l\n   Remove coroutines from catch/throw environment\n      src/glob.l\n\n21.4.22\n   Show thousands-separator in total counts in search dialogs\n      lib/form.l\n\n21.4.21\n   File in first column of directory listings\n      lib/vip.l\n\n21.4.20\n   Bug in 'till' reading UTF-8\n      src/io.l\n\n21.4.19\n   Align SUBRs to 8 bytes\n      src/lib/llvm.l\n\n21.4.18\n   's-expr' function, evaluate with \"^E\"\n      lib/vip.l\n\n21.4.17\n   'stack' return value fix\n      src/main.l\n      doc/refS.html\n   Infinite timeout for values greater than 24 days in '*Run', 'wait' and 'key'\n   on non-Linux systems (using ppoll(2) on Linux)\n      src/lib.c\n   'stack' continued\n      src/main.l\n\n21.4.16\n   Independent size of main stack segment\n      src/glob.l\n      src/main.l\n      src/flow.l\n      doc/refS.html\n   'stack' returns unused spaces\n      src/main.l\n      doc/refS.html\n   'llvm~cons2' function\n      src/dec.l\n      src/gc.l\n   Coroutine structure 'prv'\n      doc/structures\n   Optional alignment for 'memcpy' and 'memset'\n      src/lib/llvm.l\n      src/main.l\n      src/db.l\n      src/flow.l\n\n21.4.15\n   Infinite timeout for values greater than 24 days in '*Run', 'wait' and 'key'\n   (only on systems with sizeof(int) == 4)\n      src/lib.c\n\n21.4.14\n   Skip remote replication if 'key' is empty\n      src/ssl.c\n\n21.4.13\n   Bug in '<table>': Header text not evaluated\n      lib/xhtml.l\n   ContextCompat 'permit' function\n      lib/android.l\n   'Str' in 'repl' private\n      lib/form.l\n\n21.4.10\n   Minor fix indentation\n      lib/vip.l\n\n21.4.9\n   Extensions to 'NIL' punning\n      doc/ref.html\n\n21.4.8\n   Support '-fun' command line arguments\n      bin/vip\n\n21.4.7\n   'enum?' function\n      src/glob.l\n      src/sym.l\n      doc/ref.html\n      doc/refE.html\n      doc/refL.html\n      test/src/sym.l\n\n21.4.4\n   Wrong external declaration\n      src/ht.l\n\n21.4.3\n   Bug in 'stem' (for -O2 or -O3)\n      src/subr.l\n\n21.4.1\n   'enum' returns cell instead of value\n      src/sym.l\n      doc/refE.html\n      test/src/sym.l\n      doc/faq.html\n   Bug in '*Term' signal handling\n      src/main.l\n\n21.3.31\n   '+Remote' entity class\n      lib/db.l\n      lib/too.l\n\n21.3.30\n   Exit '*', '/*', '/' and '%' upon zero\n      src/big.l\n\n21.3.29\n   Note about the default browser for 'doc' calls\n      man/man1/picolisp.1\n      doc/man.html\n\n21.3.26\n   'enum' with single argument returns association list\n      src/sym.l\n      doc/refE.html\n      test/src/sym.l\n\n21.3.25\n   Return 'NIL' from 'enum' if key <= 0\n      src/sym.l\n   Unit tests for 'enum'\n      test/src/sym.l\n   '*Term' signal handling (Constantine Bitensky)\n      src/glob.l\n      src/main.l\n      doc/ref.html\n      doc/refT.html\n      doc/refA.html\n      doc/refH.html\n      doc/refS.html\n      doc/refW.html\n\n21.3.24\n   'enum' function\n      src/sym.l\n\n21.3.23\n   'enum' function\n      src/glob.l\n      src/sym.l\n      doc/ref.html\n      doc/refE.html\n      doc/refH.html\n      doc/refI.html\n   'rev' function bit count argument\n      src/big.l\n      doc/refR.html\n\n21.3.21\n   'rev' function\n      src/glob.l\n      src/big.l\n      doc/ref.html\n      doc/refR.html\n      doc/refH.html\n      doc/refI.html\n      doc/ref_.html\n\n21.3.17\n   Still missing\n      lib/xm.l\n   Ukrainian and russian localization (Constantine Bitensky)\n      loc/RU.l\n      loc/uk\n      loc/ru\n\n21.3.10\n   Renamed \"UK.l\" to \"UA.l\", restored \"UK.l\" and renamed to \"GB.l\"\n   Renamed \"gr\" to \"el\" and \"jp\" to \"ja\"\n      loc/UA.l\n      loc/GB.l\n      loc/uk\n   Symbolic links\n      UK.l -> GB.l\n      gr -> el\n      jp -> ja\n\n21.3.8\n   Missing file\n      lib/xm.l\n\n21.3.7\n   Ukrainian localization (Constantine Bitensky)\n      loc/UK.l\n      loc/uk\n\n21.3.5\n   Subdirectory recursion buffer-local\n   Recurse when no trailing \"/\"\n      lib/vip.l\n\n21.3.2\n   '*Bye' cleared in children\n      src/io.l\n      lib.l\n      lib/adm.l\n      lib/app.l\n      doc/diff\n\n21.2.28\n   Missing check for 'NIL'\n      lib/vip.l\n\n21.2.26\n   Remove Access-Control-Allow-Origin header\n      lib/http.l\n\n21.2.20\n   Prefix \"@\" with \"./\" in directory listings\n   Recurse into subdirectories with \":E\"\n      lib/vip.l\n\n21.2.16\n   Case insensitive search with \"~\" prefix\n   Increase escape delay to 80 ms\n      lib/vip.l\n\n21.2.12\n   Rename file to \"area\", add \"field\"\n      lib/xhtml.l\n      lib/xhtml/area\n      lib/xhtml/field\n\n21.2.11\n   Elaborate '<area>'\n      lib/xhtml.l\n      lib/xhtml/textarea\n\n21.2.9\n   Ignore SIGHUP for non-config calls\n      src/httpGate.c\n\n21.2.8\n   Start task in first 'heartbeat' call\n      lib/heartbeat.l\n   Touch events not needed\n      lib/xhtml/tab\n\n21.2.7\n   Variable titles in menu\n   Layout template line format\n      lib/xhtml.l\n      lib/xhtml/menu\n      lib/xhtml/layout\n\n21.2.5\n   'plio' must preserve $Ptr and $End\n      src/io.l\n   Load @lib/too.l always in 'psh'\n      lib/http.l\n\n21.2.3\n   Load @lib/sq.l in 'psh'\n      lib/http.l\n\n21.2.2\n   Optional insert string in config keys\n      src/httpGate.c\n      doc/httpGate.html\n\n21.2.1\n   Typo \".pil\" -> \"./pil\"\n      doc/httpGate.html\n\n21.1.28\n   Typo \"none\" -> \"nond\"\n      doc/tut.html\n\n21.1.25\n   Remove 'evCmd' from custom function keys\n      lib/vip.l\n\n21.1.23\n   'fish' function \"skip\" return value\n      src/apply.l\n      doc/refF.html\n      lib/vip.l\n\n21.1.22\n   em80, em90 and em100 styles\n      lib.css\n\n21.1.21\n   Stack check in 'fish'\n      src/apply.l\n\n21.1.20\n   Comment\n      lib/tinymce.l\n\n21.1.18\n   Bug in 'pack' of external symbol names\n      src/sym.l\n\n21.1.17\n   'pil' backport\n      lib/compat.l\n\n21.1.15\n   Micro-templates\n      lib/xhtml.l\n      lib/xhtml/\n   Bug in 'pass'\n      src/apply.l\n   Call 'bufString' instead of 'pathString' in 'token'\n      src/io.l\n\n21.1.14\n   Bug in 'bit?'\n      src/big.l\n\n21.1.8\n   Minor cosmetics\n      src/subr.l\n   Improved terminal reset\n      src/lib.c\n\n21.1.5\n   Debian release\n\nDec20\n   Pil21 initial version\n\n####### 21.0 #######\n"
  },
  {
    "path": "doc/Tracks",
    "content": "# VIP @lib/vip/draw.l\n# 25may23 Software Lab. Alexander Burger\n\n(label 1 1 \"Connectors:\")\n\n(cells 7 6 '(| | | . |))\n(go 1 3 \"-\")\n(right 9 \"+\")\n(down 2 \"v\")\n(go 10 8 \"+\")\n(down 8 \"v\")\n(go 28 6 \"+\")\n(up 3 \"+\")\n(right 14 \">\")\n(go 46 6 \"+\")\n(up 3 \"+\")\n(right 30 \">\")\n\n(box 7 17 13 6 \"Track\"\n   (label 1 1 \"- a\")\n   (label 10 1 \"b -\")\n   (label 2 5 \"x\")\n   (label 11 5 \"y\") )\n(go 7 18 \"+\")\n(left 4 \"+\")\n(up 11 \"+\")\n(right 3 \">\")\n(go 20 18 \"+\")\n(right 4 \">\")\n\n(cells 25 17 '(| | | . |))\n(go 28 17 \"+\")\n(up 3 \"+\")\n(left 11 \"+\")\n(down 2 \"v\")\n(go 76 22 \"-\")\n(left 48 \"+\")\n(up 2 \"\\^\")\n(go 46 19 \"+\")\n(down 6 \"+\")\n(left 45 \"<\")\n(go 64 19 \"+\")\n(down 6 \"+\")\n(left 14 \"<\")\n\n(go 70 17 \"+\")\n(up 6 \"+\")\n(left 58 \"+\")\n(up 2 \"\\^\")\n(go 52 8 \"+\")\n(down 6 \"+\")\n(left 22 \"+\")\n(down 2 \"v\")\n"
  },
  {
    "path": "doc/des.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 29jul25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Discrete-Event Simulation</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<h1>Discrete-Event Simulation (DES)</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>PicoLisp has a <a\nhref=\"http://en.wikipedia.org/wiki/Discrete-event_simulation\">Discrete-Event\nSimulation</a> library in <code>\"@lib/simul.l\"</code>.\n\n<p><ul>\n<li><a href=\"#impl\">Implementation</a>\n<li><a href=\"#glob\">Global Variables</a>\n<li><a href=\"#fun\">Functions</a>\n<li><a href=\"#use\">Usage</a>\n<li><a href=\"#xmpl\">An Example</a>\n</ul>\n\n\n<p><hr>\n<h2><a id=\"impl\">Implementation</a></h2>\n\n<p>The simulated objects (often called \"Agents\") are implemented as separate <a\nhref=\"http://software-lab.de/doc/ref.html#coroutines\">coroutines</a>. These are\ncreated the normal way with <a\nhref=\"http://software-lab.de/doc/refC.html#co\">co</a>, and the library functions\nuse <a href=\"http://software-lab.de/doc/refY.html#yield\">yield</a> to transfer\ncontrol between them.\n\n<p>Only one coroutine may be running at one point in time. All others are either\n\n<p><ul>\n<li>ready to run,\n<li>waiting for the next scheduled point in time, and/or\n<li>waiting for one or several specific signals (events).\n</ul>\n\n<p>A running coroutine can suspend itself, and cause another coroutine to\nresume, by either\n\n<p><ul>\n<li>passing control to the next coroutine, or\n<li>pausing for a given amount of time and/or waiting for signals.\n</ul>\n\n<p>The simulation can optionally run in realtime mode. In that case, it sleeps\nbetween the scheduled points in time, and accepts key strokes for user\ninteraction.\n\n<p>The library consists of five global variables and four functions.\n\n\n<p><hr>\n<h2><a id=\"glob\">Global Variables</a></h2>\n\n<dl>\n\n<dt><code>*Time</code></dt>\n<dd>Simulated system time since the start of the simulation. It can be in any\nunit, but should be in milliseconds if in realtime mode.</dd>\n\n<dt><code>*Ready</code></dt>\n<dd>Queue of coroutines ready to run.</dd>\n\n<dt><code>*Next</code></dt>\n<dd><a href=\"http://software-lab.de/doc/refI.html#idx\">idx</a> tree of\ncoroutines pausing for a given time.</dd>\n\n<dt><code>*Rt</code></dt>\n<dd>Realtime: Either <code>NIL</code> (default), or 1 for wall clock speed, 2\nfor double speed etc.</dd>\n\n<dt><code>*Keys</code></dt>\n<dd>Holds possibly queued key presses (only in realtime mode).</dd>\n\n</dl>\n\n\n<p><hr>\n<h2><a id=\"fun\">Functions</a></h2>\n\n<dl>\n\n<dt><code>(des [. prg])</code></dt>\n<dd>Performs one discrete-event simulation step. It first runs all coroutines in\n<code>*Ready</code> until that queue is empty. Then - if <code>*Next</code> is\nnot empty - advances the simulation to the next point in time, and resumes all\ncorresponding coroutines. In that case, if in realtime mode, it delays execution\nas necessary, handles possible key presses, and runs <code>prg</code> after each\nkey.</dd>\n\n<dt><code>(pause ['cnt|sym] ..) -> any</code></dt>\n<dd>Waits for events (i.e. a time span elapsed or a signal arrived). For a\nnumeric argument, the current coroutine is scheduled in <code>*Next</code> for a\npoint in time after that number of time units. For symbolic arguments, the\ncurrent coroutine is queued into those symbol's event queues. In any case,\ncontrol is passed to the next coroutine.</dd>\n\n<dt><code>(event 'sym 'exe)</code></dt>\n<dd>Sends the signal <code>sym</code> to all coroutines waiting in that symbol's\nevent queue. As a result, these coroutines are removed from the queue and\nappended to the <code>*Ready</code> queue, with the optional <code>exe</code> to\nbe evaluated when resumed. The current coroutine continues to run.</dd>\n\n<dt><code>(wake 'sym 'exe)</code></dt>\n<dd>Wakes up another coroutine <code>sym</code>, by appending it to the\n<code>*Ready</code> queue with the optional 'exe' to be evaluated when resumed.\nThis means that if <code>sym</code> is currently waiting for a point in time in\n<code>*Next</code>, it is removed from that index (i.e. the pause is aborted).\nAlso, if <code>sym</code> is waiting for signals, it is removed from those event\nqueues. The current coroutine continues to run.</dd>\n\n</dl>\n\n\n<p><hr>\n<h2><a id=\"use\">Usage</a></h2>\n\n<p>A typical DES program will start some coroutines and let them perform their\ninitial work until they need to pause.\n\n<p>That means, if a given operation in the simulation is supposed to take\n<code>cnt</code> time units, this coroutine calls <code>pause</code> with that\nnumber. Or, if it depends on some signals from another part of the program, it\nmay call <code>pause</code> with those symbols. In any case - as it has nothing\nelse to do - it goes to sleep.\n\n<p>When all of them wait for a time or signal, control is returned to the main\nprogram. All coroutines are now waiting in <code>*Next</code> or some signal\nevent queue (or in <code>*Ready</code> if they just gave up control with\n<code>(pause)</code>).\n\n<p>The main program may now check <code>*Next</code> and perhaps\n<code>*Ready</code>. If both are empty, no further events can occur, and the\nprogram may terminate.\n\n<p>Otherwise, it calls <code>des</code> to continue with the next step(s).\n\n<p>At any time, a coroutine or the main program may call <code>wake</code>, for\nexample to interrupt another coroutine and cause it to <a\nhref=\"http://software-lab.de/doc/refT.html#throw\">throw</a> into some other\ncontext, or have that coroutine's <code>pause</code> return a special value by\nevaluating the <code>exe</code> argument.\n\n\n\n<p><hr>\n<h2><a id=\"xmpl\">An Example</a></h2>\n\n<p>Let's use DES to demonstrate the well-known <a\nhref=\"http://en.wikipedia.org/wiki/Dining_philosophers_problem\">Dining\nPhilosophers Problem</a>.\n\n<p> Put the following code into a file \"dining.l\".\n\n<hr>\n<pre>\n# 07sep23 Software Lab. Alexander Burger\n# Dining Philosophers\n# pil dining.l -dining~main +\n\n(load \"@lib/simul.l\")\n\n(symbols 'dining 'simul 'pico)\n\n(local) (*ForkA *ForkB *ForkC *ForkD *ForkE now think)\n\n(de now (Str)\n   (prinl (tim$ (* 60 *Time)) \" \" (co) \" \" Str) )\n\n(de think (Left Right)\n   (loop\n      (now \"thinking\")\n      (pause (rand 180 240))  # 3 to 4 hours\n      (now \"hungry\")\n      (while (or (val Left) (val Right))\n         (now \"waiting\")\n         (pause Left Right) )\n      (set Left (set Right (co)))\n      (now \"eating\")\n      (pause 20)  # 20 minutes\n      (set Left (set Right NIL))\n      (event Left)\n      (event Right) ) )\n\n(local) main\n\n(de main ()\n   (symbols '(dining simul pico))\n   (co 'Aristotle\n      (think '*ForkA '*ForkB) )\n   (co 'Kant\n      (think '*ForkB '*ForkC) )\n   (co 'Spinoza\n      (think '*ForkC '*ForkD) )\n   (co 'Marx\n      (think '*ForkD '*ForkE) )\n   (co 'Russell\n      (think '*ForkE '*ForkA) ) )\n</pre>\n<hr>\n\n<p>It uses five global variables <code>*ForkA</code> through <code>*ForkE</code>\nand five coroutines <code>Aristotle</code>, <code>Kant</code>,\n<code>Spinoza</code>, <code>Marx</code> and <code>Russell</code>. They all run\nthe same function <code>think</code>, with their neighboring forks as\n<code>Left</code> and <code>Right</code> arguments.\n\n<p>In <code>think</code>, each philospher is first \"thinking\" for a random time\nbetween three and four hours. Then it gets \"hungry\", tries to pick up both\nforks, and - if at least one of the forks is in use - starts \"waiting\" for a\nleft or right fork signal from another philosopher, and checks the forks again.\n\n<p>Now both forks are free. The philosopher puts himself into both (it could put\nin fact any non-<code>NIL</code> value), then is \"eating\" for 20 minutes,\nreleases both forks by setting them to <code>NIL</code>, and sends a left and a\nright fork signal to the neighboring philosophers possibly waiting for the\nforks.\n\n<p>The simulation cannot deadlock, because both forks are picked up and released\natomically, and because coroutines waiting for fork signals are always queued\nafter the other waiting coroutines.\n\n<h2>Sample Run</h2>\n\n<pre>\n$ ./pil misc/dining.l -dining~main +\n00:00 Aristotle thinking\n00:00 Kant thinking\n00:00 Spinoza thinking\n00:00 Marx thinking\n00:00 Russell thinking\ndining: (more (stack))\n(Russell . 62)\n(Marx . 62)\n(Spinoza . 62)\n(Kant . 62)\n(Aristotle . 62)\n(T . 155)\n-> NIL\ndining: *Ready\n-> NIL\ndining: (idx '*Next)\n-> ((180 . Aristotle) (194 . Marx) (198 . Russell) (201 . Spinoza) (229 . Kant))\ndining: (des)\n03:00 Aristotle hungry\n03:00 Aristotle eating\n-> NIL\ndining: (des)\n03:14 Marx hungry\n03:14 Marx eating\n-> NIL\ndining: (des)\n03:18 Russell hungry\n03:18 Russell waiting\n-> NIL\ndining: (do 10 (des))\n03:20 Aristotle thinking\n03:20 Russell waiting\n03:21 Spinoza hungry\n03:21 Spinoza waiting\n03:34 Marx thinking\n03:34 Spinoza eating\n03:34 Russell eating\n03:49 Kant hungry\n03:49 Kant waiting\n03:54 Russell thinking\n03:54 Spinoza thinking\n03:54 Kant eating\n04:14 Kant thinking\n06:27 Aristotle hungry\n06:27 Aristotle eating\n06:47 Aristotle thinking\n06:47 Marx hungry\n06:47 Marx eating\n07:07 Marx thinking\n07:40 Russell hungry\n07:40 Russell eating\n-> NIL\ndining:\n</pre>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/doc.css",
    "content": "/* 22oct23 Software Lab. Alexander Burger\n * 06dec12jk\n */\n\nhtml {\n   background-color: #ddd;\n}\n\nbody {\n   margin: auto;\n   max-width: 50em;\n   border: 1px solid #bbb;\n   background-color: white;\n   padding: 2em 7% 4em 10%;\n}\n\nh5 {\n   font-size: 95%;\n   margin-bottom: 1em;\n}\n\ndt {\n   margin: 0.4em -2em 0 0;\n   font-weight: 600;\n   color: #444;\n}\n\ndd {\n   margin-top: 0.3em;\n   margin-bottom: 0.4em;\n}\n\ncode, pre {\n   color: rgb(0%,40%,0%);\n}\n\ndt code {\n   word-spacing: -0.04em;\n}\n"
  },
  {
    "path": "doc/faq.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 08may24 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>PicoLisp FAQ</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<p style=\"text-align: right\">\n<i>Monk: \"If I have nothing in my mind, what shall I do?\"</i><br>\n<i>Joshu: \"Throw it out.\"</i><br>\n<i>Monk: \"But if there is nothing, how can I throw it out?\"</i><br>\n<i>Joshu: \"Well, then carry it out.\"</i><br>\n<i>(Zen koan)</i><br>\n\n<h1>PicoLisp Frequently Asked Questions</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p><ul>\n<li><a href=\"#yet\">Why did you write yet another Lisp?</a>\n<li><a href=\"#who\">Who can use PicoLisp?</a>\n<li><a href=\"#advantages\">What are the advantages over other Lisp systems?</a>\n<li><a href=\"#performance\">How is the performance compared to other Lisp systems?</a>\n<li><a href=\"#interpreted\">What does \"interpreted\" mean?</a>\n<li><a href=\"#compiler\">Is there (or will be in the future) a compiler available?</a>\n<li><a href=\"#portable\">Is it portable?</a>\n<li><a href=\"#webServer\">Is PicoLisp a web server?</a>\n<li><a href=\"#lambda\">I cannot find the LAMBDA keyword in PicoLisp</a>\n<li><a href=\"#dynamic\">Why do you use dynamic variable binding?</a>\n<li><a href=\"#problems\">Are there no problems caused by dynamic binding?</a>\n<li><a href=\"#closures\">But with dynamic binding I cannot implement closures!</a>\n<li><a href=\"#macros\">Do you have macros?</a>\n<li><a href=\"#threads\">Can I run threads?</a>\n<li><a href=\"#strings\">Why are there no strings?</a>\n<li><a href=\"#arrays\">What about arrays?</a>\n<li><a href=\"#floats\">How to do floating point arithmetic?</a>\n<li><a href=\"#bind\">What happens when I locally bind a symbol which has a function definition?</a>\n<li><a href=\"#hardware\">Would it make sense to build PicoLisp in hardware?</a>\n<li><a href=\"#segfault\">I get a segfault if I ...</a>\n<li><a href=\"#ask\">Where can I ask questions?</a>\n</ul>\n\n<p><hr>\n<h2><a id=\"yet\">Why did you write yet another Lisp?</a></h2>\n\n<p>Because other Lisps are not the way I'd like them to be. They concentrate on\nefficient compilation, and lost the one-to-one relationship of language and\nvirtual machine of an interpreted system, gave up power and flexibility, and\nimpose unnecessary limitations on the freedom of the programmer. Other reasons\nare the case-insensitivity and complexity of current Lisp systems.\n\n\n<p><hr>\n<h2><a id=\"who\">Who can use PicoLisp?</a></h2>\n\n<p>PicoLisp is for programmers who want to control their programming\nenvironment, at all levels, from the application domain down to the bare metal,\nwho want to use a transparent and simple - yet universal - programming model,\nand who want to know exactly what is going on.\n\n<p>It does <i>not</i> pretend to be easy to learn. There are already plenty of\nlanguages that do so. It is not for people who don't care what's under the hood,\nwho just want to get their application running. They are better served with some\nstandard, \"safe\" black-box, which may be easier to learn, and which allegedly\nbetter protects them from their own mistakes.\n\n\n<p><hr>\n<h2><a id=\"advantages\">What are the advantages over other Lisp systems?</a></h2>\n\n<h3>Simplicity</h3>\n<p>PicoLisp is easy to understand and adapt. There is no compiler enforcing\nspecial rules, and the interpreter is simple and straightforward. There are only\nthree data types: Numbers, symbols and lists (\"LISP\" means \"List-, Integer- and\nSymbol Processing\" after all ;-). The memory footprint is minimal, and the\ntarball size of the whole system is just a few hundred kilobytes.\n\n<h3>A Clear Model</h3>\n<p>Most other systems define the language, and leave it up to the implementation\nto follow the specifications. Therefore, language designers try to be as\nabstract and general as possible, leaving many questions and ambiguities to the\nusers of the language.\n\n<p>PicoLisp does the opposite. Initially, only the single-cell data structure\nwas defined, and then the structure of numbers, symbols and lists as they are\ncomposed of these cells. Everything else in the whole system follows from these\naxioms. This is documented in the chapter about <a href=\"ref.html#vm\">The\nPicoLisp Machine</a> in the reference manual.\n\n<h3>Orthogonality</h3>\n<p>There is only one symbolic data type, no distinction (confusion) between\nsymbols, strings, variables, special variables and identifiers.\n\n<p>Most data-manipulation functions operate on the values of symbols as well as\nthe CARs of cons pairs:\n\n<pre>\n: (let (N 7  L (7 7 7)) (inc 'N) (inc (cdr L)) (cons N L))\n-> (8 7 8 7)\n</pre>\n\n<p>There is only a single functional type, no \"special forms\". As there is no\ncompiler, functions can be used instead of macros. No special \"syntax\"\nconstructs are needed. This allows a completely orthogonal use of functions. For\nexample, most other Lisps do not allow calls like\n\n<pre>\n: (mapcar if '(T NIL T NIL) (1 2 3 4) (5 6 7 8))\n-> (1 6 3 8)\n</pre>\n\n<p>PicoLisp has no such restrictions. It favors the principle of \"Least\nAstonishment\".\n\n<h3>Object System</h3>\n<p>The OOP system is very powerful, because it is fully dynamic, yet extremely\nsimple:\n\n<p><ul>\n<li>In other systems you have to statically declare \"slots\". In PicoLisp,\nclasses and objects are completely dynamic, they are created and extended at\nruntime. \"Slots\" don't even exist at creation time. They spring into existence\npurely dynamically. You can add any new property or any new method to any single\nobject, at any time, regardless of its class.\n\n<li>The multiple inheritance is such that not only classes can have several\nsuperclasses, but each individual object can be of more than one class.\n\n<li>Prefix classes can surgically change the inheritance tree for any class or\nobject. They behave like Mixins in this regard.\n\n<li>Fine-control of inheritance in methods with <code><a\nhref=\"refS.html#super\">super</a></code> and <code><a\nhref=\"refE.html#extra\">extra</a></code>.\n\n</ul>\n\n<h3>Pragmatism</h3>\n<p>PicoLisp has many practical features not found in other Lisp dialects. Among\nthem are:\n\n<p><ul>\n<li>Auto-quoting of lists when the CAR is a number. Instead of <code>'(1 2\n3)</code> you can just write <code>(1 2 3)</code>. This is possible because a\nnumber never makes sense as a function name, and has to be checked at runtime\nanyway.\n\n<li>The <code><a href=\"refQ.html#quote\">quote</a></code> function returns all\nunevaluated arguments, instead of just the first one. This is both faster\n(<code>quote</code> does not have to take the CAR of its argument list) and\nsmaller (a single cell instead of two). For example, <code>'A</code> expands to\n<code>(quote . A)</code> and <code>'(A B C)</code> expands to <code>(quote A B\nC)</code>.\n\n<li>The symbol <code><a href=\"ref.html#atres\">@</a></code> is automatically\nmaintained as a local variable, and set implicitly in certain flow- and\nlogic-functions. This makes it often unnecessary to allocate and assign local\nvariables.\n\n<li><a href=\"tut.html#funio\">Functional I/O</a> is more convenient than\nexplicitly passing around file descriptors.\n\n<li>A well-defined <a href=\"ref.html#cmp\">ordinal relationship</a> between\narbitrary data types facilitates generalized comparing and sorting.\n\n<li>Uniform handling of <code>var</code> locations (i.e. values of symbols and\nCARs of cons pairs).\n\n<li>The universality and usefulness of symbol properties is enforced and\nextended with implicit and explicit bindings of the symbol <code><a\nhref=\"refT.html#This\">This</a></code> in combination with the access functions\n<code><a href=\"ref_.html#=:\">=:</a></code>, <code><a\nhref=\"ref_.html#:\">:</a></code> and <code><a href=\"ref_.html#::\">::</a></code>.\n\n<li>A very convenient list-building machinery, using the <code><a\nhref=\"refL.html#link\">link</a></code>, <code><a\nhref=\"refY.html#yoke\">yoke</a></code>, <code><a\nhref=\"refC.html#chain\">chain</a></code> and <code><a\nhref=\"refM.html#made\">made</a></code> functions in the <code><a\nhref=\"refM.html#make\">make</a></code> environment.\n\n<li>The syntax of often-used functions is kept non-verbose. For example, instead\nof <code>(let ((A 1) (B 2) C 3) ..)</code> you write <code>(let (A 1 B 2 C 3)\n..)</code>, or just <code>(let A 1 ..)</code> if there is only a single\nvariable.\n\n<li>The use of the hash (<code>#</code>) as a comment character is more appropriate\ntoday, and allows a clean hash-bang (<code>#!</code>) syntax for stand-alone\nscripts.\n\n<li>The interpreter is <a href=\"ref.html#invoc\">invoked</a> with a simple and\nflexible syntax, where command line arguments are either files to be interpreted\nor functions to be directly executed. With that, many tasks can be performed\nwithout writing a separate <a href=\"tut.html#script\">script</a>.\n\n<li>A sophisticated system of interprocess communication, file locking and\nsynchronization allows multi-user access to database applications.\n\n<li>A general and dynamic interface for <a href=\"native.html\">Native C Calls</a>\n(FFI).\n\n<li>A Prolog interpreter is tightly integrated into the language. Prolog\nclauses can call Lisp expressions and vice versa, and a self-adjusting\ndepth-first search predicate <code>select</code> can be used in database\nqueries.\n\n</ul>\n\n<h3>Persistent Symbols</h3>\n<p>Database objects (\"external\" symbols) are a primary data type in PicoLisp.\nThey look like normal symbols to the programmer, but are managed in the database\n(fetched from, and stored to) automatically by the system. Symbol manipulation\nfunctions like <code>set</code>, <code>put</code> or <code>get</code>, the\ngarbage collector, and other parts of the interpreter know about them.\n\n<h3>Application Server</h3>\n<p>It is a stand-alone system (it does not depend on external programs like\nApache or MySQL) and it provides a \"live\" user interface on the client side,\nwith an application server session for each connected client. The GUI layout and\nbehavior are described with S-expressions, generated dynamically at runtime, and\ninteract directly with the database structures.\n\n<h3>Localization</h3>\n<p>Internal exclusive and full use of UTF-8 encoding, and self-translating <a\nhref=\"ref.html#transient-io\">transient symbols</a> (strings), make it easy to\nwrite country- and language-independent applications.\n\n\n<p><hr>\n<h2><a id=\"performance\">How is the performance compared to other Lisp systems?</a></h2>\n\n<p>Despite the fact that PicoLisp is an interpreted-only system, the performance\nis quite good. Typical Lisp programs operating on list data structures are\nexecuted in (interpreted) PicoLisp at about the same speed as in (compiled)\nCMUCL, and about two or three times faster than in CLisp or Scheme48.\n\n<p>But in practice, speed was never a problem, even with the first versions of\nPicoLisp in 1988 on a Mac II with a 12 MHz CPU. And certain things are cleaner\nand easier to do in <code>C</code> (or other low-level languages) anyway. It is\nvery easy to write <code>C</code> functions in PicoLisp, either in the kernel,\nas shared object libraries, or even inline in the Lisp code.\n\n<p>PicoLisp is very space-efficient. Other Lisp systems reserve heap space twice\nas much as needed, or use rather large internal structures to store cells and\nsymbols. Each cell or minimal symbol in PicoLisp consists of only two pointers.\nNo additional tags are stored, because they are implied in the pointer\nencodings. No gaps remain in the heap during allocation, as there are only\nobjects of a single size. As a result, consing and garbage collection are very\nfast, and overall performance benefits from a better cache efficiency. Heap and\nstack grow automatically, and are limited only by hardware and operating system\nconstraints.\n\n\n<p><hr>\n<h2><a id=\"interpreted\">What does \"interpreted\" mean?</a></h2>\n\n<p>It means to directly execute Lisp data as program code. No transformation to\nanother representation of the code (e.g. compilation), and no structural\nmodifications of these data, takes place.\n\n<p>Lisp data are the \"real\" things, like numbers, symbols and lists, which can\nbe directly handled by the system. They are <i>not</i> the textual\nrepresentation of these structures (which is outside the Lisp realm and taken\ncare of by the <code><a href=\"refR.html#read\">read</a></code>ing and <code><a\nhref=\"refP.html#print\">print</a></code>ing functions).\n\n<p>The following example builds a function and immediately calls it with two\narguments:\n\n<pre>\n: ((list (list 'X 'Y) (list '* 'X 'Y)) 3 4)\n-> 12\n</pre>\n\n<p>Note that no time is wasted to build up a lexical environment. Variable\nbindings take place dynamically during interpretation.\n\n<p>A PicoLisp function is able to inspect or modify itself while it is running\n(though this is rarely done in application programming). The following function\nmodifies itself by incrementing the '0' in its body:\n\n<pre>\n(de incMe ()\n   (do 8\n      (printsp 0)\n      (inc (cdadr (cdadr incMe))) ) )\n\n: (incMe)\n0 1 2 3 4 5 6 7 -> 8\n: (incMe)\n8 9 10 11 12 13 14 15 -> 16\n</pre>\n\n<p>Only an interpreted Lisp can fully support such \"Equivalence of Code and\nData\". If executable pieces of data are used frequently, like in PicoLisp's\ndynamically generated GUI, a fast interpreter is preferable over any compiler.\n\n\n<p><hr>\n<h2><a id=\"compiler\">Is there (or will be in the future) a compiler available?</a></h2>\n\n<p>No. That would contradict the idea of PicoLisp's simple virtual machine\nstructure. A compiler transforms it to another (physical) machine, with the\nresult that many assumptions about the machine's behavior won't hold any more.\nBesides that, PicoLisp primitive functions evaluate their arguments\nindependently and are not suited for being called from compiled code. Finally,\nthe gain in execution speed would probably not be worth the effort. Typical\nPicoLisp applications often use single-pass code which is loaded, executed and\nthrown away; a process that would be considerably slowed down by compilation.\n\n\n<p><hr>\n<h2><a id=\"portable\">Is it portable?</a></h2>\n\n<p>Yes and No. Though we wrote and tested PicoLisp originally only on Linux, it\nnow also runs on many other POSIX systems. The first versions were even fully\nportable between DOS, SCO-Unix and Macintosh systems. But today we have Linux.\nLinux itself is very portable, and you can get access to a Linux system almost\neverywhere. So why bother?\n\n<p>The GUI is completely platform independent (Browser), and in the age of the\nInternet an application <u>server</u> does not really need to be portable.\n\n\n<p><hr>\n<h2><a id=\"webServer\">Is PicoLisp a web server?</a></h2>\n\n<p>Not really, but it evolved a great deal into that direction.\n\n<p>Historically it was the other way round: We had a plain X11 GUI for our\napplications, and needed something platform independent. The solution was\nobvious: Browsers are installed virtually everywhere. So we developed a protocol\nwhich persuades a browser to function as a GUI front-end to our applications.\nThis is much simpler than to develop a full-blown web server.\n\n\n<p><hr>\n<h2><a id=\"lambda\">I cannot find the LAMBDA keyword in PicoLisp</a></h2>\n\n<p>Because it isn't there. The reason is that it is redundant; it is equivalent\nto the <code>quote</code> function in any aspect, because there's no distinction\nbetween code and data in PicoLisp, and <code>quote</code> returns the whole\n(unevaluated) argument list. If you insist on it, you can define your own\n<code>lambda</code>:\n\n<pre>\n: (def 'lambda quote)\n-> lambda\n: ((lambda (X Y) (+ X Y)) 3 4)\n-> 7\n: (mapcar (lambda (X) (+ 1 X)) (1 2 3 4 5))\n-> (2 3 4 5 6)\n</pre>\n\n\n<p><hr>\n<h2><a id=\"dynamic\">Why do you use dynamic variable binding?</a></h2>\n\n<p>Dynamic binding is very powerful, because there is only one single,\ndynamically changing environment active all the time. This makes it possible\n(e.g. for program snippets, interspersed with application data and/or passed\nover the network) to access the whole application context, freely, yet in a\ndynamically controlled manner. And (shallow) dynamic binding is the fastest\nmethod for a Lisp interpreter.\n\n<p>Lexical binding is more limited by definition, because each environment is\ndeliberately restricted to the visible (textual) static scope within its\nestablishing form. Therefore, most Lisps with lexical binding introduce \"special\nvariables\" to support dynamic binding as well, and constructs like\n<code>labels</code> to extend the scope of variables beyond a single function.\n\n<p>In PicoLisp, function definitions are normal symbol values. They can be\ndynamically rebound like other variables. As a useful real-world example, take\nthis little gem:\n\n<pre>\n(de recur recurse\n   (run (cdr recurse)) )\n</pre>\n\n<p>It implements anonymous recursion, by defining <code>recur</code> statically\nand <code>recurse</code> dynamically. Usually it is very cumbersome to think up\na name for a function (like the following one) which is used only in a single\nplace. But with <code>recur</code> and <code>recurse</code> you can simply\nwrite:\n\n<pre>\n: (mapcar\n   '((N)\n      (recur (N)\n         (if (=0 N)\n            1\n            (* N (recurse (- N 1))) ) ) )\n   (1 2 3 4 5 6 7 8) )\n-> (1 2 6 24 120 720 5040 40320)\n</pre>\n\n<p>Needless to say, the call to <code>recurse</code> does not have to reside in\nthe same function as the corresponding <code>recur</code>. Can you implement\nanonymous recursion so elegantly with lexical binding?\n\n\n<p><hr>\n<h2><a id=\"problems\">Are there no problems caused by dynamic binding?</a></h2>\n\n<p>You mean the <i>funarg</i> problem, or problems that arise when a variable\nmight be bound to <i>itself</i>? For that reason we have a convention in\nPicoLisp to use <a href=\"ref.html#transient-io\">transient symbols</a> (instead\nof internal symbols) or <a href=\"refP.html#private\">private</a> internal symbols\n\n<ol>\n\n<li>for all parameters and locals, when functional arguments or executable lists\nare passed through the current dynamic bindings\n\n<li>for a parameter or local, when that symbol might possibly be (directly or\nindirectly) bound to itself, and the bound symbol's value is accessed in the\ndynamic context.\n\n</ol>\n\n<p>This is a form of lexical <i>scoping</i> - though we still have dynamic\n<i>binding</i> - of symbols, similar to the <code>static</code> keyword in\n<code>C</code>.\n\n<p>In fact, these problems are a real threat, and may lead to mysterious bugs\n(other Lisps have similar problems, e.g. with symbol capture in macros). They\ncan be avoided, however, when the above conventions are observed. As an example,\nconsider a function which doubles the value in a variable:\n\n<pre>\n(de double (Var)\n   (set Var (* 2 (val Var))) )\n</pre>\n\n<p>This works fine, as long as we call it as <code>(double 'X)</code>, but will\nbreak if we call it as <code>(double 'Var)</code>. Therefore, the correct\nimplementation of <code>double</code> should be:\n\n<pre>\n(de double (\"Var\")\n   (set \"Var\" (* 2 (val \"Var\"))) )\n</pre>\n\n<p>If <code>double</code> is defined that way in a separate source file, then\nthe symbol <code><u>Var</u></code> is locked into a private lexical context and\ncannot conflict with other symbols.\n\n<p>Admittedly, there are two disadvantages with this solution:\n\n<ol>\n\n<li>The rules for when to use transient or private symbols are a bit\ncomplicated. Though it is safe to use them even when not necessary, it will take\nmore space then and be more difficult to debug.\n\n<li>The string-like syntax of transient symbols as variables may look strange to\nalumni of other languages. With private symbols this is not an issue.\n\n</ol>\n\nFortunately, these pitfalls do not occur so very often, and seem more likely in\nutilities than in production code, so that they can be easily encapsulated.\n\n\n<p><hr>\n<h2><a id=\"closures\">But with dynamic binding I cannot implement closures!</a></h2>\n\n<p>This is not true. Closures are a matter of scope, not of binding.\n\n<p>For a closure it is necessary to build and maintain a separate environment.\nIn a system with lexical bindings, this has to be done at <i>each</i> function\ncall, and for compiled code it is the most efficient strategy anyway, because it\nis done once by the compiler, and can then be accessed as stack frames at\nruntime.\n\n<p>For an interpreter, however, this is quite an overhead. So it should not be\ndone automatically at each and every function invocation, but only if needed.\n\n<p>You have several options in PicoLisp. For simple cases, you can take\nadvantage of the static scope of <a href=\"ref.html#transient-io\">transient</a>\nor <a href=\"refP.html#private\">private</a> symbols. For the general case, PicoLisp has built-in functions like\n<code><a href=\"refB.html#bind\">bind</a></code> or <code><a\nhref=\"refJ.html#job\">job</a></code>, which dynamically manage statically scoped\nenvironments.\n\n<p>Environments are first-class objects in PicoLisp, more flexible than\nhard-coded closures, because they can be created and manipulated independently\nfrom the code.\n\n<p>As an example, consider a currying function:\n\n<pre>\n(de curry Args\n   (list (car Args)\n      (list 'list\n         (lit (cadr Args))\n         (list 'cons ''job\n            (list 'cons\n               (list 'lit (list 'env (lit (car Args))))\n               (lit (cddr Args)) ) ) ) ) )\n</pre>\n\n<p>When called, it returns a function-building function which may be applied to\nsome argument:\n\n<pre>\n: ((curry (X) (N) (* X N)) 3)\n-> ((N) (job '((X . 3)) (* X N)))\n</pre>\n\n<p>or used as:\n\n<pre>\n: (((curry (X) (N) (* X N)) 3) 4)\n-> 12\n</pre>\n\n<p>In other cases, you are free to choose a shorter and faster solution. If (as\nin the example above) the curried argument is known to be immutable:\n\n<pre>\n(de curry Args\n   (list\n      (cadr Args)\n      (list 'fill\n         (lit (cons (car Args) (cddr Args)))\n         (lit (cadr Args)) ) ) )\n</pre>\n\n<p>Then the function built above will just be:\n\n<pre>\n: ((curry (X) (N) (* X N)) 3)\n-> ((X) (* X 3))\n</pre>\n\n<p>In that case, the \"environment build-up\" is reduced by a simple (lexical)\nconstant substitution with zero runtime overhead.\n\n<p>Note that the actual <code><a href=\"refC.html#curry\">curry</a></code>\nfunction is simpler and more pragmatic. It combines both strategies (to use\n<code>job</code>, or to substitute), deciding at runtime what kind of function\nto build.\n\n\n<p><hr>\n<h2><a id=\"macros\">Do you have macros?</a></h2>\n\n<p>Yes, there is a macro mechanism in PicoLisp, to build and immediately execute\na list of expressions. But it is seldom used. Macros are a kludge. Most things\nwhere you need macros in other Lisps are directly expressible as functions in\nPicoLisp, which (as opposed to macros) can be applied, passed around, and\ndebugged.\n\n<p>For example, Common Lisp's <code>DO*</code> macro, written as a function:\n\n<pre>\n(de do* \"Args\"\n   (bind (mapcar car (car \"Args\"))\n      (for \"A\" (car \"Args\")\n         (set (car \"A\") (eval (cadr \"A\"))) )\n      (until (eval (caadr \"Args\"))\n         (run (cddr \"Args\"))\n         (for \"A\" (car \"Args\")\n            (and (cddr \"A\") (set (car \"A\") (run @))) ) )\n      (run (cdadr \"Args\")) ) )\n</pre>\n\n\n<p><hr>\n<h2><a id=\"threads\">Can I run threads?</a></h2>\n\n<p>This is not possible. Threads share memory and other resources (as opposed to\nprocesses, which are better isolated from each other). Each thread has its own\nstack for private data, but PicoLisp uses dynamic binding, where the stack holds\nthe <i>saved</i> values instead of the <i>current</i> values of symbols. As a\nresult, each running thread would overwrite the symbol bindings of other\nthreads.\n\n<p>Instead, PicoLisp uses separate processes - and interprocess communication -\nfor parallel execution, or <a href=\"ref.html#coroutines\">coroutines</a> as a\nkind of <i>cooperative</i> threads running a controlled way and doing all\nnecessary housekeeping.\n\n<p>Another advantage of separate processes over threads: They can be distributed\nacross multiple machines, and therefore scale better.\n\n\n<p><hr>\n<h2><a id=\"strings\">Why are there no strings?</a></h2>\n\n<p>Because PicoLisp has something better: <a\nhref=\"ref.html#transient-io\">Transient symbols</a>. They look and behave like\nstrings in any respect, but are nevertheless true symbols, with a value and a\nproperty list.\n\n<p>This leads to interesting opportunities. The value, for example, can point to\nother data that represent the string's translation. This is used extensively for\nlocalization. When a program calls\n\n<pre>\n   (prinl \"Good morning!\")\n</pre>\n\n<p>then changing the value of the symbol <code>\"Good morning!\"</code> to its\ntranslation will change the program's output at runtime.\n\n<p>Transient symbols are also quite memory-conservative. As they are stored in\nnormal heap cells, no additional overhead for memory management is induced. The\ncell holds the symbol's value in its CDR, and the tail in its CAR. If the string\nis not longer than 7 bytes, it fits completely into the tail, and a single cell\nsuffices. Up to 15 bytes take up two cells, 23 bytes three etc., so that long\nstrings are not very efficient (needing twice the memory on the average), but\nthis disadvantage is made up by simplicity and uniformity. And lots of extremely\nlong strings are not the common case, as they are split up anyway during\nprocessing, and stored as plain byte sequences in external files and databases.\n\n<p>Because transient symbols are temporarily interned (while <code><a\nhref=\"refL.html#load\">load</a></code>ing the current source file), they are\nshared within the same source and occupy that space only once, even if they\noccur multiple times within the same file.\n\n\n<p><hr>\n<h2><a id=\"arrays\">What about arrays?</a></h2>\n\n<p>PicoLisp has no array or vector data type. Instead, lists must be used for\nany type of sequentially arranged data.\n\n<p>We believe that arrays are usually overrated. Textbook wisdom tells that they\nhave a constant access time O(1) when the index is known. Many other operations\nlike splits or insertions are expensive. Access with a known (numeric) index is\nnot typical for Lisp, and even then the advantage of an array is significant\nonly if it is relatively long. Holding lots of data in long arrays, however,\nsmells quite like a program design error, and we suspect that often more\nstructured representations like trees or interconnected objects would be better.\n\n<p>In practice, most arrays are rather short, or the program can be designed in\nsuch a way that long arrays (or at least an indexed access) are avoided.\n\n<p>Using lists, on the other hand, has advantages. We have so many concerted\nfunctions that uniformly operate on lists. There is no separate data type that\nhas to be handled by the interpreter, garbage collector, I/O, database and so\non. Lists can be made circular. And lists don't cause memory fragmentation.\n\n<p>Still, if there is really a need to access large amounts of data with a\nnumeric index, <code><a href=\"refE.html#enum\">enum</a></code> can be used. It\nemulates a multidimensional - possibly sparse - array. It takes roughly 1.5 the\nspace a linear list would require, and is very fast.\n\n\n<p><hr>\n<h2><a id=\"floats\">How to do floating point arithmetic?</a></h2>\n\n<p>PicoLisp does not support real floating point numbers. You can do all kinds\nof floating point calculations by calling existing library functions via\n<code><a href=\"refN.html#native\">native</a></code>, inline-C code, and/or by\nloading the \"@lib/math.l\" library.\n\n<p>But PicoLisp has something even (arguably) better: Scaled <a\nhref=\"ref.html#num-io\">fixpoint numbers</a>, with unlimited precision.\n\n<p>The reasons for this design decision are manifold. Floating point numbers\nsmack of imperfection, they don't give \"exact\" results, have limited precision\nand range, and require an extra data type. It is hard to understand what really\ngoes on (How many digits of precision do we have today? Are perhaps 10-byte\nfloats used for intermediate results? How does rounding behave?).\n\n<p>For fixpoint support, the system must handle just integer arithmetic, I/O and\nstring conversions. The rest is under programmer's control and responsibility\n(the essence of PicoLisp).\n\n<p>Carefully scaled fixpoint calculations can do anything floating point can do.\n\n\n<p><hr>\n<h2><a id=\"bind\">What happens when I locally bind a symbol which has a function definition?</a></h2>\n\n<p>That's not a good idea. The next time that function gets executed within the\ndynamic context the program may crash. Therefore we have a convention to use an\nupper case first letter for locally bound symbols:\n\n<pre>\n(de findCar (Car List)\n   (when (member Car (cdr List))\n      (list Car (car List)) ) )\n</pre>\n\n;-)\n\n\n<p><hr>\n<h2><a id=\"hardware\">Would it make sense to build PicoLisp in hardware?</a></h2>\n\n<p>At least it should be interesting. It would be a machine executing list\n(tree) structures instead of linear instruction sequences. \"Instruction\nprefetch\" would look down the CAR- and CDR-chains, and perhaps need only a\nsingle cache for both data and instructions.\n\n<p>Primitive functions like <code>set</code>, <code>val</code>, <code>if</code>\nand <code>while</code>, which are written in <code>C</code> or assembly language\nnow, would be implemented in microcode. Plus a few I/O functions for hardware\naccess. <code>EVAL</code> itself would be a microcode subroutine.\n\n<p>Only a single heap and a single stack is needed. They grow towards each\nother, and cause garbage collection if they get too close. Heap compaction is\ntrivial due to the single cell size.\n\n<p>There would be no assembly-language. The lowest level (above the hardware and\nmicrocode levels) are s-expressions: The machine language is <i>Lisp</i>.\n\n\n<p><hr>\n<h2><a id=\"segfault\">I get a segfault if I ...</a></h2>\n\n<p>It is easy to produce a segfault in PicoLisp. Just set a symbol to a value\nwhich is not a function, and call it:\n\n<pre>\n: (setq foo 1)\n-> 1\n: (foo)\nSegmentation fault\n</pre>\n\nThere is another <a href=\"ref.html#codePointer\">example</a> in the <a\nhref=\"ref.html#ev\">Evaluation</a> section of the reference manual.\n\n<p>PicoLisp is a pragmatic language. It doesn't check at runtime for all\npossible error conditions which won't occur during normal usage. Such errors are\nusually detected quickly at the first test run, and checking for them after that\nwould just produce runtime overhead.\n\n<p>Catching the segmentation violation and bus fault signals is also not a good\nidea, because the Lisp heap is most probably be damaged afterwards, possibly\ncreating further havoc if execution continues.\n\n<p>It is recommended to inspect the code periodically with <code><a\nhref=\"refL.html#lint\">lint</a></code>. It will detect many potential errors.\nAnd, most of these errors are avoided by following the PicoLisp <a\nhref=\"ref.html#conv\">naming conventions</a>.\n\n\n<p><hr>\n<h2><a id=\"ask\">Where can I ask questions?</a></h2>\n\n<p>The best place is the <a\nhref=\"mailto:picolisp@software-lab.de?subject=Subscribe\">PicoLisp Mailing\nList</a> (see also <a\nhref=\"http://www.mail-archive.com/picolisp@software-lab.de/\">The Mail\nArchive</a>), or the IRC <a href=\"irc://irc.freenode.net/picolisp\">#picolisp</a>\nchannel on FreeNode.net.\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/httpGate.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 03jan26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>The 'httpGate' Proxy Server</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:mattias@inogu.se\">mattias@inogu.se</a>\n\n<h1>The 'httpGate' Proxy Server</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Mattias Sundblad\n\n<p>This document describes the <code>httpGate</code> utility which is included\nin the PicoLisp distribution.\n\n<p>For basic information about the PicoLisp system please look at the <a\nhref=\"ref.html\">PicoLisp Reference</a> and the <a href=\"tut.html\">PicoLisp\nTutorial</a>.\n\n<p><ul>\n<li><a href=\"#purpose\">Purpose</a>\n<li><a href=\"#basic\">Basic functionality</a>\n<li><a href=\"#building\">Building httpGate</a>\n<li><a href=\"#running\">Running httpGate</a>\n<li><a href=\"#config\">Configuring httpGate</a>\n   <ul>\n   <li><a href=\"#names\">The \"names\" config file</a>\n   <li><a href=\"#balanced\">Balanced \"names\" file</a>\n   <li><a href=\"#voidfile\">The \"void\" file</a>\n   <li><a href=\"#reload\">Reloading the configuration</a>\n   </ul>\n<li><a href=\"#keepalive\">Keep-alive and retirement</a>\n</ul>\n\n<p><hr>\n<h2><a id=\"purpose\">Purpose</a></h2>\n\n<p><code>httpGate</code> is a central element of the PicoLisp application server\narchitecture. Its purpose is to perform the following tasks:\n\n<p><ul>\n<li>Provide a single application entry port (e.g. 80 or 443).\n<li>Allow PicoLisp applications to run as non-root.\n<li>Start application servers on demand.\n<li>Handle HTTPS/SSL communication.\n</ul>\n\n<h2><a id=\"basic\">Basic functionality</a></h2>\n\n<p>A HTTP request to port 80, respectively 443, of the form\n\n<pre>\n   http[s]://server.org/12345/path/file\n</pre>\n\n<p>is forwarded to a server on localhost listening on port 12345, to ask for the\nresource \"path/file\".\n\n<p>If httpGate was started with a config file, and that file contains an entry\nfor \"app\", then also the following request is accepted:\n\n<pre>\n   http[s]://server.org/app/path/file\n</pre>\n\n<p>In that case, the \"app\" server process is started automatically (if it is not\nalready running) listening on port 12345, and the request is forwarded as above.\n\n<p>Only requests to ports &gt;= 1024 will be forwarded. The main httpGate\nprocess then forks two child processes, one for each direction. These child\nprocesses terminate automatically if the connection is idle for more than 7\nminutes.\n\n<h2><a id=\"running\">Running httpGate</a></h2>\n\n<p>The simplest way to run httpGate is to start it with an explicit port\nargument:\n\n<pre>\n   bin/httpGate 80 8080\n   bin/httpGate 443 8080 pem/www.domain.key,pem/domain.crt\n</pre>\n\n<p>When started in this way, httpGate forwards requests from port 80 and 443\nrespectively to a PicoLisp application on port 8080. This form has a drawback\nthough, since it only allows for a single application to be handled. Usually,\nthere are many PicoLisp applications running on the same machine, and we need\nhttpGate to forward requests to all of them.\n\n<p>To handle several applications, start httpGate with a \"names\" config file:\n\n<pre>\n      bin/httpGate 80 names\n      bin/httpGate 443 names pem/www.domain.key,pem/domain.crt\n</pre>\n\n<p>httpGate needs to be started as root, but application servers should run\nunder normal user accounts. The easiest way to start httpGate automatically is\nto add lines like the ones above to '/etc/rc.local'.\n\n<h2><a id=\"config\">Configuring httpGate</a></h2>\n\n<h3><a id=\"names\">The \"names\" config file</a></h3>\n\n<p>The \"names\" config file contains one line per application server. Each line\nholds six whitespace separated tokens, for example:\n\n<pre>\n   app 12345 tom /home/tom log/app ./pil app/main.l lib/app.l -main -go -wait\n</pre>\n\n<p><ol>\n<li>\"app\" is the name of the application, and the key to this line.\n<li>\"12345\" is the port where this server should listen at.\n<li>\"tom\" is the user under whose ID the server should run.\n<li>\"/home/tom\" is the working directory where the server should start.\n<li>\"log/app\" is a log file to redirect stdout/stderr to.\n<li>The rest of the line \"./pil app/main.l ...\" is the command to start the application.\n</ol>\n\n<p>Empty lines, and lines starting with a \"#\", are ignored. If the key in a\nconfig file record is the special name \"@\", then it denotes the default\napplication for this machine. URLs without name will be forwarded to that port.\nIf the key contains a slash followed by a string (e.g. \"app/foo\") then this\nstring is inserted in front of URLs.\n\n<p>Optional tokens (e.g. log files) or empty arguments to the commands must be\nwritten as single caret (^) characters to denote empty strings. Double or single\nquotes are not parsed.\n\n<p>If the port is zero, then a single additional token is expected which should\ndenote an URL to redirect the request to:\n\n<pre>\n   app 0 https://domain/foo/bar\n</pre>\n\nThis will cause httpGate to respnd with \"302 Found\" and \"Location:\nhttps://domain/foo/bar\".\n\n<h3><a id=\"balanced\">Balanced names file</a></h3>\n\n<p>If the config file contains many (hundreds or thousands) entries, then it is\nrecommended to sort it with the 'balance' utility. This may greatly accelerate\nname (key) lookup at runtime. For that, put the above config lines into a file\n\"config\". The tool 'balance' can be built - together with httpGate - with\n\n<pre>\n   (cd src; make tools gate)\n</pre>\n\n<p>The following command will create a balanced \"names\" file:\n\n<pre>\n   cat config | bin/balance -sort &gt; names\n</pre>\n\n<h3><a id=\"voidfile\">The \"void\" file</a></h3>\n\n<p>If the local application server cannot be connected on the requested port\n(typically because a session timed out), and a file with the name \"void\" exists\nin the current working directory (token 4 in the config line), then the contents\nof that file (normally HTML) are sent as response to the client.\n\n<h3><a id=\"reload\">Reloading the configuration</a></h3>\n\n<p>When the config file is modified, it can be reloaded by sending SIGHUP to all\nrunning top-level httpGate processes:\n\n<pre>\n   $ sudo pkill -HUP -P1 httpGate\n</pre>\n\n<p>Another possibility is to restart httpGate(s). This is not a problem, and can\nbe done also while the server is in production.\n\n<p>Just kill the top level httpGate parent process. This is not harmful, because\nexisting user sessions are handled by pairs of child processes, which continue\nto run (until they terminate normally) even if their parent is stopped. Note\nthat this is different from PicoLisp DB applications, where the parent should\n*never* be hard-stopped (eg. with 'kill -9 &lt;pid&gt;') while child processes\nare running ('kill &lt;pid&gt;' is OK though, because the parent takes care of\nstopping the children).\n\n<p>An example for stopping and restarting a running httpGate is:\n\n<pre>\n   (let L\n      # Build list of all httpGate parents (i.e. on 80 and 443)\n      (make\n         (in '(\"sudo\" \"pgrep\" \"-P1\" \"httpGate\")\n            (while (read)\n               (link @) ) ) )\n      # Stop them\n      (for P L\n         (call \"sudo\" \"kill\" P) )\n      # Wait until all are gone\n      (while (find '((P) (kill P 0)) L)\n         (wait 200) )\n      # Start new\n      (call \"sudo\" \"bin/httpGate\" 80 \"names\")\n      (call \"sudo\" \"bin/httpGate\" 443 \"names\" \"pem/...\") )\n</pre>\n\n<h2><a id=\"keepalive\">Keep-alive and retirement</a></h2>\n\n<p>Applications should call\n\n<pre>\n   (retire 20)\n</pre>\n\n<p>before they call 'server'. This causes the parent server process to terminate\nautomatically 20 minutes after the last child process (user session) terminated.\nIt will be started by httpGate again on demand. User sessions in turn terminate\nautomatically after 5 minutes (if nobody logged in) or 1 hour (if a user is\nlogged in), unless JavaScript is enabled in the client browser and the\napplication calls\n\n<pre>\n   (&lt;ping&gt; 7)\n</pre>\n\n<p>in its main 'action' function. In that case, the user session will not\nterminate until the user closes the last window or tab to this application.\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/man.html",
    "content": "Content-type: text/html; charset=UTF-8\n\n<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n<HTML><HEAD><TITLE>Man page of PICOLISP</TITLE>\n</HEAD><BODY>\n<H1>PICOLISP</H1>\nSection: User Commands (1)<BR>Updated: <BR><A HREF=\"#index\">Index</A>\n<A HREF=\"http://home.picolisp.com\">Return to Main Contents</A><HR>\n\n<A NAME=\"lbAB\">&nbsp;</A>\n<H2>NAME</H2>\n\npil, picolisp - a fast, lightweight Lisp interpreter\n<A NAME=\"lbAC\">&nbsp;</A>\n<H2>SYNOPSIS</H2>\n\n<B>pil</B>\n\n[arguments ...] [-] [arguments ...] [+]\n<BR>\n\n<B>picolisp</B>\n\n[arguments ...] [-] [arguments ...] [+]\n<A NAME=\"lbAD\">&nbsp;</A>\n<H2>DESCRIPTION</H2>\n\n<B>PicoLisp</B>\n\nis a Lisp interpreter with a small memory footprint, yet relatively high\nexecution speed. It combines an elegant and powerful language with built-in\ndatabase functionality.\n<P>\n\n<B>pil</B>\n\nis the startup front-end for the interpreter. It takes care of starting the\nbinary base system and loading a useful runtime environment.\n<P>\n\n<B>picolisp</B>\n\nis just the bare interpreter binary. It is usually called in stand-alone\nscripts, using the she-bang notation in the first line, passing the minimal\nenvironment in\n<I>lib.l</I>\n\nand loading additional files as needed:\n<P>\n\n<DL COMPACT><DT><DD>\n#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n</DL>\n\n<DL COMPACT><DT><DD>\n(load &quot;@ext.l&quot; &quot;myfiles/lib.l&quot; &quot;myfiles/foo.l&quot;)\n</DL>\n\n<DL COMPACT><DT><DD>\n(do ... something ...)\n</DL>\n\n<DL COMPACT><DT><DD>\n(bye)\n</DL>\n\n<A NAME=\"lbAE\">&nbsp;</A>\n<H2>INVOCATION</H2>\n\n<B>PicoLisp</B>\n\nhas no pre-defined command line flags; applications are free to define their\nown. Any built-in or user-level Lisp function can be invoked from the command\nline by prefixing it with a hyphen. Examples for built-in functions useful in\nthis context are\n<B>version</B>\n\n(print the version number) or\n<B>bye</B>\n\n(exit the interpreter). Therefore, a minimal call to print the version number\nand then immediately exit the interpreter would be:\n<P>\n\n<DL COMPACT><DT><DD>\n$ pil -version -bye\n</DL>\n\n<P>\n\nAny other argument (not starting with a hyphen) should be the name of a file to\nbe loaded. If the first character of a path or file name is an at-mark, it\nwill be substituted with the path to the installation directory.\n<P>\n\nAll arguments are evaluated from left to right, then an interactive\n<I>read-eval-print</I>\n\nloop is entered (with a colon as prompt).\n<P>\n\nA single hyphen stops the evaluation of the rest of the command line, so that\nthe remaining arguments may be processed under program control.\n<P>\n\nIf the very last command line argument is a single plus character, debugging\nmode is switched on at interpreter startup, before evaluating any of the command\nline arguments. A minimal interactive session is started with:\n<P>\n\n<DL COMPACT><DT><DD>\n$ pil +\n</DL>\n\n<P>\n\nHere you can access the reference manual (expects the shell variable BROWSER to\nbe set, defaults to &quot;w3m&quot;)\n<P>\n\n<DL COMPACT><DT><DD>\n: (doc)\n</DL>\n\n<P>\n\nand the online documentation for most functions,\n<P>\n\n<DL COMPACT><DT><DD>\n: (doc 'vi)\n</DL>\n\n<P>\n\nor directly inspect their sources:\n<P>\n\n<DL COMPACT><DT><DD>\n: (vi 'doc)\n</DL>\n\n<P>\n\nThe interpreter can be terminated with\n<P>\n\n<DL COMPACT><DT><DD>\n: (bye)\n</DL>\n\n<P>\n\nor by typing Ctrl-D.\n<A NAME=\"lbAF\">&nbsp;</A>\n<H2>FILES</H2>\n\nRuntime files are maintained in the ~/.pil directory:\n<DL COMPACT>\n<DT>~/.pil/tmp/&lt;pid&gt;/<DD>\nProcess-local temporary directories\n<DT>~/.pil/rc<DD>\nLoaded after interpreter startup\n<DT>~/.pil/viprc<DD>\nLoaded by the Vip editor\n</DL>\n<A NAME=\"lbAG\">&nbsp;</A>\n<H2>BUGS</H2>\n\n<B>PicoLisp</B>\n\ndoesn't try to protect you from every possible programming error (&quot;You asked for\nit, you got it&quot;).\n<A NAME=\"lbAH\">&nbsp;</A>\n<H2>AUTHOR</H2>\n\nAlexander Burger &lt;<A HREF=\"mailto:abu@software-lab.de\">abu@software-lab.de</A>&gt;\n<A NAME=\"lbAI\">&nbsp;</A>\n<H2>RESOURCES</H2>\n\n<B>Home page:</B>\n\n<A HREF=\"http://home.picolisp.com\">http://home.picolisp.com</A>\n<BR>\n\n<B>Download:</B>\n\n<A HREF=\"http://www.software-lab.de/down.html\">http://www.software-lab.de/down.html</A>\n<P>\n\n<HR>\n<A NAME=\"index\">&nbsp;</A><H2>Index</H2>\n<DL>\n<DT><A HREF=\"#lbAB\">NAME</A><DD>\n<DT><A HREF=\"#lbAC\">SYNOPSIS</A><DD>\n<DT><A HREF=\"#lbAD\">DESCRIPTION</A><DD>\n<DT><A HREF=\"#lbAE\">INVOCATION</A><DD>\n<DT><A HREF=\"#lbAF\">FILES</A><DD>\n<DT><A HREF=\"#lbAG\">BUGS</A><DD>\n<DT><A HREF=\"#lbAH\">AUTHOR</A><DD>\n<DT><A HREF=\"#lbAI\">RESOURCES</A><DD>\n</DL>\n<HR>\nThis document was created by\n<A HREF=\"http://home.picolisp.com\">man2html</A>,\nusing the manual pages.<BR>\nTime: 08:01:21 GMT, March 29, 2021\n</BODY>\n</HTML>\n"
  },
  {
    "path": "doc/microTemplates",
    "content": "         Micro-Templates\n\n* Each template file in the @lib/xhtml/ directory applies to one type of\n  component in the @lib/xhtml.l functions.\n\n* The template files are line oriented. One micro-template per line.\n\n* A micro-template can be continued on the following line(s) by\n  indenting these lines with space(s).\n\n* Each line has a defined meaning. Except for indented lines, no lines\n  can be added or removed.\n\n* A micro-template may contain either variables or expressions enclosed\n  by \"¦\" (broken bar character, hex \"00A6\").\n\n* An empty line is denoted by \"<>\".\n\n* \"~\" is replaced at runtime with the session ID.\n\n* At program start, all templates from @lib/xhtml/ are loaded.\n\n* The application may override one or more files in a local directory,\n  and call 'xhtml' with that path. Also more than once.\n\n* Available templates:\n\n   html\n      1. DOCTYPE\n      2. HTML start\n      3. HEAD\n      4. BODY\n      5. HTML end\n\n   table\n      1. Table start\n      2. Caption\n      3. Header row start\n      4. Header row entry\n      5. Header row end\n      6. Data row start\n      7. Data row entry\n      8. Data row end\n      9. Table end\n\n   grid\n      1. Grid start\n      2. Grid row start\n      3. Grid row entry\n      4. Grid row end\n      5. Grid end\n\n   layout\n      Variable number of lines, one per code block\n\n   menu\n      1. Menu start\n      2. Submenu start\n      3. Plain HTML\n      4. Disabled link\n      5. Enabled link\n      6. Enabled active link\n      7. Closed submenu\n      8. Open submenu start\n      9. Open submenu end\n      10. Submenu end\n      11. Menu end\n\n   tab\n      1. TABLE start\n      2. Disabled entry\n      3. Enabled entry\n      4. TABLE end\n\n   input\n      1. (Non-text) Input element\n\n   field\n      1. Text input element\n\n   area\n      1. TEXTAREA start\n      2. TEXTAREA end\n\n   select\n      1. SELECT start\n      2. OPTION\n      3. SELECT end\n\n   submit\n      1. Submit input element\n"
  },
  {
    "path": "doc/native.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 19jan26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Native C Calls</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<h1>Native C Calls</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>This document describes how to call C functions in shared object files\n(libraries) from PicoLisp, using the built-in <code><a\nhref=\"refN.html#native\">native</a></code> function - possibly with the help of\nthe <code><a href=\"refS.html#struct\">struct</a></code> and <code><a\nhref=\"refL.html#lisp\">lisp</a></code> functions.\n\n<p><ul>\n<li><a href=\"#overview\">Overview</a>\n<li><a href=\"#syntax\">Syntax</a>\n   <ul>\n   <li><a href=\"#libs\">Libraries</a>\n   <li><a href=\"#funs\">Functions</a>\n   <li><a href=\"#retval\">Return Value</a>\n      <ul>\n      <li><a href=\"#primRet\">Primitive Types</a>\n      <li><a href=\"#structRet\">Arrays and Structures</a>\n      </ul>\n   <li><a href=\"#args\">Arguments</a>\n      <ul>\n      <li><a href=\"#primArg\">Primitive Types</a>\n      <li><a href=\"#structArg\">Arrays and Structures</a>\n      </ul>\n   </ul>\n<li><a href=\"#memory\">Memory Management</a>\n   <ul>\n   <li><a href=\"#fftw\">Fast Fourier Transform</a>\n   <li><a href=\"#const\">Constant Data</a>\n   </ul>\n<li><a href=\"#callbacks\">Callbacks</a>\n   <ul>\n   <li><a href=\"#byName\">Call by Name</a>\n   <li><a href=\"#funptr\">Function Pointer</a>\n   </ul>\n</ul>\n\n\n<p><hr>\n<h2><a id=\"overview\">Overview</a></h2>\n\n<p>\n<code><a href=\"refN.html#native\">native</a></code> calls a C function in a\nshared library. It tries to\n\n<p><ol>\n<li>find a library by name\n<li>find a function by name in the library\n<li>convert the function's argument(s) from Lisp to C data structures\n<li>call the function's C code\n<li>convert the function's return value(s) from C to Lisp data structures\n</ol>\n\n<p>The direct return value of <code>native</code> is the Lisp representation of\nthe C function's return value. Further values, returned by reference from the C\nfunction, are available in Lisp variables (symbol values).\n\n<p><code><a href=\"refS.html#struct\">struct</a></code> is a helper function,\nwhich can be used to manipulate C data structures in memory. It may take a\nscalar (a numeric representation of a C value) to convert it to a Lisp item, or\n(more typically) a pointer to a memory area to build and extract data\nstructures. <code>lisp</code> allows you to install callback functions, callable\nfrom C code, written in Lisp.\n\n<p><code><a href=\"ref_.html#%25@\">%@</a></code> is a convenience function,\nsimplifying the most common use case of <code>native</code>.\n\n<p>In combination, these functions can interface PicoLisp to almost any C\nfunction.\n\n<p>The above steps are fully dynamic; <code>native</code> doesn't have (and\ndoesn't require) a priori knowledge about the library, the function or the\ninvolved data. No need to write any glue code, interfaces or include files. All\nfunctions can even be called interactively from the REPL.\n\n\n<p><hr>\n<h2><a id=\"syntax\">Syntax</a></h2>\n\n<p>The arguments to <code>native</code> are\n\n<p><ol>\n<li>a library\n<li>a function\n<li>a return value specification\n<li>optional arguments\n</ol>\n\n<p>The simplest form is a call to a function without return value and without\narguments. If we assume a library \"lib.so\", containing a function with the\nprototype\n\n<pre>\nvoid fun(void);\n</pre>\n\n<p>then we can call it as\n\n<pre>\n(native \"lib.so\" \"fun\")\n</pre>\n\n\n<p><hr>\n<h3><a id=\"libs\">Libraries</a></h3>\n\n<p>The first argument to <code>native</code> specifies the library. It is either\nthe <i>name</i> of a library (a symbol), or the <i>handle</i> of a previously\nfound library (a number).\n\n<p>As a special case, a transient symbol <code>\"@\"</code> can be passed for the\nlibrary name. It then refers to the current main program (instead of an external\nlibrary), and can be used for standard functions like <code>\"malloc\"</code> or\n<code>\"free\"</code>.\nBecause this is needed so often,\n\n<pre>\n(%@ \"fun\" ...)\n</pre>\n\n<p>can be used instead of\n\n<pre>\n(native \"@\" \"fun\" ...)\n</pre>\n\n<p><code>native</code> uses <code>dlopen(3)</code> internally to find and open\nthe library, and to obtain the handle. If the name contains a slash ('/'), then\nit is interpreted as a (relative or absolute) pathname. Otherwise, the dynamic\nlinker searches for the library according to the system's environment and\ndirectories. See the man page of <code>dlopen(3)</code> for further details.\n\n<p>If called with a symbolic argument, <code>native</code> automatically caches\nthe handle of the found library in the value of that symbol. The most natural\nway is to pass the library name as a <a href=\"ref.html#transient\">transient</a>\nsymbol (<code>\"lib.so\"</code> above): The initial value of a transient symbol is\nthat symbol itself, so that <code>native</code> receives the library name upon\nthe first call. After successfully finding and opening the library,\n<code>native</code> stores the handle of that library in the value of the passed\nsymbol (<code>\"lib.so\"</code>). As <code>native</code> evaluates its arguments\nin the normal way, subsequent calls within the same transient scope will receive\nthe numeric value (the handle), and don't need to open and search the library\nagain.\n\n\n<p><hr>\n<h3><a id=\"funs\">Functions</a></h3>\n\n<p>The same rules applies to the second argument, the function. When called with\na symbol, <code>native</code> stores the function handle in its value, so that\nsubsequent calls evaluate to that handle, and <code>native</code> can directly\njump to the function.\n\n<p><code>native</code> uses <code>dlsym(3)</code> internally to obtain the\nfunction pointer. See the man page of <code>dlsym(3)</code> for further details.\n\n<p>In most cases a program will call more than one function from a given\nlibrary. If we keep the code within the same transient scope (i.e. in the same\nsource file), each library will be opened - and each function searched - only\nonce.\n\n<pre>\n(native \"lib.so\" \"fun1\")\n(native \"lib.so\" \"fun2\")\n(native \"lib.so\" \"fun3\")\n</pre>\n\n<p>After <code>\"fun1\"</code> was called, <code>\"lib.so\"</code> will be open, and\nwon't be re-opened for <code>\"fun2\"</code> and <code>\"fun3\"</code>. Consider\nthe definition of helper functions:\n\n<pre>\n(de fun1 ()\n   (native \"lib.so\" \"fun1\") )\n\n(de fun2 ()\n   (native \"lib.so\" \"fun2\") )\n\n(de fun3 ()\n   (native \"lib.so\" \"fun3\") )\n</pre>\n\n<p>After any one of <code>fun1</code>, <code>fun2</code> or <code>fun3</code>\nwas called, the symbol <code>\"lib.so\"</code> will hold the library handle. And\neach function <code>\"fun1\"</code>, <code>\"fun2\"</code> and <code>\"fun3\"</code>\nwill be searched only when called the first time.\n\n<p>Note that the function handle points to a structure in memory, which is\nautomatically allocated. This implies that a memory leak may occur if the\ntransient symbol holding the function handle goes out of scope (e.g. by repeated\n(re)<code><a href=\"refL.html#load\">load</a></code>ing the library after\nexecuting its functions).\n\n<p>Warning: It should be avoided to put more than one library into a single\ntransient scope if there is a chance that two different functions with the same\nname will be called in two different libraries. Because of the function handle\ncaching, the second call would otherwise (wrongly) go to the first function.\n\n\n<p><hr>\n<h3><a id=\"retval\">Return Value</a></h3>\n\n<p>The (optional) third argument to <code>native</code> specifies the return\nvalue. A C function can return many types of values, like integer or floating\npoint numbers, string pointers, or pointers to structures which in turn consist\nof those types, and even other structures or pointers to structures.\n<code>native</code> tries to cover most of them.\n\n<p>As described in the <a href=\"refN.html#natResult\">result specification</a>,\nthe third argument should consist of a pattern which tells <code>native</code>\nhow to extract the proper value.\n\n\n<h4><a id=\"primRet\">Primitive Types</a></h4>\n\n<p>In the simplest case, the result specification is <code>NIL</code> like in\nthe examples so far. This means that either the C function returns\n<code>void</code>, or that we are not interested in the value. The return value\nof <code>native</code> will be <code>NIL</code> in that case.\n\n<p>If the result specification is one of the symbols <code>B</code>,\n<code>I</code> or <code>N</code>, an integer number is returned, by interpreting\nthe result as a <code>char</code> (8 bit unsigned byte), <code>int</code> (32\nbit signed integer), or <code>long</code> number (64 bit signed integer),\nrespectively. Other (signed or unsigned numbers, and of different sizes) can be\nproduced from these types with logical and arithmetic operations if necessary.\n\n<p>If the result specification is the symbol <code>C</code>, the result is\ninterpreted as a 16 bit number, and a single-char transient symbol (string) is\nreturned.\n\n<p>A specification of <code>S</code> tells <code>native</code> to interpret the\nresult as a pointer to a C string (null terminated), and to return a transient\nsymbol (string).\n\n<p>If the result specification is a number, it will be used as a scale to\nconvert a returned <code>double</code> (if the number is positive) or\n<code>float</code> (if the number is negative) to a scaled fixpoint number.\n\n<p>Examples for function calls, with their corresponding C prototypes:\n\n<pre>\n(native \"lib.so\" \"fun\" 'I)             # int fun(void);\n(native \"lib.so\" \"fun\" 'N)             # long fun(void);\n(native \"lib.so\" \"fun\" 'P)             # void *fun(void);\n(native \"lib.so\" \"fun\" 'S)             # char *fun(void);\n(native \"lib.so\" \"fun\" 1.0)            # double fun(void);\n</pre>\n\n\n<h4><a id=\"structRet\">Arrays and Structures</a></h4>\n\n<p>If the result specification is a list, it means that the C function returned\na pointer to an array, or an arbitrary memory structure. The specification list\nshould then consist of either the above primitive specifications (symbols or\nnumbers), or of cons pairs of a primitive specification and a repeat count, to\ndenote arrays of the given type.\n\n<p>Examples for function calls, with their corresponding pseudo C prototypes:\n\n<pre>\n(native \"lib.so\" \"fun\" '(I . 8))       # int *fun(void);  // 8 integers\n(native \"lib.so\" \"fun\" '(B . 16))      # unsigned char *fun(void);  // 16 bytes\n\n(native \"lib.so\" \"fun\" '(I I))         # struct {int i; int j;} *fun(void);\n(native \"lib.so\" \"fun\" '(I . 4))       # struct {int i[4];} *fun(void);\n\n(native \"lib.so\" \"fun\" '(I (B . 4)))   # struct {\n                                       #    int i;\n                                       #    unsigned char c[4];\n                                       # } *fun(void);\n\n(native \"lib.so\" \"fun\"                 # struct {\n   '(((B . 4) I) (S . 12) (N . 8)) )   #    struct {unsigned char c[4]; int i;}\n                                       #    char *names[12];\n                                       #    long num[8];\n                                       # } *fun(void);\n</pre>\n\n<p>If a returned structure has an element which is a <i>pointer</i> to some\nother structure (i.e. not an embedded structure like in the last example above),\nthis pointer must be first obtained with a <code>N</code> pattern, which can\nthen be passed to <code><a href=\"refS.html#struct\">struct</a></code> for further\nextraction.\n\n\n<p><hr>\n<h3><a id=\"args\">Arguments</a></h3>\n\n<p>The (optional) fourth and following arguments to <code>native</code> specify\nthe arguments to the C function.\n\n\n<h4><a id=\"primArg\">Primitive Types</a></h4>\n\n<p>Integer arguments (up to 64 bits, signed or unsigned <code>char</code>,\n<code>short</code>, <code>int</code> or <code>long</code>) can be passed as they\nare: As numbers.\n\n<pre>\n(native \"lib.so\" \"fun\" NIL 123)        # void fun(int);\n(native \"lib.so\" \"fun\" NIL 1 2 3)      # void fun(int, long, short);\n</pre>\n\n<p>String arguments can be specified as symbols. <code>native</code> allocates\nmemory for each string on the stack, passes the pointer to the C function, and\ncleans up the stack when done.\n\n<pre>\n(native \"lib.so\" \"fun\" NIL \"abc\")      # void fun(char*);\n(native \"lib.so\" \"fun\" NIL 3 \"def\")    # void fun(int, char*);\n</pre>\n\n<p>Note that the allocated string memory is released <i>after</i> the return\nvalue is extracted. This allows a C function to return the argument string\npointer, perhaps after modifying the data in-place, and receive the new string\nas the return value (with the <code>S</code> specification).\n\n<pre>\n(native \"lib.so\" \"fun\" 'S \"abc\")       # char *fun(char*);\n</pre>\n\n<p>Also note that specifying <code>NIL</code> as an argument passes an empty\nstring (\"\", which also reads as <code>NIL</code> in PicoLisp) to the C function.\nPhysically, this is a pointer to a NULL-byte, and is <u>not</u> a NULL-pointer.\nBe sure to pass <code>0</code> (the number zero) if a NULL-pointer is desired.\n\n<p>Floating point arguments are specified as cons pairs, where the value is in\nthe CAR, and the CDR holds the fixpoint scale. If the scale is positive, the\nnumber is passed as a <code>double</code>, otherwise as a <code>float</code>.\n\n<pre>\n(native \"lib.so\" \"fun\" NIL             # void fun(double, float);\n   (12.3 . 1.0) (4.56 . -1.0) )\n</pre>\n\n\n<h4><a id=\"structArg\">Arrays and Structures</a></h4>\n\n<p>Composite arguments are specified as nested list structures.\n<code>native</code> allocates memory for each array or structure (with\n<code>malloc(3)</code>), passes the pointer to the C function, and releases the\nmemory (with <code>free(3)</code>) when done.\n\n<p>This implies that such an argument can be both an input and an output value\nto a C function (pass by reference).\n\n<p>The CAR of the argument specification can be <code>NIL</code> (then it is an\ninput-only argument). Otherwise, it should be a variable which receives the\nreturned structure data.\n\n<p>The CADR of the argument specification must be a cons pair with the total\nsize of the structure in its CAR. The CDR is ignored for input-only arguments,\nand should contain a <a href=\"refN.html#natResult\">result specification</a> for\nthe output value to be stored in the variable.\n\n<p>For example, a minimal case is a function that takes an integer reference,\nand stores the number '123' in that location:\n\n<pre>\nvoid fun(int *i) {\n   *i = 123;\n}\n</pre>\n\n<p>We call <code>native</code> with a variable <code>X</code> in the CAR of the\nargument specification, a size of 4 (i.e. <code>sizeof(int)</code>), and\n<code>I</code> for the result specification. The stored value is then available\nin the variable <code>X</code>:\n\n<pre>\n: (native \"lib.so\" \"fun\" NIL '(X (4 . I)))\n-> NIL\n: X\n-> 123\n</pre>\n\n<p>The rest (CDDR) of the argument specification may contain initialization\ndata, if the C function expects input values in the structure. It should be a\nlist of <a href=\"refN.html#natItem\">initialization items</a>, optionally with a\nfill-byte value in the CDR of the last cell.\n\n<p>If there are <i>no</i> initialization items and just the final fill-byte,\nthen the whole buffer is filled with that byte. For example, to pass a buffer of\n20 bytes, initialized to zero:\n\n<pre>\n: (native \"lib.so\" \"fun\" NIL '(NIL (20) . 0))\n</pre>\n\n<p>A buffer of 20 bytes, with the first 4 bytes initialized to 1, 2, 3, and 4,\nand the rest filled with zero:\n\n<pre>\n: (native \"lib.so\" \"fun\" NIL '(NIL (20) 1 2 3 4 . 0))\n</pre>\n\n<p>and the same, where the buffer contents are returned as a list of bytes in\nthe variable <code>X</code>:\n\n<pre>\n: (native \"lib.so\" \"fun\" NIL '(X (20 B . 20) 1 2 3 4 . 0))\n</pre>\n\n<p>For a more extensive example, let's use the following definitions:\n\n<pre>\ntypedef struct value {\n   int x, y;\n   double a, b, c;\n   int z;\n   char nm[4];\n} value;\n\nvoid fun(value *val) {\n   printf(\"%d %d\\n\", val->x, val->y);\n   val->x = 3;\n   val->y = 4;\n   strcpy(val->nm, \"OK\");\n}\n</pre>\n\n<p>We call this function with a structure of 40 bytes, requesting the returned\ndata in <code>V</code>, with two integers <code>(I . 2)</code>, three doubles\n<code>(100 . 3)</code> with a scale of 2 (1.0 = 100), another integer\n<code>I</code> and four characters <code>(C . 4)</code>. If the structure gets\ninitialized with two integers 7 and 6, three doubles 0.11, 0.22 and 0.33, and\nanother integer 5 while the rest of the 40 bytes is cleared to zero\n\n<pre>\n: (native \"lib.so\" \"fun\" NIL\n   '(V (40 (I . 2) (100 . 3) I (C . 4)) -7 -6 (100 11 22 33) -5 . 0) )\n</pre>\n\n<p>then it will print the integers 7 and 6, and <code>V</code> will contain the\nreturned list\n\n<pre>\n((3 4) (11 22 33) 5 (\"O\" \"K\" NIL NIL))\n</pre>\n\n<p>i.e. the original integer values 7 and 6 replaced with 3 and 4.\n\n<p>Note that the allocated structure memory is released <i>after</i> the return\nvalue is extracted. This allows a C function to return the argument structure\npointer, perhaps after modifying the data in-place, and receive the new\nstructure as the return value - instead of (or even in addition to) to the\ndirect return via the argument reference.\n\n\n<p><hr>\n<h2><a id=\"memory\">Memory Management</a></h2>\n\n<p>The preceding <a href=\"#args\">Arguments</a> section mentions that\n<code>native</code> implicitly allocates and releases memory for strings, arrays\nand structures.\n\n<p>Technically, this mimics <i>automatic variables</i> in C.\n\n<p>For a simple example, let's assume that we want to call <code>read(2)</code>\ndirectly, to fetch a 4-byte integer from a given file descriptor. This could be\ndone with the following C function:\n\n<pre>\nint read4bytes(int fd) {\n   char buf[4];\n\n   read(fd, buf, 4);\n   return *(int*)buf;\n}\n</pre>\n\n<p><code>buf</code> is an automatic variable, allocated on the stack, which\ndisappears when the function returns. A corresponding <code>native</code> call\nwould be:\n\n<pre>\n(%@ \"read\" 'I Fd '(Buf (4 . I)) 4)\n</pre>\n\n<p>The structure argument <code>(Buf (4 . I))</code> says that a space of 4\nbytes should be allocated and passed to <code>read</code>, then an integer\n<code>I</code> returned in the variable <code>Buf</code> (the return value of\n<code>native</code> itself is the integer returned by <code>read</code>). The\nmemory space is released after that.\n\n<p>(Note that we can call <code>%@</code> here, as <code>read</code> resides in\nthe main program.)\n\n<p>Instead of a single integer, we might want a list of four bytes to be\nreturned from <code>native</code>:\n\n<pre>\n(%@ \"read\" 'I Fd '(Buf (4 B . 4)) 4)\n</pre>\n\n<p>The difference is that we wrote <code>(B . 4)</code> (a list of 4 bytes)\ninstead of <code>I</code> (a single integer) for the <a\nhref=\"refN.html#natResult\">result specification</a> (see the <a\nhref=\"#structArg\">Arrays and Structures</a> section).\n\n<p>Let's see what happens if we extend this example. We'll write the four bytes\nto another file descriptor, after reading them from the first one:\n\n<pre>\nvoid copy4bytes(int fd1, int fd2) {\n   char buf[4];\n\n   read(fd1, buf, 4);\n   write(fd2, buf, 4);\n}\n</pre>\n\n<p>Again, <code>buf</code> is an automatic variable. It is passed to both\n<code>read</code> and <code>write</code>. A direct translation would be:\n\n<pre>\n(%@ \"read\" 'I Fd '(Buf (4 B . 4)) 4)\n(%@ \"write\" 'I Fd2 (cons NIL (4) Buf) 4)\n</pre>\n\n<p>This works as expected. <code>read</code> returns a list of four bytes in\n<code>Buf</code>. The call to <code>cons</code> builds the structure\n\n<pre>\n(NIL (4) 1 2 3 4)\n</pre>\n\n<p>i.e. no return variable, a four-byte memory area, filled with the four bytes\n(assuming that <code>read</code> returned 1, 2, 3 and 4). Then this structure is\npassed to <code>write</code>.\n\n<p>But: This solution induces quite some overhead. The four-byte buffer is\nallocated before the call to <code>read</code> and released after that, then\nallocated and released again for <code>write</code>. Also, the bytes are\nconverted to a list to be stored in <code>Buf</code>, then that list is extended\nfor the structure argument to <code>write</code>, and converted again back to\nthe raw byte array. The data in the list itself are never used.\n\n<p>If the above operation is to be used more than once, it is better to allocate\nthe buffer manually, use it for both reading and writing, and then release it.\nThis also avoids all intermediate list conversions.\n\n<pre>\n(let Buf (%@ \"malloc\" 'P 4)  # Allocate memory\n   (%@ \"read\" 'I Fd Buf 4)   # (Possibly repeat this several times)\n   (%@ \"write\" 'I Fd2 Buf 4)\n   (%@ \"free\" NIL Buf) )     # Release memory\n</pre>\n\n<p>To allocate such a buffer locally on the stack (just like a C function would\ndo), <code><a href=\"refB.html#buf\">buf</a></code> can be used. Equivalent to the\nabove is:\n\n<pre>\n(buf Buf 4  # Allocate local memory\n   (%@ \"read\" 'I Fd Buf 4)\n   (%@ \"write\" 'I Fd2 Buf 4) )\n</pre>\n\n\n<h4><a id=\"fftw\">Fast Fourier Transform</a></h4>\n\n<p>For a more typical example, we might call the Fast Fourier Transform using\nthe library from the <a href=\"http://fftw.org\">FFTW</a> package. With the\nexample code for calculating Complex One-Dimensional DFTs:\n\n<pre>\n#include &lt;fftw3.h&gt;\n...\n{\n   fftw_complex *in, *out;\n   fftw_plan p;\n   ...\n   in = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);\n   out = (fftw_complex*) fftw_malloc(sizeof(fftw_complex) * N);\n   p = fftw_plan_dft_1d(N, in, out, FFTW_FORWARD, FFTW_ESTIMATE);\n   ...\n   fftw_execute(p); /* repeat as needed */\n   ...\n   fftw_destroy_plan(p);\n   fftw_free(in); fftw_free(out);\n}\n</pre>\n\n<p>we can build the following equivalent:\n\n<pre>\n(load \"@lib/math.l\")\n\n(de FFTW_FORWARD . -1)\n(de FFTW_ESTIMATE . 64)\n\n(de fft (Lst)\n   (let\n      (Len (length Lst)\n         In (native \"libfftw3.so\" \"fftw_malloc\" 'P (* Len 16))\n         Out (native \"libfftw3.so\" \"fftw_malloc\" 'P (* Len 16))\n         P (native \"libfftw3.so\" \"fftw_plan_dft_1d\" 'N\n            Len In Out FFTW_FORWARD FFTW_ESTIMATE ) )\n      (struct In NIL (cons 1.0 (apply append Lst)))\n      (native \"libfftw3.so\" \"fftw_execute\" NIL P)\n      (prog1\n         (struct Out (make (do Len (link (1.0 . 2)))))\n         (native \"libfftw3.so\" \"fftw_destroy_plan\" NIL P)\n         (native \"libfftw3.so\" \"fftw_free\" NIL Out)\n         (native \"libfftw3.so\" \"fftw_free\" NIL In) ) ) )\n</pre>\n\n<p>This assumes that the argument list <code>Lst</code> is passed as a list\nof complex numbers, each as a list of two numbers for the real and imaginary\npart, like\n\n<pre>\n(fft '((1.0 0) (1.0 0) (1.0 0) (1.0 0) (0 0) (0 0) (0 0) (0 0)))\n</pre>\n\n<p>The above translation to Lisp is quite straightforward. After the two buffers\nare allocated, and a plan is created, <code><a\nhref=\"refS.html#struct\">struct</a></code> is called to store the argument list\nin the <code>In</code> structure as a list of double numbers (according to the\n<code>1.0</code> <a href=\"refN.html#natItem\">initialization item</a>). Then\n<code>fftw_execute</code> is called, and <code>struct</code> is called again to\nretrieve the result from <code>Out</code> and return it from <code>fft</code>\nvia the <code><a href=\"refP.html#prog1\">prog1</a></code>. Finally, all memory is\nreleased.\n\n\n<h4><a id=\"const\">Constant Data</a></h4>\n\n<p>If such allocated data (strings, arrays or structures passed to\n<code>native</code>) are constant during the lifetime of a program, it makes\nsense to allocate them only once, before their first use. A typical candidate is\nthe format string of a <code>printf</code> call. Consider a function which\nprints a floating point number in scientific notation:\n\n<pre>\n(load \"@lib/math.l\")\n\n: (de prf (Flt)\n   (%@ \"printf\" NIL \"%e\\n\" (cons Flt 1.0)) )\n-> prf\n\n: (prf (exp 12.3))\n2.196960e+05\n</pre>\n\n<p>As we know that the format string <code>\"%e\\n\"</code> will be converted from\na Lisp symbol to a C string on each call to <code>prf</code>, we might as well\nperform a little optimization and delegate this conversion to the program load\ntime:\n\n<pre>\n: (de prf (Flt)\n   (%@ \"printf\" NIL `(%@ \"strdup\" 'P \"%e\\n\") (cons Flt 1.0)) )\n-> prf\n\n: (prf (exp 12.3))\n2.196960e+05\n</pre>\n\n<p>If we look at the <code>prf</code> function, we see that it now contains the\npointer to the allocated string memory:\n\n<pre>\n: (pp 'prf)\n(de prf (Flt)\n   (%@ \"printf\" NIL 24662032 (cons Flt 1000000)) )\n-> prf\n</pre>\n\n<p>This pointer will be used by <code>printf</code> directly, without any\nfurther conversion or memory management.\n\n\n<p><hr>\n<h2><a id=\"callbacks\">Callbacks</a></h2>\n\n<p>Sometimes it is necessary to do the reverse: Call Lisp code from C code.\n\n<p>This mechanism uses the Lisp-level function <code><a\nhref=\"refL.html#lisp\">lisp</a></code>. No C source code access is\nrequired.\n\n<p><code>lisp</code> returns a function pointer, which can be passed to\nC functions via <code>native</code>. When this function pointer is\ndereferenced and called from the C code, the corresponding Lisp function\nis invoked. Only five numeric arguments and a numeric return value can\nbe used, and other data types must be handled by the Lisp function with\n<code><a href=\"refS.html#struct\">struct</a></code> and memory management\noperations.\n\n<p>Callbacks are often used in user interface libraries, to handle key-, mouse-\nand other events. Examples can be found in <code>\"@lib/openGl.l\"</code>. The\nfollowing function <code>mouseFunc</code> takes a Lisp function, installs it\nunder the tag <code>mouseFunc</code> (any other tag would be all right too) as a\ncallback, and passes the resulting function pointer to the OpenGL\n<code>glutMouseFunc()</code> function, to set it as a callback for the current\nwindow:\n\n<pre>\n(de mouseFunc (Fun)\n   (native `*GlutLib \"glutMouseFunc\" NIL (lisp 'mouseFunc Fun)) )\n</pre>\n\n<p>(The global <code>*GlutLib</code> holds the library\n<code>\"/usr/lib/libglut.so\"</code>. The backquote (<code>`</code>) is important\nhere, so that the transient symbol with the library name (and not the global\n<code>*GlutLib</code>) is evaluated by <code>native</code>, resulting in the\nproper library handle at runtime).\n\n<p>A program using OpenGL may then use <code>mouseFunc</code> to install a\nfunction\n\n<pre>\n(mouseFunc\n   '((Btn State X Y)\n      (do-something-with Btn State X Y) ) )\n</pre>\n\n<p>so that future clicks into the window will pass the button, state and\ncoordinates to that function.\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/rc.sample",
    "content": "# 20nov24 Software Lab. Alexander Burger\n# Copy to ~/.pil/rc\n\n(history\n   (make\n      (skip \"#\")\n      (while (line T) (link @))  # Global history\n      (while (read) (eval @))  # Initial commands\n      (when (info \".pilrc\")  # Local history and commands\n         (in @@\n            (skip \"#\")\n            (while (line T) (link @))\n            (while (read) (eval @)) ) ) ) )\n\n# Initial history\n(stack)\n(gc 1200) (dbCheck)\n(show (; *FormLst 1 2))\n(vi (; *FormLst 1 2 *Dbg 1 -1))\n(show (; *FormLst 1 2 obj))\n\n# Initial commands\n(de x ()\n   (load \"x.l\") )\n"
  },
  {
    "path": "doc/ref.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 04apr26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>PicoLisp Reference</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<p style=\"text-align: right\">\n<i>Perfection is attained</i><br>\n<i>not when there is nothing left to add</i><br>\n<i>but when there is nothing left to take away.</i><br>\n<i>(Antoine de Saint-Exupéry)</i><br>\n\n\n<h1>The PicoLisp Reference</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>This document describes the concepts, data types, and kernel functions of the\n<a href=\"http://software-lab.de/down.html\">PicoLisp</a> system.\n\n<p>This is <i>not</i> a Lisp tutorial. For an introduction to Lisp, a\ntraditional Lisp book like \"Lisp\" by Winston/Horn (Addison-Wesley 1981) is\nrecommended. Note, however, that there are significant differences between\nPicoLisp and Maclisp (and even greater differences to Common Lisp).\n\n<p>Please take a look at the <a href=\"tut.html\">PicoLisp Tutorial</a> for an\nexplanation of some aspects of PicoLisp, and scan through the list of <a\nhref=\"faq.html\">Frequently Asked Questions (FAQ)</a>.\n\n<p><ul>\n<li><a href=\"#intro\">Introduction</a>\n<li><a href=\"#vm\">The PicoLisp Machine</a>\n   <ul>\n   <li><a href=\"#cell\">The Cell</a>\n   <li><a href=\"#data\">Data Types</a>\n      <ul>\n      <li><a href=\"#number\">Numbers</a>\n      <li><a href=\"#symbol\">Symbols</a>\n         <ul>\n         <li><a href=\"#nilSym\">NIL</a>\n         <li><a href=\"#internal\">Internal Symbols</a>\n         <li><a href=\"#transient\">Transient Symbols</a>\n         <li><a href=\"#external\">External Symbols</a>\n         </ul>\n      <li><a href=\"#lst\">Lists</a>\n      </ul>\n   <li><a href=\"#mem\">Memory Management</a>\n   </ul>\n<li><a href=\"#penv\">Programming Environment</a>\n   <ul>\n   <li><a href=\"#inst\">Installation</a>\n   <li><a href=\"#invoc\">Invocation</a>\n   <li><a href=\"#io\">Input/Output</a>\n      <ul>\n      <li><a href=\"#num-io\">Numbers</a>\n      <li><a href=\"#sym-io\">Symbols</a>\n         <ul>\n         <li><a href=\"#nilSym-io\">NIL</a>\n         <li><a href=\"#internal-io\">Internal Symbols</a>\n         <li><a href=\"#transient-io\">Transient Symbols</a>\n         <li><a href=\"#external-io\">External Symbols</a>\n         </ul>\n      <li><a href=\"#lst-io\">Lists</a>\n      <li><a href=\"#macro-io\">Read-Macros</a>\n      </ul>\n   <li><a href=\"#namespaces\">Namespaces</a>\n   <li><a href=\"#ev\">Evaluation</a>\n   <li><a href=\"#libs\">Shared Libraries</a>\n   <li><a href=\"#coroutines\">Coroutines</a>\n   <li><a href=\"#int\">Interrupt</a>\n   <li><a href=\"#errors\">Error Handling</a>\n   <li><a href=\"#atres\">@ Result</a>\n   <li><a href=\"#cmp\">Comparing</a>\n   <li><a href=\"#oop\">OO Concepts</a>\n   <li><a href=\"#dbase\">Database</a>\n      <ul>\n      <li><a href=\"#trans\">Transactions</a>\n      <li><a href=\"#er\">Entities / Relations</a>\n      </ul>\n   <li><a href=\"#pilog\">Pilog (PicoLisp Prolog)</a>\n   <li><a href=\"#conv\">Naming Conventions</a>\n   <li><a href=\"#trad\">Breaking Traditions</a>\n   </ul>\n<li><a href=\"#fun\">Function Reference</a>\n<li><a href=\"#down\">Download</a>\n</ul>\n\n\n<p><hr>\n<h2><a id=\"intro\">Introduction</a></h2>\n\n<p>PicoLisp is the result of a language design study, trying to answer the\nquestion \"What is a minimal but useful architecture for a virtual machine?\".\nBecause opinions differ about what is meant by \"minimal\" and \"useful\", there are\nmany answers to that question, and people might consider other solutions more\n\"minimal\" or more \"useful\". But from a practical point of view, PicoLisp has\nproven to be a valuable answer to that question.\n\n<p>First of all, PicoLisp is a virtual machine architecture, and then a\nprogramming language. It was designed in a \"bottom up\" way, and \"bottom up\" is\nalso the most natural way to understand and to use it: <i>Form Follows\nFunction</i>.\n\n<p>PicoLisp has been used in several commercial and research programming\nprojects since 1988. Its internal structures are simple enough, allowing an\nexperienced programmer always to fully understand what's going on under the\nhood, and its language features, efficiency and extensibility make it suitable\nfor almost any practical programming task.\n\n<p>In a nutshell, emphasis was put on four design objectives. The PicoLisp\nsystem should be\n\n<p><dl>\n\n<dt>Simple</dt>\n<dd>The internal data structure should be as simple as possible. Only one single\ndata structure is used to build all higher level constructs.\n</dd>\n\n<dt>Unlimited</dt>\n<dd>There are no limits imposed upon the language due to limitations of the\nvirtual machine architecture. That is, there is no upper bound in symbol name\nlength, number digit counts, stack depth, or data structure and buffer sizes,\nexcept for the total memory size of the host machine.\n</dd>\n\n<dt>Dynamic</dt>\n<dd>Behavior should be as dynamic as possible (\"run\"-time vs. \"compile\"-time).\nAll decisions are delayed until runtime where possible. This involves matters\nlike memory management, dynamic symbol binding, and late method binding.\n</dd>\n\n<dt>Practical</dt>\n<dd>PicoLisp is not just a toy of theoretical value. It is in use since 1988 in\nactual application development, research and production.\n</dd>\n\n</dl>\n\n\n<p><hr>\n<h2><a id=\"vm\">The PicoLisp Machine</a></h2>\n\n<p>An important point in the PicoLisp philosophy is the knowledge about the\narchitecture and data structures of the internal machinery. The high-level\nconstructs of the programming language directly map to that machinery, making\nthe whole system both understandable and predictable.\n\n<p>This is similar to assembly language programming, where the programmer has\ncomplete control over the machine.\n\n\n<p><hr>\n<h3><a id=\"cell\">The Cell</a></h3>\n\n<p>The PicoLisp virtual machine is both simpler and more powerful than most\ncurrent (hardware) processors. At the lowest level, it is constructed from a\nsingle data structure called \"cell\":\n\n<pre>\n         +-----+-----+\n         | CAR | CDR |\n         +-----+-----+\n</pre>\n\n<p>A cell is a pair of 64-bit machine words, which traditionally are called CAR\nand CDR in the Lisp terminology. These words can represent either a numeric\nvalue (scalar) or the address of another cell (pointer). All higher level data\nstructures are built out of cells.\n\n<p>The type information of higher level data is contained in the pointers to\nthese data. Assuming the implementation on a byte-addressed physical machine,\nand the pointer size being 8 bytes, each cell has a size of 16 bytes. Therefore,\nthe pointer to a cell must point to a 16-byte boundary (a number which is a\nmultiple of 16), and its bit-representation will look like:\n\n<pre>\n      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000\n</pre>\n\n<p>(the '<code>x</code>' means \"don't care\"). For the individual data types, the\npointer is adjusted to point to other parts of a cell, in effect setting some of\nthe lower four bits to non-zero values. These bits are then used by the\ninterpreter to determine the data type.\n\n<p>In any case, bit(0) - the least significant of these bits - is reserved as a\nmark bit for garbage collection.\n\n<p>Initially, all cells in the memory are unused (free), and linked together to\nform a \"free list\". To create higher level data types at runtime, cells are\ntaken from that free list, and returned by the garbage collector when they are\nno longer needed. All memory management is done via that free list; there are no\nadditional buffers, string spaces or special memory areas, with two exceptions:\n\n<p><ul>\n<li>A certain fixed area of memory is set aside to contain the executable code\nand global variables of the interpreter itself, and\n\n<li>a standard push down stack for return addresses and temporary storage. Both\nare not directly accessible by the programmer.\n\n</ul>\n\n\n<p><hr>\n<h3><a id=\"data\">Data Types</a></h3>\n\n<p>On the virtual machine level, PicoLisp supports\n\n<p><ul>\n<li>three base data types: Numbers, Symbols and Cons Pairs (Lists),\n<li>the three scope variations of symbols: Internal, Transient and External, and\n<li>the special symbol <code>NIL</code>.\n</ul>\n\n<p>They are all built from the single cell data structure, and all runtime data\ncannot consist of any other types than these three.\n\n<p>The following diagram shows the complete data type hierarchy, consisting of\nthe three base types and the symbol variations:\n\n<pre>\n                       cell\n                        |\n            +-----------+-----------+\n            |           |           |\n         Number       Symbol       Pair\n                        |\n                        |\n   +--------+-----------+-----------+\n   |        |           |           |\n  NIL   Internal    Transient    External\n</pre>\n\n\n<p><hr>\n<h4><a id=\"number\">Numbers</a></h4>\n\n<p>A number can represent a signed integral value of arbitrary size. Internally,\nnumeric values of up to 60 bits are stored in \"short\" numbers,\n\n<pre>\n      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS010\n</pre>\n\ni.e. the value is directly represented in the pointer, and doesn't take any heap\nspace.\n\n<p>Numbers larger than that are \"big\" numbers, stored in heap cells. The CARs of\none or more cells hold the number's \"digits\" (64 bits each), with the least\nsignificant digit first, while the CDRs point to the remaining digits.\n\n<pre>\n         Bignum\n         |\n         V\n      +-----+-----+\n      | DIG |  |  |\n      +-----+--+--+\n               |\n               V\n            +-----+-----+\n            | DIG |  |  |\n            +-----+--+--+\n                     |\n                     V\n                  +-----+-----+\n                  | DIG | CNT |\n                  +-----+-----+\n</pre>\n\nThe CDR of the final cell holds the remaining bits in a short number.\n\n<p>The pointer to a big number points into the middle of the CAR, with an offset\nof 4 from the cell's start address, and the sign bit in bit(3):\n\n<pre>\n      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS100\n</pre>\n\n<p>Thus, a number is recognized by the interpreter when either bit(1) is\nnon-zero (a short number) or bit(2) is non-zero (a big number).\n\n\n<p><hr>\n<h4><a id=\"symbol\">Symbols</a></h4>\n\n<p>A symbol is more complex than a number. Each symbol has a value, and\noptionally a name and an arbitrary number of properties. The CDR of a symbol\ncell is also called VAL, and the CAR points to the symbol's tail. As a minimum,\na symbol consists of a single cell, and has no name or properties:\n\n<pre>\n            Symbol\n            |\n            V\n      +-----+-----+\n      | '0' | VAL |\n      +-----+-----+\n</pre>\n\n<p>That is, the symbol's tail is empty (<code>ZERO</code>, as indicated by\n'<code>0</code>').\n\n<p>The pointer to a symbol points to the CDR of the cell, with an offset of 8\nbytes from the cell's start address. Therefore, the bit pattern of a symbol will\nbe:\n\n<pre>\n      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1000\n</pre>\n\n<p>Thus, a symbol is recognized by the interpreter when bit(3) is non-zero. (It\nshould also be understood that both bit(2) and bit(1) must be zero, thus\navoiding confusion with the number types.)\n\n<p>A property is a key-value pair, represented by a cons pair in the symbol's\ntail. This is called a \"property list\". The property list may be terminated by a\nnumber (short or big) representing the symbol's name. In the following example,\na symbol with the name <code>\"abcdefghijklmno\"</code> has three properties: A\nKEY/VAL pair, a cell with only a KEY, and another KEY/VAL pair.\n\n<pre>\n            Symbol\n            |\n            V\n      +-----+-----+                                +----------+---------+\n      |  |  | VAL |                                |'hgfedcba'|'onmlkji'|\n      +--+--+-----+                                +----------+---------+\n         | tail                                       ^\n         |                                            |\n         V                                            | name\n         +-----+-----+     +-----+-----+     +-----+--+--+\n         |  |  |  ---+---> | KEY |  ---+---> |  |  |  |  |\n         +--+--+-----+     +-----+-----+     +--+--+-----+\n            |                                   |\n            V                                   V\n            +-----+-----+                       +-----+-----+\n            | VAL | KEY |                       | VAL | KEY |\n            +-----+-----+                       +-----+-----+\n</pre>\n\n<p>Each property in a symbol's tail is either a symbol (like the single KEY\nabove, then it represents the boolean value <code>T</code>) or a cons pair with\nthe property key in its CDR and the property value in its CAR. In both cases,\nthe key should be a symbol, because searches in the property list are performed\nusing pointer comparisons.\n\n<p>The name of a symbol is stored as a number at the end of the tail. It\ncontains the characters of the name in UTF-8 encoding, using between one and\nseven bytes in a short number, or eight bytes in a bignum cell. The first byte\nof the first character, for example, is stored in the lowest 8 bits of the\nnumber.\n\n<p>All symbols have the above structure, but depending on scope and\naccessibility there are actually four types of symbols: <code><a\nhref=\"#nilSym\">NIL</a></code>, <a href=\"#internal\">internal</a>, <a\nhref=\"#transient\">transient</a> and <a href=\"#external\">external</a> symbols.\n\n\n<p><hr>\n<h5><a id=\"nilSym\">NIL</a></h5>\n\n<p><code>NIL</code> is a special symbol which exists exactly once in the whole\nsystem. It is used\n\n<p><ul>\n<li>as an end-of-list marker\n<li>to represent the empty list\n<li>to represent the boolean value \"false\"\n<li>to represent a string of length zero\n<li>to represent the absolute minimum\n<li>to represent end of file\n<li>to represent standard in/out\n<li>to represent the value \"Not a Number\"\n<li>as the root of all class hierarchies\n<li>as volatile property key\n<li>as \"no value\"\n</ul>\n\n<p>For that, <code>NIL</code> has a special structure:\n\n<pre>\n      NIL:  /\n            |\n            V\n      +-----+-----+-----+-----+\n      |'LIN'|  /  |  /  |  /  |\n      +-----+-----+-----+-----+\n</pre>\n\n<p>The reason for that structure is <code>NIL</code>'s dual nature both as a\nsymbol and as a list:\n\n<p><ul>\n<li>As a symbol, it should give <code>NIL</code> for its VAL, and be without\nproperties\n\n<li>For the empty list, <code>NIL</code> should give <code>NIL</code> both for\nits CAR and for its CDR\n\n</ul>\n\n<p>These requirements are fulfilled by the above structure.\n\n\n<p><hr>\n<h5><a id=\"internal\">Internal Symbols</a></h5>\n\n<p>Internal symbols are all those \"normal\" symbols, as they are used for\nfunction definitions and variable names. They are \"interned\" into an index\nstructure, so that it is possible to find an internal symbol by searching for\nits name.\n\n<p>There cannot be two different symbols with the same name in the same\n<a href=\"ref.html#namespaces\">namespace</a>.\n\n<p>Initially, a new internal symbol's VAL is <code>NIL</code>.\n\n\n<p><hr>\n<h5><a id=\"transient\">Transient Symbols</a></h5>\n\n<p>Transient symbols are only interned into an index structure for a certain\ntime (e.g. while reading the current source file), and are released after that.\nThat means, a transient symbol cannot be accessed then by its name, and there\nmay be several transient symbols in the system having the same name.\n\n<p>Transient symbols are used\n\n<p><ul>\n<li>as text strings\n\n<li>as identifiers with a limited access scope (like, for example,\n<code>static</code> identifiers in the C language family)\n\n<li>as anonymous, dynamically created objects (without a name)\n\n</ul>\n\n<p>Initially, a new transient symbol's VAL is that symbol itself.\n\n<p>A transient symbol without a name can be created with the <code><a\nhref=\"refB.html#box\">box</a></code> or <code><a\nhref=\"refN.html#new\">new</a></code> functions.\n\n\n<p><hr>\n<h5><a id=\"external\">External Symbols</a></h5>\n\n<p>External symbols reside in a database file (or other resources, see <code><a\nhref=\"refE.html#*Ext\">*Ext</a></code>), and are loaded into memory - and written\nback to the file - dynamically as needed, and transparently to the programmer.\nThey are kept in memory (\"cached\") as long as they are accessible (\"referred\nto\") from other parts of the program, or when they were modified but not yet\nwritten to the database file (by <code><a\nhref=\"refC.html#commit\">commit</a></code>).\n\n<p>The interpreter recognizes external symbols internally by an additional tag\nbit in the tail structure.\n\n<p>There cannot be two different external symbols with the same name. External\nsymbols are maintained in index structures while they are loaded into memory,\nand have their external location (disk file and block offset) directly coded\ninto their names (more details <a href=\"#external-io\">here</a>).\n\n<p>Initially, a new external symbol's VAL is <code>NIL</code>, unless otherwise\nspecified at creation time.\n\n\n<p><hr>\n<h4><a id=\"lst\">Lists</a></h4>\n\n<p>A list is a sequence of one or more cells (cons pairs), holding numbers,\nsymbols, or cons pairs.\n\n<pre>\n      |\n      V\n      +-----+-----+\n      | any |  |  |\n      +-----+--+--+\n               |\n               V\n               +-----+-----+\n               | any |  |  |\n               +-----+--+--+\n                        |\n                        V\n                        ...\n</pre>\n\n<p>Lists are used in PicoLisp to implement composite data structures like\narrays, trees, stacks or queues.\n\n<p>In contrast to lists, numbers and symbols are collectively called \"Atoms\".\n\n<p>Typically, the CDR of each cell in a list points to the following cell,\nexcept for the last cell which points to <code>NIL</code>. If, however, the CDR of\nthe last cell points to an atom, that cell is called a \"dotted pair\" (because of\nits I/O syntax with a dot '<code>.</code>' between the two values).\n\n\n<p><hr>\n<h3><a id=\"mem\">Memory Management</a></h3>\n\n<p>The PicoLisp interpreter has complete knowledge of all data in the system,\ndue to the type information associated with every pointer. Therefore, an\nefficient garbage collector mechanism can easily be implemented. PicoLisp\nemploys a simple but fast mark-and-sweep garbage collector.\n\n<p>As the collection process is very fast (in the order of milliseconds per\nmegabyte), it was not necessary to develop more complicated, time-consuming and\nerror-prone garbage collection algorithms (e.g. incremental collection). A\ncompacting garbage collector is also not necessary, because the single cell data\ntype cannot cause heap fragmentation.\n\n\n<p><hr>\n<h2><a id=\"penv\">Programming Environment</a></h2>\n\n<p>Lisp was chosen as the programming language, because of its clear and simple\nstructure.\n\n<p>In some previous versions, a Forth-like syntax was also implemented on top of\na similar virtual machine (Lifo). Though that language was more flexible and\nexpressive, the traditional Lisp syntax proved easier to handle, and the virtual\nmachine can be kept considerably simpler.\n\nPicoLisp inherits the major advantages of classical Lisp systems like\n\n<p><ul>\n<li>Dynamic data types and structures\n<li>Formal equivalence of code and data\n<li>Functional programming style\n<li>An interactive environment\n</ul>\n\n<p>In the following, some concepts and peculiarities of the PicoLisp language\nand environment are described.\n\n\n<p><hr>\n<h3><a id=\"inst\">Installation</a></h3>\n\n<p>PicoLisp supports two installation strategies: Local and Global.\n\n<p>Normally, if you didn't build PicoLisp yourself but installed it with your\noperating system's package manager, you will have a global installation. This\nallows system-wide access to the executable and library/documentation files.\n\n<p>To get a local installation, you can directly download the PicoLisp tarball,\nand follow the instructions in the INSTALL file.\n\n<p>A local installation will not interfere in any way with the world outside its\ndirectory. There is no need to touch any system locations, and you don't have to\nbe root to install it. Many different versions - or local modifications - of\nPicoLisp can co-exist on a single machine.\n\n<p>Note that you are still free to have local installations along with a global\ninstallation, and invoke them explicitly as desired.\n\n<p>Most examples in the following apply to a global installation.\n\n\n<p><hr>\n<h3><a id=\"invoc\">Invocation</a></h3>\n\n<p>When PicoLisp is invoked from the command line, an arbitrary number of\narguments may follow the command name.\n\n<p>By default, each argument is the name of a file to be executed by the\ninterpreter. If, however, the argument's first character is a hyphen\n'<code>-</code>', then the rest of that argument is taken as a Lisp function\ncall (without the surrounding parentheses), and a hyphen by itself as an\nargument stops evaluation of the rest of the command line (it may be processed\nlater using the <code><a href=\"refA.html#argv\">argv</a></code> and <code><a\nhref=\"refO.html#opt\">opt</a></code> functions). This whole mechanism corresponds\nto calling <code>(<a href=\"refL.html#load\">load</a> T)</code>.\n\n<p>A special case is if the last argument is a single '<code>+</code>'. This\nwill switch on debug mode (the <code><a href=\"refD.html#*Dbg\">*Dbg</a></code>\nglobal variable) and discard the '<code>+</code>'. In that case, a file\n\"~/.pil/rc\" (if it exists) will be <code><a\nhref=\"refL.html#load\">load</a></code>ed, which can contain arbitrary statements\nand definitions (e.g. to initialize the <code>readline(3)</code> <code><a\nhref=\"refH.html#history\">history</a></code>).\n\n<p>As a convention, PicoLisp source files have the extension \"<code>.l</code>\".\n\n<p>Note that the PicoLisp executable itself does not expect or accept any\ncommand line flags or options (except the '<code>+</code>', see above). They are\nreserved for application programs.\n\n<p>The simplest and shortest invocation of PicoLisp does nothing, and exits\nimmediately by calling <code><a href=\"refB.html#bye\">bye</a></code>:\n\n<pre>\n$ picolisp -bye\n$\n</pre>\n\n<p>In interactive mode, the PicoLisp interpreter (see <code><a\nhref=\"refL.html#load\">load</a></code>) will also exit when <code>Ctrl-D</code>\nis entered:\n\n<pre>\n$ picolisp\n:           # Typed Ctrl-D\n$\n</pre>\n\n<p>To start up the standard PicoLisp environment, several files should be\nloaded. The most commonly used things are in \"lib.l\" and in a bunch of other\nfiles, which are in turn loaded by \"ext.l\". Thus, a typical call would be:\n\n<pre>\n$ picolisp lib.l ext.l\n</pre>\n\n<p>The recommended way, however, is to call the \"pil\" shell script, which\nincludes \"lib.l\" and \"ext.l\". Given that your current project is loaded by some\nfile \"myProject.l\" and your startup function is <code>main</code>, your\ninvocation would look like:\n\n<pre>\n$ pil myProject.l -main\n</pre>\n\n<p>For interactive development it is recommended to enable debugging mode, to\nget <code>readline(3)</code> line history, single-stepping, tracing and other\ndebugging utilities.\n\n<pre>\n$ pil myProject.l -main +\n</pre>\n\n<p>This is - in a local installation - equivalent to\n\n<pre>\n$ ./pil myProject.l -main +\n</pre>\n\n<p>In any case, the directory part of the first file name supplied (normally,\nthe path to \"lib.l\" as called by 'pil') is remembered internally as the\n<i>PicoLisp Home Directory</i>. This path is later automatically substituted for\nany leading \"<code>@</code>\" character in file name arguments to I/O functions\n(see <code><a href=\"refP.html#path\">path</a></code>).\n\n\n<p><hr>\n<h3><a id=\"io\">Input/Output</a></h3>\n\n<p>In Lisp, each internal data structure has a well-defined external\nrepresentation in human-readable format. All kinds of data can be written to a\nfile, and restored later to their original form by reading that file.\n\n<p>For all input functions besides <code><a href=\"refW.html#wr\">wr</a></code>,\n<code><a href=\"refR.html#rd\">rd</a></code> and <code><a\nhref=\"refE.html#echo\">echo</a></code> the input is assumed to be valid UTF-8,\nconsisting only of characters allowed in picolisp symbol names.\n\n<p>In normal operation, the PicoLisp interpreter continually executes an\ninfinite \"read-eval-print loop\". It reads one expression at a time, evaluates\nit, and prints the result to the console. Any input into the system, like data\nstructures and function definitions, is done in a consistent way no matter\nwhether it is entered at the console or read from a file.\n\n<p>Comments can be embedded in the input stream with the hash <code>#</code>\ncharacter. Everything up to the end of that line will be ignored by the reader.\n\n<pre>\n: (* 1 2 3)  # This is a comment\n-> 6\n</pre>\n\n<p>A comment spanning several lines (a block comment) may be enclosed between\n<code>#{</code> and <code>}#</code>. Block comments may be nested.\n\n\n<p>Here is the I/O syntax for the individual PicoLisp data types (numbers,\nsymbols and lists) and for read-macros:\n\n\n<p><hr>\n<h4><a id=\"num-io\">Numbers</a></h4>\n\n<p>A number consists of an arbitrary number of digits ('<code>0</code>' through\n'<code>9</code>'), optionally preceded by a sign character ('<code>+</code>' or\n'<code>-</code>'). Legal number input is:\n\n<pre>\n: 7\n-> 7\n: -12345678901245678901234567890\n-> -12345678901245678901234567890\n</pre>\n\n<p>Fixpoint numbers can be input by embedding a decimal point '<code>.</code>',\nand setting the global variable <code><a href=\"refS.html#*Scl\">*Scl</a></code>\nappropriately:\n\n<pre>\n: *Scl\n-> 0\n\n: 123.45\n-> 123\n: 456.78\n-> 457\n\n: (setq *Scl 3)\n-> 3\n: 123.45\n-> 123450\n: 456.78\n-> 456780\n</pre>\n\n<p>Thus, fixpoint input simply scales the number to an integer value\ncorresponding to the number of digits in <code><a\nhref=\"refS.html#*Scl\">*Scl</a></code>.\n\n<p>Formatted output of scaled fixpoint values can be done with the <code><a\nhref=\"refF.html#format\">format</a></code> and <code><a\nhref=\"refR.html#round\">round</a></code> functions:\n\n<pre>\n: (format 1234567890 2)\n-> \"12345678.90\"\n: (format 1234567890 2 \".\" \",\")\n-> \"12,345,678.90\"\n</pre>\n\n\n<p><hr>\n<h4><a id=\"sym-io\">Symbols</a></h4>\n\n<p>The reader is able to recognize the individual symbol types from their\nsyntactic form. A symbol name should - of course - not look like a legal number\n(see above).\n\n<p>In general, symbol names are case-sensitive. <code>car</code> is not the same\nas <code>CAR</code>.\n\n\n<p><hr>\n<h5><a id=\"nilSym-io\">NIL</a></h5>\n\n<p>Besides the standard form, <code>NIL</code> is also recognized as\n<code>()</code>, <code>[]</code> or <code>\"\"</code>.\n\n<pre>\n: NIL\n-> NIL\n: ()\n-> NIL\n: \"\"\n-> NIL\n</pre>\n\n<p>Output will always appear as <code>NIL</code>.\n\n\n<p><hr>\n<h5><a id=\"internal-io\">Internal Symbols</a></h5>\n\n<p>Internal symbol names can consist of any printable (non-whitespace)\ncharacter, except for the following meta characters:\n\n<pre>\n   \"  '  (  )  ,  [  ]  `  { } ~\n</pre>\n\n<p>It is possible, though, to include these special characters into symbol names\nby escaping them with a backslash '<code>\\</code>'.\n\n<p>The dot '<code>.</code>' has a dual nature. It is a meta character when\nstanding alone, denoting a <a href=\"#dotted\">dotted pair</a>, but can otherwise\nbe used in symbol names.\n\n<p>As a rule, anything not recognized by the reader as another data type will be\nreturned as an internal symbol.\n\n\n<p><hr>\n<h5><a id=\"transient-io\">Transient Symbols</a></h5>\n\n<p>A transient symbol is anything surrounded by double quotes '<code>\"</code>'.\nWith that, it looks like - and can be used as - a string constant in other\nlanguages. However, it is a real symbol, and may be assigned a value or a\nfunction definition, and properties.\n\n<p>Initially, a transient symbol's value is that symbol itself, so that it does\nnot need to be quoted for evaluation:\n\n<pre>\n: \"This is a string\"\n-> \"This is a string\"\n</pre>\n\n<p>However, care must be taken when assigning a value to a transient symbol.\nThis may cause unexpected behavior:\n\n<pre>\n: (setq \"This is a string\" 12345)\n-> 12345\n: \"This is a string\"\n-> 12345\n</pre>\n\n<p>The name of a transient symbol can contain any character except the\nnull-byte. Control characters can be written with a preceding hat\n'<code>^</code>' character. A hat or a double quote character can be escaped\nwith a backslash '<code>\\</code>', and a backslash itself has to be escaped with\nanother backslash.\n\n<pre>\n: \"We^Ird\\\\Str\\\"ing\"\n-> \"We^Ird\\\\Str\\\"ing\"\n: (chop @)\n-> (\"W\" \"e\" \"^I\" \"r\" \"d\" \"\\\\\" \"S\" \"t\" \"r\" \"\\\"\" \"i\" \"n\" \"g\")\n</pre>\n\n<p>The combination of a backslash followed by 'b', 'e', 'n', 'r' or 't' is\nreplaced with backspace (\"^H\"), escape (\"^[\"), newline (\"^J\"), return (\"^M\") or\nTAB (\"^I\"), respectively.\n\n<pre>\n: \"abc\\tdef\\r\"\n-> \"abc^Idef^M\"\n</pre>\n\n<p>A decimal number between two backslashes can be used to specify any unicode\ncharacter directly.\n\n<pre>\n: \"äöü\\8364\\xyz\"\n-> \"äöü€xyz\"\n</pre>\n\n<p>A backslash in a transient symbol name at the end of a line discards the\nnewline, and continues the name in the next line. In that case, all leading\nspaces and tabs in that line are discarded, to allow proper source code\nindentation.\n\n<pre>\n: \"abc\\\n   def\"\n-> \"abcdef\"\n: \"x \\\n   y \\\n   z\"\n-> \"x y z\"\n</pre>\n\n<p>The index for transient symbols is local when <code><a\nhref=\"refL.html#load\">load</a></code>ing a source file. With that mechanism, it\nis possible to create symbols with a local access scope, not accessible from\nother parts of the program.\n\n<p>A special case of transient symbols are <i>anonymous symbols</i>. These are\nsymbols without name (see <code><a href=\"refB.html#box\">box</a></code>, <code><a\nhref=\"refB.html#box?\">box?</a></code> or <code><a\nhref=\"refN.html#new\">new</a></code>). They print as a dollar sign\n(<code>$</code>) followed by a decimal digit string (actually their machine\naddress).\n\n\n<p><hr>\n<h5><a id=\"external-io\">External Symbols</a></h5>\n\n<p>External symbol names are surrounded by braces ('<code>{</code>' and\n'<code>}</code>'). The characters of the symbol's name itself identify the\nphysical location of the external object. This is the number of the database\nfile minus 1 in <code><a href=\"refH.html#hax\">hax</a></code> notation (i.e.\nhexadecimal/alpha notation, where '<code>@</code>' is zero, '<code>A</code>' is\n1 and '<code>O</code>' is 15 (from \"alpha\" to \"omega\")), immediately followed\n(without a hyphen) the starting block in octal ('<code>0</code>' through\n'<code>7</code>').\n\n<p>The database file is omitted for the first (default) file.\n\n\n<p><hr>\n<h4><a id=\"lst-io\">Lists</a></h4>\n\n<p>Lists are surrounded by parentheses ('<code>(</code>' and '<code>)</code>').\n\n<p><code>(A)</code> is a list consisting of a single cell, with the symbol\n<code>A</code> in its CAR, and <code>NIL</code> in its CDR.\n\n<p><code>(A B C)</code> is a list consisting of three cells, with the symbols\n<code>A</code>, <code>B</code> and <code>C</code> respectively in their CAR, and\n<code>NIL</code> in the last cell's CDR.\n\n<p><a id=\"dotted\"><code>(A . B)</code></a> is a \"dotted pair\", a list\nconsisting of a single cell, with the symbol <code>A</code> in its CAR, and\n<code>B</code> in its CDR.\n\n<p>PicoLisp has built-in support for reading and printing simple circular lists.\nIf the dot in a dotted-pair notation is immediately followed by a closing\nparenthesis, it indicates that the CDR of the last cell points back to the\nbeginning of that list.\n\n<pre>\n: (let L '(a b c) (conc L L))\n-> (a b c .)\n: (cdr '(a b c .))\n-> (b c a .)\n: (cddddr '(a b c .))\n-> (b c a .)\n</pre>\n\n<p>A similar result can be achieved with the function <code><a\nhref=\"refC.html#circ\">circ</a></code>. Such lists must be used with care,\nbecause many functions won't terminate or will crash when given such a list.\n\n\n<p><hr>\n<h4><a id=\"macro-io\">Read-Macros</a></h4>\n\n<p>Read-macros in PicoLisp are special forms that are recognized by the reader,\nand modify its behavior. Note that they take effect immediately while <code><a\nhref=\"refR.html#read\">read</a></code>ing an expression, and are not seen by the\n<code>eval</code> in the main loop.\n\n<p>The most prominent read-macro in Lisp is the single quote character\n\"<code>'</code>\", which expands to a call of the <code><a\nhref=\"refQ.html#quote\">quote</a></code> function. Note that the single quote\ncharacter is also printed instead of the full function name.\n\n<pre>\n: '(a b c)\n-> (a b c)\n: '(quote . a)\n-> 'a\n: (cons 'quote 'a)   # (quote . a)\n-> 'a\n: (list 'quote 'a)   # (quote a)\n-> '(a)\n</pre>\n\n<p>A comma (<code>,</code>) will cause the reader to collect the following data\nitem into an <code><a href=\"refI.html#idx\">idx</a></code> tree in the global\nvariable <code><a href=\"refU.html#*Uni\">*Uni</a></code>, and to return a\npreviously inserted equal item if present. This makes it possible to create a\nunique list of references to data which do normally not follow the rules of\npointer equality. If the value of <code>*Uni</code> is <code>T</code>, the\ncomma read macro mechanism is disabled.\n\n<p>A single backquote character \"<code>`</code>\" will cause the reader to\nevaluate the following expression, and return the result.\n\n<pre>\n: '(a `(+ 1 2 3) z)\n-> (a 6 z)\n</pre>\n\n<p>A tilde character <code>~</code> inside a list will cause the reader to\nevaluate the following expression, and (destructively) splice the result into\nthe list.\n\n<pre>\n: '(a b c ~(list 'd 'e 'f) g h i)\n-> (a b c d e f g h i)\n</pre>\n\n<p>When a tilde character is used to separate two symbol names (without\nsurrounding whitespace), the first is taken as a namespace to look up the\nsecond.\n\n<pre>\n: 'libA~foo  # Look up 'foo' in namespace 'libA'\n-> libA~foo  # \"foo\" is not interned in the current namespace\n</pre>\n\n<p>Reading <code>libA~foo</code> is equivalent to switching the current\nnamespace search order to <code>libA</code> <i>only</i> (with <code><a\nhref=\"refS.html#symbols\">symbols</a></code>), reading the symbol\n<code>foo</code>, and then switching back to the original search order.\n\n<p><code>%~foo</code> temporarily switches the search order to the\n<code>CDR</code> of the current namespace list.\n\n<p>Brackets ('<code>[</code>' and '<code>]</code>') can be used as super\nparentheses. A closing bracket will match the innermost opening bracket, or all\ncurrently open parentheses.\n\n<pre>\n: '(a (b (c (d]\n-> (a (b (c (d))))\n: '(a (b [c (d]))\n-> (a (b (c (d))))\n</pre>\n\n<p>Finally, reading the sequence '<code>{}</code>' will result in a new\nanonymous symbol with value <code>NIL</code>, equivalent to a call to <code><a\nhref=\"refB.html#box\">box</a></code> without arguments.\n\n<pre>\n: '({} {} {})\n-> ($177066763035351 $177066763035353 $177066763035355)\n: (mapcar val @)\n-> (NIL NIL NIL)\n</pre>\n\n\n<p><hr>\n<h3><a id=\"namespaces\">Namespaces</a></h3>\n\n<p>When the reader encounters an atom that is not a number, it looks for\nit in the current namespace search order. If a symbol with that name is\nfound, it is used; otherwise, a new symbol is created and interned in\nthe current namespace.\n\n<p>In general, namespaces in PicoLisp have nothing to do with the values\nor definitions of symbols, but only with their scope (visibility).\nSeveral symbols with the same name may exist in different namespaces,\nand a single symbol may exist in one or many (or none at all)\nnamespaces.\n\n<p>At interpreter startup, only the internal <code><a\nhref=\"refP.html#pico\">pico</a></code> namespace exists, along with the\nthree special built-in namespaces for <a\nhref=\"#transient-io\">transient</a>, <a href=\"#external-io\">external</a>,\nand <code><a href=\"refP.html#private\">private</a></code> symbols.\n\n<p>For internal symbols, it may not always be clear which namespace(s)\nthey belong to. Depending on the search order, the same name in a given\ncode segment might refer to different physical symbols. To avoid\nambiguity, it is recommended to follow these namespace policies:\n\n<p><dl>\n\n<dt>Invariant namespace order</dt>\n<dd>Across different parts of a program and all loaded libraries the\nsearch order may be changed as needed, but the position of each\nnamespace relative to other namespaces should stay the same. That is,\nnamespace A should not overshadow namespace B in one context and be\novershadowed by B in another context.\n</dd>\n\n<dt>Scope declaration before first usage</dt>\n<dd>Calls to <code><a href=\"refS.html#symbols\">symbols</a></code>,\n<code><a href=\"refP.html#private\">private</a></code>, <code><a\nhref=\"refL.html#local\">local</a></code> or <code><a\nhref=\"refI.html#import\">import</a></code> should precede any appearance\n(not just definition!) of all involved symbols, because merely reading a\nsymbol may already intern it in the wrong namespace. </dd>\n\n</dl>\n\n\n<p><hr>\n<h3><a id=\"ev\">Evaluation</a></h3>\n\n<p>PicoLisp tries to evaluate any expression encountered in the read-eval-print\nloop. Basically, it does so by applying the following three rules:\n\n<p><ul>\n<li>A number evaluates to itself.\n\n<li>A symbol evaluates to its value (VAL).\n\n<li>A list is evaluated as a function call, with the CAR as the function and the\nCDR the arguments to that function. These arguments are in turn evaluated\naccording to these three rules.\n\n</ul>\n\n<pre>\n: 1234\n-> 1234        # Number evaluates to itself\n: *Pid\n-> 22972       # Symbol evaluates to its VAL\n: (+ 1 2 3)\n-> 6           # List is evaluated as a function call\n</pre>\n\n<p>For the third rule, however, things get a bit more involved. First - as a\nspecial case - if the CAR of the list is a number, the whole list is returned as\nit is:\n\n<pre>\n: (1 2 3 4 5 6)\n-> (1 2 3 4 5 6)\n</pre>\n\n<p>This is not really a function call, but just a convenience to avoid having to\nquote simple data lists. The interpreter needs to check it anyway, and returning\nthe list (instead of throwing an error) is a lot faster than calling the\n<code>quote</code> function.\n\n<p>Otherwise, if the CAR is a symbol or a list, PicoLisp tries to obtain an\nexecutable function from that, by either using the symbol's value, or by\nevaluating the list.\n\n<p>What is an executable function? Or, said in another way, what can be applied\nto a list of arguments, to result in a function call? A legal function in\nPicoLisp is\n\n<p><dl>\n<dt>either</dt>\n<dd>a <i>number</i>. When a number is used as a function, it is simply taken as\na pointer to executable code that will be called with the list of (unevaluated)\narguments as its single parameter. It is up to that code to evaluate the\narguments, or not. Some functions do not evaluate their arguments (e.g.\n<code>quote</code>) or evaluate only some of their arguments (e.g.\n<code>setq</code>).\n</dd>\n\n<dt>or</dt>\n<dd>a <i>lambda expression</i>. A lambda expression is a list, whose CAR is\neither a symbol or a list of symbols, and whose CDR is a list of expressions.\nNote: In contrast to other Lisp implementations, the symbol LAMBDA itself does\nnot exist in PicoLisp but is implied from context.\n</dd>\n\n</dl>\n\n<p>A few examples should help to understand the practical consequences of these\nrules. In the most common case, the CAR will be a symbol defined as a function,\nlike the <code>*</code> in:\n\n<pre>\n: (* 1 2 3)    # Call the function '*'\n-> 6\n</pre>\n\n<p>Inspecting the VAL of <code>*</code> gives\n\n<pre>\n: *            # Get the VAL of the symbol '*'\n-> 67318096\n</pre>\n\n<p>The VAL of <code>*</code> is a number. In fact, it is the numeric\nrepresentation of a function pointer, i.e. a pointer to executable code. This\nis the case for all built-in functions of PicoLisp.\n\n<p>Other functions in turn are written as Lisp expressions:\n\n<pre>\n: (de foo (X Y)            # Define the function 'foo'\n   (* (+ X Y) (+ X Y)) )\n-> foo\n: (foo 2 3)                # Call the function 'foo'\n-> 25\n: foo                      # Get the VAL of the symbol 'foo'\n-> ((X Y) (* (+ X Y) (+ X Y)))\n</pre>\n\n<p>The VAL of <code>foo</code> is a list. It is the list that was assigned to\n<code>foo</code> with the <code>de</code> function. It would be perfectly legal\nto use <code>setq</code> instead of <code>de</code>:\n\n<pre>\n: (setq foo '((X Y) (* (+ X Y) (+ X Y))))\n-> ((X Y) (* (+ X Y) (+ X Y)))\n: (foo 2 3)\n-> 25\n</pre>\n\n<p>If the VAL of <code>foo</code> were another symbol, that symbol's VAL would\nbe used instead to search for an executable function.\n\n<p>As we said above, if the CAR of the evaluated expression is not a symbol but\na list, that list is evaluated to obtain an executable function.\n\n<pre>\n: ((intern (pack \"c\" \"a\" \"r\")) (1 2 3))\n-> 1\n</pre>\n\n<p>Here, the <code>intern</code> function returns the symbol <code>car</code>\nwhose VAL is used then. It is also legal, though quite dangerous, to use the <a\nid=\"codePointer\">code-pointer</a> directly:\n\n<pre>\n: *\n-> 67318096\n: ((* 2 33659048) 1 2 3)\n-> 6\n: ((quote . 67318096) 1 2 3)\n-> 6\n: ((quote . 1234) (1 2 3))\nSegmentation fault\n</pre>\n\n<p>When an executable function is defined in Lisp itself, we call it a <a\nid=\"lambda\"><i>lambda expression</i></a>. A lambda expression always has a\nlist of executable expressions as its CDR. The CAR, however, must be a either a\nlist of symbols, or a single symbol, and it controls the evaluation of the\narguments to the executable function according to the following rules:\n\n<p><dl>\n\n<dt>When the CAR is a list of symbols</dt>\n<dd>For each of these symbols an argument is evaluated, then the symbols are\nbound simultaneously to the results. The body of the lambda expression is\nexecuted, then the VAL's of the symbols are restored to their original values.\nThis is the most common case, a fixed number of arguments is passed to the\nfunction. <br>As a special case, a single-level list of symbols may be passed\ninstead of a single parameter here, resulting in a restricted form of\ndestructuring bind.\n</dd>\n\n<dt>Otherwise, when the CAR is the symbol <code>@</code></dt>\n<dd>All arguments are evaluated and the results kept internally in a list. The\nbody of the lambda expression is executed, and the evaluated arguments can be\naccessed sequentially with the <code><a href=\"refA.html#args\">args</a></code>,\n<code><a href=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code> and <code><a\nhref=\"refR.html#rest\">rest</a></code> functions. This allows to define functions\nwith a variable number of evaluated arguments.\n</dd>\n\n<dt>Otherwise, when the CAR is a single symbol</dt>\n<dd>The symbol is bound to the whole unevaluated argument list. The body of the\nlambda expression is executed, then the symbol is restored to its original\nvalue. This allows to define functions with unevaluated arguments. Any kind of\ninterpretation and evaluation of the argument list can be done inside the\nexpression body.\n</dd>\n\n</dl>\n\n<p>In all cases, the return value is the result of the last expression in the\nbody.\n\n<pre>\n: (de foo (X Y Z)                   # CAR is a list of symbols\n   (list X Y Z) )                   # Return a list of all arguments\n-> foo\n: (foo (+ 1 2) (+ 3 4) (+ 5 6))\n-> (3 7 11)                         # all arguments are evaluated\n</pre>\n\n<pre>\n: (de foo @                         # CAR is the symbol '@'\n   (list (next) (next) (next)) )    # Return the first three arguments\n-> foo\n: (foo (+ 1 2) (+ 3 4) (+ 5 6))\n-> (3 7 11)                         # all arguments are evaluated\n</pre>\n\n<pre>\n: (de foo X                         # CAR is a single symbol\n   X )                              # Return the argument\n-> foo\n: (foo (+ 1 2) (+ 3 4) (+ 5 6))\n-> ((+ 1 2) (+ 3 4) (+ 5 6))        # the whole unevaluated list is returned\n</pre>\n\n<p>Note that these forms can also be combined. For example, to evaluate only the\nfirst two arguments, bind the results to <code>X</code> and <code>Y</code>, and\nbind all other arguments (unevaluated) to <code>Z</code>:\n\n<pre>\n: (de foo (X Y . Z)                 # CAR is a list with a dotted-pair tail\n   (list X Y Z) )                   # Return a list of all arguments\n-> foo\n: (foo (+ 1 2) (+ 3 4) (+ 5 6))\n-> (3 7 ((+ 5 6)))                  # Only the first two arguments are evaluated\n</pre>\n\n<p>Or, a single argument followed by a variable number of arguments:\n\n<pre>\n: (de foo (X . @)                   # CAR is a dotted-pair with '@'\n   (println X)                      # print the first evaluated argument\n   (while (args)                    # while there are more arguments\n      (println (next)) ) )          # print the next one\n-> foo\n: (foo (+ 1 2) (+ 3 4) (+ 5 6))\n3                                   # X\n7                                   # next argument\n11                                  # and the last argument\n-> 11\n</pre>\n\n<p>In general, if more than the expected number of arguments is supplied to a\nfunction, these extra arguments will be ignored. Missing arguments default to\n<code>NIL</code>.\n\n\n<p><hr>\n<h3><a id=\"libs\">Shared Libraries</a></h3>\n\n<p>Analogous to built-in functions (which are written in PilSrc (based on LLVM))\nin the interpreter kernel), PicoLisp functions may also be defined in shared\nobject files (called \"DLLs\" on some systems). The coding style, register usage,\nargument passing etc. follow the same rules as for normal built-in functions.\n\n<p>Note that this has nothing to do with external (e.g. third-party) library\nfunctions called with <a href=\"refN.html#native\">native</a>.\n\n<p>When the interpreter encounters a symbol supposed to be called as a function,\nwithout a function definition, but with a name of the form\n\"<code>lib:sym</code>\", then - instead of throwing an \"undefined\"-error - it\ntries to locate a shared object file with the name <code>lib.so</code> and a\nfunction <code>sym</code>, and stores a pointer to this code in the symbol's\nvalue. From that point, this symbol <code>lib:sym</code> keeps that function\ndefinition, and is undistinguishable from built-in functions. Future calls to\nthis function do not require another library search.\n\n<p>A consequence of this lookup mechanism, however, is the fact that such\nsymbols cannot be used directly in a function-passing context (i.e.\n\"<code>apply</code>\" them) like\n\n<pre>\n(apply + (1 2 3))\n(mapcar inc (1 2 3))\n</pre>\n\n<p>These calls work because <code>+</code> and <code>inc</code> already have a\n(function) value at this point. Applying a shared library function like\n\n<pre>\n(apply ext:Base64 (1 2 3))\n</pre>\n\n<p>works <i>only</i> if <code>ext:Base64</code> was either called before (and\nthus automatically received a function definition), or was fetched explicitly\nwith <code>(getd 'ext:Base64)</code>.\n\n<p>Therefore, it is recommended to always apply such functions by passing the\nsymbol itself and not just the value:\n\n<pre>\n(apply 'ext:Base64 (1 2 3))\n</pre>\n\n\n<p><hr>\n<h3><a id=\"coroutines\">Coroutines</a></h3>\n\n<p>Coroutines are independent execution contexts. They may have multiple entry\nand exit points, and preserve their environment (stack, symbol bindings,\nnamespaces, catch/throw and I/O frames) between invocations.\n\n<p>A coroutine is identified by a tag. This tag can be passed to other\nfunctions, and (re)invoked as needed. In this regard coroutines are similar to\n\"continuations\" in other languages.\n\n<p>Tags may be of any type (pointer equality is used for comparison), but\nsymbolic tags are more efficient for large numbers of coroutines. They cache a\npointer to the internal data structure in a property with key zero (which is\ninaccessible with the <a href=\"refP.html#put\">put</a> and <a\nhref=\"refG.html#get\">get</a> functions).\n\n<p>A coroutine is created by calling <code><a href=\"refC.html#co\">co</a></code>.\nIts <code>prg</code> body will be executed, and unless <code><a\nhref=\"refY.html#yield\">yield</a></code> is called at some point, the coroutine\nwill \"fall off\" at the end and disappear.\n\n<p>The initial value of <code><a href=\"refT.html#This\">This</a></code> is bound\nand preserved in the coroutine environment.\n\n<p>When <code><a href=\"refY.html#yield\">yield</a></code> is called, control is\neither transferred back to the caller, or to some other - explicitly specified,\nand already running - coroutine.\n\n<p>A coroutine is stopped and disposed when\n\n<p><ul>\n<li>execution falls off the end\n\n<li>some other (co)routine calls <code><a href=\"refC.html#co\">co</a></code> with\nthat tag but without a <code>prg</code> body\n\n<li>a <code><a href=\"refT.html#throw\">throw</a></code> into another (co)routine\nenvironment is executed\n\n<li>an error occurred, and <a href=\"#errors\">error handling</a> was entered\n\n</ul>\n\n<p>Reentrant <code><a href=\"refC.html#co\">co</a></code> calls are not allowed: A\ncoroutine cannot call or stop itself directly or indirectly.\n\n<p>Before using many coroutines, make sure you have sufficient stack space, e.g.\nby calling\n\n<pre>\n$ ulimit -s unlimited\n</pre>\n\n<p>Without that, the stack limit in Linux is typically 8 MiB.\n\n\n<p><hr>\n<h3><a id=\"int\">Interrupt</a></h3>\n\n<p>During the evaluation of an expression, the PicoLisp interpreter can be\ninterrupted at any time by hitting <code>Ctrl-C</code>. It will then enter the\nbreakpoint routine, as if <code><a href=\"ref_.html#!\">!</a></code> were called.\n\n<p>Hitting ENTER at that point will continue evaluation, while\n<code>Ctrl-D</code> or <code>(<a href=\"refQ.html#quit\">quit</a>)</code> will\nabort evaluation and return the interpreter to the top level. See also <code><a\nhref=\"refD.html#debug\">debug</a></code>, <code><a\nhref=\"refE.html#e\">e</a></code>, <code><a href=\"ref_.html#%5E\">^</a></code> and\n<code><a href=\"refD.html#*Dbg\">*Dbg</a></code>\n\n<p>Other interrupts may be handled by <code><a\nhref=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n\n<p><hr>\n<h3><a id=\"errors\">Error Handling</a></h3>\n\n<p>When a runtime error occurs, execution is stopped and an error handler is\nentered.\n\n<p>The error handler resets the I/O channels to the console, and displays the\nlocation (if possible) and the reason of the error, followed by an error\nmessage. That message is also stored in the global <code><a\nhref=\"refM.html#*Msg\">*Msg</a></code>, and the location of the error in <code><a\nhref=\"ref_.html#%5E\">^</a></code>. If the VAL of the global <code><a\nhref=\"refE.html#*Err\">*Err</a></code> is non-<code>NIL</code> it is executed as\na <code>prg</code> body. If the standard input is from a terminal, a\nread-eval-print loop (with a question mark \"<code>?</code>\" as prompt) is\nentered (the loop is exited when an empty line is input). Then all pending\n<code><a href=\"refF.html#finally\">finally</a></code> expressions are executed,\nall variable bindings restored, and all files closed. If the standard input is\nnot from a terminal, the interpreter terminates. Otherwise it is reset to its\ntop-level state.\n\n<pre>\n: (de foo (A B) (badFoo A B))       # 'foo' calls an undefined symbol\n-> foo\n: (foo 3 4)                         # Call 'foo'\n!? (badFoo A B)                     # Error handler entered\nbadFoo -- Undefined\n? A                                 # Inspect 'A'\n-> 3\n? B                                 # Inspect 'B'\n-> 4\n?                                   # Empty line: Exit\n:\n</pre>\n\n<p>Errors can be caught with <code><a href=\"refC.html#catch\">catch</a></code>,\nif a list of substrings of possible error messages is supplied for the first\nargument. In such a case, the matching substring (or the whole error message if\nthe substring is <code>NIL</code>) is returned.\n\n<p>An arbitrary error can be thrown explicitly with <code><a\nhref=\"refQ.html#quit\">quit</a></code>.\n\n\n<p><hr>\n<h3><a id=\"atres\">@ Result</a></h3>\n\n<p>In certain situations, the result of the last evaluation is stored in the VAL\nof the symbol <code>@</code>. This can be very convenient, because it often\nmakes the assignment to temporary variables unnecessary.\n\n<p>This happens in two - only superficially similar - situations:\n\n<p><dl>\n\n<dt><code><a href=\"refL.html#load\">load</a></code></dt>\n<dd>In read-eval loops, the last three results which were printed at the console\nare available in <code>@@@</code>, <code>@@</code> and <code>@</code>, in that\norder (i.e the latest result is in <code>@</code>).\n\n<pre>\n: (+ 1 2 3)\n-> 6\n: (/ 128 4)\n-> 32\n: (- @ @@)        # Subtract the last two results\n-> 26\n</pre>\n</dd>\n\n<dt>Flow functions</dt>\n<dd>Flow functions store the non-nil results of controlling expressions, and\nlogic functions their non-nil results, in <code>@</code>.\n\n<pre>\n: (while (read) (println 'got: @))\nabc            # User input\ngot: abc       # print result\n123            # User input\ngot: 123       # print result\nNIL\n-> 123\n\n: (setq L (1 2 3 4 5 1 2 3 4 5))\n-> (1 2 3 4 5 1 2 3 4 5)\n: (and (member 3 L) (member 3 (cdr @)) (set @ 999))\n-> 999\n: L\n-> (1 2 3 4 5 1 2 999 4 5)\n</pre>\n\n<p>Functions with controlling expressions are\n   <a href=\"refC.html#case\">case</a>,\n   <a href=\"refC.html#casq\">casq</a>,\n   <a href=\"refP.html#prog1\">prog1</a>,\n   <a href=\"refP.html#prog2\">prog2</a>,\nand the bodies of <code><a href=\"refR.html#*Run\">*Run</a></code> tasks.\n\n<p>Functions with conditional expressions are\n   <a href=\"refA.html#and\">and</a>,\n   <a href=\"refC.html#cond\">cond</a>,\n   <a href=\"refD.html#do\">do</a>,\n   <a href=\"refF.html#for\">for</a>,\n   <a href=\"refI.html#if\">if</a>,\n   <a href=\"refI.html#ifn\">ifn</a>,\n   <a href=\"refI.html#if2\">if2</a>,\n   <a href=\"refI.html#if@@\">if@@</a>,\n   <a href=\"refL.html#loop\">loop</a>,\n   <a href=\"refN.html#nand\">nand</a>,\n   <a href=\"refN.html#nond\">nond</a>,\n   <a href=\"refN.html#nor\">nor</a>,\n   <a href=\"refN.html#not\">not</a>,\n   <a href=\"refO.html#or\">or</a>,\n   <a href=\"refS.html#state\">state</a>,\n   <a href=\"refU.html#unless\">unless</a>,\n   <a href=\"refU.html#until\">until</a>,\n   <a href=\"refW.html#when\">when</a> and\n   <a href=\"refW.html#while\">while</a>.\n</dd>\n\n</dl>\n\n<p><code>@</code> is generally local to functions and methods, its value is\nautomatically saved upon function entry and restored at exit.\n\n\n<p><hr>\n<h3><a id=\"cmp\">Comparing</a></h3>\n\n<p>In PicoLisp, it is legal to compare data items of arbitrary type. Any two\nitems are either\n\n<p><dl>\n\n<dt>Identical</dt>\n<dd>They are the same memory object (pointer equality). For example, two\ninternal symbols with the same name are identical. And short numbers (up to 60\nbits plus sign) are also equivalent to \"pointer\"-equal.\n</dd>\n\n<dt>Equal</dt>\n<dd>They are equal in every respect (structure equality), but need not to be\nidentical. Examples are numbers with the same value, transient symbols with the\nsame name or lists with equal elements.\n</dd>\n\n<dt>Or they have a well-defined ordinal relationship</dt>\n<dd>Numbers are comparable by their numeric value, strings by their name, and\nlists recursively by their elements (if the CAR's are equal, their CDR's are\ncompared). For differing types, the following rule applies: Numbers are less\nthan symbols, and symbols are less than lists. As special cases,\n<code>NIL</code> is always less than anything else, and <code>T</code> is always\ngreater than anything else.\n</dd>\n\n</dl>\n\n<p>To demonstrate this, <code><a href=\"refS.html#sort\">sort</a></code> a list of\nmixed data types:\n\n<pre>\n: (sort '(\"abc\" T (d e f) NIL 123 DEF))\n-> (NIL 123 DEF \"abc\" (d e f) T)\n</pre>\n\n<p>See also <code><a href=\"refM.html#max\">max</a></code>, <code><a\nhref=\"refM.html#min\">min</a></code>, <code><a\nhref=\"refR.html#rank\">rank</a></code>, <code><a\nhref=\"ref_.html#%3C\">&lt;</a></code>, <code><a\nhref=\"ref_.html#=\">=</a></code>, <code><a href=\"ref_.html#%3E\">&gt;</a></code>\netc.\n\n\n<p><hr>\n<h3><a id=\"oop\">OO Concepts</a></h3>\n\n<p>PicoLisp comes with built-in object oriented extensions. There seems to be a\ncommon agreement upon three criteria for object orientation:\n\n<p><dl>\n<dt>Encapsulation</dt>\n<dd>Code and data are encapsulated into <u>objects</u>, giving them both a\n<u>behavior</u> and a <u>state</u>. Objects communicate by sending and receiving\n<u>messages</u>.\n</dd>\n\n<dt>Inheritance</dt>\n<dd>Objects are organized into <u>classes</u>. The behavior of an object is\ninherited from its class(es) and superclass(es).\n</dd>\n\n<dt>Polymorphism</dt>\n<dd>Objects of different classes may behave differently in response to the same\nmessage. For that, classes may define different methods for each message.\n</dd>\n\n</dl>\n\n<p>PicoLisp implements both objects and classes with symbols. Object-local data\nare stored in the symbol's property list, while the code (methods) and links to\nthe superclasses are stored in the symbol's VAL (encapsulation).\n\n<p>In fact, there is no formal difference between objects and classes (except\nthat objects usually are anonymous symbols containing mostly local data, while\nclasses are named internal symbols with an emphasis on method definitions). At\nany time, a class may be assigned its own local data (class variables), and any\nobject can receive individual method definitions in addition to (or overriding)\nthose inherited from its (super)classes.\n\n<p>PicoLisp supports multiple inheritance. The VAL of each object is a (possibly\nempty) association list of message symbols and method bodies, concatenated with\na list of classes. When a message is sent to an object, it is searched in the\nobject's own method list, and then (with a left-to-right depth-first search) in\nthe tree of its classes and superclasses. The first method found is executed and\nthe search stops. The search may be explicitly continued with the <code><a\nhref=\"refE.html#extra\">extra</a></code> and <code><a\nhref=\"refS.html#super\">super</a></code> functions.\n\n<p>Thus, which method is actually executed when a message is sent to an object\ndepends on the classes that the object is currently linked to (polymorphism). As\nthe method search is fully dynamic (late binding), an object's type (i.e. its\nclasses and method definitions) can be changed even at runtime!\n\n<p>While a method body is being executed, the global variable <code><a\nhref=\"refT.html#This\">This</a></code> is set to the current object, allowing\nthe use of the short-cut property functions <code><a\nhref=\"ref_.html#=:\">=:</a></code>, <code><a href=\"ref_.html#:\">:</a></code>\nand <code><a href=\"ref_.html#::\">::</a></code>.\n\n\n<p><hr>\n<h3><a id=\"dbase\">Database</a></h3>\n\n<p>On the lowest level, a PicoLisp database is just a collection of <a\nhref=\"#external\">external symbols</a>. They reside in a database file, and are\ndynamically swapped in and out of memory. Only one database can be open at a\ntime (<code><a href=\"refP.html#pool\">pool</a></code>).\n\n<p>In addition, further external symbols can be specified to originate from\narbitrary sources via the <code><a href=\"refE.html#*Ext\">*Ext</a></code>\nmechanism.\n\n<p>Whenever an external symbol's value or property list is accessed, it will be\nautomatically fetched into memory, and can then be used like any other symbol.\nModifications will be written to disk only when <code><a\nhref=\"refC.html#commit\">commit</a></code> is called. Alternatively, all\nmodifications since the last call to <code>commit</code> can be discarded by\ncalling <code><a href=\"refR.html#rollback\">rollback</a></code>.\n\n<p>Note that a property with the key <code>NIL</code> is a <i>volatile\nproperty</i>, which is held only in memory and not written to disk on\n<code>commit</code>, and discarded by <code>rollback</code>. Volatile properties\ncan be used by applications for any kind of temporary data.\n\n\n<p><hr>\n<h4><a id=\"trans\">Transactions</a></h4>\n\n<p>In the typical case there will be multiple processes operating on the same\ndatabase. These processes should be all children of the same parent process,\nwhich takes care of synchronizing read/write operations and heap contents. Then\na database transaction is normally initiated by calling <code>(<a\nhref=\"refD.html#dbSync\">dbSync</a>)</code>, and closed by calling <code>(<a\nhref=\"refC.html#commit\">commit</a> 'upd)</code>. Short transactions, involving\nonly a single DB operation, are available in functions like <code><a\nhref=\"refN.html#new!\">new!</a></code> and methods like <code><a\nhref=\"refE.html#entityMesssages\">put!></a></code> (by convention with an\nexclamation mark), which implicitly call <code>(dbSync)</code> and <code>(commit\n'upd)</code> themselves.\n\n<p>A transaction proceeds through five phases:\n\n<p><ol>\n<li><code><a href=\"refD.html#dbSync\">dbSync</a></code> waits to get a <code><a\nhref=\"refL.html#lock\">lock</a></code> on the root object <code><a\nhref=\"refD.html#*DB\">*DB</a></code>. Other processes continue reading and\nwriting meanwhile.\n\n<li><code><a href=\"refD.html#dbSync\">dbSync</a></code> calls <code><a\nhref=\"refS.html#sync\">sync</a></code> to synchronize with changes from other\nprocesses. We hold the shared lock, but other processes may continue reading.\n\n<li>We make modifications to the internal state of external symbols with\n<code><a href=\"refE.html#entityMesssages\">put>, set>, lose></a></code> etc. We -\nand also other processes - can still read the DB.\n\n<li>We call <code>(<a href=\"refC.html#commit\">commit</a> 'upd)</code>.\n<code>commit</code> obtains an exclusive lock (no more read operations by other\nprocesses), writes an optional transaction log, and then all modified symbols.\nAs <code><a href=\"refU.html#upd\">upd</a></code> is passed to 'commit', other\nprocesses synchronize with these changes.\n\n<li>Finally, all locks are released by 'commit'.\n\n</ol>\n\n\n<p><hr>\n<h4><a id=\"er\">Entities / Relations</a></h4>\n\n<p>The symbols in a database can be used to store arbitrary information\nstructures. In typical use, some symbols represent nodes of search trees, by\nholding keys, values, and links to subtrees in their VAL's. Such a search tree\nin the database is called <u>index</u>.\n\n<p>For the most part, other symbols in the database are objects derived from the\n<code><a href=\"refE.html#+Entity\">+Entity</a></code> class.\n\n<p>Entities depend on objects of the <code><a\nhref=\"refR.html#+relation\">+relation</a></code> class hierarchy.\nRelation-objects manage the property values of entities, they define the\napplication database model and are responsible for the integrity of mutual\nobject references and index trees.\n\n<p>Relations are stored as properties in the entity classes, their methods are\ninvoked as daemons whenever property values in an entity are changed. When\ndefining an <code><a href=\"refE.html#+Entity\">+Entity</a></code> class, relations are defined - in addition to\nthe method definitions of a normal class - with the <code><a\nhref=\"refR.html#rel\">rel</a></code> function. Predefined relation classes\ninclude\n\n<p><ul>\n<li>Scalar relations like\n   <dl>\n   <dt><code><a href=\"refS.html#+Symbol\">+Symbol</a></code></dt>\n   <dd>Symbolic data</dd>\n   <dt><code><a href=\"refS.html#+String\">+String</a></code></dt>\n   <dd>Strings (just a general case of symbols)</dd>\n   <dt><code><a href=\"refN.html#+Number\">+Number</a></code></dt>\n   <dd>Integers and fixpoint numbers</dd>\n   <dt><code><a href=\"refD.html#+Date\">+Date</a></code></dt>\n   <dd>Calendar date values, represented by a number</dd>\n   <dt><code><a href=\"refT.html#+Time\">+Time</a></code></dt>\n   <dd>Time-of-the-day values, represented by a number</dd>\n   <dt><code><a href=\"refB.html#+Blob\">+Blob</a></code></dt>\n   <dd>\"Binary large objects\" stored in separate files</dd>\n   <dt><code><a href=\"refB.html#+Bool\">+Bool</a></code></dt>\n   <dd><code>T</code> or <code>NIL</code></dd>\n   </dl>\n<li>Object-to-object relations\n   <dl>\n   <dt><code><a href=\"refL.html#+Link\">+Link</a></code></dt>\n   <dd>A reference to some other entity</dd>\n   <dt><code><a href=\"refH.html#+Hook\">+Hook</a></code></dt>\n   <dd>A reference to an entity holding object-local index trees</dd>\n   <dt><code><a href=\"refJ.html#+Joint\">+Joint</a></code></dt>\n   <dd>A bidirectional reference to some other entity</dd>\n   </dl>\n<li>Container prefix classes like\n   <dl>\n   <dt><code><a href=\"refL.html#+List\">+List</a></code></dt>\n   <dd>A list of any of the other primitive or object relation types</dd>\n   <dt><code><a href=\"refB.html#+Bag\">+Bag</a></code></dt>\n   <dd>A list containing a mixture of any of the other types</dd>\n   </dl>\n<li>Index prefix classes\n   <dl>\n   <dt><code><a href=\"refR.html#+Ref\">+Ref</a></code></dt>\n   <dd>An index with other primitives or entities as key</dd>\n   <dt><code><a href=\"refK.html#+Key\">+Key</a></code></dt>\n   <dd>A unique index with other primitives or entities as key</dd>\n   <dt><code><a href=\"refI.html#+Idx\">+Idx</a></code></dt>\n   <dd>A full-text index, typically for strings</dd>\n   <dt><code><a href=\"refF.html#+Fold\">+Fold</a></code></dt>\n   <dd>A folded text index</dd>\n   <dt><code><a href=\"refI.html#+IdxFold\">+IdxFold</a></code></dt>\n   <dd>Folded substring index</dd>\n   <dt><code><a href=\"refS.html#+Sn\">+Sn</a></code></dt>\n   <dd>Tolerant index, using a modified Soundex-Algorithm</dd>\n   </dl>\n<li>And a catch-all class\n   <dl>\n   <dt><code><a href=\"refA.html#+Any\">+Any</a></code></dt>\n   <dd>Not specified, may be any of the above relations</dd>\n   </dl>\n</ul>\n\n\n<p><hr>\n<h3><a id=\"pilog\">Pilog (PicoLisp Prolog)</a></h3>\n\n<p>A declarative language is built on top of PicoLisp, that has the semantics of\nProlog, but uses the syntax of Lisp.\n\n<p>For an explanation of Prolog's declarative programming style, an introduction\nlike \"Programming in Prolog\" by Clocksin/Mellish (Springer-Verlag 1981) is\nrecommended.\n\n<p>Facts and rules can be declared with the <code><a\nhref=\"refB.html#be\">be</a></code> function. For example, a Prolog fact\n'<code>likes(john,mary).</code>' is written in Pilog as:\n\n<pre>\n(be likes (John Mary))\n</pre>\n\n<p>and a rule '<code>likes(john,X) :- likes(X,wine), likes(X,food).</code>' is\nin Pilog:\n\n<pre>\n(be likes (John @X) (likes @X wine) (likes @X food))\n</pre>\n\n<p>As in Prolog, the difference between facts and rules is that the latter ones\nhave conditions, and usually contain variables.\n\n<p>A variable in Pilog is any symbol starting with an at-mark character\n(\"<code>@</code>\"), i.e. a <code><a href=\"refP.html#pat?\">pat?</a></code>\nsymbol. The symbol <code>@</code> itself can be used as an anonymous variable:\nIt will match during unification, but will not be bound to the matched values.\n\n<p>The <i>cut</i> operator of Prolog (usually written as an exclamation mark\n(<code>!</code>)) is the symbol <code>T</code> in Pilog.\n\n<p>An interactive query can be done with the <code><a\nhref=\"ref_.html#?\">?</a></code> function:\n\n<pre>\n(? (likes John @X))\n</pre>\n\n<p>This will print all solutions, waiting for a key after each line. If\n<code>ESC</code> is typed, it will terminate.\n\n<p>Pilog can be called from Lisp and vice versa:\n\n<ul>\n\n<li>The interface from Lisp is via the functions <code><a\nhref=\"refG.html#goal\">goal</a></code> (prepare a query from Lisp data) and\n<code><a href=\"refP.html#prove\">prove</a></code> (return an association list of\nsuccessful bindings), and the application level functions <code><a\nhref=\"refP.html#pilog\">pilog</a></code> and <code><a\nhref=\"refS.html#solve\">solve</a></code>.\n\n<li>When the CAR of a Pilog clause is the symbol <code>^</code>, then the CDDR\nis executed as a Lisp <code>prg</code> body and the result unified with the\nCADR.\n\n<li>Within such a Lisp expression in a Pilog clause, the current bindings of\nPilog variables are directly accessible in the corresponding Lisp symbol\nbindings or can be accessed with the <code><a\nhref=\"ref_.html#-%3E\">-&gt;</a></code> function (the latter is only necessary\nto access non-top-level Pilog environments).\n\n</ul>\n\n\n<p><hr>\n<h3><a id=\"conv\">Naming Conventions</a></h3>\n\n<p>It was necessary to introduce - and adhere to - a set of conventions for\nPicoLisp symbol names. Because all (internal) symbols have a global scope, and\neach symbol can only have either a value or function definition, it would\notherwise be very easy to introduce name conflicts. Besides this, source code\nreadability is increased when the scope of a symbol is indicated by its name.\n\n<p>These conventions are not hard-coded into the language, but should be so into\nthe head of the programmer. Here are the most commonly used ones:\n\n<p><ul>\n<li>Global variables start with an asterisk \"<code>*</code>\"\n<li>Global constants may be written all-uppercase\n<li>Functions and other global symbols start with a lower case letter\n<li>Locally bound symbols start with an upper case letter\n<li>Local functions start with an underscore \"<code>_</code>\"\n<li>Classes start with a plus-sign \"<code>+</code>\", where the first letter\n   <ul>\n   <li>is in lower case for abstract classes\n   <li>and in upper case for normal classes\n   </ul>\n<li>Methods end with a right arrow \"<code>&gt;</code>\"\n<li>Class variables may be indicated by an upper case letter\n</ul>\n\n<p>For example, a local variable could easily overshadow a function definition:\n\n<pre>\n: (de max-speed (car)\n   (.. (get car 'speeds) ..) )\n-> max-speed\n</pre>\n\n<p>Inside the body of <code>max-speed</code> (and all other functions called\nduring that execution) the kernel function <code>car</code> is redefined to some\nother value, and will surely crash if something like <code>(car Lst)</code> is\nexecuted. Instead, it is safe to write:\n\n<pre>\n: (de max-speed (Car)            # 'Car' with upper case first letter\n   (.. (get Car 'speeds) ..) )\n-> max-speed\n</pre>\n\n<p>Note that there are also some strict naming rules (as opposed to the\nvoluntary conventions) that are required by the corresponding kernel\nfunctionalities, like:\n\n<p><ul>\n<li>Transient symbols are enclosed in double quotes (see <a\nhref=\"#transient-io\">Transient Symbols</a>)\n<li>External symbols are enclosed in braces (see <a href=\"#external-io\">External\nSymbols</a>)\n<li>Pattern-Wildcards start with an at-mark \"<code>@</code>\" (see <a\nhref=\"refM.html#match\">match</a> and <a href=\"refF.html#fill\">fill</a>)\n<li>Symbols referring to a shared library contain a colon \"<code>lib:sym</code>\"\n</ul>\n\n<p>With that, the last of the above conventions (local functions start with an\nunderscore) is not really necessary, because true local scope can be enforced\nwith transient symbols.\n\n<p>The symbols <code>T</code> and <code>NIL</code> are global constants, so care\nshould be taken not to bind them to some other value by mistake:\n\n<pre>\n(de foo (R S T)\n   ...\n</pre>\n\n<p>However, <code><a href=\"refL.html#lint\">lint</a></code> will issue a warning\nin such a case.\n\n\n<p><hr>\n<h3><a id=\"trad\">Breaking Traditions</a></h3>\n\n<p>PicoLisp does not try very hard to be compatible with traditional Lisp\nsystems. If you are used to some other Lisp dialects, you may notice the\nfollowing differences:\n\n<p><dl>\n\n<dt>Case Sensitivity</dt>\n<dd>PicoLisp distinguishes between upper case and lower case characters in\nsymbol names. Thus, <code>CAR</code> and <code>car</code> are different symbols,\nwhich was not the case in traditional Lisp systems.\n</dd>\n\n<dt><code>QUOTE</code></dt>\n<dd>In traditional Lisp, the <code>QUOTE</code> function returns its\n<i>first</i> unevaluated argument. In PicoLisp, on the other hand,\n<code>quote</code> returns <i>all</i> (unevaluated) argument(s).\n</dd>\n\n<dt><code>LAMBDA</code></dt>\n<dd>The <code>LAMBDA</code> function, in some way at the heart of traditional\nLisp, is completely missing (and <code>quote</code> is used instead).\n</dd>\n\n<dt><code>PROG</code></dt>\n<dd>The <code>PROG</code> function of traditional Lisp, with its GOTO and ENTER\nfunctionality, is also missing. PicoLisp's <code>prog</code> function is just a\nsimple sequencer (as <code>PROGN</code> in some Lisps).\n</dd>\n\n<dt>Function/Value</dt>\n<dd>In PicoLisp, a symbol cannot have a value <i>and</i> a function definition\nat the same time. Though this is a disadvantage at first sight, it allows a\ncompletely uniform handling of functional data.\n</dd>\n\n</dl>\n\n\n<p><hr>\n<h2><a id=\"fun\">Function Reference</a></h2>\n\n<p>This section provides a reference manual for the kernel functions, and some\nextensions. See the thematically grouped list of indexes below.\n\n<p>Though PicoLisp is a dynamically typed language (resolved at runtime, as\nopposed to statically (compile-time) typed languages), many functions can only\naccept and/or return a certain set of data types. For each function, the\nexpected argument types and return values are described with the following\nabbreviations:\n\n<p>The primary data types:\n\n<p><ul>\n<li><code>num</code> - Number\n<li><code>sym</code> - Symbol\n<li><code>lst</code> - List\n</ul>\n\n<p>Other (derived) data types\n\n<p><ul>\n<li><code>any</code> - Anything: Any data type\n<li><code>flg</code> - Flag: Boolean value (<code>NIL</code> or non-<code>NIL</code>)\n<li><code>cnt</code> - A count or a small number\n<li><code>dat</code> - Date: Days, starting first of March of the year 0 A.D.\n<li><code>tim</code> - Time: Seconds since midnight\n<li><code>obj</code> - Object/Class: A symbol with methods and/or classes\n<li><code>var</code> - Variable: Either a symbol or a cons pair\n<li><code>exe</code> - Executable: An executable expression (<code>eval</code>)\n<li><code>prg</code> - Prog-Body: A list of executable expressions (<code>run</code>)\n<li><code>fun</code> - Function: Either a number (code-pointer), a symbol (message) or a list (lambda)\n<li><code>msg</code> - Message: A symbol sent to an object (to invoke a method)\n<li><code>cls</code> - Class: A symbol defined as an object's class\n<li><code>typ</code> - Type: A list of <code>cls</code> symbols\n<li><code>pat</code> - Pattern: A symbol whose name starts with an at-mark \"<code>@</code>\"\n<li><code>pid</code> - Process ID: A number, the ID of a Unix process\n<li><code>fd</code> - File descriptor: The number of an open file\n<li><code>tree</code> - Database index tree specification\n<li><code>hook</code> - Database hook object\n</ul>\n\n<p>Arguments evaluated by the function in the \"normal\" way are quoted (prefixed\nwith the single quote character \"<code>'</code>\"). Other arguments are either\nnot evaluated, or may be evaluated depending on the context.\n\n<p>For example, the function <code><a href=\"refS.html#setq\">setq</a></code>\nevaluates every second argument (giving any kind of value), while it does\n<i>not</i> evaluate the others (<code>var</code>s, here typically symbols). This\ncould be specified as:\n\n<pre>\n   (setq var1 'any1 var2 'any2 ..) -> any\n</pre>\n\n<p>A dotted pair notation in the argument list like <code>(... 'any .\nprg)</code> indicates an unevaluated list of further arguments.\n\n<p>Arguments in brackets '[' and ']' are optional.\n\n<p>\n<a href=\"refA.html\">A</a>\n<a href=\"refB.html\">B</a>\n<a href=\"refC.html\">C</a>\n<a href=\"refD.html\">D</a>\n<a href=\"refE.html\">E</a>\n<a href=\"refF.html\">F</a>\n<a href=\"refG.html\">G</a>\n<a href=\"refH.html\">H</a>\n<a href=\"refI.html\">I</a>\n<a href=\"refJ.html\">J</a>\n<a href=\"refK.html\">K</a>\n<a href=\"refL.html\">L</a>\n<a href=\"refM.html\">M</a>\n<a href=\"refN.html\">N</a>\n<a href=\"refO.html\">O</a>\n<a href=\"refP.html\">P</a>\n<a href=\"refQ.html\">Q</a>\n<a href=\"refR.html\">R</a>\n<a href=\"refS.html\">S</a>\n<a href=\"refT.html\">T</a>\n<a href=\"refU.html\">U</a>\n<a href=\"refV.html\">V</a>\n<a href=\"refW.html\">W</a>\n<a href=\"refX.html\">X</a>\n<a href=\"refY.html\">Y</a>\n<a href=\"refZ.html\">Z</a>\n<a href=\"ref_.html\">Other</a>\n\n<p><span id=\"sortBtnHome\"></span><dl>\n\n<dt>Symbol Functions</dt>\n<dd><code>\n   <a href=\"refN.html#new\">new</a>\n   <a href=\"refS.html#sym\">sym</a>\n   <a href=\"refS.html#str\">str</a>\n   <a href=\"refC.html#char\">char</a>\n   <a href=\"refN.html#name\">name</a>\n   <a href=\"refN.html#nsp\">nsp</a>\n   <a href=\"refS.html#sp?\">sp?</a>\n   <a href=\"refP.html#pat?\">pat?</a>\n   <a href=\"refF.html#fun?\">fun?</a>\n   <a href=\"refA.html#all\">all</a>\n   <a href=\"refS.html#symbols\">symbols</a>\n   <a href=\"refS.html#-symbols\">-symbols</a>\n   <a href=\"refP.html#private\">private</a>\n   <a href=\"refL.html#local\">local</a>\n   <a href=\"refE.html#export\">export</a>\n   <a href=\"refI.html#import\">import</a>\n   <a href=\"refA.html#all*\">all*</a>\n   <a href=\"refI.html#intern\">intern</a>\n   <a href=\"refE.html#extern\">extern</a>\n   <a href=\"refQ.html#qsym\">qsym</a>\n   <a href=\"refL.html#loc\">loc</a>\n   <a href=\"refB.html#box?\">box?</a>\n   <a href=\"refS.html#str?\">str?</a>\n   <a href=\"refE.html#ext?\">ext?</a>\n   <a href=\"refT.html#touch\">touch</a>\n   <a href=\"refZ.html#zap\">zap</a>\n   <a href=\"refL.html#length\">length</a>\n   <a href=\"refS.html#size\">size</a>\n   <a href=\"refF.html#format\">format</a>\n   <a href=\"refC.html#chop\">chop</a>\n   <a href=\"refP.html#pack\">pack</a>\n   <a href=\"refG.html#glue\">glue</a>\n   <a href=\"refP.html#pad\">pad</a>\n   <a href=\"refA.html#align\">align</a>\n   <a href=\"refC.html#center\">center</a>\n   <a href=\"refT.html#text\">text</a>\n   <a href=\"refW.html#wrap\">wrap</a>\n   <a href=\"refP.html#pre?\">pre?</a>\n   <a href=\"refS.html#sub?\">sub?</a>\n   <a href=\"refL.html#low?\">low?</a>\n   <a href=\"refU.html#upp?\">upp?</a>\n   <a href=\"refL.html#lowc\">lowc</a>\n   <a href=\"refU.html#uppc\">uppc</a>\n   <a href=\"refF.html#fold\">fold</a>\n   <a href=\"refV.html#val\">val</a>\n   <a href=\"refG.html#getd\">getd</a>\n   <a href=\"refS.html#set\">set</a>\n   <a href=\"refS.html#setq\">setq</a>\n   <a href=\"refD.html#def\">def</a>\n   <a href=\"refD.html#de\">de</a>\n   <a href=\"refD.html#dm\">dm</a>\n   <a href=\"refR.html#recur\">recur</a>\n   <a href=\"refU.html#undef\">undef</a>\n   <a href=\"refR.html#redef\">redef</a>\n   <a href=\"refD.html#daemon\">daemon</a>\n   <a href=\"refP.html#patch\">patch</a>\n   <a href=\"refS.html#swap\">swap</a>\n   <a href=\"refX.html#xchg\">xchg</a>\n   <a href=\"refO.html#on\">on</a>\n   <a href=\"refO.html#off\">off</a>\n   <a href=\"refO.html#onOff\">onOff</a>\n   <a href=\"refZ.html#zero\">zero</a>\n   <a href=\"refO.html#one\">one</a>\n   <a href=\"refD.html#default\">default</a>\n   <a href=\"refE.html#expr\">expr</a>\n   <a href=\"refS.html#subr\">subr</a>\n   <a href=\"refL.html#let\">let</a>\n   <a href=\"refL.html#let?\">let?</a>\n   <a href=\"refU.html#use\">use</a>\n   <a href=\"refB.html#buf\">buf</a>\n   <a href=\"refA.html#accu\">accu</a>\n   <a href=\"refP.html#push\">push</a>\n   <a href=\"refP.html#push1\">push1</a>\n   <a href=\"refP.html#push1q\">push1q</a>\n   <a href=\"refP.html#pop\">pop</a>\n   <a href=\"ref_.html#++\">++</a>\n   <a href=\"refS.html#shift\">shift</a>\n   <a href=\"refC.html#cut\">cut</a>\n   <a href=\"refD.html#del\">del</a>\n   <a href=\"refQ.html#queue\">queue</a>\n   <a href=\"refF.html#fifo\">fifo</a>\n   <a href=\"refR.html#rid\">rid</a>\n   <a href=\"refE.html#enum\">enum</a>\n   <a href=\"refE.html#enum?\">enum?</a>\n   <a href=\"refI.html#idx\">idx</a>\n   <a href=\"refL.html#lup\">lup</a>\n   <a href=\"refC.html#cache\">cache</a>\n   <a href=\"refL.html#locale\">locale</a>\n   <a href=\"refD.html#dirname\">dirname</a>\n   <a href=\"refB.html#basename\">basename</a>\n</code>\n</dd>\n\n<dt>Property Access</dt>\n<dd><code>\n   <a href=\"refP.html#put\">put</a>\n   <a href=\"refG.html#get\">get</a>\n   <a href=\"refP.html#prop\">prop</a>\n   <a href=\"ref_.html#;\">;</a>\n   <a href=\"ref_.html#=:\">=:</a>\n   <a href=\"ref_.html#:\">:</a>\n   <a href=\"ref_.html#::\">::</a>\n   <a href=\"refP.html#putl\">putl</a>\n   <a href=\"refG.html#getl\">getl</a>\n   <a href=\"refW.html#wipe\">wipe</a>\n   <a href=\"refM.html#meta\">meta</a>\n</code>\n</dd>\n\n<dt>Predicates</dt>\n<dd><code>\n   <a href=\"refA.html#atom\">atom</a>\n   <a href=\"refP.html#pair\">pair</a>\n   <a href=\"refC.html#circ?\">circ?</a>\n   <a href=\"refL.html#lst?\">lst?</a>\n   <a href=\"refN.html#num?\">num?</a>\n   <a href=\"refS.html#sym?\">sym?</a>\n   <a href=\"refF.html#flg?\">flg?</a>\n   <a href=\"refS.html#sp?\">sp?</a>\n   <a href=\"refP.html#pat?\">pat?</a>\n   <a href=\"refF.html#fun?\">fun?</a>\n   <a href=\"refB.html#box?\">box?</a>\n   <a href=\"refS.html#str?\">str?</a>\n   <a href=\"refE.html#ext?\">ext?</a>\n   <a href=\"refB.html#bool\">bool</a>\n   <a href=\"refN.html#not\">not</a>\n   <a href=\"ref_.html#==\">==</a>\n   <a href=\"refN.html#n==\">n==</a>\n   <a href=\"ref_.html#=\">=</a>\n   <a href=\"ref_.html#%3C%3E\">&lt;&gt;</a>\n   <a href=\"ref_.html#=0\">=0</a>\n   <a href=\"ref_.html#=1\">=1</a>\n   <a href=\"ref_.html#=T\">=T</a>\n   <a href=\"refN.html#n0\">n0</a>\n   <a href=\"refN.html#nT\">nT</a>\n   <a href=\"ref_.html#%3C\">&lt;</a>\n   <a href=\"ref_.html#%3C=\">&lt;=</a>\n   <a href=\"ref_.html#%3E\">&gt;</a>\n   <a href=\"ref_.html#%3E=\">&gt;=</a>\n   <a href=\"refM.html#match\">match</a>\n   <a href=\"refF.html#full\">full</a>\n</code>\n</dd>\n\n<dt>Arithmetics</dt>\n<dd><code>\n   <a href=\"ref_.html#+\">+</a>\n   <a href=\"ref_.html#-\">-</a>\n   <a href=\"ref_.html#*\">*</a>\n   <a href=\"ref_.html#/\">/</a>\n   <a href=\"ref_.html#%25\">%</a>\n   <a href=\"ref_.html#*/\">*/</a>\n   <a href=\"ref_.html#**\">**</a>\n   <a href=\"refI.html#inc\">inc</a>\n   <a href=\"refD.html#dec\">dec</a>\n   <a href=\"ref_.html#%3E%3E\">&gt;&gt;</a>\n   <a href=\"refR.html#rev\">rev</a>\n   <a href=\"refL.html#lt0\">lt0</a>\n   <a href=\"refL.html#le0\">le0</a>\n   <a href=\"refG.html#ge0\">ge0</a>\n   <a href=\"refG.html#gt0\">gt0</a>\n   <a href=\"refA.html#abs\">abs</a>\n   <a href=\"refB.html#bit?\">bit?</a>\n   <a href=\"ref_.html#&\">&</a>\n   <a href=\"ref_.html#%7C\">|</a>\n   <a href=\"refX.html#x%7C\">x|</a>\n   <a href=\"refS.html#sq\">sq</a>\n   <a href=\"refS.html#sqrt\">sqrt</a>\n   <a href=\"refS.html#seed\">seed</a>\n   <a href=\"refH.html#hash\">hash</a>\n   <a href=\"refR.html#rand\">rand</a>\n   <a href=\"refM.html#max\">max</a>\n   <a href=\"refM.html#min\">min</a>\n   <a href=\"refL.html#length\">length</a>\n   <a href=\"refS.html#size\">size</a>\n   <a href=\"refA.html#accu\">accu</a>\n   <a href=\"refF.html#format\">format</a>\n   <a href=\"refP.html#pad\">pad</a>\n   <a href=\"refM.html#money\">money</a>\n   <a href=\"refR.html#round\">round</a>\n   <a href=\"refB.html#bin\">bin</a>\n   <a href=\"refO.html#oct\">oct</a>\n   <a href=\"refH.html#hex\">hex</a>\n   <a href=\"refH.html#hax\">hax</a>\n</code>\n</dd>\n\n<dt>List Processing</dt>\n<dd><code>\n   <a href=\"refC.html#car\">car</a>\n   <a href=\"refC.html#cdr\">cdr</a>\n   <a href=\"refC.html#caar\">caar</a>\n   <a href=\"refC.html#cadr\">cadr</a>\n   <a href=\"refC.html#cdar\">cdar</a>\n   <a href=\"refC.html#cddr\">cddr</a>\n   <a href=\"refC.html#caaar\">caaar</a>\n   <a href=\"refC.html#caadr\">caadr</a>\n   <a href=\"refC.html#cadar\">cadar</a>\n   <a href=\"refC.html#caddr\">caddr</a>\n   <a href=\"refC.html#cdaar\">cdaar</a>\n   <a href=\"refC.html#cdadr\">cdadr</a>\n   <a href=\"refC.html#cddar\">cddar</a>\n   <a href=\"refC.html#cdddr\">cdddr</a>\n   <a href=\"refC.html#caaaar\">caaaar</a>\n   <a href=\"refC.html#caaadr\">caaadr</a>\n   <a href=\"refC.html#caadar\">caadar</a>\n   <a href=\"refC.html#caaddr\">caaddr</a>\n   <a href=\"refC.html#cadaar\">cadaar</a>\n   <a href=\"refC.html#cadadr\">cadadr</a>\n   <a href=\"refC.html#caddar\">caddar</a>\n   <a href=\"refC.html#cadddr\">cadddr</a>\n   <a href=\"refC.html#cdaaar\">cdaaar</a>\n   <a href=\"refC.html#cdaadr\">cdaadr</a>\n   <a href=\"refC.html#cdadar\">cdadar</a>\n   <a href=\"refC.html#cdaddr\">cdaddr</a>\n   <a href=\"refC.html#cddaar\">cddaar</a>\n   <a href=\"refC.html#cddadr\">cddadr</a>\n   <a href=\"refC.html#cdddar\">cdddar</a>\n   <a href=\"refC.html#cddddr\">cddddr</a>\n   <a href=\"refN.html#nth\">nth</a>\n   <a href=\"refC.html#con\">con</a>\n   <a href=\"refC.html#cons\">cons</a>\n   <a href=\"refC.html#conc\">conc</a>\n   <a href=\"refC.html#circ\">circ</a>\n   <a href=\"refR.html#rot\">rot</a>\n   <a href=\"refL.html#list\">list</a>\n   <a href=\"refN.html#need\">need</a>\n   <a href=\"refR.html#range\">range</a>\n   <a href=\"refF.html#full\">full</a>\n   <a href=\"refM.html#make\">make</a>\n   <a href=\"refM.html#made\">made</a>\n   <a href=\"refC.html#chain\">chain</a>\n   <a href=\"refL.html#link\">link</a>\n   <a href=\"refY.html#yoke\">yoke</a>\n   <a href=\"refC.html#copy\">copy</a>\n   <a href=\"refM.html#mix\">mix</a>\n   <a href=\"refA.html#append\">append</a>\n   <a href=\"refD.html#delete\">delete</a>\n   <a href=\"refD.html#delq\">delq</a>\n   <a href=\"refR.html#replace\">replace</a>\n   <a href=\"refI.html#insert\">insert</a>\n   <a href=\"refR.html#remove\">remove</a>\n   <a href=\"refP.html#place\">place</a>\n   <a href=\"refS.html#strip\">strip</a>\n   <a href=\"refS.html#split\">split</a>\n   <a href=\"refR.html#reverse\">reverse</a>\n   <a href=\"refF.html#flip\">flip</a>\n   <a href=\"refT.html#trim\">trim</a>\n   <a href=\"refC.html#clip\">clip</a>\n   <a href=\"refH.html#head\">head</a>\n   <a href=\"refT.html#tail\">tail</a>\n   <a href=\"refS.html#stem\">stem</a>\n   <a href=\"refF.html#fin\">fin</a>\n   <a href=\"refL.html#last\">last</a>\n   <a href=\"refM.html#member\">member</a>\n   <a href=\"refM.html#memq\">memq</a>\n   <a href=\"refM.html#mmeq\">mmeq</a>\n   <a href=\"refS.html#sect\">sect</a>\n   <a href=\"refD.html#diff\">diff</a>\n   <a href=\"refI.html#index\">index</a>\n   <a href=\"refO.html#offset\">offset</a>\n   <a href=\"refP.html#prior\">prior</a>\n   <a href=\"refA.html#assoc\">assoc</a>\n   <a href=\"refR.html#rassoc\">rassoc</a>\n   <a href=\"refA.html#asoq\">asoq</a>\n   <a href=\"refR.html#rasoq\">rasoq</a>\n   <a href=\"refF.html#flood\">flood</a>\n   <a href=\"refR.html#rank\">rank</a>\n   <a href=\"refS.html#sort\">sort</a>\n   <a href=\"refU.html#uniq\">uniq</a>\n   <a href=\"refG.html#group\">group</a>\n   <a href=\"refL.html#length\">length</a>\n   <a href=\"refS.html#size\">size</a>\n   <a href=\"refB.html#bytes\">bytes</a>\n   <a href=\"refV.html#val\">val</a>\n   <a href=\"refS.html#set\">set</a>\n   <a href=\"refX.html#xchg\">xchg</a>\n   <a href=\"refP.html#push\">push</a>\n   <a href=\"refP.html#push1\">push1</a>\n   <a href=\"refP.html#push1q\">push1q</a>\n   <a href=\"refP.html#pop\">pop</a>\n   <a href=\"ref_.html#++\">++</a>\n   <a href=\"refS.html#shift\">shift</a>\n   <a href=\"refC.html#cut\">cut</a>\n   <a href=\"refQ.html#queue\">queue</a>\n   <a href=\"refF.html#fifo\">fifo</a>\n   <a href=\"refI.html#idx\">idx</a>\n   <a href=\"refB.html#balance\">balance</a>\n   <a href=\"refD.html#depth\">depth</a>\n   <a href=\"refG.html#get\">get</a>\n   <a href=\"refF.html#fill\">fill</a>\n   <a href=\"refA.html#apply\">apply</a>\n</code>\n</dd>\n\n<dt>Control Flow</dt>\n<dd><code>\n   <a href=\"refL.html#load\">load</a>\n   <a href=\"refA.html#args\">args</a>\n   <a href=\"refN.html#next\">next</a>\n   <a href=\"refA.html#arg\">arg</a>\n   <a href=\"refR.html#rest\">rest</a>\n   <a href=\"refP.html#pass\">pass</a>\n   <a href=\"refQ.html#quote\">quote</a>\n   <a href=\"refA.html#as\">as</a>\n   <a href=\"refL.html#lit\">lit</a>\n   <a href=\"refE.html#eval\">eval</a>\n   <a href=\"refR.html#run\">run</a>\n   <a href=\"refM.html#macro\">macro</a>\n   <a href=\"refC.html#curry\">curry</a>\n   <a href=\"refD.html#def\">def</a>\n   <a href=\"refD.html#de\">de</a>\n   <a href=\"refD.html#dm\">dm</a>\n   <a href=\"refR.html#recur\">recur</a>\n   <a href=\"refR.html#recurse\">recurse</a>\n   <a href=\"refU.html#undef\">undef</a>\n   <a href=\"refB.html#box\">box</a>\n   <a href=\"refN.html#new\">new</a>\n   <a href=\"refT.html#type\">type</a>\n   <a href=\"refI.html#isa\">isa</a>\n   <a href=\"refM.html#method\">method</a>\n   <a href=\"refM.html#meth\">meth</a>\n   <a href=\"refS.html#send\">send</a>\n   <a href=\"refT.html#try\">try</a>\n   <a href=\"refS.html#super\">super</a>\n   <a href=\"refE.html#extra\">extra</a>\n   <a href=\"refT.html#this\">this</a>\n   <a href=\"refW.html#with\">with</a>\n   <a href=\"refB.html#bind\">bind</a>\n   <a href=\"refJ.html#job\">job</a>\n   <a href=\"refL.html#let\">let</a>\n   <a href=\"refL.html#let?\">let?</a>\n   <a href=\"refU.html#use\">use</a>\n   <a href=\"refA.html#and\">and</a>\n   <a href=\"refO.html#or\">or</a>\n   <a href=\"refN.html#nand\">nand</a>\n   <a href=\"refN.html#nor\">nor</a>\n   <a href=\"refX.html#xor\">xor</a>\n   <a href=\"refB.html#bool\">bool</a>\n   <a href=\"refN.html#not\">not</a>\n   <a href=\"refN.html#nil\">nil</a>\n   <a href=\"refT.html#t\">t</a>\n   <a href=\"refP.html#prog\">prog</a>\n   <a href=\"refP.html#prog1\">prog1</a>\n   <a href=\"refP.html#prog2\">prog2</a>\n   <a href=\"refI.html#if\">if</a>\n   <a href=\"refI.html#ifn\">ifn</a>\n   <a href=\"refI.html#if2\">if2</a>\n   <a href=\"refI.html#if@@\">if@@</a>\n   <a href=\"refW.html#when\">when</a>\n   <a href=\"refU.html#unless\">unless</a>\n   <a href=\"refC.html#cond\">cond</a>\n   <a href=\"refN.html#nond\">nond</a>\n   <a href=\"refC.html#case\">case</a>\n   <a href=\"refC.html#casq\">casq</a>\n   <a href=\"refS.html#state\">state</a>\n   <a href=\"refW.html#while\">while</a>\n   <a href=\"refU.html#until\">until</a>\n   <a href=\"refL.html#loop\">loop</a>\n   <a href=\"refD.html#do\">do</a>\n   <a href=\"refA.html#at\">at</a>\n   <a href=\"refF.html#for\">for</a>\n   <a href=\"refT.html#tco\">tco</a>\n   <a href=\"refT.html#tc\">tc</a>\n   <a href=\"refC.html#catch\">catch</a>\n   <a href=\"refT.html#throw\">throw</a>\n   <a href=\"refF.html#finally\">finally</a>\n   <a href=\"refC.html#co\">co</a>\n   <a href=\"refY.html#yield\">yield</a>\n   <a href=\"ref_.html#!\">!</a>\n   <a href=\"ref_.html#!!\">!!</a>\n   <a href=\"refE.html#e\">e</a>\n   <a href=\"ref_.html#$\">$</a>\n   <a href=\"refC.html#call\">call</a>\n   <a href=\"refI.html#ipid\">ipid</a>\n   <a href=\"refO.html#opid\">opid</a>\n   <a href=\"refK.html#kill\">kill</a>\n   <a href=\"refQ.html#quit\">quit</a>\n   <a href=\"refT.html#task\">task</a>\n   <a href=\"refF.html#fork\">fork</a>\n   <a href=\"refD.html#detach\">detach</a>\n   <a href=\"refP.html#pipe\">pipe</a>\n   <a href=\"refL.html#later\">later</a>\n   <a href=\"refT.html#timeout\">timeout</a>\n   <a href=\"refT.html#tasks\">tasks</a>\n   <a href=\"refA.html#abort\">abort</a>\n   <a href=\"refB.html#bye\">bye</a>\n</code>\n</dd>\n\n<dt>Mapping</dt>\n<dd><code>\n   <a href=\"refA.html#apply\">apply</a>\n   <a href=\"refP.html#pass\">pass</a>\n   <a href=\"refF.html#fun\">fun</a>\n   <a href=\"refM.html#maps\">maps</a>\n   <a href=\"refM.html#map\">map</a>\n   <a href=\"refM.html#mapc\">mapc</a>\n   <a href=\"refM.html#maplist\">maplist</a>\n   <a href=\"refM.html#mapcar\">mapcar</a>\n   <a href=\"refM.html#mapcon\">mapcon</a>\n   <a href=\"refM.html#mapcan\">mapcan</a>\n   <a href=\"refF.html#filter\">filter</a>\n   <a href=\"refE.html#extract\">extract</a>\n   <a href=\"refS.html#seek\">seek</a>\n   <a href=\"refF.html#find\">find</a>\n   <a href=\"refP.html#pick\">pick</a>\n   <a href=\"refF.html#fully\">fully</a>\n   <a href=\"refC.html#cnt\">cnt</a>\n   <a href=\"refS.html#sum\">sum</a>\n   <a href=\"refM.html#maxi\">maxi</a>\n   <a href=\"refM.html#mini\">mini</a>\n   <a href=\"refF.html#fish\">fish</a>\n   <a href=\"refB.html#by\">by</a>\n</code>\n</dd>\n\n<dt>Input/Output</dt>\n<dd><code>\n   <a href=\"refP.html#path\">path</a>\n   <a href=\"refI.html#in\">in</a>\n   <a href=\"refO.html#out\">out</a>\n   <a href=\"refE.html#err\">err</a>\n   <a href=\"refC.html#ctl\">ctl</a>\n   <a href=\"refI.html#input\">input</a>\n   <a href=\"refO.html#output\">output</a>\n   <a href=\"refF.html#fd\">fd</a>\n   <a href=\"refT.html#tty\">tty</a>\n   <a href=\"refP.html#prompt\">prompt</a>\n   <a href=\"refI.html#ipid\">ipid</a>\n   <a href=\"refO.html#opid\">opid</a>\n   <a href=\"refP.html#pipe\">pipe</a>\n   <a href=\"refA.html#any\">any</a>\n   <a href=\"refS.html#sym\">sym</a>\n   <a href=\"refS.html#str\">str</a>\n   <a href=\"refL.html#load\">load</a>\n   <a href=\"refH.html#hear\">hear</a>\n   <a href=\"refT.html#tell\">tell</a>\n   <a href=\"refK.html#key\">key</a>\n   <a href=\"refP.html#poll\">poll</a>\n   <a href=\"refP.html#peek\">peek</a>\n   <a href=\"refC.html#char\">char</a>\n   <a href=\"refS.html#skip\">skip</a>\n   <a href=\"refE.html#eol\">eol</a>\n   <a href=\"refE.html#eof\">eof</a>\n   <a href=\"refF.html#from\">from</a>\n   <a href=\"refT.html#till\">till</a>\n   <a href=\"refL.html#line\">line</a>\n   <a href=\"refF.html#format\">format</a>\n   <a href=\"refS.html#scl\">scl</a>\n   <a href=\"refR.html#read\">read</a>\n   <a href=\"refP.html#print\">print</a>\n   <a href=\"refP.html#println\">println</a>\n   <a href=\"refP.html#printsp\">printsp</a>\n   <a href=\"refP.html#prin\">prin</a>\n   <a href=\"refP.html#prinl\">prinl</a>\n   <a href=\"refM.html#msg\">msg</a>\n   <a href=\"refS.html#space\">space</a>\n   <a href=\"refB.html#beep\">beep</a>\n   <a href=\"refT.html#tab\">tab</a>\n   <a href=\"refF.html#flush\">flush</a>\n   <a href=\"refR.html#rewind\">rewind</a>\n   <a href=\"refE.html#ext\">ext</a>\n   <a href=\"refR.html#rd\">rd</a>\n   <a href=\"refP.html#pr\">pr</a>\n   <a href=\"refW.html#wr\">wr</a>\n   <a href=\"refW.html#wait\">wait</a>\n   <a href=\"refS.html#sync\">sync</a>\n   <a href=\"refE.html#echo\">echo</a>\n   <a href=\"refI.html#info\">info</a>\n   <a href=\"refF.html#file\">file</a>\n   <a href=\"refD.html#dir\">dir</a>\n   <a href=\"refO.html#open\">open</a>\n   <a href=\"refC.html#close\">close</a>\n   <a href=\"refP.html#port\">port</a>\n   <a href=\"refL.html#listen\">listen</a>\n   <a href=\"refA.html#accept\">accept</a>\n   <a href=\"refH.html#host\">host</a>\n   <a href=\"refC.html#connect\">connect</a>\n   <a href=\"refU.html#udp\">udp</a>\n   <a href=\"refS.html#script\">script</a>\n   <a href=\"refO.html#once\">once</a>\n   <a href=\"refF.html#finish\">finish</a>\n   <a href=\"refR.html#rc\">rc</a>\n   <a href=\"refA.html#acquire\">acquire</a>\n   <a href=\"refR.html#release\">release</a>\n   <a href=\"refT.html#tmp\">tmp</a>\n   <a href=\"refP.html#pretty\">pretty</a>\n   <a href=\"refP.html#pp\">pp</a>\n   <a href=\"refS.html#show\">show</a>\n   <a href=\"refV.html#view\">view</a>\n   <a href=\"refH.html#here\">here</a>\n   <a href=\"refP.html#prEval\">prEval</a>\n   <a href=\"refM.html#mail\">mail</a>\n</code>\n</dd>\n\n<dt>Object Orientation</dt>\n<dd><code>\n   <a href=\"refC.html#*Class\">*Class</a>\n   <a href=\"refC.html#class\">class</a>\n   <a href=\"refD.html#dm\">dm</a>\n   <a href=\"refR.html#rel\">rel</a>\n   <a href=\"refV.html#var\">var</a>\n   <a href=\"refV.html#var:\">var:</a>\n   <a href=\"refN.html#new\">new</a>\n   <a href=\"refT.html#type\">type</a>\n   <a href=\"refI.html#isa\">isa</a>\n   <a href=\"refM.html#method\">method</a>\n   <a href=\"refM.html#meth\">meth</a>\n   <a href=\"refS.html#send\">send</a>\n   <a href=\"refT.html#try\">try</a>\n   <a href=\"refO.html#object\">object</a>\n   <a href=\"refE.html#extend\">extend</a>\n   <a href=\"refS.html#super\">super</a>\n   <a href=\"refE.html#extra\">extra</a>\n   <a href=\"refT.html#this\">this</a>\n   <a href=\"refW.html#with\">with</a>\n   <a href=\"refT.html#This\">This</a>\n   <a href=\"refC.html#can\">can</a>\n   <a href=\"refD.html#dep\">dep</a>\n</code>\n</dd>\n\n<dt>Database</dt>\n<dd><code>\n   <a href=\"refP.html#pool\">pool</a>\n   <a href=\"refP.html#pool2\">pool2</a>\n   <a href=\"refJ.html#journal\">journal</a>\n   <a href=\"refI.html#id\">id</a>\n   <a href=\"refB.html#blk\">blk</a>\n   <a href=\"refS.html#seq\">seq</a>\n   <a href=\"refL.html#lieu\">lieu</a>\n   <a href=\"refL.html#lock\">lock</a>\n   <a href=\"refC.html#commit\">commit</a>\n   <a href=\"refR.html#rollback\">rollback</a>\n   <a href=\"refM.html#mark\">mark</a>\n   <a href=\"refF.html#free\">free</a>\n   <a href=\"refD.html#dbck\">dbck</a>\n   <a href=\"refT.html#tree\">tree</a>\n   <a href=\"refG.html#genKey\">genKey</a>\n   <a href=\"refG.html#genStrKey\">genStrKey</a>\n   <a href=\"refU.html#useKey\">useKey</a>\n   <a href=\"refR.html#+relation\">+relation</a>\n   <a href=\"refA.html#+Any\">+Any</a>\n   <a href=\"refB.html#+Bag\">+Bag</a>\n   <a href=\"refB.html#+Bool\">+Bool</a>\n   <a href=\"refN.html#+Number\">+Number</a>\n   <a href=\"refD.html#+Date\">+Date</a>\n   <a href=\"refT.html#+Time\">+Time</a>\n   <a href=\"refS.html#+Symbol\">+Symbol</a>\n   <a href=\"refS.html#+String\">+String</a>\n   <a href=\"refL.html#+Link\">+Link</a>\n   <a href=\"refJ.html#+Joint\">+Joint</a>\n   <a href=\"refB.html#+Blob\">+Blob</a>\n   <a href=\"refH.html#+Hook\">+Hook</a>\n   <a href=\"refH.html#+Hook2\">+Hook2</a>\n   <a href=\"refI.html#+index\">+index</a>\n   <a href=\"refK.html#+Key\">+Key</a>\n   <a href=\"refR.html#+Ref\">+Ref</a>\n   <a href=\"refR.html#+Ref2\">+Ref2</a>\n   <a href=\"refI.html#+Idx\">+Idx</a>\n   <a href=\"refS.html#+Sn\">+Sn</a>\n   <a href=\"refF.html#+Fold\">+Fold</a>\n   <a href=\"refI.html#+IdxFold\">+IdxFold</a>\n   <a href=\"refA.html#+Aux\">+Aux</a>\n   <a href=\"refU.html#+UB\">+UB</a>\n   <a href=\"refD.html#+Dep\">+Dep</a>\n   <a href=\"refL.html#+List\">+List</a>\n   <a href=\"refN.html#+Need\">+Need</a>\n   <a href=\"refM.html#+Mis\">+Mis</a>\n   <a href=\"refA.html#+Alt\">+Alt</a>\n   <a href=\"refS.html#+Swap\">+Swap</a>\n   <a href=\"refE.html#+Entity\">+Entity</a>\n   <a href=\"refB.html#blob\">blob</a>\n   <a href=\"refD.html#dbSync\">dbSync</a>\n   <a href=\"refN.html#new!\">new!</a>\n   <a href=\"refS.html#set!\">set!</a>\n   <a href=\"refP.html#put!\">put!</a>\n   <a href=\"refI.html#inc!\">inc!</a>\n   <a href=\"refB.html#blob!\">blob!</a>\n   <a href=\"refU.html#upd\">upd</a>\n   <a href=\"refD.html#dbs\">dbs</a>\n   <a href=\"refD.html#db:\">db:</a>\n   <a href=\"refD.html#db\">db</a>\n   <a href=\"refA.html#aux\">aux</a>\n   <a href=\"refC.html#collect\">collect</a>\n   <a href=\"refS.html#search\">search</a>\n   <a href=\"refF.html#forall\">forall</a>\n   <a href=\"refR.html#rel\">rel</a>\n   <a href=\"refR.html#request\">request</a>\n   <a href=\"refR.html#request!\">request!</a>\n   <a href=\"refO.html#obj\">obj</a>\n   <a href=\"refC.html#create\">create</a>\n   <a href=\"refR.html#root\">root</a>\n   <a href=\"refF.html#fetch\">fetch</a>\n   <a href=\"refS.html#store\">store</a>\n   <a href=\"refC.html#count\">count</a>\n   <a href=\"refL.html#leaf\">leaf</a>\n   <a href=\"refM.html#minKey\">minKey</a>\n   <a href=\"refM.html#maxKey\">maxKey</a>\n   <a href=\"refI.html#init\">init</a>\n   <a href=\"refS.html#step\">step</a>\n   <a href=\"refS.html#scan\">scan</a>\n   <a href=\"refI.html#iter\">iter</a>\n   <a href=\"refU.html#ubIter\">ubIter</a>\n   <a href=\"refP.html#prune\">prune</a>\n   <a href=\"refZ.html#zapTree\">zapTree</a>\n   <a href=\"refC.html#chkTree\">chkTree</a>\n   <a href=\"refD.html#db/3\">db/3</a>\n   <a href=\"refD.html#db/4\">db/4</a>\n   <a href=\"refD.html#db/5\">db/5</a>\n   <a href=\"refV.html#val/3\">val/3</a>\n   <a href=\"refL.html#lst/3\">lst/3</a>\n   <a href=\"refM.html#map/3\">map/3</a>\n   <a href=\"refI.html#isa/2\">isa/2</a>\n   <a href=\"refS.html#same/3\">same/3</a>\n   <a href=\"refB.html#bool/3\">bool/3</a>\n   <a href=\"refR.html#range/3\">range/3</a>\n   <a href=\"refH.html#head/3\">head/3</a>\n   <a href=\"refF.html#fold/3\">fold/3</a>\n   <a href=\"refP.html#part/3\">part/3</a>\n   <a href=\"refT.html#tolr/3\">tolr/3</a>\n   <a href=\"refS.html#select/3\">select/3</a>\n   <a href=\"refR.html#remote/2\">remote/2</a>\n   <a href=\"refR.html#revolve/2\">revolve/2</a>\n</code>\n</dd>\n\n<dt>Pilog</dt>\n<dd><code>\n   <a href=\"refP.html#prove\">prove</a>\n   <a href=\"ref_.html#-%3E\">-&gt;</a>\n   <a href=\"refU.html#unify\">unify</a>\n   <a href=\"refB.html#be\">be</a>\n   <a href=\"refC.html#clause\">clause</a>\n   <a href=\"refR.html#repeat\">repeat</a>\n   <a href=\"refA.html#asserta\">asserta</a>\n   <a href=\"refA.html#assertz\">assertz</a>\n   <a href=\"refR.html#retract\">retract</a>\n   <a href=\"refR.html#rules\">rules</a>\n   <a href=\"refG.html#goal\">goal</a>\n   <a href=\"refF.html#fail\">fail</a>\n   <a href=\"refP.html#pilog\">pilog</a>\n   <a href=\"refS.html#solve\">solve</a>\n   <a href=\"refQ.html#query\">query</a>\n   <a href=\"ref_.html#?\">?</a>\n   <a href=\"refR.html#repeat/0\">repeat/0</a>\n   <a href=\"refF.html#fail/0\">fail/0</a>\n   <a href=\"refT.html#true/0\">true/0</a>\n   <a href=\"refN.html#not/1\">not/1</a>\n   <a href=\"refC.html#call/1\">call/1</a>\n   <a href=\"refO.html#or/2\">or/2</a>\n   <a href=\"refN.html#nil/1\">nil/1</a>\n   <a href=\"refE.html#equal/2\">equal/2</a>\n   <a href=\"refD.html#different/2\">different/2</a>\n   <a href=\"refA.html#append/3\">append/3</a>\n   <a href=\"refM.html#member/2\">member/2</a>\n   <a href=\"refD.html#delete/3\">delete/3</a>\n   <a href=\"refP.html#permute/2\">permute/2</a>\n   <a href=\"refU.html#uniq/2\">uniq/2</a>\n   <a href=\"refA.html#asserta/1\">asserta/1</a>\n   <a href=\"refA.html#assertz/1\">assertz/1</a>\n   <a href=\"refR.html#retract/1\">retract/1</a>\n   <a href=\"refC.html#clause/2\">clause/2</a>\n   <a href=\"refS.html#show/1\">show/1</a>\n   <a href=\"refF.html#for/2\">for/2</a>\n   <a href=\"refF.html#for/3\">for/3</a>\n   <a href=\"refF.html#for/4\">for/4</a>\n   <a href=\"refD.html#db/3\">db/3</a>\n   <a href=\"refD.html#db/4\">db/4</a>\n   <a href=\"refD.html#db/5\">db/5</a>\n   <a href=\"refV.html#val/3\">val/3</a>\n   <a href=\"refL.html#lst/3\">lst/3</a>\n   <a href=\"refM.html#map/3\">map/3</a>\n   <a href=\"refI.html#isa/2\">isa/2</a>\n   <a href=\"refS.html#same/3\">same/3</a>\n   <a href=\"refB.html#bool/3\">bool/3</a>\n   <a href=\"refR.html#range/3\">range/3</a>\n   <a href=\"refH.html#head/3\">head/3</a>\n   <a href=\"refF.html#fold/3\">fold/3</a>\n   <a href=\"refP.html#part/3\">part/3</a>\n   <a href=\"refT.html#tolr/3\">tolr/3</a>\n   <a href=\"refS.html#select/3\">select/3</a>\n   <a href=\"refR.html#remote/2\">remote/2</a>\n</code>\n</dd>\n\n<dt>Debugging</dt>\n<dd><code>\n   <a href=\"refP.html#pretty\">pretty</a>\n   <a href=\"refP.html#pp\">pp</a>\n   <a href=\"refS.html#show\">show</a>\n   <a href=\"refL.html#loc\">loc</a>\n   <a href=\"refD.html#*Dbg\">*Dbg</a>\n   <a href=\"refH.html#help\">help</a>\n   <a href=\"refD.html#docs\">docs</a>\n   <a href=\"refD.html#doc\">doc</a>\n   <a href=\"refM.html#more\">more</a>\n   <a href=\"refL.html#less\">less</a>\n   <a href=\"refW.html#what\">what</a>\n   <a href=\"refW.html#who\">who</a>\n   <a href=\"refC.html#can\">can</a>\n   <a href=\"refD.html#dep\">dep</a>\n   <a href=\"refD.html#debug\">debug</a>\n   <a href=\"refD.html#-debug\">-debug</a>\n   <a href=\"refD.html#d\">d</a>\n   <a href=\"refU.html#unbug\">unbug</a>\n   <a href=\"refU.html#u\">u</a>\n   <a href=\"refV.html#vi\">v</a>\n   <a href=\"refV.html#vi\">vi</a>\n   <a href=\"refT.html#trace\">trace</a>\n   <a href=\"refT.html#-trace\">-trace</a>\n   <a href=\"refU.html#untrace\">untrace</a>\n   <a href=\"refT.html#traceAll\">traceAll</a>\n   <a href=\"refP.html#proc\">proc</a>\n   <a href=\"refH.html#hd\">hd</a>\n   <a href=\"refB.html#bench\">bench</a>\n   <a href=\"refB.html#bt\">bt</a>\n   <a href=\"refL.html#lint\">lint</a>\n   <a href=\"refL.html#lintAll\">lintAll</a>\n   <a href=\"refS.html#select\">select</a>\n</code>\n</dd>\n\n<dt>System Functions</dt>\n<dd><code>\n   <a href=\"refC.html#cmd\">cmd</a>\n   <a href=\"refA.html#argv\">argv</a>\n   <a href=\"refO.html#opt\">opt</a>\n   <a href=\"refV.html#version\">version</a>\n   <a href=\"refG.html#gc\">gc</a>\n   <a href=\"refT.html#tty\">tty</a>\n   <a href=\"refP.html#prompt\">prompt</a>\n   <a href=\"refR.html#raw\">raw</a>\n   <a href=\"refA.html#alarm\">alarm</a>\n   <a href=\"refS.html#sigio\">sigio</a>\n   <a href=\"refK.html#kids\">kids</a>\n   <a href=\"refP.html#protect\">protect</a>\n   <a href=\"refH.html#heap\">heap</a>\n   <a href=\"refS.html#stack\">stack</a>\n   <a href=\"refA.html#adr\">adr</a>\n   <a href=\"refB.html#byte\">byte</a>\n   <a href=\"refE.html#env\">env</a>\n   <a href=\"refT.html#trail\">trail</a>\n   <a href=\"refU.html#up\">up</a>\n   <a href=\"refS.html#sys\">sys</a>\n   <a href=\"refD.html#date\">date</a>\n   <a href=\"refT.html#time\">time</a>\n   <a href=\"refU.html#usec\">usec</a>\n   <a href=\"refR.html#rt\">rt</a>\n   <a href=\"refS.html#stamp\">stamp</a>\n   <a href=\"refD.html#dat$\">dat$</a>\n   <a href=\"ref_.html#$dat\">$dat</a>\n   <a href=\"refD.html#datSym\">datSym</a>\n   <a href=\"refD.html#datStr\">datStr</a>\n   <a href=\"refS.html#strDat\">strDat</a>\n   <a href=\"refE.html#expDat\">expDat</a>\n   <a href=\"refD.html#day\">day</a>\n   <a href=\"refW.html#week\">week</a>\n   <a href=\"refU.html#ultimo\">ultimo</a>\n   <a href=\"refT.html#tim$\">tim$</a>\n   <a href=\"ref_.html#$tim\">$tim</a>\n   <a href=\"refT.html#telStr\">telStr</a>\n   <a href=\"refE.html#expTel\">expTel</a>\n   <a href=\"refL.html#locale\">locale</a>\n   <a href=\"refA.html#allowed\">allowed</a>\n   <a href=\"refA.html#allow\">allow</a>\n   <a href=\"refP.html#pwd\">pwd</a>\n   <a href=\"refC.html#cd\">cd</a>\n   <a href=\"refC.html#chdir\">chdir</a>\n   <a href=\"refC.html#ctty\">ctty</a>\n   <a href=\"refI.html#info\">info</a>\n   <a href=\"refD.html#dir\">dir</a>\n   <a href=\"refD.html#dirname\">dirname</a>\n   <a href=\"refB.html#basename\">basename</a>\n   <a href=\"refE.html#errno\">errno</a>\n   <a href=\"refN.html#native\">native</a>\n   <a href=\"ref_.html#%25@\">%@</a>\n   <a href=\"refS.html#struct\">struct</a>\n   <a href=\"refL.html#lisp\">lisp</a>\n   <a href=\"refE.html#exec\">exec</a>\n   <a href=\"refC.html#call\">call</a>\n   <a href=\"refK.html#kill\">kill</a>\n   <a href=\"refQ.html#quit\">quit</a>\n   <a href=\"refT.html#task\">task</a>\n   <a href=\"refF.html#fork\">fork</a>\n   <a href=\"refP.html#pipe\">pipe</a>\n   <a href=\"refT.html#timeout\">timeout</a>\n   <a href=\"refM.html#mail\">mail</a>\n   <a href=\"refA.html#assert\">assert</a>\n   <a href=\"refT.html#test\">test</a>\n   <a href=\"refB.html#bye\">bye</a>\n</code>\n</dd>\n\n<dt>Globals</dt>\n<dd><code>\n   <a href=\"#nilSym\">NIL</a>\n   <a href=\"refP.html#pico\">pico</a>\n   <a href=\"refC.html#*CPU\">*CPU</a>\n   <a href=\"refO.html#*OS\">*OS</a>\n   <a href=\"refD.html#*DB\">*DB</a>\n   <a href=\"refT.html#T\">T</a>\n   <a href=\"refS.html#*Solo\">*Solo</a>\n   <a href=\"refP.html#*PPid\">*PPid</a>\n   <a href=\"refP.html#*Pid\">*Pid</a>\n   <a href=\"ref_.html#@\">@</a>\n   <a href=\"ref_.html#@@\">@@</a>\n   <a href=\"ref_.html#@@@\">@@@</a>\n   <a href=\"refT.html#This\">This</a>\n   <a href=\"refD.html#*Dbg\">*Dbg</a>\n   <a href=\"refP.html#*Prompt\">*Prompt</a>\n   <a href=\"refR.html#remark\">remark</a>\n   <a href=\"refC.html#complete\">complete</a>\n   <a href=\"refR.html#reflect\">reflect</a>\n   <a href=\"refZ.html#*Zap\">*Zap</a>\n   <a href=\"refS.html#*Scl\">*Scl</a>\n   <a href=\"refR.html#*Rule\">*Rule</a>\n   <a href=\"refC.html#*Class\">*Class</a>\n   <a href=\"refD.html#*Dbs\">*Dbs</a>\n   <a href=\"refR.html#*Run\">*Run</a>\n   <a href=\"refH.html#*Hup\">*Hup</a>\n   <a href=\"refS.html#*Sig1\">*Sig1</a>\n   <a href=\"refS.html#*Sig2\">*Sig2</a>\n   <a href=\"refT.html#*TStp1\">*TStp1</a>\n   <a href=\"refT.html#*TStp2\">*TStp2</a>\n   <a href=\"refT.html#*Term\">*Term</a>\n   <a href=\"ref_.html#%5E\">^</a>\n   <a href=\"refE.html#*Err\">*Err</a>\n   <a href=\"refM.html#*Msg\">*Msg</a>\n   <a href=\"refU.html#*Uni\">*Uni</a>\n   <a href=\"refA.html#*Adr\">*Adr</a>\n   <a href=\"refA.html#*Allow\">*Allow</a>\n   <a href=\"refF.html#*Fork\">*Fork</a>\n   <a href=\"refB.html#*Bye\">*Bye</a>\n</code>\n</dd>\n\n</dl>\n\n\n<p><hr>\n<h2><a id=\"down\">Download</a></h2>\n\n<p>The <code>PicoLisp</code> system can be downloaded from the <a\nhref=\"http://software-lab.de/down.html\">PicoLisp Download</a> page.\n\n<script>\nvar sortBtn;\n\nif (document.querySelectorAll) {\n\tsortBtn = document.createElement(\"input\");\n\tsortBtn.setAttribute(\"type\", \"button\");\n\tsortBtn.setAttribute(\"onclick\", \"sortFunWords()\");\n\tsortBtn.value = \"Sort Words Alphabetically\";\n\tdocument.getElementById(\"sortBtnHome\").appendChild(sortBtn);\n};\n\nfunction sortFunWords() {\n\tvar dls = document.querySelectorAll(\"dl\"), funDl = dls[dls.length-1];\n\tvar cats = funDl.querySelectorAll(\"dd code\");\n\tfor (var c=0; c<cats.length; c++) {\n\t\tvar aElems = cats[c].querySelectorAll(\"a\"), aArr = [];\n\t\tfor (var i=0; i<aElems.length; i++) { aArr.push(aElems[i]); }\n\t\taArr.sort(function(a,b) { return (a.innerHTML < b.innerHTML) ? -1 : 1; });\n\t\tvar dd = cats[c].parentNode;\n\t\tdd.removeChild(cats[c]);\n\t\tvar newCode = document.createElement(\"code\");\n\t\tdd.appendChild(newCode);\n\t\tfor (var i=0; i<aArr.length; i++) {\n\t\t\tnewCode.appendChild(aArr[i]);\n\t\t\tnewCode.appendChild(document.createTextNode(\" \"));\n\t\t}\n\t}\n\tsortBtn.setAttribute(\"disabled\", \"disabled\");\n}\n</script>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refA.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 05jul25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>A</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>A</h1>\n\n<dl>\n\n<dt><a id=\"*Adr\"><code>*Adr</code></a></dt>\n<dd>A global variable holding the IP address of last recently accepted client.\nSee also <code><a href=\"refL.html#listen\">listen</a></code> and <code><a\nhref=\"refA.html#accept\">accept</a></code>.\n\n<pre>\n: *Adr\n-> \"127.0.0.1\"\n</pre></dd>\n\n<dt><a id=\"adr\"><code>(adr 'var) -> num</code></a></dt>\n<dt><code>(adr 'num) -> var</code></dt>\n<dd>Converts, in the first form, a variable <code>var</code> (a symbol or a cons\npair) into <code>num</code> (actually an encoded pointer). This pointer can be\npassed to <code><a href=\"refN.html#native\">native</a></code> or <code><a\nhref=\"refS.html#struct\">struct</a></code>. The second form converts a pointer\nback into the original <code>var</code>. Note that this original\n<code>var</code> may be garbage collected if it is not referred from other data,\ngiving unpredictable results. See also <code><a\nhref=\"refB.html#byte\">byte</a></code>.\n\n<pre>\n: (setq X (box 7))\n-> $370237372176\n: (adr X)\n-> 533244889064\n: (adr @)\n-> $370237372176\n: (val @)\n-> 7\n: (struct (adr X) 'N)\n-> 114\n$: (struct (adr X) T)\n-> 7\n</pre></dd>\n\n<dt><a id=\"*Allow\"><code>*Allow</code></a></dt>\n<dd>A global variable holding allowed access patterns. If its value is\nnon-<code>NIL</code>, it should contain a list where the CAR is an <code><a\nhref=\"refI.html#idx\">idx</a></code> tree of allowed items, and the CDR a list of\nprefix strings. See also <code><a href=\"refA.html#allow\">allow</a></code>,\n<code><a href=\"refA.html#allowed\">allowed</a></code> and <code><a\nhref=\"refP.html#pre?\">pre?</a></code>.\n\n<pre>\n: (allowed (\"app/\")  # Initialize\n   \"!start\" \"!stop\" \"lib.css\" \"!psh\" )\n-> NIL\n: (allow \"!myFoo\")  # additional item\n-> \"!myFoo\"\n: (allow \"myDir/\" T)  # additional prefix\n-> \"myDir/\"\n\n: *Allow\n-> ((\"!start\" (\"!psh\" (\"!myFoo\")) \"!stop\" NIL \"lib.css\") \"app/\" \"myDir/\")\n\n: (idx *Allow)  # items\n-> (\"!myFoo\" \"!psh\" \"!start\" \"!stop\" \"lib.css\")\n: (cdr *Allow)  # prefixes\n-> (\"app/\" \"myDir/\")\n</pre></dd>\n\n<dt><a id=\"+Alt\"><code>+Alt</code></a></dt>\n<dd>Prefix class specifying an alternative class for a <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. This allows indexes or other\nside effects to be maintained in a class different from the current one. See\nalso <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(class +EuOrd +Ord)                    # EU-specific order subclass\n(rel nr (+Alt +Key +Number) +XyOrd)    # Maintain the key in the +XyOrd index\n</pre></dd>\n\n<dt><a id=\"+Any\"><code>+Any</code></a></dt>\n<dd>Class for unspecified relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Objects of that class accept\nand maintain any type of Lisp data. Used often when there is no other suitable\nrelation class available. See also <a href=\"ref.html#dbase\">Database</a>.\n\n<p>In the following example <code>+Any</code> is used simply for the reason that\nthere is no direct way to specify dotted pairs:\n\n<pre>\n(rel loc (+Any))  # Locale, e.g. (\"DE\" . \"de\")\n</pre></dd>\n\n<dt><a id=\"+Aux\"><code>+Aux</code></a></dt>\n<dd>Prefix class maintaining auxiliary keys for <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s, in addition to <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code> or <code><a\nhref=\"refI.html#+Idx\">+Idx</a></code> indexes. Expects a list of auxiliary\nattributes of the same object, and combines all keys in that order into a single\nindex key. See also <code><a href=\"refU.html#+UB\">+UB</a></code>, <code><a\nhref=\"refA.html#aux\">aux</a></code> and <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nr (+Ref +Number))                # Normal, non-unique index\n(rel nm (+Aux +Ref +String) (nr txt))  # Combined name/number/text index\n(rel txt (+Aux +Sn +Idx +String) (nr)) # Text/number plus tolerant text index\n</pre></dd>\n\n<dt><a id=\"abort\"><code>(abort 'cnt . prg) -> any</code></a></dt>\n<dd>Aborts the execution of <code>prg</code> if it takes longer than\n<code>cnt</code> seconds, and returns <code>NIL</code>. Otherwise, the result of\n<code>prg</code> is returned. <code><a href=\"refA.html#alarm\">alarm</a></code>\nis used internally, so care must be taken not to interfer with other calls to\n<code>alarm</code>.\n\n<pre>\n: (abort 20 (in Sock (rd)))  # Wait maximally 20 seconds for socket data\n</pre></dd>\n\n<dt><a id=\"abs\"><code>(abs 'num) -> num</code></a></dt>\n<dd>Returns the absolute value of the <code>num</code> argument.\n\n<pre>\n: (abs -7)\n-> 7\n: (abs 7)\n-> 7\n</pre></dd>\n\n<dt><a id=\"accept\"><code>(accept 'cnt) -> cnt | NIL</code></a></dt>\n<dd>Accepts a connection on descriptor <code>cnt</code> (as received by <code><a\nhref=\"refP.html#port\">port</a></code>), and returns the new socket descriptor\n<code>cnt</code>. The global variable <code>*Adr</code> is set to the IP address\nof the client. See also <code><a href=\"refL.html#listen\">listen</a></code>,\n<code><a href=\"refC.html#connect\">connect</a></code> and <code><a\nhref=\"refA.html#*Adr\">*Adr</a></code>.\n\n<pre>\n: (setq *Socket\n   (accept (port 6789)) )  # Accept connection at port 6789\n-> 4\n</pre></dd>\n\n<dt><a id=\"accu\"><code>(accu 'var 'any 'num ['var2])</code></a></dt>\n<dd>Accumulates <code>num</code> into a sum, using the key <code>any</code> in\nan association list stored in <code>var</code>. If <code>var2</code> is given,\nit is used as an <code><a href=\"refI.html#idx\">idx</a></code> for faster\nlookups. See also <code><a href=\"refA.html#assoc\">assoc</a></code>.\n\n<pre>\n: (off Sum)\n-> NIL\n: (accu 'Sum 'a 1)\n-> (a . 1)\n: (accu 'Sum 'a 5)\n-> 6\n: (accu 'Sum 22 100)\n-> NIL\n: Sum\n-> ((22 . 100) (a . 6))\n</pre></dd>\n\n<dt><a id=\"acquire\"><code>(acquire 'sym) -> flg</code></a></dt>\n<dd>Tries to acquire the mutex represented by the file <code>sym</code>, by\nobtaining an exclusive lock on that file with <code><a\nhref=\"refC.html#ctl\">ctl</a></code>, and then trying to write the PID of the\ncurrent process into that file. It fails if the file already holds the PID of\nsome other existing process. See also <code><a\nhref=\"refR.html#release\">release</a></code>, <code><a\nhref=\"refP.html#*Pid\">*Pid</a></code> and <code><a\nhref=\"refR.html#rc\">rc</a></code>.\n\n<pre>\n: (acquire \"sema1\")\n-> 28255\n</pre></dd>\n\n<dt><a id=\"alarm\"><code>(alarm 'cnt . prg) -> cnt</code></a></dt>\n<dd>Sets an alarm timer scheduling <code>prg</code> to be executed after\n<code>cnt</code> seconds, and returns the number of seconds remaining until any\npreviously scheduled alarm was due to be delivered. Calling <code>(alarm\n0)</code> will cancel an alarm. See also <code><a\nhref=\"refA.html#abort\">abort</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n: (prinl (tim$ (time) T)) (alarm 10 (prinl (tim$ (time) T)))\n16:36:14\n-> 0\n: 16:36:24\n\n: (alarm 10 (bye 0))\n-> 0\n$\n</pre></dd>\n\n<dt><a id=\"align\"><code>(align 'cnt 'any) -> sym</code></a></dt>\n<dt><code>(align 'lst 'any ..) -> sym</code></dt>\n<dd>Returns a transient symbol with all <code>any</code> arguments <code><a\nhref=\"refP.html#pack\">pack</a></code>ed in an aligned format. In the first form,\n<code>any</code> will be left-aligned if <code>cnt</code> is negative, otherwise\nright-aligned. In the second form, all <code>any</code> arguments are packed\naccording to the numbers in <code>lst</code>. See also <code><a\nhref=\"refT.html#tab\">tab</a></code>, <code><a\nhref=\"refC.html#center\">center</a></code> and <code><a\nhref=\"refW.html#wrap\">wrap</a></code>.\n\n<pre>\n: (align 4 \"a\")\n-> \"   a\"\n: (align -4 12)\n-> \"12  \"\n: (align (4 4 4) \"a\" 12 \"b\")\n-> \"   a  12   b\"\n</pre></dd>\n\n<dt><a id=\"all\"><code>(all ['T | '0 | 'sym]) -> lst</code></a></dt>\n<dd>Returns a new list of all <a href=\"ref.html#internal\">internal</a> symbols\nin the current namespace search order (if called without arguments, or with\n<code>NIL</code>), all current <a href=\"ref.html#transient\">transient</a>\nsymbols (if the argument is <code>T</code>), all <a\nhref=\"ref.html#external\">external</a> symbols (if the argument is zero), or all\nsymbols of the given namespace <code>sym</code>. See also <code><a\nhref=\"refS.html#symbols\">symbols</a></code> and <code><a\nhref=\"refA.html#all*\">all*</a></code>.\n\n<pre>\n: (all)  # All internal symbols\n-> (inc> leaf nil inc! accept ...\n\n# Find all symbols starting with an underscore character\n: (filter '((X) (= \"_\" (car (chop X)))) (all))\n-> (_put _nacs _oct _lintq _lst _map _iter _dbg2 _getLine _led ...\n</pre></dd>\n\n<dt><a id=\"all*\"><code>(all* 'any ['flg]) -> lst</code></a></dt>\n<dd>Returns a sorted list of all (possibly namespaced) symbols and path names\nstarting with the characters in <code>any</code>. If <code>flg</code> is\n<code>T</code>, only symbols, and if it is <code>0</code>, only path names are\nreturned. Typically used in TAB-completion routines. See also <code><a\nhref=\"refA.html#all\">all</a></code>, <code><a\nhref=\"refS.html#symbols\">symbols</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (all* \"map\")\n-> (\"map\" \"map/3\" \"mapc\" \"mapcan\" \"mapcar\" \"mapcon\" \"maplist\" \"maps\")\n: (all* \"llvm~BLK\")\n-> (\"llvm~BLK\" \"llvm~BLKMASK\" \"llvm~BLKSIZE\" \"llvm~BLKTAG\")\n</pre></dd>\n\n<dt><a id=\"allow\"><code>(allow 'sym ['flg]) -> sym</code></a></dt>\n<dd>Maintains an index structure of allowed access patterns in the global\nvariable <code><a href=\"refA.html#*Allow\">*Allow</a></code>. If the value of\n<code>*Allow</code> is non-<code>NIL</code>, <code>sym</code> is added to the\n<code><a href=\"refI.html#idx\">idx</a></code> tree in the CAR of\n<code>*Allow</code> (if <code>flg</code> is <code>NIL</code>), or to the list of\nprefix strings (if <code>flg</code> is non-<code>NIL</code>). See also <code><a\nhref=\"refA.html#allowed\">allowed</a></code>.\n\n<pre>\n: *Allow\n-> ((\"!start\" (\"!psh\") \"!stop\" NIL \"lib.css\") \"app/\")\n: (allow \"!myFoo\")  # additionally allowed item\n-> \"!myFoo\"\n: (allow \"myDir/\" T)  # additionally allowed prefix\n-> \"myDir/\"\n</pre></dd>\n\n<dt><a id=\"allowed\"><code>(allowed lst [sym ..])</code></a></dt>\n<dd>Creates an index structure of allowed access patterns in the global variable\n<code><a href=\"refA.html#*Allow\">*Allow</a></code>. <code>lst</code> should\nconsist of prefix strings (to be checked at runtime with <code><a\nhref=\"refP.html#pre?\">pre?</a></code>), and the <code>sym</code> arguments\nshould specify the initially allowed items. Must be called before any GUI\nlibraries and/or <code><a href=\"refA.html#allow\">allow</a></code> calls.\n\n<pre>\n: (allowed (\"app/\")  # allowed prefixes\n   \"!start\" \"!stop\" \"lib.css\" \"!psh\" )  # allowed items\n-> NIL\n</pre></dd>\n\n<dt><a id=\"and\"><code>(and 'any ..) -> any</code></a></dt>\n<dd>Logical AND. The expressions <code>any</code> are evaluated from left to\nright. If <code>NIL</code> is encountered, <code>NIL</code> is returned\nimmediately. Else the result of the last expression is returned. See also\n<code><a href=\"refN.html#nand\">nand</a></code>, <code><a\nhref=\"refO.html#or\">or</a></code> and <code><a\nhref=\"refW.html#when\">when</a></code>.\n\n<pre>\n: (and (= 3 3) (read))\nabc  # User input\n-> abc\n: (and (= 3 4) (read))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"any\"><code>(any 'any) -> any</code></a></dt>\n<dd>Parses <code>any</code> from the argument. This is the reverse operation of\n<code><a href=\"refS.html#sym\">sym</a></code>. See also <code><a\nhref=\"refS.html#str\">str</a></code>, <code>(any 'sym)</code> is equivalent to\n<code>(car (str 'sym))</code>.\n\n<pre>\n: (any \"(a b # Comment\\nc d)\")\n-> (a b c d)\n: (any \"\\\"A String\\\"\")\n-> \"A String\"\n</pre></dd>\n\n<dt><a id=\"append\"><code>(append 'lst ..) -> lst</code></a></dt>\n<dd>Appends all argument lists. See also <code><a\nhref=\"refC.html#conc\">conc</a></code>, <code><a\nhref=\"refI.html#insert\">insert</a></code>, <code><a\nhref=\"refD.html#delete\">delete</a></code> and <code><a\nhref=\"refR.html#remove\">remove</a></code>.\n\n<pre>\n: (append '(a b c) (1 2 3))\n-> (a b c 1 2 3)\n: (append (1) (2) (3) 4)\n-> (1 2 3 . 4)\n</pre></dd>\n\n<dt><a id=\"append/3\"><code>append/3</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if appending the\nfirst two list arguments is equal to the third argument. See also <code><a\nhref=\"refA.html#append\">append</a></code> and <code><a\nhref=\"refM.html#member/2\">member/2</a></code>.\n\n<pre>\n: (? (append @X @Y (a b c)))\n @X=NIL @Y=(a b c)\n @X=(a) @Y=(b c)\n @X=(a b) @Y=(c)\n @X=(a b c) @Y=NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"apply\"><code>(apply 'fun 'lst ['any ..]) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to <code>lst</code>. If additional <code>any</code>\narguments are given, they are applied as leading elements of <code>lst</code>.\n<code>(apply 'fun 'lst 'any1 'any2)</code> is equivalent to <code>(apply 'fun\n(cons 'any1 'any2 'lst))</code>.\n\n<pre>\n: (apply + (1 2 3))\n-> 6\n: (apply * (5 6) 3 4)\n-> 360\n: (apply '((X Y Z) (* X (+ Y Z))) (3 4 5))\n-> 27\n: (apply println (3 4) 1 2)\n1 2 3 4\n-> 4\n</pre></dd>\n\n<dt><a id=\"arg\"><code>(arg 'cnt) -> any</code></a></dt>\n<dd>Can only be used inside functions with a variable number of arguments (with\n<code>@</code>). Returns the <code>cnt</code>'th remaining argument. See also\n<code><a href=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#args\">args</a></code>, <code><a\nhref=\"refR.html#rest\">rest</a></code> and <code><a\nhref=\"refP.html#pass\">pass</a></code>.\n\n<pre>\n: (de foo @\n   (println (arg 1) (arg 2))\n   (println (next))\n   (println (arg 1) (arg 2)) )\n-> foo\n: (foo 'a 'b 'c)\na b\na\nb c\n-> c\n</pre></dd>\n\n<dt><a id=\"args\"><code>(args) -> flg</code></a></dt>\n<dd>Can only be used inside functions with a variable number of arguments (with\n<code>@</code>). Returns <code>T</code> when there are more arguments to be\nfetched from the internal list. See also <code><a\nhref=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code>, <code><a\nhref=\"refR.html#rest\">rest</a></code> and <code><a\nhref=\"refP.html#pass\">pass</a></code>.\n\n<pre>\n: (de foo @ (println (args)))       # Test for arguments\n-> foo\n: (foo)                             # No arguments\nNIL\n-> NIL\n: (foo NIL)                         # One argument\nT\n-> T\n: (foo 123)                         # One argument\nT\n-> T\n</pre></dd>\n\n<dt><a id=\"argv\"><code>(argv [var ..] [. sym]) -> lst|sym</code></a></dt>\n<dd>If called without arguments, <code>argv</code> returns a list of strings\ncontaining all remaining command line arguments. Otherwise, the\n<code>var/sym</code> arguments are subsequently bound to the command line\narguments. A hyphen \"<code>-</code>\" can be used to inhibit the automatic\n<code>load</code>ing further arguments. See also <code><a\nhref=\"refC.html#cmd\">cmd</a></code>, <a href=\"ref.html#invoc\">Invocation</a> and\n<code><a href=\"refO.html#opt\">opt</a></code>.\n\n<pre>\n$ pil -\"println 'OK\" - abc 123 +\nOK\n: (argv)\n-> (\"abc\" \"123\")\n: (argv A B)\n-> \"123\"\n: A\n-> \"abc\"\n: B\n-> \"123\"\n: (argv . Lst)\n-> (\"abc\" \"123\")\n: Lst\n-> (\"abc\" \"123\")\n</pre></dd>\n\n<dt><a id=\"as\"><code>(as 'any1 . any2) -> any2 | NIL</code></a></dt>\n<dd>Returns <code>any2</code> unevaluated when <code>any1</code> evaluates to\nnon-<code>NIL</code>. Otherwise <code>NIL</code> is returned. <code>(as Flg A B\nC)</code> is equivalent to <code>(and Flg '(A B C))</code>. <code>as</code> is\ntypically used in <a href=\"ref.html#macro-io\">read-macros</a> to conditionally\nexclude sub-expressions. See also <code><a\nhref=\"refQ.html#quote\">quote</a></code>.\n\n<pre>\n: (as (= 3 3) A B C)\n-> (A B C)\n\n(de foo ()\n   (doSomething)\n   ~(as (someConditio)\n      (doThis)\n      (doThat) )\n   (doMore) )\n</pre></dd>\n\n<dt><a id=\"asoq\"><code>(asoq 'any 'lst) -> lst</code></a></dt>\n<dd>Searches an association list. Returns the first element from\n<code>lst</code> with <code>any</code> as its CAR, or <code>NIL</code> if no\nmatch is found. <code><a href=\"ref_.html#==\">==</a></code> is used for\ncomparison (pointer equality). See also <code><a\nhref=\"refA.html#assoc\">assoc</a></code>, <code><a\nhref=\"refR.html#rasoq\">rasoq</a></code>, <code><a\nhref=\"refG.html#get\">get</a></code>, <code><a\nhref=\"refP.html#push1q\">push1q</a></code>, <code><a\nhref=\"refD.html#delq\">delq</a></code>, <code><a\nhref=\"refM.html#memq\">memq</a></code>, <code><a\nhref=\"refM.html#mmeq\">mmeq</a></code> and <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (asoq 'a '((999 1 2 3) (b . 7) (\"ok\" \"Hello\")))\n-> NIL\n: (asoq 'b '((999 1 2 3) (b . 7) (\"ok\" \"Hello\")))\n-> (b . 7)\n</pre></dd>\n\n<dt><a id=\"assert\"><code>(assert exe ..) -> prg | NIL</code></a></dt>\n<dd>When in debug mode (<code><a href=\"refD.html#*Dbg\">*Dbg</a></code> is\nnon-<code>NIL</code>), <code>assert</code> returns a <code>prg</code> list which\ntests all <code>exe</code> conditions, and issues an error via <code><a\nhref=\"refQ.html#quit\">quit</a></code> if one of the results evaluates to\n<code>NIL</code>. Otherwise, <code>NIL</code> is returned. Used typically in\ncombination with the <code>~</code> tilde <code><a\nhref=\"ref.html#macro-io\">read-macro</a></code> to insert the test code only when\nin debug mode. See also <code><a href=\"refT.html#test\">test</a></code>.\n\n<pre>\n# Start in debug mode\n$ pil +\n: (de foo (N)\n   ~(assert (>= 90 N 10))\n   (bar N) )\n-> foo\n: (pp 'foo)                      # Pretty-print 'foo'\n(de foo (N)\n   (unless (>= 90 N 10)          # Assertion code exists\n      (quit \"'assert' failed\" '(>= 90 N 10)) )\n   (bar N) )\n-> foo\n: (foo 7)                        # Try it\n(>= 90 N 10) -- Assertion failed\n?\n\n# Start in non-debug mode\n$ pil\n: (de foo (N)\n   ~(assert (>= 90 N 10))\n   (bar N) )\n-> foo\n: (pp 'foo)                      # Pretty-print 'foo'\n(de foo (N)\n   (bar N) )                     # Assertion code does not exist\n-> foo\n</pre></dd>\n\n<dt><a id=\"asserta\"><code>(asserta 'lst) -> lst</code></a></dt>\n<dd>Inserts a new <a href=\"ref.html#pilog\">Pilog</a> fact or rule before all\nother rules. See also <code><a href=\"refB.html#be\">be</a></code>, <code><a\nhref=\"refC.html#clause\">clause</a></code>, <code><a\nhref=\"refA.html#assertz\">assertz</a></code> and <code><a\nhref=\"refR.html#retract\">retract</a></code>.\n\n<pre>\n: (be a (2))            # Define two facts\n-> a\n: (be a (3))\n-> a\n\n: (asserta '(a (1)))    # Insert new fact in front\n-> ((1))\n\n: (? (a @N))            # Query\n @N=1\n @N=2\n @N=3\n-> NIL\n</pre></dd>\n\n<dt><a id=\"asserta/1\"><code>asserta/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that inserts a new fact or rule\nbefore all other rules. See also <code><a\nhref=\"refA.html#asserta\">asserta</a></code>, <code><a\nhref=\"refA.html#assertz/1\">assertz/1</a></code> and <code><a\nhref=\"refR.html#retract/1\">retract/1</a></code>.\n\n<pre>\n: (? (asserta (a (2))))\n-> T\n: (? (asserta (a (1))))\n-> T\n: (rules 'a)\n1 (be a (1))\n2 (be a (2))\n-> a\n</pre></dd>\n\n<dt><a id=\"assertz\"><code>(assertz 'lst) -> lst</code></a></dt>\n<dd>Appends a new <a href=\"ref.html#pilog\">Pilog</a> fact or rule behind all\nother rules. See also <code><a href=\"refB.html#be\">be</a></code>, <code><a\nhref=\"refC.html#clause\">clause</a></code>, <code><a\nhref=\"refA.html#asserta\">asserta</a></code> and <code><a\nhref=\"refR.html#retract\">retract</a></code>.\n\n<pre>\n: (be a (1))            # Define two facts\n-> a\n: (be a (2))\n-> a\n\n: (assertz '(a (3)))    # Append new fact at the end\n-> ((3))\n\n: (? (a @N))            # Query\n @N=1\n @N=2\n @N=3\n-> NIL\n</pre></dd>\n\n<dt><a id=\"assertz/1\"><code>assertz/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that appends a new fact or rule\nbehind all other rules. See also <code><a\nhref=\"refA.html#assertz\">assertz</a></code>, <code><a\nhref=\"refA.html#asserta/1\">asserta/1</a></code> and <code><a\nhref=\"refR.html#retract/1\">retract/1</a></code>.\n\n<pre>\n: (? (assertz (a (1))))\n-> T\n: (? (assertz (a (2))))\n-> T\n: (rules 'a)\n1 (be a (1))\n2 (be a (2))\n-> a\n</pre></dd>\n\n<dt><a id=\"assoc\"><code>(assoc 'any 'lst) -> lst</code></a></dt>\n<dd>Searches an association list. Returns the first element from\n<code>lst</code> with its CAR equal to <code>any</code>, or <code>NIL</code> if\nno match is found. See also <code><a href=\"refA.html#asoq\">asoq</a></code> and\n<code><a href=\"refR.html#rassoc\">rassoc</a></code>.\n\n<pre>\n: (assoc \"b\" '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> (\"b\" . 7)\n: (assoc 999 '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> (999 1 2 3)\n: (assoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"at\"><code>(at '(cnt1 . cnt2|NIL) . prg) -> any</code></a></dt>\n<dd>Increments <code>cnt1</code> (destructively), and returns <code>NIL</code>\nwhen it is less than <code>cnt2</code>. Both <code>cnt1</code> and\n<code>cnt2</code> should be positive. Otherwise, <code>cnt1</code> is reset to\nzero and <code>prg</code> is executed. Returns the result of <code>prg</code>.\nIf <code>cnt2</code> is <code>NIL</code>, nothing is done, and <code>NIL</code>\nis returned immediately.\n\n<pre>\n: (do 11 (prin \".\") (at (0 . 3) (prin \"!\")))\n...!...!...!..-> NIL\n</pre></dd>\n\n<dt><a id=\"atom\"><code>(atom 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is an atom (a\nnumber or a symbol). See also <code><a href=\"refN.html#num?\">num?</a></code>,\n<code><a href=\"refS.html#sym?\">sym?</a></code> and <code><a\nhref=\"refP.html#pair\">pair</a></code>.\n\n<pre>\n: (atom 123)\n-> T\n: (atom 'a)\n-> T\n: (atom NIL)\n-> T\n: (atom (123))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"aux\"><code>(aux 'sym 'cls ['hook] 'any ..) -> sym</code></a></dt>\n<dd>Returns a database object of class <code>cls</code>, where the value for\n<code>sym</code> corresponds to <code>any</code> and the following arguments.\n<code>sym</code>, <code>cls</code> and <code>hook</code> should specify a\n<code><a href=\"refT.html#tree\">tree</a></code> for <code>cls</code> or one of\nits superclasses, for a relation with auxiliary keys. For multi-key accesses,\n<code>aux</code> is similar to - but faster than - <code>db</code>, because it\ncan use a single tree access. See also <code><a\nhref=\"refD.html#db\">db</a></code>, <code><a\nhref=\"refC.html#collect\">collect</a></code>, <code><a\nhref=\"refF.html#fetch\">fetch</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code>, <code><a\nhref=\"refS.html#step\">step</a></code> and <code><a\nhref=\"refA.html#+Aux\">+Aux</a></code>.\n\n<pre>\n(class +PS +Entity)\n(rel par (+Dep +Joint) (sup) ps (+Part))        # Part\n(rel sup (+Aux +Ref +Link) (par) NIL (+Supp))   # Supplier\n...\n   (aux 'sup '+PS                               # Access PS object\n      (db 'nr '+Supp 1234)\n      (db 'nr '+Part 5678) )\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refB.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 30may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>B</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>B</h1>\n\n<dl>\n\n<dt><a id=\"*Blob\"><code>*Blob</code></a></dt>\n<dd>A global variable holding the pathname of the database blob directory. See\nalso <code><a href=\"refB.html#blob\">blob</a></code>.\n\n<pre>\n: *Blob\n-> \"blob/app/\"\n</pre></dd>\n\n<dt><a id=\"*Bye\"><code>*Bye</code></a></dt>\n<dd>A global variable holding a (possibly empty) <code>prg</code> body, to be\nexecuted just before the termination of the PicoLisp interpreter. See also\n<code><a href=\"refB.html#bye\">bye</a></code>, <code><a\nhref=\"refF.html#finish\">finish</a></code> and <code><a\nhref=\"refT.html#tmp\">tmp</a></code>.\n\n<pre>\n: (push1 '*Bye '(call \"rm\" \"myfile.tmp\"))  # Remove a temporary file\n-> (call 'rm \"myfile.tmp\")\n</pre></dd>\n\n<dt><a id=\"+Bag\"><code>+Bag</code></a></dt>\n<dd>Class for a list of arbitrary relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Objects of that class maintain\na list of heterogeneous relations. Typically used in combination with the\n<code><a href=\"refL.html#+List\">+List</a></code> prefix class, to maintain small\ntwo-dimensional tables within objects. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel pos (+List +Bag)         # Positions\n   ((+Ref +Link) NIL (+Item))    # Item\n   ((+Number) 2)                 # Price\n   ((+Number))                   # Quantity\n   ((+String))                   # Memo text\n   ((+Number) 2) )               # Total amount\n</pre></dd>\n\n<dt><a id=\"+Blob\"><code>+Blob</code></a></dt>\n<dd>Class for blob relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Objects of that class maintain\nblobs, as stubs in database objects pointing to actual files for arbitrary\n(often binary) data. The files themselves reside below the path specified by the\n<code><a href=\"refB.html#*Blob\">*Blob</a></code> variable. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel jpg (+Blob))  # Picture\n</pre></dd>\n\n<dt><a id=\"+Bool\"><code>+Bool</code></a></dt>\n<dd>Class for boolean relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Objects of that class expect\neither <code>T</code> or <code>NIL</code> as value (though, as always, only\nnon-<code>NIL</code> will be physically stored in objects). See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel ok (+Ref +Bool))  # Indexed flag\n</pre></dd>\n\n<dt><a id=\"balance\"><code>(balance 'var 'lst ['flg])</code></a></dt>\n<dd>Builds a balanced binary <code><a href=\"refI.html#idx\">idx</a></code> tree\nin <code>var</code>, from the sorted list in <code>lst</code>. Normally, if\narbitary - or, in the worst case, ordered - data are inserted with\n<code>idx</code>, the tree will not be balanced. But if <code>lst</code> is\nproperly sorted, its contents will be inserted in an optimally balanced way. If\n<code>flg</code> is non-<code>NIL</code>, the index tree will be augmented\ninstead of being overwritten. See also <code><a\nhref=\"ref.html#cmp\">Comparing</a></code> and <code><a\nhref=\"refS.html#sort\">sort</a></code>.\n\n<pre>\n# Normal idx insert\n: (off I)\n-> NIL\n: (for X (1 4 2 5 3 6 7 9 8) (idx 'I X T))\n-> NIL\n: (depth I)\n-> (7 . 4)\n\n# Balanced insert\n: (balance 'I (sort (1 4 2 5 3 6 7 9 8)))\n-> NIL\n: (depth I)\n-> 4\n\n# Augment\n: (balance 'I (sort (10 40 20 50 30 60 70 90 80)) T)\n-> NIL\n: (idx 'I)\n-> (1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90)\n</pre></dd>\n\n<dt><a id=\"basename\"><code>(basename 'any) -> sym</code></a></dt>\n<dd>Returns the filename part of a path name <code>any</code>. See also <code><a\nhref=\"refD.html#dirname\">dirname</a></code> and <code><a\nhref=\"refP.html#path\">path</a></code>.\n\n<pre>\n: (basename \"a/b/c/d\")\n-> \"d\"\n</pre></dd>\n\n<dt><a id=\"be\"><code>(be sym . any) -> sym</code></a></dt>\n<dd>Declares a <a href=\"ref.html#pilog\">Pilog</a> fact or rule for the\n<code>sym</code> argument, by concatenating the <code>any</code> argument to the\n<code>T</code> property of <code>sym</code>. Groups of declarations are\ncollected for a given <code>sym</code>. When <code>sym</code> changes, i.e. when\nit differs from the one in the previous declaration, the current group is\nconsidered to be complete and a new group is started. Later <code>be</code>\ndeclarations for a previously completed symbol will reset its rules, to allow\nrepeated re<code><a href=\"refL.html#load\">load</a></code>ing of source files.\nSee also <code><a href=\"refR.html#*Rule\">*Rule</a></code>, <code><a\nhref=\"refC.html#clause\">clause</a></code>, <code><a\nhref=\"refA.html#asserta\">asserta</a></code>, <code><a\nhref=\"refA.html#assertz\">assertz</a></code>, <code><a\nhref=\"refR.html#retract\">retract</a></code>, <code><a\nhref=\"refR.html#rules\">rules</a></code>, <code><a\nhref=\"refG.html#goal\">goal</a></code> and <code><a\nhref=\"refP.html#prove\">prove</a></code>.\n\n<pre>\n: (be likes (John Mary))\n-> likes\n: (be likes (John @X) (likes @X wine) (likes @X food))\n-> likes\n\n: (get 'likes T)\n-> (((John Mary)) ((John @X) (likes @X wine) (likes @X food)))\n\n: (rules 'likes)\n1 (be likes (John Mary))\n2 (be likes (John @X) (likes @X wine) (likes @X food))\n-> likes\n\n: (? (likes John @X))\n @X=Mary\n-> NIL\n</pre></dd>\n\n<dt><a id=\"beep\"><code>(beep) -> NIL</code></a></dt>\n<dd>Send the bell character to the console. See also <code><a\nhref=\"refS.html#space\">space</a></code>, <code><a\nhref=\"refP.html#prin\">prin</a></code> and <code><a\nhref=\"refC.html#char\">char</a></code>.\n\n<pre>\n: (beep)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"bench\"><code>(bench . prg) -> any</code></a></dt>\n<dd>(Debug mode only) Benchmarks <code>prg</code>, by printing the time it took\nto execute, and returns the result. See also <code><a\nhref=\"refU.html#usec\">usec</a></code>.\n\n<pre>\n: (bench (wait 2000))\n2.003 sec\n-> NIL\n\n: (bench (wait 123456))\n[00:02] 123.557 sec\n-> NIL\n</pre></dd>\n\n<dt><a id=\"bin\"><code>(bin 'num ['num]) -> sym</code></a></dt>\n<dt><code>(bin 'sym) -> num</code></dt>\n<dd>Converts a number <code>num</code> to a binary string, or a binary string\n<code>sym</code> to a number. In the first case, if the second argument is\ngiven, the result is separated by spaces into groups of such many digits. See\nalso <code><a href=\"refO.html#oct\">oct</a></code>, <code><a\nhref=\"refH.html#hex\">hex</a></code>, <code><a\nhref=\"refH.html#hax\">hax</a></code> and <code><a\nhref=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (bin 73)\n-> \"1001001\"\n: (bin \"1001001\")\n-> 73\n: (bin 1234567 4)\n-> \"1 0010 1101 0110 1000 0111\"\n</pre></dd>\n\n<dt><a id=\"bind\"><code>(bind 'sym|lst . prg) -> any</code></a></dt>\n<dd>Binds value(s) to symbol(s). The first argument must evaluate to a symbol,\nor a list of symbols or symbol-value pairs. The values of these symbols are\nsaved (and the symbols bound to the values in the case of pairs),\n<code>prg</code> is executed, then the symbols are restored to their original\nvalues. During execution of <code>prg</code>, the values of the symbols can be\ntemporarily modified. The return value is the result of <code>prg</code>. See\nalso <code><a href=\"refL.html#let\">let</a></code>, <code><a\nhref=\"refJ.html#job\">job</a></code> and <code><a\nhref=\"refU.html#use\">use</a></code>.\n\n<pre>\n: (setq X 123)                               # X is 123\n-> 123\n: (bind 'X (setq X \"Hello\") (println X))  # Set X to \"Hello\", print it\n\"Hello\"\n-> \"Hello\"\n: (bind '((X . 3) (Y . 4)) (println X Y) (* X Y))\n3 4\n-> 12\n: X\n-> 123                                       # X is restored to 123\n</pre></dd>\n\n<dt><a id=\"bit?\"><code>(bit? 'num ..) -> num | NIL</code></a></dt>\n<dd>Returns the first <code>num</code> argument when all bits which are 1 in the\nfirst argument are also 1 in all following arguments, otherwise\n<code>NIL</code>. When one of those arguments evaluates to <code>NIL</code>, it\nis returned immediately. See also <code><a href=\"ref_.html#&\">&</a></code>,\n<code><a href=\"ref_.html#%7C\">|</a></code> and <code><a\nhref=\"refX.html#x%7C\">x|</a></code>.\n\n<pre>\n: (bit? 7 15 255)\n-> 7\n: (bit? 1 3)\n-> 1\n: (bit? 1 2)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"blk\"><code>(blk 'fd 'cnt 'siz ['fd2]) -> lst</code></a></dt>\n<dt><code>(blk 'fd 0) -> (cnt . siz)</code></dt>\n<dd>Reads raw object data from the <code>cnt</code>'th block in the file open on\ndescriptor <code>fd</code>. Returns a cons pair of the value and property list\nof that database object, or <code>NIL</code> for an invalid block. If\n<code>cnt</code> is zero, a cons pair of the total number of blocks in the file\nand the file's block size scale factor is returned. Otherwise, <code>siz</code>\nshould be the block size scale factor. If <code>fd2</code> is given, a read\n(shared) lock is set on that file during the read operation. See also <code><a\nhref=\"refP.html#pool\">pool</a></code>, <code><a\nhref=\"refP.html#pool2\">pool2</a></code>, <code><a\nhref=\"refI.html#id\">id</a></code>, <code><a href=\"refC.html#ctl\">ctl</a></code>\nand <code><a href=\"refQ.html#qsym\">qsym</a></code>.\n\n<pre>\n: (show '{4})\n{4} (+Role)\n   usr ({15} {13} {11})\n   perm (Customer Item Order Report ..)\n   nm \"Accounting\"\n-> {4}\n: (open \"db/app/@\")\n-> 15\n: (blk 15 4 3 15)\n-> ((+Role) (({15} {13} {11}) . usr) ((Customer Item Order Report Delete) . perm) (\"Accounting\" . nm))\n</pre></dd>\n\n<dt><a id=\"blob\"><code>(blob 'obj 'sym) -> sym</code></a></dt>\n<dd>Returns the blob file name for <code>var</code> in <code>obj</code>. See\nalso <code><a href=\"refB.html#*Blob\">*Blob</a></code>, <code><a\nhref=\"refB.html#blob!\">blob!</a></code> and <code><a\nhref=\"refP.html#pack\">pack</a></code>.\n\n<pre>\n: (show (db 'nr '+Item 1))\n{B1} (+Item)\n   jpg\n   pr 29900\n   inv 100\n   sup {C1}\n   nm \"Main Part\"\n   nr 1\n-> {B1}\n: (blob '{B1} 'jpg)\n-> \"blob/app/3/-/1.jpg\"\n</pre></dd>\n\n<dt><a id=\"blob!\"><code>(blob! 'obj 'sym 'file)</code></a></dt>\n<dd>Stores the contents of <code>file</code> in a <code><a\nhref=\"refB.html#blob\">blob</a></code>. See also <code><a\nhref=\"refE.html#entityMesssages\">put!></a></code>.\n\n<pre>\n(blob! *ID 'jpg \"picture.jpg\")\n</pre></dd>\n\n<dt><a id=\"bool\"><code>(bool 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is\nnon-<code>NIL</code>. This function is only needed when <code>T</code> is\nstrictly required for a \"true\" condition (Usually, any non-<code>NIL</code>\nvalue is considered to be \"true\"). See also <code><a\nhref=\"refF.html#flg?\">flg?</a></code>.\n\n<pre>\n: (and 3 4)\n-> 4\n: (bool (and 3 4))\n-> T\n</pre></dd>\n\n<dt><a id=\"bool/3\"><code>bool/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a href=\"ref.html#pilog\">Pilog</a>\npredicate that succeeds if the first argument has the same truth value as the\nresult of applying the <code><a href=\"refG.html#get\">get</a></code> algorithm to\nthe following arguments. Typically used as filter predicate in <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"refB.html#bool\">bool</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (? @OK T           # Find orders where the 'ok' flag is set\n   (db nr +Ord @Ord)\n   (bool @OK @Ord ok) )\n @OK=T @Ord={B7}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"box\"><code>(box 'any) -> sym</code></a></dt>\n<dd>Creates and returns a new anonymous symbol. The initial value is set to the\n<code>any</code> argument. See also <code><a href=\"refN.html#new\">new</a></code>\nand <code><a href=\"refB.html#box?\">box?</a></code>.\n\n<pre>\n: (show (box '(A B C)))\n$134425627 (A B C)\n-> $134425627\n</pre></dd>\n\n<dt><a id=\"box?\"><code>(box? 'any) -> sym | NIL</code></a></dt>\n<dd>Returns the argument <code>any</code> when it is an anonymous symbol,\notherwise <code>NIL</code>. See also <code><a\nhref=\"refB.html#box\">box</a></code>, <code><a\nhref=\"refS.html#str?\">str?</a></code> and <code><a\nhref=\"refE.html#ext?\">ext?</a></code>.\n\n<pre>\n: (box? (new))\n-> $134563468\n: (box? 123)\n-> NIL\n: (box? 'a)\n-> NIL\n: (box? NIL)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"bt\"><code>(bt ['flg]) -> flg</code></a></dt>\n<dd>(Debug mode only) Formatted stack backtrace printing (see <code><a\nhref=\"refT.html#trail\">trail</a></code>) for the current point of program\nexecution. For each bind frame, the function call (reduced with <code><a\nhref=\"refL.html#less\">less</a></code>) is <code><a\nhref=\"refP.html#pretty\">pretty</a></code>-printed, followed by indented\nvariable-value-pairs. If <code>flg</code> is <code>NIL</code>, <code>bt</code>\nthen waits for a key, and terminates when ESC is pressed (like <code><a\nhref=\"refM.html#more\">more</a></code>). See also <code><a\nhref=\"refU.html#up\">up</a></code> and <code><a\nhref=\"refE.html#env\">env</a></code>.\n\n<pre>\n: (de f (A B)\n   (let F 7\n      (g (inc A) (dec B)) ) )\n-> f\n: (de g (C D)\n   (let G 8\n      (/ C D) ) )\n-> g\n\n: (f 2 1)\n!? (/ C D)\nDiv/0\n? (bt)\n(g (inc A) (dec B))\n   C 3\n   D 0\n   G 8\n(f 2 1)\n   A 2\n   B 1\n   F 7\n-> NIL\n?\n</pre></dd>\n\n<dt><a id=\"buf\"><code>(buf sym 'cnt . prg) -> any</code></a></dt>\n<dd>Creates a temporary local memory buffer on the stack, and binds\n<code>sym</code> to the pointer during the execution of <code>prg</code>. The\ncurrent value of <code>sym</code> is saved and restored appropriately. The\nreturn value is the result of <code>prg</code>. See also <code><a\nhref=\"refL.html#let\">let</a></code>, <code><a\nhref=\"refN.html#native\">native</a></code>, <code><a\nhref=\"refS.html#struct\">struct</a></code> and <code><a\nhref=\"ref_.html#%25@\">%@</a></code>.\n\n<pre>\n(buf Buf BUFSIZ\n   (%@ \"read\" 'I Fd Buf BUFSIZ)\n   (%@ \"write\" 'I Fd2 Buf BUFSIZ) )\n</pre>\n\nThis is functionally equivalent to (but more efficient than)\n\n<pre>\n(let Buf (%@ \"malloc\" 'P BUFSIZ)\n   (%@ \"read\" 'I Fd Buf BUFSIZ)\n   (%@ \"write\" 'I Fd2 Buf BUFSIZ)\n   (%@ \"free\" NIL Buf) )\n</pre></dd>\n\n<dt><a id=\"by\"><code>(by 'fun1 'fun2 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun1</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun1</code>. Each result of <code>fun1</code> is CONSed with its\ncorresponding argument from the original <code>lst</code>, and collected into a\nlist which is passed to <code>fun2</code>. For the list returned from\n<code>fun2</code>, the CAR elements returned by <code>fun1</code> are\n(destructively) removed from each element (\"decorate-apply-undecorate\" idiom).\n\n<pre>\n: (let (A 1 B 2 C 3) (by val sort '(C A B)))\n-> (A B C)\n: (by '((N) (bit? 1 N)) group (3 11 6 2 9 5 4 10 12 7 8 1))\n-> ((3 11 9 5 7 1) (6 2 4 10 12 8))\n</pre></dd>\n\n<dt><a id=\"bye\"><code>(bye ['cnt])</code></a></dt>\n<dd>Executes all pending <code><a href=\"refF.html#finally\">finally</a></code>\nexpressions, closes all open files, executes the <code>VAL</code> of the global\nvariable <code><a href=\"refB.html#*Bye\">*Bye</a></code> (should be a\n<code>prg</code>), flushes standard output, and then exits the PicoLisp\ninterpreter. The process return value is <code>cnt</code>, or 0 if the argument\nis missing or <code>NIL</code>.\n\n<pre>\n: (setq *Bye '((println 'OK) (println 'bye)))\n-> ((println 'OK) (println 'bye))\n: (bye)\nOK\nbye\n$\n</pre></dd>\n\n<dt><a id=\"byte\"><code>(byte 'num ['cnt]) -> cnt</code></a></dt>\n<dd>Returns - if the second argument is not given - a byte value (0 .. 255) from\nthe memory location pointed to by <code>num</code>. Otherwise <code>cnt</code>\nis stored in the memory location and returned. See also <code><a\nhref=\"refA.html#adr\">adr</a></code>.\n\n<pre>\n: (hex (byte (>> -4 (adr (1)))))\n-> \"12\"                             # Short number '1'\n: (hex (byte (>> -4 (adr (2)))))\n-> \"22\"                             # Short number '2'\n\n: (setq P (native \"@\" \"malloc\" 'N 8))  # Set pointer to a new buffer\n-> 25084048\n: (byte P (char \"A\"))                  # Store byte 'A'\n-> 65\n: (byte (inc P) (char \"B\"))            # Store byte 'B'\n-> 66\n: (byte (+ P 2) (char \"C\"))            # Store byte 'C'\n-> 67\n: (byte (+ P 3) 0)                     # Store null byte\n-> 0\n: (native \"@\" \"strdup\" 'S P)           # Read bytes as string\n-> \"ABC\"\n: (native \"@\" \"free\" 'N P)             # Free buffer\n-> 0\n</pre></dd>\n\n<dt><a id=\"bytes\"><code>(bytes 'any) -> cnt</code></a></dt>\n<dd>Returns the number of bytes <code>any</code> would occupy in encoded binary\nformat (as generated by <code><a href=\"refP.html#pr\">pr</a></code>). See also\n<code><a href=\"refS.html#size\">size</a></code> and <code><a\nhref=\"refL.html#length\">length</a></code>.\n\n<pre>\n: (bytes \"abc\")\n-> 4\n: (bytes \"äbc\")\n-> 5\n: (bytes 127)\n-> 2\n: (bytes 128)\n-> 3\n: (bytes (101 (102) 103))\n-> 10\n: (bytes (101 102 103 .))\n-> 9\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refC.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 02jan26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>C</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>C</h1>\n\n<dl>\n\n<dt><a id=\"*CPU\"><code>*CPU</code></a></dt>\n<dd>A global variable holding the target CPU (architecture). Typical values are\n<code>\"aarch64\"</code>, <code>\"x86-64\"</code> etc. See also <code><a\nhref=\"refO.html#*OS\">*OS</a></code> and <code><a\nhref=\"refV.html#version\">version</a></code>.\n\n<pre>\n: *CPU\n-> \"x86-64\"\n</pre></dd>\n\n<dt><a id=\"*Class\"><code>*Class</code></a></dt>\n<dd>A global variable holding the current class. See also <a\nhref=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refE.html#extend\">extend</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code> and <code><a\nhref=\"refV.html#var\">var</a></code> and <code><a\nhref=\"refR.html#rel\">rel</a></code>.\n\n<pre>\n: (class +Test)\n-> +Test\n: *Class\n-> +Test\n</pre></dd>\n\n<dt><a id=\"cache\"><code>(cache 'var 'any [. prg]) -> any</code></a></dt>\n<dd>Speeds up some calculations by maintaining a tree of previously calculated\nresults in an <code><a href=\"refI.html#idx\">idx</a></code> structure\n(\"memoization\") in <code>var</code>. A <code><a\nhref=\"refH.html#hash\">hash</a></code> of the argument <code>any</code> is used\ninternally to build the index key. If no <code>prg</code> is given, the internal\n<code>var</code> holding a previously stored value is returned (note that\n<code>var</code> may have a name which is not human-readable).\n\n<pre>\n: (de fibonacci (N)\n   (cache '(NIL) N\n      (if (>= 2 N)\n         1\n         (+ (fibonacci (dec N)) (fibonacci (- N 2))) ) ) )\n-> fibonacci\n\n: (fibonacci 22)\n-> 17711\n\n: (fibonacci 10000)\n-> 3364476487643178326662161200510754331030 ...  # (2090 digits)\n</pre>\n\n<pre>\n: (off C)\n-> NIL\n: (cache 'C 1234 (* 3 4))\n-> 12\n: (inc (cache 'C 1234))\n-> 13\n: (val (cache 'C 1234))\n-> 13\n</pre></dd>\n\n<dt><a id=\"call\"><code>(call 'any ..) -> flg</code></a></dt>\n<dd>Calls an external system command. The <code>any</code> arguments specify the\ncommand and its arguments. Returns <code>T</code> if the command was executed\nsuccessfully. The (system dependent) exit status code of the child process is\nstored in the global variable <code><a href=\"ref_.html#@@\">@@</a></code>. See\nalso <code><a href=\"refE.html#exec\">exec</a></code>.\n\n<pre>\n: (when (call 'test \"-r\" \"file.l\")  # Test if file exists and is readable\n   (load \"file.l\")  # Load it\n   (call 'rm \"file.l\") )  # Remove it\n\n: (cons (call \"sh\" \"-c\" \"kill -SEGV $$\") @@ (hex @@))\n-> (NIL 11 . \"B\")\n</pre></dd>\n\n<dt><a id=\"call/1\"><code>call/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the argument\nterm can be proven.\n\n<pre>\n: (be mapcar (@ NIL NIL))\n-> mapcar\n: (be mapcar (@P (@X . @L) (@Y . @M))\n   (call @P @X @Y)                        # Call the given predicate\n   (mapcar @P @L @M) )\n-> mapcar\n: (? (mapcar permute ((a b c) (d e f)) @X))\n @X=((a b c) (d e f))\n @X=((a b c) (d f e))\n @X=((a b c) (e d f))\n ...\n @X=((a c b) (d e f))\n @X=((a c b) (d f e))\n @X=((a c b) (e d f))\n ...\n</pre></dd>\n\n<dt><a id=\"can\"><code>(can 'msg) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all classes that accept the message\n<code>msg</code>. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refH.html#has\">has</a></code>, <code><a\nhref=\"refD.html#dep\">dep</a></code>, <code><a\nhref=\"refW.html#what\">what</a></code> and <code><a\nhref=\"refW.html#who\">who</a></code>.\n\n<pre>\n: (can 'zap>)\n-> ((zap> . +relation) (zap> . +Blob) (zap> . +Entity))\n: (more @ pp)\n(dm (zap> . +relation) (Obj Val))\n\n(dm (zap> . +Blob) (Obj Val)\n   (and\n      Val\n      (call 'rm \"-f\" (blob Obj (: var))) ) )\n\n(dm (zap> . +Entity) NIL\n   (for X (getl This)\n      (let V (or (atom X) (pop 'X))\n         (and (meta This X) (zap> @ This V)) ) ) )\n\n-> NIL\n</pre></dd>\n\n<dt><a id=\"car\"><code>(car 'var) -> any</code></a></dt>\n<dd>List access: Returns the value of <code>var</code> if it is a symbol, or the\nfirst element if it is a list. See also <code><a\nhref=\"refC.html#cdr\">cdr</a></code> and <code><a\nhref=\"refC.html#cXr\">c..r</a></code>.\n\n<pre>\n: (car (1 2 3 4 5 6))\n-> 1\n</pre></dd>\n\n<dt>\n<a id=\"caar\"></a>\n<a id=\"cadr\"></a>\n<a id=\"cdar\"></a>\n<a id=\"cddr\"></a>\n<a id=\"caaar\"></a>\n<a id=\"caadr\"></a>\n<a id=\"cadar\"></a>\n<a id=\"caddr\"></a>\n<a id=\"cdaar\"></a>\n<a id=\"cdadr\"></a>\n<a id=\"cddar\"></a>\n<a id=\"cdddr\"></a>\n<a id=\"caaaar\"></a>\n<a id=\"caaadr\"></a>\n<a id=\"caadar\"></a>\n<a id=\"caaddr\"></a>\n<a id=\"cadaar\"></a>\n<a id=\"cadadr\"></a>\n<a id=\"caddar\"></a>\n<a id=\"cadddr\"></a>\n<a id=\"cdaaar\"></a>\n<a id=\"cdaadr\"></a>\n<a id=\"cdadar\"></a>\n<a id=\"cdaddr\"></a>\n<a id=\"cddaar\"></a>\n<a id=\"cddadr\"></a>\n<a id=\"cdddar\"></a>\n<a id=\"cddddr\"></a>\n<a id=\"cXr\"><code>(c[ad]*ar 'var) -> any</code></a></dt>\n<dt><code>(c[ad]*dr 'lst) -> any</code></dt>\n<dd>List access shortcuts. Combinations of the <code><a\nhref=\"refC.html#car\">car</a></code> and <code><a\nhref=\"refC.html#cdr\">cdr</a></code> functions, with up to four letters 'a' and\n'd'.\n\n<pre>\n: (cdar '((1 . 2) . 3))\n-> 2\n</pre></dd>\n\n<dt><a id=\"case\"><code>(case 'any (any1 . prg1) (any2 . prg2) ..) -> any</code></a></dt>\n<dd>Multi-way branch: <code>any</code> is evaluated and compared to the CAR\nelements <code>anyN</code> of each clause. If one of them is a list,\n<code>any</code> is in turn compared to all elements of that list.\n<code>T</code> is a catch-all for any value. If a comparison succeeds,\n<code>prgN</code> is executed, and the result returned. Otherwise\n<code>NIL</code> is returned. See also <code><a\nhref=\"refC.html#casq\">casq</a></code> and <code><a\nhref=\"refS.html#state\">state</a></code> .\n\n<pre>\n: (case (char 66) (\"A\" (+ 1 2 3)) ((\"B\" \"C\") \"Bambi\") (\"D\" (* 1 2 3)))\n-> \"Bambi\"\n: (case 'b (a 1) (\"b\" 2) (b 3) (c 4))\n-> 2\n</pre></dd>\n\n<dt><a id=\"casq\"><code>(casq 'any (any1 . prg1) (any2 . prg2) ..) -> any</code></a></dt>\n<dd>Multi-way branch: <code>any</code> is evaluated and compared to the CAR\nelements <code>anyN</code> of each clause. <code><a\nhref=\"ref_.html#==\">==</a></code> is used for comparison (pointer equality). If\none of them is a list, <code>any</code> is in turn compared to all elements of\nthat list. <code>T</code> is a catch-all for any value. If a comparison\nsucceeds, <code>prgN</code> is executed, and the result returned. Otherwise\n<code>NIL</code> is returned. See also <code><a\nhref=\"refC.html#case\">case</a></code> and <code><a\nhref=\"refS.html#state\">state</a></code>.\n\n<pre>\n: (casq 'b (a 1) (\"b\" 2) (b 3) (c 4))\n-> 3\n: (casq 'b (a 1) (\"b\" 2) ((a b c) 3) (c 4))\n-> 3\n</pre></dd>\n\n<dt><a id=\"catch\"><code>(catch 'any . prg) -> any</code></a></dt>\n<dd>Sets up the environment for a non-local jump which may be caused by <code><a\nhref=\"refT.html#throw\">throw</a></code> or by a runtime error. If\n<code>any</code> is an atom, it is used by <code>throw</code> as a jump label\n(with <code>T</code> being a catch-all for any label), and a <code>throw</code>\ncalled during the execution of <code>prg</code> will immediately return the\nthrown value. Otherwise, <code>any</code> should be a list of strings, to catch\nany error whose message contains one of these strings, and\n<code>catch</code> will immediately return the matching string. If\nneither <code>throw</code> nor an error occurred, the result of\n<code>prg</code> is returned. The global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code> is set to <code>T</code> if a\n<code>throw</code> or error occurred, otherwise <code>NIL</code>. See\nalso <code><a href=\"refF.html#finally\">finally</a></code>, <code><a\nhref=\"refQ.html#quit\">quit</a></code>, <a\nhref=\"refI.html#if@@\">if@@</a></code> and <code><a\nhref=\"ref.html#errors\">Error Handling</a></code>.\n\n<pre>\n: (catch 'OK (println 1) (throw 'OK 999) (println 2))\n1\n-> 999\n: (catch '(\"No such file\") (in \"doesntExist\" (foo)))\n-> \"No such file\"\n</pre>\n\n<p>Pattern for catching and logging errors:\n\n<pre>\n(if@@\n   (catch '(NIL)\n      (...) )\n   (nil (msg *Msg))  # If an error was thrown, log it and return NIL\n   @ ) ) )  # else return the value returned from catch\n</pre></dd>\n\n<dt><a id=\"cd\"><code>(cd 'any) -> sym</code></a></dt>\n<dd>Changes the current directory to <code>any</code>. The old directory is\nreturned on success, otherwise <code>NIL</code>. See also <code><a\nhref=\"refC.html#chdir\">chdir</a></code>, <code><a\nhref=\"refD.html#dir\">dir</a></code> and <code><a\nhref=\"refP.html#pwd\">pwd</a></code>.\n\n<pre>\n: (when (cd \"lib\")\n   (println (length (dir)))\n   (cd @) )\n99\n</pre></dd>\n\n<dt><a id=\"cdr\"><code>(cdr 'lst) -> any</code></a></dt>\n<dd>List access: Returns all but the first element of <code>lst</code>. See also\n<code><a href=\"refC.html#car\">car</a></code> and <code><a\nhref=\"refC.html#cXr\">c..r</a></code>.\n\n<pre>\n: (cdr (1 2 3 4 5 6))\n-> (2 3 4 5 6)\n</pre></dd>\n\n<dt><a id=\"center\"><code>(center 'cnt|lst 'any ..) -> sym</code></a></dt>\n<dd>Returns a transient symbol with all <code>any</code> arguments <code><a\nhref=\"refP.html#pack\">pack</a></code>ed in a centered format. Trailing blanks\nare omitted. See also <code><a href=\"refA.html#align\">align</a></code>, <code><a\nhref=\"refT.html#tab\">tab</a></code> and <code><a\nhref=\"refW.html#wrap\">wrap</a></code>.\n\n<pre>\n: (center 4 12)\n-> \" 12\"\n: (center 4 \"a\")\n-> \" a\"\n: (center 7 \"a\")\n-> \"   a\"\n: (center (3 3 3) \"a\" \"b\" \"c\")\n-> \" a  b  c\"\n</pre></dd>\n\n<dt><a id=\"chain\"><code>(chain 'any ..) -> any</code></a></dt>\n<dd>Concatenates (destructively) one or several new list elements\n<code>any</code> to the end of the list in the current <code><a\nhref=\"refM.html#make\">make</a></code> environment. This operation is efficient\nalso for long lists, because a pointer to the last element of the result list is\nmaintained. <code>chain</code> returns the last linked argument. See also\n<code><a href=\"refL.html#link\">link</a></code>, <code><a\nhref=\"refY.html#yoke\">yoke</a></code> and <code><a\nhref=\"refM.html#made\">made</a></code>.\n\n<pre>\n: (make (chain (list 1 2 3) NIL (cons 4)) (chain (list 5 6)))\n-> (1 2 3 4 5 6)\n</pre></dd>\n\n<dt><a id=\"char\"><code>(char) -> sym</code></a></dt>\n<dt><code>(char 'cnt) -> sym</code></dt>\n<dt><code>(char T) -> sym</code></dt>\n<dt><code>(char 'sym) -> cnt</code></dt>\n<dd>When called without arguments, the next character from the current input\nstream is returned as a single-character transient symbol, or <code>NIL</code>\nupon end of file. When called with a number <code>cnt</code>, a character with\nthe corresponding unicode value is returned. As a special case, <code>T</code>\nis accepted to produce a byte value greater than any first byte in a UTF-8\ncharacter (used as a top value in comparisons). Otherwise, when called with a\nsymbol <code>sym</code>, the numeric unicode value of the first character of the\nname of that symbol is returned. See also <code><a\nhref=\"refP.html#peek\">peek</a></code>, <code><a\nhref=\"refS.html#skip\">skip</a></code>, <code><a\nhref=\"refK.html#key\">key</a></code>, <code><a\nhref=\"refL.html#line\">line</a></code>, <code><a\nhref=\"refT.html#till\">till</a></code> and <code><a\nhref=\"refE.html#eof\">eof</a></code>.\n\n<pre>\n: (char)                   # Read character from console\nA                          # (typed 'A' and a space/return)\n-> \"A\"\n: (char 100)               # Convert unicode to symbol\n-> \"d\"\n: (char \"d\")               # Convert symbol to unicode\n-> 100\n\n: (char T)                 # Special case\n-> # (not printable)\n\n: (char 0)\n-> NIL\n: (char NIL)\n-> 0\n</pre></dd>\n\n<dt><a id=\"chdir\"><code>(chdir 'any . prg) -> any</code></a></dt>\n<dd>Changes the current directory to <code>any</code> with <code><a\nhref=\"refC.html#cd\">cd</a></code> during the execution of <code>prg</code>. Then\nthe previous directory will be restored and the result of <code>prg</code>\nreturned. See also <code><a href=\"refD.html#dir\">dir</a></code> and <code><a\nhref=\"refP.html#pwd\">pwd</a></code>.\n\n<pre>\n: (pwd)\n-> \"/usr/abu/pico\"\n: (chdir \"src\" (pwd))\n-> \"/usr/abu/pico/src\"\n: (pwd)\n-> \"/usr/abu/pico\"\n</pre></dd>\n\n<dt><a id=\"chkTree\"><code>(chkTree 'sym ['fun]) -> num</code></a></dt>\n<dd>Checks a database tree node (and recursively all sub-nodes) for consistency.\nReturns the total number of nodes checked. Optionally, <code>fun</code> is\ncalled with the key and value of each node, and should return <code>NIL</code>\nfor failure. See also <code><a href=\"refT.html#tree\">tree</a></code> and\n<code><a href=\"refR.html#root\">root</a></code>.\n\n<pre>\n: (show *DB '+Item)\n{40} 6\n   nr (6 . {H1})\n   pr (6 . {H3})\n   sup (6 . {H2})\n   nm (67 . {I3})\n-> {40}\n: (chkTree '{H1})   # Check that node\n-> 6\n</pre></dd>\n\n<dt><a id=\"chop\"><code>(chop 'any) -> lst</code></a></dt>\n<dd>Returns <code>any</code> as a list of single-character strings. If\n<code>any</code> is <code>NIL</code> or a symbol with no name, <code>NIL</code>\nis returned. A list argument is returned unchanged.\n\n<pre>\n: (chop 'car)\n-> (\"c\" \"a\" \"r\")\n: (chop \"Hello\")\n-> (\"H\" \"e\" \"l\" \"l\" \"o\")\n</pre></dd>\n\n<dt><a id=\"circ\"><code>(circ 'any ..) -> lst</code></a></dt>\n<dd>Produces a circular list of all <code>any</code> arguments by <code><a\nhref=\"refC.html#cons\">cons</a></code>ing them to a list and then connecting the\nCDR of the last cell to the first cell. See also <code><a\nhref=\"refC.html#circ?\">circ?</a></code> and <code><a\nhref=\"refL.html#list\">list</a></code>.\n\n<pre>\n: (circ 'a 'b 'c)\n-> (a b c .)\n</pre></dd>\n\n<dt><a id=\"circ?\"><code>(circ? 'any) -> any</code></a></dt>\n<dd>Returns the circular list tail if <code>any</code> is a circular list, else\n<code>NIL</code>. See also <code><a href=\"refC.html#circ\">circ</a></code>.\n\n<pre>\n: (circ? 'a)\n-> NIL\n: (circ? (1 2 3))\n-> NIL\n: (circ? (1 . (2 3 .)))\n-> (2 3 .)\n</pre></dd>\n\n<dt><a id=\"class\"><code>(class sym . typ) -> obj</code></a></dt>\n<dd>Defines <code>sym</code> as a class with the superclass(es)\n<code>typ</code>. As a side effect, the global variable <code><a\nhref=\"refC.html#*Class\">*Class</a></code> is set to <code>obj</code>. See also\n<code><a href=\"refE.html#extend\">extend</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code>, <code><a href=\"refV.html#var\">var</a></code>,\n<code><a href=\"refR.html#rel\">rel</a></code>, <code><a\nhref=\"refT.html#type\">type</a></code>, <code><a\nhref=\"refI.html#isa\">isa</a></code> and <code><a\nhref=\"refO.html#object\">object</a></code>.\n\n<pre>\n: (class +A +B +C +D)\n-> +A\n: +A\n-> (+B +C +D)\n: (dm foo> (X) (bar X))\n-> foo>\n: +A\n-> ((foo> (X) (bar X)) +B +C +D)\n</pre></dd>\n\n<dt><a id=\"clause\"><code>(clause '(sym . any)) -> sym</code></a></dt>\n<dd>Declares a <a href=\"ref.html#pilog\">Pilog</a> fact or rule for the\n<code>sym</code> argument, by concatenating the <code>any</code> argument to the\n<code>T</code> property of <code>sym</code>. See also <code><a\nhref=\"refR.html#*Rule\">*Rule</a></code> and <code><a\nhref=\"refB.html#be\">be</a></code>.\n\n<pre>\n: (clause '(likes (John Mary)))\n-> likes\n: (clause '(likes (John @X) (likes @X wine) (likes @X food)))\n-> likes\n: (? (likes @X @Y))\n @X=John @Y=Mary\n-> NIL\n</pre></dd>\n\n<dt><a id=\"clause/2\"><code>clause/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument is a predicate which has the second argument defined as a clause.\n\n<pre>\n: (? (clause append ((NIL @X @X))))\n-> T\n\n: (? (clause append @C))\n @C=((NIL @X @X))\n @C=(((@A . @X) @Y (@A . @Z)) (append @X @Y @Z))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"clip\"><code>(clip 'lst) -> lst</code></a></dt>\n<dd>Returns a copy of <code>lst</code> with all whitespace characters or\n<code>NIL</code> elements removed from both sides. See also <code><a\nhref=\"refT.html#trim\">trim</a></code>.\n\n<pre>\n: (clip '(NIL 1 NIL 2 NIL))\n-> (1 NIL 2)\n: (clip '(\" \" a \" \" b \" \"))\n-> (a \" \" b)\n</pre></dd>\n\n<dt><a id=\"close\"><code>(close 'cnt) -> cnt | NIL</code></a></dt>\n<dd>Closes a file descriptor <code>cnt</code>, and returns it when successful.\nShould not be called inside an <code><a href=\"refO.html#out\">out</a></code> body\nfor that descriptor. See also <code><a href=\"refO.html#open\">open</a></code>,\n<code><a href=\"refP.html#poll\">poll</a></code>,\n<code><a href=\"refL.html#listen\">listen</a></code> and <code><a\nhref=\"refC.html#connect\">connect</a></code>.\n\n<pre>\n: (close 2)                            # Close standard error\n-> 2\n</pre></dd>\n\n<dt><a id=\"cmd\"><code>(cmd ['any]) -> sym</code></a></dt>\n<dd>When called without an argument, the name of the command that invoked the\npicolisp interpreter is returned. Otherwise, the command name is set to\n<code>any</code>. Setting the name may not work on some operating systems. Note\nthat the new name must not be longer than the original one. See also <code><a\nhref=\"refA.html#argv\">argv</a></code>, <code><a\nhref=\"refF.html#file\">file</a></code> and <a\nhref=\"ref.html#invoc\">Invocation</a>.\n\n<pre>\n$ pil +\n: (cmd)\n-> \"/usr/bin/picolisp\"\n: (cmd \"!/bin/picolust\")\n-> \"!/bin/picolust\"\n: (cmd)\n-> \"!/bin/picolust\"\n</pre></dd>\n\n<dt><a id=\"cnt\"><code>(cnt 'fun 'lst ..) -> cnt</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns the count of non-<code>NIL</code> values returned\nfrom <code>fun</code>.\n\n<pre>\n: (cnt cdr '((1 . T) (2) (3 4) (5)))\n-> 2\n</pre></dd>\n\n<dt><a id=\"co\"><code>(co ['any [. prg]]) -> any</code></a></dt>\n<dd>Starts, resumes or stops a <a href=\"ref.html#coroutines\">coroutine</a> with\nthe tag given by <code>any</code>. If called without arguments, the tag of the\ncurrently running coroutine is returned. If <code>prg</code> is not given, a\ncoroutine with that tag will be stopped. Otherwise, if a coroutine running with\nthat tag is found (pointer equality is used for comparison), its execution is\nresumed. Else a new coroutine with that tag is initialized and started.\n<code>prg</code> will be executed until it either terminates normally, or until\n<code><a href=\"refY.html#yield\">yield</a></code> is called. In the latter case\n<code>co</code> returns, or transfers control to some other, already running,\ncoroutine. A coroutine cannot call or stop itself directly or indirectly. See\nalso <code><a href=\"refS.html#stack\">stack</a></code>, <code><a\nhref=\"refC.html#catch\">catch</a></code> and <code><a\nhref=\"refT.html#throw\">throw</a></code>.\n\n<pre>\n: (de pythag (N)   # A generator function\n   (if (=T N)\n      (co 'rt)  # Stop\n      (co 'rt\n         (for X N\n            (for Y (range X N)\n               (for Z (range Y N)\n                  (when (= (+ (* X X) (* Y Y)) (* Z Z))\n                     (yield (list X Y Z)) ) ) ) ) ) ) )\n\n: (pythag 20)\n-> (3 4 5)\n: (pythag 20)\n-> (5 12 13)\n: (pythag 20)\n-> (6 8 10)\n\n</pre></dd>\n\n<dt><a id=\"collect\"><code>(collect 'sym 'cls ['hook] ['any|beg ['end [sym|cnt ..]]])</code></a></dt>\n<dd>Returns a list of all database objects of class <code>cls</code>, where the\nvalues for the <code>sym</code> arguments correspond to the <code>any</code>\narguments, or where the values for the <code>sym</code> arguments are in the\nrange <code>beg</code> .. <code>end</code>. <code>sym</code>, <code>cls</code>\nand <code>hook</code> should specify a <code><a\nhref=\"refT.html#tree\">tree</a></code> for <code>cls</code> or one of its\nsuperclasses. If additional <code>sym|cnt</code> arguments are given, the final\nvalues for the result list are obtained by applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm. See also <code><a\nhref=\"refD.html#db\">db</a></code>, <code><a href=\"refA.html#aux\">aux</a></code>,\n<code><a href=\"refF.html#fetch\">fetch</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code>, <code><a\nhref=\"refS.html#step\">step</a></code> and and <code><a\nhref=\"refS.html#search\">search</a></code>.\n\n<pre>\n: (collect 'nr '+Item)\n-> ({B1} {B2} {B3} {B4} {B5} {B6} {B8})\n: (collect 'nr '+Item 3 6 'nr)\n-> (3 4 5 6)\n: (collect 'nr '+Item 3 6 'nm)\n-> (\"Auxiliary Construction\" \"Enhancement Additive\" \"Metal Fittings\" \"Gadget Appliance\")\n: (collect 'nm '+Item \"Main Part\")\n-> ({B1})\n</pre></dd>\n\n<dt><a id=\"commit\"><code>(commit ['any] [exe1] [exe2]) -> T</code></a></dt>\n<dd>Closes a transaction, by writing all new or modified external symbols to,\nand removing all deleted external symbols from the database. When\n<code>any</code> is given, it is implicitly sent (with all modified objects) via\nthe <code><a href=\"refT.html#tell\">tell</a></code> mechanism to all family\nmembers. If <code>exe1</code> or <code>exe2</code> are given, they are executed\nas pre- or post-expressions while the database is <code><a\nhref=\"refL.html#lock\">lock</a></code>ed and <code><a\nhref=\"refP.html#protect\">protect</a></code>ed. See also <code><a\nhref=\"refR.html#rollback\">rollback</a></code>.\n\n<pre>\n: (pool \"db\")\n-> T\n: (put '{1} 'str \"Hello\")\n-> \"Hello\"\n: (commit)\n-> T\n</pre></dd>\n\n<dt><a id=\"complete\"><code>(complete 'any) -> T | lst</code></a></dt>\n<dd>Global variable holding a (possibly empty) function, which will be\ncalled when TAB is pressed in <code>readline(3)</code> to complete the\ntext before the current input point. If it is <code>NIL</code>,\nreadline's default filename generator function is used. Otherwise, it\nshould be a function which returns the next match (if <code>any</code>\nis <code>NIL</code>), some default value (if <code>any</code> is\n<code>T</code>, meaning there is no partial word to be completed), or\ninitializes the generator with the given text and returns the first\nresult.\n\n<pre>\n: (pp 'complete)\n(de complete (S)\n   (when S\n      (setq \"*Cmpl\"\n         (if (=T S) (list \"   \") (flip (all* S))) ) )\n   (pop '\"*Cmpl\") )\n-> complete\n</pre></dd>\n\n<dt><a id=\"con\"><code>(con 'lst 'any) -> any</code></a></dt>\n<dd>Connects <code>any</code> to the first cell of <code>lst</code>, by\n(destructively) storing <code>any</code> in the CDR of <code>lst</code>. See\nalso <code><a href=\"refS.html#set\">set</a></code> and <code><a\nhref=\"refC.html#conc\">conc</a></code>.\n\n<pre>\n: (setq C (1 . a))\n-> (1 . a)\n: (con C '(b c d))\n-> (b c d)\n: C\n-> (1 b c d)\n</pre></dd>\n\n<dt><a id=\"conc\"><code>(conc 'lst ..) -> lst</code></a></dt>\n<dd>Concatenates all argument lists (destructively). See also <code><a\nhref=\"refA.html#append\">append</a></code> and <code><a\nhref=\"refC.html#con\">con</a></code>.\n\n<pre>\n: (setq  A (1 2 3)  B '(a b c))\n-> (a b c)\n: (conc A B)                        # Concatenate lists in 'A' and 'B'\n-> (1 2 3 a b c)\n: A\n-> (1 2 3 a b c)                    # Side effect: List in 'A' is modified!\n</pre></dd>\n\n<dt><a id=\"cond\"><code>(cond ('any1 . prg1) ('any2 . prg2) ..) -> any</code></a></dt>\n<dd>Multi-way conditional: If any of the <code>anyN</code> conditions evaluates\nto non-<code>NIL</code>, <code>prgN</code> is executed and the result returned.\nOtherwise (all conditions evaluate to <code>NIL</code>), <code>NIL</code> is\nreturned. See also <code><a href=\"refN.html#nond\">nond</a></code>, <code><a\nhref=\"refI.html#if\">if</a></code>, <code><a href=\"refA.html#and\">and</a></code>,\n<code><a href=\"refI.html#if2\">if2</a></code> and <code><a\nhref=\"refW.html#when\">when</a></code>.\n\n<pre>\n: (cond\n   ((= 3 4) (println 1))\n   ((= 3 3) (println 2))\n   (T (println 3)) )\n2\n-> 2\n</pre></dd>\n\n<dt><a id=\"connect\"><code>(connect 'any1 'any2) -> cnt | NIL</code></a></dt>\n<dd>Tries to establish a TCP/IP connection to a server listening at host\n<code>any1</code>, port <code>any2</code>. <code>any1</code> may be either a\nhostname or a standard internet address in numbers-and-dots/colons notation\n(IPv4/IPv6). <code>any2</code> may be either a port number or a service name.\nReturns a socket descriptor <code>cnt</code>, or <code>NIL</code> if the\nconnection cannot be established. See also <code><a\nhref=\"refL.html#listen\">listen</a></code> and <code><a\nhref=\"refU.html#udp\">udp</a></code>.\n\n<pre>\n: (connect \"localhost\" 4444)\n-> 3\n: (connect \"some.host.org\" \"http\")\n-> 4\n</pre></dd>\n\n<dt><a id=\"cons\"><code>(cons 'any ['any ..]) -> lst</code></a></dt>\n<dd>Constructs a new list cell with the first argument in the CAR and the second\nargument in the CDR. If more than two arguments are given, a corresponding chain\nof cells is built. <code>(cons 'a 'b 'c 'd)</code> is equivalent to <code>(cons\n'a (cons 'b (cons 'c 'd)))</code>. See also <code><a\nhref=\"refL.html#list\">list</a></code>.\n\n<pre>\n: (cons 1 2)\n-> (1 . 2)\n: (cons 'a '(b c d))\n-> (a b c d)\n: (cons '(a b) '(c d))\n-> ((a b) c d)\n: (cons 'a 'b 'c 'd)\n-> (a b c . d)\n</pre></dd>\n\n<dt><a id=\"copy\"><code>(copy 'any) -> any</code></a></dt>\n<dd>Copies the argument <code>any</code>. For lists, the top level cells are\ncopied, while atoms are returned unchanged.\n\n<pre>\n: (=T (copy T))               # Atoms are not copied\n-> T\n: (setq L (1 2 3))\n-> (1 2 3)\n: (== L L)\n-> T\n: (== L (copy L))             # The copy is not identical to the original\n-> NIL\n: (= L (copy L))              # But the copy is equal to the original\n-> T\n</pre></dd>\n\n<dt><a id=\"count\"><code>(count 'tree) -> num</code></a></dt>\n<dd>Returns the number of nodes in a database tree. See also <code><a\nhref=\"refT.html#tree\">tree</a></code> and <code><a\nhref=\"refR.html#root\">root</a></code>.\n\n<pre>\n: (count (tree 'nr '+Item))\n-> 7\n</pre></dd>\n\n<dt><a id=\"create\"><code>(create 'typ 'sym 'lst . prg)</code></a></dt>\n<dd>Creates or updates <a href=\"ref.html#dbase\">database</a> objects of the type\n<code>typ</code> with the properties in <code>sym</code> and <code>lst</code>.\nIt handles large amounts of data, by sorting and traversing each database index\nseparately. <code>prg</code> is executed repeatedly - and should return a list\nof values for the properties in <code>sym</code> and <code>lst</code> - until it\nreturns <code>NIL</code>. If the <code><a href=\"refF.html#fin\">fin</a></code> of\nthe list is <code>NIL</code>, a new object of type <code>typ</code> is created,\notherwise it should be an existing object to be updated. If <code>sym</code> is\nnon-<code>NIL</code>, the first column of the input data is assigned to the\n<code>sym</code> property and should already be sorted. The rest of the input\ndata is assigned to the properties in <code>lst</code>. <code>create</code>\nallocates heap memory, and builds temporary files which increase disk\nrequirements while it runs. No explicit <code><a\nhref=\"refL.html#lock\">lock</a></code> should be established on the database, and\nno other processes should operate on this database while it runs. When creating\nmore than a few hundred million index entries per file, it might be necessary to\nincrease the number of open files with e.g. <code>ulimit -n 10000</code>. See\nalso <code><a href=\"refD.html#dbs\">dbs</a></code>, <code><a\nhref=\"refN.html#new\">new</a></code>, <code><a\nhref=\"refC.html#commit\">commit</a></code> and <code><a\nhref=\"refP.html#prune\">prune</a></code>.\n\n<pre>\n# Minimal E/R model\n(class +Cls +Entity)          # Class\n(rel key (+Key +Number))      # with a unique numeric key,\n(rel num (+Ref +Number))      # an indexed number,\n(rel str (+Ref +String))      # and an indexed string\n\n(dbs\n   (0 +Cls)\n   (4 (+Cls key))             # Each index in a different file\n   (4 (+Cls num))\n   (4 (+Cls str)) )\n\n# Generating random data\n(create '(+Cls) 'key '(num str)\n   (co 'go                 # Use a coroutine as generator\n      (for Key 100000000   # Key is sorted in input\n         (yield            # Return keys, numbers and single-char strings\n            (list Key (rand) (char (rand 97 122))) ) ) ) )\n\n# Reading from a file in PLIO format\n(create '(+Cls) 'key '(num str)\n   (rd) )\n\n# Reading from a TAB-separated CSV file\n(create '(+Cls) 'key '(num str)\n   (when (split (line) \"\\t\")\n      (list\n         (format (car @))\n         (format (cadr @))\n         (pack (caddr @)) ) ) )\n\n# Direct, naive approach (without using 'create')\n# Don't try this at home! Takes forever due to disk trashing\n(prune 0)\n(gc 400 200)\n(for Key 100000000\n   (new `(db: +Cls) '(+Cls)\n      'key Key\n      'num (rand)\n      'str (char (rand 97 122)) )\n   (at (0 . 10000) (commit) (prune 7)) )\n(commit)\n(prune)\n(gc 0)\n</pre></dd>\n\n<dt><a id=\"ctl\"><code>(ctl 'sym . prg) -> any</code></a></dt>\n<dd>Waits until a write (exclusive) lock (or a read (shared) lock if the first\ncharacter of <code>sym</code> is \"<code>+</code>\") can be set on the file\n<code>sym</code>, then executes <code>prg</code> and releases the lock. If the\nfile does not exist, it will be created. When <code>sym</code> is\n<code>NIL</code>, a shared lock is tried on the current innermost I/O channel,\nand when it is <code>T</code>, an exclusive lock is tried instead. See also\n<code><a href=\"refI.html#in\">in</a></code>, <code><a\nhref=\"refO.html#out\">out</a></code>, <code><a\nhref=\"refE.html#err\">err</a></code> and <code><a\nhref=\"refP.html#pipe\">pipe</a></code>.\n\n<pre>\n$ echo 9 >count                           # Write '9' to file \"count\"\n$ pil +\n: (ctl \".ctl\"                             # Exclusive control, using \".ctl\"\n   (in \"count\"\n      (let Cnt (read)                     # Read '9'\n         (out \"count\"\n            (println (dec Cnt)) ) ) ) )   # Write '8'\n-> 8\n:\n$ cat count                               # Check \"count\"\n8\n</pre></dd>\n\n<dt><a id=\"ctty\"><code>(ctty 'pid) -> pid</code></a></dt>\n<dt><code>(ctty 'any) -> any | NIL</code></dt>\n<dd>Unless called with a short number, <code>ctty</code> changes the current TTY\ndevice to <code>any</code> (or just sets standard I/O to a PTY if\n<code>any</code> is <code>NIL</code>). Otherwise, the local console is prepared\nfor serving the PicoLisp process with the process ID <code>pid</code>. See also\n<code><a href=\"refR.html#raw\">raw</a></code>.\n\n<pre>\n: (ctty \"/dev/tty\")\n-> \"/dev/tty\"\n</pre></dd>\n\n<dt><a id=\"curry\"><code>(curry lst . fun) -> fun</code></a></dt>\n<dd>Builds a new function from the list of symbols or symbol-value pairs\n<code>lst</code> and the functional expression <code>fun</code>. Each member in\n<code>lst</code> that is a <code><a href=\"refP.html#pat?\">pat?</a></code> symbol\nis substituted inside <code>fun</code> by its value. All other symbols in\n<code>lst</code> are collected into a <code><a\nhref=\"refJ.html#job\">job</a></code> environment. <code>curry</code> is a general\nhigher-order function, not limited to strict currying (which generates only\nsingle-argument functions).\n\n<pre>\n: (de multiplier (@X)\n   (curry (@X) (N) (* @X N)) )\n-> multiplier\n: (multiplier 7)\n-> ((N) (* 7 N))\n: ((multiplier 7) 3)\n-> 21\n\n: (def 'fiboCounter\n   (curry ((N1 . 0) (N2 . 1)) (Cnt)\n      (do Cnt\n         (println\n            (prog1\n               (+ N1 N2)\n               (setq N1 N2  N2 @) ) ) ) ) )\n-> fiboCounter\n: (pp 'fiboCounter)\n(de fiboCounter (Cnt)\n   (job '((N2 . 1) (N1 . 0))\n      (do Cnt\n         (println\n            (prog1 (+ N1 N2) (setq N1 N2 N2 @)) ) ) ) )\n-> fiboCounter\n: (fiboCounter 5)\n1\n2\n3\n5\n8\n-> 8\n: (fiboCounter 5)\n13\n21\n34\n55\n89\n-> 89\n</pre></dd>\n\n<dt><a id=\"cut\"><code>(cut 'cnt 'var) -> lst</code></a></dt>\n<dd>Pops the first <code>cnt</code> elements (CAR) from the stack in\n<code>var</code>. See also <code><a href=\"refP.html#pop\">pop</a></code>,\n<code><a href=\"refR.html#rid\">rid</a></code> and <code><a\nhref=\"refD.html#del\">del</a></code>.\n\n<pre>\n: (setq S '(1 2 3 4 5 6 7 8))\n-> (1 2 3 4 5 6 7 8)\n: (cut 3 'S)\n-> (1 2 3)\n: S\n-> (4 5 6 7 8)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refD.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 30may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>D</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>D</h1>\n\n<dl>\n\n<dt><a id=\"*DB\"><code>*DB</code></a></dt>\n<dd>A global variable holding the external symbol <code>{1}</code> (the <a\nhref=\"ref.html#dbase\">database</a> root) while a database is open, otherwise\n<code>NIL</code>. All external symbols in a database can be reached from that\nroot. Except during debugging, any explicit literal access to symbols in the\ndatabase should be avoided, because otherwise a memory leak might occur (The\ngarbage collector temporarily sets <code>*DB</code> to <code>NIL</code> and\nrestores its value after collection, thus disposing of all external symbols not\ncurrently used in the program).\n\n<pre>\n: (show *DB)\n{1} NIL\n   +City {P}\n   +Person {3}\n-> {1}\n: (show '{P})\n{P} NIL\n   nm (566 . {AhDx})\n-> {P}\n: (show '{3})\n{3} NIL\n   tel (681376 . {Agyl})\n   nm (1461322 . {2gu7})\n-> {3}\n</pre></dd>\n\n<dt><a id=\"*Dbg\"><code>*Dbg</code></a></dt>\n<dd>A boolean variable indicating \"debug mode\". It can be conveniently switched\non with a trailing <code>+</code> command line argument (see <a\nhref=\"ref.html#invoc\">Invocation</a>). When non-<code>NIL</code>, the <code><a\nhref=\"ref_.html#$\">$</a></code> (tracing) and <code><a\nhref=\"ref_.html#!\">!</a></code> (breakpoint) functions are enabled, and the\ncurrent line number and file name will be stored in symbol properties by\n<code><a href=\"refD.html#de\">de</a></code>, <code><a\nhref=\"refD.html#def\">def</a></code>, <code><a href=\"refD.html#dm\">dm</a></code>\nand <code><a href=\"refS.html#symbols\">symbols</a></code>. See also <code><a\nhref=\"refD.html#debug\">debug</a></code>, <code><a\nhref=\"refT.html#trace\">trace</a></code> and <code><a\nhref=\"refL.html#lint\">lint</a></code>.\n\n<pre>\n: (de foo (A B) (* A B))\n-> foo\n: (trace 'foo)\n-> foo\n: (foo 3 4)\n foo : 3 4\n foo = 12\n-> 12\n: (let *Dbg NIL (foo 3 4))\n-> 12\n</pre></dd>\n\n<dt><a id=\"*Dbs\"><code>*Dbs</code></a></dt>\n<dd>A global variable holding a list of numbers (block size scale factors, as\nneeded by <code><a href=\"refP.html#pool\">pool</a></code>). It is typically set\nby <code><a href=\"refD.html#dbs\">dbs</a></code>.\n\n<pre>\n: *Dbs\n-> (1 2 1 0 2 3 3 3)\n</pre></dd>\n\n<dt><a id=\"+Date\"><code>+Date</code></a></dt>\n<dd>Class for calender dates (as calculated by <code><a\nhref=\"refD.html#date\">date</a></code>), a subclass of <code><a\nhref=\"refN.html#+Number\">+Number</a></code>. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel dat (+Ref +Date))  # Indexed date\n</pre></dd>\n\n<dt><a id=\"+Dep\"><code>+Dep</code></a></dt>\n<dd><a href=\"refJ.html#+Joint\">+Joint</a> prefix class for maintaining\ndependencies between <code><a href=\"refR.html#+relation\">+relation</a></code>s.\nExpects a list of (symbolic) attributes that depend on this relation. Whenever\nthis relations is cleared (receives a value of <code>NIL</code>), the dependent\nrelations will also be cleared, triggering all required side-effects. See also\n<a href=\"ref.html#dbase\">Database</a>.\n\n<p>In the following example, the index entry for the item pointing to the\nposition (and, therefore, to the order) is cleared in case the order is deleted,\nor this position is deleted from the order:\n\n<pre>\n(class +Pos +Entity)                # Position class\n(rel ord (+Dep +Joint)              # Order of that position\n   (itm)                               # 'itm' specifies the dependency\n   pos (+Ord) )                        # Arguments to '+Joint'\n(rel itm (+Ref +Link) NIL (+Item))  # Item depends on the order\n</pre></dd>\n\n<dt><a id=\"d\"><code>(d) -> T</code></a></dt>\n<dd>(Debug mode only) Inserts <code><a href=\"ref_.html#!\">!</a></code>\nbreakpoints into all subexpressions of the current breakpoint. Typically used\nwhen single-stepping a function or method with <code><a\nhref=\"refD.html#debug\">debug</a></code>. See also <code><a\nhref=\"refU.html#u\">u</a></code> and <code><a\nhref=\"refU.html#unbug\">unbug</a></code>.\n\n<pre>\n! (d)                            # Debug subexpression(s) at breakpoint\n-> T\n</pre></dd>\n\n<dt><a id=\"daemon\"><code>(daemon 'sym . prg) -> fun</code></a></dt>\n<dt><code>(daemon '(sym . cls) . prg) -> fun</code></dt>\n<dt><code>(daemon '(sym sym2 [. cls]) . prg) -> fun</code></dt>\n<dd>Inserts <code>prg</code> in the beginning of the function (first form), the\nmethod body of <code>sym</code> in <code>cls</code> (second form) or in the\nclass obtained by <code><a href=\"refG.html#get\">get</a></code>ting\n<code>sym2</code> from <code><a href=\"refC.html#*Class\">*Class</a></code> (or\n<code>cls</code> if given) (third form). Built-in functions (SUBRs) are\nautomatically converted to Lisp expressions. See also <code><a\nhref=\"refT.html#trace\">trace</a></code>, <code><a\nhref=\"refE.html#expr\">expr</a></code>, <code><a\nhref=\"refP.html#patch\">patch</a></code> and <code><a\nhref=\"refR.html#redef\">redef</a></code>.\n\n<pre>\n: (de hello () (prinl \"Hello world!\"))\n-> hello\n\n: (daemon 'hello (prinl \"# This is the hello world program\"))\n-> (NIL (prinl \"# This is the hello world program\") (prinl \"Hello world!\"))\n: (hello)\n# This is the hello world program\nHello world!\n-> \"Hello world!\"\n\n: (daemon '* (msg 'Multiplying))\n-> (@ (msg 'Multiplying) (pass $134532148))\n: *\n-> (@ (msg 'Multiplying) (pass $134532148))\n: (* 1 2 3)\nMultiplying\n-> 6\n</pre></dd>\n\n<dt><a id=\"dat$\"><code>(dat$ 'dat ['sym]) -> sym</code></a></dt>\n<dd>Formats a <code><a href=\"refD.html#date\">date</a></code> <code>dat</code> in\nISO format, with an optional delimiter character <code>sym</code>. See also\n<code><a href=\"ref_.html#$dat\">$dat</a></code>, <code><a\nhref=\"refT.html#tim$\">tim$</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code> and <code><a\nhref=\"refD.html#datSym\">datSym</a></code>.\n\n<pre>\n: (dat$ (date))\n-> \"20070601\"\n: (dat$ (date) \"-\")\n-> \"2007-06-01\"\n</pre></dd>\n\n<dt><a id=\"datStr\"><code>(datStr 'dat ['flg]) -> sym</code></a></dt>\n<dd>Formats a <code><a href=\"refD.html#date\">date</a></code> according to the\ncurrent <code><a href=\"refL.html#locale\">locale</a></code>. If <code>flg</code>\nis non-<code>NIL</code>, the year will be formatted modulo 100. See also\n<code><a href=\"refD.html#dat$\">dat$</a></code>, <code><a\nhref=\"refD.html#datSym\">datSym</a></code>, <code><a\nhref=\"refS.html#strDat\">strDat</a></code>, <code><a\nhref=\"refE.html#expDat\">expDat</a></code>, <code><a\nhref=\"refE.html#expTel\">expTel</a></code> and <code><a\nhref=\"refD.html#day\">day</a></code>.\n\n<pre>\n: (datStr (date))\n-> \"2007-06-01\"\n: (locale \"DE\" \"de\")\n-> NIL\n: (datStr (date))\n-> \"01.06.2007\"\n: (datStr (date) T)\n-> \"01.06.07\"\n</pre></dd>\n\n<dt><a id=\"datSym\"><code>(datSym 'dat) -> sym</code></a></dt>\n<dd>Formats a <code><a href=\"refD.html#date\">date</a></code> <code>dat</code> in\nsymbolic format (DDmmmYY). See also <code><a\nhref=\"refD.html#dat$\">dat$</a></code> and <code><a\nhref=\"refD.html#datStr\">datStr</a></code>.\n\n<pre>\n: (datSym (date))\n-> \"01jun07\"\n</pre></dd>\n\n<dt><a id=\"date\"><code>(date ['T]) -> dat</code></a></dt>\n<dt><code>(date 'dat) -> (y m d)</code></dt>\n<dt><code>(date 'y 'm 'd) -> dat | NIL</code></dt>\n<dt><code>(date '(y m d)) -> dat | NIL</code></dt>\n<dd>Calculates a (gregorian) calendar date. It is represented as a day number,\nstarting first of March of the year 0 AD. When called without arguments, the\ncurrent date is returned. When called with a <code>T</code> argument, the\ncurrent Coordinated Universal Time (UTC) is returned. When called with a single\nnumber <code>dat</code>, it is taken as a date and a list with the corresponding\nyear, month and day is returned. When called with three numbers (or a list of\nthree numbers) for the year, month and day, the corresponding date is returned\n(or <code>NIL</code> if they do not represent a legal date). See also <code><a\nhref=\"refT.html#time\">time</a></code>, <code><a\nhref=\"refS.html#stamp\">stamp</a></code>, <code><a\nhref=\"ref_.html#$dat\">$dat</a></code>, <code><a\nhref=\"refD.html#dat$\">dat$</a></code>, <code><a\nhref=\"refD.html#datSym\">datSym</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code>, <code><a\nhref=\"refS.html#strDat\">strDat</a></code>, <code><a\nhref=\"refE.html#expDat\">expDat</a></code>, <code><a\nhref=\"refD.html#day\">day</a></code>, <code><a\nhref=\"refW.html#week\">week</a></code> and <code><a\nhref=\"refU.html#ultimo\">ultimo</a></code>.\n\n<pre>\n: (date)                         # Today\n-> 730589\n: (date 2000 6 12)               # 12-06-2000\n-> 730589\n: (date 2000 22 5)               # Illegal date\n-> NIL\n: (date (date))                  # Today's year, month and day\n-> (2000 6 12)\n: (- (date) (date 2000 1 1))     # Number of days since first of January\n-> 163\n</pre></dd>\n\n<dt><a id=\"day\"><code>(day 'dat ['lst]) -> sym</code></a></dt>\n<dd>Returns the name of the day for a given <code><a\nhref=\"refD.html#date\">date</a></code> <code>dat</code>, in the language of the\ncurrent <code><a href=\"refL.html#locale\">locale</a></code>. If <code>lst</code>\nis given, it should be a list of alternative weekday names. See also <code><a\nhref=\"refW.html#week\">week</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code> and <code><a\nhref=\"refS.html#strDat\">strDat</a></code>.\n\n<pre>\n: (day (date))\n-> \"Friday\"\n: (locale \"DE\" \"de\")\n-> NIL\n: (day (date))\n-> \"Freitag\"\n: (day (date) '(\"Mo\" \"Tu\" \"We\" \"Th\" \"Fr\" \"Sa\" \"Su\"))\n-> \"Fr\"\n</pre></dd>\n\n<dt><a id=\"db\"><code>(db 'sym 'cls ['hook] 'any ['sym 'any ..]) -> sym | NIL</code></a></dt>\n<dd>(Deprecated since version 25.5.30) Returns a database object of\nclass <code>cls</code>, where the values for the <code>sym</code>\narguments correspond to the <code>any</code> arguments. If a matching\nobject cannot be found, <code>NIL</code> is returned. <code>sym</code>,\n<code>cls</code> and <code>hook</code> should specify a <code><a\nhref=\"refT.html#tree\">tree</a></code> for <code>cls</code> or one of its\nsuperclasses. See also <code><a href=\"refA.html#aux\">aux</a></code>,\n<code><a href=\"refC.html#collect\">collect</a></code>, <code><a\nhref=\"refR.html#request\">request</a></code>, <code><a\nhref=\"refF.html#fetch\">fetch</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code> and <code><a\nhref=\"refS.html#step\">step</a></code>.\n\n<pre>\n: (db 'nr '+Item 1)\n-> {B1}\n: (db 'nm '+Item \"Main Part\")\n-> {B1}\n</pre></dd>\n\n<dt><a id=\"db/3\"><code>db/3</code></a></dt>\n<dt><a id=\"db/4\"><code>db/4</code></a></dt>\n<dt><a id=\"db/5\"><code>db/5</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> database predicate that returns objects\nmatching the given key-value (and optional hook) relation. The relation\nshould be of type <code><a href=\"refI.html#+index\">+index</a></code>.\nFor the key pattern applies:\n\n<p><ul>\n<li>a symbol (string) returns all entries which start with that string\n<li>other atoms (numbers, external symbols) match as they are\n<li>cons pairs constitute a range, returning objects\n   <ul>\n   <li>in increasing order if the CDR is greater than the CAR\n   <li>in decreasing order otherwise\n   </ul>\n<li>other lists are matched for <code><a href=\"refA.html#+Aux\">+Aux</a></code>\nkey combinations\n</ul>\n\n<p>The optional hook can be supplied as the third argument. See also <code><a\nhref=\"refS.html#select/3\">select/3</a></code> and <code><a\nhref=\"refR.html#remote/2\">remote/2</a></code>.\n\n<pre>\n: (? (db nr +Item @Item))              # No value given\n @Item={B1}\n @Item={B2}\n @Item={B3}\n @Item={B4}\n @Item={B5}\n @Item={B6}\n-> NIL\n\n: (? (db nr +Item 2 @Item))            # Get item no. 2\n @Item={B2}\n-> NIL\n\n: (? (db nm +Item Spare @Item) (show @Item))  # Search for \"Spare..\"\n{B2} (+Item)\n   pr 1250\n   inv 100\n   sup {C2}\n   nm \"Spare Part\"\n   nr 2\n @Item={B2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"db:\"><code>(db: cls ..) -> num</code></a></dt>\n<dd>Returns the database file number for objects of the type given by the\n<code>cls</code> argument(s). Needed, for example, for the creation of <code><a\nhref=\"refN.html#new\">new</a></code> objects. See also <code><a\nhref=\"refD.html#dbs\">dbs</a></code>.\n\n<pre>\n: (db: +Item)\n-> 3\n</pre></dd>\n\n<dt><a id=\"dbSync\"><code>(dbSync 'obj) -> flg</code></a></dt>\n<dd>Starts a database transaction, by trying to obtain a <code><a\nhref=\"refL.html#lock\">lock</a></code> on the database root object <code><a\nhref=\"refD.html#*DB\">*DB</a></code> (or <code>obj</code> if given), and then\ncalling <code><a href=\"refS.html#sync\">sync</a></code> to synchronize with\npossible changes from other processes. When all desired modifications to\nexternal symbols are done, <code>(<a href=\"refC.html#commit\">commit</a>\n'upd)</code> should be called. See also <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(let? Obj (rd)             # Get object?\n   (dbSync)                # Yes: Start transaction\n   (put> Obj 'nm (rd))     # Update\n   (put> Obj 'nr (rd))\n   (put> Obj 'val (rd))\n   (commit 'upd) )         # Close transaction\n</pre></dd>\n\n<dt><a id=\"dbck\"><code>(dbck ['cnt] 'flg) -> any</code></a></dt>\n<dd>Performs a low-level integrity check of the current (or <code>cnt</code>'th)\ndatabase file, and returns <code>NIL</code> (or the number of blocks and symbols\nif <code>flg</code> is non-<code>NIL</code>) if everything seems correct.\nOtherwise, a string indicating an error is returned. As a side effect, possibly\nunused blocks (as there might be when a <code><a\nhref=\"refR.html#rollback\">rollback</a></code> is done before <code><a\nhref=\"refC.html#commit\">commit</a></code>ting newly allocated (<code><a\nhref=\"refN.html#new\">new</a></code>) external symbols) are appended to the free\nlist.\n\n<pre>\n: (pool \"db\")\n-> T\n: (dbck)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"dbs\"><code>(dbs . lst)</code></a></dt>\n<dd>Initializes the global variable <code><a\nhref=\"refD.html#*Dbs\">*Dbs</a></code>. Each element in <code>lst</code> has a\nnumber in its CAR (the block size scale factor of a database file, to be stored\nin <code>*Dbs</code>). The CDR elements are either classes (so that objects of\nthat class are later stored in the corresponding file), or lists with a class in\nthe CARs and a list of relations in the CDRs (so that index trees for these\nrelations go into that file). See also <code><a\nhref=\"refP.html#pool\">pool</a></code>.\n\n<pre>\n(dbs\n   (3 +Role +User +Sal (+User pw))              # 512 Prevalent objects\n   (0 +Pos)                                     # A:64 Tiny objects\n   (1 +Item +Ord)                               # B:128 Small objects\n   (2 +CuSu)                                    # C:256 Normal objects\n   (2 (+Role nm) (+User nm) (+Sal nm))          # D:256 Small indexes\n   (4 (+CuSu nr plz tel mob))                   # E:1024 Normal indexes\n   (4 (+CuSu nm))                               # F:1024\n   (4 (+CuSu ort))                              # G:1024\n   (4 (+Item nr sup pr))                        # H:1024\n   (4 (+Item nm))                               # I:1024\n   (4 (+Ord nr dat cus))                        # J:1024\n   (4 (+Pos itm)) )                             # K:1024\n\n: *Dbs\n-> (3 0 1 2 2 4 4 4 4 4 4 4)\n: (get '+Item 'Dbf)\n-> (3 . 128)\n: (get '+Item 'nr 'dbf)\n-> (9 . 1024)\n</pre></dd>\n\n<dt><a id=\"de\"><code>(de sym . any) -> sym</code></a></dt>\n<dd>Assigns a definition to the <code>sym</code> argument, by setting its\n<code>VAL</code> to the <code>any</code> argument. If the symbol has already\nanother value, a \"redefined\" message is issued. When the value of the global\nvariable <a href=\"refD.html#*Dbg\">*Dbg</a> is non-<code>NIL</code>, the current\nline number and file name (if any) are stored in the <code>*Dbg</code> property\nof <code>sym</code>. <code>de</code> is the standard way to define a function.\nSee also <code><a href=\"refD.html#def\">def</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code> and <code><a\nhref=\"refU.html#undef\">undef</a></code>.\n\n<pre>\n: (de foo (X Y) (* X (+ X Y)))  # Define a function\n-> foo\n: (foo 3 4)\n-> 21\n\n: (de *Var . 123)  # Define a variable value\n: *Var\n-> 123\n</pre></dd>\n\n<dt><a id=\"debug\"><code>(debug 'sym)</code></a></dt>\n<dt><code>(debug 'sym 'cls)</code></dt>\n<dt><code>(debug '(sym . cls))</code></dt>\n<dd>(Debug mode only) Inserts a <code><a href=\"ref_.html#!\">!</a></code>\nbreakpoint function call at the beginning and all top-level expressions of the\nfunction or method body of <code>sym</code>, to allow a stepwise execution.\nTyping <code>(<a href=\"refD.html#d\">d</a>)</code> at a breakpoint will also\ndebug the current subexpression, and <code>(<a href=\"refE.html#e\">e</a>)</code>\nwill evaluate the current subexpression. The current subexpression is stored in\nthe global variable <code><a href=\"ref_.html#%5E\">^</a></code>. See also\n<code><a href=\"refU.html#unbug\">unbug</a></code>, <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>, <code><a\nhref=\"refT.html#trace\">trace</a></code> and <code><a\nhref=\"refL.html#lint\">lint</a></code>.\n\n<pre>\n: (de tst (N)                    # Define tst\n   (println (+ 3 N)) )\n-> tst\n: (debug 'tst)                   # Set breakpoints\n-> T\n: (pp 'tst)\n(de tst (N)\n   (! println (+ 3 N)) )         # Breakpoint '!'\n-> tst\n: (tst 7)                        # Execute\n(println (+ 3 N))                # Stopped at beginning of 'tst'\n! (d)                            # Debug subexpression\n-> T\n!                                # Continue\n(+ 3 N)                          # Stopped in subexpression\n! N                              # Inspect variable 'N'\n-> 7\n!                                # Continue\n10                               # Output of print statement\n-> 10                            # Done\n: (unbug 'tst)\n-> T\n: (pp 'tst)                      # Restore to original\n(de tst (N)\n   (println (+ 3 N)) )\n-> tst\n</pre></dd>\n\n<dt><a id=\"-debug\"><code>(-debug)</code></a></dt>\n<dd>(Debug mode only) Command line frontend to <code><a\nhref=\"refD.html#debug\">debug</a></code>. See also <code><a\nhref=\"refT.html#-trace\">-trace</a></code>.\n\n<pre>\n$ ./pil --debug tst +\n</pre></dd>\n\n<dt><a id=\"dec\"><code>(dec 'num) -> num</code></a></dt>\n<dt><code>(dec 'var ['num]) -> num</code></dt>\n<dd>The first form returns the value of <code>num</code> decremented by 1. The\nsecond form decrements the <code>VAL</code> of <code>var</code> by 1, or by\n<code>num</code>. If the first argument is <code>NIL</code>, it is returned\nimmediately. <code>(dec Num)</code> is equivalent to <code>(- Num 1)</code> and\n<code>(dec 'Var)</code> is equivalent to <code>(set 'Var (- Var 1))</code>. See\nalso <code><a href=\"refI.html#inc\">inc</a></code> and <code><a\nhref=\"ref_.html#-\">-</a></code>.\n\n<pre>\n: (dec -1)\n-> -2\n: (dec 7)\n-> 6\n: (setq N 7)\n-> 7\n: (dec 'N)\n-> 6\n: (dec 'N 3)\n-> 3\n</pre></dd>\n\n<dt><a id=\"def\"><code>(def 'sym 'any) -> sym</code></a></dt>\n<dt><code>(def 'sym1 'sym2|cnt 'any) -> sym1</code></dt>\n<dd>The first form assigns a definition to the first <code>sym</code> argument,\nby setting its <code>VAL</code>'s to <code>any</code>. The second form defines a\nproperty value <code>any</code> for the first argument's <code>sym2</code> key\n(or the symbol value for zero). If any of these values existed and was changed\nin the process, a \"redefined\" message is issued. When the value of the global\nvariable <a href=\"refD.html#*Dbg\">*Dbg</a> is non-<code>NIL</code>, the current\nline number and file name (if any) are stored in the <code>*Dbg</code> property\nof <code>sym</code>. See also <code><a href=\"refD.html#de\">de</a></code> and\n<code><a href=\"refD.html#dm\">dm</a></code>.\n\n<pre>\n: (def 'b '((X Y) (* X (+ X Y))))\n-> b\n: (def 'b 999)\n# b redefined\n-> b\n</pre></dd>\n\n<dt><a id=\"default\"><code>(default var 'any ..) -> any</code></a></dt>\n<dd>Stores new values <code>any</code> in the <code>var</code> arguments only if\ntheir current values are <code>NIL</code>. Otherwise, their values are left\nunchanged. In any case, the last <code>var</code>'s value is returned.\n<code>default</code> is used typically in functions to initialize optional\narguments.\n\n<pre>\n: (de foo (A B)               # Function with two optional arguments\n   (default  A 1  B 2)        # The default values are 1 and 2\n   (list A B) )\n-> foo\n: (foo 333 444)               # Called with two arguments\n-> (333 444)\n: (foo 333)                   # Called with one arguments\n-> (333 2)\n: (foo)                       # Called without arguments\n-> (1 2)\n</pre></dd>\n\n<dt><a id=\"del\"><code>(del 'any 'var ['flg]) -> lst</code></a></dt>\n<dd>Deletes <code>any</code> from the list in the value of <code>var</code>, and\nreturns the remaining list. If <code>flg</code> is <code>NIL</code> and\n<code>any</code> is contained more than once in the value of <code>var</code>,\nonly the first occurrence is deleted. <code>(del 'any 'var)</code> is equivalent\nto <code>(set 'var (delete 'any var))</code>. See also <code><a\nhref=\"refD.html#delete\">delete</a></code>, <code><a\nhref=\"refR.html#rid\">rid</a></code>, <code><a\nhref=\"refC.html#cut\">cut</a></code> and <code><a\nhref=\"refP.html#pop\">pop</a></code>.\n\n<pre>\n: (setq S '((a b c) (d e f)))\n-> ((a b c) (d e f))\n: (del '(d e f) 'S)\n-> ((a b c))\n: (del 'b S)\n-> (a c)\n</pre></dd>\n\n<dt><a id=\"delete\"><code>(delete 'any 'lst ['flg]) -> lst</code></a></dt>\n<dd>Deletes <code>any</code> from <code>lst</code>. If <code>flg</code> is\n<code>NIL</code> and <code>any</code> is contained more than once in\n<code>lst</code>, only the first occurrence is deleted. See also <code><a\nhref=\"refD.html#delq\">delq</a></code>, <code><a\nhref=\"refD.html#del\">del</a></code>, <code><a\nhref=\"refR.html#remove\">remove</a></code> and <code><a\nhref=\"refI.html#insert\">insert</a></code>.\n\n<pre>\n: (delete 2 (1 2 3))\n-> (1 3)\n: (delete (3 4) '((1 2) (3 4) (5 6) (3 4)))\n-> ((1 2) (5 6) (3 4))\n</pre></dd>\n\n<dt><a id=\"delete/3\"><code>delete/3</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if deleting the\nfirst argument from the list in the second argument is equal to the third\nargument. See also <code><a href=\"refD.html#delete\">delete</a></code> and\n<code><a href=\"refM.html#member/2\">member/2</a></code>.\n\n<pre>\n: (? (delete b (a b c) @X))\n @X=(a c)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"delq\"><code>(delq 'any 'lst ['flg]) -> lst</code></a></dt>\n<dd>Deletes <code>any</code> from <code>lst</code>. If <code>flg</code> is\n<code>NIL</code> and <code>any</code> is contained more than once in\n<code>lst</code>, only the first occurrence is deleted. <code><a\nhref=\"ref_.html#==\">==</a></code> is used for comparison (pointer equality). See\nalso <code><a href=\"refD.html#delete\">delete</a></code>, <code><a\nhref=\"refA.html#asoq\">asoq</a></code>, <code><a\nhref=\"refP.html#push1q\">push1q</a></code>, <code><a\nhref=\"refM.html#memq\">memq</a></code>, <code><a\nhref=\"refM.html#mmeq\">mmeq</a></code> and <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (delq 'b '(a b c))\n-> (a c)\n: (delq (2) (1 (2) 3))\n-> (1 (2) 3)\n</pre></dd>\n\n<dt><a id=\"dep\"><code>(dep 'cls) -> cls</code></a></dt>\n<dd>(Debug mode only) Displays the \"dependencies\" of <code>cls</code>, i.e. the\ntree of superclasses and the tree of subclasses. See also <a\nhref=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refM.html#methods\">methods</a></code>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refW.html#what\">what</a></code>, <code><a\nhref=\"refW.html#who\">who</a></code>, <code><a\nhref=\"refH.html#has\">has</a></code> and and <code><a\nhref=\"refC.html#can\">can</a></code>.\n\n<pre>\n: (dep '+Number)           # Dependencies of '+Number'\n   +relation               # Single superclass is '+relation'\n+Number\n   +Date                   # Subclasses are '+Date' and '+Time'\n   +Time\n-> +Number\n</pre></dd>\n\n<dt><a id=\"depth\"><code>(depth 'lst) -> (cnt1 . cnt2)</code></a></dt>\n<dd>Returns the maximal (<code>cnt1</code>) and the average (<code>cnt2</code>)\n\"depth\" of a tree structure as maintained by <code><a\nhref=\"refI.html#idx\">idx</a></code>. The total number of nodes is stored in the\nglobal variable <code><a href=\"ref_.html#@@\">@@</a></code>. See also <code><a\nhref=\"refL.html#length\">length</a></code> and <code><a\nhref=\"refS.html#size\">size</a></code>.\n\n<pre>\n: (off X)                                    # Clear variable\n-> NIL\n: (for N (1 2 3 4 5 6 7) (idx 'X N T))       # Build a degenerated tree\n-> NIL\n: X\n-> (1 NIL 2 NIL 3 NIL 4 NIL 5 NIL 6 NIL 7)   # Only right branches\n: (depth X)\n-> (7 . 4)                                   # Depth is 7, average 4\n\n: (balance 'X (1 2 3 4 5 6 7))               # Build a balanced tree\n-> NIL\n: (depth X)\n-> (3 . 2)                                   # Depth is 3, average 2\n</pre></dd>\n\n<dt><a id=\"detach\"><code>(detach) -> pid | NIL</code></a></dt>\n<dd>Detach the current process from its PicoLisp parent, and return the parent's\nprocess ID. This causes the parent to \"forget\" this child process (freeing\nresources like buffers and pipes), effectively disabling family IPC via <code><a\nhref=\"refT.html#tell\">tell</a></code>. See also <code><a\nhref=\"refF.html#fork\">fork</a></code> and <code><a\nhref=\"refK.html#kids\">kids</a></code>.\n\n<pre>\n: (unless (fork)\n   (detach)\n   (runAlone)\n   (bye) )\n</pre></dd>\n\n<dt><a id=\"diff\"><code>(diff 'lst1 'lst2) -> lst</code></a></dt>\n<dd>Returns the difference of list arguments, all elements of <code>lst1</code>\nwhich are not in <code>lst2</code>. See also <code><a\nhref=\"refS.html#sect\">sect</a></code>.\n\n<pre>\n: (diff (1 2 3 4 5) (2 4))\n-> (1 3 5)\n: (diff (1 2 3) (1 2 3))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"different/2\"><code>different/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the two\narguments are different. See also <code><a\nhref=\"refE.html#equal/2\">equal/2</a></code>.\n\n<pre>\n: (? (different 3 4))\n-> T\n</pre></dd>\n\n<dt><a id=\"dir\"><code>(dir ['any] ['flg]) -> lst</code></a></dt>\n<dd>Returns a list of all filenames in the directory <code>any</code>. Names\nstarting with a dot '<code>.</code>' are ignored, unless <code>flg</code> is\nnon-<code>NIL</code>. See also <code><a href=\"refC.html#cd\">cd</a></code> and\n<code><a href=\"refI.html#info\">info</a></code>.\n\n<pre>\n: (filter '((F) (tail '(. c) (chop F))) (dir \"@src/\"))\n-> (\"main.c\" \"subr.c\" \"gc.c\" \"io.c\" \"big.c\" \"sym.c\" \"tab.c\" \"flow.c\" ..\n</pre></dd>\n\n<dt><a id=\"dirname\"><code>(dirname 'any) -> sym</code></a></dt>\n<dd>Returns the directory part of a path name <code>any</code>. See also\n<code><a href=\"refB.html#basename\">basename</a></code> and <code><a\nhref=\"refP.html#path\">path</a></code>.\n\n<pre>\n: (dirname \"a/b/c/d\")\n-> \"a/b/c/\"\n</pre></dd>\n\n<dt><a id=\"dm\"><code>(dm sym . fun|cls2) -> sym</code></a></dt>\n<dt><code>(dm (sym . cls) . fun|cls2) -> sym</code></dt>\n<dt><code>(dm (sym sym2 [. cls]) . fun|cls2) -> sym</code></dt>\n<dd>Defines a method for the message <code>sym</code> in the current class,\nimplicitly given by the value of the global variable <code><a\nhref=\"refC.html#*Class\">*Class</a></code>, or - in the second form - for the\nexplicitly given class <code>cls</code>. In the third form, the class object is\nobtained by <code><a href=\"refG.html#get\">get</a></code>ting <code>sym2</code>\nfrom <code><a href=\"refC.html#*Class\">*Class</a></code> (or <code>cls</code> if\ngiven). If the method for that class existed and was changed in the process, a\n\"redefined\" message is issued. If - instead of a method <code>fun</code> - a\nsymbol specifying another class <code>cls2</code> is given, the method from that\nclass is used (explicit inheritance). When the value of the global variable <a\nhref=\"refD.html#*Dbg\">*Dbg</a> is non-<code>NIL</code>, the current line number\nand file name (if any) are stored in the <code>*Dbg</code> property of\n<code>sym</code>. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refD.html#de\">de</a></code>, <code><a\nhref=\"refU.html#undef\">undef</a></code>, <a href=\"refC.html#class\">class</a>, <a\nhref=\"refR.html#rel\">rel</a>, <a href=\"refV.html#var\">var</a>, <a\nhref=\"refM.html#method\">method</a>, <a href=\"refS.html#send\">send</a> and <a\nhref=\"refT.html#try\">try</a>.\n\n<pre>\n: (dm start> ()\n   (super)\n   (mapc 'start> (: fields))\n   (mapc 'start> (: arrays)) )\n\n: (dm foo> . +OtherClass)  # Explicitly inherit 'foo>' from '+OtherClass'\n</pre></dd>\n\n<dt><a id=\"do\"><code>(do 'flg|num ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any</code></a></dt>\n<dd>Counted loop with multiple conditional exits: The body is executed at most\n<code>num</code> times (or never (if the first argument is <code>NIL</code>), or\nan infinite number of times (if the first argument is <code>T</code>)). If a\nclause has <code>NIL</code> or <code>T</code> as its CAR, the clause's second\nelement is evaluated as a condition and - if the result is <code>NIL</code> or\nnon-<code>NIL</code>, respectively - the <code>prg</code> is executed and the\nresult returned. Otherwise (if count drops to zero), the result of the last\nexpression is returned. See also <code><a href=\"refL.html#loop\">loop</a></code>\nand <code><a href=\"refF.html#for\">for</a></code>.\n\n<pre>\n: (do 4 (printsp 'OK))\nOK OK OK OK -> OK\n: (do 4 (printsp 'OK) (T (= 3 3) (printsp 'done)))\nOK done -> done\n</pre></dd>\n\n<dt><a id=\"doc\"><code>(doc ['sym1] ['sym2])</code></a></dt>\n<dd>(Debug mode only) Opens a browser, and tries to display the reference\ndocumentation for <code>sym1</code>. <code>sym2</code> may be the name of a\nbrowser. If not given, the value of the environment variable\n<code>BROWSER</code>, or the <code>w3m</code> browser is tried. If\n<code>sym1</code> is <code>NIL</code>, the <a href=\"ref.html\">PicoLisp\nReference</a> manual is opened. See also <a href=\"ref.html#fun\">Function\nReference</a>, <code><a href=\"refD.html#docs\">docs</a></code> and <code><a\nhref=\"refV.html#vi\">vi</a></code>.\n\n<pre>\n: (doc '+)  # Function reference\n-> NIL\n: (doc '+relation)  # Class reference\n-> NIL\n: (doc)  # Reference manual\n-> NIL\n:  (doc 'vi \"firefox\")  # Use alternative browser\n-> NIL\n</pre></dd>\n\n<dt><a id=\"docs\"><code>(docs 'any)</code></a></dt>\n<dd>(Debug mode only) Parses all files with names of the form \"ref@.html\" in the\ndirectory <code>any</code>, to set the <code>doc</code> property for later calls\nto <code><a href=\"refD.html#doc\">doc</a></code>.\n\n<pre>\n: (docs \"@doc/\")\n-> NIL\n</pre></dd>\n\n<dt><a id=\"download\"><code>(download 'host 'src 'dst) -> any</code></a></dt>\n<dd>Tries to download the file <code>src</code> from <code>host</code> with\n\"@bin/ssl\", and stores it in <code>dst</code>. Returns non-<code>NIL</code> if\nsuccessful. See also <code><a href=\"refS.html#ssl\">ssl</a></code>.\n\n<pre>\n: (download \"de.wikipedia.org\" \"static/images/wikimedia-button.png\" \"button.png\")\n-> 0\n: (info \"button.png\")\n-> (2426 736804 . 35589)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refE.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 27aug25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>E</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>E</h1>\n\n<dl>\n\n<dt><a id=\"*Err\"><code>*Err</code></a></dt>\n<dd>A global variable holding a (possibly empty) <code>prg</code> body, which\nwill be executed during error processing. See also <code><a\nhref=\"ref.html#errors\">Error Handling</a></code>, <code><a\nhref=\"refM.html#*Msg\">*Msg</a></code> and <code><a\nhref=\"ref_.html#%5E\">^</a></code>.\n\n<pre>\n: (de *Err (prinl \"Fatal error!\"))\n-> *Err\n: (/ 3 0)\n!? (/ 3 0)\nDiv/0\nFatal error!\n?\n</pre></dd>\n\n<dt><a id=\"*Ext\"><code>*Ext</code></a></dt>\n<dd>A global variable holding a sorted list of cons pairs. The CAR of each pair\nspecifies an external symbol offset (suitable for <code><a\nhref=\"refE.html#ext\">ext</a></code>), and the CDR should be a function taking a\nsingle external symbol as an argument. This function should return a list, with\nthe value for that symbol in its CAR, and the property list (in the format used\nby <code><a href=\"refG.html#getl\">getl</a></code> and <code><a\nhref=\"refP.html#putl\">putl</a></code>) in its CDR. The symbol will be set to\nthis value and property list upon access. Typically this function will access\nthe corresponding symbol in a remote database process. See also <code><a\nhref=\"refQ.html#qsym\">qsym</a></code> and <code><a\nhref=\"ref.html#external\">external symbols</a></code>.\n\n<pre>\n### On the local machine ###\n: (setq *Ext  # Define extension functions\n   (mapcar\n      '((@Host @Ext)\n         (cons @Ext\n            (curry (@Host @Ext (Sock)) (Obj)\n               (when (or Sock (setq Sock (connect @Host 4040)))\n                  (ext @Ext\n                     (out Sock (pr (cons 'qsym Obj)))\n                     (prog1\n                        (in Sock (rd))\n                        (unless @\n                           (close Sock)\n                           (off Sock) ) ) ) ) ) ) )\n      '(\"10.10.12.1\" \"10.10.12.2\" \"10.10.12.3\" \"10.10.12.4\")\n      (20 40 60 80) ) )\n\n### On the remote machines ###\n(de go ()\n   ...\n   (task (port 4040)                      # Set up background query server\n      (let? Sock (accept @)               # Accept a connection\n         (unless (fork)                   # In child process\n            (in Sock\n               (while (rd)                # Handle requests\n                  (sync)\n                  (tell)\n                  (out Sock\n                     (pr (eval @)) ) ) )\n            (bye) )                       # Exit child process\n         (close Sock) ) )\n   ...\n\n</pre></dd>\n\n<dt><a id=\"+Entity\"><code>+Entity</code></a></dt>\n<dd>Base class of all database objects. See also <code><a\nhref=\"refR.html#+relation\">+relation</a></code> and <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<p><a id=\"entityMesssages\">Messages</a> to entity objects include\n\n<pre>\nzap> ()              # Clean up relational structures, for removal from the DB\nurl> (Tab)           # Call the GUI on that object (in optional Tab)\ngui> ()              # Generate object-specific GUI fragment\nupd> (X Old)         # Callback method when object is created/modified/deleted\nhas> (Var Val)       # Check if value is present\nrel?> (Var Val)      # Check if relations for value are correctly maintained\nput> (Var Val)       # Put a new value\nput!> (Var Val)      # Put a new value, single transaction\ndel> (Var Val)       # Delete value (also partial)\ndel!> (Var Val)      # Delete value (also partial), single transaction\ninc> (Var Val)       # Increment numeric value\ninc!> (Var Val)      # Increment numeric value, single transaction\ndec> (Var Val)       # Decrement numeric value\ndec!> (Var Val)      # Decrement numeric value, single transaction\nmis> (Var Val)       # Return error message if value or type mismatch\nlose1> (Var)         # Delete relational structures for a single attribute\nlose> (Lst)          # Delete relational structures (excluding 'Lst')\nlose!> ()            # Delete relational structures, single transaction\nkeep1> (Var)         # Restore relational structures for single attribute\nkeep> (Lst)          # Restore relational structures (excluding 'Lst')\nkeep?> (Lst)         # Test for restauration (excluding 'Lst')\nkeep!> ()            # Restore relational structures, single transaction\nset> (Val)           # Set the value (type, i.e. class list)\nset!> (Val)          # Set the value, single transaction\nclone> ()            # Object copy\nclone!> ()           # Object copy, single transaction\n</pre></dd>\n\n<dt><a id=\"e\"><code>(e . prg) -> any</code></a></dt>\n<dd>Used in a breakpoint. Evaluates <code>prg</code> in the execution\nenvironment, or the currently executed expression if <code>prg</code> is not\ngiven. See also <code><a href=\"refD.html#debug\">debug</a></code>, <code><a\nhref=\"ref_.html#!\">!</a></code>, <code><a href=\"ref_.html#%5E\">^</a></code> and\n<code><a href=\"refD.html#*Dbg\">*Dbg</a></code>.\n\n<pre>\n: (! + 3 4)\n(+ 3 4)\n! (e)\n-> 7\n</pre></dd>\n\n<dt><a id=\"echo\"><code>(echo ['cnt ['cnt]] | ['sym ..]) -> sym</code></a></dt>\n<dd>Reads the current input channel, and writes to the current output channel.\nIf <code>cnt</code> is given, only that many bytes are actually echoed. In case\nof two <code>cnt</code> arguments, the first one specifies the number of bytes\nto skip in the input stream. Otherwise, if one or more <code>sym</code>\narguments are given, the echo process stops as soon as one of the symbol's names\nis encountered in the input stream. In this case the name will be read and\nreturned, but not written. Returns non-<code>NIL</code> if the operation was\nsuccessfully completed. See also <code><a href=\"refF.html#from\">from</a></code>.\n\n<pre>\n: (in \"x.l\" (echo))  # Display file on console\n ..\n\n: (out \"x2.l\" (in \"x.l\" (echo)))  # Copy file \"x.l\" to \"x2.l\"\n</pre></dd>\n\n<dt><a id=\"enum\"><code>(enum 'var 'cnt ['cnt ..]) -> lst</code></a></dt>\n<dt><code>(enum 'var ['flg]) -> lst</code></dt>\n<dd>Enumerates cells by maintaining a binary tree in <code>var</code>. The keys\nare implicit from the enumerated <code>cnt</code>s, and the resulting tree is\nbalanced (independent from the insertion order). In the first form, the\ncorresponding cell is returned. If it does not exist yet, it is (destructively)\ninserted into the tree. If more than one <code>cnt</code> argument is given, the\nreturned cell is subsequently taken as the next tree to be processed. The second\nform returns an unsorted association list of all key-value pairs (or value-key\npairs if <code>flg</code> is non-<code>NIL</code>) in the tree.\n<code>enum</code> can be used to emulate (possibly sparse) arrays. See also\n<code><a href=\"refE.html#enum?\">enum?</a></code>, <code><a\nhref=\"refI.html#idx\">idx</a></code> and <code><a\nhref=\"refH.html#hash\">hash</a></code>.\n\n<pre>\n: (off E)\n-> NIL\n: (for (I . S) '(a b c d e f g h i j k l m n o)\n   (set (enum 'E I) S) )\n-> o\n: E\n-> (a (b (d (h) l) f (j) n) c (e (i) m) g (k) o)\n: (view E T)\n         o\n      g\n         k\n   c\n         m\n      e\n         i\na\n         n\n      f\n         j\n   b\n         l\n      d\n         h\n-> NIL\n: (enum 'E 6)\n-> (f (j) n)\n: (val (enum 'E 6))\n-> f\n: (val (enum 'E 1))\n-> a\n: (val (enum 'E 12))\n-> l\n: (enum 'E)\n-> ((8 . h) (4 . d) (12 . l) (2 . b) (10 . j) (6 . f) (14 . n) (1 . a) (9 . i) (5 . e) (13 . m) (3 . c) (11 . k) (7 . g) (15 . o))\n: (enum 'E T)\n-> ((h . 8) (d . 4) (l . 12) (b . 2) (j . 10) (f . 6) (n . 14) (a . 1) (i . 9) (e . 5) (m . 13) (c . 3) (k . 11) (g . 7) (o . 15))\n\n: (let A NIL  # 2-dimensional array\n   (for I 4\n      (for J 4\n         (set (enum 'A I J) (pack I \"-\" J)) ) )\n   (for I 4\n      (for J 4\n         (prin \" \" (val (enum 'A I J))) )\n      (prinl) ) )\n 1-1 1-2 1-3 1-4\n 2-1 2-2 2-3 2-4\n 3-1 3-2 3-3 3-4\n 4-1 4-2 4-3 4-4\n-> NIL\n</pre></dd>\n\n<dt><a id=\"enum?\"><code>(enum? 'lst 'cnt ['cnt ..]) -> lst | NIL</code></a></dt>\n<dd>Tests a binary <code><a href=\"refE.html#enum\">enum</a></code> tree for the\nkeys in the <code>cnt</code> arguments. Returns the corresponding cell, or\n<code>NIL</code> if not found. The tree is not modified. See also <code><a\nhref=\"refL.html#lup\">lup</a></code>.\n\n<pre>\n: (enum? E 7)\n-> (g (k) o)\n: (enum? E 16)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"env\"><code>(env ['lst] | ['sym 'val] ..) -> lst</code></a></dt>\n<dd>Return a list of symbol-value pairs of all dynamically bound symbols if\ncalled without arguments, or of the symbols or symbol-value pairs in\n<code>lst</code>, or the explicitly given <code>sym</code>-<code>val</code>\narguments. See also <code><a href=\"refB.html#bind\">bind</a></code>, <code><a\nhref=\"refJ.html#job\">job</a></code>, <code><a\nhref=\"refT.html#trail\">trail</a></code> and <code><a\nhref=\"refU.html#up\">up</a></code>.\n\n<pre>\n: (env)\n-> NIL\n: (let (A 1 B 2) (env))\n-> ((A . 1) (B . 2))\n: (let (A 1 B 2) (env '(A B)))\n-> ((B . 2) (A . 1))\n: (let (A 1 B 2) (env 'X 7 '(A B (C . 3)) 'Y 8))\n-> ((Y . 8) (C . 3) (B . 2) (A . 1) (X . 7))\n</pre></dd>\n\n<dt><a id=\"eof\"><code>(eof ['flg]) -> flg</code></a></dt>\n<dd>Returns the end-of-file status of the current input channel. If\n<code>flg</code> is non-<code>NIL</code>, the channel's status is forced to\nend-of-file, so that the next call to <code>eof</code> will return\n<code>T</code>, and calls to <code><a href=\"refC.html#char\">char</a></code>,\n<code><a href=\"refP.html#peek\">peek</a></code>, <code><a\nhref=\"refL.html#line\">line</a></code>, <code><a\nhref=\"refF.html#from\">from</a></code>, <code><a\nhref=\"refT.html#till\">till</a></code>, <code><a\nhref=\"refR.html#read\">read</a></code> or <code><a\nhref=\"refS.html#skip\">skip</a></code> will return <code>NIL</code>. Note that\n<code>eof</code> cannot be used with the binary <code><a\nhref=\"refR.html#rd\">rd</a></code> function. See also <code><a\nhref=\"refE.html#eol\">eol</a></code>.\n\n<pre>\n: (in \"file\" (until (eof) (println (line T))))\n...\n</pre></dd>\n\n<dt><a id=\"eol\"><code>(eol) -> flg</code></a></dt>\n<dd>Returns the end-of-line status of the current input channel.\nSee also <code><a href=\"refE.html#eof\">eof</a></code>.\n\n<pre>\n: (make (until (prog (link (read)) (eol))))  # Read line into a list\na b c (d e f) 123\n-> (a b c (d e f) 123)\n</pre></dd>\n\n<dt><a id=\"equal/2\"><code>equal/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the two\narguments are equal. See also <code><a href=\"ref_.html#=\">=</a></code>, <code><a\nhref=\"refD.html#different/2\">different/2</a></code> and <code><a\nhref=\"refM.html#member/2\">member/2</a></code>.\n\n<pre>\n: (? (equal 3 4))\n-> NIL\n: (? (equal @N 7))\n @N=7\n-> NIL\n</pre></dd>\n\n<dt><a id=\"err\"><code>(err 'sym . prg) -> any</code></a></dt>\n<dd>Redirects the standard error stream to <code>sym</code> during the execution\nof <code>prg</code>. The current standard error stream will be saved and\nrestored appropriately. If the argument is <code>NIL</code>, the current output\nstream will be used. Otherwise, <code>sym</code> is taken as a file name (opened\nin \"append\" mode if the first character is \"+\"), where standard error is to be\nwritten to. See also <code><a href=\"refI.html#in\">in</a></code>, <code><a\nhref=\"refO.html#out\">out</a></code> and <code><a\nhref=\"refC.html#ctl\">ctl</a></code>.\n\n<pre>\n: (err \"/dev/null\"             # Suppress error messages\n   (call 'ls 'noSuchFile) )\n-> NIL\n</pre></dd>\n\n<dt><a id=\"errno\"><code>(errno) -> cnt</code></a></dt>\n<dd>Returns the value of the standard I/O 'errno' variable. See also <code><a\nhref=\"refN.html#native\">native</a></code>.\n\n<pre>\n: (in \"foo\")                           # Produce an error\n!? (in \"foo\")\n\"foo\" -- Open error: No such file or directory\n? (errno)\n-> 2                                   # Returned 'ENOENT'\n</pre></dd>\n\n<dt><a id=\"eval\"><code>(eval 'any ['cnt]) -> any</code></a></dt>\n<dd>Evaluates <code>any</code>. Note that because of the standard argument\nevaluation, <code>any</code> is actually evaluated twice. If an offset\n<code>cnt</code> is given, the value of <code><a\nhref=\"ref.html#atres\">@</a></code> in the <code>cnt</code>'th call environment\nis used during the second evaluation. <code>cnt</code> should be greater than\nzero. See also <code><a href=\"refR.html#run\">run</a></code> and <code><a\nhref=\"refU.html#up\">up</a></code>.\n\n<pre>\n: (eval (list '+ 1 2 3))\n-> 6\n: (setq X 'Y  Y 7)\n-> 7\n: X\n-> Y\n: Y\n-> 7\n: (eval X)\n-> 7\n</pre></dd>\n\n<dt><a id=\"exec\"><code>(exec 'any ..)</code></a></dt>\n<dd>Executes an external system command. The <code>any</code> arguments specify\nthe command and its arguments. Does not return to the caller; the current\nprocess is replaced with a new process image. See also <code><a\nhref=\"refF.html#fork\">fork</a></code> and <code><a\nhref=\"refC.html#call\">call</a></code>.\n\n<pre>\n: (pipe (exec 'echo 123 \"abc\")  # Equivalent to (in '(echo 123 \"abc\") ..)\n   (list (read) (read)) )\n-> (123 abc)\n\n(unless (fork)\n   (exec \"@bin/ssl\"  # Start replication process\n      \"10.11.12.13\" 443\n      \"app/!replica\" \"key/app\" \"fifo/app\" \"db/app/blob/\" 20 ) )\n</pre></dd>\n\n<dt><a id=\"expDat\"><code>(expDat 'sym) -> dat</code></a></dt>\n<dd>Expands a <code><a href=\"refD.html#date\">date</a></code> string according to\nthe current <code><a href=\"refL.html#locale\">locale</a></code> (delimiter, and\norder of year, month and day). Accepts abbreviated input, without delimiter and\nwith only the day, or the day and month, or the day, month and year of current\ncentury. A single dot \".\" expands to \"today\", and a signed number to a date such\nmany days in the past or future. See also <code><a\nhref=\"refD.html#datStr\">datStr</a></code>, <code><a\nhref=\"refD.html#day\">day</a></code>, <code><a\nhref=\"refE.html#expTel\">expTel</a></code>.\n\n<pre>\n: (date)\n-> 733133\n: (date (date))\n-> (2007 5 31)\n: (expDat \"31\")\n-> 733133\n: (expDat \"315\")\n-> 733133\n: (expDat \"3105\")\n-> 733133\n: (expDat \"31057\")\n-> 733133\n: (expDat \"310507\")\n-> 733133\n: (expDat \"2007-05-31\")\n-> 733133\n: (expDat \"7-5-31\")\n-> 733133\n\n: (locale \"DE\" \"de\")\n-> NIL\n: (expDat \"31.5\")\n-> 733133\n: (expDat \"31.5.7\")\n-> 733133\n</pre></dd>\n\n<dt><a id=\"expTel\"><code>(expTel 'sym) -> sym</code></a></dt>\n<dd>Expands a telephone number string. Multiple spaces or hyphens are coalesced.\nA leading <code>+</code> or <code>00</code> is removed, a leading national trunk\nprefix is replaced with the current country code. Otherwise, <code>NIL</code> is\nreturned. See also <code><a href=\"refT.html#telStr\">telStr</a></code>, <code><a\nhref=\"refE.html#expDat\">expDat</a></code> and <code><a\nhref=\"refL.html#locale\">locale</a></code>.\n\n<pre>\n: (expTel \"+49 1234 5678-0\")\n-> \"49 1234 5678-0\"\n: (expTel \"0049 1234 5678-0\")\n-> \"49 1234 5678-0\"\n: (expTel \"01234 5678-0\")\n-> NIL\n: (locale \"DE\" \"de\")\n-> NIL\n: (expTel \"01234 5678-0\")\n-> \"49 1234 5678-0\"\n</pre></dd>\n\n<dt><a id=\"export\"><code>(export . lst) -> lst</code></a></dt>\n<dd>Intern all symbols in <code>lst</code> explicitly in the second <a\nhref=\"ref.html#namespaces\">namespace</a> in the current search order. See also\n<code><a href=\"refP.html#pico\">pico</a></code>, <code><a\nhref=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refP.html#private\">private</a></code>, <code><a\nhref=\"refL.html#local\">local</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (symbols 'myLib 'pico)\n-> (pico)\nmyLib: (export foo bar)  # Intern 'foo' and 'bar' in 'pico'\n</pre></dd>\n\n<dt><a id=\"expr\"><code>(expr 'sym) -> fun</code></a></dt>\n<dd>Converts a built-in function (SUBR) to a Lisp-function. Useful only for\nnormal functions (i.e. functions that evaluate all arguments). See also <code><a\nhref=\"refS.html#subr\">subr</a></code>.\n\n<pre>\n: car\n-> 67313448\n: (expr 'car)\n-> (@ (pass $385260187))\n: (car (1 2 3))\n-> 1\n</pre></dd>\n\n<dt><a id=\"ext\"><code>(ext 'cnt . prg) -> any</code></a></dt>\n<dd>During the execution of <code>prg</code>, all <code><a\nhref=\"ref.html#external\">external symbols</a></code> processed by <code><a\nhref=\"refR.html#rd\">rd</a></code>, <code><a href=\"refP.html#pr\">pr</a></code>,\n<code><a href=\"refP.html#pr\">plio</a></code>,\n<code><a href=\"refB.html#blk\">blk</a></code> or <code><a\nhref=\"refU.html#udp\">udp</a></code> are modified by an offset <code>cnt</code>\nsuitable for mapping via the <code><a href=\"refE.html#*Ext\">*Ext</a></code>\nmechanism. All external symbol's file numbers are decremented by\n<code>cnt</code> during output, and incremented by <code>cnt</code> during\ninput.\n\n<pre>\n: (out 'a (ext 5 (pr '({A2} ({C4} . a) ({B7} . b)))))\n-> ({A2} ({C4} . a) ({B7} . b))\n\n: (in 'a (rd))\n-> ({OOOL2} ({OOON4} . a) ({OOOM7} . b))\n\n: (in 'a (ext 5 (rd)))\n-> ({A2} ({C4} . a) ({B7} . b))\n</pre></dd>\n\n<dt><a id=\"ext?\"><code>(ext? 'any ['flg]) -> sym | NIL</code></a></dt>\n<dd>Returns the argument <code>any</code> when it is an external symbol,\notherwise <code>NIL</code>. If <code>flg</code> is non-<code>NIL</code>, also\nphysical existence is checked. See also <code><a\nhref=\"refS.html#sym?\">sym?</a></code>, <code><a\nhref=\"refB.html#box?\">box?</a></code>, <code><a\nhref=\"refS.html#str?\">str?</a></code>, <code><a\nhref=\"refE.html#extern\">extern</a></code> and <code><a\nhref=\"refL.html#lieu\">lieu</a></code>.\n\n<pre>\n: (ext? *DB)\n-> {1}\n: (ext? 'abc)\n-> NIL\n: (ext? \"abc\")\n-> NIL\n: (ext? 123)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"extend\"><code>(extend cls) -> cls</code></a></dt>\n<dd>Extends the class <code>cls</code>, by storing it in the global variable\n<code><a href=\"refC.html#*Class\">*Class</a></code>. As a consequence, all\nfollowing method, relation and class variable definitions are applied to that\nclass. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code>, <code><a href=\"refV.html#var\">var</a></code>,\n<code><a href=\"refR.html#rel\">rel</a></code>, <code><a\nhref=\"refT.html#type\">type</a></code> and <code><a\nhref=\"refI.html#isa\">isa</a></code>.\n\n<pre>\n</pre></dd>\n\n<dt><a id=\"extern\"><code>(extern 'sym) -> sym | NIL</code></a></dt>\n<dd>Creates or finds an external symbol. If a symbol with the name\n<code>sym</code> is already extern, it is returned. Otherwise, a new external\nsymbol is returned. <code>NIL</code> is returned if <code>sym</code> does not\nexist in the database. See also <code><a\nhref=\"refI.html#intern\">intern</a></code> and <code><a\nhref=\"refE.html#ext?\">ext?</a></code>.\n\n<pre>\n: (extern \"A1b\")\n-> {A1b}\n: (extern \"{A1b}\")\n-> {A1b}\n</pre></dd>\n\n<dt><a id=\"extra\"><code>(extra ['any ..]) -> any</code></a></dt>\n<dd>Can only be used inside methods. Sends the current message to the current\nobject <code>This</code>, this time starting the search for a method at the\nremaining branches of the inheritance tree of the class where the current method\nwas found. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refS.html#super\">super</a></code>, <code><a\nhref=\"refM.html#method\">method</a></code>, <code><a\nhref=\"refM.html#meth\">meth</a></code>, <code><a\nhref=\"refS.html#send\">send</a></code> and <code><a\nhref=\"refT.html#try\">try</a></code>.\n\n<pre>\n(dm key> (C)            # 'key>' method of the '+Uppc' class\n   (uppc (extra C)) )   # Convert 'key>' of extra classes to upper case\n</pre></dd>\n\n<dt><a id=\"extract\"><code>(extract 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns a list of all non-<code>NIL</code> values returned\nby <code>fun</code>. <code>(extract 'fun 'lst)</code> is equivalent to\n<code>(mapcar 'fun (filter 'fun 'lst))</code> or, for non-NIL results, to\n<code>(mapcan '((X) (and (fun X) (cons @))) 'lst)</code>. See also <code><a\nhref=\"refF.html#filter\">filter</a></code>, <code><a\nhref=\"refF.html#find\">find</a></code>, <code><a\nhref=\"refP.html#pick\">pick</a></code> and <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code>.\n\n<pre>\n: (setq A NIL  B 1  C NIL  D 2  E NIL  F 3)\n-> 3\n: (filter val '(A B C D E F))\n-> (B D F)\n: (extract val '(A B C D E F))\n-> (1 2 3)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refF.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 21mar26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>F</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>F</h1>\n\n<dl>\n\n<dt><a id=\"*Fork\"><code>*Fork</code></a></dt>\n<dd>A global variable holding a (possibly empty) <code>prg</code> body, to be\nexecuted after a call to <code><a href=\"refF.html#fork\">fork</a></code> in the\nchild process.\n\n<pre>\n: (push '*Fork '(off *Tmp))   # Clear '*Tmp' in child process\n-> (off *Tmp)\n</pre></dd>\n\n<dt><a id=\"+Fold\"><code>+Fold</code></a></dt>\n<dd>Prefix class for maintaining <code><a\nhref=\"refF.html#fold\">fold</a></code>ed indexes to <code><a\nhref=\"refS.html#+String\">+String</a></code> relations. Typically used in\ncombination with the <code><a href=\"refR.html#+Ref\">+Ref</a></code> or <code><a\nhref=\"refI.html#+Idx\">+Idx</a></code> prefix classes. See also <code><a\nhref=\"refI.html#+IdxFold\">+IdxFold</a></code> and <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+Fold +Idx +String))   # Item Description\n...\n(rel tel (+Fold +Ref +String))  # Phone number\n</pre></dd>\n\n<dt><a id=\"fail\"><code>(fail) -> lst</code></a></dt>\n<dd>Constructs an empty <a href=\"ref.html#pilog\">Pilog</a> query, i.e. a query\nthat will always fail. See also <code><a href=\"refG.html#goal\">goal</a></code>.\n\n<pre>\n(dm clr> ()                # Clear query chart in search dialogs\n   (query> This (fail)) )\n</pre></dd>\n\n<dt><a id=\"fail/0\"><code>fail/0</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that always fails. See also\n<code><a href=\"refT.html#true/0\">true/0</a></code>.\n\n<pre>\n: (? (fail))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"fd\"><code>(fd ['cnt]) -> cnt</code></a></dt>\n<dd>Return the current file descriptor, typically of the closest <code><a\nhref=\"refI.html#in\">in</a></code> or <code><a\nhref=\"refO.html#out\">out</a></code> channel. If a second file descriptor\n<code>cnt</code> is given, the current file descriptor is copied to it using a\n<code>dup2()</code> system call. See also <code><a\nhref=\"refI.html#ipid\">ipid</a></code> and <code><a\nhref=\"refO.html#opid\">opid</a></code>.\n\n<pre>\n: (in \"@lib.l\" (fd))\n-> 3\n</pre></dd>\n\n<dt><a id=\"fetch\"><code>(fetch 'tree 'any) -> any</code></a></dt>\n<dd>Fetches a value for the key <code>any</code> from a database tree. See also\n<code><a href=\"refT.html#tree\">tree</a></code> and <code><a\nhref=\"refS.html#store\">store</a></code>.\n\n<pre>\n: (fetch (tree 'nr '+Item) 2)\n-> {B2}\n</pre></dd>\n\n<dt><a id=\"fifo\"><code>(fifo 'var ['any ..]) -> any</code></a></dt>\n<dd>Implements a first-in-first-out structure using a circular list. When called\nwith <code>any</code> arguments, they will be concatenated to end of the\nstructure. Otherwise, the first element is removed from the structure and\nreturned. See also <code><a href=\"refQ.html#queue\">queue</a></code>, <code><a\nhref=\"refP.html#push\">push</a></code>, <code><a\nhref=\"refP.html#pop\">pop</a></code>, <code><a\nhref=\"refR.html#rid\">rid</a></code>, <code><a\nhref=\"refR.html#rot\">rot</a></code> and <code><a\nhref=\"refC.html#circ\">circ</a></code>.\n\n<pre>\n: (fifo 'X 1)\n-> 1\n: (fifo 'X 2 3)\n-> 3\n: X\n-> (3 1 2 .)\n: (fifo 'X)\n-> 1\n: (fifo 'X)\n-> 2\n: X\n-> (3 .)\n</pre></dd>\n\n<dt><a id=\"file\"><code>(file) -> (sym1 sym2 . num) | NIL</code></a></dt>\n<dd>Returns for the current input channel the path name <code>sym1</code>, the\nfile name <code>sym2</code>, and the current line number <code>num</code>. If\nthe current input channel is not a file, <code>NIL</code> is returned. See also\n<code><a href=\"refI.html#info\">info</a></code>, <code><a\nhref=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refL.html#load\">load</a></code>.\n\n<pre>\n: (load (pack (car (file)) \"localFile.l\"))  # Load a file in same directory\n</pre></dd>\n\n<dt><a id=\"fill\"><code>(fill 'any ['sym|lst]) -> any</code></a></dt>\n<dt><code>(fill 'any ['cnt|sym] 'any2) -> any</code></dt>\n<dd>Non-destructively fills a pattern <code>any</code>, by substituting\n<code>sym</code>, or all symbols in <code>lst</code>, or - if no second argument\nis given - each pattern symbol in <code>any</code> (see <code><a\nhref=\"refP.html#pat?\">pat?</a></code>), with its current value. <code>@</code>\nitself is not considered a pattern symbol here. In any case, expressions\nfollowing the symbol <code>^</code> are evaluated and the results\n(destructively) spliced into the result. In the second form, all occurrences of\nthe second argument are simply replaced by <code>any2</code>. In both cases,\nunmodified subexpressions are shared.\n\nSee also <code><a href=\"refM.html#match\">match</a></code>.\n\n<pre>\n: (setq  @X 1234  @Y (1 2 3 4))\n-> (1 2 3 4)\n: (fill '@X)\n-> 1234\n: (fill '(a b (c @X) ((@Y . d) e)))\n-> (a b (c 1234) (((1 2 3 4) . d) e))\n: (let X 2 (fill (1 X 3) 'X))\n-> (1 2 3)\n\n: (fill (1 ^(list 'a 'b 'c) 9))\n-> (1 a b c 9)\n: (fill (1 ^(+ 2 3) 7))\n-> (1 5 7)\n\n: (fill (1 (a (b . 2) c) 3) 'b 7)\n-> (1 (a (7 . 2) c) 3)\n: (fill (1 (a (b . 2) c) 3) 2 123)\n-> (1 (a (b . 123) c) 3)\n\n: (match '(This is @X) '(This is a pen))\n-> T\n: (fill '(Got ^ @X))\n-> (Got a pen)\n</pre></dd>\n\n<dt><a id=\"filter\"><code>(filter 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns a list of all elements of <code>lst</code> where\n<code>fun</code> returned non-<code>NIL</code>. See also <code><a\nhref=\"refF.html#fish\">fish</a></code>, <code><a\nhref=\"refF.html#find\">find</a></code>, <code><a\nhref=\"refP.html#pick\">pick</a></code> and <code><a\nhref=\"refE.html#extract\">extract</a></code>.\n\n<pre>\n: (filter num? (1 A 2 (B) 3 CDE))\n-> (1 2 3)\n: (filter &lt; (2 9 3 8 4 7) (5 4 3 9 9 5))\n-> (2 8 4)\n: (filter and (1 NIL 3 NIL 5) (2 3 4 5 6) (7 8 NIL 1 1))\n-> (1 5)\n: (filter and (range 1 22) '(NIL NIL T .))\n-> (3 6 9 12 15 18 21)\n</pre></dd>\n\n<dt><a id=\"fin\"><code>(fin 'any) -> num|sym</code></a></dt>\n<dd>Returns <code>any</code> if it is an atom, otherwise the CDR of its last\ncell. See also <code><a href=\"refL.html#last\">last</a></code> and <code><a\nhref=\"refT.html#tail\">tail</a></code>.\n\n<pre>\n: (fin 'a)\n-> a\n: (fin '(a . b))\n-> b\n: (fin '(a b . c))\n-> c\n: (fin '(a b c))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"finally\"><code>(finally exe . prg) -> any</code></a></dt>\n<dd><code>prg</code> is executed, then <code>exe</code> is evaluated, and the\nresult of <code>prg</code> is returned. <code>exe</code> will also be evaluated\nif <code>prg</code> does not terminate normally due to a runtime error or a call\nto <code><a href=\"refT.html#throw\">throw</a></code>. See also <code><a\nhref=\"refB.html#bye\">bye</a></code>, <code><a\nhref=\"refC.html#catch\">catch</a></code>, <code><a\nhref=\"refQ.html#quit\">quit</a></code> and <code><a href=\"ref.html#errors\">Error\nHandling</a></code>.\n\n<pre>\n: (finally (prinl \"Done!\")\n   (println 123)\n   (quit)\n   (println 456) )\n123\nDone!\n: (catch 'A\n   (finally (prinl \"Done!\")\n      (println 1)\n      (throw 'A 123)\n      (println 2) ) )\n1\nDone!\n-> 123\n</pre></dd>\n\n<dt><a id=\"find\"><code>(find 'fun 'lst ..) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to successive elements of <code>lst</code> until\nnon-<code>NIL</code> is returned. Returns that element (and stores the\nnon-<code>NIL</code> value in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>), or <code>NIL</code> if <code>fun</code> did\nnot return non-<code>NIL</code> for any element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. See also <code><a href=\"refS.html#seek\">seek</a></code>,\n<code><a href=\"refP.html#pick\">pick</a></code>, <code><a\nhref=\"refF.html#fully\">fully</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (find pair (1 A 2 (B) 3 CDE))\n-> (B)\n: (find '((A B) (> A B)) (1 2 3 4 5 6) (6 5 4 3 2 1))\n-> 4\n: (find > (1 2 3 4 5 6) (6 5 4 3 2 1))  # shorter\n-> 4\n</pre></dd>\n\n\n<dt><a id=\"finish\"><code>(finish . prg) -> exe</code></a></dt>\n<dd>Pushes the expressions in <code>prg</code> into the global <code><a\nhref=\"refB.html#*Bye\">*Bye</a></code> in reverse order, to be executed just\nbefore the termination of the PicoLisp interpreter. <code>(finish (foo)\n(bar))</code> is equivalent to <code>(push '*Bye '(bar) '(foo))</code> See also\n<code><a href=\"refB.html#bye\">bye</a></code> and <code><a\nhref=\"refO.html#once\">once</a></code>.\n\n<pre>\n: (finish (call \"rm\" \"myfile.tmp\"))  # Remove a temporary file\n-> (call 'rm \"myfile.tmp\")\n</pre></dd>\n\n<dt><a id=\"fish\"><code>(fish 'fun 'any ['any2] ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to each element - and recursively to all sublists -\nof <code>any</code>. Returns a list of all items where <code>fun</code> returned\nnon-<code>NIL</code>. If <code>any2</code> is non-<code>NIL</code>, it may be\nreturned by <code>fun</code> to cause the corresponding item or (sub-)list to be\nskipped. When additional <code>any</code> arguments are given, they are also\npassed to <code>fun</code>. See also <code><a\nhref=\"refS.html#seek\">seek</a></code>,\n\nSee also <code><a href=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (fish atom '((a b) c (d e)))\n-> (a b c d e)\n: (fish sym? '(a -2 (1 b (-3 c 2)) 3 d -1 7))\n-> (a b c d)\n: (fish gt0 '(a -2 (1 b (-3 c 2)) 3 d -1 7))\n-> (1 2 3 7)\n: (fish &lt; '(a -2 (1 b (-3 c 2)) 3 d -1 7) NIL 2)\n-> (-2 1 -3 -1)\n: (fish\n   '((X)\n      (if (and (pair X) (=1 (car X)))\n         \"skip\"  # Transient symbol (pointer equal)\n         (gt0 X) ) )\n   '(a -2 (1 b (-3 c 2)) 3 d -1 7)\n   \"skip\" )\n-> (3 7)\n: (fish == '(a 1 (b (3 b)) 3) NIL 'b)\n-> (b b)\n</pre></dd>\n\n<dt><a id=\"flg?\"><code>(flg? 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is either\n<code>NIL</code> or <code>T</code>. See also <code><a\nhref=\"refB.html#bool\">bool</a></code>. <code>(flg? X)</code> is equivalent to\n<code>(or (not X) (=T X))</code>.\n\n<pre>\n: (flg? (= 3 3))\n-> T\n: (flg? (= 3 4))\n-> T\n: (flg? (+ 3 4))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"flip\"><code>(flip 'lst ['cnt]) -> lst</code></a></dt>\n<dd>Returns <code>lst</code> (destructively) reversed. Without the optional\n<code>cnt</code> argument, the whole list is flipped, otherwise only the first\n<code>cnt</code> elements. See also <code><a\nhref=\"refR.html#reverse\">reverse</a></code> and <code><a\nhref=\"refR.html#rot\">rot</a></code>.\n\n<pre>\n: (flip (1 2 3 4))         # Flip all  four elements\n-> (4 3 2 1)\n: (flip (1 2 3 4 5 6) 3)   # Flip only the first three elements\n-> (3 2 1 4 5 6)\n</pre></dd>\n\n<dt><a id=\"flood\"><code>(flood 'lst1 'fun 'lst2) -> lst</code></a></dt>\n<dd>Implements a flooding algorithm, returning a list of flooded nodes of a\ngraph. <code>lst1</code> is a list of relevant nodes, <code>fun</code> a\nfunction accepting a node and returning a list of connected nodes, and\n<code>lst2</code> a list of seed nodes.\n\n<pre>\n(load \"@lib/simul.l\")\n\n: (setq *Graph (1 2 3 4 5))         # For simplicity, a one-dimensional \"graph\"\n-> (1 2 3 4 5)\n\n: (simul~flood\n   (maplist prog *Graph)            # List of relevant cells\n   '((X)                            # Flood the three central cells (2 3 4)\n      (when (member (car X) (2 3))  # 2 -> 3 and 3 -> 4\n         (list (cdr X)) ) )\n   (list (cddr *Graph)) )           # Seed third (middle) cell\n-> ((3 4 5) (2 3 4 5) (4 5))        # -> Cells (3 ..) (2 ..) (4 ..)\n</pre></dd>\n\n<dt><a id=\"flush\"><code>(flush) -> flg</code></a></dt>\n<dd>Flushes the current output stream by writing all buffered data. A call to\n<code>flush</code> for standard output is done automatically before a call to\n<code><a href=\"refK.html#key\">key</a></code>. Returns <code>T</code> when\nsuccessful. See also <code><a href=\"refR.html#rewind\">rewind</a></code>.\n\n<pre>\n: (flush)\n-> T\n</pre></dd>\n\n<dt><a id=\"fold\"><code>(fold 'any ['cnt]) -> sym</code></a></dt>\n<dd>Folding to a canonical form: If <code>any</code> is not a symbol, it is\nreturned as it is. Otherwise, a new transient symbol with all digits and all\nletters of <code>any</code>, converted to lower case, is returned. If the\n<code>cnt</code> argument is given and non-zero, the result is truncated to that\nlength. See also <code><a href=\"refL.html#lowc\">lowc</a></code>.\n\n<pre>\n: (fold \" 1A 2-b/3\")\n-> \"1a2b3\"\n: (fold \" 1A 2-B/3\" 3)\n-> \"1a2\"\n</pre></dd>\n\n<dt><a id=\"fold/3\"><code>fold/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument, after <code><a href=\"refF.html#fold\">fold</a></code>ing it to\na canonical form, is a <i>prefix</i> of the folded string representation\nof the result of applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to the following\narguments. Typically used as filter predicate in <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"refP.html#pre?\">pre?</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (?\n   @Nr (1 . 5)\n   @Nm \"main\"\n   (select (@Item)\n      ((nr +Item @Nr) (nm +Item @Nm))\n      (range @Nr @Item nr)\n      (fold @Nm @Item nm) ) )\n @Nr=(1 . 5) @Nm=\"main\" @Item={B1}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"for\"><code>(for sym 'cnt ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any</code></a></dt>\n<dt><code>(for sym|(sym2 . sym) 'lst ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any</code></dt>\n<dt><code>(for (sym|(sym2 . sym) 'any1 'any2 [. prg]) ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any</code></dt>\n<dd>Conditional loop with local variable(s) and multiple conditional exits:<br>\nIn the first form, the value of <code>sym</code> is saved, <code>sym</code> is\nbound to <code>1</code>, and the body is executed with increasing values up to\n(and including) <code>cnt</code>.<br>\n\nIn the second form, the value of <code>sym</code> is saved, <code>sym</code> is\nsubsequently bound to the elements of <code>lst</code>, and the body is executed\neach time.<br>\n\nIn the third form, the value of <code>sym</code> is saved, and <code>sym</code>\nis bound to <code>any1</code>. If <code>sym2</code> is given, it is treated as a\ncounter variable, first bound to 1 and then incremented for each execution of\nthe body. While the condition <code>any2</code> evaluates to\nnon-<code>NIL</code>, the body is repeatedly executed and, if <code>prg</code>\nis given, <code>sym</code> is re-bound to the result of its evaluation.<br>\n\nIf a clause has <code>NIL</code> or <code>T</code> as its CAR, the clause's\nsecond element is evaluated as a condition and - if the result is\n<code>NIL</code> or non-<code>NIL</code>, respectively - the <code>prg</code> is\nexecuted and the result returned. If the body is never executed,\n<code>NIL</code> is returned.<br>\n\nSee also <code><a href=\"refD.html#do\">do</a></code> and <code><a\nhref=\"refL.html#loop\">loop</a></code>.\n\n<pre>\n# First form:\n: (for N 5 (printsp N))\n1 2 3 4 5 -> 5\n: (for N 5 (printsp N) (NIL (&lt; N 3) (printsp 'enough)))\n1 2 3 enough -> enough\n: (for N 5 (T (&gt; N 3) (printsp 'enough)) (printsp N))\n1 2 3 enough -> enough\n\n# Second form:\n: (for X (1 a 2 b) (printsp X))\n1 a 2 b -> b\n: (for (I . X) '(a b c) (println I X))\n1 a\n2 b\n3 c\n-> c\n\n# Third form:\n: (for (L (1 2 3 4 5) L) (printsp (pop 'L)))\n1 2 3 4 5 -> 5\n: (for (N 1 (>= 5 N) (inc N)) (printsp N))\n1 2 3 4 5 -> 5\n: (for ((I . L) '(a b c d e f) L (cddr L)) (println I L))\n1 (a b c d e f)\n2 (c d e f)\n3 (e f)\n-> (e f)\n</pre></dd>\n\n<dt><a id=\"for/2\"><code>for/2</code></a></dt>\n<dt><a id=\"for/3\"><code>for/3</code></a></dt>\n<dt><a id=\"for/4\"><code>for/4</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that generates a sequence of\nnumbers. See also <code><a href=\"refF.html#for\">for</a></code> and <code><a\nhref=\"refR.html#range\">range</a></code>.\n\n<pre>\n: (? (for @I 3))\n @I=1\n @I=2\n @I=3\n-> NIL\n\n: (? (for @I 3 7))\n @I=3\n @I=4\n @I=5\n @I=6\n @I=7\n-> NIL\n\n: (? (for @I 7 3 2))\n @I=7\n @I=5\n @I=3\n-> NIL\n\n: (? (for @N T))\n @N=1\n @N=2\n @N=3\n ...\n</pre></dd>\n\n<dt><a id=\"forall\"><code>(forall 'cls . prg) -> any</code></a></dt>\n<dt><code>(forall '(cnt . cls) . prg) -> any</code></dt>\n<dt><code>(forall 'lst . prg) -> any</code></dt>\n<dd>Runs <code>prg</code> on all database objects of the class <code>cls</code>\n(as given by the <code><a href=\"refD.html#dbs\">dbs</a></code> definition, or\nusing the <code>cnt</code>'th database file instead of the <code>dbs</code>\ndefault), or on a <code>lst</code> query structure as returned by <code><a\nhref=\"refI.html#init\">init</a></code> or <code><a\nhref=\"refS.html#search\">search</a></code>. In all cases, the global variable\n<code><a href=\"refT.html#This\">This</a></code> is bound to each object (and\n<code><a href=\"ref_.html#@@\">@@</a></code> is bound to the key in case of\n<code>init</code>). See also <code><a href=\"refS.html#seq\">seq</a></code> and\n<code><a href=\"refC.html#collect\">collect</a></code>.\n\n<pre>\n: (forall '+Item (println (: nr) (: nm)))\n1 \"Main Part\"\n2 \"Spare Part\"\n3 \"Auxiliary Construction\"\n4 \"Enhancement Additive\"\n5 \"Metal Fittings\"\n6 \"Gadget Appliance\"\n\n: (forall (init '(nr . +Item) 2 4)\n   (println @@ (: nr) (: nm)) )\n2 2 \"Spare Part\"\n2 3 \"Auxiliary Construction\"\n2 4 \"Enhancement Additive\"\n\n: (forall\n   (search\n      (1 . 4) '((nr +Item))\n      \"pa\" '((nm +Item)) )\n   (println (: nr) (: nm)) )\n1 \"Main Part\"\n2 \"Spare Part\"\n</pre></dd>\n\n<dt><a id=\"fork\"><code>(fork) -> pid | NIL</code></a></dt>\n<dd>Forks a child process. Returns <code>NIL</code> in the child, and the\nchild's process ID <code>pid</code> in the parent. In the child, the\n<code>VAL</code> of the global variable <code><a\nhref=\"refF.html#*Fork\">*Fork</a></code> (should be a <code>prg</code>) is\nexecuted. See also <code><a href=\"refE.html#exec\">exec</a></code>, <code><a\nhref=\"refD.html#detach\">detach</a></code>, <code><a\nhref=\"refK.html#kids\">kids</a></code>, <code><a\nhref=\"refP.html#pipe\">pipe</a></code> and <code><a\nhref=\"refT.html#tell\">tell</a></code>.\n\n<pre>\n: (unless (fork) (do 5 (println 'OK) (wait 1000)) (bye))\n-> NIL\nOK                                              # Child's output\n: OK\nOK\nOK\nOK\n</pre></dd>\n\n<dt><a id=\"format\"><code>(format 'num ['cnt ['sym1 ['sym2]]]) -> sym</code></a></dt>\n<dt><code>(format 'sym|lst ['cnt ['sym1 ['sym2]]]) -> num</code></dt>\n<dd>Converts a number <code>num</code> to a string, or a string\n<code>sym|lst</code> to a number. In both cases, optionally a precision\n<code>cnt</code>, a decimal-separator <code>sym1</code> and a\nthousands-separator <code>sym2</code> can be supplied. Returns\n<code>NIL</code> if the conversion is unsuccessful. See also <a\nhref=\"ref.html#num-io\">Numbers</a>, <code><a\nhref=\"refP.html#pad\">pad</a></code>, <code><a\nhref=\"refH.html#hex\">hex</a></code>, <code><a\nhref=\"refO.html#oct\">oct</a></code>, <code><a\nhref=\"refB.html#bin\">bin</a></code> and <code><a\nhref=\"refR.html#round\">round</a></code>.\n\n<pre>\n: (format 123456789)                   # Integer conversion\n-> \"123456789\"\n: (format 123456789 2)                 # Fixed point\n-> \"1234567.89\"\n: (format 123456789 2 \",\")             # Comma as decimal-separator\n-> \"1234567,89\"\n: (format 123456789 2 \",\" \".\")         # and period as thousands-separator\n-> \"1.234.567,89\"\n\n: (format \"123456789\")                 # String to number\n-> 123456789\n: (format (1 \"23\" (4 5 6)))\n-> 123456\n: (format \"1234567.89\" 4)              # scaled to four digits\n-> 12345678900\n: (format \"1.234.567,89\")              # separators not recognized\n-> NIL\n: (format \"1234567,89\" 4 \",\")\n-> 12345678900\n: (format \"1.234.567,89\" 4 \",\")        # thousands-separator not recognized\n-> NIL\n: (format \"1.234.567,89\" 4 \",\" \".\")\n-> 12345678900\n</pre></dd>\n\n<dt><a id=\"free\"><code>(free 'cnt) -> (sym . lst)</code></a></dt>\n<dd>Returns, for the <code>cnt</code>'th database file, the next available\nsymbol <code>sym</code> (i.e. the first symbol greater than any symbol in the\ndatabase), and the list <code>lst</code> of free symbols. See also <code><a\nhref=\"refS.html#seq\">seq</a></code>, <code><a\nhref=\"refZ.html#zap\">zap</a></code> and <code><a\nhref=\"refD.html#dbck\">dbck</a></code>.\n\n<pre>\n: (pool \"x\")      # A new database\n-> T\n: (new T)         # Create a new symbol\n-> {2}\n: (new T)         # Create another symbol\n-> {3}\n: (commit)        # Commit changes\n-> T\n: (zap '{2})      # Delete the first symbol\n-> {2}\n: (free 1)        # Show free list\n-> ({4})          # {3} was the last symbol allocated\n: (commit)        # Commit the deletion of {2}\n-> T\n: (free 1)        # Now {2} is in the free list\n-> ({4} {2})\n</pre></dd>\n\n<dt><a id=\"from\"><code>(from 'any ..) -> sym</code></a></dt>\n<dd>Skips the current input channel until one of the strings <code>any</code> is\nfound, and starts subsequent reading from that point. The found <code>any</code>\nargument (or <code>NIL</code> if none is found) is returned. See also <code><a\nhref=\"refT.html#till\">till</a></code> and <code><a\nhref=\"refE.html#echo\">echo</a></code>.\n\n<pre>\n: (and (from \"val='\") (till \"'\" T))\ntest val='abc'\n-> \"abc\"\n</pre></dd>\n\n<dt><a id=\"full\"><code>(full 'any) -> bool</code></a></dt>\n<dd>Returns <code>NIL</code> if <code>any</code> is a non-empty list with at\nleast one <code>NIL</code> element, otherwise <code>T</code>. <code>(full\nX)</code> is equivalent to <code>(not (memq NIL X))</code>. See also <code><a\nhref=\"refF.html#fully\">fully</a></code>.\n\n<pre>\n: (full (1 2 3))\n-> T\n: (full (1 NIL 3))\n-> NIL\n: (full 123)\n-> T\n</pre></dd>\n\n<dt><a id=\"fully\"><code>(fully 'fun 'lst ..) -> flg</code></a></dt>\n<dd>Applies <code>fun</code> to successive elements of <code>lst</code>, and\nreturns <code>NIL</code> immediately if one of the results is <code>NIL</code>.\nOtherwise, <code>T</code> is returned. When additional <code>lst</code>\narguments are given, their elements are also passed to <code>fun</code>.\n<code>(fully foo Lst)</code> is equivalent to <code>(not (find '((X) (not (foo\nX))) Lst))</code>. See also <code><a href=\"refF.html#find\">find</a></code> and\n<code><a href=\"refF.html#full\">full</a></code>.\n\n<pre>\n: (fully gt0 (1 2 3))\n-> T\n: (fully gt0 (1 -2 3))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"fun\"><code>(fun 'fun ['any ..]) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to the <code>any</code> arguments. <code>(fun foo\n'args)</code> is equivalent to <code>(foo 'args)</code>, and <code>(fun (expr)\n'args)</code> is equivalent to <code>((expr) 'args)</code>. See also <code><a\nhref=\"refA.html#apply\">apply</a></code> and <code><a\nhref=\"refP.html#pass\">pass</a></code>.\n\n<pre>\n: (find fun '(sym? ((X) (> X 3)) num?) 'a)\n-> sym?\n: (find fun '(sym? ((X) (> X 3)) num?) 3)\n-> num?\n: (find fun '(sym? ((X) (> X 3)) num?) 4)\n-> ((X) (> X 3))\n</pre></dd>\n\n<dt><a id=\"fun?\"><code>(fun? 'any) -> any</code></a></dt>\n<dd>Returns <code>NIL</code> when the argument <code>any</code> is neither a\nnumber suitable for a code-pointer, nor a list suitable for a lambda expression\n(function). Otherwise a number is returned for a code-pointer, <code>T</code>\nfor a function without arguments, and a single formal parameter or a list of\nformal parameters for a function. See also <code><a\nhref=\"refG.html#getd\">getd</a></code>.\n\n<pre>\n: (fun? 1000000000)              # Might be a code pointer\n-> 1000000000\n: (fun? 10000000000000000000)    # Too big for a code pointer\n-> NIL\n: (fun? '((A B) (* A B)))        # Lambda expression\n-> (A B)\n: (fun? '((A B) (* A B) . C))    # Not a lambda expression\n-> NIL\n: (fun? '(1 2 3 4))              # Not a lambda expression\n-> NIL\n: (fun? '((A 2 B) (* A B)))      # Not a lambda expression\n-> NIL\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refG.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 04jun25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>G</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>G</h1>\n\n<dl>\n\n<dt><a id=\"gc\"><code>(gc ['cnt [cnt2]]) -> cnt | NIL</code></a></dt>\n<dd>Forces a garbage collection. When <code>cnt</code> is given, so many\nmegabytes of free cells are reserved, increasing the heap size if necessary. If\n<code>cnt</code> is zero, all currently unused heap blocks are purged,\ndecreasing the heap size if possible. If <code>cnt2</code> is given, the reserve\nsize (defaults to 1 megabyte) is set to that value. See also <code><a\nhref=\"refH.html#heap\">heap</a></code>.\n\n<pre>\n: (gc)\n-> NIL\n: (heap)\n-> 2\n: (gc 4)\n-> 4\n: (heap)\n-> 5\n</pre></dd>\n\n<dt><a id=\"ge0\"><code>(ge0 'any) -> num | NIL</code></a></dt>\n<dd>Returns <code>num</code> when the argument is a number and greater or equal\nzero, otherwise <code>NIL</code>. See also <code><a\nhref=\"refL.html#lt0\">lt0</a></code>, <code><a\nhref=\"refL.html#le0\">le0</a></code>, <code><a\nhref=\"refG.html#gt0\">gt0</a></code>, <code><a href=\"ref_.html#=0\">=0</a></code>\nand <code><a href=\"refN.html#n0\">n0</a></code>.\n\n<pre>\n: (ge0 -2)\n-> NIL\n: (ge0 3)\n-> 3\n: (ge0 0)\n-> 0\n</pre></dd>\n\n<dt><a id=\"genKey\"><code>(genKey 'sym 'cls ['hook ['num1 ['num2]]]) -> num</code></a></dt>\n<dd>Generates a key for a database tree. If a minimal key <code>num1</code>\nand/or a maximal key <code>num2</code> is given, the next free number in that\nrange is returned. Otherwise, the current maximal key plus one is returned. See\nalso <code><a href=\"refU.html#useKey\">useKey</a></code>, <code><a\nhref=\"refG.html#genStrKey\">genStrKey</a></code> and <code><a\nhref=\"refM.html#maxKey\">maxKey</a></code>.\n\n<pre>\n: (maxKey (tree 'nr '+Item))\n-> 8\n: (genKey 'nr '+Item)\n-> 9\n</pre></dd>\n\n<dt><a id=\"genStrKey\"><code>(genStrKey 'sym 'sym 'cls ['hook]) -> sym</code></a></dt>\n<dd>Generates a unique string for a database tree, by prepending as many \"# \"\nsequences as necessary. See also <code><a\nhref=\"refG.html#genKey\">genKey</a></code>.\n\n<pre>\n: (genStrKey \"ben\" 'nm '+User)\n-> \"# ben\"\n</pre></dd>\n\n<dt><a id=\"get\"><code>(get 'sym1|lst ['sym2|cnt ..]) -> any</code></a></dt>\n<dd>Fetches a value <code>any</code> from the properties of a symbol, or from a\nlist. From the first argument <code>sym1|lst</code>, values are retrieved in\nsuccessive steps by either extracting the value (if the next argument is zero)\nor a property from a symbol, the CDR of an <code><a\nhref=\"refA.html#asoq\">asoq</a></code>ed element (if the next argument is a\nsymbol), the n'th element (if the next argument is a positive number) or the\nn'th CDR (if the next argument is a negative number) from a list. See also\n<code><a href=\"refP.html#put\">put</a></code>, <code><a\nhref=\"ref_.html#;\">;</a></code>, <code><a href=\"ref_.html#:\">:</a></code> and\n<code><a href=\"refN.html#nth\">nth</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (get 'X 'a)\n-> 1\n: (put 'Y 'link 'X)\n-> X\n: (get 'Y 'link)\n-> X\n: (get 'Y 'link 'a)\n-> 1\n: (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'a 'b)\n-> 1\n: (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'd 'f)\n-> 4\n: (get '(X Y Z) 2)\n-> Y\n: (get '(X Y Z) 2 'link 'a)\n-> 1\n</pre></dd>\n\n<dt><a id=\"getd\"><code>(getd 'any) -> fun | NIL</code></a></dt>\n<dd>Returns <code>fun</code> if <code>any</code> is a symbol that has a function\ndefinition, otherwise <code>NIL</code>. See also <code><a\nhref=\"refF.html#fun?\">fun?</a></code>.\n\n<pre>\n: (getd '+)\n-> 67327232\n: (getd 'script)\n-> ((File . @) (load File))\n: (getd 1)\n-> NIL\n\n: ht:Fmt             # Initially undefined\n-> NIL\n: (getd 'ht:Fmt)     # Check shared library\n-> 8790207171188\n: ht:Fmt             # Now defined\n-> 8790207171188\n</pre></dd>\n\n<dt><a id=\"getl\"><code>(getl 'sym1|lst1 ['sym2|cnt ..]) -> lst</code></a></dt>\n<dd>Fetches the complete property list <code>lst</code> from a symbol. That\nsymbol is <code>sym1</code> (if no other arguments are given), or a symbol found\nby applying the <code><a href=\"refG.html#get\">get</a></code> algorithm to\n<code>sym1|lst1</code> and the following arguments. See also <code><a\nhref=\"refP.html#putl\">putl</a></code> and <code><a\nhref=\"refM.html#maps\">maps</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (put 'X 'b 2)\n-> 2\n: (put 'X 'flg T)\n-> T\n: (getl 'X)\n-> (flg (2 . b) (1 . a))\n</pre></dd>\n\n<dt><a id=\"glue\"><code>(glue 'any 'lst) -> sym</code></a></dt>\n<dd>Builds a new transient symbol (string) by <code><a\nhref=\"refP.html#pack\">pack</a></code>ing the <code>any</code> argument between\nthe individual elements of <code>lst</code>. See also <code><a\nhref=\"refT.html#text\">text</a></code>.\n\n<pre>\n: (glue \",\" '(a b c d))\n-> \"a,b,c,d\"\n</pre></dd>\n\n<dt><a id=\"goal\"><code>(goal '([pat 'any ..] . lst) ['sym 'any ..]) -> lst</code></a></dt>\n<dd>Constructs a <a href=\"ref.html#pilog\">Pilog</a> query list from the list of\nclauses <code>lst</code>. The head of the argument list may consist of a\nsequence of pattern symbols (Pilog variables) and expressions, which are used\ntogether with the optional <code>sym</code> and <code>any</code> arguments to\nform an initial environment. See also <code><a\nhref=\"refP.html#prove\">prove</a></code> and <code><a\nhref=\"refF.html#fail\">fail</a></code>.\n\n<pre>\n: (goal '((likes John @X)))\n-> (((1 (0) NIL ((likes John @X)) NIL T)))\n: (goal '(@X 'John (likes @X @Y)))\n-> (((1 (0) NIL ((likes @X @Y)) NIL ((0 . @X) 1 . John) T)))\n</pre></dd>\n\n<dt><a id=\"group\"><code>(group 'lst ['flg]) -> lst</code></a></dt>\n<dd>Builds a list of lists, by grouping all elements of <code>lst</code> with\nthe same CAR into a common sublist. If the list is known to be pre-grouped, a\nnon-<code>NIL</code> <code>flg</code> argument may be passed for faster\nexecution. See also <a href=\"ref.html#cmp\">Comparing</a>, <code><a\nhref=\"refB.html#by\">by</a></code>, <code><a\nhref=\"refS.html#sort\">sort</a></code> and <code><a\nhref=\"refU.html#uniq\">uniq</a></code>.\n\n<pre>\n: (group '((1 . a) (1 . b) (1 . c) (2 . d) (2 . e) (2 . f)))\n-> ((1 a b c) (2 d e f))\n: (by name group '(\"x\" \"x\" \"y\" \"z\" \"x\" \"z\"))\n-> ((\"x\" \"x\" \"x\") (\"y\") (\"z\" \"z\"))\n: (by length group '(123 (1 2) \"abcd\" \"xyz\" (1 2 3 4) \"XY\"))\n-> ((123 \"xyz\") ((1 2) \"XY\") (\"abcd\" (1 2 3 4))\n</pre></dd>\n\n<dt><a id=\"gt0\"><code>(gt0 'any) -> num | NIL</code></a></dt>\n<dd>Returns <code>num</code> when the argument is a number and greater than\nzero, otherwise <code>NIL</code>. See also <code><a\nhref=\"refL.html#lt0\">lt0</a></code>, <code><a\nhref=\"refL.html#le0\">le0</a></code>, <code><a\nhref=\"refG.html#ge0\">ge0</a></code>, <code><a href=\"ref_.html#=0\">=0</a></code>\nand <code><a href=\"refN.html#n0\">n0</a></code>.\n\n<pre>\n: (gt0 -2)\n-> NIL\n: (gt0 3)\n-> 3\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refH.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 30may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>H</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>H</h1>\n\n<dl>\n\n<dt><a id=\"*Hup\"><code>*Hup</code></a></dt>\n<dd>Global variable holding a (possibly empty) <code>prg</code> body, which will\nbe executed when a SIGHUP signal is sent to the current process. See also\n<code><a href=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n: (de *Hup (msg 'SIGHUP))\n-> *Hup\n</pre></dd>\n\n<dt><a id=\"+Hook\"><code>+Hook</code></a></dt>\n<dd>Prefix class for <code><a href=\"refR.html#+relation\">+relation</a></code>s,\ntypically <code><a href=\"refL.html#+Link\">+Link</a></code> or <code><a\nhref=\"refJ.html#+Joint\">+Joint</a></code>. In essence, this maintains an local\ndatabase in the referred object. See also <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel sup (+Hook +Link) (+Sup))   # Supplier\n(rel nr (+Key +Number) sup)      # Item number, unique per supplier\n(rel dsc (+Ref +String) sup)     # Item description, indexed per supplier\n</pre></dd>\n\n<dt><a id=\"+Hook2\"><code>+Hook2</code></a></dt>\n<dd>Prefix class for <code><a href=\"refI.html#+index\">+index</a></code>\nrelations. It maintains both a normal (global) index, and an object-local index\nin the corresponding <code><a href=\"refH.html#+Hook\">+Hook</a></code> object.\nSee also <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+Hook2 +IdxFold +String) 3 shop)       # Global and shop-local index\n</pre></dd>\n\n<dt><a id=\"h\"><code>(h) -> flg</code></a></dt>\n<dd>(Debug mode only) Edits the history in memory with Vip. Returns\n<code>T</code> if Vip was exited with \"x\" and <code>NIL</code> if exited with\n\"q\". See also <code><a href=\"refH.html#history\">history</a></code> and <code><a\nhref=\"refV.html#vi\">vi</a></code>.\n\n<pre>\n: (h)    # Edit history\n-> T     # \"x\"\n</pre></dd>\n\n<dt><a id=\"has\"><code>(has 'any) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all internal symbols which have the\nvalue <code>any</code>. See also <code><a href=\"refW.html#who\">who</a></code>,\n<code><a href=\"refC.html#can\">can</a></code>, <code><a\nhref=\"refW.html#what\">what</a></code> and <code><a\nhref=\"refD.html#dep\">dep</a></code>.\n\n<pre>\n: +\n-> 270310\n: (has 270310)\n-> (+ @)\n: meth\n-> 267259\n: (has 267259)\n-> (@ js> dec> inc> upd> ele> log> chk> val> del> rel> all> url> zap> clr> str> has>\n</pre></dd>\n\n<dt><a id=\"hash\"><code>(hash 'any) -> cnt</code></a></dt>\n<dd>Generates a 20-bit number (1-1048576) from <code>any</code>, suitable as a\nhash value for various purposes, like randomly balanced <code><a\nhref=\"refI.html#idx\">idx</a></code> structures. See also <code><a\nhref=\"refC.html#cache\">cache</a></code>, <code><a\nhref=\"refE.html#enum\">enum</a></code>, <code><a\nhref=\"refR.html#rev\">rev</a></code> and <code><a\nhref=\"refS.html#seed\">seed</a></code>.\n\n<pre>\n: (hash 0)\n-> 1\n: (hash 1)\n-> 723519\n: (hash \"abc\")\n-> 557424\n</pre></dd>\n\n<dt><a id=\"hax\"><code>(hax 'num) -> sym</code></a></dt>\n<dt><code>(hax 'sym) -> num</code></dt>\n<dd>Converts a number <code>num</code> to a string in hexadecimal/alpha\nnotation, or a hexadecimal/alpha formatted string to a number. The digits are\nrepresented with '<code>@</code>' (zero) and the letters '<code>A</code>' -\n'<code>O</code>' (from \"alpha\" to \"omega\"). This format is used internally for\nthe names of <code><a href=\"ref.html#external-io\">external symbols</a></code>.\nSee also <code><a href=\"refH.html#hex\">hex</a></code>, <code><a\nhref=\"refB.html#bin\">bin</a></code> and <code><a\nhref=\"refO.html#oct\">oct</a></code>.\n\n<pre>\n: (hax 7)\n-> \"G\"\n: (hax 16)\n-> \"A@\"\n: (hax 255)\n-> \"OO\"\n: (hax \"A\")\n-> 1\n</pre></dd>\n\n<dt><a id=\"hd\"><code>(hd 'sym ['cnt]) -> NIL</code></a></dt>\n<dd>(Debug mode only) Displays a hexadecimal dump of the file given by\n<code>sym</code>, limited to <code>cnt</code> lines. See also <code><a\nhref=\"refP.html#proc\">proc</a></code>.\n\n<pre>\n:  (hd \"lib.l\" 4)\n00000000  23 20 32 33 64 65 63 30 39 61 62 75 0A 23 20 28  # 23dec09abu.# (\n00000010  63 29 20 53 6F 66 74 77 61 72 65 20 4C 61 62 2E  c) Software Lab.\n00000020  20 41 6C 65 78 61 6E 64 65 72 20 42 75 72 67 65   Alexander Burge\n00000030  72 0A 0A 28 64 65 20 74 61 73 6B 20 28 4B 65 79  r..(de task (Key\n-> NIL\n</pre></dd>\n\n<dt><a id=\"head\"><code>(head 'cnt|lst 'lst) -> lst</code></a></dt>\n<dd>Returns a new list made of the first <code>cnt</code> elements of\n<code>lst</code>. If <code>cnt</code> is negative, it is added to the length of\n<code>lst</code>. If the first argument is a <code>lst</code>, <code>head</code>\nis a predicate function returning that argument list if it is <code>equal</code>\nto the head of the second argument, and <code>NIL</code> otherwise. See also\n<code><a href=\"refT.html#tail\">tail</a></code> and <code><a\nhref=\"refP.html#pre?\">pre?</a></code>.\n\n<pre>\n: (head 3 '(a b c d e f))\n-> (a b c)\n: (head 0 '(a b c d e f))\n-> NIL\n: (head 10 '(a b c d e f))\n-> (a b c d e f)\n: (head -2 '(a b c d e f))\n-> (a b c d)\n: (head '(a b c) '(a b c d e f))\n-> (a b c)\n</pre></dd>\n\n<dt><a id=\"head/3\"><code>head/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\n(string) argument is a prefix of the string representation of the result\nof applying the <code><a href=\"refG.html#get\">get</a></code> algorithm\nto the following arguments. Typically used as filter predicate in\n<code><a href=\"refS.html#select/3\">select/3</a></code> database queries.\nSee also <code><a href=\"refP.html#pre?\">pre?</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (?\n   @Nm \"Muller\"\n   @Tel \"37\"\n   (select (@CuSu)\n      ((nm +CuSu @Nm) (tel +CuSu @Tel))\n      (tolr @Nm @CuSu nm)\n      (head @Tel @CuSu tel) )\n   (val @Name @CuSu nm)\n   (val @Phone @CuSu tel) )\n @Nm=\"Muller\" @Tel=\"37\" @CuSu={C3} @Name=\"Miller\" @Phone=\"37 4773 82534\"\n-> NIL\n</pre></dd>\n\n<dt><a id=\"heap\"><code>(heap 'flg) -> cnt</code></a></dt>\n<dd>Returns the total size of the cell heap space in megabytes. If\n<code>flg</code> is non-<code>NIL</code>, the size of the currently free space\nis returned. See also <code><a href=\"refS.html#stack\">stack</a></code> and\n<code><a href=\"refG.html#gc\">gc</a></code>.\n\n<pre>\n: (gc 4)\n-> 4\n: (heap)\n-> 5\n: (heap T)\n-> 4\n</pre></dd>\n\n<dt><a id=\"hear\"><code>(hear 'cnt) -> cnt</code></a></dt>\n<dd>Uses the file descriptor <code>cnt</code> as an asynchronous command input\nchannel. Any executable list received via this channel will be executed in the\nbackground. As this mechanism is also used for inter-family communication (see\n<code><a href=\"refT.html#tell\">tell</a></code>), <code>hear</code> is usually\nonly called explicitly by a top level parent process.\n\n<pre>\n: (call 'mkfifo \"fifo/cmd\")\n-> T\n: (hear (open \"fifo/cmd\"))\n-> 3\n</pre></dd>\n\n<dt><a id=\"help\"><code>(help 'sym ['flg]) -> sym</code></a></dt>\n<dd>(Debug mode only) Dumps the reference documentation for <code>sym</code> to\nthe current output channel. If <code>flg</code> is non-<code>NIL</code>, the\nexamples are dumped too. See also <a href=\"ref.html#fun\">Function Reference</a>\nand <code><a href=\"refD.html#doc\">doc</a></code>.\n\n<pre>\n: (help 'car)\n========================================\n(car 'var) -> any\n\nList access: Returns the value of var if it is a symbol, or the first element if\nit is a list. See also cdr and c..r.\n\n-> car\n\n: (help 'car T)\n========================================\n(car 'var) -> any\n\nList access: Returns the value of var if it is a symbol, or the first element if\nit is a list. See also cdr and c..r.\n\n: (car (1 2 3 4 5 6))\n-> 1\n\n-> car\n</pre></dd>\n\n<dt><a id=\"here\"><code>(here ['sym]) -> sym</code></a></dt>\n<dd>Echoes the current input stream until <code>sym</code> is encountered, or\nuntil end of file. See also <code><a href=\"refE.html#echo\">echo</a></code>.\n\n<pre>\n$ cat hello.l\n(html 0 \"Hello\" \"lib.css\" NIL\n   (&lt;h2&gt; NIL \"Hello\")\n   (here) )\n&lt;p&gt;Hello!&lt;/p&gt;\n&lt;p&gt;This is a test.&lt;/p&gt;\n\n$ pil @lib/http.l @lib/xhtml.l hello.l\nHTTP/1.0 200 OK\nServer: PicoLisp\nDate: Sun, 03 Jun 2007 11:41:27 GMT\nCache-Control: max-age=0\nCache-Control: no-cache\nContent-Type: text/html; charset=utf-8\n\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n&lt;meta name=\"viewport\" content=\"width=device-width\"/&gt;\n&lt;title&gt;Hello&lt;/title&gt;\n&lt;link rel=\"stylesheet\" href=\"http://:/lib.css\" type=\"text/css\"/&gt;\n&lt;/head&gt;\n&lt;body&gt;&lt;h2&gt;Hello&lt;/h2&gt;\n&lt;p&gt;Hello!&lt;/p&gt;\n&lt;p&gt;This is a test.&lt;/p&gt;\n&lt;/body&gt;&lt;/html&gt;\n</pre></dd>\n\n<dt><a id=\"hex\"><code>(hex 'num ['num]) -> sym</code></a></dt>\n<dt><code>(hex 'sym) -> num</code></dt>\n<dd>Converts a number <code>num</code> to a hexadecimal string, or a hexadecimal\nstring <code>sym</code> to a number. In the first case, if the second argument\nis given, the result is separated by spaces into groups of such many digits. See\nalso <code><a href=\"refB.html#bin\">bin</a></code>, <code><a\nhref=\"refO.html#oct\">oct</a></code>, <code><a\nhref=\"refH.html#hax\">hax</a></code> and <code><a\nhref=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (hex 273)\n-> \"111\"\n: (hex \"111\")\n-> 273\n: (hex 1234567 4)\n-> \"12 D687\"\n</pre></dd>\n\n<dt><a id=\"history\"><code>(history ['lst]) -> lst</code></a></dt>\n<dd>When called without argument, <code>history</code> returns the current\n<code>readline(3)</code> history. <code>lst</code> is a list of strings.\nOtherwise, the history is set to <code>lst</code>. See also <a\nhref=\"ref.html#invoc\">Invocation</a>.\n\n<pre>\n: (+ 1 2 3)\n-> 6\n: (history)\n-> (\"(+ 1 2 3)\" \"(history)\")\n</pre></dd>\n\n<dt><a id=\"host\"><code>(host 'any) -> sym</code></a></dt>\n<dd>Returns the hostname corresponding to the given IP address. See also\n<code><a href=\"refA.html#*Adr\">*Adr</a></code>.\n\n<pre>\n: (host \"80.190.158.9\")\n-> \"www.leo.org\"\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refI.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 05dec25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>I</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>I</h1>\n\n<dl>\n\n<dt><a id=\"+Idx\"><code>+Idx</code></a></dt>\n<dd>Prefix class for maintaining non-unique full-text indexes to <code><a\nhref=\"refS.html#+String\">+String</a></code> relations, a subclass of <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code>. Accepts optional arguments for the\nminimally indexed substring length (defaults to 3), and a <code><a\nhref=\"refH.html#+Hook\">+Hook</a></code> attribute. Often used in combination\nwith the <code><a href=\"refS.html#+Sn\">+Sn</a></code> soundex index, or the\n<code><a href=\"refF.html#+Fold\">+Fold</a></code> index prefix classes. See also\n<a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+Sn +Idx +String))  # Name\n</pre></dd>\n\n<dt><a id=\"+IdxFold\"><code>+IdxFold</code></a></dt>\n<dd>Prefix class for maintaining non-unique indexes to subsequent substrings of\nthe <code><a href=\"refF.html#fold\">fold</a></code>ed individual words of\n<code><a href=\"refS.html#+String\">+String</a></code> relations. Accepts optional\narguments for the minimally indexed substring length (defaults to 3), and a\n<code><a href=\"refH.html#+Hook\">+Hook</a></code> attribute. See also <code><a\nhref=\"refI.html#+Idx\">+Idx</a></code> and <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+IdxFold +String))            # Item Description\n</pre></dd>\n\n<dt><a id=\"+index\"><code>+index</code></a></dt>\n<dd>Abstract base class of all database B-Tree index relations (prefix classes\nfor <code><a href=\"refR.html#+relation\">+relation</a></code>s). The class\nhierarchy includes <code><a href=\"refK.html#+Key\">+Key</a></code>, <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code>, <code><a\nhref=\"refI.html#+Idx\">+Idx</a></code> and <code><a\nhref=\"refI.html#+IdxFold\">+IdxFold</a></code>. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(isa '+index Rel)  # Check for an index relation\n</pre></dd>\n\n<dt><a id=\"id\"><code>(id 'num ['num]) -> sym</code></a></dt>\n<dt><code>(id 'sym [NIL]) -> num</code></dt>\n<dt><code>(id 'sym T) -> (num . num)</code></dt>\n<dd>Converts one (the internal block number) or two (file and block) numbers to\nan external symbol, or an external symbol to a number or a pair of numbers.\n\n<pre>\n: (id 7)\n-> {7}\n: (id 1 2)\n-> {2}\n: (id '{A2})\n-> 2\n: (id '{A2} T)\n-> (2 . 2)\n</pre></dd>\n\n<dt><a id=\"idx\"><code>(idx 'var 'any 'flg) -> lst</code></a></dt>\n<dt><code>(idx 'var 'any) -> lst</code></dt>\n<dt><code>(idx 'var) -> lst</code></dt>\n<dd>Maintains an index tree in <code>var</code>, and checks for the existence of\n<code>any</code>. If <code>any</code> is contained in <code>var</code>, the\ncorresponding subtree is returned, otherwise <code>NIL</code>. In the first\nform, <code>any</code> is destructively inserted into the tree if\n<code>flg</code> is non-<code>NIL</code> (and <code>any</code> was not already\nthere), or deleted from the tree if <code>flg</code> is <code>NIL</code>. If all\nelements are inserted in sorted order, the tree degenerates into a linear list.\nIn such cases, <code>0</code> may be passed for <code>flg</code> to randomize\nthe insertion order. The second form only checks for existence, but does not\nchange the index tree. In the third form (when called with a single\n<code>var</code> argument) the contents of the tree are returned as a sorted\nlist.\n\nSee also <code><a\nhref=\"refL.html#lup\">lup</a></code>, <code><a\nhref=\"refE.html#enum\">enum</a></code>, <code><a\nhref=\"refH.html#hash\">hash</a></code>, <code><a\nhref=\"refR.html#rev\">rev</a></code>, <code><a\nhref=\"refD.html#depth\">depth</a></code>, <code><a\nhref=\"refS.html#sort\">sort</a></code>, <code><a\nhref=\"refB.html#balance\">balance</a></code> and <code><a\nhref=\"refM.html#member\">member</a></code>.\n\n<pre>\n: (idx 'X 'd T)                              # Insert data\n-> NIL\n: (idx 'X 2 T)\n-> NIL\n: (idx 'X '(a b c) T)\n-> NIL\n: (idx 'X 17 T)\n-> NIL\n: (idx 'X 'A T)\n-> NIL\n: (idx 'X 'd T)\n-> (d (2 NIL 17 NIL A) (a b c))              # 'd' already existed\n: (idx 'X T T)\n-> NIL\n: X                                          # View the index tree\n-> (d (2 NIL 17 NIL A) (a b c) NIL T)\n: (idx 'X 'A)                                # Check for 'A'\n-> (A)\n: (idx 'X 'B)                                # Check for 'B'\n-> NIL\n: (idx 'X)\n-> (2 17 A d (a b c) T)                      # Get list\n: (idx 'X 17 NIL)                            # Delete '17'\n-> (17 NIL A)\n: X\n-> (d (2 NIL A) (a b c) NIL T)               # View it again\n: (idx 'X)\n-> (2 A d (a b c) T)                         # '17' is deleted\n\n: (off X Y)\n-> NIL\n: (for I 9 (idx 'X I T))                     # Sorted insert order\n-> NIL\n: (for I 9 (idx 'Y I 0))                     # Randomize\n-> NIL\n: (view X T)\n                        9\n                     8\n                  7\n               6\n            5\n         4\n      3\n   2\n1\n-> NIL\n: (view Y T)\n         9\n      8\n         7\n   6\n      5\n         4\n3\n   2\n      1\n-> NIL\n</pre></dd>\n\n<dt><a id=\"if\"><code>(if 'any1 any2 . prg) -> any</code></a></dt>\n<dd>Conditional execution: If the condition <code>any1</code> evaluates to\nnon-<code>NIL</code>, <code>any2</code> is evaluated and returned. Otherwise,\n<code>prg</code> is executed and the result returned. See also <code><a\nhref=\"refI.html#ifn\">ifn</a></code>, <code><a\nhref=\"refC.html#cond\">cond</a></code>, <code><a\nhref=\"refW.html#when\">when</a></code> and <code><a\nhref=\"refI.html#if2\">if2</a></code>.\n\n<pre>\n: (if (> 4 3) (println 'OK) (println 'Bad))\nOK\n-> OK\n: (if (> 3 4) (println 'OK) (println 'Bad))\nBad\n-> Bad\n</pre></dd>\n\n<dt><a id=\"if2\"><code>(if2 'any1 'any2 any3 any4 any5 . prg) -> any</code></a></dt>\n<dd>Four-way conditional execution for two conditions: If both conditions\n<code>any1</code> and <code>any2</code> evaluate to non-<code>NIL</code>,\n<code>any3</code> is evaluated and returned. Otherwise, <code>any4</code> or\n<code>any5</code> is evaluated and returned if <code>any1</code> or\n<code>any2</code> evaluate to non-<code>NIL</code>, respectively. If none of the\nconditions evaluate to non-<code>NIL</code>, <code>prg</code> is executed and\nthe result returned. See also <code><a href=\"refI.html#if\">if</a></code> and\n<code><a href=\"refC.html#cond\">cond</a></code>.\n\n<pre>\n: (if2 T T 'both 'first 'second 'none)\n-> both\n: (if2 T NIL 'both 'first 'second 'none)\n-> first\n: (if2 NIL T 'both 'first 'second 'none)\n-> second\n: (if2 NIL NIL 'both 'first 'second 'none)\n-> none\n</pre></dd>\n\n<dt><a id=\"if@@\"><code>(if@@ 'any1 any2 . prg) -> any</code></a></dt>\n<dd>Conditional execution: If the value of the global variable <a\nhref=\"ref_.html#@@\">@@</a></code> is non-<code>NIL</code> after the evaluation\nof <code>any1</code>, <code>any2</code> is evaluated and returned. Otherwise,\n<code>prg</code> is executed and the result returned. In both cases, <a\nhref=\"ref_.html#@\">@</a></code> will hold the value of <code>any1</code>. See\nalso <code><a href=\"refI.html#if\">if</a></code> and <code><a\nhref=\"refI.html#if2\">if2</a></code>.\n\n<pre>\n: (de foo (N)\n   (if (lt0 N)\n      (throw 'lt0 N)\n      (sqrt N) ) )\n-> foo\n\n: (if@@ (catch 'lt0 (foo 64))\n   (msg @ \" negative\")\n   @ )\n-> 8\n\n: (if@@ (catch 'lt0 (foo -64))\n   (msg @ \" negative\")\n   @ )\n-64 negative\n-> -64\n</pre></dd>\n\n<dt><a id=\"ifn\"><code>(ifn 'any1 any2 . prg) -> any</code></a></dt>\n<dd>Conditional execution (\"If not\"): If the condition <code>any1</code>\nevaluates to <code>NIL</code>, <code>any2</code> is evaluated and returned.\nOtherwise, <code>prg</code> is executed and the result returned. See also\n<code><a href=\"refI.html#if\">if</a></code>, <code><a\nhref=\"refN.html#nor\">nor</a></code>, <code><a\nhref=\"refN.html#nand\">nand</a></code>, <code><a\nhref=\"refU.html#unless\">unless</a></code> and <code><a\nhref=\"refN.html#nond\">nond</a></code>.\n\n<pre>\n: (ifn (= 3 4) (println 'OK) (println 'Bad))\nOK\n-> OK\n</pre></dd>\n\n<dt><a id=\"import\"><code>(import . lst) -> lst</code></a></dt>\n<dd>Wrapper function for <code><a href=\"refI.html#intern\">intern</a></code>.\nTypically used to import symbols from other <a\nhref=\"ref.html#namespaces\">namespaces</a>, as created by <code><a\nhref=\"refS.html#symbols\">symbols</a></code>. <code>lst</code> should be\na list of symbols. See also <code><a\nhref=\"refP.html#pico\">pico</a></code>, <code><a\nhref=\"refP.html#private\">private</a></code> and <code><a\nhref=\"refL.html#local\">local</a></code> and <code><a\nhref=\"refE.html#export\">export</a></code>.\n\n<pre>\n: (import libA~foo libB~bar)\n-> (foo bar)\n</pre></dd>\n\n<dt><a id=\"in\"><code>(in 'any . prg) -> any</code></a></dt>\n<dd>Opens <code>any</code> as input channel during the execution of\n<code>prg</code>. The current input channel will be saved and restored\nappropriately. If the argument is <code>NIL</code>, standard input is used. If\nthe argument is a symbol, it is used as a file name (opened in read-only mode).\nIf it is a positive number, it is used as the descriptor of an open file. If it\nis a negative number, the saved input channel such many levels above the current\none is used. Otherwise (if it is a list), it is taken as a command with\narguments, and a pipe is opened for input. The (system dependent) exit status\ncode of the child process is stored in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>. See also <code><a\nhref=\"refO.html#out\">out</a></code>, <code><a\nhref=\"refE.html#err\">err</a></code>, <code><a\nhref=\"refF.html#fd\">fd</a></code>, <code><a\nhref=\"refI.html#ipid\">ipid</a></code>, <code><a\nhref=\"refC.html#call\">call</a></code>, <code><a\nhref=\"refL.html#load\">load</a></code>, <code><a\nhref=\"refF.html#file\">file</a></code>, <code><a\nhref=\"refP.html#poll\">poll</a></code>, <code><a\nhref=\"refP.html#pipe\">pipe</a></code> and <code><a\nhref=\"refC.html#ctl\">ctl</a></code>.\n\n<pre>\n: (in \"a\" (list (read) (read) (read)))  # Read three items from file \"a\"\n-> (123 (a b c) def)\n\n: (in '(file \"-b\" \"--mime\" \"bin/picolisp\")  # Get the mime type\n   (line T) )\n-> \"application/x-executable; charset=binary\"\n</pre></dd>\n\n<dt><a id=\"inc\"><code>(inc 'num) -> num</code></a></dt>\n<dt><code>(inc 'var ['num]) -> num</code></dt>\n<dd>The first form returns the value of <code>num</code> incremented by 1. The\nsecond form increments the <code>VAL</code> of <code>var</code> by 1, or by\n<code>num</code>. If the first argument is <code>NIL</code>, it is returned\nimmediately. <code>(inc Num)</code> is equivalent to <code>(+ Num 1)</code> and\n<code>(inc 'Var)</code> is equivalent to <code>(set 'Var (+ Var 1))</code>. See\nalso <code><a href=\"refD.html#dec\">dec</a></code> and <code><a\nhref=\"ref_.html#+\">+</a></code>.\n\n<pre>\n: (inc 7)\n-> 8\n: (inc -1)\n-> 0\n: (zero N)\n-> 0\n: (inc 'N)\n-> 1\n: (inc 'N 7)\n-> 8\n: N\n-> 8\n\n: (setq L (1 2 3 4))\n-> (1 2 3 4)\n: (inc (cdr L))\n-> 3\n: L\n-> (1 3 3 4)\n</pre></dd>\n\n<dt><a id=\"inc!\"><code>(inc! 'obj 'sym ['num]) -> num</code></a></dt>\n<dd><a href=\"ref.html#trans\">Transaction</a> wrapper function for <code><a\nhref=\"refI.html#inc\">inc</a></code>. <code>num</code> defaults to 1. Note that\nfor incrementing a property value of an entity typically the <code><a\nhref=\"refE.html#entityMesssages\">inc!></a></code> message is used. See also\n<code><a href=\"refN.html#new!\">new!</a></code>, <code><a\nhref=\"refR.html#request!\">request!</a></code>, <code><a\nhref=\"refS.html#set!\">set!</a></code> and <code><a\nhref=\"refP.html#put!\">put!</a></code>.\n\n<pre>\n(inc! Obj 'cnt 0)  # Incrementing a property of a non-entity object\n</pre></dd>\n\n<dt><a id=\"index\"><code>(index 'any 'lst) -> cnt | NIL</code></a></dt>\n<dd>Returns the <code>cnt</code> position of <code>any</code> in\n<code>lst</code>, or <code>NIL</code> if it is not found. See also <code><a\nhref=\"refO.html#offset\">offset</a></code> and <code><a\nhref=\"refS.html#sub?\">sub?</a></code>.\n\n<pre>\n: (index 'c '(a b c d e f))\n-> 3\n: (index '(5 6) '((1 2) (3 4) (5 6) (7 8)))\n-> 3\n</pre></dd>\n\n<dt><a id=\"info\"><code>(info 'any ['flg]) -> (cnt|flg dat . tim)</code></a></dt>\n<dd>Returns information about a file with the name <code>any</code>: The current\nsize <code>cnt</code> in bytes, and the modification date and time (UTC, or\nlocal time if <code>flg</code> is zero). For directories, <code>T</code> is\nreturned instead of the size, and <code>NIL</code> for other non-regular files.\nThe file argument itself is stored in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>). If <code>flg</code> is non-<code>NIL</code>\nand <code>any</code> is the name of a symbolic link, then the link itself is\nused, not the file that it refers to. See also <code><a\nhref=\"refD.html#dir\">dir</a></code>, <code><a\nhref=\"refD.html#date\">date</a></code> and <code><a\nhref=\"refT.html#time\">time</a></code>.\n\n<pre>\n$ ls -l x.l\n-rw-r--r--   1 abu      users         208 Jun 17 08:58 x.l\n$ pil +\n: (info \"x.l\")\n-> (208 730594 . 32315)\n: (stamp 730594 32315)\n-> \"2000-06-17 08:58:35\"\n</pre></dd>\n\n<dt><a id=\"init\"><code>(init 'tree ['any1] ['any2]) -> lst</code></a></dt>\n<dd>Initializes a structure for stepping iteratively through a database tree.\n<code>any1</code> and <code>any2</code> may specify a range of keys. If\n<code>any1</code> is greater than <code>any2</code>, the traversal will be in\nopposite direction. See also <code><a href=\"refT.html#tree\">tree</a></code>,\n<code><a href=\"refS.html#step\">step</a></code>, <code><a\nhref=\"refI.html#iter\">iter</a></code> and <code><a\nhref=\"refS.html#scan\">scan</a></code>.\n\n<pre>\n: (init (tree 'nr '+Item) 3 5)\n-> (((3 . 5) ((3 NIL . {B3}) (4 NIL . {B4}) (5 NIL . {B5}) (6 NIL . {B6}))))\n</pre></dd>\n\n<dt><a id=\"input\"><code>(input exe . prg) -> any</code></a></dt>\n<dd>Establishes an input stream, by redirecting the current input channel during\nthe execution of <code>prg</code>. The current input channel will be saved and\nrestored appropriately. <code>exe</code> is executed (in the context of the\noriginal input channel) whenever a character is required by read calls in\n<code>prg</code>, and should return a single character upon each execution. See\nalso <code><a href=\"refO.html#output\">output</a></code>, <code><a\nhref=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refP.html#pipe\">pipe</a></code>.\n\n<pre>\n: (input \"A\" (char))\n-> \"A\"\n: (let L (chop \"(+ 2 (* 3 4))\")\n   (input (++ L) (read)) )\n-> (+ 2 (* 3 4))\n: (let L (chop \"AQIDBAUGBw==\")\n   (input (++ L)\n      (while (ext:Base64)\n         (printsp @) ) ) )\n1 2 3 4 5 6 7 -> 7\n</pre></dd>\n\n<dt><a id=\"insert\"><code>(insert 'cnt 'lst 'any) -> lst</code></a></dt>\n<dd>Inserts <code>any</code> into <code>lst</code> at position <code>cnt</code>.\nThis is a non-destructive operation. See also <code><a\nhref=\"refR.html#remove\">remove</a></code>, <code><a\nhref=\"refP.html#place\">place</a></code>, <code><a\nhref=\"refA.html#append\">append</a></code>, <code><a\nhref=\"refD.html#delete\">delete</a></code> and <code><a\nhref=\"refR.html#replace\">replace</a></code>.\n\n<pre>\n: (insert 3 '(a b c d e) 777)\n-> (a b 777 c d e)\n: (insert 1 '(a b c d e) 777)\n-> (777 a b c d e)\n: (insert 9 '(a b c d e) 777)\n-> (a b c d e 777)\n</pre></dd>\n\n<dt><a id=\"intern\"><code>(intern 'any ['nsp]) -> sym</code></a></dt>\n<dd>Creates or finds an internal symbol. If a symbol with the name\n<code>any</code> is already intern, it is returned. Otherwise, <code>any</code>\nis interned in the current <a href=\"ref.html#namespaces\">namespace</a>\nand returned. If <code>nsp</code> is non-<code>NIL</code>,\n<code>any</code> is <i>always</i> interned in the current namespace (if\n<code>nsp</code> is <code>T</code>) or in the given namespace, even if\nit is found in other namespaces. See also <code><a\nhref=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refZ.html#zap\">zap</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code> and <code><a\nhref=\"refE.html#extern\">extern</a></code>.\n\n<pre>\n: (intern \"abc\")\n-> abc\n: (intern 'car)\n-> car\n: ((intern \"car\") (1 2 3))\n-> 1\n: ((intern '(\"c\" \"a\" \"r\")) (1 2 3))\n-> 1\n</pre></dd>\n\n<dt><a id=\"ipid\"><code>(ipid) -> pid | NIL</code></a></dt>\n<dd>Returns the corresponding process ID when the current input channel is\nreading from a pipe, otherwise <code>NIL</code>. See also <code><a\nhref=\"refO.html#opid\">opid</a></code>, <code><a\nhref=\"refI.html#in\">in</a></code>, <code><a\nhref=\"refP.html#pipe\">pipe</a></code> and <code><a\nhref=\"refL.html#load\">load</a></code>.\n\n<pre>\n: (in '(ls \"-l\") (println (line T)) (kill (ipid)))\n\"total 7364\"\n-> T\n</pre></dd>\n\n<dt><a id=\"isa\"><code>(isa 'cls|typ 'obj) -> obj | NIL</code></a></dt>\n<dd>Returns <code>obj</code> when it is an object that inherits from\n<code>cls</code> or <code>type</code>. See also <a href=\"ref.html#oop\">OO\nConcepts</a>, <code><a href=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refT.html#type\">type</a></code>, <code><a\nhref=\"refN.html#new\">new</a></code> and <code><a\nhref=\"refO.html#object\">object</a></code>.\n\n<pre>\n: (isa '+Address Obj)\n-> {A17}\n: (isa '(+Male +Person) Obj)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"isa/2\"><code>isa/2</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the second\nargument is of the type or class given by the first argument, according\nto the <code><a href=\"refI.html#isa\">isa</a></code> function. Typically\nused in <code><a href=\"refD.html#db/3\">db/3</a></code> or <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (? (db nm +Person @Prs) (isa +Woman @Prs) (val @Nm @Prs nm))\n @Prs={A44} @Nm=\"Alexandra of Denmark\"\n @Prs={A124} @Nm=\"Alice Maud Mary\"\n @Prs={A21} @Nm=\"Anne\"\n @Prs={A57} @Nm=\"Augusta Victoria\".  # Stop\n</pre></dd>\n\n<dt><a id=\"iter\"><code>(iter 'tree ['fun] ['any1] ['any2] ['flg]) -> NIL</code></a></dt>\n<dd>Iterates through a database tree by applying <code>fun</code> to all values.\n<code>fun</code> defaults to <code><a\nhref=\"refP.html#println\">println</a></code>. <code>any1</code> and\n<code>any2</code> may specify a range of keys. If <code>any1</code> is greater\nthan <code>any2</code>, the traversal will be in opposite direction. Note that\nthe keys need not to be atomic, depending on the application's index structure.\nIf <code>flg</code> is non-<code>NIL</code>, partial keys are skipped. See also\n<code><a href=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refU.html#ubIter\">ubIter</a></code>, <code><a\nhref=\"refS.html#scan\">scan</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code> and <code><a\nhref=\"refS.html#step\">step</a></code>.\n\n<pre>\n: (iter (tree 'nr '+Item))\n{B1}\n{B2}\n{B3}\n{B4}\n{B5}\n{B6}\n-> NIL\n: (iter (tree 'nr '+Item) '((This) (println (: nm))))\n\"Main Part\"\n\"Spare Part\"\n\"Auxiliary Construction\"\n\"Enhancement Additive\"\n\"Metal Fittings\"\n\"Gadget Appliance\"\n\"Testartikel\"\n-> NIL\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refJ.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>J</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>J</h1>\n\n<dl>\n\n<dt><a id=\"+Joint\"><code>+Joint</code></a></dt>\n<dd>Class for bidirectional object relations, a subclass of <code><a\nhref=\"refL.html#+Link\">+Link</a></code>. Expects a (symbolic) attribute, a list\nof classes as <code><a href=\"refT.html#type\">type</a></code> of the referred\ndatabase object (of class <code><a href=\"refE.html#+Entity\">+Entity</a></code>),\nand two optional functions called when 'put'ting and/or 'get'ting a value. A\n<code>+Joint</code> corresponds to two <code>+Link</code>s, where the attribute\nargument is the relation of the back-link in the referred object. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(class +Ord +Entity)                   # Order class\n(rel pos (+List +Joint) ord (+Pos))    # List of positions in that order\n...\n(class +Pos +Entity)                   # Position class\n(rel ord (+Joint) pos (+Ord))          # Back-link to the parent order\n</pre></dd>\n\n<dt><a id=\"job\"><code>(job 'lst . prg) -> any</code></a></dt>\n<dd>Executes a job within its own environment (as specified by symbol-value\npairs in <code>lst</code>). The current values of all symbols are saved, the\nsymbols are bound to the values in <code>lst</code>, <code>prg</code> is\nexecuted, then the (possibly modified) symbol values are (destructively) stored\nin the environment list, and the symbols are restored to their original values.\nThe return value is the result of <code>prg</code>. Typically used in <code><a\nhref=\"refC.html#curry\">curried</a></code> functions and <code><a\nhref=\"refR.html#*Run\">*Run</a></code> tasks. See also <code><a\nhref=\"refE.html#env\">env</a></code>, <code><a\nhref=\"refB.html#bind\">bind</a></code>, <code><a\nhref=\"refL.html#let\">let</a></code>, <code><a\nhref=\"refU.html#use\">use</a></code> and <code><a\nhref=\"refS.html#state\">state</a></code>.\n\n<pre>\n: (de tst ()\n   (job '((A . 0) (B . 0))\n      (println (inc 'A) (inc 'B 2)) ) )\n-> tst\n: (tst)\n1 2\n-> 2\n: (tst)\n2 4\n-> 4\n: (tst)\n3 6\n-> 6\n: (pp 'tst)\n(de tst NIL\n   (job '((A . 3) (B . 6))\n      (println (inc 'A) (inc 'B 2)) ) )\n-> tst\n</pre></dd>\n\n<dt><a id=\"journal\"><code>(journal ['T] 'any ..) -> T</code></a></dt>\n<dd>Reads journal data from the files with the names <code>any</code>, and\nwrites all changes to the database. If the first argument is <code>T</code>, the\nreplication journal and transaction logs are disabled. See also <code><a\nhref=\"refP.html#pool\">pool</a></code>.\n\n<pre>\n: (journal \"db.log\")\n-> T\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refK.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>K</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>K</h1>\n\n<dl>\n\n<dt><a id=\"+Key\"><code>+Key</code></a></dt>\n<dd>Prefix class for maintaining unique indexes to <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s, a subclass of <code><a\nhref=\"refI.html#+index\">+index</a></code>. Accepts an optional argument for a\n<code><a href=\"refH.html#+Hook\">+Hook</a></code> attribute. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nr (+Need +Key +Number))  # Mandatory, unique Customer/Supplier number\n</pre></dd>\n\n<dt><a id=\"key\"><code>(key ['cnt ['var]]) -> sym</code></a></dt>\n<dd>Returns the next character from standard input as a single-character\ntransient symbol. The console is set to raw mode. While waiting for a key press,\na <code>poll(2)</code> system call is executed for all file descriptors and\ntimers in the <code>VAL</code> of the global variable <code><a\nhref=\"refR.html#*Run\">*Run</a></code>. If <code>cnt</code> is\nnon-<code>NIL</code>, that amount of milliseconds is waited maximally, and\n<code>NIL</code> is returned upon timeout. Otherwise, the remaining milliseconds\nare optionally stored in <code>var</code>. See also <code><a\nhref=\"refR.html#raw\">raw</a></code> and <code><a\nhref=\"refW.html#wait\">wait</a></code>.\n\n<pre>\n: (key)           # Wait for a key\n-> \"a\"            # 'a' pressed\n</pre></dd>\n\n<dt><a id=\"kids\"><code>(kids) -> lst</code></a></dt>\n<dd>Returns a list of process IDs of all running child processes. See also\n<code><a href=\"refF.html#fork\">fork</a></code>, <code><a\nhref=\"refD.html#detach\">detach</a></code>, <code><a\nhref=\"refP.html#pipe\">pipe</a></code>, <code><a\nhref=\"refT.html#tell\">tell</a></code>, <code><a\nhref=\"refP.html#proc\">proc</a></code> and <code><a\nhref=\"refK.html#kill\">kill</a></code>.\n\n<pre>\n: (unless (fork) (wait 60000) (bye))\n-> NIL\n: (unless (fork) (wait 60000) (bye))\n-> NIL\n\n: (proc 'pil)\n  PID  PPID  STARTED  SIZE %CPU WCHAN  CMD\n 2205 22853 19:45:24  1336  0.1 -      /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil +\n 2266  2205 19:45:30  1336  0.0 -        /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil +\n 2300  2205 19:45:33  1336  0.0 -        /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil +\n-> T\n\n: (kids)\n-> (2300 2266)\n</pre></dd>\n\n<dt><a id=\"kill\"><code>(kill 'pid ['cnt]) -> flg</code></a></dt>\n<dd>Sends a signal with the signal number <code>cnt</code> (or SIGTERM if\n<code>cnt</code> is not given) to the process with the ID <code>pid</code>.\nReturns <code>T</code> if successful.\n\n<pre>\n: (kill *Pid 20)                                # Stop current process\n\n[2]+  Stopped               pil +               # Unix shell\n$ fg                                            # Job control: Foreground\npil +\n-> T                                            # 'kill' was successful\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refL.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 02dec24 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>L</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>L</h1>\n\n<dl>\n\n<dt><a id=\"+Link\"><code>+Link</code></a></dt>\n<dd>Class for object relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Expects a list of classes as\n<code><a href=\"refT.html#type\">type</a></code> of the referred database object\n(of class <code><a href=\"refE.html#+Entity\">+Entity</a></code>). See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel sup (+Ref +Link) NIL (+CuSu))  # Supplier (class Customer/Supplier)\n</pre></dd>\n\n<dt><a id=\"+List\"><code>+List</code></a></dt>\n<dd>Prefix class for a list of identical relations. Objects of that class\nmaintain a list of Lisp data of uniform type. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel pos (+List +Joint) ord (+Pos))  # Positions\n(rel nm (+List +Ref +String))        # List of indexed strings\n(rel val (+Ref +List +Number))       # Indexed list of numeric values\n</pre></dd>\n\n<dt><a id=\"last\"><code>(last 'lst) -> any</code></a></dt>\n<dd>Returns the last element of <code>lst</code>. See also <code><a\nhref=\"refF.html#fin\">fin</a></code> and <code><a\nhref=\"refT.html#tail\">tail</a></code>.\n\n<pre>\n: (last (1 2 3 4))\n-> 4\n: (last '((a b) c (d e f)))\n-> (d e f)\n</pre></dd>\n\n<dt><a id=\"later\"><code>(later 'var . prg) -> var</code></a></dt>\n<dd>Executes <code>prg</code> in a <code><a\nhref=\"refP.html#pipe\">pipe</a></code>'ed child process. The return value of\n<code>prg</code> will later be available in <code>var</code>. Note that\n<code>later</code> uses <code><a href=\"refP.html#pr\">pr</a></code> and <code><a\nhref=\"refR.html#rd\">rd</a></code> to communicate the result, so <code>prg</code>\nshould not write any data to standard output as a side effect.\n\n<pre>\n: (prog1  # Parallel background calculation of square numbers\n   (mapcan '((N) (later (cons) (* N N))) (1 2 3 4))\n   (wait NIL (full @)) )\n-> (1 4 9 16)\n</pre></dd>\n\n<dt><a id=\"le0\"><code>(le0 'any) -> num | NIL</code></a></dt>\n<dd>Returns <code>num</code> when the argument is a number less or equal zero,\notherwise <code>NIL</code>. See also <code><a\nhref=\"refL.html#lt0\">lt0</a></code>, <code><a\nhref=\"refG.html#ge0\">ge0</a></code>, <code><a\nhref=\"refG.html#gt0\">gt0</a></code>, <code><a href=\"ref_.html#=0\">=0</a></code>\nand <code><a href=\"refN.html#n0\">n0</a></code>.\n\n<pre>\n: (le0 -2)\n-> -2\n: (le0 0)\n-> 0\n: (le0 3)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"leaf\"><code>(leaf 'tree) -> any</code></a></dt>\n<dd>Returns the first leaf (i.e. the value of the smallest key) in a database\ntree. See also <code><a href=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refM.html#minKey\">minKey</a></code>, <code><a\nhref=\"refM.html#maxKey\">maxKey</a></code> and <code><a\nhref=\"refS.html#step\">step</a></code>.\n\n<pre>\n: (leaf (tree 'nr '+Item))\n-> {B1}\n: (db 'nr '+Item (minKey (tree 'nr '+Item)))\n-> {B1}\n</pre></dd>\n\n<dt><a id=\"length\"><code>(length 'any) -> cnt | T</code></a></dt>\n<dd>Returns the \"length\" of <code>any</code>. For numbers this is the number of\ndecimal digits in the value (plus 1 for negative values), for symbols it is the\nnumber of characters in the name, and for lists it is the number of cells (or\n<code>T</code> for circular lists). See also <code><a\nhref=\"refS.html#size\">size</a></code> and <code><a\nhref=\"refB.html#bytes\">bytes</a></code>.\n\n<pre>\n: (length \"abc\")\n-> 3\n: (length \"äbc\")\n-> 3\n: (length 123)\n-> 3\n: (length (1 (2) 3))\n-> 3\n: (length (1 2 3 .))\n-> T\n</pre></dd>\n\n<dt><a id=\"less\"><code>(less 'any ['cnt]) -> any</code></a></dt>\n<dd>Returns a reduced form of <code>any</code>, where for each list and its\nsublists only the first <code>cnt</code> elements (default 4), possibly followed\nby <code>..</code>, are retained.\n\n<pre>\n: (less '(a b c d e f))\n-> (a b c d ..)\n: (less '((a b c) ((d e f g h i) (j k l m n))))\n-> ((a b c) ((d e f ..) (j k ..)))\n: (less '((a b c) ((d e f g h i) (j k l m n))) 2)\n-> ((a b ..) ((d ..) ..))\n</pre></dd>\n\n<dt><a id=\"let\"><code>(let sym 'any . prg) -> any</code></a></dt>\n<dt><code>(let (sym|lst 'any ..) . prg) -> any</code></dt>\n<dd>Defines local variables. The value of the symbol <code>sym</code> - or the\nvalues of the symbols <code>sym</code> in the list of the second form - are\nsaved and the symbols are bound to the evaluated <code>any</code> arguments. The\n<code>lst</code> arguments in the second form may consist only of symbols and\nsublists, and match the <code>any</code> argument (destructuring bind).\n<code>prg</code> is executed, then the symbols are restored to their original\nvalues. The result of <code>prg</code> is returned. It is an error condition to\npass <code>NIL</code> as a <code>sym</code> argument. In destructuring patterns,\n<code>NIL</code> denotes a \"don't care\" position. See also <code><a\nhref=\"refL.html#let?\">let?</a></code>, <code><a\nhref=\"refB.html#bind\">bind</a></code>, <code><a\nhref=\"refR.html#recur\">recur</a></code>, <code><a\nhref=\"refW.html#with\">with</a></code>, <code><a\nhref=\"refF.html#for\">for</a></code>, <code><a\nhref=\"refJ.html#job\">job</a></code> and <code><a\nhref=\"refU.html#use\">use</a></code>.\n\n<pre>\n: (setq  X 123  Y 456)\n-> 456\n: (let X \"Hello\" (println X))\n\"Hello\"\n-> \"Hello\"\n: (let (X \"Hello\" Y \"world\") (prinl X \" \" Y))\nHello world\n-> \"world\"\n: X\n-> 123\n: Y\n-> 456\n\n: (let (A 1  (B . C) (2 3)  D 4)\n   (list A B C D) )\n-> (1 2 (3) 4)\n\n: (let (((A . B) (C) . D) '((1 2 3) (4 5 6) 7 8 9))\n   (list A B C D) )\n-> (1 (2 3) 4 (7 8 9))\n\n: (let (((A . NIL) NIL NIL D) '((1 2 3) (4 5 6) 7 8 9))\n   (trail T) )\n-> (A 1 D 8)\n</pre></dd>\n\n<dt><a id=\"let?\"><code>(let? sym 'any . prg) -> any</code></a></dt>\n<dd>Conditional local variable binding and execution: If <code>any</code>\nevaluates to <code>NIL</code>, <code>NIL</code> is returned. Otherwise, the\nvalue of the symbol <code>sym</code> is saved and <code>sym</code> is bound to\nthe evaluated <code>any</code> argument. <code>prg</code> is executed, then\n<code>sym</code> is restored to its original value. The result of\n<code>prg</code> is returned. It is an error condition to pass <code>NIL</code>\nas the <code>sym</code> argument. <code>(let? sym 'any ..)</code> is equivalent\nto <code>(when 'any (let sym @ ..))</code>. See also <code><a\nhref=\"refL.html#let\">let</a></code>, <code><a\nhref=\"refB.html#bind\">bind</a></code>, <code><a\nhref=\"refJ.html#job\">job</a></code> and <code><a\nhref=\"refU.html#use\">use</a></code>.\n\n<pre>\n: (setq Lst (1 NIL 2 NIL 3))\n-> (1 NIL 2 NIL 3)\n: (let? A (pop 'Lst) (println 'A A))\nA 1\n-> 1\n: (let? A (pop 'Lst) (println 'A A))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"lieu\"><code>(lieu 'any) -> sym | NIL</code></a></dt>\n<dd>Returns the argument <code>any</code> when it is an external symbol and\ncurrently manifest in heap space, otherwise <code>NIL</code>. See also <code><a\nhref=\"refE.html#ext?\">ext?</a></code>.\n\n<pre>\n: (lieu *DB)\n-> {1}\n</pre></dd>\n\n<dt><a id=\"line\"><code>(line 'flg ['cnt ..]) -> lst|sym</code></a></dt>\n<dd>Reads a line of characters from the current input channel. End of line is\nrecognized as linefeed (hex \"0A\"), carriage return (hex \"0D\"), or the\ncombination of both. (Note that a single carriage return may not work on network\nconnections, because the character look-ahead to distinguish from\nreturn+linefeed can block the connection.) If <code>flg</code> is\n<code>NIL</code>, a list of single-character transient symbols is returned. When\n<code>cnt</code> arguments are given, subsequent characters of the input line\nare grouped into sublists, to allow parsing of fixed field length records. If\n<code>flg</code> is non-<code>NIL</code>, strings are returned instead of\nsingle-character lists. <code>NIL</code> is returned upon end of file. See also\n<code><a href=\"refC.html#char\">char</a></code>, <code><a\nhref=\"refR.html#read\">read</a></code>, <code><a\nhref=\"refT.html#till\">till</a></code> and <code><a\nhref=\"refE.html#eof\">eof</a></code>.\n\n<pre>\n: (line)\nabcdefghijkl\n-> (\"a\" \"b\" \"c\" \"d\" \"e\" \"f\" \"g\" \"h\" \"i\" \"j\" \"k\" \"l\")\n: (line T)\nabcdefghijkl\n-> \"abcdefghijkl\"\n: (line NIL 1 2 3)\nabcdefghijkl\n-> ((\"a\") (\"b\" \"c\") (\"d\" \"e\" \"f\") \"g\" \"h\" \"i\" \"j\" \"k\" \"l\")\n: (line T 1 2 3)\nabcdefghijkl\n-> (\"a\" \"bc\" \"def\" \"g\" \"h\" \"i\" \"j\" \"k\" \"l\")\n</pre></dd>\n\n<dt><a id=\"link\"><code>(link 'any ..) -> any</code></a></dt>\n<dd>Links one or several new elements <code>any</code> to the end of the list in\nthe current <code><a href=\"refM.html#make\">make</a></code> environment. This\noperation is efficient also for long lists, because a pointer to the last\nelement of the list is maintained. <code>link</code> returns the last linked\nargument. See also <code><a href=\"refY.html#yoke\">yoke</a></code>, <code><a\nhref=\"refC.html#chain\">chain</a></code> and <code><a\nhref=\"refM.html#made\">made</a></code>.\n\n<pre>\n: (make\n   (println (link 1))\n   (println (link 2 3)) )\n1\n3\n-> (1 2 3)\n</pre></dd>\n\n<dt><a id=\"lint\"><code>(lint 'sym) -> lst</code></a></dt>\n<dt><code>(lint 'sym 'cls) -> lst</code></dt>\n<dt><code>(lint '(sym . cls)) -> lst</code></dt>\n<dd>(Debug mode only) Checks the function definition or file contents (in the\nfirst form), or the method body of sym (second and third form), for possible\npitfalls. Returns an association list of diagnoses, where <code>var</code>\nindicates improper variables, <code>dup</code> duplicate parameters,\n<code>def</code> an undefined function, <code>bnd</code> an unbound variable,\nand <code>use</code> unused variables. See also <code><a\nhref=\"refN.html#noLint\">noLint</a></code>, <code><a\nhref=\"refL.html#lintAll\">lintAll</a></code>, <code><a\nhref=\"refD.html#debug\">debug</a></code>, <code><a\nhref=\"refT.html#trace\">trace</a></code> and <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>.\n\n<pre>\n: (de foo (R S T R)     # 'T' is an improper parameter, 'R' is duplicated\n   (let N 7             # 'N' is unused\n      (bar X Y) ) )     # 'bar' is undefined, 'X' and 'Y' are not bound\n-> foo\n: (lint 'foo)\n-> ((var T) (dup R) (def bar) (bnd Y X) (use N))\n</pre></dd>\n\n<dt><a id=\"lintAll\"><code>(lintAll ['sym ..]) -> lst</code></a></dt>\n<dd>(Debug mode only) Applies <code><a href=\"refL.html#lint\">lint</a></code> to\n<code><a href=\"refA.html#all\">all</a></code> internal symbols - and optionally\nto all files <code>sym</code> - and returns a list of diagnoses. See also\n<code><a href=\"refN.html#noLint\">noLint</a></code>.\n\n<pre>\n: (more (lintAll \"file1.l\" \"file2.l\"))\n...\n</pre></dd>\n\n<dt><a id=\"lisp\"><code>(lisp 'sym ['fun]) -> num</code></a></dt>\n<dd>Installs under the tag <code>sym</code> a callback function\n<code>fun</code>, and returns a pointer <code>num</code> suitable to be passed\nto a C function via 'native'. If <code>fun</code> is <code>NIL</code>, the\ncorresponding entry is freed. Maximally 24 callback functions can be installed\nthat way. 'fun' should be a function of maximally five numbers, and should\nreturn a number. \"Numbers\" in this context are 64-bit scalars, and may not only\nrepresent integers, but also pointers or other encoded data. See also <code><a\nhref=\"refN.html#native\">native</a></code> and <code><a\nhref=\"refS.html#struct\">struct</a></code>.\n\n<pre>\n(load \"@lib/clang.l\")\n\n(clang \"ltest\" NIL\n   (cbTest (Fun) cbTest 'N Fun) )\n\nlong cbTest(int(*fun)(int,int,int,int,int)) {\n   return fun(1,2,3,4,5);\n}\n/**/\n\n: (cbTest\n   (lisp 'cbTest\n      '((A B C D E)\n         (msg (list A B C D E))\n         (* A B C D E) ) ) )\n(1 2 3 4 5)\n-> 120\n</pre></dd>\n\n<dt><a id=\"list\"><code>(list 'any ['any ..]) -> lst</code></a></dt>\n<dd>Returns a list of all <code>any</code> arguments. See also <code><a\nhref=\"refC.html#cons\">cons</a></code>.\n\n<pre>\n: (list 1 2 3 4)\n-> (1 2 3 4)\n: (list 'a (2 3) \"OK\")\n-> (a (2 3) \"OK\")\n</pre></dd>\n\n<dt><a id=\"lst/3\"><code>lst/3</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that returns subsequent list\nelements, after applying the <code><a href=\"refG.html#get\">get</a></code>\nalgorithm to that object and the following arguments. Often used in database\nqueries. See also <code><a href=\"refM.html#map/3\">map/3</a></code>.\n\n<pre>\n: (? (db nr +Ord 1 @Ord) (lst @Pos @Ord pos))\n @Ord={B7} @Pos={A1}\n @Ord={B7} @Pos={A2}\n @Ord={B7} @Pos={A3}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"lst?\"><code>(lst? 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is a (possibly\nempty) list (<code>NIL</code> or a cons pair). See also <code><a\nhref=\"refP.html#pair\">pair</a></code>.\n\n<pre>\n: (lst? NIL)\n-> T\n: (lst? (1 . 2))\n-> T\n: (lst? (1 2 3))\n-> T\n</pre></dd>\n\n<dt><a id=\"listen\"><code>(listen 'cnt1 ['cnt2]) -> cnt | NIL</code></a></dt>\n<dd>Listens at a socket descriptor <code>cnt1</code> (as received by <code><a\nhref=\"refP.html#port\">port</a></code>) for an incoming connection, and returns\nthe new socket descriptor <code>cnt</code>. While waiting for a connection, a\n<code>poll(2)</code> system call is executed for all file descriptors and timers\nin the <code>VAL</code> of the global variable <code><a\nhref=\"refR.html#*Run\">*Run</a></code>. If <code>cnt2</code> is\nnon-<code>NIL</code>, that amount of milliseconds is waited maximally, and\n<code>NIL</code> is returned upon timeout. The global variable <code>*Adr</code>\nis set to the IP address of the client. See also <code><a\nhref=\"refA.html#accept\">accept</a></code>, <code><a\nhref=\"refC.html#connect\">connect</a></code>, <code><a\nhref=\"refA.html#*Adr\">*Adr</a></code>.\n\n<pre>\n: (setq *Socket\n   (listen (port 6789) 60000) )  # Listen at port 6789 for max 60 seconds\n-> 4\n: *Adr\n-> \"127.0.0.1\"\n</pre></dd>\n\n<dt><a id=\"lit\"><code>(lit 'any) -> any</code></a></dt>\n<dd>Returns the literal (i.e. quoted) value of <code>any</code>, by\n<code>cons</code>ing it with the <code><a\nhref=\"refQ.html#quote\">quote</a></code> function if necessary. See also <code><a\nhref=\"refS.html#strip\">strip</a></code>.\n\n<pre>\n: (lit T)\n-> T\n: (lit 1)\n-> 1\n: (lit '(1))\n-> (1)\n: (lit '(a))\n-> '(a)\n</pre></dd>\n\n<dt><a id=\"load\"><code>(load 'any ..) -> any</code></a></dt>\n<dd>Loads all <code>any</code> arguments. Normally, the name of each argument is\ntaken as a file to be executed in a read-eval loop. The argument semantics are\nidentical to that of <code><a href=\"refI.html#in\">in</a></code>, with the\nexception that if an argument is a symbol and its first character is a hyphen\n'-', then that argument is parsed as an executable list (without the surrounding\nparentheses). When <code>any</code> is <code>T</code>, all remaining command\nline arguments are <code>load</code>ed recursively. When <code>any</code> is\n<code>NIL</code>, standard input is read, a prompt is issued before each read\noperation, the results are printed to standard output (read-eval-print loop),\nand <code>load</code> terminates when an empty line is entered. In any case,\n<code>load</code> terminates upon end of file, or when <code>NIL</code> is read.\nThe index for transient symbols is cleared before and after the load, so that\nall transient symbols in a file have a local scope. If the namespace was\nswitched (with <code><a href=\"refS.html#symbols\">symbols</a></code>) while\nexecuting a file, it is restored to the previous one. Returns the value of the\nlast evaluated expression. See also <code><a\nhref=\"refS.html#script\">script</a></code>, <code><a\nhref=\"refI.html#ipid\">ipid</a></code>, <code><a\nhref=\"refC.html#call\">call</a></code>, <code><a\nhref=\"refF.html#file\">file</a></code>, <code><a\nhref=\"refI.html#in\">in</a></code>, <code><a href=\"refO.html#out\">out</a></code>\nand <code><a href=\"refS.html#str\">str</a></code>.\n\n<pre>\n: (load \"lib.l\" \"-* 1 2 3\")\n-> 6\n</pre></dd>\n\n<dt><a id=\"loc\"><code>(loc 'sym 'lst) -> sym</code></a></dt>\n<dd>Locates in <code>lst</code> a <code><a\nhref=\"ref.html#transient\">transient</a></code> symbol with the same name as\n<code>sym</code>. Allows to get hold of otherwise inaccessible symbols.\n\n<pre>\n: (loc \"X\" curry)\n-> \"X\"\n: (== @ \"X\")\n-> NIL\n</pre></dd>\n\n<dt><a id=\"local\"><code>(local) sym|lst</code></a></dt>\n<dd>Intern symbols locally in the current <a\nhref=\"ref.html#namespaces\">namespace</a>. <code>(local)</code> expects a\nsingle symbol or a list of symbols immediately following in the current\ninput stream. See also <code><a href=\"refP.html#pico\">pico</a></code>,\n<code><a href=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refP.html#private\">private</a></code>, <code><a\nhref=\"refE.html#export\">export</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (symbols 'myLib 'pico)\n-> (pico)\nmyLib: (local) (foo bar)\n\nmyLib: (de foo (A)  # 'foo' is local to 'myLib'\n   ...\nmyLib: (de bar (B)  # 'bar' is local to 'myLib'\n   ...\n</pre></dd>\n\n<dt><a id=\"locale\"><code>(locale 'sym1 'sym2 ['sym ..])</code></a></dt>\n<dd>Sets the current locale to that given by the country file <code>sym1</code>\nand the language file <code>sym2</code> (both located in the \"loc/\" directory),\nand optional application-specific directories <code>sym</code>. The locale\ninfluences the language, and numerical, date and other formats. See also\n<code><a href=\"refU.html#*Uni\">*Uni</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code>, <code><a\nhref=\"refS.html#strDat\">strDat</a></code>, <code><a\nhref=\"refE.html#expDat\">expDat</a></code>, <code><a\nhref=\"refD.html#day\">day</a></code>, <code><a\nhref=\"refT.html#telStr\">telStr</a></code>, <code><a\nhref=\"refE.html#expTel\">expTel</a></code> and and <code><a\nhref=\"refM.html#money\">money</a></code>.\n\n<pre>\n: (locale \"DE\" \"de\" \"app/loc/\")\n-> NIL\n: ,\"Yes\"\n-> \"Ja\"\n</pre></dd>\n\n<dt><a id=\"lock\"><code>(lock ['sym]) -> cnt | NIL</code></a></dt>\n<dd>Write-locks an external symbol <code>sym</code> (file record locking), or\nthe whole database root file if <code>sym</code> is <code>NIL</code>. Returns\n<code>NIL</code> if successful, or the ID of the process currently holding the\nlock. When <code>sym</code> is non-<code>NIL</code>, the lock is released at the\nnext call to <code><a href=\"refC.html#commit\">commit</a></code> or <code><a\nhref=\"refR.html#rollback\">rollback</a></code>, otherwise only when another\ndatabase is opened with <code><a href=\"refP.html#pool\">pool</a></code>, or when\nthe process terminates. See also <code><a\nhref=\"refS.html#*Solo\">*Solo</a></code>.\n\n<pre>\n: (lock '{1})        # Lock single object\n-> NIL\n: (lock)             # Lock whole database\n-> NIL\n</pre></dd>\n\n<dt><a id=\"loop\"><code>(loop ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any</code></a></dt>\n<dd>Endless loop with multiple conditional exits: The body is executed an\nunlimited number of times. If a clause has <code>NIL</code> or <code>T</code> as\nits CAR, the clause's second element is evaluated as a condition and - if the\nresult is <code>NIL</code> or non-<code>NIL</code>, respectively - the\n<code>prg</code> is executed and the result returned. See also <code><a\nhref=\"refD.html#do\">do</a></code> and <code><a\nhref=\"refF.html#for\">for</a></code>.\n\n<pre>\n: (let N 3\n   (loop\n      (prinl N)\n      (T (=0 (dec 'N)) 'done) ) )\n3\n2\n1\n-> done\n</pre></dd>\n\n<dt><a id=\"low?\"><code>(low? 'any) -> sym | NIL</code></a></dt>\n<dd>Returns <code>any</code> when the argument is a string (symbol) that starts\nwith a lowercase character. See also <code><a\nhref=\"refL.html#lowc\">lowc</a></code> and <code><a\nhref=\"refU.html#upp?\">upp?</a></code>\n\n<pre>\n: (low? \"a\")\n-> \"a\"\n: (low? \"A\")\n-> NIL\n: (low? 123)\n-> NIL\n: (low? \".\")\n-> NIL\n</pre></dd>\n\n<dt><a id=\"lowc\"><code>(lowc 'any) -> any</code></a></dt>\n<dd>Lower case conversion: If <code>any</code> is not a symbol, it is returned\nas it is. Otherwise, a new transient symbol with all characters of\n<code>any</code>, converted to lower case, is returned. See also <code><a\nhref=\"refU.html#uppc\">uppc</a></code>, <code><a\nhref=\"refF.html#fold\">fold</a></code> and <code><a\nhref=\"refL.html#low?\">low?</a></code>.\n\n<pre>\n: (lowc 123)\n-> 123\n: (lowc \"ABC\")\n-> \"abc\"\n</pre></dd>\n\n<dt><a id=\"lt0\"><code>(lt0 'any) -> num | NIL</code></a></dt>\n<dd>Returns <code>num</code> when the argument is a number and less than zero,\notherwise <code>NIL</code>. See also <code><a\nhref=\"refL.html#le0\">le0</a></code>, <code><a\nhref=\"refG.html#ge0\">ge0</a></code>, <code><a\nhref=\"refG.html#gt0\">gt0</a></code>, <code><a href=\"ref_.html#=0\">=0</a></code>\nand <code><a href=\"refN.html#n0\">n0</a></code>.\n\n<pre>\n: (lt0 -2)\n-> -2\n: (lt0 3)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"lup\"><code>(lup 'lst 'any) -> lst</code></a></dt>\n<dt><code>(lup 'lst 'any 'any2) -> lst</code></dt>\n<dd>Looks up <code>any</code> in the CAR-elements of cons pairs stored in the\nindex tree <code>lst</code>, as built-up by <code><a\nhref=\"refI.html#idx\">idx</a></code>. In the first form, the first found cons\npair is returned, in the second form a list of all pairs whose CAR is in the\nrange <code>any</code> .. <code>any2</code>. If the tree is empty,\n<code>NIL</code> is returned immediately. See also <code><a\nhref=\"refE.html#enum?\">enum?</a></code> and <code><a\nhref=\"refA.html#assoc\">assoc</a></code>.\n\n<pre>\n: (idx 'A 'a T)\n-> NIL\n: (idx 'A (1 . b) T)\n-> NIL\n: (idx 'A 123 T)\n-> NIL\n: (idx 'A (1 . a) T)\n-> NIL\n: (idx 'A (1 . c) T)\n-> NIL\n: (idx 'A (2 . d) T)\n-> NIL\n: (idx 'A)\n-> (123 a (1 . a) (1 . b) (1 . c) (2 . d))\n: (lup A 1)\n-> (1 . b)\n: (lup A 2)\n-> (2 . d)\n: (lup A 1 1)\n-> ((1 . a) (1 . b) (1 . c))\n: (lup A 1 2)\n-> ((1 . a) (1 . b) (1 . c) (2 . d))\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refM.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 21may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>M</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>M</h1>\n\n<dl>\n\n<dt><a id=\"*Msg\"><code>*Msg</code></a></dt>\n<dd>A global variable holding the last recently issued error message. See also\n<code><a href=\"ref.html#errors\">Error Handling</a></code>, <code><a\nhref=\"refE.html#*Err\">*Err</a></code> and <code><a\nhref=\"ref_.html#%5E\">^</a></code>.\n\n<pre>\n: (+ 'A 2)\n!? (+ 'A 2)\nA -- Number expected\n?\n:\n: *Msg\n-> \"Number expected\"\n</pre></dd>\n\n<dt><a id=\"+Mis\"><code>+Mis</code></a></dt>\n<dd>Prefix class to explicitly specify validation functions for <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s. Expects a function that takes\na value and an entity object, and returns <code>NIL</code> if everything is\ncorrect, or an error string. See also <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(class +Ord +Entity)            # Order class\n(rel pos (+Mis +List +Joint)    # List of positions in that order\n   ((Val Obj)\n      (when (memq NIL Val)\n         \"There are empty positions\" ) )\n   ord (+Pos) )\n</pre></dd>\n\n<dt><a id=\"macro\"><code>(macro prg) -> any</code></a></dt>\n<dd>Substitues all <code><a href=\"refP.html#pat?\">pat?</a></code> symbols in\n<code>prg</code> (using <code><a href=\"refF.html#fill\">fill</a></code>), and\nexecutes the result with <code><a href=\"refR.html#run\">run</a></code>. Used\noccasionally to call functions which otherwise do not evaluate their arguments.\n\n<pre>\n: (de timerMessage (@N . @Prg)\n   (setq @N (- @N))\n   (macro\n      (task @N 0 . @Prg) ) )\n-> timerMessage\n: (timerMessage 6000 (println 'Timer 6000))\n-> (-6000 0 (println 'Timer 6000))\n: (timerMessage 12000 (println 'Timer 12000))\n-> (-12000 0 (println 'Timer 12000))\n: (more *Run)\n(-12000 2616 (println 'Timer 12000))\n(-6000 2100 (println 'Timer 6000))\n-> NIL\n: Timer 6000\nTimer 12000\n...\n</pre></dd>\n\n<dt><a id=\"made\"><code>(made ['lst1 ['lst2]]) -> lst</code></a></dt>\n<dd>Initializes a new list value for the current <code><a\nhref=\"refM.html#make\">make</a></code> environment. All list elements already\nproduced with <code><a href=\"refC.html#chain\">chain</a></code>, <code><a\nhref=\"refL.html#link\">link</a></code> and <code><a\nhref=\"refY.html#yoke\">yoke</a></code> are discarded, and <code>lst1</code> is\nused instead. Optionally, <code>lst2</code> can be specified as the new linkage\ncell, otherwise the last cell of <code>lst1</code> is used. When called without\narguments, <code>made</code> does not modify the environment. In any case, the\ncurrent list is returned.\n\n<pre>\n: (make\n   (link 'a 'b 'c)         # Link three items\n   (println (made))        # Print current list (a b c)\n   (made (1 2 3))          # Discard it, start new with (1 2 3)\n   (link 4) )              # Link 4\n(a b c)\n-> (1 2 3 4)\n</pre></dd>\n\n<dt><a id=\"mail\"><code>(mail 'any 'cnt|lst 'sym1|lst2 'sym2|lst3 'sym3 'lst4 . prg)'</code></a></dt>\n<dd>Sends an eMail via SMTP to a mail server at host <code>any</code>, port\n<code>cnt</code>. If the second argument is a list, it should be a structure\n<code>(user password . port)</code>, and \"@bin/ssl\" will be called to establish\nan encrypted connection. <code>sym1|lst2</code> should be the \"from\" address (or\na cons pair of \"reply-to\" and \"from\"), <code>sym2|lst3</code> the \"to\"\naddress(es), and <code>sym3</code> the subject. <code>lst4</code> is a list of\nattachments, each one specified by three elements for path, name and mime type.\n<code>prg</code> generates the mail body with <code><a\nhref=\"refP.html#prEval\">prEval</a></code>. See also <code><a\nhref=\"refC.html#connect\">connect</a></code>.\n\n<pre>\n(mail \"localhost\" 25                               # Local mail server\n   \"a@bc.de\"                                       # \"From\" address\n   \"abu@software-lab.de\"                           # \"To\" address\n   \"Testmail\"                                      # Subject\n   (quote\n      \"img/go.png\" \"go.png\" \"image/png\"            # First attachment\n      \"img/7fach.gif\" \"7fach.gif\" \"image/gif\" )    # Second attachment\n   \"Hello,\"                                        # First line\n   NIL                                             # (empty line)\n   (prinl (pack \"This is mail #\" (+ 3 4))) )       # Third line\n</pre></dd>\n\n<dt><a id=\"make\"><code>(make .. [(made 'lst ..)] .. [(link 'any ..)] ..) -> any</code></a></dt>\n<dd>Initializes and executes a list-building process with the <code><a\nhref=\"refM.html#made\">made</a></code>, <code><a\nhref=\"refC.html#chain\">chain</a></code>, <code><a\nhref=\"refL.html#link\">link</a></code> and <code><a\nhref=\"refY.html#yoke\">yoke</a></code> functions, and returns the resulting list.\nThe final linkage cell is stored in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>. For efficiency, pointers to the head and the\ntail of the list are maintained internally.\n\n<pre>\n: (make (link 1) (link 2 3) (link 4))\n-> (1 2 3 4)\n: (make (made (1 2 3)) (link 4))\n-> (1 2 3 4)\n</pre></dd>\n\n<dt><a id=\"map\"><code>(map 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to <code>lst</code> and all successive CDRs. When\nadditional <code>lst</code> arguments are given, they are passed to\n<code>fun</code> in the same way. Returns the result of the last application.\nSee also <code><a href=\"refM.html#mapc\">mapc</a></code>, <code><a\nhref=\"refM.html#maplist\">maplist</a></code>, <code><a\nhref=\"refM.html#mapcar\">mapcar</a></code>, <code><a\nhref=\"refM.html#mapcon\">mapcon</a></code>, <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (map println (1 2 3 4) '(A B C))\n(1 2 3 4) (A B C)\n(2 3 4) (B C)\n(3 4) (C)\n(4) NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"map/3\"><code>map/3</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that returns a list and\nsubsequent CDRs of that list, after applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to that object and the following\narguments. Often used in database queries. See also <code><a\nhref=\"refL.html#lst/3\">lst/3</a></code>.\n\n<pre>\n: (? (db nr +Ord 1 @Ord) (map @L @Ord pos))\n @Ord={B7} @L=({A1} {A2} {A3})\n @Ord={B7} @L=({A2} {A3})\n @Ord={B7} @L=({A3})\n-> NIL\n</pre></dd>\n\n<dt><a id=\"mapc\"><code>(mapc 'fun 'lst ..) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns the result of the last application. See also\n<code><a href=\"refM.html#map\">map</a></code>, <code><a\nhref=\"refM.html#maplist\">maplist</a></code>, <code><a\nhref=\"refM.html#mapcar\">mapcar</a></code>, <code><a\nhref=\"refM.html#mapcon\">mapcon</a></code>, <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (mapc println (1 2 3 4) '(A B C))\n1 A\n2 B\n3 C\n4 NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"mapcan\"><code>(mapcan 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns a (destructively) concatenated list of all results.\nSee also <code><a href=\"refM.html#map\">map</a></code>, <code><a\nhref=\"refM.html#mapc\">mapc</a></code>, <code><a\nhref=\"refM.html#maplist\">maplist</a></code>, <code><a\nhref=\"refM.html#mapcar\">mapcar</a></code>, <code><a\nhref=\"refM.html#mapcon\">mapcon</a></code>, <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (mapcan reverse '((a b c) (d e f) (g h i)))\n-> (c b a f e d i h g)\n</pre></dd>\n\n<dt><a id=\"mapcar\"><code>(mapcar 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns a list of all results. See also <code><a\nhref=\"refM.html#map\">map</a></code>, <code><a\nhref=\"refM.html#mapc\">mapc</a></code>, <code><a\nhref=\"refM.html#maplist\">maplist</a></code>, <code><a\nhref=\"refM.html#mapcon\">mapcon</a></code>, <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (mapcar + (1 2 3) (4 5 6))\n-> (5 7 9)\n: (mapcar + (1 2 3) 5)\n-> (6 7 8)\n: (mapcar '((X Y) (+ X (* Y Y))) (1 2 3 4) (5 6 7 8))\n-> (26 38 52 68)\n</pre></dd>\n\n<dt><a id=\"mapcon\"><code>(mapcon 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to <code>lst</code> and all successive CDRs. When\nadditional <code>lst</code> arguments are given, they are passed to\n<code>fun</code> in the same way. Returns a (destructively) concatenated list of\nall results. See also <code><a href=\"refM.html#map\">map</a></code>, <code><a\nhref=\"refM.html#mapc\">mapc</a></code>, <code><a\nhref=\"refM.html#maplist\">maplist</a></code>, <code><a\nhref=\"refM.html#mapcar\">mapcar</a></code>, <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (mapcon copy '(1 2 3 4 5))\n-> (1 2 3 4 5 2 3 4 5 3 4 5 4 5 5)\n</pre></dd>\n\n<dt><a id=\"maplist\"><code>(maplist 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to <code>lst</code> and all successive CDRs. When\nadditional <code>lst</code> arguments are given, they are passed to\n<code>fun</code> in the same way. Returns a list of all results. See also\n<code><a href=\"refM.html#map\">map</a></code>, <code><a\nhref=\"refM.html#mapc\">mapc</a></code>, <code><a\nhref=\"refM.html#mapcar\">mapcar</a></code>, <code><a\nhref=\"refM.html#mapcon\">mapcon</a></code>, <code><a\nhref=\"refM.html#mapcan\">mapcan</a></code> and <code><a\nhref=\"refF.html#filter\">filter</a></code>.\n\n<pre>\n: (maplist cons (1 2 3) '(A B C))\n-> (((1 2 3) A B C) ((2 3) B C) ((3) C))\n</pre></dd>\n\n<dt><a id=\"maps\"><code>(maps 'fun 'sym ['lst ..]) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to all properties of <code>sym</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns the result of the last application. Note that\n'maps' should only be used when the property list is not modified by\n<code>fun</code>. Otherwise it is better to use a loop over the result of\n<code><a href=\"refG.html#getl\">getl</a></code>. See also <code><a\nhref=\"refP.html#putl\">putl</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (put 'X 'b 2)\n-> 2\n: (put 'X 'flg T)\n-> T\n: (getl 'X)\n-> (flg (2 . b) (1 . a))\n: (maps println 'X '(A B))\nflg A\n(2 . b) B\n(1 . a) NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"mark\"><code>(mark 'sym|0 ['NIL | 'T | '0]) -> flg</code></a></dt>\n<dd>Tests, sets or resets a mark for <code>sym</code> in the database (for a\nsecond argument of <code>NIL</code>, <code>T</code> or <code>0</code>,\nrespectively), and returns the old value. The marks are local to the current\nprocess (not stored in the database), and vanish when the process terminates. If\nthe first argument is zero, all marks are cleared.\n\n<pre>\n: (pool \"db\")\n-> T\n: (mark '{1} T)      # Mark\n-> NIL\n: (mark '{1})        # Test\n-> T                 # -> marked\n: (mark '{1} 0)      # Unmark\n-> T\n: (mark '{1})        # Test\n-> NIL               # -> unmarked\n</pre></dd>\n\n<dt><a id=\"match\"><code>(match 'lst1 'lst2) -> flg</code></a></dt>\n<dd>Takes <code>lst1</code> as a pattern to be matched against\n<code>lst2</code>, and returns <code>T</code> when successful. Atoms must be\nequal, and sublists must match recursively. Symbols in the pattern list with\nnames starting with an at-mark \"<code>@</code>\" (see <code><a\nhref=\"refP.html#pat?\">pat?</a></code>) are taken as wildcards. They can match\nzero, one or more elements, and are bound to the corresponding data. See also\n<code><a href=\"refC.html#chop\">chop</a></code>, <code><a\nhref=\"refS.html#split\">split</a></code> and <code><a\nhref=\"refF.html#fill\">fill</a></code>.\n\n<pre>\n: (match '(@A is @B) '(This is a test))\n-> T\n: @A\n-> (This)\n: @B\n-> (a test)\n: (match '(@X (d @Y) @Z) '((a b c) (d (e f) g) h i))\n-> T\n: @X\n-> ((a b c))\n: @Y\n-> ((e f) g)\n: @Z\n-> (h i)\n</pre></dd>\n\n<dt><a id=\"max\"><code>(max 'any1 'any2 ..) -> any</code></a></dt>\n<dt><code>(max 'lst) -> any</code></a></dt>\n<dd>Returns the largest of all <code>any</code> arguments, or of all elements in\n<code>lst</code>. See also <a href=\"refM.html#min\">min</a> and <a\nhref=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (max 2 'a 'z 9)\n-> z\n: (max (5) (2 3) 'X)\n-> (5)\n: (max (2 4 1 3))\n-> 4\n</pre></dd>\n\n<dt><a id=\"maxKey\"><code>(maxKey 'tree ['any1 ['any2]]) -> any</code></a></dt>\n<dd>Returns the largest key in a database tree. If a minimal key\n<code>any1</code> and/or a maximal key <code>any2</code> is given, the largest\nkey from that range is returned. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refL.html#leaf\">leaf</a></code>, <code><a\nhref=\"refM.html#minKey\">minKey</a></code> and <code><a\nhref=\"refG.html#genKey\">genKey</a></code>.\n\n<pre>\n: (maxKey (tree 'nr '+Item))\n-> 7\n: (maxKey (tree 'nr '+Item) 3 5)\n-> 5\n</pre></dd>\n\n<dt><a id=\"maxi\"><code>(maxi 'fun 'lst ..) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns that element from <code>lst</code> for which\n<code>fun</code> returned a maximal value (and stores the maximal value in the\nglobal variable <code><a href=\"ref_.html#@@\">@@</a></code>). See also <code><a\nhref=\"refM.html#mini\">mini</a></code> and <code><a\nhref=\"refS.html#sort\">sort</a></code>.\n\n<pre>\n: (setq A 1  B 2  C 3)\n-> 3\n: (maxi val '(A B C))\n-> C\n: (maxi                          # Symbol with largest list value\n   '((X)\n      (and (pair (val X)) (size @)) )\n   (all) )\n-> pico\n</pre></dd>\n\n<dt><a id=\"member\"><code>(member 'any 'lst) -> any</code></a></dt>\n<dd>Returns the tail of <code>lst</code> that starts with <code>any</code> when\n<code>any</code> is a member of <code>lst</code>, otherwise <code>NIL</code>.\nSee also <code><a href=\"refM.html#memq\">memq</a></code>, <code><a\nhref=\"refA.html#assoc\">assoc</a></code> and <code><a\nhref=\"refI.html#idx\">idx</a></code>.\n\n<pre>\n: (member 3 (1 2 3 4 5 6))\n-> (3 4 5 6)\n: (member 9 (1 2 3 4 5 6))\n-> NIL\n: (member '(d e f) '((a b c) (d e f) (g h i)))\n-> ((d e f) (g h i))\n</pre></dd>\n\n<dt><a id=\"member/2\"><code>member/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the the first\nargument is a member of the list in the second argument. See also <code><a\nhref=\"refE.html#equal/2\">equal/2</a></code> and <code><a\nhref=\"refM.html#member\">member</a></code>.\n\n<pre>\n:  (? (member @X (a b c)))\n @X=a\n @X=b\n @X=c\n-> NIL\n</pre></dd>\n\n<dt><a id=\"memq\"><code>(memq 'any 'lst) -> any</code></a></dt>\n<dd>Returns the tail of <code>lst</code> that starts with <code>any</code> when\n<code>any</code> is a member of <code>lst</code>, otherwise <code>NIL</code>.\n<code><a href=\"ref_.html#==\">==</a></code> is used for comparison (pointer\nequality). See also <code><a href=\"refM.html#member\">member</a></code>, <code><a\nhref=\"refM.html#mmeq\">mmeq</a></code>, <code><a\nhref=\"refA.html#asoq\">asoq</a></code>, <code><a\nhref=\"refP.html#push1q\">push1q</a></code>, <code><a\nhref=\"refD.html#delq\">delq</a></code> and <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (memq 'c '(a b c d e f))\n-> (c d e f)\n: (memq (2) '((1) (2) (3)))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"meta\"><code>(meta 'obj|typ 'sym ['sym2|cnt ..]) -> any</code></a></dt>\n<dd>Fetches a property value <code>any</code>, by searching the property lists\nof the classes and superclasses of <code>obj</code>, or the classes in\n<code>typ</code>, for the property key <code>sym</code>, and by applying the\n<code><a href=\"refG.html#get\">get</a></code> algorithm to the following optional\narguments. See also <code><a href=\"refV.html#var:\">var:</a></code>.\n\n<pre>\n: (setq A '(B))            # Be 'A' an object of class 'B'\n-> (B)\n: (put 'B 'a 123)\n-> 123\n: (meta 'A 'a)             # Fetch 'a' from 'B'\n-> 123\n</pre></dd>\n\n<dt><a id=\"meth\"><code>(meth 'obj ['any ..]) -> any</code></a></dt>\n<dd>This function is usually not called directly, but is used by <code> <a\nhref=\"refD.html#dm\">dm</a></code> as a template to initialize the\n<code>VAL</code> of message symbols. It searches for itself in the methods of\n<code>obj</code> and its classes and superclasses, and executes that method. An\nerror <code>\"Bad message\"</code> is issued if the search is unsuccessful. See\nalso <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refM.html#method\">method</a></code>, <code><a\nhref=\"refS.html#send\">send</a></code> and <code><a\nhref=\"refT.html#try\">try</a></code>.\n\n<pre>\n: meth\n-> 67283504    # Value of 'meth'\n: rel>\n-> 67283504    # Value of any message\n</pre></dd>\n\n<dt><a id=\"method\"><code>(method 'msg 'obj) -> fun</code></a></dt>\n<dd>Returns the function body of the method that would be executed upon sending\nthe message <code>msg</code> to the object <code>obj</code>. If the message\ncannot be located in <code>obj</code>, its classes and superclasses,\n<code>NIL</code> is returned. See also <a href=\"ref.html#oop\">OO Concepts</a>,\n<code><a href=\"refS.html#send\">send</a></code>, <code><a\nhref=\"refT.html#try\">try</a></code>, <code><a\nhref=\"refM.html#meth\">meth</a></code>, <code><a\nhref=\"refS.html#super\">super</a></code>, <code><a\nhref=\"refE.html#extra\">extra</a></code>, <code><a\nhref=\"refC.html#class\">class</a></code>.\n\n<pre>\n: (method 'mis> '+Number)\n-> ((Val Obj) (and Val (not (num? Val)) \"Numeric input expected\"))\n</pre></dd>\n\n<dt><a id=\"methods\"><code>(methods 'sym) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of method specifications for the object or\nclass <code>sym</code>, as they are inherited from <code>sym</code>'s classes\nand superclasses. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refD.html#dep\">dep</a></code>, <code><a\nhref=\"refC.html#class\">class</a></code> and <code><a\nhref=\"refC.html#can\">can</a></code>.\n\n<pre>\n: (more (methods '+Joint))\n(keep> . +Joint)\n(lose> . +Joint)\n(rel> . +Joint)\n(mis> . +Joint)\n(T . +Joint)\n(print> . +relation)\n(zap> . +relation)\n(del> . +relation)\n(put> . +relation)\n(has> . +relation)\n(ele> . +relation)\n</pre></dd>\n\n<dt><a id=\"min\"><code>(min 'any1 'any2 ..) -> any</code></a></dt>\n<dt><code>(min 'lst) -> any</code></a></dt>\n<dd>Returns the smallest of all <code>any</code> arguments, or of all elements\nin <code>lst</code>. See also <a href=\"refM.html#max\">max</a> and <a\nhref=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (min 2 'a 'z 9)\n-> 2\n: (min (5) (2 3) 'X)\n-> X\n: (min (2 4 1 3))\n-> 1\n</pre></dd>\n\n<dt><a id=\"minKey\"><code>(minKey 'tree ['any1 ['any2]]) -> any</code></a></dt>\n<dd>Returns the smallest key in a database tree. If a minimal key\n<code>any1</code> and/or a maximal key <code>any2</code> is given, the smallest\nkey from that range is returned. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refL.html#leaf\">leaf</a></code>, <code><a\nhref=\"refM.html#maxKey\">maxKey</a></code> and <code><a\nhref=\"refG.html#genKey\">genKey</a></code>.\n\n<pre>\n: (minKey (tree 'nr '+Item))\n-> 1\n: (minKey (tree 'nr '+Item) 3 5)\n-> 3\n</pre></dd>\n\n<dt><a id=\"mini\"><code>(mini 'fun 'lst ..) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns that element from <code>lst</code> for which\n<code>fun</code> returned a minimal value (and stores the minimal value in the\nglobal variable <code><a href=\"ref_.html#@@\">@@</a></code>). See also <code><a\nhref=\"refM.html#maxi\">maxi</a></code> and <code><a\nhref=\"refS.html#sort\">sort</a></code>.\n\n<pre>\n: (setq A 1  B 2  C 3)\n-> 3\n: (mini val '(A B C))\n-> A\n</pre></dd>\n\n<dt><a id=\"mix\"><code>(mix 'lst cnt|'any ..) -> lst</code></a></dt>\n<dd>Builds a list from the elements of the argument <code>lst</code>, as\nspecified by the following <code>cnt|'any</code> arguments. If such an argument\nis a positive number, the n'th element from <code>lst</code> is taken. If it is\na negative number, the n'th CDR. Otherwise that argument is evaluated and the\nresult is used.\n\n<pre>\n: (mix '(a b c d) 3 4 1 2)\n-> (c d a b)\n: (mix '(a b c d) -2 1)\n-> ((c d) a)\n: (mix '(a b c d) 1 'A 4 'D)\n-> (a A d D)\n</pre></dd>\n\n<dt><a id=\"mmeq\"><code>(mmeq 'lst 'lst) -> any</code></a></dt>\n<dd>Returns the tail of the second argument <code>lst</code> that starts with a\nmember of the first argument <code>lst</code>, otherwise <code>NIL</code>.\n<code><a href=\"ref_.html#==\">==</a></code> is used for comparison (pointer\nequality). See also <code><a href=\"refM.html#member\">member</a></code>, <code><a\nhref=\"refM.html#memq\">memq</a></code>, <code><a\nhref=\"refA.html#asoq\">asoq</a></code> and <code><a\nhref=\"refD.html#delq\">delq</a></code>.\n\n<pre>\n: (mmeq '(a b c) '(d e f))\n-> NIL\n: (mmeq '(a b c) '(d b x))\n-> (b x)\n</pre></dd>\n\n<dt><a id=\"money\"><code>(money 'num ['sym]) -> sym</code></a></dt>\n<dd>Formats a number <code>num</code> into a digit string with two decimal\nplaces, according to the current <code><a\nhref=\"refL.html#locale\">locale</a></code>. If an additional currency name is\ngiven, it is appended (separated by a space). See also <code><a\nhref=\"refT.html#telStr\">telStr</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code> and <code><a\nhref=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (money 123456789)\n-> \"1,234,567.89\"\n: (money 12345 \"EUR\")\n-> \"123.45 EUR\"\n: (locale \"DE\" \"de\")\n-> NIL\n: (money 123456789 \"EUR\")\n-> \"1.234.567,89 EUR\"\n</pre></dd>\n\n<dt><a id=\"more\"><code>(more 'lst ['fun]) -> flg</code></a></dt>\n<dt><code>(more 'cls) -> any</code></dt>\n<dd>(Debug mode only) Displays the elements of <code>lst</code> (first form), or\nthe type and methods of <code>cls</code> (second form). <code>fun</code>\ndefaults to <code><a href=\"refP.html#println\">println</a></code>. In the second\nform, the method definitions of <code>cls</code> are pretty-printed with\n<code><a href=\"refP.html#pp\">pp</a></code>. After each step, <code>more</code>\nwaits for a key, and terminates when ESC is pressed. In that case,\n<code>T</code> is returned, otherwise (when end of data is reached)\n<code>NIL</code>. See also <code><a href=\"refQ.html#query\">query</a></code> and\n<code><a href=\"refS.html#show\">show</a></code>.\n\n<pre>\n: (more (all))                         # Display all internal symbols\n!\n$\n%\n&\n*\n-> T\n\n: (more (all) show)                    # 'show' all internal symbols\n! 27131845007\n   doc \"@doc/ref_.html\"\n   *Dbg ((1458 \"@src/flow.l\" llvm pico))\n$ 27131845049\n   doc \"@doc/ref_.html\"\n   *Dbg ((1508 \"@src/flow.l\" llvm pico))\n% -27131839417\n   doc \"@doc/ref_.html\"\n   *Dbg ((1245 \"@src/big.l\" llvm pico))\n& -27131839537\n   doc \"@doc/ref_.html\"\n   *Dbg ((1380 \"@src/big.l\" llvm pico))\n* -27131839339\n   doc \"@doc/ref_.html\"\n   *Dbg ((1174 \"@src/big.l\" llvm pico))\n...\n\n: (more '+Link)                        # Display a class\n(+relation)\n(dm mis> (Val Obj)\n   (and\n      Val\n      (nor (isa (: type) Val) (\"canQuery\" Val))\n      \"Type error\" ) )\n(dm T (Var Lst)\n   (unless (=: type (car Lst)) (quit \"No Link\" Var))\n   (super Var) )\n-> NIL\n</pre></dd>\n\n<dt><a id=\"msg\"><code>(msg 'any ['any ..]) -> any</code></a></dt>\n<dd>Prints <code>any</code> with <code><a\nhref=\"refP.html#print\">print</a></code>, followed by all <code>any</code>\narguments (printed with <code><a href=\"refP.html#prin\">prin</a></code>) and a\nnewline, to standard error. The first <code>any</code> argument is returned.\n\n<pre>\n: (msg (1 a 2 b 3 c) \" is a mixed \" \"list\")\n(1 a 2 b 3 c) is a mixed list\n-> (1 a 2 b 3 c)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refN.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 27sep25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>N</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>N</h1>\n\n<dl>\n\n<dt><a id=\"+Need\"><code>+Need</code></a></dt>\n<dd>Prefix class for mandatory <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s. Note that this does not\nenforce any requirements by itself, it only returns an error message if the\n<code>mis&gt;</code> message is explicitly called, e.g. by GUI functions. See\nalso <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nr (+Need +Key +Number))  # Item number is mandatory\n</pre></dd>\n\n<dt><a id=\"+Number\"><code>+Number</code></a></dt>\n<dd>Class for numeric relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Accepts an optional argument\nfor the fixpoint scale (currently not used). See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel pr (+Number) 2)  # Price, with two decimal places\n</pre></dd>\n\n<dt><a id=\"n==\"><code>(n== 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when not all <code>any</code> arguments are the same\n(pointer equality). <code>(n== 'any ..)</code> is equivalent to <code>(not (==\n'any ..))</code>. See also <code><a href=\"ref_.html#==\">==</a></code> and <a\nhref=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (n== 'a 'a)\n-> NIL\n: (n== (1) (1))\n-> T\n</pre></dd>\n\n<dt><a id=\"n0\"><code>(n0 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when <code>any</code> is not a number with value\nzero. See also <code><a href=\"ref_.html#=0\">=0</a></code>, <code><a\nhref=\"refL.html#lt0\">lt0</a></code>, <code><a\nhref=\"refL.html#le0\">le0</a></code>, <code><a\nhref=\"refG.html#ge0\">ge0</a></code> and <code><a\nhref=\"refG.html#gt0\">gt0</a></code>.\n\n<pre>\n: (n0 (- 6 3 2 1))\n-> NIL\n: (n0 'a)\n-> T\n</pre></dd>\n\n<dt><a id=\"nT\"><code>(nT 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when <code>any</code> is not the symbol\n<code>T</code>. See also <a href=\"ref_.html#=T\">=T</a>.\n\n<pre>\n: (nT 0)\n-> T\n: (nT \"T\")\n-> T\n: (nT T)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"name\"><code>(name 'sym) -> sym</code></a></dt>\n<dd>Returns a new transient symbol with the name of <code>sym</code>. See also\n<code><a href=\"refS.html#str\">str</a></code>, <code><a\nhref=\"refS.html#sym\">sym</a></code>, <code><a\nhref=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refZ.html#zap\">zap</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (name 'abc)\n-> \"abc\"\n: (name \"abc\")\n-> \"abc\"\n: (name '{A17})\n-> \"A17\"\n: (name (new))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"namespaces\"><code>(namespaces ['flg]) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all <a\nhref=\"ref.html#namespaces\">namespaces</a> nested in the current search\norder. When <code>flg</code> is non-<code>NIL</code>, their nested tree\nis printed as a side effect. See also <code><a\nhref=\"refS.html#symbols\">symbols</a></code> and <code><a\nhref=\"refS.html#shadows\">shadows</a></code>.\n\n<pre>\n$ pil +\n: (namespaces)\n-> (pico vip llvm priv)\n: (namespaces T)\n   pico\n      vip\n      llvm\n      priv\n-> (pico vip llvm priv)\n\n$ pty  # After starting \"steps\", \"browser\" and \"chess\" in PilBox\nchess: (namespaces T)\n   chess\n   simul\n   android\n      steps\n      browser\n   pico\n      svg\n      vip\n      gis\n      llvm\n      priv\n-> (chess simul android steps browser pico svg vip gis llvm priv)\n</pre></dd>\n\n<dt><a id=\"nand\"><code>(nand 'any ..) -> flg</code></a></dt>\n<dd>Logical NAND. The expressions <code>any</code> are evaluated from left to\nright. If <code>NIL</code> is encountered, <code>T</code> is returned\nimmediately. Else <code>NIL</code> is returned. <code>(nand ..)</code> is\nequivalent to <code>(not (and ..))</code>. See also <code><a\nhref=\"refA.html#and\">and</a></code>, <code><a\nhref=\"refN.html#nor\">nor</a></code>, <code><a\nhref=\"refU.html#unless\">unless</a></code>, <code><a\nhref=\"refI.html#ifn\">ifn</a></code> and <code><a\nhref=\"refN.html#nond\">nond</a></code>.\n\n<pre>\n: (nand (lt0 7) (read))\n-> T\n: (nand (lt0 -7) (read))\nabc\n-> NIL\n: (nand (lt0 -7) (read))\nNIL\n-> T\n</pre></dd>\n\n<dt><a id=\"native\"><code>(native 'cnt1|sym1 'cnt2|sym2 'any 'any ..) -> any</code></a></dt>\n<dd>Calls a native function. The first argument should specify a shared object\nlibrary, either <code>\"@\"</code> (the current main program), <code>sym1</code>\n(a library path name), or <code>cnt1</code> (a library handle obtained by a\nprevious call). The second argument should be a symbol name <code>sym2</code>,\nor a function handle <code>cnt2</code> obtained by a previous call).\nPractically, the first two arguments will be always passed as transient symbols,\nwhich will get the library handle and function handle assigned as values to be\ncached and used in subsequent calls. The third argument <code>any</code> is a\nresult specification, while all following arguments are the arguments to the\nnative function. The functionality is described in detail in <a\nhref=\"native.html\">Native C Calls</a>.\n\n<p><a id=\"natResult\">The result specification</a> may either be one of the\natoms\n\n<pre>\n   NIL   void\n   B     byte        # Byte (unsigned 8 bit)\n   C     char        # Character (UTF-8, 1-4 bytes)\n   W     short       # Word (signed 16 bit)\n   I     int         # Integer (signed 32 bit)\n   U     unsigned    # Unsigned integer (32 bit)\n   N     long        # Number (signed 64 bit)\n   P     void*       # Pointer (unsigned 64 bit)\n   S     string      # String (UTF-8)\n  -1.0   float       # Scaled fixpoint number\n  +1.0   double      # Scaled fixpoint number\n   T                 # Direct Lisp value\n</pre>\n\n<p>or nested lists of these atoms with size specifications to denote arrays and\nstructures, e.g.\n\n<pre>\n   (N . 4)        # long[4];           -> (1 2 3 4)\n   (N (C . 4))    # {long; char[4];}   -> (1234 (\"a\" \"b\" \"c\" NIL))\n   (N (B . 7))    # {long; byte[7];}   -> (1234 (1 2 3 4 5 6 7))\n</pre>\n\n<p>Arguments can be\n<ul>\n<li>integers (up to 64-bit) or pointers, passed as numbers\n<li>strings, passed as symbols\n<li>Lisp expressions, passed as cons pairs with <code>T</code> in the CAR\n<li>fixpoint numbers, passed as cons pairs consisting of a the value and the\n   scale (if the scale is positive, the number is passed as a\n   <code>double</code>, otherwise as a <code>float</code>)\n<li>structures, passed as lists with\n   <ul>\n   <li>a variable in the CAR (to receive the returned structure data, ignored\n      when the CAR is <code>NIL</code>)\n   <li>a cons pair for the size and result specification in the CADR (see\n      above), and\n   <li>an optional sequence of <a id=\"natItem\">initialization items</a> in the\n      CDDR, where each may be\n      <ul>\n      <li>a positive number, stored as an unsigned byte value\n      <li>a negative number, whose absolute value is stored as an unsigned\n         integer\n      <li>a pair <code>(num . cnt)</code> where '<code>num</code>' is stored in\n         a field of '<code>cnt</code>' bytes\n      <li>a pair <code>(sym . cnt)</code> where '<code>sym</code>' is stored as\n         a null-terminated string in a field of '<code>cnt</code>' bytes\n      <li>a list <code>(1.0 num ...)</code> where the '<code>num</code>'\n         elements (scaled fixpoint numbers) are stored as a sequence of double\n         precision floating point numbers\n      <li>a list <code>(-1.0 num ...)</code> where the '<code>num</code>'\n         elements (scaled fixpoint numbers) are stored as a sequence of single\n         precision floating point numbers\n      </ul>\n      If the last CDR of the initialization sequence is a number, it is used\n      as a fill-byte value for the remaining space in the structure.\n   </ul>\n</ul>\n\n<p><code>native</code> takes care of allocating memory for strings, arrays or\nstructures, and frees that memory when done.\n\n<p>For NaN or negative infinity fixpoint values <code>NIL</code>, and for\npositive infinity <code>T</code> is returned.\n\n<p>See also <code><a href=\"ref_.html#%25@\">%@</a></code>, <code><a\nhref=\"refS.html#struct\">struct</a></code>, <code><a\nhref=\"refA.html#adr\">adr</a></code>, <code><a\nhref=\"refL.html#lisp\">lisp</a></code> and <code><a\nhref=\"refE.html#errno\">errno</a></code>.\n\n<pre>\n: (native \"@\" \"unlink\" 'I \"file\")  # Same as (%@ \"unlink\" 'I \"file\")\n-> 0\n: (native \"libcrypto.so\" \"SHA1\" '(B . 20) \"abcd\" 4 0)\n-> (129 254 139 254 135 87 108 62 203 34 66 111 142 87 132 115 130 145 122 207)\n</pre></dd>\n\n<dt><a id=\"need\"><code>(need 'cnt ['lst ['any]]) -> lst</code></a></dt>\n<dt><code>(need 'cnt ['num|sym]) -> lst</code></dt>\n<dd>Produces a list of at least <code>cnt</code> elements. When called without\noptional arguments, a list of <code>cnt</code> <code>NIL</code>'s is returned.\nWhen <code>lst</code> is given, it is extended to the left (if <code>cnt</code>\nis positive) or (destructively) to the right (if <code>cnt</code> is negative)\nwith <code>any</code> elements. In the second form, a list of <code>cnt</code>\natomic values is returned. See also <code><a\nhref=\"refR.html#range\">range</a></code>.\n\n<pre>\n: (need 5)\n-> (NIL NIL NIL NIL NIL)  # Allocate 5 cells\n: (need 5 '(a b c))\n-> (NIL NIL a b c)\n: (need -5 '(a b c))\n-> (a b c NIL NIL)\n: (need 5 '(a b c) \" \")  # String alignment\n-> (\" \" \" \" a b c)\n: (need 7 0)\n-> (0 0 0 0 0 0 0)\n: (need 5 (2 3) 1)\n-> (1 1 1 2 3)\n</pre></dd>\n\n<dt><a id=\"new\"><code>(new ['flg|num|sym] ['typ ['any ..]]) -> obj</code></a></dt>\n<dd>Creates and returns a new object. If the first (optional) argument is\n<code>T</code> or a number, the new object will be an external symbol (created\nin database file 1 if <code>T</code>, or in the corresponding database file if\n<code>num</code> is given). If it is a symbol, it is used directly.\n<code>typ</code> (a list of classes) is assigned to the <code>VAL</code>, and\nthe initial <code>T</code> message is sent with the arguments <code>any</code>\nto the new object. If no <code>T</code> message is defined for the classes in\n<code>typ</code> or their superclasses, the <code>any</code> arguments should\nevaluate to alternating keys and values for the initialization of the new\nobject. See also <code><a href=\"refB.html#box\">box</a></code>, <code><a\nhref=\"refO.html#object\">object</a></code>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refT.html#type\">type</a></code>, <code><a\nhref=\"refI.html#isa\">isa</a></code>, <code><a\nhref=\"refS.html#send\">send</a></code> and <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n: (new)\n-> $134426427\n: (new T '(+Address))\n-> {A3}\n</pre></dd>\n\n<dt><a id=\"new!\"><code>(new! 'typ ['any ..]) -> obj</code></a></dt>\n<dd><a href=\"ref.html#trans\">Transaction</a> wrapper function for <code><a\nhref=\"refN.html#new\">new</a></code>. <code>(new! '(+Cls) 'key 'val ...)</code>\nis equivalent to <code>(dbSync) (new (db: +Cls) '(+Cls) 'key 'val ...) (commit\n'upd)</code>. See also <code><a href=\"refR.html#request!\">request!</a></code>, <code><a\nhref=\"refS.html#set!\">set!</a></code>, <code><a\nhref=\"refP.html#put!\">put!</a></code> and <code><a\nhref=\"refI.html#inc!\">inc!</a></code>.\n\n<pre>\n: (new! '(+Item)  # Create a new item\n   'nr 2                      # Item number\n   'nm \"Spare Part\"           # Description\n   'sup (db 'nr '+CuSu 2)     # Supplier\n   'inv 100                   # Inventory\n   'pr 12.50 )                # Price\n</pre></dd>\n\n<dt><a id=\"next\"><code>(next) -> any</code></a></dt>\n<dd>Can only be used inside functions with a variable number of arguments (with\n<code>@</code>). Returns the next argument from the internal list. See also\n<code><a href=\"refA.html#args\">args</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code>, <code><a\nhref=\"refR.html#rest\">rest</a></code>, and <code><a\nhref=\"refP.html#pass\">pass</a></code>.\n\n<pre>\n: (de foo @ (println (next)))          # Print next argument\n-> foo\n: (foo)\nNIL\n-> NIL\n: (foo 123)\n123\n-> 123\n</pre></dd>\n\n<dt><a id=\"nil\"><code>(nil . prg) -> NIL</code></a></dt>\n<dd>Executes <code>prg</code>, and returns <code>NIL</code>. See also <code><a\nhref=\"refT.html#t\">t</a></code>, <code><a href=\"refP.html#prog\">prog</a></code>,\n<code><a href=\"refP.html#prog1\">prog1</a></code> and <code><a\nhref=\"refP.html#prog2\">prog2</a></code>.\n\n<pre>\n: (nil (println 'OK))\nOK\n-> NIL\n</pre></dd>\n\n<dt><a id=\"nil/1\"><code>nil/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate expects an argument variable,\nand succeeds if that variable is bound to <code>NIL</code>. See also <code><a\nhref=\"refN.html#not/1\">not/1</a></code>.\n\n<pre>\n: (? @X NIL (nil @X))\n @X=NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"noLint\"><code>(noLint 'sym)</code></a></dt>\n<dt><code>(noLint 'sym|(sym . cls) 'sym2)</code></dt>\n<dd>(Debug mode only) Excludes the check for a function definition of\n<code>sym</code> (in the first form), or for variable binding and usage of\n<code>sym2</code> in the function definition, file contents or method body of\n<code>sym</code> (second form), during calls to <code><a\nhref=\"refL.html#lint\">lint</a></code>. See also <code><a\nhref=\"refL.html#lintAll\">lintAll</a></code>.\n\n<pre>\n: (de foo ()\n   (bar FreeVariable) )\n-> foo\n: (lint 'foo)\n-> ((def bar) (bnd FreeVariable))\n: (noLint 'bar)\n-> bar\n: (noLint 'foo 'FreeVariable)\n-> (foo . FreeVariable)\n: (lint 'foo)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"nond\"><code>(nond ('any1 . prg1) ('any2 . prg2) ..) -> any</code></a></dt>\n<dd>Negated (\"non-cond\") multi-way conditional: If any of the <code>anyN</code>\nconditions evaluates to <code>NIL</code>, <code>prgN</code> is executed and the\nresult returned. Otherwise (all conditions evaluate to non-<code>NIL</code>),\n<code>NIL</code> is returned. See also <code><a\nhref=\"refC.html#cond\">cond</a></code>, <code><a\nhref=\"refI.html#ifn\">ifn</a></code>, <code><a\nhref=\"refU.html#unless\">unless</a></code>, <code><a\nhref=\"refN.html#nor\">nor</a></code> and <code><a\nhref=\"refN.html#nand\">nand</a></code>.\n\n<pre>\n: (nond\n   ((= 3 3) (println 1))\n   ((= 3 4) (println 2))\n   (NIL (println 3)) )\n2\n-> 2\n</pre></dd>\n\n<dt><a id=\"nor\"><code>(nor 'any ..) -> flg</code></a></dt>\n<dd>Logical NOR. The expressions <code>any</code> are evaluated from left to\nright. If a non-<code>NIL</code> value is encountered, <code>NIL</code> is\nreturned immediately. Else <code>T</code> is returned. <code>(nor ..)</code> is\nequivalent to <code>(not (or ..))</code>. See also <code><a\nhref=\"refO.html#or\">or</a></code>, <code><a\nhref=\"refN.html#nand\">nand</a></code>, <code><a\nhref=\"refU.html#unless\">unless</a></code>, <code><a\nhref=\"refI.html#ifn\">ifn</a></code> and <code><a\nhref=\"refN.html#nond\">nond</a></code>.\n\n<pre>\n: (nor (lt0 7) (= 3 4))\n-> T\n</pre></dd>\n\n<dt><a id=\"not\"><code>(not 'any) -> flg</code></a></dt>\n<dd>Logical negation. Returns <code>T</code> if <code>any</code> evaluates to\n<code>NIL</code>.\n\n<pre>\n: (not (== 'a 'a))\n-> NIL\n: (not (get 'a 'a))\n-> T\n</pre></dd>\n\n<dt><a id=\"not/1\"><code>not/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if and only if\nthe goal cannot be proven. See also <code><a\nhref=\"refN.html#nil/1\">nil/1</a></code>, <code><a\nhref=\"refT.html#true/0\">true/0</a></code> and <code><a\nhref=\"refF.html#fail/0\">fail/0</a></code>.\n\n<pre>\n: (? (equal 3 4))\n-> NIL\n: (? (not (equal 3 4)))\n-> T\n</pre></dd>\n\n<dt><a id=\"nsp\"><code>(nsp 'sym) -> sym</code></a></dt>\n<dd>Returns the (first) <a href=\"ref.html#namespaces\">namespace</a>\nwhere <code>sym</code> is found in, according to the current <code><a\nhref=\"refS.html#symbols\">symbols</a></code> search order. See also\n<code><a href=\"refP.html#pico\">pico</a></code>.\n\n<pre>\n(load \"@lib/gis.l\")\n\n: (symbols '(gis pico))\n-> (pico)\ngis: (nsp 'gis)\n-> pico\ngis: (nsp 'Zoom)\n-> gis\ngis: (nsp 'osmStat)\n-> gis\n</pre></dd>\n\n<dt><a id=\"nth\"><code>(nth 'lst 'cnt ..) -> lst</code></a></dt>\n<dd>Returns the tail of <code>lst</code> starting from the <code>cnt</code>'th\nelement of <code>lst</code>. Successive <code>cnt</code> arguments operate on\nthe CARs of the results in the same way. <code>(nth 'lst 2)</code> is equivalent\nto <code>(cdr 'lst)</code>. See also <code><a\nhref=\"refG.html#get\">get</a></code>.\n\n<pre>\n: (nth '(a b c d) 2)\n-> (b c d)\n: (nth '(a (b c) d) 2 2)\n-> (c)\n: (cdadr '(a (b c) d))\n-> (c)\n</pre></dd>\n\n<dt><a id=\"num?\"><code>(num? 'any) -> num | NIL</code></a></dt>\n<dd>Returns <code>any</code> when the argument <code>any</code> is a number,\notherwise <code>NIL</code>. See also <code><a\nhref=\"refS.html#sym?\">sym?</a></code>, <code><a\nhref=\"refA.html#atom\">atom</a></code> and <code><a\nhref=\"refP.html#pair\">pair</a></code>.\n\n<pre>\n: (num? 123)\n-> 123\n: (num? (1 2 3))\n-> NIL\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refO.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>O</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>O</h1>\n\n<dl>\n\n<dt><a id=\"*ObjIdx\"><code>*ObjIdx</code></a></dt>\n<dd>Holds an <code><a href=\"refI.html#idx\">idx</a></code> tree of objects\ncreated by <code><a href=\"refO.html#obj\">obj</a></code>.\n\n<pre>\n</pre></dd>\n\n<dt><a id=\"*Once\"><code>*Once</code></a></dt>\n<dd>Holds an <code><a href=\"refI.html#idx\">idx</a></code> tree of already\n<code><a href=\"refL.html#load\">load</a></code>ed source locations (as returned\nby <code><a href=\"refF.html#file\">file</a></code>) See also <code><a\nhref=\"refO.html#once\">once</a></code>.\n\n<pre>\n: *Once\n-> ((\"lib/\" \"misc.l\" . 11) ((\"lib/\" \"http.l\" . 9) ((\"lib/\" \"form.l\" . 11))))\n</pre></dd>\n\n<dt><a id=\"*OS\"><code>*OS</code></a></dt>\n<dd>A global constant holding the name of the operating system. Possible values\ninclude <code>\"Linux\"</code>, <code>\"Android\"</code>, <code>\"FreeBSD\"</code>,\n<code>\"OpenBSD\"</code>, <code>\"SunOS\"</code>, <code>\"Darwin\"</code> or\n<code>\"Cygwin\"</code>. See also <code><a href=\"refC.html#*CPU\">*CPU</a></code>\nand <code><a href=\"refV.html#version\">version</a></code>.\n\n<pre>\n: *OS\n-> \"Linux\"\n</pre></dd>\n\n<dt><a id=\"obj\"><code>(obj (typ sym [hook] val ..) [var1 val1 ..]) -> obj</code></a></dt>\n<dt><code>(obj typ any [var1 val1 ..]) -> obj</code></dt>\n<dd>Finds or creates a database object, and initializes additional properties\nusing the <code>varN</code> and <code>valN</code> arguments. In the first form,\na <code><a href=\"refR.html#request\">request</a></code> for <code>(typ sym [hook]\nval ..)</code> is called, while the second form uses <code><a\nhref=\"refC.html#cache\">cache</a></code> to maintain objects without unique\n<code><a href=\"refK.html#+Key\">+Key</a></code>s by indexing <code><a\nhref=\"refO.html#*ObjIdx\">*ObjIdx</a></code> with the <code>any</code> argument.\n\n<pre>\n: (obj ((+Item) nr 2) nm \"Spare Part\" sup `(db 'nr '+CuSu 2) inv 100 pr 1250)\n-> {B2}\n</pre></dd>\n\n<dt><a id=\"object\"><code>(object 'sym 'any ['sym2 'any2 ..]) -> obj</code></a></dt>\n<dd>Defines <code>sym</code> to be an object with the value (or type)\n<code>any</code>. The property list is initialized with all optionally supplied\nkey-value pairs. See also <a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refN.html#new\">new</a></code>, <code><a\nhref=\"refT.html#type\">type</a></code> and <code><a\nhref=\"refI.html#isa\">isa</a></code>.\n\n<pre>\n: (object 'Obj '(+A +B +C) 'a 1 'b 2 'c 3)\n-> Obj\n: (show 'Obj)\nObj (+A +B +C)\n   c 3\n   b 2\n   a 1\n-> Obj\n</pre></dd>\n\n<dt><a id=\"oct\"><code>(oct 'num ['num]) -> sym</code></a></dt>\n<dt><code>(oct 'sym) -> num</code></dt>\n<dd>Converts a number <code>num</code> to an octal string, or an octal string\n<code>sym</code> to a number. In the first case, if the second argument is\ngiven, the result is separated by spaces into groups of such many digits. See\nalso <code><a href=\"refB.html#bin\">bin</a></code>, <code><a\nhref=\"refH.html#hex\">hex</a></code>, <code><a\nhref=\"refH.html#hax\">hax</a></code> and <code><a\nhref=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (oct 73)\n-> \"111\"\n: (oct \"111\")\n-> 73\n: (oct 1234567 3)\n-> \"4 553 207\"\n</pre></dd>\n\n<dt><a id=\"off\"><code>(off var ..) -> NIL</code></a></dt>\n<dd>Stores <code>NIL</code> in all <code>var</code> arguments. See also <code><a\nhref=\"refO.html#on\">on</a></code>, <code><a\nhref=\"refO.html#onOff\">onOff</a></code>, <code><a\nhref=\"refZ.html#zero\">zero</a></code> and <code><a\nhref=\"refO.html#one\">one</a></code>.\n\n<pre>\n: (off A B)\n-> NIL\n: A\n-> NIL\n: B\n-> NIL\n</pre></dd>\n\n<dt><a id=\"offset\"><code>(offset 'lst1 'lst2) -> cnt | NIL</code></a></dt>\n<dd>Returns the <code>cnt</code> position of the tail list <code>lst1</code> in\n<code>lst2</code>, or <code>NIL</code> if it is not found. See also <code><a\nhref=\"refI.html#index\">index</a></code>, <code><a\nhref=\"refS.html#sub?\">sub?</a></code> and <code><a\nhref=\"refT.html#tail\">tail</a></code>.\n\n<pre>\n: (offset '(c d e f) '(a b c d e f))\n-> 3\n: (offset '(c d e) '(a b c d e f))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"on\"><code>(on var ..) -> T</code></a></dt>\n<dd>Stores <code>T</code> in all <code>var</code> arguments. See also <code><a\nhref=\"refO.html#off\">off</a></code>, <code><a\nhref=\"refO.html#onOff\">onOff</a></code>, <code><a\nhref=\"refZ.html#zero\">zero</a></code> and <code><a\nhref=\"refO.html#one\">one</a></code>.\n\n<pre>\n: (on A B)\n-> T\n: A\n-> T\n: B\n-> T\n</pre></dd>\n\n<dt><a id=\"once\"><code>(once . prg) -> any</code></a></dt>\n<dd>Executes <code>prg</code> once, when the current file is <code><a\nhref=\"refL.html#load\">load</a></code>ed the first time. Subsequent loads at a\nlater time will not execute <code>prg</code>, and <code>once</code> returns\n<code>NIL</code>. See also <code><a href=\"refO.html#*Once\">*Once</a></code> and\n<code><a href=\"refF.html#finish\">finish</a></code>.\n\n<pre>\n(once\n   (zero *Cnt1 *Cnt2)  # Init counters\n   (load \"file1.l\" \"file2.l\") )  # Load other files\n\n`(once T)  # Ignore next time the rest of this file\n</pre></dd>\n\n<dt><a id=\"one\"><code>(one var ..) -> 1</code></a></dt>\n<dd>Stores <code>1</code> in all <code>var</code> arguments. See also <code><a\nhref=\"refZ.html#zero\">zero</a></code>, <code><a\nhref=\"refO.html#on\">on</a></code>, <code><a href=\"refO.html#off\">off</a></code>\nand <code><a href=\"refO.html#onOff\">onOff</a></code>.\n\n<pre>\n: (one A B)\n-> 1\n: A\n-> 1\n: B\n-> 1\n</pre></dd>\n\n<dt><a id=\"onOff\"><code>(onOff var ..) -> flg</code></a></dt>\n<dd>Logically negates the values of all <code>var</code> arguments. Returns the\nnew value of the last symbol. See also <code><a\nhref=\"refO.html#on\">on</a></code>, <code><a href=\"refO.html#off\">off</a></code>,\n<code><a href=\"refZ.html#zero\">zero</a></code> and <code><a\nhref=\"refO.html#one\">one</a></code>.\n\n<pre>\n: (onOff A B)\n-> T\n: A\n-> T\n: B\n-> T\n: (onOff A B)\n-> NIL\n: A\n-> NIL\n: B\n-> NIL\n</pre></dd>\n\n<dt><a id=\"open\"><code>(open 'any ['flg]) -> cnt | NIL</code></a></dt>\n<dd>Opens the file with the name <code>any</code> in read/write mode (or\nread-only if <code>flg</code> is non-<code>NIL</code>), and returns a file\ndescriptor <code>cnt</code> (or <code>NIL</code> on error). A leading\n\"<code>@</code>\" character in <code>any</code> is substituted with the\n<u>PicoLisp Home Directory</u>, as it was remembered during interpreter startup.\nIf <code>flg</code> is <code>NIL</code> and the file does not exist, it is\ncreated. The file descriptor can be used in subsequent calls to <code><a\nhref=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refO.html#out\">out</a></code>. See also <code><a\nhref=\"refC.html#close\">close</a></code> and <code><a\nhref=\"refP.html#poll\">poll</a></code>.\n\n<pre>\n: (open \"x\")\n-> 3\n</pre></dd>\n\n<dt><a id=\"opid\"><code>(opid) -> pid | NIL</code></a></dt>\n<dd>Returns the corresponding process ID when the current output channel is\nwriting to a pipe, otherwise <code>NIL</code>. See also <code><a\nhref=\"refI.html#ipid\">ipid</a></code> and <code><a\nhref=\"refO.html#out\">out</a></code>.\n\n<pre>\n: (out '(cat) (call 'ps \"-p\" (opid)))\n  PID TTY          TIME CMD\n 7127 pts/3    00:00:00 cat\n-> T\n</pre></dd>\n\n<dt><a id=\"opt\"><code>(opt) -> sym</code></a></dt>\n<dd>Return the next command line argument (\"option\", as would be processed by\n<code><a href=\"refL.html#load\">load</a></code>) as a string, and remove it from\nthe remaining command line arguments. See also <a\nhref=\"ref.html#invoc\">Invocation</a> and <code><a\nhref=\"refA.html#argv\">argv</a></code>.\n\n<pre>\n$ pil  -\"de f () (println 'opt (opt))\"  -f abc  -bye\nopt \"abc\"\n</pre></dd>\n\n<dt><a id=\"or\"><code>(or 'any ..) -> any</code></a></dt>\n<dd>Logical OR. The expressions <code>any</code> are evaluated from left to\nright. If a non-<code>NIL</code> value is encountered, it is returned\nimmediately. Else the result of the last expression is returned. See also\n<code><a href=\"refN.html#nor\">nor</a></code>, <code><a\nhref=\"refA.html#and\">and</a></code> and <code><a\nhref=\"refU.html#unless\">unless</a></code>.\n\n<pre>\n: (or (= 3 3) (read))\n-> T\n: (or (= 3 4) (read))\nabc\n-> abc\n</pre></dd>\n\n<dt><a id=\"or/2\"><code>or/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that takes an arbitrary number\nof clauses, and succeeds if one of them can be proven. See also <code><a\nhref=\"refN.html#not/1\">not/1</a></code>.\n\n<pre>\n: (?\n   (or\n      ((equal 3 @X) (equal @X 4))\n      ((equal 7 @X) (equal @X 7)) ) )\n @X=7\n-> NIL\n</pre></dd>\n\n<dt><a id=\"out\"><code>(out 'any . prg) -> any</code></a></dt>\n<dd>Opens <code>any</code> as output channel during the execution of\n<code>prg</code>. The current output channel will be saved and restored\nappropriately. If the argument is <code>NIL</code>, standard output is used. If\nthe argument is a symbol, it is used as a file name (opened in read/write-append\nmode if the first character is \"<code>+</code>\"). If it is a positive number, it\nis used as the descriptor of an open file. If it is a negative number, the saved\noutput channel such many levels above the current one is used. Otherwise (if it\nis a list), it is taken as a command with arguments, and a pipe is opened for\noutput. The (system dependent) exit status code of the child process is stored\nin the global variable <code><a href=\"ref_.html#@@\">@@</a></code>. In all cases,\n<code><a href=\"refF.html#flush\">flush</a></code> is called when <code>prg</code>\nis done. See also <code><a href=\"refI.html#in\">in</a></code>, <code> <a\nhref=\"refE.html#err\">err</a></code>, <code> <a\nhref=\"refF.html#fd\">fd</a></code>, <code><a\nhref=\"refO.html#opid\">opid</a></code>, <code> <a\nhref=\"refC.html#call\">call</a></code>, <code><a\nhref=\"refC.html#ctl\">ctl</a></code>, <code><a\nhref=\"refP.html#pipe\">pipe</a></code>, <code> <a\nhref=\"refP.html#poll\">poll</a></code>, <code> <a\nhref=\"refC.html#close\">close</a></code> and <code><a\nhref=\"refL.html#load\">load</a></code>.\n\n<pre>\n: (out \"a\" (println 123 '(a b c) 'def))  # Write one line to file \"a\"\n-> def\n: (out '(lpr) (prinl \"Hello\"))  # Send line to line printer\n-> \"Hello\"\n</pre></dd>\n\n<dt><a id=\"output\"><code>(output exe . prg) -> any</code></a></dt>\n<dd>Establishes an output stream, by redirecting the current output channel\nduring the execution of <code>prg</code>. The current output channel will be\nsaved and restored appropriately. <code>exe</code> is executed (in the context\nof the original output channel) whenever a character needs to be output by print\ncalls in <code>prg</code>. That character is passed in the global variable\n<code><a href=\"ref_.html#@@\">@@</a></code>, and the following character in the\nstream in <code><a href=\"ref_.html#@@@\">@@@</a></code> (single-character\nlook-ahead). See also <code><a href=\"refI.html#input\">input</a></code>, <code><a\nhref=\"refO.html#out\">out</a></code> and <code><a\nhref=\"refP.html#pipe\">pipe</a></code>.\n\n<pre>\n: (output (prin (uppc @@)) (prinl \"abc\"))\nABC\n-> \"abc\"\n: (output (println @@ @@@) (prin \"abc\"))\n\"a\" \"b\"\n\"b\" \"c\"\n\"c\" NIL\n-> \"abc\"\n: (pack\n   (make\n      (output (link @@)\n         (print '(+ 2 (* 3 4))) ) ) )\n-> \"(+ 2 (* 3 4))\"\n: (pack\n   (make\n      (let L (1 2 3 4 5 6 7)\n         (output (link @@)\n            (while L\n               (ext:Base64 (++ L) (++ L) (++ L)) ) ) ) ) )\n-> \"AQIDBAUGBw==\"\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refP.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 29mar26 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>P</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>P</h1>\n\n<dl>\n\n<dt><a id=\"*PPid\"><code>*PPid</code></a></dt>\n<dd>A global constant holding the process-id of the parent picolisp process, or\n<code>NIL</code> if the current process is a top level process.\n\n<pre>\n: (println *PPid *Pid)\nNIL 5286\n\n: (unless (fork) (println *PPid *Pid) (bye))\n5286 5522\n</pre></dd>\n\n<dt><a id=\"*Pid\"><code>*Pid</code></a></dt>\n<dd>A global constant holding the current process-id.\n\n<pre>\n: *Pid\n-> 6386\n: (call \"ps\")  # Show processes\n  PID TTY          TIME CMD\n .... ...      ........ .....\n 6386 pts/1    00:00:00 pil   # &lt;- current process\n 6388 pts/1    00:00:00 ps\n-> T\n</pre></dd>\n\n<dt><a id=\"*Prompt\"><code>*Prompt</code></a></dt>\n<dd>Global variable holding a (possibly empty) <code>prg</code> body, which is\nexecuted - and the result <code><a href=\"refP.html#prin\">prin</a></code>ted -\nevery time before a prompt is output to the console in the\n\"read-eval-print-loop\" (REPL).\n\n<pre>\n: (de *Prompt (pack \"[\" (stamp) \"]\"))\n# *Prompt redefined\n-> *Prompt\n[2011-10-11 16:50:05]: (+ 1 2 3)\n-> 6\n[2011-10-11 16:50:11]:\n</pre></dd>\n\n<dt><a id=\"pack\"><code>(pack 'any ..) -> sym</code></a></dt>\n<dd>Returns a transient symbol whose name is concatenated from all arguments\n<code>any</code>. A <code>NIL</code> arguments contributes nothing to the result\nstring, a number is converted to a digit string, a symbol supplies the\ncharacters of its name, and for a list its elements are taken. See also <code><a\nhref=\"refT.html#text\">text</a></code> and <code><a\nhref=\"refG.html#glue\">glue</a></code>.\n\n<pre>\n: (pack 'car \" is \" 1 '(\" symbol \" name))\n-> \"car is 1 symbol name\"\n</pre></dd>\n\n<dt><a id=\"pad\"><code>(pad 'cnt 'any) -> sym</code></a></dt>\n<dd>Returns a transient symbol with <code>any</code> <code><a\nhref=\"refP.html#pack\">pack</a></code>ed with leading '0' characters, up to a\nfield width of <code>cnt</code>. See also <code><a\nhref=\"refF.html#format\">format</a></code> and <code><a\nhref=\"refA.html#align\">align</a></code>.\n\n<pre>\n: (pad 5 1)\n-> \"00001\"\n: (pad 5 123456789)\n-> \"123456789\"\n</pre></dd>\n\n<dt><a id=\"pair\"><code>(pair 'any) -> any</code></a></dt>\n<dd>Returns <code>any</code> when the argument is a cons pair. See also <code><a\nhref=\"refA.html#atom\">atom</a></code>, <code><a\nhref=\"refN.html#num?\">num?</a></code>, <code><a\nhref=\"refS.html#sym?\">sym?</a></code> and <code><a\nhref=\"refL.html#lst?\">lst?</a></code>.\n\n<pre>\n: (pair NIL)\n-> NIL\n: (pair (1 . 2))\n-> (1 . 2)\n: (pair (1 2 3))\n-> (1 2 3)\n</pre></dd>\n\n<dt><a id=\"part/3\"><code>part/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument, after <code><a href=\"refF.html#fold\">fold</a></code>ing it to\na canonical form, is a <i>substring</i> of the folded string\nrepresentation of the result of applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to the following\narguments. Typically used as filter predicate in <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"refS.html#sub?\">sub?</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (?\n   @Nr (1 . 5)\n   @Nm \"part\"\n   (select (@Item)\n      ((nr +Item @Nr) (nm +Item @Nm))\n      (range @Nr @Item nr)\n      (part @Nm @Item nm) ) )\n @Nr=(1 . 5) @Nm=\"part\" @Item={B1}\n @Nr=(1 . 5) @Nm=\"part\" @Item={B2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"pass\"><code>(pass 'fun ['any ..]) -> any</code></a></dt>\n<dd>Passes to <code>fun</code> all arguments <code>any</code>, and all remaining\nvariable arguments (<code>@</code>) as they would be returned by <code><a\nhref=\"refR.html#rest\">rest</a></code>. <code>(pass 'fun 'any)</code> is\nequivalent to <code>(apply 'fun (rest) 'any)</code>. See also <code><a\nhref=\"refA.html#apply\">apply</a></code>.\n\n<pre>\n: (de bar (A B . @)\n   (println 'bar A B (rest)) )\n-> bar\n: (de foo (A B . @)\n   (println 'foo A B)\n   (pass bar 1)\n   (pass bar 2) )\n-> foo\n: (foo 'a 'b 'c 'd 'e 'f)\nfoo a b\nbar 1 c (d e f)\nbar 2 c (d e f)\n-> (d e f)\n</pre></dd>\n\n<dt><a id=\"pat?\"><code>(pat? 'any) -> pat | NIL</code></a></dt>\n<dd>Returns <code>any</code> when the argument <code>any</code> is a symbol\nwhose name starts with an at-mark \"<code>@</code>\", otherwise <code>NIL</code>.\n\n<pre>\n: (pat? '@)\n-> @\n: (pat? \"@Abc\")\n-> \"@Abc\"\n: (pat? \"ABC\")\n-> NIL\n: (pat? 123)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"patch\"><code>(patch 'lst 'any . prg) -> any</code></a></dt>\n<dd>Destructively replaces all sub-expressions of <code>lst</code> which\n<code><a href=\"refM.html#match\">match</a></code> the pattern <code>any</code>,\nby the result of the execution of <code>prg</code>. See also <code><a\nhref=\"refD.html#daemon\">daemon</a></code> and <code><a\nhref=\"refR.html#redef\">redef</a></code>.\n\n<pre>\n: (pp 'hello)\n(de hello NIL\n   (prinl \"Hello world!\") )\n-> hello\n\n: (patch hello 'prinl 'println)\n-> NIL\n: (pp 'hello)\n(de hello NIL\n   (println \"Hello world!\") )\n-> hello\n\n: (patch hello '(prinl @S) (fill '(println \"We said: \" . @S)))\n-> NIL\n: (hello)\nWe said: Hello world!\n-> \"Hello world!\"\n</pre></dd>\n\n<dt><a id=\"path\"><code>(path 'any) -> sym</code></a></dt>\n<dd>Substitutes any leading \"<code>@</code>\" or \"<code>~</code>\" character in\nthe <code>any</code> argument with the <u>PicoLisp</u> or <u>User</u> Home\nDirectory respectively, as they were remembered during interpreter startup.\nOptionally, the name may be preceded by a \"<code>+</code>\" character (as used by\n<code><a href=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refO.html#out\">out</a></code>). This mechanism is used internally by all\nI/O functions. See also <a href=\"ref.html#invoc\">Invocation</a>, <code><a\nhref=\"refB.html#basename\">basename</a></code> and <code><a\nhref=\"refD.html#dirname\">dirname</a></code>.\n\n<pre>\n$ /usr/bin/picolisp /usr/lib/picolisp/lib.l\n: (path \"a/b/c\")\n-> \"a/b/c\"\n: (path \"@a/b/c\")\n-> \"/usr/lib/picolisp/a/b/c\"\n: (path \"+@a/b/c\")\n-> \"+/usr/lib/picolisp/a/b/c\"\n</pre></dd>\n\n<dt><a id=\"peek\"><code>(peek) -> sym</code></a></dt>\n<dd>Single character look-ahead: Returns the same character as the next call to\n<code><a href=\"refC.html#char\">char</a></code> would return. Note that if the\nnext character is a multi-byte character, only the first <i>byte</i> is\nreturned. See also <code><a href=\"refS.html#skip\">skip</a></code>.\n\n<pre>\n$ cat a\n# Comment\nabcd\n$ pil +\n: (in \"a\" (list (peek) (char)))\n-> (\"#\" \"#\")\n</pre></dd>\n\n<dt><a id=\"permute/2\"><code>permute/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the second\nargument is a permutation of the list in the second argument. See also <code><a\nhref=\"refA.html#append/3\">append/3</a></code>.\n\n<pre>\n: (? (permute (a b c) @X))\n @X=(a b c)\n @X=(a c b)\n @X=(b a c)\n @X=(b c a)\n @X=(c a b)\n @X=(c b a)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"pick\"><code>(pick 'fun 'lst ..) -> any</code></a></dt>\n<dd>Applies <code>fun</code> to successive elements of <code>lst</code> until\nnon-<code>NIL</code> is returned. Returns that value, or <code>NIL</code> if\n<code>fun</code> did not return non-<code>NIL</code> for any element of\n<code>lst</code>. When additional <code>lst</code> arguments are given, their\nelements are also passed to <code>fun</code>. <code>(pick 'fun 'lst)</code> is\nequivalent to <code>(fun (find 'fun 'lst))</code>. See also <code><a\nhref=\"refS.html#seek\">seek</a></code>, <code><a\nhref=\"refF.html#find\">find</a></code> and <code><a\nhref=\"refE.html#extract\">extract</a></code>.\n\n<pre>\n: (setq A NIL  B 1  C NIL  D 2  E NIL  F 3)\n-> 3\n: (find val '(A B C D E))\n-> B\n: (pick val '(A B C D E))\n-> 1\n</pre></dd>\n\n<dt><a id=\"pico\"><code>pico</code></a></dt>\n<dd>A global constant holding the initial (default) <a\nhref=\"ref.html#namespaces\">namespace</a> of internal symbols. Its value\nis two cons pairs of the symbol <code>~</code> (as a marker) and two\n'<code><a href=\"refI.html#idx\">idx</a></code>' trees, one for symbols\nwith short names and one for symbols with long names (more than 7 bytes\nin the name). See also <code><a\nhref=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refN.html#nsp\">nsp</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (symbols)\n-> (pico)\n: (cdr pico)\n-> (rollback (*NoTrace (*CtryCode (+IdxFold) genStrKey) basename ...\n</pre></dd>\n\n<dt><a id=\"pilog\"><code>(pilog 'lst . prg) -> any</code></a></dt>\n<dd>Evaluates a <a href=\"ref.html#pilog\">Pilog</a> query, and executes\n<code>prg</code> for each result set with all Pilog variables bound to their\nmatching values. See also <code><a href=\"refS.html#solve\">solve</a></code>,\n<code><a href=\"ref_.html#?\">?</a></code>, <code><a\nhref=\"refG.html#goal\">goal</a></code> and <code><a\nhref=\"refP.html#prove\">prove</a></code>.\n\n<pre>\n: (pilog '((append @X @Y (a b c))) (println @X '- @Y))\nNIL - (a b c)\n(a) - (b c)\n(a b) - (c)\n(a b c) - NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"pipe\"><code>(pipe exe) -> cnt</code></a></dt>\n<dt><code>(pipe exe . prg) -> any</code></dt>\n<dd>Executes <code>exe</code> in a <code><a\nhref=\"refF.html#fork\">fork</a></code>'ed child process (which terminates\nthereafter). In the first form, <code>pipe</code> just returns a file descriptor\nto write to the standard input and read from the standard output of that\nprocess. In the second form, it opens the standard output of that process as\ninput channel during the execution of <code>prg</code>. The current input\nchannel will be saved and restored appropriately, and the (system dependent)\nexit status code of the child process is stored in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>. See also <code><a\nhref=\"refL.html#later\">later</a></code>, <code><a\nhref=\"refI.html#ipid\">ipid</a></code>, <code><a\nhref=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refO.html#out\">out</a></code>.\n\n<pre>\n: (pipe                                # equivalent to 'any'\n   (prinl \"(a b # Comment\\nc d)\")         # Child\n   (read) )                               # Parent\n-> (a b c d)\n\n: (pipe                                # pipe through an external program\n   (out '(tr \"[a-z]\" \"[A-Z]\")             # Child\n      (prinl \"abc def ghi\") )\n   (line T) )                             # Parent\n-> \"ABC DEF GHI\"\n\n: (setq P\n     (pipe\n        (in NIL                           # Child: Read stdin\n           (while (line T)\n              (prinl (uppc @))            # and write to stdout\n              (flush) ) ) ) )\n-> 3\n: (out P (prinl \"abc def\"))               # Parent: Send line to child\n-> \"abc def\"\n: (in P (line))                           # Parent: Read reply\n-> (\"A\" \"B\" \"C\" \" \" \"D\" \"E\" \"F\")\n</pre></dd>\n\n<dt><a id=\"place\"><code>(place 'cnt 'lst 'any) -> lst</code></a></dt>\n<dd>Places <code>any</code> into <code>lst</code> at position <code>cnt</code>.\nThis is a non-destructive operation. See also <code><a\nhref=\"refI.html#insert\">insert</a></code>, <code><a\nhref=\"refR.html#remove\">remove</a></code>, <code><a\nhref=\"refA.html#append\">append</a></code>, <code><a\nhref=\"refD.html#delete\">delete</a></code> and <code><a\nhref=\"refR.html#replace\">replace</a></code>.\n\n<pre>\n: (place 3 '(a b c d e) 777)\n-> (a b 777 d e)\n: (place 1 '(a b c d e) 777)\n-> (777 b c d e)\n: (place 9 '(a b c d e) 777)\n-> (a b c d e 777)\n</pre></dd>\n\n<dt><a id=\"plio\"><code>(plio 'num) -> any</code></a></dt>\n<dt><code>(plio 'num 'cnt 'any) -> cnt</code></dt>\n<dd>The first form returns one item stored in PLIO format at the memory location\npointed to by <code>num</code>. The second form stores an item <code>any</code>\nin a buffer of size <code>cnt</code>. See also <code><a\nhref=\"refB.html#byte\">byte</a></code> and <code><a\nhref=\"refS.html#struct\">struct</a></code>.\n\n<pre>\n: (buf P 64\n   (plio P 64 (1 a (2 b c) d))  # Store expression\n   (plio P) )                   # Fetch it\n-> (1 a (2 b c) d)\n</pre></dd>\n\n<dt><a id=\"poll\"><code>(poll 'cnt) -> cnt | NIL</code></a></dt>\n<dd>Checks for the availability of data for reading on the file descriptor\n<code>cnt</code>. See also <code><a href=\"refO.html#open\">open</a></code>,\n<code><a href=\"refI.html#in\">in</a></code> and <code><a\nhref=\"refC.html#close\">close</a></code>.\n\n<pre>\n: (and (poll *Fd) (in @ (read)))  # Prevent blocking\n</pre></dd>\n\n<dt><a id=\"pool\"><code>(pool ['sym1 ['lst] ['sym2] ['sym3]]) -> T</code></a></dt>\n<dd>Opens the file <code>sym1</code> as a database file in read/write mode. If\nthe file does not exist, it is created. A currently open database is closed.\n<code>lst</code> is a list of block size scale factors (i.e. numbers),\ndefaulting to (2) (for a single file with a 256 byte block size). If\n<code>lst</code> is given, an individual database file is opened for each item.\nIf <code>sym2</code> is non-<code>NIL</code>, it is opened in append-mode as an\nasynchronous replication journal. If <code>sym3</code> is non-<code>NIL</code>,\nit is opened for reading and appending, to be used as a synchronous transaction\nlog during <code><a href=\"refC.html#commit\">commit</a></code>s. Calling\n<code>(pool)</code> without arguments just closes the current database. See also\n<code><a href=\"refD.html#dbs\">dbs</a></code>, <code><a\nhref=\"refD.html#*Dbs\">*Dbs</a></code> and <code><a\nhref=\"refJ.html#journal\">journal</a></code>.\n\n<pre>\n: *Dbs\n-> (1 2 2 4)\n: (pool \"dbFile\" *Dbs)\n-> T\n\n$ ls -l dbFile*\n-rw-r--r-- 1 abu abu  256 Jul  3 08:30 dbFile@\n-rw-r--r-- 1 abu abu  256 Jul  3 08:30 dbFileA\n-rw-r--r-- 1 abu abu  256 Jul  3 08:30 dbFileB\n-rw-r--r-- 1 abu abu 1024 Jul  3 08:30 dbFileC\n\n# DB directly on a device\n: (pool \"/dev/hda2\")\n-> T\n</pre></dd>\n\n<dt><a id=\"pool2\"><code>(pool2 'sym . prg)</code> -> any</a></dt>\n<dd>Temporary switches to another database specified by <code>sym</code>. This\ndatabase must be a multi-file DB with exactly the same <code><a\nhref=\"refD.html#*Dbs\">*Dbs</a></code> structure as the currently open one. The\ncurrent database is not closed - I/O is just redirected to the new one. All\nfiles are opened before <code>prg</code> runs, and are closed thereafter. The\nresult of <code>prg</code> is returned. No replication journal or transaction\nlog is written. Also, possibly cached objects of the current DB remain in the\nheap, so an explicit call to <code><a\nhref=\"refR.html#rollback\">rollback</a></code> may be necessary. See also\n<code><a href=\"refB.html#blk\">blk</a></code>.\n\n<pre>\n(pool2 \"db2/\"  # Update a read-only DB\n   (journal \"file.jnl\") )\n\n(rollback)\n(pool2 \"db2/\"  # Access object(s)\n   (show *DB) )\n(rollback)\n</pre></dd>\n\n<dt><a id=\"pop\"><code>(pop 'var) -> any</code></a></dt>\n<dd>Pops the first element (CAR) from the stack in <code>var</code>. See also\n<code><a href=\"refP.html#push\">push</a></code>, <code><a\nhref=\"ref_.html#++\">++</a></code>, <code><a\nhref=\"refS.html#shift\">shift</a></code>, <code><a\nhref=\"refQ.html#queue\">queue</a></code>, <code><a\nhref=\"refC.html#cut\">cut</a></code>, <code><a\nhref=\"refD.html#del\">del</a></code> and <code><a\nhref=\"refF.html#fifo\">fifo</a></code>.\n\n<pre>\n: (setq S '((a b c) (1 2 3)))\n-> ((a b c) (1 2 3))\n: (pop S)\n-> a\n: (pop (cdr S))\n-> 1\n: (pop 'S)\n-> (b c)\n: S\n-> ((2 3))\n</pre></dd>\n\n<dt><a id=\"port\"><code>(port ['T] 'cnt|(cnt . cnt) ['var]) -> cnt</code></a></dt>\n<dd>Opens a TCP-Port <code>cnt</code> (or a UDP-Port if the first argument is\n<code>T</code>), and returns a socket descriptor suitable as an argument for\n<code><a href=\"refL.html#listen\">listen</a></code> or <code><a\nhref=\"refA.html#accept\">accept</a></code> (or <code><a\nhref=\"refU.html#udp\">udp</a></code>, respectively). If <code>cnt</code> is zero,\nsome free port number is allocated. If a pair of <code>cnt</code>s is given\ninstead, it should be a range of numbers which are tried in turn. When\n<code>var</code> is given, it is bound to the port number.\n\n<pre>\n: (port 0 'A)                       # Allocate free port\n-> 4\n: A\n-> 1034                             # Got 1034\n: (port (4000 . 4008) 'A)           # Try one of these ports\n-> 5\n: A\n-> 4002\n</pre></dd>\n\n<dt><a id=\"pp\"><code>(pp 'sym) -> sym</code></a></dt>\n<dt><code>(pp 'sym 'cls) -> sym</code></dt>\n<dt><code>(pp '(sym . cls)) -> sym</code></dt>\n<dd>Pretty-prints the function or method definition of <code>sym</code>. The\noutput format would regenerate that same definition when read and executed. See\nalso <code><a href=\"refP.html#pretty\">pretty</a></code>, <code><a\nhref=\"refD.html#debug\">debug</a></code> and <code><a\nhref=\"refV.html#vi\">vi</a></code>.\n\n<pre>\n: (pp 'tab)\n(de tab (Lst . @)\n   (for N Lst\n      (let V (next)\n         (and (gt0 N) (space (- N (length V))))\n         (prin V)\n         (and\n            (lt0 N)\n            (space (- 0 N (length V))) ) ) )\n   (prinl) )\n-> tab\n\n: (pp 'has> '+Entity)\n(dm has> (Var Val)\n   (or\n      (nor Val (get This Var))\n      (has> (meta This Var) Val (get This Var)) ) )\n-> has>\n\n: (more (can 'has>) pp)\n(dm (has> . +relation) (Val X)\n   (and (= Val X) X) )\n\n(dm (has> . +Fold) (Val X)\n   (extra\n      Val\n      (if (= Val (fold Val)) (fold X) X) ) )\n\n(dm (has> . +Entity) (Var Val)\n   (or\n      (nor Val (get This Var))\n      (has> (meta This Var) Val (get This Var)) ) )\n\n(dm (has> . +List) (Val X)\n   (and\n      Val\n      (or\n         (extra Val X)\n         (find '((X) (extra Val X)) X) ) ) )\n\n(dm (has> . +Bag) (Val X)\n   (and\n      Val\n      (or (super Val X) (car (member Val X))) ) )\n</pre></dd>\n\n<dt><a id=\"pr\"><code>(pr 'any ..) -> any</code></a></dt>\n<dd>Binary print: Prints all <code>any</code> arguments to the current output\nchannel in encoded binary format. See also <code><a\nhref=\"refR.html#rd\">rd</a></code>, <code><a\nhref=\"refB.html#bytes\">bytes</a></code>, <code><a\nhref=\"refT.html#tell\">tell</a></code>, <code><a\nhref=\"refH.html#hear\">hear</a></code> and <code><a\nhref=\"refW.html#wr\">wr</a></code>.\n\n<pre>\n: (out \"x\" (pr 7 \"abc\" (1 2 3) 'a))  # Print to \"x\"\n-> a\n: (hd \"x\")\n00000000  04 0E 0E 61 62 63 01 04 02 04 04 04 06 03 05 61  ...abc.........a\n-> NIL\n</pre></dd>\n\n<dt><a id=\"prBase64\"><code>(prBase64 'cnt ['str]) -> NIL</code></a></dt>\n<dd>Multiline base64 printing. Echoes bytes from the current input channel to\nthe current output channel in Base64 format. A newline is inserted after every\n<code>cnt</code> byte-triples (character-quadruples). If <code>str</code> is\ngiven (typically a carriage return), it is output before the newline. See also\n<code><a href=\"refE.html#echo\">echo</a></code> <code><a\nhref=\"refM.html#mail\">mail</a></code>.\n\n<pre>\n: (in \"image.png\" (prBase64 18))  # Print 72 columns\n</pre></dd>\n\n<dt><a id=\"prEval\"><code>(prEval 'prg ['cnt]) -> any</code></a></dt>\n<dd>Executes <code>prg</code>, similar to <code><a\nhref=\"refR.html#run\">run</a></code>, by evaluating all expressions in\n<code>prg</code> (within the binding environment given by <code>cnt-1</code>).\nAs a side effect, all atomic expressions will be printed with <code><a\nhref=\"refP.html#prinl\">prinl</a></code>. See also <code><a\nhref=\"refE.html#eval\">eval</a></code>.\n\n<pre>\n: (let Prg 567\n   (prEval\n      '(\"abc\" (prinl (+ 1 2 3)) Prg 987) ) )\nabc\n6\n567\n987\n-> 987\n</pre></dd>\n\n<dt><a id=\"pre?\"><code>(pre? 'any1 'any2) -> any2 | NIL</code></a></dt>\n<dd>Returns <code>any2</code> when the string representation of\n<code>any1</code> is a prefix of the string representation of <code>any2</code>.\nSee also <code><a href=\"refS.html#sub?\">sub?</a></code> and <code><a\nhref=\"refH.html#head\">head</a></code>.\n\n<pre>\n: (pre? \"abc\" \"abcdefg\")\n-> \"abcdef\"\n: (pre? \"def\" \"abcdefg\")\n-> NIL\n: (pre? (+ 3 4) \"7fach\")\n-> \"7fach\"\n: (pre? NIL \"abcdefg\")\n-> \"abcdefg\"\n\n: (pre? \"abc\" '(a b c d e f g))\n-> \"abcdefg\"\n: (pre? '(a b c) \"abcdefg\")\n-> \"abcdefg\"\n</pre></dd>\n\n<dt><a id=\"pretty\"><code>(pretty 'any 'cnt)</code></a></dt>\n<dd>Pretty-prints <code>any</code>. If <code>any</code> is an atom, or a list\nwith a <code><a href=\"refS.html#size\">size</a></code> not greater than 12, it is\n<code><a href=\"refP.html#print\">print</a></code>ed as is. Otherwise, only the\nopening parenthesis and the CAR of the list is printed, all other elements are\npretty-printed recursively indented by three spaces, followed by a space and the\ncorresponding closing parenthesis. The initial indentation level\n<code>cnt</code> defaults to zero. See also <code><a\nhref=\"refP.html#pp\">pp</a></code>.\n\n<pre>\n: (pretty '(a (b c d) (e (f (g) (h) (i)) (j (k) (l) (m))) (n o p) q))\n(a\n   (b c d)\n   (e\n      (f (g) (h) (i))\n      (j (k) (l) (m)) )\n   (n o p)\n   q )-> \")\"\n</pre></dd>\n\n<dt><a id=\"prin\"><code>(prin 'any ..) -> any</code></a></dt>\n<dd>Prints the string representation of all <code>any</code> arguments to the\ncurrent output channel. No space or newline is printed between individual items,\nor after the last item. For lists, all elements are <code>prin</code>'ted\nrecursively. See also <code><a href=\"refP.html#prinl\">prinl</a></code>.\n\n<pre>\n: (prin 'abc 123 '(a 1 b 2))\nabc123a1b2-> (a 1 b 2)\n</pre></dd>\n\n<dt><a id=\"prinl\"><code>(prinl 'any ..) -> any</code></a></dt>\n<dd>Prints the string representation of all <code>any</code> arguments to the\ncurrent output channel, followed by a newline. No space or newline is printed\nbetween individual items. For lists, all elements are <code>prin</code>'ted\nrecursively. See also <code><a href=\"refP.html#prin\">prin</a></code>.\n\n<pre>\n: (prinl 'abc 123 '(a 1 b 2))\nabc123a1b2\n-> (a 1 b 2)\n</pre></dd>\n\n<dt><a id=\"print\"><code>(print 'any ..) -> any</code></a></dt>\n<dd>Prints all <code>any</code> arguments to the current output channel. If\nthere is more than one argument, a space is printed between successive\narguments. No space or newline is printed after the last item. See also <code><a\nhref=\"refP.html#println\">println</a></code>, <code><a\nhref=\"refP.html#printsp\">printsp</a></code>, <code><a\nhref=\"refS.html#sym\">sym</a></code> and <code><a\nhref=\"refS.html#str\">str</a></code>\n\n<pre>\n: (print 123)\n123-> 123\n: (print 1 2 3)\n1 2 3-> 3\n: (print '(a b c) 'def)\n(a b c) def-> def\n</pre></dd>\n\n<dt><a id=\"println\"><code>(println 'any ..) -> any</code></a></dt>\n<dd>Prints all <code>any</code> arguments to the current output channel,\nfollowed by a newline. If there is more than one argument, a space is printed\nbetween successive arguments. See also <code><a\nhref=\"refP.html#print\">print</a></code>, <code><a\nhref=\"refP.html#printsp\">printsp</a></code>.\n\n<pre>\n: (println '(a b c) 'def)\n(a b c) def\n-> def\n</pre></dd>\n\n<dt><a id=\"printsp\"><code>(printsp 'any ..) -> any</code></a></dt>\n<dd>Prints all <code>any</code> arguments to the current output channel,\nfollowed by a space. If there is more than one argument, a space is printed\nbetween successive arguments. See also <code><a\nhref=\"refP.html#print\">print</a></code>, <code><a\nhref=\"refP.html#println\">println</a></code>.\n\n<pre>\n: (printsp '(a b c) 'def)\n(a b c) def -> def\n</pre></dd>\n\n<dt><a id=\"prior\"><code>(prior 'lst1 'lst2) -> lst | NIL</code></a></dt>\n<dd>Returns the cell in <code>lst2</code> which immediately precedes the cell\n<code>lst1</code>, or <code>NIL</code> if <code>lst1</code> is not found in\n<code>lst2</code> or is the very first cell. <code><a\nhref=\"ref_.html#==\">==</a></code> is used for comparison (pointer equality). See\nalso <code><a href=\"refO.html#offset\">offset</a></code> and <code><a\nhref=\"refM.html#memq\">memq</a></code>.\n\n<pre>\n: (setq L (1 2 3 4 5 6))\n-> (1 2 3 4 5 6)\n: (setq X (cdddr L))\n-> (4 5 6)\n: (prior X L)\n-> (3 4 5 6)\n</pre></dd>\n\n<dt><a id=\"private\"><code>(private) sym|lst</code></a></dt>\n<dd>Intern symbols locally into an internal special <a\nhref=\"ref.html#namespaces\">namespace</a> named '<code>priv</code>'. This\nnamespace is always searched first, but never gets new symbols\nautomatically interned. <code>(private)</code> expects a single symbol\nor a list of symbols immediately following in the current input stream.\nSee also <code><a href=\"refP.html#pico\">pico</a></code>, <code><a\nhref=\"refS.html#symbols\">symbols</a></code>, <code><a\nhref=\"refL.html#local\">local</a></code>, <code><a\nhref=\"refE.html#export\">export</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (symbols 'myLib 'pico)\n-> (pico)\nmyLib: (symbols)\n-> (myLib pico)\nmyLib: (private) (foo bar)  # Intern 'foo' and 'bar' in 'priv'\nmyLib: (symbols)\n-> (myLib pico)\nmyLib: (all 'priv)\n-> (priv~foo priv~bar)\n</pre></dd>\n\n<dt><a id=\"proc\"><code>(proc 'sym ..) -> T</code></a></dt>\n<dd>(Debug mode on Linux only) Shows a list of processes with command names\ngiven by the <code>sym</code> arguments, using the system <code>ps</code>\nutility. See also <code><a href=\"refK.html#kids\">kids</a></code>, <code><a\nhref=\"refK.html#kill\">kill</a></code> and <code><a\nhref=\"refH.html#hd\">hd</a></code>.\n\n<pre>\n: (proc 'pil)\n  PID  PPID  STARTED  SIZE %CPU WCHAN  CMD\n16993  3267 12:38:21  1516  0.5 -      /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil +\n15731  1834 12:36:35  2544  0.1 -      /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil app/main.l -main -go +\n15823 15731 12:36:44  2548  0.0 -        /usr/bin/picolisp /usr/lib/picolisp/lib.l /usr/bin/pil app/main.l -main -go +\n-> T\n</pre></dd>\n\n<dt><a id=\"prog\"><code>(prog . prg) -> any</code></a></dt>\n<dd>Executes <code>prg</code>, and returns the result of the last expression.\nSee also <code><a href=\"refN.html#nil\">nil</a></code>, <code><a\nhref=\"refT.html#t\">t</a></code>, <code><a\nhref=\"refP.html#prog1\">prog1</a></code> and <code><a\nhref=\"refP.html#prog2\">prog2</a></code>.\n\n<pre>\n: (prog (print 1) (print 2) (print 3))\n123-> 3\n</pre></dd>\n\n<dt><a id=\"prog1\"><code>(prog1 'any1 . prg) -> any1</code></a></dt>\n<dd>Executes all arguments, and returns the result of the first expression\n<code>any1</code>. See also <code><a href=\"refN.html#nil\">nil</a></code>,\n<code><a href=\"refT.html#t\">t</a></code>, <code><a\nhref=\"refP.html#prog\">prog</a></code> and <code><a\nhref=\"refP.html#prog2\">prog2</a></code>.\n\n<pre>\n: (prog1 (print 1) (print 2) (print 3))\n123-> 1\n</pre></dd>\n\n<dt><a id=\"prog2\"><code>(prog2 'any1 'any2 . prg) -> any2</code></a></dt>\n<dd>Executes all arguments, and returns the result of the second expression\n<code>any2</code>. See also <code><a href=\"refN.html#nil\">nil</a></code>,\n<code><a href=\"refT.html#t\">t</a></code>, <code><a\nhref=\"refP.html#prog\">prog</a></code> and <code><a\nhref=\"refP.html#prog1\">prog1</a></code>.\n\n<pre>\n: (prog2 (print 1) (print 2) (print 3))\n123-> 2\n</pre></dd>\n\n<dt><a id=\"prompt\"><code>(prompt 'any . prg) -> any</code></a></dt>\n<dd>Sets the prompt for non-REPL <code>readline(3)</code> calls to\n<code>any</code> during the execution of prg. See also <code><a\nhref=\"refT.html#tty\">tty</a></code>.\n\n<pre>\n: (prompt \"== \" (line))\n== abc\n-> (\"a\" \"b\" \"c\")\n</pre></dd>\n\n<dt><a id=\"prop\"><code>(prop 'sym1|lst ['sym2|cnt ..] 'sym) -> var</code></a></dt>\n<dd>Fetches a property for a property key <code>sym</code> from a symbol. That\nsymbol is <code>sym1</code> (if no other arguments are given), or a symbol found\nby applying the <code><a href=\"refG.html#get\">get</a></code> algorithm to\n<code>sym1|lst</code> and the following arguments. The property (the cons pair,\nnot just its value) is returned, suitable for direct (destructive) manipulations\nwith functions expecting a <code>var</code> argument. See also <code><a\nhref=\"ref_.html#::\">::</a></code>.\n\n<pre>\n: (put 'X 'cnt 0)\n-> 0\n: (prop 'X 'cnt)\n-> (0 . cnt)\n: (inc (prop 'X 'cnt))        # Directly manipulate the property value\n-> 1\n: (get 'X 'cnt)\n-> 1\n</pre></dd>\n\n<dt><a id=\"protect\"><code>(protect . prg) -> any</code></a></dt>\n<dd>Executes <code>prg</code>, and returns the result of the last expression. If\na signal is received during that time, its handling will be delayed until the\nexecution of <code>prg</code> is completed. See also <code><a\nhref=\"refA.html#alarm\">alarm</a></code>, <a href=\"refH.html#*Hup\">*Hup</a>, <a\nhref=\"refS.html#*Sig1\">*Sig[12]</a> and <code><a\nhref=\"refK.html#kill\">kill</a></code>.\n\n<pre>\n: (protect (journal \"db1.log\" \"db2.log\"))\n-> T\n</pre></dd>\n\n<dt><a id=\"prove\"><code>(prove 'lst ['lst]) -> lst</code></a></dt>\n<dd>The <a href=\"ref.html#pilog\">Pilog</a> interpreter. Tries to prove the query\nlist in the first argument, and returns an association list of symbol-value\npairs, or <code>NIL</code> if not successful. The query list is modified as a\nside effect, allowing subsequent calls to <code>prove</code> for further\nresults. The optional second argument may contain a list of symbols; in that\ncase the successful matches of rules defined for these symbols will be traced.\nSee also <code><a href=\"refG.html#goal\">goal</a></code>, <code><a\nhref=\"ref_.html#-%3E\">-&gt;</a></code> and <code><a\nhref=\"refU.html#unify\">unify</a></code>.\n\n<pre>\n: (prove (goal '((equal 3 3))))\n-> T\n: (prove (goal '((equal 3 @X))))\n-> ((@X . 3))\n: (prove (goal '((equal 3 4))))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"prune\"><code>(prune ['cnt])</code></a></dt>\n<dd>Optimizes memory usage by pruning in-memory nodes of database trees.\nTypically called repeatedly during bulk data imports. If <code>cnt</code> is\n<code>0</code>, the pruning process is initialized, and if it is\n<code>NIL</code>, further pruning will be disabled. Otherwise, all nodes which\nhave not been accessed (with <code><a href=\"refF.html#fetch\">fetch</a></code>,\n<code><a href=\"refS.html#store\">store</a></code>, <code><a\nhref=\"refS.html#scan\">scan</a></code> or <code><a\nhref=\"refI.html#iter\">iter</a></code>) for <code>cnt</code> calls to\n<code>prune</code> will be <code><a href=\"refW.html#wipe\">wipe</a></code>d. See\nalso <code><a href=\"refL.html#lieu\">lieu</a></code>.\n\n<pre>\n(in File1\n   (prune 0)\n   (while (someData)\n      (new T '(+Cls1) ..)\n      (at (0 . 10000) (commit) (prune 100)) ) )\n(in File2\n   (prune 0)\n   (while (moreData)\n      (new T '(+Cls2) ..)\n      (at (0 . 10000) (commit) (prune 100)) ) )\n(commit)\n(prune)\n</pre></dd>\n\n<dt><a id=\"push\"><code>(push 'var 'any ..) -> any</code></a></dt>\n<dd>Implements a stack using a list in <code>var</code>. The <code>any</code>\narguments are cons'ed in front of the value list. See also <code><a\nhref=\"refP.html#push1\">push1</a></code>, <code><a\nhref=\"refP.html#push1q\">push1q</a></code>, <code><a\nhref=\"refP.html#pop\">pop</a></code>, <code><a\nhref=\"refS.html#shift\">shift</a></code>, <code><a\nhref=\"refQ.html#queue\">queue</a></code> and <code><a\nhref=\"refF.html#fifo\">fifo</a></code>.\n\n<pre>\n: (push 'S 3)              # Use the VAL of 'S' as a stack\n-> 3\n: S\n-> (3)\n: (push 'S 2)\n-> 2\n: (push 'S 1)\n-> 1\n: S\n-> (1 2 3)\n: (push S 999)             # Now use the CAR of the list in 'S'\n-> 999\n: (push S 888 777)\n-> 777\n: S\n-> ((777 888 999 . 1) 2 3)\n</pre></dd>\n\n<dt><a id=\"push1\"><code>(push1 'var 'any ..) -> any</code></a></dt>\n<dd>Maintains a unique list in <code>var</code>. Each <code>any</code> argument\nis cons'ed in front of the value list only if it is not already a <code><a\nhref=\"refM.html#member\">member</a></code> of that list. See also <code><a\nhref=\"refP.html#push\">push</a></code>, <code><a\nhref=\"refP.html#push1q\">push1q</a></code>, <code><a\nhref=\"refP.html#pop\">pop</a></code> and <code><a\nhref=\"refQ.html#queue\">queue</a></code>.\n\n<pre>\n: (push1 'S 1 2 3)\n-> 3\n: S\n-> (3 2 1)\n: (push1 'S 2 4)\n-> 4\n: S\n-> (4 3 2 1)\n</pre></dd>\n\n<dt><a id=\"push1q\"><code>(push1q 'var 'any ..) -> any</code></a></dt>\n<dd>Maintains a unique list in <code>var</code>. Each <code>any</code> argument\nis cons'ed in front of the value list only if it is not already <code><a\nhref=\"refM.html#memq\">memq</a></code> of that list (pointer equality). See also\n<code><a href=\"refP.html#push\">push</a></code>, <code><a\nhref=\"refP.html#push1\">push1</a></code>, <code><a\nhref=\"refP.html#pop\">pop</a></code> and <code><a\nhref=\"refQ.html#queue\">queue</a></code>.\n\n<pre>\n: (push1q 'S 'a (1) 'b (2) 'c)\n-> c\n: S\n-> (c (2) b (1) a)\n: (push1q 'S 'b (1) 'd)       # (1) is not pointer equal to the previous one\n-> d\n: S\n->  (d (1) c (2) b (1) a)     # (1) is twice in the list\n</pre></dd>\n\n<dt><a id=\"put\"><code>(put 'sym1|lst ['sym2|cnt ..] 'any) -> any</code></a></dt>\n<dd>Stores a new value <code>any</code> for a property key (or in the symbol\nvalue for zero) in a symbol, or in a list. That symbol is <code>sym1</code> (if\nno other arguments are given), or a symbol found by applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to <code>sym1|lst</code> and the\nfollowing arguments. If the final destination is a list, the value is stored in\nthe CDR of an <code><a href=\"refA.html#asoq\">asoq</a></code>ed element (if the\nkey argument is a symbol), or the n'th element (if the key is a number). See\nalso <code><a href=\"ref_.html#=:\">=:</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (get 'X 'a)\n-> 1\n: (prop 'X 'a)\n-> (1 . a)\n\n: (setq L '(A B C))\n-> (A B C)\n: (setq B 'D)\n-> D\n: (put L 2 0 'p 5)  # Store '5' under the 'p' property of the value of 'B'\n-> 5\n: (getl 'D)\n-> ((5 . p))\n</pre></dd>\n\n<dt><a id=\"put!\"><code>(put! 'obj 'sym 'any) -> any</code></a></dt>\n<dd><a href=\"ref.html#trans\">Transaction</a> wrapper function for <code><a\nhref=\"refP.html#put\">put</a></code>. Note that for setting property values of\nentities typically the <code><a\nhref=\"refE.html#entityMesssages\">put!></a></code> message is used. See also\n<code><a href=\"refN.html#new!\">new!</a></code>, <code><a\nhref=\"refR.html#request!\">request!</a></code>, <code><a\nhref=\"refS.html#set!\">set!</a></code> and <code><a\nhref=\"refI.html#inc!\">inc!</a></code>.\n\n<pre>\n(put! Obj 'cnt 0)  # Setting a property of a non-entity object\n</pre></dd>\n\n<dt><a id=\"putl\"><code>(putl 'sym1|lst1 ['sym2|cnt ..] 'lst) -> lst</code></a></dt>\n<dd>Stores a complete new property list <code>lst</code> in a symbol. That\nsymbol is <code>sym1</code> (if no other arguments are given), or a symbol found\nby applying the <code><a href=\"refG.html#get\">get</a></code> algorithm to\n<code>sym1|lst1</code> and the following arguments. All previously defined\nproperties for that symbol are lost. See also <code><a\nhref=\"refG.html#getl\">getl</a></code> and <code><a\nhref=\"refM.html#maps\">maps</a></code>.\n\n<pre>\n: (putl 'X '((123 . a) flg (\"Hello\" . b)))\n-> ((123 . a) flg (\"Hello\" . b))\n: (get 'X 'a)\n-> 123\n: (get 'X 'b)\n-> \"Hello\"\n: (get 'X 'flg)\n-> T\n</pre></dd>\n\n<dt><a id=\"pwd\"><code>(pwd) -> sym</code></a></dt>\n<dd>Returns the path to the current working directory. See also <code><a\nhref=\"refD.html#dir\">dir</a></code> and <code><a\nhref=\"refC.html#cd\">cd</a></code>.\n\n<pre>\n: (pwd)\n-> \"/home/app\"\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refQ.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 04dec23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Q</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>Q</h1>\n\n<dl>\n\n<dt><a id=\"qsym\"><code>(qsym . sym) -> lst</code></a></dt>\n<dd>Returns a cons pair of the value and property list of <code>sym</code>. See\nalso <code><a href=\"refQ.html#quote\">quote</a></code>, <code><a\nhref=\"refV.html#val\">val</a></code> and <code><a\nhref=\"refG.html#getl\">getl</a></code>.\n\n<pre>\n: (setq A 1234)\n-> 1234\n: (put 'A 'a 1)\n-> 1\n: (put 'A 'b 2)\n-> 2\n: (put 'A 'f T)\n-> T\n: (qsym . A)\n-> (1234 f (2 . b) (1 . a))\n</pre></dd>\n\n<dt><a id=\"quote\"><code>(quote . any) -> any</code></a></dt>\n<dd>Returns <code>any</code> unevaluated. The reader recognizes the single quote\nchar <code>'</code> as a macro for this function. See also <code><a\nhref=\"refL.html#lit\">lit</a></code>.\n\n<pre>\n: 'a\n-> a\n: '(foo a b c)\n-> (foo a b c)\n: (quote (quote (quote a)))\n-> ('('(a)))\n</pre></dd>\n\n<dt><a id=\"query\"><code>(query 'lst ['lst]) -> flg</code></a></dt>\n<dd>Handles an interactive <a href=\"ref.html#pilog\">Pilog</a> query. The two\n<code>lst</code> arguments are passed to <code><a\nhref=\"refP.html#prove\">prove</a></code>. <code>query</code> displays each\nresult, waits for a key, and terminates when ESC is pressed. See also <code><a\nhref=\"ref_.html#?\">?</a></code>, <code><a\nhref=\"refP.html#pilog\">pilog</a></code> and <code><a\nhref=\"refS.html#solve\">solve</a></code>.\n\n<pre>\n: (query (goal '((append @X @Y (a b c)))))\n @X=NIL @Y=(a b c)\n @X=(a) @Y=(b c)\n @X=(a b) @Y=(c)\n @X=(a b c) @Y=NIL\n-> NIL\n</pre></dd>\n\n<dt><a id=\"queue\"><code>(queue 'var 'any) -> any</code></a></dt>\n<dd>Implements a queue using a list in <code>var</code>. The <code>any</code>\nargument is (destructively) concatenated to the end of the value list. See also\n<code><a href=\"refP.html#push\">push</a></code>, <code><a\nhref=\"refP.html#pop\">pop</a></code>, <code><a\nhref=\"refR.html#rid\">rid</a></code> and <code><a\nhref=\"refF.html#fifo\">fifo</a></code>.\n\n<pre>\n: (queue 'A 1)\n-> 1\n: (queue 'A 2)\n-> 2\n: (queue 'A 3)\n-> 3\n: A\n-> (1 2 3)\n: (pop 'A)\n-> 1\n: A\n-> (2 3)\n</pre></dd>\n\n<dt><a id=\"quit\"><code>(quit ['any ['any]])</code></a></dt>\n<dd>Stops current execution. If no arguments are given, all pending <code><a\nhref=\"refF.html#finally\">finally</a></code> expressions are executed and control\nis returned to the top level read-eval-print loop. Otherwise, an error handler\nis entered. The first argument can be some error message, and the second might\nbe the reason for the error. See also <code><a href=\"ref.html#errors\">Error\nHandling</a></code>.\n\n<pre>\n: (de foo (X) (quit \"Sorry, my error\" X))\n-> foo\n: (foo 123)                                  # 'X' is bound to '123'\n123 -- Sorry, my error                       # Error entered\n? X                                          # Inspect 'X'\n-> 123\n?                                            # Empty line: Exit\n:\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refR.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 09sep25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>R</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>R</h1>\n\n<dl>\n\n<dt><a id=\"*Rule\"><code>*Rule</code></a></dt>\n<dd>A global variable holding the current <a href=\"ref.html#pilog\">Pilog</a>\nrule symbol. It is cleared at the beginning of a new REPL. See also <code><a\nhref=\"refB.html#be\">be</a></code> and <code><a\nhref=\"refC.html#clause\">clause</a></code>.\n\n<pre>\n: (be likes (John Mary))\n-> likes\n: *Rule\n-> likes\n</pre></dd>\n\n<dt><a id=\"*Run\"><code>*Run</code></a></dt>\n<dd>This global variable can hold a list of <code>prg</code> expressions which\nare used during <code><a href=\"refK.html#key\">key</a></code>, <code><a\nhref=\"refS.html#sync\">sync</a></code>, <code><a\nhref=\"refW.html#wait\">wait</a></code> and <code><a\nhref=\"refL.html#listen\">listen</a></code>. The first element of each expression\nmust either be a positive number (thus denoting a file descriptor to wait for)\nor a negative number (denoting a timeout value in milliseconds (in that case\nanother number must follow to hold the remaining time)). A <code>poll(2)</code>\nsystem call is performed with these values, and the corresponding\n<code>prg</code> body is executed when input data are available or when a\ntimeout occurred (with <code><a href=\"ref_.html#@\">@</a></code> set to the file\ndescriptor or timeout value). See also <code><a\nhref=\"refT.html#task\">task</a></code>.\n\n<pre>\n: (de *Run (-2000 0 (println '2sec)))     # Install 2-sec-timer\n-> *Run\n: 2sec                                    # Prints \"2sec\" every 2 seconds\n2sec\n2sec\n                                          # (Ctrl-D) Exit\n$\n</pre></dd>\n\n<dt><a id=\"+Ref\"><code>+Ref</code></a></dt>\n<dd>Prefix class for maintaining non-unique indexes to <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s, a subclass of <code><a\nhref=\"refI.html#+index\">+index</a></code>. Accepts an optional argument for a\n<code><a href=\"refH.html#+Hook\">+Hook</a></code> attribute. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel tel (+Fold +Ref +String))  # Phone number with folded, non-unique index\n</pre></dd>\n\n<dt><a id=\"+Ref2\"><code>+Ref2</code></a></dt>\n<dd>Prefix class for maintaining a secondary (\"backing\") index to <code><a\nhref=\"refR.html#+relation\">+relation</a></code>s. Can only be used as a prefix\nclass to <code><a href=\"refK.html#+Key\">+Key</a></code> or <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code>. It maintains an index in the current\n(sub)class, in addition to that in one of the superclasses (must be a\n<code>+Ref</code>), to allow (sub)class-specific queries. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(class +Ord +Entity)             # Order class\n(rel nr (+Need +Ref +Number))    # Order number\n...\n(class +EuOrd +Ord)              # EU-specific order subclass\n(rel nr (+Ref2 +Key +Number))    # Order number with backing index\n</pre></dd>\n\n<dt><a id=\"+relation\"><code>+relation</code></a></dt>\n<dd>Abstract base class of all database relations. Relation objects are usually\ndefined with <code><a href=\"refR.html#rel\">rel</a></code>. The class hierarchy\nincludes the classes <code><a href=\"refA.html#+Any\">+Any</a></code>, <code><a\nhref=\"refB.html#+Bag\">+Bag</a></code>, <code><a\nhref=\"refB.html#+Bool\">+Bool</a></code>, <code><a\nhref=\"refN.html#+Number\">+Number</a></code>, <code><a\nhref=\"refD.html#+Date\">+Date</a></code>, <code><a\nhref=\"refT.html#+Time\">+Time</a></code>, <code><a\nhref=\"refS.html#+Symbol\">+Symbol</a></code>, <code><a\nhref=\"refS.html#+String\">+String</a></code>, <code><a\nhref=\"refL.html#+Link\">+Link</a></code>, <code><a\nhref=\"refJ.html#+Joint\">+Joint</a></code> and <code><a\nhref=\"refB.html#+Blob\">+Blob</a></code>, and the prefix classes <code><a\nhref=\"refH.html#+Hook\">+Hook</a></code>, <code><a\nhref=\"refH.html#+Hook2\">+Hook2</a></code>, <code><a\nhref=\"refI.html#+index\">+index</a></code>, <code><a\nhref=\"refK.html#+Key\">+Key</a></code>, <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code>, <code><a\nhref=\"refR.html#+Ref2\">+Ref2</a></code>, <code><a\nhref=\"refI.html#+Idx\">+Idx</a></code>, <code><a\nhref=\"refI.html#+IdxFold\">+IdxFold</a></code>, <code><a\nhref=\"refS.html#+Sn\">+Sn</a></code>, <code><a\nhref=\"refF.html#+Fold\">+Fold</a></code>, <code><a\nhref=\"refA.html#+Aux\">+Aux</a></code>, <code><a\nhref=\"refU.html#+UB\">+UB</a></code>, <code><a\nhref=\"refD.html#+Dep\">+Dep</a></code>, <code><a\nhref=\"refL.html#+List\">+List</a></code>, <code><a\nhref=\"refN.html#+Need\">+Need</a></code>, <code><a\nhref=\"refM.html#+Mis\">+Mis</a></code>, <code><a\nhref=\"refA.html#+Alt\">+Alt</a></code> and <code><a\nhref=\"refS.html#+Swap\">+Swap</a></code>. See also <a\nhref=\"ref.html#dbase\">Database</a> and <code><a\nhref=\"refE.html#+Entity\">+Entity</a></code>.\n\n<p><a id=\"relationMesssages\">Messages</a> to relation objects include\n\n<pre>\nmis> (Val Obj)       # Return error if mismatching type or value\nhas> (Val X)         # Check if the value is present\nput> (Obj Old New)   # Put new value\nrel> (Obj Old New)   # Maintain relational structures\nlose> (Obj Val)      # Delete relational structures\nkeep> (Obj Val)      # Restore deleted relational structures\nzap> (Obj Val)       # Clean up relational structures\n</pre></dd>\n\n<dt><a id=\"rand\"><code>(rand ['cnt1 'cnt2] | ['T]) -> cnt | flg</code></a></dt>\n<dd>Returns a pseudo random number in the range of the positive short numbers\n<code>cnt1</code> and <code>cnt2</code> (or -2147483648 .. +2147483647 if no\narguments are given). If the argument is <code>T</code>, a boolean value\n<code>flg</code> is returned. Note that if a range is given, the results are\n\"more random\" because the higher bits of the internal generator are used. See\nalso <code><a href=\"refS.html#seed\">seed</a></code>.\n\n<pre>\n: (rand 3 9)\n-> 3\n: (rand 3 9)\n-> 7\n</pre></dd>\n\n<dt><a id=\"range\"><code>(range 'num1 'num2 ['num3]) -> lst</code></a></dt>\n<dd>Produces a list of numbers in the range <code>num1</code> through\n<code>num2</code>. When <code>num3</code> is non-<code>NIL</code>, it is used\nto increment <code>num1</code> (if it is smaller than <code>num2</code>) or to\ndecrement <code>num1</code> (if it is greater than <code>num2</code>). See also\n<code><a href=\"refN.html#need\">need</a></code>.\n\n<pre>\n: (range 1 6)\n-> (1 2 3 4 5 6)\n: (range 6 1)\n-> (6 5 4 3 2 1)\n: (range -3 3)\n-> (-3 -2 -1 0 1 2 3)\n: (range 3 -3 2)\n-> (3 1 -1 -3)\n</pre></dd>\n\n<dt><a id=\"range/3\"><code>range/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument is in the range of the result of applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to the following\narguments. Typically used as filter predicate in <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"ref.html#cmp\">Comparing</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (?\n   @Nr (1 . 5)  # Numbers between 1 and 5\n   @Nm \"part\"\n   (select (@Item)\n      ((nr +Item @Nr) (nm +Item @Nm))\n      (range @Nr @Item nr)\n      (part @Nm @Item nm) ) )\n @Nr=(1 . 5) @Nm=\"part\" @Item={B1}\n @Nr=(1 . 5) @Nm=\"part\" @Item={B2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"rank\"><code>(rank 'any 'lst ['flg]) -> lst</code></a></dt>\n<dd>Searches a ranking list. <code>lst</code> should be sorted. Returns the\nelement from <code>lst</code> with a maximal CAR less or equal to\n<code>any</code> (if <code>flg</code> is <code>NIL</code>), or with a minimal\nCAR greater or equal to <code>any</code> (if <code>flg</code> is\nnon-<code>NIL</code>), or <code>NIL</code> if no match is found. See also\n<code><a href=\"refA.html#assoc\">assoc</a></code> and <a\nhref=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (rank 0 '((1 . a) (100 . b) (1000 . c)))\n-> NIL\n: (rank 50 '((1 . a) (100 . b) (1000 . c)))\n-> (1 . a)\n: (rank 100 '((1 . a) (100 . b) (1000 . c)))\n-> (100 . b)\n: (rank 300 '((1 . a) (100 . b) (1000 . c)))\n-> (100 . b)\n: (rank 9999 '((1 . a) (100 . b) (1000 . c)))\n-> (1000 . c)\n: (rank 50 '((1000 . a) (100 . b) (1 . c)) T)\n-> (100 . b)\n</pre></dd>\n\n<dt><a id=\"rassoc\"><code>(rassoc 'any 'lst) -> lst</code></a></dt>\n<dd>Reverse <code><a href=\"refA.html#assoc\">assoc</a></code>. Returns the first\nelement from <code>lst</code> with its CDR equal to <code>any</code>, or\n<code>NIL</code> if no match is found. See also <code><a\nhref=\"refR.html#rasoq\">rasoq</a></code> and <code><a\nhref=\"refA.html#asoq\">asoq</a></code>.\n\n<pre>\n: (rassoc 7 '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> (\"b\" . 7)\n: (rassoc (1 2 3) '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> (999 1 2 3)\n: (rassoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\")))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"rasoq\"><code>(rasoq 'any 'lst) -> lst</code></a></dt>\n<dd>Reverse <code><a href=\"refA.html#asoq\">asoq</a></code>. Returns the first\nelement from <code>lst</code> with <code>any</code> as its CDR, or\n<code>NIL</code> if no match is found. <code><a\nhref=\"ref_.html#==\">==</a></code> is used for comparison (pointer equality). See\nalso <code><a href=\"refA.html#assoc\">assoc</a></code> and <code><a\nhref=\"refR.html#rassoc\">rassoc</a></code>.\n\n<pre>\n: (rasoq 'b '((1 . a) (2 . b) (3 . c))) )\n-> (2 . b)\n: (rasoq \"b\" '((1 . a) (2 . b) (3 . c))) )\n-> NIL\n</pre></dd>\n\n<dt><a id=\"raw\"><code>(raw ['flg]) -> flg</code></a></dt>\n<dd>Console mode control function. When called without arguments, it returns the\ncurrent console mode (<code>NIL</code> for \"cooked mode\"). Otherwise, the\nconsole is set to the new state. See also <code><a\nhref=\"refK.html#key\">key</a></code>.\n\n<pre>\n$ pil +\n: (raw)\n-> NIL\n: (raw T)\n-> T\n...  # Raw mode, no echo!\n</pre></dd>\n\n<dt><a id=\"rc\"><code>(rc 'sym 'any1 ['any2 ['any3 'any4..]]) -> any</code></a></dt>\n<dd>Fetches a value from a resource file <code>sym</code>, or stores one or more\nkey-value pairs <code>(any1 . any2)</code> in that file, using the key\n<code>any1</code> (and optionally <code>any3</code> etc. for multiple stores).\nAll values are stored in a list in the file, using <code><a\nhref=\"refA.html#assoc\">assoc</a></code>. During the whole operation, the file is\nexclusively locked with <code><a href=\"refC.html#ctl\">ctl</a></code>.\n\n<pre>\n: (info \"a.rc\")               # File exists?\n-> NIL                        # No\n: (rc \"a.rc\" 'a 1)            # Store 1 for 'a'\n-> 1\n: (rc \"a.rc\" 'b (2 3 4))      # Store (2 3 4) for 'b'\n-> (2 3 4)\n: (rc \"a.rc\" 'c 'b)           # Store 'b' for 'c'\n-> b\n: (info \"a.rc\")               # Check file\n-> (28 733124 . 61673)\n: (in \"a.rc\" (echo))          # Display it\n((c . b) (b 2 3 4) (a . 1))\n-> T\n: (rc \"a.rc\" 'c)              # Fetch value for 'c'\n-> b\n: (rc \"a.rc\" @)               # Fetch value for 'b'\n-> (2 3 4)\n</pre></dd>\n\n<dt><a id=\"rd\"><code>(rd ['sym]) -> any</code></a></dt>\n<dt><code>(rd 'cnt) -> num | NIL</code></dt>\n<dd>Binary read: Reads one item from the current input channel in encoded binary\nformat. When called with a <code>cnt</code> argument (second form), that number\nof raw bytes (in big endian format if <code>cnt</code> is positive, otherwise\nlittle endian) is read as a single number. Upon end of file, if the\n<code>sym</code> argument is given, it is returned, otherwise <code>NIL</code>.\nSee also <code><a href=\"refP.html#pr\">pr</a></code>, <code><a\nhref=\"refT.html#tell\">tell</a></code>, <code><a\nhref=\"refH.html#hear\">hear</a></code> and <code><a\nhref=\"refW.html#wr\">wr</a></code>.\n\n<pre>\n: (out \"x\" (pr 'abc \"EOF\" 123 \"def\"))\n-> \"def\"\n: (in \"x\" (rd))\n-> abc\n: (in \"x\"\n   (make\n      (use X\n         (until (== \"EOF\" (setq X (rd \"EOF\")))  # '==' detects end of file\n            (link X) ) ) ) )\n-> (abc \"EOF\" 123 \"def\")  # as opposed to reading a symbol \"EOF\"\n\n: (in \"/dev/urandom\" (rd 20))\n-> 396737673456823753584720194864200246115286686486\n</pre></dd>\n\n<dt><a id=\"read\"><code>(read ['sym1 ['sym2]]) -> any</code></a></dt>\n<dd>Reads one item from the current input channel. <code>NIL</code> is returned\nupon end of file. When called without arguments, an arbitrary Lisp expression is\nread. Otherwise, a token (a number, an internal symbol, a transient symbol (for\npunctuation), or a list of symbols (for a string)) is read. In that case,\n<code>sym1</code> specifies which set of characters to accept for continuous\nsymbol names (in addition to the standard alphanumerical characters), and\n<code>sym2</code> an optional comment character. See also <code><a\nhref=\"refA.html#any\">any</a></code>, <code><a\nhref=\"refS.html#str\">str</a></code>, <code><a\nhref=\"refL.html#line\">line</a></code>, <code><a\nhref=\"refS.html#skip\">skip</a></code> and <code><a\nhref=\"refE.html#eof\">eof</a></code>.\n\n<pre>\n: (list (read) (read) (read))    # Read three things from console\n123                              # a number\nabcd                             # a symbol\n(def                             # and a list\nghi\njkl\n)\n-> (123 abcd (def ghi jkl))\n: (make (while (read \"_\" \"#\") (link @)))\nabc = def_ghi(\"xyz\"+-123) # Comment\nNIL\n-> (abc \"=\" def_ghi \"(\" (\"x\" \"y\" \"z\") \"+\" \"-\" 123 \")\")\n</pre></dd>\n\n<dt><a id=\"recur\"><code>(recur lst . prg) -> any</code></a></dt>\n<dt><a id=\"recurse\"><code>(recurse ['any ..]) -> any</code></a></dt>\n<dd>Implements anonymous recursion, by defining the function\n<code>recurse</code> on the fly. During the execution of <code>prg</code>, the\nsymbol <code>recurse</code> is bound to the function definition <code>(lst .\nprg)</code>. See also <code><a href=\"refL.html#let\">let</a></code>, <code><a\nhref=\"ref.html#lambda\">lambda</a></code> and <code><a\nhref=\"refT.html#tco\">tco</a></code>.\n\n<pre>\n: (de fibonacci (N)\n   (when (lt0 N)\n      (quit \"Bad fibonacci\" N) )\n   (recur (N)\n      (if (>= 2 N)\n         1\n         (+\n            (recurse (dec N))\n            (recurse (- N 2)) ) ) ) )\n-> fibonacci\n: (fibonacci 22)\n-> 17711\n: (fibonacci -7)\n-7 -- Bad fibonacci\n</pre></dd>\n\n<dt><a id=\"redef\"><code>(redef sym . fun) -> sym</code></a></dt>\n<dd>Redefines <code>sym</code> in terms of itself. The current definition is\nsaved in a new symbol, which is substituted for each occurrence of\n<code>sym</code> in <code>fun</code>, and which is also returned. See also\n<code><a href=\"refD.html#de\">de</a></code>, <code><a\nhref=\"refU.html#undef\">undef</a></code>, <code><a\nhref=\"refD.html#daemon\">daemon</a></code> and <code><a\nhref=\"refP.html#patch\">patch</a></code>.\n\n<pre>\n: (de hello () (prinl \"Hello world!\"))\n-> hello\n: (pp 'hello)\n(de hello NIL\n   (prinl \"Hello world!\") )\n-> hello\n\n: (redef hello (A B)\n   (println 'Before A)\n   (prog1 (hello) (println 'After B)) )\n-> \"hello\"\n: (pp 'hello)\n(de hello (A B)\n   (println 'Before A)\n   (prog1 (\"hello\") (println 'After B)) )\n-> hello\n: (hello 1 2)\nBefore 1\nHello world!\nAfter 2\n-> \"Hello world!\"\n\n: (redef * @\n   (msg (rest))\n   (pass *) )\n-> \"*\"\n: (* 1 2 3)\n(1 2 3)\n-> 6\n\n: (redef + @\n   (pass (ifn (num? (next)) pack +) (arg)) )\n-> \"+\"\n: (+ 1 2 3)\n-> 6\n: (+ \"a\" 'b '(c d e))\n-> \"abcde\"\n</pre></dd>\n\n<dt><a id=\"reflect\"><code>(reflect 'cnt 'sym)</code></a></dt>\n<dd>Global variable holding a (possibly empty) function, which can be called\nfrom native code to supply information of native data structures to Lisp. See\nalso <code><a href=\"refN.html#native\">native</a></code>.\n\n<pre>\n</pre></dd>\n\n<dt><a id=\"rel\"><code>(rel sym lst [any ..]) -> any</code></a></dt>\n<dd>Defines a relation for <code>sym</code> in the current class <code><a\nhref=\"refC.html#*Class\">*Class</a></code>, using <code>lst</code> as the list of\nclasses for that relation, and possibly additional arguments <code>any</code>\nfor its initialization. See also <a href=\"ref.html#dbase\">Database</a>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refE.html#extend\">extend</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code> and <code><a\nhref=\"refV.html#var\">var</a></code>.\n\n<pre>\n(class +Person +Entity)\n(rel nm  (+List +Ref +String))            # Names\n(rel tel (+Ref +String))                  # Telephone\n(rel adr (+Joint) prs (+Address))         # Address\n\n(class +Address +Entity)\n(rel cit (+Need +Hook +Link) (+City))     # City\n(rel str (+List +Ref +String) cit)        # Street\n(rel prs (+List +Joint) adr (+Person))    # Inhabitants\n\n(class +City +Entity)\n(rel nm  (+List +Ref +String))            # Zip / Names\n</pre></dd>\n\n<dt><a id=\"release\"><code>(release 'sym) -> NIL</code></a></dt>\n<dd>Releases the mutex represented by the file 'sym'. This is the reverse\noperation of <code><a href=\"refA.html#acquire\">acquire</a></code>.\n\n<pre>\n: (release \"sema1\")\n-> NIL\n</pre></dd>\n\n<dt><a id=\"remark\"><code>(remark 'any)</code></a></dt>\n<dd>Global variable holding a (possibly empty) function, which will be called\nwhen a value is printed in the REPL. It can be used to provide further\ninformation about that value.\n\n<pre>\n: (date)\n-> 739542  # 2024-12-16\n: (scl 3)\n-> 3  # 0.003\n: 12.3\n-> 12300  # 12.300\n: (date)\n-> 739542  # 2024-12-16 739.542</pre></dd>\n\n<dt><a id=\"remote/2\"><code>remote/2</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate for remote database queries.\nIt takes a list and an arbitrary number of clauses. The list should\ncontain a Pilog variable for the result in the CAR, and a list of\nresources in the CDR. The clauses will be evaluated on remote machines\naccording to these resources. Each resource must be a cons pair of two\nfunctions, an \"out\" function in the CAR, and an \"in\" function in the\nCDR. See also <code><a href=\"refE.html#*Ext\">*Ext</a></code>, <code><a\nhref=\"refR.html#revolve/2\">revolve/2</a></code>, <code><a\nhref=\"refS.html#select/3\">select/3</a></code> and <code><a\nhref=\"refD.html#db/3\">db/3</a></code>.\n\n<pre>\n(setq *Ext           # Set up external offsets\n   (mapcar\n      '((@Host @Ext)\n         (cons @Ext\n            (curry (@Host @Ext (Sock)) (Obj)\n               (when (or Sock (setq Sock (connect @Host 4040)))\n                  (ext @Ext\n                     (out Sock (pr (cons 'qsym Obj)))\n                     (prog1\n                        (in Sock (rd))\n                        (unless @\n                           (close Sock)\n                           (off Sock) ) ) ) ) ) ) )\n      '(\"localhost\")\n      '(20) ) )\n\n(de rsrc ()  # Simple resource handler, ignoring errors or EOFs\n   (extract\n      '((@Ext Host)\n         (let? @Sock (connect Host 4040)\n            (cons\n               (curry (@Ext @Sock) (X)  # out\n                  (ext @Ext (out @Sock (pr X))) )\n               (curry (@Ext @Sock) ()  # in\n                  (ext @Ext (in @Sock (rd))) ) ) ) )\n      '(20)\n      '(\"localhost\") ) )\n\n: (?\n   @Nr (1 . 3)\n   @Sup 2\n   @Rsrc (rsrc)\n   (remote (@Item . @Rsrc)\n      (db nr +Item @Nr @Item)\n      (val @Sup @Item sup nr) )\n   (show @Item) )\n{AF2} (+Item)\n   pr 1250\n   inv 100\n   sup {AG2}\n   nm \"Spare Part\"\n   nr 2\n @Nr=(1 . 3) @Sup=2 @Rsrc=((((X) (ext 20 (out 3 (pr X)))) NIL (ext 20 (in 3 (rd))))) @Item={AF2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"remove\"><code>(remove 'cnt 'lst) -> lst</code></a></dt>\n<dd>Removes the element at position <code>cnt</code> from <code>lst</code>. This\nis a non-destructive operation. See also <code><a\nhref=\"refI.html#insert\">insert</a></code>, <code><a\nhref=\"refP.html#place\">place</a></code>, <code><a\nhref=\"refA.html#append\">append</a></code>, <code><a\nhref=\"refD.html#delete\">delete</a></code> and <code><a\nhref=\"refR.html#replace\">replace</a></code>.\n\n<pre>\n: (remove 3 '(a b c d e))\n-> (a b d e)\n: (remove 1 '(a b c d e))\n-> (b c d e)\n: (remove 9 '(a b c d e))\n-> (a b c d e)\n</pre></dd>\n\n<dt><a id=\"repeat\"><code>(repeat) -> lst</code></a></dt>\n<dd>Makes the current <a href=\"ref.html#pilog\">Pilog</a> definition \"tail\nrecursive\", by closing the previously defined rules in the definition's T\nproperty to a circular list. See also <code><a\nhref=\"refR.html#repeat/0\">repeat/0</a></code> and <code><a\nhref=\"refB.html#be\">be</a></code>.\n\n<pre>\n(be a (1))     # Define three facts\n(be a (2))\n(be a (3))\n(repeat)       # Unlimited supply\n\n: (? (a @N))\n @N=1\n @N=2\n @N=3\n @N=1\n @N=2\n @N=3.         # Stop\n-> NIL\n</pre></dd>\n\n<dt><a id=\"repeat/0\"><code>repeat/0</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that always succeeds, also on\nbacktracking. See also <code><a href=\"refR.html#repeat\">repeat</a></code> and\n<code><a href=\"refT.html#true/0\">true/0</a></code>.\n\n<pre>\n: (be integer (@I)   # Generate unlimited supply of integers\n   (^ @C (box 0))    # Init to zero\n   (repeat)          # Repeat from here\n   (^ @I (inc @C)) )\n-> integer\n\n: (? (integer @X))\n @X=1\n @X=2\n @X=3\n @X=4.               # Stop\n-> NIL\n</pre></dd>\n\n<dt><a id=\"replace\"><code>(replace 'lst 'any1 'any2 ..) -> lst</code></a></dt>\n<dd>Replaces in <code>lst</code> all occurrences of <code>any1</code> with\n<code>any2</code>. For optional additional argument pairs, this process is\nrepeated. This is a non-destructive operation. See also <code><a\nhref=\"refA.html#append\">append</a></code>, <code><a\nhref=\"refD.html#delete\">delete</a></code>, <code><a\nhref=\"refI.html#insert\">insert</a></code>, <code><a\nhref=\"refR.html#remove\">remove</a></code> and <code><a\nhref=\"refP.html#place\">place</a></code>.\n\n<pre>\n: (replace '(a b b a) 'a 'A)\n-> (A b b A)\n: (replace '(a b b a) 'b 'B)\n-> (a B B a)\n: (replace '(a b b a) 'a 'B 'b 'A)\n-> (B A A B)\n</pre></dd>\n\n<dt><a id=\"request\"><code>(request 'typ 'sym ['hook] 'val ..) -> obj</code></a></dt>\n<dd>Returns a database object. If a matching object cannot be found (using\n<code><a href=\"refD.html#db\">db</a></code>), a new object of the given type is\ncreated (using <code><a href=\"refN.html#new\">new</a></code>). See also <code><a\nhref=\"refO.html#obj\">obj</a></code>.\n\n<pre>\n: (request '(+Item) 'nr 2)\n-> {B2}\n</pre></dd>\n\n<dt><a id=\"request!\"><code>(request! 'typ 'sym ['hook] 'val ..) -> obj</code></a></dt>\n<dd><a href=\"ref.html#trans\">Transaction</a> wrapper function for <code><a\nhref=\"refR.html#request\">request</a></code>.\nSee also <code><a href=\"refN.html#new!\">new!</a></code>, <code><a\nhref=\"refS.html#set!\">set!</a></code>, <code><a\nhref=\"refP.html#put!\">put!</a></code> and <code><a\nhref=\"refI.html#inc!\">inc!</a></code>.\n\n<pre>\n</pre></dd>\n\n<dt><a id=\"rest\"><code>(rest) -> lst</code></a></dt>\n<dd>Can only be used inside functions with a variable number of arguments (with\n<code>@</code>). Returns the list of all remaining arguments from the internal\nlist. See also <code><a href=\"refA.html#args\">args</a></code>, <code><a\nhref=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code> and <code><a\nhref=\"refP.html#pass\">pass</a></code>.\n\n<pre>\n: (de foo @ (println (rest)))\n-> foo\n: (foo 1 2 3)\n(1 2 3)\n-> (1 2 3)\n</pre></dd>\n\n<dt><a id=\"retract\"><code>(retract) -> lst</code></a></dt>\n<dd>Removes a <a href=\"ref.html#pilog\">Pilog</a> fact or rule. See also <code><a\nhref=\"refB.html#be\">be</a></code>, <code><a\nhref=\"refC.html#clause\">clause</a></code>, <code><a\nhref=\"refA.html#asserta\">asserta</a></code> and <code><a\nhref=\"refA.html#assertz\">assertz</a></code>.\n\n<pre>\n: (be a (1))\n-> a\n: (be a (2))\n-> a\n: (be a (3))\n-> a\n\n: (retract '(a (2)))\n-> (((1)) ((3)))\n\n:  (? (a @N))\n @N=1\n @N=3\n-> NIL\n</pre></dd>\n\n<dt><a id=\"retract/1\"><code>retract/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that removes a fact or rule.\nSee also <code><a href=\"refR.html#retract\">retract</a></code>, <code><a\nhref=\"refA.html#asserta/1\">asserta/1</a></code> and <code><a\nhref=\"refA.html#assertz/1\">assertz/1</a></code>.\n\n<pre>\n: (be a (1))\n-> a\n: (be a (2))\n-> a\n: (be a (3))\n-> a\n\n: (? (retract (a 2)))\n-> T\n: (rules 'a)\n1 (be a (1))\n2 (be a (3))\n-> a\n</pre></dd>\n\n<dt><a id=\"rev\"><code>(rev 'cnt1 'cnt2) -> cnt</code></a></dt>\n<dd>Reverses the lowest <code>cnt1</code> bits of <code>cnt2</code>. See also\n<code><a href=\"ref_.html#%3E%3E\">&gt;&gt;</a></code> and <code><a\nhref=\"refH.html#hash\">hash</a></code>.\n\n<pre>\n: (bin (rev 4 (bin \"0101\")))\n-> \"1010\"\n: (rev 32 1)\n-> 2147483648\n: (hex @)\n-> \"80000000\"\n: (rev 32 (hex \"E0000000\"))\n-> 7\n</pre></dd>\n\n<dt><a id=\"reverse\"><code>(reverse 'lst) -> lst</code></a></dt>\n<dd>Returns a reversed copy of <code>lst</code>. See also <code><a\nhref=\"refF.html#flip\">flip</a></code>.\n\n<pre>\n: (reverse (1 2 3 4))\n-> (4 3 2 1)\n</pre></dd>\n\n<dt><a id=\"rewind\"><code>(rewind) -> flg</code></a></dt>\n<dd>Sets the file position indicator for the current output stream to the\nbeginning of the file, and truncates the file length to zero. Returns\n<code>T</code> when successful. See also <code><a\nhref=\"refF.html#flush\">flush</a></code>.\n\n<pre>\n: (out \"a\" (prinl \"Hello world\"))\n-> \"Hello world\"\n: (in \"a\" (echo))\nHello world\n-> T\n: (info \"a\")\n-> (12 733216 . 53888)\n: (out \"a\" (rewind))\n-> T\n: (info \"a\")\n-> (0 733216 . 53922)\n</pre></dd>\n\n<dt><a id=\"revolve/2\"><code>revolve/2</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate for quasi-parallel evaluation\nof clauses. It takes a list and an arbitrary number of clauses. The list\nshould contain a Pilog variable for the result in the CAR, another Pilog\nvariable for passing the values in the CADR, and a list of values in the\nCDDR. The clauses will be evaluated in a round-robin fashion. See also\n<code><a href=\"refR.html#remote/2\">remote/2</a></code>.\n\n<pre>\n: (solve\n   (quote\n      @Rsrc '((1 2 3 4) (5 6 7 8) (a b c))\n      (revolve (@Res @Lst . @Rsrc)\n         (lst @Res @Lst) ) )\n   @Res )\n-> (1 5 a 2 6 b 3 7 c 4 8)\n</pre></dd>\n\n<dt><a id=\"rid\"><code>(rid 'var 'any) -> any</code></a></dt>\n<dd>Destructively removes all occurrences of <code>any</code> from the (possibly\ncircular) value of <code>var</code>, and returns the new value. See also\n<code><a href=\"refF.html#fifo\">fifo</a></code>, <code><a\nhref=\"refQ.html#queue\">queue</a></code>, <code><a\nhref=\"refC.html#cut\">cut</a></code> and <code><a\nhref=\"refD.html#del\">del</a></code>.\n\n<pre>\n$: (off E)\n-> NIL\n: (fifo 'E 1 2 3 2 4 2)\n-> 2\n: E\n-> (2 1 2 3 2 4 .)\n$: (rid 'E 2)\n-> (4 1 3 .)\n$: (rid 'E 4)\n-> (3 1 .)\n</pre></dd>\n\n<dt><a id=\"rollback\"><code>(rollback) -> flg</code></a></dt>\n<dd>Cancels a transaction, by discarding all modifications of external symbols.\nSee also <code><a href=\"refC.html#commit\">commit</a></code>.\n\n<pre>\n: (pool \"db\")\n-> T\n# .. Modify external objects ..\n: (rollback)            # Rollback\n-> T\n</pre></dd>\n\n<dt><a id=\"root\"><code>(root 'tree) -> (num . sym)</code></a></dt>\n<dd>Returns the root of a database index tree, with the number of entries in\n<code>num</code>, and the base node in <code>sym</code>. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>.\n\n<pre>\n: (root (tree 'nr '+Item))\n-> (6 . {H1})\n</pre></dd>\n\n<dt><a id=\"rot\"><code>(rot 'lst ['cnt]) -> lst</code></a></dt>\n<dd>Rotate: The contents of the cells of <code>lst</code> are (destructively)\nshifted right, and the value from the last cell is stored in the first cell.\nWithout the optional <code>cnt</code> argument, the whole list is rotated,\notherwise only the first <code>cnt</code> elements. See also <code><a\nhref=\"refF.html#flip\">flip</a></code> .\n\n<pre>\n: (rot (1 2 3 4))             # Rotate all four elements\n-> (4 1 2 3)\n: (rot (1 2 3 4 5 6) 3)       # Rotate only the first three elements\n-> (3 1 2 4 5 6)\n</pre></dd>\n\n<dt><a id=\"round\"><code>(round 'num1 ['num2]) -> sym</code></a></dt>\n<dd>Formats a number <code>num1</code> with <code>num2</code> decimal places,\naccording to the current scale <code><a href=\"refS.html#*Scl\">*Scl</a></code>.\n<code>num2</code> defaults to 3. See also <a href=\"ref.html#num-io\">Numbers</a>\nand <code><a href=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (scl 4)               # Set scale to 4\n-> 4  # 0.0004\n: (round 123456)        # Format with three decimal places\n-> \"12.346\"\n: (round 123456 2)      # Format with two decimal places\n-> \"12.35\"\n: (format 123456 *Scl)  # Format with full precision\n-> \"12.3456\"\n</pre></dd>\n\n<dt><a id=\"rt\"><code>(rt cnt . prg) -> any</code></a></dt>\n<dd>Real/Runtime measurement: Executes <code>prg</code>, then (destructively)\nadds the number of elapsed microseconds to the <code>cnt</code> parameter. Thus,\n<code>cnt</code> will finally contain the total number of microseconds spent in\n<code>prg</code>. See also <code><a href=\"refU.html#usec\">usec</a></code>.\n\n<pre>\n: (de foo ()                        # Define function with empty loop\n   (rt 0 (do 999999999)) )\n-> foo\n: (foo)                             # Execute it\n-> NIL\n: (pp 'foo)\n(de foo NIL\n   (rt 2022324 (do 999999999)) )    # 'rt' incremented 'cnt' by 2022324\n-> foo\n</pre></dd>\n\n<dt><a id=\"rules\"><code>(rules 'sym ..) -> sym</code></a></dt>\n<dd>Prints all rules defined for the <code>sym</code> arguments. See also <a\nhref=\"ref.html#pilog\">Pilog</a> and <code><a href=\"refB.html#be\">be</a></code>.\n\n<pre>\n: (rules 'member 'append)\n1 (be member (@X (@X . @)))\n2 (be member (@X (@ . @Y)) (member @X @Y))\n1 (be append (NIL @X @X))\n2 (be append ((@A . @X) @Y (@A . @Z)) (append @X @Y @Z))\n-> append\n</pre></dd>\n\n<dt><a id=\"run\"><code>(run 'any ['cnt]) -> any</code></a></dt>\n<dd>If <code>any</code> is an atom, <code>run</code> behaves like <code><a\nhref=\"refE.html#eval\">eval</a></code>. Otherwise <code>any</code> is a list,\nwhich is evaluated in sequence. The last result is returned. If an offset\n<code>cnt</code> is given, the value of <code><a\nhref=\"ref.html#atres\">@</a></code> in the <code>cnt</code>'th call environment\nis used during that evaluation. <code>cnt</code> should be greater than zero.\nSee also <code><a href=\"refU.html#up\">up</a></code>.\n\n<pre>\n: (run '((println (+ 1 2 3)) (println 'OK)))\n6\nOK\n-> OK\n\n: (de f (N . Prg)\n   (when (gt0 N)\n      (prinl \"1: @ = \" @)  # '@' is 4, as 'N' is 4 from the call below\n      (run Prg 1) ) )  # but printed is 3, as it was set by 'and'\n-> f\n\n: (and 3 (f 4 (prinl \"2: @ = \" @)))  # '@' was 3 when 'f' was called\n1: @ = 4\n2: @ = 3\n-> 3\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refS.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 05dec25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>S</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>S</h1>\n\n<dl>\n\n<dt><a id=\"*Scl\"><code>*Scl</code></a></dt>\n<dd>A global variable holding the current fixpoint input scale. See also <a\nhref=\"ref.html#num-io\">Numbers</a> and <code><a\nhref=\"refS.html#scl\">scl</a></code>.\n\n<pre>\n: (str \"123.45\")  # Default value of '*Scl' is 0\n-> (123)\n: (setq *Scl 3)\n-> 3\n: (str \"123.45\")\n-> (123450)\n\n: 123.4567\n-> 123457\n: 12.3456\n-> 12346\n</pre></dd>\n\n<dt><a id=\"*Sig1\"><code>*Sig1</code></a></dt>\n<dt><a id=\"*Sig2\"><code>*Sig2</code></a></dt>\n<dd>Global variables holding (possibly empty) <code>prg</code> bodies, which\nwill be executed when a SIGUSR1 signal (or a SIGUSR2 signal, respectively) is\nsent to the current process. See also <code><a\nhref=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n: (de *Sig1 (msg 'SIGUSR1))\n-> *Sig1\n</pre></dd>\n\n<dt><a id=\"*Solo\"><code>*Solo</code></a></dt>\n<dd>A global variable indicating exclusive database access. Its value is\n<code>0</code> initially, set to <code>T</code> (or <code>NIL</code>) during\ncooperative database locks when <code><a href=\"refL.html#lock\">lock</a></code>\nis successfully called with a <code>NIL</code> (or non-<code>NIL</code>)\nargument. See also <code><a href=\"refZ.html#*Zap\">*Zap</a></code>.\n\n<pre>\n: *Solo\n-> 0\n: (lock *DB)\n-> NIL\n: *Solo\n-> NIL\n: (rollback)\n-> T\n: *Solo\n-> 0\n: (lock)\n-> NIL\n: *Solo\n-> T\n: (rollback)\n-> T\n: *Solo\n-> T\n</pre></dd>\n\n<dt><a id=\"+Sn\"><code>+Sn</code></a></dt>\n<dd>Prefix class for maintaining indexes according to a modified soundex\nalgorithm, for tolerant name searches, to <code><a\nhref=\"refS.html#+String\">+String</a></code> relations. Typically used in\ncombination with the <code><a href=\"refI.html#+Idx\">+Idx</a></code> prefix\nclass. See also <a href=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+Sn +Idx +String))  # Name\n</pre></dd>\n\n<dt><a id=\"+String\"><code>+String</code></a></dt>\n<dd>Class for string (transient symbol) relations, a subclass of <code><a\nhref=\"refS.html#+Symbol\">+Symbol</a></code>. Accepts an optional argument for\nthe string length (currently not used). See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel nm (+Sn +Idx +String))  # Name, indexed by soundex and substrings\n</pre></dd>\n\n<dt><a id=\"+Swap\"><code>+Swap</code></a></dt>\n<dd>Prefix class for <code><a href=\"refR.html#+relation\">+relation</a></code>s\nwhere the data are to be stored in the value of a separate external symbol\ninstead of the relation's object. Typically used for data which are relatively\nlarge and/or rarely accessed. Doesn't work with bidirectional relations\n(<code><a href=\"refJ.html#+Joint\">+Joint</a></code> or <code><a\nhref=\"refI.html#+index\">+index</a></code>). See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel pw (+Swap +String))               # Password\n(rel nr (+Swap +List +Number))         # List of bignums\n</pre></dd>\n\n<dt><a id=\"+Symbol\"><code>+Symbol</code></a></dt>\n<dd>Class for symbolic relations, a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>. Objects of that class typically\nmaintain internal symbols, as opposed to the more often-used <code><a\nhref=\"refS.html#+String\">+String</a></code> for transient symbols. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel perm (+List +Symbol))  # Permission list\n</pre></dd>\n\n<dt><a id=\"same/3\"><code>same/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument matches the result of applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to the following\narguments. Typically used as filter predicate in <code><a\nhref=\"refS.html#select/3\">select/3</a></code> database queries. See also\n<code><a href=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> and <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>.\n\n<pre>\n: (?\n   @Nr 2\n   @Nm \"Spare\"\n   (select (@Item)\n      ((nr +Item @Nr) (nm +Item @Nm))\n      (same @Nr @Item nr)\n      (head @Nm @Item nm) ) )\n @Nr=2 @Nm=\"Spare\" @Item={B2}\n</pre></dd>\n\n<dt><a id=\"scan\"><code>(scan 'tree ['fun] ['any1] ['any2] ['flg])</code></a></dt>\n<dd>Scans through a database tree by applying <code>fun</code> to all key-value\npairs. <code>fun</code> should be a function accepting two arguments for key and\nvalue. It defaults to <code><a href=\"refP.html#println\">println</a></code>.\n<code>any1</code> and <code>any2</code> may specify a range of keys. If\n<code>any1</code> is greater than <code>any2</code>, the traversal will be in\nopposite direction. Note that the keys need not to be atomic, depending on the\napplication's index structure. If <code>flg</code> is non-<code>NIL</code>,\npartial keys are skipped. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refI.html#iter\">iter</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code> and <code><a\nhref=\"refS.html#step\">step</a></code>.\n\n<pre>\n: (scan (tree 'nm '+Item))\n(\"ASLRSNSTRSTN\" {B3} . T) {B3}\n(\"Additive\" {B4}) {B4}\n(\"Appliance\" {B6}) {B6}\n(\"Auxiliary Construction\" . {B3}) {B3}\n(\"Construction\" {B3}) {B3}\n(\"ENNSNNTTTF\" {B4} . T) {B4}\n(\"Enhancement Additive\" . {B4}) {B4}\n(\"Fittings\" {B5}) {B5}\n(\"GTSTFLNS\" {B6} . T) {B6}\n(\"Gadget Appliance\" . {B6}) {B6}\n...\n\n: (scan (tree 'nm '+Item) println NIL T T)  # 'flg' is non-NIL\n(\"Auxiliary Construction\" . {B3}) {B3}\n(\"Enhancement Additive\" . {B4}) {B4}\n(\"Gadget Appliance\" . {B6}) {B6}\n(\"Main Part\" . {B1}) {B1}\n(\"Metal Fittings\" . {B5}) {B5}\n(\"Spare Part\" . {B2}) {B2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"scl\"><code>(scl 'num [. prg]) -> num</code></a></dt>\n<dd>If <code>prg</code> is given, it binds <code><a\nhref=\"refS.html#*Scl\">*Scl</a></code> dynamically to <code>num</code> during the\nexecution of <code>prg</code>. Otherwise, it sets <code><a\nhref=\"refS.html#*Scl\">*Scl</a></code> globally to <code>num</code>. See also <a\nhref=\"ref.html#num-io\">Numbers</a>.\n\n<pre>\n: (scl 0)\n-> 0\n: (str \"123.45\")\n-> (123)\n: (scl 1)\n-> 1  # 0.1\n: (read)\n123.45\n-> 1235  # 123.5\n: (scl 3)\n-> 3  # 0.003\n: (str \"123.45\")\n-> (123450)\n: (scl 1 (str \"123.45\"))\n-> (1235)\n: *Scl\n-> 3  # 0.003\n</pre></dd>\n\n<dt><a id=\"script\"><code>(script 'any ..) -> any</code></a></dt>\n<dd>The first <code>any</code> argument is <code><a\nhref=\"refL.html#load\">load</a></code>ed, with the remaining arguments <code><a\nhref=\"refP.html#pass\">pass</a></code>ed as variable arguments. They can be\naccessed with <code><a href=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code>, <code><a\nhref=\"refA.html#args\">args</a></code> and <code><a\nhref=\"refR.html#rest\">rest</a></code>. With that, the syntax in the script is\nthe same as that in the body of a function with variable arguments (see <a\nhref=\"ref.html#lambda\">lambda expression</a>s, \"when the CAR is the symbol @\").\n\n<pre>\n$ cat x\n(* (next) (next))\n\n$ pil +\n: (script \"x\" 3 4)\n-> 12\n</pre></dd>\n\n<dt><a id=\"search\"><code>(search 'any 'lst ['any 'lst ..] ['fun]) -> lst</code></a></dt>\n<dt><code>(search 'lst) -> obj | NIL</code></dt>\n<dd>Searches the <a href=\"ref.html#dbase\">database</a> for an arbitrary number\nof <code>any</code> criteria. The first form returns a list holding a query\nstructure according to the corresponding <code>lst</code> lists of relation\nspecifications. A search criterion can be an atom for an exact search, or a cons\npair for a range search. A relation specification can be a list <code>(var cls\n[hook])</code> for an index search, a cons pair <code>(sym . sym)</code> for the\ntwo endpoints of a <code><a href=\"refJ.html#+Joint\">+Joint</a></code>, or - only\ninstead of the first specification in <code>lst</code> - two functions: A\ngenerator function and a filter function. The final <code>fun</code> argument\nmay optionally filter and possibly modify each result. The second form takes a\nquery structure as returned from the first form, and returns the next result (an\nobject) or <code>NIL</code> (if there are no more matching results).\n<code>search</code> is described in detail in <a href=\"search.html\">The 'search'\nFunction</a>. See also <code><a href=\"refI.html#init\">init</a></code>, <code><a\nhref=\"refS.html#step\">step</a></code> and <code><a\nhref=\"refC.html#collect\">collect</a></code>.\n\n<pre>\n: (for\n   (Q\n      (search\n         (2 . 5) '((nr +Item))  # Select all items with numbers between 2 and 5\n         \"Active\" '((nm +CuSu) (sup +Item)) )  # and suppliers matching \"Active\"\n      (search Q) )\n   (show @) )\n{B3} (+Item)\n   sup {C1}\n   nr 3\n   pr 15700\n   inv 100\n   nm \"Auxiliary Construction\"\n{B5} (+Item)\n   sup {C1}\n   nr 5\n   pr 7980\n   inv 100\n   nm \"Metal Fittings\"\n-> {B5}\n</pre></dd>\n\n<dt><a id=\"sect\"><code>(sect 'lst1 'lst2) -> lst</code></a></dt>\n<dd>Returns the intersection of list arguments, all elements which are both in\n<code>lst1</code> and in <code>lst2</code>. See also <code><a\nhref=\"refD.html#diff\">diff</a></code>.\n\n<pre>\n: (sect (1 2 3 4) (3 4 5 6))\n-> (3 4)\n: (sect (1 2 3) (4 5 6))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"seed\"><code>(seed 'any) -> cnt</code></a></dt>\n<dd>Initializes the random generator's seed, and returns a pseudo random number\nin the range -2147483648 .. +2147483647. See also <code><a\nhref=\"refR.html#rand\">rand</a></code> and <code><a\nhref=\"refH.html#hash\">hash</a></code>.\n\n<pre>\n: (seed \"init string\")\n-> -417605464\n: (rand)\n-> -1061886707\n: (rand)\n-> 822065436\n\n: (seed (time))\n-> 128285383\n</pre></dd>\n\n<dt><a id=\"seek\"><code>(seek 'fun 'lst ..) -> lst</code></a></dt>\n<dd>Applies <code>fun</code> to <code>lst</code> and all successive CDRs, until\nnon-<code>NIL</code> is returned. Returns the tail of <code>lst</code> starting\nwith that element (and stores the non-<code>NIL</code> value in the global\nvariable <code><a href=\"ref_.html#@@\">@@</a></code>), or <code>NIL</code> if\n<code>fun</code> did not return non-<code>NIL</code> for any element of\n<code>lst</code>. When additional <code>lst</code> arguments are given, they are\npassed to <code>fun</code> in the same way. See also <code><a\nhref=\"refF.html#find\">find</a></code>, <code><a\nhref=\"refP.html#pick\">pick</a></code>.\n\n<pre>\n: (seek '((X) (> (car X) 9)) (1 5 8 12 19 22))\n-> (12 19 22)\n</pre></dd>\n\n<dt><a id=\"select\"><code>(select [var ..] cls [hook] [var val ..]) -> obj | NIL</code></a></dt>\n<dd>(Debug mode only) Interactive database function, loosely modelled after the\nSQL '<code>SELECT</code>' command. A front-end to <code><a\nhref=\"refS.html#search\">search</a></code>. When called with only a\n<code>cls</code> argument, <code>select</code> steps through all objects of that\nclass, and <code><a href=\"refS.html#show\">show</a></code>s their complete\ncontents (this is analog to 'SELECT * from CLS'). If <code>cls</code> is\nfollowed by attribute/value specifications, the search is limited to these\nvalues (this is analog to 'SELECT * from CLS where VAR = VAL'). If before\n<code>cls</code> one or several attribute names are supplied, only these\nattribute (instead of the full <code>show</code>) are printed. These attribute\nspecifications may also be lists, then those will be evaluated to retrieve\nrelated data. After each step, <code>select</code> waits for a key, and\nterminates when ESC is pressed. The global variable <code><a\nhref=\"refT.html#This\">This</a></code> is set to the last result. See also <a\nhref=\"ref.html#dbase\">Database</a> and <a href=\"ref.html#pilog\">Pilog</a>.\n\n<pre>\n: (select +Item)                       # Show all items\n{B1} (+Item)\n   nr 1\n   nm \"Main Part\"\n   pr 29900\n   inv 100\n   sup {C1}\n{B2} (+Item)\n   nr 2\n   nm \"Spare Part\"\n   pr 1250\n   inv 100\n   sup {C2}\n-> {B2}                                # ESC was pressed\n\n: (select +Item nr 3)                  # Show only item 3\n{B3} (+Item)\n   nr 3\n   sup {C1}\n   pr 15700\n   nm \"Auxiliary Construction\"\n   inv 100\n-> NIL\n\n# Show selected attributes for items 3 through 3\n: (select nr nm pr (: sup nm) +Item nr (3 . 5))\n3 \"Auxiliary Construction\" 157.00 \"Active Parts Inc.\" {B3}\n4 \"Enhancement Additive\" 9.99 \"Seven Oaks Ltd.\" {B4}\n5 \"Metal Fittings\" 79.80 \"Active Parts Inc.\" {B5}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"select/3\"><code>select/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> database predicate that allows combined\nsearches over <code><a href=\"refI.html#+index\">+index</a></code> and\nother relations. It takes a list of Pilog variables, a list of generator\nclauses, and an arbitrary number of filter clauses. The functionality is\ndescribed in detail in <a href=\"select.html\">The 'select' Predicate</a>.\nSee also <code><a href=\"refD.html#db/3\">db/3</a></code>, <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code>, <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code> and <code><a\nhref=\"refR.html#remote/2\">remote/2</a></code>.\n\n<pre>\n: (?\n   @Nr (2 . 5)          # Select all items with numbers between 2 and 5\n   @Sup \"Active\"        # and suppliers matching \"Active\"\n   (select (@Item)                                  # Bind results to '@Item'\n      ((nr +Item @Nr) (nm +CuSu @Sup (sup +Item)))  # Generator clauses\n      (range @Nr @Item nr)                          # Filter clauses\n      (part @Sup @Item sup nm) ) )\n @Nr=(2 . 5) @Sup=\"Active\" @Item={B3}\n @Nr=(2 . 5) @Sup=\"Active\" @Item={B5}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"send\"><code>(send 'msg 'obj ['any ..]) -> any</code></a></dt>\n<dd>Sends the message <code>msg</code> to the object <code>obj</code>,\noptionally with arguments <code>any</code>. If the message cannot be located in\n<code>obj</code>, its classes and superclasses, an error <code>\"Bad\nmessage\"</code> is issued. See also <a href=\"ref.html#oop\">OO Concepts</a>,\n<code><a href=\"refT.html#try\">try</a></code>, <code><a\nhref=\"refM.html#method\">method</a></code>, <code><a\nhref=\"refM.html#meth\">meth</a></code>, <code><a\nhref=\"refS.html#super\">super</a></code> and <code><a\nhref=\"refE.html#extra\">extra</a></code>.\n\n<pre>\n: (send 'stop> Dlg)  # Equivalent to (stop> Dlg)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"seq\"><code>(seq 'cnt|sym1) -> sym | NIL</code></a></dt>\n<dd>Sequential single step: Returns the <i>first</i> external symbol in the\n<code>cnt</code>'th database file, or the <i>next</i> external symbol following\n<code>sym1</code> in the database, or <code>NIL</code> when the end of the\ndatabase is reached. See also <code><a href=\"refF.html#free\">free</a></code>.\n\n<pre>\n: (pool \"db\")\n-> T\n: (seq *DB)\n-> {2}\n: (seq @)\n-> {3}\n</pre></dd>\n\n<dt><a id=\"set\"><code>(set 'var 'any ..) -> any</code></a></dt>\n<dd>Stores new values <code>any</code> in the <code>var</code> arguments. See\nalso <code><a href=\"refS.html#setq\">setq</a></code>, <code><a\nhref=\"refV.html#val\">val</a></code>, <code><a\nhref=\"refS.html#swap\">swap</a></code>, <code><a\nhref=\"refC.html#con\">con</a></code> and <code><a\nhref=\"refD.html#def\">def</a></code>.\n\n<pre>\n: (set 'L '(a b c)  (cdr L) 999)\n-> 999\n: L\n-> (a 999 c)\n</pre></dd>\n\n<dt><a id=\"set!\"><code>(set! 'obj 'any) -> any</code></a></dt>\n<dd><a href=\"ref.html#trans\">Transaction</a> wrapper function for <code><a\nhref=\"refS.html#set\">set</a></code>. Note that for setting the value of entities\ntypically the <code><a href=\"refE.html#entityMesssages\">set!></a></code> message\nis used. See also <code><a href=\"refN.html#new!\">new!</a></code>, <code><a\nhref=\"refR.html#request!\">request!</a></code>, <code><a\nhref=\"refP.html#put!\">put!</a></code> and <code><a\nhref=\"refI.html#inc!\">inc!</a></code>.\n\n<pre>\n(set! Obj (* Count Size))  # Setting a non-entity object to a numeric value\n</pre></dd>\n\n<dt><a id=\"setq\"><code>(setq var 'any ..) -> any</code></a></dt>\n<dd>Stores new values <code>any</code> in the <code>var</code> arguments. See\nalso <code><a href=\"refS.html#set\">set</a></code>, <code><a\nhref=\"refV.html#val\">val</a></code> and <code><a\nhref=\"refD.html#def\">def</a></code>.\n\n<pre>\n: (setq  A 123  B (list A A))  # Set 'A' to 123, then 'B' to (123 123)\n-> (123 123)\n</pre></dd>\n\n<dt><a id=\"shadows\"><code>(shadows ['flg]) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all symbols shadowing other symbols in\nthe current <a href=\"ref.html#namespaces\">namespace</a> search order.\nWhen <code>flg</code> non-<code>NIL</code>, these and the overshadowed\nsymbols are printed as a side effect. See also <code><a\nhref=\"refS.html#symbols\">symbols</a></code> and <code><a\nhref=\"refN.html#namespaces\">namespaces</a></code>.\n\n<pre>\n: (symbols '(vip pico))\n-> (pico)\nvip: (shadows T)\n   vi pico~vi\n   cmd pico~cmd\n   shift pico~shift\n-> (vi cmd shift)\nvip: (symbols '(pico))\n-> (vip pico)\n\n$ pty  # After starting \"chess\" in PilBox\nchess: (shadows T)\n   field pico~field\n   wake android~wake\n   queue pico~queue\n   alarm pico~alarm\n-> (field wake queue alarm)\nchess: (nsp 'field)\n-> chess\nchess: (nsp 'wake)\n-> simul\nchess: (nsp 'alarm)\n-> android\n</pre></dd>\n\n<dt><a id=\"shift\"><code>(shift 'var) -> any</code></a></dt>\n<dd>Sets the list in <code>var</code> to its CDR. <code>(shift 'var)</code> is\nequivalent to <code>(set 'var (cdr (val 'var)))</code>. See also <code><a\nhref=\"refP.html#push\">push</a></code> and <code><a\nhref=\"refP.html#pop\">pop</a></code>.\n\n<pre>\n: (setq A (1 2 3))\n-> (1 2 3)\n: (shift 'A)\n-> (2 3)\n: A\n-> (2 3)\n</pre></dd>\n\n<dt><a id=\"show\"><code>(show 'any ['sym|cnt ..]) -> any</code></a></dt>\n<dd>Shows the name, value and property list of a symbol found by applying the\n<code><a href=\"refG.html#get\">get</a></code> algorithm to <code>any</code> and\nthe following arguments. See also <code><a\nhref=\"refV.html#view\">view</a></code>.\n\n<pre>\n: (setq A 123456)\n-> 123456\n: (put 'A 'x 1)\n-> 1\n: (put 'A 'lst (9 8 7))\n-> (9 8 7)\n: (put 'A 'flg T)\n-> T\n\n: (show 'A)\nA 123456\n   flg\n   lst (9 8 7)\n   x 1\n-> A\n\n: (show 'A 'lst 2)\n-> 8\n</pre></dd>\n\n<dt><a id=\"show/1\"><code>show/1</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that always succeeds, and shows\nthe name, value and property list of the argument symbol. See also <code><a\nhref=\"refS.html#show\">show</a></code>.\n\n<pre>\n: (? (db nr +Item 2 @Item) (show @Item))\n{B2} (+Item)\n   nm \"Spare Part\"\n   nr 2\n   pr 1250\n   inv 100\n   sup {C2}\n @Item={B2}\n-> NIL\n</pre></dd>\n\n<dt><a id=\"sigio\"><code>(sigio 'cnt . prg) -> cnt</code></a></dt>\n<dd>Sets a signal handler <code>prg</code> for SIGIO on the file descriptor\n<code>cnt</code>. Returns the file descriptor. See also <code><a\nhref=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n# First session\n: (sigio (setq *SigSock (port T 4444))  # Register signal handler at UDP port\n   (while (udp *SigSock)                # Queue all received data\n      (fifo '*SigQueue @) ) )\n-> 3\n\n# Second session\n: (for I 7 (udp \"localhost\" 4444 I))  # Send numbers to first session\n\n# First session\n: (fifo '*SigQueue)\n-> 1\n: (fifo '*SigQueue)\n-> 2\n</pre></dd>\n\n<dt><a id=\"size\"><code>(size 'any) -> cnt</code></a></dt>\n<dd>Returns the \"size\" of <code>any</code>. For numbers this is the number of\nbytes needed for the value, for external symbols it is the number of bytes it\nwould occupy in the database, for other symbols it is the number of bytes\noccupied by the UTF-8 representation of the name, and for lists it is the total\nnumber of cells in this list and all its sublists. See also <code><a\nhref=\"refL.html#length\">length</a></code> and <code><a\nhref=\"refB.html#bytes\">bytes</a></code>.\n\n<pre>\n: (size \"abc\")\n-> 3\n: (size \"äbc\")\n-> 4\n: (size 127)  # One byte\n-> 1\n: (size 128)  # Two bytes (eight bits plus sign bit!)\n-> 2\n: (size (1 (2) 3))\n-> 4\n: (size (1 2 3 .))\n-> 3\n</pre></dd>\n\n<dt><a id=\"skip\"><code>(skip ['any]) -> sym</code></a></dt>\n<dd>Skips all whitespace (and comments if <code>any</code> is given) in the\ninput stream. Returns the next available character, or <code>NIL</code> upon end\nof file. See also <code><a href=\"refP.html#peek\">peek</a></code> and <code><a\nhref=\"refE.html#eof\">eof</a></code>.\n\n<pre>\n$ cat a\n# Comment\nabcd\n$ pil +\n: (in \"a\" (skip \"#\"))\n-> \"a\"\n</pre></dd>\n\n<dt><a id=\"solve\"><code>(solve 'lst [. prg]) -> lst</code></a></dt>\n<dd>Evaluates a <a href=\"ref.html#pilog\">Pilog</a> query and, returns the list\nof result sets. If <code>prg</code> is given, it is executed for each result\nset, with all Pilog variables bound to their matching values, and returns a list\nof the results. See also <code><a href=\"refP.html#pilog\">pilog</a></code>,\n<code><a href=\"ref_.html#?\">?</a></code>, <code><a\nhref=\"refG.html#goal\">goal</a></code> and <code><a\nhref=\"refP.html#prove\">prove</a></code>.\n\n<pre>\n: (solve '((append @X @Y (a b c))))\n-> (((@X) (@Y a b c)) ((@X a) (@Y b c)) ((@X a b) (@Y c)) ((@X a b c) (@Y)))\n\n: (solve '((append @X @Y (a b c))) @X)\n-> (NIL (a) (a b) (a b c))\n</pre></dd>\n\n<dt><a id=\"sort\"><code>(sort 'lst ['fun]) -> lst</code></a></dt>\n<dd>Returns a sorted list by destructively exchanging the elements of\n<code>lst</code>. If <code>fun</code> is given, it is used as a \"less than\"\npredicate for comparisons. Typically, <code>sort</code> is used in combination\nwith <a href=\"refB.html#by\">by</a>, giving shorter and often more efficient\nsolutions than with the predicate function. See also <a\nhref=\"ref.html#cmp\">Comparing</a>, <code><a\nhref=\"refG.html#group\">group</a></code>, <code><a\nhref=\"refM.html#maxi\">maxi</a></code>, <code><a\nhref=\"refM.html#mini\">mini</a></code> and <code><a\nhref=\"refU.html#uniq\">uniq</a></code>.\n\n<pre>\n: (sort '(a 3 1 (1 2 3) d b 4 T NIL (a b c) (x y z) c 2))\n-> (NIL 1 2 3 4 a b c d (1 2 3) (a b c) (x y z) T)\n: (sort '(a 3 1 (1 2 3) d b 4 T NIL (a b c) (x y z) c 2) >)\n-> (T (x y z) (a b c) (1 2 3) d c b a 4 3 2 1 NIL)\n: (by cadr sort '((1 4 3) (5 1 3) (1 2 4) (3 8 5) (6 4 5)))\n-> ((5 1 3) (1 2 4) (1 4 3) (6 4 5) (3 8 5))\n</pre></dd>\n\n<dt><a id=\"space\"><code>(space ['cnt]) -> cnt</code></a></dt>\n<dd>Prints <code>cnt</code> spaces, or a single space when <code>cnt</code> is\nnot given. See also <code><a href=\"refB.html#beep\">beep</a></code>, <code><a\nhref=\"refP.html#prin\">prin</a></code> and <code><a\nhref=\"refC.html#char\">char</a></code>.\n\n<pre>\n: (space)\n -> 1\n: (space 1)\n -> 1\n: (space 2)\n  -> 2\n</pre></dd>\n\n<dt><a id=\"sp?\"><code>(sp? 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is\n<code>NIL</code>, or if it is a string (symbol) that consists only of whitespace\ncharacters.\n\n<pre>\n: (sp? \"  \")\n-> T\n: (sp? \"ABC\")\n-> NIL\n: (sp? 123)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"split\"><code>(split 'lst 'any ..) -> lst</code></a></dt>\n<dd>Splits <code>lst</code> at all places containing an element <code>any</code>\nand returns the resulting list of sublists. See also <code><a\nhref=\"refS.html#stem\">stem</a></code>.\n\n<pre>\n: (split (1 a 2 b 3 c 4 d 5 e 6) 'e 3 'a)\n-> ((1) (2 b) (c 4 d 5) (6))\n: (mapcar pack (split (chop \"The quick brown fox\") \" \"))\n-> (\"The\" \"quick\" \"brown\" \"fox\")\n</pre></dd>\n\n<dt><a id=\"sq\"><code>(sq 'num1 ['num2]) -> num</code></a></dt>\n<dd>Returns the square of <code>num1</code>. If <code>num2</code> is given, the\nresult will be divided by it and rounded. <code>(sq 'num1 'num2)</code> is\nequivalent to <code>(*/ 'num1 'num1 'num2)</code>. See also <code><a\nhref=\"ref_.html#*/\">*/</a></code>.\n\n<pre>\n: (sq 6)\n-> 36\n: (sq -6 10)\n-> 4\n\n: (scl 6)\n-> 6  # 0.000006\n: (sqrt 2.0 1.0)\n-> 1414214  # 1.414214\n: (sq @ 1.0)\n-> 2000001  # 2.000001\n</pre></dd>\n\n\n<dt><a id=\"sqrt\"><code>(sqrt 'num ['flg|num]) -> num</code></a></dt>\n<dd>Returns the square root of the <code>num</code> argument. If\n<code>flg</code> is given and non-<code>NIL</code>, the result will be rounded.\nIf in addition to that <code>flg</code> is a number, the first argument will be\nmultiplied with it before doing the square root calculation. See also <code><a\nhref=\"ref_.html#*/\">*/</a></code>.\n\n<pre>\n: (sqrt 64)\n-> 8\n: (sqrt 1000)\n-> 31\n: (sqrt 1000 T)\n-> 32\n: (sqrt 10000000000000000000000000000000000000000)\n-> 100000000000000000000\n\n: (scl 6)\n-> 6  # 0.000006\n: (sqrt 2.0 1.0)\n-> 1414214  # 1.414214\n</pre></dd>\n\n<dt><a id=\"ssl\"><code>(ssl 'host 'path . prg) -> any</code></a></dt>\n<dd>Executes <code>prg</code> in an input stream (using <code><a\nhref=\"refI.html#in\">in</a></code>) from \"@bin/ssl\" requesting <code>path</code>\nfrom <code>host</code>.\n\n<pre>\n: (ssl \"picolisp.com\" \"wiki/?home\" (line T))\n-> \"&lt;!DOCTYPE html&gt;\"\n</pre></dd>\n\n<dt><a id=\"stack\"><code>(stack ['cnt ['cnt]]) -> cnt | (.. (any . cnt) . cnt)</code></a></dt>\n<dd>Maintains the stack segment sizes for <a\nhref=\"ref.html#coroutines\">coroutines</a>. By default, coroutine sizes are 64 kB\neach, and the main stack segment size is 256 kB. If called with at least one\nargument and no coroutine running, the stack segment size is set to the first\n<code>cnt</code> argument, and optionally the main segment size is set to the\nsecond <code>cnt</code> argument. Otherwise, the current size in kilobytes is\nreturned and - if there are running coroutines - pairs of their tags and unused\nstack spaces are <code><a href=\"refC.html#cons\">cons</a></code>ed in front of\nthe size. See also <code><a href=\"refH.html#heap\">heap</a></code>.\n\n<pre>\n$ ulimit -s unlimited  &&  pil +  # Guarantee stack space\n: (stack)        # Current size\n-> 64            # 64 kB\n: (stack 20 80)  # Reduce to 20 kB\n-> 20\n: (co 'inc (let N 0 (loop (yield (inc 'N)))))  # Create two coroutines\n-> 1\n: (co 'dec (let N 0 (loop (yield (dec 'N)))))\n-> -1\n: (stack)\n-> ((dec . 19) (inc . 19) (T . 75) . 20)\n</pre></dd>\n\n<dt><a id=\"stamp\"><code>(stamp ['dat 'tim] | ['T]) -> sym</code></a></dt>\n<dd>Returns a date-time string in the form \"YYYY-MM-DD HH:MM:SS\". If\n<code>dat</code> and <code>tim</code> is missing, the current date and time is\nused. If <code>T</code> is passed, the current Coordinated Universal Time (UTC)\nis used instead. See also <code><a href=\"refD.html#date\">date</a></code> and\n<code><a href=\"refT.html#time\">time</a></code>.\n\n<pre>\n: (stamp)\n-> \"2000-09-12 07:48:04\"\n: (stamp (date) 0)\n-> \"2000-09-12 00:00:00\"\n: (stamp (date 2000 1 1) (time 12 0 0))\n-> \"2000-01-01 12:00:00\"\n</pre></dd>\n\n<dt><a id=\"state\"><code>(state 'var (sym|lst exe [. prg]) ..) -> any</code></a></dt>\n<dd>Implements a finite state machine. The variable <code>var</code> holds the\ncurrent state as a symbolic value. When a clause is found that contains the\ncurrent state in its CAR <code>sym|lst</code> value, and where the\n<code>exe</code> in its CADR evaluates to non-<code>NIL</code>, the current\nstate will be set to that value, the body <code>prg</code> in the CDDR will be\nexecuted, and the result returned. <code>T</code> is a catch-all for any state.\nIf no state-condition matches, <code>NIL</code> is returned. See also <code><a\nhref=\"refC.html#case\">case</a></code>, <code><a\nhref=\"refC.html#cond\">cond</a></code> and <code><a\nhref=\"refJ.html#job\">job</a></code>.\n\n<pre>\n: (de tst ()\n   (job '((Cnt . 4))\n      (state '(start)\n         (start 'run\n            (printsp 'start) )\n         (run (and (gt0 (dec 'Cnt)) 'run)\n            (printsp 'run) )\n         (run 'stop\n            (printsp 'run) )\n         (stop 'start\n            (setq Cnt 4)\n            (println 'stop) ) ) ) )\n-> tst\n: (do 12 (tst))\nstart run run run run stop\nstart run run run run stop\n-> stop\n: (pp 'tst)\n(de tst NIL\n   (job '((Cnt . 4))\n      (state '(start)\n      ...\n-> tst\n: (do 3 (tst))\nstart run run -> run\n: (pp 'tst)\n(de tst NIL\n   (job '((Cnt . 2))\n      (state '(run)\n      ...\n-> tst\n</pre></dd>\n\n<dt><a id=\"stem\"><code>(stem 'lst 'any ..) -> lst</code></a></dt>\n<dd>Returns the tail of <code>lst</code> that does not contain any of the\n<code>any</code> arguments. <code>(stem 'lst 'any ..)</code> is equivalent to\n<code>(last (split 'lst 'any ..))</code>. See also <code><a\nhref=\"refT.html#tail\">tail</a></code> and <code><a\nhref=\"refS.html#split\">split</a></code>.\n\n<pre>\n: (stem (chop \"abc/def\\\\ghi\") \"/\" \"\\\\\")\n-> (\"g\" \"h\" \"i\")\n</pre></dd>\n\n<dt><a id=\"step\"><code>(step 'lst ['flg]) -> any</code></a></dt>\n<dd>Single-steps iteratively through a database tree. <code>lst</code> is a\nstructure as received from <code><a href=\"refI.html#init\">init</a></code>. If\n<code>flg</code> is non-<code>NIL</code>, partial keys are skipped. The key for\neach returned value is stored in the global variable <code><a\nhref=\"ref_.html#@@\">@@</a></code>. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refS.html#scan\">scan</a></code>, <code><a\nhref=\"refI.html#iter\">iter</a></code>, <code><a\nhref=\"refL.html#leaf\">leaf</a></code> and <code><a\nhref=\"refF.html#fetch\">fetch</a></code>.\n\n<pre>\n: (setq Q (init (tree 'nr '+Item) 3 5))\n-> (((3 . 5) ((3 NIL . {B3}) (4 NIL . {B4}) (5 NIL . {B5}) (6 NIL . {B6}))))\n: (get (step Q) 'nr)\n-> 3\n: (get (step Q) 'nr)\n-> 4\n: (get (step Q) 'nr)\n-> 5\n: (get (step Q) 'nr)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"store\"><code>(store 'tree 'any1 'any2 ['(num1 . num2)])</code></a></dt>\n<dd>Stores a value <code>any2</code> for the key <code>any1</code> in a database\ntree. <code>num1</code> is a database file number, as used in <code><a\nhref=\"refN.html#new\">new</a></code> (defaulting to 1), and <code>num2</code> a\ndatabase block size (defaulting to 256). When <code>any2</code> is\n<code>NIL</code>, the corresponding entry is deleted from the tree. See also\n<code><a href=\"refT.html#tree\">tree</a></code> and <code><a\nhref=\"refF.html#fetch\">fetch</a></code>.\n\n<pre>\n: (store (tree 'nr '+Item) 2 '{B2})\n</pre></dd>\n\n<dt><a id=\"str\"><code>(str 'sym ['sym1]) -> lst</code></a></dt>\n<dt><code>(str 'lst) -> sym</code></dt>\n<dd>In the first form, the string <code>sym</code> is parsed into a list. This\nmechanism is also used by <code><a href=\"refL.html#load\">load</a></code>. If\n<code>sym1</code> is given, it should specify a set of characters, and\n<code>str</code> will then return a list of tokens analog to <code><a\nhref=\"refR.html#read\">read</a></code>. The second form does the reverse\noperation by building a string from a list. See also <code><a\nhref=\"refA.html#any\">any</a></code>, <code><a\nhref=\"refN.html#name\">name</a></code> and <code><a\nhref=\"refS.html#sym\">sym</a></code>.\n\n<pre>\n: (str \"a (1 2) b\")\n-> (a (1 2) b)\n: (str '(a \"Hello\" DEF))\n-> \"a \\\"Hello\\\" DEF\"\n: (str \"a*3+b*4\" \"_\")\n-> (a \"*\" 3 \"+\" b \"*\" 4)\n</pre></dd>\n\n<dt><a id=\"str?\"><code>(str? 'any) -> sym | NIL</code></a></dt>\n<dd>Returns the argument <code>any</code> when it is a transient symbol\n(string), otherwise <code>NIL</code>. See also <code><a\nhref=\"refS.html#sym?\">sym?</a></code>, <code><a\nhref=\"refB.html#box?\">box?</a></code> and <code><a\nhref=\"refE.html#ext?\">ext?</a></code>.\n\n<pre>\n: (str? 123)\n-> NIL\n: (str? '{ABC})\n-> NIL\n: (str? 'abc)\n-> NIL\n: (str? \"abc\")\n-> \"abc\"\n</pre></dd>\n\n<dt><a id=\"strDat\"><code>(strDat 'sym) -> dat</code></a></dt>\n<dd>Converts a string <code>sym</code> in the date format of the current\n<code><a href=\"refL.html#locale\">locale</a></code> to a <code><a\nhref=\"refD.html#date\">date</a></code>. See also <code><a\nhref=\"refE.html#expDat\">expDat</a></code>, <code><a\nhref=\"ref_.html#$dat\">$dat</a></code> and <code><a\nhref=\"refD.html#datStr\">datStr</a></code>.\n\n<pre>\n: (strDat \"2007-06-01\")\n-> 733134\n: (strDat \"01.06.2007\")\n-> NIL\n: (locale \"DE\" \"de\")\n-> NIL\n: (strDat \"01.06.2007\")\n-> 733134\n: (strDat \"1.6.2007\")\n-> 733134\n</pre></dd>\n\n<dt><a id=\"strip\"><code>(strip 'any) -> any</code></a></dt>\n<dd>Strips all leading <code>quote</code> calls from <code>any</code>. See also\n<code><a href=\"refL.html#lit\">lit</a></code>.\n\n<pre>\n: (strip 123)\n-> 123\n: (strip '''(a))\n-> (a)\n: (strip (quote quote a b c))\n-> (a b c)\n</pre></dd>\n\n<dt><a id=\"struct\"><code>(struct 'num 'any 'any ..) -> any</code></a></dt>\n<dd>Creates or extracts data structures, suitable to be passed to or returned\nfrom <code><a href=\"refN.html#native\">native</a></code> functions. The first\n<code>num</code> argument should be a native value, either a scalar, or a\npointer obtained by calling functions like <code>malloc()</code>. The second\nargument <code>any</code> is a <a href=\"refN.html#natResult\">result\nspecification</a>, while all following <a\nhref=\"refN.html#natItem\">initialization items</a> are stored in the structure\npointed to by the first argument. See also <a href=\"native.html\">Native C\nCalls</a>.\n\n<pre>\n: (scl 2)\n-> 2  # 0.02\n\n## /* We assume the following C structure */\n## typedef struct value {\n##    int x, y;\n##    double a, b, c;\n##    long z;\n##    char nm[4];\n## } value;\n\n# Allocate structure\n: (setq P (%@ \"malloc\" 'N 56))\n-> 498324676928\n\n# Store two integers, three doubles, one long, and four characters\n: (struct P NIL -7 -4 (1.0 0.11 0.22 0.33) (7 . 8) 65 66 67 0)\n-> NIL\n\n# Extract the structure\n: (struct P '((I . 2) (1.0 . 3) N (C . 4)))\n-> ((7 4) (11 22 33) 7 (\"A\" \"B\" \"C\"))\n\n# Do both in a single call (allowing conversions of data types)\n: (struct P\n   '((I . 2) (1.0 . 3) N (C . 4))\n   -7 -4 (1.0 0.11 0.22 0.33) (7 . 8) 65 66 67 0 )\n-> ((7 4) (11 22 33) 7 (\"A\" \"B\" \"C\"))\n\n# De-allocate structure\n: (%@ \"free\" NIL P)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"sub?\"><code>(sub? 'any1 'any2 ['cnt]) -> any2 | NIL</code></a></dt>\n<dd>Returns <code>any2</code> when the string representation of\n<code>any1</code> is a substring of the string representation of\n<code>any2</code>, and stores the substring's byte position in the\nglobal variable <code><a href=\"ref_.html#@@\">@@</a></code>. When\n<code>cnt</code> is given, the search starts at that byte position\n(default is 1). See also <code><a href=\"refP.html#pre?\">pre?</a></code>,\n<code><a href=\"refO.html#offset\">offset</a></code> and <code><a\nhref=\"refI.html#index\">index</a></code>.\n\n<pre>\n: (sub? \"def\" \"abcdefg\")\n-> \"abcdefg\"\n: (sub? \"abb\" \"abcdefg\")\n-> NIL\n: (sub? NIL \"abcdefg\")\n-> \"abcdefg\"\n\n: (sub? \"def\" '(a b c d e f g))\n-> \"abcdefg\"\n: (sub? '(d e f) \"abcdefg\")\n-> \"abcdefg\"\n\n: (sub? \"\" \"abc\") @@\n-> 0\n: (sub? \"a\" \"abc\") @@\n-> 1\n: (sub? \"b\" \"abc\") @@\n-> 2\n\n: (sub? \"bc\" \"abcXabc\") @@\n-> 2\n: (sub? \"bc\" \"abcXabc\" 2) @@\n-> 2\n: (sub? \"bc\" \"abcXabc\" 3) @@\n-> 6\n</pre></dd>\n\n<dt><a id=\"subr\"><code>(subr 'sym) -> num</code></a></dt>\n<dd>Converts a Lisp-function that was previously converted with <code><a\nhref=\"refE.html#expr\">expr</a></code> back to a SUBR function.\n\n<pre>\n: car\n-> 67313448\n: (expr 'car)\n-> (@ (pass $385260187))\n: (subr 'car)\n-> 67313448\n: car\n-> 67313448\n</pre></dd>\n\n<dt><a id=\"sum\"><code>(sum 'fun 'lst ..) -> num</code></a></dt>\n<dd>Applies <code>fun</code> to each element of <code>lst</code>. When\nadditional <code>lst</code> arguments are given, their elements are also passed\nto <code>fun</code>. Returns the sum of all numeric values returned from\n<code>fun</code>.\n\n<pre>\n: (setq A 1  B 2  C 3)\n-> 3\n: (sum val '(A B C))\n-> 6\n: (sum * (3 4 5) (5 6 7))        # Vector dot product\n-> 74\n: (sum                           # Total size of symbol list values\n   '((X)\n      (and (pair (val X)) (size @)) )\n   (what) )\n-> 32021\n</pre></dd>\n\n<dt><a id=\"super\"><code>(super ['any ..]) -> any</code></a></dt>\n<dd>Can only be used inside methods. Sends the current message to the current\nobject <code>This</code>, this time starting the search for a method at the\nsuperclass(es) of the class where the current method was found. See also <a\nhref=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refE.html#extra\">extra</a></code>, <code><a\nhref=\"refM.html#method\">method</a></code>, <code><a\nhref=\"refM.html#meth\">meth</a></code>, <code><a\nhref=\"refS.html#send\">send</a></code> and <code><a\nhref=\"refT.html#try\">try</a></code>.\n\n<pre>\n(dm stop> ()         # 'stop>' method of current class\n   (super)           # Call the 'stop>' method of the superclass\n   ... )             # other things\n</pre></dd>\n\n<dt><a id=\"swap\"><code>(swap 'var 'any) -> any</code></a></dt>\n<dd>Set the value of <code>var</code> to <code>any</code>, and return the\nprevious value. See also <code><a href=\"refX.html#xchg\">xchg</a></code> and\n<code><a href=\"refS.html#set\">set</a></code>.\n\n<pre>\n: (setq A 7  L (1 2 3))\n-> (1 2 3)\n: (swap (cdr L) (swap 'A 'xyz))\n-> 2\n: A\n-> xyz\n: L\n-> (1 7 3)\n</pre></dd>\n\n<dt><a id=\"sym\"><code>(sym 'any) -> sym</code></a></dt>\n<dd>Generate the printed representation of <code>any</code> into the name of a\nnew symbol <code>sym</code>. This is the reverse operation of <code><a\nhref=\"refA.html#any\">any</a></code>. See also <code><a\nhref=\"refN.html#name\">name</a></code> and <code><a\nhref=\"refS.html#str\">str</a></code>.\n\n<pre>\n: (sym '(abc \"Hello\" 123))\n-> \"(abc \\\"Hello\\\" 123)\"\n</pre></dd>\n\n<dt><a id=\"sym?\"><code>(sym? 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when the argument <code>any</code> is a symbol. See\nalso <code><a href=\"refN.html#num?\">num?</a></code>, <code><a\nhref=\"refA.html#atom\">atom</a></code>, <code><a\nhref=\"refP.html#pair\">pair</a></code>, <code><a\nhref=\"refS.html#str?\">str?</a></code>, <code><a\nhref=\"refB.html#box?\">box?</a></code> and <code><a\nhref=\"refE.html#ext?\">ext?</a></code>.\n\n<pre>\n: (sym? 'a)\n-> T\n: (sym? NIL)\n-> T\n: (sym? 123)\n-> NIL\n: (sym? '(a b))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"symbols\"><code>(symbols) -> lst</code></a></dt>\n<dt><code>(symbols 'lst) -> lst</code></dt>\n<dt><code>(symbols 'lst . prg) -> any</code></dt>\n<dt><code>(symbols ['T] 'sym1 'sym2 ..) -> lst</code></dt>\n<dd>Creates and manages <a href=\"ref.html#namespaces\">namespaces</a> of\ninternal symbols: In the first form, the current list of namespaces is\nreturned. In the second form, the current namespace list is set to\n<code>lst</code>, and the previous namespace list is returned. In the\nthird form, the current namespace list is set to <code>lst</code> during\nthe execution of <code>prg</code>, and the result is returned. In the\nfourth form, <code>sym1</code> is initialized to a new namespace if its\nvalue is <code>NIL</code> and not modified otherwise, <code>sym1</code>,\n<code>sym2</code> and all following arguments are set as the current\nnamespace list, and if the value of the global variable <a\nhref=\"refD.html#*Dbg\">*Dbg</a> is non-<code>NIL</code>, the current line\nnumber and file name (if any) are stored in the <code>*Dbg</code>\nproperty of <code>sym1</code>. If the first argument is <code>T</code>,\nthe resulting namespace list is also exported from the current REPL. See\nalso <code><a href=\"refP.html#pico\">pico</a></code>, <code><a\nhref=\"refN.html#nsp\">nsp</a></code>, <code><a\nhref=\"refS.html#-symbols\">-symbols</a></code>, <code><a\nhref=\"refP.html#private\">private</a></code>, <code><a\nhref=\"refL.html#local\">local</a></code>, <code><a\nhref=\"refN.html#namespaces\">namespaces</a></code>, <code><a\nhref=\"refS.html#shadows\">shadows</a></code>, <code><a\nhref=\"refE.html#export\">export</a></code>, <code><a\nhref=\"refI.html#import\">import</a></code>, <code><a\nhref=\"refI.html#intern\">intern</a></code> and <code><a\nhref=\"refL.html#load\">load</a></code>.\n\n<pre>\n: (symbols 'myLib 'pico)\n-> (pico)\nmyLib: (de foo (X)\n   (bar (inc X)) )\n-> foo\nmyLib: (symbols 'pico)\n-> (myLib pico)\n: (pp 'foo)\n(de foo . NIL)\n-> foo\n: (pp 'myLib~foo)\n(de \"foo\" (X)\n   (\"bar\" (inc X)) )\n-> \"foo\"\n: (symbols '(myLib pico))\n-> (pico)\nmyLib: (pp 'foo)\n(de foo (X)\n   (bar (inc X)) )\n-> foo\nmyLib:\n</pre></dd>\n\n<dt><a id=\"-symbols\"><code>(-symbols) -> lst</code></a></dt>\n<dd>Command line frontend to <code><a\nhref=\"refS.html#symbols\">symbols</a></code>. Inserts the next command line\nargument as the first namespace into the current search order. <code>--symbols\nmyLib</code> on the command line (see <a href=\"ref.html#invoc\">Invocation</a>)\nis equivalent to <code>-\"symbols '(myLib ...)\"</code>. See also <code><a\nhref=\"refO.html#opt\">opt</a></code>.\n\n<pre>\n$ ./pil lib/gis.l lib/simul.l  --symbols gis  --symbols simul  +\nsimul: (symbols)\n-> (simul gis pico)\nsimul:\n</pre></dd>\n\n<dt><a id=\"sync\"><code>(sync) -> flg</code></a></dt>\n<dd>Waits for pending data from all family processes. While other processes are\nstill sending data (via the <code><a href=\"refT.html#tell\">tell</a></code>\nmechanism), a <code>poll(2)</code> system call is executed for all file\ndescriptors and timers in the <code>VAL</code> of the global variable <code><a\nhref=\"refR.html#*Run\">*Run</a></code>. When used in a non-database context,\n<code>(tell)</code> should be called in the end to inform the parent process\nthat it may grant synchronization to other processes waiting for\n<code>sync</code>. In a database context, where <code>sync</code> is usually\ncalled by <code><a href=\"refD.html#dbSync\">dbSync</a></code>, this is not\nnecessary because it is done internally by <code><a\nhref=\"refC.html#commit\">commit</a></code> or <code><a\nhref=\"refR.html#rollback\">rollback</a></code>.\n\nSee also <code><a\nhref=\"refK.html#key\">key</a></code> and <code><a\nhref=\"refW.html#wait\">wait</a></code>.\n\n<pre>\n: (or (lock) (sync))       # Ensure database consistency\n-> T                       # (numeric process-id if lock failed)\n</pre></dd>\n\n<dt><a id=\"sys\"><code>(sys 'any ['any]) -> sym</code></a></dt>\n<dd>Returns or sets a system environment variable.\n\n<pre>\n: (sys \"TERM\")  # Get current value\n-> \"xterm\"\n: (sys \"TERM\" \"vt100\")  # Set new value\n-> \"vt100\"\n: (sys \"TERM\")\n-> \"vt100\"\n</pre></dd>\n\n<dt><a id=\"sysdefs\"><code>(sysdefs 'sym1 '[sym2])</code></a></dt>\n<dd>Loads system-dependent definitions for all symbols in the section named\n<code>sym1</code> from the file \"@lib/sysdefs\" (or an alternative file given by\n<code>sym2</code>). All symbols in that section are <code><a\nhref=\"refD.html#def\">def</a></code>ined to their given values. See also <code><a\nhref=\"refN.html#native\">native</a></code>.\n\n<pre>\n: (sysdefs \"networking\")  # Load networking system definitions\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refT.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 09dec25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>T</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>T</h1>\n\n<dl>\n\n<dt><a id=\"*Term\"><code>*Term</code></a></dt>\n<dd>Global variable holding a (possibly empty) <code>prg</code> body, which will\nbe executed when a SIGTERM signal is sent to the current process. If it returns\nnon-<code>NIL</code>, the signal is ignored.\nSee also\n<code><a href=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refS.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code> and <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code>.\n\n<pre>\n: (de *Term (msg 'SIGTERM) T)\n-> *Term\n</pre></dd>\n\n<dt><a id=\"*TStp1\"><code>*TStp1</code></a></dt>\n<dt><a id=\"*TStp2\"><code>*TStp2</code></a></dt>\n<dd>Global variables holding (possibly empty) <code>prg</code> bodies, which\nwill be executed when a SIGTSTP signal (<code>*TStp1</code>) or a SIGCONT signal\n(<code>*TStp2</code>) is sent to the current process. See also <code><a\nhref=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refW.html#*Winch\">*Winch</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n: (de *TStp1 (msg 'SIGTSTP))\n-> *TStp1\n</pre></dd>\n\n<dt><a id=\"*Tmp\"><code>*Tmp</code></a></dt>\n<dd>A global variable holding the temporary directory name created with <code><a\nhref=\"refT.html#tmp\">tmp</a></code>. See also <code><a\nhref=\"refB.html#*Bye\">*Bye</a></code>.\n\n<pre>\n: *Bye\n-> ((saveHistory) (and *Tmp (call 'rm \"-r\" *Tmp)))\n: (tmp \"foo\" 123)\n-> \"/home/app/.pil/tmp/27140/foo123\"\n: *Tmp\n-> \"/home/app/.pil/tmp/27140/\"\n</pre></dd>\n\n<dt><a id=\"+Time\"><code>+Time</code></a></dt>\n<dd>Class for clock time values (as calculated by <code><a\nhref=\"refT.html#time\">time</a></code>), a subclass of <code><a\nhref=\"refN.html#+Number\">+Number</a></code>. See also <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(rel tim (+Time))  # Time of the day\n</pre></dd>\n\n<dt><a id=\"T\"><code>T</code></a></dt>\n<dd>A global constant, evaluating to itself. <code>T</code> is commonly returned\nas the boolean value \"true\" (though any non-<code>NIL</code> values could be\nused). It represents the absolute maximum, as it is larger than any other\nobject. As a property key, it is used to store <a\nhref=\"ref.html#pilog\">Pilog</a> clauses, and inside Pilog clauses it is the\n<i>cut</i> operator. See also <code><a href=\"ref.html#nilSym\">NIL</a></code> and\nand <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: T\n-> T\n: (= 123 123)\n-> T\n: (get 'not T)\n-> ((@P (1 @P) T (fail)) (@P))\n</pre></dd>\n\n<dt><a id=\"This\"><code>This</code></a></dt>\n<dd>Holds the current object during method execution (see <a\nhref=\"ref.html#oop\">OO Concepts</a>), or inside the body of a <code><a\nhref=\"refW.html#with\">with</a></code> statement. As it is a normal symbol,\nhowever, it can be used in normal bindings anywhere. See also <code><a\nhref=\"refI.html#isa\">isa</a></code>, <code><a href=\"ref_.html#:\">:</a></code>,\n<code><a href=\"ref_.html#=:\">=:</a></code>, <code><a\nhref=\"ref_.html#::\">::</a></code> and <code><a\nhref=\"refV.html#var:\">var:</a></code>. See also\n<code><a href=\"refW.html#with\">with</a></code> and\n<code><a href=\"refT.html#this\">this</a></code>.\n\n<pre>\n: (with 'X (println 'This 'is This))\nThis is X\n-> X\n: (put 'X 'a 1)\n-> 1\n: (put 'X 'b 2)\n-> 2\n: (put 'Y 'a 111)\n-> 111\n: (put 'Y 'b 222)\n-> 222\n: (mapcar '((This) (cons (: a) (: b))) '(X Y))\n-> ((1 . 2) (111 . 222))\n</pre></dd>\n\n<dt><a id=\"t\"><code>(t . prg) -> T</code></a></dt>\n<dd>Executes <code>prg</code>, and returns <code>T</code>. See also <code><a\nhref=\"refN.html#nil\">nil</a></code>, <code><a\nhref=\"refP.html#prog\">prog</a></code>, <code><a\nhref=\"refP.html#prog1\">prog1</a></code> and <code><a\nhref=\"refP.html#prog2\">prog2</a></code>.\n\n<pre>\n: (t (println 'OK))\nOK\n-> T\n</pre></dd>\n\n<dt><a id=\"tab\"><code>(tab 'lst 'any ..) -> NIL</code></a></dt>\n<dd>Print all <code>any</code> arguments in a tabular format. <code>lst</code>\nshould be a list of numbers, specifying the field width for each argument. All\nitems in a column will be left-aligned for negative numbers, otherwise\nright-aligned. See also <code><a href=\"refA.html#align\">align</a></code>,\n<code><a href=\"refC.html#center\">center</a></code> and <code><a\nhref=\"refW.html#wrap\">wrap</a></code>.\n\n<pre>\n: (let Fmt (-3 14 14)\n   (tab Fmt \"Key\" \"Rand 1\" \"Rand 2\")\n   (tab Fmt \"---\" \"------\" \"------\")\n   (for C '(A B C D E F)\n      (tab Fmt C (rand) (rand)) ) )\nKey        Rand 1        Rand 2\n---        ------        ------\nA               0    1481765933\nB     -1062105905    -877267386\nC      -956092119     812669700\nD       553475508   -1702133896\nE      1344887256   -1417066392\nF      1812158119   -1999783937\n-> NIL\n</pre></dd>\n\n<dt><a id=\"tail\"><code>(tail 'cnt|lst 'lst) -> lst</code></a></dt>\n<dd>Returns the last <code>cnt</code> elements of <code>lst</code>. If\n<code>cnt</code> is negative, it is added to the length of <code>lst</code>. If\nthe first argument is a <code>lst</code>, <code>tail</code> is a predicate\nfunction returning that argument list if it is <code>equal</code> to the tail of\nthe second argument, and <code>NIL</code> otherwise. <code>(tail -2 Lst)</code>\nis equivalent to <code>(nth Lst 3)</code>. See also <code><a\nhref=\"refO.html#offset\">offset</a></code>, <code><a\nhref=\"refH.html#head\">head</a></code>, <code><a\nhref=\"refL.html#last\">last</a></code> and <code><a\nhref=\"refS.html#stem\">stem</a></code>.\n\n<pre>\n: (tail 3 '(a b c d e f))\n-> (d e f)\n: (tail -2 '(a b c d e f))\n-> (c d e f)\n: (tail 0 '(a b c d e f))\n-> NIL\n: (tail 10 '(a b c d e f))\n-> (a b c d e f)\n: (tail '(d e f) '(a b c d e f))\n-> (d e f)\n</pre></dd>\n\n<dt><a id=\"task\"><code>(task 'num ['num] [sym 'any ..] [. prg]) -> lst</code></a></dt>\n<dd>A front-end to the <code><a href=\"refR.html#*Run\">*Run</a></code> global. If\ncalled with only a single <code>num</code> argument, the corresponding entry is\nremoved from the value of <code>*Run</code>. Otherwise, a new entry is created.\nIf an entry with that key already exists, an error is issued. For negative\nnumbers, a second number must be supplied. If <code>sym</code>/<code>any</code>\narguments are given, a <code><a href=\"refJ.html#job\">job</a></code> environment\nis built for the <code>*Run</code> entry. See also <code><a\nhref=\"refT.html#tasks\">tasks</a></code> and <code><a\nhref=\"refT.html#timeout\">timeout</a></code>.\n\n<pre>\n: (task -10000 5000 N 0 (tty (println (inc 'N))))  # Install task for every 10 seconds\n-> (-10000 5000 (job '((N . 0)) (tty (println (inc 'N)))))\n: 1                                                # ... after 5 seconds\n2                                                  # ... after 10 seconds\n3                                                  # ... after 10 seconds\n(task -10000)                                      # remove again\n-> NIL\n\n: (task (port T 4444) (eval (udp @)))              # Receive RPC via UDP\n-> (3 (eval (udp @)))\n\n# Another session (on the same machine)\n: (udp \"localhost\" 4444 '(println *Pid))  # Send RPC message\n-> (println *Pid)\n</pre></dd>\n\n<dt><a id=\"tasks\"><code>(tasks . prg)</code></a></dt>\n<dd>Runs a <code><a href=\"refT.html#task\">task</a></code> with variable event\nspecification in a single <code><a href=\"refR.html#*Run\">*Run</a></code> entry.\nThe task body <code>prg</code> should return either a positive number (a file\ndescriptor) or a negative number (a timeout value) to be used in the next\niteration. The first value must be a timeout. A value of <code>NIL</code>\nremoves the task. Uses <code>-2</code> as implicit key. See also <code><a\nhref=\"refT.html#timeout\">timeout</a></code>.\n\n<pre>\n(tasks  # Three iterations with varying timeout\n   (let X (pop '(((-1000 . a) (-4000 . b) (-1000 . c))))\n      (tty (println (cdr X)))\n      (car X) ) )\n\n(tasks\n   (co 'echoes  # Coroutine\n      (use S\n         (loop  # Loop infinitely\n            (yield -4000)  # First wait 4 seconds\n            (tty (println 'OK))\n            (yield  # Then wait for remote data\n               (setq S\n                  (pipe (exec \"sh\" \"-c\" \"sleep 2; echo 7\")) ) )\n            (tty (println (in S (read))))\n            (close S) ) ) ) )\n</pre></dd>\n\n<dt><a id=\"tco\"><code>(tco lst . prg) -> any</code></a></dt>\n<dt><a id=\"tc\"><code>(tc ['any ..])</code></a></dt>\n<dd>Tail call optimization. <code>tco</code> implements a loop which is\nrestarted whenever <code>tc</code> is called during the execution of\n<code>prg</code>. This is faster and uses much less stack space than a recursive\nfunction call. <code>lst</code> is a list of parameter symbols. <code>tc</code>\nmust be the very last function called in a function body. See also <code><a\nhref=\"refR.html#recur\">recur</a></code> and <code><a\nhref=\"refC.html#catch\">catch</a></code>.\n\n<pre>\n: (de f (N)\n   (if (=0 N)\n      'OK\n      (printsp N)\n      (f (dec N)) ) )  # Recursive call\n-> f\n: (f 8)\n8 7 6 5 4 3 2 1 -> OK\n\n# Equivalent to\n: (de f (N)\n   (tco (N)\n      (if (=0 N)\n         'OK\n         (printsp N)\n         (tc (dec N)) ) ) )  # Tail call\n-> f\n: (f 8)\n8 7 6 5 4 3 2 1 -> OK\n\n# Mutually recursive functions\n: (de f (N)\n   (tco (N)\n      (if (le0 N)\n         'OK\n         (printsp N)\n         (g (dec N)) ) ) )\n-> f\n: (de g (N)\n   (if (le0 N)\n      'OK\n      (tc (dec N)) ) )  # Tail call\n-> g\n: (f 8)\n8 6 4 2 -> OK\n</pre></dd>\n\n<dt><a id=\"telStr\"><code>(telStr 'sym) -> sym</code></a></dt>\n<dd>Formats a telephone number according to the current <code><a\nhref=\"refL.html#locale\">locale</a></code>. If the string head matches the local\ncountry code, it is replaced with the national trunk prefix, otherwise\n<code>+</code> is prepended. See also <code><a\nhref=\"refE.html#expTel\">expTel</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code>, <code><a\nhref=\"refM.html#money\">money</a></code> and <code><a\nhref=\"refF.html#format\">format</a></code>.\n\n<pre>\n: (telStr \"49 1234 5678-0\")\n-> \"+49 1234 5678-0\"\n: (locale \"DE\" \"de\")\n-> NIL\n: (telStr \"49 1234 5678-0\")\n-> \"01234 5678-0\"\n</pre></dd>\n\n<dt><a id=\"tell\"><code>(tell ['cnt] 'sym ['any ..]) -> any</code></a></dt>\n<dd>Family IPC: Send an executable list <code>(sym any ..)</code> to all family\nmembers (i.e. all children of the current process, and all other children of the\nparent process, see <code><a href=\"refF.html#fork\">fork</a></code>) for\nautomatic execution. When the <code>cnt</code> argument is given and non-zero,\nit should be the PID of such a process, and the list will be sent only to that\nprocess. If <code>cnt</code> is zero, the list will be sent to the parent\nprocess instead. When called without arguments, no message is actually sent, and\nthe parent process may grant <code><a href=\"refS.html#sync\">sync</a></code> to\nthe next waiting process. <code>tell</code> is also used internally by <code><a\nhref=\"refC.html#commit\">commit</a></code> to notify about database changes. When\ncalled explicitly, the size of the message is limited to the POSIX constant\nPIPE_BUF. See also <code><a href=\"refK.html#kids\">kids</a></code>, <code><a\nhref=\"refD.html#detach\">detach</a></code> and <code><a\nhref=\"refH.html#hear\">hear</a></code>.\n\n<pre>\n: (call 'ps \"x\")                          # Show processes\n  PID TTY      STAT   TIME COMMAND\n  ..\n 1321 pts/0    S      0:00 /usr/bin/picolisp ..  # Parent process\n 1324 pts/0    S      0:01 /usr/bin/picolisp ..  # First child\n 1325 pts/0    S      0:01 /usr/bin/picolisp ..  # Second child\n 1326 pts/0    R      0:00 ps x\n-> T\n: *Pid                                    # We are the second child\n-> 1325\n: (tell 'println '*Pid)                   # Ask all others to print their Pid's\n1324\n-> *Pid\n</pre></dd>\n\n<dt><a id=\"test\"><code>(test 'any . prg)</code></a></dt>\n<dd>Executes <code>prg</code>, and issues an <code><a\nhref=\"ref.html#errors\">error</a></code> if the result does not <code><a\nhref=\"refM.html#match\">match</a></code> the <code>any</code> argument. See also\n<code><a href=\"refA.html#assert\">assert</a></code>.\n\n<pre>\n: (test 12 (* 3 4))\n-> NIL\n: (test 12 (+ 3 4))\n((+ 3 4))\n12 -- 'test' failed\n?\n</pre></dd>\n\n<dt><a id=\"text\"><code>(text 'any1 'any ..) -> sym</code></a></dt>\n<dd>Builds a new transient symbol (string) from the string representation of\n<code>any1</code>, by replacing all occurrences of an at-mark \"<code>@</code>\",\nfollowed by one of the letters \"<code>1</code>\" through \"<code>9</code>\", and\n\"<code>A</code>\" through \"<code>Z</code>\", with the corresponding\n<code>any</code> argument. In this context \"<code>@A</code>\" refers to the 10th\nargument. A literal at-mark in the text can be represented by two successive\nat-marks. See also <code><a href=\"refP.html#pack\">pack</a></code> and <code><a\nhref=\"refG.html#glue\">glue</a></code>.\n\n<pre>\n: (text \"abc @1 def @2\" 'XYZ 123)\n-> \"abc XYZ def 123\"\n: (text \"a@@bc.@1\" \"de\")\n-> \"a@bc.de\"\n</pre></dd>\n\n<dt><a id=\"this\"><code>(this 'any) -> any</code></a></dt>\n<dd>Sets the current object <code><a\nhref=\"refT.html#This\">This</a></code> to the new value <code>any</code>.\n<code>(this 'any)</code> is equivalent to <code>(setq This 'any)</code>.\nSee also <code><a href=\"refW.html#with\">with</a></code>.\n\n<pre>\n: (this 'X)\n-> X\n: This\n-> X\n</pre></dd>\n\n<dt><a id=\"throw\"><code>(throw 'sym 'any)</code></a></dt>\n<dd>Non-local jump into a previous <code><a\nhref=\"refC.html#catch\">catch</a></code> environment with the jump label\n<code>sym</code> (or <code>T</code> as a catch-all). Any pending <code><a\nhref=\"refF.html#finally\">finally</a></code> expressions are executed, local\nsymbol bindings are restored, open files are closed and internal data structures\nare reset appropriately, as the environment was at the time when the\ncorresponding <code>catch</code> was called. Then <code>any</code> is returned\nfrom that <code>catch</code>. See also <code><a\nhref=\"refQ.html#quit\">quit</a></code>.\n\n<pre>\n: (de foo (N)\n   (println N)\n   (throw 'OK) )\n-> foo\n: (let N 1  (catch 'OK (foo 7))  (println N))\n7\n1\n-> 1\n</pre></dd>\n\n<dt><a id=\"till\"><code>(till 'any ['flg]) -> lst|sym</code></a></dt>\n<dd>Reads from the current input channel till a character contained in\n<code>any</code> is found (or until end of file if <code>any</code> is\n<code>NIL</code>). If <code>flg</code> is <code>NIL</code>, a list of\nsingle-character transient symbols is returned. Otherwise, a single string is\nreturned. See also <code><a href=\"refF.html#from\">from</a></code> and <code><a\nhref=\"refL.html#line\">line</a></code>.\n\n<pre>\n: (till \":\")\nabc:def\n-> (\"a\" \"b\" \"c\")\n: (till \":\" T)\nabc:def\n-> \"abc\"\n</pre></dd>\n\n<dt><a id=\"tim$\"><code>(tim$ 'tim ['flg]) -> sym</code></a></dt>\n<dd>Formats a <code><a href=\"refT.html#time\">time</a></code> <code>tim</code>.\nIf <code>flg</code> is <code>NIL</code>, the format is HH:MM, otherwise it is\nHH:MM:SS. See also <code><a href=\"ref_.html#$tim\">$tim</a></code> and <code><a\nhref=\"refD.html#dat$\">dat$</a></code>.\n\n<pre>\n: (tim$ (time))\n-> \"10:57\"\n: (tim$ (time) T)\n-> \"10:57:56\"\n</pre></dd>\n\n<dt><a id=\"time\"><code>(time ['T]) -> tim</code></a></dt>\n<dt><code>(time 'tim) -> (h m s)</code></dt>\n<dt><code>(time 'h 'm ['s]) -> tim | NIL</code></dt>\n<dt><code>(time '(h m [s])) -> tim | NIL</code></dt>\n<dd>Calculates the time of day, represented as the number of seconds since\nmidnight. When called without arguments, the current local time is returned.\nWhen called with a <code>T</code> argument, the time of the last call to\n<code><a href=\"refD.html#date\">date</a></code> is returned. When called with a\nsingle number <code>tim</code>, it is taken as a time value and a list with the\ncorresponding hour, minute and second is returned. When called with two or three\nnumbers (or a list of two or three numbers) for the hour, minute (and optionally\nthe second), the corresponding time value is returned (or <code>NIL</code> if\nthey do not represent a legal time). See also <code><a\nhref=\"refD.html#date\">date</a></code>, <code><a\nhref=\"refS.html#stamp\">stamp</a></code>, <code><a\nhref=\"refU.html#usec\">usec</a></code>, <code><a\nhref=\"refT.html#tim$\">tim$</a></code> and <code><a\nhref=\"ref_.html#$tim\">$tim</a></code>.\n\n<pre>\n: (time)                         # Now\n-> 32334\n: (time 32334)                   # Now\n-> (8 58 54)\n: (time 12 70)                   # Illegal time\n-> NIL\n</pre></dd>\n\n<dt><a id=\"timeout\"><code>(timeout ['num])</code></a></dt>\n<dd>Sets or refreshes a timeout value in the <code><a\nhref=\"refR.html#*Run\">*Run</a></code> global, so that the current process\nexecutes <code><a href=\"refB.html#bye\">bye</a></code> after the given period. If\ncalled without arguments, the timeout is removed. Uses <code>-1</code> as\nimplicit key. See also <code><a href=\"refT.html#task\">task</a></code>.\n\n<pre>\n: (timeout 3600000)           # Timeout after one hour\n-> (-1 3600000 (bye))\n: *Run                        # Look after a few seconds\n-> ((-1 3574516 (bye)))\n</pre></dd>\n\n<dt><a id=\"tmp\"><code>(tmp ['any ..]) -> sym</code></a></dt>\n<dd>Returns the path name to the <code><a\nhref=\"refP.html#pack\">pack</a></code>ed <code>any</code> arguments in a\nprocess-local temporary directory. The directory name consists of the path to\n\".pil/tmp/\" in the user's home directory, followed by the current process ID\n<code><a href=\"refP.html#*Pid\">*Pid</a></code>. This directory is automatically\ncreated if necessary, and removed upon termination of the process (<code><a\nhref=\"refB.html#bye\">bye</a></code>). See also <code><a\nhref=\"refT.html#*Tmp\">*Tmp</a></code> and <code><a\nhref=\"refB.html#*Bye\">*Bye</a></code> .\n\n<pre>\n: *Pid\n-> 27140\n: (tmp \"foo\" 123)\n-> \"/home/app/.pil/tmp/27140/foo123\"\n: (out (tmp \"foo\" 123) (println 'OK))\n-> OK\n: (dir (tmp))\n-> (\"foo123\")\n: (in (tmp \"foo\" 123) (read))\n-> OK\n</pre></dd>\n\n<dt><a id=\"tolr/3\"><code>tolr/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the first\nargument, after <code><a href=\"refF.html#fold\">fold</a></code>ing it to\na canonical form, is either a <i>substring</i> or a <code><a\nhref=\"refS.html#+Sn\">+Sn</a></code> <i>soundex</i> match of the result\nof applying the <code><a href=\"refG.html#get\">get</a></code> algorithm\nto the following arguments. Typically used as filter predicate in\n<code><a href=\"refS.html#select/3\">select/3</a></code> database queries.\nSee also <code><a href=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code> and <code><a\nhref=\"refP.html#part/3\">part/3</a></code>.\n\n<pre>\n: (?\n   @Nr (1 . 5)\n   @Nm \"Sven\"\n   (select (@CuSu)\n      ((nr +CuSu @Nr) (nm +CuSu @Nm))\n      (range @Nr @CuSu nr)\n      (tolr @Nm @CuSu nm) )\n   (val @Name @CuSu nm) )\n @Nr=(1 . 5) @Nm=\"Sven\" @CuSu={C2} @Name=\"Seven Oaks Ltd.\"\n</pre></dd>\n\n<dt><a id=\"touch\"><code>(touch 'sym) -> sym</code></a></dt>\n<dd>When <code>sym</code> is an external symbol, it is marked as \"modified\" so\nthat upon a later <code><a href=\"refC.html#commit\">commit</a></code> it will be\nwritten to the database file. An explicit call of <code>touch</code> is only\nnecessary when the value or properties of <code>sym</code> are indirectly\nmodified.\n\n<pre>\n: (get '{2} 'lst)\n-> (1 2 3 4 5)\n: (set (cdr (get (touch '{2}) 'lst)) 999)    # Only read-access, need 'touch'\n-> 999\n: (get '{2} 'lst)                            # Modified second list element\n-> (1 999 3 4 5)\n</pre></dd>\n\n<dt><a id=\"trace\"><code>(trace 'sym)</code></a></dt>\n<dt><code>(trace 'sym 'cls)</code></dt>\n<dt><code>(trace '(sym . cls))</code></dt>\n<dd>(Debug mode only) Inserts a <code><a href=\"ref_.html#$\">$</a></code> trace\nfunction call at the beginning of the function or method body of\n<code>sym</code>, so that trace information will be printed before and after\nexecution. Can only be used with EXPRs and SUBRs. Built-in functions (SUBRs) are\nautomatically converted to Lisp expressions (see <code><a\nhref=\"refE.html#expr\">expr</a></code>). See also <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>, <code><a\nhref=\"refT.html#traceAll\">traceAll</a></code> and <code><a\nhref=\"refU.html#untrace\">untrace</a></code>, <code><a\nhref=\"refD.html#debug\">debug</a></code> and <code><a\nhref=\"refL.html#lint\">lint</a></code>.\n\n<pre>\n: (trace '+)\n-> +\n: (+ 3 4)\n + : 3 4\n + = 7\n-> 7\n</pre></dd>\n\n<dt><a id=\"-trace\"><code>(-trace)</code></a></dt>\n<dd>(Debug mode only) Command line frontend to <code><a\nhref=\"refT.html#trace\">trace</a></code>. See also <code><a\nhref=\"refD.html#-debug\">-debug</a></code>.\n\n<pre>\n$ ./pil --trace append +\n: (append (1 2 3) (4 5 6))\n append : (1 2 3) (4 5 6)\n append = (1 2 3 4 5 6)\n-> (1 2 3 4 5 6)\n</pre></dd>\n\n<dt><a id=\"traceAll\"><code>(traceAll ['lst]) -> sym</code></a></dt>\n<dd>(Debug mode only) Traces all Lisp level functions by inserting a <code><a\nhref=\"ref_.html#$\">$</a></code> function call at the beginning. <code>lst</code>\nmay contain symbols which are to be excluded from that process. In addition, all\nsymbols in the global variable <code>*NoTrace</code> are excluded. See also\n<code><a href=\"refT.html#trace\">trace</a></code>, <code><a\nhref=\"refU.html#untrace\">untrace</a></code> and <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>.\n\n<pre>\n: (traceAll)      # Trace all Lisp level functions\n-> balance\n</pre></dd>\n\n<dt><a id=\"trail\"><code>(trail ['flg]) -> lst</code></a></dt>\n<dd>Returns a stack backtrace for the current point of program execution. The\nlist elements are either list expressions (denoting function or method calls),\nor symbols followed by their corresponding values. If <code>flg</code> is\n<code>NIL</code>, the symbols and their values are omitted, and only the\nexpressions are returned. See also <code><a href=\"refB.html#bt\">bt</a></code>,\n<code><a href=\"refU.html#up\">up</a></code> and <code><a\nhref=\"refE.html#env\">env</a></code>.\n\n<pre>\n: (de f (A B)\n   (g (inc A) (dec B)) )\n-> f\n: (de g (X Y)\n   (trail T) )\n-> g\n: (f 3 4)\n-> ((f 3 4) A 3 B 4 (g (inc A) (dec B)) X 4 Y 3)\n</pre></dd>\n\n<dt><a id=\"tree\"><code>(tree 'sym 'cls ['hook]) -> tree</code></a></dt>\n<dd>Returns a data structure specifying a database index tree. <code>sym</code>\nand <code>cls</code> determine the relation, with an optional <code>hook</code>\nobject. See also <code><a href=\"refR.html#root\">root</a></code>, <code><a\nhref=\"refF.html#fetch\">fetch</a></code>, <code><a\nhref=\"refS.html#store\">store</a></code>, <code><a\nhref=\"refC.html#count\">count</a></code>, <code><a\nhref=\"refL.html#leaf\">leaf</a></code>, <code><a\nhref=\"refM.html#minKey\">minKey</a></code>, <code><a\nhref=\"refM.html#maxKey\">maxKey</a></code>, <code><a\nhref=\"refI.html#init\">init</a></code>, <code><a\nhref=\"refS.html#step\">step</a></code>, <code><a\nhref=\"refS.html#scan\">scan</a></code>, <code><a\nhref=\"refI.html#iter\">iter</a></code>, <code><a\nhref=\"refP.html#prune\">prune</a></code>, <code><a\nhref=\"refZ.html#zapTree\">zapTree</a></code> and <code><a\nhref=\"refC.html#chkTree\">chkTree</a></code>.\n\n<pre>\n: (tree 'nm '+Item)\n-> (nm . +Item)\n</pre></dd>\n\n<dt><a id=\"trim\"><code>(trim 'lst) -> lst</code></a></dt>\n<dd>Returns a copy of <code>lst</code> with all trailing whitespace characters\nor <code>NIL</code> elements removed. See also <code><a\nhref=\"refC.html#clip\">clip</a></code>.\n\n<pre>\n: (trim (1 NIL 2 NIL NIL))\n-> (1 NIL 2)\n: (trim '(a b \" \" \" \"))\n-> (a b)\n</pre></dd>\n\n<dt><a id=\"true/0\"><code>true/0</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that always succeeds. See also\n<code><a href=\"refF.html#fail/0\">fail/0</a></code> and <code><a\nhref=\"refR.html#repeat/0\">repeat/0</a></code>.\n\n<pre>\n:  (? (true))\n-> T\n</pre></dd>\n\n<dt><a id=\"try\"><code>(try 'msg 'obj ['any ..]) -> any</code></a></dt>\n<dd>Tries to send the message <code>msg</code> to the object <code>obj</code>,\noptionally with arguments <code>any</code>. If <code>obj</code> is not an\nobject, or if the message cannot be located in <code>obj</code>, in its classes\nor superclasses, <code>NIL</code> is returned. See also <a\nhref=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refS.html#send\">send</a></code>, <code><a\nhref=\"refM.html#method\">method</a></code>, <code><a\nhref=\"refM.html#meth\">meth</a></code>, <code><a\nhref=\"refS.html#super\">super</a></code> and <code><a\nhref=\"refE.html#extra\">extra</a></code>.\n\n<pre>\n: (try 'msg> 123)\n-> NIL\n: (try 'html> 'a)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"tty\"><code>(tty . prg) -> any</code></a></dt>\n<dd>Redirects the current output channel to the terminal (stderr) during the\nexecution of <code>prg</code>. The current output channel and the state of\n<code>readline(3)</code> will be saved and restored appropriately. See also\n<code><a href=\"refO.html#out\">out</a></code>.\n\n<pre>\n: (task -2000 0 (tty (println (inc (0)))))\n-> (-2000 0 (tty (println (inc (0)))))\n1\n2\n3\n: (* 3 4)  # Typed while numbers are printed\n</pre></dd>\n\n<dt><a id=\"type\"><code>(type 'any) -> lst</code></a></dt>\n<dd>Return the type (list of classes) of the object <code>any</code>. See also\n<a href=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refI.html#isa\">isa</a></code>, <code><a\nhref=\"refC.html#class\">class</a></code>, <code><a\nhref=\"refN.html#new\">new</a></code> and <code><a\nhref=\"refO.html#object\">object</a></code>.\n\n<pre>\n: (type '{1A;3})\n(+Address)\n: (type '+DnButton)\n-> (+Tiny +Rid +JS +Able +Button)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refU.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>U</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>U</h1>\n\n<dl>\n\n<dt><a id=\"*Uni\"><code>*Uni</code></a></dt>\n<dd>A global variable holding an <code><a href=\"refI.html#idx\">idx</a></code>\ntree, with all unique data that were collected with the comma (<code>,</code>)\nread-macro. Typically used for localization. Setting <code>*Uni</code> to\n<code>T</code> disables this mechanism. See also <code><a\nhref=\"ref.html#macro-io\">Read-Macros</a></code> and <code><a\nhref=\"refL.html#locale\">locale</a></code>.\n\n<pre>\n: (off *Uni)            # Clear\n-> NIL\n: ,\"abc\"                # Collect a transient symbol\n-> \"abc\"\n: ,(1 2 3)              # Collect a list\n-> (1 2 3)\n: *Uni\n-> (\"abc\" NIL (1 2 3))\n</pre></dd>\n\n<dt><a id=\"+UB\"><code>+UB</code></a></dt>\n<dd>Prefix class for <code><a href=\"refA.html#+Aux\">+Aux</a></code> to maintain\nan UB-Tree index instead of the direct values. This allows efficient range\naccess to multi-dimensional data. Only positive numeric keys are supported. See\nalso <code><a href=\"refU.html#ubIter\">ubIter</a></code> and <a\nhref=\"ref.html#dbase\">Database</a>.\n\n<pre>\n(class +Pos +Entity)\n(rel x (+UB +Aux +Ref +Number) (y z))\n(rel y (+Number))\n(rel z (+Number))\n\n: (scan (tree 'x '+Pos))\n(288362200753438306 . {13}) {13}\n(348187139486943716 . {16}) {16}\n(605261596962573238 . {11}) {11}\n(638523558602802506 . {7}) {7}   # UBKEY of (453062 450921 613956)\n(654697989157410399 . {12}) {12}\n...\n\n: (show '{7})\n{7} (+Pos)\n   x 453062\n   y 450921\n   z 613956\n-> {7}\n\n# Discrete queries work the same way as without the +UB prefix\n: (db 'x '+Pos 453062 'y 450921 'z 613956)\n-> {7}\n: (aux 'x '+Pos 453062 450921 613956)\n-> {7}\n: (? (db x +Pos (453062 450921 613956) @Pos))\n @Pos={7}\n-> NIL\n\n# Range queries work efficiently with 'collect'. Note that though also Pilog\nqueries can handle UB-trees, they may do so sub-optimally for certain ranges.\n: (collect 'x '+Pos (200000 200000 200000) (899999 899999 899999))\n-> ({7} {14} {17} {15})\n</pre></dd>\n\n<dt><a id=\"u\"><code>(u) -> T</code></a></dt>\n<dd>(Debug mode only) Removes <code><a href=\"ref_.html#!\">!</a></code> all\nbreakpoints in all subexpressions of the current breakpoint. Typically used when\nsingle-stepping a function or method with <code><a\nhref=\"refD.html#debug\">debug</a></code>. See also <code><a\nhref=\"refD.html#d\">d</a></code> and <code><a\nhref=\"refU.html#unbug\">unbug</a></code>.\n\n<pre>\n! (u)                         # Unbug subexpression(s) at breakpoint\n-> T\n</pre></dd>\n\n<dt><a id=\"ubIter\"><code>(ubIter 'tree 'dim 'fun 'lst1 'lst2)</code></a></dt>\n<dd>Efficiently iterates through a database <code><a\nhref=\"refU.html#+UB\">+UB</a></code> tree, by applying <code>fun</code> to all\nvalues. <code>dim</code> is the number of the key dimensions, <code>lst1</code>\nand <code>lst2</code> specify a range of keys. <code><a\nhref=\"refC.html#collect\">collect</a></code> uses <code>ubIter</code> internally\nfor UB-tree queries. See also <code><a href=\"refI.html#iter\">iter</a></code>.\n\n<pre>\n: (ubIter (tree 'x '+Pos) 3 show (200000 200000 200000) (899999 899999 899999))\n{7} (+Pos)\n   z 613956\n   y 450921\n   x 453062\n{14} (+Pos)\n   z 771372\n   y 262217\n   x 862358\n{17} (+Pos)\n   z 676836\n   y 529576\n   x 398229\n{15} (+Pos)\n   z 889332\n   y 691799\n   x 265381\n-> NIL\n</pre></dd>\n\n<dt><a id=\"udp\"><code>(udp 'any1 'any2 'any3) -> any</code></a></dt>\n<dt><code>(udp 'cnt) -> any</code></dt>\n<dd>Simple unidirectional sending/receiving of UDP packets. In the first form,\n<code>any3</code> is sent to a UDP server listening at host <code>any1</code>,\nport <code>any2</code>. In the second form, one item is received from a UDP\nsocket <code>cnt</code>, established with <code><a\nhref=\"refP.html#port\">port</a></code>. See also <code><a\nhref=\"refL.html#listen\">listen</a></code> and <code><a\nhref=\"refC.html#connect\">connect</a></code>.\n\n<pre>\n# First session\n: (port T 6666)\n-> 3\n: (udp 3)  # Receive a datagram\n\n# Second session (on the same machine)\n: (udp \"localhost\" 6666 '(a b c))\n-> (a b c)\n\n# First session\n-> (a b c)\n</pre></dd>\n\n<dt><a id=\"ultimo\"><code>(ultimo 'y 'm) -> cnt</code></a></dt>\n<dd>Returns the <code><a href=\"refD.html#date\">date</a></code> of the last day\nof the month <code>m</code> in the year <code>y</code>. See also <code><a\nhref=\"refD.html#day\">day</a></code> and <code><a\nhref=\"refW.html#week\">week</a></code>.\n\n<pre>\n: (date (ultimo 2007 1))\n-> (2007 1 31)\n: (date (ultimo 2007 2))\n-> (2007 2 28)\n: (date (ultimo 2004 2))\n-> (2004 2 29)\n: (date (ultimo 2000 2))\n-> (2000 2 29)\n: (date (ultimo 1900 2))\n-> (1900 2 28)\n</pre></dd>\n\n<dt><a id=\"unbug\"><code>(unbug 'sym) -> T</code></a></dt>\n<dt><code>(unbug 'sym 'cls) -> T</code></dt>\n<dt><code>(unbug '(sym . cls)) -> T</code></dt>\n<dd>(Debug mode only) Removes all <code><a href=\"ref_.html#!\">!</a></code>\nbreakpoints in the function or method body of sym, as inserted with <code><a\nhref=\"refD.html#debug\">debug</a></code> or <code><a\nhref=\"refD.html#d\">d</a></code>, or directly with <code><a\nhref=\"refV.html#vi\">vi</a></code>. See also <code><a\nhref=\"refU.html#u\">u</a></code>.\n\n<pre>\n: (pp 'tst)\n(de tst (N)\n   (! println (+ 3 N)) )         # 'tst' has a breakpoint '!'\n-> tst\n: (unbug 'tst)                   # Unbug it\n-> T\n: (pp 'tst)                      # Restore\n(de tst (N)\n   (println (+ 3 N)) )\n</pre></dd>\n\n<dt><a id=\"undef\"><code>(undef 'sym) -> fun</code></a></dt>\n<dt><code>(undef 'sym 'cls) -> fun</code></dt>\n<dt><code>(undef '(sym . cls)) -> fun</code></dt>\n<dd>Undefines the function or method <code>sym</code>. Returns the previous\ndefinition. See also <code><a href=\"refD.html#de\">de</a></code>, <code><a\nhref=\"refD.html#dm\">dm</a></code>, <code><a href=\"refD.html#def\">def</a></code>\nand <code><a href=\"refR.html#redef\">redef</a></code>.\n\n<pre>\n: (de hello () \"Hello world!\")\n-> hello\n: hello\n-> (NIL \"Hello world!\")\n: (undef 'hello)\n-> (NIL \"Hello world!\")\n: hello\n-> NIL\n</pre></dd>\n\n<dt><a id=\"unify\"><code>(unify 'any) -> lst</code></a></dt>\n<dt><code>(unify 'cnt) -> cnt</code></dt>\n<dd>The first form unifies <code>any</code> with the current <a\nhref=\"ref.html#pilog\">Pilog</a> environment at the current level and with a\nvalue of <code>NIL</code>, and returns the new environment or <code>NIL</code>\nif not successful. The second form unifies all variables at the given level with\nthe current one. See also <code><a href=\"refP.html#prove\">prove</a></code> and\n<code><a href=\"ref_.html#-%3E\">-&gt;</a></code>.\n\n<pre>\n: (? (^ @A (unify '(@B @C))))\n @A=(((NIL . @C) 0 . @C) ((NIL . @B) 0 . @B) T)\n</pre></dd>\n\n<dt><a id=\"uniq\"><code>(uniq 'lst) -> lst</code></a></dt>\n<dd>Returns a unique list, by eliminating all duplicate elements from\n<code>lst</code>. See also <a href=\"ref.html#cmp\">Comparing</a>, <code><a\nhref=\"refS.html#sort\">sort</a></code> and <code><a\nhref=\"refG.html#group\">group</a></code>.\n\n<pre>\n: (uniq (2 4 6 1 2 3 4 5 6 1 3 5))\n-> (2 4 6 1 3 5)\n</pre></dd>\n\n<dt><a id=\"uniq/2\"><code>uniq/2</code></a></dt>\n<dd><a href=\"ref.html#pilog\">Pilog</a> predicate that succeeds if the second\nargument is not yet stored in the first argument's index structure. <code><a\nhref=\"refI.html#idx\">idx</a></code> is used internally storing for the values\nand checking for uniqueness. See also <code><a\nhref=\"refM.html#member/2\">member/2</a></code>.\n\n<pre>\n: (let U NIL\n   (? (lst @X (a b c b c d)) (uniq U @X)) )\n @X=a\n @X=b\n @X=c\n @X=d\n-> NIL\n: (solve '((^ @B (box)) (lst @X (a b c b c d)) (uniq @B @X)) @X)\n-> (a b c d)\n</pre></dd>\n\n<dt><a id=\"unless\"><code>(unless 'any . prg) -> any</code></a></dt>\n<dd>Conditional execution: When the condition <code>any</code> evaluates to\nnon-<code>NIL</code>, <code>NIL</code> is returned. Otherwise <code>prg</code>\nis executed and the result returned. See also <code><a\nhref=\"refW.html#when\">when</a></code>, <code><a\nhref=\"refI.html#ifn\">ifn</a></code>, <code><a\nhref=\"refN.html#nor\">nor</a></code>, <code><a\nhref=\"refN.html#nand\">nand</a></code> and <code><a\nhref=\"refN.html#nond\">nond</a></code>.\n\n<pre>\n: (unless (= 3 3) (println 'Strange 'result))\n-> NIL\n: (unless (= 3 4) (println 'Strange 'result))\nStrange result\n-> result\n</pre></dd>\n\n<dt><a id=\"until\"><code>(until 'any . prg) -> any</code></a></dt>\n<dd>Conditional loop: While the condition <code>any</code> evaluates to\n<code>NIL</code>, <code>prg</code> is repeatedly executed. If <code>prg</code>\nis never executed, <code>NIL</code> is returned. Otherwise the result of\n<code>prg</code> is returned. See also <code><a\nhref=\"refW.html#while\">while</a></code>, <code><a\nhref=\"refF.html#for\">for</a></code>, <code><a\nhref=\"refL.html#loop\">loop</a></code> and <code><a\nhref=\"refD.html#do\">do</a></code>.\n\n<pre>\n: (until (=T (setq N (read)))\n   (println 'square (* N N)) )\n4\nsquare 16\n9\nsquare 81\nT\n-> 81\n</pre></dd>\n\n<dt><a id=\"untrace\"><code>(untrace 'sym) -> sym</code></a></dt>\n<dt><code>(untrace 'sym 'cls) -> sym</code></dt>\n<dt><code>(untrace '(sym . cls)) -> sym</code></dt>\n<dd>(Debug mode only) Removes the <code><a href=\"ref_.html#$\">$</a></code> trace\nfunction call at the beginning of the function or method body of\n<code>sym</code>, so that no more trace information will be printed before and\nafter execution. Built-in functions (SUBRs) are automatically converted to their\noriginal form (see <code><a href=\"refS.html#subr\">subr</a></code>). See also\n<code><a href=\"refT.html#trace\">trace</a></code> and <code><a\nhref=\"refT.html#traceAll\">traceAll</a></code>.\n\n<pre>\n: (trace '+)                           # Trace the '+' function\n-> +\n: +\n-> (@ ($ + @ (pass $385455126)))       # Modified for tracing\n: (untrace '+)                         # Untrace '+'\n-> +\n: +\n-> 67319120                            # Back to original form\n</pre></dd>\n\n<dt><a id=\"up\"><code>(up [cnt] sym ['val]) -> any</code></a></dt>\n<dd>Looks up (or modifies) the <code>cnt</code>'th previously saved value of\n<code>sym</code> in the corresponding enclosing environment. If <code>cnt</code>\nis not given, 1 is used. It is allowed to omit the <code>sym</code> argument,\nthen the corresponding expression (function or method call) is returned. See\nalso <code><a href=\"refE.html#eval\">eval</a></code>, <code><a\nhref=\"refR.html#run\">run</a></code>, <code><a\nhref=\"refT.html#trail\">trail</a></code> and <code><a\nhref=\"refE.html#env\">env</a></code>.\n\n<pre>\n: (let N 1 ((quote (N) (println N (up N))) 2))\n2 1\n-> 1\n: (let N 1 ((quote (N) (println N (up N) (up N 7))) 2) N)\n2 1 7\n-> 7\n\n: (de foo (N)\n   (println (up))\n   (inc N) )\n-> foo\n: (foo 7)\n(foo 7)\n-> 8\n</pre></dd>\n\n<dt><a id=\"upd\"><code>(upd sym ..) -> lst</code></a></dt>\n<dd>Synchronizes the internal state of all passed (external) symbols by passing\nthem to <code><a href=\"refW.html#wipe\">wipe</a></code>. <code>upd</code> is the\nstandard function passed to <code><a href=\"refC.html#commit\">commit</a></code>\nduring database <code><a href=\"ref.html#trans\">transactions</a></code>.\n\n<pre>\n(commit 'upd)  # Commit changes, informing all sister processes\n</pre></dd>\n\n<dt><a id=\"upp?\"><code>(upp? 'any) -> sym | NIL</code></a></dt>\n<dd>Returns <code>any</code> when the argument is a string (symbol) that starts\nwith an uppercase character. See also <code><a\nhref=\"refU.html#uppc\">uppc</a></code> and <code><a\nhref=\"refL.html#low?\">low?</a></code>\n\n<pre>\n: (upp? \"A\")\n-> \"A\"\n: (upp? \"a\")\n-> NIL\n: (upp? 123)\n-> NIL\n: (upp? \".\")\n-> NIL\n</pre></dd>\n\n<dt><a id=\"uppc\"><code>(uppc 'any) -> any</code></a></dt>\n<dd>Upper case conversion: If <code>any</code> is not a symbol, it is returned\nas it is. Otherwise, a new transient symbol with all characters of\n<code>any</code>, converted to upper case, is returned. See also <code><a\nhref=\"refL.html#lowc\">lowc</a></code>, <code><a\nhref=\"refF.html#fold\">fold</a></code> and <code><a\nhref=\"refU.html#upp?\">upp?</a></code>.\n\n<pre>\n: (uppc 123)\n-> 123\n: (uppc \"abc\")\n-> \"ABC\"\n: (uppc 'car)\n-> \"CAR\"\n</pre></dd>\n\n<dt><a id=\"use\"><code>(use sym . prg) -> any</code></a></dt>\n<dt><code>(use (sym ..) . prg) -> any</code></dt>\n<dd>Defines local variables. The value of the symbol <code>sym</code> - or the\nvalues of the symbols <code>sym</code> in the list of the second form - are\nsaved, <code>prg</code> is executed, then the symbols are restored to their\noriginal values. During execution of <code>prg</code>, the values of the symbols\ncan be temporarily modified. The return value is the result of <code>prg</code>.\nSee also <code><a href=\"refB.html#bind\">bind</a></code>, <code><a\nhref=\"refJ.html#job\">job</a></code> and <code><a\nhref=\"refL.html#let\">let</a></code>.\n\n<pre>\n: (setq  X 123  Y 456)\n-> 456\n: (use (X Y) (setq  X 3  Y 4) (* X Y))\n-> 12\n: X\n-> 123\n: Y\n-> 456\n</pre></dd>\n\n<dt><a id=\"useKey\"><code>(useKey 'sym 'cls ['hook]) -> num</code></a></dt>\n<dd>Generates or reuses a key for a database tree, by randomly trying to locate\na free number. See also <code><a href=\"refG.html#genKey\">genKey</a></code>.\n\n<pre>\n: (maxKey (tree 'nr '+Item))\n-> 8\n: (useKey 'nr '+Item)\n-> 12\n</pre></dd>\n\n<dt><a id=\"usec\"><code>(usec ['flg]) -> num</code></a></dt>\n<dd>Returns a number of microseconds. If <code>flg</code> is\nnon-<code>NIL</code>, the microsecond fraction of the last call to <code><a\nhref=\"refT.html#time\">time</a></code> is returned, otherwise the number of\nmicroseconds since interpreter startup. See also <code><a\nhref=\"refD.html#date\">date</a></code>.\n\n<pre>\n: (usec)\n-> 1154702479219050\n: (list (date (date)) (time (time T)) (usec T))\n-> ((2013 1 4) (10 12 39) 483321)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refV.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 30may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>V</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>V</h1>\n\n<dl>\n\n<dt><a id=\"val\"><code>(val 'var) -> any</code></a></dt>\n<dd>Returns the current value of <code>var</code>. See also <code><a\nhref=\"refS.html#setq\">setq</a></code>, <code><a\nhref=\"refS.html#set\">set</a></code> and <code><a\nhref=\"refD.html#def\">def</a></code>.\n\n<pre>\n: (setq L '(a b c))\n-> (a b c)\n: (val 'L)\n-> (a b c)\n: (val (cdr L))\n-> b\n</pre></dd>\n\n<dt><a id=\"val/3\"><code>val/3</code></a></dt>\n<dd>(Deprecated since version 25.5.30) <a\nhref=\"ref.html#pilog\">Pilog</a> predicate that returns the value of an\nobject's attribute. Typically used in database queries. The first\nargument is a Pilog variable to bind the value, the second is the\nobject, and the third and following arguments are used to apply the\n<code><a href=\"refG.html#get\">get</a></code> algorithm to that object.\nSee also <code><a href=\"refD.html#db/3\">db/3</a></code> and <code><a\nhref=\"refS.html#select/3\">select/3</a></code>.\n\n<pre>\n: (?\n   (db nr +Item (2 . 5) @Item)   # Fetch articles 2 through 5\n   (val @Nm @Item nm)            # Get item description\n   (val @Sup @Item sup nm) )     # and supplier's name\n @Item={B2} @Nm=\"Spare Part\" @Sup=\"Seven Oaks Ltd.\"\n @Item={B3} @Nm=\"Auxiliary Construction\" @Sup=\"Active Parts Inc.\"\n @Item={B4} @Nm=\"Enhancement Additive\" @Sup=\"Seven Oaks Ltd.\"\n @Item={B5} @Nm=\"Metal Fittings\" @Sup=\"Active Parts Inc.\"\n-> NIL\n</pre></dd>\n\n<dt><a id=\"var\"><code>(var sym . any) -> any</code></a></dt>\n<dt><code>(var (sym . cls) . any) -> any</code></dt>\n<dd>Defines a class variable <code>sym</code> with the initial value\n<code>any</code> for the current class, implicitly given by the value of the\nglobal variable <code><a href=\"refC.html#*Class\">*Class</a></code>, or - in the\nsecond form - for the explicitly given class cls. See also <a\nhref=\"ref.html#oop\">OO Concepts</a>, <code><a\nhref=\"refR.html#rel\">rel</a></code> and <code><a\nhref=\"refV.html#var:\">var:</a></code>.\n\n<pre>\n: (class +A)\n-> +A\n: (var a . 1)\n-> 1\n: (var b . 2)\n-> 2\n: (show '+A)\n+A NIL\n   b 2\n   a 1\n-> +A\n</pre></dd>\n\n<dt><a id=\"var:\"><code>(var: sym) -> any</code></a></dt>\n<dd>Fetches the value of a class variable <code>sym</code> for the current\nobject <code><a href=\"refT.html#This\">This</a></code>, by searching the property\nlists of its class(es) and superclasses. See also <a href=\"ref.html#oop\">OO\nConcepts</a>, <code><a href=\"refV.html#var\">var</a></code>, <code><a\nhref=\"refW.html#with\">with</a></code>, <code><a\nhref=\"refM.html#meta\">meta</a></code>, <code><a href=\"ref_.html#:\">:</a></code>,\n<code><a href=\"ref_.html#=:\">=:</a></code> and <code><a\nhref=\"ref_.html#::\">::</a></code>.\n\n<pre>\n: (class +A)\n-> +A\n: (var a . 1)\n-> 1\n: (var b . 2)\n-> 2\n: (object 'O '(+A) 'a 9 'b 8)\n-> O\n: (with 'O (list (: a) (: b) (var: a) (var: b)))\n-> (9 8 1 2)\n</pre></dd>\n\n<dt><a id=\"version\"><code>(version ['flg]) -> lst</code></a></dt>\n<dt><code>(version 'lst) -> lst</code></dt>\n<dd>Prints the current version as a string of dot-separated numbers, and returns\nthe current version as a list of numbers. When <code>flg</code> is non-NIL,\nprinting is suppressed. The second form checks for the required version in\n<code>lst</code> and throws an error if the current version is too old. See also\n<code><a href=\"refC.html#*CPU\">*CPU</a></code> and <code><a\nhref=\"refO.html#*OS\">*OS</a></code>.\n\n<pre>\n$ pil -version\n25.5.8\n\n: (version T)\n-> (25 5 8)\n: (version)\n25.5.8\n-> (25 5 8)\n\n: (version (25 5 9))\n!? (version (25 5 9))\n(25 5 8) -- Inadequate PicoLisp version\n?\n</pre></dd>\n\n<dt><a id=\"vi\"><code>(vi 'sym) -> sym | NIL</code></a></dt>\n<dt><code>(vi 'sym 'cls) -> sym | NIL</code></dt>\n<dt><code>(vi 'lst) -> lst | NIL</code></dt>\n<dt><code>(v . lst) -> lst | NIL</code></dt>\n<dt><code>(v) -> NIL</code></dt>\n<dd>(Debug mode only) Opens the Vip editor on the function or method definition\nof <code>sym</code> (source file or direct path name), or on a list of symbols\n<code>lst</code> (in-memory). <code>(v)</code> resumes a Vip session suspended\nwith \"qz\". See also <code><a href=\"refD.html#doc\">doc</a></code>, <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>, <code><a\nhref=\"refD.html#debug\">debug</a></code> and <code><a\nhref=\"refP.html#pp\">pp</a></code>.\n\n<pre>\n: (vi 'put> '+Entity)  # Edit the method's source code\n: (v {1})  # In-memory-edit the database root object\n-> put>\n</pre></dd>\n\n<dt><a id=\"view\"><code>(view 'lst ['T]) -> any</code></a></dt>\n<dd>Views <code>lst</code> as tree-structured ASCII graphics. When the\n<code>T</code> argument is given, <code>lst</code> should be a binary tree\nstructure (as generated by <code><a href=\"refI.html#idx\">idx</a></code>), which\nis then shown as a left-rotated tree. See also <code><a\nhref=\"refP.html#pretty\">pretty</a></code> and <code><a\nhref=\"refS.html#show\">show</a></code>.\n\n<pre>\n: (balance 'I '(a b c d e f g h i j k l m n o))\n-> NIL\n: I\n-> (h (d (b (a) c) f (e) g) l (j (i) k) n (m) o)\n\n: (view I)\n+-- h\n|\n+---+-- d\n|   |\n|   +---+-- b\n|   |   |\n|   |   +---+-- a\n|   |   |\n|   |   +-- c\n|   |\n|   +-- f\n|   |\n|   +---+-- e\n|   |\n|   +-- g\n|\n+-- l\n|\n+---+-- j\n|   |\n|   +---+-- i\n|   |\n|   +-- k\n|\n+-- n\n|\n+---+-- m\n|\n+-- o\n-> NIL\n\n: (view I T)\n         o\n      n\n         m\n   l\n         k\n      j\n         i\nh\n         g\n      f\n         e\n   d\n         c\n      b\n         a\n-> NIL\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refW.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 09dec25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>W</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>W</h1>\n\n<dl>\n\n<dt><a id=\"*Winch\"><code>*Winch</code></a></dt>\n<dd>Global variable holding a (possibly empty) <code>prg</code> body, which will\nbe executed when a SIGWINCH signal is sent to the current process. See also\n<code><a href=\"refA.html#alarm\">alarm</a></code>, <code><a\nhref=\"refS.html#sigio\">sigio</a></code>, <code><a\nhref=\"refH.html#*Hup\">*Hup</a></code>, <code><a\nhref=\"refS.html#*Sig1\">*Sig[12]</a></code>, <code><a\nhref=\"refT.html#*TStp1\">*TStp[12]</a></code> and <code><a\nhref=\"refT.html#*Term\">*Term</a></code>.\n\n<pre>\n: (de *Winch (msg 'SIGWINCH))\n-> *Winch\n</pre></dd>\n\n<dt><a id=\"wait\"><code>(wait 'cnt|NIL . prg) -> any</code></a></dt>\n<dt><code>(wait 'cnt|NIL T 'fd) -> fd|NIL</code></dt>\n<dd>Waits for a condition. While the result of the execution of <code>prg</code>\nis <code>NIL</code> (first form), or no input is available for the file\ndescriptor in <code>fd</code> (second form), a <code>poll(2)</code> system call\nis executed for all file descriptors and timers in the <code>VAL</code> of the\nglobal variable <code><a href=\"refR.html#*Run\">*Run</a></code>. When\n<code>cnt</code> is non-<code>NIL</code>, the waiting time is limited to\n<code>cnt</code> milliseconds. Returns the result of <code>prg</code>. See also\n<code><a href=\"refK.html#key\">key</a></code> and <code><a\nhref=\"refS.html#sync\">sync</a></code>.\n\n<pre>\n: (wait 2000)                                # Wait 2 seconds\n-> NIL\n: (prog\n   (zero *Cnt)\n   (setq *Run                                # Install background loop\n      '((-2000 0 (println (inc '*Cnt)))) )   # Increment '*Cnt' every 2 sec\n   (wait NIL (> *Cnt 6))                     # Wait until > 6\n   (off *Run) )\n1                                            # Waiting ..\n2\n3\n4\n5\n6\n7\n-> NIL\n</pre></dd>\n\n<dt><a id=\"week\"><code>(week 'dat) -> num</code></a></dt>\n<dd>Returns the number of the week for a given <code><a\nhref=\"refD.html#date\">date</a></code> <code>dat</code>. See also <code><a\nhref=\"refD.html#day\">day</a></code>, <code><a\nhref=\"refU.html#ultimo\">ultimo</a></code>, <code><a\nhref=\"refD.html#datStr\">datStr</a></code> and <code><a\nhref=\"refS.html#strDat\">strDat</a></code>.\n\n<pre>\n: (datStr (date))\n-> \"2007-06-01\"\n: (week (date))\n-> 22\n</pre></dd>\n\n<dt><a id=\"when\"><code>(when 'any . prg) -> any</code></a></dt>\n<dd>Conditional execution: When the condition <code>any</code> evaluates to\nnon-<code>NIL</code>, <code>prg</code> is executed and the result is returned.\nOtherwise <code>NIL</code> is returned. See also <code><a\nhref=\"refU.html#unless\">unless</a></code>, <code><a\nhref=\"refI.html#if\">if</a></code>, <code><a href=\"refA.html#and\">and</a></code>\nand <code><a href=\"refC.html#cond\">cond</a></code>.\n\n<pre>\n: (when (> 4 3) (println 'OK) (println 'Good))\nOK\nGood\n-> Good\n</pre></dd>\n\n<dt><a id=\"while\"><code>(while 'any . prg) -> any</code></a></dt>\n<dd>Conditional loop: While the condition <code>any</code> evaluates to\nnon-<code>NIL</code>, <code>prg</code> is repeatedly executed. If\n<code>prg</code> is never executed, <code>NIL</code> is returned. Otherwise the\nresult of <code>prg</code> is returned. See also <code><a\nhref=\"refU.html#until\">until</a></code>, <code><a\nhref=\"refF.html#for\">for</a></code>, <code><a\nhref=\"refL.html#loop\">loop</a></code> and <code><a\nhref=\"refD.html#do\">do</a></code>.\n\n<pre>\n: (while (read)\n   (println 'got: @) )\nabc\ngot: abc\n1234\ngot: 1234\nNIL\n-> 1234\n</pre></dd>\n\n<dt><a id=\"what\"><code>(what 'sym) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all internal symbols that match the\npattern string <code>sym</code>. See also <code><a\nhref=\"refM.html#match\">match</a></code>, <code><a\nhref=\"refW.html#who\">who</a></code>, <code><a\nhref=\"refH.html#has\">has</a></code> and <code><a\nhref=\"refC.html#can\">can</a></code>.\n\n<pre>\n: (what \"cd@dr\")\n-> (cdaddr cdaadr cddr cddddr cdddr cddadr cdadr)\n</pre></dd>\n\n<dt><a id=\"who\"><code>(who 'any) -> lst</code></a></dt>\n<dd>(Debug mode only) Returns a list of all functions or method definitions that\ncontain the atom or pattern <code>any</code>. See also <code><a\nhref=\"refM.html#match\">match</a></code>, <code><a\nhref=\"refW.html#what\">what</a></code>, <code><a\nhref=\"refH.html#has\">has</a></code> and <code><a\nhref=\"refC.html#can\">can</a></code>.\n\n<pre>\n: (who 'caddr)                         # Who is using 'caddr'?\n-> ($dat lint1 expDat datStr $tim tim$ mail _gen dat$ datSym)\n\n: (who \"Type error\")\n-> ((mis> . +Link) *Uni (mis> . +Joint))\n\n: (more (who \"Type error\") pp)         # Pretty print all results\n(dm (mis> . +Link) (Val Obj)\n   (and\n      Val\n      (nor (isa (: type) Val) (canQuery Val))\n      \"Type error\" ) )\n.                                      # Stop\n-> T\n</pre></dd>\n\n<dt><a id=\"wipe\"><code>(wipe 'sym|lst) -> sym|lst</code></a></dt>\n<dd>Clears the <code>VAL</code> and the property list of <code>sym</code>, or of\nall symbols in the list <code>lst</code>. When a symbol is an external symbol,\nits state is also set to \"not loaded\". Does nothing when <code>sym</code> is an\nexternal symbol that has been modified or deleted (\"dirty\").\n\n<pre>\n: (setq A (1 2 3 4))\n-> (1 2 3 4)\n: (put 'A 'a 1)\n-> 1\n: (put 'A 'b 2)\n-> 2\n: (show 'A)\nA (1 2 3 4)\n   b 2\n   a 1\n-> A\n: (wipe 'A)\n-> A\n: (show 'A)\nA NIL\n-> A\n</pre></dd>\n\n<dt><a id=\"with\"><code>(with 'any . prg) -> any</code></a></dt>\n<dd>Saves the current object <code><a\nhref=\"refT.html#This\">This</a></code> and sets it to the new value\n<code>any</code>. Then <code>prg</code> is executed, and\n<code>This</code> is restored to its previous value. The return value is\nthe result of <code>prg</code>. Used typically to access the local data\nof <code>var</code> in the same manner as inside a method body.\n<code>prg</code> is not executed (and <code>NIL</code> is returned) when\n<code>var</code> is <code>NIL</code>. <code>(with 'X . prg)</code> is\nequivalent to <code>(let? This 'X . prg)</code>. See also <code><a\nhref=\"refT.html#this\">this</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (put 'X 'b 2)\n-> 2\n: (with 'X (list (: a) (: b)))\n-> (1 2)\n</pre></dd>\n\n<dt><a id=\"wr\"><code>(wr 'cnt ..) -> cnt</code></a></dt>\n<dd>Writes all <code>cnt</code> arguments as raw bytes to the current output\nchannel. See also <code><a href=\"refR.html#rd\">rd</a></code> and <code><a\nhref=\"refP.html#pr\">pr</a></code>.\n\n<pre>\n: (out \"x\" (wr 1 255 257))  # Write to \"x\"\n-> 257\n: (hd \"x\")\n00000000  01 FF 01                                         ...\n-> NIL\n</pre></dd>\n\n<dt><a id=\"wrap\"><code>(wrap 'cnt 'lst) -> sym</code></a></dt>\n<dt><code>(wrap 'cnt 'sym) -> lst</code></dt>\n<dd>The first form returns a transient symbol with all characters in\n<code>lst</code> <code><a href=\"refP.html#pack\">pack</a></code>ed in lines with\na maximal length of <code>cnt</code>. The second form converts a symbol to a\nlist of transient symbols each with a maximal length of <code>cnt</code>. See\nalso <code><a href=\"refT.html#tab\">tab</a></code>, <code><a\nhref=\"refA.html#align\">align</a></code> and <code><a\nhref=\"refC.html#center\">center</a></code>.\n\n<pre>\n: (wrap 20 (chop \"The quick brown fox jumps over the lazy dog\"))\n-> \"The quick brown fox^Jjumps over the lazy^Jdog\"\n: (wrap 8 (chop \"The quick brown fox jumps over the lazy dog\"))\n-> \"The^Jquick^Jbrown^Jfox^Jjumps^Jover the^Jlazy dog\"\n: (wrap 8 \"The quick brown fox jumps over the lazy dog\")\n-> (\"The\" \"quick\" \"brown\" \"fox\" \"jumps\" \"over the\" \"lazy dog\")\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refX.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>X</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>X</h1>\n\n<dl>\n\n<dt><a id=\"xchg\"><code>(xchg 'var 'var ..) -> any</code></a></dt>\n<dd>Exchange the values of successive <code>var</code> argument pairs. See also\n<code><a href=\"refS.html#swap\">swap</a></code> and <code><a\nhref=\"refS.html#set\">set</a></code>.\n\n<pre>\n: (setq  A 1  B 2  C '(a b c))\n-> (a b c)\n: (xchg  'A C  'B (cdr C))\n-> 2\n: A\n-> a\n: B\n-> b\n: C\n-> (1 2 c)\n</pre></dd>\n\n<dt><a id=\"xor\"><code>(xor 'any 'any) -> flg</code></a></dt>\n<dd>Returns T if exactly one of the arguments evaluates to non-<code>NIL</code>.\n\n<pre>\n: (xor T NIL)\n-> T\n: (xor T T)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"x%7C\"><code>(x| 'num ..) -> num</code></a></dt>\n<dd>Returns the bitwise <code>XOR</code> of all <code>num</code> arguments. When\none of the arguments evaluates to <code>NIL</code>, it is returned immediately.\nSee also <code><a href=\"ref_.html#&\">&</a></code>, <code><a\nhref=\"ref_.html#%7C\">|</a></code> and <code><a\nhref=\"refB.html#bit?\">bit?</a></code>.\n\n<pre>\n: (x| 2 7)\n-> 5\n: (x| 2 7 1)\n-> 4\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refY.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 10oct25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Y</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>Y</h1>\n\n<dl>\n\n<dt><a id=\"yield\"><code>(yield 'any ['any2] [. prg]) -> any</code></a></dt>\n<dd>Transfers control from the current <a\nhref=\"ref.html#coroutines\">coroutine</a> back to the caller (when the\n<code>any2</code> tag is not given), or to some other coroutine\n(specified by <code>any2</code>) to continue execution at the point\nwhere that coroutine had called <code>yield</code> before. In the first\ncase, the value <code>any</code> will be returned from the corresponding\n<code><a href=\"refC.html#co\">co</a></code> call, in the second case it\nwill be the return value of that <code>yield</code> call. If\n<code>prg</code> is given, it is executed in the destination environment\nbefore the coroutine resumes execution. See also <code><a\nhref=\"refS.html#stack\">stack</a></code>, <code><a\nhref=\"refC.html#catch\">catch</a></code> and <code><a\nhref=\"refT.html#throw\">throw</a></code>.\n\n<pre>\n: (co \"rt1\"                            # Start first routine\n   (msg (yield 1) \" in rt1 from rt2\")  # Return '1', wait for value from \"rt2\"\n   7 )                                 # Then return '7'\n-> 1\n\n: (co \"rt2\"                            # Start second routine\n   (yield 2 \"rt1\") )                   # Send '2' to \"rt1\"\n2 in rt1 from rt2\n-> 7\n\n: (co 'a (let N 0 (loop (yield (inc 'N)))))  # Incrementing coroutine\n-> 1\n: (co 'a T)                            # Next value\n-> 2\n: (yield NIL 'a (println N))           # Print value, then increment\n2\n-> 3\n: (yield NIL 'a (println N))\n3\n-> 4\n: (yield NIL 'a (yield N))             # Immediately yield back\n-> 4                                   # Can be used to inspect a value\n: (yield NIL 'a (yield N))             # in another coroutine\n-> 4\n: (co 'a T)                            # Next value\n-> 5\n: (yield NIL 'a (yield (env)))         # Return the whole environment\n</pre></dd>\n\n<dt><a id=\"yoke\"><code>(yoke 'any ..) -> any</code></a></dt>\n<dd>Inserts one or several new elements <code>any</code> in front of the list in\nthe current <code><a href=\"refM.html#make\">make</a></code> environment.\n<code>yoke</code> returns the last inserted argument. See also <code><a\nhref=\"refL.html#link\">link</a></code>, <code><a\nhref=\"refC.html#chain\">chain</a></code> and <code><a\nhref=\"refM.html#made\">made</a></code>.\n\n<pre>\n: (make (link 2 3) (yoke 1) (link 4))\n-> (1 2 3 4)\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/refZ.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Z</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>Z</h1>\n\n<dl>\n\n<dt><a id=\"*Zap\"><code>*Zap</code></a></dt>\n<dd>A global variable holding a list and a pathname. If given, and the value of\n<code><a href=\"refS.html#*Solo\">*Solo</a></code> is <code>NIL</code>, external\nsymbols which are no longer accessible can be collected in the CAR, e.g. during\nDB tree processing, and written to the file in the CDR at the next <code><a\nhref=\"refC.html#commit\">commit</a></code>. A (typically periodic) call to\n<code><a href=\"refZ.html#zap_\">zap_</a></code> will clean them up later.\n\n<pre>\n: (setq *Zap '(NIL . \"db/app/_zap\"))\n-> (NIL . \"db/app/_zap\")\n</pre></dd>\n\n<dt><a id=\"zap\"><code>(zap 'sym) -> sym</code></a></dt>\n<dd>\"Delete\" the symbol <code>sym</code>. For internal symbols, that means to\nremove it from the current namespace, effectively transforming it to a transient\nsymbol. For external symbols, it means to mark it as \"deleted\", so that upon a\nlater <code><a href=\"refC.html#commit\">commit</a></code> it will be removed from\nthe database file. See also <code><a href=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (de foo (Lst) (car Lst))          # 'foo' calls 'car'\n-> foo\n: (zap 'car)                        # Delete the symbol 'car'\n-> \"car\"\n: (pp 'foo)\n(de foo (Lst)\n   (\"car\" Lst) )                    # 'car' is now a transient symbol\n-> foo\n: (foo (1 2 3))                     # 'foo' still works\n-> 1\n: (car (1 2 3))                     # Reader returns a new 'car' symbol\n!? (car (1 2 3))\ncar -- Undefined\n?\n</pre></dd>\n\n<dt><a id=\"zapTree\"><code>(zapTree 'sym)</code></a></dt>\n<dd>Recursively deletes a tree structure from the database. See also <code><a\nhref=\"refT.html#tree\">tree</a></code>, <code><a\nhref=\"refC.html#chkTree\">chkTree</a></code> and <code><a\nhref=\"refP.html#prune\">prune</a></code>.\n\n<pre>\n: (zapTree (cdr (root (tree 'nm '+Item))))\n</pre></dd>\n\n<dt><a id=\"zap_\"><code>(zap_)</code></a></dt>\n<dd>Delayed deletion (with <code><a href=\"refZ.html#zap\">zap</a></code>) of\nexternal symbols which were collected e.g. during DB tree processing. An\nauxiliary file (with the name taken from the CDR of the value of <code><a\nhref=\"refZ.html#*Zap\">*Zap</a></code>, concatenated with a \"<code>_</code>\"\ncharacter) is used as an intermediary file.\n\n<pre>\n: *Zap\n-> (NIL . \"db/app/Z\")\n: (call 'ls \"-l\" \"db/app\")\n...\n-rw-r--r-- 1 abu abu     1536 2007-06-23 12:34 Z\n-rw-r--r-- 1 abu abu     1280 2007-05-23 12:15 Z_\n...\n: (zap_)\n...\n: (call 'ls \"-l\" \"db/app\")\n...\n-rw-r--r-- 1 abu abu     1536 2007-06-23 12:34 Z_\n...\n</pre></dd>\n\n<dt><a id=\"zero\"><code>(zero var ..) -> 0</code></a></dt>\n<dd>Stores <code>0</code> in all <code>var</code> arguments. See also <code><a\nhref=\"refO.html#one\">one</a></code>, <code><a href=\"refO.html#on\">on</a></code>,\n<code><a href=\"refO.html#off\">off</a></code> and <code><a\nhref=\"refO.html#onOff\">onOff</a></code>.\n\n<pre>\n: (zero A B)\n-> 0\n: A\n-> 0\n: B\n-> 0\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/ref_.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 20aug25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>Other</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n\n<h1>Other</h1>\n\n<dl>\n\n<dt><a id=\"!\"><code>(! . exe) -> any</code></a></dt>\n<dd>Low level breakpoint function: The current execution environment is saved\nand the I/O channels are redirected to the console. Then <code>exe</code> is\ndisplayed, and a read-eval-print-loop is entered (with <code>!</code> as its\nprompt character), to evaluate expressions and examine the current program\nenvironment. An empty input line terminates the read-eval-print-loop, the\nenvironment and I/O channels are restored, and the result of <code>exe</code> is\nreturned. <code>!</code> is normally inserted into existing programs with the\n<code><a href=\"refD.html#debug\">debug</a></code> function. See also <code><a\nhref=\"ref_.html#!!\">!!</a></code>, <code><a href=\"refE.html#e\">e</a></code>,\n<code><a href=\"ref_.html#%5E\">^</a></code> and <code><a\nhref=\"refD.html#*Dbg\">*Dbg</a></code>.\n\n<pre>\n: (de foo (N) (and (println 1) (! println N) (println 2)))\n-> foo\n: (foo 7)\n1                 # Executed '(println 1)'\n(println N)       # Entered breakpoint\n! N               # Examine the value of 'N'\n-> 7\n! (e)             # Evaluate '^', i.e. (println N)\n7\n-> 7\n! (e @)           # Evaluate '@' -> the result of '(println 1)'\n-> 1\n!                 # Empty line: continue\n7                 # Executed '(println N)'\n2                 # Executed '(println 2)'\n-> 2\n</pre></dd>\n\n<dt><a id=\"!!\"><code>(!! 'any . exe) -> any</code></a></dt>\n<dd>Conditional low level breakpoint function. Behaves as <code><a\nhref=\"ref_.html#X\">!</a></code>, but stops only if <code>any</code> evaluates to\nnon-<code>NIL</code>.\n\n<pre>\n: (for N 7 (!! (= 4 N) println N))\n1\n2\n3\n(println N)\n! N\n-> 4\n!\n4\n5\n6\n7\n-> 7\n</pre></dd>\n\n<dt><a id=\"$\"><code>($ sym|lst lst . prg) -> any</code></a></dt>\n<dd>Low level trace function: The first argument <code>sym|lst</code> is printed\nto the console with a proper indentation, followed by a colon <code>:</code>. If\na function is traced, the first argument is the function symbol, else if a\nmethod is traced, it is a cons pair of message and class. The second argument\n<code>lst</code> should be a list of symbols, identical to the function's\nargument list. The current values of these symbols are printed, followed by a\nnewline. Then <code>prg</code> is executed, and its return value printed in a\nsimilar way (this time with an equals sign <code>=</code> instead of a colon)\nand returned. <code>$</code> is normally inserted into existing programs with\nthe <code><a href=\"refT.html#trace\">trace</a></code> function.\n\n<pre>\n: (de foo (A B) ($ foo (A B) (* A B)))\n-> foo\n: (foo 3 4)\n foo : 3 4        # Function entry, arguments 3 and 4\n foo = 12         # Function exit, return value 12\n-> 12\n</pre></dd>\n\n<dt><a id=\"$dat\"><code>($dat 'sym1 ['sym2]) -> dat</code></a></dt>\n<dd>Converts a string <code>sym1</code> in ISO format to a <code><a\nhref=\"refD.html#date\">date</a></code>, optionally using a delimiter character\n<code>sym2</code>. See also <code><a href=\"refD.html#dat$\">dat$</a></code>,\n<code><a href=\"ref_.html#$tim\">$tim</a></code>, <code><a\nhref=\"refS.html#strDat\">strDat</a></code> and <code><a\nhref=\"refE.html#expDat\">expDat</a></code>.\n\n<pre>\n: ($dat \"20070601\")\n-> 733134\n: ($dat \"2007-06-01\" \"-\")\n-> 733134\n</pre></dd>\n\n<dt><a id=\"$tim\"><code>($tim 'sym) -> tim</code></a></dt>\n<dd>Converts a string to a <code><a href=\"refT.html#time\">time</a></code>. The\nminutes and seconds are optional and default to zero. See also <code><a\nhref=\"refT.html#tim$\">tim$</a></code> and <code><a\nhref=\"ref_.html#$dat\">$dat</a></code>.\n\n<pre>\n: (time ($tim \"10:57:56\"))\n-> (10 57 56)\n: (time ($tim \"10:57\"))\n-> (10 57 0)\n: (time ($tim \"10\"))\n-> (10 0 0)\n</pre></dd>\n\n<dt><a id=\"%25\"><code>(% 'num ..) -> num</code></a></dt>\n<dd>Returns the remainder from the divisions of successive <code>num</code>\narguments. The sign of the result is that of the first argument. When one of the\narguments evaluates to <code>NIL</code>, it is returned immediately. See also\n<code><a href=\"ref_.html#/\">/</a></code> and <code><a\nhref=\"ref_.html#*/\">*/</a></code> .\n\n<pre>\n: (% 17 5)\n-> 2\n: (% -17 5)  # Sign is that of the first argument\n-> -2\n: (% 5 2)\n-> 1\n: (% 15 10)\n-> 5\n: (% 15 10 2)  # (% 15 10) -> 5, then (% 5 2) -> 1\n-> 1\n</pre></dd>\n\n<dt><a id=\"%25@\"><code>(%@ 'cnt|sym 'any 'any ..) -> any</code></a></dt>\n<dd>Convenience function for a common use case of <code><a\nhref=\"refN.html#native\">native</a></code>. <code>(%@ \"fun\" ...)</code> is\nequivalent to <code>(native \"@\" \"fun\" ...)</code>.\n\n<pre>\n: (%@ \"getenv\" 'S \"TERM\")  # Same as (sys \"TERM\")\n-> \"xterm\"\n: (%@ \"symlink\" 'I \"file\" \"link\")\n-> 0\n: (%@ \"isatty\" 'I 0)\n-> 1\n: (round (%@ \"cos\" 1.0  3.1415926535897932))\n-> \"1.000\"\n: (use Tim\n   (%@ \"time\" NIL '(Tim (8 B . 8)))  # time_t 8   # Get time_t structure\n   (%@ \"localtime\" '(I . 9) (cons NIL (8) Tim)) ) # Read local time\n-> (43 19 14 6 10 120 5 310 0)  # 14:19:43, Nov 6th, 2020\n</pre></dd>\n\n<dt><a id=\"&\"><code>(& 'num ..) -> num</code></a></dt>\n<dd>Returns the bitwise <code>AND</code> of all <code>num</code> arguments. When\none of the arguments evaluates to <code>NIL</code>, it is returned immediately.\nSee also <code><a href=\"ref_.html#%7C\">|</a></code>, <code><a\nhref=\"refX.html#x%7C\">x|</a></code> and <code><a\nhref=\"refB.html#bit?\">bit?</a></code>.\n\n<pre>\n: (& 6 3)\n-> 2\n: (& 7 3 1)\n-> 1\n</pre></dd>\n\n<dt><a id=\"*\"><code>(* 'num ..) -> num</code></a></dt>\n<dd>Returns the product of all <code>num</code> arguments. When one of the\narguments evaluates to <code>NIL</code>, it is returned immediately. See also\n<code><a href=\"ref_.html#/\">/</a></code>, <code><a\nhref=\"ref_.html#*/\">*/</a></code>, <code><a href=\"ref_.html#+\">+</a></code> and\n<code><a href=\"ref_.html#-\">-</a></code>.\n\n<pre>\n: (* 1 2 3)\n-> 6\n: (* 5 3 2 2)\n-> 60\n</pre></dd>\n\n<dt><a id=\"**\"><code>(** 'num1 'num2) -> num</code></a></dt>\n<dd>Integer exponentiation: Returns <code>num1</code> to the power of\n<code>num2</code>.\n\n<pre>\n: (** 2 3)\n-> 8\n: (** 100 100)\n-> 10000000000000000000000000000000000000000000000000000000000000000000000000000\n00000000000000000000000000000000000000000000000000000000000000000000000000000000\n00000000000000000000000000000000000000000000\n</pre></dd>\n\n<dt><a id=\"*/\"><code>(*/ 'num1 ['num2 ..] 'num3) -> num</code></a></dt>\n<dd>Returns the product of <code>num1</code> and all following <code>num2</code>\narguments, divided by the <code>num3</code> argument. The result is rounded to\nthe nearest integer value. When one of the arguments evaluates to\n<code>NIL</code>, it is returned immediately. Note that <code>*/</code> is\nespecially useful for fixed point arithmetic, by multiplying with (or dividing\nby) the scale factor. See also <code><a href=\"ref_.html#*\">*</a></code>,\n<code><a href=\"ref_.html#/\">/</a></code>, <code><a\nhref=\"ref_.html#+\">+</a></code>, <code><a href=\"ref_.html#-\">-</a></code> and\n<code><a href=\"refS.html#sqrt\">sqrt</a></code>.\n\n<pre>\n: (*/ 3 4 2)\n-> 6\n: (*/ 1234 2 10)\n-> 247\n: (*/ 100 6)\n-> 17\n\n: (scl 2)\n-> 2  # 0.02\n: (format (*/ 3.0 1.5 1.0) *Scl)\n-> \"4.50\"\n\n: (scl 20)\n-> 20  # 0.00000000000000000020\n: (format (*/ 9.9 9.789 9.56789 `(sq 1.0)) *Scl)\n-> \"927.23474457900000000000\"\n\n</pre></dd>\n\n<dt><a id=\"+\"><code>(+ 'num ..) -> num</code></a></dt>\n<dd>Returns the sum of all <code>num</code> arguments. When one of the arguments\nevaluates to <code>NIL</code>, it is returned immediately. See also <code><a\nhref=\"refI.html#inc\">inc</a></code>, <code><a href=\"ref_.html#-\">-</a></code>,\n<code><a href=\"ref_.html#*\">*</a></code>, <code><a\nhref=\"ref_.html#/\">/</a></code> and <code><a href=\"ref_.html#*/\">*/</a></code>.\n\n<pre>\n: (+ 1 2 3)\n-> 6\n</pre></dd>\n\n<dt><a id=\"++\"><code>(++ var) -> any</code></a></dt>\n<dd>Pops the first element (CAR) from the stack in <code>var</code>. <code>(++\nLst)</code> is equivalent to <code>(pop 'Lst)</code>. See also <code><a\nhref=\"refP.html#pop\">pop</a></code>.\n\n<pre>\n</pre></dd>\n\n<dt><a id=\"-\"><code>(- 'num ..) -> num</code></a></dt>\n<dd>Returns the difference of the first <code>num</code> argument and all\nfollowing arguments. If only a single argument is given, it is negated. When one\nof the arguments evaluates to <code>NIL</code>, it is returned immediately. See\nalso <code><a href=\"refD.html#dec\">dec</a></code>, <code><a\nhref=\"ref_.html#+\">+</a></code>, <code><a href=\"ref_.html#*\">*</a></code>,\n<code><a href=\"ref_.html#/\">/</a></code> and <code><a\nhref=\"ref_.html#*/\">*/</a></code>.\n\n<pre>\n: (- 7)\n-> -7\n: (- 7 2 1)\n-> 4\n</pre></dd>\n\n<dt><a id=\"-%3E\"><code>(-&gt; any [cnt]) -> any</code></a></dt>\n<dd>Searches for the value of <code>any</code> (typically a <a\nhref=\"ref.html#pilog\">Pilog</a> variable, or an expression of variables) at top\nlevel (or level <code>cnt</code>) in the current environment. See also <code><a\nhref=\"refP.html#prove\">prove</a></code> and <code><a\nhref=\"refU.html#unify\">unify</a></code>.\n\n<pre>\n: (? (append (1 2 3) (4 5 6) @X) (^ @ (println 'X '= (-> @X))))\nX = (1 2 3 4 5 6)\n @X=(1 2 3 4 5 6)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"/\"><code>(/ 'num ..) -> num</code></a></dt>\n<dd>Returns the first <code>num</code> argument successively divided by all\nfollowing arguments. When one of the arguments evaluates to <code>NIL</code>, it\nis returned immediately. See also <code><a href=\"ref_.html#*\">*</a></code>,\n<code><a href=\"ref_.html#*/\">*/</a></code>, <code><a\nhref=\"ref_.html#%25\">%</a></code>, <code><a href=\"ref_.html#+\">+</a></code> and\n<code><a href=\"ref_.html#-\">-</a></code>.\n\n<pre>\n: (/ 12 3)\n-> 4\n: (/ 60 -3 2 2)\n-> -5\n</pre></dd>\n\n<dt><a id=\":\"><code>(: sym|0 [sym1|cnt ..]) -> any</code></a></dt>\n<dd>Fetches a value <code>any</code> from the properties (or value) of a symbol,\nor from a list, by applying the <code><a href=\"refG.html#get\">get</a></code>\nalgorithm to <code>This</code> and the following arguments. Used typically in\nmethods or <code><a href=\"refW.html#with\">with</a></code> bodies. <code>(:\n..)</code> is equivalent to <code>(; This ..)</code>. See also <code><a\nhref=\"ref_.html#;\">;</a></code>, <code><a href=\"ref_.html#=:\">=:</a></code> and\n<code><a href=\"ref_.html#::\">::</a></code>.\n\n<pre>\n: (put 'X 'a 1)\n-> 1\n: (with 'X (: a))\n-> 1\n</pre></dd>\n\n<dt><a id=\"::\"><code>(:: sym [sym1|cnt .. sym2]) -> var</code></a></dt>\n<dd>Fetches a property for a property key <code>sym</code> or <code>sym2</code>\nfrom a symbol. That symbol is <code>This</code> (if no other arguments are\ngiven), or a symbol found by applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to <code>This</code> and the\nfollowing arguments. The property (the cons pair, not just its value) is\nreturned, suitable for direct (destructive) manipulations with functions\nexpecting a <code>var</code> argument. Used typically in methods or <code><a\nhref=\"refW.html#with\">with</a></code> bodies. See also <code><a\nhref=\"ref_.html#=:\">=:</a></code>, <code><a\nhref=\"refP.html#prop\">prop</a></code> and <code><a\nhref=\"ref_.html#:\">:</a></code>.\n\n<pre>\n: (with 'X (=: cnt 0) (inc (:: cnt)) (: cnt))\n-> 1\n</pre></dd>\n\n<dt><a id=\";\"><code>(; 'sym1|lst [sym2|cnt ..]) -> any</code></a></dt>\n<dd>Fetches a value <code>any</code> from the properties of a symbol, or from a\nlist, by applying the <code><a href=\"refG.html#get\">get</a></code> algorithm to\n<code>sym1|lst</code> and the following arguments. See also <code><a\nhref=\"ref_.html#:\">:</a></code>, <code><a href=\"ref_.html#=:\">=:</a></code> and\n<code><a href=\"ref_.html#::\">::</a></code>.\n\n<pre>\n: (put 'A 'a 1)\n-> 1\n: (put 'A 'b 'B)\n-> B\n: (put 'B 'c 7)\n-> 7\n: (; 'A a)\n-> 1\n: (; 'A b c)\n-> 7\n</pre></dd>\n\n<dt><a id=\"%3C\"><code>(&lt; 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all arguments <code>any</code> are in strictly\nincreasing order. See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (&lt; 3 4)\n-> T\n: (&lt; 'a 'b 'c)\n-> T\n: (&lt; 999 'a)\n-> T\n</pre></dd>\n\n<dt><a id=\"%3C=\"><code>(&lt;= 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all arguments <code>any</code> are in strictly\nnon-decreasing order. See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (&lt;= 3 3)\n-> T\n: (&lt;= 1 2 3)\n-> T\n: (&lt;= \"abc\" \"abc\" \"def\")\n-> T\n</pre></dd>\n\n<dt><a id=\"%3C%3E\"><code>(&lt;&gt; 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when not all <code>any</code> arguments are equal\n(structure equality). <code>(&lt;&gt; 'any ..)</code> is equivalent to\n<code>(not (= 'any ..))</code>. See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (&lt;&gt; 'a 'b)\n-> T\n: (&lt;&gt; 'a 'b 'b)\n-> T\n: (&lt;&gt; 'a 'a 'a)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"=\"><code>(= 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all <code>any</code> arguments are equal\n(structure equality). See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (= 6 (* 1 2 3))\n-> T\n: (= \"a\" \"a\")\n-> T\n: (== \"a\" \"a\")\n-> T\n: (= (1 (2) 3) (1 (2) 3))\n-> T\n</pre></dd>\n\n<dt><a id=\"=0\"><code>(=0 'any) -> 0 | NIL</code></a></dt>\n<dd>Returns <code>0</code> when <code>any</code> is a number with value zero.\nSee also <code><a href=\"refN.html#n0\">n0</a></code>, <code><a\nhref=\"refL.html#lt0\">lt0</a></code>, <code><a\nhref=\"refL.html#le0\">le0</a></code>, <code><a\nhref=\"refG.html#ge0\">ge0</a></code>, <code><a\nhref=\"refG.html#gt0\">gt0</a></code> and <code><a\nhref=\"ref_.html#=1\">=1</a></code>.\n\n<pre>\n: (=0 (- 6 3 2 1))\n-> 0\n: (=0 'a)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"=1\"><code>(=1 'any) -> 1 | NIL</code></a></dt>\n<dd>Returns <code>1</code> when <code>any</code> is a number with value one.\nSee also <code><a href=\"ref_.html#=0\">=0</a></code>.\n\n<pre>\n: (=1 (- 6 3 2))\n-> 1\n: (=1 'a)\n-> NIL\n</pre></dd>\n\n<dt><a id=\"=:\"><code>(=: sym|0 [sym1|cnt ..] 'any) -> any</code></a></dt>\n<dd>Stores a new value <code>any</code> for a property key (or in the symbol\nvalue for zero) in a symbol, or in a list. That symbol is <code>This</code> (if\nno other arguments are given), or a symbol found by applying the <code><a\nhref=\"refG.html#get\">get</a></code> algorithm to <code>This</code> and the\nfollowing arguments. If the final destination is a list, the value is stored in\nthe CDR of an <code><a href=\"refA.html#asoq\">asoq</a></code>ed element (if the\nkey argument is a symbol), or the n'th element (if the key is a number). Used\ntypically in methods or <code><a href=\"refW.html#with\">with</a></code> bodies.\nSee also <code><a href=\"refP.html#put\">put</a></code>, <code><a\nhref=\"ref_.html#:\">:</a></code> and <code><a href=\"ref_.html#::\">::</a></code>.\n\n<pre>\n: (with 'X (=: a 1) (=: b 2))\n-> 2\n: (get 'X 'a)\n-> 1\n: (get 'X 'b)\n-> 2\n</pre></dd>\n\n<dt><a id=\"==\"><code>(== 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all <code>any</code> arguments are the same\n(pointer equality). See also <code><a href=\"refN.html#n==\">n==</a></code> and <a\nhref=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (== 'a 'a)\n-> T\n: (== 'NIL NIL (val NIL) (car NIL) (cdr NIL))\n-> T\n: (== (1 2 3) (1 2 3))\n-> NIL\n</pre></dd>\n\n<dt><a id=\"====\"><code>(====) -> NIL</code></a></dt>\n<dd>Close the current transient scope by clearing the transient index. All\ntransient symbols become hidden and inaccessible by the reader.\nSee also <code><a href=\"refE.html#extern\">extern</a></code> and <code><a\nhref=\"refI.html#intern\">intern</a></code>.\n\n<pre>\n: (setq S \"abc\")           # Read \"abc\"\n-> \"abc\"\n: (== S \"abc\")             # Read again, get the same symbol\n-> T\n: (====)                   # Close scope\n-> NIL\n: (== S \"abc\")             # Read again, get another symbol\n-> NIL\n</pre></dd>\n\n<dt><a id=\"=T\"><code>(=T 'any) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when <code>any</code> is the symbol <code>T</code>.\n<code>(=T X)</code> is equivalent to <code>(== T X)</code>. See also <a\nhref=\"refN.html#nT\">nT</a>.\n\n<pre>\n: (=T 0)\n-> NIL\n: (=T \"T\")\n-> NIL\n: (=T T)\n-> T\n</pre></dd>\n\n<dt><a id=\"%3E\"><code>(> 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all arguments <code>any</code> are in strictly\ndecreasing order. See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (> 4 3)\n-> T\n: (> 'A 999)\n-> T\n</pre></dd>\n\n<dt><a id=\"%3E=\"><code>(>= 'any ..) -> flg</code></a></dt>\n<dd>Returns <code>T</code> when all arguments <code>any</code> are in strictly\nnon-increasing order. See also <a href=\"ref.html#cmp\">Comparing</a>.\n\n<pre>\n: (>= 'A 999)\n-> T\n: (>= 3 2 2 1)\n-> T\n</pre></dd>\n\n<dt><a id=\"%3E%3E\"><code>(&gt;&gt; 'cnt 'num) -> num</code></a></dt>\n<dd>Shifts right the <code>num</code> argument by <code>cnt</code>\nbit-positions. If <code>cnt</code> is negative, a corresponding left shift is\nperformed. See also <code><a href=\"refR.html#rev\">rev</a></code>.\n\n<pre>\n: (>> 1 8)\n-> 4\n: (>> 3 16)\n-> 2\n: (>> -3 16)\n-> 128\n: (>> -1 -16)\n-> -32\n</pre></dd>\n\n<dt><a id=\"?\"><code>(? [sym ..] [pat 'any ..] . lst) -> flg</code></a></dt>\n<dd>Top-level function for interactive <a href=\"ref.html#pilog\">Pilog</a>\nqueries. <code>?</code> is a non-evaluating front-end to the <code><a\nhref=\"refQ.html#query\">query</a></code> function. It displays each result, waits\nfor console input, and terminates when ESC is pressed. If a preceding list of\n(non-pattern-) symbols is given, they will be taken as rules to be traced by\n<code><a href=\"refP.html#prove\">prove</a></code>. The list of variable/value\npairs is passed to <code><a href=\"refG.html#goal\">goal</a></code> for an initial\nPilog environment. See also <code><a href=\"refP.html#pilog\">pilog</a></code> and\n<code><a href=\"refS.html#solve\">solve</a></code>.\n\n<pre>\n: (? (append (a b c) (d e f) @X))\n @X=(a b c d e f)\n-> NIL\n\n: (? (append @X @Y (a b c)))\n @X=NIL @Y=(a b c)\n @X=(a) @Y=(b c)\n @X=(a b) @Y=(c)\n @X=(a b c) @Y=NIL\n-> NIL\n\n: (? (append @X @Y (a b c)))\n @X=NIL @Y=(a b c)                     # ESC was pressed\n-> NIL\n\n: (? append (append @X @Y (a b c)))    # Trace 'append'\n1 (append NIL (a b c) (a b c))\n @X=NIL @Y=(a b c)\n2 (append (a . @X) @Y (a b c))\n1 (append NIL (b c) (b c))\n @X=(a) @Y=(b c).                      # Stopped\n-> NIL\n</pre></dd>\n\n<dt><a id=\"@\"><code>@</code></a></dt>\n<dd>Holds the result of the last top level expression in the current\nread-eval-print loop, or the result of the conditional expression during the\nevaluation of flow functions (see <code><a href=\"ref.html#atres\">@\nResult</a></code>). When <code>@</code> is used as a formal parameter in <a\nhref=\"ref.html#lambda\">lambda expressions</a>, it denotes a variable number of\nevaluated arguments.\n</dd>\n\n<dt><a id=\"@@\"><code>@@</code></a></dt>\n<dd>Holds the result of the second last top level expression in the current\nread-eval-print loop (see <code><a href=\"ref.html#atres\">@ Result</a></code>).\nSome functions store a secondary return value in <code>@@</code>.\n</dd>\n\n<dt><a id=\"@@@\"><code>@@@</code></a></dt>\n<dd>Holds the result of the third last top level expression in the current\nread-eval-print loop (see <code><a href=\"ref.html#atres\">@ Result</a></code>).\n</dd>\n\n<dt><a id=\"%5E\"><code>^</code></a></dt>\n<dd>Holds the currently executed expression during a breakpoint or an error. See\nalso <code><a href=\"refD.html#debug\">debug</a></code>, <code><a\nhref=\"ref_.html#!\">!</a></code>, <code><a href=\"refE.html#e\">e</a></code> and\n<code><a href=\"refD.html#*Dbg\">*Dbg</a></code>.\n\n<pre>\n: (* (+ 3 4) (/ 7 0))\n!? (/ 7 0)\nDiv/0\n? ^\n-> (/ 7 0)\n</pre></dd>\n\n<dt><a id=\"%7C\"><code>(| 'num ..) -> num</code></a></dt>\n<dd>Returns the bitwise <code>OR</code> of all <code>num</code> arguments. When\none of the arguments evaluates to <code>NIL</code>, it is returned immediately.\nSee also <code><a href=\"refX.html#%7C\">x|</a></code>, <code><a\nhref=\"ref_.html#&\">&</a></code> and <code><a\nhref=\"refB.html#bit?\">bit?</a></code>.\n\n<pre>\n: (| 1 2)\n-> 3\n: (| 1 2 4 8)\n-> 15\n</pre></dd>\n\n</dl>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/search",
    "content": "Search criteria\n   Numbers\n      3\n      (3 . 4)\n   Strings\n      \"abc\"\n      (\"a\" . \"z\")\n   Objects\n      {2}\n   Symbols\n      abc\n      (a . z)\n\nRelation types\n   Number, Date, Time\n      (+Key +Number)\n         7 {2}\n\n      (+Ref +Number)\n         (7 . {2}) {2}\n\n   Keywords\n      (+Key +String)\n         \"Regen Axer\" {2}\n\n      (+Ref +String)\n         (\"Regen Axer\" . {2}) {2}\n\n   Phone numbers\n      (+Fold +Ref +String)\n         (\"regenaxer\" . {2}) {2}\n\n   E-Mail addresses\n      (+Fold +Idx +String)\n         (\"axer\" {2}) {2}\n         (\"egenaxer\" {2}) {2}\n         (\"enaxer\" {2}) {2}\n         (\"genaxer\" {2}) {2}\n         (\"naxer\" {2}) {2}\n         (\"regenaxer\" . {2}) {2}\n         (\"xer\" {2}) {2}\n\n   Personal names\n      (+Sn +IdxFold +String)\n         (\"RSNSR\" {2} . T) {2}\n         (\"Regen Axer\" . {2}) {2}\n         (\"axer\" {2}) {2}\n         (\"egen\" {2}) {2}\n         (\"gen\" {2}) {2}\n         (\"regenaxer\" {2}) {2}\n         (\"xer\" {2}) {2}\n\n   Item names\n      (+IdxFold +String)\n         (\"Regen Axer\" . {2}) {2}\n         (\"axer\" {2}) {2}\n         (\"egen\" {2}) {2}\n         (\"gen\" {2}) {2}\n         (\"regenaxer\" {2}) {2}\n         (\"xer\" {2}) {2}\n\n      (+List +Fold +Ref +String)\n         (\"axer\" . {2}) {2}\n         (\"regen\" . {2}) {2}\n\n   Identifiers\n      (+Idx +String)\n         (\"Axer\" {2}) {2}\n         (\"Regen Axer\" . {2}) {2}\n         (\"egen\" {2}) {2}\n         (\"gen\" {2}) {2}\n         (\"xer\" {2}) {2}\n\n   GIS coordinates\n      (+UB +Aux +Ref +Number)\n         (56919522950766600 . {2}) {2}\n\n   Objects\n      (+Ref +Link)\n         ({7} . {2}) {2}\n"
  },
  {
    "path": "doc/search.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 13dec25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>The 'search' Function</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<h1>The 'search' Function</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>The <a href=\"refS.html#search\">search</a> function allows to search the <a\nhref=\"ref.html#dbase\">database</a> for a combination of search criteria.\n\n<p>It finds all objects - directly from the criteria or after traversing all\nassociations - which fulfill <i>all</i> given search criteria, and returns them\none at a time.\n\n<p><ul>\n<li><a href=\"#examples\">Examples</a>\n<li><a href=\"#syntax\">Syntax</a>\n   <ul>\n   <li><a href=\"#crit\">Search Criteria</a>\n      <ul>\n      <li><a href=\"#num\">Numbers</a>\n      <li><a href=\"#str\">Strings</a>\n      <li><a href=\"#obj\">Objects</a>\n      </ul>\n   <li><a href=\"#spec\">Relation Specifications</a>\n   </ul>\n<li><a href=\"#custom\">Custom Generators and Filters</a>\n   <ul>\n   <li><a href=\"#relQs\">Multiple Indexes</a>\n   </ul>\n<li><a href=\"#extract\">Extraction Function</a>\n<li><a href=\"#sort\">Sorting</a>\n</ul>\n\n\n<p><hr>\n<h2><a id=\"examples\">Examples</a></h2>\n\n<p>The examples in this document will use the demo application in \"app/*.l\" (in\n<a href=\"https://software-lab.de/demoApp.tgz\">demoApp.tgz</a>).\n\n<p>To get an interactive prompt, start it as:\n\n<pre>\n$ pil app/main.l -main +\n:\n</pre>\n\n<p>As ever, you can terminate the interpreter by hitting <code>Ctrl-D</code>.\n\n\n<p><hr>\n<h2><a id=\"syntax\">Syntax</a></h2>\n\n<p><code>search</code> is called in two different forms.\n\n<p>The first form initializes a query. It takes two or more arguments, and\nreturns a query structure (a list).\n\n<p>The second form can then be called repeatedly with that structure, and will\nsubsequently return the next resulting object, or <code>NIL</code> if no more\nresults can be found.\n\n<p>To start a new query, <code>search</code> is called with an arbitrary number\nof argument pairs, each consisting of a search criterion and a list of relation\nspecifications, and an optional extraction function which filters and possibly\nmodifies the results.\n\n<p>For example, to find the item with the number 2:\n\n<pre>\nap: (search 2 '((nr +Item)))\n-> (NIL ...\n</pre>\n\n<p>The first argument <code>2</code> is a <i>search criterion</i> (the key to\nlook for), and <code>((nr +Item))</code> is a list with a single <i>relation\nspecification</i> (the <code>nr</code> index of the <code>+Item</code> class).\n\n<p>The returned query structure is abbreviated here, because it is big and not\nrelevant. It can now be used to fetch the result:\n\n<pre>\nap: (search @)\n-> {B2}\nap: (show @)\n{B2} (+Item)\n   nr 2\n   pr 1250\n   inv 100\n   sup {C2}\n   nm \"Spare Part\"\n-> {B2}\n</pre>\n\n<p>There are no further results, because <code>nr</code> is a unique key:\n\n<pre>\nap: (search @@@)  # '@@@' refers to the third-last REPL result, the query\n-> NIL\n</pre>\n\n\n<h3><a id=\"crit\">Search Criteria</a></h3>\n\n<p>Each criterion is an attribute of a database object (like name, e-mail,\naddress etc.), or some given database object. It may be used to find objects\ndirectly, or as a starting point for a recursive search for other objects\nreachable by this object.\n\n<p>For every search criterion which is <code>NIL</code>, no search is performed,\nand the following relation specification is ignored. If, however, <i>all</i>\nsearch criteria are <code>NIL</code>, a full search over the last relation\nspecification is forced.\n\n\n<h4><a id=\"num\">Numbers</a></h4>\n\n<p>If the search criterion is numeric (including derived types like date or\ntime), it can be atomic for an exact search, or a cons pair for searching a\nrange of numbers.\n\n<p>Extending the above example, we may search for all items with a number\nbetween 2 and (including) 6:\n\n<pre>\nap: (search (2 . 6) '((nr +Item)))\n-> (NIL ...\n</pre>\n\n<p>We may use a <a href=\"refF.html#for\">for</a> loop to retrieve all results:\n\n<pre>\nap: (for\n   (Q\n      (search (2 . 6) '((nr +Item)))\n      (search Q) )\n   (printsp @) )\n{B2} {B3} {B4} {B5} {B6}\n</pre>\n\n\n<h4><a id=\"str\">Strings</a></h4>\n\n<p>If the search criterion is a string (transient symbol) or an internal symbol,\nor a cons pair of those, the exact behavior depends on the relation type. It\nincludes all cases where it matches the heads of the result attributes (string\nprefixes), but may also match substrings and/or tolerant (<a\nhref=\"refF.html#fold\">fold</a>ed or soundex-encoded) searches.\n\n<pre>\nap: (for\n   (Q\n      (search \"Api\" '((em +CuSu)))\n      (search Q) )\n   (println (; @ em)) )\n\"info@api.tld\"\n</pre>\n\n<pre>\nap: (for\n   (Q\n      (search \"part\" '((nm +Item)))\n      (search Q) )\n   (with @\n      (println (: nr) (: nm)) ) )\n1 \"Main Part\"\n2 \"Spare Part\"\n</pre>\n\n<p>Or, combined with a number range search:\n\n<pre>\nap: (for\n   (Q\n      (search\n         (2 . 6) '((nr +Item))\n         \"part\" '((nm +Item)) )\n      (search Q) )\n   (with @\n      (println (: nr) (: nm)) ) )\n2 \"Spare Part\"\n</pre>\n\n\n<h4><a id=\"obj\">Objects</a></h4>\n\n<p>A database object can also be used as a search criterion. A cons pair (i.e. a\nrange) of objects makes no sense, because objects by themselves are not ordered.\n\n<p>Searching for all items from a given supplier:\n\n<pre>\nap: (for\n   (Q\n      (search '{C1} '((sup +Item)))\n      (search Q) )\n   (printsp @) )\n{B1} {B3} {B5}\n</pre>\n\n<p>or for all positions in a given order:\n\n<pre>\nap: (for\n   (Q\n      (search '{B7} '((ord . pos)))\n      (search Q) )\n   (printsp @) )\n{A1} {A2} {A4} {A3} ...\n</pre>\n\n\n<h3><a id=\"spec\"></a>Relation Specifications</h3>\n\n<p>Every second argument to <code>search</code> is a list of relation\nspecifications. In typical use cases, a relation specification is either\n\n<ul>\n<li>a list <code>(var cls [hook])</code> for an index relation, or\n<li> a cons pair <code>(sym . sym)</code> for a <code><a href=\"refJ.html#+Joint\">+Joint</a></code> relation\n</ul>\n\n<p>For general cases, the <i>first</i> specification in the list may be replaced\nby two custom functions: A generator function and a filter function. This allows\nto start the search from arbitrary resources like remote databases or\ncoroutines.\n\n<p>If a specification is <code>(var cls)</code> but <code>var</code> is not an\nindex of <code>cls</code>, a brute force search through the objects in the\ndatabase file of <code>cls</code> will be performed. This should only be done\nfor small files with ideally all objects of type <code>cls</code>.\n\n<p>The rest of the list contains associations (which are also relation\nspecifications) to recursively search through associated objects. They are\ntypically <code>(<a href=\"refJ.html#+Joint\">+Joint</a>)</code>, <code>(<a\nhref=\"refL.html#+List\">+List</a> <a href=\"refJ.html#+Joint\">+Joint</a>)</code>,\nor <code>(<a href=\"refR.html#+Ref\">+Ref</a> <a\nhref=\"refL.html#+Link\">+Link</a>)</code> relations.\n\n<p>Look for example at the <code>choOrd</code> (\"choose Order\") function in the\ndemo application. You can access it directly in the REPL with <code>(vi\n'choOrd)</code>. The <code>search</code> call is\n\n<pre>\n(search\n   *OrdCus '((nm +CuSu) (cus +Ord))\n   *OrdOrt '((ort +CuSu) (cus +Ord))\n   *OrdItem '((nm +Item) (itm +Pos) (pos . ord))\n   *OrdSup '((nm +CuSu) (sup +Item) (itm +Pos) (pos . ord))\n   (and *OrdNr (cons @)) '((nr +Ord))\n   (and *OrdDat (cons @)) '((dat +Ord)) )\n</pre>\n\n<p>The global variables <code>*OrdCus</code> through <code>*OrdDat</code> hold\nthe search criteria from the search fields in the dialog GUI.\n\n<p>The line with the longest chain of associations is:\n\n<pre>\n   *OrdSup '((nm +CuSu) (sup +Item) (itm +Pos) (pos . ord))\n</pre>\n\n<p>This means:\n\n<ol>\n<li>Search suppliers by name\n<li>For each matching supplier, go through his items\n<li>For each item, find order positions where it is referred\n<li>For each position, return the order where it is in\n</ol>\n\n<p>Testing this line stand-alone, searching orders only by supplier name:\n\n<pre>\nap: (for\n   (Q\n      (search\n         \"Seven Oaks\"\n         (quote\n            (nm +CuSu)\n            (sup +Item)\n            (itm +Pos)\n            (pos . ord) ) )\n      (search Q) )\n   (printsp @) )\n{B7}\n</pre>\n\n<h2><a id=\"custom\"></a>Custom Generators and Filters</h2>\n\n<p>If the list of relation specifications does not start with an index relation\n<code>(var cls)</code> or a joint relation <code>(sym . sym)</code>, but instead\nwith a function like <code>((X) (foo))</code>, the first <i>two</i> elements of\nthe list are taken as generator and filter functions, respectively.\n\n<p>We could rewrite the last example in a slightly simplified form, but with\ncustom functions:\n\n<pre>\nap: (for\n   (Q\n      (search\n         \"Seven Oaks\"\n         (quote\n            ((X)  # Generator function\n               (iter> (meta '(+CuSu) 'nm)\n                  \"Seven Oaks\"\n                  '(nm +CuSu) ) )\n            ((This X)  # Filter function\n               (pre? \"Seven Oaks\" (: nm)) )\n            (sup +Item)\n            (itm +Pos)\n            (pos . ord) ) )\n      (search Q) )\n   (printsp @) )\n{B7}\n</pre>\n\n<p>The <code>iter&gt;</code> method implements the mechanisms to produce the\ninternal query structures for individual relations. There is a convenience\nfunction <code>relQ</code> for this. It can be used to simplify such standard\ngenerators. Instead of:\n\n<pre>\n   ((X)  # Generator function\n      (iter> (meta '(+CuSu) 'nm)\n         \"Seven Oaks\"\n         '(nm +CuSu) ) )\n</pre>\n\n<p>we can write:\n\n<pre>\n   ((X)  # Generator function\n      (relQ \"Seven Oaks\" '(nm +CuSu)) )\n</pre>\n\n\n<h3><a id=\"relQs\">Multiple Indexes</a></h3>\n\n<p>While <code>relQ</code> is normally not used directly by application\nprograms, because its functionality is provided by the standard relation\nspecification syntax, there is a function <code>relQs</code> which is indeed\nuseful.\n\n<p><code>relQs</code> produces proper generator and filter functions which can\nsearch <i>multiple</i> indexes for a singe search criterion.\n\n<p>The general syntax is:\n\n<pre>\n   (relQs '((var1 +Cls1) (var2 +Cls2) ..) (sym1 ..) (sym2 ..)..)\n</pre>\n\n<p>to search first the index <code>(var1 +Cls1)</code>, then <code>(var2\n+Cls2)</code> etc., and then follow the optional associations <code>(sym1\n..)</code>, <code>(sym2 ..)</code> etc.\n\n<p>A typical use case is searching for a telephone number in both the landline\nand mobile attributes. You find an example in the <code>choCuSu</code> (\"choose\nCustomer/Supplier\") function in the demo application, in the line:\n\n<pre>\n   *CuSuTel (relQs '((tel +CuSu) (mob +CuSu)))\n</pre>\n\n<p>Note that <code>(relQs ..)</code> must <i>not</i> be quoted, because it needs\nto be evaluate to produce the right functions and query structure.\n\n\n<h2><a id=\"extract\"></a>Extraction Function</h2>\n\n<p>Sometimes it is necessary to to do further checks on a search result, which\nmay not be covered by the standard matching of combined search criteria.\n\n<p>An example can be found in the <a\nhref=\"https://software-lab.de/tut.tgz\">tut.tgz</a> tutorial in the file\n\"db/family.l\", in the <code>contemporaries</code> report. It searches for people\nliving roughly at the same time as the given person:\n\n<pre>\n   '(let @Fin\n      (or\n         (: home obj fin)\n         (+ (: home obj dat) 36525) )\n      (search\n         (cons (- (: home obj dat) 36525) @Fin) '((dat +Person))\n         (curry (@Fin) (Obj)\n            (and\n               (n== Obj (: home obj))\n               (>= (; Obj fin) (: home obj dat))\n               (>= @Fin (; Obj dat))\n               Obj ) ) ) )\n</pre>\n\n<p><code>@Fin</code> is set to either the date when the given person died, or to\nthe birth date plus ten years if not known. Then all persons born in the range\nof ten years before the given person and <code>@Fin</code> are searched.\n\n<p><a href=\"refC.html#curry\">curry</a> builds the filter function, taking an\nobject and doing range checks to see if that person died after the given person\nwas born, <i>and</i> that he or she was born before <code>@Fin</code>.\n\n<p>If those conditions are not met, the function returns <code>NIL</code>, and\n<code>search</code> continues to search for the next result.\n\n<p>The extraction function may also - instead of returning the object or\n<code>NIL</code>, return some other value as appropriate for the application.\n\n\n<h2><a id=\"sort\"></a>Sorting</h2>\n\n<p>In general, the values returned by <code>search</code> are not sorted when\nmultiple search criteria are given. This is because the indexes are iterated\nover in an unpredictable order.\n\n<p>If, however, only a single search criterion is given, or only one of the\nsearch criteria is non-<code>NIL</code>, then the results will be returned in\nsorted order according to the given index.\n\n<p>If <i>all</i> search criteria are <code>NIL</code>, and thus the last\nrelation specification is used (see above under <a href=\"#crit\">Search\nCriteria</a>), then the results will turn up in increasing order.\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/select.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 30may25 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>The 'select' Predicate</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<h1>The 'select' Predicate</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>Note: 'select' and related database Pilog predicates are deprecated since\nversion 25.5.30, and moved to a separate \"@lib/select.l\" file! New applications\nshould use <a href=\"refS.html#search\">search</a> instead (see <a\nhref=\"search.html\">search.html</a>).\n\n<p>The <a href=\"ref.html#pilog\">Pilog</a> <a\nhref=\"refS.html#select/3\">select/3</a> predicate is rather complex, and quite\ndifferent from other predicates. This document tries to explain it in detail,\nand shows some typical use cases.\n\n<p><ul>\n<li><a href=\"#syntax\">Syntax</a>\n<li><a href=\"#example1\">First Example</a>\n<li><a href=\"#univar\">Unification Variables</a>\n<li><a href=\"#gencl\">Generator Clauses</a>\n   <ul>\n   <li><a href=\"#db\">B-Tree Stepping</a>\n   <li><a href=\"#interaction\">Interaction of Generator Clauses</a>\n   <li><a href=\"#combined\">Combined Indexes</a>\n   <li><a href=\"#associations\">Indirect Object Associations</a>\n   <li><a href=\"#nested\">Nested Pilog Queries</a>\n   </ul>\n<li><a href=\"#filcl\">Filter Clauses</a>\n   <ul>\n   <li><a href=\"#little\">A Little Report</a>\n   <li><a href=\"#filpr\">Filter Predicates</a>\n   </ul>\n</ul>\n\n\n<p><hr>\n<h2><a id=\"syntax\">Syntax</a></h2>\n\n<p><code>select</code> takes at least three arguments:\n\n<p><ul>\n<li>A list of unification variables,\n<li>a list of generator clauses\n<li>and an arbitrary number of filter clauses\n</ul>\n\n<p>We will describe these arguments in the following, but demonstrate them first\non a concrete example.\n\n\n<p><hr>\n<h2><a id=\"example1\">First Example</a></h2>\n\n<p>The examples in this document will use the demo application in \"app/*.l\" (in\n<a href=\"http://software-lab.de/demoApp.tgz\">demoApp.tgz</a>). To get an\ninteractive prompt, start it as\n\n<pre>\n$ pil app/main.l -ap~main +\n:\n</pre>\n\n<p>As ever, you can terminate the interpreter by hitting <code>Ctrl-D</code>.\n\n<p>For a first, typical example, let's write a complete call to <a\nhref=\"refS.html#solve\">solve</a> that returns a list of articles with numbers\nbetween 1 and 4, which contain \"Part\" in their description, and have a price\nless than 100:\n\n<pre>\n(let (Nr (1 . 4)  Nm \"Part\"  Pr '(NIL . 100.00))\n   (solve\n      (quote\n         @Nr Nr\n         @Nm Nm\n         @Pr Pr\n         (select (@Item)\n            ((nr +Item @Nr) (nm +Item @Nm) (pr +Item @Pr))\n               (range @Nr @Item nr)\n               (part @Nm @Item nm)\n               (range @Pr @Item pr) ) )\n      @Item ) )\n</pre>\n\n<p>This expression will return, with the default database setup of \"app/init.l\",\na list of exactly one item <code>({B2})</code>, the item with the number 2.\n\n<p>The <code><a href=\"refL.html#let\">let</a></code> statement assigns values to\nthe search parameters for number <code>Nr</code>, description <code>Nm</code>\nand price <code>Pr</code>. The Pilog query (the first argument to\n<code>solve</code>) passes these values to the Pilog variables <code>@Nr</code>,\n<code>@Nm</code> and <code>@Pr</code>. Ranges of values are always specified by\ncons pairs, so <code>(1 . 4)</code> includes the numbers 1 through 4, while\n<code>(NIL . 100.00)</code> includes prices from minus infinite up to one\nhundred.\n\n<p>The list of unification variables is\n\n<pre>\n   <code>(@Item)</code>\n</pre>\n\n<p>The list of generator clauses is\n\n<pre>\n      ((nr +Item @Nr) (nm +Item @Nm) (pr +Item @Pr))\n</pre>\n\n<p>The filter clauses are\n\n<pre>\n         (range @Nr @Item nr)\n         (part @Nm @Item nm)\n         (range @Pr @Item pr)\n</pre>\n\n\n<p><hr>\n<h2><a id=\"univar\">Unification Variables</a></h2>\n\n<p>As stated above, the first argument to <code>select</code> should be a list\nof variables. These variables communicate values (via <code><a\nhref=\"refU.html#unify\">unify</a></code>) from the <code>select</code>\nenvironment to the enclosing Pilog environment.\n\n<p>The first variable in this list (<code>@Item</code> in the above example) is\nmandatory, it takes the direct return value of <code>select</code>. Additional\noptional variables may be unified by clauses in the body of <code>select</code>,\nand return further values.\n\n\n<p><hr>\n<h2><a id=\"gencl\">Generator Clauses</a></h2>\n\n<p>The second argument to <code>select</code> is a list of \"generator clauses\".\nEach of these clauses specifies some kind of database B-Tree <code><a\nhref=\"refI.html#+index\">+index</a></code>, to be traversed by\n<code>select</code>, step by step, where each step returns a suitable single\ndatabase object. In the simplest case, they consist like here just of a relation\nname (e.g. <code>nr</code>), a class (e.g. <code>+Item</code>), an optional hook\nspecifier (not in this example), and a pattern (values or ranges, e.g. (1 . 4)\nor \"Part\").\n\n<p>The generator clauses are the core of 'select'. In some way, they behave\nanalog to <code><a href=\"refO.html#or/2\">or/2</a></code>, as each of them\ngenerates a sequence of values. However, the generator clauses behave different,\nas they will not generate an exhaustive set of values upon backtracking, one\nafter the other, where the next gets its turn when the previous one is\nexhausted. Instead, all clauses will generate their values quasi-parallel, with\na built-in optimization so that successful clauses will be called with a higher\nprobability. \"Successful\" means that the returned values successfully pass\n<code>select</code>'s filter clauses.\n\n\n<p><hr>\n<h3><a id=\"db\">B-Tree Stepping</a></h3>\n\n<p>In its basic form, a generator clause is equivalent to the <code><a\nhref=\"refD.html#db/3\">db/3</a></code> predicate, stepping through a single\nB-Tree. The clause\n\n<pre>\n(nr +Item @Nr)\n</pre>\n\n<p>generates the same values as would be produced by a stand-alone Pilog clause\n\n<pre>\n(db nr +Item @Nr @Item)\n</pre>\n\n<p>as can be seen in the following two calls:\n\n<pre>\n: (? (db nr +Item (1 . 4) @Item))\n @Item={B1}\n @Item={B2}\n @Item={B3}\n @Item={B4}\n-> NIL\n: (? (select (@Item) ((nr +Item (1 . 4)))))\n @Item={B1}\n @Item={B2}\n @Item={B3}\n @Item={B4}\n-> NIL\n</pre>\n\n\n<p><hr>\n<h3><a id=\"interaction\">Interaction of Generator Clauses</a></h3>\n\n<p><code>select</code> is mostly useful if more than one generator clause is\ninvolved. The tree search parameters of all clauses are meant to form a logical\n<code>AND</code>. Only those objects should be returned, for which all search\nparameters (and the associated filter clauses) are valid. As soon as one of the\nclauses finishes stepping through its database (sub)tree, the whole call to\n<code>select</code> will terminate, because further values returned from other\ngenerator clauses cannot be part of the result set.\n\n<p>Therefore, <code>select</code> would find all results most quickly if it\ncould simply call only the generator clause with the smallest (sub)tree.\nUnfortunately, this is usually not known in advance. It depends on the\ndistribution of the data in the database, and on the search parameters to each\ngenerator clause.\n\n<p>Instead, <code>select</code> single-steps each generator clause in turn, in a\nround-robin scheme, applies the filter clauses to each generated object, and\nre-arranges the order of generator clauses so that the more successful clauses\nwill be preferred. This process usually converges quickly and efficiently.\n\n\n<p><hr>\n<h3><a id=\"combined\">Combined Indexes</a></h3>\n\n<p>A generator clause can also combine several (similar) indexes into a single\none. Then the clause is written actually as a list of clauses.\n\n<p>For example, a generator clause to search for a customer by phone number is\n\n<pre>\n(tel +CuSu @Tel)\n</pre>\n\nIf we want to search for a customer without knowing whether a given number is a\nnormal or a mobile phone number, then a combined generator clause searching both\nindex trees could look like\n\n<pre>\n((tel +CuSu @Tel  mob +CuSu @Tel))\n</pre>\n\n<p>The generator will first traverse all matching entries in the <code><a\nhref=\"refR.html#+Ref\">+Ref</a></code> tree of the <code>tel</code> relation, and\nthen, when these are exhausted, all matching entries in the <code>mob</code>\nindex tree.\n\n\n<p><hr>\n<h3><a id=\"associations\">Indirect Object Associations</a></h3>\n\n<p>But generator clauses are not limited to the direct B-Tree interaction of\n<code><a href=\"refD.html#db/3\">db/3</a></code>. They can also traverse trees of\nassociated objects, and then follow <code><a\nhref=\"refL.html#+Link\">+Link</a></code> / <code><a\nhref=\"refJ.html#+Joint\">+Joint</a></code> relations, or tree relations like\n<code><a href=\"refR.html#+Ref\">+Ref</a></code> to arrive at database objects\nwith a type suitable for return values from <code>select</code>.\n\n<p>To locate appropriate objects from associated objects, the generator clause\ncan contain - in addition to the standard relation/class/pattern specification\n(see <a href=\"#gencl\">Generator Clauses</a> above) - an arbitrary number of\nassociation specifiers. Each association specifier can be\n\n<ol>\n<li>A symbol. Then a <code><a href=\"refL.html#+Link\">+Link</a></code> or\n<code><a href=\"refJ.html#+Joint\">+Joint</a></code> will be followed, or a\n<code><a href=\"refL.html#+List\">+List</a></code> of those will be traversed to\nlocate appropriate objects.\n\n<li>A list. Then this list should hold a relation and a class (and an optional\nhook) which specify some B-Tree <code><a\nhref=\"refI.html#+index\">+index</a></code> to be traversed to locate appropriate\nobjects.\n\n</ol>\n\nIn this way, a single generator clause can cause the traversal of a tree of\nobject relations to generate the desired sequence of objects.\n\nAn example can be found in \"app/gui.l\", in the 'choOrd' function which\nimplements the search dialog for <code>+Ord</code> (order) objects. Orders can\nbe searched for order number and date, customer name and city, item description\nand supplier name:\n\n<pre>\n(select (@@)\n   ((nr +Ord @Nr) (dat +Ord @Dat)\n      (nm +CuSu @Cus (cus +Ord))\n      (ort +CuSu @Ort (cus +Ord))\n      (nm +Item @Item (itm +Pos) ord)\n      (nm +CuSu @Sup (sup +Item) (itm +Pos) ord) )\n</pre>\n\n<p>While <code>(nr +Ord @Nr)</code> and <code>(dat +Ord @Dat)</code> are direct\nindex traversals, <code>(nm +CuSu @Cus (cus +Ord))</code> iterates the\n<code>nm</code> (name) index of customers/suppliers <code>+CuSu</code>, and then\nfollows the <code><a href=\"refR.html#+Ref\">+Ref</a></code> <code><a\nhref=\"refL.html#+Link\">+Link</a></code> of the <code>cus</code> relation to the\norders. The same applies to the search for city names via <code>ort</code>.\n\n<p>The most complex example is <code>(nm +CuSu @Sup (sup +Item) (itm +Pos)\nord)</code>, where the supplier name is searched in the <code>nm</code> tree of\n<code>+CuSu</code>, then the <code><a href=\"refR.html#+Ref\">+Ref</a></code> tree\n<code>(sup +Item)</code> tree is followed to locate items of that supplier, then\nall positions for those items are found using <code>(itm +Pos)</code>, and\nfinally the <code>ord</code> <code><a href=\"refJ.html#+Joint\">+Joint</a></code>\nis followed to arrive at the order object(s).\n\n\n<p><hr>\n<h3><a id=\"nested\">Nested Pilog Queries</a></h3>\n\n<p>In the most general case, a generator clause can be an arbitrary Pilog query.\nOften this is a query to a database on a remote machine, using the <code><a\nhref=\"refR.html#remote/2\">remote/2</a></code> predicate, or some other resource\nnot accessible via database indexes, like iterating a <code><a\nhref=\"refL.html#+List\">+List</a></code> of <code><a\nhref=\"refL.html#+Link\">+Link</a></code>s or <code><a\nhref=\"refJ.html#+Joint\">+Joint</a></code>s.\n\n<p>Syntactically, such a generator clause is recognized by the fact that its CAR\nis a Pilog variable to denote the return value.\n\n<p>The second argument is a list of Pilog variables to communicate values (via\n<code><a href=\"refU.html#unify\">unify</a></code>) from the surrounding\n<code>select</code> environment.\n\n<p>The third argument is the actual list of clauses for the nested query.\n\n<p>Finally, an arbitrary number of association specifiers may follow, as\ndescribed in the <a href=\"#associations\">Indirect Object Associations</a>\nsection.\n\n<p>We can illustrate this with a somewhat useless (but simple) example, which\nreplaces the standard generators for item number and supplier name\n\n<pre>\n(select (@Item)\n   ((nr +Item @Nr) (nm +CuSu @Sup (sup +Item)))\n   ...\n</pre>\n\n<p>with the equivalent form\n\n<pre>\n(select (@Item)\n   ((@A (@Nr) ((db nr +Item @Nr @A)))\n      (@B (@Sup) ((db nm +CuSu @Sup @B)) (sup +Item)) )\n</pre>\n\n<p>That is, a query with the <code><a href=\"refD.html#db/3\">db/3</a></code> tree\niteration predicate is used to generate appropriate values.\n\n\n<p><hr>\n<h2><a id=\"filcl\">Filter Clauses</a></h2>\n\n<p>The generator clauses produce - independent from each other - lots of\nobjects, which match the patterns of individual generator clauses, but not\nnecessarily the desired result set of the total <code>select</code> call.\nTherefore, the filter clauses are needed to retain the good, and throw away the\nbad objects. In addition, they give feedback to the generator for optimizing its\ntraversal priorities (as described in <a href=\"#gencl\">Generator Clauses</a>).\n\n<p><code>select</code> then collects all objects which passed through the\nfilters into a unique list, to avoid duplicates which would otherwise appear,\nbecause most objects can be found by more than one generator clause.\n\n<p>Technically, the filters are normal Pilog clauses, which just happen to be\nevaluated in the context of <code>select</code>. Arbitrary Pilog predicates can\nbe used, though there exist some predicates (e.g. <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code>, <code><a\nhref=\"refS.html#same/3\">same/3</a></code>, <code><a\nhref=\"refB.html#bool/3\">bool/3</a></code>, <code><a\nhref=\"refR.html#range/3\">range/3</a></code>, <code><a\nhref=\"refH.html#head/3\">head/3</a></code>, <code><a\nhref=\"refF.html#fold/3\">fold/3</a></code>, <code><a\nhref=\"refP.html#part/3\">part/3</a></code> or <code><a\nhref=\"refT.html#tolr/3\">tolr/3</a></code>) especially suited for that task.\n\n\n<p><hr>\n<h3><a id=\"little\">A Little Report</a></h3>\n\n<p>Assume we want to know how many pieces of item #2 were sold in the year 2007.\nThen we must find all <code>+Pos</code> (position) objects referring to that\nitem and at the same time belonging to orders of the year 2007 (see the class\ndefinition for <code>+Pos</code> in \"app/er.l\"). The number of sold pieces is\nthen in the <code>cnt</code> property of the <code>+Pos</code> objects.\n\n<p>As shown in the complete <code>select</code> below, we will hold the item\nnumber in the variable <code>@Nr</code> and the date range for the year in\n<code>@Year</code>.\n\n<p>Now, all positions referred by item #2 can be found by the generator clause\n\n<pre>\n(nr +Item @Nr (itm +Pos))\n</pre>\n\n<p>and all positions sold in 2007 can be found by\n\n<pre>\n(dat +Ord @Year pos)\n</pre>\n\n<p>However, the combination of both generator clauses\n\n<pre>\n(select (@Pos)\n   ((nr +Item @Nr (itm +Pos)) (dat +Ord @Year pos)) )\n</pre>\n\n<p>will probably generate too many results, namely all positions with item #2\n<u>OR</u> from the year 2007. Thus, we need two filter clauses. With them, the\nfull search expression will be:\n\n<pre>\n(?\n   @Nr 2                                                 # Item number\n   @Year (cons (date 2007 1 1) (date 2007 12 31))        # Date range 2007\n   (select (@Pos)\n      ((nr +Item @Nr (itm +Pos)) (dat +Ord @Year pos))   # Generator clauses\n      (same @Nr @Pos itm nr)                             # Filter item number\n      (range @Year @Pos ord dat) ) )                     # Filter order date\n</pre>\n\n<p>For completeness, let's calculate the total count of sold items:\n\n<pre>\n(let Cnt 0     # Counter variable\n   (pilog\n      (quote\n         @Nr 2\n         @Year (cons (date 2007 1 1) (date 2007 12 31))\n         (select (@Pos)\n            ((nr +Item @Nr (itm +Pos)) (dat +Ord @Year pos))\n            (same @Nr @Pos itm nr)\n            (range @Year @Pos ord dat) ) )\n      (inc 'Cnt (get @Pos 'cnt)) )  # Increment total count\n   Cnt )  # Return count\n</pre>\n\n\n<p><hr>\n<h3><a id=\"filpr\">Filter Predicates</a></h3>\n\n<p>As mentioned under <a href=\"#filcl\">Filter Clauses</a>, some predicates\nexists mainly for <code>select</code> filtering.\n\n<p>Some of these predicates are of general use: <code><a\nhref=\"refI.html#isa/2\">isa/2</a></code> can be used to check for a type,\n<code><a href=\"refS.html#same/3\">same/3</a></code> checks for a definite value,\n<code><a href=\"refB.html#bool/3\">bool/3</a></code> looks if the value is\nnon-<code>NIL</code>. These predicates are rather independent of the <code><a\nhref=\"refR.html#+relation\">+relation</a></code> type.\n\n<p><code><a href=\"refR.html#range/3\">range/3</a></code> checks whether a value\nis within a given range. This could be used with any <code><a\nhref=\"refR.html#+relation\">+relation</a></code> type, but typically it will be\nused for numeric (<code><a href=\"refN.html#+Number\">+Number</a></code>) or time\n( <code><a href=\"refD.html#+Date\">+Date</a></code> and <code><a\nhref=\"refT.html#+Time\">+Time</a></code>) relations.\n\n<p>Other predicates make only sense in the context of a certain <code><a\nhref=\"refR.html#+relation\">+relation</a></code> type:\n\n<ul>\n<li><code><a href=\"refH.html#head/3\">head/3</a></code> is mainly intended for\n<code>(<a href=\"refK.html#+Key\">+Key</a> <a\nhref=\"refS.html#+String\">+String</a>)</code> or <code>(<a\nhref=\"refR.html#+Ref\">+Ref</a> <a href=\"refS.html#+String\">+String</a>)</code>\nrelations,\n\n<li><code><a href=\"refF.html#fold/3\">fold/3</a></code> is useful for <code>(<a\nhref=\"refF.html#+Fold\">+Fold</a> <a href=\"refR.html#+Ref\">+Ref</a> <a\nhref=\"refS.html#+String\">+String</a>)</code> relations,\n\n<li><code><a href=\"refP.html#part/3\">part/3</a></code> for <code>(<a\nhref=\"refF.html#+Fold\">+Fold</a> <a href=\"refI.html#+Idx\">+Idx</a> <a\nhref=\"refS.html#+String\">+String</a>)</code> relations, and\n\n<li><code><a href=\"refT.html#tolr/3\">tolr/3</a></code> for <code>(<a\nhref=\"refS.html#+Sn\">+Sn</a> <a href=\"refI.html#+Idx\">+Idx</a> <a\nhref=\"refS.html#+String\">+String</a>)</code> relations.\n\n</ul>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/structures",
    "content": "# 09jul24 Software Lab. Alexander Burger\n\n   ### Primary data types ###\n\n   cnt   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS010\n   big   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxS100\n   sym   xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx1000\n   pair  xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx0000\n\n\n         Bignum\n         |\n         V\n      +-----+-----+\n      | DIG |  |  |\n      +-----+--+--+\n               |\n               V\n            +-----+-----+\n            | DIG |  |  |\n            +-----+--+--+\n                     |\n                     V\n                  +-----+-----+\n                  | DIG | CNT |\n                  +-----+-----+\n\n\n      Pair\n      |\n      V\n      +-----+-----+\n      | CAR | CDR |\n      +-----+-----+\n\n\n            Symbol\n            |\n            V\n      +-----+-----+                                +-----+-----+\n      |  |  | VAL |                                |'cba'|'fed'|\n      +--+--+-----+                                +-----+-----+\n         | tail                                       ^\n         |                                            |\n         V                                            | name\n         +-----+-----+     +-----+-----+     +-----+--+--+\n         |  |  |  ---+---> | KEY |  ---+---> |  |  |  |  |\n         +--+--+-----+     +-----+-----+     +--+--+-----+\n            |                                   |\n            V                                   V\n            +-----+-----+                       +-----+-----+\n            | VAL | KEY |                       | VAL | KEY |\n            +-----+-----+                       +-----+-----+\n\n\n      NIL:  /\n            |\n            V\n      +-----+-----+-----+-----+\n      |'LIN'|  /  |  /  |  /  |\n      +-----+-----+-----+-----+\n\n\n   Symbol tail\n      Internal/Transient\n         0010 Short name\n         0100 Long name\n         0000 Properties\n\n      External\n         1010 Short name\n         1000 Properties\n\n   Name final short\n      Internals, Transients\n         0000.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx0010\n           60      52      44      36      28      20      12       4\n\n      Externals\n         42 bit Object (4 Tera objects)\n         16 bit File (64 K files)\n          2 bit Status\n            Loaded    01........\n            Dirty     10........\n            Deleted   11........\n\n         1+2 Bytes: 1 file, 64K objects                  {177777}\n         1+3 Bytes: 16 files, 1M objects               {O3777777}\n         1+4 Bytes: 256 files, 16M objects           {OO77777777}\n         1+5 Bytes: 256 files, 4G objects         {OO37777777777}\n         1+6 Bytes: 65536 files, 4G objects     {OOOO37777777777}\n         1+8 Bytes: 65536 files, 4T objects  {OOOO77777777777777}\n         (2 + 10 + 8 + 12 + 8 + 20)\n         xx.xxxxxxxxx.xxxxxxx.xxxxxxxxxxx.xxxxxxx.xxxxxxxxxxxxxxxxxxxE010\n           obj       file    obj         file    obj\n                     ^6      ^5      ^4      ^3      ^2\n\n\n   ### Heap ###\n\n      Heaps, Avail\n      |\n      |  +-----------------------+\n      |  |                       |\n      V  |                       V\n      +--+--+-----+-----+-----+-----+-----+---     ---+-----+-----+-----+\n      |  |  |     |           |  /  |     |    ...    |  |  |     |  |  |\n      +-----+-----+-----+-----+-----+-----+---     ---+--+--+-----+--+--+\n                                                         |           |\n                                                         |           +-----> Heaps\n                                                         |\n                                                         +-----> Avail\n\n\n   ### Stack ###\n\n      Saved values:\n\n         ^\n         |\n         +---- LINK\n               val  <-- Link\n\n\n      Bind frame:\n\n                        ^\n               Expr     |\n               LINK ----+\n                @\n         +---> [@]\n         |\n         +---- LINK\n               sym1\n         +---> val1\n         .\n         .\n         +---- LINK\n               symN\n               valN  <-- Bind\n\n\n      VarArgs frame:\n\n            [Bind frame]\n         ^\n         |\n         +---- LINK\n               arg1 <------------+\n         +-------   <-- Next     |\n         |                       |\n         |     LINK -------------+\n         | +-> arg2\n         +-|->   ----------------+\n           |                     |\n           +-- LINK              |\n               arg3 <-- Link     |\n                /   <------------+\n\n\n      Apply args:\n\n         ^\n         |\n         +---- LINK\n               fun  <---+  <-----+\n               zero     |        |\n         +---- cdr      |        |\n         |     car  ----+  <-- E |\n         |                       |\n         |     LINK -------------+\n         | +-> val1 <---+\n         | |   zero     |\n         | |   cdr1 ----|-----+\n         +---> car1 ----+     |\n           |                  |\n           +-- LINK           |\n         +---> valN  <-- Link |\n         |     zero           |\n         |      /             |\n         +---- carN <---------+\n\n\n      I/O frame:\n                        ^\n               put/get  |\n               pid      |\n               fd       |\n               LINK ----+  <-- InFrames, OutFrames, ErrFrames, CtlFrames\n\n\n      Catch frame:\n                        ^\n               [rst]    |\n               [env]    |\n               ...      |\n               co       |\n               fin      |\n               tag      |\n               LINK ----+  <-- Catch\n\n\n      Coroutine:\n\n               [rst]\n               [env]\n               ...\n               [@]\n               lim\n               prg\n               otg\n               org\n         +---- nxt\n         |     tag   <----- Coroutines\n         |\n         |\n         |     [rst]\n         |     [env]\n         |     ...\n         |     [@]\n         |     lim\n         |     prg\n         |     otg\n         |     org\n         |     nxt\n         +---> tag\n\n\n      IPC pipes:\n\n                  +--------------------------+ Mic\n                  |\n                  |  +-----------------+ Tell         <Child>\n                  |  |\n                  |  +-----------------> Hear\n      <Parent>    |  |\n                  |  |\n         Spkr <---+  |\n                  |  |\n                  |  |\n                  |  +-----------------+ Tell\n                  |  |\n                  |  +-----------------> Hear         <Child>\n                  |\n                  +--------------------------+ Mic\n\n\n   ### Database file ###\n\n                  +-------------+-+-------------+-+----+\n      Block 0:    |   Free       0|   Next       0| << |\n                  +-------------+-+-------------+-+----+\n                  0               BLK                  2*Blk+1\n\n\n                  +-------------+-+\n      Free:       |   Link       0|\n                  +-------------+-+\n                  0\n\n\n                  +-------------+-+----\n      ID-Block:   |   Link       1| Data\n                  +-------------+-+----\n                  0              BLK\n\n\n                  +-------------+-+----\n      EXT-Block:  |   Link       n| Data\n                  +-------------+-+----\n                  0              BLK\n\n\n   ### Assumptions ###\n\n   - 8 bit per byte\n   - 64 bit per word\n   - Pointer size is 64 bit\n   - Stack grows downwards\n   - sizeof(float) = 4 bytes\n   - sizeof(double) = 8 bytes\n"
  },
  {
    "path": "doc/tut.html",
    "content": "<!--\n# VIP @lib/vip/html.l\n# 26oct23 Software Lab. Alexander Burger\n-->\n\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<title>PicoLisp Tutorial</title>\n<link rel=\"stylesheet\" href=\"doc.css\" type=\"text/css\">\n</head>\n<body>\n<a href=\"mailto:abu@software-lab.de\">abu@software-lab.de</a>\n\n<h1>A PicoLisp Tutorial</h1>\n\n<p style=\"text-align: right\">(c) Software Lab. Alexander Burger\n\n<p>This document demonstrates some aspects of the PicoLisp system in detail and\nexample. For a general description of the PicoLisp kernel please look at the <a\nhref=\"ref.html\">PicoLisp Reference</a>.\n\n<p>This is <i>not</i> a Lisp tutorial, as it assumes some basic knowledge of\nprogramming, Lisp, and even PicoLisp. Please read these sections before coming\nback here: <a href=\"ref.html#intro\">Introduction</a> and <a\nhref=\"ref.html#vm\">The PicoLisp Machine</a>. This tutorial concentrates on the\nspecificities of PicoLisp, and its differences with other Lisp dialects.\n\n<h3>Now let's start</h3>\n\n<p>If not stated otherwise, all examples assume that PicoLisp was started from a\nglobal installation (see <a href=\"ref.html#inst\">Installation</a>) from the\nshell prompt as\n\n<pre>\n$ pil +\n:\n</pre>\n\n<p>It loads the PicoLisp base system and the debugging environment, and waits\nfor you to enter input lines at the interpreter prompt (<code>:</code>). You can\nterminate the interpreter and return to the shell at any time, by either hitting\nthe <code>Ctrl-D</code> key, or by executing the function <code><a\nhref=\"refB.html#bye\">(bye)</a></code>.\n\n<p>Input editing is done via the <code>readline(3)</code> library. You will want\nto configure it according to your taste via your \"~/.inputrc\" file. Useful value\nfor PicoLisp are\n\n<pre>\nset keyseq-timeout 40\nset blink-matching-paren on\nTAB: menu-complete\nC-y: menu-complete-backward\n</pre>\n\nIn addition to the above, I (preferring vi-style) do also have\n\n<pre>\nset editing-mode vi\nset keymap vi-command\nv: \"\"\n</pre>\n\n<h3>Table of content</h3>\n\n<p>If you are new to PicoLisp, you might want to read the following sections in\nthe given order, as some of them assume knowledge about previous ones. Otherwise\njust jump anywhere you are interested in.\n\n<p><ul>\n<li><a href=\"#brw\">Browsing</a>\n<li><a href=\"#fun\">Defining Functions</a>\n<li><a href=\"#dbg\">Debugging</a>\n<li><a href=\"#funio\">Functional I/O</a>\n<li><a href=\"#script\">Scripting</a>\n</ul>\n\n<p><hr>\n<h2><a id=\"brw\">Browsing</a></h2>\n\n<p>PicoLisp provides some functionality for inspecting pieces of data and code\nwithin the running system.\n\n<h3>Basic tools</h3>\n\nThe really basic tools are of course available and their name alone is enough\nto know:\n<code><a href=\"refP.html#print\">print</a></code>,\n<code><a href=\"refS.html#size\">size</a></code>\n...\n\n<p>But you will appreciate some more powerful tools like:\n<p><ul><li><code><a href=\"refM.html#match\">match</a></code>, a predicate which\n    compares S-expressions with bindable wildcards when matching,</li>\n</ul>\n\n<h3>Inspect a symbol with <i>show</i></h3>\n\n<p>The most commonly used tool is probably the <code><a\nhref=\"refS.html#show\">show</a></code> function. It takes a symbolic argument,\nand shows the symbol's name (if any), followed by its value, and then the\ncontents of the property list on the following lines (assignment of such things\nto a symbol can be done with <code><a href=\"refS.html#set\">set</a></code>,\n<code><a href=\"refS.html#setq\">setq</a></code>, and <code><a\nhref=\"refP.html#put\">put</a></code>).\n\n<pre>\n: (setq A '(This is the value))  # Set the value of 'A'\n-> (This is the value)\n: (put 'A 'key1 'val1)           # Store property 'key1'\n-> val1\n: (put 'A 'key2 'val2)           # and 'key2'\n-> val2\n: (show 'A)                      # Now 'show' the symbol 'A'\nA (This is the value)\n   key2 val2\n   key1 val1\n-> A\n</pre>\n\n<p><code>show</code> accepts an arbitrary number of arguments which are\nprocessed according to the rules of <code><a\nhref=\"refG.html#get\">get</a></code>, resulting in a symbol which is showed then.\n\n<pre>\n: (put 'B 'a 'A)        # Put 'A' under the 'a'-property of 'B'\n-> A\n: (setq Lst '(A B C))   # Create a list with 'B' as second argument\n-> (A B C)\n: (show Lst 2 'a)       # Show the property 'a of the 2nd element of 'Lst'\nA (This is the value)   # (which is 'A' again)\n   key2 val2\n   key1 val1\n-> A\n</pre>\n\n<h3>Inspect and edit symbols in-memory</h3>\n\n<p>If you pass one or more symbols as a list to <code><a\nhref=\"refV.html#vi\">vi</a></code>, they are written to a temporary file in a\nformat similar to <code>show</code>, and <code>Vip</code> is started with that\nfile.\n\n<pre>\n: (vi '(A B))\n</pre>\n\n<p>The <code>Vip</code> window will look like\n\n<pre>\nA (This is the value)\nkey1 val1\nkey2 val2\n\n(=======)\n\nB NIL\na A  # (This is the value)\n\n(=======)\n</pre>\n\n<p>A convenient shortcut is the non-evaluating version <code>v</code> of\n<code>vi</code>. An equivalent call to the above is:\n\n<pre>\n(v A B)\n</pre>\n\n<p>Now you can modify values or properties. You should not touch the\nparenthesized hyphens, as they serve as delimiters. If you position the cursor\non the first character of a symbol name and type '<code>K</code>' (\"Keyword\nlookup\"), the editor will be restarted with that symbol added to the editor\nwindow. '<code>Q</code>' (for \"Quit\") will bring you back to the previous view.\n\n<p>If you exit Vip with e.g. \":x\", any changes you made in your editing session\nwill be communicated back to the REPL.\n\n<p>In-memory editing is also very useful to browse in a database. You can follow\nthe links between objects with '<code>K</code>', and even - e.g. for low-level\nrepairs - modify the data (but only if you are really sure about what you are\ndoing, and don't forget to <code><a href=\"refC.html#commit\">commit</a></code>\nwhen you are done).\n\n<h3>Built-in pretty print with <i>pp</i></h3>\n\n<p>The <i>pretty-print</i> function <code><a href=\"refP.html#pp\">pp</a></code>\ntakes a symbol that has a function defined (or two symbols that specify message\nand class for a method definition), and displays that definition in a formatted\nand indented way.\n\n<pre>\n: (pp 'pretty)\n(de pretty (X N)\n   (setq N (abs (space (or N 0))))\n   (while (and (pair X) (== 'quote (car X)))\n      (prin \"'\")\n      (pop 'X) )\n   (cond\n      ...\n      (T (prtty0 X N)) ) )\n-> pretty\n</pre>\n\n<p>The style is the same as we use in source files:\n\n<ul>\n\n<li>The indentation level is three spaces\n\n<li>If a list is too long (to be precise: if its <code><a\nhref=\"refS.html#size\">size</a></code> is greater than 12), pretty-print the CAR\non the current line, and each element of the CDR recursively on its own line.\n\n<li>A closing parenthesis a preceded by a space if the corresponding open\nparenthesis is not on the same line\n\n</ul>\n\n<h3>Inspect elements one by one with <i>more</i></h3>\n\n<p><code><a href=\"refM.html#more\">more</a></code> is a simple tool that displays\nthe elements of a list one by one. It stops after each element and waits for\ninput. If you just hit ENTER, <code>more</code> continues with the next element,\notherwise (usually I type a dot (<code>.</code>) followed by ENTER) it\nterminates.\n\n<pre>\n: (more (1 2 3 4 5 6))\n1                          # Hit ENTER\n2   .                      # Hit '.' and ENTER\n-> T                       # stopped\n</pre>\n\n<p>Optionally <code>more</code> takes a function as a second argument and\napplies that function to each element (instead of the default <code><a\nhref=\"refP.html#print\">print</a></code>). Here, often <code>show</code> or\n<code>pp</code> (see below) is used.\n\n<pre>\n: (more '(A B))            # Step through 'A' and 'B'\nA\nB\n-> NIL\n: (more '(A B) show)       # Step through 'A' and 'B' with 'show'\nA (This is the value)      # showing 'A'\n   key2 val2\n   key1 val1\n                           # Hit ENTER\nB NIL                      # showing 'B'\n   a A\n-> NIL\n</pre>\n\n<h3>Search through available symbols with <i>what</i></h3>\n\n<p>The <code><a href=\"refW.html#what\">what</a></code> function returns a list of\nall internal symbols in the system which match a given pattern (with\n'<code>@</code>' wildcard characters).\n\n<pre>\n: (what \"prin@\")\n-> (prin print prinl print> printsp println)\n</pre>\n\n<h3>Search through values or properties of symbols with <i>who</i></h3>\n\n<p>The function <code><a href=\"refW.html#who\">who</a></code> returns <i>\"who\ncontains that\"</i>, i.e. a list of symbols that contain a given argument\nsomewhere in their value or property list.\n\n<pre>\n: (who 'print)\n-> (query _pretty spPrt prtty1 prtty2 prtty3 pretty (\"syms>\" . \"+Buffer\")\nmsg more show view (print> . +Date) rules select (print> . +relation) pico)\n</pre>\n\n<p>A dotted pair indicates either a method definition or a property entry. So\n<code>(print> . +relation)</code> denotes the <code>print&gt;</code> method of\nthe <code><a href=\"refR.html#+relation\">+relation</a></code> class.\n\n<p><code>who</code> can be conveniently combined with <code>more</code> and\n<code>pp</code>:\n\n<pre>\n: (more (who 'print) pp)\n(de query (\"Q\" \"Dbg\")  # Pretty-print these functions one by one\n   (use \"R\"\n      (loop\n         (NIL (prove \"Q\" \"Dbg\"))\n         (T (=T (setq \"R\" @)) T)\n         (for X \"R\"\n            (space)\n            (print (car X))\n            (print '=)\n            (print (cdr X))\n            (flush) )\n         (T (line)) ) ) )\n\n(de pretty (X N)\n   ...\n</pre>\n\n<p>The argument to <code>who</code> may also be a pattern list (see <code><a\nhref=\"refM.html#match\">match</a></code>):\n\n<pre>\n: (who '(print @ (less (val @))))\n-> (show)\n\n: (more (who '(% @ 7)) pp)\n(de day (Dat Lst)\n   (when Dat\n      (get\n         (or Lst *DayFmt)\n         (inc (% (inc Dat) 7)) ) ) )\n\n(de _week (Dat)\n   (/ (- Dat (% (inc Dat) 7)) 7) )\n</pre>\n\n<h3>Find what classes can accept a given message with <i>can</i></h3>\n\n<p>The function <code><a href=\"refC.html#can\">can</a></code> returns a list\nwhich indicates which classes <i>can</i> accept a given message. Again, this\nlist is suitable for iteration with <code>pp</code>:\n\n<pre>\n: (can 'del>)                                   # Which classes accept 'del>' ?\n-> ((del> . +List) (del> . +Entity) (del> . +relation))\n\n: (more (can 'del>) pp)                         # Inspect the methods with 'pp'\n(dm (del> . +List) (Obj Old Val)\n   (and ((&lt;> Old Val) (delete Val Old)) )\n\n(dm (del> . +Entity) (Var Val)\n   (when\n      (and\n         Val\n         (has> (meta This Var) Val (get This Var)) )\n      (let Old (get This Var)\n         (rel>\n            (meta This Var)\n            This\n            Old\n            (put This Var (del> (meta This Var) This Old @)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old) ) ) )\n\n(dm (del> . +relation) (Obj Old Val)\n   (and ((&lt;> Old Val) Val) )\n</pre>\n\n<h3>Inspect dependencies with <i>dep</i></h3>\n\n<p><code><a href=\"refD.html#dep\">dep</a></code> shows the dependencies in a\nclass hierarchy. That is, for a given class it displays the tree of its\n(super)class(es) above it, and the tree of its subclasses below it.\n\n<p>To view the complete hierarchy of input fields, we start with the root class\n<code><a href=\"refR.html#+relation\">+relation</a></code>:\n\n<pre>\n: (dep '+relation)\n+relation\n   +Bag\n   +Any\n   +Blob\n   +Link\n      +Joint\n   +Bool\n   +Symbol\n      +String\n   +Number\n      +Time\n      +Date\n-> +relation\n</pre>\n\n<p>If we are interested in <code>+Link</code>:\n\n<pre>\n: (dep '+Link)\n   +relation\n+Link\n   +Joint\n-> +Link\n</pre>\n\n<p>This says that <code>+Link</code> is a subclass of <code><a\nhref=\"refR.html#+relation\">+relation</a></code>, and has a single subclass\n(<code>+Joint</code>).\n\n\n<p><hr>\n<h2><a id=\"fun\">Defining Functions</a></h2>\n\n<p>Most of the time during programming is spent defining functions (or methods).\nIn the following we will concentrate on functions, but most will be true for\nmethods as well except for using <code><a href=\"refD.html#dm\">dm</a></code>\ninstead of <code><a href=\"refD.html#de\">de</a></code>.\n\n<h3>Functions with no argument</h3>\n\n<p>The notorious \"Hello world\" function must be defined:\n\n<pre>\n: (de hello ()\n   (prinl \"Hello world\") )\n-> hello\n</pre>\n\n<p>The <code>()</code> in the first line indicates a function without arguments.\nThe body of the function is in the second line, consisting of a single\nstatement. The last line is the return value of <code>de</code>, which here is\nthe defined symbol. From now on we will omit the return values of examples when\nthey are unimportant.\n\n<p>Now you can call this function this way:\n\n<pre>\n: (hello)\nHello world\n</pre>\n\n<h3>Functions with one argument</h3>\n\n<p>A function with an argument might be defined this way:\n\n<pre>\n: (de hello (X)\n   (prinl \"Hello \" X) )\n# hello redefined\n-> hello\n</pre>\n\n<p>PicoLisp informs you that you have just redefined the function. This might be\na useful warning in case you forgot that a bound symbol with that name already\nexisted.\n\n<pre>\n: (hello \"world\")\nHello world\n</pre>\n\n<pre>\n: (hello \"Alex\")\nHello Alex\n</pre>\n\n<h3>Preventing arguments evaluation and variable number of arguments</h3>\n\n<p>Normally, PicoLisp evaluates the arguments before it passes them to a\nfunction:\n\n<pre>\n: (hello (+ 1 2 3))\nHello 6\n</pre>\n\n<pre>\n: (setq A 1  B 2)       # Set 'A' to 1 and 'B' to 2\n-> 2\n: (de foo (X Y)         # 'foo' returns the list of its arguments\n   (list X Y) )\n-> foo\n: (foo A B)             # Now call 'foo' with 'A' and 'B'\n-> (1 2)                # -> We get a list of 1 and 2, the values of 'A' and 'B'\n</pre>\n\n<p>In some cases you don't want that. For some functions (<code><a\nhref=\"refS.html#setq\">setq</a></code> for example) it is better if the function\ngets all arguments unevaluated, and can decide for itself what to do with them.\n\n<p>For such cases you do not define the function with a <i>list</i> of\nparameters, but give it a <i>single atomic</i> parameter instead. PicoLisp will\nthen bind all (unevaluated) arguments as a list to that parameter.\n\n<pre>\n: (de foo X\n   (list (car X) (cadr X)) )        # 'foo' lists the first two arguments\n\n: (foo A B)                         # Now call it again\n-> (A B)                            # -> We don't get '(1 2)', but '(A B)'\n\n: (de foo X\n   (list (car X) (eval (cadr X))) ) # Now evaluate only the second argument\n\n: (foo A B)\n-> (A 2)                            # -> We get '(A 2)'\n</pre>\n\n<h3>Mixing evaluated arguments and variable number of unevaluated arguments</h3>\n\n<p>As a logical consequence, you can combine these principles. To define a\nfunction with 2 evaluated and an arbitrary number of unevaluated arguments:\n\n<pre>\n: (de foo (X Y . Z)     # Evaluate only the first two args\n   (list X Y Z) )\n\n: (foo A B C D E)\n-> (1 2 (C D E))        # -> Get the value of 'A' and 'B' and the remaining list\n</pre>\n\n<h3>Variable number of evaluated arguments</h3>\n\n<p>More common, in fact, is the case where you want to pass an arbitrary number\nof <i>evaluated</i> arguments to a function. For that, PicoLisp recognizes the\nsymbol <code>@</code> as a single atomic parameter and remembers all evaluated\narguments in an internal frame. This frame can then be accessed sequentially\nwith the <code><a href=\"refA.html#args\">args</a></code>, <code><a\nhref=\"refN.html#next\">next</a></code>, <code><a\nhref=\"refA.html#arg\">arg</a></code> and <code><a\nhref=\"refR.html#rest\">rest</a></code> functions.\n\n<pre>\n: (de foo @\n   (list (next) (next)) )     # Get the first two arguments\n\n: (foo A B)\n-> (1 2)\n</pre>\n\n<p>Again, this can be combined:\n\n<pre>\n: (de foo (X Y . @)\n   (list X Y (next) (next)) ) # 'X' and 'Y' are fixed arguments\n\n: (foo A B (+ 3 4) (* 3 4))\n-> (1 2 7 12)                 # All arguments are evaluated\n</pre>\n\n<p>These examples are not very useful, because the advantage of a variable\nnumber of arguments is not used. A function that prints all its evaluated\nnumeric arguments, each on a line followed by its squared value:\n\n<pre>\n: (de foo @\n   (while (args)                    # Check if there are some args left\n      (let N (next)\n         (println N (* N N)) ) ) )\n\n: (foo (+ 2 3) (- 7 1) 1234 (* 9 9))\n5 25\n6 36\n1234 1522756\n81 6561\n-> 6561\n</pre>\n\n<p>This next example shows the behaviour of <code>args</code> and\n<code>rest</code>:\n\n<pre>\n: (de foo @\n   (while (args)\n      (println (next) (args) (rest)) ) )\n: (foo 1 2 3)\n1 T (2 3)\n2 T (3)\n3 NIL NIL\n</pre>\n\n<p>Finally, it is possible to pass all these evaluated arguments to another\nfunction, using <code><a href=\"refP.html#pass\">pass</a></code>:\n\n<pre>\n: (de foo @\n   (pass println 9 8 7)       # First print all arguments preceded by 9, 8, 7\n   (pass + 9 8 7) )           # Then add all these values\n\n: (foo (+ 2 3) (- 7 1) 1234 (* 9 9))\n9 8 7 5 6 1234 81             # Printing ...\n-> 1350                       # Return the result\n</pre>\n\n<h3>Anonymous functions without the <i>lambda</i> keyword</h3>\n\nThere's no distinction between code and data in PicoLisp,\n<code><a href=\"refQ.html#quote\">quote</a></code> will do what you want (see\nalso <a href=\"faq.html#lambda\">this FAQ entry</a>).\n\n<pre>\n: ((quote (X) (* X X)) 9)\n-> 81\n</pre>\n\n<pre>\n: (setq f '((X) (* X X)))  # This is equivalent to (de f (X) (* X X))\n-> ((X) (* X X))\n: f\n-> ((X) (* X X))\n: (f 3)\n-> 9\n</pre>\n\n\n<p><hr>\n<h2><a id=\"dbg\">Debugging</a></h2>\n\n<p>There are two major ways to debug functions (and methods) at runtime:\n<i>Tracing</i> and <i>single-stepping</i>.\n\n<p>In this section we will use the REPL to explore the debugging facilities, but\nin the <a href=\"#script\">Scripting</a> section, you will learn how to launch\nPicoLisp scripts with some selected functions debugged:\n\n<pre>\n$ pil app/file1.l -\"trace 'foo\" -main -\"debug 'bar\" app/file2.l +\n</pre>\n\n<h3>Tracing</h3>\n\n<p><i>Tracing</i> means letting functions of interest print their name and arguments\nwhen they are entered, and their name again and the return value when they are\nexited.\n\n<p>For demonstration, let's define the unavoidable factorial function:\n\n<pre>\n(de fact (N)\n   (if (=0 N)\n      1\n      (* N (fact (dec N))) ) )\n</pre>\n\n<p>With <code><a href=\"refT.html#trace\">trace</a></code> we can put it in trace\nmode:\n\n<pre>\n: (trace 'fact)\n-> fact\n</pre>\n\n<p>Calling <code>fact</code> now will display its execution trace.\n\n<pre>\n: (fact 3)\n fact : 3\n  fact : 2\n   fact : 1\n    fact : 0\n    fact = 1\n   fact = 1\n  fact = 2\n fact = 6\n-> 6\n</pre>\n\n<p>As can be seen here, each level of function call will indent by an additional\nspace. Upon function entry, the name is separated from the arguments with a\ncolon (<code>:</code>), and upon function exit with an equals sign\n(<code>=</code>) from the return value.\n\n<p><code>trace</code> works by modifying the function body, so generally it\nworks only for functions defined as lists (lambda expressions, see <a\nhref=\"ref.html#ev\">Evaluation</a>). Tracing a built-in function (SUBR) is\npossible, however, when it is a function that evaluates all its arguments.\n\n<p>So let's trace the functions <code><a href=\"ref_.html#=0\">=0</a></code> and\n<code><a href=\"ref_.html#*\">*</a></code>:\n\n<pre>\n: (trace '=0)\n-> =0\n: (trace '*)\n-> *\n</pre>\n\n<p>If we call <code>fact</code> again, we see the additional output:\n\n<pre>\n: (fact 3)\n fact : 3\n  =0 : 3\n  =0 = NIL\n  fact : 2\n   =0 : 2\n   =0 = NIL\n   fact : 1\n    =0 : 1\n    =0 = NIL\n    fact : 0\n     =0 : 0\n     =0 = 0\n    fact = 1\n    * : 1 1\n    * = 1\n   fact = 1\n   * : 2 1\n   * = 2\n  fact = 2\n  * : 3 2\n  * = 6\n fact = 6\n-> 6\n</pre>\n\n<p>To reset a function to its untraced state, call <code><a\nhref=\"refU.html#untrace\">untrace</a></code>:\n\n<pre>\n: (untrace 'fact)\n-> fact\n: (untrace '=0)\n-> =0\n: (untrace '*)\n-> *\n</pre>\n\n<p>or simply use <code><a href=\"refM.html#mapc\">mapc</a></code>:\n\n<pre>\n: (mapc untrace '(fact =0 *))\n-> *\n</pre>\n\n<h3>Single-stepping</h3>\n\n<p><i>Single-stepping</i> means to execute a function step by step, giving the\nprogrammer an opportunity to look more closely at what is happening. The\nfunction <code><a href=\"refD.html#debug\">debug</a></code> inserts a breakpoint\ninto each top-level expression of a function. When the function is called, it\nstops at each breakpoint, displays the expression it is about to execute next\n(this expression is also stored into the global variable <code><a\nhref=\"ref_.html#%5E\">^</a></code>) and enters a read-eval-loop. The programmer\ncan then\n\n<ul>\n\n<li>inspect the current environment by typing variable names or calling\nfunctions\n\n<li>execute <code>(<a href=\"refD.html#d\">d</a>)</code> to recursively debug the\nnext expression (looping through subexpressions of this expression)\n\n<li>execute <code>(<a href=\"refE.html#e\">e</a>)</code> to evaluate the next\nexpression, to see what will happen without actually advancing on\n\n<li>type ENTER (that is, enter an empty line) to leave the read-eval loop and\ncontinue with the next expression\n\n</ul>\n\n<p>Thus, in the simplest case, single-stepping consists of just hitting ENTER\nrepeatedly to step through the function.\n\n<p>To try it out, let's look at the <code><a\nhref=\"refS.html#stamp\">stamp</a></code> system function. You may need to have a\nlook at\n\n<ul>\n<li><code><a href=\"ref_.html#=T\">=T</a></code> (T test),</li>\n\n<li><code><a href=\"refD.html#date\">date</a></code> and <code><a\nhref=\"refT.html#time\">time</a></code> (grab system date and time)\n\n<li><code><a href=\"refD.html#default\">default</a></code> (conditional\nassignments)\n\n<li><code><a href=\"refP.html#pack\">pack</a></code> (kind of concatenation), and\n\n<li><code><a href=\"refD.html#dat$\">dat$</a></code> and <code><a\nhref=\"refT.html#tim$\">tim$</a></code> (date and time formats)</li>\n\n</ul>\n\nto understand this definition.\n\n<pre>\n: (pp 'stamp)\n(de stamp (Dat Tim)\n   (and (=T Dat) (setq Dat (date T)))\n   (default Dat (date) Tim (time T))\n   (pack (dat$ Dat \"-\") \" \" (tim$ Tim T)) )\n-> stamp\n</pre>\n\n<pre>\n: (debug 'stamp)                       # Debug it\n-> T\n: (stamp)                              # Call it again\n(and (=T Dat) (setq Dat (date T)))     # stopped at first expression\n!                                      # ENTER\n(default Dat (date) Tim (time T))      # second expression\n!                                      # ENTER\n(pack (dat$ Dat \"-\") \" \" (tim$ ...     # third expression\n! Tim                                  # inspect 'Tim' variable\n-> 41908\n! (time Tim)                           # convert it\n-> (11 38 28)\n!                                      # ENTER\n-> \"2004-10-29 11:38:28\"               # done, as there are only 3 expressions\n</pre>\n\n<p>Now we execute it again, but this time we want to look at what's happening\ninside the second expression.\n\n<pre>\n: (stamp)                              # Call it again\n(and (=T Dat) (setq Dat (date T)))\n!                                      # ENTER\n(default Dat (date) Tim (time T))\n!                                      # ENTER\n(pack (dat$ Dat \"-\") \" \" (tim$ ...     # here we want to look closer\n! (d)                                  # debug this expression\n-> T\n!                                      # ENTER\n(dat$ Dat \"-\")                         # stopped at first subexpression\n! (e)                                  # evaluate it\n-> \"2004-10-29\"\n!                                      # ENTER\n(tim$ Tim T)                           # stopped at second subexpression\n! (e)                                  # evaluate it\n-> \"11:40:44\"\n!                                      # ENTER\n-> \"2004-10-29 11:40:44\"               # done\n</pre>\n\n<p>The breakpoints still remain in the function body. We can see them when we\npretty-print it:\n\n<pre>\n: (pp 'stamp)\n(de stamp (Dat Tim)\n   (! and (=T Dat) (setq Dat (date T)))\n   (! default Dat (date) Tim (time T))\n   (! pack\n      (! dat$ Dat \"-\")\n      \" \"\n      (! tim$ Tim T) ) )\n-> stamp\n</pre>\n\n<p>To reset the function to its normal state, call <code><a\nhref=\"refU.html#unbug\">unbug</a></code>:\n\n<pre>\n: (unbug 'stamp)\n</pre>\n\n<p>Often, you will not want to single-step a whole function. Just use\n<code>v</code> (see above) to insert a single breakpoint (the exclamation mark\nfollowed by a space) as CAR of an expression, and run your program. Execution\nwill then stop there as described above; you can inspect the environment and\ncontinue execution with ENTER when you are done.\n\n\n<p><hr>\n<h2><a id=\"funio\">Functional I/O</a></h2>\n\n<p>Input and output in PicoLisp is functional, in the sense that there are not\nvariables assigned to file descriptors, which need then to be passed to I/O\nfunctions for reading, writing and closing. Instead, these functions operate on\nimplicit input and output channels, which are created and maintained as dynamic\nenvironments.\n\n<p>Standard input and standard output are the default channels. Try reading a\nsingle expression:\n\n<pre>\n: (read)\n(a b c)        # Console input\n-> (a b c)\n</pre>\n\n<p>To read from a file, we redirect the input with <code><a\nhref=\"refI.html#in\">in</a></code>. Note that comments and whitespace are\nautomatically skipped by <code>read</code>:\n\n<pre>\n: (in \"@lib.l\" (read))\n-> (de task (Key . Prg) (nond (...\n</pre>\n\n<p>The <code><a href=\"refS.html#skip\">skip</a></code> function can also be used\ndirectly. To get the first non-white character in the file with <code><a\nhref=\"refC.html#char\">char</a></code>:\n\n<pre>\n: (in \"@lib.l\" (skip \"#\") (char))\n-> \"(\"\n</pre>\n\n<p><code><a href=\"refF.html#from\">from</a></code> searches through the input\nstream for given patterns. Typically, this is not done with Lisp source files\n(there are better ways), but for a simple example let's extract all items\nimmediately following <code>fact</code> in the file,\n\n<pre>\n: (in \"@lib.l\" (while (from \"nond\") (println (read))))\n(Prg (del (assoc Key *Run) '*Run))\n((pair \"X\") (or (pair (getd \"X\")) (expr \"X\")))\n(\"Prg\" (caar (idx \"Var\" \"K\")))\n</pre>\n\n<p>or the word following \"(de \" with <code><a\nhref=\"refT.html#till\">till</a></code>:\n\n<pre>\n: (in \"@lib.l\" (from \"(de \") (till \" \" T))\n-> \"task\"\n</pre>\n\n<p> To read the contents of a whole file (or the rest of it starting from the\ncurrent position):\n\n<pre>\n: (in \"f.l\" (till NIL T))\n-> \"... file contents ...\"\n</pre>\n\n\n<p>With <code><a href=\"refL.html#line\">line</a></code>, a line of characters is\nread, either into a single <a href=\"ref.html#transient-io\">transient</a> symbol\n(the type used by PicoLisp for strings),\n\n<pre>\n: (in \"@doc/tut.html\" (line T))\n-> \"&lt;!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://...\"\n</pre>\n\n<p>or into a list of symbols (characters):\n\n<pre>\n: (in \"@doc/tut.html\" (line))\n-> (\"&lt;\" \"!\" \"D\" \"O\" \"C\" \"T\" \"Y\" \"P\" \"E\" \" \" \"H\" \"T\" \"M\" \"L\" ...\n</pre>\n\n<p><code>line</code> is typically used to read tabular data from a file.\nAdditional arguments can split the line into fixed-width fields, as described in\nthe <code><a href=\"refL.html#line\">reference manual</a></code>. If, however, the\ndata are of variable width, delimited by some special character, the <code><a\nhref=\"refS.html#split\">split</a></code> function can be used to extract the\nfields. A typical way to import the contents of such a file is:\n\n<pre>\n(in '(\"bin/utf2\" \"importFile.txt\")              # Pipe: Convert to UTF-8\n   (until (eof)                                 # Process whole file\n      (let L (split (line) \"\\t\")                # TAB-delimited data\n         ...                                    # process them\n</pre>\n\n<p>Some more examples with <code><a href=\"refE.html#echo\">echo</a></code>:\n\n<pre>\n(in \"a\"                                         # Copy the first 40 Bytes\n   (out \"b\"                                     # from file \"a\" to file \"b\"\n      (echo 40) ) )\n\n(in \"@doc/tut.html\"                             # Show the HTTP-header\n   (line)\n   (echo \"&lt;body>\") )\n\n(out \"file.mac\"                                 # Convert to Macintosh\n   (in \"file.txt\"                               # from Unix or DOS format:\n      (while (char)\n         (prin\n            (case @\n               (\"\\r\" NIL)                       # ignore CR\n               (\"\\n\" \"\\r\")                      # convert LF to CR\n               (T @) ) ) ) ) )                  # otherwise no change\n\n(out \"c\"                                        # Merge the contents of \"a\"\n   (in \"b\"                                      # and \"b\" into \"c\"\n      (in \"a\"\n         (while (read)                          # Read an item from \"a\",\n            (println @ (in -1 (read))) ) ) ) )  # print it with an item from \"b\"\n</pre>\n\n\n<p><hr>\n<h2><a id=\"script\">Scripting</a></h2>\n\n<p>There are two possibilities to get the PicoLisp interpreter into doing useful\nwork: via command line arguments, or as a stand-alone script.\n\n<h3>Command line arguments for the PicoLisp interpreter</h3>\n\n<p>The command line can specify either files for execution, or arbitrary Lisp\nexpressions for direct evaluation (see <a href=\"ref.html#invoc\">Invocation</a>):\nif an argument starts with a hyphen, it is evaluated, otherwise it is <code><a\nhref=\"refL.html#load\">load</a></code>ed as a file. A typical invocation might\nlook like:\n\n<pre>\n$ pil app/file1.l -main app/file2.l +\n</pre>\n\n<p>It loads the debugging environment, an application source file, calls the\nmain function, and then loads another application source. In a typical\ndevelopment and debugging session, this line is often modified using the shell's\nhistory mechanisms, e.g. by inserting debugging statements:\n\n<pre>\n$ pil app/file1.l -\"trace 'foo\" -main -\"debug 'bar\" app/file2.l +\n</pre>\n\n<p>Another convenience during debugging and testing is to put things into the\ncommand line (shell history) which would otherwise have to be done each time in\nthe application's user interface:\n\n<pre>\n$ pil app/file1.l -main app/file2.l -go -'login \"name\" \"password\"' +\n</pre>\n\n<p>The final production release of an application usually includes a shell\nscript, which initializes the environment, does some bookkeeping and cleanup,\nand calls the application with a proper command line. It is no problem if the\ncommand line is long and complicated.\n\n<p>For small utility programs, however, this is overkill. Enter full PicoLisp\nscripts.\n\n<h3>PicoLisp scripts</h3>\n\nIt is better to write\na single executable file using the mechanisms of \"interpreter files\". If the\nfirst two characters in an executable file are \"<code>#!</code>\", the operating\nsystem kernel will pass this file to an interpreter program whose pathname is\ngiven in the first line (optionally followed by a single argument). This is fast\nand efficient, because the overhead of a subshell is avoided.\n\n<p>Let's assume you installed PicoLisp in the directory \"/home/foo/pil21/\",\nand put links to the executable and the installation directory as:\n\n<pre>\n$ ln -s /home/foo/pil21 /usr/lib/picolisp\n$ ln -s /usr/lib/picolisp/bin/picolisp /usr/bin\n</pre>\n\nThen a simple hello-world script might look like:\n\n<pre>\n#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n(prinl \"Hello world!\")\n(bye)\n</pre>\n\n<p>If you write this into a text file, and use <code>chmod</code> to set it to\n\"executable\", it can be executed like any other command. Note that (because\n<code>#</code> is the comment character in PicoLisp) the first line will not be\ninterpreted, and you can still use that file as a normal command line argument\nto PicoLisp (useful during debugging).\n\n<h3>Grab command line arguments from PicoLisp scripts</h3>\n\n<p>The fact that a hyphen causes evaluation of command line arguments can be\nused to implement command line options. The following script defines two\nfunctions <code>a</code> and <code>f</code>, and then calls <code>(<a\nhref=\"refL.html#load\">load</a> T)</code> to process the rest of the command line\n(which otherwise would be ignored because of the <code>(<a\nhref=\"refB.html#bye\">bye</a>)</code> statement):\n\n<pre>\n#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n\n(de a ()\n   (println '-a '-> (opt)) )\n\n(de f ()\n   (println '-f '-> (opt)) )\n\n(load T)\n(bye)\n</pre>\n\n(<code><a href=\"refO.html#opt\">opt</a></code> retrieves the next command line\noption)\n\n<p>Calling this script (let's say we named it \"testOpts\") gives:\n\n<pre>\n$ ./testOpts -f abc\n-f -> \"abc\"\n$ ./testOpts -a xxx  -f yyy\n-a -> \"xxx\"\n-f -> \"yyy\"\n</pre>\n\n<p>We have to be aware of the fact, however, that the aggregation of arguments\nlike\n\n<pre>\n$ ./testOpts -axxx  -fyyy\n</pre>\n\n<p>or\n\n<pre>\n$ ./testOpts -af yyy\n</pre>\n\n<p>cannot be achieved with this simple and general mechanism of command line\nprocessing.\n\n<h3>Run scripts from arbitrary places on the host file system</h3>\n\n<p>Utilities are typically used outside the context of the PicoLisp environment.\nAll examples above assumed that the current working directory is the PicoLisp\ninstallation directory, which is usually all right for applications developed in\nthat environment. Command line file arguments like \"app/file1.l\" will be\nproperly found.\n\n<p>To allow utilities to run in arbitrary places on the host file system, the\nconcept of <i>home directory substitution</i> was introduced. The interpreter\nremembers internally at start-up the pathname of its first argument (usually\n\"lib.l\"), and substitutes any leading \"<code>@</code>\" character in subsequent\nfile names with that pathname. Thus, to run the above example in some other\nplace, simply write:\n\n<pre>\n$ /home/foo/pil21/pil @app/file1.l -main @app/file2.l +\n</pre>\n\n<p>that is, supply a full path name to the initial command (here 'pil'), or put\nit into your <code>PATH</code> variable, and prefix each file which has to be\nloaded from the PicoLisp home directory with a <code>@</code> character.\n\"Normal\" files (not prefixed by <code>@</code>) will be opened or created\nrelative to the current working directory as usual.\n\n<p>Stand-alone scripts will often want to load additional modules from the\nPicoLisp environment, beyond the \"lib.l\" we provided in the first line of the\nhello-world script. Typically, at least a call to\n\n<pre>\n(load \"@lib/misc.l\")\n</pre>\n\n<p>(note the home directory substitution) will be included near the beginning of\nthe script.\n\n<p>As a more complete example, here is a script which extracts the date, name\nand size of the latest official PicoLisp release version from the download web\nsite, and prints it to standard output:\n\n<pre>\n#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n\n(load \"@lib/misc.l\" \"@lib/http.l\")\n\n(use (@Date @Name @Size)\n   (when\n      (match\n         '(@Date ~(chop \" - &lt;a href=\\\"\") @Name \"\\\"\" \"&gt;\"\n             @Name ~(chop \"&lt;/a&gt; (\") @Size )\n         (client \"software-lab.de\" 80 \"down.html\"\n            (from \"Release Archive\")\n            (from \"&lt;li&gt;\")\n            (till \",\") ) )\n      (prinl @Name)\n      (prinl @Date \" -- \" @Size) ) )\n\n(bye)\n</pre>\n\n</body>\n</html>\n"
  },
  {
    "path": "doc/viprc.sample",
    "content": "# 21dec25 Software Lab. Alexander Burger\n# Copy to ~/.pil/viprc\n\n## Uncomment to enable the \":cal\" (calendar) command\n## (load \"@lib/vip/cal.rc.l\")\n\n(map+q \"d\" \":bd\\r\")\n\n## If you prefer LEFT and RIGHT to move the cursor:\n## (map+ \"\\e[D\" \"h\")\n## (map+ \"\\e[C\" \"l\")\n\n(cmd \"pb1n\" (L Lst Cnt)  # Pastebin\n   (pipe\n      (out '(\"curl\" \"-F\" \"f=@-;\" \"pb1n.de\")\n         (mapc prinl (: buffer text)) )\n      (prCmd (rdLines)) ) )\n\n(cmd \"ix.io\" (L Lst Cnt)\n   (pipe\n      (out '(\"curl\" \"-sF\" \"f:1=<-\" \"ix.io\")\n         (mapc prinl (: buffer text)) )\n      (prCmd (rdLines)) ) )\n\n(cmd \"tabs\" (L Lst Cnt)\n   (let N (or (format L) 3)\n      (=: buffer text\n         (mapcar\n            '((L)\n               (make\n                  (for (I . C) L\n                     (if (= \"\\t\" C)\n                        (loop\n                           (link (name \" \"))\n                           (T (=0 (% I N)))\n                           (inc 'I) )\n                        (link C) ) ) ) )\n            (: buffer text) ) ) ) )\n\n(cmd \"words\" (L Lst Cnt)\n   (xchg 'delimNs\n      (quote\n         ((C)\n            (nand C\n               (sub? C\n                  \"0123456789\\\n                  ABCDEFGHIJKLMNOPQRSTUVWXYZ\\\n                  _\\\n                  abcdefghijklmnopqrstuvwxyz\" ) ) ) ) )\n   (prCmd\n      (list (chop (xchg '(\" C\") '(\" Lisp\")))) ) )\n\n(de *F7  # Find current definition\n   (let L (nth (: buffer text) (: posY))\n      (prCmd\n         (list\n            (loop\n               (NIL (setq L (prior L (: buffer text))))\n               (T (head '`(chop \"(class \") (car L))\n                  (car L) )\n               (T (head '`(chop \"(extend \") (car L))\n                  (car L) ) ) ) ) ) )\n\n(de *F8  # Expression size\n   (evCmd (size (s-expr))) )\n\n# Timestamp\n(local) vipDat\n\n(de vipDat (N)\n   (when (<> N (: posY))\n      (let (@L (get (: text) N)  @A)\n         (and\n            (match '(@A \" \" @L) @L)\n            (member @A '((\"#\") (\"/\" \"/\") (\"/\" \"*\")))\n            (>= 31 (format (cut 2 '@L)) 1)\n            (member (pack (cut 3 '@L)) *mon)\n            (format (cut 2 '@L))\n            (mapc set\n               (set (nth (: text) N)\n                  (conc\n                     @A\n                     (list (char 32))\n                     (chop (datSym (date)))\n                     @L ) )\n               1 ) ) ) ) )\n\n(daemon '(save> . +Buffer)\n   (or (vipDat 1) (vipDat 2) (vipDat 3)) )\n\n# Local\n(and (info \".viprc\") (load \".viprc\"))\n"
  },
  {
    "path": "ext.l",
    "content": "# 27oct20 Software Lab. Alexander Burger\n\n(load \"@lib/net.l\" \"@lib/misc.l\" \"@lib/btree.l\" \"@lib/db.l\" \"@lib/pilog.l\")\n\n`*Dbg\n(docs \"@doc/\")\n"
  },
  {
    "path": "lib/adm.l",
    "content": "# 30dec24 Software Lab. Alexander Burger\n\n# *Salt *Login *Users *Perms\n\n# crypt(3) algorithm, e.g. (setq *Salt (16 . \"$6$@1$\"))\n(de passwd (Str Salt)\n   (if *Salt\n      (native \"libcrypt.so\" \"crypt\" 'S Str (or Salt (salt)))\n      Str ) )\n\n(de salt ()\n   (text (cdr *Salt) (randpw (car *Salt))) )\n\n(de randpw (Len)\n   (make\n      (in \"/dev/urandom\"\n         (do Len\n            (link\n               (get\n                  '`(mapcar char\n                     (conc\n                        (range (char \".\") (char \"9\"))\n                        (range (char \"A\") (char \"Z\"))\n                        (range (char \"a\") (char \"z\")) ) )\n                  (inc (& 63 (rd 1))) ) ) ) ) ) )\n\n(de auth (Nm Pw Cls)\n   (with (db 'nm (or Cls '+User) Nm)\n      (and\n         (: pw 0)\n         (= @ (passwd Pw @))\n         This ) ) )\n\n### Login ###\n(de login (Nm Pw Cls)\n   (ifn (setq *Login (auth Nm Pw Cls))\n      (msg *Pid \" ? \" Nm)\n      (msg *Pid \" * \" (stamp) \" \" Nm)\n      (tell 'hi *Pid Nm *Adr)\n      (push1 '*Bye '(logout))\n      (when *Timeout\n         (timeout (setq *Timeout `(* 3600 1000))) ) )\n   *Login )\n\n(de logout ()\n   (when *Login\n      (rollback)\n      (off *Login)\n      (tell 'hi *Pid)\n      (msg *Pid \" / \" (stamp))\n      (when *Timeout\n         (timeout (setq *Timeout `(* 300 1000))) ) ) )\n\n(de hi (Pid Nm Adr)\n   (if (and Nm (= Nm (; *Login nm)) (= Adr *Adr))\n      (bye)\n      (hi2 Pid Nm)\n      (tell 'hi2 *Pid (; *Login nm)) ) )\n\n(de hi2 (Pid Nm)\n   (if2 Nm (lup *Users Pid)\n      (con @ Nm)\n      (idx '*Users (cons Pid Nm) T)\n      (idx '*Users @ NIL) ) )\n\n\n### Role ###\n(class +Role +Entity)\n\n(rel nm (+Need +Key +String))          # Role name\n(rel perm (+List +Symbol))             # Permission list\n(rel usr (+List +Joint) role (+User))  # Associated users\n\n(allow \"@lib/role.l\")\n\n(dm url> (Tab)\n   (and (may RoleAdmin) (list \"@lib/role.l\" '*ID This)) )\n\n\n### User ###\n(class +User +Entity)\n\n(rel nm (+Need +Key +String))          # User name\n(rel pw (+Swap +String))               # Password\n(rel role (+Joint) usr (+Role))        # User role\n(rel nam (+String))                    # Full Name\n(rel tel (+String))                    # Phone\n(rel em (+String))                     # E-Mail\n\n(allow \"@lib/user.l\")\n\n(dm url> (Tab)\n   (and\n      (or (may UserAdmin) (== *Login This))\n      (list \"@lib/user.l\" '*ID This) ) )\n\n(dm gui> (This)\n   (<grid> 2\n      ,\"Full Name\" (gui '(+E/R +TextField) '(nam : home obj) 40)\n      ,\"Phone\" (gui '(+E/R +TelField) '(tel : home obj) 40)\n      ,\"E-Mail\" (gui '(+E/R +MailField) '(em : home obj) 40) ) )\n\n(dm login> ())\n\n\n### Permission management ###\n(de permission Lst\n   (while Lst\n      (queue '*Perms (car Lst))\n      (def (++ Lst) (++ Lst)) ) )\n\n(de may Args\n   (mmeq Args (; *Login role perm)) )\n\n(de must Args\n   (unless\n      (if (cdr Args)\n         (find\n            '((X)\n               (if (atom X)\n                  (memq X (; *Login role perm))\n                  (eval X) ) )\n            @ )\n         *Login )\n      (forbidden (car Args)) ) )\n\n### GUI ###\n(de choUser (Dst)\n   (choDlg Dst ,\"Users\" '(nm +User)) )\n\n(de loginForm \"Opt\"\n   (form NIL\n      (when \"Opt\"\n         (eval (car \"Opt\"))\n         (----) )\n      (<grid> 2\n         ,\"Name\" (gui 'nm '(+Focus +Able +TextField) '(not *Login) 20)\n         ,\"Password\" (gui 'pw '(+Able +PwField) '(not *Login) 20) )\n      (--)\n      (gui '(+Button) '(if *Login ,\"logout\" ,\"login\")\n         '(cond\n            (*Login (post (logout)))\n            ((login (val> (: home nm)) (val> (: home pw)))\n               (post\n                  (clr> (: home pw))\n                  (login> *Login) ) )\n            (T (error ,\"Permission denied\")) ) )\n      (when *Login\n         (<nbsp> 4)\n         (<span> \"bold green\"\n            (ht:Prin \"'\" (; *Login nm) ,\"' logged in\") ) )\n      (when \"Opt\"\n         (----)\n         (htPrin (cdr \"Opt\")) ) ) )\n\n(class +PasswdField +E/R +Fmt +TextField)\n\n(dm T @\n   (pass super\n      '(pw : home obj)\n      '((V) (and V \"****\"))\n      '((V)\n         (if (= V \"****\")\n            (: home obj pw 0)\n            (passwd V (: home obj pw 0)) ) ) ) )\n"
  },
  {
    "path": "lib/app.l",
    "content": "# 13apr23 Software Lab. Alexander Burger\n\n# Exit on error\n(de *Err\n   (prinl *Pid \" ! \" (stamp) \" [\" *Adr \" \" (host *Adr) \"] \" *Agent)\n   (for (\"L\" (trail T)  \"L\")\n      (cond\n         ((pair (car \"L\"))\n            (let \"E\" (++ \"L\")\n               (println\n                  (if (getd (box? (car \"E\")))\n                     (cons @ (cdr \"E\"))\n                     \"E\" ) ) ) )\n         ((== '\"L\" (car \"L\"))\n            (setq \"L\" (cddr \"L\")) )\n         (T\n            (space 3)\n            (println (++ \"L\") (++ \"L\")) ) ) )\n   (println '====)\n   (show This)\n   (println '*Uri (pack *Uri))\n   (println '*Host (pack *Host))\n   (for \"X\" '(*Port *SesId *ConId *Tab *Gui *Btn *Get *ID)\n      (println \"X\" (val \"X\")) )\n   (println '*PRG *PRG (val *PRG))\n   (rollback) )\n\n# User identification\n(de user (Pid1 Pid2 Nm To)\n   (nond\n      (Pid1 (tell 'user *Pid))\n      (Pid2\n         (tell 'user Pid1 *Pid (get *Login 'nm)\n            (/ (- *Timeout (cadr (assoc -1 *Run))) 60000) ) )\n      ((<> *Pid Pid1) (println Pid2 Nm To)) ) )\n\n# Timestamp\n(msg *Pid \" + \" (stamp))\n(flush)\n\n# Extend 'app' function\n(conc (last app)\n   '((msg *Pid \" + \" (stamp) \" [\" *Adr \" \" (host *Adr) (and *Cipher (pack \" / \" @)) \"] \" *Agent)) )\n\n# Bye message\n(push '*Fork\n   '(finish (and *SesId (msg *Pid \" - \" (stamp)))) )\n"
  },
  {
    "path": "lib/bash_completion",
    "content": "# Bash completion for picolisp + pil\n# Alexander Burger <abu@software-lab.de>\n\n_pil()\n{\n    local -a ARGS\n    local IFS=$'\\n'\n\n    for A in \"${COMP_WORDS[@]:1:$((COMP_CWORD-1))}\"\n    do\n        test \"${A:0:1}\" = \"-\" || ARGS[${#ARGS[@]}]=\"${A//\\\\ / }\"\n    done\n    COMPREPLY=($(${COMP_WORDS[0]} ${ARGS[@]} /usr/lib/picolisp/lib/complete.l \"${COMP_WORDS[$COMP_CWORD]}\" -bye + 2>&1))\n    return 0\n} &&\ncomplete -o nospace  -F _pil  picolisp  &&\ncomplete -o nospace  -F _pil  pil\n"
  },
  {
    "path": "lib/btree.l",
    "content": "# 13apr25 Software Lab. Alexander Burger\n\n# *Prune\n\n(private) (_store _put _splitBt _del)\n\n(de root (Tree)\n   (cond\n      ((not Tree) (val *DB))\n      ((atom Tree) (val Tree))\n      ((ext? (cdr Tree)) (get @ (car Tree)))\n      ((atom (cdr Tree))\n         (get *DB (cdr Tree) (car Tree)) )\n      (T (get (cddr Tree) (cadr Tree) (car Tree))) ) )\n\n# Fetch\n(de fetch (Tree Key)\n   (let? Node (cdr (root Tree))\n      (and *Prune (idx '*Prune Node T))\n      (use R\n         (loop\n            (and *Prune (set (prop Node NIL) 0))\n            (T\n               (and\n                  (setq R (rank Key (cdr (val Node))))\n                  (= Key (car R)) )\n               (or (cddr R) (fin (car R))) )\n            (NIL\n               (setq Node (if R (cadr R) (car (val Node)))) ) ) ) ) )\n\n# Store\n(de store (Tree Key Val Dbf)\n   (default Dbf (1 . 256))\n   (if (atom Tree)\n      (let Base (or Tree *DB)\n         (_store (or (val Base) (set Base (cons 0)))) )\n      (let Base\n         (if (atom (cdr Tree))\n            (or\n               (ext? (cdr Tree))\n               (get *DB (cdr Tree))\n               (put *DB (cdr Tree) (new T 0)) )\n            (or\n               (get (cddr Tree) (cadr Tree))\n               (put (cddr Tree) (cadr Tree) (new T)) ) )\n         (_store\n            (or\n               (get Base (car Tree))\n               (put Base (car Tree) (cons 0)) ) ) ) ) )\n\n(de _store (Root)\n   (and *Prune (cdr Root) (idx '*Prune @ T))\n   (ifn Val\n      (when (and (cdr Root) (_del @))\n         (touch Base)\n         (cond\n            (*Solo (zap (cdr Root)))\n            (*Zap (push @ (cdr Root))) )\n         (con Root) )\n      (and (= Val (fin Key)) (off Val))\n      (if (cdr Root)\n         (when (_put @)\n            (touch Base)\n            (con Root (def (new (car Dbf)) (list (car @) (cdr @)))) )\n         (touch Base)\n         (con Root\n            (def (new (car Dbf))\n               (list NIL (cons Key NIL Val)) ) )\n         (and *Prune (set (prop (cdr Root) NIL) 0))\n         (inc Root) ) ) )\n\n(de _put (Top)\n   (and *Prune (set (prop Top NIL) 0))\n   (let (V (val Top)  R (rank Key (cdr V)))\n      (cond\n         (R\n            (if (= Key (car R))\n               (nil (touch Top) (con (cdr R) Val))\n               (let X (memq R V)\n                  (if (cadr R)\n                     (when (_put @)\n                        (touch Top)\n                        (set (cdr R) (car @))\n                        (con X (cons (cdr @) (cdr X)))\n                        (_splitBt) )\n                     (touch Top)\n                     (con X\n                        (cons (cons Key (cons NIL Val)) (cdr X)) )\n                     (touch Base)\n                     (inc Root)\n                     (_splitBt) ) ) ) )\n         ((car V)\n            (when (_put @)\n               (touch Top)\n               (set V (car @))\n               (con V (cons (cdr @) (cdr V)))\n               (_splitBt) ) )\n         (T\n            (touch Top)\n            (con V\n               (cons (cons Key (cons NIL Val)) (cdr V)) )\n            (touch Base)\n            (inc Root)\n            (_splitBt) ) ) ) )\n\n(de _splitBt ()\n   (when (and (cddddr V) (> (size Top) (cdr Dbf)))\n      (let (N (>> 1 (length V))  X (get V (inc N)))\n         (set (cdr X)\n            (def (new (car Dbf))\n               (cons (cadr X) (nth V (+ 2 N))) ) )\n         (cons\n            (if *Solo\n               (prog (set Top (head N V)) Top)\n               (and *Zap (push @ Top))\n               (def (new (car Dbf)) (head N V)) )\n            X ) ) ) )\n\n# Del\n(de _del (Top)\n   (and *Prune (set (prop Top NIL) 0))\n   (let (V (val Top)  R (rank Key (cdr V)))\n      (cond\n         ((not R)\n            (when (and (car V) (_del @))\n               (touch Top)\n               (cond\n                  (*Solo (zap (car V)))\n                  (*Zap (push @ (car V))) )\n               (set V)\n               (not (cdr V)) ) )\n         ((= Key (car R))\n            (if (cadr R)\n               (let X (val @)\n                  (while (car X) (setq X (val @)))\n                  (touch Top)\n                  (xchg R (cadr X))\n                  (con (cdr R) (cddr (cadr X)))\n                  (when (_del (cadr R))\n                     (cond\n                        (*Solo (zap (cadr R)))\n                        (*Zap (push @ (cadr R))) )\n                     (set (cdr R)) ) )\n               (touch Base)\n               (dec Root)\n               (nand\n                  (or\n                     (con V (delq R (cdr V)))\n                     (car V) )\n                  (touch Top) ) ) )\n         ((cadr R)\n            (when (_del @)\n               (touch Top)\n               (cond\n                  (*Solo (zap (cadr R)))\n                  (*Zap (push @ (cadr R))) )\n               (set (cdr R)) ) ) ) ) )\n\n\n# Delayed deletion\n(de zap_ ()\n   (let (F (cdr *Zap)  Z (pack F \"_\"))\n      (cond\n         ((info Z)\n            (in Z (while (rd) (zap @)))\n            (if (info F)\n               (call \"mv\" F Z)\n               (%@ \"unlink\" NIL Z) ) )\n         ((info F) (call \"mv\" F Z)) ) ) )\n\n# Tree node count\n(de count (Tree)\n   (or (car (root Tree)) 0) )\n\n# Return first leaf\n(de leaf (Tree)\n   (let (Node (cdr (root Tree))  X)\n      (while (val Node)\n         (setq X (cadr @)  Node (car @)) )\n      (cddr X) ) )\n\n(private) revNode\n\n# Reverse node\n(de revNode (Node)\n   (let? Lst (val Node)\n      (let (L (car Lst)  R)\n         (for X (cdr Lst)\n            (push 'R (cons (car X) L (cddr X)))\n            (setq L (cadr X)) )\n         (cons L R) ) ) )\n\n# Key management\n(de minKey (Tree Min Max)\n   (default Max T)\n   (let (Node (cdr (root Tree))  K)\n      (use (V R X)\n         (loop\n            (NIL (setq V (val Node)) K)\n            (T\n               (and\n                  (setq R (rank Min (cdr V)))\n                  (= Min (car R)) )\n               Min )\n            (if R\n               (prog\n                  (and\n                     (setq X (cdr (memq R V)))\n                     (>= Max (caar X))\n                     (setq K (caar X)) )\n                  (setq Node (cadr R)) )\n               (when (>= Max (caadr V))\n                  (setq K (caadr V)) )\n               (setq Node (car V)) ) ) ) ) )\n\n(de maxKey (Tree Min Max)\n   (default Max T)\n   (let (Node (cdr (root Tree))  K)\n      (use (V R X)\n         (loop\n            (NIL (setq V (revNode Node)) K)\n            (T\n               (and\n                  (setq R (rank Max (cdr V) T))\n                  (= Max (car R)) )\n               Max )\n            (if R\n               (prog\n                  (and\n                     (setq X (cdr (memq R V)))\n                     (>= (caar X) Min)\n                     (setq K (caar X)) )\n                  (setq Node (cadr R)) )\n               (when (>= (caadr V) Min)\n                  (setq K (caadr V)) )\n               (setq Node (car V)) ) ) ) ) )\n\n# Step\n(de init (Tree Beg End)\n   (or Beg End (on End))\n   (let (Node (cdr (root Tree))  Q)\n      (use (V R X)\n         (if (>= End Beg)\n            (loop\n               (NIL (setq V (val Node)))\n               (T\n                  (and\n                     (setq R (rank Beg (cdr V)))\n                     (= Beg (car R)) )\n                  (push 'Q (memq R V)) )\n               (if R\n                  (prog\n                     (and\n                        (setq X (cdr (memq R V)))\n                        (>= End (caar X))\n                        (push 'Q X) )\n                     (setq Node (cadr R)) )\n                  (and\n                     (cdr V)\n                     (>= End (caadr V))\n                     (push 'Q (cdr V)) )\n                  (setq Node (car V)) ) )\n            (loop\n               (NIL (setq V (revNode Node)))\n               (T\n                  (and\n                     (setq R (rank Beg (cdr V) T))\n                     (= Beg (car R)) )\n                  (push 'Q (memq R V)) )\n               (if R\n                  (prog\n                     (and\n                        (setq X (cdr (memq R V)))\n                        (>= (caar X) End)\n                        (push 'Q X) )\n                     (setq Node (cadr R)) )\n                  (and\n                     (cdr V)\n                     (>= (caadr V) End)\n                     (push 'Q (cdr V)) )\n                  (setq Node (car V)) ) ) ) )\n      (cons (cons (cons Beg End) Q)) ) )\n\n(de step (Q Flg)\n   (use (L F X)\n      (loop\n         (T\n            (loop\n               (T (cdar Q))\n               (NIL (cdr Q) T)\n               (set Q (cadr Q))\n               (con Q (cddr Q)) ) )\n         (setq\n            L (car Q)\n            F (>= (cdar L) (caar L))\n            X (pop (cdr L)) )\n         (or (cadr L) (con L (cddr L)))\n         (T\n            (if ((if F > <) (car X) (cdar L))\n               (con (car Q))\n               (for\n                  (V (cadr X)\n                     ((if F val revNode) V)\n                     (car @) )\n                  (con L (cons (cdr @) (cdr L))) )\n               (unless (and Flg (flg? (fin (car X))))\n                  (if (cddr X)\n                     (prog (setq @@ (car X)) @)\n                     (setq @@ (caar X))\n                     (fin (car X)) ) ) )\n            @ ) ) ) )\n\n(private) (_scan _nacs _iter _reti)\n(private) (Tree Fun Beg End Flg Node R X V)\n\n# Scan tree nodes\n(de scan (Tree Fun Beg End Flg)\n   (default Fun println)\n   (or Beg End (on End))\n   (let Node (cdr (root Tree))\n      (and *Prune (idx '*Prune Node T))\n      ((if (>= End Beg) _scan _nacs) Node) ) )\n\n(de _scan (Node)\n   (let? V (val Node)\n      (for X\n         (if (rank Beg (cdr V))\n            (let R @\n               (if (= Beg (car R))\n                  (memq R (cdr V))\n                  (_scan (cadr R))\n                  (cdr (memq R (cdr V))) ) )\n            (_scan (car V))\n            (cdr V) )\n         (T (> (car X) End))\n         (unless (and Flg (flg? (fin (car X))))\n            (Fun\n               (car X)\n               (or (cddr X) (fin (car X))) ) )\n         (_scan (cadr X)) )\n      (and *Prune (set (prop Node NIL) 0)) ) )\n\n(de _nacs (Node)\n   (let? V (revNode Node)\n      (for X\n         (if (rank Beg (cdr V) T)\n            (let R @\n               (if (= Beg (car R))\n                  (memq R (cdr V))\n                  (_nacs (cadr R))\n                  (cdr (memq R (cdr V))) ) )\n            (_nacs (car V))\n            (cdr V) )\n         (T (> End (car X)))\n         (unless (and Flg (flg? (fin (car X))))\n            (Fun\n               (car X)\n               (or (cddr X) (fin (car X))) ) )\n         (_nacs (cadr X)) )\n      (and *Prune (set (prop Node NIL) 0)) ) )\n\n# Iterate tree values\n(de iter (Tree Fun Beg End Flg)\n   (default Fun println)\n   (or Beg End (on End))\n   (let Node (cdr (root Tree))\n      (and *Prune (idx '*Prune Node T))\n      ((if (>= End Beg) _iter _reti) Node) ) )\n\n(de _iter (Node)\n   (let? V (val Node)\n      (for X\n         (if (rank Beg (cdr V))\n            (let R @\n               (if (= Beg (car R))\n                  (memq R (cdr V))\n                  (_iter (cadr R))\n                  (cdr (memq R (cdr V))) ) )\n            (_iter (car V))\n            (cdr V) )\n         (T (> (car X) End))\n         (unless (and Flg (flg? (fin (car X))))\n            (Fun (or (cddr X) (fin (car X)))) )\n         (_iter (cadr X)) )\n      (and *Prune (set (prop Node NIL) 0)) ) )\n\n(de _reti (Node)\n   (let? V (revNode Node)\n      (for X\n         (if (rank Beg (cdr V) T)\n            (let R @\n               (if (= Beg (car R))\n                  (memq R (cdr V))\n                  (_reti (cadr R))\n                  (cdr (memq R (cdr V))) ) )\n            (_reti (car V))\n            (cdr V) )\n         (T (> End (car X)))\n         (unless (and Flg (flg? (fin (car X))))\n            (Fun (or (cddr X) (fin (car X)))) )\n         (_reti (cadr X)) )\n      (and *Prune (set (prop Node NIL) 0)) ) )\n\n# UB-Trees\n(de ub>= (Dim End Val Beg)\n   (let (D (>> (- 1 Dim) 1)  Pat D)\n      (while (> End Pat)\n         (setq Pat (| D (>> (- Dim) Pat))) )\n      (do Dim\n         (NIL\n            (>=\n               (& Pat End)\n               (& Pat Val)\n               (& Pat Beg) ) )\n         (setq Pat (>> 1 Pat)) ) ) )\n\n(private) (Tree Dim Fun X1 X2 Node Lst Left Beg End B E X Msb Pat N Min Max Lo Hi)\n\n(de ubIter (Tree Dim Fun X1 X2)\n   (let\n      (Node (cdr (root Tree))\n         Lst (val Node)\n         Left (++ Lst)\n         Beg (ubZval (copy X1))\n         End (ubZval (copy X2) T)\n         B (car Beg)\n         E (car End) )\n      (recur (Left Lst Beg End  X)\n         (while (setq X (++ Lst))\n            (cond\n               ((> (car X) End)\n                  (setq Lst (; Left 0 -1)  Left (; Left 0 1)) )\n               ((> Beg (car X))\n                  (if Lst\n                     (setq Left (cadr X))\n                     (setq Left (; X 2 0 1)  Lst (; X 2 0 -1)) ) )\n               ((ub>= Dim E (caar X) B)\n                  (Fun (cdar X))\n                  (recurse (; Left 0 1) (; Left 0 -1) Beg (car X))\n                  (setq Beg (car X))\n                  (if Lst\n                     (setq Left (cadr X))\n                     (setq Left (; X 2 0 1)  Lst (; X 2 0 -1)) ) )\n               (T\n                  (let (Msb 1  Pat 0  N 0  Min B  Max E  Lo (caar X)  Hi Lo)\n                     (while (>= Max Msb)\n                        (setq Msb (>> -1 Msb)  Pat (>> -1 Pat))  # Msb 100000000\n                        (when (= Dim (inc 'N))                           # Pat 000100100\n                           (inc 'Pat)\n                           (zero N) ) )\n                     (catch \"ub\"                                    # Clr 111..111011011\n                        (let (Top Msb   Clr (| Top (x| Pat (dec Msb))))\n                           (loop\n                              (T (=0 (setq Msb (>> 1 Msb))))\n                              (setq\n                                 Pat (>> 1 Pat)\n                                 Clr (| Top (>> 1 Clr)) )\n                              (ifn (bit? Msb (caar X))\n                                 (when (bit? Msb Max)\n                                    (ifn (bit? Msb Min)  # 001\n                                       (setq\n                                          Max (- (| Pat Max) Msb)  # 0111(Max)\n                                          Lo (| Msb (& Min Clr)) )   # 1000(Min)\n                                       (setq Lo Min)     # 011\n                                       (throw \"ub\") ) )\n                                 (unless (bit? Msb Min)\n                                    (if (bit? Msb Max)   # 101\n                                       (setq\n                                          Hi (- (| Pat Max) Msb)   # 0111(Max)\n                                          Min (| Msb (& Min Clr)) )  # 1000(Min)\n                                       (setq Hi Max)     # 100\n                                       (throw \"ub\") ) ) ) ) ) )\n                     (recurse (; Left 0 1) (; Left 0 -1) Beg (cons Hi T))\n                     (setq Beg (cons Lo))\n                     (if Lst\n                        (setq Left (cadr X))\n                        (setq Left (; X 2 0 1)  Lst (; X 2 0 -1)) ) ) ) ) ) ) ) )\n\n(de prune (N)\n   (for Node (idx '*Prune)\n      (recur (Node)\n         (let? V (val (lieu Node))\n            (if (>= (inc (prop Node NIL)) N)\n               (wipe Node)\n               (recurse (car V))\n               (for X (cdr V)\n                  (recurse (cadr X)) ) ) ) ) )\n   (or (gt0 N) (setq *Prune N)) )\n\n# Delete Tree\n(de zapTree (Node)\n   (let? V (val Node)\n      (zapTree (car V))\n      (for L (cdr V)\n         (zapTree (cadr L)) )\n      (zap Node) ) )\n\n(private) (Node Fun N L V X Y)\n\n# Check tree structure\n(de chkTree (Node Fun)\n   (let (N 0  X)\n      (when Node\n         (recur (Node)\n            (let V (val Node)\n               (let L (car V)\n                  (for Y (cdr V)\n                     (when L\n                        (unless (ext? L)\n                           (quit \"Bad node link\" Node) )\n                        (recurse L) )\n                     (when (>= X (car Y))\n                        (quit \"Bad sequence\" Node) )\n                     (setq X (car Y))\n                     (inc 'N)\n                     (and\n                        Fun\n                        (not (Fun (car Y) (cddr Y)))\n                        (quit \"Check fail\" Node) )\n                     (setq L (cadr Y)) )\n                  (and L (recurse L)) ) )\n            (wipe Node) ) )\n      N ) )\n"
  },
  {
    "path": "lib/canvas.js",
    "content": "/* 21jan25 Software Lab. Alexander Burger */\n\nfunction renderCanvas(cvs, lst) {\n   var ctx = cvs.getContext(\"2d\");\n   var cmd, i, j;\n\n   if (lst) {\n      for (i = 0; i < lst.length; ++i) {\n         switch ((cmd = lst[i])[0]) {  // Sync with \"@lib/canvas.l\"\n         /*** Functions ***/\n         case 1:  // (csFont Str)\n            ctx.font = cmd[1];\n         case 2:  // (csFillText Str X Y)\n            ctx.fillText(cmd[1], cmd[2], cmd[3]);\n            break;\n         case 3:  // (csStrokeLine X1 Y1 X2 Y2)\n            ctx.beginPath();\n            ctx.moveTo(cmd[1], cmd[2]);\n            ctx.lineTo(cmd[3], cmd[4]);\n            ctx.closePath();\n            ctx.stroke();\n            break;\n         case 4:  // (csClearRect X Y DX DY)\n            ctx.clearRect(cmd[1], cmd[2], cmd[3], cmd[4]);\n            break;\n         case 5:  // (csStrokeRect X Y DX DY)\n            ctx.strokeRect(cmd[1], cmd[2], cmd[3], cmd[4]);\n            break;\n         case 6:  // (csFillRect X Y DX DY)\n            ctx.fillRect(cmd[1], cmd[2], cmd[3], cmd[4]);\n            break;\n         case 7:  // (csBeginPath)\n            ctx.beginPath();\n            break;\n         case 8:  // (csClosePath)\n            ctx.closePath();\n            break;\n         case 9:  // (csMoveTo X Y)\n            ctx.moveTo(cmd[1], cmd[2]);\n            break;\n         case 10:  // (csLineTo X Y)\n            ctx.lineTo(cmd[1], cmd[2]);\n            break;\n         case 11:  // (csBezierCurveTo X1 Y1 X2 Y2 X Y)\n            ctx.bezierCurveTo(cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]);\n            break;\n         case 12:  // (csQuadraticCurveTo X1 Y1 X2 Y2)\n            ctx.quadraticCurveTo(cmd[1], cmd[2], cmd[3], cmd[4]);\n            break;\n         case 13:  // (csLine X1 Y1 X2 Y2)\n            ctx.moveTo(cmd[1], cmd[2]);\n            ctx.lineTo(cmd[3], cmd[4]);\n            break;\n         case 14:  // (csRect X Y DX DY)\n            ctx.rect(cmd[1], cmd[2], cmd[3], cmd[4]);\n            break;\n         case 15:  // (csArc X Y R A B F)\n            ctx.arc(cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]);\n            break;\n         case 16:  // (csStroke)\n            ctx.stroke();\n            break;\n         case 17:  // (csFill)\n            ctx.fill();\n            break;\n         case 18:  // (csClip)\n            ctx.clip();\n            break;\n         case 19:  // (csDef Key [DX DY Lst])\n            if (!cvs.pre)\n               cvs.pre = new Array();\n            var buf = cvs.pre[cmd[1]] = document.createElement('canvas');\n            if (cmd[2]) {\n               buf.width = cmd[2];\n               buf.height = cmd[3];\n               renderCanvas(buf, cmd[4]);\n            }\n            else {\n               buf.width = cvs.width;\n               buf.height = cvs.height;\n               buf.getContext(\"2d\").drawImage(cvs, 0, 0);\n            }\n            break;\n         case 20:  // (csDraw Key X Y)\n            var buf = cvs.pre[cmd[1]];\n            ctx.clearRect(cmd[2], cmd[3], buf.width, buf.height);\n            ctx.drawImage(buf, cmd[2], cmd[3]);\n            break;\n         case 21:  // (csDrawDots DX DY Lst)\n            if (cmd[3])\n               for (j = 0; j < cmd[3].length; j += 2)\n                  ctx.fillRect(cmd[3][j], cmd[3][j+1], cmd[1], cmd[2]);\n            break;\n         case 22:  // (csDrawImage Img X Y Lst DX DY [Key])\n            var img;\n\n            if (cmd[7]  &&  (img = (cvs.img || (cvs.img = new Array()))[cmd[7]])) {\n               if (img.lst.length > 0)\n                  img.lst.push([cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]]);\n               else {\n                  if (cmd[5])\n                     ctx.drawImage(img, cmd[2], cmd[3], cmd[5], cmd[6]);\n                  else\n                     ctx.drawImage(img, cmd[2], cmd[3]);\n                  if (cmd[4])\n                     renderCanvas(cvs, cmd[4]);\n               }\n            }\n            else {\n               (img = new Image()).src = cmd[1];\n               img.lst = [[cmd[2], cmd[3], cmd[4], cmd[5], cmd[6]]];\n               (function (img) {\n                  img.onload = function() {\n                     do {\n                        var a = img.lst.shift();\n                        if (a[3])\n                           ctx.drawImage(img, a[0], a[1], a[3], a[4]);\n                        else\n                           ctx.drawImage(img, a[0], a[1]);\n                        if (a[2])\n                           renderCanvas(cvs, a[2]);\n                     } while (img.lst.length > 0);\n                  } } )(img);\n               if (cmd[7])\n                  cvs.img[cmd[7]] = img;\n            }\n            break;\n         case 23:  // (csTranslate X Y)\n            ctx.translate(cmd[1], cmd[2]);\n            break;\n         case 24:  // (csRotate A)\n            ctx.rotate(cmd[1]);\n            break;\n         case 25:  // (csScale X Y)\n            ctx.scale(cmd[1], cmd[2]);\n            break;\n         case 26:  // (csSave)\n            ctx.save();\n            break;\n         case 27:  // (csRestore)\n            ctx.restore();\n            break;\n         /*** Variables ***/\n         case 28:  // (csCursor Lst)\n            cvs.curs = cmd[1];\n            break;\n         case 29:  // (csFillStyle V)\n            ctx.fillStyle = cmd[1];\n            break;\n         case 30:  // (csStrokeStyle V)\n            ctx.strokeStyle = cmd[1];\n            break;\n         case 31:  // (csGlobalAlpha V)\n            ctx.globalAlpha = cmd[1];\n            break;\n         case 32:  // (csLineWidth V)\n            ctx.lineWidth = cmd[1];\n            break;\n         case 33:  // (csLineCap V)\n            ctx.lineCap = cmd[1];\n            break;\n         case 34:  // (csLineJoin V)\n            ctx.lineJoin = cmd[1];\n            break;\n         case 35:  // (csMiterLimit V)\n            ctx.miterLimit = cmd[1];\n            break;\n         case 36:  // (csGlobalCompositeOperation V)\n            ctx.globalCompositeOperation = cmd[1];\n            break;\n         case 37:  // (csDelay N)\n            cvs.dly = cmd[1];\n            break;\n         case 38:  // (csPost)\n            cvs.post = true;\n            break;\n         }\n      }\n   }\n}\n\nfunction drawCanvas(id, dly) {\n   var req = new XMLHttpRequest();\n   var url = document.getElementsByTagName(\"BASE\")[0].href + SesId + \"!jsDraw?\" + id + \"&+\" + dly;\n   var flg = arguments[2];\n\n   for (var i = 2; i < arguments.length; ++i)\n      if (typeof arguments[i] === \"number\")\n         url += \"&+\" + arguments[i];\n      else\n         url += \"&\" + arguments[i];\n   try {req.open(\"POST\", url);}\n   catch (e) {return true;}\n   req.responseType = \"arraybuffer\";\n   req.onload = function() {\n      var ele = document.getElementById(id);\n\n      ele.dly = dly;\n      renderCanvas(ele, plio(new Uint8Array(req.response)));\n      if (ele.post) {\n         ele.post = false;\n         while (ele = ele.parentNode) {\n            if (ele.tagName == \"FORM\") {\n               post(ele, false, null, null);\n               break;\n            }\n         }\n      }\n      if (!flg) {\n         if (ele.auto)\n            clearTimeout(ele.auto);\n         if (ele.dly == 0)\n            drawCanvas(id, 0);\n         else if (ele.dly > 0)\n            ele.auto = setTimeout(function() {drawCanvas(id, dly)}, ele.dly);\n      }\n      ele.dly = dly;\n   };\n   try {req.send(null);}\n   catch (e) {\n      req.abort();\n      return true;\n   }\n   return false;\n}\n\nfunction doCsDn(cvs, x, y) {\n   var r = cvs.getBoundingClientRect();\n\n   cvs.csDn = true;\n   cvs.csDnX = x - r.left;\n   cvs.csDnY = y - r.top;\n   cvs.csMv = false;\n   return false;\n}\n\nfunction csMouseDn(cvs, event) {\n   return doCsDn(cvs, event.clientX, event.clientY);\n}\n\nfunction csTouchDn(cvs, event) {\n   return doCsDn(cvs, event.touches[0].clientX, event.touches[0].clientY);\n}\n\nfunction doCsMv(cvs, x, y) {\n   var r = cvs.getBoundingClientRect();\n\n   if (cvs.curs)\n      csCursor(cvs, x - r.left, y - r.top);\n   if (!cvs.csDn)\n      return true;\n   if (!cvs.csMv)\n      cvs.csMv = [x, y];\n   else {\n      if (Array.isArray(cvs.csMv)) {\n         if (drawCanvas(cvs.id, cvs.dly, 0, cvs.csDnX, cvs.csDnY, cvs.csMv[0] - r.left, cvs.csMv[1] - r.top))\n            return true;\n         cvs.csMv = true;\n      }\n      if (drawCanvas(cvs.id, cvs.dly, -1, cvs.csDnX, cvs.csDnY, x - r.left, y - r.top))\n         return true;\n   }\n   return false;\n}\n\nfunction csMouseMv(cvs, event) {\n   return doCsMv(cvs, event.clientX, event.clientY);\n}\n\nfunction csTouchMv(cvs, event) {\n   if (event.targetTouches.length == 1) {\n      event.preventDefault();\n      return doCsMv(cvs, event.touches[0].clientX, event.touches[0].clientY);\n   }\n   return false;\n}\n\nfunction csMouseUp(cvs) {\n   cvs.csDn = false;\n   if (cvs.clicked) {\n      clearTimeout(cvs.clicked);\n      cvs.clicked = null;\n      return drawCanvas(cvs.id, cvs.dly, 2, cvs.csDnX, cvs.csDnY);\n   }\n   if (cvs.csMv)\n      return drawCanvas(cvs.id, cvs.dly, \"$T\");\n   cvs.clicked = setTimeout(\n      function() {\n         cvs.clicked = null;\n         drawCanvas(cvs.id, cvs.dly, 1, cvs.csDnX, cvs.csDnY);\n      },\n      200 );\n   return false;\n}\n\nfunction csTouchEnd(cvs) {\n   cvs.csDn = false;\n   if (cvs.csMv)\n      return drawCanvas(cvs.id, cvs.dly, \"$T\");\n   return false;\n}\n\nfunction csLeave(cvs) {\n   cvs.style.cursor = \"\";\n   cvs.csDn = cvs.csMv = false;\n   if (cvs.clicked) {\n      clearTimeout(cvs.clicked);\n      cvs.clicked = null;\n   }\n   return drawCanvas(cvs.id, cvs.dly, \"$T\");\n}\n\nfunction csCursor(cvs, x, y) {\n   var a;\n\n   for (var i = 0; i < cvs.curs.length; ++i) {\n      if (typeof (a = cvs.curs[i]) === \"string\") {\n         cvs.style.cursor = a;\n         return;\n      }\n      for (var j = 1; j < a.length; j += 4) {\n         if (a[j] <= x && x <= a[j+2] && a[j+1] <= y && y <= a[j+3]) {\n            cvs.style.cursor = a[0];\n            return;\n         }\n      }\n   }\n   cvs.style.cursor = \"\";\n}\n"
  },
  {
    "path": "lib/canvas.l",
    "content": "# 19sep23 Software Lab. Alexander Burger\n\n(allow \"!jsDraw\" )\n(push1 '*JS (allow \"@lib/plio.js\") (allow \"@lib/canvas.js\"))\n\n# Draw   (drawCanvas Id Dly [T])\n# Click  (drawCanvas Id Dly 1 X Y)\n# Double (drawCanvas Id Dly 2 X Y)\n# Start  (drawCanvas Id Dly 0 X Y X2 Y2)\n# Move   (drawCanvas Id Dly -1 X Y X2 Y2)\n(de jsDraw (Id Dly F X Y X2 Y2)\n   (http1 \"application/octet-stream\" 0)\n   (let Lst (drawCanvas Id Dly F X Y X2 Y2)\n      (prinl \"Content-Length: \" (bytes Lst) \"\\r\\n\\r\")\n      (pr Lst) ) )\n\n# Canvas Commands\n(for (Opc . L)\n   (quote  # In sync with \"@lib/canvas.js\"\n      ### Functions ###\n      (csFont Str)\n      (csFillText Str X Y)\n      (csStrokeLine X1 Y1 X2 Y2)\n      (csClearRect X Y DX DY)\n      (csStrokeRect X Y DX DY)\n      (csFillRect X Y DX DY)\n      (csBeginPath)\n      (csClosePath)\n      (csMoveTo X Y)\n      (csLineTo X Y)\n      (csBezierCurveTo X1 Y1 X2 Y2 X Y)\n      (csQuadraticCurveTo X1 Y1 X2 Y2)\n      (csLine X1 Y1 X2 Y2)\n      (csRect X Y DX DY)\n      (csArc X Y R A B F)\n      (csStroke)\n      (csFill)\n      (csClip)\n      (csDef Key DX DY Lst)\n      (csDraw Key X Y)\n      (csDrawDots DX DY Lst)\n      (csDrawImage Img X Y Lst DX DY Key)\n      (csTranslate X Y)\n      (csRotate A)\n      (csScale X Y)\n      (csSave)\n      (csRestore)\n      ### Variables ###\n      (csCursor Lst)\n      (csFillStyle V)\n      (csStrokeStyle V)\n      (csGlobalAlpha V)\n      (csLineWidth V)\n      (csLineCap V)\n      (csLineJoin V)\n      (csMiterLimit V)\n      (csGlobalCompositeOperation V)\n      (csDelay N)\n      (csPost) )\n   (def (car L)\n      (list\n         (cdr L)\n         (list 'link\n            (if (cdr L)\n               (cons 'list Opc @)\n               (list Opc) ) ) ) ) )\n\n(de <canvas> (Id DX DY Alt)\n   (prin\n      \"<canvas id=\\\"\" Id\n      \"\\\" width=\\\"\" DX\n      \"\\\" height=\\\"\" DY\n      \"\\\" onmousedown=\\\"csMouseDn(this, event)\"\n      \"\\\" ontouchstart=\\\"csTouchDn(this, event)\"\n      \"\\\" onmousemove=\\\"csMouseMv(this, event)\"\n      \"\\\" ontouchmove=\\\"csTouchMv(this, event)\"\n      \"\\\" onmouseup=\\\"csMouseUp(this)\"\n      \"\\\" ontouchend=\\\"csTouchEnd(this)\"\n      \"\\\" onmouseout=\\\"csLeave(this)\"\n      \"\\\" ontouchleave=\\\"csLeave(this)\\\"\" )\n   (dfltCss \"canvas\")\n   (prinl \">\" Alt \"</canvas>\" ) )\n\n(de <drawCanvas> (Id DX DY Dly Post)\n   (unless (str? Id)\n      (put Id 'home *Top)\n      (setq Id (pack \"$\" Id)) )\n   (<canvas> Id DX DY)\n   (if Post\n      (<javascript> \"Post = function() {drawCanvas('\" Id \"', \" Dly \")}; Post()\")\n      (<javascript> \"drawCanvas('\" Id \"', \" Dly \")\") ) )\n\n### Debug ###\n`*Dbg\n\n(noLint 'drawCanvas)\n"
  },
  {
    "path": "lib/clang.l",
    "content": "# 19may21 Software Lab. Alexander Burger\n\n(de clang (Nm L . Lst)\n   (out (tmp Nm \".c\") (here \"/**/\"))\n   (apply call L \"clang\" \"-o\" (tmp Nm)\n      \"-fPIC\" \"-O\" \"-w\" \"-shared\" (tmp Nm \".c\"))\n   (for L Lst\n      (def (car L)\n         (list\n            (cadr L)\n            (cons 'native (tmp Nm) (name (caddr L)) (cdddr L)) ) )\n      (when (== '@ (fin (cadr L)))\n         (push (cdaar L) 'pass) ) ) )\n"
  },
  {
    "path": "lib/complete.l",
    "content": "# 29dec20 Software Lab. Alexander Burger\n\n(if (opt)\n   (let \"Lst\" (chop @)\n      (if (= \"-\" (car \"Lst\"))\n         (let \"Pre\" (++ \"Lst\")\n            (when (member (car \"Lst\") '(\"\\\"\" \"'\"))\n               (setq \"Pre\" (++ \"Lst\")) )\n            (let \"Str\" (pack \"Lst\")\n               (for \"Sym\" (all)\n                  (and\n                     (pre? \"Str\" \"Sym\")\n                     (getd \"Sym\")\n                     (prinl \"Pre\" \"Sym\" (and (= \"-\" \"Pre\") \" \")) ) ) ) )\n         (let (\"Path\" (rot (split \"Lst\" \"/\"))  \"Str\" (pack (car \"Path\")))\n            (setq \"Path\" (and (cdr \"Path\") (pack (glue \"/\" @) \"/\")))\n            (for \"Sym\" (dir \"Path\" T)\n               (when (pre? \"Str\" \"Sym\")\n                  (prinl \"Path\"\n                     (replace (chop \"Sym\") \" \" \"\\\\ \")\n                     (if (=T (car (info (pack \"Path\" \"Sym\"))))\n                        \"/\"\n                        \" \" ) ) ) ) ) ) )\n   (prinl '+) )\n"
  },
  {
    "path": "lib/db.l",
    "content": "# 12apr26 Software Lab. Alexander Burger\n\n# *Jnl *Blob\n\n### Tree Access ###\n(de tree (Var Cls Hook)\n   (cons Var\n      (if Hook\n         (cons Cls Hook)\n         Cls ) ) )\n\n(de genKey (Var Cls Hook Min Max)\n   (if (lt0 Max)\n      (let K (minKey (tree Var Cls Hook) Min Max)\n         (if (lt0 K) (dec K) (or Max -1)) )\n      (let K (maxKey (tree Var Cls Hook) Min Max)\n         (if (gt0 K) (inc K) (or Min 1)) ) ) )\n\n(de useKey (Var Cls Hook)\n   (let (Tree (tree Var Cls Hook)  Max (* 2 (inc (count Tree)))  N)\n      (while (fetch Tree (setq N (rand 1 Max))))\n      N ) )\n\n(de genStrKey (Str Var Cls Hook)\n   (while (fetch (tree Var Cls Hook) Str)\n      (setq Str (pack \"# \" Str)) )\n   Str )\n\n(de ubZval (Lst X)\n   (let (Res 0  P 1  Q 1)\n      (while (find '((N) (>= N Q)) Lst)\n         (for N Lst\n            (and\n               N\n               (bit? Q N)\n               (setq Res (| Res P)) )\n            (setq P (>> -1 P)) )\n         (setq Q (>> -1 Q)) )\n      (cons Res X) ) )\n\n\n### Relations ###\n(class +relation)\n\n(dm T (Var)\n   (=: cls *Class)\n   (=: var Var) )\n\n# Type check\n(dm mis> (Val Obj))  #> lst\n(dm ele> (Val))\n\n# Value present?\n(dm has> (Val X)  #> flg\n   (= Val X) )\n\n# Set value\n(dm put> (Obj Old New)\n   New )\n\n# Delete value\n(dm del> (Obj Old Val)\n   (and (<> Old Val) Val) )\n\n# Maintain relations\n(dm rel> (Obj Old New))\n\n(dm rel?> (Obj Val)\n   T )\n\n(dm lose> (Obj Val))\n\n(dm keep> (Obj Val))\n\n# Search\n(dm iter> (X Lst)\n   (cons\n      (list (: cls Dbf 1))\n      (let @Cls (: cls)\n         (curry (@Cls) (P)\n            (loop\n               (NIL (and (car P) (set P (seq (car P)))))\n               (T (and (isa '@Cls @) (not (; @ T)))\n                  (car P) ) ) ) ) ) )\n\n(dm match> (X Val Obj)\n   (cond\n      ((not X) Val)\n      ((str? X) (pre? X Val))\n      ((atom X) (and (= X Val) Val))\n      ((>= (cdr X) (car X))\n         (and (>= (cdr X) Val (car X)) Val) )\n      ((>= (car X) Val (cdr X)) Val) ) )\n\n# Finalizer\n(dm zap> (Obj Val))\n\n\n(class +Any +relation)\n\n# (+Bag) (cls ..) (..) (..)\n(class +Bag +relation)\n\n(dm T (Var Lst)\n   (=: bag\n      (mapcar\n         '((L)\n            (prog1\n               (new (car L) Var (cdr L))\n               (and (get @ 'hook) (=: hook T)) ) )\n         Lst ) )\n   (super Var) )\n\n(dm mis> (Val Obj)\n   (ifn (lst? Val)\n      \"Not a Bag\"\n      (pick\n         '((This V)\n            (mis> This V Obj\n               (when (: hook)\n                  (get (if (sym? @) Obj Val) (: hook)) ) ) )\n         (: bag)\n         Val ) ) )\n\n(dm ele> (Val)\n   (and Val\n      (or\n         (atom Val)\n         (find 'ele> (: bag) Val) ) ) )\n\n(dm has> (Val X)\n   (when Val\n      (if (atom Val)\n         (find 'has> (: bag) Val X)\n         (fully 'has> (: bag) Val X) ) ) )\n\n(dm put> (Obj Old New)\n   (trim\n      (mapcar\n         '((X O N) (put> X Obj O N))\n         (: bag)\n         Old\n         New ) ) )\n\n(dm rel> (Obj Old New)\n   (when Old\n      (mapc\n         '((This O)\n            (rel> This Obj O NIL\n               (when (: hook)\n                  (get (if (sym? @) Obj Old) (: hook)) ) ) )\n         (: bag)\n         Old ) )\n   (when New\n      (mapc\n         '((This N)\n            (rel> This Obj NIL N\n               (when (: hook)\n                  (get (if (sym? @) Obj New) (: hook)) ) ) )\n         (: bag)\n         New ) ) )\n\n(dm rel?> (Obj Val)\n   (fully\n      '((This V)\n         (or\n            (not V)\n            (rel?> This Obj V\n               (when (: hook)\n                  (get (if (sym? @) Obj Val) (: hook)) ) ) ) )\n      (: bag)\n      Val ) )\n\n(dm lose> (Obj Val)\n   (mapc\n      '((This V)\n         (lose> This Obj V\n            (when (: hook)\n               (get (if (sym? @) Obj Val) (: hook)) ) ) )\n      (: bag)\n      Val ) )\n\n(dm keep> (Obj Val)\n   (mapc\n      '((This V)\n         (keep> This Obj V\n            (when (: hook)\n               (get (if (sym? @) Obj Val) (: hook)) ) ) )\n      (: bag)\n      Val ) )\n\n(dm iter> (X Lst)\n   (if\n      (find\n         '((B) (isa '+index B))\n         (: bag) )\n      (iter> @ X Lst)\n      (super X Lst) ) )\n\n(dm match> (X Val Obj)\n   (pick 'match> (: bag)\n      (circ X)\n      Val\n      (circ Obj) ) )\n\n\n(class +Bool +relation)\n\n(dm mis> (Val Obj)\n   (and Val (nT Val) ,\"Boolean input expected\") )\n\n\n# (+Number) [num]\n(class +Number +relation)\n\n(dm T (Var Lst)\n   (=: scl (car Lst))\n   (super Var) )\n\n(dm mis> (Val Obj)\n   (and Val (not (num? Val)) ,\"Numeric input expected\") )\n\n\n# (+Date)\n(class +Date +Number)\n\n(dm T (Var Lst)\n   (super Var (cons NIL Lst)) )\n\n\n# (+Time)\n(class +Time +Number)\n\n(dm T (Var Lst)\n   (super Var (cons NIL Lst)) )\n\n\n# (+Symbol)\n(class +Symbol +relation)\n\n(dm mis> (Val Obj)\n   (unless (sym? Val)\n      ,\"Symbolic type expected\" ) )\n\n\n# (+String)\n(class +String +Symbol)\n\n(dm mis> (Val Obj)\n   (and Val (not (str? Val)) ,\"String type expected\") )\n\n\n(private) canQuery\n\n# (+Link) typ\n(class +Link +relation)\n\n(dm T (Var Lst)\n   (unless (=: type (car Lst))\n      (quit \"No Link\" Var) )\n   (super Var) )\n\n(de canQuery (Val)\n   (and\n      (pair Val)\n      (pair (car Val))\n      (fully\n         '((L)\n            (find\n               '((Cls)\n                  (get Cls\n                     ((if (lst? (car L)) cadr car) L) ) )\n               (: type) ) )\n         Val ) ) )\n\n(dm mis> (Val Obj)\n   (and\n      Val\n      (nor\n         (isa (: type) Val)\n         (canQuery Val) )\n      ,\"Type error\" ) )\n\n\n# (+Joint) var typ [put get]\n(class +Joint +Link)\n\n(dm T (Var Lst)\n   (=: slot (car Lst))\n   (=: put (caddr Lst))\n   (=: get (cadddr Lst))\n   (super Var (cdr Lst)) )\n\n(dm mis> (Val Obj)\n   (and\n      Val\n      (nor\n         (canQuery Val)\n         (and\n            (isa (: type) Val)\n            (with (meta Val (: slot))\n               (or\n                  (isa '+Link This)\n                  (find\n                     '((B) (isa '+Link B))\n                     (: bag) ) ) ) ) )\n      ,\"Type error\" ) )\n\n(dm rel> (Obj Old New)\n   (and Old\n      (del> Old (: slot)\n         (if (: get)\n            (@ Obj (get Old (: slot)))\n            Obj ) ) )\n   (and New\n      (not (get Obj T))\n      (not (has> New (: slot) Obj))\n      (put> New (: slot)\n         (if (: put) (@ Obj) Obj) ) ) )\n\n(dm rel?> (Obj Val)\n   (let X (get Val (: slot))\n      (cond\n         ((atom X) (== Obj X))\n         ((: get) (@ Obj X))\n         (T (memq Obj X)) ) ) )\n\n(dm lose> (Obj Val)\n   (when Val\n      (put Val (: slot)\n         (del> (meta Val (: slot))\n            Obj\n            (get Val (: slot))\n            (if (: put) (@ Obj) Obj) ) ) ) )\n\n(dm keep> (Obj Val)\n   (when Val\n      (put Val (: slot)\n         (put> (meta Val (: slot))\n            Obj\n            (get Val (: slot))\n            (if (: put) (@ Obj) Obj) ) ) ) )\n\n\n# +Link or +Joint prefix\n(class +Hook)\n\n(dm rel> (Obj Old New Hook)\n   (let L\n      (extract\n         '((X)\n            (and (atom X) (setq X (cons T X)))\n            (and\n               (or\n                  (== (: var) (meta Obj (cdr X) 'hook))\n                  (find\n                     '((B) (== (: var) (get B 'hook)))\n                     (meta Obj (cdr X) 'bag) ) )\n               X ) )\n         (getl Obj) )\n      (for X L\n         (rel> (meta Obj (cdr X)) Obj (car X) NIL (or Old *DB))\n         (rel> (meta Obj (cdr X)) Obj NIL (car X) (or New *DB)) ) )\n   (extra Obj Old New Hook) )\n\n\n# +Index prefix\n(class +Hook2)\n\n(dm rel> (Obj Old New Hook)\n   (extra Obj Old New *DB)\n   (when (or (and Hook (n== Hook *DB)) (and (: hook) (get Obj @)))\n      (extra Obj Old New Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (extra Obj Val *DB)\n   (when (or (and Hook (n== Hook *DB)) (and (: hook) (get Obj @)))\n      (extra Obj Val Hook) ) )\n\n(dm keep> (Obj Val Hook)\n   (extra Obj Val *DB)\n   (when (or (and Hook (n== Hook *DB)) (and (: hook) (get Obj @)))\n      (extra Obj Val Hook) ) )\n\n\n# (+Blob)\n(class +Blob +relation)\n\n(de blob (Obj Var)\n   (pack *Blob (glue \"/\" (chop Obj)) \".\" Var) )\n\n(dm put> (Obj Old New)\n   (and\n      New\n      (dirname (blob Obj))\n      (call \"mkdir\" \"-p\" @) )\n   (if (flg? New)\n      New\n      (in New (out (blob Obj (: var)) (echo)))\n      T ) )\n\n(dm zap> (Obj Val)\n   (and Val (%@ \"unlink\" NIL (blob Obj (: var)))) )\n\n\n### Index classes ###\n(private) (idxRel? relAux)\n\n(class +index)\n\n(dm T (Var Lst)\n   (=: hook (car Lst))\n   (extra Var (cdr Lst)) )\n\n(dm rel?> (Obj Val Hook))\n\n\n# (+Key +relation) [hook]\n(class +Key +index)\n\n(dm mis> (Val Obj Hook)\n   (or\n      (extra Val Obj Hook)\n      (and\n         Val\n         (not (has> Obj (: var) Val))\n         (fetch\n            (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n            Val )\n         ,\"Not unique\" ) ) )\n\n(dm rel> (Obj Old New Hook)\n   (let Tree (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n      (and Old\n         (= Obj (fetch Tree Old))\n         (store Tree Old NIL (: dbf)) )\n      (and New\n         (not (get Obj T))\n         (not (fetch Tree New))\n         (store Tree New Obj (: dbf)) ) )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (== Obj\n      (fetch\n         (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         Val ) ) )\n\n(dm lose> (Obj Val Hook)\n   (store\n      (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n      Val NIL (: dbf) )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (store\n      (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n      Val Obj (: dbf) )\n   (extra Obj Val Hook) )\n\n(dm iter> (X Lst)\n   (let Tree (tree (: var) (: cls) (caddr Lst))\n      (cons\n         (nond\n            ((atom X)\n               (nond\n                  ((str? (car X))\n                     (init Tree (car X) (cdr X)) )\n                  ((>= (cdr X) (car X))\n                     (init Tree (pack (car X) `(char T)) (cdr X)) )\n                  (NIL\n                     (init Tree (car X) (pack (cdr X) `(char T))) ) ) )\n            ((str? X) (init Tree X X))\n            (NIL (init Tree X (pack X `(char T)))) )\n         (let @Cls (cadr Lst)\n            (curry (@Cls) (Q)\n               (loop\n                  (NIL (step Q))\n                  (T (isa '@Cls @) @) ) ) ) ) ) )\n\n\n# (+Ref +relation) [hook]\n(class +Ref +index)\n\n(dm rel> (Obj Old New Hook)\n   (let\n      (Tree (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         Aux (mapcar '((S) (get Obj S)) (: aux)) )\n      (when Old\n         (let Key (cons Old Aux)\n            (store Tree\n               (if (: ub)\n                  (ubZval Key Obj)\n                  (append Key Obj) )\n               NIL\n               (: dbf) ) ) )\n      (and New\n         (not (get Obj T))\n         (let Key (cons New Aux)\n            (store Tree\n               (if (: ub)\n                  (ubZval Key Obj)\n                  (conc Key Obj) )\n               Obj\n               (: dbf) ) ) ) )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (let Key (cons Val (mapcar '((S) (get Obj S)) (: aux)))\n      (== Obj\n         (fetch\n            (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n            (if (: ub)\n               (ubZval Key Obj)\n               (append Key Obj) ) ) ) ) )\n\n(dm lose> (Obj Val Hook)\n   (let Key (cons Val (mapcar '((S) (get Obj S)) (: aux)))\n      (store\n         (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         (if (: ub)\n            (ubZval Key Obj)\n            (conc Key Obj) )\n         NIL\n         (: dbf) ) )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (let Key (cons Val (mapcar '((S) (get Obj S)) (: aux)))\n      (store\n         (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         (if (: ub)\n            (ubZval Key Obj)\n            (conc Key Obj) )\n         Obj\n         (: dbf) ) )\n   (extra Obj Val Hook) )\n\n(dm iter> (X Lst @Flg)\n   (let Tree (tree (: var) (: cls) (caddr Lst))\n      (cons\n         (nond\n            (X (init Tree NIL T))\n            ((atom X)\n               (nond\n                  ((str? (car X))\n                     (if (>= (cdr X) (car X))\n                        (init Tree\n                           (cons (car X))\n                           (cons (cdr X) T) )\n                        (init Tree\n                           (cons (car X) T)\n                           (cons (cdr X)) ) ) )\n                  ((>= (cdr X) (car X))\n                     (init Tree\n                        (cons (pack (car X) `(char T)) T)\n                        (cons (cdr X)) ) )\n                  (NIL\n                     (init Tree\n                        (cons (car X))\n                        (cons (pack (cdr X) `(char T)) T) ) ) ) )\n            ((str? X)\n               (init Tree (cons X) (cons X T)) )\n            (NIL\n               (init Tree (cons X) (cons (pack X `(char T)) T)) ) )\n         (let @Cls (cadr Lst)\n            (curry (@Flg @Cls) (Q)\n               (loop\n                  (NIL (step Q @Flg))\n                  (T (isa '@Cls @) @) ) ) ) ) ) )\n\n\n# Backing index prefix\n(class +Ref2)\n\n(dm T (Var Lst)\n   (unless (meta *Class Var)\n      (quit \"No Ref2\" Var) )\n   (extra Var Lst) )\n\n(dm rel> (Obj Old New Hook)\n   (with (meta (: cls) (: var))\n      (let Tree (tree (: var) (: cls))\n         (when Old\n            (store Tree (cons Old Obj) NIL (: dbf)) )\n         (and New\n            (not (get Obj T))\n            (store Tree (cons New Obj) Obj (: dbf)) ) ) )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (and\n      (with (meta (: cls) (: var))\n         (== Obj\n            (fetch\n               (tree (: var) (: cls))\n               (cons Val Obj) ) ) )\n      (extra Obj Val Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (with (meta (: cls) (: var))\n      (store (tree (: var) (: cls)) (cons Val Obj) NIL (: dbf)) )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (with (meta (: cls) (: var))\n      (store (tree (: var) (: cls)) (cons Val Obj) Obj (: dbf)) )\n   (extra Obj Val Hook) )\n\n\n# (+Idx +relation) [cnt [hook]]\n(class +Idx +Ref)\n\n(dm T (Var Lst)\n   (=: min (or (car Lst) 3))\n   (super Var (cdr Lst)) )\n\n(de idxRel (Obj Old Old2 Olds New New2 News Hook)\n   (let\n      (Tree (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         Aux (mapcar '((S) (get Obj S)) (: aux))\n         Aux2 (append Aux (cons Obj)) )\n      (setq Aux (conc Aux Obj))\n      (and Old (store Tree (cons @ Aux) NIL (: dbf)))\n      (and Old2 (store Tree (cons @ Aux2) NIL (: dbf)))\n      (for S Olds\n         (while (nth S (: min))\n            (store Tree (cons (pack S) Aux2) NIL (: dbf))\n            (++ S) ) )\n      (unless (get Obj T)\n         (and New (store Tree (cons @ Aux) Obj (: dbf)))\n         (and New2 (store Tree (cons @ Aux2) Obj (: dbf)))\n         (for S News\n            (while (nth S (: min))\n               (store Tree (cons (pack S) Aux2) Obj (: dbf))\n               (++ S) ) ) ) ) )\n\n(de idxRel? (Obj Val Val2 Vals Hook)\n   (let\n      (Tree (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         Aux (mapcar '((S) (get Obj S)) (: aux))\n         Aux2 (append Aux (cons Obj)) )\n      (setq Aux (conc Aux Obj))\n      (and\n         (== Obj (fetch Tree (cons Val Aux)))\n         (or (not Val2) (== Obj (fetch Tree (cons Val2 Aux2))))\n         (fully\n            '((S)\n               (loop\n                  (NIL (nth S (: min)) T)\n                  (NIL (== Obj (fetch Tree (cons (pack S) Aux2))))\n                  (++ S) ) )\n            Vals ) ) ) )\n\n(dm rel> (Obj Old New Hook)\n   (idxRel Obj\n      Old NIL (split (cdr (chop Old)) \" \" \"\\n\")\n      New NIL (split (cdr (chop New)) \" \" \"\\n\")\n      Hook )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (and\n      (idxRel? Obj\n         Val NIL (split (cdr (chop Val)) \" \" \"\\n\")\n         Hook )\n      (extra Obj Val Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (idxRel Obj\n      Val NIL (split (cdr (chop Val)) \" \" \"\\n\")\n      NIL NIL NIL\n      Hook )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (idxRel Obj\n      NIL NIL NIL\n      Val NIL (split (cdr (chop Val)) \" \" \"\\n\")\n      Hook )\n   (extra Obj Val Hook) )\n\n(dm iter> (X Lst)\n   (on *Iter+)\n   (super X Lst (not X)) )\n\n(dm match> (X Val Obj)\n   (sub? X Val) )\n\n\n# (+Sn +index) [hook]\n(class +Sn)\n\n(dm rel> (Obj Old New Hook)\n   (let Tree (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n      (and Old\n         (ext:Snx Old)\n         (store Tree (cons @ Obj T) NIL (: dbf)) )\n      (and New\n         (not (get Obj T))\n         (ext:Snx New)\n         (store Tree (cons @ Obj T) Obj (: dbf)) ) )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (and\n      (let S (ext:Snx Val)\n         (or\n            (not S)\n            (== Obj\n               (fetch\n                  (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n                  (cons S Obj T) ) ) ) )\n      (extra Obj Val Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (let? S (ext:Snx Val)\n      (store\n         (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         (cons S Obj T)\n         NIL (: dbf) ) )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (let? S (ext:Snx Val)\n      (store\n         (tree (: var) (: cls) (or Hook (and (: hook) (get Obj @))))\n         (cons S Obj T)\n         Obj (: dbf) ) )\n   (extra Obj Val Hook) )\n\n(dm iter> (X Lst)\n   (on *Iter+)\n   (cons\n      (list\n         (list\n            (car (extra X Lst))\n            (init (tree (: var) (: cls) (caddr Lst))\n               (cons (setq X (ext:Snx X)))\n               (cons (pack X `(char T)) T) ) ) )\n      (let @Cls (cadr Lst)\n         (curry (@Cls) (Q)\n            (loop\n               (NIL\n                  (or\n                     (step (caar Q))\n                     (and (cdar Q) (shift Q) (step (caar Q))) ) )\n               (T (isa '@Cls @) @) ) ) ) ) )\n\n(dm match> (X Val Obj)\n   (or\n      (extra X Val Obj)\n      (and (pre? (ext:Snx X) (ext:Snx Val)) Val) ) )\n\n\n# (+Fold +index) [hook]\n(class +Fold)\n\n(dm has> (Val X)\n   (extra Val\n      (if (= Val (fold Val)) (fold X) X) ) )\n\n(dm rel> (Obj Old New Hook)\n   (extra Obj (fold Old) (fold New) Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (let V (fold Val)\n      (or (not V) (extra Obj V Hook)) ) )\n\n(dm lose> (Obj Val Hook)\n   (extra Obj (fold Val) Hook) )\n\n(dm keep> (Obj Val Hook)\n   (extra Obj (fold Val) Hook) )\n\n(dm iter> (X Lst)\n   (extra\n      (if (pair X)\n         (cons (fold (car X)) (fold (cdr X)))\n         (fold X) )\n      Lst ) )\n\n(dm match> (X Val Obj)\n   (when\n      (extra\n         (if (pair X)\n            (cons (fold (car X)) (fold (cdr X)))\n            (fold X) )\n         (fold Val)\n         Obj )\n      Val ) )\n\n\n# (+IdxFold +relation) [cnt [hook]]\n(class +IdxFold +Ref)\n\n(dm T (Var Lst)\n   (=: min (or (car Lst) 3))\n   (super Var (cdr Lst)) )\n\n(dm rel> (Obj Old New Hook)\n   (idxRel Obj\n      Old (fold Old)\n      (extract '((L) (extract fold L))\n         (split (cdr (chop Old)) \" \" \"\\n\") )\n      New (fold New)\n      (extract '((L) (extract fold L))\n         (split (cdr (chop New)) \" \" \"\\n\") )\n      Hook )\n   (extra Obj Old New Hook) )\n\n(dm rel?> (Obj Val Hook)\n   (and\n      (let V (fold Val)\n         (or (not V)\n            (idxRel? Obj\n               Val V\n               (extract '((L) (extract fold L))\n                  (split (cdr (chop Val)) \" \" \"\\n\") )\n               Hook ) ) )\n      (extra Obj Val Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (idxRel Obj\n      Val (fold Val)\n      (extract '((L) (extract fold L))\n         (split (cdr (chop Val)) \" \" \"\\n\") )\n      NIL NIL NIL\n      Hook )\n   (extra Obj Val Hook) )\n\n(dm keep> (Obj Val Hook)\n   (idxRel Obj\n      NIL NIL NIL\n      Val (fold Val)\n      (extract '((L) (extract fold L))\n         (split (cdr (chop Val)) \" \" \"\\n\") )\n      Hook )\n   (extra Obj Val Hook) )\n\n(dm iter> (X Lst)\n   (on *Iter+)\n   (super (fold X) Lst (not X)) )\n\n(dm match> (X Val Obj)\n   (and (sub? (fold X) (fold Val)) Val) )\n\n\n# (+Aux) lst\n(class +Aux)\n\n(dm T (Var Lst)\n   (=: aux (car Lst))\n   (with *Class\n      (for A (car Lst)\n         (if (asoq A (: Aux))\n            (queue '@ Var)\n            (queue (:: Aux) (list A Var)) ) ) )\n   (extra Var (cdr Lst)) )\n\n(de relAux (Obj Var Old Lst)\n   (let New (get Obj Var)\n      (put Obj Var Old)\n      (for A Lst\n         (rel> (meta Obj A) Obj (get Obj A) NIL) )\n      (put Obj Var New)\n      (for A Lst\n         (rel> (meta Obj A) Obj NIL (get Obj A)) ) ) )\n\n(dm iter> (X Lst)\n   (if (or (atom X) (atom (car X)))\n      (extra X Lst)\n      (let Tree (tree (: var) (: cls) (caddr Lst))\n         (cons\n            (if (>= (cdr X) (car X))\n               (init Tree\n                  (car X)\n                  (append (cdr X) T) )\n               (init Tree\n                  (append (car X) T)\n                  (cdr X) ) )\n            (let @Cls (cadr Lst)\n               (curry (@Cls) (Q)\n                  (loop\n                     (NIL (step Q))\n                     (T (isa '@Cls @) @) ) ) ) ) ) ) )\n\n(dm match> (X Val Obj)\n   (if (or (atom X) (atom (car X)))\n      (extra X Val Obj)\n      (setq Val\n         (cons Val\n            (mapcar '((S) (get Obj S)) (: aux)) ) )\n      (when\n         (if (>= (cdr X) (car X))\n            (>= (append (cdr X) T) Val (car X))\n            (>= (append (car X) T) Val (cdr X)) )\n         Val ) ) )\n\n\n# UB-Tree (+Aux prefix)\n(class +UB)\n\n(dm T (Var Lst)\n   (=: ub T)\n   (extra Var Lst) )\n\n(dm has> (Val X)\n   (and Val\n      (or\n         (extra Val X)\n         (extra\n            (let (N (inc (length (: aux)))  M 1  V 0)\n               (while (gt0 Val)\n                  (and (bit? 1 Val) (inc 'V M))\n                  (setq M (>> -1 M)  Val (>> N Val)) )\n               V )\n            X ) ) ) )\n\n(dm iter> (X Lst)\n   (cons\n      (init (tree (: var) (: cls) (caddr Lst))\n         (ubZval (car X))\n         (ubZval (cdr X) T) )\n      (let @Cls (cadr Lst)\n         (curry (@Cls) (Q)\n            (loop\n               (NIL (step Q))\n               (T (isa '@Cls @) @) ) ) ) ) )\n\n\n### Relation prefix classes ###\n(class +Dep)\n\n(dm T (Var Lst)\n   (=: dep (car Lst))\n   (extra Var (cdr Lst)) )\n\n(dm rel> (Obj Old New Hook)\n   (unless New\n      (for Var (: dep)\n         (let? V (get Obj Var)\n            (rel> (meta Obj Var) Obj V\n               (put Obj Var (put> (meta Obj Var) Obj V NIL)) )\n            (when (asoq Var (meta Obj 'Aux))\n               (relAux Obj Var V (cdr @)) )\n            (upd> Obj Var V) ) ) )\n   (extra Obj Old New Hook) )\n\n\n(class +List)\n\n(dm mis> (Val Obj)\n   (ifn (lst? Val)\n      \"Not a List\"\n      (pick '((V) (extra V Obj)) Val) ) )\n\n(dm ele> (Val)\n   (and Val (or (atom Val) (find extra Val))) )\n\n(dm has> (Val X)\n   (when Val\n      (or\n         (= Val X)\n         (find '((X) (extra Val X)) X)\n         (loop\n            (NIL\n               (let (V (++ Val)  Y (++ X))\n                  (or (= V Y) (extra V Y)) ) )\n            (NIL (or Val X) T)\n            (T (xor Val X)) ) ) ) )\n\n(dm put> (Obj Old New)\n   (if (ele> This New)\n      (cons (extra Obj Old New) Old)\n      (mapcar\n         '((N O) (extra Obj O N))\n         New\n         Old ) ) )\n\n(dm del> (Obj Old Val)\n   (and\n      (<> Old Val)\n      (delete Val Old T) ) )\n\n(dm rel> (Obj Old New Hook)\n   (if (or (ele> This Old) (ele> This New))\n      (extra Obj Old New Hook)\n      (for O Old\n         (if (: bag)\n            (for (I . This) @\n               (let V (get O I)\n                  (unless (find '((L) (= V (get L I))) New)\n                     (rel> This Obj V NIL\n                        (when (: hook)\n                           (get (if (sym? @) Obj O) (: hook)) ) ) ) ) )\n            (unless (member O New)\n               (extra Obj O NIL Hook) ) ) )\n      (for N New\n         (if (: bag)\n            (for (I . This) @\n               (let V (get N I)\n                  (unless (find '((L) (= V (get L I))) Old)\n                     (rel> This Obj NIL V\n                        (when (: hook)\n                           (get (if (sym? @) Obj N) (: hook)) ) ) ) ) )\n            (unless (member N Old)\n               (extra Obj NIL N Hook) ) ) ) ) )\n\n(dm rel?> (Obj Val Hook)\n   (for V Val\n      (NIL (or (not V) (extra Obj V Hook)))\n      T ) )\n\n(dm lose> (Obj Val Hook)\n   (if (ele> This Val)\n      (extra Obj Val Hook)\n      (for V Val\n         (extra Obj V Hook) ) ) )\n\n(dm keep> (Obj Val Hook)\n   (if (ele> This Val)\n      (extra Obj Val Hook)\n      (for V Val\n         (extra Obj V Hook) ) ) )\n\n(dm iter> (X Lst)\n   (on *Iter+)\n   (extra X Lst (not X)) )\n\n(dm match> (X Val Obj)\n   (pick '((Y) (extra X Y Obj)) Val) )\n\n\n(class +Need)\n\n(dm mis> (Val Obj)\n   (ifn Val\n      ,\"Input required\"\n      (extra Val Obj) ) )\n\n\n(class +Mis)\n\n(dm T (Var Lst)\n   (=: mis (car Lst))\n   (extra Var (cdr Lst)) )\n\n(dm mis> (Val Obj)\n   (or ((: mis) Val Obj) (extra Val Obj)) )\n\n\n(class +Alt)\n\n(dm T (Var Lst)\n   (extra Var (cdr Lst))\n   (=: cls (car Lst)) )\n\n\n(class +Swap)\n\n(dm mis> (Val Obj)\n   (extra (if (ext? Val) (val Val) Val) Obj) )\n\n(dm has> (Val X)\n   (if (ext? Val)\n      (== Val X)\n      (extra Val (val X)) ) )\n\n(dm put> (Obj Old New)\n   (let N\n      (extra\n         Obj\n         (val Old)\n         (if (ext? New) (val @) New) )\n      (cond\n         ((ext? Old)\n            (if (ext? New)\n               New\n               (set Old N)\n               Old ) )\n         (N\n            (prog1\n               (new (or (: dbf 1) 1))\n               (set @ N) ) ) ) ) )\n\n(dm del> (Obj Old Val)\n   (ifn (ext? Old)\n      (extra Obj Old Val)\n      (set @ (extra Obj (val Old) Val))\n      @ ) )\n\n(dm rel> (Obj Old New Hook)\n   (extra\n      Obj\n      (if (ext? Old) (val @) Old)\n      (if (ext? New) (val @) New)\n      Hook ) )\n\n(dm rel?> (Obj Val Hook)\n   (if (ext? Val)\n      (if (val @)\n         (extra Obj @ Hook)\n         T )\n      (extra Obj Val Hook) ) )\n\n(dm lose> (Obj Val Hook)\n   (extra Obj (if (ext? Val) (val @) Val) Hook) )\n\n(dm keep> (Obj Val Hook)\n   (extra Obj (if (ext? Val) (val @) Val) Hook) )\n\n\n### Entities ###\n(de dbSync (Obj)\n   (let *Run NIL\n      (while (lock (or Obj *DB))\n         (wait 40) )\n      (sync) ) )\n\n(class +Entity)\n\n(var Dbf)\n(var Aux)\n\n(de incECnt (Obj)\n   (let M NIL\n      (for Cls (type Obj)\n         (recur (Cls)\n            (or\n               (== '+Entity Cls)\n               (memq Cls M)\n               (when (isa '+Entity (push 'M Cls))\n                  (for C (type @)\n                     (recurse C) )\n                  (if (get *DB Cls)\n                     (inc @)\n                     (put *DB Cls (new T 1)) ) ) ) ) ) ) )\n\n(de decECnt (Obj)\n  (let M NIL\n     (for Cls (type Obj)\n        (recur (Cls)\n           (or\n              (== '+Entity Cls)\n              (memq Cls M)\n              (when (isa '+Entity (push 'M Cls))\n                 (for C (type @)\n                    (recurse C) )\n                 (and (get *DB Cls) (dec @)) ) ) ) ) ) )\n\n(private) (cloneKey cloneAny)\n\n(dm T @\n   (incECnt This)\n   (while (args)\n      (let A (next)\n         (cond\n            ((=T A) (put This T T))\n            ((atom A) (put> This A (next)))\n            (T (put> This (car A) (eval (cdr A)))) ) ) )\n   (upd> This (val This)) )\n\n(dm zap> ()\n   (for X (getl This)\n      (let V (or (atom X) (++ X))\n         (and (meta This X) (zap> @ This V)) ) )\n   (unless (: T) (decECnt This)) )\n\n(dm url> (Tab Fld))\n\n(dm url1> (Tab Fld) (url> This 1 Fld))\n(dm url2> (Tab Fld) (url> This 2 Fld))\n(dm url3> (Tab Fld) (url> This 3 Fld))\n(dm url4> (Tab Fld) (url> This 4 Fld))\n(dm url5> (Tab Fld) (url> This 5 Fld))\n(dm url6> (Tab Fld) (url> This 6 Fld))\n(dm url7> (Tab Fld) (url> This 7 Fld))\n(dm url8> (Tab Fld) (url> This 8 Fld))\n(dm url9> (Tab Fld) (url> This 9 Fld))\n\n(dm gui> ())\n\n(dm upd> (X Old))\n\n(dm has> (Var Val)\n   (or\n      (nor\n         Val\n         (if2 (get This Var) (ext? @) (val @) @) )\n      (has> (meta This Var) Val (get This Var)) ) )\n\n(dm rel?> (Var Val)\n   (nond\n      (Val T)\n      ((meta This Var) T)\n      (NIL (rel?> @ This Val)) ) )\n\n(dm put> (Var Val)\n   (unless (has> This Var Val)\n      (let Old (get This Var)\n         (rel> (meta This Var) This Old\n            (put This Var (put> (meta This Var) This Old Val)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old) ) )\n   Val )\n\n(dm put!> (Var Val)\n   (unless (has> This Var Val)\n      (dbSync)\n      (let Old (get This Var)\n         (rel> (meta This Var) This Old\n            (put This Var (put> (meta This Var) This Old Val)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old)\n         (commit 'upd) ) )\n   Val )\n\n(dm del> (Var Val)\n   (when (and Val (has> (meta This Var) Val (get This Var)))\n      (let Old (get This Var)\n         (rel> (meta This Var) This Old\n            (put This Var (del> (meta This Var) This Old Val)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old) ) ) )\n\n(dm del!> (Var Val)\n   (when (and Val (has> (meta This Var) Val (get This Var)))\n      (dbSync)\n      (let Old (get This Var)\n         (rel> (meta This Var) This Old\n            (put This Var (del> (meta This Var) This Old Val)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old)\n         (commit 'upd) ) ) )\n\n(dm inc> (Var Val)\n   (let P (prop This Var)\n      (when (num? (car P))\n         (let Old @\n            (rel> (meta This Var) This Old\n               (inc P (or Val 1)) )\n            (when (asoq Var (meta This 'Aux))\n               (relAux This Var Old (cdr @)) )\n            (upd> This Var Old) )\n         (car P) ) ) )\n\n(dm inc!> (Var Val)\n   (when (num? (get This Var))\n      (dbSync)\n      (let (P (prop This Var)  Old (car P))\n         (rel> (meta This Var) This Old\n            (inc P (or Val 1)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old)\n         (commit 'upd)\n         (car P) ) ) )\n\n(dm dec> (Var Val)\n   (let P (prop This Var)\n      (when (num? (car P))\n         (let Old @\n            (rel> (meta This Var) This Old\n               (dec P (or Val 1)) )\n            (when (asoq Var (meta This 'Aux))\n               (relAux This Var Old (cdr @)) )\n            (upd> This Var Old) )\n         (car P) ) ) )\n\n(dm dec!> (Var Val)\n   (when (num? (get This Var))\n      (dbSync)\n      (let (P (prop This Var)  Old (car P))\n         (rel> (meta This Var) This Old\n            (dec P (or Val 1)) )\n         (when (asoq Var (meta This 'Aux))\n            (relAux This Var Old (cdr @)) )\n         (upd> This Var Old)\n         (commit 'upd)\n         (car P) ) ) )\n\n(dm mis> (Var Val)\n   (mis> (meta This Var) Val This) )\n\n(dm lose1> (Var)\n   (when (meta This Var)\n      (lose> @ This (get This Var)) ) )\n\n(dm lose> (Lst)\n   (unless (: T)\n      (for X (getl This)\n         (let V (or (atom X) (++ X))\n            (and\n               (not (memq X Lst))\n               (meta This X)\n               (lose> @ This V) ) ) )\n      (decECnt This)\n      (=: T T)\n      (upd> This) ) )\n\n(dm lose!> (Lst)\n   (dbSync)\n   (lose> This Lst)\n   (commit 'upd) )\n\n(de lose \"Prg\"\n   (let \"Flg\" (: T)\n      (=: T T)\n      (run \"Prg\")\n      (=: T \"Flg\") ) )\n\n(dm keep1> (Var)\n   (when (meta This Var)\n      (keep> @ This (get This Var)) ) )\n\n(dm keep> (Lst)\n   (when (: T)\n      (=: T)\n      (incECnt This)\n      (for X (getl This)\n         (let V (or (atom X) (++ X))\n            (and\n               (not (memq X Lst))\n               (meta This X)\n               (keep> @ This V) ) ) )\n      (upd> This T) ) )\n\n(dm keep?> (Lst)\n   (extract\n      '((X)\n         (with (and (pair X) (meta This (cdr X)))\n            (and\n               (isa '+Key This)\n               (fetch (tree (: var) (: cls) (and (: hook) (get (up This) @))) (car X))\n               (cons (car X) ,\"Not unique\") ) ) )\n      (getl This) ) )\n\n(dm keep!> (Lst)\n   (dbSync)\n   (keep> This Lst)\n   (commit 'upd) )\n\n(de keep \"Prg\"\n   (let \"Flg\" (: T)\n      (=: T)\n      (run \"Prg\")\n      (=: T \"Flg\") ) )\n\n(dm set> (Val)\n   (unless (= Val (val This))\n      (decECnt This)\n      (let Lst (make (maps '((X) (link (fin X))) This))\n         (for Var Lst\n            (let? Rel (meta This Var)\n               (unless (== Rel (meta Val Var))\n                  (let V (get This Var)\n                     (and (isa '+Swap Rel) (setq V (val V)))\n                     (rel> Rel This V (put> Rel This V NIL)) ) ) ) )\n         (xchg This 'Val)\n         (for Var Lst\n            (let? Rel (meta This Var)\n               (unless (== Rel (meta Val Var))\n                  (let V (get This Var)\n                     (rel> Rel This NIL\n                        (put> Rel This NIL\n                           (if (isa '+Swap Rel) (val V) V) ) ) ) ) ) ) )\n      (incECnt This)\n      (upd> This (val This) Val) )\n   (val This) )\n\n(dm set!> (Val)\n   (unless (= Val (val This))\n      (dbSync)\n      (decECnt This)\n      (let Lst (make (maps '((X) (link (fin X))) This))\n         (for Var Lst\n            (let? Rel (meta This Var)\n               (unless (== Rel (meta Val Var))\n                  (let V (get This Var)\n                     (and (isa '+Swap Rel) (setq V (val V)))\n                     (rel> Rel This V (put> Rel This V NIL)) ) ) ) )\n         (xchg This 'Val)\n         (for Var Lst\n            (let? Rel (meta This Var)\n               (unless (== Rel (meta Val Var))\n                  (let V (get This Var)\n                     (rel> Rel This NIL\n                        (put> Rel This NIL\n                           (if (isa '+Swap Rel) (val V) V) ) ) ) ) ) ) )\n      (incECnt This)\n      (upd> This (val This) Val)\n      (commit 'upd) )\n   (val This) )\n\n(dm clone> (Lst)\n   (let Obj (new (or (var: Dbf 1) 1) (val This))\n      (for X\n         (by\n            '((X)\n               (nand\n                  (pair X)\n                  (isa '+Hook (meta This (cdr X))) ) )\n            sort\n            (getl This) )\n         (unless (memq (fin X) Lst)\n            (if (atom X)\n               (ifn (meta This X)\n                  (put Obj X T)\n                  (let Rel @\n                     (put> Obj X T)\n                     (when (isa '+Blob Rel)\n                        (in (blob This X)\n                           (out (blob Obj X) (echo)) )\n                        (blob+ Obj X) ) ) )\n               (ifn (meta This (cdr X))\n                  (put Obj (cdr X) (car X))\n                  (let Rel @\n                     (cond\n                        ((find '((B) (isa '+Key B)) (get Rel 'bag))\n                           (let (K @  H (get K 'hook))\n                              (put> Obj (cdr X)\n                                 (mapcar\n                                    '((Lst)\n                                       (mapcar\n                                          '((B Val)\n                                             (if (== B K)\n                                                (cloneKey B (cdr X) Val\n                                                   (and H (get (if (sym? H) This Lst) H)) )\n                                                Val ) )\n                                          (get Rel 'bag)\n                                          Lst ) )\n                                    (car X) ) ) ) )\n                        ((isa '+Key Rel)\n                           (put> Obj (cdr X)\n                              (cloneKey Rel (cdr X) (car X)\n                                 (and (get Rel 'hook) (get This @)) ) ) )\n                        ((or (not (isa '+Joint Rel)) (isa '+List (meta Obj (cdr X))))\n                           (put> Obj (cdr X) (cloneAny (car X) Rel)) ) ) ) ) ) ) )\n      Obj ) )\n\n(de cloneKey (Rel Var Val Hook)\n   (cond\n      ((isa '+Number Rel)\n         (genKey Var (get Rel 'cls) Hook) )\n      ((isa '+String Rel)\n         (genStrKey (pack \"# \" Val) Var (get Rel 'cls) Hook) ) ) )\n\n(de cloneAny (Val Rel)\n   (cond\n      ((isa '+Swap Rel) (val Val))\n      ((isa '+Bag Rel)\n         (if (isa '+List Rel)\n            (mapcar\n               '((B) (mapcar cloneAny B (; Rel bag)))\n               Val )\n            (mapcar cloneAny Val (; Rel bag)) ) )\n      (T Val) ) )\n\n(dm clone!> ()\n   (prog2\n      (dbSync)\n      (clone> This)\n      (commit 'upd) ) )\n\n(de new! (\"Typ\" . @)\n   (prog2\n      (dbSync)\n      (pass new (or (meta \"Typ\" 'Dbf 1) 1) \"Typ\")\n      (commit 'upd) ) )\n\n(de set! (Obj Val)\n   (unless (= Val (val Obj))\n      (dbSync)\n      (set Obj Val)\n      (commit 'upd) )\n   Val )\n\n(de put! (Obj Var Val)\n   (unless (= Val (get Obj Var))\n      (dbSync)\n      (put Obj Var Val)\n      (commit 'upd) )\n   Val )\n\n(de inc! (Obj Var Val)\n   (when (num? (get Obj Var))\n      (prog2\n         (dbSync)\n         (inc (prop Obj Var) (or Val 1))\n         (commit 'upd) ) ) )\n\n(de blob! (Obj Var File)\n   (put!> Obj Var File)\n   (blob+ Obj Var)\n   File )\n\n(de blob+ (Obj Var)\n   (when *Jnl\n      (chdir *Blob\n         (%@ \"symlink\" 'I\n            (pack (glue \"/\" (chop Obj)) \".\" Var)\n            (pack \"=\" (name Obj) \".\" Var) ) ) ) )\n\n\n# Remote entities\n(class +Remote)\n\n(dm zap> ())\n(dm has> ~(method 'has> '+Entity))\n(dm url> (Tab Fld))\n(dm url1> ~(method 'url1> '+Entity))\n(dm url2> ~(method 'url2> '+Entity))\n(dm url3> ~(method 'url3> '+Entity))\n(dm url4> ~(method 'url4> '+Entity))\n(dm url5> ~(method 'url5> '+Entity))\n(dm url6> ~(method 'url6> '+Entity))\n(dm url7> ~(method 'url7> '+Entity))\n(dm url8> ~(method 'url8> '+Entity))\n(dm url9> ~(method 'url9> '+Entity))\n(dm put> (Var Val))\n(dm put!> (Var Val))\n(dm del> (Var Val))\n(dm del!> (Var Val))\n(dm inc> (Var Val))\n(dm inc!> (Var Val))\n(dm dec> (Var Val))\n(dm dec!> (Var Val))\n(dm mis> (Var Val))\n(dm lose1> (Var))\n(dm lose> (Lst))\n(dm lose!> (Lst))\n(dm keep1> (Var))\n(dm keep> (Lst))\n(dm keep?> (Lst))\n(dm keep!> (Lst))\n(dm set> (Val))\n(dm set!> (Val))\n\n\n# Default syncronization function\n(de upd Lst\n   (wipe Lst) )\n\n### DB Sizes ###\n(de dbs Lst\n   (setq *Dbs\n      (make\n         (for (N . L) Lst\n            (let Dbf (cons N (>> (- (link (car L))) 64))\n               (for Cls (cdr L)\n                  (if (atom Cls)\n                     (put Cls 'Dbf Dbf)\n                     (for Var (cdr Cls)\n                        (let Rel (get Cls 1 Var)\n                           (unless Rel\n                              (quit \"Bad relation\" (cons Var (car Cls))) )\n                           (when (or (isa '+index Rel) (isa '+Swap Rel))\n                              (put @ 'dbf Dbf) )\n                           (for B (; Rel bag)\n                              (when (or (isa '+index B) (isa '+Swap B))\n                                 (put @ 'dbf Dbf)) ) ) ) ) ) ) ) ) ) )\n\n(de db: Typ\n   (or (meta Typ 'Dbf 1) 1) )\n\n### Utilities ###\n(private) _db\n\n(de treeRel (Var Cls)\n   (with (or (get Cls Var) (meta Cls Var))\n      (or\n         (find '((B) (isa '+index B)) (: bag))\n         This ) ) )\n\n# (db 'var 'cls ['hook] 'any ['var 'any ..]) -> sym\n(de db (Var Cls . @)\n   (with (treeRel Var Cls)\n      (let (Tree (tree (: var) (: cls) (and (: hook) (next)))  Val (next))\n         (if (isa '+Key This)\n            (if (args)\n               (and (fetch Tree Val) (pass _db @))\n               (fetch Tree Val) )\n            (let Key (cons (if (isa '+Fold This) (fold Val) Val))\n               (let? A (: aux)\n                  (while (and (args) (== (++ A) (arg 1)))\n                     (next)\n                     (queue 'Key (next)) )\n                  (and (: ub) (setq Key (ubZval Key))) )\n               (let Q (init Tree Key (append Key T))\n                  (loop\n                     (NIL (step Q T))\n                     (T (pass _db @ Var Val) @) ) ) ) ) ) ) )\n\n(de _db (Obj . @)\n   (when (isa Cls Obj)\n      (loop\n         (NIL (next) Obj)\n         (NIL (has> Obj @ (next))) ) ) )\n\n# (aux 'var 'cls ['hook] 'any ..) -> sym\n(de aux (Var Cls . @)\n   (with (treeRel Var Cls)\n      (use Key\n         (step\n            (init (tree (: var) (: cls) (and (: hook) (next)))\n               (setq Key (if (: ub) (ubZval (rest)) (rest)))\n               (append Key T) ) ) ) ) )\n\n# (collect 'var 'cls ['hook] ['any|beg ['end [var ..]]]) -> lst\n(de collect (Var Cls . @)\n   (with (treeRel Var Cls)\n      (let\n         (Tree (tree (: var) (: cls) (and (: hook) (next)))\n            X1 (next)\n            X2 (if (args) (next) (or X1 T)) )\n         (make\n            (cond\n               ((isa '+Key This)\n                  (iter Tree\n                     '((X) (and (isa Cls X) (link (pass get X))))\n                     X1 X2 ) )\n               ((: ub)\n                  (if X1\n                     (ubIter Tree (inc (length (: aux)))\n                        '((X) (and (isa Cls X) (link (pass get X))))\n                        X1 X2 )\n                     (iter Tree\n                        '((X) (and (isa Cls X) (link (pass get X)))) ) ) )\n               (T\n                  (when (isa '+Fold This)\n                     (setq X1 (fold X1)  X2 (or (=T X2) (fold X2))) )\n                  (if (>= X2 X1)\n                     (if (pair X1)\n                        (setq X2 (append X2 T))\n                        (setq X1 (cons X1)  X2 (cons X2 T)) )\n                     (if (pair X1)\n                        (setq X1 (append X1 T))\n                        (setq X1 (cons X1 T)  X2 (cons X2)) ) )\n                  (iter Tree\n                     '((X)\n                        (and (isa Cls X) (link (pass get X))) )\n                     X1 X2\n                     (or (isa '+Idx This) (isa '+IdxFold This)) ) ) ) ) ) ) )\n\n# Combined 'search' function\n(private) (*SX *SY search1)\n\n(de relQ (X Lst)\n   (iter> (meta (cdr Lst) (car Lst)) X Lst) )\n\n(de search1 (Val Lst)  # ((Q . stepFun) . lst)\n   (let X (++ Lst)\n      (cons\n         (cond\n            ((pair (cdr X)) (relQ Val X))\n            ((pair (setq X (get Val (cdr X))))\n               (cons (list X) pop) )\n            (T (cons (list (list X)) pop)) )\n         Lst ) ) )\n\n(de search (*SX *SY . @)\n   (ifn *SY\n      (for (P (cddr *SX)  P  (or (cdr P) (cddr *SX)))  # Next search result\n         (NIL (setq *SY ((cadar P) (caaar P))))\n         (T\n            (and\n               (fully  # Filter\n                  '((L) ((cddr L) *SY (cdar L)))\n                  (cddr *SX) )\n               (nand  # Deduplicate\n                  (val *SX)\n                  (idx *SX (cons (hash *SY) *SY) T) )\n               ((cadr *SX) *SY) )  # Extract\n            (setq P\n               (rot (cddr *SX) (offset P (cddr *SX))) )\n            @ ) )\n      # Init search\n      (let\n         (*Iter+ NIL\n            Lst\n            (make\n               (link prog)  # idx and extract\n               (loop\n                  (when (or *SX (nor (args) (cdr (made))))\n                     (link  # ((Q . V) genFun . filterFun)\n                        (cons\n                           (cons\n                              (list\n                                 (if (pair (caar *SY))\n                                    (cons ((car *SY) *SX) (cddr *SY))  # (init . step)\n                                    (search1 *SX *SY) ) )\n                              *SX )\n                           '((Q)  # Generator\n                              (use Obj\n                                 (loop\n                                    (T\n                                       (nor  # Done\n                                          (setq Obj ((cdaar Q) (caaar Q)))\n                                          (cdr Q) ) )\n                                    (T (unless (cdar Q) Obj) Obj)  # Result\n                                    (if Obj\n                                       (let L (cdar Q)\n                                          (con Q (cons (car Q) (cdr Q)))\n                                          (or\n                                             (val *SX)  # 'idx'\n                                             (not\n                                                (isa '+List\n                                                   (if (pair (cdar L))\n                                                      (meta @ (caar L))  # (+Ref +Link)\n                                                      (with (meta Obj (cdar L))  # +Joint\n                                                         (meta (: type) (: slot)) ) ) ) )\n                                             (set *SX T) )\n                                          (set Q (search1 Obj L)) )\n                                       (set Q (cadr Q))\n                                       (con Q (cddr Q)) ) ) ) )\n                           (let  # Filter\n                              (@Exe\n                                 (if (pair (caar *SY))\n                                    (cons\n                                       (lit (car (shift '*SY)))\n                                       '(X V) )\n                                    (list 'match>\n                                       (lit\n                                          (if (atom (cdar *SY))\n                                             (with (meta *SX (cdar *SY))  # +Joint\n                                                (meta (: type) (: slot)) )\n                                             (meta (cdar *SY) (caar *SY)) ) )  # +index\n                                       'V\n                                       (list '; 'X (caar *SY))\n                                       'X ) )\n                                 @Lst (flip (mapcar car (cdr *SY))) )\n                              (curry (@Lst @Exe) (X V)\n                                 (let L '@Lst\n                                    (recur (X L)\n                                       (if L\n                                          (pick recurse\n                                             (fish ext? (get X (++ L)))\n                                             (circ L) )\n                                          @Exe ) ) ) ) ) ) ) )\n                  (setq *SX (next))\n                  (NIL (setq *SY (next))\n                     (and *SX (set (made) @)) ) ) ) )\n         (cons\n            (or *Iter+ (bool (cddr Lst)))  # 'idx'\n            Lst ) ) ) )\n\n# Multiple indexes\n(de relQs (@Lst . @)\n   (cons\n      (curry (@Lst) (X)\n         (on *Iter+)\n         (cons\n            (list\n               (mapcar '((Y) (relQ X Y)) '@Lst) )\n            '((Q)\n               (or\n                  ((cdaar Q) (caaar Q))\n                  (and\n                     (cdar Q)\n                     (shift Q)\n                     ((cdaar Q) (caaar Q)) ) ) ) ) )\n      (let\n         (@L\n            (mapcar\n               '((Y) (meta (cdr Y) (car Y)))\n               @Lst )\n            @V (mapcar car @Lst) )\n         (curry (@L @V) (X Val)\n            (find\n               '((R V) (match> R Val (get X V) X))\n               '@L\n               '@V ) ) )\n      (rest) ) )\n\n# Iterate all objects of given class or search query\n(private) (X Prg)\n\n(de forall (X . Prg)\n   (cond\n      ((or (atom X) (num? (car X)))  # 'seq'\n         (for\n            (This\n               (seq\n                  (or\n                     (and (pair X) (++ X))\n                     (; X Dbf 1)\n                     (meta X 'Dbf 1)\n                     1 ) )\n               This\n               (seq This) )\n            (and (isa X This) (run Prg 1)) ) )\n      ((flg? (car X))  # 'search'\n         (while (search X)\n            (with @ (run Prg 1)) ) )\n      (T  # 'init'\n         (while (step X)\n            (with @ (run Prg 1)) ) ) ) )\n\n# Define object variables as relations\n(de rel Lst\n   (def *Class\n      (car Lst)\n      (new (cadr Lst) (car Lst) (cddr Lst)) ) )\n\n# Find or create object\n(de request (Typ Var . @)\n   (let Dbf (or (meta Typ 'Dbf 1) 1)\n      (ifn Var\n         (new Dbf Typ)\n         (with (meta Typ Var)\n            (or\n               (pass db Var (: cls))\n               (if (: hook)\n                  (pass new Dbf Typ @ (next) Var)\n                  (pass new Dbf Typ Var) ) ) ) ) ) )\n\n(de request! (Typ Var . @)\n   (prog2\n      (dbSync)\n      (pass request Typ Var)\n      (commit 'upd) ) )\n\n# Create or update object\n(private) *ObjIdx\n\n(de obj Lst\n   (let Obj\n      (let L (++ Lst)\n         (if (pair (car L))\n            (apply request L)\n            (cache '*ObjIdx (++ Lst)\n               (new (or (meta L 'Dbf 1) 1) L) ) ) )\n      (while Lst\n         (let (K (++ Lst)  V (++ Lst))\n            (if (=T K)\n               (lose> Obj)\n               (put> Obj K V) ) ) )\n      Obj ) )\n\n# Create or update lots of objects\n(de create (Typ Key Vars . Prg)\n   (prune 0)\n   (setq Vars  # ((var fd lst cnt . cnt) ..)\n      (mapcar\n         '((Var)\n            (if (isa '+index (meta Typ Var))\n               (cons Var\n                  (open (tmp (pack \"create-\" Var)))\n                  NIL 0 1000000 )\n               Var ) )\n         Vars ) )\n   (while (run Prg)  # (val ..)\n      (let (Lst @  Obj (or (fin Lst) (new (meta Typ 'Dbf 1) Typ)))\n         (and Key (++ Lst) (put> Obj Key @))\n         (let store '((Tree Key Val Dbf) (link Key))\n            (mapc\n               '((V Val)\n                  (when (or Val (fin Lst))\n                     (if (atom V)\n                        (put> Obj V Val)\n                        (out (cadr V)\n                           (for Key (make (put> Obj (car V) Val))\n                              (at (cdddr V) (push (cddr V) Key))\n                              (pr Key Obj) ) ) ) ) )\n               Vars\n               Lst ) ) )\n      (at (0 . 1000000) (commit) (prune 2)) )\n   (commit)\n   (prune 0)\n   (let Lst\n      (extract\n         '((V)\n            (unless (atom V)\n               (close (cadr V))\n               (let\n                  (Var (car V)\n                     File (tmp (pack \"create-\" Var))\n                     N 0 )\n                  (setq V\n                     (mapcar\n                        '((Key)\n                           (let F (tmp (pack \"create-\" (inc 'N)))\n                              (cons Key F\n                                 (or (open F) (quit \"Too many files\")) ) ) )\n                        (cons NIL (sort (caddr V))) ) )\n                  (in File\n                     (while (setq Key (rd))\n                        (out (cddr (rank Key V))\n                           (pr Key (rd)) ) ) )\n                  (%@ \"unlink\" NIL File)\n                  (let (Dbf (meta Typ Var 'dbf)  Tree (cons Var (new T)))\n                     (for R V\n                        (close (cddr R))\n                        (for X\n                           (sort\n                              (make\n                                 (in (cadr R)\n                                    (while (rd)\n                                       (link (cons @ (rd))) ) ) ) )\n                           (store Tree (car X) (cdr X) Dbf)\n                           (at (0 . 1000) (prune 2)) )\n                        (commit)\n                        (prune 2)\n                        (%@ \"unlink\" NIL (cadr R)) )\n                     (commit)\n                     Tree ) ) ) )\n         Vars )\n      (prune)\n      (for Tree Lst\n         (let\n            (Base (get *DB (meta Typ (car Tree) 'cls))\n               Root (get (cdr Tree) (car Tree)) )\n            (ifn (get Base (car Tree))\n               (put Base (car Tree) Root)\n               (touch Base)\n               (inc @ (car Root)) ) )\n         (zap (cdr Tree)) )\n      (commit) ) )\n\n### Debug ###\n`*Dbg\n\n(noLint 'create 'store)\n\n(load \"@lib/sq.l\")\n"
  },
  {
    "path": "lib/dbgc.l",
    "content": "# 04jun23 Software Lab. Alexander Burger\n\n### DB Garbage Collection ###\n\n(private) (markData markExt)\n\n(de markExt (S)\n   (unless (mark S T)\n      (markData (val S))\n      (maps markData S)\n      (wipe S) ) )\n\n(de markData (X)\n   (while (pair X)\n      (markData (++ X)) )\n   (and (ext? X) (markExt X)) )\n\n(let Cnt 0\n   (dbSync)\n   (markExt *DB)\n   (for L *ExtDBs  # (\"path/\" <cnt> <ofs>)\n      (let ((P N E) L  Lck)\n         (for I N\n            (let (Fd (open (pack P (hax (dec I))))  (Cnt . Siz) (blk Fd 0))\n               (and (=1 I) (setq Lck Fd))\n               (for Blk (dec Cnt)\n                  (mapc markExt\n                     (fish ext? (ext E (blk Fd Blk Siz Lck))) ) )\n               (close Fd) ) ) ) )\n   (finally (mark 0)\n      (for (F . @) (or *Dbs (2))\n         (for (S (seq F)  S  (seq S))\n            (unless (mark S)\n               (inc 'Cnt)\n               (and (isa '+Entity S) (zap> S))\n               (zap S) ) ) ) )\n   (when *Blob\n      (use (@S @R F S)\n         (let Pat (conc (chop *Blob) '(@S \".\" @R))\n            (in (list 'find *Blob \"-type\" \"f\")\n               (while (setq F (line))\n                  (when (match Pat F)\n                     (unless\n                        (and\n                           (setq S (extern (pack (delete \"/\" @S T))))\n                           (get S (intern @R)) )\n                        (inc 'Cnt)\n                        (%@ \"unlink\" NIL (pack F)) )\n                     (wipe S) ) ) ) ) ) )\n   (commit)\n   (gt0 Cnt) )\n"
  },
  {
    "path": "lib/debug.l",
    "content": "# 05nov25 Software Lab. Alexander Burger\n\n# Prompt\n(de *Prompt\n   (casq (car (symbols)) (pico) (T @)) )\n\n(private) (_who _match nest nst1 nst2 C D E M S X Y Z Fun Prg Who dep1 dep2)\n\n# Edit history\n(de h ()\n   (let F (tmp \"history\")\n      (out F\n         (mapc prinl (history)) )\n      (and\n         (vi (cons T F))\n         (history\n            (in F\n               (make (while (line T) (link @))) ) )\n         T ) ) )\n\n# Browsing\n(de help (Sym Ex)\n   (when (; Sym doc)\n      (prinl \"========================================\")\n      (in @\n         (from\n            (pack\n               \"<dt><a id=\\\"\"\n               (replace (chop Sym)\n                  \"%\" \"%25\"\n                  \"<\" \"%3C\"\n                  \">\" \"%3E\"\n                  \"\\^\" \"%5E\"\n                  \"|\" \"%7C\")\n               \"\\\">\" ) )\n         (out '(\"w3m\" \"-T\" \"text/html\" \"-dump\")\n            (prin \"<dt>\")\n            (echo \"</a>\")\n            (echo \"<dd>\")\n            (prinl \"<br/>\")\n            (echo \"\\n<pre>\")\n            (ifn Ex\n               (prinl \"<br/><br/>\")\n               (prin \"<pre>\")\n               (prinl (echo \"\\n</pre>\")) ) ) ) )\n   Sym )\n\n(de docs (Dir)\n   (when (=T (car (info Dir)))\n      (let All (all)\n         (for F (dir Dir)\n            (when (match '(\"r\" \"e\" \"f\" @ \".\" \"h\" \"t\" \"m\" \"l\") (chop F))\n               (let P (pack Dir F)\n                  (in P\n                     (while (from \"<dt><a id=\\\"\")\n                        (let (L (till \"\\\"\")  S (ht:Pack L T))\n                           (cond\n                              ((member S All) (put (car @) 'doc P))\n                              ((and\n                                    (not (cddr (setq L (split L \"/\"))))\n                                    (format (cadr L))\n                                    (member (pack (car L)) All) )\n                                 (put (intern S) 'doc P) ) ) ) ) ) ) ) ) ) ) )\n\n(de doc (Sym Browser)\n   (call (or Browser (sys \"BROWSER\") \"w3m\")\n      (pack\n         \"file:\"\n         (and (= `(char '/) (char (path \"@\"))) \"//\")\n         (path\n            (if (get Sym 'doc)\n               (pack @ \"#\"\n                  (replace (chop Sym)\n                     \"%\" \"%25\"\n                     \"<\" \"%3C\"\n                     \">\" \"%3E\"\n                     \"\\^\" \"%5E\"\n                     \"|\" \"%7C\" ) )\n               \"@doc/ref.html\" ) ) ) ) )\n\n(de more (M Fun)\n   (let *Dbg NIL\n      (if (pair M)\n         ((default Fun println) (++ M))\n         (println (type M))\n         (setq\n            Fun (list '(X) (list 'pp 'X (lit M)))\n            M (mapcar car (filter pair (val M))) ) )\n      (loop\n         (T (atom M))\n         (T (= \"\\e\" (key)) T)\n         (Fun (++ M)) ) ) )\n\n(de what (S)\n   (let *Dbg NIL\n      (setq S (chop S))\n      (filter\n         '((\"X\") (match S (chop \"X\")))\n         (all) ) ) )\n\n(de who (X . Prg)\n   (let (*Dbg NIL  Who '(Who @ @@ @@@))\n      (make (mapc _who (all))) ) )\n\n(and noLint (@ 'who 'Prg))\n\n(de _who (Y)\n   (unless (or (ext? Y T) (memq Y Who))\n      (push 'Who Y)\n      (ifn (= `(char \"+\") (char Y))\n         (and (pair (val Y)) (nest @) (link Y))\n         (for Z (pair (val Y))\n            (if (atom Z)\n               (and (_match Z) (link Y))\n               (when (nest (cdr Z))\n                  (link (cons (car Z) Y)) ) ) )\n         (maps\n            '((Z)\n               (if (atom Z)\n                  (and (_match Z) (link Y))\n                  (when (nest (car Z))\n                     (link (cons (cdr Z) Y)) ) ) )\n            Y ) ) ) )\n\n(de nest (Y)\n   (nst1 Y)\n   (nst2 Y) )\n\n(de nst1 (Y)\n   (let Z (setq Y (strip Y))\n      (loop\n         (T (atom Y) (and (sym? Y) (_who Y)))\n         (and (sym? (car Y)) (_who (car Y)))\n         (and (pair (car Y)) (nst1 @))\n         (T (== Z (setq Y (cdr Y)))) ) ) )\n\n(de nst2 (Y)\n   (let Z (setq Y (strip Y))\n      (loop\n         (T (atom Y) (_match Y))\n         (T (or (_match (car Y)) (nst2 (car Y)))\n            T )\n         (T (== Z (setq Y (cdr Y)))) ) ) )\n\n(de _match (D)\n   (and\n      (cond\n         ((str? X) (and (str? D) (= X D)))\n         ((sym? X) (== X D))\n         (T (match X D)) )\n      (or\n         (not Prg)\n         (let *Dbg (up 2 *Dbg) (run Prg)) ) ) )\n\n(de has (X)\n   (let *Dbg NIL\n      (filter\n         '((S) (= X (val S)))\n         (all) ) ) )\n\n(de can (X)\n   (let *Dbg NIL\n      (extract\n         '((Y)\n            (and\n               (= `(char \"+\") (char Y))\n               (asoq X (val Y))\n               (cons X Y) ) )\n         (all) ) ) )\n\n(private) (Flg Nsp Lst Sym N L S)\n\n# Namespaces nested in current search order\n(de namespaces (Flg)\n   (let N 3\n      (make\n         (for Nsp (symbols)\n            (recur (Nsp N)\n               (link Nsp)\n               (when Flg\n                  (space N)\n                  (println Nsp) )\n               (for S (all Nsp)\n                  (and\n                     (pair (val S))\n                     (== '\\~ (car @))\n                     (not (memq S (made)))\n                     (recurse S (+ N 3)) ) ) ) ) ) ) )\n\n# Namespace shadowing\n(de shadows (Flg)\n   (let Lst (mapcan all (symbols))\n      (make\n         (while (cdr Lst)\n            (let Sym (++ Lst)\n               (unless (member Sym (made))\n                  (let? L\n                     (filter\n                        '((S)\n                           (and\n                              (= S Sym)\n                              (n== S Sym)\n                              (val S) ) )\n                        Lst )\n                     (when Flg\n                        (space 3)\n                        (apply println L Sym) )\n                     (link Sym) ) ) ) ) ) ) )\n\n# Class dependencies\n(de dep (C)\n   (let *Dbg NIL\n      (dep1 0 C)\n      (dep2 3 C)\n      C ) )\n\n(de dep1 (N C)\n   (for X (type C)\n      (dep1 (+ 3 N) X) )\n   (space N)\n   (println C) )\n\n(de dep2 (N C)\n   (for X (all)\n      (when\n         (and\n            (= `(char \"+\") (char X))\n            (memq C (type X)) )\n         (space N)\n         (println X)\n         (dep2 (+ 3 N) X) ) ) )\n\n# Inherited methods\n(de methods (Obj)\n   (make\n      (let Mark NIL\n         (recur (Obj)\n            (for X (val Obj)\n               (nond\n                  ((pair X) (recurse X))\n                  ((memq (car X) Mark)\n                     (link (cons (car X) Obj))\n                     (push 'Mark (car X)) ) ) ) ) ) ) )\n\n(private) (_dbg _dbg2 dbg ubg traced? U)\n\n# Single-Stepping\n(de _dbg (Lst)\n   (or\n      (atom (car Lst))\n      (num? (caar Lst))\n      (flg? (caar Lst))\n      (== '! (caar Lst))\n      (set Lst (cons '! (car Lst))) ) )\n\n(de _dbg2 (Lst)\n   (map\n      '((L)\n         (if (and (pair (car L)) (flg? (caar L)))\n            (map _dbg (cdar L))\n            (_dbg L) ) )\n      Lst ) )\n\n(de dbg (Lst)\n   (when (pair Lst)\n      (casq (++ Lst)\n         ((case casq state)\n            (_dbg Lst)\n            (for L (cdr Lst)\n               (map _dbg (cdr L)) ) )\n         ((cond nond)\n            (for L Lst\n               (map _dbg L) ) )\n         (quote\n            (when (fun? Lst)\n               (map _dbg (cdr Lst)) ) )\n         ((job use let let? recur)\n            (map _dbg (cdr Lst)) )\n         (loop\n            (_dbg2 Lst) )\n         ((bind do)\n            (_dbg Lst)\n            (_dbg2 (cdr Lst)) )\n         (for\n            (and (pair (car Lst)) (map _dbg (cdar Lst)))\n            (_dbg2 (cdr Lst)) )\n         (T (map _dbg Lst)) )\n      T ) )\n\n(de d ()\n   (let *Dbg NIL\n      (dbg ^) ) )\n\n(de -debug ()\n   (debug (intern (opt))) )\n\n(de debug (X C)\n   (ifn (traced? X C)\n      (let *Dbg NIL\n         (when (pair X)\n            (setq C (cdr X)  X (car X)) )\n         (or\n            (dbg (if C (method X C) (getd X)))\n            (quit \"Can't debug\" X) ) )\n      (untrace X C)\n      (debug X C)\n      (trace X C) ) )\n\n(de ubg (Lst)\n   (when (pair Lst)\n      (map\n         '((L)\n            (when (pair (car L))\n               (when (== '! (caar L))\n                  (set L (cdar L)) )\n               (ubg (car L)) ) )\n         Lst )\n      T ) )\n\n(de u ()\n   (let *Dbg NIL\n      (ubg ^) ) )\n\n(de unbug (X C)\n   (let *Dbg NIL\n      (when (pair X)\n         (setq C (cdr X)  X (car X)) )\n      (or\n         (ubg (if C (method X C) (getd X)))\n         (quit \"Can't unbug\" X) ) ) )\n\n# Tracing\n(de traced? (X C)\n   (setq X\n      (if C\n         (method X C)\n         (getd X) ) )\n   (and\n      (pair X)\n      (pair (cadr X))\n      (== '$ (caadr X)) ) )\n\n# Convert ((X Y) A B) --> ((X Y) ($ foo (X Y) A B))\n(de -trace ()\n   (trace (intern (opt))) )\n\n(de trace (X C)\n   (let *Dbg NIL\n      (when (pair X)\n         (setq C (cdr X)  X (car X)) )\n      (if C\n         (unless (traced? X C)\n            (or (method X C) (quit \"Can't trace\" X))\n            (con @\n               (cons\n                  (conc\n                     (list '$ (cons X C) (car @))\n                     (cdr @) ) ) ) )\n         (unless (traced? X)\n            (and (sym? (getd X)) (quit \"Can't trace\" X))\n            (and (num? (getd X)) (expr X))\n            (set X\n               (list\n                  (car (getd X))\n                  (conc (list '$ X) (getd X)) ) ) ) )\n      X ) )\n\n# Convert ((X Y) ($ foo (X Y) A B)) --> ((X Y) A B)\n(de untrace (X C)\n   (let *Dbg NIL\n      (when (pair X)\n         (setq C (cdr X)  X (car X)) )\n      (if C\n         (when (traced? X C)\n            (con\n               (method X C)\n               (cdddr (cadr (method X C))) ) )\n         (when (traced? X)\n            (let Y (set X (cddadr (getd X)))\n               (and\n                  (== '@ (++ Y))\n                  (=1 (length Y))\n                  (= 2 (length (car Y)))\n                  (== 'pass (caar Y))\n                  (sym? (cdadr Y))\n                  (subr X) ) ) ) )\n      X ) )\n\n(de *NoTrace\n   @ @@ @@@\n   pp show more led\n   what who can dep d e debug u unbug trace untrace )\n\n(de traceAll (Excl)\n   (let *Dbg NIL\n      (for X (all)\n         (or\n            (memq X Excl)\n            (memq X *NoTrace)\n            (= `(char \"*\") (char X))\n            (cond\n               ((= `(char \"+\") (char X))\n                  (mapc trace\n                     (extract\n                        '((Y)\n                           (and\n                              (pair Y)\n                              (fun? (cdr Y))\n                              (cons (car Y) X) ) )\n                        (val X) ) ) )\n               ((pair (getd X))\n                  (trace X) ) ) ) ) ) )\n\n# Process Listing\n(when (member *OS '(\"Android\" \"Linux\"))\n   (de proc @\n      (apply call\n         (make (while (args) (link \"-C\" (next))))\n         \"ps\" \"-H\" \"-o\" \"pid,ppid,start,size,pcpu,stat,cmd\" ) ) )\n\n# Benchmarking\n(de bench Prg\n   (let U (usec)\n      (prog1\n         (run Prg 1)\n         (out 2\n            (when (>= (setq U (- (usec) U)) 60000000)\n               (prin \"[\" (tim$ (/ U 1000000)) \"] \") )\n            (prinl (format (/ U 1000) 3) \" sec\") ) ) ) )\n\n# Backtrace\n(de bt (Flg)\n   (let (S NIL  *Dbg)\n      (for (L (trail T) L)\n         (if (pair (car L))\n            (let E (++ L)\n               (push 'S\n                  (list\n                     (if (getd (box? (car E)))\n                        (cons @ (cdr E))\n                        E ) ) ) )\n            (conc\n               (car (default S (cons (cons))))\n               (cons (cons (++ L) (++ L))) ) )\n         (T (== '^ (car L)))\n         (T\n            (and\n               (pair (car L))\n               (== 'bt (caar L)) ) ) )\n      (for L S\n         (let? X (++ L)\n            (pretty\n               (cons\n                  (or\n                     (and (sym? (car X)) (car X))\n                     (find\n                        '((S) (== (car X) (val S)))\n                        (all) )\n                     (car X) )\n                  (less (cdr X)) ) ) )\n         (prinl)\n         (while L\n            (space 3)\n            (println (caar L) (less (cdr (++ L)))) )\n         (NIL (or Flg (<> \"\\e\" (key))) T) ) ) )\n\n# Source code\n`(info \"@lib/map\")\n\n(symbols 'llvm 'pico)\n\n(in \"@lib/map\"\n   (while (read)\n      (let Sym @\n         (if (get Sym '*Dbg)\n            (set @ (read))\n            (put Sym '*Dbg (cons (read))) ) ) ) )\n"
  },
  {
    "path": "lib/form.js",
    "content": "/* 13mar25 Software Lab. Alexander Burger */\n\nvar Btn = [];\nvar SesId, Key, InBtn, Auto, Chg, Post, Drop, Hint, Hints, Item, Beg, End;\n\nfunction inBtn(btn,flg) {InBtn = flg;}\n\nfunction formKey(event) {\n   Key = event.key;\n   if (Hint  &&  Hint.style.visibility == \"visible\") {\n      if ((Item >= 0  &&  Key == \"Enter\")  ||  Key == \"ArrowUp\"  ||  Key == \"ArrowDown\")\n         return false;\n      if (Key == \"Enter\") {\n         Hint.style.visibility = \"hidden\";\n         return true;\n      }\n      if (Key == \"Escape\") {\n         Hint.style.visibility = \"hidden\";\n         return false;\n      }\n   }\n   if (Key == \"Backspace\")\n      Chg = true;\n   return true;\n}\n\nfunction fldChg(field) {\n   Chg = true;\n   if (!InBtn  &&  (Key != \"Enter\" || field.type == \"textarea\")) {\n      post(field.form, false, null, null);\n      Key = 0;\n   }\n   return true;\n}\n\nfunction doBtn(btn) {\n   Btn.push(btn);\n   return true;\n}\n\nfunction doDrag(event) {\n   event.stopPropagation();\n   event.preventDefault();\n}\n\nfunction doDrop(btn, event) {\n   doDrag(event);\n   if (event.dataTransfer.files.length != 0) {\n      Btn.push(Drop = btn);\n      btn.value = \"0 %\";\n      post(btn.form, false, null, event.dataTransfer.files[0]);\n   }\n}\n\nfunction dropProgress(event) {\n   if (Drop)\n      Drop.value = event.lengthComputable?\n         Math.round((event.loaded * 100) / event.total) + \" %\" : \"(?) %\";\n}\n\nfunction dropLoad(event) {\n   Drop = null;\n}\n\nfunction hasElement(form, name) {\n   for (var i = 0; i < form.elements.length; ++i)\n      if (form.elements[i].name == name)\n         return true;\n   return false;\n}\n\nfunction setHref(fld, url) {\n   var i = url.indexOf(\"~\");\n\n   if (url.charAt(i = i>=0? i+1 : 0) == \"+\")  {\n      url = url.substr(0,i) + url.substr(i+1);\n      fld.target = \"_blank\";\n   }\n   fld.href = decodeURIComponent(url);\n}\n\nfunction idFocus(fld) {\n   try {\n      document.createEvent(\"TouchEvent\");\n      return true;\n   } catch (e) {}\n   setTimeout(function() {document.getElementById(fld).focus()}, 420);\n}\n\nfunction setCheck(fld, val) {\n   var lst = document.getElementsByName(fld.name);\n\n   for (var i = 1;  i < lst.length; ++i)\n      if (lst[i] == fld)\n         return lst[i - 1] = val;\n}\n\n/*** Form submit ***/\nfunction doPost(form) {\n   for (var i = 0; ; ++i) {\n      if (i == Btn.length)\n         return true;\n      if (Btn[i].form == form)\n         return post(form, false, null, null);\n   }\n}\n\nfunction post(form, auto, exe, file) {\n   var i, data;\n   var req = new XMLHttpRequest();\n\n   if (!hasElement(form,\"*Form\") || (i = form.action.indexOf(\"~\")) <= 0)\n      return true;\n   form.style.cursor = \"wait\";\n   try {req.open(\"POST\", SesId + \"!jsForm?\" + form.action.substr(i+1));}\n   catch (e) {return true;}\n   req.onload = function() {\n      if (req.status != 200)\n         req.abort();\n      else if (req.responseText == \"T\")\n         form.submit();\n      else if (req.responseText) {\n         var txt = req.responseText.split(\"&\");\n\n         form.elements[\"*Evt\"].value = txt[0];\n         if (txt[1]) {\n            var r = txt[1].split(\":\");\n\n            if (Auto)\n               clearTimeout(Auto);\n            if (!r[1])\n               Auto = null;\n            else {\n               Auto = setTimeout(function() {\n                  if (Chg)\n                     Auto = setTimeout(arguments.callee, r[1]);\n                  else {\n                     Btn.push(document.getElementById(r[0]));\n                     post(form, true, null, null);\n                  }\n               }, r[1] );\n            }\n         }\n         if (!auto || !Chg) {\n            var i, j;\n\n            for (i = 2; i < txt.length;) {\n               var fld = txt[i++];\n               var val = decodeURIComponent(txt[i++]);\n\n               if (!fld) {\n                  window[txt[i++]](val);\n                  continue;\n               }\n               if (!(fld = document.getElementById(fld)))\n                  continue;\n               if (fld.tagName == \"SPAN\") {\n                  if (i != txt.length && txt[i].charAt(0) == \"=\")\n                     ++i;\n                  if (i == txt.length || txt[i].charAt(0) != \"+\") {\n                     if (fld.firstChild.tagName != \"A\")\n                        fld.firstChild.data = val? val : \"\\u00A0\";\n                     else\n                        fld.replaceChild(document.createTextNode(val? val : \"\\u00A0\"), fld.firstChild);\n                  }\n                  else {\n                     var a = document.createElement(\"A\");\n\n                     setHref(a, txt[i++].substr(1));\n                     a.appendChild(document.createTextNode(val));\n                     fld.replaceChild(a, fld.firstChild);\n                  }\n               }\n               else if (fld.tagName == \"A\") {\n                  if (i != txt.length && txt[i].charAt(0) == \"=\")\n                     ++i;\n                  if (i == txt.length || txt[i].charAt(0) != \"+\") {\n                     fld.replaceChild(document.createTextNode(val? val : \"\\u00A0\"), fld.firstChild);\n                     fld.removeAttribute(\"href\");\n                  }\n                  else {\n                     fld.firstChild.data = val;\n                     setHref(fld, txt[i++].substr(1));\n                  }\n               }\n               else if (fld.tagName == \"IMG\") {\n                  var parent = fld.parentNode;\n\n                  fld.src = val;\n                  fld.alt = txt[i++];\n                  if (parent.tagName == \"A\") {\n                     if (txt[i])\n                        setHref(parent, txt[i]);\n                     else {\n                        var grand = parent.parentNode;\n\n                        grand.removeChild(parent);\n                        grand.appendChild(fld);\n                     }\n                  }\n                  else if (txt[i]) {\n                     var a = document.createElement(\"A\");\n\n                     parent.removeChild(fld);\n                     parent.appendChild(a);\n                     a.appendChild(fld);\n                     setHref(a, txt[i]);\n                  }\n                  ++i;\n               }\n               else {\n                  if (fld.type == \"checkbox\") {\n                     fld.checked = val != \"\";\n                     setCheck(fld, \"\");\n                  }\n                  else if (fld.type == \"select-one\") {\n                     for (j = 0; j < fld.options.length; ++j) {\n                        if (fld.options[j].text == val)\n                           fld.selectedIndex = j;\n                        fld.options[j].disabled = false;\n                     }\n                  }\n                  else if (fld.type == \"radio\") {\n                     fld.value = val;\n                     fld.checked = txt[i++].charAt(0) != \"\";\n                  }\n                  else if (fld.type == \"image\")\n                     fld.src = val;\n                  else if (fld.value != val) {\n                     fld.value = val;\n                     if (fld.pilSetValue)\n                        fld.pilSetValue(val);\n                     fld.scrollTop = fld.scrollHeight;\n                  }\n                  fld.disabled = false;\n                  if (i < txt.length && txt[i].charAt(0) == \"=\") {\n                     if (fld.type == \"select-one\") {\n                        for (j = 0; j < fld.options.length; ++j)\n                           if (fld.options[j].text != val)\n                              fld.options[j].disabled = true;\n                     }\n                     fld.disabled = true;\n                     InBtn = 0;  // 'onblur' on won't come when disabled\n                     if (fld.type == \"checkbox\"  &&  fld.checked)\n                        setCheck(fld, \"T\");\n                     ++i;\n                  }\n                  if (fld.pilDisable)\n                     fld.pilDisable(fld.disabled);\n               }\n               while (i < txt.length && (j = \"#*?\".indexOf(txt[i].charAt(0))) >= 0) {\n                  switch (j) {\n\n                  case 0:  // '#'\n                     var cls;\n\n                     val = txt[i++].substr(1);\n                     if ((cls = fld.getAttribute(\"class\")) != null  &&  (j = cls.indexOf(\"  \")) >= 0)\n                        val += cls.substr(j);\n                     fld.setAttribute(\"class\", val);\n                     break;\n\n                  case 1:  // '*'\n                     var node = fld.parentNode.parentNode.lastChild;\n                     var img = document.createElement(\"IMG\");\n\n                     if (!node.firstChild)\n                        node = fld.parentNode.parentNode.parentNode.lastChild;\n                     node.removeChild(node.firstChild);\n                     img.src = txt[i++].substr(1);\n                     if (!txt[i])\n                        node.appendChild(img);\n                     else {\n                        var a = document.createElement(\"A\");\n\n                        setHref(a, txt[i]);\n                        a.appendChild(img);\n                        node.appendChild(a);\n                     }\n                     ++i;\n                     break;\n\n                  case 2:  // '?'\n                     fld.title = decodeURIComponent(txt[i++].substr(1));\n                     break;\n                  }\n               }\n            }\n            if (Post)\n               Post();\n            Chg = false;\n         }\n      }\n      form.style.cursor = \"\";\n   };\n   if (!exe)\n      data = \"\";\n   else {\n      data = \"*Gui:0=\" + exe[0];\n      for (var i = 1; i < exe.length; ++i)\n         data += \"&*JsArgs:\" + i + \"=\" + exe[i];\n   }\n   for (i = 0; i < Btn.length;)\n      if (Btn[i].form != form)\n         ++i;\n      else {\n         data += \"&\" + Btn[i].name + \"=\" + encodeURIComponent(Btn[i].type == \"submit\"? Btn[i].value : Btn[i].src);\n         Btn.splice(i,1);\n      }\n   for (i = 0; i < form.elements.length; ++i) {\n      var fld = form.elements[i];\n\n      if (fld.name  &&  fld.type != \"submit\") {   // \"image\" won't come :-(\n         var val;\n\n         if (fld.type == \"checkbox\")\n            val = fld.checked? \"T\" : \"\";\n         else if (fld.type == \"select-one\")\n            val = fld.options[fld.selectedIndex].text;\n         else if (fld.type == \"radio\" && !fld.checked)\n            continue;\n         else\n            val = fld.value;\n         data += \"&\" + fld.name + \"=\" + encodeURIComponent(val.replace(/ +$/,\"\"));\n      }\n   }\n   try {\n      if (!file)\n         req.send(data);\n      else {\n         var rd = new FileReader();\n\n         req.upload.addEventListener(\"progress\", dropProgress, false);\n         req.upload.addEventListener(\"load\", dropLoad, false);\n         rd.readAsBinaryString(file);\n         rd.onload = function() {\n            req.setRequestHeader(\"X-Pil\", \"*ContL=T\");\n            req.sendAsBinary(data + \"&*Drop=\" +\n               encodeURIComponent(file.name) + \"=\" +\n               file.size + \"\\n\" + rd.result );\n         }\n      }\n   }\n   catch (e) {\n      req.abort();\n      return true;\n   }\n   return false;\n}\n\n/*** Hints ***/\nfunction doHint(field) {\n   if (!Hint) {\n      Hint = document.createElement(\"div\");\n      Hint.setAttribute(\"class\", \"hint\");\n      Hint.style.visibility = \"hidden\";\n      Hint.style.position = \"absolute\";\n      Hint.style.zIndex = 9999;\n      Hint.style.textAlign = \"left\";\n      Hints = document.createElement(\"div\");\n      Hints.setAttribute(\"class\", \"hints\");\n      Hints.style.position = \"relative\";\n      Hints.style.top = \"-2px\";\n      Hints.style.left = \"-3px\";\n      Hint.appendChild(Hints);\n   }\n   field.parentNode.appendChild(Hint);\n   field.onblur = function() {\n      Hint.style.visibility = \"hidden\";\n   }\n   var top = field.offsetHeight;\n   var left = 0;\n   for (var obj = field;  obj && obj.style.position != \"absolute\";  obj = obj.offsetParent) {\n      top += obj.offsetTop;\n      left += obj.offsetLeft;\n   }\n   Hint.style.top = top + \"px\";\n   Hint.style.left = left + \"px\";\n}\n\nfunction hintKey(field, event, tok, coy) {\n   var i, data;\n\n   if (event.key == \"Tab\"  ||  event.key == \"Escape\")\n      return false;\n   if (Hint.style.visibility == \"visible\") {\n      if (Item >= 0  &&  event.key == \"Enter\") {\n         setHint(field, Hints.childNodes[Item]);\n         return false;\n      }\n      if (event.key == \"ArrowUp\") {\n         if (Item > 0) {\n            hintOff(Item);\n            hintOn(--Item);\n         }\n         return false;\n      }\n      if (event.key == \"ArrowDown\") {\n         if (Item < (lst = Hints.childNodes).length-1) {\n            if (Item >= 0)\n               hintOff(Item);\n            hintOn(++Item);\n         }\n         return false;\n      }\n   }\n   if (event.key == \"Enter\")\n      return true;\n   var req = new XMLHttpRequest();\n   if (tok) {\n      for (Beg = field.selectionStart;  Beg > 0 && !field.value.charAt(Beg-1).match(/\\s/);  --Beg);\n      End = field.selectionEnd;\n   }\n   else {\n      Beg = 0;\n      End = field.value.length;\n   }\n   if (event.key != \"Insert\") {\n      if (Beg == End) {\n         Hint.style.visibility = \"hidden\";\n         return false;\n      }\n      if (coy && Hint.style.visibility == \"hidden\")\n         return false;\n   }\n   try {\n      req.open(\"POST\", (SesId? SesId : \"\") +\n         ((i = field.id.lastIndexOf(\"-\")) < 0?\n            \"!jsHint?$\" + field.id : \"!jsHint?+\" + field.id.substr(i+1) ) );\n   }\n   catch (e) {return true;}\n   req.onload = function() {\n      var i, n, lst, str;\n\n      if ((str = req.responseText).length == 0)\n         Hint.style.visibility = \"hidden\";\n      else {\n         lst = str.split(\"&\");\n         while (Hints.hasChildNodes())\n            Hints.removeChild(Hints.firstChild);\n         for (i = 0, n = 7; i < lst.length; ++i) {\n            addHint(i, field, str = decodeURIComponent(lst[i]));\n            if (str.length > n)\n               n = str.length;\n         }\n         Hints.style.width = n + 3 + \"ex\";\n         Hint.style.width = n + 4 + \"ex\";\n         Hint.style.visibility = \"visible\";\n         Item = -1;\n      }\n   }\n   var data = \"*JsHint=\" + encodeURIComponent(field.value.substring(Beg,End));\n   for (i = 0; i < field.form.elements.length; ++i) {\n      var fld = field.form.elements[i];\n\n      if (fld.name == \"*Get\")\n         data += \"&*Get=\" + fld.value;\n      else if (fld.name == \"*Form\")\n         data += \"&*Form=\" + fld.value;\n   }\n   try {req.send(data);}\n   catch (e) {\n      req.abort();\n      return true;\n   }\n   return (event.key != \"Insert\");\n}\n\nfunction addHint(i, field, str) {\n   var item = document.createElement(\"div\");\n   item.appendChild(document.createTextNode(str));\n   item.onmouseover = function() {\n      if (Item >= 0)\n         hintOff(Item);\n      hintOn(i);\n      field.onblur = false;\n      field.onchange = false;\n      Item = i;\n   }\n   item.onmouseout = function() {\n      hintOff(Item);\n      field.onblur = function() {\n         Hint.style.visibility = \"hidden\";\n      }\n      field.onchange = function() {\n         return fldChg(field);\n      };\n      Item = -1;\n   }\n   item.onclick = function() {\n      setHint(field, item);\n   }\n   Hints.appendChild(item);\n}\n\nfunction setHint(field, item) {\n   Hint.style.visibility = \"hidden\";\n   field.value = field.value.substr(0,Beg) + item.firstChild.nodeValue + field.value.substr(End);\n   Chg = true;\n   post(field.form, false, null, null);\n   field.setSelectionRange(Beg + item.firstChild.nodeValue.length, field.value.length);\n   field.focus();\n   field.onchange = function() {\n      return fldChg(field)\n   };\n}\n\nfunction hintOn(i) {\n   var s = Hints.childNodes[i].style;\n   s.background = \"black\";\n   s.color= \"white\";\n}\n\nfunction hintOff(i) {\n   var s = Hints.childNodes[i].style;\n   s.background = \"white\";\n   s.color= \"black\";\n}\n\n/*** Scroll/touch ***/\nvar TblX, TblY;\n\nfunction tblTouch(event) {\n   if (event.touches.length == 1) {\n      TblX = event.touches[0].pageX;\n      TblY = event.touches[0].pageY;\n   }\n   return true;\n}\n\nfunction tblMove(table, event) {\n   if (event.touches.length == 1) {\n      var dx = event.touches[0].pageX - TblX;\n      var dy = event.touches[0].pageY - TblY;\n\n      TblX = event.touches[0].pageX;\n      if (Math.abs(dx) > Math.abs(dy))\n         return true;\n      if (Math.abs(dy) > 12) {\n         TblY = event.touches[0].pageY;\n         for (var obj = table.parentNode;  obj;  obj = obj.parentNode)\n            if (obj.tagName == \"FORM\")\n               return post(obj, false,\n                  [dy > 6? \"jsUp\" : \"jsDn\", \"+\" + table.getAttribute(\"chart\")],\n                  null );\n      }\n      return false;\n   }\n   return true;\n}\n\n/*** Lisp calls ***/\nfunction lisp(form, fun) {\n   if (form) {\n      var exe = [fun];\n\n      for (var i = 2; i < arguments.length; ++i)\n         if (typeof arguments[i] === \"number\")\n            exe[i-1] = \"+\" + arguments[i];\n         else\n            exe[i-1] = \".\" + encodeURIComponent(arguments[i]);\n      return post(form, false, exe, null);\n   }\n   if (arguments.length > 2) {\n      fun += \"?\" + lispVal(arguments[2]);\n      for (var i = 3; i < arguments.length; ++i)\n         fun += \"&\" + lispVal(arguments[i]);\n   }\n   var req = new XMLHttpRequest();\n   try {req.open(\"GET\", SesId + \"!\" + fun);}\n   catch (e) {return true;}\n   req.onload = function() {\n      if (req.responseText)\n         eval(req.responseText);\n   }\n   try {req.send(null);}\n   catch (e) {\n      req.abort();\n      return true;\n   }\n   return false;\n}\n\nfunction lispVal(x) {\n   if (typeof x === \"number\")\n      return \"+\" + x;\n   if (x.charAt(0) == \"-\")\n      return \"%2D\" + encodeURIComponent(x.substr(1));\n   return encodeURIComponent(x);\n}\n\nfunction ping(min) {\n   if (SesId)\n      setTimeout(function() {ping1(min)}, 20000);\n}\n\nfunction ping1(min) {\n   lisp(null, \"ping\", min);\n   setTimeout(function() {ping1(min)}, 20000);\n}\n"
  },
  {
    "path": "lib/form.l",
    "content": "# 20feb26 Software Lab. Alexander Burger\n\n# *PRG *Top *Gui *Btn *Get *Got *Form *FormIx *FormLst *Evt\n# *Lock *Spans *AlwaysAsk\n\n(private) (*Chart *App *Ix *Err *Foc *Post2 *Stat *Cho *TZO)\n\n(allow \"@img/\" T)\n(push1 '*JS (allow \"@lib/form.js\"))  #! @lib\n(mapc allow\n   (quote\n      *Gui *Get *Got *Form \"!jsForm\" *Evt *Drop\n      *JsHint \"!jsHint\" jsUp jsDn *JsArgs \"!tzOffs\" ) )\n\n(default *FormIx 1)\n\n(de *Go.png . \"@img/go.png\")\n(de *No.png . \"@img/no.png\")\n\n(de *Throbber\n   (\"+---\" \"-+--\" \"--+-\" \"---+\" \"--+-\" \"-+--\" .) )\n\n(de tzOffs (Min)\n   (setq *TZO (* Min 60))\n   (respond) )\n\n(private) (Attr Prg App Lst F L)\n\n# Define GUI form\n(de form (Attr . Prg)\n   (when (=1 *Form)\n      (<javascript> \"window.addEventListener('pagehide', function(event) {document.forms[0].reset()});\") )\n   (inc '*Form)\n   (let App\n      (if *PRG\n         (get *FormLst (- *FormIx *Get) *Form)\n         (prog1\n            (setq *Top (new NIL NIL 'able T 'evt 0))\n            ~(as *Dbg\n               (when (file)\n                  (put *Top '*Dbg\n                     (list (cons (cddr @) (pack (car @) (cadr @)))) ) ) )\n            (put *Top 'home *Top)\n            (and (nth *FormLst (- *FormIx *Get)) (queue @ *Top)) ) )\n      (let Lst (get *FormLst (- *FormIx *Get) 1)\n         (for (F . L) Lst\n            (let *Form (- F (length Lst))\n               (cond\n                  ((and (== *PRG (car L)) (memq App (; *PRG top)))\n                     (apply \"form\" L) )\n                  ((or (== *PRG App) (memq App (; *PRG top)))\n                     (if (; L 1 top)\n                        (apply \"form\" L)\n                        (put L 1 'top (cons *PRG (; *PRG top)))\n                        (let *PRG NIL (apply \"form\" L)) ) ) ) ) ) )\n      (\"form\" App Attr Prg) ) )\n\n(de \"form\" (*App Attr Prg)\n   (with *App\n      (job (: env)\n         (<post> Attr (urlMT *Url *Menu *Tab *ID)\n            (<hidden> '*Get *Get)\n            (<hidden> '*Form *Form)\n            (<hidden> '*Evt (: evt))\n            (zero *Ix)\n            (if *PRG\n               (let gui\n                  '(()\n                     (with (get *App 'gui (inc '*Ix))\n                        (for E *Err\n                           (when (== This (car E))\n                              (<div> 'error\n                                 (if (atom (cdr E))\n                                    (ht:Prin (eval (cdr E) 1))\n                                    (eval (cdr E) 1) ) ) ) )\n                        (if (: id)\n                           (let *Gui (val *App)\n                              (show> This (cons '*Gui @)) )\n                           (setq *Chart This) )\n                        This ) )\n                  (and (== *PRG *App) (setq *Top *App))\n                  (htPrin Prg) )\n               (set *App)\n               (let gui\n                  '((X . @)\n                     (inc '*Ix)\n                     (with\n                        (cond\n                           ((pair X) (pass new X))\n                           ((not X) (pass new))\n                           ((num? X)\n                              (ifn *Chart\n                                 (quit \"no chart\" (rest))\n                                 (with *Chart\n                                    (let L (last (: gui))\n                                       (when (get L X)\n                                          (inc (:: rows))\n                                          (queue (:: gui) (setq L (need (: cols)))) )\n                                       (let Fld (pass new)\n                                          (set (nth L X) Fld)\n                                          (put Fld 'chart (list This (: rows) X))\n                                          (and (; Fld chg) (; Fld able) (=: lock))\n                                          (set> Fld\n                                             (get\n                                                ((: put)\n                                                   (get (nth (: data) (: ofs)) (: rows))\n                                                   (+ (: ofs) (: rows) -1) )\n                                                X )\n                                             T )\n                                          Fld ) ) ) ) )\n                           ((get *App X) (quit \"gui conflict\" X))\n                           (T (put *App X (pass new))) )\n                        (queue (:: home gui) This)\n                        (unless (: chart) (init> This))\n                        (when (: id)\n                           (let *Gui (val *App)\n                              (show> This (cons '*Gui (: id))) ) )\n                        This ) )\n                  (htPrin Prg) ) ) )\n         (off *Chart)\n         (--)\n         (and\n            (: show)\n            (info @)\n            (in (: show) (echo)) ) ) ) )\n\n# Disable form\n(de disable (Flg)\n   (and Flg (=: able)) )\n\n(private) Prg\n\n# Handle form actions\n(de action Prg\n   (off *Chart *Foc)\n   (or *PRG *Post2 (off *Err))\n   (catch 'stop\n      (nond\n         (*Post\n            (unless (and *PRG (= *Form (car *Got)) (= *Get (cadr *Got)))\n               (pushForm (cons)) )\n            (if *Port%\n               (let *JS NIL (_doForm))\n               (_doForm) )\n            (off *PRG *Got) )\n         (*PRG\n            (with (postForm)\n               (ifn (= *Evt (: evt))\n                  (noContent)\n                  (postGui)\n                  (redirect\n                     (baseHRef)\n                     *SesId\n                     (urlMT *Url *Menu *Tab *ID)\n                     \"&*Evt=+\" (inc (:: evt))\n                     \"&*Got=_+\" *Form \"_+\" *Get ) ) ) )\n         (NIL\n            (off *PRG)\n            (pushForm (cons))\n            (_doForm) ) ) ) )\n\n(de pushForm (L)\n   (push '*FormLst L)\n   (and (nth *FormLst 99) (con @))\n   (setq *Get *FormIx)\n   (inc '*FormIx) )\n\n(de _doForm ()\n   (one *Form)\n   (run Prg)\n   (setq *Stat\n      (cons\n         (pair *Err)\n         (copy (get *FormLst (- *FormIx *Get))) ) ) )\n\n(de jsForm (Url)\n   (if (or *PRG (not *Post))\n      (noContent)\n      (setq *Url Url  Url (chop Url))\n      (let action\n         '(Prg\n            (off *Err)\n            (with (postForm)\n               (ifn (= *Evt (: evt))\n                  (respond)\n                  (catch 'stop\n                     (postGui)\n                     (httpHead \"text/plain; charset=utf-8\")\n                     (if\n                        (and\n                           (= (car *Stat) *Err)\n                           (= (cdr *Stat) (get *FormLst (- *FormIx *Get))) )\n                        (ht:Out *Chunked\n                           (prin (setq *Evt (inc (:: evt))) \"&\")\n                           (when (: auto)\n                              (prin \"i\" *Form \"-\" (: auto 1 id) \":\" (: auto -1))\n                              (=: auto) )\n                           (for S *Spans\n                              (prin \"&\" (car S) \"&\" (run (cdr S))) )\n                           (for This (: gui)\n                              (if (: id)\n                                 (prin \"&i\" *Form \"-\" @ \"&\" (js> This))\n                                 (setq *Chart This) ) ) )\n                        (setq *Post2 (cons *Get *Form *PRG))\n                        (ht:Out *Chunked (prin T)) ) ) ) )\n            (off *PRG) )\n         (use @X\n            (cond\n               ((match '(\"-\" @X \".\" \"h\" \"t\" \"m\" \"l\") Url)\n                  (try 'html> (extern (ht:Pack @X T))) )\n               ((disallowed)\n                  (notAllowed *Url)\n                  (http404) )\n               ((= \"!\" (car Url))\n                  ((intern (cdr Url))) )\n               ((tail '(\".\" \"l\") Url)\n                  (load *Url) ) ) ) ) ) )\n\n(de postForm ()\n   (when (num? (format *Get))\n      (let? Lst (get *FormLst (- *FormIx (setq *Get @)))\n         (and\n            (setq *Form (format *Form))\n            (setq *Evt (format *Evt))\n            (setq *PRG\n               (cond\n                  ((and\n                        (= *Get (car *Post2))\n                        (= *Form (cadr *Post2)) )\n                     (cddr *Post2) )\n                  ((off *Post2))\n                  ((gt0 *Form) (get Lst *Form))\n                  (T (get Lst 1 (+ (length (car Lst)) *Form) 1)) ) )\n            (val *PRG)\n            *PRG ) ) ) )\n\n(de postGui ()\n   (if *Post2\n      (off *Gui *Post2)\n      (let (*Btn NIL  \"Fun\")\n         (for G *Gui\n            (if (=0 (car G))\n               (setq \"Fun\" (cdr G))\n               (and (lt0 (car G)) (setq *Btn (cdr G)))\n               (con (assoc (car G) (val *PRG)) (cdr G)) ) )\n         (off *Gui)\n         (and (: lock) (n== @ *Lock) (=: able))\n         (job (: env)\n            (for This (: gui)\n               (cond\n                  ((not (: id)) (setq *Chart This))\n                  ((chk> This) (error @))\n                  ((or (: rid) (: home able))\n                     (set> This (val> This) T) ) ) )\n            (unless *Err\n               (for This (: gui)\n                  (cond\n                     ((: id))\n                     ((chk> (setq *Chart This)) (error @))\n                     ((or (: rid) (: home able))\n                        (set> This (val> This)) ) ) ) )\n            (if (pair *Err)\n               (when *Lock\n                  (=: lock (with (caar *Err) (tryLock *Lock))) )\n               (finally\n                  (when *Lock\n                     (if (lock @)\n                        (=: able (=: lock (off *Lock)))\n                        (let *Run NIL\n                           (sync)\n                           (tell) ) ) )\n                  (when \"Fun\"\n                     (when (and *Allow (not (idx *Allow \"Fun\")))\n                        (notAllowed \"Fun\")\n                        (throw 'stop) )\n                     (apply (intern \"Fun\")\n                        (mapcar\n                           '((X)\n                              ((if (= \"+\" (car (setq X (chop (cdr X))))) format pack)\n                                 (cdr X) ) )\n                           *JsArgs ) ) )\n                  (for This (: gui)\n                     (nond\n                        ((: id) (setq *Chart This))\n                        ((ge0 (: id))\n                           (let? A (assoc (: id) (val *PRG))\n                              (when (cdr A)\n                                 (con A)\n                                 (act> This) ) ) ) ) ) )\n               (for This (: gui)\n                  (or (: id) (setq *Chart This))\n                  (upd> This) ) ) ) ) ) )\n\n(de error (Exe)\n   (cond\n      ((=T Exe) (on *Err))\n      ((nT *Err) (queue '*Err (cons This Exe))) ) )\n\n(de url (Url . @)\n   (when Url\n      (off *PRG)\n      (when *Timeout\n         (timeout `(* 3600 1000)) )\n      (redirect (baseHRef) *SesId Url\n         (and (args) \"?\")\n         (pack\n            (make\n               (loop\n                  (let A (next)\n                     (and\n                        (sym? A)\n                        (= `(char '*) (char A))\n                        (link A \"=\")\n                        (setq A (next)) )\n                     (link (ht:Fmt A)) )\n                  (NIL (args))\n                  (link \"&\") ) ) ) )\n      (throw 'stop) ) )\n\n(de post Prg\n   (run Prg)\n   (url *Uri) )\n\n# Active <span> elements\n(de span Args\n   (def (car Args)\n      (list NIL\n         (list '<span>\n            (lit (cons 'id (car Args)))\n            (cons 'ht:Prin (cdr Args)) ) ) )\n   (push '*Spans Args) )\n\n(span expires\n   (pack\n      `(char 8230)  # Ellipsis\n      (let Tim (+ (time T) (/ (cadr (assoc -1 *Run)) 1000))\n         (if *TZO\n            (tim$ (% (- Tim -86400 @) 86400))\n            (<javascript>\n               \"lisp(null, 'tzOffs', (new Date()).getTimezoneOffset())\" )\n            (pack (tim$ (% Tim 86400)) \" UTC\") ) ) ) )\n\n# Return chart property\n(de chart @\n   (pass get *Chart) )\n\n# Table extension\n(daemon '<table>\n   (with *Chart\n      (setq ATTR\n         (make\n            (link\n               (cons \"chart\" (index This (: home chart)))\n               '(\"ontouchstart\" . \"return tblTouch(event)\")\n               '(\"ontouchmove\" . \"return tblMove(this,event)\")\n               (and ATTR (link @)) ) ) ) ) )\n\n# REPL form\n(private) Str\n\n(de repl (Attr DX DY)\n   (default DX 80  DY 25)\n   (form Attr\n      (=: repl (tmp \"repl\"))\n      (gui 'view '(+Able +FileField)\n         '(<> (: file) (: home repl))\n         (: repl)\n         DX DY )\n      (--)\n      (gui '(+View +SymField) '(car (symbols)))\n      (<nbsp>)\n      (gui 'line '(+Focus +Able +Hint1 +TextField)\n         '(= (: home view file) (: home repl))\n         '*ReplH\n         (*/ DX 4 5) )\n      (----)\n      (gui '(+JS +Able +Button) '(= (: home view file) (: home repl)) \"Eval\"\n         '(let Str (val> (: home line))\n            (out (pack \"+\" (: home repl))\n               (if (= `(char \"!\") (char Str))\n                  (err NIL\n                     (prinl Str)\n                     (flush)\n                     (in (list \"sh\" \"-c\" (cdr (chop Str)))\n                        (echo) ) )\n                  (err NIL\n                     (prinl (car (symbols)) \": \" Str)\n                     (flush)\n                     (catch '(NIL)\n                        (in \"/dev/null\"\n                           (up 99 @@@ \"@3\")\n                           (up 99 @@ \"@2\")\n                           (up 99 @ \"@1\")\n                           (setq  \"@3\" \"@2\"  \"@2\" \"@1\"  \"@1\" (run (str Str) 99)) )\n                        (println '-> \"@1\") ) )\n                  (when @@\n                     (prin \"!? \")\n                     (println ^)\n                     (prinl *Msg) ) ) )\n            (push1 '*ReplH Str)\n            (clr> (: home line)) ) )\n      (gui '(+JS +Button)\n         '(if (= (: home view file) (: home repl)) ,\"Edit\" ,\"Done\")\n         '(file> (: home view)\n            (if (= (: home view file) (: home repl))\n               (if (val> (: home line))\n                  (setq *ReplF (push1 '*ReplH @))\n                  (set> (: home line) *ReplF)\n                  *ReplF )\n               (clr> (: home line))\n               (: home repl) ) ) ) ) )\n\n(private) (dlg Attr Env Lst Prg)\n\n# Dialogs\n(de dlg (Attr Env Prg)\n   (let? L (get *FormLst (- *FormIx *Get))\n      (while (and (car L) (n== *PRG (caar @)))\n         (pop L) )\n      (push L\n         (list\n            (new NIL NIL  'btn This  'able T  'evt 0  'env Env)\n            Attr\n            Prg ) )\n      (pushForm L) ) )\n\n(de dialog (Env . Prg)\n   (dlg 'dialog Env Prg) )\n\n(de alert (Env . Prg)\n   (dlg 'alert Env Prg) )\n\n(de note (Str Lst)\n   (alert (env '(Str Lst))\n      (<span> 'note Str)\n      (--)\n      (for S Lst (<br> S))\n      (okButton) ) )\n\n(de ask (Str . Prg)\n   (alert (env '(Str Prg))\n      (<span> 'ask Str)\n      (--)\n      (yesButton (cons 'prog Prg))\n      (noButton) ) )\n\n(de diaform (Lst . Prg)\n   (cond\n      ((num? (caar Lst))  # Dst\n         (gui (gt0 (caar Lst)) '(+ChoButton)\n            (cons 'diaform\n               (list 'cons\n                  (list 'cons (lit (car Lst)) '(field 1))\n                  (lit (env (cdr Lst))) )\n               Prg ) ) )\n      ((and *PRG (not (: diaform)))\n         (dlg 'dialog (env Lst) Prg) )\n      (T\n         (=: env (env Lst))\n         (=: diaform T)\n         (run Prg 1) ) ) )\n\n(de saveButton (Exe)\n   (gui '(+Button) ,\"Save\" Exe) )\n\n(de closeButton (Lbl Exe)\n   (when (; *App top)\n      (gui '(+Rid +Close +Button) Lbl Exe) ) )\n\n(de okButton (Exe)\n   (when (; *App top)\n      (if (=T Exe)\n         (gui '(+Force +Close +Button) T \"OK\")\n         (gui '(+Close +Button) \"OK\" Exe) ) ) )\n\n(de cancelButton ()\n   (when (; *App top)\n      (gui '(+Force +Close +Button) T ',\"Cancel\") ) )\n\n(de yesButton (Exe)\n   (gui '(+Close +Button) ',\"Yes\" Exe) )\n\n(de noButton (Exe)\n   (gui '(+Close +Button) ',\"No\" Exe) )\n\n(de choButton (Exe)\n   (gui '(+Rid +Tip +Button)\n      ,\"Find or create an object of the same type\"\n      ',\"Select\" Exe ) )\n\n\n(class +Force)\n# force\n\n(dm T (Exe . @)\n   (=: force Exe)\n   (pass extra) )\n\n(dm chk> ()\n   (when\n      (and\n         (cdr (assoc (: id) (val *PRG)))\n         (eval (: force)) )\n      (for A (val *PRG)\n         (and\n            (lt0 (car A))\n            (<> (: id) (car A))\n            (con A) ) )\n      T ) )\n\n\n(class +Close)\n\n(dm act> ()\n   (when (able)\n      (and\n         (get *FormLst (- *FormIx *Get))\n         (pushForm\n            (cons\n               (filter\n                  '((L) (memq (car L) (: home top)))\n                  (car @) )\n               (cdr @) ) ) )\n      (extra)\n      (for This (: home top)\n         (for This (: gui)\n            (or (: id) (setq *Chart This))\n            (upd> This) ) ) ) )\n\n\n# Choose a value\n(class +ChoButton +Tiny +Tip +Button)\n\n(dm T (Exe)\n   (super  ,\"Choose a suitable value\" \"+\" Exe)\n   (=: chg T) )\n\n\n(class +PickButton +Tiny +Tip +Button)\n\n(dm T (Exe)\n   (super ,\"Adopt this value\" \"@\" Exe) )\n\n\n(class +DstButton +Set +Able +Close +PickButton)\n# msg obj\n\n(dm T (Dst Msg)\n   (=: msg (or Msg 'url>))\n   (super\n      '((Obj) (=: obj Obj))\n      '(: obj)\n      (when Dst\n         (or\n            (pair Dst)\n            (list 'chgDst (lit Dst) '(: obj)) ) ) ) )\n\n(de chgDst (This Val)\n   (set> This (if (: new) (@ Val) Val)) )\n\n(dm js> ()\n   (cond\n      ((: act) (super))\n      ((try (: msg) (: obj) 1 This)\n         (pack \"@&+\" (ht:Fmt (sesId (mkUrl @)))) )\n      (T \"@\") ) )\n\n(dm show> (Var)\n   (if (: act)\n      (super Var)\n      (<style> (cons 'id (pack \"i\" *Form \"-\" (: id)))\n         (if (try (: msg) (: obj) 1 This)\n            (<tip> \"-->\" (<href> \"@\" (mkUrl @)))\n            (<span> *Style \"@\") ) ) ) )\n\n\n(class +Choice +ChoButton)\n# ttl hint\n\n(dm T (Ttl Exe)\n   (=: ttl Ttl)\n   (=: hint Exe)\n   (super\n      '(dialog (env 'Ttl (eval (: ttl))  'Lst (eval (: hint))  'Dst (field 1))\n         (<table> 'chart Ttl '((btn) NIL)\n            (for X Lst\n               (<row> NIL\n                  (gui '(+Close +PickButton)\n                     (list 'set> 'Dst\n                        (if (get Dst 'dy)\n                           (list 'pack '(str> Dst) (fin X))\n                           (lit (fin X)) ) ) )\n                  (ht:Prin (if (atom X) X (car X))) ) ) )\n         (cancelButton) ) ) )\n\n\n(class +Tok)\n\n(dm T @\n   (=: tok T)\n   (pass extra) )\n\n\n(class +Coy)\n\n(dm T @\n   (=: coy T)\n   (pass extra) )\n\n\n(class +hint)\n# tok coy\n\n(dm show> (Var)\n   (<js>\n      (list\n         '(\"autocomplete\" . \"off\")\n         '(\"onfocus\" . \"doHint(this)\")\n         (cons\n            \"onkeyup\"\n            (pack\n               \"return hintKey(this,event\"\n               (if2 (: tok) (: coy) \",true,true\" \",true\" \",false,true\")\n               \")\" ) ) )\n      (extra Var) ) )\n\n(de jsHint (I)\n   (when I\n      (httpHead \"text/plain; charset=utf-8\")\n      (ht:Out *Chunked\n         (let? L\n            (if (sym? I)\n               ((; I hint) *JsHint)\n               (let? Lst (get *FormLst (- *FormIx (format *Get)))\n                  (pair\n                     (hint>\n                        (get\n                           (if (gt0 (format *Form))\n                              (get Lst @)\n                              (get Lst 1 (+ (length (car Lst)) (format *Form)) 1) )\n                           'gui\n                           I )\n                        *JsHint ) ) ) )\n            (prin\n               (ht:Fmt\n                  (if (atom (car L))\n                     (car L)\n                     (caar L) ) ) )\n            (for X (cdr L)\n               (prin \"&\"\n                  (ht:Fmt (if (atom X) X (car X))) ) ) ) ) ) )\n\n\n(class +Hint +hint)\n# hint\n\n(dm T (Fun . @)\n   (=: hint Fun)\n   (pass extra) )\n\n(dm hint> (Str)\n   ((: hint) (extra Str)) )\n\n(de hintQ (Var CL Str)\n   (make\n      (for (Q (search Str CL) (search Q))\n         (when (match> (meta @ Var) Str (get @ Var) @)\n            (unless (member @ (made))\n               (link @) ) )\n         (T (nth (made) 24)) ) ) )\n\n(de dbHint (Str Var Cls Hook)\n   (hintQ Var (list (list Var Cls Hook)) Str) )\n\n(class +DbHint +Hint)\n\n(dm T (Rel . @)\n   (pass super\n      (list '(Str)\n         (list 'dbHint 'Str\n            (lit (car Rel))\n            (lit (last Rel))\n            (and (meta (cdr Rel) (car Rel) 'hook) (next)) ) ) ) )\n\n\n(class +Hint1 +hint)\n# hint\n\n(dm T (Exe . @)\n   (=: hint Exe)\n   (pass extra) )\n\n(dm hint> (Str)\n   (setq Str (extra Str))\n   (extract '((S) (pre? Str S))\n      (eval (: hint)) ) )\n\n\n(class +Hint2 +hint)\n\n(dm hint> (Str)\n   (setq Str (extra Str))\n   (extract '((X) (pre? Str (if (atom X) X (car X))))\n      (with (field -1) (eval (: hint))) ) )\n\n\n(class +Txt)\n# txt\n\n(dm T (Fun . @)\n   (=: txt Fun)\n   (pass extra) )\n\n(dm txt> (Val)\n   ((: txt) Val) )\n\n\n(class +Set)\n# set\n\n(dm T (Fun . @)\n   (=: set Fun)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra ((: set) Val) Dn) )\n\n\n(class +Val)\n# val\n\n(dm T (Fun . @)\n   (=: val Fun)\n   (pass extra) )\n\n(dm val> ()\n   ((: val) (extra)) )\n\n\n(class +Fmt)\n# set val\n\n(dm T (Fun1 Fun2 . @)\n   (=: set Fun1)\n   (=: val Fun2)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra ((: set) Val) Dn) )\n\n(dm val> ()\n   ((: val) (extra)) )\n\n\n(class +Chg)\n# old new\n\n(dm T (Fun . @)\n   (=: new Fun)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra (=: old Val) Dn) )\n\n(dm val> ()\n   (let Val (extra)\n      (if (and (<> (: old) Val) (able))\n         ((: new) (=: old Val))\n         Val ) ) )\n\n\n(class +Upd)\n# upd\n\n(dm T (Exe . @)\n   (=: upd Exe)\n   (pass extra) )\n\n(dm upd> ()\n   (set> This (eval (: upd))) )\n\n\n(class +Init)\n# init\n\n(dm T (Val . @)\n   (=: init Val)\n   (pass extra) )\n\n(dm init> ()\n   (set> This (: init)) )\n\n\n(class +Dflt)\n# dflt\n\n(dm T (Exe . @)\n   (=: dflt Exe)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra (or Val (eval (: dflt))) Dn) )\n\n(dm val> ()\n   (let Val (extra)\n      (unless (= Val (eval (: dflt))) Val) ) )\n\n\n(class +Cue)\n# cue\n\n(dm T (Str . @)\n   (=: cue (pack \"<\" Str \">\"))\n   (pass extra) )\n\n(dm show> (Var)\n   (<js>\n      (cons (cons \"placeholder\" (: cue)))\n      (extra Var) ) )\n\n\n(class +Trim)\n\n(dm val> ()\n   (pack (trim (chop (extra)))) )\n\n\n(class +Enum)\n# enum\n\n(dm T (Lst . @)\n   (=: enum Lst)\n   (pass extra) )\n\n(dm set> (N Dn)\n   (extra (get (: enum) N) Dn) )\n\n(dm val> ()\n   (index (extra) (: enum)) )\n\n\n(class +Map)\n# map\n\n(dm T (Lst . @)\n   (=: map Lst)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra\n      (if\n         (find\n            '((X) (= Val (cdr X)))\n            (: map) )\n         (val (car @))\n         Val )\n      Dn ) )\n\n(dm val> ()\n   (let Val (extra)\n      (if\n         (find\n            '((X) (= Val (val (car X))))\n            (: map) )\n         (cdr @)\n         Val ) ) )\n\n\n# Case conversions\n(class +Uppc)\n\n(dm set> (Val Dn)\n   (extra (uppc Val) Dn) )\n\n(dm val> ()\n   (uppc (extra)) )\n\n(dm hint> (Str)\n   (extra (uppc Str)) )\n\n\n(class +Lowc)\n\n(dm set> (Val Dn)\n   (extra (lowc Val) Dn) )\n\n(dm val> ()\n   (lowc (extra)) )\n\n(dm hint> (Str)\n   (extra (lowc Str)) )\n\n\n# Field enable/disable\n(de able ()\n   (when (or (: rid) (: home able))\n      (eval (: able)) ) )\n\n(class +Able)\n\n(dm T (Exe . @)\n   (pass extra)\n   (when (: able)\n      (=: able\n         (cond\n            ((=T (: able)) Exe)\n            ((and (pair (: able)) (== 'and (car @)))\n               (cons 'and Exe (cdr (: able))) )\n            (T (list 'and Exe (: able))) ) ) ) )\n\n\n(class +Lock +Able)\n\n(dm T @\n   (pass super NIL) )\n\n\n(class +View +Lock +Upd)\n\n\n# Escape from form lock\n(class +Rid)\n# rid\n\n(dm T @\n   (=: rid T)\n   (pass extra) )\n\n\n(class +Align)\n\n(dm T @\n   (=: align T)\n   (pass extra) )\n\n\n(class +Limit)\n# lim\n\n(dm T (Exe . @)\n   (=: lim Exe)\n   (pass extra) )\n\n\n(class +Clr0)\n\n(dm val> ()\n   (let N (extra)\n      (unless (=0 N) N) ) )\n\n\n(class +Var)\n# var\n\n(dm T (Var . @)\n   (=: var Var)\n   (pass extra) )\n\n(dm set> (Val Dn)\n   (extra (set (: var) Val) Dn) )\n\n(dm upd> ()\n   (set> This (val (: var))) )\n\n\n(class +Chk)\n# chk\n\n(dm T (Exe . @)\n   (=: chk Exe)\n   (pass extra) )\n\n(dm chk> ()\n   (eval (: chk)) )\n\n\n(class +Tip)\n# tip\n\n(dm T (Exe . @)\n   (unless (: tip)\n      (=: tip Exe) )\n   (pass extra) )\n\n(dm show> (Var)\n   (<tip> (eval (: tip)) (extra Var)) )\n\n(dm js> ()\n   (pack (extra) \"&?\" (ht:Fmt (glue \"\\n\" (eval (: tip))))) )\n\n\n(class +Tiny)\n\n(dm show> (Var)\n   (<style> 'tiny (extra Var)) )\n\n\n(class +Click)\n# clk\n\n(dm T (Exe . @)\n   (=: clk Exe)\n   (pass extra) )\n\n(dm show> (Var)\n   (extra Var)\n   (and\n      (atom *Err)\n      (eval (: clk))\n      (<javascript>\n         \"window.setTimeout(\\\"document.getElementById('\"\n         \"i\" *Form \"-\" (: id)\n         \"').click()\\\",\"\n         @\n         \")\" ) ) )\n\n\n(class +Focus)\n\n(dm show> (Var)\n   (extra Var)\n   (when (and (able) (not *Foc))\n      (on *Foc)\n      (<javascript> \"idFocus('\" \"i\" *Form \"-\" (: id) \"')\") ) )\n\n\n### Styles ###\n(class +Style)\n# style\n\n(dm T (Exe . @)\n   (=: style Exe)\n   (pass extra) )\n\n(dm show> (Var)\n   (<style> (pack (eval (: style)) \" \") (extra Var)) )\n\n(dm js> ()\n   (pack (extra) \"&#\" (eval (: style))) )\n\n\n# Monospace font\n(class +Mono)\n\n(dm show> (Var)\n   (<style> \"mono\" (extra Var)) )\n\n(dm js> ()\n   (pack (extra) \"&#mono\") )\n\n\n# Signum field\n(class +Sgn)\n\n(dm show> (Var)\n   (<style> (and (lt0 (val> This)) \"red\") (extra Var)) )\n\n(dm js> ()\n   (pack (extra) \"&#\" (and (lt0 (val> This)) \"red\")) )\n\n\n### Form field classes ###\n(de showFld Prg\n   (when (: lbl)\n      (ht:Prin (eval @))\n      (<nbsp>) )\n   (let *Style (style (cons 'id (pack \"i\" *Form \"-\" (: id))) *Style)\n      (run Prg 1) ) )\n\n\n(class +gui)\n# home id chg able chart\n\n(dm T ()\n   (push (=: home *App) (cons (=: id *Ix)))\n   (=: able T) )\n\n(dm txt> (Val))\n\n(dm set> (Val Dn))\n\n(dm clr> ()\n   (set> This) )\n\n(dm val> ())\n\n(dm hint> (Str)\n   Str )\n\n(dm init> ()\n   (upd> This) )\n\n(dm upd> ())\n\n(dm chk> ())\n\n\n(class +field +gui)\n\n(dm T ()\n   (super)\n   (=: chg T) )\n\n(dm txt> (Val)\n   Val )\n\n(dm js> ()\n   (let S (ht:Fmt (cdr (assoc (: id) (val *PRG))))\n      (if (able) S (pack S \"&=\")) ) )\n\n(dm set> (Str Dn)\n   (con (assoc (: id) (val (: home))) Str)\n   (and (not Dn) (: chart) (set> (car @) (val> (car @)))) )\n\n(dm str> ()\n   (cdr (assoc (: id) (val (: home)))) )\n\n(dm val> ()\n   (str> This) )\n\n\n# Get field\n(de field (X . @)\n   (if (sym? X)\n      (pass get (: home) X)\n      (pass get (: home gui) (+ X (abs (: id)))) ) )\n\n# Get current chart data row\n(de row (D)\n   (+ (: chart 1 ofs) (: chart 2) -1 (or D 0)) )\n\n(de curr @\n   (pass get (: chart 1 data) (row)) )\n\n(de prev @\n   (pass get (: chart 1 data) (row -1)) )\n\n\n(class +Button +gui)\n# img lbl alt act js\n\n# ([T] lbl [alt] act)\n(dm T @\n   (let A (next)\n      (=: lbl\n         (if (=: img (=T A)) (next) A) ) )\n   (let X (next)\n      (ifn (args)\n         (=: act X)\n         (=: alt X)\n         (=: act (next)) ) )\n   (super)\n   (set\n      (car (val *App))\n      (=: id (- (: id))) ) )\n\n(dm js> ()\n   (if (able)\n      (let Str (ht:Fmt (eval (: lbl)))\n         (if (: img) (sesId Str) Str) )\n      (let Str (ht:Fmt (or (eval (: alt)) (eval (: lbl))))\n         (pack (if (: img) (sesId Str) Str) \"&=\") ) ) )\n\n(dm show> (Var)\n   (<style> (cons 'id (pack \"i\" *Form \"-\" (: id)))\n      (if (able)\n         ((if (: img) <image> <submit>)\n            (eval (: lbl))\n            Var NIL (: js) )\n         ((if (: img) <image> <submit>)\n            (or (eval (: alt)) (eval (: lbl)))\n            Var T (: js) ) ) ) )\n\n(dm act> ()\n   (and (able) (eval (: act))) )\n\n\n(class +OnClick)\n# onclick\n\n(dm T (Exe . @)\n   (=: onclick Exe)\n   (pass extra) )\n\n(dm show> (Var)\n   (<js> (list (cons 'onclick (eval (: onclick))))\n      (extra Var) ) )\n\n\n(class +Drop)\n# \"drop\" drop\n\n(dm T (Fld . @)\n   (=: \"drop\" Fld)\n   (pass extra) )\n\n(dm show> (Var)\n   (<js>\n      (quote\n         (\"ondragenter\" . \"doDrag(event)\")\n         (\"ondragover\" . \"doDrag(event)\")\n         (\"ondrop\" . \"doDrop(this,event)\") )\n      (extra Var) ) )\n\n(dm act> ()\n   (when (able)\n      (=: drop\n         (and\n            (or *Drop (val> (eval (: \"drop\"))))\n            (tmp @) ) )\n      (extra)\n      (off *Drop) ) )\n\n\n(class +JS)\n\n(dm T @\n   (=: js T)\n   (pass extra) )\n\n\n(class +Auto +JS)\n# auto\n\n(dm T (Fld Exe . @)\n   (=: auto (cons Fld Exe))\n   (pass super) )\n\n(dm act> ()\n   (when (able)\n      (=: home auto\n         (cons\n            (eval (car (: auto)))\n            (eval (cdr (: auto))) ) )\n      (extra) ) )\n\n\n# Chart prefix\n(class +Stop)\n\n(dm scroll> (N)\n   (when (find '((F) (isa '+Auto F)) (: home gui))\n      (=: home auto (cons @)) )\n   (extra N) )\n\n\n(class +DnButton +Tiny +Rid +JS +Able +Button)\n\n(dm T (Exe Lbl)\n   (super\n      '(> (length (chart 'data)) (chart 'ofs))\n      (or Lbl \">\")\n      (list 'scroll> (lit *Chart) Exe) ) )\n\n(de jsDn (I)\n   (with (get (: chart) I)\n      (and\n         (: data)\n         (> (length @) (: ofs))\n         (scroll> This 1) ) ) )\n\n(class +UpButton +Tiny +Rid +JS +Able +Button)\n\n(dm T (Exe Lbl)\n   (super\n      '(> (chart 'ofs) 1)\n      (or Lbl \"<\")\n      (list 'scroll> (lit *Chart) (list '- Exe)) ) )\n\n(de jsUp (I)\n   (with (get (: chart) I)\n      (when (> (: ofs) 1)\n         (scroll> This -1) ) ) )\n\n(class +GoButton +Tiny +Rid +JS +Able +Button)\n\n(dm T (Exe Lbl)\n   (super\n      (list 'and\n         (list '>= '(length (chart 'data)) Exe)\n         (list '<> '(chart 'ofs) Exe) )\n      Lbl\n      (list 'goto> (lit *Chart) Exe) ) )\n\n(de scroll (N Flg)\n   (when Flg\n      (gui '(+Tip +GoButton) ,\"Go to first line\" 1 \"|<\") )\n   (gui '(+Tip +UpButton) ,\"Scroll up one page\" N \"<<\")\n   (gui '(+Tip +UpButton) ,\"Scroll up one line\" 1)\n   (gui '(+Tip +DnButton) ,\"Scroll down one line\" 1)\n   (gui '(+Tip +DnButton) ,\"Scroll down one page\" N \">>\")\n   (when Flg\n      (gui '(+Tip +GoButton) ,\"Go to last line\"\n         (list '- '(length (chart 'data)) (dec N))\n         \">|\" )\n      (<nbsp>)\n      (gui '(+View +TextField)\n         '(let? Len (gt0 (length (chart 'data)))\n            (pack\n               (chart 'ofs)\n               \"-\"\n               (min Len (dec (+ (chart 'ofs) (chart 'rows))))\n               \" / \"\n               Len ) ) ) ) )\n\n\n# Insert empty row\n(class +InsRowButton +Tiny +JS +Able +Tip +Button)\n\n(dm T ()\n   (super '(nth (: chart 1 data) (row)) ,\"Insert empty row\" \"<\"\n      '(set> (: chart 1)\n         (insert (row) (val> (: chart 1))) ) )\n   (=: chg T) )\n\n# Delete row\n(class +DelRowButton +Tiny +JS +Able +Tip +Button)\n# exe del\n\n(dm T (Exe Txt)\n   (=: exe Exe)\n   (=: del Txt)\n   (super '(nth (: chart 1 data) (row)) ,\"Delete row\" \"x\"\n      '(if (or (: home del) (not (curr)))\n         (_delRow (: exe))\n         (ask (if (: del) (eval @) ,\"Delete row?\")\n            (with (: home btn)\n               (or *AlwaysAsk (=: home del T))\n               (_delRow (: exe)) ) ) ) )\n   (=: chg T) )\n\n(de _delRow (Exe)\n   (eval Exe)\n   (set> (: chart 1)\n      (remove (row) (val> (: chart 1))) ) )\n\n# Move row up\n(class +BubbleButton +Tiny +JS +Able +Tip +Button)\n# exe\n\n(dm T (Exe)\n   (=: exe Exe)\n   (super\n      '(>= (length (: chart 1 data)) (row) 2)\n      ,\"Shift row up\"\n      \"\\^\"\n      '(let L (val> (: chart 1))\n         (eval (: exe))\n         (set> (: chart 1)\n            (conc\n               (cut (row -2) 'L)\n               (and (cadr L) (cons @))\n               (and (car L) (cons @))\n               (cddr L) ) ) ) )\n   (=: chg T) )\n\n\n(class +ClrButton +JS +Tip +Button)\n# clr\n\n(dm T (Lbl Lst . @)\n   (=: clr Lst)\n   (pass super ,\"Clear all input fields\" Lbl\n      '(for X (: clr)\n         (if (atom X)\n            (clr> (field X))\n            (set> (field (car X)) (eval (cdr X))) ) ) ) )\n\n\n(class +ShowButton +Button)\n\n(dm T (Flg Exe)\n   (let F (tmp (basename *Url) \"=\")\n      (super ,\"Show\" (list 'out F Exe))\n      (=: home show F)\n      (and Flg (out F (eval Exe))) ) )\n\n\n(class +Checkbox +field)\n# lbl\n\n# ([lbl])\n(dm T (Lbl)\n   (=: lbl Lbl)\n   (super) )\n\n(dm txt> (Val)\n   (if Val ,\"Yes\" ,\"No\") )\n\n(dm show> (Var)\n   (showFld (<check> Var (not (able)))) )\n\n(dm set> (Val Dn)\n   (super (bool Val) Dn) )\n\n(dm val> ()\n   (bool (super)) )\n\n\n(class +Radio +field)  # Inited by Tomas Hlavaty <kvietaag@seznam.cz>\n# grp rad lbl\n\n# (grp rad [lbl])\n(dm T (Grp Rad Lbl)\n   (super)\n   (=: grp (if Grp (field @) This))\n   (=: rad Rad)\n   (=: lbl Lbl) )\n\n(dm show> (Var)\n   (showFld\n      (<radio>\n         (cons '*Gui (: grp id))\n         (: rad)\n         (not (able)) ) ) )\n\n(dm js> ()\n   (pack\n      (ht:Fmt (: rad))\n      \"&\" (= (: rad) (str> (: grp)))\n      (unless (able) \"&=\") ) )\n\n(dm set> (Val Dn)\n   (when (== This (: grp))\n      (super Val Dn) ) )\n\n\n(class +TextField +field)\n# dx dy lst lbl lim align\n\n# ([dx [dy] [lbl]])\n# ([lst [lbl]])\n(dm T (X Y Z)\n   (nond\n      ((num? X)\n         (=: lst X)\n         (=: lbl Y) )\n      ((num? Y)\n         (=: dx X)\n         (=: lbl Y) )\n      (NIL\n         (=: dx X)\n         (=: dy Y)\n         (=: lbl Z) ) )\n   (super)\n   (or (: dx) (: lst) (=: chg)) )\n\n(dm show> (Var)\n   (showFld\n      (cond\n         ((: dy)\n            (<area> (: dx) (: dy) Var (not (able))) )\n         ((: dx)\n            (<field>\n               (if (: align) (- (: dx)) (: dx))\n               Var\n               (eval (: lim))\n               (not (able)) ) )\n         ((: lst)\n            (let\n               (L\n                  (mapcar\n                     '((\"X\")\n                        (cond\n                           ((atom \"X\") (eval \"X\"))\n                           ((pair (cdr \"X\"))\n                              (cons\n                                 (val (car \"X\"))\n                                 (cadr \"X\")\n                                 (val (cdr @)) ) )\n                           (T (cons (val (car \"X\")) (val (cdr \"X\")))) ) )\n                     @ )\n                  S (str> This) )\n               (<select>\n                  (if (or (member S L) (assoc S L))\n                     L\n                     (cons S L) )\n                  Var\n                  (not (able)) ) ) )\n         (T\n            (<style> (cons 'id (pack \"i\" *Form \"-\" (: id)))\n               (<span> *Style\n                  (if (str> This) (ht:Prin @) (<nbsp>)) ) ) ) ) ) )\n\n\n(class +LinesField +TextField)\n\n(dm set> (Val Dn)\n   (super (glue \"\\n\" Val) Dn) )\n\n(dm val> ()\n   (split (chop (super)) \"\\n\") )\n\n\n(class +ListTextField +TextField)\n# split\n\n(dm T (Lst . @)\n   (=: split (or Lst '(\" \" \"\\t\" \"\\n\")))\n   (pass super) )\n\n(dm set> (Val Dn)\n   (super (glue (car (: split)) Val) Dn) )\n\n(dm val> ()\n   (extract\n      '((L) (pack (clip L)))\n      (apply split (: split) (chop (super))) ) )\n\n\n# Password field\n(class +PwField +TextField)\n\n(dm show> (Var)\n   (showFld\n      (<passwd> (: dx) Var (eval (: lim)) (not (able))) ) )\n\n\n# Upload field\n(class +UpField +TextField)\n\n(dm show> (Var)\n   (showFld\n      (<upload> (: dx) Var (not (able))) ) )\n\n\n# Color picker\n(class +RgbPicker +field)\n\n(dm show> (Var)\n   (showFld\n      (<rgb> Var (not (able))) ) )\n\n\n# Symbol fields\n(class +SymField +TextField)\n\n(dm val> ()\n   (let S (super)\n      (and (<> \"-\" S) (intern S)) ) )\n\n(dm set> (Val Dn)\n   (super (and Val (name @)) Dn) )\n\n\n(class +numField +Align +TextField)\n# scl\n\n(dm chk> ()\n   (and\n      (str> This)\n      (not (format @ (: scl) *Sep0 *Sep3))\n      ,\"Numeric input expected\" ) )\n\n\n(class +NumField +numField)\n\n(dm txt> (Val)\n   (format Val) )\n\n(dm set> (Val Dn)\n   (super (format Val) Dn) )\n\n(dm val> ()\n   (format (super) NIL *Sep0 *Sep3) )\n\n\n(class +FixField +numField)\n\n(dm T (N . @)\n   (=: scl N)\n   (pass super) )\n\n(dm txt> (Val)\n   (format Val (: scl) *Sep0 *Sep3) )\n\n(dm set> (Val Dn)\n   (super (format Val (: scl) *Sep0 *Sep3) Dn) )\n\n(dm val> ()\n   (let S (super)\n      (format\n         (or (sub? *Sep0 S) (pack S *Sep0))\n         (: scl)\n         *Sep0\n         *Sep3 ) ) )\n\n\n(class +AtomField +Mono +TextField)\n\n(dm set> (Val Dn)\n   (super\n      (if (num? Val)\n         (align (: dx) (format Val))\n         Val )\n      Dn ) )\n\n(dm val> ()\n   (let S (super)\n      (or (format S) S) ) )\n\n\n(class +DateField +TextField)\n\n(dm txt> (Val)\n   (datStr Val) )\n\n(dm set> (Val Dn)\n   (super (datStr Val) Dn) )\n\n(dm val> ()\n   (expDat (super)) )\n\n(dm chk> ()\n   (and\n      (str> This)\n      (not (expDat @))\n      ,\"Bad date format\" ) )\n\n\n(class +TimeField +TextField)\n\n(dm txt> (Val)\n   (tim$ Val (> (: dx) 6)) )\n\n(dm set> (Val Dn)\n   (super (tim$ Val (> (: dx) 6)) Dn) )\n\n(dm val> ()\n   ($tim (super)) )\n\n(dm chk> ()\n   (and\n      (str> This)\n      (not ($tim @))\n      ,\"Bad time format\" ) )\n\n\n(class +Img +gui)\n# img alt url dx dy\n\n(dm T (Alt Url DX DY)\n   (=: alt Alt)\n   (=: url Url)\n   (=: dx DX)\n   (=: dy DY)\n   (super) )\n\n(dm js> ()\n   (pack\n      (ht:Fmt (sesId (or (: img) *No.png))) \"&\"\n      (eval (: alt)) \"&\"\n      (and (eval (: url)) (ht:Fmt (sesId @))) ) )\n\n(dm show> (Var)\n   (showFld\n      (<img>\n         (or (: img) *No.png)\n         (eval (: alt))\n         (eval (: url))\n         (: dx)\n         (: dy) ) ) )\n\n(dm set> (Val Dn)\n   (=: img Val) )\n\n(dm val> ()\n   (: img) )\n\n\n(class +Icon)\n# icon url\n\n(dm T (Exe Url . @)\n   (=: icon Exe)\n   (=: url Url)\n   (pass extra) )\n\n(dm js> ()\n   (pack (extra) \"&*\"\n      (ht:Fmt (sesId (eval (: icon)))) \"&\"\n      (and (eval (: url)) (ht:Fmt (sesId @))) ) )\n\n(dm show> (Var)\n   (prin \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><td>\")\n   (extra Var)\n   (prin \"</td><td>\")\n   (<img> (eval (: icon)) 'icon (eval (: url)))\n   (prinl \"</td></table>\") )\n\n\n(class +FileField +TextField)\n# file org\n\n(dm T (Exe . @)\n   (=: file Exe)\n   (pass super) )\n\n(dm set> (Val Dn)\n   (and\n      (<> Val (: org))\n      (eval (: file))\n      (ctl @ (out @ (prin (=: org Val)))) )\n   (super Val Dn) )\n\n(dm upd> ()\n   (set> This\n      (=: org\n         (let? F (eval (: file))\n            (and\n               (info F)\n               (ctl (pack \"+\" F)\n                  (in F (till NIL T)) ) ) ) ) ) )\n\n(dm file> (Exe)\n   (=: file Exe)\n   (upd> This) )\n\n\n(class +Url)\n# url\n\n(dm T (Fun . @)\n   (=: url Fun)\n   (pass extra) )\n\n(dm js> ()\n   (if2 (or (: dx) (: lst)) (txt> This (val> This))\n      (pack (extra) \"&*\" (ht:Fmt (sesId *Go.png)) \"&\" (ht:Fmt (sesId ((: url) @))))\n      (pack (extra) \"&*\" (ht:Fmt (sesId *No.png)) \"&\")\n      (pack (ht:Fmt @) \"&+\" (ht:Fmt (sesId ((: url) @))))\n      (extra) ) )\n\n(dm show> (Var)\n   (cond\n      ((or (: dx) (: lst))\n         (prin \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><td>\")\n         (extra Var)\n         (prin \"</td><td title=\\\"-->\\\">\")\n         (if (txt> This (val> This))\n            (<img> *Go.png 'url ((: url) @))\n            (<img> *No.png) )\n         (prinl \"</td></table>\") )\n      ((txt> This (val> This))\n         (showFld (<href> @ ((: url) @))) )\n      (T (extra Var)) ) )\n\n\n(class +HttpField +Url +TextField)\n\n(dm T @\n   (pass super\n      '((S) (or (sub? \"://\" S) (pack \"https://\" S))) ) )\n\n\n(class +MailField +Url +TextField)\n\n(dm T @\n   (pass super '((S) (pack \"mailto:\" S))) )\n\n\n(class +TelField +Url +TextField)\n\n(dm T @\n   (pass super '((S) (pack \"tel:\" S))) )\n\n(dm txt> (Val)\n   (telStr Val) )\n\n(dm set> (Val Dn)\n   (super (telStr Val) Dn) )\n\n(dm val> ()\n   (expTel (super)) )\n\n(dm chk> ()\n   (and\n      (str> This)\n      (not (expTel @))\n      ,\"Bad phone number format\" ) )\n\n\n(class +SexField +Map +TextField)\n\n(dm T (Lbl)\n   (super\n      '((,\"male\" . T) (,\"female\" . 0))\n      '(NIL ,\"male\" ,\"female\")\n      Lbl ) )\n\n\n### GUI charts ###\n(class +Chart)\n# home gui rows cols ofs lock put get data\n\n# (cols [put [get]])\n(dm T (N Put Get)\n   (setq *Chart This)\n   (queue (prop (=: home *App) 'chart) This)\n   (=: rows 1)\n   (when N\n      (=: gui (list (need (=: cols N)))) )\n   (=: ofs 1)\n   (=: lock T)\n   (=: put (or Put prog1))\n   (=: get (or Get prog1)) )\n\n(dm put> ()\n   (let I (: ofs)\n      (mapc\n         '((G D)\n            (unless (memq NIL G)\n               (mapc 'set> G ((: put) D I) T) )\n            (inc 'I) )\n         (: gui)\n         (nth (: data) I) ) ) )\n\n(dm get> ()\n   (and\n      (or (: rid) (: home able))\n      (not (: lock))\n      (let I (: ofs)\n         (map\n            '((G D)\n               (set D\n                  (trim\n                     ((: get)\n                        (mapcar 'val> (car G))\n                        (car D)\n                        (car G)\n                        I ) ) )\n               (mapc 'set>\n                  (car G)\n                  ((: put) (car D) I)\n                  T )\n               (inc 'I) )\n            (: gui)\n            (nth\n               (=: data\n                  (need (- 1 I (: rows)) (: data)) )\n               I ) )\n         (=: data (trim (: data))) ) ) )\n\n(dm scroll> (N)\n   (get> This)\n   (unless (gt0 (inc (:: ofs) N))\n      (=: ofs 1) )\n   (put> This) )\n\n(dm goto> (N)\n   (get> This)\n   (=: ofs (max 1 N))\n   (put> This) )\n\n(dm find> (\"Fun\")\n   (get> This)\n   (let \"D\" (cdr (nth (: data) (: ofs)))\n      (=: ofs\n         (if (find \"Fun\" \"D\")\n            (index @ (: data))\n            1 ) ) )\n   (put> This) )\n\n(dm txt1> (I Lst)\n   (map\n      '((G D)\n         (prin\n            (txt> (car G) (car D))\n            (if (cdr G) \"\\t\" \"\\n\") ) )\n      (: gui 1)\n      ((: put) Lst I) ) )\n\n(dm txt> ()\n   (for (I . L) (: data)\n      (txt1> This I L) ) )\n\n(dm set> (Lst)\n   (=: ofs\n      (max 1\n         (min (: ofs) (length (=: data (copy Lst)))) ) )\n   (put> This)\n   Lst )\n\n(dm log> (Lst)\n   (=: ofs (max (: ofs) (- (length (: data)) (: rows) -2)))\n   (set> This (conc (val> This) (cons Lst))) )\n\n(dm clr> ()\n   (set> This) )\n\n(dm val> ()\n   (get> This)\n   (: data) )\n\n(dm init> ()\n   (upd> This) )\n\n(dm upd> ())\n\n(dm chk> ())\n\n\n(class +Chart1 +Chart)\n\n# (cols)\n(dm T (N)\n   (super N list car) )\n\n\n### DB GUI ###\n(de newUrl @\n   (prog1\n      (pass new!)\n      (lock (setq *Lock @))\n      (apply url (url> @ 1)) ) )\n\n(de sortButton (@Var . @Fun)\n   (gui '(+Tiny +JS +Button) \"v\"\n      (fill\n         '(put!> (: home obj) '@Var\n            (by '@Fun sort (: home obj @Var)) ) ) )\n   (gui '(+Tiny +JS +Button) \"\\^\"\n      (fill\n         '(put!> (: home obj) '@Var\n            (flip (by '@Fun sort (: home obj @Var))) ) ) ) )\n\n# (choDlg Dst Ttl Rel [Hook] [((+XyzField) ..) Exe Able])\n(de choDlg (Dst Ttl Rel . @)\n   (let\n      (Hook (and (meta (cdr Rel) (car Rel) 'hook) (next))\n         Fld\n         (or (next)\n            (if Hook\n               (list '(+DbHint +TextField) Rel (lit Hook) 40)\n               (list '(+DbHint +TextField) Rel 40) ) )\n         Gui\n         (if (next)\n            (list '(+ObjView +TextField) @)\n            (list (list '+ObjView (last (car Fld))) (list ': (car Rel))) )\n         Able (if (args) (next) T) )\n      (diaform '(Dst Ttl Rel Hook Fld Gui Able)\n         (apply gui\n            (cons\n               (cons '+Focus '+Var (car Fld))\n               (cdr (or (assoc Rel *Cho) (push '*Cho (list Rel NIL))))\n               (cdr Fld) ) )\n         (searchButton '(init> (: home query)))\n         (gui 'query '(+DbChart) (cho)\n            '(search\n               (val> (: home gui 1))\n               (list (list (car Rel) (last Rel) Hook)) )\n            2 '((Obj) (list Obj Obj)) )\n         (<table> 'chart\n            (pack\n               (format\n                  (or (get (or Hook *DB) (last Rel) 0) 0)\n                  NIL NIL *Sep3 )\n               \" \"\n               Ttl )\n            '((btn) NIL)\n            (do (cho)\n               (<row> (alternating)\n                  (gui 1 '(+DstButton) Dst)\n                  (apply gui Gui 2) ) ) )\n         (<spread>\n            (scroll (cho))\n            (if (meta (cdr Rel) (car Rel) 'hook)\n               (newButton Able Dst (cdr Rel)\n                  (meta (cdr Rel) (car Rel) 'hook)\n                  Hook\n                  (car Rel)\n                  (let? Val (val> (: home gui 1))\n                     (unless (db (car Rel) (last Rel) Hook Val)\n                        Val ) ) )\n               (newButton Able Dst (cdr Rel)\n                  (car Rel)\n                  (let? Val (val> (: home gui 1))\n                     (unless (db (car Rel) (last Rel) Val)\n                        Val ) ) ) )\n            (cancelButton) ) ) ) )\n\n(de choTtl (Ttl X . @)\n   (pack\n      (format\n         (if (next)\n            (with (or (get @ X) (meta @ X))\n               (count (tree (: var) (: cls) (next))) )\n            (or (get *DB X 0) 0) )\n         NIL NIL *Sep3 )\n      \" \"\n      Ttl ) )\n\n(de cho ()\n   (if (: diaform) 16 8) )\n\n\n# Able object\n(class +AO +Able)\n# ao\n\n(dm T (Exe . @)\n   (=: ao Exe)\n   (pass super\n      '(and\n         (: home obj)\n         (not (: home obj T))\n         (eval (: ao)) ) ) )\n\n\n# Lock/Edit button prefix\n(class +Edit +Rid +Force +Tip)\n# save\n\n(dm T (Exe)\n   (super\n      '(nor (: home able) (lock (: home obj)))\n      '(if (: home able)\n         ,\"Release exclusive write access for this object\"\n         ,\"Gain exclusive write access for this object\" )\n      '(if (: home able) ,\"Done\" ,\"Edit\")\n      '(if (: home able)\n         (when (able)\n            (eval (: save))\n            (unless (pair *Err)\n               (rollback)\n               (=: home lock (off *Lock)) ) )\n         (=: home lock (tryLock (: home obj))) ) )\n   (=: save Exe) )\n\n(de tryLock (Obj)\n   (if (lock Obj)\n      (nil\n         (error (text ,\"Currently edited by '@2' (@1)\" @  (cdr (lup *Users @)))) )\n      (let *Run NIL\n         (sync)\n         (tell) )\n      (setq *Lock Obj) ) )\n\n(de onDone (Exe)\n   (for This (: gui)\n      (and (isa '+Edit This) (=: save Exe)) ) )\n\n(de editButton (Able Exe)\n   (<style> (and (: able) \"edit\")\n      (gui '(+AO +Focus +Edit +Button) Able Exe) ) )\n\n(de searchButton (Exe)\n   (gui '(+Rid +JS +Tip +Button) ,\"Start search\" ,\"Search\" Exe) )\n\n(de resetButton (Lst)\n   (gui '(+Rid +Force +ClrButton) T ,\"Reset\" Lst) )\n\n(de newButton (Able Dst . Args)\n   (gui '(+Rid +Able +Close +Tip +Button) Able ,\"Create new object\" ',\"New\"\n      (nond\n         (Dst (cons 'newUrl Args))\n         ((pair Dst)\n            (list 'set> (lit Dst) (cons 'new! Args)) )\n         (NIL\n            (list 'prog (list '=: 'obj (cons 'new! Args)) Dst) ) ) ) )\n\n# Clone object in form\n(de cloneButton (Able)\n   (gui '(+Rid +Able +Tip +Button) (or Able T)\n      ,\"Create a new copy of this object\"\n      ,\"New/Copy\"\n      '(apply url\n         (url>\n            (prog1\n               (clone!> (: home obj))\n               (lock (setq *Lock @)) )\n            1 ) ) ) )\n\n# Delete object in form\n(de delButton (Able @Txt)\n   (gui '(+Force +Rid +Able +Tip +Button) T\n      (list 'and '(or (: home able) (: home obj T)) Able)\n      '(if (: home obj T)\n         ,\"Mark this object as \\\"not deleted\\\"\"\n         ,\"Mark this object as \\\"deleted\\\"\" )\n      '(if (: home obj T) ,\"Restore\" ,\"Delete\")\n      (fill\n         '(nond\n            ((: home obj T)\n               (ask (text ,\"Delete @1?\" @Txt)\n                  (lose!> (: home top 1 obj))\n                  (rollback)\n                  (=: home lock (off *Lock)) ) )\n            ((keep?> (: home obj))\n               (ask (text ,\"Restore @1?\" @Txt)\n                  (keep!> (: home top 1 obj)) ) )\n            (NIL\n               (note ,\"Restore\"\n                  (mapcar\n                     '((X) (text \"'@1' -- @2\" (car X) (cdr X)))\n                     @ ) ) ) ) ) ) )\n\n\n# Relations\n(class +/R +Able)\n# erVar erObj\n\n(dm T (Lst . @)\n   (=: erVar (car Lst))\n   (=: erObj (cdr Lst))\n   (pass super\n      '(and (eval (: erObj)) (not (get @ T))) ) )\n\n(dm upd> ()\n   (set> This (get (eval (: erObj)) (: erVar))) )\n\n\n# Entity/Relation\n(class +E/R +/R)\n# er\n\n(dm set> (Val Dn)\n   (=: er Val)\n   (and\n      (not (: lock))\n      (eval (: erObj))\n      (put!> @ (: erVar) Val) )\n   (extra Val Dn) )\n\n(dm val> ()\n   (let Val (extra)\n      (if (= Val (: er))\n         (get (eval (: erObj)) (: erVar))\n         Val ) ) )\n\n(dm chk> ()\n   (or\n      (extra)\n      (and\n         (eval (: erObj))\n         (mis> @ (: erVar) (val> This)) ) ) )\n\n# Runtime relations\n(de erVar (Var Exe . @)\n   (let *Class (last (type (eval Exe)))\n      (unless (get *Class Var)\n         (put *Class Var (new (next) Var (rest))) ) )  # rel\n   (cons Var Exe) )\n\n\n# +Swap relations\n(class +Swp)\n\n(dm set> (Val Dn)\n   (extra\n      (if (ext? Val) (val Val) Val)\n      Dn ) )\n\n\n(class +Swap/R +Swp +E/R)\n\n(dm val> ()\n   (let Val (extra)\n      (if (ext? Val) (val Val) Val) ) )\n\n\n# Subobject relation\n(class +SubE/R +E/R)\n# sub\n\n(dm T (Lst . @)\n   (pass super\n      (cons\n         (++ Lst)\n         (append '(: home obj) (cons (car Lst))) ) )\n   (=: sub Lst)\n   (=: able (bool (: able))) )\n\n(dm set> (Val Dn)\n   (when (and Val (not (eval (: erObj))))\n      (dbSync)\n      (put> (: home obj)\n         (: sub 1)\n         (new (or (meta (: sub -1) 'Dbf 1) 1) (: sub -1)) )\n      (commit 'upd) )\n   (super Val Dn) )\n\n\n(class +BlobField +/R +TextField)\n# org\n\n(dm set> (Val Dn)\n   (and\n      (not (: lock))\n      (<> Val (: org))\n      (let? Obj (eval (: erObj))\n         (protect\n            (when (put!> Obj (: erVar) (bool Val))\n               (out (blob Obj (: erVar))\n                  (prin (=: org Val)) )\n               (blob+ Obj (: erVar)) ) ) ) )\n   (super Val Dn) )\n\n(dm upd> ()\n   (set> This\n      (=: org\n         (let? Obj (eval (: erObj))\n            (when (get Obj (: erVar))\n               (in (blob Obj (: erVar))\n                  (till NIL T) ) ) ) ) ) )\n\n\n(class +ClassField +Map +TextField)\n# erObj\n\n(dm T (Exe Lst)\n   (=: erObj Exe)\n   (super Lst (mapcar car Lst)) )\n\n(dm upd> ()\n   (set> This (val (eval (: erObj)))) )\n\n(dm set> (Val Dn)\n   (and\n      (eval (: erObj))\n      (set!> @ Val) )\n   (super Val Dn) )\n\n\n(class +obj)\n# msg obj\n\n# ([T|msg] ..)\n(dm T ()\n   (let A (next)\n      (if (atom A)\n         (prog (=: msg A) (next))\n         (=: msg 'url>)\n         A ) ) )\n\n(dm js> ()\n   (if (=T (: msg))\n      (extra)\n      (if2 (or (: dx) (: lst)) (try (: msg) (: obj) 1 This)\n         (pack (extra) \"&*\" (ht:Fmt (sesId *Go.png)) \"&\" (ht:Fmt (sesId (mkUrl @))))\n         (pack (extra) \"&*\" (ht:Fmt (sesId *No.png)) \"&\")\n         (pack (ht:Fmt (nonblank (str> This))) \"&+\" (ht:Fmt (sesId (mkUrl @))))\n         (extra) ) ) )\n\n(dm show> (Var)\n   (cond\n      ((=T (: msg)) (extra Var))\n      ((or (: dx) (: lst))\n         (prin \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\"><td>\")\n         (extra Var)\n         (prin \"</td><td title=\\\"-->\\\">\")\n         (if (try (: msg) (: obj) 1 This)\n            (<img> *Go.png 'obj (mkUrl @))\n            (<img> *No.png) )\n         (prinl \"</td></table>\") )\n      ((try (: msg) (: obj) 1 This)\n         (showFld (<href> (nonblank (str> This)) (mkUrl @))) )\n      (T (extra Var)) ) )\n\n\n(class +hintObj +hint +obj)\n# objVar objTyp objHook\n\n(dm hint> (Str)\n   (dbHint (extra Str)\n      (: objVar)\n      (last (: objTyp))\n      (eval (: objHook)) ) )\n\n\n\n(class +Obj +hintObj)\n# objVar objTyp objHook\n\n# ([T|msg] (var . typ) [hook] [T] ..)\n(dm T @\n   (let A (super)\n      (=: objVar (car A))\n      (=: objTyp (cdr A)) )\n   (when (meta (: objTyp) (: objVar) 'hook)\n      (=: objHook (next)) )\n   (let A (next)\n      (pass extra\n         (if (=T A)\n            (cons NIL\n               (if (meta (: objTyp) (: objVar) 'hook)\n                  (collect (: objVar) (last (: objTyp)) (eval (: objHook)) NIL T (: objVar))\n                  (collect (: objVar) (last (: objTyp)) NIL T (: objVar)) ) )\n            A ) ) ) )\n\n(dm txt> (Obj)\n   (if (ext? Obj)\n      (get Obj (: objVar))\n      Obj ) )\n\n(dm set> (Obj Dn)\n   (extra\n      (if (ext? (=: obj Obj))\n         (get Obj (: objVar))\n         Obj )\n      Dn ) )\n\n(dm val> ()\n   (let Val (extra)\n      (cond\n         ((and (: obj) (not (ext? @))) Val)\n         ((= Val (get (: obj) (: objVar)))\n            (: obj) )\n         ((: objTyp)\n            (=: obj\n               (if (meta (: objTyp) (: objVar) 'hook)\n                  (db (: objVar) (last (: objTyp)) (eval (: objHook)) Val)\n                  (db (: objVar) (last (: objTyp)) Val) ) ) )\n         (T Val) ) ) )\n\n(dm chk> ()\n   (or\n      (extra)\n      (let? S (str> This)\n         (and\n            (: objTyp)\n            (not (val> This))\n            (<> \"-\" S)\n            ,\"Data not found\" ) ) ) )\n\n\n(class +Obj2 +Obj)\n# objVar2\n\n(dm T @\n   (=: objVar2 (next))\n   (pass super) )\n\n(dm hint> (Str)\n   (let L\n      (make\n         (for S (dbHint Str (: objVar2) (last (: objTyp)))\n            (for Obj (collect (: objVar2) (last (: objTyp)) S)\n               (link (pack (get Obj (: objVar)) \" — \" S)) )\n            (T (nth (made) 36)) ) )\n      (if\n         (if (meta (: objTyp) (: objVar) 'hook)\n            (db (: objVar) (last (: objTyp)) (eval (: objHook)) (format Str))\n            (db (: objVar) (last (: objTyp)) (format Str)) )\n         (cons (pack Str \" — \" (get @ (: objVar2))) L)         # Dash\n         L ) ) )\n\n(dm str> ()\n   (let? S (extra)\n      (let (L (split (chop S) \" \")  N (format (car L)))\n         (format\n            (nond\n               (N                                              # Text\n                  (get\n                     (db (: objVar2) (last (: objTyp)) S)\n                     (: objVar) ) )\n               ((cdr L) N)                                     # Nr\n               ((= '(\"—\") (cadr L))                            # Nr Text\n                  (get\n                     (db (: objVar2) (last (: objTyp)) S)\n                     (: objVar) ) )\n               ((<>                                            # Nr — Text\n                     (glue \" \" (cddr L))\n                     (get\n                        (if (meta (: objTyp) (: objVar) 'hook)\n                           (db (: objVar) (last (: objTyp)) (eval (: objHook)) N)\n                           (db (: objVar) (last (: objTyp)) N) )\n                        (: objVar2) ) )\n                  N ) ) ) ) ) )\n\n\n(class +ObjVal +hintObj)\n# objVar objTyp hook objHook\n\n# ([T|msg] (var . typ) [hook] ..)\n(dm T @\n   (let A (super)\n      (=: objVar (car A))\n      (=: objTyp (cdr A)) )\n   (when (=: hook (meta (: objTyp) (: objVar) 'hook))\n      (=: objHook (next)) )\n   (pass extra) )\n\n(dm txt> (Obj)\n   (if (ext? Obj)\n      (get Obj (: objVar))\n      Obj ) )\n\n(dm set> (Obj Dn)\n   (extra\n      (get (=: obj Obj) (: objVar))\n      Dn ) )\n\n(dm val> ()\n   (when (able)\n      (let Val (extra)\n         (nond\n            (Val\n               (and (: obj) (put!> @ (: objVar) NIL))\n               (=: obj NIL) )\n            ((: obj)\n               (dbSync)\n               (=: obj (new (or (meta (: objTyp) 'Dbf 1) 1) (: objTyp)))\n               (and\n                  (: hook)\n                  (nT @)\n                  (put> (: obj) (: hook) (eval (: objHook))) )\n               (put> (: obj) (: objVar) Val)\n               (commit 'upd) )\n            (NIL (put!> @ (: objVar) Val)) ) ) )\n   (: obj) )\n\n\n(class +ObjVar +obj)\n# objVar\n\n(dm T (Var . @)\n   (=: objVar Var)\n   (=: msg 'url>)\n   (pass extra) )\n\n(dm set> (Obj Dn)\n   (extra\n      (get (=: obj Obj) (: objVar))\n      Dn ) )\n\n(dm val> ()\n   (let? Obj (: obj)\n      (and (able) (put!> Obj (: objVar) (extra)))\n      Obj ) )\n\n\n(class +ObjView +obj)\n# disp obj\n\n# ([T|msg] exe ..)\n(dm T @\n   (=: disp (super))\n   (pass extra)\n   (=: able) )\n\n(dm txt> (Obj)\n   (let Exe (: disp)\n      (if (ext? Obj)\n         (with Obj (eval Exe))\n         Obj ) ) )\n\n(dm set> (Obj Dn)\n   (let Exe (: disp)\n      (extra\n         (if (ext? (=: obj Obj))\n            (with Obj (eval Exe))\n            Obj )\n         Dn ) ) )\n\n(dm val> ()\n   (: obj) )\n\n\n### Incremental charts ###\n(class +stepChart +Chart)\n# iniR iniQ query\n\n# (iniR iniQ cols [put [get]])\n(dm T (R Q . @)\n   (=: iniR R)\n   (=: iniQ Q)\n   (pass super) )\n\n(dm query> (Q)\n   (=: query Q)\n   (set> This) )\n\n(dm init> ()\n   (query> This (eval (: iniQ))) )\n\n(dm put> ()\n   (while\n      (and\n         (> (: ofs) (- (length (: data)) (max (: rows) (: iniR))))\n         (step> This) )\n      (queue (:: data) @) )\n   (super) )\n\n\n# DB search chart\n(class +DbChart +stepChart)\n\n(dm step> ()\n   (search (: query)) )\n\n(dm txt> ()\n   (for ((I . Q) (eval (: iniQ)) (search Q))\n      (txt1> This I @) ) )\n\n(dm all> ()\n   (make\n      (for (Q (eval (: iniQ)) (search Q))\n         (link @) ) ) )\n\n(dm clr> ()\n   (query> This NIL) )\n\n\n# Pilog query chart\n(class +QueryChart +stepChart)\n\n(dm step> ()\n   (; (prove (: query)) @@) )\n\n(dm txt> ()\n   (for ((I . Q) (eval (: iniQ)) (prove Q))\n      (txt1> This I (; @ @@)) ) )\n\n(dm all> ()\n   (make\n      (for (Q (eval (: iniQ)) (prove Q))\n         (link (; @ @@)) ) ) )\n\n(dm clr> ()\n   (query> This (fail)) )\n\n\n# Tree traversal chart\n(class +TreeChart +stepChart)\n\n(dm step> ()\n   (and (step (: query)) (cons @@ @)) )\n\n(dm txt> ()\n   (for ((I . Q) (eval (: iniQ)) (step Q))\n      (txt1> This I (cons @@ @)) ) )\n\n(dm all> ()\n   (make\n      (for (Q (eval (: iniQ)) (step Q))\n         (link (cons @@ @)) ) ) )\n\n(dm clr> ()\n   (query> This NIL) )\n\n(private) (Attr Var H1 Rows Gui Sep H2 Cols Put Get Prg Len R)\n\n# 3D-Chart (list of bags with list of bags)\n(de bagBag (Attr Var H1 Rows Gui Sep H2 Cols Put Get . Prg)\n   (let Len (length Gui)\n      (<grid> 3\n         (prog\n            (put\n               (gui '(+E/R +Chart) (cons Var '(: home obj)) (+ 2 Len)\n                  '((L I)\n                     (when (= I (+ (format (: home radio)) (: ofs)))\n                        (unless (= I (: radio))\n                           (=: radio I)\n                           (set> (cadr (memq This (: home chart)))\n                              (get L (inc (: gf 1))) ) ) )\n                     (mapcar\n                        '((F) (if F (++ L) (car L)))\n                        (: gf -1) ) )\n                  '((L D)\n                     (conc\n                        (filter prog2 L (: gf -1))\n                        (nth D (inc (: gf 1))) ) ) )\n               'gf (cons (cnt car Gui) (mapcar car Gui)) )\n            (<table> Attr NIL H1\n               (macro\n                  (for R (range 0 (dec Rows))\n                     (<row> NIL\n                        ^ (mapcar cdr Gui)\n                        (gui (inc Len) '(+Able +DelRowButton)\n                           '(nor\n                              (= (row) (: chart 1 radio))\n                              (>= (: chart 1 radio) (length (: chart 1 data))) )\n                           '(=: chart 1 radio NIL) )\n                        (gui (+ 2 Len) '(+BubbleButton) '(=: chart 1 radio NIL))\n                        (if (=0 R)\n                           (gui '(+Rid +Var +Radio) (:: radio) NIL \"0\")\n                           (gui '(+Rid +Radio) (* R (- -3 Len)) (format R)) ) ) ) )\n               (<row> NIL (scroll Rows T) - -) ) )\n         (run Sep)\n         (prog\n            (gui '(+Init +Set +Chart)\n               (get (: obj) Var 1\n                  (length (meta (: obj) Var 'bag)) )\n               '((Lst)\n                  (=: ctl\n                     (car (prior (memq This (: home chart)) (: home chart))) )\n                  (=: pos\n                     (or\n                        (+ (format (: home radio)) (: ctl ofs))\n                        1 ) )\n                  (when (: home able)\n                     (put!> (: home obj) (: ctl erVar)\n                        (let L (get (: home obj) (: ctl erVar))\n                           (conc\n                              (cut (dec (: pos)) 'L)\n                              (list\n                                 (conc\n                                    (need (- (: ctl gf 1))\n                                       (head (: ctl gf 1) (++ L)) )\n                                    (list Lst) ) )\n                              L ) ) ) )\n                  Lst )\n               Cols\n               Put\n               Get )\n            (<table> Attr NIL H2 (run Prg)) ) ) ) )\n\n(private) (Lst X)\n\n# Form object\n(de <id> Lst\n   (idObj Lst) )\n\n(de idObj (Lst)\n   (with (if *PRG (: obj) (=: obj *ID))\n      (and (: T) (prin \"[\"))\n      (for X (if (=T (car Lst)) (cdr Lst) Lst)\n         (if (pair (setq X (eval X)))\n            (<$> (cdr X) (car X))\n            (ht:Prin X) ) )\n      (and (: T) (prin \"]\")) )\n   (=: able\n      (cond\n         ((: obj T))\n         ((not (: obj)))\n         ((=T (car Lst)) T)\n         ((== *Lock (: obj)) (=: lock (: obj)) T)\n         (*Lock (rollback) (=: lock (off *Lock))) ) ) )\n\n(private) (Able Txt Del Dlg Var X Hook Msg Exe Prg)\n\n(de panel (Able Txt Del Dlg Var X Hook Msg Exe . Prg)\n   (unless (eval Able)\n      (when *Lock\n         (rollback)\n         (=: lock (off *Lock)) )\n      (=: able) )\n   (<spread>\n      (editButton Able Exe)\n      (run Prg 1)\n      (delButton\n         (cond\n            ((=T Able) Del)\n            ((=T Del) Able)\n            ((and Able Del) (list 'and Able Del)) )\n         (list 'text Txt\n            (if (pair Var)\n               (list 'with '(: home obj) (car Var))\n               (list ': 'home 'obj Var) ) ) )\n      (choButton Dlg)\n      (when X\n         (if (pair X)\n            (stepBtn X Msg)\n            (stepBtn (fin Var) X Hook Msg) ) ) )\n   (--) )\n\n(private) (Entity Cho Var X Able Del Lst Prg)\n\n# Standard ID form\n(de idForm (Entity Cho Var X Able Del Lst . Prg)\n   (ifn *ID\n      (prog\n         (<h3> NIL ,\"Select\" \" \" Entity)\n         (form 'dialog\n            (if (pair Cho)\n               (eval @)\n               (choDlg NIL Cho (list (fin Var) X)) ) ) )\n      (form NIL\n         (<h3> NIL Entity \": \" (idObj Lst))\n         (panel Able (pack Entity \" '@1'\") Del\n            (or\n               (pair Cho)\n               (list 'choDlg NIL (lit Cho) (lit (list (fin Var) X))) )\n            Var X\n            (and\n               (atom X)\n               (or (get X (fin Var) 'hook) (meta X (fin Var) 'hook))\n               (get (: obj) @) ) )\n         (run Prg) ) ) )\n\n(private) (Msg Env X)\n\n### Undo / Redo ###\n(de change (Msg Env . X)\n   (set> (: home undo)\n      (cons\n         (cons Msg Env X)\n         (val> (: home undo)) ) )\n   (set> (: home redo))\n   (bind Env (run (cdr X))) )\n\n\n(class +todoButton +Able +Tip +Button)\n# todo\n\n(dm T (Tip Lbl Exe)\n   (super '(val> This)\n      (list 'and '(val> This) (list 'text Tip '(caar @)))\n      Lbl\n      Exe ) )\n\n(dm set> (Val Dn)\n   (=: todo Val) )\n\n(dm val> ()\n   (: todo) )\n\n\n(class +UndoButton +todoButton)\n\n(dm T ()\n   (super ,\"Undo: '@1'\" ,\"Undo\"\n      '(let U (val> This)\n         (set> (: home redo)\n            (cons (car U) (val> (: home redo))) )\n         (set> This (cdr U))\n         (bind (cadar U)\n            (eval (caddar U)) ) ) )\n   (=: home undo This) )\n\n\n(class +RedoButton +todoButton)\n\n(dm T ()\n   (super ,\"Redo: '@1'\" ,\"Redo\"\n      '(let R (val> This)\n         (set> (: home undo)\n            (cons (car R) (val> (: home undo))) )\n         (set> This (cdr R))\n         (bind (cadar R)\n            (run (cdddar R)) ) ) )\n   (=: home redo This) )\n\n### Debug ###\n`*Dbg\n\n(allow \"!console\")\n(de console @  # JS: lisp(null, \"console\", \"Message\");\n   (msg (cons 'console (rest)))\n   (respond) )\n\n(noLint 'gui)\n(noLint 'choDlg 'gui)\n(noLint 'choDlg 'btn)\n(noLint 'jsForm 'action)\n"
  },
  {
    "path": "lib/frac.l",
    "content": "# 22jul25 Software Lab. Alexander Burger\n\n(symbols 'frac 'pico)\n\n(local) (gcd lcm f)\n\n(de gcd (A B)\n   (tco (A B)\n      (or (=0 B) (tc B (% A B))) )\n   (abs A) )\n\n(de lcm (A B)\n   (*/ A B (gcd A B)) )\n\n(de f (N D)\n   (and (=0 D) (quit \"frac/0\" N))\n   (if (=0 N)\n      (cons 0 1)\n      (let G (gcd N D)\n         (if (gt0 N)\n            (cons (/ N G) (/ D G))\n            (cons (- (/ N G)) (- (/ D G))) ) ) ) )\n\n(local) (fabs 1/f f+ f- f* f/ f** fcmp)\n\n(de fabs (A)\n   (cons (abs (car A)) (cdr A)) )\n\n(de 1/f (A)\n   (and (=0 (car A)) (quit \"frac/0\" A))\n   (if (gt0 (car A))\n      (cons (cdr A) (car A))\n      (cons (- (cdr A)) (- (car A))) ) )\n\n(de f+ (A B)\n   (let D (lcm (cdr A) (cdr B))\n      (let N\n         (+\n            (* (/ D (cdr A)) (car A))\n            (* (/ D (cdr B)) (car B)) )\n         (if (=0 N)\n            (cons 0 1)\n            (let G (gcd N D)\n               (cons (/ N G) (/ D G)) ) ) ) ) )\n\n(de f- (A B)\n   (if B\n      (f+ A (f- B))\n      (cons (- (car A)) (cdr A)) ) )\n\n(de f* (A B)\n   (let (G (gcd (car A) (cdr B))  H (gcd (car B) (cdr A)))\n      (cons\n         (* (/ (car A) G) (/ (car B) H))\n         (* (/ (cdr A) H) (/ (cdr B) G)) ) ) )\n\n(de f/ (A B)\n   (f* A (1/f B)) )\n\n(de f** (A N)\n   (if (ge0 N)\n      (cons (** (car A) N) (** (cdr A) N))\n      (cons (** (cdr A) (- N)) (** (car A) (- N))) ) )\n\n(de fcmp (A B)\n   (if (gt0 (* (car A) (car B)))\n      (let Q (f/ A B)\n         (*\n            (if (gt0 (car A)) 1 -1)\n            (- (car Q) (cdr Q))) )\n      (- (car A) (car B)) ) )\n\n(local) (f< f<= f> f>=)\n\n(de f< (A B)\n   (lt0 (fcmp A B)) )\n\n(de f<= (A B)\n   (ge0 (fcmp B A)) )\n\n(de f> (A B)\n   (gt0 (fcmp A B)) )\n\n(de f>= (A B)\n   (ge0 (fcmp A B)) )\n"
  },
  {
    "path": "lib/gis.js",
    "content": "/* 22nov21 Software Lab. Alexander Burger */\n\nvar Map;\nvar Sources;\n\nfunction osm(id, lat, lon, zoom, click) {\n   Map = new ol.Map( {\n      target: id,\n      view: new ol.View( {\n         center: ol.proj.fromLonLat([lon/1000000-180, lat/1000000-90]),\n         zoom: zoom\n      } ),\n      layers: [\n         new ol.layer.Tile({source: new ol.source.OSM()}),\n         new ol.layer.Vector( {\n            source: Sources = new ol.source.Vector({features: []})\n         } )\n      ]\n   } );\n   Map.form = document.getElementById(id).parentNode;\n   while (Map.form  &&  Map.form.tagName != \"FORM\")\n      Map.form = Map.form.parentNode;\n\n   Map.on(\"pointermove\", function (evt) {\n      Map.getViewport().style.cursor = \"\";\n      Map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {\n         if (feature.href)\n            Map.getViewport().style.cursor = \"pointer\";\n         lisp(Map.form, \"osmHover\", feature.txt);\n      } )\n   } );\n\n   Map.on(\"click\", function(evt) {\n      Map.forEachFeatureAtPixel(evt.pixel, function (feature, layer) {\n         if (feature.href) {\n            window.location.href = feature.href;\n            return;\n         }\n      } )\n      if (click > 0) {\n         var pt = ol.proj.toLonLat(evt.coordinate);\n         lisp(Map.form, \"osmClick\", (pt[1] + 90) * 1000000, (pt[0] + 180) * 1000000);\n         if (click > 1)\n            window.location.reload(true);\n      }\n   } );\n\n   Map.on(\"moveend\", function() {\n      var view = Map.getView().calculateExtent(Map.getSize());\n      var a = ol.proj.toLonLat([view[0], view[1]]);\n      var b = ol.proj.toLonLat([view[2], view[3]]);\n      lisp(Map.form, \"osmStat\",\n         (a[1] + 90) * 1000000, (a[0] + 180) * 1000000,\n         (b[1] + 90) * 1000000, (b[0] + 180) * 1000000,\n         Map.getView().getZoom() );\n   } );\n}\n\nfunction poi(lat, lon, img, x, y, txt, dy, col, url, drag) {\n   var feature = new ol.Feature( {\n      geometry: new ol.geom.Point(ol.proj.fromLonLat([lon/1000000-180, lat/1000000-90]))\n   } );\n\n   feature.setStyle( [\n      new ol.style.Style( {\n         image: new ol.style.Icon( {\n            src: img,\n            anchor: [x, y]\n         } ),\n         text: new ol.style.Text( {\n            text: txt,\n            offsetY: dy,\n            fill: new ol.style.Fill({color: col})\n         } )\n      } )\n   ] );\n\n   if (drag > 0) {\n      Map.addInteraction(new ol.interaction.Translate( {\n         features: new ol.Collection([feature])\n      } ) );\n      feature.on('change', function() {\n            var pt = ol.proj.toLonLat(this.getGeometry().getCoordinates());\n            lisp(Map.form, \"osmDrag\", txt, (pt[1] + 90) * 1000000, (pt[0] + 180) * 1000000);\n            if (drag > 1)\n               window.location.reload(true);\n         },\n         feature );\n   }\n   feature.txt = txt;\n   feature.href = decodeURIComponent(url);\n   Sources.addFeature(feature);\n}\n\nfunction line(col, lat1, lon1, lat2, lon2) {\n   var feature = new ol.Feature( {\n      geometry: new ol.geom.LineString( [\n         ol.proj.fromLonLat([lon1/1000000-180, lat1/1000000-90]),\n         ol.proj.fromLonLat([lon2/1000000-180, lat2/1000000-90]) ] )\n   } );\n   feature.setStyle( [\n      new ol.style.Style( {\n         stroke: new ol.style.Stroke({color: col})\n      } )\n   ] );\n   Sources.addFeature(feature);\n}\n"
  },
  {
    "path": "lib/gis.l",
    "content": "# 09jul22 Software Lab. Alexander Burger\n\n(symbols 'gis 'pico)\n\n(push1 '*JS (allow \"@lib/gis.js\"))\n\n(local) (lat lon fmt)\n\n(de lat (Lat F)\n   (dec 'Lat 90.0)\n   (if F\n      (format (*/ Lat 1000 1.0) 3)\n      (format Lat `*Scl) ) )\n\n(de lon (Lon F)\n   (dec 'Lon 180.0)\n   (if F\n      (format (*/ Lon 1000 1.0) 3)\n      (format Lon `*Scl) ) )\n\n(de fmt (Lat Str Lon F)\n   (when (or Lat Lon)\n      (pack (lat Lat F) Str (lon Lon F)) ) )\n\n# Short distance, assuming flat earth\n(local) distance\n\n(de distance (Lat1 Lon1 Lat2 Lon2)  # [m]\n   (let\n      (DX (*/ (- Lon2 Lon1) 6371000 pi 180.0)\n         DY (*/ (cos (*/ Lat1 pi 180.0)) (- Lat2 Lat1) 6371000 pi `(* 1.0 180.0)) )\n      (sqrt (+ (* DX DX) (* DY DY))) ) )\n\n# Latitude Field\n(local) +LatField\n\n(class +LatField +Fmt +FixField)\n\n(dm T @\n   (pass super\n      '((Num) (- Num 90.0))\n      '((Lat) (+ Lat 90.0))\n      `*Scl ) )\n\n# Longitude Field\n(local) +LonField\n\n(class +LonField +Fmt +FixField)\n\n(dm T @\n   (pass super\n      '((Num) (- Num 180.0))\n      '((Lon) (+ Lon 180.0))\n      `*Scl ) )\n\n# Clickable position field\n(local) +LatLonField\n\n(class +LatLonField +TextField)\n\n(dm T (Msg . @)\n   (=: msg Msg)\n   (pass super)\n   (=: able) )\n\n(dm set> (X Dn)\n   (=: obj (car X))\n   (=: lt (cadr X))\n   (=: ln (cddr X))\n   (super (fmt (: lt) \", \" (: ln)) Dn) )\n\n(dm js> ()\n   (if (try (: msg) (: obj) (: lt) (: ln))\n      (pack\n         (fmt (: lt) \", \" (: ln))\n         \"&+\"\n         (ht:Fmt (sesId (mkUrl @))) )\n      (super) ) )\n\n(dm val> ()\n   (cons (: obj) (: lt) (: ln)) )\n\n(dm show> (\"Var\")\n   (showFld\n      (if (try (: msg) (: obj) (: lt) (: ln))\n         (<href>\n            (fmt (: lt) \", \" (: ln))\n            (mkUrl @) )\n         (super \"Var\") ) ) )\n\n# OpenLayers / OpenStreetMap\n# (val *Osm) -> ((lat1 . lat2) (lon1 . lon2) . zoom)\n(local) (*Osm <osm> osmStat osmClick osmDrag <poi> <line>)\n\n(mapc allow '(osmStat osmClick osmDrag osmHover))\n\n(de <osm> (Lat Lon Zoom Click Upd)\n   (<div> '(map (id . map)))\n   (when (val *Osm)\n      (setq\n         Lat (*/ (+ (caar @) (cdar @)) 2)\n         Lon (*/ (+ (caadr @) (cdadr @)) 2)\n         Zoom (cddr @) ) )\n   (with *Top\n      (css \"https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/css/ol.css\")\n      (javascript \"https://cdn.rawgit.com/openlayers/openlayers.github.io/master/en/v5.3.0/build/ol.js\"\n         \"osm('map', \" Lat \", \" Lon \", \" Zoom \", \"\n         (if2 Click (and Upd (: able)) 2 1 0 0) \")\" )\n      (=: osmClick Click) ) )\n\n(de osmStat (Lat1 Lon1 Lat2 Lon2 Zoom)\n   (when *Osm\n      (set @\n         (cons\n            (cons Lat1 Lat2)\n            (cons Lon1 Lon2)\n            Zoom ) ) ) )\n\n(de osmClick (Lat Lon)\n   (with *Top\n      (and (: osmClick) (@ Lat Lon)) ) )\n\n(de osmDrag (Txt Lat Lon)\n   (with *Top\n      (and\n         (: able)\n         (assoc Txt (: osmDrag))\n         ((cdr @) Txt Lat Lon) ) ) )\n\n(de osmHover (Txt)\n   (with *Top\n      (and\n         (assoc Txt (: osmHover))\n         ((cdr @) Txt) ) ) )\n\n(de <poi> (Lat Lon Img X Y Txt DY Col Url Drag Upd Hover)\n   (with *Top\n      (<javascript>\n         \"poi(\" Lat \", \" Lon \", '\" (sesId Img) \"', \" X \", \" Y \", '\"\n         (replace (chop Txt) \"\\\\\" \"\\\\\\\\\" \"'\" \"\\\\'\")\n         \"', \" DY \", '\" Col \"', '\" (and Url (sesId @)) \"', \"\n         (if2 (and Drag (: able)) Upd 2 1 0 0) \")\" )\n      (and Drag (push (:: osmDrag) (cons Txt @)))\n      (and Hover (push (:: osmHover) (cons Txt @))) ) )\n\n(de <line> (Col Lat1 Lon1 Lat2 Lon2)\n   (with *Top\n      (<javascript>\n         \"line('\" Col \"', \" Lat1 \", \" Lon1 \", \" Lat2 \", \" Lon2 \")\" ) ) )\n\n# Google Maps\n(local) (google <google>)\n\n(de google (Ttl Lat Lon Zoom Tar)\n   (<href> Ttl\n      (pack \"https://www.google.com/maps/@\" (fmt Lat \",\" Lon) \",\" Zoom \"z\")\n      Tar ) )\n\n(de <google> (Lat Lon DX DY)\n   (prinl\n      \"<iframe width=\\\"\" DX \"\\\" height=\\\"\" DY \"\\\" frameborder=\\\"3\\\" \\\n      src=\\\"https://www.google.com/maps?source=s_q&amp;q=\"\n      (fmt Lat \",\" Lon)\n      \"&amp;output=embed\\\"></iframe>\" ) )\n"
  },
  {
    "path": "lib/heartbeat.l",
    "content": "# 13apr23 Software Lab. Alexander Burger\n\n(ifn (info \"fifo/beat\")\n   (de heartbeat ())\n\n   (de heartbeat @\n      (unless (assoc -54321 *Run)\n         (task -54321 0 (heartbeat))\n         (finish (out \"fifo/beat\" (pr *Pid))) )\n      (out \"fifo/beat\"\n         (pr\n            (cons\n               *Pid\n               (+ (* 86400 (date T)) (time T) 300)  # Busy period 5 minutes\n               (rest) ) ) ) ) )\n\n(de nobeat ()\n   (task -54321) )\n"
  },
  {
    "path": "lib/http.l",
    "content": "# 30nov25 Software Lab. Alexander Burger\n\n# *HPorts *Home *Gate *Host *Port *Port1 *Port% *Http1 *Chunked\n# *Sock *Agent *ContL *ContLen *MPartLim *MPartEnd \"*HtSet\"\n# *Post *Uri *Url *Timeout *SesId *ConId *Retire\n# *Referer *Cookies \"*Cookies\"\n\n(default\n   *HPorts 0\n   *Timeout (* 300 1000) )\n\n(private) (Host Port Sock How Prg)\n\n(mapc allow '(*Adr *Gate *Cipher *Host *ContL))\n\n(zero *Http1)\n\n(de *Mimes\n   (`(chop \"html\") \"text/html; charset=utf-8\")\n   (`(chop \"svg\") \"image/svg+xml; charset=utf-8\")\n   (`(chop \"au\") \"audio/basic\" 3600)\n   (`(chop \"wav\") \"audio/x-wav\" 3600)\n   (`(chop \"mp3\") \"audio/x-mpeg\" 3600)\n   (`(chop \"mp4\") \"video/mp4\" 3600)\n   (`(chop \"gif\") \"image/gif\" 3600)\n   (`(chop \"tif\") \"image/tiff\" 3600)\n   (`(chop \"tiff\") \"image/tiff\" 3600)\n   (`(chop \"bmp\") \"image/bmp\" 86400)\n   (`(chop \"png\") \"image/png\" 86400)\n   (`(chop \"jpg\") \"image/jpeg\" 3600)\n   (`(chop \"jpeg\") \"image/jpeg\" 3600)\n   (`(chop \"txt\") \"text/octet-stream\" 1 T)\n   (`(chop \"csv\") \"text/csv; charset=utf-8\" 1 T)\n   (`(chop \"css\") \"text/css\" 86400)\n   (`(chop \"js\") \"application/x-javascript\" 86400)\n   (`(chop \"ps\") \"application/postscript\" 1)\n   (`(chop \"pdf\") \"application/pdf\" 1)\n   (`(chop \"epub\") \"application/epub+zip\" 86400)\n   (`(chop \"zip\") \"application/zip\" 1)\n   (`(chop \"apk\") \"application/vnd.android.package-archive\" 1)\n   (`(chop \"jar\") \"application/java-archive\" 86400) )\n\n(de mime (S . @)\n   (let L (chop S)\n      (if (assoc L *Mimes)\n         (con @ (rest))\n         (push '*Mimes (cons L (rest))) ) ) )\n\n(de mimetype (File Typ)\n   (in (list 'file \"-b\" (if Typ \"--mime-type\" \"--mime\") File)\n      (line T) ) )\n\n### HTTP-Client ###\n(de client (Host Port How . Prg)\n   (let? Sock (connect Host Port)\n      (prog1\n         (out Sock\n            (if (atom How)\n               (prinl \"GET /\" How \" HTTP/1.0\\r\")\n               (prinl \"POST /\" (car How) \" HTTP/1.0\\r\")\n               (prinl \"Content-Length: \" (size (cdr How)) \"\\r\") )\n            (prinl \"User-Agent: PicoLisp\\r\")\n            (prinl \"Host: \" Host \"\\r\")\n            (prinl \"Accept-Charset: utf-8\\r\")\n            (prinl \"\\r\")\n            (and (pair How) (prin (cdr @)))\n            (flush)\n            (in Sock (run Prg 1)) )\n         (close Sock) ) ) )\n\n# Local Password\n(de pw (N)\n   (if N\n      (out \"~/.pil/pw\"\n         (prinl (in \"/dev/urandom\" (rd N))) )\n      (in \"~/.pil/pw\"\n         (line T) ) ) )\n\n# PicoLisp Shell\n(de psh (Pw Tty Term)\n   (cond\n      ((not Pw) (println *Port) (bye))\n      ((<> Pw (pw)) (quit \"Bad pw\"))\n      ((ctty Tty)\n         (sys \"TERM\" Term)\n         (or *SesId (off *Run))\n         (println *Pid)\n         (unless *Dbg\n            (on *Dbg)\n            (symbols '(pico)\n               (and (info \"~/.pil/rc\") (load @@))\n               (load \"@lib/lint.l\" \"@lib/debug.l\" \"@lib/vip.l\" \"@lib/sq.l\") ) )\n         (load \"@lib/too.l\")\n         (off *Err)\n         (quit) ) ) )\n\n### HTTP-Server ###\n(de -server ()\n   (server (format (opt)) (opt)) )\n\n(de server (Port Home Flg)\n   (setq\n      *Port Port\n      *Port1 (or (sys \"NAME\") Port)\n      *Home (cons Home (chop Home))\n      Port (port *Port) )\n   (gc)\n   (loop\n      (setq *Sock (listen Port))\n      (T Flg\n         (task Port\n            (when (accept @)\n               (task @ (let *SesId NIL (http @))) ) ) )\n      (NIL (fork) (close Port))\n      (close *Sock) )\n   (task *Sock (http @))\n   (http *Sock)\n   (or *SesId (bye))\n   (task *Sock\n      (when (accept @)\n         (task @ (http @)) ) ) )\n\n(de retire (Min . Prg)\n   (when (sys \"PORT\")\n      (task -60000 60000  X (cons Min Min Prg)\n         (cond\n            (*Adr (off *Adr) (set X (cadr X)))\n            ((diff (kids) *Retire) (set X (cadr X)))\n            ((=0 (dec X)) (run (cddr X)) (bye)) ) ) ) )\n\n(de baseHRef (Port . @)\n   (pass pack\n      (or *Gate \"http\") \"://\" *Host\n      (if *Gate \"/\" \":\")\n      (or Port (if *SesId *Port *Port1))\n      \"/\" ) )\n\n(de https @\n   (pass pack \"https://\" *Host \"/\" *Port \"/\" *SesId) )\n\n(de ext.html (Sym)\n   (pack (ht:Fmt Sym) \".html\") )\n\n(de disallowed ()\n   (and\n      *Allow\n      (not (idx *Allow *Url))\n      (or\n         (sub? \"..\" *Url)\n         (not (find pre? (cdr *Allow) *Url)) ) ) )\n\n(de notAllowed (X)\n   (unless (= X \"favicon.ico\")\n      (msg X \" [\" *Adr \"] not allowed\") ) )\n\n# Application startup\n(de app ()\n   (unless *SesId\n      (setq\n         *SesId (pack (in \"/dev/urandom\" (rd 7)) \"~\")\n         *Sock (port *HPorts '*Port)\n         *Port% (not *Gate) )\n      (timeout *Timeout)\n      (out 2 (prinl *Pid \" = \" *Port \" \" *SesId)) ) )\n\n# Set a cookie\n(de cookie @\n   (let A (next)\n      (if (assoc A \"*Cookies\")\n         (con @ (rest))\n         (push '\"*Cookies\" (cons A (rest))) ) ) )\n\n# Handle HTTP-Transaction\n(de http (*HtSock)\n   (use (*Post U L @X)\n      (off *Post *Port% *ContL *ContLen *Cookies \"*Cookies\" \"*HtSet\")\n      (catch 'http\n         (in *HtSock\n            (finally (alarm 0)\n               (case\n                  (prog2\n                     (alarm 2 (throw 'http))\n                     (till \" \" T)\n                     (alarm 1200 (throw 'http)) )\n                  (\"GET\" (_htHead))\n                  (\"POST\"\n                     (on *Post)\n                     (off *MPartLim *MPartEnd)\n                     (_htHead)\n                     (cond\n                        (*MPartLim (_htMultipart))\n                        ((=0 *ContLen))\n                        ((cond (*ContL (line)) (*ContLen (ht:Read @)))\n                           (for L (split @ '&)\n                              (when (setq L (split L \"=\"))\n                                 (let? S (_htSet (car L) (ht:Pack (cadr L) T))\n                                    (and\n                                       (cddr L)\n                                       (format (car @))\n                                       (unless (out (tmp S) (echo @))\n                                          (%@ \"unlink\" NIL (tmp S)) ) ) ) ) ) )\n                        (T (throw 'http)) ) )\n                  (T\n                     (and @ (out *HtSock (httpStat 501 \"Not Implemented\")))\n                     (task (close *HtSock))\n                     (off *HtSock)\n                     (throw 'http) ) ) )\n            (if (<> *ConId *SesId)\n               (prog (task (close *HtSock)) (off *HtSock))\n               (setq\n                  L (split (setq *Uri U) \"?\")\n                  U (car L)\n                  L (mapcan\n                     '((A)\n                        (cond\n                           ((cdr (setq A (split A \"=\")))\n                              (nil (_htSet (car A) (htArg (cadr A)))) )\n                           ((tail '`(chop \".html\") (car A))\n                              (cons (pack (car A))) )\n                           (T (cons (htArg (car A)))) ) )\n                     (split (cadr L) \"&\") ) )\n               (unless (setq *Url (ht:Pack U T))\n                  (setq  *Url (car *Home)  U (cdr *Home)) )\n               (out *HtSock\n                  (cond\n                     ((match '(\"-\" @X \".\" \"h\" \"t\" \"m\" \"l\") U)\n                        (and *SesId (timeout *Timeout))\n                        (apply try L 'html> (extern (ht:Pack @X T))) )\n                     ((disallowed)\n                        (notAllowed *Url)\n                        (http404) )\n                     ((= \"!\" (car U))\n                        (and *SesId (timeout *Timeout))\n                        (apply (val (intern (ht:Pack (cdr U) T))) L) )\n                     ((head '(\"%\" \"2\" \"1\") U)\n                        (and *SesId (timeout *Timeout))\n                        (apply (val (intern (ht:Pack (cdddr U) T))) L) )\n                     ((tail '(\".\" \"l\") U)\n                        (and *SesId (timeout *Timeout))\n                        (apply script L *Url) )\n                     ((=T (car (info *Url)))\n                        (if (info (setq *Url (pack *Url \"/default\")))\n                           (apply script L *Url)\n                           (http404) ) )\n                     ((assoc (stem U \".\") *Mimes)\n                        (apply httpEcho (cdr @) *Url) )\n                     (T (httpEcho *Url \"application/octet-stream\" 1 T)) ) ) ) ) )\n      (and *HtSock (=0 *Http1) (task (close *HtSock))) ) )\n\n(de _htHead ()\n   (unless\n      (and\n         (char)\n         (= \"/\" (char))\n         (prog (setq U (till \" \")) (char))\n         (= \"HTTP/1\" (till \".\" T))\n         (char)\n         (setq *Http1 (format (line T))) )\n      (task (close *HtSock))\n      (off *HtSock)\n      (throw 'http) )\n   (setq *Chunked (gt0 *Http1))\n   (if (index \"~\" U)\n      (setq\n         *ConId (head @ U)\n         U (cdr (nth U @))\n         *ConId (pack (if (member \"/\" *ConId) (cdr @) *ConId)) )\n      (off *ConId) )\n   (while\n      (case (lowc (till \" \\r\\n\" T))\n         (\"host:\" (setq *Host (cdr (line))))\n         (\"referer:\" (setq *Referer (cdr (line))))\n         (\"cookie:\"\n            (setq *Cookies\n               (mapcar\n                  '((L)\n                     (setq L (split L \"=\"))\n                     (cons (htArg (clip (car L))) (htArg (cadr L))) )\n                  (split (cdr (line)) \";\") ) ) )\n         (\"user-agent:\" (setq *Agent (cdr (line))))\n         (\"content-length:\" (setq *ContLen (format (cdr (line)))))\n         (\"content-type:\"\n            (if (= \" multipart/form-data; boundary\" (lowc (till \"=\\r\\n\" T)))\n               (setq\n                  *MPartLim (append '(- -) (cdr (line)))\n                  *MPartEnd (append *MPartLim '(- -)) )\n               (line) ) )\n         (\"x-pil:\"\n            (for (L (split (cdr (line)) \",\" \"=\")  L)\n               (_htSet (++ L) (ht:Pack (++ L) T)) ) )\n         (T (if (eol) (char) (line T))) ) )\n   (unless *Gate\n      (and (member \":\" *Host) (con (prior @ *Host))) ) )\n\n# rfc1867 multipart/form-data\n(de _htMultipart ()\n   (use Var\n      (let L (line)\n         (while (= *MPartLim L)\n            (unless (= \"content-disposition: form-data; name=\" (lowc (till \"\\\"\" T)))\n               (line)\n               (throw 'http) )\n            (char)\n            (setq Var (till \"\\\"\"))\n            (char)\n            (nond\n               ((line)\n                  (while (line))\n                  (_htSet Var\n                     (pack\n                        (make\n                           (until\n                              (or\n                                 (= *MPartLim (setq L (line)))\n                                 (= *MPartEnd L) )\n                              (when (eof)\n                                 (throw 'http) )\n                              (when (made)\n                                 (link \"\\n\") )\n                              (link (trim L)) ) ) ) ) )\n               ((head '`(chop \"; filename=\") (setq L @))\n                  (while (line)) )\n               (NIL\n                  (while (line))\n                  (setq L (cdr (rot (nth L 13))))\n                  (if (_htSet Var (pack (stem L \"/\" \"\\\\\")))\n                     (let F (tmp @)\n                        (unless (out F (echo (pack \"\\r\\n\" *MPartLim)))\n                           (%@ \"unlink\" NIL F) ) )\n                     (out \"/dev/null\" (echo (pack \"\\r\\n\" *MPartLim))) )\n                  (setq L (if (= \"-\" (car (line))) *MPartEnd *MPartLim)) ) ) ) ) ) )\n\n(de _htSet (L Val)\n   (let \"Var\" (intern (ht:Pack (car (setq L (split L \":\"))) T))\n      (cond\n         ((and *Allow (not (idx *Allow \"Var\")))\n            (notAllowed \"Var\")\n            (throw 'http) )\n         ((cadr L)\n            (let? N (format (car (setq L (split @ \".\"))))\n               (case (caadr L)\n                  (\"x\" (setq Val (cons (format Val))))\n                  (\"y\" (setq Val (cons NIL (format Val)))) )\n               (nond\n                  ((memq \"Var\" \"*HtSet\")\n                     (push '\"*HtSet\" \"Var\")\n                     (set \"Var\" (cons (cons N Val)))\n                     Val )\n                  ((assoc N (val \"Var\"))\n                     (queue \"Var\" (cons N Val))\n                     Val )\n                  (NIL\n                     (let X @\n                        (cond\n                           ((nand (cadr L) (cdr X)) (con X Val))\n                           ((car Val) (set (cdr X) @))\n                           (T (con (cdr X) (cdr Val))) ) ) ) ) ) )\n         (T\n            (if (= \"*\" (caar L))\n               (set \"Var\" Val)\n               (put \"Var\" 'http Val) ) ) ) ) )\n\n(de htArg (Lst)\n   (case (car Lst)\n      (\"$\" (intern (ht:Pack (cdr Lst) T)))\n      (\"+\" (format (cdr Lst)))\n      (\"-\" (extern (ht:Pack (cdr Lst) T)))\n      (\"_\" (mapcar htArg (split (cdr Lst) \"_\")))\n      (T (ht:Pack Lst T)) ) )\n\n# Http Transfer Header\n(de http1 (Typ Upd File Att)\n   (prinl \"HTTP/1.\" *Http1 \" 200 OK\\r\")\n   (prinl \"Server: PicoLisp\\r\")\n   (prin \"Date: \")\n   (httpDate (date T) (time T))\n   (when Upd\n      (prinl \"Cache-Control: max-age=\" Upd \"\\r\")\n      (when (=0 Upd)\n         (prinl \"Cache-Control: no-store\\r\") ) )\n   (prinl \"Content-Type: \" (or Typ \"text/html; charset=utf-8\") \"\\r\")\n   (when File\n      (prinl\n         \"Content-Disposition: \"\n         (if Att \"attachment\" \"inline\")\n         \"; filename=\\\"\" File \"\\\"\\r\" ) ) )\n\n(de httpCookies ()\n   (mapc\n      '((L)\n         (prin \"Set-Cookie: \"\n            (ht:Fmt (++ L)) \"=\" (ht:Fmt (++ L))\n            \"; path=\" (or (++ L) \"/\") )\n         (and (++ L) (prin \"; expires=\" @))\n         (and (++ L) (prin \"; domain=\" @))\n         (and (++ L) (prin \"; secure\"))\n         (and (++ L) (prin \"; HttpOnly\"))\n         (prinl) )\n      \"*Cookies\" ) )\n\n(de respond (S)\n   (http1 \"application/octet-stream\" 0)\n   (prinl \"Content-Length: \" (size S) \"\\r\\n\\r\")\n   (prin S) )\n\n(de httpHead (Typ Upd File Att)\n   (http1 Typ Upd File Att)\n   (and *Chunked (prinl \"Transfer-Encoding: chunked\\r\"))\n   (httpCookies)\n   (prinl \"\\r\") )\n\n(de httpDate (Dat Tim)\n   (let D (date Dat)\n      (prinl\n         (day Dat *Day) \", \"\n         (pad 2 (caddr D)) \" \"\n         (get *Mon (cadr D)) \" \"\n         (car D) \" \"\n         (tim$ Tim T) \" GMT\\r\" ) ) )\n\n# Http Echo\n(de httpEcho (File Typ Upd Att Name)\n   (and *Tmp (pre? *Tmp File) (one Upd))\n   (ifn (info File)\n      (http404)\n      (let I @\n         (http1\n            (or Typ (mimetype File))\n            Upd\n            (or Name (stem (chop File) \"/\"))\n            Att )\n         (prinl \"Content-Length: \" (car I) \"\\r\")\n         (prin \"Last-Modified: \")\n         (httpDate (cadr I) (cddr I))\n         (prinl \"\\r\")\n         (in File (echo)) ) ) )\n\n(de srcUrl (Url)\n   (if (or (pre? \"http:\" Url) (pre? \"https:\" Url))\n      Url\n      (baseHRef *Port1 Url) ) )\n\n(de sesId (Url)\n   (if\n      (or\n         (pre? \"http:\" Url)\n         (pre? \"https:\" Url)\n         (pre? \"mailto:\" Url)\n         (pre? \"javascript:\" Url)\n         (pre? \"tel:\" Url) )\n      Url\n      (pack *SesId Url) ) )\n\n(de httpStat (N X . @)\n   (let B (fin X)\n      (if (pair X)\n         (setq X (car X))\n         (setq B (pack \"<H1>\" B \"</H1>\")) )\n      (prinl \"HTTP/1.\" *Http1 \" \" N \" \" X \"\\r\")\n      (prinl \"Server: PicoLisp\\r\")\n      (while (args)\n         (prinl (next) \"\\r\") )\n      (prinl \"Content-Type: text/html\\r\")\n      (httpCookies)\n      (prinl \"Content-Length: \" (+ 59 (length N) (length X) (length B)) \"\\r\")\n      (prinl \"\\r\")\n      (prinl \"<HTML>\")\n      (prinl \"<HEAD><TITLE>\" N \" \" X \"</TITLE></HEAD>\")\n      (prinl \"<BODY>\" B \"</BODY>\")\n      (prinl \"</HTML>\") ) )\n\n(de noContent ()\n   (prinl \"HTTP/1.0 204 No Content\\r\")\n   (prinl \"\\r\") )\n\n(de redirect @\n   (httpStat 303 \"See Other\" (pass pack \"Location: \")) )\n\n(de forbidden (X)\n   (httpStat 403 \"No Permission\")\n   (and X (msg *Pid \" No permission: \" @))\n   (throw 'http) )\n\n(de http404 ()\n   (httpStat 404 \"Not Found\") )\n"
  },
  {
    "path": "lib/json.l",
    "content": "# 01feb25 Software Lab. Alexander Burger\n\n(de checkJson (X Item)\n   (unless (= X Item)\n      (quit \"Bad JSON\" Item) ) )\n\n(de parseJson (Str Arr)\n   (let L (str Str \"_\")\n      (recur ()\n         (case (++ L)\n            (\"{\"\n               (make\n                  (for (X (recurse) (not (= \"}\" X)) (recurse))\n                     (checkJson \":\" (recurse))\n                     (link (cons (intern X) (recurse)))\n                     (T (= \"}\" (setq X (recurse))))\n                     (checkJson \",\" X) ) ) )\n            (\"[\"\n               (make\n                  (and Arr (link T))  # Array marker\n                  (for (X (recurse) (not (= \"]\" X)) (recurse))\n                     (link X)\n                     (T (= \"]\" (setq X (recurse))))\n                     (checkJson \",\" X) ) ) )\n            (T\n               (let X @\n                  (cond\n                     ((pair X) (pack X))\n                     ((and (= \"-\" X) (format (car L)))\n                        (- (++ L)) )\n                     ((and (num? X) (sub? (car L) \"Ee\"))\n                        (and\n                           (or (index \",\" (shift 'L)) (index \"}\" L))\n                           (format (cut (dec @) 'L))\n                           ((if (lt0 @) */ *) X (** 10 (abs @))) ) )\n                     (T X) ) ) ) ) ) ) )\n\n(de readJson (Arr)\n   (case (read \"_\")\n      (\"{\"\n         (make\n            (for (X (readJson Arr) (not (= \"}\" X)) (readJson Arr))\n               (checkJson \":\" (readJson Arr))\n               (link (cons (intern X) (readJson Arr)))\n               (T (= \"}\" (setq X (readJson Arr))))\n               (checkJson \",\" X) ) ) )\n      (\"[\"\n         (make\n            (and Arr (link T))  # Array marker\n            (for (X (readJson Arr) (not (= \"]\" X)) (readJson Arr))\n               (link X)\n               (T (= \"]\" (setq X (readJson Arr))))\n               (checkJson \",\" X) ) ) )\n      (T\n         (let X @\n            (cond\n               ((pair X) (pack X))\n               ((and (= \"-\" X) (format (peek)))\n                  (- (read)) )\n               ((and (num? X) (sub? (peek) \"Ee\"))\n                  (when (format (cdr (till \",}\")))\n                     ((if (lt0 @) */ *) X (** 10 (abs @))) ) )\n               (T X) ) ) ) ) )\n\n(de packJson (Item F)\n   (pack\n      (make\n         (recur (Item F)\n            (cond\n               ((atom Item) (link (if Item (sym @) \"{}\")))\n               ((=T (car Item))\n                  (link \"[\")\n                  (map\n                     '((X)\n                        (recurse (car X))\n                        (and (cdr X) (link \", \")) )\n                     (cdr Item) )\n                  (link \"]\") )\n               ((and (car Item) (atom @) (not F))\n                  (link \"\\\"\" (sym (car Item)) \"\\\": \")\n                  (recurse (cdr Item) T) )\n               (T\n                  (link \"{\")\n                  (map\n                     '((X)\n                        (recurse (car X))\n                        (and (cdr X) (link \", \")) )\n                     Item )\n                  (link \"}\") ) ) ) ) ) )\n\n(de printJson (Item F)\n   (cond\n      ((atom Item) (if Item (print @) (prin \"{}\")))\n      ((=T (car Item))\n         (prin \"[\")\n         (map\n            '((X)\n               (printJson (car X))\n               (and (cdr X) (prin \", \")) )\n            (cdr Item) )\n         (prin \"]\") )\n      ((and (car Item) (atom @) (not F))\n         (prin \"\\\"\")\n         (print (car Item))\n         (prin \"\\\": \")\n         (printJson (cdr Item) T) )\n      (T\n         (prin \"{\")\n         (map\n            '((X)\n               (printJson (car X))\n               (and (cdr X) (prin \", \")) )\n            Item )\n         (prin \"}\") ) ) )\n"
  },
  {
    "path": "lib/lint.l",
    "content": "# 13feb25 Software Lab. Alexander Burger\n\n# *NoLint\n\n(private) (global? local? dlsym? lint1 lint2 lintVar lintDup lintLoop\n_lintq lintFun A C Lst S X Y *L *X *Var *Dup *Def *Bnd *Use)\n\n(de noLint (X V)\n   (if V\n      (push1 '*NoLint (cons X V))\n      (push1q '*NoLint X) ) )\n\n(de global? (S)\n   (or\n      (memq S '(NIL ^ @ @@ @@@ This T))\n      (member (char S) '(`(char '*) `(char '+)))\n      (== '\\~ (car (pair (val S))))\n      (memq S *NoLint)\n      (and\n         (>= (length S) 4)\n         (fully upp? (delete \"-\" (chop S))) ) ) )\n\n(de local? (S)\n   (or\n      (str? S)\n      (member (char S) '(`(char '*) `(char '_))) ) )\n\n(de dlsym? (S)\n   (and\n      (car (setq S (split (chop S) ':)))\n      (cadr S)\n      (low? (caar S)) ) )\n\n(de lint1 (X)\n   (cond\n      ((atom X)\n         (when (sym? X)\n            (cond\n               ((memq X *L) (setq *Use (delq X *Use)))\n               ((local? X) (lint2 (val X)))\n               (T\n                  (or\n                     (getd X)\n                     (global? X)\n                     (member (cons *X X) *NoLint)\n                     (push1q '*Bnd X) ) ) ) ) )\n      ((num? (car X)))\n      (T\n         (casq (car X)\n            ((: ::))\n            (; (lint1 (cadr X)))\n            (quote\n               (let F (fun? (cdr X))\n                  (if (or (and (pair F) (not (fin @))) (== '@ F))\n                     (use *L (lintFun (cdr X)))\n                     (lint2 (cdr X)) ) ) )\n            ((de dm)\n               (let *X (cadr X)\n                  (lintFun (cddr X)) ) )\n            (recur\n               (let recurse (cdr X)\n                  (lintFun recurse) ) )\n            (tco\n               (lintFun (cdr X)) )\n            (task\n               (lint1 (cadr X))\n               (let Y (cddr X)\n                  (use *L\n                     (while (num? (car Y))\n                        (++ Y) )\n                     (while (and (car Y) (sym? @))\n                        (lintVar (++ Y))\n                        (lint1 (++ Y)) )\n                     (mapc lint1 Y) ) ) )\n            (macro\n               (lint2 (cdr X)) )\n            ((let? buf)\n               (use *L\n                  (lintVar (cadr X))\n                  (mapc lint1 (cddr X)) ) )\n            (let\n               (use *L\n                  (if (atom (cadr X))\n                     (lintVar (cadr X))\n                     (for (L (cadr X) L (cddr L))\n                        (if (pair (car L))\n                           (mapc lintVar\n                              (fish\n                                 '((X) (and X (atom X)))\n                                 (car L) ) )\n                           (lintVar (car L)) )\n                        (lint1 (cadr L)) ) )\n                  (mapc lint1 (cddr X)) ) )\n            (use\n               (use *L\n                  (if (atom (cadr X))\n                     (lintVar (cadr X))\n                     (mapc lintVar (cadr X)) )\n                  (mapc lint1 (cddr X)) ) )\n            (for\n               (use *L\n                  (let Y (cadr X)\n                     (cond\n                        ((atom Y)            # (for X (1 2 ..) ..)\n                           (lint1 (caddr X))\n                           (lintVar Y)\n                           (lintLoop (cdddr X)) )\n                        ((atom (cdr Y))      # (for (I . X) (1 2 ..) ..)\n                           (lintVar (car Y))\n                           (lint1 (caddr X))\n                           (lintVar (cdr Y))\n                           (lintLoop (cdddr X)) )\n                        ((atom (car Y))      # (for (X (1 2 ..) ..) ..)\n                           (lint1 (cadr Y))\n                           (lintVar (car Y))\n                           (mapc lint1 (cddr Y))\n                           (lintLoop (cddr X)) )\n                        (T                     # (for ((I . L) (1 2 ..) ..) ..)\n                           (lintVar (caar Y))\n                           (lint1 (cadr Y))\n                           (lintVar (cdar Y))\n                           (mapc lint1 (cddr Y))\n                           (lintLoop (cddr X)) ) ) ) ) )\n            ((case casq state)\n               (lint1 (cadr X))\n               (for X (cddr X)\n                  (mapc lint1 (cdr X)) ) )\n            ((cond nond)\n               (for X (cdr X)\n                  (mapc lint1 X) ) )\n            (loop\n               (lintLoop (cdr X)) )\n            (do\n               (lint1 (cadr X))\n               (lintLoop (cddr X)) )\n            (=:\n               (lint1 (last (cddr X))) )\n            ((dec inc pop push push1 queue fifo val idx accu)\n               (_lintq '(T)) )\n            ((onOff default)\n               (and (atom (cadr X)) (lint1 (cadr X))) )\n            ((cut port)\n               (_lintq '(NIL T)) )\n            (set\n               (_lintq '(T NIL .)) )\n            (xchg\n               (_lintq '(T T .)) )\n            (T\n               (cond\n                  ((pair (car X))\n                     (lint1 @)\n                     (mapc lint2 (cdr X)) )\n                  ((memq (car X) *L)\n                     (setq *Use (delq (car X) *Use))\n                     (mapc lint2 (cdr X)) )\n                  ((fun? (val (car X)))\n                     (if (num? @)\n                        (mapc lint1 (cdr X))\n                        (when (local? (car X))\n                           (lint2 (val (car X))) )\n                        (let Y (car (getd (++ X)))\n                           (while (and (pair X) (pair Y))\n                              (lint1 (++ X))\n                              (++ Y) )\n                           (if (or (== '@ Y) (= \"Prg\" Y) (= \"*Prg\" Y))\n                              (mapc lint1 X)\n                              (lint2 X) ) ) ) )\n                  (T\n                     (or\n                        (str? (car X))\n                        (dlsym? (car X))\n                        (== '@ (car X))\n                        (memq (car X) *NoLint)\n                        (push1q '*Def (car X)) )\n                     (mapc lint1 (cdr X)) ) ) ) ) ) ) )\n\n(de lint2 (X Mark)\n   (cond\n      ((memq X Mark))\n      ((atom X)\n         (and (memq X *L) (setq *Use (delq X *Use))) )\n      (T (lint2 (car X))\n         (lint2 (cdr X) (cons X Mark)) ) ) )\n\n(de lintVar (X Flg)\n   (cond\n      ((or\n            (not (sym? X))\n            (memq X '(NIL *DB *Solo ^ meth quote T)) )\n         (push '*Var X) )\n      ((not (global? X))\n         (unless (member (cons *X X) *NoLint)\n            (or Flg (push1q '*Use X))\n            (and (low? X) (push '*Var X)) )\n         (push '*L X) ) ) )\n\n(de lintDup (X Lst)\n   (and\n      (memq X Lst)\n      (not (member (cons *X X) *NoLint))\n      (push '*Dup X) ) )\n\n(de lintLoop (Lst)\n   (for Y Lst\n      (if (and (pair Y) (or (=T (car Y)) (not (car Y))))\n         (mapc lint1 (cdr Y))\n         (lint1 Y) ) ) )\n\n(de _lintq (Lst)\n   (mapc\n      '((X Flg)\n         (lint1 (if Flg (strip X) X)) )\n      (cdr X)\n      Lst ) )\n\n(de lintFun (Lst)\n   (when (pair Lst)\n      (when (car Lst)\n         (map\n            '(((A . L))\n               (lintDup A L)\n               (lintVar A T) )\n            (fish atom @) ) )\n      (mapc lint1 (cdr Lst)) ) )\n\n(de lint (X C)\n   (let (*L NIL  *Var NIL  *Dup NIL  *Def NIL  *Bnd NIL  *Use NIL)\n      (when (pair X)\n         (setq  C (cdr X)  X (car X)) )\n      (cond\n         (C  # Method\n            (let *X (cons X C)\n               (lintFun (method X C)) ) )\n         ((pair (val X))  # Function\n            (let *X X\n               (lintFun (val X)) ) )\n         ((info X)  # File name\n            (let *X X\n               (in X (while (read) (lint1 @))) ) )\n         (T (quit \"Can't lint\" X)) )\n      (when (or *Var *Dup *Def *Bnd *Use)\n         (make\n            # Bad variables\n            (and *Var (link (cons 'var *Var)))\n            # Duplicate parameters\n            (and *Dup (link (cons 'dup *Dup)))\n            # Undefined functions\n            (and *Def (link (cons 'def *Def)))\n            # Unbound variables\n            (and *Bnd (<> `(char '_) (char X)) (link (cons 'bnd *Bnd)))\n            # Unused variables\n            (and *Use (link (cons 'use *Use))) ) ) ) )\n\n(de lintAll @\n   (let *Dbg NIL\n      (make\n         (for X (all)\n            (cond\n               ((and (= `(char \"+\") (char X)) (pair (val X)))\n                  (for Y @\n                     (and\n                        (pair Y)\n                        (pair (cdr Y))\n                        (lint (car Y) X)\n                        (link (cons (cons (car Y) X) @)) ) ) )\n               ((and\n                     (not (global? X))\n                     (pair (val X))\n                     (lint X) )\n                  (link (cons X @)) ) ) )\n         (while (args)\n            (let A (next)\n               (and (lint A) (link (cons A @))) ) ) ) ) )\n"
  },
  {
    "path": "lib/map",
    "content": "llvm~$ (268 \"@src/lib/llvm.l\" llvm pico)\nllvm~$AV (6 \"@src/glob.l\" llvm pico)\nllvm~$AV0 (5 \"@src/glob.l\" llvm pico)\nllvm~$Alarm (559 \"@src/glob.l\" llvm pico)\nllvm~$At (132 \"@src/glob.l\" llvm pico)\nllvm~$At2 (133 \"@src/glob.l\" llvm pico)\nllvm~$At3 (134 \"@src/glob.l\" llvm pico)\nllvm~$Avail (12 \"@src/glob.l\" llvm pico)\nllvm~$B (129 \"@src/glob.l\" llvm pico)\nllvm~$Bind (641 \"@src/glob.l\" llvm pico)\nllvm~$BlkEnd (79 \"@src/glob.l\" llvm pico)\nllvm~$BlkIndex (76 \"@src/glob.l\" llvm pico)\nllvm~$BlkLink (77 \"@src/glob.l\" llvm pico)\nllvm~$BlkPtr (78 \"@src/glob.l\" llvm pico)\nllvm~$Break (642 \"@src/glob.l\" llvm pico)\nllvm~$BufX (62 \"@src/glob.l\" llvm pico)\nllvm~$Bye (155 \"@src/glob.l\" llvm pico)\nllvm~$C (128 \"@src/glob.l\" llvm pico)\nllvm~$CPU (115 \"@src/glob.l\" llvm pico)\nllvm~$Catch (644 \"@src/glob.l\" llvm pico)\nllvm~$Cb (611 \"@src/glob.l\" llvm pico)\nllvm~$Cell (667 \"@src/glob.l\" llvm pico)\nllvm~$Child (50 \"@src/glob.l\" llvm pico)\nllvm~$Children (51 \"@src/glob.l\" llvm pico)\nllvm~$Chr (661 \"@src/glob.l\" llvm pico)\nllvm~$Class (141 \"@src/glob.l\" llvm pico)\nllvm~$Complete (158 \"@src/glob.l\" llvm pico)\nllvm~$ContPrmt (30 \"@src/glob.l\" llvm pico)\nllvm~$Coroutines (16 \"@src/glob.l\" llvm pico)\nllvm~$CrtFree (19 \"@src/glob.l\" llvm pico)\nllvm~$CrtLast (18 \"@src/glob.l\" llvm pico)\nllvm~$CtlFrames (648 \"@src/glob.l\" llvm pico)\nllvm~$Current (17 \"@src/glob.l\" llvm pico)\nllvm~$D (675 \"@src/glob.l\" llvm pico)\nllvm~$DB (118 \"@src/glob.l\" llvm pico)\nllvm~$DBs (73 \"@src/glob.l\" llvm pico)\nllvm~$Db1 (130 \"@src/glob.l\" llvm pico)\nllvm~$DbBlock (75 \"@src/glob.l\" llvm pico)\nllvm~$DbFile (72 \"@src/glob.l\" llvm pico)\nllvm~$DbFiles (71 \"@src/glob.l\" llvm pico)\nllvm~$DbJnl (80 \"@src/glob.l\" llvm pico)\nllvm~$DbLog (81 \"@src/glob.l\" llvm pico)\nllvm~$Dbg (156 \"@src/glob.l\" llvm pico)\nllvm~$Delim (696 \"@src/glob.l\" llvm pico)\nllvm~$Empty (695 \"@src/glob.l\" llvm pico)\nllvm~$End (61 \"@src/glob.l\" llvm pico)\nllvm~$EndX (64 \"@src/glob.l\" llvm pico)\nllvm~$EnvPad (664 \"@src/glob.l\" llvm pico)\nllvm~$Err (151 \"@src/glob.l\" llvm pico)\nllvm~$ErrFrames (647 \"@src/glob.l\" llvm pico)\nllvm~$Ext (138 \"@src/glob.l\" llvm pico)\nllvm~$ExtCnt (14 \"@src/glob.l\" llvm pico)\nllvm~$ExtN (65 \"@src/glob.l\" llvm pico)\nllvm~$ExtSkip (15 \"@src/glob.l\" llvm pico)\nllvm~$Extern (13 \"@src/glob.l\" llvm pico)\nllvm~$Extn (66 \"@src/glob.l\" llvm pico)\nllvm~$Fork (154 \"@src/glob.l\" llvm pico)\nllvm~$GcCount (68 \"@src/glob.l\" llvm pico)\nllvm~$Get (652 \"@src/glob.l\" llvm pico)\nllvm~$GetBin (42 \"@src/glob.l\" llvm pico)\nllvm~$Heaps (11 \"@src/glob.l\" llvm pico)\nllvm~$Hear (57 \"@src/glob.l\" llvm pico)\nllvm~$Hup (143 \"@src/glob.l\" llvm pico)\nllvm~$I (126 \"@src/glob.l\" llvm pico)\nllvm~$InBye (691 \"@src/glob.l\" llvm pico)\nllvm~$InChar (39 \"@src/glob.l\" llvm pico)\nllvm~$InFDs (34 \"@src/glob.l\" llvm pico)\nllvm~$InFile (649 \"@src/glob.l\" llvm pico)\nllvm~$InFiles (35 \"@src/glob.l\" llvm pico)\nllvm~$InFrames (645 \"@src/glob.l\" llvm pico)\nllvm~$Intern (556 \"@src/glob.l\" llvm pico)\nllvm~$IoCnt (37 \"@src/glob.l\" llvm pico)\nllvm~$IoIx (38 \"@src/glob.l\" llvm pico)\nllvm~$Jam (690 \"@src/glob.l\" llvm pico)\nllvm~$Key (658 \"@src/glob.l\" llvm pico)\nllvm~$LastSym (550 \"@src/glob.l\" llvm pico)\nllvm~$LineBuf (27 \"@src/glob.l\" llvm pico)\nllvm~$LinePrmt (28 \"@src/glob.l\" llvm pico)\nllvm~$LinePtr (26 \"@src/glob.l\" llvm pico)\nllvm~$Link (640 \"@src/glob.l\" llvm pico)\nllvm~$Lisp (561 \"@src/glob.l\" llvm pico)\nllvm~$LispEnd (608 \"@src/glob.l\" llvm pico)\nllvm~$M (674 \"@src/glob.l\" llvm pico)\nllvm~$Make (659 \"@src/glob.l\" llvm pico)\nllvm~$MaxBlkSize (74 \"@src/glob.l\" llvm pico)\nllvm~$Meth (119 \"@src/glob.l\" llvm pico)\nllvm~$Mic (54 \"@src/glob.l\" llvm pico)\nllvm~$Month (683 \"@src/glob.l\" llvm pico)\nllvm~$Msg (152 \"@src/glob.l\" llvm pico)\nllvm~$N (124 \"@src/glob.l\" llvm pico)\nllvm~$Next (656 \"@src/glob.l\" llvm pico)\nllvm~$Nfds (44 \"@src/glob.l\" llvm pico)\nllvm~$Nil (104 \"@src/glob.l\" llvm pico)\nllvm~$NsLink (643 \"@src/glob.l\" llvm pico)\nllvm~$OS (114 \"@src/glob.l\" llvm pico)\nllvm~$OutChar (40 \"@src/glob.l\" llvm pico)\nllvm~$OutFDs (43 \"@src/glob.l\" llvm pico)\nllvm~$OutFile (650 \"@src/glob.l\" llvm pico)\nllvm~$OutFiles (36 \"@src/glob.l\" llvm pico)\nllvm~$OutFrames (646 \"@src/glob.l\" llvm pico)\nllvm~$P (123 \"@src/glob.l\" llvm pico)\nllvm~$PPid (117 \"@src/glob.l\" llvm pico)\nllvm~$PRepl (688 \"@src/glob.l\" llvm pico)\nllvm~$Parser (653 \"@src/glob.l\" llvm pico)\nllvm~$Penv (1333 \"@src/subr.l\" llvm pico)\nllvm~$Pico (108 \"@src/glob.l\" llvm pico)\nllvm~$Pico1 (110 \"@src/glob.l\" llvm pico)\nllvm~$PicoT (107 \"@src/glob.l\" llvm pico)\nllvm~$Pid (116 \"@src/glob.l\" llvm pico)\nllvm~$PilHome (7 \"@src/glob.l\" llvm pico)\nllvm~$PilLen (8 \"@src/glob.l\" llvm pico)\nllvm~$Pnl (1334 \"@src/subr.l\" llvm pico)\nllvm~$Poll (45 \"@src/glob.l\" llvm pico)\nllvm~$Priv (112 \"@src/glob.l\" llvm pico)\nllvm~$PrivT (111 \"@src/glob.l\" llvm pico)\nllvm~$Prompt (136 \"@src/glob.l\" llvm pico)\nllvm~$Protect (662 \"@src/glob.l\" llvm pico)\nllvm~$Ptr (60 \"@src/glob.l\" llvm pico)\nllvm~$PtrX (63 \"@src/glob.l\" llvm pico)\nllvm~$Put (651 \"@src/glob.l\" llvm pico)\nllvm~$PutBin (41 \"@src/glob.l\" llvm pico)\nllvm~$Quote (120 \"@src/glob.l\" llvm pico)\nllvm~$Reflect (159 \"@src/glob.l\" llvm pico)\nllvm~$Remark (157 \"@src/glob.l\" llvm pico)\nllvm~$Repl (687 \"@src/glob.l\" llvm pico)\nllvm~$ReplPrmt (29 \"@src/glob.l\" llvm pico)\nllvm~$Ret (31 \"@src/glob.l\" llvm pico)\nllvm~$Ret2 (32 \"@src/glob.l\" llvm pico)\nllvm~$Rt (49 \"@src/glob.l\" llvm pico)\nllvm~$Rule (140 \"@src/glob.l\" llvm pico)\nllvm~$Run (142 \"@src/glob.l\" llvm pico)\nllvm~$S (122 \"@src/glob.l\" llvm pico)\nllvm~$Scl (139 \"@src/glob.l\" llvm pico)\nllvm~$SeedH (47 \"@src/glob.l\" llvm pico)\nllvm~$SeedL (46 \"@src/glob.l\" llvm pico)\nllvm~$Sig1 (144 \"@src/glob.l\" llvm pico)\nllvm~$Sig2 (145 \"@src/glob.l\" llvm pico)\nllvm~$Sigio (560 \"@src/glob.l\" llvm pico)\nllvm~$Signal (84 \"@src/glob.l\" llvm pico)\nllvm~$Slot (52 \"@src/glob.l\" llvm pico)\nllvm~$Solo (131 \"@src/glob.l\" llvm pico)\nllvm~$SpMiPipe (55 \"@src/glob.l\" llvm pico)\nllvm~$Spkr (53 \"@src/glob.l\" llvm pico)\nllvm~$Stdin (24 \"@src/glob.l\" llvm pico)\nllvm~$Stdout (25 \"@src/glob.l\" llvm pico)\nllvm~$StkLimit (21 \"@src/glob.l\" llvm pico)\nllvm~$StkSize (23 \"@src/glob.l\" llvm pico)\nllvm~$StkSizeT (22 \"@src/glob.l\" llvm pico)\nllvm~$StrP (67 \"@src/glob.l\" llvm pico)\nllvm~$Sync (692 \"@src/glob.l\" llvm pico)\nllvm~$SysStkLimit (20 \"@src/glob.l\" llvm pico)\nllvm~$T (121 \"@src/glob.l\" llvm pico)\nllvm~$TBuf (678 \"@src/glob.l\" llvm pico)\nllvm~$TStp1 (147 \"@src/glob.l\" llvm pico)\nllvm~$TStp2 (148 \"@src/glob.l\" llvm pico)\nllvm~$Talking (56 \"@src/glob.l\" llvm pico)\nllvm~$Tc (689 \"@src/glob.l\" llvm pico)\nllvm~$TcoLnk (655 \"@src/glob.l\" llvm pico)\nllvm~$TcoPar (654 \"@src/glob.l\" llvm pico)\nllvm~$Tell (58 \"@src/glob.l\" llvm pico)\nllvm~$TellBuf (59 \"@src/glob.l\" llvm pico)\nllvm~$Term (149 \"@src/glob.l\" llvm pico)\nllvm~$This (135 \"@src/glob.l\" llvm pico)\nllvm~$Tilde (106 \"@src/glob.l\" llvm pico)\nllvm~$Trace (663 \"@src/glob.l\" llvm pico)\nllvm~$Transient (557 \"@src/glob.l\" llvm pico)\nllvm~$TtyPid (33 \"@src/glob.l\" llvm pico)\nllvm~$Typ (657 \"@src/glob.l\" llvm pico)\nllvm~$U (125 \"@src/glob.l\" llvm pico)\nllvm~$USec (48 \"@src/glob.l\" llvm pico)\nllvm~$Uni (153 \"@src/glob.l\" llvm pico)\nllvm~$Up (150 \"@src/glob.l\" llvm pico)\nllvm~$UsrHome (9 \"@src/glob.l\" llvm pico)\nllvm~$UsrLen (10 \"@src/glob.l\" llvm pico)\nllvm~$Version (672 \"@src/glob.l\" llvm pico)\nllvm~$W (127 \"@src/glob.l\" llvm pico)\nllvm~$Winch (146 \"@src/glob.l\" llvm pico)\nllvm~$Y (673 \"@src/glob.l\" llvm pico)\nllvm~$Yoke (660 \"@src/glob.l\" llvm pico)\nllvm~$Zap (137 \"@src/glob.l\" llvm pico)\nllvm~$pico (109 \"@src/glob.l\" llvm pico)\nllvm~$priv (113 \"@src/glob.l\" llvm pico)\nllvm~$rem (169 \"@src/glob.l\" llvm pico)\nllvm~% (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~& (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~* (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~*C-Defs (88 \"@src/lib/llvm.l\" llvm pico)\nllvm~+ (962 \"@src/lib/llvm.l\" llvm pico)\nllvm~++ (1135 \"@src/lib/llvm.l\" llvm pico)\nllvm~+lbl (210 \"@src/lib/llvm.l\" llvm pico)\nllvm~+phi (165 \"@src/lib/llvm.l\" llvm pico)\nllvm~- (962 \"@src/lib/llvm.l\" llvm pico)\nllvm~-ONE (68 \"@src/lib/llvm.l\" llvm pico)\nllvm~-ZERO (66 \"@src/lib/llvm.l\" llvm pico)\nllvm~/ (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~292MY (8 \"@src/defs.l\" llvm pico)\nllvm~: (1549 \"@src/lib/llvm.l\" llvm pico)\nllvm~< (927 \"@src/lib/llvm.l\" llvm pico)\nllvm~<= (927 \"@src/lib/llvm.l\" llvm pico)\nllvm~<> (917 \"@src/lib/llvm.l\" llvm pico)\nllvm~=0 (940 \"@src/lib/llvm.l\" llvm pico)\nllvm~== (917 \"@src/lib/llvm.l\" llvm pico)\nllvm~> (927 \"@src/lib/llvm.l\" llvm pico)\nllvm~>= (927 \"@src/lib/llvm.l\" llvm pico)\nllvm~? (1475 \"@src/lib/llvm.l\" llvm pico)\nllvm~BEG (20 \"@src/defs.l\" llvm pico)\nllvm~BLK (33 \"@src/defs.l\" llvm pico)\nllvm~BLKMASK (33 \"@src/defs.l\" llvm pico)\nllvm~BLKSIZE (33 \"@src/defs.l\" llvm pico)\nllvm~BLKTAG (33 \"@src/defs.l\" llvm pico)\nllvm~BUFSIZ (8 \"@src/defs.l\" llvm pico)\nllvm~CELLS (8 \"@src/defs.l\" llvm pico)\nllvm~DB1 (8 \"@src/defs.l\" llvm pico)\nllvm~DLMAX (57 \"@src/lib/llvm.l\" llvm pico)\nllvm~DOT (20 \"@src/defs.l\" llvm pico)\nllvm~EACCES (63 \"@src/defs.l\" llvm pico)\nllvm~EAGAIN (63 \"@src/defs.l\" llvm pico)\nllvm~EBADF (63 \"@src/defs.l\" llvm pico)\nllvm~ECONNRESET (63 \"@src/defs.l\" llvm pico)\nllvm~EINTR (63 \"@src/defs.l\" llvm pico)\nllvm~END (20 \"@src/defs.l\" llvm pico)\nllvm~ENOENT (63 \"@src/defs.l\" llvm pico)\nllvm~EPIPE (63 \"@src/defs.l\" llvm pico)\nllvm~EXTERN (20 \"@src/defs.l\" llvm pico)\nllvm~HEAP (8 \"@src/defs.l\" llvm pico)\nllvm~INTERN (20 \"@src/defs.l\" llvm pico)\nllvm~NIX (20 \"@src/defs.l\" llvm pico)\nllvm~NO (63 \"@src/lib/llvm.l\" llvm pico)\nllvm~NUMBER (20 \"@src/defs.l\" llvm pico)\nllvm~ONE (67 \"@src/lib/llvm.l\" llvm pico)\nllvm~SIGALRM (43 \"@src/defs.l\" llvm pico)\nllvm~SIGCHLD (43 \"@src/defs.l\" llvm pico)\nllvm~SIGCONT (43 \"@src/defs.l\" llvm pico)\nllvm~SIGHUP (43 \"@src/defs.l\" llvm pico)\nllvm~SIGINT (43 \"@src/defs.l\" llvm pico)\nllvm~SIGIO (43 \"@src/defs.l\" llvm pico)\nllvm~SIGPIPE (43 \"@src/defs.l\" llvm pico)\nllvm~SIGSTOP (43 \"@src/defs.l\" llvm pico)\nllvm~SIGTERM (43 \"@src/defs.l\" llvm pico)\nllvm~SIGTSTP (43 \"@src/defs.l\" llvm pico)\nllvm~SIGTTIN (43 \"@src/defs.l\" llvm pico)\nllvm~SIGTTOU (43 \"@src/defs.l\" llvm pico)\nllvm~SIGUSR1 (43 \"@src/defs.l\" llvm pico)\nllvm~SIGUSR2 (43 \"@src/defs.l\" llvm pico)\nllvm~SIGWINCH (43 \"@src/defs.l\" llvm pico)\nllvm~STACK (8 \"@src/defs.l\" llvm pico)\nllvm~TOP (8 \"@src/defs.l\" llvm pico)\nllvm~TRANSIENT (20 \"@src/defs.l\" llvm pico)\nllvm~YES (64 \"@src/lib/llvm.l\" llvm pico)\nllvm~ZERO (65 \"@src/lib/llvm.l\" llvm pico)\nllvm~_Abs (1376 \"@src/big.l\" llvm pico)\nllvm~_Add (1124 \"@src/big.l\" llvm pico)\nllvm~_Adr (1699 \"@src/main.l\" llvm pico)\nllvm~_Alarm (538 \"@src/main.l\" llvm pico)\nllvm~_All (609 \"@src/sym.l\" llvm pico)\nllvm~_And (496 \"@src/flow.l\" llvm pico)\nllvm~_Any (2747 \"@src/io.l\" llvm pico)\nllvm~_Append (375 \"@src/subr.l\" llvm pico)\nllvm~_Apply (6 \"@src/apply.l\" llvm pico)\nllvm~_Arg (1679 \"@src/main.l\" llvm pico)\nllvm~_Args (1669 \"@src/main.l\" llvm pico)\nllvm~_Argv (1221 \"@src/main.l\" llvm pico)\nllvm~_Arrow (1624 \"@src/subr.l\" llvm pico)\nllvm~_As (62 \"@src/flow.l\" llvm pico)\nllvm~_Asoq (1186 \"@src/subr.l\" llvm pico)\nllvm~_Assoc (1160 \"@src/subr.l\" llvm pico)\nllvm~_At (708 \"@src/flow.l\" llvm pico)\nllvm~_Atom (844 \"@src/subr.l\" llvm pico)\nllvm~_Bind (884 \"@src/flow.l\" llvm pico)\nllvm~_BitAnd (1407 \"@src/big.l\" llvm pico)\nllvm~_BitOr (1420 \"@src/big.l\" llvm pico)\nllvm~_BitQ (1383 \"@src/big.l\" llvm pico)\nllvm~_BitXor (1433 \"@src/big.l\" llvm pico)\nllvm~_Blk (676 \"@src/db.l\" llvm pico)\nllvm~_Bool (540 \"@src/flow.l\" llvm pico)\nllvm~_Box (316 \"@src/flow.l\" llvm pico)\nllvm~_BoxQ (713 \"@src/sym.l\" llvm pico)\nllvm~_Break (1540 \"@src/flow.l\" llvm pico)\nllvm~_BreakIf (1547 \"@src/flow.l\" llvm pico)\nllvm~_Buf (1047 \"@src/flow.l\" llvm pico)\nllvm~_By (658 \"@src/apply.l\" llvm pico)\nllvm~_Bye (1756 \"@src/flow.l\" llvm pico)\nllvm~_Byte (1706 \"@src/main.l\" llvm pico)\nllvm~_Bytes (1156 \"@src/subr.l\" llvm pico)\nllvm~_Caaaar (60 \"@src/subr.l\" llvm pico)\nllvm~_Caaadr (63 \"@src/subr.l\" llvm pico)\nllvm~_Caaar (36 \"@src/subr.l\" llvm pico)\nllvm~_Caadar (66 \"@src/subr.l\" llvm pico)\nllvm~_Caaddr (69 \"@src/subr.l\" llvm pico)\nllvm~_Caadr (39 \"@src/subr.l\" llvm pico)\nllvm~_Caar (24 \"@src/subr.l\" llvm pico)\nllvm~_Cadaar (72 \"@src/subr.l\" llvm pico)\nllvm~_Cadadr (75 \"@src/subr.l\" llvm pico)\nllvm~_Cadar (42 \"@src/subr.l\" llvm pico)\nllvm~_Caddar (78 \"@src/subr.l\" llvm pico)\nllvm~_Cadddr (81 \"@src/subr.l\" llvm pico)\nllvm~_Caddr (45 \"@src/subr.l\" llvm pico)\nllvm~_Cadr (27 \"@src/subr.l\" llvm pico)\nllvm~_Call (1659 \"@src/flow.l\" llvm pico)\nllvm~_Car (17 \"@src/subr.l\" llvm pico)\nllvm~_Case (654 \"@src/flow.l\" llvm pico)\nllvm~_Casq (666 \"@src/flow.l\" llvm pico)\nllvm~_Catch (1093 \"@src/flow.l\" llvm pico)\nllvm~_Cb1 (1579 \"@src/main.l\" llvm pico)\nllvm~_Cb10 (1606 \"@src/main.l\" llvm pico)\nllvm~_Cb11 (1609 \"@src/main.l\" llvm pico)\nllvm~_Cb12 (1612 \"@src/main.l\" llvm pico)\nllvm~_Cb13 (1615 \"@src/main.l\" llvm pico)\nllvm~_Cb14 (1618 \"@src/main.l\" llvm pico)\nllvm~_Cb15 (1621 \"@src/main.l\" llvm pico)\nllvm~_Cb16 (1624 \"@src/main.l\" llvm pico)\nllvm~_Cb17 (1627 \"@src/main.l\" llvm pico)\nllvm~_Cb18 (1630 \"@src/main.l\" llvm pico)\nllvm~_Cb19 (1633 \"@src/main.l\" llvm pico)\nllvm~_Cb2 (1582 \"@src/main.l\" llvm pico)\nllvm~_Cb20 (1636 \"@src/main.l\" llvm pico)\nllvm~_Cb21 (1639 \"@src/main.l\" llvm pico)\nllvm~_Cb22 (1642 \"@src/main.l\" llvm pico)\nllvm~_Cb23 (1645 \"@src/main.l\" llvm pico)\nllvm~_Cb24 (1648 \"@src/main.l\" llvm pico)\nllvm~_Cb3 (1585 \"@src/main.l\" llvm pico)\nllvm~_Cb4 (1588 \"@src/main.l\" llvm pico)\nllvm~_Cb5 (1591 \"@src/main.l\" llvm pico)\nllvm~_Cb6 (1594 \"@src/main.l\" llvm pico)\nllvm~_Cb7 (1597 \"@src/main.l\" llvm pico)\nllvm~_Cb8 (1600 \"@src/main.l\" llvm pico)\nllvm~_Cb9 (1603 \"@src/main.l\" llvm pico)\nllvm~_Cd (1085 \"@src/main.l\" llvm pico)\nllvm~_Cdaaar (84 \"@src/subr.l\" llvm pico)\nllvm~_Cdaadr (87 \"@src/subr.l\" llvm pico)\nllvm~_Cdaar (48 \"@src/subr.l\" llvm pico)\nllvm~_Cdadar (90 \"@src/subr.l\" llvm pico)\nllvm~_Cdaddr (93 \"@src/subr.l\" llvm pico)\nllvm~_Cdadr (51 \"@src/subr.l\" llvm pico)\nllvm~_Cdar (30 \"@src/subr.l\" llvm pico)\nllvm~_Cddaar (96 \"@src/subr.l\" llvm pico)\nllvm~_Cddadr (99 \"@src/subr.l\" llvm pico)\nllvm~_Cddar (54 \"@src/subr.l\" llvm pico)\nllvm~_Cdddar (102 \"@src/subr.l\" llvm pico)\nllvm~_Cddddr (105 \"@src/subr.l\" llvm pico)\nllvm~_Cdddr (57 \"@src/subr.l\" llvm pico)\nllvm~_Cddr (33 \"@src/subr.l\" llvm pico)\nllvm~_Cdr (21 \"@src/subr.l\" llvm pico)\nllvm~_Chain (291 \"@src/subr.l\" llvm pico)\nllvm~_Char (1758 \"@src/io.l\" llvm pico)\nllvm~_Chop (743 \"@src/sym.l\" llvm pico)\nllvm~_Circ (155 \"@src/subr.l\" llvm pico)\nllvm~_CircQ (852 \"@src/subr.l\" llvm pico)\nllvm~_Clip (614 \"@src/subr.l\" llvm pico)\nllvm~_Close (2215 \"@src/io.l\" llvm pico)\nllvm~_Cmd (1154 \"@src/main.l\" llvm pico)\nllvm~_Cnt (481 \"@src/apply.l\" llvm pico)\nllvm~_Co (1219 \"@src/flow.l\" llvm pico)\nllvm~_Col (1726 \"@src/sym.l\" llvm pico)\nllvm~_Commit (886 \"@src/db.l\" llvm pico)\nllvm~_Con (121 \"@src/subr.l\" llvm pico)\nllvm~_Conc (140 \"@src/subr.l\" llvm pico)\nllvm~_Cond (634 \"@src/flow.l\" llvm pico)\nllvm~_Cons (128 \"@src/subr.l\" llvm pico)\nllvm~_Copy (334 \"@src/subr.l\" llvm pico)\nllvm~_Ctl (1987 \"@src/io.l\" llvm pico)\nllvm~_Ctty (1099 \"@src/main.l\" llvm pico)\nllvm~_Cut (1031 \"@src/sym.l\" llvm pico)\nllvm~_Date (660 \"@src/main.l\" llvm pico)\nllvm~_Dbck (1198 \"@src/db.l\" llvm pico)\nllvm~_De (154 \"@src/flow.l\" llvm pico)\nllvm~_Dec (1177 \"@src/big.l\" llvm pico)\nllvm~_Def (123 \"@src/flow.l\" llvm pico)\nllvm~_Default (959 \"@src/sym.l\" llvm pico)\nllvm~_Del (1050 \"@src/sym.l\" llvm pico)\nllvm~_Delete (395 \"@src/subr.l\" llvm pico)\nllvm~_Delq (416 \"@src/subr.l\" llvm pico)\nllvm~_Detach (1738 \"@src/flow.l\" llvm pico)\nllvm~_Diff (938 \"@src/subr.l\" llvm pico)\nllvm~_Dir (1161 \"@src/main.l\" llvm pico)\nllvm~_Div (1250 \"@src/big.l\" llvm pico)\nllvm~_Dm (162 \"@src/flow.l\" llvm pico)\nllvm~_Do (763 \"@src/flow.l\" llvm pico)\nllvm~_E (1557 \"@src/flow.l\" llvm pico)\nllvm~_Echo (2228 \"@src/io.l\" llvm pico)\nllvm~_Enum (1157 \"@src/sym.l\" llvm pico)\nllvm~_EnumQ (1257 \"@src/sym.l\" llvm pico)\nllvm~_Env (1720 \"@src/main.l\" llvm pico)\nllvm~_Eof (1790 \"@src/io.l\" llvm pico)\nllvm~_Eol (1783 \"@src/io.l\" llvm pico)\nllvm~_Eq (720 \"@src/subr.l\" llvm pico)\nllvm~_Eq0 (748 \"@src/subr.l\" llvm pico)\nllvm~_Eq1 (752 \"@src/subr.l\" llvm pico)\nllvm~_EqT (756 \"@src/subr.l\" llvm pico)\nllvm~_Equal (734 \"@src/subr.l\" llvm pico)\nllvm~_Err (1979 \"@src/io.l\" llvm pico)\nllvm~_Errno (1268 \"@src/main.l\" llvm pico)\nllvm~_Eval (81 \"@src/flow.l\" llvm pico)\nllvm~_Exec (1640 \"@src/flow.l\" llvm pico)\nllvm~_Ext (2587 \"@src/io.l\" llvm pico)\nllvm~_ExtQ (246 \"@src/db.l\" llvm pico)\nllvm~_Extern (348 \"@src/db.l\" llvm pico)\nllvm~_Extra (485 \"@src/flow.l\" llvm pico)\nllvm~_Extract (325 \"@src/apply.l\" llvm pico)\nllvm~_Fd (2035 \"@src/io.l\" llvm pico)\nllvm~_Fifo (1093 \"@src/sym.l\" llvm pico)\nllvm~_File (1207 \"@src/main.l\" llvm pico)\nllvm~_Fill (1319 \"@src/subr.l\" llvm pico)\nllvm~_Filter (287 \"@src/apply.l\" llvm pico)\nllvm~_Fin (704 \"@src/subr.l\" llvm pico)\nllvm~_Finally (1128 \"@src/flow.l\" llvm pico)\nllvm~_Find (386 \"@src/apply.l\" llvm pico)\nllvm~_Fish (636 \"@src/apply.l\" llvm pico)\nllvm~_FlgQ (872 \"@src/subr.l\" llvm pico)\nllvm~_Flip (571 \"@src/subr.l\" llvm pico)\nllvm~_Flush (2571 \"@src/io.l\" llvm pico)\nllvm~_Fold (1903 \"@src/sym.l\" llvm pico)\nllvm~_For (784 \"@src/flow.l\" llvm pico)\nllvm~_Fork (1732 \"@src/flow.l\" llvm pico)\nllvm~_Format (1088 \"@src/big.l\" llvm pico)\nllvm~_Free (1170 \"@src/db.l\" llvm pico)\nllvm~_From (1801 \"@src/io.l\" llvm pico)\nllvm~_Full (252 \"@src/subr.l\" llvm pico)\nllvm~_Fully (450 \"@src/apply.l\" llvm pico)\nllvm~_Fun (45 \"@src/apply.l\" llvm pico)\nllvm~_FunQ (548 \"@src/sym.l\" llvm pico)\nllvm~_Gc (274 \"@src/gc.l\" llvm pico)\nllvm~_Ge (795 \"@src/subr.l\" llvm pico)\nllvm~_Ge0 (1357 \"@src/big.l\" llvm pico)\nllvm~_Get (1665 \"@src/sym.l\" llvm pico)\nllvm~_Getd (554 \"@src/sym.l\" llvm pico)\nllvm~_Getl (1777 \"@src/sym.l\" llvm pico)\nllvm~_Glue (772 \"@src/sym.l\" llvm pico)\nllvm~_Group (1657 \"@src/subr.l\" llvm pico)\nllvm~_Gt (786 \"@src/subr.l\" llvm pico)\nllvm~_Gt0 (1366 \"@src/big.l\" llvm pico)\nllvm~_Hash (1551 \"@src/big.l\" llvm pico)\nllvm~_Head (621 \"@src/subr.l\" llvm pico)\nllvm~_Heap (572 \"@src/main.l\" llvm pico)\nllvm~_Hear (995 \"@src/io.l\" llvm pico)\nllvm~_Hide (709 \"@src/sym.l\" llvm pico)\nllvm~_History (1812 \"@src/main.l\" llvm pico)\nllvm~_Id (655 \"@src/db.l\" llvm pico)\nllvm~_Idx (1392 \"@src/sym.l\" llvm pico)\nllvm~_If (580 \"@src/flow.l\" llvm pico)\nllvm~_If2 (596 \"@src/flow.l\" llvm pico)\nllvm~_IfAt2 (610 \"@src/flow.l\" llvm pico)\nllvm~_Ifn (588 \"@src/flow.l\" llvm pico)\nllvm~_In (1963 \"@src/io.l\" llvm pico)\nllvm~_Inc (1154 \"@src/big.l\" llvm pico)\nllvm~_Index (956 \"@src/subr.l\" llvm pico)\nllvm~_Info (1180 \"@src/main.l\" llvm pico)\nllvm~_Input (2019 \"@src/io.l\" llvm pico)\nllvm~_Insert (462 \"@src/subr.l\" llvm pico)\nllvm~_Intern (688 \"@src/sym.l\" llvm pico)\nllvm~_Ipid (1706 \"@src/flow.l\" llvm pico)\nllvm~_Isa (389 \"@src/flow.l\" llvm pico)\nllvm~_Job (918 \"@src/flow.l\" llvm pico)\nllvm~_Journal (606 \"@src/db.l\" llvm pico)\nllvm~_Key (1709 \"@src/io.l\" llvm pico)\nllvm~_Kids (552 \"@src/main.l\" llvm pico)\nllvm~_Kill (1720 \"@src/flow.l\" llvm pico)\nllvm~_Last (711 \"@src/subr.l\" llvm pico)\nllvm~_Le (777 \"@src/subr.l\" llvm pico)\nllvm~_Le0 (1348 \"@src/big.l\" llvm pico)\nllvm~_Length (996 \"@src/subr.l\" llvm pico)\nllvm~_Let (956 \"@src/flow.l\" llvm pico)\nllvm~_LetQ (1015 \"@src/flow.l\" llvm pico)\nllvm~_Lieu (756 \"@src/db.l\" llvm pico)\nllvm~_Line (1892 \"@src/io.l\" llvm pico)\nllvm~_Link (305 \"@src/subr.l\" llvm pico)\nllvm~_Lisp (1652 \"@src/main.l\" llvm pico)\nllvm~_List (187 \"@src/subr.l\" llvm pico)\nllvm~_Lit (69 \"@src/flow.l\" llvm pico)\nllvm~_Load (2888 \"@src/io.l\" llvm pico)\nllvm~_Lock (773 \"@src/db.l\" llvm pico)\nllvm~_Loop (778 \"@src/flow.l\" llvm pico)\nllvm~_LowQ (1856 \"@src/sym.l\" llvm pico)\nllvm~_Lowc (1870 \"@src/sym.l\" llvm pico)\nllvm~_LstQ (856 \"@src/subr.l\" llvm pico)\nllvm~_Lt (768 \"@src/subr.l\" llvm pico)\nllvm~_Lt0 (1342 \"@src/big.l\" llvm pico)\nllvm~_Lup (1407 \"@src/sym.l\" llvm pico)\nllvm~_Made (275 \"@src/subr.l\" llvm pico)\nllvm~_Make (260 \"@src/subr.l\" llvm pico)\nllvm~_Map (94 \"@src/apply.l\" llvm pico)\nllvm~_Mapc (117 \"@src/apply.l\" llvm pico)\nllvm~_Mapcan (246 \"@src/apply.l\" llvm pico)\nllvm~_Mapcar (177 \"@src/apply.l\" llvm pico)\nllvm~_Mapcon (214 \"@src/apply.l\" llvm pico)\nllvm~_Maplist (149 \"@src/apply.l\" llvm pico)\nllvm~_Maps (49 \"@src/apply.l\" llvm pico)\nllvm~_Mark (1122 \"@src/db.l\" llvm pico)\nllvm~_Match (1258 \"@src/subr.l\" llvm pico)\nllvm~_Max (805 \"@src/subr.l\" llvm pico)\nllvm~_Maxi (548 \"@src/apply.l\" llvm pico)\nllvm~_Member (878 \"@src/subr.l\" llvm pico)\nllvm~_Memq (891 \"@src/subr.l\" llvm pico)\nllvm~_Meta (1841 \"@src/sym.l\" llvm pico)\nllvm~_Method (407 \"@src/flow.l\" llvm pico)\nllvm~_Min (825 \"@src/subr.l\" llvm pico)\nllvm~_Mini (585 \"@src/apply.l\" llvm pico)\nllvm~_Mix (349 \"@src/subr.l\" llvm pico)\nllvm~_Mmeq (904 \"@src/subr.l\" llvm pico)\nllvm~_Mul (1201 \"@src/big.l\" llvm pico)\nllvm~_MulDiv (1222 \"@src/big.l\" llvm pico)\nllvm~_Name (510 \"@src/sym.l\" llvm pico)\nllvm~_Nand (514 \"@src/flow.l\" llvm pico)\nllvm~_Nat (1503 \"@src/main.l\" llvm pico)\nllvm~_Native (1516 \"@src/main.l\" llvm pico)\nllvm~_Need (199 \"@src/subr.l\" llvm pico)\nllvm~_Neq (727 \"@src/subr.l\" llvm pico)\nllvm~_Neq0 (760 \"@src/subr.l\" llvm pico)\nllvm~_NeqT (764 \"@src/subr.l\" llvm pico)\nllvm~_Nequal (741 \"@src/subr.l\" llvm pico)\nllvm~_New (320 \"@src/flow.l\" llvm pico)\nllvm~_Next (1673 \"@src/main.l\" llvm pico)\nllvm~_Nil (551 \"@src/flow.l\" llvm pico)\nllvm~_Nond (644 \"@src/flow.l\" llvm pico)\nllvm~_Nor (523 \"@src/flow.l\" llvm pico)\nllvm~_Not (544 \"@src/flow.l\" llvm pico)\nllvm~_Nsp (520 \"@src/sym.l\" llvm pico)\nllvm~_Nth (109 \"@src/subr.l\" llvm pico)\nllvm~_NumQ (862 \"@src/subr.l\" llvm pico)\nllvm~_Off (928 \"@src/sym.l\" llvm pico)\nllvm~_Offset (970 \"@src/subr.l\" llvm pico)\nllvm~_On (921 \"@src/sym.l\" llvm pico)\nllvm~_OnOff (935 \"@src/sym.l\" llvm pico)\nllvm~_One (952 \"@src/sym.l\" llvm pico)\nllvm~_Open (2199 \"@src/io.l\" llvm pico)\nllvm~_Opid (1713 \"@src/flow.l\" llvm pico)\nllvm~_Opt (1255 \"@src/main.l\" llvm pico)\nllvm~_Or (505 \"@src/flow.l\" llvm pico)\nllvm~_Out (1971 \"@src/io.l\" llvm pico)\nllvm~_Output (2027 \"@src/io.l\" llvm pico)\nllvm~_Pack (761 \"@src/sym.l\" llvm pico)\nllvm~_Pair (848 \"@src/subr.l\" llvm pico)\nllvm~_Pass (25 \"@src/apply.l\" llvm pico)\nllvm~_PatQ (541 \"@src/sym.l\" llvm pico)\nllvm~_Path (738 \"@src/io.l\" llvm pico)\nllvm~_Peek (1750 \"@src/io.l\" llvm pico)\nllvm~_Pick (419 \"@src/apply.l\" llvm pico)\nllvm~_Pipe (2155 \"@src/io.l\" llvm pico)\nllvm~_Place (496 \"@src/subr.l\" llvm pico)\nllvm~_Plio (2609 \"@src/io.l\" llvm pico)\nllvm~_Poll (1039 \"@src/io.l\" llvm pico)\nllvm~_Pool (455 \"@src/db.l\" llvm pico)\nllvm~_Pool2 (565 \"@src/db.l\" llvm pico)\nllvm~_Pop (1006 \"@src/sym.l\" llvm pico)\nllvm~_Popq (1016 \"@src/sym.l\" llvm pico)\nllvm~_Pr (2670 \"@src/io.l\" llvm pico)\nllvm~_PreQ (842 \"@src/sym.l\" llvm pico)\nllvm~_Prin (2531 \"@src/io.l\" llvm pico)\nllvm~_Prinl (2539 \"@src/io.l\" llvm pico)\nllvm~_Print (2554 \"@src/io.l\" llvm pico)\nllvm~_Println (2567 \"@src/io.l\" llvm pico)\nllvm~_Printsp (2563 \"@src/io.l\" llvm pico)\nllvm~_Prior (983 \"@src/subr.l\" llvm pico)\nllvm~_Prog (561 \"@src/flow.l\" llvm pico)\nllvm~_Prog1 (565 \"@src/flow.l\" llvm pico)\nllvm~_Prog2 (572 \"@src/flow.l\" llvm pico)\nllvm~_Prompt (521 \"@src/main.l\" llvm pico)\nllvm~_Prop (1676 \"@src/sym.l\" llvm pico)\nllvm~_PropCol (1733 \"@src/sym.l\" llvm pico)\nllvm~_Protect (564 \"@src/main.l\" llvm pico)\nllvm~_Prove (1487 \"@src/subr.l\" llvm pico)\nllvm~_Push (968 \"@src/sym.l\" llvm pico)\nllvm~_Push1 (980 \"@src/sym.l\" llvm pico)\nllvm~_Push1q (993 \"@src/sym.l\" llvm pico)\nllvm~_Put (1640 \"@src/sym.l\" llvm pico)\nllvm~_Putl (1747 \"@src/sym.l\" llvm pico)\nllvm~_Pwd (1078 \"@src/main.l\" llvm pico)\nllvm~_Queue (1075 \"@src/sym.l\" llvm pico)\nllvm~_Quit (1049 \"@src/main.l\" llvm pico)\nllvm~_Quote (58 \"@src/flow.l\" llvm pico)\nllvm~_Rand (1559 \"@src/big.l\" llvm pico)\nllvm~_Range (231 \"@src/subr.l\" llvm pico)\nllvm~_Rank (1212 \"@src/subr.l\" llvm pico)\nllvm~_Rasoq (1199 \"@src/subr.l\" llvm pico)\nllvm~_Rassoc (1173 \"@src/subr.l\" llvm pico)\nllvm~_Raw (529 \"@src/main.l\" llvm pico)\nllvm~_Rd (2631 \"@src/io.l\" llvm pico)\nllvm~_Read (1694 \"@src/io.l\" llvm pico)\nllvm~_Rem (1272 \"@src/big.l\" llvm pico)\nllvm~_Remove (477 \"@src/subr.l\" llvm pico)\nllvm~_Replace (437 \"@src/subr.l\" llvm pico)\nllvm~_Rest (1688 \"@src/main.l\" llvm pico)\nllvm~_Rev (1328 \"@src/big.l\" llvm pico)\nllvm~_Reverse (561 \"@src/subr.l\" llvm pico)\nllvm~_Rewind (2575 \"@src/io.l\" llvm pico)\nllvm~_Rid (1124 \"@src/sym.l\" llvm pico)\nllvm~_Rollback (299 \"@src/db.l\" llvm pico)\nllvm~_Rot (166 \"@src/subr.l\" llvm pico)\nllvm~_Rt (749 \"@src/main.l\" llvm pico)\nllvm~_Run (99 \"@src/flow.l\" llvm pico)\nllvm~_Sect (920 \"@src/subr.l\" llvm pico)\nllvm~_Seed (1545 \"@src/big.l\" llvm pico)\nllvm~_Seek (363 \"@src/apply.l\" llvm pico)\nllvm~_Semicol (1694 \"@src/sym.l\" llvm pico)\nllvm~_Send (417 \"@src/flow.l\" llvm pico)\nllvm~_Seq (725 \"@src/db.l\" llvm pico)\nllvm~_Set (877 \"@src/sym.l\" llvm pico)\nllvm~_SetCol (1705 \"@src/sym.l\" llvm pico)\nllvm~_Setq (889 \"@src/sym.l\" llvm pico)\nllvm~_Shift (1024 \"@src/sym.l\" llvm pico)\nllvm~_Shr (1294 \"@src/big.l\" llvm pico)\nllvm~_Sigio (545 \"@src/main.l\" llvm pico)\nllvm~_Size (1099 \"@src/subr.l\" llvm pico)\nllvm~_Skip (1777 \"@src/io.l\" llvm pico)\nllvm~_Sort (1705 \"@src/subr.l\" llvm pico)\nllvm~_SpQ (535 \"@src/sym.l\" llvm pico)\nllvm~_Space (2543 \"@src/io.l\" llvm pico)\nllvm~_Split (524 \"@src/subr.l\" llvm pico)\nllvm~_Sq (1446 \"@src/big.l\" llvm pico)\nllvm~_Sqrt (1467 \"@src/big.l\" llvm pico)\nllvm~_Stack (585 \"@src/main.l\" llvm pico)\nllvm~_State (675 \"@src/flow.l\" llvm pico)\nllvm~_Stem (684 \"@src/subr.l\" llvm pico)\nllvm~_Str (2761 \"@src/io.l\" llvm pico)\nllvm~_StrQ (724 \"@src/sym.l\" llvm pico)\nllvm~_Strip (516 \"@src/subr.l\" llvm pico)\nllvm~_Struct (1543 \"@src/main.l\" llvm pico)\nllvm~_Sub (1137 \"@src/big.l\" llvm pico)\nllvm~_SubQ (856 \"@src/sym.l\" llvm pico)\nllvm~_Sum (514 \"@src/apply.l\" llvm pico)\nllvm~_Super (447 \"@src/flow.l\" llvm pico)\nllvm~_Swap (896 \"@src/sym.l\" llvm pico)\nllvm~_Sym (2753 \"@src/io.l\" llvm pico)\nllvm~_SymQ (866 \"@src/subr.l\" llvm pico)\nllvm~_Symbols (643 \"@src/sym.l\" llvm pico)\nllvm~_Sync (973 \"@src/io.l\" llvm pico)\nllvm~_Sys (1062 \"@src/main.l\" llvm pico)\nllvm~_T (556 \"@src/flow.l\" llvm pico)\nllvm~_Tail (654 \"@src/subr.l\" llvm pico)\nllvm~_Tc (1083 \"@src/flow.l\" llvm pico)\nllvm~_Tco (1060 \"@src/flow.l\" llvm pico)\nllvm~_Tell (1014 \"@src/io.l\" llvm pico)\nllvm~_Text (785 \"@src/sym.l\" llvm pico)\nllvm~_This (869 \"@src/flow.l\" llvm pico)\nllvm~_Throw (1112 \"@src/flow.l\" llvm pico)\nllvm~_Till (1846 \"@src/io.l\" llvm pico)\nllvm~_Time (712 \"@src/main.l\" llvm pico)\nllvm~_Touch (869 \"@src/db.l\" llvm pico)\nllvm~_Trace (1600 \"@src/flow.l\" llvm pico)\nllvm~_Trail (1755 \"@src/main.l\" llvm pico)\nllvm~_Trim (610 \"@src/subr.l\" llvm pico)\nllvm~_Try (430 \"@src/flow.l\" llvm pico)\nllvm~_Tty (509 \"@src/main.l\" llvm pico)\nllvm~_Type (354 \"@src/flow.l\" llvm pico)\nllvm~_Unify (1634 \"@src/subr.l\" llvm pico)\nllvm~_Unless (626 \"@src/flow.l\" llvm pico)\nllvm~_Until (700 \"@src/flow.l\" llvm pico)\nllvm~_Up (1777 \"@src/main.l\" llvm pico)\nllvm~_UppQ (1863 \"@src/sym.l\" llvm pico)\nllvm~_Uppc (1885 \"@src/sym.l\" llvm pico)\nllvm~_Use (1027 \"@src/flow.l\" llvm pico)\nllvm~_Usec (742 \"@src/main.l\" llvm pico)\nllvm~_Val (870 \"@src/sym.l\" llvm pico)\nllvm~_Version (2036 \"@src/main.l\" llvm pico)\nllvm~_Wait (955 \"@src/io.l\" llvm pico)\nllvm~_When (618 \"@src/flow.l\" llvm pico)\nllvm~_While (692 \"@src/flow.l\" llvm pico)\nllvm~_Wipe (1813 \"@src/sym.l\" llvm pico)\nllvm~_With (873 \"@src/flow.l\" llvm pico)\nllvm~_Wr (2679 \"@src/io.l\" llvm pico)\nllvm~_Xchg (907 \"@src/sym.l\" llvm pico)\nllvm~_Xor (533 \"@src/flow.l\" llvm pico)\nllvm~_Yield (1346 \"@src/flow.l\" llvm pico)\nllvm~_Yoke (318 \"@src/subr.l\" llvm pico)\nllvm~_Zap (735 \"@src/sym.l\" llvm pico)\nllvm~_Zero (945 \"@src/sym.l\" llvm pico)\nllvm~__Meth (306 \"@src/flow.l\" llvm pico)\nllvm~_getStdin (1251 \"@src/io.l\" llvm pico)\nllvm~_putStdout (2334 \"@src/io.l\" llvm pico)\nllvm~add (993 \"@src/lib/llvm.l\" llvm pico)\nllvm~adds (819 \"@src/big.l\" llvm pico)\nllvm~addu (415 \"@src/big.l\" llvm pico)\nllvm~alloc (162 \"@src/main.l\" llvm pico)\nllvm~and (1350 \"@src/lib/llvm.l\" llvm pico)\nllvm~andu (306 \"@src/big.l\" llvm pico)\nllvm~anonymous (1407 \"@src/io.l\" llvm pico)\nllvm~any (836 \"@src/lib/llvm.l\" llvm pico)\nllvm~argErr (356 \"@src/main.l\" llvm pico)\nllvm~array (371 \"@src/lib/llvm.l\" llvm pico)\nllvm~asm (136 \"@src/lib/llvm.l\" llvm pico)\nllvm~atom (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~atomErr (374 \"@src/main.l\" llvm pico)\nllvm~b32 (1256 \"@src/lib/llvm.l\" llvm pico)\nllvm~b64 (1256 \"@src/lib/llvm.l\" llvm pico)\nllvm~b8 (1256 \"@src/lib/llvm.l\" llvm pico)\nllvm~b8* (1256 \"@src/lib/llvm.l\" llvm pico)\nllvm~b8+ (1256 \"@src/lib/llvm.l\" llvm pico)\nllvm~badFd (29 \"@src/io.l\" llvm pico)\nllvm~badInput (23 \"@src/io.l\" llvm pico)\nllvm~begString (2728 \"@src/io.l\" llvm pico)\nllvm~begin (71 \"@src/lib/llvm.l\" llvm pico)\nllvm~big (861 \"@src/lib/llvm.l\" llvm pico)\nllvm~big? (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~binPrint (382 \"@src/io.l\" llvm pico)\nllvm~binRead (276 \"@src/io.l\" llvm pico)\nllvm~binSize (1050 \"@src/subr.l\" llvm pico)\nllvm~blkPeek (120 \"@src/db.l\" llvm pico)\nllvm~blkPoke (137 \"@src/db.l\" llvm pico)\nllvm~box (395 \"@src/gc.l\" llvm pico)\nllvm~box64 (438 \"@src/dec.l\" llvm pico)\nllvm~boxNum (374 \"@src/gc.l\" llvm pico)\nllvm~br (173 \"@src/lib/llvm.l\" llvm pico)\nllvm~brkLoad (1511 \"@src/flow.l\" llvm pico)\nllvm~bufAo (2384 \"@src/io.l\" llvm pico)\nllvm~bufSize (7 \"@src/sym.l\" llvm pico)\nllvm~bufString (38 \"@src/sym.l\" llvm pico)\nllvm~bye (145 \"@src/main.l\" llvm pico)\nllvm~byteNum (58 \"@src/big.l\" llvm pico)\nllvm~byteSym (97 \"@src/big.l\" llvm pico)\nllvm~caFrame (57 \"@src/dec.l\" llvm pico)\nllvm~caar (378 \"@src/dec.l\" llvm pico)\nllvm~cadr (381 \"@src/dec.l\" llvm pico)\nllvm~call (1529 \"@src/lib/llvm.l\" llvm pico)\nllvm~car (1118 \"@src/lib/llvm.l\" llvm pico)\nllvm~case (1443 \"@src/lib/llvm.l\" llvm pico)\nllvm~cbFuns (610 \"@src/glob.l\" llvm pico)\nllvm~cbl (1560 \"@src/main.l\" llvm pico)\nllvm~cdar (384 \"@src/dec.l\" llvm pico)\nllvm~cddr (387 \"@src/dec.l\" llvm pico)\nllvm~cdr (1126 \"@src/lib/llvm.l\" llvm pico)\nllvm~charErr (368 \"@src/main.l\" llvm pico)\nllvm~charSym (122 \"@src/big.l\" llvm pico)\nllvm~child (99 \"@src/dec.l\" llvm pico)\nllvm~chkA (7 \"@src/subr.l\" llvm pico)\nllvm~chkD (10 \"@src/subr.l\" llvm pico)\nllvm~chkVar (509 \"@src/dec.l\" llvm pico)\nllvm~chopExtNm (212 \"@src/sym.l\" llvm pico)\nllvm~circ (448 \"@src/main.l\" llvm pico)\nllvm~cleanUp (256 \"@src/db.l\" llvm pico)\nllvm~closeErr (11 \"@src/io.l\" llvm pico)\nllvm~closeInFile (105 \"@src/io.l\" llvm pico)\nllvm~closeOnExec (40 \"@src/io.l\" llvm pico)\nllvm~closeOutFile (114 \"@src/io.l\" llvm pico)\nllvm~clsChild (202 \"@src/io.l\" llvm pico)\nllvm~cmpLong (244 \"@src/sym.l\" llvm pico)\nllvm~cmpNum (889 \"@src/big.l\" llvm pico)\nllvm~cmpSort (1700 \"@src/subr.l\" llvm pico)\nllvm~cmpu (843 \"@src/big.l\" llvm pico)\nllvm~cnt (393 \"@src/dec.l\" llvm pico)\nllvm~cnt? (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~cntErr (359 \"@src/main.l\" llvm pico)\nllvm~coErr (1147 \"@src/flow.l\" llvm pico)\nllvm~comment (1329 \"@src/io.l\" llvm pico)\nllvm~compare (868 \"@src/main.l\" llvm pico)\nllvm~cond (1412 \"@src/lib/llvm.l\" llvm pico)\nllvm~cons (289 \"@src/gc.l\" llvm pico)\nllvm~cons2 (300 \"@src/gc.l\" llvm pico)\nllvm~cons3 (322 \"@src/gc.l\" llvm pico)\nllvm~consExt (370 \"@src/gc.l\" llvm pico)\nllvm~consNum (384 \"@src/gc.l\" llvm pico)\nllvm~consStr (365 \"@src/gc.l\" llvm pico)\nllvm~consSym (350 \"@src/gc.l\" llvm pico)\nllvm~consTree (566 \"@src/sym.l\" llvm pico)\nllvm~const (341 \"@src/lib/llvm.l\" llvm pico)\nllvm~coroutine (73 \"@src/dec.l\" llvm pico)\nllvm~ctFrame (38 \"@src/dec.l\" llvm pico)\nllvm~ctOpen (1212 \"@src/io.l\" llvm pico)\nllvm~currFd (561 \"@src/io.l\" llvm pico)\nllvm~db (793 \"@src/db.l\" llvm pico)\nllvm~dbFetch (844 \"@src/db.l\" llvm pico)\nllvm~dbFile (42 \"@src/dec.l\" llvm pico)\nllvm~dbRdErr (10 \"@src/db.l\" llvm pico)\nllvm~dbSyncErr (19 \"@src/db.l\" llvm pico)\nllvm~dbTouch (854 \"@src/db.l\" llvm pico)\nllvm~dbWrErr (13 \"@src/db.l\" llvm pico)\nllvm~dbZap (875 \"@src/db.l\" llvm pico)\nllvm~dbfBuf (57 \"@src/db.l\" llvm pico)\nllvm~dbfErr (7 \"@src/db.l\" llvm pico)\nllvm~dbg (49 \"@src/main.l\" llvm pico)\nllvm~de (699 \"@src/lib/llvm.l\" llvm pico)\nllvm~dec (1012 \"@src/lib/llvm.l\" llvm pico)\nllvm~decs (813 \"@src/big.l\" llvm pico)\nllvm~define (558 \"@src/lib/llvm.l\" llvm pico)\nllvm~delNode (460 \"@src/sym.l\" llvm pico)\nllvm~dig (861 \"@src/lib/llvm.l\" llvm pico)\nllvm~dirString (792 \"@src/main.l\" llvm pico)\nllvm~div (1062 \"@src/lib/llvm.l\" llvm pico)\nllvm~div1 (668 \"@src/big.l\" llvm pico)\nllvm~divErr (15 \"@src/big.l\" llvm pico)\nllvm~divu (790 \"@src/big.l\" llvm pico)\nllvm~dlfun (1331 \"@src/lib/llvm.l\" llvm pico)\nllvm~drop (1585 \"@src/lib/llvm.l\" llvm pico)\nllvm~end (105 \"@src/lib/llvm.l\" llvm pico)\nllvm~endString (2738 \"@src/io.l\" llvm pico)\nllvm~env (639 \"@src/glob.l\" llvm pico)\nllvm~eofErr (20 \"@src/io.l\" llvm pico)\nllvm~eol (1879 \"@src/io.l\" llvm pico)\nllvm~equ (290 \"@src/lib/llvm.l\" llvm pico)\nllvm~equal (810 \"@src/main.l\" llvm pico)\nllvm~equalBig (799 \"@src/main.l\" llvm pico)\nllvm~erOpen (1190 \"@src/io.l\" llvm pico)\nllvm~err (271 \"@src/main.l\" llvm pico)\nllvm~evBool (711 \"@src/lib/llvm.l\" llvm pico)\nllvm~evCnt (408 \"@src/main.l\" llvm pico)\nllvm~evExe (33 \"@src/main.l\" llvm pico)\nllvm~evExpr (946 \"@src/main.l\" llvm pico)\nllvm~evList (1017 \"@src/main.l\" llvm pico)\nllvm~evLst (416 \"@src/main.l\" llvm pico)\nllvm~evMethod (211 \"@src/flow.l\" llvm pico)\nllvm~evSym (430 \"@src/main.l\" llvm pico)\nllvm~eval (444 \"@src/dec.l\" llvm pico)\nllvm~exec (451 \"@src/dec.l\" llvm pico)\nllvm~execAt (22 \"@src/main.l\" llvm pico)\nllvm~execErr (155 \"@src/main.l\" llvm pico)\nllvm~extErr (371 \"@src/main.l\" llvm pico)\nllvm~extNm (146 \"@src/sym.l\" llvm pico)\nllvm~extern (385 \"@src/sym.l\" llvm pico)\nllvm~extra (466 \"@src/flow.l\" llvm pico)\nllvm~fetchChar (1274 \"@src/main.l\" llvm pico)\nllvm~ffi (1441 \"@src/main.l\" llvm pico)\nllvm~fill2 (1269 \"@src/subr.l\" llvm pico)\nllvm~fill3 (1305 \"@src/subr.l\" llvm pico)\nllvm~findSym (286 \"@src/sym.l\" llvm pico)\nllvm~firstByte (118 \"@src/sym.l\" llvm pico)\nllvm~firstChar (126 \"@src/sym.l\" llvm pico)\nllvm~fish (623 \"@src/apply.l\" llvm pico)\nllvm~flush (235 \"@src/io.l\" llvm pico)\nllvm~flushAll (244 \"@src/io.l\" llvm pico)\nllvm~fmtNum (975 \"@src/big.l\" llvm pico)\nllvm~fmtScl (952 \"@src/big.l\" llvm pico)\nllvm~forkErr (395 \"@src/main.l\" llvm pico)\nllvm~forkLisp (2043 \"@src/io.l\" llvm pico)\nllvm~fsyncDB (406 \"@src/db.l\" llvm pico)\nllvm~fun (852 \"@src/lib/llvm.l\" llvm pico)\nllvm~func (220 \"@src/lib/llvm.l\" llvm pico)\nllvm~funq (468 \"@src/main.l\" llvm pico)\nllvm~gc (37 \"@src/gc.l\" llvm pico)\nllvm~gcData (555 \"@src/glob.l\" llvm pico)\nllvm~ge0 (950 \"@src/lib/llvm.l\" llvm pico)\nllvm~get (1553 \"@src/sym.l\" llvm pico)\nllvm~getAdr (26 \"@src/db.l\" llvm pico)\nllvm~getBinary (266 \"@src/io.l\" llvm pico)\nllvm~getBlk (784 \"@src/io.l\" llvm pico)\nllvm~getBlock (271 \"@src/db.l\" llvm pico)\nllvm~getCaEnv (535 \"@src/dec.l\" llvm pico)\nllvm~getChar (1298 \"@src/io.l\" llvm pico)\nllvm~getCrtEnv (553 \"@src/dec.l\" llvm pico)\nllvm~getIn (578 \"@src/io.l\" llvm pico)\nllvm~getParse (2688 \"@src/io.l\" llvm pico)\nllvm~getPlio (2596 \"@src/io.l\" llvm pico)\nllvm~getn (1584 \"@src/sym.l\" llvm pico)\nllvm~giveup (140 \"@src/main.l\" llvm pico)\nllvm~global (294 \"@src/lib/llvm.l\" llvm pico)\nllvm~goto (1556 \"@src/lib/llvm.l\" llvm pico)\nllvm~gt0 (950 \"@src/lib/llvm.l\" llvm pico)\nllvm~half (186 \"@src/big.l\" llvm pico)\nllvm~hasData (759 \"@src/io.l\" llvm pico)\nllvm~heapAlloc (167 \"@src/main.l\" llvm pico)\nllvm~i1* (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~i16 (763 \"@src/lib/llvm.l\" llvm pico)\nllvm~i16* (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~i32 (775 \"@src/lib/llvm.l\" llvm pico)\nllvm~i32* (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~i64 (787 \"@src/lib/llvm.l\" llvm pico)\nllvm~i64* (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~i64u (801 \"@src/lib/llvm.l\" llvm pico)\nllvm~i8 (752 \"@src/lib/llvm.l\" llvm pico)\nllvm~i8* (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~i8** (810 \"@src/lib/llvm.l\" llvm pico)\nllvm~idxDel (1359 \"@src/sym.l\" llvm pico)\nllvm~idxGet (1340 \"@src/sym.l\" llvm pico)\nllvm~idxPut (1276 \"@src/sym.l\" llvm pico)\nllvm~if (1382 \"@src/lib/llvm.l\" llvm pico)\nllvm~ifn (1382 \"@src/lib/llvm.l\" llvm pico)\nllvm~ignLog (384 \"@src/db.l\" llvm pico)\nllvm~inFile (8 \"@src/dec.l\" llvm pico)\nllvm~inReady (768 \"@src/io.l\" llvm pico)\nllvm~inc (1012 \"@src/lib/llvm.l\" llvm pico)\nllvm~incs (807 \"@src/big.l\" llvm pico)\nllvm~init (1837 \"@src/main.l\" llvm pico)\nllvm~initInFile (56 \"@src/io.l\" llvm pico)\nllvm~initOutFile (82 \"@src/io.l\" llvm pico)\nllvm~initSeed (1523 \"@src/big.l\" llvm pico)\nllvm~inline (535 \"@src/lib/llvm.l\" llvm pico)\nllvm~int (390 \"@src/dec.l\" llvm pico)\nllvm~intern (329 \"@src/sym.l\" llvm pico)\nllvm~intern1 (294 \"@src/sym.l\" llvm pico)\nllvm~intern2 (302 \"@src/sym.l\" llvm pico)\nllvm~internLeft (318 \"@src/sym.l\" llvm pico)\nllvm~internRight (310 \"@src/sym.l\" llvm pico)\nllvm~ioFrame (25 \"@src/dec.l\" llvm pico)\nllvm~ioxFrame (31 \"@src/dec.l\" llvm pico)\nllvm~isBlank (132 \"@src/sym.l\" llvm pico)\nllvm~isIntern (258 \"@src/sym.l\" llvm pico)\nllvm~isLife (216 \"@src/db.l\" llvm pico)\nllvm~isLstIntern (280 \"@src/sym.l\" llvm pico)\nllvm~isa (374 \"@src/flow.l\" llvm pico)\nllvm~itemErr (386 \"@src/main.l\" llvm pico)\nllvm~jnlErr (16 \"@src/db.l\" llvm pico)\nllvm~label (179 \"@src/lib/llvm.l\" llvm pico)\nllvm~le0 (950 \"@src/lib/llvm.l\" llvm pico)\nllvm~length (430 \"@src/dec.l\" llvm pico)\nllvm~let (1223 \"@src/lib/llvm.l\" llvm pico)\nllvm~link (1575 \"@src/lib/llvm.l\" llvm pico)\nllvm~loadAll (2873 \"@src/io.l\" llvm pico)\nllvm~loadCoEnv (1168 \"@src/flow.l\" llvm pico)\nllvm~lockErr (392 \"@src/main.l\" llvm pico)\nllvm~lockJnl (110 \"@src/db.l\" llvm pico)\nllvm~log (127 \"@src/lib/llvm.l\" llvm pico)\nllvm~logBlock (163 \"@src/db.l\" llvm pico)\nllvm~lookup (1411 \"@src/subr.l\" llvm pico)\nllvm~loop (1512 \"@src/lib/llvm.l\" llvm pico)\nllvm~loop1 (724 \"@src/flow.l\" llvm pico)\nllvm~loop2 (744 \"@src/flow.l\" llvm pico)\nllvm~lstErr (380 \"@src/main.l\" llvm pico)\nllvm~lt0 (950 \"@src/lib/llvm.l\" llvm pico)\nllvm~lup (1384 \"@src/subr.l\" llvm pico)\nllvm~main (1897 \"@src/main.l\" llvm pico)\nllvm~makeErr (13 \"@src/subr.l\" llvm pico)\nllvm~mark (7 \"@src/gc.l\" llvm pico)\nllvm~match (1229 \"@src/subr.l\" llvm pico)\nllvm~member (414 \"@src/dec.l\" llvm pico)\nllvm~memcpy (1209 \"@src/lib/llvm.l\" llvm pico)\nllvm~memq (407 \"@src/dec.l\" llvm pico)\nllvm~memset (1216 \"@src/lib/llvm.l\" llvm pico)\nllvm~meta (1826 \"@src/sym.l\" llvm pico)\nllvm~method (289 \"@src/flow.l\" llvm pico)\nllvm~mkChar (68 \"@src/sym.l\" llvm pico)\nllvm~mkStr (98 \"@src/sym.l\" llvm pico)\nllvm~mkStrE (108 \"@src/sym.l\" llvm pico)\nllvm~mul (1048 \"@src/lib/llvm.l\" llvm pico)\nllvm~mulAddHiLo (575 \"@src/big.l\" llvm pico)\nllvm~mulu (583 \"@src/big.l\" llvm pico)\nllvm~n0 (940 \"@src/lib/llvm.l\" llvm pico)\nllvm~name (402 \"@src/dec.l\" llvm pico)\nllvm~natBuf (1305 \"@src/main.l\" llvm pico)\nllvm~natErr (1346 \"@src/main.l\" llvm pico)\nllvm~natRetBuf (1367 \"@src/main.l\" llvm pico)\nllvm~natRetDouble (1358 \"@src/main.l\" llvm pico)\nllvm~natRetFloat (1349 \"@src/main.l\" llvm pico)\nllvm~need3 (268 \"@src/gc.l\" llvm pico)\nllvm~needChkVar (514 \"@src/dec.l\" llvm pico)\nllvm~needCnt (479 \"@src/dec.l\" llvm pico)\nllvm~needLst (499 \"@src/dec.l\" llvm pico)\nllvm~needNsp (520 \"@src/dec.l\" llvm pico)\nllvm~needNum (484 \"@src/dec.l\" llvm pico)\nllvm~needPair (494 \"@src/dec.l\" llvm pico)\nllvm~needSymb (489 \"@src/dec.l\" llvm pico)\nllvm~needVar (504 \"@src/dec.l\" llvm pico)\nllvm~neg (10 \"@src/big.l\" llvm pico)\nllvm~newBlock (179 \"@src/db.l\" llvm pico)\nllvm~newId (198 \"@src/db.l\" llvm pico)\nllvm~newline (2349 \"@src/io.l\" llvm pico)\nllvm~nil? (908 \"@src/lib/llvm.l\" llvm pico)\nllvm~noToken (1624 \"@src/io.l\" llvm pico)\nllvm~nond (1412 \"@src/lib/llvm.l\" llvm pico)\nllvm~not (902 \"@src/lib/llvm.l\" llvm pico)\nllvm~nth (421 \"@src/dec.l\" llvm pico)\nllvm~null (61 \"@src/lib/llvm.l\" llvm pico)\nllvm~num? (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~numErr (362 \"@src/main.l\" llvm pico)\nllvm~objFile (163 \"@src/sym.l\" llvm pico)\nllvm~objId (169 \"@src/sym.l\" llvm pico)\nllvm~ofs (1097 \"@src/lib/llvm.l\" llvm pico)\nllvm~okCell (736 \"@src/lib/llvm.l\" llvm pico)\nllvm~okVar (721 \"@src/lib/llvm.l\" llvm pico)\nllvm~openErr (8 \"@src/io.l\" llvm pico)\nllvm~or (1350 \"@src/lib/llvm.l\" llvm pico)\nllvm~oru (335 \"@src/big.l\" llvm pico)\nllvm~outAo (2377 \"@src/io.l\" llvm pico)\nllvm~outFile (19 \"@src/dec.l\" llvm pico)\nllvm~outNum (2364 \"@src/io.l\" llvm pico)\nllvm~outOct (2370 \"@src/io.l\" llvm pico)\nllvm~outScl (964 \"@src/big.l\" llvm pico)\nllvm~outString (2401 \"@src/io.l\" llvm pico)\nllvm~outWord (2358 \"@src/io.l\" llvm pico)\nllvm~pack (193 \"@src/sym.l\" llvm pico)\nllvm~packAO (177 \"@src/sym.l\" llvm pico)\nllvm~packExtNm (187 \"@src/sym.l\" llvm pico)\nllvm~packOct (182 \"@src/sym.l\" llvm pico)\nllvm~pair (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~pairErr (377 \"@src/main.l\" llvm pico)\nllvm~parse (2697 \"@src/io.l\" llvm pico)\nllvm~pathSize (18 \"@src/sym.l\" llvm pico)\nllvm~pathString (44 \"@src/sym.l\" llvm pico)\nllvm~phi (152 \"@src/lib/llvm.l\" llvm pico)\nllvm~pipeErr (14 \"@src/io.l\" llvm pico)\nllvm~pointee (234 \"@src/lib/llvm.l\" llvm pico)\nllvm~pollfd (744 \"@src/io.l\" llvm pico)\nllvm~pop (1597 \"@src/lib/llvm.l\" llvm pico)\nllvm~popCtlFiles (730 \"@src/io.l\" llvm pico)\nllvm~popErrFiles (724 \"@src/io.l\" llvm pico)\nllvm~popInFiles (687 \"@src/io.l\" llvm pico)\nllvm~popOutFiles (705 \"@src/io.l\" llvm pico)\nllvm~pos (7 \"@src/big.l\" llvm pico)\nllvm~pr (493 \"@src/io.l\" llvm pico)\nllvm~prCnt (372 \"@src/io.l\" llvm pico)\nllvm~prExt (2393 \"@src/io.l\" llvm pico)\nllvm~prName (2406 \"@src/io.l\" llvm pico)\nllvm~prSym (2411 \"@src/io.l\" llvm pico)\nllvm~prTell (503 \"@src/io.l\" llvm pico)\nllvm~preStr (817 \"@src/sym.l\" llvm pico)\nllvm~prin (2512 \"@src/io.l\" llvm pico)\nllvm~print (2440 \"@src/io.l\" llvm pico)\nllvm~printName (2414 \"@src/io.l\" llvm pico)\nllvm~printSym (2435 \"@src/io.l\" llvm pico)\nllvm~prog1 (1367 \"@src/lib/llvm.l\" llvm pico)\nllvm~prog2 (1374 \"@src/lib/llvm.l\" llvm pico)\nllvm~prop (1603 \"@src/sym.l\" llvm pico)\nllvm~protErr (389 \"@src/main.l\" llvm pico)\nllvm~ptr (227 \"@src/lib/llvm.l\" llvm pico)\nllvm~push (1269 \"@src/lib/llvm.l\" llvm pico)\nllvm~pushCtlFile (681 \"@src/io.l\" llvm pico)\nllvm~pushErrFile (677 \"@src/io.l\" llvm pico)\nllvm~pushInFile (658 \"@src/io.l\" llvm pico)\nllvm~pushInput (1996 \"@src/io.l\" llvm pico)\nllvm~pushOutFile (669 \"@src/io.l\" llvm pico)\nllvm~pushOutput (2009 \"@src/io.l\" llvm pico)\nllvm~put (1474 \"@src/sym.l\" llvm pico)\nllvm~put1 (610 \"@src/io.l\" llvm pico)\nllvm~putBlock (280 \"@src/db.l\" llvm pico)\nllvm~putCaEnv (526 \"@src/dec.l\" llvm pico)\nllvm~putCrtEnv (544 \"@src/dec.l\" llvm pico)\nllvm~putOut (629 \"@src/io.l\" llvm pico)\nllvm~putPlio (2601 \"@src/io.l\" llvm pico)\nllvm~putSrc (20 \"@src/flow.l\" llvm pico)\nllvm~putString (2725 \"@src/io.l\" llvm pico)\nllvm~putTell (497 \"@src/io.l\" llvm pico)\nllvm~putn (1534 \"@src/sym.l\" llvm pico)\nllvm~rdAtom (1421 \"@src/io.l\" llvm pico)\nllvm~rdBlock (125 \"@src/db.l\" llvm pico)\nllvm~rdBytes (152 \"@src/io.l\" llvm pico)\nllvm~rdBytesNb (163 \"@src/io.l\" llvm pico)\nllvm~rdList (1500 \"@src/io.l\" llvm pico)\nllvm~rdLockDb (70 \"@src/db.l\" llvm pico)\nllvm~rdLockWait (44 \"@src/io.l\" llvm pico)\nllvm~rdOpen (1060 \"@src/io.l\" llvm pico)\nllvm~rdl (1461 \"@src/io.l\" llvm pico)\nllvm~read0 (1524 \"@src/io.l\" llvm pico)\nllvm~read1 (1617 \"@src/io.l\" llvm pico)\nllvm~redefMsg (7 \"@src/flow.l\" llvm pico)\nllvm~redefine (49 \"@src/flow.l\" llvm pico)\nllvm~reentErr (1150 \"@src/flow.l\" llvm pico)\nllvm~remu (797 \"@src/big.l\" llvm pico)\nllvm~repl (2828 \"@src/io.l\" llvm pico)\nllvm~requestSym (375 \"@src/sym.l\" llvm pico)\nllvm~restore (415 \"@src/db.l\" llvm pico)\nllvm~ret (1560 \"@src/lib/llvm.l\" llvm pico)\nllvm~rlAvail (1248 \"@src/io.l\" llvm pico)\nllvm~rlGetc (1243 \"@src/io.l\" llvm pico)\nllvm~run (458 \"@src/dec.l\" llvm pico)\nllvm~runAt (27 \"@src/main.l\" llvm pico)\nllvm~runCo (1178 \"@src/flow.l\" llvm pico)\nllvm~safe (1634 \"@src/lib/llvm.l\" llvm pico)\nllvm~save (1604 \"@src/lib/llvm.l\" llvm pico)\nllvm~save2 (1619 \"@src/lib/llvm.l\" llvm pico)\nllvm~saveCoEnv (1161 \"@src/flow.l\" llvm pico)\nllvm~selectErr (35 \"@src/io.l\" llvm pico)\nllvm~set (1187 \"@src/lib/llvm.l\" llvm pico)\nllvm~setAdr (48 \"@src/db.l\" llvm pico)\nllvm~setDestruct (941 \"@src/flow.l\" llvm pico)\nllvm~sharedLib (761 \"@src/main.l\" llvm pico)\nllvm~shift (1146 \"@src/lib/llvm.l\" llvm pico)\nllvm~shl (1079 \"@src/lib/llvm.l\" llvm pico)\nllvm~shlu (240 \"@src/big.l\" llvm pico)\nllvm~short (287 \"@src/lib/llvm.l\" llvm pico)\nllvm~shr (1079 \"@src/lib/llvm.l\" llvm pico)\nllvm~shru (263 \"@src/big.l\" llvm pico)\nllvm~sig (181 \"@src/main.l\" llvm pico)\nllvm~sigChk (472 \"@src/dec.l\" llvm pico)\nllvm~sigTerm (188 \"@src/main.l\" llvm pico)\nllvm~sighandler (195 \"@src/main.l\" llvm pico)\nllvm~sign (396 \"@src/dec.l\" llvm pico)\nllvm~sign? (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~signals (1880 \"@src/main.l\" llvm pico)\nllvm~size (1028 \"@src/subr.l\" llvm pico)\nllvm~sizeErr (17 \"@src/io.l\" llvm pico)\nllvm~skip (1350 \"@src/io.l\" llvm pico)\nllvm~skipc (1316 \"@src/io.l\" llvm pico)\nllvm~slow (122 \"@src/io.l\" llvm pico)\nllvm~slowNb (134 \"@src/io.l\" llvm pico)\nllvm~space (2352 \"@src/io.l\" llvm pico)\nllvm~ssa (146 \"@src/lib/llvm.l\" llvm pico)\nllvm~stack (1246 \"@src/lib/llvm.l\" llvm pico)\nllvm~stdEval (2814 \"@src/io.l\" llvm pico)\nllvm~stdRead (2782 \"@src/io.l\" llvm pico)\nllvm~stdinByte (252 \"@src/io.l\" llvm pico)\nllvm~stkChk (468 \"@src/dec.l\" llvm pico)\nllvm~stkErr (347 \"@src/main.l\" llvm pico)\nllvm~stkOverErr (1156 \"@src/flow.l\" llvm pico)\nllvm~stop (65 \"@src/main.l\" llvm pico)\nllvm~store (239 \"@src/lib/llvm.l\" llvm pico)\nllvm~str (329 \"@src/lib/llvm.l\" llvm pico)\nllvm~struct (650 \"@src/lib/llvm.l\" llvm pico)\nllvm~sub (993 \"@src/lib/llvm.l\" llvm pico)\nllvm~sub1 (480 \"@src/big.l\" llvm pico)\nllvm~subStr (824 \"@src/sym.l\" llvm pico)\nllvm~subr (1301 \"@src/lib/llvm.l\" llvm pico)\nllvm~subs (830 \"@src/big.l\" llvm pico)\nllvm~subu (508 \"@src/big.l\" llvm pico)\nllvm~sym (399 \"@src/dec.l\" llvm pico)\nllvm~sym? (879 \"@src/lib/llvm.l\" llvm pico)\nllvm~symByte (21 \"@src/big.l\" llvm pico)\nllvm~symChar (36 \"@src/big.l\" llvm pico)\nllvm~symErr (365 \"@src/main.l\" llvm pico)\nllvm~symNspErr (398 \"@src/main.l\" llvm pico)\nllvm~symTab (454 \"@src/lib/llvm.l\" llvm pico)\nllvm~symToNum (902 \"@src/big.l\" llvm pico)\nllvm~symb? (893 \"@src/lib/llvm.l\" llvm pico)\nllvm~t? (908 \"@src/lib/llvm.l\" llvm pico)\nllvm~tabComplete (704 \"@src/apply.l\" llvm pico)\nllvm~table (396 \"@src/lib/llvm.l\" llvm pico)\nllvm~tagErr (1153 \"@src/flow.l\" llvm pico)\nllvm~tail (861 \"@src/lib/llvm.l\" llvm pico)\nllvm~tailcall (554 \"@src/lib/llvm.l\" llvm pico)\nllvm~tellBeg (509 \"@src/io.l\" llvm pico)\nllvm~tellEnd (516 \"@src/io.l\" llvm pico)\nllvm~tenfold (221 \"@src/big.l\" llvm pico)\nllvm~testEsc (1377 \"@src/io.l\" llvm pico)\nllvm~tglString (2735 \"@src/io.l\" llvm pico)\nllvm~tmDate (617 \"@src/main.l\" llvm pico)\nllvm~tmTime (645 \"@src/main.l\" llvm pico)\nllvm~token (1632 \"@src/io.l\" llvm pico)\nllvm~trace (1586 \"@src/flow.l\" llvm pico)\nllvm~transaction (388 \"@src/db.l\" llvm pico)\nllvm~trim (600 \"@src/subr.l\" llvm pico)\nllvm~truncLog (449 \"@src/db.l\" llvm pico)\nllvm~tryLock (90 \"@src/db.l\" llvm pico)\nllvm~twice (177 \"@src/big.l\" llvm pico)\nllvm~twiceBig (164 \"@src/big.l\" llvm pico)\nllvm~type (213 \"@src/lib/llvm.l\" llvm pico)\nllvm~unLockDb (78 \"@src/db.l\" llvm pico)\nllvm~unLockJnl (113 \"@src/db.l\" llvm pico)\nllvm~undefined (942 \"@src/main.l\" llvm pico)\nllvm~uniChr (1364 \"@src/io.l\" llvm pico)\nllvm~uniFill (1419 \"@src/subr.l\" llvm pico)\nllvm~uniRun (1429 \"@src/subr.l\" llvm pico)\nllvm~unify (1336 \"@src/subr.l\" llvm pico)\nllvm~unintern (481 \"@src/sym.l\" llvm pico)\nllvm~unless (1400 \"@src/lib/llvm.l\" llvm pico)\nllvm~unsync (542 \"@src/io.l\" llvm pico)\nllvm~until (1497 \"@src/lib/llvm.l\" llvm pico)\nllvm~unwind (74 \"@src/main.l\" llvm pico)\nllvm~val (1156 \"@src/lib/llvm.l\" llvm pico)\nllvm~var (323 \"@src/lib/llvm.l\" llvm pico)\nllvm~varErr (383 \"@src/main.l\" llvm pico)\nllvm~void (60 \"@src/lib/llvm.l\" llvm pico)\nllvm~volatile (1180 \"@src/lib/llvm.l\" llvm pico)\nllvm~waitFd (789 \"@src/io.l\" llvm pico)\nllvm~waitFile (553 \"@src/io.l\" llvm pico)\nllvm~when (1400 \"@src/lib/llvm.l\" llvm pico)\nllvm~while (1497 \"@src/lib/llvm.l\" llvm pico)\nllvm~wipe (1796 \"@src/sym.l\" llvm pico)\nllvm~wrBlock (156 \"@src/db.l\" llvm pico)\nllvm~wrBytes (185 \"@src/io.l\" llvm pico)\nllvm~wrChild (211 \"@src/io.l\" llvm pico)\nllvm~wrLockDb (74 \"@src/db.l\" llvm pico)\nllvm~wrLockWait (49 \"@src/io.l\" llvm pico)\nllvm~wrOpen (1124 \"@src/io.l\" llvm pico)\nllvm~writeErr (32 \"@src/io.l\" llvm pico)\nllvm~wrnl (46 \"@src/main.l\" llvm pico)\nllvm~xCnt (404 \"@src/main.l\" llvm pico)\nllvm~xCnt64 (411 \"@src/main.l\" llvm pico)\nllvm~xName (435 \"@src/main.l\" llvm pico)\nllvm~xSym (422 \"@src/main.l\" llvm pico)\nllvm~xchg (1196 \"@src/lib/llvm.l\" llvm pico)\nllvm~xoru (374 \"@src/big.l\" llvm pico)\nllvm~x| (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~zapZero (143 \"@src/big.l\" llvm pico)\nllvm~| (1034 \"@src/lib/llvm.l\" llvm pico)\nllvm~TgOS (5 \"@src/lib.c\" llvm pico)\nllvm~TgCPU (6 \"@src/lib.c\" llvm pico)\nllvm~PipeBufSize (9 \"@src/lib.c\" llvm pico)\nllvm~stderrMsg (11 \"@src/lib.c\" llvm pico)\nllvm~gPrintf (16 \"@src/lib.c\" llvm pico)\nllvm~strErrno (21 \"@src/lib.c\" llvm pico)\nllvm~openRd (25 \"@src/lib.c\" llvm pico)\nllvm~openWr (29 \"@src/lib.c\" llvm pico)\nllvm~openRdWr (33 \"@src/lib.c\" llvm pico)\nllvm~openRdWrExcl (37 \"@src/lib.c\" llvm pico)\nllvm~openRdWrCreate (41 \"@src/lib.c\" llvm pico)\nllvm~openRdWrAppend (45 \"@src/lib.c\" llvm pico)\nllvm~openWrAppend (49 \"@src/lib.c\" llvm pico)\nllvm~fseekOfs (53 \"@src/lib.c\" llvm pico)\nllvm~fseek0 (57 \"@src/lib.c\" llvm pico)\nllvm~seek0 (61 \"@src/lib.c\" llvm pico)\nllvm~truncate0 (65 \"@src/lib.c\" llvm pico)\nllvm~socketPair (69 \"@src/lib.c\" llvm pico)\nllvm~fcntlCloExec (73 \"@src/lib.c\" llvm pico)\nllvm~fcntlSetFl (77 \"@src/lib.c\" llvm pico)\nllvm~nonBlocking (81 \"@src/lib.c\" llvm pico)\nllvm~fcntlSetOwn (88 \"@src/lib.c\" llvm pico)\nllvm~getDir (93 \"@src/lib.c\" llvm pico)\nllvm~initReadline (116 \"@src/lib.c\" llvm pico)\nllvm~gReadline (128 \"@src/lib.c\" llvm pico)\nllvm~rlHide (136 \"@src/lib.c\" llvm pico)\nllvm~rlShow (143 \"@src/lib.c\" llvm pico)\nllvm~rlSigBeg (148 \"@src/lib.c\" llvm pico)\nllvm~rlSigEnd (156 \"@src/lib.c\" llvm pico)\nllvm~currentLine (163 \"@src/lib.c\" llvm pico)\nllvm~Sig (170 \"@src/lib.c\" llvm pico)\nllvm~SigDfl (175 \"@src/lib.c\" llvm pico)\nllvm~SigIgn (176 \"@src/lib.c\" llvm pico)\nllvm~gSignal (179 \"@src/lib.c\" llvm pico)\nllvm~iSignal (200 \"@src/lib.c\" llvm pico)\nllvm~sigUnblock (209 \"@src/lib.c\" llvm pico)\nllvm~sigChld (221 \"@src/lib.c\" llvm pico)\nllvm~waitWuntraced (232 \"@src/lib.c\" llvm pico)\nllvm~wifStopped (236 \"@src/lib.c\" llvm pico)\nllvm~nErrno (240 \"@src/lib.c\" llvm pico)\nllvm~gErrno (245 \"@src/lib.c\" llvm pico)\nllvm~OrgTermio (260 \"@src/lib.c\" llvm pico)\nllvm~Termio (261 \"@src/lib.c\" llvm pico)\nllvm~stopTerm (267 \"@src/lib.c\" llvm pico)\nllvm~setRaw (280 \"@src/lib.c\" llvm pico)\nllvm~setCooked (292 \"@src/lib.c\" llvm pico)\nllvm~reopenTty (299 \"@src/lib.c\" llvm pico)\nllvm~getUsec (310 \"@src/lib.c\" llvm pico)\nllvm~getMsec (321 \"@src/lib.c\" llvm pico)\nllvm~getDate (329 \"@src/lib.c\" llvm pico)\nllvm~getGmDate (336 \"@src/lib.c\" llvm pico)\nllvm~getTime (343 \"@src/lib.c\" llvm pico)\nllvm~getGmTime (352 \"@src/lib.c\" llvm pico)\nllvm~ulimStk (356 \"@src/lib.c\" llvm pico)\nllvm~fileInfo (367 \"@src/lib.c\" llvm pico)\nllvm~pollIn (386 \"@src/lib.c\" llvm pico)\nllvm~pollOut (391 \"@src/lib.c\" llvm pico)\nllvm~pollIgn (396 \"@src/lib.c\" llvm pico)\nllvm~gPoll (400 \"@src/lib.c\" llvm pico)\nllvm~readyIn (436 \"@src/lib.c\" llvm pico)\nllvm~readyOut (443 \"@src/lib.c\" llvm pico)\nllvm~rdLock (451 \"@src/lib.c\" llvm pico)\nllvm~wrLock (461 \"@src/lib.c\" llvm pico)\nllvm~unLock (471 \"@src/lib.c\" llvm pico)\nllvm~getLock (481 \"@src/lib.c\" llvm pico)\nllvm~JmpBufSize (494 \"@src/lib.c\" llvm pico)\nllvm~QuitRst (495 \"@src/lib.c\" llvm pico)\nllvm~SoRst (496 \"@src/lib.c\" llvm pico)\nllvm~Fdigit (527 \"@src/lib.c\" llvm pico)\nllvm~boxFloat (534 \"@src/lib.c\" llvm pico)\nllvm~boxFlt (552 \"@src/lib.c\" llvm pico)\nllvm~boxDouble (560 \"@src/lib.c\" llvm pico)\nllvm~boxDbl (578 \"@src/lib.c\" llvm pico)\nllvm~bufFloat (586 \"@src/lib.c\" llvm pico)\nllvm~bufDouble (602 \"@src/lib.c\" llvm pico)\nllvm~dlOpen (630 \"@src/lib.c\" llvm pico)\nllvm~ffiPrep (634 \"@src/lib.c\" llvm pico)\nllvm~ffiCall (679 \"@src/lib.c\" llvm pico)\nllvm~arg (740 \"@src/lib.c\" llvm pico)\nllvm~chance (745 \"@src/lib.c\" llvm pico)\nllvm~isLowc (1279 \"@src/lib.c\" llvm pico)\nllvm~isUppc (1285 \"@src/lib.c\" llvm pico)\nllvm~isLetterOrDigit (1291 \"@src/lib.c\" llvm pico)\nllvm~toUpperCase (1297 \"@src/lib.c\" llvm pico)\nllvm~toLowerCase (1303 \"@src/lib.c\" llvm pico)\npico~! (1540 \"@src/flow.l\" llvm pico)\npico~!! (1547 \"@src/flow.l\" llvm pico)\npico~$ (1600 \"@src/flow.l\" llvm pico)\npico~% (1272 \"@src/big.l\" llvm pico)\npico~%@ (1503 \"@src/main.l\" llvm pico)\npico~& (1407 \"@src/big.l\" llvm pico)\npico~* (1201 \"@src/big.l\" llvm pico)\npico~*/ (1222 \"@src/big.l\" llvm pico)\npico~+ (1124 \"@src/big.l\" llvm pico)\npico~++ (1016 \"@src/sym.l\" llvm pico)\npico~- (1137 \"@src/big.l\" llvm pico)\npico~-> (1624 \"@src/subr.l\" llvm pico)\npico~/ (1250 \"@src/big.l\" llvm pico)\npico~: (1726 \"@src/sym.l\" llvm pico)\npico~:: (1733 \"@src/sym.l\" llvm pico)\npico~; (1694 \"@src/sym.l\" llvm pico)\npico~< (768 \"@src/subr.l\" llvm pico)\npico~<= (777 \"@src/subr.l\" llvm pico)\npico~<> (741 \"@src/subr.l\" llvm pico)\npico~= (734 \"@src/subr.l\" llvm pico)\npico~=0 (748 \"@src/subr.l\" llvm pico)\npico~=1 (752 \"@src/subr.l\" llvm pico)\npico~=: (1705 \"@src/sym.l\" llvm pico)\npico~== (720 \"@src/subr.l\" llvm pico)\npico~==== (709 \"@src/sym.l\" llvm pico)\npico~=T (756 \"@src/subr.l\" llvm pico)\npico~> (786 \"@src/subr.l\" llvm pico)\npico~>= (795 \"@src/subr.l\" llvm pico)\npico~>> (1294 \"@src/big.l\" llvm pico)\npico~abs (1376 \"@src/big.l\" llvm pico)\npico~adr (1699 \"@src/main.l\" llvm pico)\npico~alarm (538 \"@src/main.l\" llvm pico)\npico~all (609 \"@src/sym.l\" llvm pico)\npico~and (496 \"@src/flow.l\" llvm pico)\npico~any (2747 \"@src/io.l\" llvm pico)\npico~append (375 \"@src/subr.l\" llvm pico)\npico~apply (6 \"@src/apply.l\" llvm pico)\npico~arg (1679 \"@src/main.l\" llvm pico)\npico~args (1669 \"@src/main.l\" llvm pico)\npico~argv (1221 \"@src/main.l\" llvm pico)\npico~as (62 \"@src/flow.l\" llvm pico)\npico~asoq (1186 \"@src/subr.l\" llvm pico)\npico~assoc (1160 \"@src/subr.l\" llvm pico)\npico~at (708 \"@src/flow.l\" llvm pico)\npico~atom (844 \"@src/subr.l\" llvm pico)\npico~bind (884 \"@src/flow.l\" llvm pico)\npico~bit? (1383 \"@src/big.l\" llvm pico)\npico~blk (676 \"@src/db.l\" llvm pico)\npico~bool (540 \"@src/flow.l\" llvm pico)\npico~box (316 \"@src/flow.l\" llvm pico)\npico~box? (713 \"@src/sym.l\" llvm pico)\npico~buf (1047 \"@src/flow.l\" llvm pico)\npico~by (658 \"@src/apply.l\" llvm pico)\npico~bye (1756 \"@src/flow.l\" llvm pico)\npico~byte (1706 \"@src/main.l\" llvm pico)\npico~bytes (1156 \"@src/subr.l\" llvm pico)\npico~caaaar (60 \"@src/subr.l\" llvm pico)\npico~caaadr (63 \"@src/subr.l\" llvm pico)\npico~caaar (36 \"@src/subr.l\" llvm pico)\npico~caadar (66 \"@src/subr.l\" llvm pico)\npico~caaddr (69 \"@src/subr.l\" llvm pico)\npico~caadr (39 \"@src/subr.l\" llvm pico)\npico~caar (24 \"@src/subr.l\" llvm pico)\npico~cadaar (72 \"@src/subr.l\" llvm pico)\npico~cadadr (75 \"@src/subr.l\" llvm pico)\npico~cadar (42 \"@src/subr.l\" llvm pico)\npico~caddar (78 \"@src/subr.l\" llvm pico)\npico~cadddr (81 \"@src/subr.l\" llvm pico)\npico~caddr (45 \"@src/subr.l\" llvm pico)\npico~cadr (27 \"@src/subr.l\" llvm pico)\npico~call (1659 \"@src/flow.l\" llvm pico)\npico~car (17 \"@src/subr.l\" llvm pico)\npico~case (654 \"@src/flow.l\" llvm pico)\npico~casq (666 \"@src/flow.l\" llvm pico)\npico~catch (1093 \"@src/flow.l\" llvm pico)\npico~cd (1085 \"@src/main.l\" llvm pico)\npico~cdaaar (84 \"@src/subr.l\" llvm pico)\npico~cdaadr (87 \"@src/subr.l\" llvm pico)\npico~cdaar (48 \"@src/subr.l\" llvm pico)\npico~cdadar (90 \"@src/subr.l\" llvm pico)\npico~cdaddr (93 \"@src/subr.l\" llvm pico)\npico~cdadr (51 \"@src/subr.l\" llvm pico)\npico~cdar (30 \"@src/subr.l\" llvm pico)\npico~cddaar (96 \"@src/subr.l\" llvm pico)\npico~cddadr (99 \"@src/subr.l\" llvm pico)\npico~cddar (54 \"@src/subr.l\" llvm pico)\npico~cdddar (102 \"@src/subr.l\" llvm pico)\npico~cddddr (105 \"@src/subr.l\" llvm pico)\npico~cdddr (57 \"@src/subr.l\" llvm pico)\npico~cddr (33 \"@src/subr.l\" llvm pico)\npico~cdr (21 \"@src/subr.l\" llvm pico)\npico~chain (291 \"@src/subr.l\" llvm pico)\npico~char (1758 \"@src/io.l\" llvm pico)\npico~chop (743 \"@src/sym.l\" llvm pico)\npico~circ (155 \"@src/subr.l\" llvm pico)\npico~circ? (852 \"@src/subr.l\" llvm pico)\npico~clip (614 \"@src/subr.l\" llvm pico)\npico~close (2215 \"@src/io.l\" llvm pico)\npico~cmd (1154 \"@src/main.l\" llvm pico)\npico~cnt (481 \"@src/apply.l\" llvm pico)\npico~co (1219 \"@src/flow.l\" llvm pico)\npico~commit (886 \"@src/db.l\" llvm pico)\npico~con (121 \"@src/subr.l\" llvm pico)\npico~conc (140 \"@src/subr.l\" llvm pico)\npico~cond (634 \"@src/flow.l\" llvm pico)\npico~cons (128 \"@src/subr.l\" llvm pico)\npico~copy (334 \"@src/subr.l\" llvm pico)\npico~ctl (1987 \"@src/io.l\" llvm pico)\npico~ctty (1099 \"@src/main.l\" llvm pico)\npico~cut (1031 \"@src/sym.l\" llvm pico)\npico~date (660 \"@src/main.l\" llvm pico)\npico~dbck (1198 \"@src/db.l\" llvm pico)\npico~de (154 \"@src/flow.l\" llvm pico)\npico~dec (1177 \"@src/big.l\" llvm pico)\npico~def (123 \"@src/flow.l\" llvm pico)\npico~default (959 \"@src/sym.l\" llvm pico)\npico~del (1050 \"@src/sym.l\" llvm pico)\npico~delete (395 \"@src/subr.l\" llvm pico)\npico~delq (416 \"@src/subr.l\" llvm pico)\npico~detach (1738 \"@src/flow.l\" llvm pico)\npico~diff (938 \"@src/subr.l\" llvm pico)\npico~dir (1161 \"@src/main.l\" llvm pico)\npico~dm (162 \"@src/flow.l\" llvm pico)\npico~do (763 \"@src/flow.l\" llvm pico)\npico~e (1557 \"@src/flow.l\" llvm pico)\npico~echo (2228 \"@src/io.l\" llvm pico)\npico~enum (1157 \"@src/sym.l\" llvm pico)\npico~enum? (1257 \"@src/sym.l\" llvm pico)\npico~env (1720 \"@src/main.l\" llvm pico)\npico~eof (1790 \"@src/io.l\" llvm pico)\npico~eol (1783 \"@src/io.l\" llvm pico)\npico~err (1979 \"@src/io.l\" llvm pico)\npico~errno (1268 \"@src/main.l\" llvm pico)\npico~eval (81 \"@src/flow.l\" llvm pico)\npico~exec (1640 \"@src/flow.l\" llvm pico)\npico~ext (2587 \"@src/io.l\" llvm pico)\npico~ext? (246 \"@src/db.l\" llvm pico)\npico~extern (348 \"@src/db.l\" llvm pico)\npico~extra (485 \"@src/flow.l\" llvm pico)\npico~extract (325 \"@src/apply.l\" llvm pico)\npico~fd (2035 \"@src/io.l\" llvm pico)\npico~fifo (1093 \"@src/sym.l\" llvm pico)\npico~file (1207 \"@src/main.l\" llvm pico)\npico~fill (1319 \"@src/subr.l\" llvm pico)\npico~filter (287 \"@src/apply.l\" llvm pico)\npico~fin (704 \"@src/subr.l\" llvm pico)\npico~finally (1128 \"@src/flow.l\" llvm pico)\npico~find (386 \"@src/apply.l\" llvm pico)\npico~fish (636 \"@src/apply.l\" llvm pico)\npico~flg? (872 \"@src/subr.l\" llvm pico)\npico~flip (571 \"@src/subr.l\" llvm pico)\npico~flush (2571 \"@src/io.l\" llvm pico)\npico~fold (1903 \"@src/sym.l\" llvm pico)\npico~for (784 \"@src/flow.l\" llvm pico)\npico~fork (1732 \"@src/flow.l\" llvm pico)\npico~format (1088 \"@src/big.l\" llvm pico)\npico~free (1170 \"@src/db.l\" llvm pico)\npico~from (1801 \"@src/io.l\" llvm pico)\npico~full (252 \"@src/subr.l\" llvm pico)\npico~fully (450 \"@src/apply.l\" llvm pico)\npico~fun (45 \"@src/apply.l\" llvm pico)\npico~fun? (548 \"@src/sym.l\" llvm pico)\npico~gc (274 \"@src/gc.l\" llvm pico)\npico~ge0 (1357 \"@src/big.l\" llvm pico)\npico~get (1665 \"@src/sym.l\" llvm pico)\npico~getd (554 \"@src/sym.l\" llvm pico)\npico~getl (1777 \"@src/sym.l\" llvm pico)\npico~glue (772 \"@src/sym.l\" llvm pico)\npico~group (1657 \"@src/subr.l\" llvm pico)\npico~gt0 (1366 \"@src/big.l\" llvm pico)\npico~hash (1551 \"@src/big.l\" llvm pico)\npico~head (621 \"@src/subr.l\" llvm pico)\npico~heap (572 \"@src/main.l\" llvm pico)\npico~hear (995 \"@src/io.l\" llvm pico)\npico~history (1812 \"@src/main.l\" llvm pico)\npico~id (655 \"@src/db.l\" llvm pico)\npico~idx (1392 \"@src/sym.l\" llvm pico)\npico~if (580 \"@src/flow.l\" llvm pico)\npico~if2 (596 \"@src/flow.l\" llvm pico)\npico~if@@ (610 \"@src/flow.l\" llvm pico)\npico~ifn (588 \"@src/flow.l\" llvm pico)\npico~in (1963 \"@src/io.l\" llvm pico)\npico~inc (1154 \"@src/big.l\" llvm pico)\npico~index (956 \"@src/subr.l\" llvm pico)\npico~info (1180 \"@src/main.l\" llvm pico)\npico~input (2019 \"@src/io.l\" llvm pico)\npico~insert (462 \"@src/subr.l\" llvm pico)\npico~intern (688 \"@src/sym.l\" llvm pico)\npico~ipid (1706 \"@src/flow.l\" llvm pico)\npico~isa (389 \"@src/flow.l\" llvm pico)\npico~job (918 \"@src/flow.l\" llvm pico)\npico~journal (606 \"@src/db.l\" llvm pico)\npico~key (1709 \"@src/io.l\" llvm pico)\npico~kids (552 \"@src/main.l\" llvm pico)\npico~kill (1720 \"@src/flow.l\" llvm pico)\npico~last (711 \"@src/subr.l\" llvm pico)\npico~le0 (1348 \"@src/big.l\" llvm pico)\npico~length (996 \"@src/subr.l\" llvm pico)\npico~let (956 \"@src/flow.l\" llvm pico)\npico~let? (1015 \"@src/flow.l\" llvm pico)\npico~lieu (756 \"@src/db.l\" llvm pico)\npico~line (1892 \"@src/io.l\" llvm pico)\npico~link (305 \"@src/subr.l\" llvm pico)\npico~lisp (1652 \"@src/main.l\" llvm pico)\npico~list (187 \"@src/subr.l\" llvm pico)\npico~lit (69 \"@src/flow.l\" llvm pico)\npico~load (2888 \"@src/io.l\" llvm pico)\npico~lock (773 \"@src/db.l\" llvm pico)\npico~loop (778 \"@src/flow.l\" llvm pico)\npico~low? (1856 \"@src/sym.l\" llvm pico)\npico~lowc (1870 \"@src/sym.l\" llvm pico)\npico~lst? (856 \"@src/subr.l\" llvm pico)\npico~lt0 (1342 \"@src/big.l\" llvm pico)\npico~lup (1407 \"@src/sym.l\" llvm pico)\npico~made (275 \"@src/subr.l\" llvm pico)\npico~make (260 \"@src/subr.l\" llvm pico)\npico~map (94 \"@src/apply.l\" llvm pico)\npico~mapc (117 \"@src/apply.l\" llvm pico)\npico~mapcan (246 \"@src/apply.l\" llvm pico)\npico~mapcar (177 \"@src/apply.l\" llvm pico)\npico~mapcon (214 \"@src/apply.l\" llvm pico)\npico~maplist (149 \"@src/apply.l\" llvm pico)\npico~maps (49 \"@src/apply.l\" llvm pico)\npico~mark (1122 \"@src/db.l\" llvm pico)\npico~match (1258 \"@src/subr.l\" llvm pico)\npico~max (805 \"@src/subr.l\" llvm pico)\npico~maxi (548 \"@src/apply.l\" llvm pico)\npico~member (878 \"@src/subr.l\" llvm pico)\npico~memq (891 \"@src/subr.l\" llvm pico)\npico~meta (1841 \"@src/sym.l\" llvm pico)\npico~meth (306 \"@src/flow.l\" llvm pico)\npico~method (407 \"@src/flow.l\" llvm pico)\npico~min (825 \"@src/subr.l\" llvm pico)\npico~mini (585 \"@src/apply.l\" llvm pico)\npico~mix (349 \"@src/subr.l\" llvm pico)\npico~mmeq (904 \"@src/subr.l\" llvm pico)\npico~n0 (760 \"@src/subr.l\" llvm pico)\npico~n== (727 \"@src/subr.l\" llvm pico)\npico~nT (764 \"@src/subr.l\" llvm pico)\npico~name (510 \"@src/sym.l\" llvm pico)\npico~nand (514 \"@src/flow.l\" llvm pico)\npico~native (1516 \"@src/main.l\" llvm pico)\npico~need (199 \"@src/subr.l\" llvm pico)\npico~new (320 \"@src/flow.l\" llvm pico)\npico~next (1673 \"@src/main.l\" llvm pico)\npico~nil (551 \"@src/flow.l\" llvm pico)\npico~nond (644 \"@src/flow.l\" llvm pico)\npico~nor (523 \"@src/flow.l\" llvm pico)\npico~not (544 \"@src/flow.l\" llvm pico)\npico~nsp (520 \"@src/sym.l\" llvm pico)\npico~nth (109 \"@src/subr.l\" llvm pico)\npico~num? (862 \"@src/subr.l\" llvm pico)\npico~off (928 \"@src/sym.l\" llvm pico)\npico~offset (970 \"@src/subr.l\" llvm pico)\npico~on (921 \"@src/sym.l\" llvm pico)\npico~onOff (935 \"@src/sym.l\" llvm pico)\npico~one (952 \"@src/sym.l\" llvm pico)\npico~open (2199 \"@src/io.l\" llvm pico)\npico~opid (1713 \"@src/flow.l\" llvm pico)\npico~opt (1255 \"@src/main.l\" llvm pico)\npico~or (505 \"@src/flow.l\" llvm pico)\npico~out (1971 \"@src/io.l\" llvm pico)\npico~output (2027 \"@src/io.l\" llvm pico)\npico~pack (761 \"@src/sym.l\" llvm pico)\npico~pair (848 \"@src/subr.l\" llvm pico)\npico~pass (25 \"@src/apply.l\" llvm pico)\npico~pat? (541 \"@src/sym.l\" llvm pico)\npico~path (738 \"@src/io.l\" llvm pico)\npico~peek (1750 \"@src/io.l\" llvm pico)\npico~pick (419 \"@src/apply.l\" llvm pico)\npico~pipe (2155 \"@src/io.l\" llvm pico)\npico~place (496 \"@src/subr.l\" llvm pico)\npico~plio (2609 \"@src/io.l\" llvm pico)\npico~poll (1039 \"@src/io.l\" llvm pico)\npico~pool (455 \"@src/db.l\" llvm pico)\npico~pool2 (565 \"@src/db.l\" llvm pico)\npico~pop (1006 \"@src/sym.l\" llvm pico)\npico~pr (2670 \"@src/io.l\" llvm pico)\npico~pre? (842 \"@src/sym.l\" llvm pico)\npico~prin (2531 \"@src/io.l\" llvm pico)\npico~prinl (2539 \"@src/io.l\" llvm pico)\npico~print (2554 \"@src/io.l\" llvm pico)\npico~println (2567 \"@src/io.l\" llvm pico)\npico~printsp (2563 \"@src/io.l\" llvm pico)\npico~prior (983 \"@src/subr.l\" llvm pico)\npico~prog (561 \"@src/flow.l\" llvm pico)\npico~prog1 (565 \"@src/flow.l\" llvm pico)\npico~prog2 (572 \"@src/flow.l\" llvm pico)\npico~prompt (521 \"@src/main.l\" llvm pico)\npico~prop (1676 \"@src/sym.l\" llvm pico)\npico~protect (564 \"@src/main.l\" llvm pico)\npico~prove (1487 \"@src/subr.l\" llvm pico)\npico~push (968 \"@src/sym.l\" llvm pico)\npico~push1 (980 \"@src/sym.l\" llvm pico)\npico~push1q (993 \"@src/sym.l\" llvm pico)\npico~put (1640 \"@src/sym.l\" llvm pico)\npico~putl (1747 \"@src/sym.l\" llvm pico)\npico~pwd (1078 \"@src/main.l\" llvm pico)\npico~queue (1075 \"@src/sym.l\" llvm pico)\npico~quit (1049 \"@src/main.l\" llvm pico)\npico~quote (58 \"@src/flow.l\" llvm pico)\npico~rand (1559 \"@src/big.l\" llvm pico)\npico~range (231 \"@src/subr.l\" llvm pico)\npico~rank (1212 \"@src/subr.l\" llvm pico)\npico~rasoq (1199 \"@src/subr.l\" llvm pico)\npico~rassoc (1173 \"@src/subr.l\" llvm pico)\npico~raw (529 \"@src/main.l\" llvm pico)\npico~rd (2631 \"@src/io.l\" llvm pico)\npico~read (1694 \"@src/io.l\" llvm pico)\npico~remove (477 \"@src/subr.l\" llvm pico)\npico~replace (437 \"@src/subr.l\" llvm pico)\npico~rest (1688 \"@src/main.l\" llvm pico)\npico~rev (1328 \"@src/big.l\" llvm pico)\npico~reverse (561 \"@src/subr.l\" llvm pico)\npico~rewind (2575 \"@src/io.l\" llvm pico)\npico~rid (1124 \"@src/sym.l\" llvm pico)\npico~rollback (299 \"@src/db.l\" llvm pico)\npico~rot (166 \"@src/subr.l\" llvm pico)\npico~rt (749 \"@src/main.l\" llvm pico)\npico~run (99 \"@src/flow.l\" llvm pico)\npico~sect (920 \"@src/subr.l\" llvm pico)\npico~seed (1545 \"@src/big.l\" llvm pico)\npico~seek (363 \"@src/apply.l\" llvm pico)\npico~send (417 \"@src/flow.l\" llvm pico)\npico~seq (725 \"@src/db.l\" llvm pico)\npico~set (877 \"@src/sym.l\" llvm pico)\npico~setq (889 \"@src/sym.l\" llvm pico)\npico~shift (1024 \"@src/sym.l\" llvm pico)\npico~sigio (545 \"@src/main.l\" llvm pico)\npico~size (1099 \"@src/subr.l\" llvm pico)\npico~skip (1777 \"@src/io.l\" llvm pico)\npico~sort (1705 \"@src/subr.l\" llvm pico)\npico~sp? (535 \"@src/sym.l\" llvm pico)\npico~space (2543 \"@src/io.l\" llvm pico)\npico~split (524 \"@src/subr.l\" llvm pico)\npico~sq (1446 \"@src/big.l\" llvm pico)\npico~sqrt (1467 \"@src/big.l\" llvm pico)\npico~stack (585 \"@src/main.l\" llvm pico)\npico~state (675 \"@src/flow.l\" llvm pico)\npico~stem (684 \"@src/subr.l\" llvm pico)\npico~str (2761 \"@src/io.l\" llvm pico)\npico~str? (724 \"@src/sym.l\" llvm pico)\npico~strip (516 \"@src/subr.l\" llvm pico)\npico~struct (1543 \"@src/main.l\" llvm pico)\npico~sub? (856 \"@src/sym.l\" llvm pico)\npico~sum (514 \"@src/apply.l\" llvm pico)\npico~super (447 \"@src/flow.l\" llvm pico)\npico~swap (896 \"@src/sym.l\" llvm pico)\npico~sym (2753 \"@src/io.l\" llvm pico)\npico~sym? (866 \"@src/subr.l\" llvm pico)\npico~symbols (643 \"@src/sym.l\" llvm pico)\npico~sync (973 \"@src/io.l\" llvm pico)\npico~sys (1062 \"@src/main.l\" llvm pico)\npico~t (556 \"@src/flow.l\" llvm pico)\npico~tail (654 \"@src/subr.l\" llvm pico)\npico~tc (1083 \"@src/flow.l\" llvm pico)\npico~tco (1060 \"@src/flow.l\" llvm pico)\npico~tell (1014 \"@src/io.l\" llvm pico)\npico~text (785 \"@src/sym.l\" llvm pico)\npico~this (869 \"@src/flow.l\" llvm pico)\npico~throw (1112 \"@src/flow.l\" llvm pico)\npico~till (1846 \"@src/io.l\" llvm pico)\npico~time (712 \"@src/main.l\" llvm pico)\npico~touch (869 \"@src/db.l\" llvm pico)\npico~trail (1755 \"@src/main.l\" llvm pico)\npico~trim (610 \"@src/subr.l\" llvm pico)\npico~try (430 \"@src/flow.l\" llvm pico)\npico~tty (509 \"@src/main.l\" llvm pico)\npico~type (354 \"@src/flow.l\" llvm pico)\npico~unify (1634 \"@src/subr.l\" llvm pico)\npico~unless (626 \"@src/flow.l\" llvm pico)\npico~until (700 \"@src/flow.l\" llvm pico)\npico~up (1777 \"@src/main.l\" llvm pico)\npico~upp? (1863 \"@src/sym.l\" llvm pico)\npico~uppc (1885 \"@src/sym.l\" llvm pico)\npico~use (1027 \"@src/flow.l\" llvm pico)\npico~usec (742 \"@src/main.l\" llvm pico)\npico~val (870 \"@src/sym.l\" llvm pico)\npico~version (2036 \"@src/main.l\" llvm pico)\npico~wait (955 \"@src/io.l\" llvm pico)\npico~when (618 \"@src/flow.l\" llvm pico)\npico~while (692 \"@src/flow.l\" llvm pico)\npico~wipe (1813 \"@src/sym.l\" llvm pico)\npico~with (873 \"@src/flow.l\" llvm pico)\npico~wr (2679 \"@src/io.l\" llvm pico)\npico~xchg (907 \"@src/sym.l\" llvm pico)\npico~xor (533 \"@src/flow.l\" llvm pico)\npico~x| (1433 \"@src/big.l\" llvm pico)\npico~yield (1346 \"@src/flow.l\" llvm pico)\npico~yoke (318 \"@src/subr.l\" llvm pico)\npico~zap (735 \"@src/sym.l\" llvm pico)\npico~zero (945 \"@src/sym.l\" llvm pico)\npico~| (1420 \"@src/big.l\" llvm pico)\n"
  },
  {
    "path": "lib/math.l",
    "content": "# 14sep20 Software Lab. Alexander Burger\n\n(and (=0 *Scl) (scl 6))                # Default scale 6\n\n(setq                                  # Global constants\n   pi    3.1415926535897932\n   pi/2  1.5707963267948966\n   \"Dbl1\" (0 . 1.0)\n   \"Dbl2\" (0 . 1.0) )\n\n(de pow (X Y)\n   (set \"Dbl1\" X  \"Dbl2\" Y)\n   (%@ \"pow\" 1.0 \"Dbl1\" \"Dbl2\") )\n\n(de exp (X)\n   (set \"Dbl1\" X)\n   (%@ \"exp\" 1.0 \"Dbl1\") )\n\n(de log (X)\n   (when (gt0 (set \"Dbl1\" X))\n      (%@ \"log\" 1.0 \"Dbl1\") ) )\n\n(de sin (A)\n   (set \"Dbl1\" A)\n   (%@ \"sin\" 1.0 \"Dbl1\") )\n\n(de cos (A)\n   (set \"Dbl1\" A)\n   (%@ \"cos\" 1.0 \"Dbl1\") )\n\n(de tan (A)\n   (set \"Dbl1\" A)\n   (%@ \"tan\" 1.0 \"Dbl1\") )\n\n(de asin (A)\n   (set \"Dbl1\" A)\n   (%@ \"asin\" 1.0 \"Dbl1\") )\n\n(de acos (A)\n   (set \"Dbl1\" A)\n   (%@ \"acos\" 1.0 \"Dbl1\") )\n\n(de atan (A)\n   (set \"Dbl1\" A)\n   (%@ \"atan\" 1.0 \"Dbl1\") )\n\n(de atan2 (X Y)\n   (set \"Dbl1\" X  \"Dbl2\" Y)\n   (%@ \"atan2\" 1.0 \"Dbl1\" \"Dbl2\") )\n"
  },
  {
    "path": "lib/misc.l",
    "content": "# 01jan26 Software Lab. Alexander Burger\n\n# *Allow\n\n(de *Day . (Mon Tue Wed Thu Fri Sat Sun .))\n(de *Mon . (Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec .))\n\n### Locale ###\n(de *Ctry)\n(de *Lang)\n(de *Sep0 . \".\")\n(de *Sep3 . \",\")\n(de *CtryCode)\n(de *NatTrunkPrf)\n(de *DateFmt @Y \"-\" @M \"-\" @D)\n(de *DayFmt \"Monday\" \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" \"Saturday\" \"Sunday\")\n(de *MonFmt \"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \"July\" \"August\" \"September\" \"October\" \"November\" \"December\")\n\n(de locale (Ctry Lang . @)  # \"DE\" \"de\" [\"app/loc/\" ..]\n   (load (if (setq *Ctry Ctry) (pack \"@loc/\" @ \".l\") \"@loc/NIL.l\"))\n   (ifn (setq *Lang Lang)\n      (for S (idx '*Uni)\n         (set S S) )\n      (====)\n      (let L\n         (sort\n            (make\n               (\"loc\" (pack \"@loc/\" Lang))\n               (while (args)\n                  (\"loc\" (pack (next) Lang)) ) ) )\n         (balance '*Uni L T)\n         (for S L\n            (set (car (idx '*Uni S)) (val S)) ) )\n      (====) ) )\n\n(de \"loc\" (F)\n   (when (info F)\n      (in F\n         (use X\n            (while (setq X (read))\n               (if (=T X)\n                  (\"loc\" (read))\n                  (set (link @) (name (read))) ) ) ) ) ) )\n\n### String ###\n(de wrap (Max X)\n   (let R\n      (make\n         (for (Lst (split (chop X) \" \" \"\\n\")  Lst)\n            (let L (++ Lst)\n               (while\n                  (and Lst\n                     (> Max\n                        (+ (length (car Lst)) (sum length L)) ) )\n                  (setq L (conc L (list \" \") (++ Lst))) )\n               (link L) ) ) )\n      (if (atom X)\n         (mapcar pack R)\n         (glue \"\\n\" R) ) ) )\n\n### Number ###\n(de money (N Cur)\n   (if Cur\n      (pack (format N 2 *Sep0 *Sep3) \" \" Cur)\n      (format N 2 *Sep0 *Sep3) ) )\n\n(de round (N D)\n   (if (> *Scl (default D 3))\n      (format (*/ N (** 10 (- *Scl D))) D *Sep0 *Sep3)\n      (format N *Scl *Sep0 *Sep3) ) )\n\n# Binary notation\n(de bin (X I)\n   (cond\n      ((num? X)\n         (let (S (and (lt0 X) '-)  L (& 1 X)  A (cons 0 I))\n            (until (=0 (setq X (>> 1 X)))\n               (at A (push 'L \" \"))\n               (push 'L (& 1 X)) )\n            (pack S L) ) )\n      ((setq X\n            (filter\n               '((C) (not (sp? C)))\n               (chop X) ) )\n         (let (S (and (= '- (car X)) (++ X))  N 0  C)\n            (loop\n               (NIL (setq C (format (++ X))))\n               (NIL (or (=0 C) (=1 C)))\n               (setq N (| C (>> -1 N)))\n               (NIL X (if S (- N) N)) ) ) ) ) )\n\n# Octal notation\n(de oct (X I)\n   (cond\n      ((num? X)\n         (let (S (and (lt0 X) '-)  L (& 7 X)  A (cons 0 I))\n            (until (=0 (setq X (>> 3 X)))\n               (at A (push 'L \" \"))\n               (push 'L (& 7 X)) )\n            (pack S L) ) )\n      ((setq X\n            (filter\n               '((C) (not (sp? C)))\n               (chop X) ) )\n         (let (S (and (= '- (car X)) (++ X))  N 0  C)\n            (loop\n               (NIL (setq C (format (++ X))))\n               (NIL (>= 7 C 0))\n               (setq N (| C (>> -3 N)))\n               (NIL X (if S (- N) N)) ) ) ) ) )\n\n# Hexadecimal notation\n(de hex (X I)\n   (cond\n      ((num? X)\n         (let (S (and (lt0 X) '-)  L (hex1 X)  A (cons 0 I))\n            (until (=0 (setq X (>> 4 X)))\n               (at A (push 'L \" \"))\n               (push 'L (hex1 X)) )\n            (pack S L) ) )\n      ((setq X\n            (filter\n               '((C) (not (sp? C)))\n               (chop X) ) )\n         (let (S (and (= '- (car X)) (++ X))  N 0  C)\n            (loop\n               (NIL\n                  (cdr\n                     (rank\n                        (setq C (char (++ X)))\n                        '((48 . 48) (58) (65 . 55) (71) (97 . 87) (103)) ) ) )\n               (setq N (| (- C @) (>> -4 N)))\n               (NIL X (if S (- N) N)) ) ) ) ) )\n\n(de hex1 (N)\n   (let C (& 15 N)\n      (and (> C 9) (inc 'C 7))\n      (char (+ C `(char \"0\"))) ) )\n\n# Hexadecimal/Alpha notation\n(de hax (X)\n   (if (num? X)\n      (pack\n         (mapcar\n            '((C)\n               (when (> (setq C (- (char C) `(char \"0\"))) 9)\n                  (dec 'C 7) )\n               (char (+ `(char \"@\") C)) )\n            (chop (hex X)) ) )\n      (hex\n         (mapcar\n            '((C)\n               (when (> (setq C (- (char C) `(char \"@\"))) 9)\n                  (inc 'C 7) )\n               (char (+ `(char \"0\") C)) )\n            (chop X) ) ) ) )\n\n### Tree ###\n(de balance (\"Var\" \"Lst\" \"Flg\")\n   (unless \"Flg\" (set \"Var\"))\n   (let \"Len\" (length \"Lst\")\n      (recur (\"Lst\" \"Len\")\n         (unless (=0 \"Len\")\n            (let (\"N\" (>> 1 (inc \"Len\"))  \"L\" (nth \"Lst\" \"N\"))\n               (idx \"Var\" (car \"L\") T)\n               (recurse \"Lst\" (dec \"N\"))\n               (recurse (cdr \"L\") (- \"Len\" \"N\")) ) ) ) ) )\n\n(de depth (Idx)  #> (max . average)\n   (let (C 0  D 0  N 0)\n      (cons\n         (recur (Idx N)\n            (ifn Idx\n               0\n               (inc 'C)\n               (inc 'D (inc 'N))\n               (inc\n                  (max\n                     (recurse (cadr Idx) N)\n                     (recurse (cddr Idx) N) ) ) ) )\n         (or (=0 (setq @@ C)) (*/ D C)) ) ) )\n\n### Allow ###\n(de allowed Lst\n   (setq *Allow (cons NIL (car Lst)))\n   (balance *Allow (sort (cdr Lst))) )\n\n(de allow (X Flg)\n   (nond\n      (*Allow)\n      (Flg (idx *Allow X T))\n      ((member X (cdr *Allow)) (queue '*Allow X)) )\n   X )\n\n### Telephone ###\n(de telStr (S)\n   (cond\n      ((not S))\n      ((and *CtryCode (pre? (pack *CtryCode \" \") S))\n         (pack *NatTrunkPrf (cdr (member \" \" (chop S)))) )\n      (T (pack \"+\" S)) ) )\n\n(de expTel (S)\n   (setq S\n      (make\n         (for (L (chop S) L)\n            (ifn (sub? (car L) \" -\")\n               (link (++ L))\n               (let F NIL\n                  (loop\n                     (and (= '- (++ L)) (on F))\n                     (NIL L)\n                     (NIL (sub? (car L) \" -\")\n                        (link (if F '- \" \")) ) ) ) ) ) ) )\n   (cond\n      ((= \"+\" (car S)) (pack (cdr S)))\n      ((head '(\"0\" \"0\") S) (pack (cddr S)))\n      (*CtryCode\n         (let L *NatTrunkPrf\n            (loop\n               (NIL L (pack *CtryCode \" \" S))\n               (NIL (= (++ L) (++ S))) ) ) ) ) )\n\n### Date ###\n# ISO date\n(de $dat (S C)\n   (if C\n      (and\n         (= 3\n            (length (setq S (split (chop S) C))) )\n         (date\n            (format (car S))               # Year\n            (or (format (cadr S)) 0)       # Month\n            (or (format (caddr S)) 0) ) )  # Day\n      (and\n         (format S)\n         (date\n            (/ @ 10000)       # Year\n            (% (/ @ 100) 100) # Month\n            (% @ 100) ) ) ) )\n\n# Localized\n(de datStr (D F)\n   (when (setq D (date D))\n      (let\n         (@Y (if F (pad 2 (% (car D) 100)) (pad 4 (car D)))\n            @M (pad 2 (cadr D))\n            @D (pad 2 (caddr D)) )\n         (pack (fill *DateFmt)) ) ) )\n\n(de strDat (S)\n   (use (@Y @M @D)\n      (and\n         (match *DateFmt (chop S))\n         (date\n            (format @Y)\n            (or (format @M) 0)\n            (or (format @D) 0) ) ) ) )\n\n(de expDat (S)\n   (cond\n      ((= \".\" S) (date))\n      ((or (pre? \"+\" S) (pre? \"-\" S)) (+ (date) (format S)))\n      (T\n         (use (@Y @M @D X)\n            (unless (match *DateFmt (setq S (chop S)))\n               (if\n                  (or\n                     (cdr (setq S (split S \".\")))\n                     (>= 2 (length (car S))) )\n                  (setq\n                     @D (car S)\n                     @M (cadr S)\n                     @Y (caddr S) )\n                  (setq\n                     @D (head 2 (car S))\n                     @M (head 2 (nth (car S) 3))\n                     @Y (nth (car S) 5) ) ) )\n            (and\n               (setq @D (format @D))\n               (date\n                  (nond\n                     (@Y (car (date (date))))\n                     ((setq X (format @Y)))\n                     ((>= X 100)\n                        (+ X\n                           (* 100 (/ (car (date (date))) 100)) ) )\n                     (NIL X) )\n                  (nond\n                     (@M (cadr (date (date))))\n                     ((setq X (format @M)) 0)\n                     ((n0 X) (cadr (date (date))))\n                     (NIL X) )\n                  @D ) ) ) ) ) )\n\n# Day of the week\n(de day (Dat Lst)\n   (when Dat\n      (get\n         (or Lst *DayFmt)\n         (inc (% (inc Dat) 7)) ) ) )\n\n# Week of the year\n(de week (Dat)\n   (let W\n      (-\n         (_week Dat)\n         (_week (date (car (date Dat)) 1 4))\n         -1 )\n      (if (=0 W) 53 W) ) )\n\n(de _week (Dat)\n   (/ (- Dat (% (inc Dat) 7)) 7) )\n\n# Last day of month\n(de ultimo (Y M)\n   (dec\n      (if (= 12 M)\n         (date (inc Y) 1 1)\n         (date Y (inc M) 1) ) ) )\n\n### Time ###\n(de $tim (S)\n   (setq S (split (chop S) \":\"))\n   (unless (or (cdr S) (>= 2 (length (car S))))\n      (setq S\n         (list\n            (head 2 (car S))\n            (head 2 (nth (car S) 3))\n            (nth (car S) 5) ) ) )\n   (when (format (car S))\n      (time @\n         (or (format (cadr S)) 0)\n         (or (format (caddr S)) 0) ) ) )\n\n(de stamp (Dat Tim)\n   (and (=T Dat) (setq Dat (date T)))\n   (default Dat (date)  Tim (time T))\n   (pack (dat$ Dat \"-\") \" \" (tim$ Tim T)) )\n\n### I/O ###\n(de chdir (\"Dir\" . \"Prg\")\n   (let? \"Old\" (cd \"Dir\")\n      (finally (cd \"Old\")\n         (run \"Prg\") ) ) )\n\n(de dirname (F)\n   (glue \"/\"\n      (prog1\n         (trim (split (chop F) \"/\"))\n         (and @ (set (tail 1 @))) ) ) )\n\n(de basename (F)\n   (pack (last (trim (split (chop F) \"/\")))) )\n\n(de ssl (\"Host\" \"Path\" . \"Prg\")\n   (in (list \"@bin/ssl\" \"Host\" 443 \"Path\")\n      (and\n         (tail '`(chop \"200 OK\") (line))\n         (from \"\\r\\n\\r\\n\")\n         (run \"Prg\") ) ) )\n\n(de download (Host Src Dst)\n   (let (F (tmp 'download)  Size)\n      (in (list \"@bin/ssl\" Host 443 Src)\n         (and\n            (tail '`(chop \"200 OK\") (line))\n            (from \"Content-Length:\")\n            (setq Size (format (till \"\\r\\n\")))\n            (from \"\\r\\n\\r\\n\")\n            (out F (echo))\n            (= Size (car (info F)))\n            (=0 (%@ \"rename\" 'I F Dst)) ) ) ) )\n\n# Echo here-documents\n(de here (S)\n   (skip)\n   (echo S) )\n\n# Print or eval\n(de prEval (\"Prg\" \"Ofs\")\n   (default \"Ofs\" 1)\n   (for \"X\" \"Prg\"\n      (if (atom \"X\")\n         (prinl (eval \"X\" \"Ofs\"))\n         (eval \"X\" \"Ofs\") ) ) )\n\n# Replace single LF with CR/LF\n(de nlCrnl \"Prg\"\n   (output\n      (cond\n         ((= \"\\n\" @@)\n            (prin \"\\r\\n\") )\n         ((nand (= \"\\n\" @@@) (= \"\\r\" @@))\n            (prin @@) ) )\n      (run \"Prg\") ) )\n\n# Multiline Base64\n(de prBase64 (N C)\n   (while\n      (do N\n         (NIL (ext:Base64 (rd 1) (rd 1) (rd 1)))\n         T )\n      (prinl C) ) )\n\n# Send mail\n(de mail (Host Port From To Sub Att . Prg)\n   (let? S\n      (if (pair Port)\n         (pipe (exec \"@bin/ssl\" Host (fin Port)))\n         (connect Host Port) )\n      (let B (pack \"==\" (date) \"-\" (time T) \"-\" (usec) \"==\")\n         (prog1\n            (and\n               (pre? \"220 \" (in S (line T)))\n               (out S (prinl \"HELO \" (cdr (member \"@\" (chop (fin From)))) \"\\r\"))\n               (pre? \"250 \" (in S (line T)))\n               (or\n                  (atom Port)\n                  (and\n                     (out S\n                        (prin \"AUTH PLAIN \")\n                        (pipe\n                           (prog\n                              (prin (car Port))\n                              (wr 0)\n                              (prin (car Port))\n                              (wr 0)\n                              (prin (cadr Port)) )\n                           (prBase64 T \"\\r\") )\n                        (prinl \"\\r\") )\n                     (pre? \"235 \" (in S (line T))) ) )\n               (out S (prinl \"MAIL FROM:<\" (fin From) \">\\r\"))\n               (pre? \"250 \" (in S (line T)))\n               (if (atom To)\n                  (_rcpt To)\n                  (find bool (mapcar _rcpt To)) )\n               (out S (prinl \"DATA\\r\"))\n               (pre? \"354 \" (in S (line T)))\n               (out S\n                  (prinl \"From: \" (fin From) \"\\r\")\n                  (prinl \"To: \" (or (fin To) (glue \",\" To)) \"\\r\")\n                  (prin \"Subject: \")\n                  (ifn (find > (chop Sub) '(\"~\" .))\n                     (prinl Sub \"\\r\")\n                     (prin \"=?utf-8?B?\")\n                     (pipe (prin Sub) (prBase64 T \"\\r\"))\n                     (prinl \"?=\\r\") )\n                  (when (pair From)\n                     (prinl \"Reply-To: \" (car From) \"\\r\") )\n                  (prinl \"User-Agent: PicoLisp\\r\")\n                  (prinl \"MIME-Version: 1.0\\r\")\n                  (when Att\n                     (prinl \"Content-Type: multipart/mixed; boundary=\\\"\" B \"\\\"\\r\")\n                     (prinl \"\\r\")\n                     (prinl \"--\" B \"\\r\")\n                     (unless (cadr Att)\n                        (prinl \"Content-Type: multipart/alternative; boundary=\\\"==\" B \"==\\\"\\r\")\n                        (prinl \"\\r\")\n                        (prinl \"--==\" B \"==\\r\") ) )\n                  (prinl \"Content-Type: text/plain; charset=utf-8\\r\")\n                  (prinl \"Content-Transfer-Encoding: 8bit\\r\")\n                  (prinl \"\\r\")\n                  (nlCrnl (prEval Prg 2))\n                  (prinl \"\\r\")\n                  (when Att\n                     (loop\n                        (if (cadr Att)\n                           (prinl \"--\" B \"\\r\")\n                           (prinl \"--==\" B \"==\\r\") )\n                        (prin \"Content-Type: \" (or (caddr Att) \"application/octet-stream\"))\n                        (and (cadr Att) (prin \"; name=\\\"\" @ \"\\\"\"))\n                        (prinl \"\\r\")\n                        (prinl\n                           \"Content-Transfer-Encoding: \"\n                           (if (cadr Att) \"base64\" \"8bit\")\n                           \"\\r\" )\n                        (prinl \"\\r\")\n                        (in (car Att)\n                           (ifn (cadr Att)\n                              (nlCrnl (echo))\n                              (prBase64 18 \"\\r\")\n                              (prinl \"\\r\") ) )\n                        (prinl \"\\r\")\n                        (unless (cadr Att)\n                           (prinl \"--==\" B \"==--\\r\")\n                           (prinl \"\\r\") )\n                        (NIL (setq Att (cdddr Att))) )\n                     (prinl \"--\" B \"--\\r\") )\n                  (prinl \".\\r\") )\n               (pre? \"250 \" (in S (line T)))\n               (out S (prinl \"QUIT\\r\"))\n               (pre? \"221 \" (in S (line T)))\n               T )\n            (close S) ) ) ) )\n\n(de _rcpt (To)\n   (out S (prinl \"RCPT TO:<\" To \">\\r\"))\n   (pre? \"250 \" (in S (line T))) )\n\n### Debug ###\n`*Dbg\n\n# Hex Dump\n(de hd (File Cnt)\n   (in File\n      (let Pos 0\n         (while\n            (and\n               (nand Cnt (lt0 (dec 'Cnt)))\n               (make (do 16 (and (rd 1) (link @)))) )\n            (let L @\n               (prin (pad 8 (hex Pos)) \"  \")\n               (inc 'Pos 16)\n               (for N L\n                  (prin (pad 2 (hex N)) \" \") )\n               (space (inc (* 3 (- 16 (length L)))))\n               (for N L\n                  (prin (if (>= 126 N 32) (char N) \".\")) )\n               (prinl) ) ) ) ) )\n"
  },
  {
    "path": "lib/net.l",
    "content": "# 13jun24 Software Lab. Alexander Burger\n\n(sysdefs \"errno\")\n(sysdefs \"networking\")\n\n(private) (ipErr Var)\n\n(de ipErr (Msg)\n   (quit Msg (%@ \"strErrno\" 'S)) )\n\n# (port ['T] 'cnt|(cnt . cnt) ['var]) -> cnt\n(de port (A . @)\n   (let\n      (Type (ifn (=T A) SOCK_STREAM (setq A (next)) SOCK_DGRAM)\n         Sd (%@ \"socket\" 'I AF_INET6 Type 0) )\n      (when (lt0 Sd)\n         (ipErr \"IP socket\") )\n      (%@ \"closeOnExec\" NIL (cons T (up)) Sd)\n      ~(as (<> *OS \"OpenBSD\")\n         (when\n            (lt0\n               (%@ \"setsockopt\" 'I Sd IPPROTO_IPV6 IPV6_V6ONLY\n                  '(NIL (4 . I) (0 . 4))\n                  4 ) )\n            (ipErr \"IPV6_V6ONLY\") ) )\n      (buf Addr sockaddr_in6\n         (%@ \"memset\" NIL Addr 0 sockaddr_in6)\n         (struct (+ Addr sin6_family) NIL (`AF_INET6 . 2))\n         (struct (+ Addr sin6_addr) NIL (0 . 8) (0 . 8))  # \"::\" (16 null-bytes)\n         (let Port A\n            (cond\n               ((num? A)\n                  (or\n                     (=0 Port)\n                     (ge0\n                        (%@ \"setsockopt\" 'I Sd SOL_SOCKET SO_REUSEADDR\n                           '(NIL (4 . I) (1 . 4))\n                           4 ) )\n                     (ipErr \"SO_REUSEADDR\") ) )\n               ((pair A) (setq Port (car A)))\n               (T (quit \"Bad argument\" A)) )\n            (loop\n               (byte (+ Addr sin6_port) (>> 8 Port))  # Put big-endian (network byte order)\n               (byte (+ Addr sin6_port 1) Port)\n               (T (ge0 (%@ \"bind\" 'I Sd Addr sockaddr_in6)))\n               (when (or (atom A) (> (inc 'Port) (cdr A)))\n                  (close Sd)\n                  (ipErr \"IP bind\") ) )\n            (when\n               (and\n                  (== Type SOCK_STREAM)\n                  (lt0 (%@ \"listen\" 'I Sd 5)) )\n               (close Sd)\n               (ipErr \"IP listen\") )\n            (let? Var (next)\n               (when\n                  (lt0\n                     (%@ \"getsockname\" 'I Sd Addr\n                        '(NIL (4 . I) (`sockaddr_in6 . 4)) ) )\n                  (close Sd)\n                  (ipErr \"IP getsockname\") )\n               (set Var\n                  (+  # Get big-endian (network byte order)\n                     (>> -8 (byte (+ Addr sin6_port)))\n                     (byte (+ Addr sin6_port 1)) ) ) ) ) )\n      Sd ) )\n\n# (accept 'cnt) -> cnt | NIL\n(de accept (Sd)\n   (let (Flg (%@ \"nonBlocking\" 'I Sd)  N 200)\n      (buf Addr sockaddr_in6\n         (loop\n            (T\n               (ge0\n                  (%@ \"accept\" 'I Sd Addr\n                     '(NIL (4 . I) (`sockaddr_in6 . 4)) ) )\n               (let Sd2 @\n                  (%@ \"fcntlSetFl\" 'I Sd Flg)\n                  ~(as (member *OS '(\"OpenBSD\" \"FreeBSD\"))\n                     (%@ \"fcntlSetFl\" 'I Sd2 0) )\n                  (buf Str INET6_ADDRSTRLEN\n                     (setq *Adr\n                        (%@ \"inet_ntop\" 'S AF_INET6 (+ Addr sin6_addr) Str INET6_ADDRSTRLEN) ) )\n                  (setq *SPort\n                     (+  # Get big-endian (network byte order)\n                        (>> -8 (byte (+ Addr sin6_port)))\n                        (byte (+ Addr sin6_port 1)) ) )\n                  (%@ \"initInFile\" NIL Sd2 0)\n                  (%@ \"initOutFile\" NIL Sd2)\n                  Sd2 ) )\n            (NIL (and (== (errno) EAGAIN) (gt0 (dec 'N)))\n               (%@ \"fcntlSetFl\" NIL Sd Flg) )\n            (%@ \"usleep\" NIL 99999) ) ) ) )\n\n# (listen 'cnt1 ['cnt2]) -> cnt | NIL\n(de listen (Sd Ms)\n   (loop\n      (NIL (wait Ms T Sd))\n      (T (accept Sd) @) ) )\n\n# (host 'any) -> sym\n(de host (Node)\n   (use Lst\n      (when (=0 (%@ \"getaddrinfo\" 'I Node 0 0 '(Lst (8 . P))))\n         (buf Host NI_MAXHOST\n            (prog1\n               (let P Lst\n                  (loop\n                     (T\n                        (=0\n                           (%@ \"getnameinfo\" 'I\n                              (struct (+ P ai_addr) 'P)\n                              (struct (+ P ai_addrlen) 'I)\n                              Host\n                              NI_MAXHOST\n                              0 0\n                              NI_NAMEREQD ) )\n                        (struct Host 'S) )\n                     (T\n                        (=0 (setq P (struct (+ P ai_next) 'P))) ) ) )\n               (%@ \"freeaddrinfo\" 'I Lst) ) ) ) ) )\n\n(private) server\n\n(de server (Type Node Service)\n   (use Lst\n      (and\n         (=0\n            (%@ \"getaddrinfo\" 'I Node (pack Service)\n               (cons NIL (`addrinfo)  # hints:\n                  (0 . 4)  # ai_flags\n                  (`AF_UNSPEC . 4)  # ai_family\n                  (cons Type 4)  # ai_socktype\n                  0 )  # Clear rest\n               '(Lst (8 . P)) ) )\n         Lst ) ) )\n\n# (connect 'any1 'any2) -> cnt | NIL\n(de connect (Node Port)\n   (let? Lst (server SOCK_STREAM Node Port)\n      (prog1\n         (let (P Lst  Sd)\n            (loop\n               (T\n                  (and\n                     (ge0\n                        (setq Sd\n                           (%@ \"socket\" 'I\n                              (struct (+ P ai_family) 'I)\n                              (struct (+ P ai_socktype) 'I)\n                              0 ) ) )\n                     (or\n                        (=0\n                           (%@ \"connect\" 'I Sd\n                              (struct (+ P ai_addr) 'P)\n                              (struct (+ P ai_addrlen) 'I) ) )\n                        (nil (close Sd)) ) )\n                  (%@ \"closeOnExec\" NIL (cons T (up)) Sd)\n                  (%@ \"initInFile\" NIL Sd 0)\n                  (%@ \"initOutFile\" NIL Sd)\n                  Sd )\n               (T\n                  (=0 (setq P (struct (+ P ai_next) 'P))) ) ) )\n         (%@ \"freeaddrinfo\" 'I Lst) ) ) )\n\n(private) UDPMAX\n\n(de UDPMAX . 4096)\n\n# (udp 'cnt) -> any\n# (udp 'sym 'any2 'any3) -> any\n(de udp (X Port Val)\n   (buf Buf UDPMAX\n      (cond\n         (Port\n            (let? Lst (server SOCK_DGRAM X Port)\n               (let (P Lst  N (plio Buf UDPMAX Val))\n                  (loop\n                     (T (=0 P)\n                        (%@ \"freeaddrinfo\" 'I Lst)\n                        NIL )\n                     (T\n                        (ge0\n                           (%@ \"socket\" 'I\n                              (struct (+ P ai_family) 'I)\n                              (struct (+ P ai_socktype) 'I)\n                              0 ) )\n                        (%@ \"sendto\" 'I @ Buf N 0\n                           (struct (+ P ai_addr) 'P)\n                           (struct (+ P ai_addrlen) 'I) )\n                        (close @)\n                        (%@ \"freeaddrinfo\" 'I Lst)\n                        Val )\n                     (setq P (struct (+ P ai_next) 'P)) ) ) ) )\n         ((ge0 (%@ \"recv\" 'N X Buf UDPMAX 0))\n            (plio Buf) ) ) ) )\n"
  },
  {
    "path": "lib/pilog.l",
    "content": "# 05apr26 Software Lab. Alexander Burger\n\n(private) (CL Q R L Prg)\n\n(de be CL\n   (clause CL) )\n\n(de clause (CL)\n   (with (++ CL)\n      (if (== *Rule This)\n         (queue (:: T) CL)\n         (=: T (list CL))\n         (setq *Rule This) )\n      (def This T (: T)) ) )\n\n(de repeat ()\n   (conc (get *Rule T) (get *Rule T)) )\n\n(de asserta (CL)\n   (push (prop CL 1 T) (cdr CL)) )\n\n(de assertz (CL)\n   (queue (prop CL 1 T) (cdr CL)) )\n\n(de retract (X)\n   (if (sym? X)\n      (put X T)\n      (put (car X) T\n         (delete (cdr X) (get (car X) T)) ) ) )\n\n(de rules @\n   (while (args)\n      (let S (next)\n         (for ((N . L) (get S T) L)\n            (prin N \" (be \")\n            (print S)\n            (for X (++ L)\n               (space)\n               (print X) )\n            (prinl \")\")\n            (T (== L (get S T))\n               (println '(repeat)) ) )\n         S ) ) )\n\n### Pilog Interpreter ###\n(private) (Env Dbg *R)\n\n(de goal (CL . @)\n   (let Env '(T)\n      (while (args)\n         (push 'Env\n            (cons (cons 0 (next)) 1 (next)) ) )\n      (while (and CL (pat? (car CL)))\n         (push 'Env\n            (cons\n               (cons 0 (++ CL))\n               (cons 1 (eval (++ CL))) ) ) )\n      (cons\n         (cons\n            (conc (list 1 (0) NIL CL NIL) Env) ) ) ) )\n\n(de fail ()\n   (goal '((NIL))) )\n\n(de pilog (CL . Prg)\n   (for (Q (goal CL) (prove Q))\n      (bind @ (run Prg)) ) )\n\n(de solve (CL . Prg)\n   (make\n      (if Prg\n         (for (Q (goal CL) (prove Q))\n            (link (bind @ (run Prg))) )\n         (for (Q (goal CL) (prove Q))\n            (link @) ) ) ) )\n\n(de query (Q Dbg)\n   (use R\n      (loop\n         (NIL (prove Q Dbg))\n         (T (=T (setq R @)) T)\n         (for X R\n            (space)\n            (print (car X))\n            (print '=)\n            (print (cdr X)) )\n         (prinl)\n         (T (= \"\\e\" (key)) T) ) ) )\n\n(de ? CL\n   (let L\n      (make\n         (while (nor (pat? (car CL)) (lst? (car CL)))\n            (link (++ CL)) ) )\n      (query (goal CL) L) ) )\n\n### Basic Rules ###\n(private) (_or _for)\n\n(be repeat)\n(repeat)\n\n(be true)\n\n(be not @P (2 @P) T (fail))\n(be not @P)\n\n(be call @P (2 (cons @P)))\n\n(be or @L (^ @C (box @L)) (_or @C))\n\n(be _or (@C) (3 (pop @C)))\n(be _or (@C) (^ @ (not (val @C))) T (fail))\n(repeat)\n\n(be nil (@X) (^ @ (not @X)))\n\n\n(be equal (@X @X))\n\n(be different (@X @X) T (fail))\n(be different (@ @))\n\n(be append (NIL @X @X))\n(be append ((@A . @X) @Y (@A . @Z)) (append @X @Y @Z))\n\n(be member (@X (@X . @)))\n(be member (@X (@ . @Y)) (member @X @Y))\n\n(be delete (@A (@A . @Z) @Z))\n(be delete (@A (@X . @Y) (@X . @Z))\n   (delete @A @Y @Z) )\n\n(be permute ((@X) (@X)))\n(be permute (@L (@X . @Y))\n   (delete @X @L @D)\n   (permute @D @Y) )\n\n(be uniq (@B @X)\n   (^ @\n      (not (idx @B (cons (hash @X) @X) T)) ) )\n\n\n(be asserta (@C) (^ @ (asserta @C)))\n(be assertz (@C) (^ @ (assertz @C)))\n\n(be retract (@C)\n   (2 (cons @C))\n   (^ @ (retract (list (car @C) (cdr @C)))) )\n\n(be clause (@H @B)\n   (^ @A (get @H T))\n   (member @B @A) )\n\n(be show (@X) (^ @ (show @X)))\n\n(be for (@N @End) (for @N 1 @End 1))\n(be for (@N @Beg @End) (for @N @Beg @End 1))\n(be for (@N @Beg @End @Step) (equal @N @Beg))\n(be for (@N @Beg @End @Step)\n   (^ @I (box @Beg))\n   (_for @N @I @End @Step) )\n\n(be _for (@N @I @End @Step)\n   (^ @\n      (if (>= @End (val @I))\n         (> (inc @I @Step) @End)\n         (> @End (dec @I @Step)) ) )\n   T\n   (fail) )\n\n(be _for (@N @I @End @Step)\n   (^ @N (val @I)) )\n\n(repeat)\n\n\n(private) (_lst _map)\n\n(be val (@V . @L)\n   (^ @V (apply get @L))\n   T )\n\n(be lst (@V . @L)\n   (^ @Lst (box (apply get @L)))\n   (_lst @V @Lst) )\n\n(be _lst (@Val @Lst) (^ @ (not (val @Lst))) T (fail))\n(be _lst (@Val @Lst) (^ @Val (pop @Lst)))\n(repeat)\n\n(be map (@V . @L)\n   (^ @Lst (box (apply get @L)))\n   (_map @V @Lst) )\n\n(be _map (@Val @Lst) (^ @ (not (val @Lst))) T (fail))\n(be _map (@Val @Lst) (^ @Val (prog1 (val @Lst) (pop @Lst))))\n(repeat)\n"
  },
  {
    "path": "lib/plio.js",
    "content": "/* 22nov21 Software Lab. Alexander Burger */\n\nfunction plio(lst) {\n   var NIX = 0;\n   var BEG = 1;\n   var DOT = 2;\n   var END = 3;\n\n   var NUMBER    = 0;\n   var INTERN    = 1;\n   var TRANSIENT = 2;\n\n   var PlioPos = 1;\n   var PlioLst = lst;\n   var PlioCnt, PlioMore;\n\n   function byte() {\n      if (PlioCnt == 0) {\n         if (!PlioMore || (PlioCnt = PlioLst[PlioPos++]) == 0)\n            return -1;\n         PlioMore = PlioCnt == 255;\n      }\n      --PlioCnt;\n      return PlioLst[PlioPos++];\n   }\n\n   function expr(c) {\n      if ((c & ~3) !== 0) {  // Atom\n         PlioMore = (PlioCnt = c >> 2) === 63;\n         if ((c & 3) === NUMBER) {\n            c = byte();\n            var n = c >> 1;\n            var s = c & 1;\n            var m = 128;\n            while ((c = byte()) >= 0) {\n               n += c * m;\n               m *= 256;\n            }\n            return s == 0? n : -n;\n         }\n         var str = \"\";  // TRANSIENT\n         while ((c = byte()) >= 0) {\n            if ((c & 0x80) != 0) {\n               if ((c & 0x20) == 0)\n                  c &= 0x1F;\n               else\n                  c = (c & 0xF) << 6 | byte() & 0x3F;\n               c = c << 6 | byte() & 0x3F;\n            }\n            str += String.fromCharCode(c);\n         }\n         return str;\n      }\n      if (c !== BEG)  // NIX, DOT or END\n         return null;\n      var i = 0;\n      var lst = new Array();\n      lst[0] = expr(PlioLst[PlioPos++]);\n      while ((c = PlioLst[PlioPos++]) !== END  &&  c !== DOT)\n         lst[++i] = expr(c);\n      return lst;\n   }\n\n   return expr(PlioLst[0]);\n}\n"
  },
  {
    "path": "lib/replica.l",
    "content": "# 17oct20 Software Lab. Alexander Burger\n\n# <path>/bin/picolisp <path>/lib.l @lib/replica.l <port|num> <keyFile> <journal> <dbFile> <blob/app/> [dbs1 ..]\n# <path>/bin/ssl <host> 443 '<port|name>/!replica' <keyFile> <journal> <blob/app/> 20 [60]\n\n(argv *Arg1 *KeyFile *Journal *Pool *Blob . *Dbs)\n(unless (info *KeyFile)\n   (bye) )\n\n(pool *Pool (mapcar format *Dbs) *Journal)\n(when (lock)\n   (bye) )\n\n(load \"@lib/net.l\" \"@lib/misc.l\" \"@lib/http.l\")\n\n(allow \"!replica\")\n\n(setq\n   *Arg1 (format *Arg1)\n   *Port (or (format (sys \"PORT\")) *Arg1)\n   *SSLKey (in *KeyFile (line T))\n   *Replica (tmp 'replica) )\n\n(de replicate (N)\n   (and\n      (out *Replica (echo N))\n      (= N (car (info *Replica)))\n      (= \"T\" (prin (peek)))\n      (flush)\n      (char)\n      (eof) ) )\n\n(de replica ()\n   (when (= (line T) *SSLKey)\n      (let? X (line T)\n         (if (format X)\n            (when (replicate @)                    # Journal\n               (protect (journal *Replica)) )\n            (let Blob (pack *Blob X)               # Blob\n               (call 'mkdir \"-p\" (dirname Blob))\n               (and\n                  (format (line T))\n                  (replicate @)\n                  (protect (call \"mv\" *Replica Blob)) ) ) ) ) ) )\n\n(retire *Arg1)\n\n# Non-forking server\n(let P (port *Port)\n   (loop\n      (let S (listen P)\n         (http S)\n         (close S) ) ) )\n"
  },
  {
    "path": "lib/role.l",
    "content": "# 18jul19 Software Lab. Alexander Burger\n\n(must \"Role Administration\" RoleAdmin)\n\n(menu ,\"Role Administration\"\n   (idForm ,\"Role\" ,\"Roles\" 'nm '+Role T '(may Delete) '((: nm))\n      (gui '(+E/R +Cue +TextField) '(nm : home obj) ,\"Role\" 30 ,\"Name\")\n      (gui '(+E/R +Fmt +Chart) '(perm : home obj)\n         '((Val) (mapcar '((S) (list (memq S Val))) *Perms))\n         '((Lst) (filter '((S L) (and (car L) S)) *Perms Lst))\n         1 )\n      (<table> NIL NIL NIL\n         (for This *Perms\n            (<row> NIL\n               (ht:Prin (: 0 0))\n               (gui 1 '(+Checkbox)) ) ) )\n      (gui '(+/R +Chart) '(usr : home obj) 1 list)\n      (<table> 'chart ,\"User\" NIL\n         (do 8\n            (<row> (alternating)\n               (gui 1 '(+Obj +TextField) '(nm +User)) ) ) )\n      (scroll 8 T) ) )\n"
  },
  {
    "path": "lib/select.l",
    "content": "# 30may25 Software Lab. Alexander Burger\n\n# Deprecated Pilog DB Predicates\n# Use 'search' instead\n\n(de initQuery (Var Cls Hook Val)\n   (let (Tree (tree Var Cls Hook)  Rel (get Cls Var))\n      (when (find '((B) (isa '+index B)) (get Rel 'bag))\n         (setq Rel @) )\n      (when (or (isa '+Fold Rel) (isa '+IdxFold Rel))\n         (setq Val (fold Val)) )\n      (cond\n         ((pair Val)\n            (cond\n               ((and (pair (cdr Val)) (; Rel aux))\n                  (cond\n                     ((atom (car Val))\n                        (and (; Rel ub) (setq Val (ubZval Val)))\n                        (init Tree Val (append Val T)) )\n                     ((; Rel ub)\n                        (init Tree\n                           (ubZval (car Val))\n                           (ubZval (cdr Val) T) ) )\n                     ((>= (cdr Val) (car Val))\n                        (init Tree (car Val) (append (cdr Val) T)) )\n                     (T (init Tree (append (car Val) T) (cdr Val))) ) )\n               ((isa '+Key Rel)\n                  (init Tree (car Val) (cdr Val)) )\n               ((>= (cdr Val) (car Val))\n                  (init Tree\n                     (cons (car Val))\n                     (cons (cdr Val) T) ) )\n               (T\n                  (init Tree\n                     (cons (car Val) T)\n                     (cons (cdr Val)) ) ) ) )\n         ((or (num? Val) (ext? Val))\n            (if (isa '+Key Rel)\n               (init Tree Val Val)\n               (init Tree (cons Val) (cons Val T)) ) )\n         ((=T Val) (init Tree))\n         ((isa '+Key Rel)\n            (init Tree Val (pack Val `(char T))) )\n         ((isa '+Idx Rel)\n            (let Q (init Tree (cons Val) (cons (pack Val `(char T)) T))\n               (if (cdr Q)\n                  Q\n                  (setq Val (pack (car (split (chop Val) \" \"))))\n                  (init Tree (cons Val) (cons (pack Val `(char T)) T)) ) ) )\n         (T (init Tree (cons Val) (cons (pack Val `(char T)) T))) ) ) )\n\n\n(private) _db\n\n# (db var cls obj)\n(be db (@Var @Cls @Obj)\n   (^ @C (box))  # (obj ..)\n   (^ @Q\n      (box\n         (with (or (get @Cls @Var) (meta @Cls @Var))\n            (initQuery (: var) (: cls) NIL '(NIL . T)) ) ) )\n   (_db @Obj) )\n\n# (db var cls hook|val obj)\n(be db (@Var @Cls @X @Obj)\n   (^ @C (box))  # (obj ..)\n   (^ @Q\n      (box\n         (with (or (get @Cls @Var) (meta @Cls @Var))\n            (if (: hook)\n               (initQuery (: var) (: cls) @X '(NIL . T))\n               (initQuery (: var) (: cls) NIL @X) ) ) ) )\n   (_db @Obj) )\n\n# (db var cls hook val obj)\n(be db (@Var @Cls @Hook @Val @Obj)\n   (^ @C (box))  # (obj ..)\n   (^ @Q\n      (box\n         (with (or (get @Cls @Var) (meta @Cls @Var))\n            (initQuery (: var) (: cls) @Hook @Val) ) ) )\n   (_db @Obj) )\n\n(be _db (@Obj)\n   (^ @\n      (let (Q (val (-> @Q 2))  Cls (-> @Cls 2))\n         (loop\n            (NIL (step Q (= '(NIL) (caaar Q))) T)\n            (T\n               (and\n                  (isa Cls (setq *R @))\n                  (not (idx (-> @C 2) *R T)) ) ) ) ) )\n   T\n   (fail) )\n\n(be _db (@Obj) (^ @Obj *R))\n\n(repeat)\n\n(private) (_same _range _head _hold _fold _part _tolr)\n\n(be isa (@Typ . @L)\n   (^ @\n      (or\n         (not @Typ)\n         (isa @Typ (apply get @L)) ) ) )\n\n(be same (@V . @L)\n   (^ @\n      (or (not @V) (_same (car @L) (cdr @L))) ) )\n\n(de _same (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (= @V X)\n            (member @V X) ) )\n      ((atom X)\n         (_same (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_same (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_same (apply get (car L) X) (cdr L))) ) )\n\n(be bool (@F . @L)\n   (^ @\n      (or (not @F) (bool (apply get @L))) ) )\n\n(be ub (@A @R . @L)\n   (^ @\n      (or\n         (not @R)\n         (let X (apply get @L)\n            (fully\n               '((K V1 V2)\n                  (>= V2 (get X K) V1) )\n               @A\n               (car @R)\n               (cdr @R) ) ) ) ) )\n\n(be range (@R . @L)\n   (^ @\n      (or (not @R) (_range (car @L) (cdr @L))) ) )\n\n(de _range (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (or\n               (<= (car @R) X (cdr @R))\n               (>= (car @R) X (cdr @R)) )\n            (find\n               '((Y)\n                  (or\n                     (<= (car @R) Y (cdr @R))\n                     (>= (car @R) Y (cdr @R)) ) )\n               X ) ) )\n      ((atom X)\n         (_range (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_range (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_range (apply get (car L) X) (cdr L))) ) )\n\n(be head (@S . @L)\n   (^ @\n      (or (not @S) (_head (car @L) (cdr @L))) ) )\n\n(de _head (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (pre? @S X)\n            (find '((Y) (pre? @S Y)) X) ) )\n      ((atom X)\n         (_head (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_head (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_head (apply get (car L) X) (cdr L))) ) )\n\n(be hold (@S . @L)\n   (^ @\n      (or (not @S) (_hold (car @L) (cdr @L))) ) )\n\n(de _hold (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (sub? @S X)\n            (find '((Y) (sub? @S Y)) X) ) )\n      ((atom X)\n         (_hold (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_hold (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_hold (apply get (car L) X) (cdr L))) ) )\n\n(be fold (@S . @L)\n   (^ @\n      (or\n         (not (setq @S (fold @S)))\n         (_fold (car @L) (cdr @L)) ) ) )\n\n(de _fold (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (pre? @S (fold X))\n            (find '((Y) (pre? @S (fold Y))) X) ) )\n      ((atom X)\n         (_fold (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_fold (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_fold (apply get (car L) X) (cdr L))) ) )\n\n(be part (@S . @L)\n   (^ @\n      (or\n         (not (setq @S (fold @S)))\n         (_part (car @L) (cdr @L)) ) ) )\n\n(de _part (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (sub? @S (fold X))\n            (find '((Y) (sub? @S (fold Y))) X) ) )\n      ((atom X)\n         (_part (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_part (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_part (apply get (car L) X) (cdr L))) ) )\n\n(be tolr (@S . @L)\n   (^ @\n      (or\n         (not (setq @S (fold @S)))\n         (_tolr (car @L) (cdr @L)) ) ) )\n\n(de _tolr (X L)\n   (cond\n      ((not L)\n         (if (atom X)\n            (or (sub? @S (fold X)) (pre? (ext:Snx @S) (ext:Snx X)))\n            (let P (ext:Snx @S)\n               (find\n                  '((Y)\n                     (or (sub? @S (fold Y)) (pre? P (ext:Snx Y))) )\n                  X ) ) ) )\n      ((atom X)\n         (_tolr (get X (car L)) (cdr L)) )\n      ((atom (car L))\n         (pick\n            '((Y) (_tolr (get Y (car L)) (cdr L)))\n            X ) )\n      (T (_tolr (apply get (car L) X) (cdr L))) ) )\n\n\n(private) (_select _initSel _gen _sel)\n\n(de _select (Lst Flg)\n   (let? X\n      (nond\n         ((atom (car Lst))\n            (make\n               (for (L (++ Lst) L)\n                  (let\n                     (Var (++ L)\n                        Cls (++ L)\n                        Hook (and (get Cls Var 'hook) (++ L))\n                        Val (++ L) )\n                     (and (or Val Flg) (chain (_initSel))) ) ) ) )\n         ((pat? (car Lst))\n            (let\n               (Var (++ Lst)\n                  Cls (++ Lst)\n                  Hook (and (get Cls Var 'hook) (++ Lst))\n                  Val (++ Lst) )\n               (and (or Val Flg) (_initSel)) ) )\n         (NIL\n            (let (Var (++ Lst) Val (++ Lst))\n               (and\n                  (or Flg (apply or Val))\n                  (cons Var (goal (++ Lst))) ) ) ) )\n      (cons\n         (cons\n            (for (L NIL Lst)\n               (push 'L (++ Lst) NIL)\n               L )\n            X ) ) ) )\n\n(de _initSel ()\n   (with (treeRel Var Cls)\n      (let Tree (tree Var (: cls) Hook)\n         (conc\n            (and\n               (isa '+IdxFold This)\n               (<> Val (fold Val))\n               (init Tree (cons Val) (cons (pack Val `(char T)) T)) )\n            (initQuery Var (: cls) Hook Val)\n            (and\n               (isa '+Sn This)\n               (init Tree\n                  (cons (setq Val (ext:Snx Val)))\n                  (cons (pack Val `(char T)) T) ) ) ) ) ) )\n\n(de _gen (Lst Q)\n   (cond\n      (Lst\n         (use X\n            (loop\n               (T\n                  (cond\n                     ((atom (car Lst))\n                        (prog1 (car Lst) (set Lst)) )\n                     ((atom (caar Lst)) (pop Lst))\n                     (T\n                        (prog1\n                           (step (car Lst) (= '(NIL) (caar (caar Lst))))\n                           (or (cdaar Lst) (set Lst)) ) ) )\n                  @ )\n               (NIL (setq X (_gen (cddr Lst) Q)))\n               (set Lst\n                  (let Y (cadr Lst)\n                     (cond\n                        ((atom Y) (get X Y))\n                        ((=T (caddr Y))\n                           (initQuery (car Y) (cadr Y) X (cadddr Y)) )  # X = Hook\n                        (T\n                           (initQuery\n                              (car Y)\n                              (cadr Y)\n                              (caddr Y)\n                              (if (cadddr Y)\n                                 (cons\n                                    (cons X (car @))\n                                    (cons X (cdr @)) )\n                                 X ) ) ) ) ) ) ) ) )\n      ((pat? (car Q)) (get (prove (cdr Q)) @))\n      (T (step Q (= '(NIL) (caaar Q)))) ) )\n\n(private) (@Obj @X @Lst @P @C)\n\n(be select ((@Obj . @X) . @Lst)\n   (^ @ (unify @X))\n   (^ @P (box (cdr @Lst)))\n   (^ @C\n      (box  # ((obj ..) curr . lst)\n         (let L\n            (or\n               (mapcan _select (car @Lst))\n               (_select (caar @Lst) T) )\n            (cons NIL L L) ) ) )\n   (_gen @Obj)\n   (^ @ (unify 2))\n   (_sel) )\n\n(be _gen (@Obj)\n   (^ @\n      (let C (caadr (val (-> @C 2)))\n         (not (setq *R (_gen (car C) (cdr C)))) ) )\n   T\n   (fail) )\n\n(be _gen (@Obj) (^ @Obj *R))\n\n(repeat)\n\n(be _sel ()\n   (2 (val (-> @P 2)))\n   (^ @\n      (let C (val (-> @C 2))\n         (unless (idx C *R T)\n            (rot (cddr C) (offset (cadr C) (cddr C)))\n            (set (cdr C) (cddr C)) ) ) )\n   T )\n\n(be _sel ()\n   (^ @\n      (let C (cdr (val (-> @C 2)))\n         (set C (or (cdar C) (cdr C))) ) )\n   (fail) )\n\n### Remote queries ###\n(de rqry Args\n   (for (Q (goal (cdr Args)) (prove Q))\n      (pr (get @ (car Args)))\n      (NIL (flush)) )\n   (bye) )\n\n(be remote (@Lst . @CL)\n   (^ @Sockets\n      (box\n         (prog1\n            (cdr @Lst)\n            (for X @  # (out . in)\n               ((car X)\n                  (cons 'rqry (car @Lst) @CL) ) ) ) ) )\n   (^ @ (unify (car @Lst)))\n   (_remote @Lst) )\n\n(be _remote ((@Obj . @))\n   (^ @ (not (val (-> @Sockets 2))))\n   T\n   (fail) )\n\n(be _remote ((@Obj . @))\n   (^ @Obj\n      (let (Box (-> @Sockets 2)  Lst (val Box))\n         (rot Lst)\n         (loop\n            (T ((cdr (++ Lst))) @)\n            (NIL (set Box Lst)) ) ) ) )\n\n(repeat)\n\n(be revolve (@Lst . @CL)\n   (^ @Gen\n      (prog1 (box)\n         (for X (cddr @Lst)\n            (push @\n               (goal\n                  (cons (cadr @Lst) (lit X) @CL) ) ) )\n         (push @ (car @Lst)) ) )\n   (^ @ (unify (car @Lst)))\n   (_revolve @Lst) )\n\n(be _revolve ((@Val . @))\n   (^ @ (not (cdar (-> @Gen 2))))\n   T\n   (fail) )\n\n(be _revolve ((@Val . @))\n   (^ @Val\n      (let L (val (-> @Gen 2))\n         (rot (cdr L))\n         (loop\n            (T (prove (cadr L))\n               (get @ (car L)) )\n            (NIL (con L (cddr L))) ) ) ) )\n\n(repeat)\n\n### GUI ###\n(de queryHint (Var CL Str)\n   (make\n      (for (Q (goal CL) (prove Q))\n         (for V\n            (fish\n               '((S) (and (atom S) (sub? (fold Str) (fold S))))\n               (get @ '@@ Var) )\n            (unless (member V (made))\n               (link V) ) )\n         (T (nth (made) 24)) ) ) )\n"
  },
  {
    "path": "lib/simul.l",
    "content": "# 09dec25 Software Lab. Alexander Burger\n\n(symbols 'simul 'pico)\n\n(local) (subsets shuffle samples)\n(import pico~permute)\n\n(private) (Lst Fun L)\n\n(de permute (Lst Fun)\n   (let L Lst\n      (recur (L)\n         (if (cdr L)\n            (do (length L)\n               (recurse (cdr L))\n               (rot L) )\n            (Fun Lst) ) ) ) )\n\n(de subsets (N Lst)\n   (cond\n      ((=0 N) '(NIL))\n      ((not Lst))\n      (T\n         (conc\n            (mapcar\n               '((X) (cons (car Lst) X))\n               (subsets (dec N) (cdr Lst)) )\n            (subsets N (cdr Lst)) ) ) ) )\n\n(de shuffle (Lst)\n   (by '(NIL (rand)) sort Lst) )\n\n(de samples (Cnt Lst)\n   (make\n      (for (N (length Lst) (n0 Cnt) (++ Lst) (dec N))\n         (when (>= Cnt (rand 1 N))\n            (link (car Lst))\n            (dec 'Cnt) ) ) ) )\n\n# Flooding Algorithm\n(local) flood\n(private) (Lst Fun Init X)\n\n(de flood (Lst Fun Init)\n   (let G (mapcar '((X) (cons X (Fun X))) Lst)\n      (for L G\n         (for X (cdr L)\n            (let A (asoq X G)\n               (unless (memq (car L) (cdr A))\n                  (con A (cons (car L) (cdr A))) ) ) ) )\n      (make\n         (recur (Init)\n            (for X Init\n               (unless (memq X (made))\n                  (link X)\n                  (recurse (cdr (asoq X G))) ) ) ) ) ) )\n\n(def 'flood 'doc \"@doc/refF.html\")\n\n# Genetic Algorithm\n(local) gen\n(private) (Pop Cond Re Mu Se P)\n\n(de gen (Pop Cond Re Mu Se)\n   (until (Cond Pop)\n      (for (P Pop P (cdr P))\n         (set P\n            (maxi Se  # Selection\n               (make\n                  (for (P Pop P)\n                     (rot P (rand 1 (length P)))\n                     (link  # Recombination + Mutation\n                        (Mu (Re (++ P) (++ P))) ) ) ) ) ) ) )\n   (maxi Se Pop) )\n\n# Alpha-Beta tree search\n(local) game\n(private) (*Val Flg Cnt Moves Move Cost Alpha Beta Mov)\n\n(de game (Flg Cnt Moves Move Cost)\n   (let (Alpha '(1000000)  Beta -1000000)\n      (recur (Flg Cnt Alpha Beta)\n         (let? Lst (Moves Flg)\n            (if (=0 (dec 'Cnt))\n               (loop\n                  (Move (caar Lst))\n                  (setq *Val (list (Cost Flg) (car Lst)))\n                  (Move (cdar Lst))\n                  (T (>= Beta (car *Val))\n                     (cons Beta (car Lst) (cdr Alpha)) )\n                  (when (> (car Alpha) (car *Val))\n                     (setq Alpha *Val) )\n                  (NIL (shift 'Lst) Alpha) )\n               (setq Lst\n                  (sort\n                     (mapcar\n                        '((Mov)\n                           (prog2\n                              (Move (car Mov))\n                              (cons (Cost Flg) Mov)\n                              (Move (cdr Mov)) ) )\n                        Lst ) ) )\n               (loop\n                  (Move (cadar Lst))\n                  (setq *Val\n                     (if (recurse (not Flg) Cnt (cons (- Beta)) (- (car Alpha)))\n                        (cons (- (car @)) (cdar Lst) (cdr @))\n                        (list (caar Lst) (cdar Lst)) ) )\n                  (Move (cddar Lst))\n                  (T (>= Beta (car *Val))\n                     (cons Beta (cdar Lst) (cdr Alpha)) )\n                  (when (> (car Alpha) (car *Val))\n                     (setq Alpha *Val) )\n                  (NIL (shift 'Lst) Alpha) ) ) ) ) ) )\n\n### Discrete-Event Simulation ###\n(local) (*Rt *Keys *Time *Ready *Next des pause event wake)\n(private) (Prg X Time Dly n e s)\n\n(zero *Time)  # Current simulation time\n\n(de des Prg\n   (while (fifo '*Ready)\n      (yield (cdr @) (car @)) )\n   (when (idx '*Next NIL)\n      (let (X (car @)  (Time . This) X)\n         (when *Rt\n            (off *Keys)\n            (for\n               (Dly (*/ (- Time *Time) *Rt)\n                  (key (max 1 Dly) 'Dly) )\n               (fifo '*Keys @)\n               (run Prg) ) )\n         (setq *Time Time)\n         (loop\n            (idx '*Next X (=: n NIL))\n            (for S (: e)\n               (rid (prop S 's) This) )\n            (=: e NIL)\n            (yield 0 This)\n            (NIL (setq X (lup *Next Time)))\n            (this (cdr X)) ) ) ) )\n\n# Wait for time and/or events\n(de pause @\n   (with (co)\n      (ifn (args)\n         (fifo '*Ready (cons This))\n         (let Time T\n            (while\n               (let E (next)\n                  (if (num? E)\n                     (setq Time (min E Time))\n                     (fifo (prop (push (:: e) E) 's) This) )\n                  (args)) )\n            (when (num? Time)\n               (idx '*Next\n                  (=: n (cons (+ Time *Time) This))\n                  0 ) ) ) )\n      (eval (yield)) ) )\n\n# Send event\n(de event (This Exe)\n   (while (fifo (:: s))\n      (with @\n         (when (: n)\n            (idx '*Next @ (=: n NIL)) )\n         (for S (: e)\n            (rid (prop S 's) This) )\n         (=: e NIL)\n         (fifo '*Ready (cons This Exe)) ) ) )\n\n# Wake up\n(de wake (This Exe)\n   (when (: n)\n      (idx '*Next @ (=: n NIL)) )\n   (for S (: e)\n      (rid (prop S 's) This) )\n   (=: e NIL)\n   (if (asoq This *Ready)\n      (con @ Exe)\n      (fifo '*Ready (cons This Exe)) ) )\n\n### Grids ###\n(local) (grid west east south north)\n\n(de grid (DX DY FX FY)\n   (let Grid\n      (make\n         (for X DX\n            (link\n               (make\n                  (for Y DY\n                     (set\n                        (link\n                           (if (> DX 26)\n                              (box)\n                              (intern (pack (char (+ X 96)) Y) T) ) )\n                        (cons (cons) (cons)) ) ) ) ) ) )\n      (let West (and FX (last Grid))\n         (for (Lst Grid  Lst)\n            (let\n               (Col (++ Lst)\n                  East (or (car Lst) (and FX (car Grid)))\n                  South (and FY (last Col)) )\n               (for (L Col  L)\n                  (with (++ L)\n                     (set (: 0 1) (++ West))  # west\n                     (con (: 0 1) (++ East))  # east\n                     (set (: 0 -1) South)     # south\n                     (con (: 0 -1)            # north\n                        (or (car L) (and FY (car Col))) )\n                     (setq South This) ) )\n               (setq West Col) ) ) )\n      Grid ) )\n\n(de west (This)\n   (: 0 1 1) )\n\n(de east (This)\n   (: 0 1 -1) )\n\n(de south (This)\n   (: 0 -1 1) )\n\n(de north (This)\n   (: 0 -1 -1) )\n\n(local) (disp border)\n(private) (Grid How Fun X Y DX DY N Sp)\n\n(de disp (Grid How Fun X Y DX DY)\n   (setq Grid\n      (if X\n         (mapcar\n            '((L) (flip (head DY (nth L Y))))\n            (head DX (nth Grid X)) )\n         (mapcar reverse Grid) ) )\n   (let (N (+ (length (cdar Grid)) (or Y 1))  Sp (length N))\n      (border north)\n      (while (caar Grid)\n         (prin \" \" (align Sp N) \" \"\n            (and How (if (and (nT How) (west (caar Grid))) \" \" '|)) )\n         (for L Grid\n            (prin\n               (Fun (car L))\n               (and How (if (and (nT How) (east (car L))) \" \" '|)) ) )\n         (prinl)\n         (border south)\n         (map pop Grid)\n         (dec 'N) )\n      (unless (> (default X 1) 26)\n         (space (inc Sp))\n         (for @ Grid\n            (prin \" \" (and How \"  \") (char (+ 96 X)))\n            (T (> (inc 'X) 26)) )\n         (prinl) ) ) )\n\n(de border (Dir)\n   (when How\n      (space Sp)\n      (prin \"  +\")\n      (for L Grid\n         (prin (if (and (nT How) (Dir (car L))) \"   +\" \"---+\")) )\n      (prinl) ) )\n\n### Track network ###\n(local) (connectors crossing linkFromTo linkFrom linkTo tracks)\n(private) Var\n\n(de connectors ()\n   (=: a (list This NIL NIL))  # Connector A\n   (=: b (list This NIL NIL))  # Connector B\n   (con (cddr (: a)) (: b))\n   (con (cddr (: b)) (: a)) )\n\n(de crossing (Sym)\n   (with (=: c (box))\n      (connectors)\n      (linkFromTo Sym) )  )\n\n(de linkFromTo (Sym)\n   (if2 (; Sym a 2) (: b 2)\n      (set\n         (; Sym b -1) (: b)\n         (: a -1) (; Sym a) )\n      (set\n         (; Sym b -1) (: a)\n         (: b -1) (; Sym a) )\n      (set\n         (; Sym a -1) (: b)\n         (: a -1) (; Sym b) )\n      (set\n         (; Sym a -1) (: a)\n         (: b -1) (; Sym b) ) ) )\n\n(de linkFrom (Sym Ref)\n   (let Con\n      (if (; Sym a 2)\n         (; Sym a)\n         (; Sym b) )\n      (if (== Ref (: b 2 1))\n         (set\n            (cddddr Con) (: a)\n            (: b -2) Con )\n         (set\n            (cddddr Con) (: b)\n            (: a -2) Con ) ) ) )\n\n(de linkTo (Sym Ref)\n   (let Con (if (: a 2) (: a) (: b))\n      (if (== Ref (; Sym b 2 1))\n         (set\n            (cddddr Con) (; Sym a)\n            (; Sym b -2) Con )\n         (set\n            (cddddr Con) (; Sym b)\n            (; Sym a -2) Con ) ) ) )\n\n# Define tracks\n(de tracks (Var)\n   (def Var  # Layout\n      (clip\n         (make\n            (until (or (eof) (sub? (peek) \"#(\"))\n               (link (line)) ) ) ) )\n   (for (Y . L) (val Var)  # Init\n      (for (X . This) L\n         (=: x X)\n         (=: y Y)\n         (unless (sp? This)\n            (connectors) ) ) )\n   (for 1st (1 NIL)\n      (map\n         '(((PU P))\n            (map\n               '(((Left This Right) (UpL Up UpR))\n                  (case This\n                     (\"|\"\n                        (cond\n                           ((= \"|\" Up)\n                              #  |    \\|     |/\n                              #  |     |     |\n                              (if 1st\n                                 (linkFromTo Up)\n                                 (when (= \"\\\\\" UpL)\n                                    # \\|\n                                    #  |\n                                    (linkFrom UpL Up) )\n                                 (when (= \"/\" UpR)\n                                    #  |/\n                                    #  |\n                                    (linkFrom UpR Up) ) ) )\n                           ((= \"\\\\\" UpL)\n                              # \\\n                              #  |\n                              (and 1st (linkFromTo UpL)) )\n                           ((= \"/\" UpR)\n                              #   /\n                              #  |\n                              (and 1st (linkFromTo UpR)) ) )\n                        (when 1st\n                           # -|\n                           (and (= \"-\" Left) (crossing Left))\n                           #  -\n                           #  |\n                           (and (= \"-\" Up) (; Up c) (linkFromTo @)) ) )\n                     (\"/\"\n                        (cond\n                           ((member UpR '(\"|\" \"/\"))\n                              #   |     |     /\n                              #  /     /|    /\n                              (if2 1st (= \"|\" Right)\n                                 NIL\n                                 (linkFromTo UpR)\n                                 (linkTo UpR Right) ) )\n                           ((= \"-\" UpR)\n                              #   -    --\n                              #  /     /\n                              (if2 1st (= \"-\" Up)\n                                 NIL\n                                 (linkFromTo UpR)\n                                 (linkTo UpR Up) ) ) ) )\n                     (\"-\"\n                        (cond\n                           ((= \"-\" Left)\n                              #       \\       /     /\n                              # --    --    --    ---\n                              (if 1st\n                                 (linkFromTo Left)\n                                 (when (= \"\\\\\" UpL)\n                                    # \\\n                                    # --\n                                    (linkFrom UpL Left) ) )\n                              (when (= \"/\" UpR)\n                                 #   /      /\n                                 # --     ---\n                                 (if2 1st (= \"-\" Right)\n                                    NIL\n                                    (linkFromTo UpR)\n                                    (linkFrom UpR Right) ) ) )\n                           ((= \"\\\\\" UpL)\n                              # \\\n                              #  -\n                              (and 1st (linkFromTo UpL)) ) )\n                        (when 1st\n                           #  |\n                           #  -\n                           (and (= \"|\" Up) (crossing Up))\n                           #  |-\n                           (and (= \"|\" Left) (; Left c) (linkFromTo @)) ) )\n                     (\"\\\\\"\n                        (cond\n                           ((member UpL '(\"|\" \"\\\\\"))\n                              # |     |     \\\n                              #  \\    |\\     \\\n                              (if2 1st (= \"|\" Left)\n                                 NIL\n                                 (linkFromTo UpL)\n                                 (linkTo UpL Left) ) )\n                           ((= \"-\" UpL)\n                              # -     --\n                              #  \\     \\\n                              (if2 1st (= \"-\" Up)\n                                 NIL\n                                 (linkFromTo UpL)\n                                 (linkTo UpL Up) ) ) ) ) ) )\n               (cons NIL P)\n               (cons NIL PU) ) )\n         (cons NIL (val Var)) ) ) )\n"
  },
  {
    "path": "lib/sq.l",
    "content": "# 09dec25 Software Lab. Alexander Burger\n\n# (select [var ..] cls [hook] [var val ..])\n(de select Lst\n   (let\n      (Vars\n         (make\n            (until (pre? \"+\" (car Lst))\n               (unless Lst\n                  (quit \"Missing class\") )\n               (link (++ Lst)) ) )\n         Cls (++ Lst)\n         Hook (and (ext? (car Lst)) (++ Lst)) )\n      (default Lst\n         (list\n            (or\n               (and (sym? (car Vars)) (car Vars))\n               (recur (Cls)\n                  (or\n                     (and\n                        (find\n                           '((X)\n                              (isa '(+Need +index) (car (pair X))) )\n                           (getl Cls) )\n                        (; @ 1 var) )\n                     (cdr\n                        (maxi caar\n                           (getl (get (or Hook *DB) Cls)) ) )\n                     (pick recurse (type Cls)) ) ) ) ) )\n      (for\n         (Q\n            (apply search\n               (make\n                  (loop\n                     (prog1 (++ Lst)\n                        (link\n                           (++ Lst)\n                           (list\n                              (make (link @ Cls) (and Hook (link Hook))) ) ) )\n                     (NIL Lst) ) ) )\n            (search Q) )\n         (T\n            (when (this (isa Cls @))\n               (ifn Vars\n                  (show This)\n                  (for X Vars\n                     (cond\n                        ((pair X)\n                           (printsp (eval X)) )\n                        ((meta This X)\n                           (print> @ (get This X))\n                           (space) )\n                        (T (printsp (get This X))) ) )\n                  (println This) )\n               (= \"\\e\" (key)) )\n            This ) ) ) )\n\n(dm (print> . +relation) (Val)\n   (print Val) )\n\n(dm (print> . +Number) (Val)\n   (if (num? Val)\n      (prin (format Val (: scl)))\n      (print Val) ) )\n\n(dm (print> . +Date) (Val)\n   (print (if (num? Val) (datStr Val) Val)) )\n"
  },
  {
    "path": "lib/svg.l",
    "content": "# 10mar24 Software Lab. Alexander Burger\n\n(symbols 'svg 'pico)\n\n(local) (*A4-DX *A4-DY *StrokeWidth *FontSize *FontFamily *FontStyle *FontWeight)\n\n(de *A4-DX . 598)\n(de *A4-DY . 842)\n(de *A3-DX . 842)\n(de *A3-DY . 1188)\n\n(default\n   *StrokeWidth 1\n   *FontSize 12\n   *FontFamily \"serif\"\n   *FontStyle \"normal\"\n   *FontWeight \"normal\" )\n\n# *Style htStyle dfltCss htPrin (lib/xhtml.l)\n\n(local) (<svg> *DX *DY *Pos)\n(private) (DX DY X Y Z Prg)\n\n# SVG Element\n(de <svg> (*DX *DY Z . Prg)\n   (prin\n      \"<svg version=\\\"1.1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\"\n      \"\\\" width=\\\"\" (if (num? Z) (* @ *DX) (pack *DX Z))\n      \"\\\" height=\\\"\" (if (num? Z) (* @ *DY) (pack *DY Z))\n      \"\\\" viewBox=\\\"0 0 \" *DX \" \" *DY \"\\\"\" )\n   (dfltCss \"svg\")\n   (prinl \">\")\n   (let *Pos 0\n      (prog1\n         (run Prg)\n         (prinl \"</svg>\") ) ) )\n\n(local) (rect circle polyline polygon image xlink)\n\n# Graphics\n(de rect (X Y DX DY Fill Stroke)\n   (prin\n      \"<rect x=\\\"\" X\n      \"\\\" y=\\\"\" Y\n      \"\\\" width=\\\"\" DX\n      \"\\\" height=\\\"\" DY\n      \"\\\" fill=\\\"\" (or Fill \"none\")\n      \"\\\" stroke=\\\"\" (or Stroke (if Fill \"none\" \"black\"))\n      \"\\\" stroke-width=\\\"\" *StrokeWidth \"\\\"\" )\n   (and *Style (htStyle @))\n   (prinl \"/>\") )\n\n(de circle (X Y R Fill Stroke)\n   (prin\n      \"<circle cx=\\\"\" X\n      \"\\\" cy=\\\"\" Y\n      \"\\\" r=\\\"\" R\n      \"\\\" fill=\\\"\" (or Fill \"none\")\n      \"\\\" stroke=\\\"\" (or Stroke (if Fill \"none\" \"black\"))\n      \"\\\" stroke-width=\\\"\" *StrokeWidth \"\\\"\" )\n   (and *Style (htStyle @))\n   (prinl \"/>\") )\n\n(de polyline (Stroke . @)\n   (prin \"<polyline fill=\\\"none\\\" stroke=\\\"\" Stroke \"\\\" stroke-width=\\\"\" *StrokeWidth \"\\\" points=\\\"\" (next))\n   (while (args)\n      (prin \" \" (next)) )\n   (prin \"\\\"\")\n   (and *Style (htStyle @))\n   (prinl \"/>\") )\n\n(de polygon (Fill . @)\n   (prin \"<polygon fill=\\\"\" Fill \"\\\" points=\\\"\" (next))\n   (while (args)\n      (prin \" \" (next)) )\n   (prin \"\\\"\")\n   (and *Style (htStyle @))\n   (prinl \"/>\") )\n\n(de image (Img Typ X Y SX SY)\n   (prinl \"<image xlink:href=\\\"data:\" Typ \";base64,\")\n   (in Img (prBase64 18))\n   (prin\n      \"\\\" x=\\\"\" X\n      \"\\\" y=\\\"\" Y\n      \"\\\" width=\\\"\" (or SX \"100%\")\n      \"\\\" height=\\\"\" (or SY SX \"100%\") \"\\\"\" )\n   (and *Style (htStyle @))\n   (prinl \"/>\") )\n\n(private) (Url Prg)\n\n(de xlink (Url . Prg)\n   (prinl \"<a xlink:href=\\\"\" Url \"\\\">\")\n   (run Prg)\n   (prinl \"</a>\") )\n\n# Text\n(local) (<faces> <text> font width italic bold indent rotate scale window ps height)\n(private) (A N X Y Prg)\n\n(de <faces> (Lst)\n   (prinl \"<style type=\\\"text/css\\\">\")\n   (for L Lst\n      (prin\n         \"@font-face {font-family: '\" (car L)\n         \"'; src: url('\" (srcUrl (cadr L)) \"')\" )\n      (for S (cddr L)\n         (prin \", url('\" (srcUrl S) \"')\") )\n      (prinl \"}\") )\n   (prinl \"</style>\") )\n\n(de <text> (X Y . Prg)\n   (prin \"<text x=\\\"\" X \"\\\" y=\\\"\" Y\n      \"\\\" font-size=\\\"\" *FontSize\n      \"\\\" font-family=\\\"\" *FontFamily\n      \"\\\" font-style=\\\"\" *FontStyle\n      \"\\\" font-weight=\\\"\" *FontWeight \"\\\"\" )\n   (and *Style (htStyle @))\n   (prin \">\")\n   (htPrin Prg 2)\n   (prinl \"</text>\") )\n\n(de font (X . Prg)\n   (ifn Prg\n      (cond\n         ((num? X) (setq *FontSize X))\n         ((sym? X) (setq *FontFamily X))\n         (T (setq *FontSize (car X)  *FontFamily (fin X))) )\n      (cond\n         ((num? X)\n            (let *FontSize X\n               (run Prg 1) ) )\n         ((sym? X)\n            (let *FontFamily X\n               (run Prg 1) ) )\n         (T\n            (let (*FontSize (car X)  *FontFamily (fin X))\n               (run Prg 1) ) ) ) ) )\n\n(de width (N . Prg)\n   (ifn Prg\n      (setq *StrokeWidth N)\n      (let *StrokeWidth N\n         (run Prg 1) ) ) )\n\n(de italic Prg\n   (let *FontStyle 'italic\n      (run Prg) ) )\n\n(de bold Prg\n   (let *FontWeight 'bold\n      (run Prg) ) )\n\n(de indent (X . Prg)\n   (prinl \"<g transform=\\\"translate(\" X \",0)\\\">\")\n   (dec '*DX X)\n   (prog1\n      (run Prg)\n      (prinl \"</g>\") ) )\n\n(de rotate (A . Prg)\n   (prinl \"<g transform=\\\"rotate(\" A \")\\\">\")\n   (prog1\n      (run Prg)\n      (prinl \"</g>\") ) )\n\n(de scale (X Y . Prg)\n   (prinl \"<g transform=\\\"scale(\" X \",\" Y \")\\\">\")\n   (prog1\n      (run Prg)\n      (prinl \"</g>\") ) )\n\n(de window (X Y *DX *DY . Prg)\n   (prinl \"<g transform=\\\"translate(\" X \",\" Y \")\\\">\")\n   (let *Pos 0\n      (prog1\n         (run Prg)\n         (prinl \"</g>\") ) ) )\n\n(de ps @\n   (let A (arg 1)\n      (if (memq A (0 NIL T))\n         (next)\n         (off A) )\n      (prin\n         \"<text x=\\\"\" (case A (NIL 0) (0 (/ *DX 2)) (T *DX))\n         \"\\\" y=\\\"\" (inc '*Pos *FontSize)\n         \"\\\" text-anchor=\\\"\" (case A (NIL \"start\") (0 \"middle\") (T \"end\"))\n         \"\\\" font-size=\\\"\" *FontSize\n         \"\\\" font-family=\\\"\" *FontFamily\n         \"\\\" font-style=\\\"\" *FontStyle\n         \"\\\" font-weight=\\\"\" *FontWeight \"\\\"\" ) )\n   (and *Style (htStyle @))\n   (prin \">\")\n   (let H NIL\n      (while (args)\n         (let X (next)\n            (cond\n               ((pair X)\n                  (casq (++ X)\n                     (B  # Bold\n                        (prin (if X \"<tspan font-weight=\\\"bold\\\">\" \"</tspan>\")) )\n                     (I  # Italic\n                        (prin (if X \"<tspan font-style=\\\"italic\\\">\" \"</tspan>\")) )\n                     (S  # Superscript\n                        (prin (if X \"<tspan baseline-shift=\\\"super\\\">\" \"</tspan>\")) )\n                     (U  # Underline\n                        (prin (if X \"<tspan text-decoration=\\\"underline\\\">\" \"</tspan>\")) )\n                     (L  # Line through\n                        (prin (if X \"<tspan text-decoration=\\\"line-through\\\">\" \"</tspan>\")) )\n                     (C  # Color\n                        (if X\n                           (prin \"<tspan fill=\\\"\" X \"\\\">\")\n                           (prin \"</tspan>\") ) ) ) )\n               ((=0 X)  # Newline\n                  (prin\n                     \"<tspan x=\\\"\" (case A (NIL 0) (0 (/ *DX 2)) (T *DX))\n                     \"\\\" y=\\\"\" (inc '*Pos *FontSize)\n                     \"\\\">\\8203\\</tspan>\" ) )  # ZERO WIDTH SPACE\n               ((=T X)  # Horizontal line\n                  (push 'H (- *Pos (/ *FontSize 2)))\n                  (prin\n                     \"<tspan x=\\\"\" (case A (NIL 0) (0 (/ *DX 2)) (T *DX))\n                     \"\\\" y=\\\"\" (inc '*Pos (*/ *FontSize 2 3))\n                     \"\\\">\\8203\\</tspan>\" ) )  # ZERO WIDTH SPACE\n               (T (ht:Prin X)) ) ) )\n      (prinl \"</text>\")\n      (for Y H\n         (polyline \"black\" 0 Y *DX Y) ) ) )\n\n(de height @\n   (let H *FontSize\n      (while (args)\n         (let X (next)\n            (cond\n               ((=0 X) (inc 'H *FontSize))  # Newline\n               ((=T X) (inc 'H (*/ *FontSize 2 3))) ) ) )  # Horizontal line\n      H ) )\n\n(local) (down table hline vline)\n(private) (Fmt Prg)\n\n(de down (N)\n   (inc '*Pos (or N *FontSize)) )\n\n(de table (Fmt . Prg)\n   (let (PosX 0  Max *FontSize)\n      (ifn (=T Fmt)\n         (mapc\n            '((N Exe)\n               (when\n                  (or\n                     (nT (car (pair Exe)))\n                     (setq Exe (run (cdr Exe) 2)) )\n                  (window PosX *Pos N Max\n                     (if (atom Exe)\n                        (ps NIL (eval Exe 3))\n                        (eval Exe 3) )\n                     (inc 'PosX N)\n                     (setq Max (max *Pos Max)) ) ) )\n            Fmt\n            Prg )\n         (for\n            (N (co 'table (run Prg) (yield))\n               N\n               (window PosX *Pos N Max\n                  (prog1\n                     (co 'table T)\n                     (inc 'PosX N)\n                     (setq Max (max *Pos Max)) ) ) ) )\n         (co 'table) )\n      (inc '*Pos Max) ) )\n\n(de hline (Y X2 X1)\n   (inc 'Y *Pos)\n   (polyline \"black\" (or X2 *DX) Y (or X1 0) Y) )\n\n(de vline (X Y2 Y1)\n   (polyline \"black\" X (or Y2 *DY) X (or Y1 0)) )\n\n(local) brief\n(private) (Flg Font Abs Prg)\n\n(de brief (Flg Font Abs . Prg)\n   (when Flg\n      (polyline \"black\" 10 265  19 265)         # Faltmarken\n      (polyline \"black\" 10 421  19 421) )\n   (polyline \"black\" 50 106  50 103  53 103)    # Fenstermarken\n   (polyline \"black\" 50 222  50 225  53 225)\n   (polyline \"black\" 288 103  291 103  291 106)\n   (polyline \"black\" 288 225  291 225  291 222)\n   (polyline \"black\" 50 114  291 114)           # Absender\n   (window 60 102 220 10\n      (font Font (ps 0 Abs)) )\n   (window 65 125 210 90\n      (run Prg 2) ) )\n\n(local) (svgOut svgPages page page.svg svgPdf pdf)\n(private) (Src Dst Prg Prg2)\n\n# Direct SVG display\n(de svgOut Prg\n   (httpHead \"image/svg+xml\" 0)\n   (ht:Out *Chunked (run Prg)) )\n\n# Multipage SVG\n(de svgPages (*DX *DY Dst . Prg)\n   (zero *Page)\n   (out Dst\n      (let page\n         '(Prg2\n            (prin \"<\" (inc '*Page) \">\")\n            (<svg> *DX *DY \"pt\"\n               (run Prg2) ) )\n         (run Prg) ) )\n   (allow Dst) )\n\n(de page.svg (File N)\n   (in File\n      (from (pack \"<\" N \">\"))\n      (echo (pack \"<\" (inc N) \">\")) ) )\n\n# Convert to PDF\n(de svgPdf (Dst . Prg)\n   (let Src (tmp \"pdf.svg\")\n      (out Src (run Prg))\n      (call \"rsvg-convert\" \"-f\" \"pdf\" \"-o\" Dst Src) )\n   (allow Dst) )\n\n# Multipage PDF\n# (pdf \"src\" \"dst\")\n# (pdf 'dx 'dy \"dst\" . prg)\n(de pdf (*DX *DY Dst . Prg)\n   (if Dst\n      (let page  # Generate SVG files\n         '(Prg2\n            (out (tmp \"page\" (inc '*Page) \".svg\")\n               (<svg> *DX *DY \"pt\"\n                  (run Prg2) ) ) )\n         (zero *Page)\n         (run Prg) )\n      (in *DX  # Multipage SVG file\n         (when (echo (pack \"<\" (one *Page) \">\"))\n            (while\n               (out (tmp \"page\" *Page \".svg\")\n                  (when (echo (pack \"<\" (inc *Page) \">\"))\n                     (inc '*Page) ) ) ) ) )\n      (setq Dst *DY) )\n   (apply call\n      (make\n         (for I *Page\n            (link (tmp \"page\" I \".svg\")) ) )\n      \"rsvg-convert\"\n      \"--dpi-x\" 72\n      \"--dpi-y\" 72\n      \"-f\" \"pdf\"\n      \"-o\" Dst )\n   (allow Dst) )\n\n### Debug ###\n`*Dbg\n\n(noLint 'page)\n"
  },
  {
    "path": "lib/term.l",
    "content": "# 29aug23 Software Lab. Alexander Burger\n\n(sysdefs \"terminal\")\n\n(local) (ULINE U-OFF REVERS)\n\n(de ULINE . \"4\")\n(de U-OFF . \"24\")\n(de REVERS . \"7\")\n\n(local) (RED GREEN BROWN BLUE PURPLE CYAN YELLOW)\n\n(de RED . \"0;31\")\n(de GREEN . \"0;32\")\n(de BROWN . \"0;33\")\n(de BLUE . \"0;34\")\n(de PURPLE . \"0;35\")\n(de CYAN . \"0;36\")\n(de YELLOW . \"1;33\")\n\n(local) (*AttrA *AttrU)\n\n(off *AttrA *AttrU)\n\n(local) (*Lines *Columns xterm getTerm setTerm getSize)\n\n(de xterm ()\n   (member (sys \"TERM\") '(\"xterm\" \"screen\")) )\n\n(de getTerm ()\n   (use Lst\n      (and\n         (=0\n            (%@ \"ioctl\" 'I 1 TIOCGWINSZ\n               '(Lst (`winsize W W W W)) ) )\n         Lst ) ) )\n\n(de setTerm (Term Rows Cols DX DY)\n   (sys \"TERM\" Term)\n   (sys \"LINES\" Rows)\n   (sys \"COLUMNS\" Cols)\n   (%@ \"ioctl\" 'I 1 TIOCSWINSZ\n      (cons NIL (`winsize)\n         (cons Rows 2)  # ws_row\n         (cons Cols 2)  # ws_col\n         (cons DX 2)  # ws_xpixel\n         (cons DY 2) ) )  # ws_ypixel\n   (%@ \"rl_reset_terminal\" 'I 0) )\n\n(de getSize ()\n   (if (getTerm)\n      (setq *Lines (car @)  *Columns (cadr @))\n      (quit \"Can't get terminal size\") ) )\n\n(local) (attr cup clreol hideCsr showCsr screen1 screen2)\n\n(de attr (A U)\n   (if2 (<> A *AttrA) (<> U *AttrU)\n      (prin \"\\e[\"\n         (or (setq *AttrA A) 0)\n         \";\"\n         (if (setq *AttrU U) ULINE U-OFF)\n         \"m\" )\n      (prin \"\\e[\" (or (setq *AttrA A) 0) \"m\")\n      (prin \"\\e[\" (if (setq *AttrU U) ULINE U-OFF) \"m\") ) )\n\n(de cup (Y X)\n   (prin \"\\e[\" Y \";\" X \"H\") )\n\n(de clreol ()\n   (prin \"\\e[0K\") )\n\n(de clear ()\n   (prin \"\\e[H\\e[J\") )\n\n(de hideCsr ()\n   (prin \"\\e[?25l\") )\n\n(de showCsr ()\n   (prin \"\\e[?25h\") )\n\n(de screen1 ()\n   (if (xterm)\n      (prin \"\\e[?1049l\")\n      (cup *Lines 1) )\n   (flush) )\n\n(de screen2 ()\n   (and (xterm) (prin \"\\e[?1049h\")) )\n\n### Debug ###\n`*Dbg\n\n(noLint 'RED)\n"
  },
  {
    "path": "lib/test.l",
    "content": "# 04jul21 Software Lab. Alexander Burger\n\n### Unit Tests ###\n# Local usage:\n# ./pil lib/test.l -bye +\n\n# Global usage:\n# pil @lib/test.l -bye +\n\n(unless *Dbg\n   (quit \"Needs debug mode '+'\") )\n\n(setq\n   *CMD (cmd)\n   *PWD (in '(pwd) (line T)) )\n\n(load\n   \"@test/src/main.l\"\n   \"@test/src/apply.l\"\n   \"@test/src/flow.l\"\n   \"@test/src/sym.l\"\n   \"@test/src/subr.l\"\n   \"@test/src/big.l\"\n   \"@test/src/io.l\"\n   \"@test/src/db.l\"\n   \"@test/src/net.l\"\n   \"@test/src/ext.l\"\n   \"@test/src/ht.l\" )\n\n(load \"@test/lib.l\")\n(load \"@test/lib/db.l\")\n(load \"@test/lib/misc.l\")\n\n(load \"@test/lib/lint.l\")\n\n(load \"@test/lib/math.l\")\n\n(msg 'OK)\n"
  },
  {
    "path": "lib/too.l",
    "content": "# 27oct23 Software Lab. Alexander Burger\n\n(private) (Prg C Q X Y Cls Name)\n\n(de admin Prg\n   (out 2\n      (prinl *Pid \" + Admin \" (stamp))\n      (tell 'bye)\n      (for (F . @) (or *Dbs (2))\n         (when (dbck F)\n            (quit \"DB Check\" (cons F @)) ) )\n      (run Prg)\n      (when (load \"@lib/dbgc.l\")\n         (prinl \"dbgc \" @) )\n      (prinl *Pid \" - Admin \" (stamp)) ) )\n\n### Local Backup ###\n(de snapshot (Dst . @)\n   (when (info (pack Dst \"/1\"))\n      (for (L (flip (sort (extract format (dir Dst))))  L)\n         (let N (++ L)\n            (call \"mv\" (pack Dst '/ N) (pack Dst '/ (inc N)))\n            (when (> (car L) (*/ N 59 60))\n               (call \"rm\" \"-rf\" (pack Dst '/ (++ L))) ) ) ) )\n   (when (call \"mkdir\" (pack Dst \"/1\"))\n      (let Ign NIL\n         (while (args)\n            (let A (next)\n               (if (pre? \"-\" A)\n                  (push 'Ign (pack (cdr (chop A))))\n                  (let\n                     (Lst (filter bool (split (chop A) '/))\n                        Src (car Lst)\n                        Old (pack Dst \"/2/\" Src)\n                        New (pack Dst \"/1/\" Src) )\n                     (recur (Lst Src Old New)\n                        (ifn (cdr Lst)\n                           (recur (Src Old New)\n                              (unless (member Src Ign)\n                                 (cond\n                                    ((=T (car (info Src T)))  # Directory\n                                       (call \"mkdir\" \"-p\" New)\n                                       (for F (dir Src T)\n                                          (unless (member F '(\".\" \"..\"))\n                                             (recurse\n                                                (pack Src '/ F)\n                                                (pack Old '/ F)\n                                                (pack New '/ F) ) ) )\n                                       (call \"touch\" \"-r\" Src New) )\n                                    ((= (info Src T) (info Old T))  # Same\n                                       (%@ \"link\" 'I Old New) )\n                                    (T (call \"cp\" \"-a\" Src New)) ) ) )  # Changed or new\n                           (call \"mkdir\" \"-p\" New)\n                           (recurse\n                              (cdr Lst)\n                              (pack Src '/ (cadr Lst))\n                              (pack Old '/ (cadr Lst))\n                              (pack New '/ (cadr Lst)) )\n                           (call \"touch\" \"-r\" Src New) ) ) ) ) ) ) ) ) )\n\n(de purge (Dst N)\n   (for D (dir Dst)\n      (when (>= (format D) N)\n         (call \"rm\" \"-rf\" (pack Dst '/ D)) ) ) )\n\n### DB Garbage Collection ###\n(de dbgc ()\n   (load \"@lib/dbgc.l\") )\n\n### DB Mapping ###\n(private) (ObjFun TreeFun Hook Base)\n\n(de dbMap (ObjFun TreeFun)\n   (default ObjFun quote TreeFun quote)\n   (finally (mark 0)\n      (_dbMap *DB)\n      (dbMapT *DB) ) )\n\n(de _dbMap (Hook)\n   (unless (mark Hook T)\n      (ObjFun Hook)\n      (for X (getl Hook)\n         (when (pair X)\n            (if\n               (and\n                  (ext? (car X))\n                  (not (isa '+Entity (car X)))\n                  (sym? (cdr X))\n                  (find\n                     '((X) (isa '+relation (car X)))\n                     (getl (cdr X)) ) )\n               (let (Base (car X)  Cls (cdr X))\n                  (dbMapT Base)\n                  (for X (getl Base)\n                     (when\n                        (and\n                           (pair X)\n                           (sym? (cdr X))\n                           (pair (car X))\n                           (num? (caar X))\n                           (ext? (cdar X)) )\n                        (TreeFun Base (car X) (cdr X) Cls Hook)\n                        (iter (tree (cdr X) Cls Hook) _dbMap) ) )\n                  (wipe Base) )\n               (dbMapV (car X)) ) ) )\n      (wipe Hook) ) )\n\n(de dbMapT (Base)\n   (let X (val Base)\n      (when\n         (and\n            (pair X)\n            (num? (car X))\n            (ext? (cdr X)) )\n         (TreeFun Base X)\n         (iter Base dbMapV) ) ) )\n\n(de dbMapV (X)\n   (while (pair X)\n      (dbMapV (++ X)) )\n   (and (ext? X) (_dbMap X)) )\n\n(de refObj (Obj Flg)\n   (make\n      (recur (Obj)\n         (for (F . @) (or *Dbs (2))\n            (for (This (seq F) This (seq This))\n               (when\n                  (or\n                     (fish == (val This) NIL Obj)\n                     (fish == (getl This) NIL Obj) )\n                  (if (and Flg (: T))\n                     (recurse This)\n                     (link This) ) ) ) ) )\n      (for L *ExtDBs  # (\"path/\" <cnt> <ofs>)\n         (let ((P N E) L  Lck)\n            (for I N\n               (let (Fd (open (pack P (hax (dec I))))  (Cnt . Siz) (blk Fd 0))\n                  (and (=1 I) (setq Lck Fd))\n                  (for Blk (dec Cnt)\n                     (let B (ext E (blk Fd Blk Siz Lck))\n                        (when (fish == B NIL Obj)\n                           (link (cons P (id I Blk))) ) ) )\n                  (close Fd) ) ) ) ) ) )\n\n### DB Check ###\n(de dbCheck ()\n   (for (F . N) (or *Dbs (2))  # Low-level integrity check\n      (unless (pair (println F N (dbck F T)))\n         (quit 'dbck @) ) )\n   (dbSync)\n   (dbMap  # Check tree structures\n      NIL\n      '((Base Root Var Cls Hook)\n         (println Base Root Var Cls Hook)\n         (unless (= (car Root) (chkTree (cdr Root)))\n            (quit \"Tree size mismatch\") )\n         (when Var\n            (scan (tree Var Cls Hook)\n               '((K V)\n                  (or\n                     (isa Cls V)\n                     (isa '+Alt (meta V Var))\n                     (quit \"Bad Type\" V) )\n                  (unless (has> V Var (if (pair K) (car K) K))\n                     (quit \"Bad Value\" K) ) )\n               NIL T T ) ) ) )\n   (and *Dbs (dbfCheck))  # Check DB file assignments\n   (and (dangling) (println 'dangling @))  # Show dangling index references\n   (and (badECnt) (println 'badECnt @))  # Show entity count mismatches\n   (rollback) )\n\n# Check Index References\n(de dangling ()\n   (make\n      (for (F . @) (or *Dbs (2))\n         (for (Obj (seq F) Obj (seq Obj))\n            (and\n               (isa '+Entity Obj)\n               (dangle Obj)\n               (link @) )\n            (wipe Obj) ) ) ) )\n\n(de dangle (This)\n   (unless (: T)\n      (and\n         (make\n            (for X (getl This)\n               (let V (or (atom X) (++ X))\n                  (unless (rel?> This X V)\n                     (link X) ) ) ) )\n         (cons This @) ) ) )\n\n# Entity Counts\n(de badECnt ()\n   (let Cnt NIL\n      (for (F . @) (or *Dbs (2))\n         (for (This (seq F) This (seq This))\n            (and\n               (isa '+Entity This)\n               (not (: T))\n               (for Cls (type This)\n                  (recur (Cls)\n                     (or\n                        (== '+Entity Cls)\n                        (when (isa '+Entity Cls)\n                           (for C (type Cls)\n                              (recurse C) )\n                           (accu 'Cnt Cls 1) ) ) ) ) ) ) )\n      (filter\n         '((X)\n            (<> (cdr X) (get *DB (car X) 0)) )\n         Cnt ) ) )\n\n(de fixECnt ()\n   (for X (getl *DB)\n      (and (pair X) (set (car X) 0)) )\n   (for (F . @) (or *Dbs (2))\n      (for (This (seq F) This (seq This))\n         (and\n            (isa '+Entity This)\n            (not (: T))\n            (incECnt This) )\n         (at (0 . 10000) (commit)) ) )\n   (commit) )\n\n(de badDep (X Var)\n   (let Lst (get (fin X) Var 'dep)\n      (make\n         (forall X\n            (unless (get This Var)\n               (when\n                  (extract\n                     '((S) (and (get This S) S))\n                     Lst )\n                  (link (cons This @)) ) ) ) ) ) )\n\n### Rebuild tree ###\n(de rebuild (X Var Cls Hook)\n   (let Lst NIL\n      (let? Base (get (or Hook *DB) Cls)\n         (unless X\n            (setq Lst\n               (if (; (treeRel Var Cls) hook)\n                  (collect Var Cls Hook)\n                  (collect Var Cls) ) ) )\n         (zapTree (get Base Var -1))\n         (put Base Var NIL)\n         (commit) )\n      (nond\n         (X\n            (let Len (length Lst)\n               (recur (Lst Len)\n                  (unless (=0 Len)\n                     (let (N (>> 1 (inc Len))  L (nth Lst N))\n                        (re-index (car L) Var Hook)\n                        (recurse Lst (dec N))\n                        (recurse (cdr L) (- Len N)) ) ) ) ) )\n         ((atom X)\n            (for Obj X\n               (re-index Obj Var Hook) ) )\n         (NIL\n            (for (Obj (seq X) Obj (seq Obj))\n               (and (isa Cls Obj) (re-index Obj Var Hook)) ) ) )\n      (commit) ) )\n\n(de re-index (Obj Var Hook)\n   (unless (get Obj T)\n      (when (get Obj Var)\n         (rel> (meta Obj Var) Obj NIL\n            (put> (meta Obj Var) Obj NIL @)\n            Hook )\n         (at (0 . 10000) (commit)) ) ) )\n\n### Database file management ###\n(de dbfCheck ()\n   (for Cls (all)\n      (when\n         (and\n            (= `(char \"+\") (char Cls))\n            (isa '+Entity Cls)\n            (not (isa '+Remote Cls)) )\n         (or\n            (; Cls Dbf)\n            (meta Cls 'Dbf)\n            (println 'dbfCheck Cls) )\n         (for Rel (getl Cls)\n            (and\n               (pair Rel)\n               (isa '+relation (car Rel))\n               (or\n                  (isa '+index (car Rel))\n                  (isa '+Swap (car Rel))\n                  (find\n                     '((B)\n                        (or\n                           (isa '+index B)\n                           (isa '+Swap B) ) )\n                     (; Rel 1 bag) ) )\n               (not (; @ dbf))\n               (println 'dbfCheck (cdr Rel) Cls) ) ) ) ) )\n\n(de displaced ()\n   (make\n      (for (F . @) *Dbs\n         (for (Obj (seq F) Obj (seq Obj))\n            (when\n               (or\n                  (isa '+Remote Obj)\n                  (and\n                     (isa '+Entity Obj)\n                     (<>\n                        (meta Obj 'Dbf 1)\n                        (car (id Obj T)) ) ) )\n               (link Obj) )\n            (wipe Obj) ) ) ) )\n\n### Relocate Object ###\n(dm (move!> . +Entity) (Dbf)\n   (for L *ExtDBs  # (\"path/\" <cnt> <ofs>)\n      (let ((P N E) L  Lck)\n         (for I N\n            (let (Fd (open (pack P (hax (dec I))))  (Cnt . Siz) (blk Fd 0))\n               (finally (close Fd)\n                  (and (=1 I) (setq Lck Fd))\n                  (for Blk (dec Cnt)\n                     (let B (ext E (blk Fd Blk Siz Lck))\n                        (when (fish == B NIL This)\n                           (quit \"Can't move\" (cons P (id I Blk))) ) ) ) ) ) ) ) )\n   (dbSync)\n   (let New\n      (new\n         (or Dbf (meta This 'Dbf 1))\n         (val This) )\n      (for X (getl This)\n         (if (atom X)\n            (ifn (meta This X)\n               (put New X T)\n               (let Rel @\n                  (if (isa '+Blob Rel)\n                     (let F (blob This X)\n                        (put> New X F)\n                        (blob+ New X)\n                        (%@ \"unlink\" NIL F) )\n                     (lose> Rel This T)\n                     (put> New X T) ) ) )\n            (ifn (meta This (cdr X))\n               (put New (cdr X) (car X))\n               (lose> @ This (car X))\n               (put> New (cdr X) (car X)) ) ) )\n      (decECnt This)\n      (=: T T)\n      (for (F . @) *Dbs\n         (for (Obj (seq F) Obj (seq Obj))\n            (let L (getl Obj)\n               (when (fish == L This)\n                  (for X L\n                     (let? Rel (and (pair X) (meta Obj (cdr X)))\n                        (put> Obj (cdr X)\n                           (fill\n                              (if (isa '+Swap Rel)\n                                 (val (car X))\n                                 (car X) )\n                              This\n                              New ) ) ) ) ) ) ) )\n      (commit 'upd)\n      New ) )\n\n### Dump Objects ###\n(zero *DumpBlob)\n\n(dm (dumpKey> . +Entity) ()\n   (unless (: T)\n      (pick\n         '((X)\n            (when (isa '+Key (meta This (fin X)))\n               (if (meta This (fin X) 'hook)\n                  (cons (fin X) (get This @) X)\n                  (cons (fin X) X) ) ) )\n         (getl This) ) ) )\n\n(dm (dumpType> . +Entity) ()\n   (type This) )\n\n(dm (dumpValue> . +Entity) (X)\n   X )\n\n(de dump @\n   (let C (cons 0 10000)\n      (for (Q (pass search) (search Q))\n         (let (Obj @  K (fin (dumpExt Obj)))\n            (for X (getl Obj)\n               (unless (or (= K (fin X)) (= `(char \"+\") (char (fin X))))\n                  (let? Y (dumpValue> Obj X)\n                     (cond\n                        ((pair Y)\n                           (prinl)\n                           (space 3)\n                           (if (atom (cdr Y))\n                              (printsp (cdr Y))\n                              (printsp (cadr Y))\n                              (prin \"`\") )\n                           (dumpVal (car Y)) )\n                        ((isa '+Blob (meta Obj X))\n                           (let F (blob Obj X)\n                              (ifn (info F)\n                                 (msg F \" no blob\")\n                                 (prinl)\n                                 (space 3)\n                                 (prin Y \" `(tmp \" (inc '*DumpBlob) \")\")\n                                 (call \"cp\" \"-a\" F (tmp *DumpBlob)) ) ) )\n                        (T\n                           (prinl)\n                           (space 3)\n                           (print Y T) ) ) ) ) )\n            (prinl \" )\") )\n         (at C (println '(commit))) )\n      (println '(commit)) ) )\n\n(de dumpExt (Obj)\n   (prin \"(obj \")\n   (let K (dumpKey> Obj)\n      (ifn (last K)\n         (print (dumpType> Obj) (id Obj T))\n         (prin \"(\")\n         (printsp (dumpType> Obj) (car K))\n         (dumpVal (cadr K))\n         (when (pair (cddr K))\n            (space)\n            (dumpVal (car @)) )\n         (prin \")\") )\n      K ) )\n\n(de dumpVal (X)\n   (nond\n      ((atom X)\n         (prin \"(\")\n         (dumpVal (++ X))\n         (while (pair X)\n            (space)\n            (dumpVal (++ X)) )\n         (when X (prin \" . \") (dumpVal X))\n         (prin \")\") )\n      ((ext? X) (print X))\n      ((type X) (print (val X)))\n      (NIL (prin \"`\") (dumpExt X) (prin \")\")) ) )\n\n# Dump/load data and blobs\n(de dumpDB (Name . Prg)\n   (out (pack Name \".l\") (run Prg))\n   (when (dir (tmp))\n      (out (pack Name \".tgz\")\n         (chdir (tmp)\n            (in (append '(\"tar\" \"cfz\" \"-\") (filter format @))\n               (echo) ) ) ) ) )\n\n(de loadDB (Name)\n   (let Tgz (pack Name \".tgz\")\n      (when (and (info Tgz) (n0 (car @)))\n         (in Tgz\n            (chdir (tmp)\n               (out '(\"tar\" \"xfz\" \"-\") (echo)) ) ) ) )\n   (load (pack Name \".l\") ) )\n"
  },
  {
    "path": "lib/ulimit.l",
    "content": "# 27aug25 Software Lab. Alexander Burger\n\n(symbols 'ulimit 'pico)\n\n(local) (RLIMIT_STACK RLIMIT_NOFILE RLIMIT_NPROC stack files nproc)\n(private) (error rlimit)\n\n(sysdefs \"ulimit\")\n\n(de error ()\n   (quit (%@ \"strErrno\" 'S) 'ulimit) )\n\n(de rlimit (Res Val U)\n   (use Lim\n      (nond\n         ((=0\n               (%@ \"getrlimit\" 'I Res '(Lim (16 P P))) )\n            (error) )\n         (Val\n            (cons\n               (*/ (car Lim) U)\n               (*/ (cadr Lim) U) ) )\n         ((=0\n               (%@ \"setrlimit\" 'I Res\n                  (list NIL (16)\n                     (cons (* Val U) 8)\n                     (cons (cadr Lim) 8) ) ) )\n            (error) )\n         (NIL Val) ) ) )\n\n# (ulimit~stack ['cnt))\n(de stack (KiB)\n   (prog1\n      (rlimit RLIMIT_STACK KiB 1024)\n      (%@ \"ulimStk\") ) )\n\n# (ulimit~files ['cnt))\n(de files (N)\n   (rlimit RLIMIT_NOFILE N 1) )\n\n# (ulimit~nproc ['cnt))\n(de nproc (N)\n   (rlimit RLIMIT_NPROC N 1) )\n"
  },
  {
    "path": "lib/user.l",
    "content": "# 18oct21 Software Lab. Alexander Burger\n\n(must \"User Administration\" UserAdmin (== *Login *ID))\n\n(menu ,\"User Administration\"\n   (idForm ,\"User\" '(choUser) 'nm '+User\n      '(or (may UserAdmin) (== *Login (: home obj)))\n      '(or (may Delete) (== *Login (: home obj)))\n      '((: nm) )\n      (<grid> 2\n         ,\"Login Name\" (gui '(+E/R +Cue +TextField) '(nm : home obj) ,\"User\" 30)\n         ,\"Password\"\n         (gui '(+Able +PasswdField)\n            '(or (may Password) (== *Login (: home obj)))\n            30 )\n         ,\"Role\"\n         (gui '(+Able +E/R +Obj +TextField)\n            '(may RoleAdmin)\n            '(role : home obj)\n            '(nm +Role)\n            T ) )\n      (--)\n      (gui> (: obj) This) ) )\n"
  },
  {
    "path": "lib/vip/cal.rc.l",
    "content": "# 26mar26 Software Lab. Alexander Burger\n\n(symbols '(pico)\n   (load \"@lib/misc.l\") )\n\n(private) (*Cal *Pat slot entry calFile patFile findCal drawCal loadCal)\n\n(de *Cal . \"~/.pil/cal/\")\n\n(cmd \"cal\" (L Lst Cnt)\n   (let\n      (D (date (date))\n         M (car (setq L (str L)))\n         Y (cadr L) )\n      (drawCal\n         (or (index M *Mon) M (cadr D))\n         (ifn Y\n            (car D)\n            (if\n               (and\n                  (>= 99 Y)\n                  (>= (inc 'Y 2000) (+ 9 (car D))) )\n               (- Y 100)\n               Y ) ) ) )\n   (setq *Search\n      '((L C)\n         (or\n            (head '(\"·\" \"=\") L)\n            (and (sp? C) (= \"=\" (car L))) ) ) )\n   (=: buffer keys\n      (quote\n         (\"K\"  # Edit\n            (if (get (: buffer text) (: posY) (: posX) 'cal)\n               (loadCal @)\n               (beep) ) )\n         (\"w\" (move 'goForward 'slot *Cnt))  # Slot forward\n         (\"b\" (move 'goBackward 'slot *Cnt))  # Slot backward\n         (\"W\" (move 'goForward 'entry *Cnt))  # Entry forward\n         (\"B\" (move 'goBackward 'entry *Cnt))  # Entry backward\n         (\"\\e[A\"  # UP\n            (findCal flip\n               (P) (and (=0 (dec P)) (set P 12)) ) )\n         (\"\\e[B\"  # DOWN\n            (findCal prog\n               (P) (and (== 13 (inc P)) (set P 1)) ) )\n         (\"\\e[C\"  # RIGHT\n            (if (== 12 (: buffer mon))\n               (drawCal 1 (inc (: buffer year)))\n               (drawCal (inc (: buffer mon)) (: buffer year)) ) )\n         (\"\\e[D\"  # LEFT\n            (if (=1 (: buffer mon))\n               (drawCal 12 (dec (: buffer year)))\n               (drawCal (dec (: buffer mon)) (: buffer year)) ) ) ) )\n   (let *Class (: buffer)\n      (dm search> (Win Pat)\n         (setq *Pat (append '(@) Pat '(@)))\n         '((L)\n            (and\n               (= \"·\" (car L))\n               (; L 1 cal)\n               (info (calFile @))\n               (patFile @@) ) ) ) )\n   (let *Class This\n      (dm status> (A F Z)\n         (let? Dat\n            (get\n               (: buffer text)\n               (: posY)\n               (: posX)\n               'cal )\n            (when (and (: buffer mon) (member NIL (: buffer text)))\n               (con @\n                  (make\n                     (for I 7\n                        (let D (+ Dat I -1)\n                           (link\n                              (conc\n                                 (chop (day D *Day))\n                                 (list \" \")\n                                 (chop (datSym D)) ) )\n                           (when (info (calFile D))\n                              (for L (in @@ (rdLines))\n                                 (link (append '(\" \" \" \" \" \") L)) ) )\n                           (link NIL) ) ) ) )\n               (drawin)\n               (setq F (day Dat)  Z (dat$ Dat \"-\")) ) )\n         (super A F Z) ) ) )\n\n(de slot (L C)\n   (and (sp? C) (; L 1 cal)) )\n\n(de entry (L)\n   (= \"·\" (car L)) )\n\n(de calFile (Dat)\n   (pack *Cal (glue \"/\" (date Dat))) )\n\n(de patFile (F)\n   (find\n      '((L) (match *Pat L))\n      (in F (rdLines)) ) )\n\n(de findCal (Fun1 . Fun2)\n   (let\n      (Y\n         (member\n            (format (: buffer year))\n            (Fun1 (sort (dir *Cal))) )\n         M (: buffer mon) )\n      (loop\n         (T (and (Fun2 'M) (not (shift 'Y)))\n            (beep) )\n         (T\n            (and\n               (info (pack *Cal (car Y) \"/\" M))\n               (find\n                  '((F)\n                     (patFile (pack *Cal (car Y) \"/\" M \"/\" F)) )\n                  (dir @@) ) )\n            (goto 4 3)\n            (keys '(\"n\"))\n            (drawCal M (format (car Y))) ) ) ) )\n\n(de drawCal (Mon Year)\n   (with\n      (scratch (tmp \"cal\")\n         (let\n            (Dat (date Year Mon 1)\n               Skip (% (inc Dat) 7)\n               Day 1 )\n            (make\n               (link\n                  (chop (pack \"              \" (get *Mon Mon) \" \" Year))\n                  (chop \"    Mon Tue Wed Thu Fri Sat Sun\") )\n               (loop\n                  (link\n                     (make\n                        (chain (chop (align 2 (week Dat))))\n                        (link (name \" \"))\n                        (do 7\n                           (NIL\n                              (if (ge0 (dec 'Skip))\n                                 (chain (chop \"    \"))\n                                 (link (name \" \"))\n                                 (let L\n                                    (chop\n                                       (pack\n                                          (and (info (calFile Dat)) \"·\")\n                                          (if (= (date) Dat) \"==\" Day) ) )\n                                    (or (cdr L) (link (name \" \")))\n                                    (or (cddr L) (link (name \" \")))\n                                    (mapc put (chain L) 'cal Dat) )\n                                 (setq Dat (date Year Mon (inc 'Day)))) ) ) ) )\n                  (NIL Dat) )\n               (link NIL) ) )\n         3 )\n      (=: mon Mon)\n      (=: year Year) ) )\n\n(de loadCal (Dat)\n   (reload (calFile Dat))\n   (evCmd (day (=: buffer cal Dat) *Day))\n   (=: buffer keys\n      (quote\n         (\"\\e[C\"  # RIGHT\n            (let B (: buffer)\n               (loadCal (+ (: buffer cal) *Cnt))\n               (delBuf B)\n               (repaint) ) )\n         (\"\\e[D\"  # LEFT\n            (let B (: buffer)\n               (loadCal (- (: buffer cal) *Cnt))\n               (delBuf B)\n               (repaint) ) ) ) )\n   (let *Class (: buffer)\n      (dm save> (Win)\n         (call \"mkdir\" \"-p\" (dirname (: file)))\n         (super Win)\n         (unless (: text)\n            (call \"rm\" (: file)) )\n         (let ((Y M) (date (: cal)))\n            (with Win (drawCal M Y)) ) ) ) )\n\nNIL\n\nThe above code implements a \":cal\" (calendar) command for Vip.\n\nTo enable it, include the line\n\n   (load \"@lib/vip/cal.rc.l\")\n\nin your \"~/.pil/viprc\" (or in a local \".viprc\") file.\n\n\nThe calendar opens in a new buffer with\n\n   :cal\n\nto display the current month. You can pass a month name (starting with\nan uppercase letter) or a number to display another month of the current\nyear:\n\n   :cal Nov\n   :cal 11\n\nYou can also specify a year:\n\n   :cal Jan 2026\n   :cal 1 2026\n\nIf you enter only two digits for the year, the corresponding year within\nthe range −90 .. +10 years from the current year is chosen:\n\n   :cal Jan 26\n\n\nUse the RIGHT and LEFT arrow keys to skip to the next or previous month.\n\n\"Today\" is indicated by \"==\". The editor's search pattern is initialized\nto this marker, so pressing \"n\" (the Vip command for “search next”)\njumps to today’s date.\n\nThe editor commands \"w\" (move word forward) and \"b\" (move word backward)\nare redefined for this buffer to move to the next or previous day,\nrespectively.\n\nPressing \"K\" on a day opens a new buffer for that date’s file in the\n\"~/.pil/cal/\" directory tree. The file is automatically created when you\nadd text and save it (e.g. with \":w\" or \":x\"), and it is deleted if the\ntext is empty. While editing a day, the RIGHT and LEFT arrow keys move\ndirectly to the next or previous day.\n\nIn the calendar window, days that have an associated file (i.e. contain\ntext) are marked with a \"·\" character. The \"W\" (move long word forward)\nand \"B\" (move long word backward) commands move to the next or previous\nnon-empty day.\n\nWhen you move the cursor to a day, the text contents of the following\nweek are displayed below the calendar.\n\nIf you enter a new search pattern using the \"/\" or \"?\" command, the\ninitial search for \"today\" is replaced by a search through the daily\ntext files of that month. Using the DOWN and UP arrow keys then\ncontinues the search in the next or previous months, jumping directly to\nmatching days.\n"
  },
  {
    "path": "lib/vip/draw.l",
    "content": "# 19oct23 Software Lab. Alexander Burger\n\n(symbols 'vip~draw 'vip 'pico)\n\n(local) (*DX *DY *PX *PY *Draw *Boxes)\n\n(zero *DX *DY)\n\n# Drawing primitives\n(local) (point hline vline go up down left right rect label)\n\n(de point (X Y C)\n   (inc 'X *DX)\n   (inc 'Y *DY)\n   (let P\n      (or\n         (nth *Draw Y)\n         (nth (setq *Draw (need (- Y) *Draw)) Y) )\n      (set\n         (or\n            (nth (car P) X)\n            (nth\n               (set P (need (- X) (car P) (name \" \")))\n               X ) )\n         (name C) ) ) )\n\n(de hline (C X Y X2 A)\n   (point X Y C)\n   (if (> X2 X)\n      (do (- X2 X)\n         (point (inc 'X) Y \"-\") )\n      (do (- X X2)\n         (point (dec 'X) Y \"-\") ) )\n   (and A (point X Y A)) )\n\n(de vline (C X Y Y2 A)\n   (point X Y C)\n   (if (> Y2 Y)\n      (do (- Y2 Y)\n         (point X (inc 'Y) \"|\") )\n      (do (- Y Y2)\n         (point X (dec 'Y) \"|\") ) )\n   (and A (point X Y A)) )\n\n(de go (X Y C)\n   (point (setq *PX X) (setq *PY Y) C) )\n\n(de up (N C)\n   (vline \"|\" *PX (dec *PY) (dec '*PY N) C) )\n\n(de down (N C)\n   (vline \"|\" *PX (inc *PY) (inc '*PY N) C) )\n\n(de left (N C)\n   (hline \"-\" (dec *PX) *PY (dec '*PX N) C) )\n\n(de right (N C)\n   (hline \"-\" (inc *PX) *PY (inc '*PX N) C) )\n\n(de rect (X Y X2 Y2)\n   (hline \"+\" X Y (dec X2))\n   (vline \"+\" X2 Y (dec Y2))\n   (hline \"+\" X2 Y2 (inc X))\n   (vline \"+\" X Y2 (inc Y)) )\n\n(de label (X Y Txt)\n   (for C (chop Txt)\n      (point X Y C)\n      (inc 'X) ) )\n\n# Box\n(local) (+Box mx> my> hv>)\n\n(class +Box)\n# id x y x2 y2 dx dy h v\n\n(dm mx> ()\n   (*/ (+ (: x) (: x2)) 2) )\n\n(dm my> ()\n   (*/ (+ (: y) (: y2)) 2) )\n\n(dm hv> ()\n   (for L (: h)\n      (loop\n         (apply hline (++ L))\n         (NIL L)\n         (apply vline (++ L))\n         (NIL L) ) )\n   (for L (: v)\n      (loop\n         (apply vline (++ L))\n         (NIL L)\n         (apply hline (++ L))\n         (NIL L) ) ) )\n\n\n# Draw box\n(local) (block box)\n(private) (X Y DX DY Txt Prg)\n\n(de block (X Y . Prg)\n   (let (*DX (dec X)  *DY (dec Y))\n      (run Prg) ) )\n\n(de box (X Y DX DY Txt . Prg)\n   (with\n      (new '(+Box)\n         'id (if (atom Txt) Txt (car Txt))\n         'x (inc 'X *DX)\n         'y (inc 'Y *DY)\n         'x2 (+ X DX)\n         'y2 (+ Y DY)\n         'dx DX\n         'dy DY )\n      (queue '*Boxes This)\n      (let (*DX 0  *DY 0)\n         (rect (: x) (: y) (: x2) (: y2))\n         (when (fin Txt)\n            (label\n               (+ (: x) (*/ (- (: dx) (length @)) 2))\n               (+ (: y) (*/ (: dy) 2))\n               @ ) ) )\n      (let (*DX X  *DY Y)\n         (run Prg) ) ) )\n\n# Draw arrow\n(local) arrow\n\n(de arrow (Id1 Id2)\n   (with\n      (if (num? Id1)\n         (get *Boxes Id1)\n         (find '((This) (= Id1 (: id))) *Boxes) )\n      (let? B\n         (if (num? Id2)\n            (get *Boxes Id2)\n            (find '((This) (= Id2 (: id))) *Boxes) )\n         (let (X (mx> This)  Y (my> This)  X2 (mx> B)  Y2 (my> B))\n            (cond\n               ((> (; B y) (: y2))  # Above\n                  (cond\n                     ((or\n                           (>= 3 (- (; B y) (: y2)))\n                           (>= (inc X2) X (dec X2)) )\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y2) (dec (; B y)) \"v\") ) ) )\n                     ((> (; B y) (+ 4 (: y2)))\n                        (push (:: v)\n                           (let M (/ (+ (: y2) (; B y)) 2)\n                              (list\n                                 (list \"+\" X (: y2) (dec M))\n                                 (list \"+\" X M X2)\n                                 (list \"+\" X2 M (dec (; B y)) \"v\") ) ) ) )\n                     ((> (; B x) (+ 2 X))  # Left\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y2) (dec Y2))\n                              (list \"+\" X Y2 (dec (; B x)) \">\") ) ) )\n                     ((> X (+ 2 (; B x2)))  # Right\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y2) (dec Y2))\n                              (list \"+\" X Y2 (inc (; B x2)) \"<\") ) ) ) ) )\n               ((> (: y) (; B y2))  # Below\n                  (cond\n                     ((or\n                           (>= 3 (- (: y) (; B y2)))\n                           (>= (inc X2) X (dec X2)) )\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y) (inc (; B y2)) \"\\^\") ) ) )\n                     ((> (: y) (+ 4 (; B y2)))\n                        (push (:: v)\n                           (let M (*/ (+ (: y) (; B y2)) 2)\n                              (list\n                                 (list \"+\" X (: y) (inc M))\n                                 (list \"+\" X M X2)\n                                 (list \"+\" X2 M (inc (; B y2)) \"\\^\") ) ) ) )\n                     ((> (; B x) (+ 2 X))  # Left\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y) (inc Y2))\n                              (list \"+\" X Y2 (dec (; B x)) \">\") ) ) )\n                     ((> X (+ 2 (; B x2)))  # Right\n                        (push (:: v)\n                           (list\n                              (list \"+\" X (: y) (inc Y2))\n                              (list \"+\" X Y2 (inc (; B x2)) \"<\") ) ) ) ) )\n               (T  # Besides\n                  (cond\n                     ((> (; B x) (: x2))  # Left\n                        (push (:: h)\n                           (if (= Y Y2)\n                              (list\n                                 (list \"+\" (: x2) Y (dec (; B x)) \">\") )\n                              (let M (*/ (+ (: x2) (; B x)) 2)\n                                 (list\n                                    (list \"+\" (: x2) Y (dec M))\n                                    (list \"+\" M Y Y2)\n                                    (list \"+\" M Y2 (dec (; B x)) \">\") ) ) ) ) )\n                     ((> (: x) (; B x2))  # Right\n                        (push (:: h)\n                           (if (= Y Y2)\n                              (list\n                                 (list \"+\" (: x) Y (inc (; B x2)) \"<\") )\n                              (let M (*/ (+ (: x) (; B x2)) 2)\n                                 (list\n                                    (list \"+\" (: x) Y (inc M))\n                                    (list \"+\" M Y Y2)\n                                    (list \"+\" M Y2 (inc (; B x2)) \"<\") ) ) ) ) ]\n\n# Draw cell structures\n(local) (cell cells)\n\n(de cell (X Y Car Cdr)\n   (let A (max 6 (+ 3 (length (setq Car (sym Car)))))\n      (box X Y A 2\n         (cons\n            (pack (+ X *DX) \"/\" (+ Y *DY))\n            Car )\n         (let B 6\n            (setq Cdr\n               (cond\n                  ((pair Cdr) \"  ---\")\n                  (Cdr\n                     (prog1\n                        (sym @)\n                        (setq B (max 6 (+ 3 (length @)))) ) )\n                  (T \"/\") ) )\n            (box A 0 B 2\n               (cons (pack X \"/\" Y \"+\") Cdr) )\n            (+ A B) ) ) ) )\n\n(de cells (X Y Any)\n   (let Pos (list X)\n      (recur (Any Y Pos)\n         (let (Y2 (+ Y *DY)  Last)\n            (while (pair Any)\n               (use D\n                  (if (atom (car Any))\n                     (setq D (cell (car Pos) Y (++ Any) Any))\n                     (ifn (cdr Pos)\n                        (con Pos (list (car Pos)))\n                        (let (P @  M (car Pos))\n                           (for (A (car Any) (pair A) (car A))\n                              (setq M (max M (++ P))) )\n                           (map\n                              '((L) (set L (max M (car L))))\n                              Pos ) ) )\n                     (setq D\n                        (cell (car Pos) Y '| (cdr Any)) )\n                     (recurse (++ Any) (+ Y 5) (cdr Pos))\n                     (let X2 (+ (car Pos) *DX)\n                        (arrow\n                           (pack X2 \"/\" Y2)\n                           (pack X2 \"/\" (+ Y2 5)) ) ) )\n                  (let X2 (+ (car Pos) *DX)\n                     (when Last\n                        (arrow @ (pack X2 \"/\" Y2)) )\n                     (setq Last (pack X2 \"/\" Y2 \"+\")) )\n                  (inc Pos (+ 6 D)) ) ) ) ) ) )\n\n# Override +Buffer methods in object\n(let? *Class (isa '+Buffer This)\n   (dm view> (Win)\n      (=: view T)\n      (off *Draw *Boxes)\n      (symbols '(vip~draw vip pico)\n         (evCmd (load (fName (: file)))) )\n      (mapc 'hv> *Boxes)\n      (with Win\n         (scratch (tmp \"draw\") *Draw) ) )\n   (dm save> (Win)\n      (super Win)\n      (when (: view)\n         (view> This Win) ) ) )\n\n### Debug ###\n`*Dbg\n\n(de pico~cells @\n   (off *Draw *Boxes)\n   (let Y 1\n      (while (args)\n         (let V (next)\n            (cond\n               ((pair V)\n                  (cells 1 Y V)\n                  (setq Y (+ 3 (length *Draw))) )\n               (V\n                  (label 1 Y V)\n                  (inc 'Y) ) ) ) ) )\n   (mapc 'hv> *Boxes)\n   (out (tmp \"cells\") (mapc prinl *Draw))\n   (pico~vi (tmp \"cells\")) )\n"
  },
  {
    "path": "lib/vip/html.l",
    "content": "# 29oct23 Software Lab. Alexander Burger\n\n# View HTML buffers\n(let? *Class (isa '+Buffer This)\n   (dm view> (Win)\n      (=: view T)\n      (with Win\n         (let\n            (Y (- (: posY) 13)\n               N (- (length (: buffer text)) 15) )\n            (scratch (tmp \"html\")\n               (in (list \"w3m\" \"-cols\" *Columns (: buffer file))\n                  (rdLines) ) )\n            (unless (: buffer view)\n               (goto 1 (*/ Y (length (: buffer text)) N)) ) ) ) )\n   (dm save> (Win)\n      (super Win)\n      (when (: view)\n         (view> This Win) ) ) )\n"
  },
  {
    "path": "lib/vip/load.l",
    "content": "# 10dec24 Software Lab. Alexander Burger\n\n# View output of 'load'ing the file\n(let? *Class (isa '+Buffer This)\n   (dm view> (Win)\n      (=: view T)\n      (with Win\n         (scratch (tmp \"xml\")\n            (pipe (load (: buffer file))\n               (rdLines) ) ) ) )\n   (dm save> (Win)\n      (super Win)\n      (when (: view)\n         (view> This Win) ) ) )\n"
  },
  {
    "path": "lib/vip.l",
    "content": "# 11dec25 Software Lab. Alexander Burger\n\n(symbols 'vip 'pico)\n\n(sysdefs \"unistd\")\n\n(load \"@lib/term.l\")\n\n(local) (*Ns *Shell *CmdWin *StatNm *Chr *Complete *Repeat *Change\n*Count *Cnt *Search *Clip *TagStack *Spell *CmdMap *Keys *KeyMap\n*KeyMap-g *KeyMap-q *F7 *F8 *F9 *F10 *F11 *F12 *@ *@@)\n\n(def '*Shell (or (sys \"SHELL\") \"sh\"))\n\n### VIP Editor ###\n(local) (*Buffers +Buffer mkLoc fName prName rplFile fileBuffer rdLines\ndelim delimNs markup min1 undo redo evCmd dirty> load> save> syms>\nsearch> view> status> status delwin cursor addLine chgLine drawin redraw\nrepaint scLeft scRight goto chgwin eqwin getch getch2 reload scratch\nsyms pushTag tag done change jmp@@ cnt@@ goCol goLeft goRight goUp\ngoDown goAbs goFind word lword tword end lend getWord _forward goForward\n_backward goBackward goPFore goPBack shiftN shiftY indent cutX cutN paste\njoin tglCase insChar incNum overwrite _bs insMode cmdMode cmdPipe evRpt\nmove chgRight jmpMark wordFun moveSearch patMatch parMatch braces spell\npipeN nextBuf delBuf shell shFile prCmd cmd keys _map map+ map+g map+q\nreset posChar getText s-expr command vipA vipZ vi)\n\n\n(class +Buffer)\n# text file cmd symbols key undo redo dirt cmds keys\n# posX posY lastX lastY subd flat fmt syms <c>\n\n(dm T (File Y)\n   (and (=: file File) (queue '*Buffers This))\n   (=: symbols (symbols))\n   (=: posX 1)\n   (=: posY (or Y 1))\n   (=: lastX (=: lastY 1))\n   (=: fmt 72) )\n\n(de mkLoc (File)\n   (let P (conc (chop (pwd)) '(\"/\"))\n      (when (head P File)\n         (setq File (cdr (nth File (length P)))) ) )\n   (if (pat? (car File))\n      (cons (name \".\") (name \"/\") File)\n      File ) )\n\n(de fName (File)\n   (let? F (chop (setq File (path File)))\n      (use R\n         (pack\n            (mkLoc\n               (if (info File)\n                  (if (=0 (%@ \"realpath\" 'N File '(R (`PATH_MAX C . `PATH_MAX))))\n                     F R )\n                  (let L (rot (split F \"/\"))\n                     (if\n                        (and\n                           (cdr L)\n                           (n0 (%@ \"realpath\" 'N (glue \"/\" @) '(R (`PATH_MAX C . `PATH_MAX)))) )\n                        (conc R (list \"/\") (car L))\n                        F ) ) ) ) ) ) ) )\n\n(de prName (File)\n   (if (pre? (sys \"HOME\") File)\n      (pack \"~/\" (cddr (nth (chop File) (length (sys \"HOME\")))))\n      File ) )\n\n(de rplFile (File)\n   (pack\n      (replace (chop File) \"%\"\n         (if (== This *CmdWin)\n            (: next buffer file)\n            (: buffer file) ) ) ) )\n\n(de fileBuffer (File Y)\n   (let F (fName File)\n      (prog1\n         (or\n            (find '((This) (= F (: file))) *Buffers)\n            (new '(+Buffer) F Y) )\n         (put @ 'subd (<> \"/\" (last (chop File)))) ) ) )\n\n(de rdLines ()\n   (make (until (eof) (link (line)))) )\n\n(de delim (C)\n   (member C\n      '`(cons NIL (chop \" \\t\\n\\r\\\"'(),[]`\")) ) )\n\n(de delimNs (C)\n   (or (delim C) (= \"~\" C)) )\n\n(de markup (Lst)\n   (let (S 'text  N 1)\n      (for L Lst\n         (let P NIL\n            (while L\n               (let? C (++ L)\n                  (state 'S\n                     (text (and (= \"\\\"\" C) 'string)\n                        (set C 0) )\n                     (text\n                        (and\n                           (= \"#\" C)\n                           (delim P)\n                           (if L 'comment 'text) )\n                        (set C N)\n                        (when (= \"{\" (car L))\n                           (set (++ L) (inc 'N)) ) )\n                     (text 'text\n                        (or\n                           (set (setq P C)\n                              (and (sp? C) (not L)) )\n                           (when (= \"\\\\\" C)\n                              (let? C (++ L)\n                                 (set C (and (sp? C) (not L))) ) ) ) )\n                     (string (and (= \"\\\"\" C) 'text)\n                        (set (setq P C) 0) )\n                     (string (and (= \"\\\\\" C) (not L) 'skip)\n                        (set C T) )\n                     (string 'string\n                        (set C T)\n                        (and (= \"\\\\\" C) L (++ L) (set @ T)) )\n                     (skip (and (sp? C) 'skip)\n                        (set C) )\n                     (skip (and (= \"\\\"\" C) 'text)\n                        (set (setq P C) 0) )\n                     (skip 'string\n                        (set C T) )\n                     (comment\n                        (cond\n                           ((=1 (set (setq P C) N))\n                              (if L\n                                 'comment\n                                 (and (sp? C) (not L) (set P T))\n                                 'text ) )\n                           ((and\n                                 (= \"}\" C)\n                                 (= \"#\" (car L))\n                                 (=1 (set (++ L) (dec 'N))) )\n                              'text )\n                           (T\n                              (and\n                                 (= \"#\" C)\n                                 (= \"{\" (car L))\n                                 (set (++ L) (inc 'N)) )\n                              'comment ) ) ) ) ) ) ) ) ) )\n\n(de min1 (A B)\n   (max 1 (min A B)) )\n\n(dm dirty> (Win)\n   (<> (: undo) (: dirt)) )\n\n(dm load> (Win)\n   (markup\n      (=: text\n         (let? File (: file)\n            (let? I (info File)\n               (if (=T (car I))\n                  (mapcar\n                     '((X)\n                        (let (S (cdddr X)  F (caddr X))\n                           (conc\n                              (mkLoc F)\n                              (cond\n                                 ((=T S) (chop \"/  \"))\n                                 ((not S)\n                                    (conc\n                                       (chop \" -> \")\n                                       (in (list \"readlink\" F) (line))\n                                       (chop \"  \") ) )\n                                 (T\n                                    (conc\n                                       (chop \" (\")\n                                       (chop (/ (+ S 1023) 1024))\n                                       (chop \")  \") ) ) )\n                              (chop (dat$ (- (car X)) \"-\"))\n                              (chop \" \")\n                              (chop (tim$ (- (cadr X)) T)) ) ) )\n                     (sort\n                        (make\n                           (unless (= \"/\" (last (setq File (chop File))))\n                              (conc File (chop \"/\")) )\n                           (recur (File)\n                              (for F (dir File T)\n                                 (unless (member F '(\".\" \"..\"))\n                                    (let? I (info (setq F (append File (chop F))) 0)\n                                       (if (and (=T (car I)) (: subd))\n                                          (recurse (conc F (chop \"/\")))\n                                          (link\n                                             (cons\n                                                (- (cadr I))\n                                                (- (cddr I))\n                                                F\n                                                (car I) ) ) ) ) ) ) ) ) ) )\n                  (gc (+ 4 (*/ (car I) 32768)))  # 2 cells / char\n                  (if (sys \"CCRYPT\" (: key))\n                     (in (list \"ccrypt\" \"-c\" \"-ECCRYPT\" File)\n                        (rdLines) )\n                     (in File (rdLines)) ) ) ) ) ) )\n   (=: symbols (symbols))\n   (=: undo (=: redo (=: dirt)))\n   (=: posX\n      (min1\n         (: posX)\n         (length\n            (get\n               (: text)\n               (=: posY (min1 (: posY) (length (: text)))) ) ) ) )\n   (let? L\n      (nth\n         (find\n            '((L) (head '`(chop \"# VIP \") L))\n            (head 3 (: text)) )\n         7 )\n      (evCmd\n         (symbols '(vip pico)\n            (case (car L)\n               (\"\\\"\" (keys (chop (any L))))\n               (\"(\" (run (str (pack L))))\n               (T\n                  (setq L (split L \" \"))\n                  (apply script\n                     (str (glue \" \" (cdr L)))\n                     (path (car L)) ) ) ) ) ) ) )\n\n(dm save> (Win)\n   (when (: file)\n      (unless (=T (car (info @)))\n         (if (sys \"CCRYPT\" (: key))\n            (pipe\n               (out '(\"ccrypt\" \"-e\" \"-ECCRYPT\")\n                  (mapc prinl (: text)) )\n               (out (: file) (echo)) )\n            (out (: file) (mapc prinl (: text))) ) )\n      (=: dirt (: undo))\n      (for (This *CmdWin (this (: next)))\n         (status) )\n      (when (: syms)\n         (and (find ext? @ T) (pico~dbSync))\n         (in (: file)\n            (while (and (setq \"*X\" (read)) (atom @))\n               (unless (= (val \"*X\") (setq \"*V\" (read)))\n                  (set \"*X\" \"*V\") )\n               (until (= '(=======) (setq \"*K\" (read)))\n                  (unless (= (get \"*X\" \"*K\") (setq \"*V\" (read)))\n                     (put \"*X\" \"*K\" \"*V\") ) ) ) )\n         (when (find ext? (: syms) T)\n            (commit 'pico~upd)\n            (syms> This (: syms)) ) ) )\n   (on *StatNm) )\n\n(dm syms> (\"Lst\")\n   (out (: file)\n      (for \"S\" (=: syms \"Lst\")\n         (if\n            (and\n               (ext? \"S\" T)\n               (not (rank (car (id \"S\" T)) *Ext))\n               (lock \"S\") )\n            (prinl \"# \" \"S\" \" locked\")\n            (printsp \"S\")\n            (fish\n               '((\"X\")\n                  (if (circ? \"X\")\n                     \"skip\"\n                     (and\n                        (str? \"X\")\n                        (or\n                           (and (val \"X\") (n== @ \"X\"))\n                           (getl \"X\") )\n                        (intern \"X\" 'priv) )\n                     NIL ) )\n               (cons (val \"S\") (getl \"S\"))\n               \"skip\" )\n            (pretty (val \"S\"))\n            (prinl)\n            (for \"X\" (sort (getl \"S\"))\n               (space 3)\n               (if (atom \"X\")\n                  (print \"X\" T)\n                  (printsp (cdr \"X\"))\n                  (pretty (setq \"X\" (car \"X\")) -3) )\n               (remark \"X\")\n               (prinl) ) )\n         (prinl)\n         (println '(=======))\n         (prinl) ) ) )\n\n(dm search> (Win @Pat)\n   (ifn (= \"\\\\\" (car @Pat))\n      (let @Lst 'L\n         (when (= \"~\" (car @Pat))\n            (setq\n               @Pat (mapcar lowc (cdr @Pat))\n               @Lst '(mapcar lowc L) ) )\n         (if\n            (nor\n               (= \"\\^\" (car @Pat))\n               (= \"$\" (last @Pat))\n               (find pat? @Pat) )\n            (curry (@Pat @Lst) (L)\n               (head '@Pat @Lst) )\n            (setq @Pat\n               (if (= \"$\" (last @Pat))\n                  (head -1 @Pat)\n                  (append @Pat '(@)) ) )\n            (ifn (= \"\\^\" (car @Pat))\n               (curry (@Pat @Lst) (L)\n                  (match '@Pat @Lst) )\n               (++ @Pat)\n               (curry (@Pat @Lst) (L C)\n                  (unless C (match '@Pat @Lst)) ) ) ) )\n      (++ @Pat)\n      (curry (@Pat) (L)\n         (head '@Pat L) ) ) )\n\n(dm view> (Win)\n   (beep) )\n\n\n(local) (*Window +Window)\n\n(class +Window)\n# buffer top lines winX winY posX posY prev next last mark sc\n\n(dm T (Buffer Top Lines WinX WinY PosX PosY Prev Mark)\n   (=: buffer Buffer)\n   (=: top Top)\n   (=: lines Lines)\n   (when (=: prev Prev)\n      (when (=: next (: prev next))\n         (=: next prev This) )\n      (=: prev next This) )\n   (=: winX WinX)\n   (=: winY WinY)\n   (=: posX PosX)\n   (=: posY PosY)\n   (=: mark Mark)\n   (=: sc 0) )\n\n(dm view> ()\n   (view> (: buffer) This) )\n\n(dm status> (A F Z)\n   (cup (+ (: top) (: lines) 1) 1)\n   (attr REVERS)\n   (let N (- *Columns (length (prin A)))\n      (cond\n         ((ge0 (- N (length F) (length Z)))\n            (prin F (need @ \" \") Z) )\n         ((onOff *StatNm) (prin (tail N (chop F))))\n         (T (prin (need (- N (length Z)) \" \") Z)) ) )\n   (attr) )\n\n(de delwin ()\n   (when (=: prev next (: next))\n      (=: next prev (: prev)) ) )\n\n(de cursor ()\n   (cup\n      (+ (: top) (- (: posY) (: winY) -1))\n      (- (: posX) (: winX) -1) ) )\n\n(de addLine (Y L N)\n   (cup (+ (: top) Y) 1)\n   (clreol)\n   (for C (nth L (: winX))\n      (T (lt0 (dec 'N)))\n      (cond\n         ((: buffer flat))\n         ((=T (val C))\n            (cond\n               ((= \"^?\" C)\n                  (setq C \"?\")\n                  (attr RED T) )\n               ((>= \"^_\" C \"^A\")\n                  (setq C (char (+ 64 (char C))))\n                  (attr RED T) )\n               (T (attr NIL T)) ) )\n         ((= \"^?\" C)\n            (setq C \"?\")\n            (attr RED) )\n         ((>= \"^_\" C \"^A\")\n            (setq C (char (+ 64 (char C))))\n            (attr RED) )\n         ((gt0 (val C))\n            (attr CYAN) )\n         (T (attr)) )\n      (prin C) )\n   (attr) )\n\n(de chgLine (L)\n   (addLine (- (: posY) (: winY) -1) L *Columns)\n   (cursor) )\n\n(de status ()\n   (unless (== This *CmdWin)\n      (status> This\n         (pack\n            (index (: buffer) *Buffers)\n            \"/\"\n            (length *Buffers)\n            (if (dirty> (: buffer) This) \" * \" \" \") )\n         (or (: buffer cmd) (prName (: buffer file)))\n         (let N (length (: buffer text))\n            (pack\n               (and (: mark) (cons @ \" \"))\n               (casq (: buffer symbols 1)\n                  (pico)\n                  (T (cons @ \" \")) )\n               (: posX) \",\" (: posY) \"/\" N \" \"\n               (if (gt0 (dec N))\n                  (*/ 100 (dec (: posY)) @)\n                  0 )\n               \"%\" ) ) )\n      (flush) ) )\n\n(de drawin ()\n   (let L (nth (: buffer text) (: winY))\n      (for Y (: lines)\n         (addLine Y (++ L) *Columns) ) ) )\n\n(de redraw ()\n   (hideCsr)\n   (drawin)\n   (showCsr)\n   (status) )\n\n(de repaint ()\n   (for (This *CmdWin This (: next))\n      (redraw) ) )\n\n(de scLeft ()\n   (and\n      (if (=1 (: winX))\n         (> (: posX) 1)\n         (>= (- (: posX) (dec (:: winX))) *Columns) )\n      (dec (:: posX)) ) )\n\n(de scRight ()\n   (cond\n      ((> (: posX) (: winX))\n         (inc (:: winX)) )\n      ((cdr (nth (: buffer text) (: posY) (: posX)))\n         (inc (:: posX))\n         (inc (:: winX)) )\n      (T\n         (for (Y . L) (cdr (nth (: buffer text) (: posY)))\n            (T (cdr (nth L (: posX)))\n               (inc (:: posY) Y) )\n            (T (= Y (: lines))) ) ) ) )\n\n(de goto (X Y F)\n   (=: buffer posX (=: posX X))\n   (setq X\n      (cond\n         ((and F\n               (>= (inc (: posY)) Y (dec (: posY)))\n               (>= (+ (: winX) *Columns -1) X (: winX)) )\n            (: winX) )\n         ((>= (*/ *Columns 3 4) X) 1)\n         (T (- X (/ *Columns 2))) ) )\n   (=: buffer posY (=: posY Y))\n   (setq Y\n      (min1\n         (- Y (/ (: lines) 2))\n         (- (length (: buffer text)) (: lines) -1) ) )\n   (if (and F (= X (: winX)) (= Y (: winY)))\n      (status)\n      (=: winX X)\n      (=: winY Y)\n      (redraw) ) )\n\n(de chgwin (Lines Top)\n   (=: lines Lines)\n   (and Top (=: top @))\n   (=: winY\n      (min1\n         (- (: posY) (/ (: lines) 2))\n         (- (length (: buffer text)) (: lines) -1) ) )\n   (redraw) )\n\n(de eqwin ()\n   (let\n      (H (dec *Lines)\n         D (*/ H\n            (let N 0\n               (for (This *CmdWin (: next) @)\n                  (inc 'N) ) ) ) )\n      (with *CmdWin (chgwin 1 H))\n      (when (>= D 3)\n         (for (This *CmdWin (this (: next)))\n            (if (: next)\n               (chgwin (dec D) (dec 'H D))\n               (chgwin (dec H) 0) ) ) )\n      (cursor) ) )\n\n(de getch ()\n   (symbols *Ns\n      (if (= \"\\e\" (setq *Chr (or (++ *Keys) (key))))\n         (when (or (++ *Keys) (key 120))\n            (loop\n               (setq *Chr (pack *Chr @))\n               (T (member *Chr '(\"\\e[A\" \"\\e[B\" \"\\e[C\" \"\\e[D\")) *Chr)\n               (NIL (or (++ *Keys) (key 120)) *Chr) ) )\n         *Chr ) ) )\n\n(de getch2 (C)\n   (if (= \"^V\" C)\n      (or (++ *Keys) (symbols *Ns (key)))\n      C ) )\n\n(de reload (File Y X)\n   (unless (== This *CmdWin)\n      (when File\n         (let B (fileBuffer File)\n            (unless (== B (: buffer))\n               (=: mark)\n               (=: last (: buffer))\n               (=: buffer B) ) ) )\n      (load> (: buffer) This)\n      (off *StatNm)\n      (goto\n         (or X (: buffer posX))\n         (or Y (: buffer posY)) )\n      (repaint) ) )\n\n(de scratch (File Lst Y)\n   (out (setq File (fName File))\n      (mapc prinl Lst) )\n   (prog1\n      (if (find '((This) (= File (: file))) *Buffers)\n         (with @\n            (markup\n               (=: text Lst)\n               (=: undo (=: redo (=: dirt))) )\n            This )\n         (=: mark)\n         (=: last (: buffer))\n         (prog1\n            (=: buffer (new '(+Buffer) File Y))\n            (put @ 'text Lst)\n            (markup (: buffer text))\n            (goto 1 (: buffer posY)) ) )\n      (repaint) ) )\n\n(de pushTag (File)\n   (push '*TagStack (: posX) (: posY) File (symbols)) )\n\n(de tag (S C)\n   (ifn\n      (if C\n         (or\n            (get C '*Dbg -1 S)\n            (meta C '*Dbg -1 S) )\n         (get S '*Dbg 1) )\n      (beep)\n      (pushTag (: buffer file))\n      (symbols (cddr @))\n      (reload (cadr @) (car @) 1) ) )\n\n(de done (Flg)\n   (and Flg\n      (dirty> (: buffer) This)\n      (save> (: buffer) This) )\n   (=: mark)\n   (nond\n      ((; *CmdWin next next)\n         (throw 'done Flg) )\n      ((n== This *CmdWin))\n      ((== This (; *CmdWin next))\n         (delwin)\n         (let (N (: lines)  Top (: top))\n            (with (setq *Window (: prev))\n               (chgwin (+ 1 N (: lines)) Top) ) ) )\n      (NIL\n         (delwin)\n         (let N (: lines)\n            (with (setq *Window (: next))\n               (chgwin (+ 1 N (: lines))) ) ) ) ) )\n\n(de change Prg\n   (let\n      (Pos (nth (: buffer text) (: posY))\n         Env\n         (env\n            'PosX1 (: posX)  'PosY1 (: posY)\n            'OldA (car Pos)  'OldD (cdr Pos)\n            'NewD (: buffer text)\n            '(Pos PosX2 PosY2 NewA) ) )\n      (let? Res\n         (job Env\n            (prog1\n               (run Prg)\n               (setq\n                  PosX2 (: posX)  PosY2 (: posY)\n                  NewA (if Pos (car @) (: buffer text)) )\n               (and Pos (setq NewD (cdr @))) ) )\n         (=: buffer redo NIL)\n         (push (:: buffer undo)\n            (cons Env\n               '(ifn Pos\n                  (=: buffer text NewD)\n                  (set Pos OldA)\n                  (con Pos OldD) )\n               '(ifn Pos\n                  (=: buffer text NewA)\n                  (set Pos NewA)\n                  (con Pos NewD) ) ) )\n         (markup (: buffer text))\n         (goto (: posX) (: posY))\n         (repaint)\n         Res ) ) )\n\n(de undo ()\n   (ifn (pop (:: buffer undo))\n      (beep)\n      (let U @\n         (push (:: buffer redo) U)\n         (bind (car U)\n            (eval (cadr U))\n            (markup (: buffer text))\n            (goto PosX1 PosY1)\n            (repaint) ) ) ) )\n\n(de redo ()\n   (ifn (pop (:: buffer redo))\n      (beep)\n      (let R @\n         (push (:: buffer undo) R)\n         (bind (car R)\n            (eval (cddr R))\n            (markup (: buffer text))\n            (goto PosX2 PosY2)\n            (repaint) ) ) ) )\n\n(de jmp@@ (Y)\n   (=: buffer lastX (: posX))\n   (=: buffer lastY (: posY))\n   (setq *@@ Y) )\n\n(de cnt@@ ()\n   (- *@@ (: posY) -1) )\n\n(de goCol (N)\n   (setq *@@ (: posY))\n   N )\n\n(de goLeft (N)\n   (goCol (max 1 (- (: posX) N))) )\n\n(de goRight (N I)\n   (goCol\n      (min1\n         (or (=T N) (+ (: posX) N))\n         (+\n            (or I 0)\n            (length (get (: buffer text) (: posY))) ) ) ) )\n\n(de goUp (N)\n   (setq *@@ (max 1 (- (: posY) N)))\n   (min1 (: posX) (length (get (: buffer text) *@@))) )\n\n(de goDown (N I)\n   (setq *@@\n      (min1\n         (or (=T N) (+ (: posY) N))\n         (+ (or I 0) (length (: buffer text))) ) )\n   (min1 (: posX) (length (get (: buffer text) *@@))) )\n\n(de goAbs (X Y I)\n   (jmp@@\n      (min1 Y\n         (+ (or I 0) (length (: buffer text))) ) )\n   (min1 X (length (get (: buffer text) *@@))) )\n\n(de goFind (C D N I)\n   (setq *@@ (: posY))\n   (let (Lst (get (: buffer text) (: posY))  L (nth Lst (: posX)))\n      (do N (setq L (member C (cdr L))))\n      (if L\n         (+ D (or I 0) (offset L Lst))\n         (beep) ) ) )\n\n(de word (L C)\n   (and\n      (delim C)\n      (or\n         (sub? (car L) \"\\\"()[]\")\n         (not (delim (car L))) ) ) )\n\n(de lword (L C)\n   (and (sp? C) (not (sp? (car L))) ) )\n\n(de tword (L)\n   (and\n      (sp? (car L))\n      (not (sp? (cadr L))) ) )\n\n(de end (L)\n   (and (not (delim (car L))) (delim (cadr L))) )\n\n(de lend (L)\n   (and (not (sp? (car L))) (sp? (cadr L))) )\n\n(de getWord (Flg)\n   (make\n      (let Lst (get (: buffer text) (: posY))\n         (unless Flg\n            (for C (nth Lst (: posX))\n               (T (delim C))\n               (link C) ) )\n         (for\n            (L (nth Lst (dec (: posX)))\n               (not (delim (car L)))\n               (prior L Lst) )\n            (yoke (car L)) ) ) ) )\n\n(de _forward (Lst C)\n   (for ((X . L) Lst  L  (cdr L))\n      (T (and (Fun L C) (=0 (dec 'N)))\n         (jmp@@ Y)\n         (+ (or I 0) X) )\n      (setq C (car L))\n      NIL ) )\n\n(de goForward (Fun N I)\n   (let (Y (: posY)  Pos (nth (: buffer text) Y)  L (nth (++ Pos) (: posX)))\n      (if (_forward (cdr L) (car L))\n         (+ (: posX) @)\n         (loop\n            (NIL Pos (beep))\n            (inc 'Y)\n            (T (_forward (++ Pos)) @) ) ) ) )\n\n(de _backward (Lst L)\n   (use P\n      (loop\n         (NIL L)\n         (setq P (prior L Lst))\n         (T (and (Fun L (car P)) (=0 (dec 'N)))\n            (jmp@@ Y)\n            (offset L Lst) )\n         (setq L P)\n         NIL ) ) )\n\n(de goBackward (Fun N)\n   (let (Y (: posY)  Pos (nth (: buffer text) Y))\n      (or\n         (_backward\n            (car Pos)\n            (nth (car Pos) (dec (: posX))) )\n         (loop\n            (NIL (setq Pos (prior Pos (: buffer text)))\n               (beep) )\n            (dec 'Y)\n            (T (_backward (car Pos) (tail 1 (car Pos))) @ ) ) ) ) )\n\n(de goPFore (Cnt D I)\n   (let (Y (: posY)  Pos (nth (: buffer text) Y))\n      (loop\n         (NIL (cdr Pos)\n            (jmp@@ Y)\n            (max 1 (+ (or I 0) (length (car Pos)))) )\n         (inc 'Y)\n         (T\n            (and\n               (car Pos)\n               (not (cadr Pos))\n               (=0 (dec 'Cnt)) )\n            (jmp@@ (+ Y D))\n            1 )\n         (++ Pos) ) ) )\n\n(de goPBack (Cnt)\n   (let (Y (: posY)  Pos (nth (: buffer text) Y))\n      (loop\n         (NIL (setq Pos (prior Pos (: buffer text))))\n         (dec 'Y)\n         (T\n            (and\n               (not (car Pos))\n               (cadr Pos)\n               (=0 (dec 'Cnt)) ) ) )\n      (jmp@@ Y)\n      1 ) )\n\n(de shiftN (Cnt Flg)\n   (change\n      (let? P Pos\n         (do Cnt\n            (when (car P)\n               (if Flg\n                  (do 3 (push P (name \" \")))\n                  (do 3\n                     (NIL (sp? (caar P)))\n                     (pop P) ) ) )\n            (NIL (cdr P))\n            (setq P (con P (cons (car @) (cdr @)))) )\n         (=: posX 1) ) ) )\n\n(de shiftY (X Flg)\n   (shiftN (cnt@@) Flg) )\n\n(de indent ()\n   (change\n      (let? P Pos\n         (when (clip (car P))\n            (let (N (*/ (offset @ (trim (car P))) 3)  Sup N)\n               (set P @)\n               (loop\n                  (do (* N 3) (push P (name \" \")))\n                  (for C (car P)\n                     (unless (val C)\n                        (case C\n                           (\"(\" (inc 'N))\n                           (\")\" (dec 'N))\n                           (\"[\" (push 'Sup N) (inc 'N))\n                           (\"]\" (setq N (++ Sup))) ) ) )\n                  (while (val (caadr P))\n                     (++ P) )\n                  (NIL (clip (cadr P)) T)\n                  (setq P (con P (cons @ (cddr P)))) ) ) ) ) ) )\n\n(de cutX (X Flg)\n   (when X\n      (let Y *@@\n         (unless (> (list Y X) (list (: posY) (: posX)))\n            (xchg 'X (:: posX)  'Y (:: posY)) )\n         (change\n            (when Pos\n               (let (L (car Pos)  DX (: posX))\n                  (and\n                     (set *Clip\n                        (make\n                           (if Flg\n                              (set Pos (cut (dec DX) 'L))\n                              (setq L (nth L DX)) )\n                           (while (>= (dec 'Y) (: posY))\n                              (link L)\n                              (setq L (cadr Pos))\n                              (if Flg\n                                 (con Pos (cddr Pos))\n                                 (++ Pos) )\n                              (one DX) )\n                           (link (cut (- X DX) 'L))\n                           (when Flg\n                              (set Pos (conc (car Pos) L))\n                              (=: posX (min1 (: posX) (length (car Pos)))) )\n                           (setq *@@ (unless L 1)) ) )\n                     Flg ) ) ) ) ) ) )\n\n(de cutN (N)\n   (change\n      (when Pos\n         (off *@@)\n         (set *Clip\n            (cons T\n               (if (setq Pos (prior Pos (: buffer text)))\n                  (make\n                     (setq OldA (car @)  OldD (cdr @))\n                     (do N\n                        (link (cadr Pos))\n                        (NIL (con Pos (cddr Pos))\n                           (one *@@)\n                           (dec (:: posY)) ) )\n                     (=: posX 1) )\n                  (cut N (:: buffer text)) ) ) ) ) ) )\n\n(de paste (Lst Flg)\n   (change\n      (let P (or Pos (=: buffer text (cons)))\n         (ifn (=T (car Lst))\n            (let L (car P)\n               (cond\n                  ((=0 Flg) (setq PosX1 (=: posX 1)))\n                  ((=1 Flg)\n                     (and\n                        (get (: buffer text) (: posY) 1)\n                        (get (: buffer text) (: posY) (inc (:: posX)))\n                        (inc 'PosX1) ) )\n                  (Flg\n                     (=: posX\n                        (max 1\n                           (inc (length (get (: buffer text) (: posY)))) ) ) ) )\n               (set P\n                  (conc (cut (dec (: posX)) 'L) (mapcar name (++ Lst))) )\n               (for S Lst\n                  (setq P (con P (cons (mapcar name S) (cdr P))))\n                  (inc (:: posY)) )\n               (=: posX (max 1 (length (car P))))\n               (set P (append (car P) L)) )\n            (=: posX 1)\n            (ifn Flg\n               (for L (cdr Lst)\n                  (con P (cons (car P) (cdr P)))\n                  (set P (mapcar name L))\n                  (setq P (cdr P)) )\n               (inc (:: posY))\n               (for L (cdr Lst)\n                  (setq P (con P (cons (mapcar name L) (cdr P)))) ) ) )\n         T ) ) )\n\n(de join (Cnt)\n   (change\n      (do Cnt\n         (NIL (cdr Pos))\n         (set Pos\n            (append\n               (car Pos)\n               (cons (name \" \") (clip (cadr Pos))) ) )\n         (con Pos (cddr Pos)) )\n      T ) )\n\n(de tglCase (Cnt)\n   (change\n      (let? C (get Pos 1 (: posX))\n         (do Cnt\n            (set Pos\n               (place (: posX) (car Pos)\n                  ((if (upp? C) lowc uppc) C) ) )\n            (NIL (setq C (get Pos 1 (inc (: posX)))))\n            (inc (:: posX)) )\n         T ) ) )\n\n(de insChar (C Cnt)\n   (change\n      (when (car Pos)\n         (do Cnt\n            (set Pos (place (: posX) (car Pos) (name C)))\n            (NIL (get Pos 1 (inc (:: posX)))) )\n         (dec (:: posX)) ) ) )\n\n(de incNum (Cnt)\n   (change\n      (let (I (: posX)  L (car Pos)  S (get L I))\n         (ifn (format S)\n            (set Pos\n               (place (: posX) L (char (+ Cnt (char S)))) )\n            (while\n               (and\n                  (gt0 (dec 'I))\n                  (format (get L @)) )\n               (setq S (pack @ S)) )\n            (inc (:: posX)\n               (-\n                  (length\n                     (set Pos\n                        (conc\n                           (head I L)\n                           (need\n                              (if (= `(char \"0\") (char S)) (length S) 1)\n                              (chop (max 0 (+ Cnt (format S))))\n                              (name \"0\") )\n                           (tail (- (: posX)) L) ) ) )\n                  (length L) ) ) ) ) ) )\n\n(de overwrite (Lst)\n   (change\n      (let\n         (P (or Pos (=: buffer text (cons)))\n            L (conc (cut (dec (: posX)) P) (car Lst)) )\n         (set P\n            (append L\n               (cdr (nth (car P) (length (++ Lst)))) ) )\n         (=: posX (max 1 (length L))) ) ) )\n\n(de _bs ()\n   (++ Chg)\n   (dec (:: posX))\n   (unless Rpl\n      (set P (remove (: posX) (car P))) ) )\n\n(de insMode (Flg Win Rpl . @)\n   (change\n      (let (P (or Pos (=: buffer text (cons)))  Chg)\n         (cond\n            ((=0 Flg)\n               (con P (cons (car P) (cdr P)))\n               (set P)\n               (goto 1 (: posY)) )\n            ((=1 Flg))\n            (Flg\n               (setq P (con P (cons NIL (cdr P))))\n               (goto 1 (inc (: posY)))\n               (setq Chg (0)) ) )\n         (cursor)\n         (off *Complete)\n         (while\n            (case (or (next) (getch))\n               (NIL)\n               ((\"\\n\" \"\\r\")\n                  (cond\n                     (Rpl (beep) T)\n                     ((== This *CmdWin)\n                        (nil (command (or Win This) (car P))) )\n                     (T\n                        (push 'Chg 0)\n                        (con P\n                           (cons (nth (car P) (: posX)) (cdr P)) )\n                        (set P (head (dec (: posX)) (car P)))\n                        (setq P (cdr P))\n                        (goto 1 (inc (: posY)))\n                        (cursor)\n                        T ) ) )\n               ((\"\\b\" \"^?\")  # [BACKSPACE]\n                  (when (and Chg (n0 (car Chg)))\n                     (_bs)\n                     (chgLine (car P))\n                     (off *Complete) )\n                  T )\n               (T\n                  (let (S (list @)  L (get (: buffer text) (: posY)))\n                     (cond\n                        ((<> @ \"\\t\") (off *Complete))\n                        ((and\n                              (== This *CmdWin)\n                              (member L '((\"/\") (\"?\") (\"&\") (\":\") (\":\" \" \"))) )\n                           (setq S\n                              (chop\n                                 (car\n                                    (rot\n                                       (setq *Complete\n                                          (conc\n                                             (and (cdr L) (history))\n                                             (extract\n                                                '((B)\n                                                   (and\n                                                      (head L B)\n                                                      (cddddr B)\n                                                      (pack ((if (cdr L) cddr cdr) B)) ) )\n                                                (: buffer text) ) ) ) ) ) ) ) )\n                        ((or Rpl (nor *Complete (setq S (pack (getWord T)))))\n                           (setq S\n                              (make\n                                 (do (- 3 (% (dec (: posX)) 3))\n                                    (link (name \" \")) ) ) ) )\n                        (T\n                           (default *Complete\n                              (cons S\n                                 (if\n                                    (or\n                                       (n== This *CmdWin)\n                                       (<> \":\" (car L))\n                                       (find sp? L) )\n                                    (flip\n                                       (all* S\n                                          (when (== This *CmdWin)\n                                             (pick\n                                                '((P F) (and (head P L) F))\n                                                '`(mapcar chop '(\":tag \" \":v \" \":e \" \":E \" \":r \" \":w \"))\n                                                '(T T 0 0 0 0) ) ) ) )\n                                    (extract\n                                       '((Cmd)\n                                          (when (head (cdr L) (setq Cmd (chop Cmd)))\n                                             (if (pre? \":\" S)\n                                                (cons (name \":\") Cmd)\n                                                Cmd ) ) )\n                                       (conc\n                                          (mapcar car *CmdMap)\n                                          '(\"cp\" \"bak\" \"kab\" \"ls\" \"key\" \"tag\" \"bx\" \"bd\" \"map\") ) ) ) ) )\n                           (do (length (car *Complete)) (_bs))\n                           (setq S (chop (car (rot *Complete)))) ) )\n                     (when (= \"^V\" (car S))\n                        (set S (or (next) (getch2 \"^V\"))) )\n                     (for C S\n                        (push 'Chg C)\n                        (set P\n                           ((if (and Rpl (car P)) place insert)\n                              (: posX)\n                              (car P)\n                              C ) )\n                        (inc (:: posX)) )\n                     (goto (: posX) (: posY) T) )\n                  (chgLine (car P))\n                  T ) ) )\n         (=: posX (max 1 (dec (: posX))))\n         (cond\n            ((=0 Flg) (push 'Chg 0))\n            ((=1 Flg) (and (> PosX1 1) (dec 'PosX1))) )\n         (split (reverse Chg) 0) ) ) )\n\n(de cmdMode @\n   (let Win (if (== This *CmdWin) (: next) This)\n      (with *CmdWin\n         (pass insMode (: buffer text) Win NIL) ) ) )\n\n(de cmdPipe (N)\n   (apply cmdMode (chop (pack \":\" N \"!\"))) )\n\n(de evRpt (Exe)\n   (eval (setq *Repeat Exe) 1) )\n\n(de move @\n   (let M (conc (rest) (1))\n      (case *Change\n         (NIL\n            (when (eval (rest))\n               (goto @ *@@ T)\n               (when (: mark)\n                  (out @ (println (: posX) (: posY))) ) ) )\n         (\"!\" (eval (rest)) (cmdPipe (cnt@@)))  # External filter\n         (\">\" (evRpt (list 'shiftY M T)))  # Shift right\n         (\"<\" (evRpt (list 'shiftY M)))  # Shift left\n         (\"c\"  # Change\n            (when (cutX (eval M) T)\n               (and *@@\n                  (get (: buffer text) (: posY) 1)\n                  (inc (:: posX)) )\n               (let L (insMode *@@)\n                  (setq *Repeat\n                     (list 'prog\n                        (list 'cutX M T)\n                        (list 'paste (lit L) '*@@)) ) ) ) )\n         (\"d\" (evRpt (list 'cutX M T)))  # Delete\n         (\"y\" (cutX (eval M)))  # Yank\n         (T (beep)) ) ) )\n\n(de chgRight (X)\n   (setq *Change \"c\")\n   (move 'goRight X) )\n\n(de jmpMark (C D X)\n   (cond\n      ((= C D)\n         (move 'goAbs\n            (or X (: buffer lastX))\n            (: buffer lastY) ) )\n      ((get (: buffer) (intern C 'vip))\n         (move 'goAbs (default X (car @)) (cdr @)) ) ) )\n\n(de wordFun (@W)\n   (setq *Search\n      (let @N (inc (length @W))\n         (curry (@W @N) (L C)\n            (and\n               (delimNs C)\n               (head '@W L)\n               (delimNs (get L @N)) ) ) ) ) )\n\n(de moveSearch (Fun1 Fun2)\n   (move Fun1 (lit Fun2) *Cnt) )\n\n(de patMatch (Fun Pat)\n   (moveSearch Fun (setq *Search (search> (: buffer) This Pat))) )\n\n(de parMatch (Fun1 @Par1 @Sup1 @ParO @ParC @SupO @SupC)\n   (moveSearch Fun1\n      (let (Par @Par1  Sup @Sup1)\n         (curry (Par Sup @Par1 @Sup1 @ParO @ParC @SupO @SupC) (L C)\n            (unless (caar L)\n               (and\n                  (case (car L)\n                     (@ParO (nil (inc 'Par)))\n                     (@ParC (or (not C) (= (dec 'Par) 0 Sup)))\n                     (@SupO (nil (push 'Sup Par) (zero Par)))\n                     (@SupC\n                        (or\n                           (not C)\n                           (= (setq Par (++ Sup)) 0 Sup) ) ) )\n                  (setq Par @Par1  Sup @Sup1) ) ) ) ) ) )\n\n(de braces (Fun1 @ParO @ParC)\n   (moveSearch Fun1\n      (let Par 1\n         (curry (Par @ParO @ParC) (L C)\n            (case (car L)\n               (@ParO (nil (inc 'Par)))\n               (@ParC (or (not C) (=0 (dec 'Par)))) ) ) ) ) )\n\n(de *Spell\n   \"hunspell\" \"-l\" \"-d\" \"en_US,de_DE\" )\n\n(de spell ()\n   (let? @W\n      (pipe\n         (out *Spell\n            (let Pos (nth (: buffer text) (: posY))\n               (prinl\n                  (seek\n                     '((L) (not (fold (car L))))\n                     (nth (++ Pos) (: posX)) ) )\n               (mapc prinl Pos) ) )\n         (line) )\n      (let @N (inc (length @W))\n         (moveSearch 'goForward\n            (setq *Search\n               (curry (@W @N) (L C)\n                  (and\n                     (not (fold C))\n                     (head '@W L)\n                     (not (fold (get L @N))) ) ) ) ) ) ) )\n\n(de pipeN (Cnt Line)\n   (evRpt\n      (fill\n         '(when (cdr (cutN Cnt))\n            (pipe (out (list *Shell \"-c\" Line) (mapc prinl @))\n               (paste (cons T (rdLines)) *@@) ) )\n         '(Line Cnt) ) ) )\n\n(de nextBuf (B)\n   (let? M (member (: buffer) *Buffers)\n      (when (flg? B)\n         (setq B\n            (car\n               (if B\n                  (or (prior M *Buffers) (tail 1 *Buffers))\n                  (or (cdr M) *Buffers) ) ) ) )\n      (=: mark)\n      (unless (== B (: buffer))\n         (=: last (: buffer))\n         (=: buffer B)\n         (unless (: buffer text)\n            (load> (: buffer) This) ) )\n      (off *StatNm)\n      (goto (: buffer posX) (: buffer posY)) ) )\n\n(de delBuf (Buf)\n   (for (This *CmdWin (this (: next)))\n      (cond\n         ((== Buf (: last))\n            (=: last) )\n         ((== Buf (: buffer))\n            (nextBuf (: last))\n            (=: last) ) ) )\n   (del Buf '*Buffers)\n   (=: last) )\n\n(de shell (S)\n   (vipZ)\n   (do *Columns (prin \"#\"))\n   (call *Shell \"-c\" S)\n   (prin \"[====] \")\n   (flush)\n   (getch)\n   (prinl)\n   (vipA)\n   (repaint) )\n\n(de shFile (S)\n   (when (: buffer file)\n      (shell (text S @ *Cnt)) ) )\n\n(de prCmd (L)\n   (with *CmdWin\n      (paste (cons T L) (: buffer text))\n      (inc (:: posY) (dec (length L))) ) )\n\n(de evCmd Prg\n   (out (tmp \"repl\")\n      (err NIL\n         (catch '(NIL)\n            (setq *@ (run Prg 1)  *Msg)\n            (print '-> *@)\n            (remark *@)\n            (prinl) ) )\n      (when @@\n         (prin \"!? \")\n         (println ^)\n         (prinl *Msg) ) )\n   (in (tmp \"repl\")\n      (prCmd (rdLines)) ) )\n\n(de cmd (Cmd . Fun)\n   (if (assoc Cmd *CmdMap)\n      (con @ Fun)\n      (push '*CmdMap (cons Cmd Fun)) ) )\n\n(de keys (Lst)\n   (setq *Keys Lst) )\n\n(de _map (@Map @C @S)\n   (macro\n      (push1 '@Map '(@C (keys (chop @S)))) ) )\n\n(de map+ (C . X)\n   (if (str? (car X))\n      (_map '*KeyMap C @)\n      (push1 '*KeyMap (cons C X)) ) )\n\n(de map+g (C . X)\n   (if (str? (car X))\n      (_map '*KeyMap-g C @)\n      (push1 '*KeyMap-g (cons C X)) ) )\n\n(de map+q (C . X)\n   (if (str? (car X))\n      (_map '*KeyMap-q C @)\n      (push1 '*KeyMap-q (cons C X)) ) )\n\n(de posChar ()\n   (get (: buffer text) (: posY) (: posX)) )\n\n(de getText Prg\n   (let (*Change \"y\"  *Clip (box))\n      (run Prg 1)\n      (glue \"\\n\" (val *Clip)) ) )\n\n(de s-expr ()\n   (any\n      (getText\n         (case (posChar)\n            (\"\\\"\" (move 'goFind \"\\\"\" 0 1))\n            (\"(\" (parMatch 'goForward 1 0 \"(\" \")\" \"[\" \"]\"))\n            (\"[\" (parMatch 'goForward 0 (0 . 0) \"(\" \")\" \"[\" \"]\"))\n            (T (move 'goForward 'end 1)) ) ) ) )\n\n(de reset ()\n   (off *Count *Change)\n   (setq *Clip '\\\"\\\") )\n\n(private) (Lst Ns L C S X)\n\n### Commands ###\n(de command (This Line)\n   (case (++ Line)\n      (\"/\" (patMatch 'goForward Line))  # Search forward\n      (\"?\" (patMatch 'goBackward Line))  # Search backward\n      (\"&\" (moveSearch 'goForward (wordFun Line)))  # Search word\n      (\":\"\n         (let Cnt 0\n            (while (format (car Line))\n               (setq Cnt (+ @ (* 10 Cnt)))\n               (++ Line) )\n            (let C (++ Line)\n               (when (>= \"z\" C \"a\")\n                  (until (sp? (car Line))\n                     (setq C (pack C (++ Line))) ) )\n               (let L (pack (clip Line))\n                  (if (or (assoc C (: buffer cmds)) (assoc C *CmdMap))\n                     ((cdr @) L Line Cnt)\n                     (case C\n                        (\" \"  # Eval\n                           (setq @ *@)\n                           (evCmd (run (str L))) )\n                        (\"$\"  # Shell command\n                           (cond\n                              (L\n                                 (scratch (tmp \"cmd\" (inc (0)))\n                                    (in (list *Shell \"-c\" (setq L (rplFile L)))\n                                       (rdLines) ) )\n                                 (=: buffer cmd L) )\n                              ((: buffer cmd)\n                                 (scratch (: buffer file)\n                                    (in (list *Shell \"-c\" @)\n                                       (rdLines) ) ) ) ) )\n                        (\"!\"  # External filter\n                           (when L\n                              (if (=0 Cnt)\n                                 (shell (rplFile L))\n                                 (pipeN Cnt L) ) ) )\n                        (\"cp\"  # Copy to system clipboard\n                           (out '(\"copy\")  # System dependent script\n                              (let V (val *Clip)\n                                 (if (=T (car V))\n                                    (mapc prinl (cdr V))\n                                    (map\n                                       '(((S . L)) (prin S (and L \"\\n\")))\n                                       V ) ) ) ) )\n                        (\"bak\" (shFile \"mv @1 @1- && cp -p @1- @1\"))  # Backup to <file>-\n                        (\"kab\"  # Restore from <file>-\n                           (shFile \"mv @1- @1 && cp -p @1 @1-\")\n                           (reload) )\n                        (\"ls\"  # List buffers\n                           (prCmd\n                              (make\n                                 (for (I . This) *Buffers\n                                    (link\n                                       (chop (pack \":\" I \" \" (prName (: file)))) ) ) ) ) )\n                        (\"key\" (=: buffer key L) (reload))\n                        (\"m\"\n                           (if L\n                              (when (info (=: mark (path (rplFile L))))\n                                 (in (: mark) (move 'goAbs (read) (read))) )\n                              (=: mark) ) )\n                        (\"n\" (nextBuf))  # Next buffer\n                        (\"N\" (nextBuf T))  # Previous buffer\n                        (\"tag\" (apply tag (str L)))\n                        (\"v\" (reload (syms (str L)) 1 1))\n                        (\"e\" (reload (rplFile L)))  # (Edit) Reload buffer\n                        (\"E\"  # (Edit) Toggle subdir recursion and reload buffer\n                           (=: buffer subd (not (: buffer subd)))\n                           (reload (rplFile L)) )\n                        (\"r\"  # Read file contents\n                           (let F (path (rplFile L))\n                              (when (info F)\n                                 (in F (paste (cons T (rdLines)) 1)) ) ) )\n                        (\"w\"  # (Write) Save buffer\n                           (if L\n                              (out (path (rplFile @))\n                                 (mapc prinl (: buffer text)) )\n                              (save> (: buffer) This) ) )\n                        (\"l\"  # (load) Save and load\n                           (when (: buffer file)\n                              (when (dirty> (: buffer) This)\n                                 (save> (: buffer) This) )\n                              (evCmd (load (: buffer file))) ) )\n                        ((\"x\" \"wq\") (done T))  # (Exit) Save buffer and close window\n                        (\"q\" (done))  # (Quit) Close window\n                        (\"bx\"  # Buffer exchange\n                           (let X (memq (: buffer) *Buffers)\n                              (if (cdr X)\n                                 (xchg X @)\n                                 (beep) ) ) )\n                        (\"bd\"  # Buffer delete\n                           (and\n                              (cdr *Buffers)\n                              (if (=0 Cnt) (: buffer) (get *Buffers Cnt))\n                              (delBuf @) ) )\n                        (\"map\"  # Add/remove key mappings\n                           (++ Line)\n                           (let C (++ Line)\n                              (until (sp? (car Line))\n                                 (setq C (pack C (++ Line))) )\n                              (if Line\n                                 (push '*KeyMap\n                                    (list C\n                                       (list 'keys\n                                          (lit (mapcar name (cdr Line))) ) ) )\n                                 (del (assoc C *KeyMap) '*KeyMap) ) ) )\n                        (T\n                           (if (get *Buffers Cnt)\n                              (nextBuf @)\n                              (beep) ) ) ) ) ) ) )\n         (with *CmdWin\n            (redraw) ) )\n      (T (beep)) ) )\n\n(de syms (Lst)\n   (prog1\n      (tmp \"syms\")\n      (syms> (fileBuffer @) Lst) ) )\n\n(de vipA ()\n   (screen2)\n   (raw T) )\n\n(de vipZ ()\n   (raw NIL)\n   (screen1) )\n\n### VIP Entry Point ###\n(de vi (Lst Ns)  # (file (pat . file) (99 . file) (T . file) (sym [sym ..])\n   (getSize)\n   (and Lst (co 'vip))\n   (co 'vip\n      (setq *Ns (symbols))\n      (and Ns (symbols @))\n      (off *Buffers)\n      (when (=0 (%@ \"isatty\" 'I 0))\n         (with (fileBuffer (tmp \"stdin\"))\n            (out (: file) (in 0 (echo))) )\n         (ctty \"/dev/tty\") )\n      (for X Lst\n         (cond\n            ((not X))\n            ((atom X) (fileBuffer X))  # Path name\n            ((pair (car X))  # Pattern\n               (wordFun @)\n               (fileBuffer (cdr X)) )\n            ((or (num? (car X)) (=T (car X)))  # Line number\n               (fileBuffer (cdr X) @) )\n            (T (syms X)) ) )  # List of symbols\n      (unless *Buffers\n         (fileBuffer (tmp \"empty\")) )\n      (vipA)\n      (let\n         (*Winch '((getSize) (eqwin) (flush))\n            *TStp1 '((vipZ))\n            *TStp2 '((vipA) (repaint) (cursor) (flush)) )\n         (reset)\n         (setq *CmdWin\n            (new '(+Window) (new '(+Buffer)) (dec *Lines) 1 1 1 1 1) )\n         (with (car *Buffers)\n            (load> This)\n            (setq *Window\n               (new '(+Window) This\n                  0 (- *Lines 2)\n                  1\n                  (min1\n                     (- (: posY) (/ (- *Lines 2) 2))\n                     (- (length (: text)) *Lines -3) )\n                  1 (: posY)\n                  *CmdWin ) ) )\n         (with *Window (redraw))\n         (finally (prog (rollback) (vipZ))\n            (catch 'done\n               (loop\n                  (setq *Cnt (max 1 (format *Count)))\n                  (with *Window\n                     (=: posX\n                        (min1 (: posX)\n                           (length\n                              (get (: buffer text)\n                                 (=: posY\n                                    (min1 (: posY) (length (: buffer text))) ) ) ) ) )\n                     (symbols (: buffer symbols))\n                     (when\n                        (or\n                           (> (: winX) (: posX))\n                           (> (: winY) (: posY)) )\n                        (=: winX (min1 (: posX) (: winX)))\n                        (=: winY (min1 (: posY) (: winY)))\n                        (redraw) )\n                     (cursor)\n                     (case (getch)\n                        (\"0\"\n                           (if *Count\n                              (queue '*Count \"0\")\n                              (move 'goAbs 1 (: posY))  # Go to beginning of line\n                              (off *Change) ) )\n                        ((\"1\" \"2\" \"3\" \"4\" \"5\" \"6\" \"7\" \"8\" \"9\")  # [\"Count\" prefix]\n                           (queue '*Count *Chr) )\n                        (\"\\\"\" (setq *Clip (intern (pack '\"\\\"\" (getch)) 'vip)))  # \"Register\" prefix\n                        ((\"!\" \"<\" \">\" \"c\" \"d\" \"y\")  # [\"Change\" prefix]\n                           (cond\n                              ((= *Chr *Change)\n                                 (case *Chr\n                                    (\"!\" (cmdPipe *Cnt))  # [!!] External filter\n                                    (\">\" (evRpt (list 'shiftN *Cnt T)))  # [>>] Shift line(s) right\n                                    (\"<\" (evRpt (list 'shiftN *Cnt)))  # [<<] Shift line(s) left\n                                    (\"c\" (=: posX 1) (chgRight T))  # [cc] Change whole line\n                                    (\"d\" (evRpt (list 'cutN *Cnt)))  # [dd] Delete line(s)\n                                    (\"y\"  # [yy] Yank line(s)\n                                       (set *Clip\n                                          (cons T\n                                             (head *Cnt (nth (: buffer text) (: posY))) ) ) ) )\n                                 (reset) )\n                              (*Change (off *Change))\n                              (T (setq *Change *Chr)) ) )\n                        (T\n                           (if (or (assoc *Chr (: buffer keys)) (assoc *Chr *KeyMap))\n                              (run (cdr @))\n                              (case *Chr\n                                 (\"\\e\")\n                                 ((\"\\n\" \"\\r\")\n                                    (if (== This *CmdWin)\n                                       (command (: next) (get (: buffer text) (: posY)))\n                                       (goto 1 (inc (: posY)) T)  # Go to next line\n                                       (do (: sc) (scRight))\n                                       (redraw) ) )\n                                 (\".\" (if *Repeat (eval @) (beep)))  # Repeat last change\n                                 ((\"j\" \"\\e[B\") (move 'goDown *Cnt))  # [DOWN] Move down\n                                 ((\"^F\" \"\\e[6~\") (move 'goDown (: lines)))  # [PGDOWN] Page down\n                                 ((\"k\" \"\\e[A\") (move 'goUp *Cnt))  # [UP] Move up\n                                 ((\"^B\" \"\\e[5~\") (move 'goUp (: lines)))  # [PGUP] Page up\n                                 (\"h\" (move 'goLeft *Cnt))  # Move left\n                                 (\"l\" (move 'goRight *Cnt))  # Move right\n                                 (\"\\e[D\" (do 2 (scLeft)) (redraw))  # [LEFT] Scroll left\n                                 (\"\\e[C\" (do 2 (scRight)) (redraw))  # [RIGHT] Scroll right\n                                 (\"z\" (do 3 (scRight)) (redraw))  # Scroll right 3 columns\n                                 (\"Z\" (do 3 (scLeft)) (redraw))  # Scroll left 3 columns\n                                 (\"|\" (move 'goCol *Cnt))  # Go to column\n                                 (\"$\" (move 'goRight T))  # Go to end of line\n                                 ((\"\\e[1~\" \"\\e[H\") (move 'goAbs 1 1))  # [HOME] Go to beginning of text\n                                 ((\"\\e[4~\" \"\\e[F\") (move 'goAbs 1 T))  # [END] Go to end of text\n                                 (\"G\" (move 'goAbs 1 (or (format *Count) T)))  # [G] Go to end of text or line number\n                                 (\"f\" (and (getch2 (getch)) (move 'goFind @ 0 *Cnt)))  # Find character\n                                 (\"t\" (and (getch2 (getch)) (move 'goFind @ -1 *Cnt)))  # Till character\n                                 (\"\\t\" (move 'goForward 'tword *Cnt))  # TAB word forward\n                                 (\"w\" (move 'goForward 'word *Cnt))  # Word forward\n                                 (\"W\" (move 'goForward 'lword *Cnt))  # Long word forward\n                                 (\"b\" (move 'goBackward 'word *Cnt))  # Word backward\n                                 (\"B\" (move 'goBackward 'lword *Cnt))  # Long word backward\n                                 (\"e\" (move 'goForward 'end *Cnt))  # End of word\n                                 (\"E\" (move 'goForward 'lend *Cnt))  # End of long word\n                                 (\"{\" (move 'goPBack *Cnt))  # Paragraph(s) backward\n                                 (\"}\" (move 'goPFore *Cnt 0))  # Paragraph(s) forward\n                                 (\"'\" (jmpMark (getch) \"'\" 1))  # Jump to mark line\n                                 (\"`\" (jmpMark (getch) \"`\")) # Jump to mark position\n                                 (\"~\" (evRpt (list 'tglCase *Cnt)))  # Toggle case\n                                 ((\":\" \" \") (cmdMode (name \":\")))  # Command\n                                 (\"/\" (cmdMode (name \"/\")))  # Search forward\n                                 (\"?\" (cmdMode (name \"?\")))  # Search backward\n                                 (\"&\" (cmdMode (name \"&\")))  # Search word\n                                 (\"n\"  # Search next\n                                    (if *Search\n                                       (move 'goForward (lit @) *Cnt)\n                                       (beep) ) )\n                                 (\"N\"  # Search previous\n                                    (if *Search\n                                       (move 'goBackward (lit @) *Cnt)\n                                       (beep) ) )\n                                 (\"*\"  # Search word under cursor\n                                    (and (getWord) (moveSearch 'goForward (wordFun @))) )\n                                 (\"#\"  # Search word under cursor backward\n                                    (and (getWord) (moveSearch 'goBackward (wordFun @))) )\n                                 (\"%\"  # Matching parenthesis\n                                    (case (posChar)\n                                       (\"(\" (parMatch 'goForward 1 0 \"(\" \")\" \"[\" \"]\"))\n                                       (\"[\" (parMatch 'goForward 0 (0 . 0) \"(\" \")\" \"[\" \"]\"))\n                                       (\"{\" (braces 'goForward \"{\" \"}\"))\n                                       (\")\" (parMatch 'goBackward 1 0 \")\" \"(\" \"]\" \"[\"))\n                                       (\"]\" (parMatch 'goBackward 0 (0 . 0) \")\" \"(\" \"]\" \"[\"))\n                                       (\"}\" (braces 'goBackward \"}\" \"{\"))\n                                       (T (beep)) ) )\n                                 (\"i\"  # Insert\n                                    (when (insMode)\n                                       (setq *Repeat (list 'paste (lit @))) ) )\n                                 (\"I\"  # Insert at beginning of line\n                                    (goto 1 (: posY))\n                                    (when (insMode)\n                                       (setq *Repeat (list 'paste (lit @) 0)) ) )\n                                 (\"a\"  # Append\n                                    (when (get (: buffer text) (: posY) 1)\n                                       (inc (:: posX)) )\n                                    (when (insMode 1)\n                                       (setq *Repeat (list 'paste (lit @) 1)) ) )\n                                 (\"A\"  # Append to end of line\n                                    (goto\n                                       (inc (length (get (: buffer text) (: posY))))\n                                       (: posY)\n                                       T )\n                                    (when (insMode 1)\n                                       (setq *Repeat (list 'paste (lit @) T)) ) )\n                                 (\"o\"  # Open new line below current line\n                                    (setq *Repeat (list 'paste (lit (insMode T)) T)) )\n                                 (\"O\"  # Open new line above current line\n                                    (setq *Repeat (list 'paste (lit (insMode 0)) 0)) )\n                                 (\"x\" (setq *Change \"d\") (move 'goRight *Cnt))  # Delete characters\n                                 (\"X\" (setq *Change \"d\") (move 'goLeft *Cnt))  # Delete characters left\n                                 (\"D\" (setq *Change \"d\") (move 'goRight T))  # Delete rest of line\n                                 (\"p\" (evRpt (list 'paste (lit (val *Clip)) 1)))  # Paste after current position\n                                 (\"P\" (evRpt (list 'paste (lit (val *Clip)))))  # Paste before current position\n                                 (\"J\" (evRpt (list 'join *Cnt)))  # Join lines\n                                 (\"m\"  # Set mark\n                                    (put (: buffer) (intern (getch) 'vip)\n                                       (cons (: posX) (: posY)) ) )\n                                 (\"M\" (=: sc (dec (: winX))))  # Mark horizontal scroll position\n                                 (\"r\"  # Replace character(s)\n                                    (and (getch2 (getch)) (evRpt (list 'insChar @ *Cnt))) )\n                                 (\"R\"  # Replace\n                                    (when (insMode NIL NIL T)\n                                       (setq *Repeat (list 'overwrite (lit @))) ) )\n                                 (\"s\" (chgRight 1))  # Substitute character\n                                 (\"C\" (chgRight T))  # Change rest of line\n                                 (\"S\" (=: posX 1) (chgRight T))  # Change whole line\n                                 (\",\" (evRpt '(indent)))  # Fix indentation\n                                 (\"^A\" (evRpt (list 'incNum *Cnt)))\n                                 (\"^X\" (evRpt (list 'incNum (- *Cnt))))\n                                 (\"u\" (undo))  # Undo\n                                 (\"^R\" (redo))  # Redo\n                                 (\"^E\" (evCmd (eval (s-expr))))  # Evaluate expression\n                                 (\"g\"  # [\"Go\" prefix]\n                                    (if (assoc (getch) *KeyMap-g)\n                                       (run (cdr @))\n                                       (case *Chr\n                                          (\"f\"  # [gf] Edit file under cursor\n                                             (pushTag (: buffer file))\n                                             (reload (pack (getWord))) )\n                                          (\"w\"  # [gw] Web page\n                                             (scratch (tmp \"web\" (inc (0)))\n                                                (in (list \"w3m\" \"-cols\" *Columns (getWord))\n                                                   (rdLines) ) ) )\n                                          (\"h\"  # [gh] HTTP code\n                                             (scratch (tmp \"http\" (inc (0)))\n                                                (in (list \"w3m\" \"-dump_both\" (getWord))\n                                                   (rdLines) ) ) )\n                                          (\"b\"  # [gb] Browser\n                                             (vipZ)\n                                             (call (or (sys \"BROWSER\") \"w3m\") (getWord))\n                                             (vipA)\n                                             (repaint) )\n                                          (\"g\" (move 'goAbs 1 (or (format *Count) 1)))  # [gg] Go to beginning of text\n                                          (\"s\" (spell))\n                                          (T (beep)) ) ) )\n                                 (\"+\"  # Increase window size\n                                    (loop\n                                       (NIL (this (: prev))\n                                          (for (This (; *Window next) This (: next))\n                                             (T (> (: lines) 1)\n                                                (with *Window\n                                                   (chgwin (inc (: lines)) (dec (: top)))\n                                                   (for (This (: next) (=1 (: lines)) (: next))\n                                                      (chgwin 1 (dec (: top))) ) )\n                                                (chgwin (dec (: lines))) ) ) )\n                                       (T (> (: lines) 1)\n                                          (with *Window\n                                             (chgwin (inc (: lines)))\n                                             (for (This (: prev) (=1 (: lines)) (: prev))\n                                                (chgwin 1 (inc (: top))) ) )\n                                          (chgwin (dec (: lines)) (inc (: top))) ) ) )\n                                 (\"-\"  # Decrease window size\n                                    (cond\n                                       ((=1 ( : lines)))\n                                       ((: prev)\n                                          (chgwin (dec (: lines)))\n                                          (with (: prev)\n                                             (chgwin (inc (: lines)) (dec (: top))) ) )\n                                       (T\n                                          (chgwin (dec (: lines)) (inc (: top)))\n                                          (with (: next)\n                                             (chgwin (inc (: lines))) ) ) ) )\n                                 (\"=\" (eqwin))  # Set all windows to equal size\n                                 (\"K\"  # Edit symbol\n                                    (let S (any (getWord))\n                                       (ifn (: buffer syms)\n                                          (tag S)\n                                          (pushTag @)\n                                          (syms> (: buffer) (cons S @))\n                                          (reload (: buffer file) 1 1) ) ) )\n                                 (\"^]\"  # Edit symbol definition\n                                    (tag (any (getWord))) )\n                                 ((\"Q\" \"^T\")  # Pop tag stack\n                                    (ifn *TagStack\n                                       (beep)\n                                       (symbols (++ *TagStack))\n                                       (if (atom (car *TagStack))\n                                          (reload (++ *TagStack) (++ *TagStack) (++ *TagStack))\n                                          (syms> (: buffer) (++ *TagStack))\n                                          (reload (: buffer file) (++ *TagStack) (++ *TagStack)) ) ) )\n                                 ((\"\\eOP\" \"\\e[[A\")  # [F1] Highlight on/off\n                                    (=: buffer flat (not (: buffer flat)))\n                                    (repaint) )\n                                 ((\"\\eOQ\" \"\\e[[B\")  # [F2] Show chages to <file>-\n                                    (shFile\n                                       (if (sys \"CCRYPT\" (: buffer key))\n                                          \"diff -Bb <(ccrypt -c -ECCRYPT @1-) <(ccrypt -c -ECCRYPT @1)\"\n                                          \"diff -Bb @1- @1\" ) ) )\n                                 ((\"\\eOR\" \"\\e[[C\")  # [F3] Custom dif\n                                    (shFile \"dif @1 @2\") )\n                                 ((\"\\eOS\" \"\\e[[D\")  # [F4] Format paragraph\n                                    (and *Count (=: buffer fmt @))\n                                    (goPFore 1 -1)\n                                    (pipeN (cnt@@) (pack \"fmt -\" (: buffer fmt))) )\n                                 ((\"\\e[15~\" \"\\e[[E\")  # [F5] Previous buffer\n                                    (nextBuf T) )\n                                 (\"\\e[17~\"  # [F6] Next buffer\n                                    (nextBuf) )\n                                 (\"\\e[18~\" (run *F7))  # [F7] Custom key\n                                 (\"\\e[19~\" (run *F8))  # [F8] Custom key\n                                 (\"\\e[20~\" (run *F9))  # [F9] Custom key\n                                 (\"\\e[21~\" (run *F10))  # [F10] Custom key\n                                 (\"\\e[23~\" (run *F11))  # [F11] Custom key\n                                 (\"\\e[24~\" (run *F12))  # [F12] Custom key\n                                 (\"\\\\\"  # Select or toggle buffer\n                                    (nextBuf\n                                       (if *Count\n                                          (get *Buffers (format @))\n                                          (or (: last) (car *Buffers)) ) ) )\n                                 ((\"q\" \"^W\")  # [\"Window\" prefix]\n                                    (if (assoc (getch) *KeyMap-q)\n                                       (run (cdr @))\n                                       (case *Chr\n                                          (\"s\"  # [qs] Split window\n                                             (unless (== This *CmdWin)\n                                                (let (Old (inc (: lines))  New (/ Old 2))\n                                                   (with\n                                                      (new (val This) (: buffer)\n                                                         (+ (: top) New) (- Old New 1)\n                                                         (: winX) (: winY)\n                                                         (: posX) (: posY)\n                                                         (: prev)\n                                                         (: mark) )\n                                                      (goto (: posX) (: posY)) )\n                                                   (=: mark)\n                                                   (chgwin (dec New)) ) ) )\n                                          (\"x\"  # [qx] Exchange windows\n                                             (and\n                                                (; *CmdWin next next)\n                                                (n== This *CmdWin)\n                                                (let W (if (== (: prev) *CmdWin) (: next) (: prev))\n                                                   (for P '(buffer winX winY posX posY last mark sc)\n                                                      (xchg (prop This P) (prop W P)) )\n                                                   (goto (: posX) (: posY))\n                                                   (with W\n                                                      (goto (: posX) (: posY)) ) ) ) )\n                                          (\"k\" (and (: next) (setq *Window @)))  # [qk] Above window\n                                          (\"j\" (and (: prev) (setq *Window @)))  # [qj] Below window\n                                          (\"q\" (done))  # [qq] (Quit) Close window\n                                          (\"z\" (run *TStp1) (yield) (run *TStp2))  # [qz] Suspend\n                                          (T (beep)) ) ) )\n                                 (\"v\" (view> This))  # View hook\n                                 (T (beep)) ) )\n                           (reset) ) ) ) ) ) ) ) ) )\n\n(and (info \"~/.pil/viprc\") (load @@))\n\n### Debug ###\n`*Dbg\n\n(de pico~vi (X C)\n   (setq C\n      (if C\n         (or\n            (get C '*Dbg -1 X)\n            (meta C '*Dbg -1 X) )\n         (get X '*Dbg 1) ) )\n   (and\n      (vi\n         (list\n            (cond\n               ((pair X) @)\n               (C (cons (car @) (cadr @)))\n               (T X) ) )\n         (cddr C) )\n      X ) )\n\n(de pico~v Lst\n   (cond\n      (Lst (vi (list @)))\n      ((asoq 'vip (stack)) (vi)) ) )\n"
  },
  {
    "path": "lib/xhtml/area",
    "content": "<textarea wrap=\"off\" cols=\"¦COLS¦\" rows=\"¦ROWS¦\"¦(run PRG)¦>\n</textarea>\n"
  },
  {
    "path": "lib/xhtml/field",
    "content": "<input type=\"¦TYPE¦\"¦(run PRG)¦/>\n"
  },
  {
    "path": "lib/xhtml/grid",
    "content": "<table class=\"grid\">\n<tr>\n<td¦(and ATTR (htStyle @))¦>¦(run PRG)¦</td>\n</tr>\n</table>\n"
  },
  {
    "path": "lib/xhtml/html",
    "content": "<!DOCTYPE html>\n<html lang=\"¦LANG¦\">\n<head>\n   <meta name=\"viewport\" content=\"width=device-width\"/>\n   ¦(run PRG)¦</head>\n<body¦(and ATTR (htStyle @))¦>\n   ¦(run PRG)¦</body>\n</html>\n"
  },
  {
    "path": "lib/xhtml/input",
    "content": "<input type=\"¦TYPE¦\"¦(run PRG)¦/>\n"
  },
  {
    "path": "lib/xhtml/layout",
    "content": ""
  },
  {
    "path": "lib/xhtml/menu",
    "content": "<>\n<ul>\n<li>¦(run PRG)¦</li>\n<li class=\"cmd\">¦(run PRG)¦</li>\n<li class=\"cmd\"><a href=\"¦(prin LINK)¦\" title=\"--&gt;\">¦(run PRG)¦</a></li>\n<li class=\"act\"><a href=\"¦(prin LINK)¦\" title=\"--&gt;\">¦(run PRG)¦</a></li>\n<li class=\"sub¦LEVEL¦\"><a href=\"¦(prin LINK)¦\" title=\"¦TITLE¦\">¦(run PRG)¦</a></li>\n<li class=\"top¦LEVEL¦\"><a href=\"¦(prin LINK)¦\" title=\"¦TITLE¦\">¦(run PRG)¦</a>\n</li>\n</ul>\n<>\n"
  },
  {
    "path": "lib/xhtml/select",
    "content": "<select¦(run PRG)¦>\n<option¦(and ATTR (htStyle @))¦ title=\"¦TITLE¦\"¦(eval (car PRG))¦>¦(run (cdr PRG))¦</option>\n</select>\n\n"
  },
  {
    "path": "lib/xhtml/submit",
    "content": "<input type=\"¦TYPE¦\"¦(run PRG)¦/>\n"
  },
  {
    "path": "lib/xhtml/tab",
    "content": "<table class=\"tab\"><tr>\n<td class=\"top\">¦(run PRG)¦</td>\n<td class=\"sub\"><a href=\"¦(prin LINK)¦\">¦(run PRG)¦</a></td>\n</tr></table>\n"
  },
  {
    "path": "lib/xhtml/table",
    "content": "<table¦(and ATTR (htStyle @))¦>\n<caption>¦(run PRG)¦</caption>\n<tr>\n<th¦(and ATTR (htStyle @))¦>¦(run PRG)¦</th>\n</tr>\n<tr>\n<td¦(and ATTR (htStyle @))¦>¦(run PRG)¦</td>\n</tr>\n</table>\n"
  },
  {
    "path": "lib/xhtml.l",
    "content": "# 11mar25 Software Lab. Alexander Burger\n\n(de xhtml (Path)\n   (for X\n      (quote\n         (\"html\" . *XhtmlHtml)\n         (\"table\" . *XhtmlTable)\n         (\"grid\" . *XhtmlGrid)\n         (\"layout\" . *XhtmlLayout)\n         (\"menu\" . *XhtmlMenu)\n         (\"tab\" . *XhtmlTab)\n         (\"input\" . *XhtmlInput)\n         (\"field\" . *XhtmlField)\n         (\"area\" . *XhtmlArea)\n         (\"select\" . *XhtmlSelect)\n         (\"submit\" . *XhtmlSubmit) )\n      (when (info (pack Path (++ X)))\n         (set X\n            (in @@\n               (make\n                  (until (eof)\n                     (let? L (clip (line))\n                        (while (= \" \" (peek))\n                           (conc L (list \"\\n\") (clip (line))) )\n                        (setq L (split (replace L \"~\" *SesId) \"¦\"))\n                        (link\n                           (unless (= L '((\"<\" \">\")))\n                              (make\n                                 (loop\n                                    (link (pack (++ L)))\n                                    (NIL L)\n                                    (link (any (++ L)))\n                                    (NIL L) ) ) ) ) ) ) ) ) ) ) ) )\n\n(private) Lst\n\n(de micro (Lst . PRG)\n   (when Lst\n      (loop\n         (prin (++ Lst))\n         (NIL Lst)\n         (if (atom (car Lst))\n            (ht:Prin (eval (++ Lst)))\n            (eval (++ Lst)) )\n         (NIL Lst) )\n      (prinl) ) )\n\n(xhtml \"@lib/xhtml/\")\n\n(mapc allow '(*JS *Menu *Tab *ID \"!ping\"))\n(setq *Menu 0  *Tab 1)\n(off \"*JS\")\n\n(private) (Prg Ofs X Attr Cls Var Val Nm JS)\n\n(de htPrin (Prg Ofs)\n   (default Ofs 1)\n   (for X Prg\n      (if (atom X)\n         (ht:Prin (eval X Ofs))\n         (eval X Ofs) ) ) )\n\n(de htJs ()\n   (for X \"*JS\"\n      (prin \" \" (car X) \"=\\\"\")\n      (ht:Prin (cdr X))\n      (prin \"\\\"\") ) )\n\n(de htStyle (Attr)\n   (cond\n      ((atom Attr)\n         (prin \" class=\\\"\")\n         (ht:Prin Attr)\n         (prin \"\\\"\") )\n      ((and (atom (car Attr)) (atom (cdr Attr)))\n         (prin \" \" (car Attr) \"=\\\"\")\n         (ht:Prin (cdr Attr))\n         (prin \"\\\"\") )\n      (T (mapc htStyle Attr)) ) )\n\n(de dfltCss (Cls)\n   (htStyle\n      (cond\n         ((not *Style) Cls)\n         ((atom *Style) (pack *Style \" \" Cls))\n         ((and (atom (car *Style)) (atom (cdr *Style)))\n            (list Cls *Style) )\n         ((find atom *Style)\n            (replace *Style @ (pack @ \" \" Cls)) )\n         (T (cons Cls *Style)) ) ) )\n\n(de tag (Nm Attr Ofs Prg)\n   (prin \"<\" Nm)\n   (and Attr (htStyle @))\n   (prin \">\")\n   (if (atom Prg)\n      (ht:Prin (eval Prg Ofs))\n      (for X Prg\n         (if (atom X)\n            (ht:Prin (eval X Ofs))\n            (eval X Ofs) ) ) )\n   (prin \"</\" Nm \">\") )\n\n(de <tag> (Nm Attr . Prg)\n   (tag Nm Attr 2 Prg) )\n\n(de <js> (JS . Prg)\n   (let \"*JS\" (append \"*JS\" JS)\n      (run Prg) ) )\n\n(de style (X S)\n   (nond\n      (X S)\n      (S X)\n      ((pair X)\n         (cond\n            ((atom S) (pack S \" \" X))\n            ((and (atom (car S)) (atom (cdr S)))\n               (list X S) )\n            ((find atom S)\n               (replace S @ (pack @ \" \" X)) )\n            (T (cons X S)) ) )\n      ((or (pair (car X)) (pair (cdr X)))\n         (cond\n            ((atom S) (list S X))\n            ((and (atom (car S)) (atom (cdr S)))\n               (if (= (car X) (car S))\n                  X\n                  (list S X) ) )\n            (T\n               (cons X (delete (assoc (car X) S) S)) ) ) )\n      (NIL\n         (for Y X\n            (setq S (style Y S)) ) ) ) )\n\n(de <style> (X . Prg)\n   (let *Style (style X *Style)\n      (run Prg) ) )\n\n(de nonblank (Str)\n   (or Str `(pack (char 160) (char 160))) )\n\n(de <javascript> @\n   (prin \"<script type=\\\"text/javascript\\\">\")\n   (pass prin)\n   (prinl \"</script>\") )\n\n(private) (Upd Ttl Css)\n\n### XHTML output ###\n(de html (Upd Ttl Css ATTR . Prg)\n   (httpHead NIL Upd)\n   (let ((Beg Html Head Body End) *XhtmlHtml)\n      (ht:Out *Chunked\n         (micro Beg)\n         (let LANG (or *Lang \"en\")\n            (micro Html) )\n         (micro Head\n            (and (fin Ttl) (<tag> \"title\" NIL @) (prinl))\n            (mapc prinl Ttl)\n            (and *Host *Port (prinl \"<base href=\\\"\" (baseHRef) \"\\\"/>\"))\n            (when Css\n               (if (atom Css)\n                  (css Css)\n                  (mapc css Css)\n                  (when (fin Css)\n                     (prinl \"<style type=\\\"text/css\\\">\")\n                     (prinl @)\n                     (prinl \"</style>\") ) ) )\n            (and *SesId (<javascript> \"SesId='\" @ \"'\"))\n            (mapc javascript *JS) )\n         (micro Body\n            (htPrin Prg 3) )\n         (micro End) ) ) )\n\n(de css (Css)\n   (prinl \"<link rel=\\\"stylesheet\\\" type=\\\"text/css\\\" href=\\\"\" (srcUrl Css) \"\\\"/>\") )\n\n(de javascript (JS . @)\n   (when JS\n      (prinl \"<script type=\\\"text/javascript\\\" src=\\\"\" (srcUrl JS) \"\\\"></script>\") )\n   (and (rest) (<javascript> @)) )\n\n(de serverSentEvent (Id Var . Prg)\n   (allow \"!ssEvt\")\n   (<javascript>\n      \"(new EventSource(SesId+'!ssEvt?'+'\"\n      Id\n      \"')).onmessage = function(ev) {if (ev.data.charAt(0) == '&') document.title = ev.data.substr(1); else document.getElementById('\"\n      Id\n      \"').\"\n      (if (lst? (car Prg)) \"innerHTML\" (++ Prg))\n      \" = ev.data;}\" )\n   (if (assoc Id *SsEvts)\n      (con @ (cons Var (unless (val Var) Prg)))\n      (push '*SsEvts (cons Id Var Prg)) ) )\n\n(de ssEvt (Id)\n   (when (assoc Id *SsEvts)\n      (let ((@Var . Prg) (cdr @))\n         (task *HtSock)\n         (macro\n            (and @Var (task (close @Var)))\n            (task (setq @Var *HtSock)\n               (in @\n                  (unless (char)\n                     (task (close @Var))\n                     (off @Var) ) ) ) )\n         (httpHead \"text/event-stream\" 0)\n         (run Prg) ) ) )\n\n(private) Sock\n\n(de serverSend (Sock . Prg)\n   (when Sock\n      (out @\n         (ht:Out T\n            (prin \"data: \")\n            (output\n               (cond\n                  ((<> \"\\n\" @@) (prin @@))\n                  (@@@ (prin \"\\ndata: \")) )\n               (htPrin Prg 2) )\n            (prinl \"\\n\") ) ) ) )\n\n(de ping (Min)\n   (timeout (setq *Timeout (* Min `(* 60 1000))))\n   (respond) )\n\n(de <ping> (Min)\n   (<javascript> \"onload=ping(\" Min \")\") )\n\n(de <progress> (Val Max)\n   (ifn Val\n      (<div> '(id . \"progress\")\n         (<tag> \"progress\" '((value . 0) (max . 99)))\n         (serverSentEvent \"progress\" '*Progress) )\n      (wait 1)\n      (serverSend *Progress\n         (unless (=T Val)\n            (<tag> \"progress\"\n               (list\n                  (cons 'value Val)\n                  (cons 'max Max) ) )\n            (<span> \"center\"\n               (prin  \"<br/>\" (*/ Val 100 Max) \" %\") ) ) ) ) ) \n\n(de <div> (Attr . Prg)\n   (tag \"div\" Attr 2 Prg)\n   (prinl) )\n\n(de <span> (Attr . Prg)\n   (tag \"span\" Attr 2 Prg) )\n\n(de <br> Prg\n   (htPrin Prg 2)\n   (prinl \"<br/>\") )\n\n(de -- ()\n   (prinl \"<br/>\") )\n\n(de ---- ()\n   (prinl \"<br/><br/>\") )\n\n(de <hr> ()\n   (prinl \"<hr/>\") )\n\n(de <nbsp> (N)\n   (do (or N 1) (prin \"&nbsp;\")) )\n\n(de <small> Prg\n   (tag \"small\" NIL 2 Prg) )\n\n(de <big> Prg\n   (tag \"big\" NIL 2 Prg) )\n\n(de <em> Prg\n   (tag \"em\" NIL 2 Prg) )\n\n(de <strong> Prg\n   (tag \"strong\" NIL 2 Prg) )\n\n(de <h1> (Attr . Prg)\n   (tag \"h1\" Attr 2 Prg)\n   (prinl) )\n\n(de <h2> (Attr . Prg)\n   (tag \"h2\" Attr 2 Prg)\n   (prinl) )\n\n(de <h3> (Attr . Prg)\n   (tag \"h3\" Attr 2 Prg)\n   (prinl) )\n\n(de <h4> (Attr . Prg)\n   (tag \"h4\" Attr 2 Prg)\n   (prinl) )\n\n(de <h5> (Attr . Prg)\n   (tag \"h5\" Attr 2 Prg)\n   (prinl) )\n\n(de <h6> (Attr . Prg)\n   (tag \"h6\" Attr 2 Prg)\n   (prinl) )\n\n(de <p> (Attr . Prg)\n   (tag \"p\" Attr 2 Prg)\n   (prinl) )\n\n(de <pre> (Attr . Prg)\n   (tag \"pre\" Attr 2 Prg)\n   (prinl) )\n\n(de <ol> (Attr . Prg)\n   (tag \"ol\" Attr 2 Prg)\n   (prinl) )\n\n(de <ul> (Attr . Prg)\n   (tag \"ul\" Attr 2 Prg)\n   (prinl) )\n\n(de <li> (Attr . Prg)\n   (tag \"li\" Attr 2 Prg)\n   (prinl) )\n\n(de <dl> (Attr . Prg)\n   (tag \"dl\" Attr 2 Prg)\n   (prinl) )\n\n(de <dt> (Attr . Prg)\n   (tag \"dt\" Attr 2 Prg)\n   (prinl) )\n\n(de <dd> (Attr . Prg)\n   (tag \"dd\" Attr 2 Prg)\n   (prinl) )\n\n(de <a> (Nm . Prg)\n   (prin \"<a name=\\\"\" Nm \"\\\">\")\n   (htPrin Prg 2)\n   (prinl  \"</a>\") )\n\n(de <href> (Str Url Tar)\n   (prin \"<a href=\\\"\"\n      (sesId\n         (ifn (pre? \"+\" Url)\n            Url\n            (setq Tar \"_blank\")\n            (pack (cdr (chop Url))) ) )\n      \"\\\"\" )\n   (and Tar (prin \" target=\\\"\" Tar \"\\\"\"))\n   (and *Style (htStyle @))\n   (prin \">\")\n   (ht:Prin Str)\n   (prin \"</a>\") )\n\n(de <img> (Src Alt Url DX DY)\n   (when Url\n      (prin \"<a href=\\\"\"\n         (sesId\n            (ifn (pre? \"+\" Url)\n               Url\n               (pack (cdr (chop Url)) \"\\\" target=\\\"_blank\") ) )\n         \"\\\">\" ) )\n   (prin \"<img src=\\\"\" (sesId Src) \"\\\"\")\n   (when Alt\n      (prin \" alt=\\\"\")\n      (ht:Prin Alt)\n      (prin \"\\\"\") )\n   (and DX (prin \" width=\\\"\" DX \"\\\"\"))\n   (and DY (prin \" height=\\\"\" DY \"\\\"\"))\n   (and *Style (htStyle @))\n   (prin \"/>\")\n   (and Url (prin \"</a>\")) )\n\n(de <this> (Var Val . Prg)\n   (prin \"<a href=\\\"\"\n      (urlMT (sesId *Url) *Menu *Tab *ID\n         (pack \"&\"\n            (fin Var) \"=\" (ht:Fmt Val)\n            (and (pair Var) (car @))\n            \"\\\"\" ) ) )\n   (and *Style (htStyle @))\n   (prin \">\")\n   (htPrin Prg 2)\n   (prin \"</a>\") )\n\n(private) (Attr Prg)\n\n(de <th> (Attr . Prg)\n   (tag \"th\" Attr 2 Prg) )\n\n(de <tr> (Attr . Prg)\n   (tag \"tr\" Attr 2 Prg) )\n\n(de <td> (Attr . Prg)\n   (tag \"td\" Attr 2 Prg) )\n\n(de <thead> (Attr . Prg)\n   (tag \"thead\" Attr 2 Prg) )\n\n(de <tbody> (Attr . Prg)\n   (tag \"tbody\" Attr 2 Prg) )\n\n(private) (Attr Ttl Head Prg *RowF Beg BegR Row EndR End C H L Y A N)\n\n(de <table> (ATTR Ttl Head . Prg)\n   (on *RowF)\n   (let ((Beg C BegR Row EndR NIL NIL NIL End) *XhtmlTable)\n      (micro Beg)\n      (when Ttl\n         (micro C\n            (ht:Prin (eval Ttl 2)) ) )\n      (when (find cdr Head)\n         (micro BegR)\n         (for H Head\n            (let ATTR (car H)\n               (micro Row\n                  (htPrin (cdr H) 3) ) ) )\n         (micro EndR) )\n      (htPrin Prg 3)\n      (micro End) ) )\n\n(de alternating ()\n   (onOff *RowF) )\n\n(de <row> (Attr . Prg)\n   (let ((Beg C NIL NIL NIL BegR Row EndR End) *XhtmlTable  H Head)\n      (micro BegR)\n      (while Prg\n         (let (Y (++ Prg)  A (car (++ H))  N 1)\n            (while (== '- (car Prg))\n               (inc 'N)\n               (++ Prg)\n               (++ H) )\n            (let ATTR\n               (style Attr\n                  (style\n                     (and (> N 1) (cons \"colspan\" N))\n                     (if (== 'align A) '(align (align . right)) A) ) )\n               (micro Row\n                  (if (atom Y)\n                     (ht:Prin (eval Y 2))\n                     (eval Y 2) ) ) ) ) )\n      (micro EndR) ) )\n\n(private) (Y Lst L E N)\n\n(de <grid> (Y . Lst)\n   (let ((Beg BegR Row EndR End) *XhtmlGrid)\n      (micro Beg)\n      (while Lst\n         (micro BegR)\n         (use Y\n            (let L (and (sym? Y) (chop Y))\n               (do (or (num? Y) (length Y))\n                  (let\n                     (ATTR\n                        (cond\n                           ((pair Y) (++ Y))\n                           ((= \".\" (++ L)) \"align\") )\n                        E (++ Lst) )\n                     (unless (== '- E)\n                        (when (== '- (car Lst))\n                           (let N 1\n                              (for (P Lst (and P (== '- (++ P))))\n                                 (inc 'N) )\n                              (push 'N \"colspan\")\n                              (setq ATTR (if ATTR (list ATTR N) N)) ) )\n                        (micro Row\n                           (if (atom E)\n                              (ht:Prin (eval E 2))\n                              (eval E 2) ) ) ) ) ) ) )\n         (micro EndR) )\n      (micro End) ) )\n\n(de <trident> Lst\n   (<table> '(width . \"100%\") NIL NIL\n      (<tr> NIL\n         (<td> '((width . \"33%\") (align . left))\n            (eval (car Lst) 1) )\n         (<td> '((width . \"34%\") (align . center))\n            (eval (cadr Lst) 1) )\n         (<td> '((width . \"33%\") (align . right))\n            (eval (caddr Lst) 1) ) ) ) )\n\n(de <spread> Lst\n   (<table> '(width . \"100%\") NIL '((norm) (align))\n      (<row> NIL\n         (eval (car Lst) 5)\n         (run (cdr Lst) 5) ) ) )\n\n(private) (X Txt Prg)\n\n(de tip (X Txt)\n   (<span> (cons 'title (glue \"\\n\" X)) Txt) )\n\n(de <tip> (X . Prg)\n   (let *Style (style (cons 'title (glue \"\\n\" X)) *Style)\n      (run Prg) ) )\n\n(private) (Lst P LayX LayY L Args DX DY Cls Style)\n\n# Layout\n(de <layout> Lst\n   (let\n      (Lay *XhtmlLayout\n         P (and (=T (car Lst)) (++ Lst))\n         LayX 0\n         LayY 0 )\n      (ifn Lay\n         (recur (Lst LayX)\n            (use (LayX LayY)\n               (for L Lst\n                  (let\n                     (Args (mapcar eval (cddar L))\n                        DX (eval (caar L))\n                        DY (eval (cadar L))\n                        Cls (unless (sub? \":\" (car Args)) (++ Args))\n                        Style\n                        (cons 'style\n                           (glue \"; \"\n                              (cons\n                                 \"position:absolute\"\n                                 (pack \"top:\" LayY (if P \"%\" \"px\"))\n                                 (pack \"left:\" LayX (if P \"%\" \"px\"))\n                                 (cond\n                                    ((=0 DX) \"min-width:100%\")\n                                    (DX (pack \"width:\" DX (if P \"%\" \"px\"))) )\n                                 (cond\n                                    ((=0 DY) \"min-height:100%\")\n                                    (DY (pack \"height:\" DY (if P \"%\" \"px\"))) )\n                                 Args ) ) ) )\n                     (prog1\n                        (if Cls (list Cls Style) Style)  # -> '@'\n                        (eval (cadr L)) )\n                     (recurse (cddr L) (+ LayX DX))\n                     (inc 'LayY DY) ) ) ) )\n         (recur (Lst)\n            (for L Lst\n               (micro (++ Lay)\n                  (run (cddadr L)) )\n               (recurse (cddr L)) ) ) ) ) )\n\n(private) (Url Str)\n\n(de <button> (Url Str)\n   (<div> \"button\"\n      (prin \"<a href=\\\"\" (sesId Url) \"\\\"\")\n      (and *Style (htStyle @))\n      (prin \">\")\n      (<span> \"button2\" Str)\n      (prin \"</a>\") ) )\n\n# Menus\n(de urlMT (Url Menu Tab Id Str)\n   (pack Url \"?\"  \"*Menu=+\" Menu  \"&*Tab=+\" Tab  \"&*ID=\" (ht:Fmt Id) Str) )\n\n(private) (Lst M N E U L)\n\n(de <menu> Lst\n   (let\n      ((Beg\n            BegL\n            Plain\n            Dis  # Disabled\n            Cmd  # Command\n            Act  # Active command\n            Sub  # Closed submenu\n            Top  # Open submenu\n            TopEnd\n            EndL\n            End )\n         *XhtmlMenu\n         M 1\n         U )\n      (micro Beg)\n      (recur (Lst)\n         (micro BegL)\n         (for L Lst\n            (nond\n               ((car L)\n                  (micro Plain\n                     (htPrin (cdr L)) ) )\n               ((=T (car L))\n                  (nond\n                     ((setq U (eval (cadr L)))\n                        (micro Dis\n                           (ht:Prin (eval (car L))) ) )\n                     ((pair U)\n                        (let LINK\n                           (sesId\n                              (urlMT U *Menu (if (= U *Url) *Tab 1)\n                                 (eval (caddr L))\n                                 (eval (cadddr L)) ) )\n                           (micro (if (= U *Url) Act Cmd)\n                              (ht:Prin (eval (car L))) ) ) )\n                     (NIL\n                        (<href> (eval (car L)) (car U) (cdr U)) ) ) )\n               ((bit? M *Menu)\n                  (++ L)\n                  (let (S (eval (++ L))  I)\n                     (when (num? S)\n                        (setq I S  S (eval (++ L))) )\n                     (let\n                        (LINK (sesId (urlMT *Url (| M *Menu) *Tab *ID))\n                           TITLE ,\"Open submenu\"\n                           LEVEL I )\n                        (micro Sub\n                           (ht:Prin S)\n                           (recur (L)\n                              (setq M (>> -1 M))\n                              (for X L\n                                 (when (=T (car X))\n                                    (recurse (cddr X)) ) ) ) ) ) ) )\n               (NIL\n                  (++ L)\n                  (let (S (eval (++ L))  I)\n                     (when (num? S)\n                        (setq I S  S (eval (++ L))) )\n                     (let\n                        (LINK (sesId (urlMT *Url (x| M *Menu) *Tab *ID))\n                           TITLE ,\"Close submenu\"\n                           LEVEL I )\n                        (micro Top\n                           (ht:Prin S) )\n                        (setq M (>> -1 M))\n                        (recurse L)\n                        (micro TopEnd) ) ) ) ) )\n         (prin EndL) )\n      (prinl End) ) )\n\n# Update link\n(de updLink ()\n   (<tip> ,\"Update\"\n      (<span> \"step\" (<href> \"@\" (urlMT *Url *Menu *Tab *ID))) ) )\n\n(private) (Lst N L)\n\n# Tabs\n(de <tab> Lst\n   (default *Tab 1)\n   (let ((Beg Top Sub End) *XhtmlTab)\n      (micro Beg)\n      (for (N . L) Lst\n         (if (= N *Tab)\n            (micro Top\n               (ht:Prin (eval (car L) 2)) )\n            (let LINK (sesId (urlMT *Url *Menu N *ID))\n               (micro Sub\n                  (ht:Prin (eval (car L) 2)) ) ) ) )\n      (micro End)\n      (htPrin (get Lst *Tab -1)) ) )\n\n### DB Linkage ###\n(de mkUrl (Lst)\n   (pack (++ Lst) \"?\"\n      (make\n         (while Lst\n            (and\n               (sym? (car Lst))\n               (= `(char '*) (char (car Lst)))\n               (link (++ Lst) \"=\") )\n            (link (ht:Fmt (++ Lst)))\n            (and Lst (link \"&\")) ) ) ) )\n\n(de <$> (Str Obj Msg Tab)\n   (cond\n      ((not Obj) (ht:Prin Str))\n      ((=T Obj) (<href> Str (pack Msg Str)))\n      ((send (or Msg 'url>) Obj (or Tab 1))\n         (<href> Str (mkUrl @)) )\n      (T (ht:Prin Str)) ) )\n\n(private) (X S1 S2 Rel K Cls Hook Q1 Q2 Msg)\n\n# Links to previous and next object\n# (stepBtn 'lst ['msg])\n# (stepBtn 'var 'cls [['hook] 'msg])\n(de stepBtn (X . @)\n   (<span> \"step\"\n      (use (S1 S2)\n         (if (pair X)\n            (setq S1 (car X)  S2 (cdr X))\n            (let\n               (Rel (meta *ID X)\n                  K\n                  (cond\n                     ((isa '+Key Rel)\n                        (get *ID X) )\n                     ((isa '+Fold Rel)\n                        (cons (fold (get *ID X)) *ID) )\n                     (T\n                        (cons\n                           (get *ID X)\n                           (conc\n                              (mapcar '((S) (get *ID S)) (; Rel aux))\n                              *ID ) ) ) )\n                  Cls (next)\n                  Hook (next)\n                  Q1 (init (tree X Cls Hook) K NIL)\n                  Q2 (init (tree X Cls Hook) K T) )\n               (unless (get *ID T)\n                  (step Q1 T)\n                  (step Q2 T) )\n               (setq\n                  S1 (step Q1 T)\n                  S2 (step Q2 T) ) ) )\n         (let Msg (or (next) 'url>)\n            (if (and S1 (send Msg @ *Tab))\n               (<tip> ,\"Next object of the same type\"\n                  (<href> \"<<<\" (mkUrl @)) )\n               (prin \"&lt;&lt;&lt;\") )\n            (prin \"&nbsp;--&nbsp;\")\n            (if (and S2 (send Msg @ *Tab))\n               (<tip> ,\"Next object of the same type\"\n                  (<href> \">>>\" (mkUrl @)) )\n               (prin \"&gt;&gt;&gt;\") ) ) ) ) )\n\n# Character Separated Values\n(off \"*CSV\")\n\n(de csv (\"Nm\" . \"Prg\")\n   (let \"Csv\" (allow (tmp \"Nm\" \".csv\"))\n      (%@ \"unlink\" NIL \"Csv\")\n      (let \"*CSV\" (pack \"+\" \"Csv\")\n         (run \"Prg\") )\n      (<href> \"Export CSV\" \"Csv\") ) )\n\n(de <0> @\n   (when \"*CSV\"\n      (out @\n         (prin (next))\n         (while (args)\n            (prin \"\\t\" (next)) )\n         (prinl \"\\r\") ) ) )\n\n(de <%> @\n   (prog1\n      (pass pack)\n      (ht:Prin @)\n      (prinl \"<br/>\")\n      (<0> @) ) )\n\n(de <!> (\"Lst\")\n   (when \"*CSV\"\n      (out @\n         (prin (eval (cadar \"Lst\")))\n         (for \"S\" (cdr \"Lst\")\n            (prin \"\\t\" (eval (cadr \"S\"))) )\n         (prinl \"\\r\") ) )\n   \"Lst\" )\n\n(de <+> (Str Obj Msg Tab)\n   (if (sub? \"\\n\" Str)\n      (let L (split (chop Str) \"\\n\")\n         (<span> (cons 'title Str) (ht:Prin (car L)))\n         (and \"*CSV\" (out @ (prin (glue \" \" L) \"\\t\"))) )\n      (<$> Str Obj Msg Tab)\n      (and \"*CSV\" (out @ (prin Str \"\\t\"))) ) )\n\n(de <-> (Str Obj Msg Tab)\n   (if (sub? \"\\n\" Str)\n      (let L (split (chop Str) \"\\n\")\n         (<span> (cons 'title Str) (ht:Prin (car L)))\n         (<0> (glue \" \" L)) )\n      (<$> Str Obj Msg Tab)\n      (<0> Str) ) )\n\n### HTML form ###\n(de <post> (Attr Url . Prg)\n   (prin\n      \"<form enctype=\\\"multipart/form-data\\\" action=\\\"\"\n      (sesId Url)\n      (and *JS \"\\\" onkeydown=\\\"return formKey(event)\\\" onsubmit=\\\"return doPost(this)\")\n      \"\\\" method=\\\"post\\\"\"\n      (when (=T Attr)\n         (off Attr)\n         \" target=\\\"_blank\\\"\" )\n      \">\" )\n   (prin \"<noscript><input type=\\\"hidden\\\" name=\\\"*JS\\\" value=\\\"\\\"/></noscript>\")\n   (tag \"fieldset\" Attr 2 Prg)\n   (prinl \"</form>\") )\n\n(de htmlVar (\"Var\")\n   (prin \"name=\\\"\")\n   (if (pair \"Var\")\n      (prin (car \"Var\") \":\" (cdr \"Var\"))\n      (prin \"Var\") )\n   (prin \"\\\"\") )\n\n(de htmlVal (\"Var\")\n   (if (pair \"Var\")\n      (cdr (assoc (cdr \"Var\") (val (car \"Var\"))))\n      (val \"Var\") ) )\n\n(de <label> (Attr . Prg)\n   (tag \"label\" Attr 2 Prg) )\n\n(de <field> (N \"Var\" Max Flg)\n   (let TYPE \"text\"\n      (micro (car *XhtmlInput)\n         (space)\n         (htmlVar \"Var\")\n         (prin \" value=\\\"\")\n         (ht:Prin (htmlVal \"Var\"))\n         (prin \"\\\" size=\\\"\")\n         (if (lt0 N)\n            (prin (- N) \"\\\" style=\\\"text-align: right;\\\"\")\n            (prin N \"\\\"\") )\n         (and Max (prin \" maxlength=\\\"\" Max \"\\\"\"))\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"field\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <hidden> (\"Var\" Val)\n   (prin \"<input type=\\\"hidden\\\" \")\n   (htmlVar \"Var\")\n   (prin \" value=\\\"\")\n   (ht:Prin Val)\n   (prinl \"\\\"/>\") )\n\n(de <passwd> (N \"Var\" Max Flg)\n   (let TYPE \"password\"\n      (micro (car *XhtmlInput)\n         (space)\n         (htmlVar \"Var\")\n         (prin \" value=\\\"\")\n         (ht:Prin (htmlVal \"Var\"))\n         (prin \"\\\" size=\\\"\" N \"\\\"\")\n         (and Max (prin \" maxlength=\\\"\" Max \"\\\"\"))\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"passwd\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <upload> (N \"Var\" Flg)\n   (let TYPE \"file\"\n      (micro (car *XhtmlInput)\n         (space)\n         (htmlVar \"Var\")\n         (prin \" value=\\\"\")\n         (ht:Prin (htmlVal \"Var\"))\n         (prin \"\\\" size=\\\"\" N \"\\\"\")\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"upload\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <rgb> (\"Var\" Flg)\n   (let TYPE \"color\"\n      (micro (car *XhtmlInput)\n         (space)\n         (htmlVar \"Var\")\n         (prin \" value=\\\"\")\n         (ht:Prin (htmlVal \"Var\"))\n         (prin \"\\\"\")\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"rgb\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <area> (COLS ROWS \"Var\" Flg)\n   (micro (car *XhtmlArea)\n      (space)\n      (htmlVar \"Var\")\n      (when *JS\n         (prin \" onchange=\\\"return fldChg(this)\\\"\")\n         (htJs) )\n      (dfltCss \"area\")\n      (and Flg (prin \" disabled=\\\"disabled\\\"\")) )\n   (ht:Prin (htmlVal \"Var\"))\n   (micro (cadr *XhtmlArea)) )\n\n(de <select> (Lst \"Var\" Flg)\n   (let ((Sel Opt End) *XhtmlSelect)\n      (micro Sel\n         (space)\n         (htmlVar \"Var\")\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"select\") )\n      (for \"X\" Lst\n         (let \"V\" (if (atom \"X\") \"X\" (car \"X\"))\n            (let\n               (ATTR (and (pair \"X\") (pair (cdr \"X\")) (car @))\n                  TITLE (and (pair \"X\") (fin \"X\")) )\n               (micro Opt\n                  (cond\n                     ((= \"V\" (htmlVal \"Var\")) (prin \" selected=\\\"selected\\\"\"))\n                     (Flg (prin \" disabled=\\\"disabled\\\"\")) )\n                  (ht:Prin \"V\") ) ) ) )\n      (micro End) ) )\n\n(de <check> (\"Var\" Flg)\n   (let Val (htmlVal \"Var\")\n      (prin \"<input type=\\\"hidden\\\" \")\n      (htmlVar \"Var\")\n      (prin \" value=\\\"\" (and Flg Val T) \"\\\">\")\n      (let TYPE \"checkbox\"\n         (micro (car *XhtmlInput)\n            (space)\n            (htmlVar \"Var\")\n            (prin \" value=\\\"T\\\"\" (and Val \" checked=\\\"checked\\\"\"))\n            (when *JS\n               (prin \" onchange=\\\"return fldChg(this)\\\"\")\n               (htJs) )\n            (dfltCss \"check\")\n            (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) ) )\n\n(de <radio> (\"Var\" Val Flg)\n   (let TYPE \"radio\"\n      (micro (car *XhtmlInput)\n         (space)\n         (htmlVar \"Var\")\n         (prin \" value=\\\"\")\n         (ht:Prin Val)\n         (prin \"\\\"\" (and (= Val (htmlVal \"Var\")) \" checked=\\\"checked\\\"\"))\n         (when *JS\n            (prin \" onchange=\\\"return fldChg(this)\\\"\")\n            (htJs) )\n         (dfltCss \"radio\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <submit> (S \"Var\" Flg JS)\n   (let TYPE \"submit\"\n      (micro (car *XhtmlSubmit)\n         (and \"Var\" (space) (htmlVar \"Var\"))\n         (prin \" value=\\\"\")\n         (ht:Prin S)\n         (prin \"\\\"\")\n         (when *JS\n            (prin \" onmousedown=\\\"inBtn(this,1)\\\" onblur=\\\"inBtn(this,0)\\\"\")\n            (and JS (prin \" onclick=\\\"return doBtn(this)\\\"\"))\n            (htJs) )\n         (dfltCss \"submit\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n(de <image> (Src \"Var\" Flg JS)\n   (let TYPE \"image\"\n      (micro (car *XhtmlSubmit)\n         (and \"Var\" (space) (htmlVar \"Var\"))\n         (prin \" src=\\\"\" (sesId Src) \"\\\"\")\n         (when *JS\n            (prin \" onmousedown=\\\"inBtn(this,1)\\\" onblur=\\\"inBtn(this,0)\\\"\")\n            (and JS (prin \" onclick=\\\"return doBtn(this)\\\"\"))\n            (htJs) )\n         (dfltCss \"image\")\n         (and Flg (prin \" disabled=\\\"disabled\\\"\")) ) ) )\n\n### Debug ###\n`*Dbg\n\n(noLint 'micro 'PRG)\n(noLint '<row> 'Beg)\n(noLint '<row> 'C)\n(noLint '<row> 'End)\n(noLint '<spread> 'norm)\n"
  },
  {
    "path": "lib/xm.l",
    "content": "# 07jun25 Software Lab. Alexander Burger\n\n(local) (xml? xml body attr)\n(private) (_xml xmlEsc escXml)\n\n# Check or write header\n(de xml? (Flg)\n   (if Flg\n      (prinl \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\")\n      (skip)\n      (prog1\n         (head '(\"<\" \"?\" \"x\" \"m\" \"l\") (till \">\"))\n         (char) ) ) )\n\n# Generate/Parse XML data\n(de xml (Lst N)\n   (if Lst\n      (let Tag (++ Lst)\n         (space (default N 0))\n         (prin \"<\" Tag)\n         (for X (++ Lst)\n            (prin \" \" (car X) \"=\\\"\")\n            (escXml (cdr X))\n            (prin \"\\\"\") )\n         (nond\n            (Lst (prinl \"/>\"))\n            ((or (cdr Lst) (pair (car Lst)))\n               (prin \">\")\n               (escXml (car Lst))\n               (prinl \"</\" Tag \">\") )\n            (NIL\n               (prinl \">\")\n               (for X Lst\n                  (if (pair X)\n                     (xml X (+ 3 N))\n                     (space (+ 3 N))\n                     (escXml X)\n                     (prinl) ) )\n               (space N)\n               (prinl \"</\" Tag \">\") ) ) )\n      (skip)\n      (unless (= \"<\" (char))\n         (quit \"Bad XML\") )\n      (_xml) ) )\n\n(de _xml ()\n   (use (Tok X)\n      (loop\n         (NIL (= \"!\" (setq X (char))))\n         (NIL (= \"-\" (peek)))\n         (setq X \"!-\")\n         (char)\n         (NIL (= \"-\" (peek)))\n         (from \"-->\")\n         (NIL (skip) (quit \"XML parse error\"))\n         (unless (= \"<\" (char))\n            (quit \"Bad XML\") ) )\n      (setq Tok (pack X (till \" /<>\" T)))\n      (make\n         (link (intern Tok))\n         (let L\n            (make\n               (loop\n                  (NIL (skip) (quit \"XML parse error\"))\n                  (T (member @ '`(chop \"/>\")))\n                  (NIL (setq X (intern (till \"=\" T))))\n                  (char)\n                  (unless (= \"\\\"\" (char))\n                     (quit \"XML parse error\" X) )\n                  (link (cons X (pack (xmlEsc (till \"\\\"\")))))\n                  (char) ) )\n            (if (= \"/\" (char))\n               (prog (char) (and L (link L)))\n               (link L)\n               (loop\n                  (NIL (skip) (quit \"XML parse error\" Tok))\n                  (T (and (= \"<\" (setq X (char))) (= \"/\" (peek)))\n                     (char)\n                     (unless (= Tok (till \" /<>\" T))\n                        (quit \"Unbalanced XML\" Tok) )\n                     (char) )\n                  (if (= \"<\" X)\n                     (and (_xml) (link @))\n                     (link\n                        (pack (xmlEsc (trim (cons X (till \"\\n<\"))))) ) ) ) ) ) ) ) )\n\n(de xmlEsc (L)\n   (use (@X @Z)\n      (make\n         (while L\n            (ifn (match '(\"&\" @X \";\" @Z) L)\n               (link (++ L))\n               (link\n                  (cond\n                     ((= @X '`(chop \"quot\")) \"\\\"\")\n                     ((= @X '`(chop \"amp\")) \"&\")\n                     ((= @X '`(chop \"lt\")) \"<\")\n                     ((= @X '`(chop \"gt\")) \">\")\n                     ((= @X '`(chop \"apos\")) \"'\")\n                     ((= \"#\" (car @X))\n                        (char\n                           (if (= \"x\" (cadr @X))\n                              (hex (cddr @X))\n                              (format (cdr @X)) ) ) )\n                     (T @X) ) )\n               (setq L @Z) ) ) ) ) )\n\n(de escXml (X)\n   (for C (chop X)\n      (if (member C '`(chop \"\\\"&<\"))\n         (prin \"&#\" (char C) \";\")\n         (prin C) ) ) )\n\n\n# Access functions\n(de body @\n   (cdr (pass get)) )\n\n(de attr (Lst Key . @)\n   (while (args)\n      (setq Lst (asoq Key Lst)  Key (next)) )\n   (get Lst 2 Key) )\n"
  },
  {
    "path": "lib/xxhash.l",
    "content": "# 02nov25 Software Lab. Alexander Burger\n\n(default *Xxh64\n   (native \"libxxhash.so\" \"XXH64_createState\" 'P) )\n\n(de xxh64 (File)\n   (native \"libxxhash.so\" \"XXH64_reset\" 'I *Xxh64 0)\n   (buf Buf 32768\n      (in File\n         (while (gt0 (%@ \"read\" 'I (fd) Buf 32768))\n            (native \"libxxhash.so\" \"XXH64_update\" 'I *Xxh64 Buf @) ) ) )\n   (native \"libxxhash.so\" \"XXH64_digest\" 'N *Xxh64) )\n"
  },
  {
    "path": "lib.css",
    "content": "/* 22nov21 Software Lab. Alexander Burger */\n\n/* Lib */\n.left {float: left}\n.right {float: right}\n.nofloat {float: none}\n.clr {clear: both}\n.norm {text-align: left}\n.align {text-align: right}\n.center {text-align: center}\n.black {color: black}\n.white {color: white}\n.red {color: red}\n.green {color: green}\n.blue {color: blue}\n.yellow {color: yellow}\n.larger {font-size: larger}\n.smaller {font-size: smaller}\n.bold {font-weight: bold}\n.mono {font-family: monospace}\n.wrap {white-space: normal}\n.hidden {display: none}\n\n.em1 {width: 1em}\n.em2 {width: 2em}\n.em3 {width: 3em}\n.em5 {width: 5em}\n.em7 {width: 7em}\n.em10 {width: 10em}\n.em15 {width: 15em}\n.em20 {width: 20em}\n.em25 {width: 25em}\n.em30 {width: 30em}\n.em40 {width: 40em}\n.em50 {width: 50em}\n.em60 {width: 60em}\n.em70 {width: 70em}\n.em80 {width: 80em}\n.em90 {width: 90em}\n.em100 {width: 100em}\n.em120 {width: 120em}\n.em150 {width: 150em}\n\n.rel10 {width: 10%}\n.rel20 {width: 20%}\n.rel25 {width: 25%}\n.rel30 {width: 30%}\n.rel40 {width: 40%}\n.rel50 {width: 50%}\n.rel60 {width: 60%}\n.rel70 {width: 70%}\n.rel75 {width: 75%}\n.rel80 {width: 80%}\n.rel90 {width: 90%}\n.rel96 {width: 96%}\n.rel100 {width: 100%}\n\n/* Defaults */\nbody {\n   font-family: Arial, Helvetica, sans-serif;\n   background-color: #f0f0f0;\n   font-size: small;\n   margin: 0;\n}\n\nimg {\n   border: 0;\n}\n\nfieldset {\n   border-style: none;\n}\n\ninput, textarea, select {\n   border: 0;\n   font-size: small;\n   background-color: white;\n}\n\ncaption {\n   padding: 0 1em;\n   text-align: left;\n   margin-top: 2ex;\n   background-color: #d0d0d0;\n}\n\ntd {\n   white-space: nowrap;\n}\n\na {\n   text-decoration: none;\n}\n\n.step a {\n   border-radius: 6px;\n   background-color: #d0d0d0;\n   padding: 2px 3px;\n}\n\na:hover {\n   background-color: white;\n}\n\n.grid td {\n   vertical-align: top;\n}\n\n/* Navigation */\n.menu {\n   padding-top: 2ex;\n   background-color: #d0d0d0;\n}\n\n.menu ul {\n   list-style: none;\n   padding: 0;\n   margin: 0;\n}\n\n.menu .cmd, .act {\n   list-style-position: inside;\n   list-style-type: circle;\n   padding: 0 0 0 2em;\n}\n\n.menu .act {\n   list-style-type: disc;\n}\n\n.menu .sub, .top {\n   list-style-position: inside;\n   padding: 0 0 0 1em;\n}\n\n\n#expires {\n   position: absolute;\n   top: 0;\n   right: 3px;\n   color: red;\n}\n\n/* Tabulators */\n.tab {\n   margin-bottom: 1ex;\n}\n\n.tab td {\n   padding: 3px 1em;\n   border-radius: 6px 6px 0 0;\n}\n\n.tab .top {\n   font-weight: bold;\n   border-top: 1px solid;\n   border-left: 1px solid;\n   border-right: 1px solid;\n}\n\n.tab .sub {\n   background-color: #d0d0d0;\n   border-bottom: 1px solid;\n}\n\n/* Main area */\n.main {\n   padding: 1ex 0 0 2ex;\n}\n\n/* Charts */\n.chart {\n   width: 100%;\n   white-space: nowrap;\n}\n\n.chart td {\n   background-color: #e0e0e0;\n}\n\n.chart td.T, th.T {\n   background-color: #d0d0d0;\n}\n\n.chart td.nil, th.nil {\n   background-color: white;\n}\n\n.chart td.body, th.body {\n   background-color: #f0f0f0;\n}\n\n.btn {\n   width: 1em;\n}\n\n/* Buttons */\n.submit {\n   font-weight: bold;\n   font-size: smaller;\n   background-color: #eee;\n   background-image: -moz-linear-gradient(top, #eee, #ccc);\n   background-image: -o-linear-gradient(top, #eee, #ccc);\n   background-image: -webkit-linear-gradient(top, #eee, #ccc);\n   background-image: linear-gradient(top, #eee, #ccc);\n   border: 1px solid #707070;\n   border-radius: 3px;\n   box-shadow: 0 0 1px 1px rgba(255,255,255,.8) inset, 0 1px 0 rgba(0,0,0,.3);\n}\n\n.submit:hover {\n   background-image: -moz-linear-gradient(top, #fafafa, #ddd);\n   background-image: -o-linear-gradient(top, #fafafa, #ddd);\n   background-image: -webkit-linear-gradient(top, #fafafa, #ddd);\n   background-image: linear-gradient(top, #fafafa, #ddd);\n}\n\n.submit[disabled='disabled'] {\n   background-image: -moz-linear-gradient(top, #eee, #ccc);\n   background-image: -o-linear-gradient(top, #eee, #ccc);\n   background-image: -webkit-linear-gradient(top, #eee, #ccc);\n   background-image: linear-gradient(top, #eee, #ccc);\n}\n\n.edit {\n   background-color: #66ff66;\n   background-image: -moz-linear-gradient(top, #8f8, #6f6);\n   background-image: -o-linear-gradient(top, #8f8, #6f6);\n   background-image: -webkit-linear-gradient(top, #8f8, #6f6);\n   background-image: linear-gradient(top, #8f8, #6f6);\n}\n\n.edit:hover {\n   background-color: #88ff88;\n   background-image: -moz-linear-gradient(top, #cfc, #afa);\n   background-image: -o-linear-gradient(top, #cfc, #afa);\n   background-image: -webkit-linear-gradient(top, #cfc, #afa);\n   background-image: linear-gradient(top, #cfc, #afa);\n}\n\n/* Errors */\n.error {\n   color: red;\n   background-color: yellow;\n}\n\n/* Fonts */\n.tiny {\n   border: 0;\n   padding: 0;\n   font-size: small;\n}\n\n.note, .ask {\n   font-weight: bold;\n}\n\n/* Alerts */\n.alert {\n   display: inline;\n   padding: 1ex;\n   margin: 1ex 0 1ex 5em;\n   color: black;\n   background-color: yellow;\n   border: 1px solid #888;\n   border-radius: 6px;\n}\n\n.alert input {\n   margin-top: 1ex;\n}\n\n/* Dialogs */\n.dialog {\n   padding: 1ex;\n   margin: 1ex 5em 1ex 1em;\n   border: 1px solid #888;\n   border-radius: 6px;\n}\n\n/* Hints */\n.hint {\n   font-size: small;\n   background-color: #777;\n}\n\n.hints {\n   font-size: small;\n   color: black;\n   padding-left: 3px;\n   padding-top: 3px;\n   border: 1px solid;\n   background-color: white;\n}\n\n/* Buttons */\n.button {\n   width: 80%;\n   background-color: lightgrey;\n   border: 1px solid black;\n   border-radius: 3ex;\n   text-align: center;\n   display: table;\n   padding: 2ex;\n   margin: auto;\n}\n\n.button2 {\n   display: table-cell;\n   vertical-align: middle;\n   font-weight: bold;\n   font-size: larger;\n}\n"
  },
  {
    "path": "lib.l",
    "content": "# 27aug25 Software Lab. Alexander Burger\n\n(de task (Key . Prg)\n   (nond\n      (Prg (del (assoc Key *Run) '*Run))\n      ((num? Key) (quit \"Bad Key\" Key))\n      ((assoc Key *Run)\n         (push '*Run\n            (conc\n               (make\n                  (when (lt0 (link Key))\n                     (link (eval (++ Prg) 1)) ) )\n               (ifn (sym? (car Prg))\n                  Prg\n                  (cons\n                     (cons 'job\n                        (cons\n                           (lit\n                              (make\n                                 (while (atom (car Prg))\n                                    (link\n                                       (cons (++ Prg) (eval (++ Prg) 1)) ) ) ) )\n                           Prg ) ) ) ) ) ) )\n      (NIL (quit \"Key conflict\" Key)) ) )\n\n(de timeout (N)\n   (if2 N (assoc -1 *Run)\n      (set (cdr @) N)\n      (push '*Run (list -1 N '(bye)))\n      (del @ '*Run) ) )\n\n(de tasks Task\n   (task -2 (abs (run Task))  \"Prg\" Task\n      (let (L (assoc @ *Run)  P (run \"Prg\"))\n         (if2 (lt0 (car L)) (lt0 P)\n            (set (cdr L) (abs P))            # (-2 111 ..) -> (-2 999 ..)\n            (ifn P\n               (task -2)\n               (set L P)                     # (-2 999 ..) -> (7 ..)\n               (con L (cddr L)) )\n            (prog                            # (7 ..) -> (-2 999 ...)\n               (set L -2)\n               (con L (cons (abs P) (cdr L))) )\n            (ifn P\n               (task (car L))\n               (set L P) ) ) ) ) )           # (3 ..) -> (7 ..)\n\n(de abort (\"N\" . \"Prg\")\n   (catch 'abort\n      (alarm \"N\" (throw 'abort))\n      (finally (alarm 0) (run \"Prg\")) ) )\n\n(de macro \"Prg\"\n   (run (fill \"Prg\")) )\n\n(de later (\"@Var\" . \"@Prg\")\n   (macro\n      (task (pipe (pr (prog . \"@Prg\")))\n         (setq \"@Var\" (in @ (rd)))\n         (task (close @)) ) )\n   \"@Var\" )\n\n(de recur recurse\n   (run (cdr recurse)) )\n\n(de curry \"Z\"\n   (let (\"X\" (++ \"Z\")  \"Y\" (++ \"Z\")  \"P\" (filter pat? \"X\"))\n      (if2 \"P\" (diff \"X\" \"P\")\n         (list \"Y\" (cons 'job (lit (env @)) (fill \"Z\" \"P\")))\n         (cons \"Y\" (fill \"Z\" \"P\"))\n         (list \"Y\" (cons 'job (lit (env @)) \"Z\"))\n         (cons \"Y\" \"Z\") ) ) )\n\n### Definitions ###\n(de expr (\"F\")\n   (set \"F\"\n      (list '@ (list 'pass (box (getd \"F\")))) ) )\n\n(de subr (\"F\")\n   (set \"F\" (getd (cadadr (getd \"F\")))) )\n\n(de undef (\"X\" \"C\")\n   (when (pair \"X\")\n      (setq  \"C\" (cdr \"X\")  \"X\" (car \"X\")) )\n   (ifn \"C\"\n      (prog1 (val \"X\") (set \"X\"))\n      (prog1\n         (cdr (asoq \"X\" (val \"C\")))\n         (set \"C\"\n            (delq (asoq \"X\" (val \"C\")) (val \"C\")) ) ) ) )\n\n(de redef \"Lst\"\n   (let (\"Old\" (car \"Lst\")  \"New\" (name \"Old\"))\n      (set\n         \"New\" (getd \"Old\")\n         \"Old\" \"New\"\n         \"Old\" (fill (cdr \"Lst\") \"Old\") )\n      \"New\" ) )\n\n(de sysdefs (\"Sym\" \"Alt\")\n   (in (or \"Alt\" \"@lib/sysdefs\")\n      (if (from (pack \"\\n[\" \"Sym\" \"]\\n\"))\n         (while (and (skip) (<> \"[\" @))\n            (def (read) (read)) )\n         (quit \"No sysdefs\" \"Sym\") ) ) )\n\n(de daemon (\"X\" . Prg)\n   (prog1\n      (nond\n         ((pair \"X\")\n            (or (pair (getd \"X\")) (expr \"X\")) )\n         ((pair (cdr \"X\"))\n            (method (car \"X\") (cdr \"X\")) )\n         (NIL\n            (method (car \"X\") (get (or (cddr \"X\") *Class) (cadr \"X\"))) ) )\n      (con @ (append Prg (cdr @))) ) )\n\n(de patch (\"Lst\" \"Pat\" . \"Prg\")\n   (bind (fish pat? \"Pat\")\n      (recur (\"Lst\")\n         (loop\n            (cond\n               ((match \"Pat\" (car \"Lst\"))\n                  (set \"Lst\" (run \"Prg\")) )\n               ((pair (car \"Lst\"))\n                  (recurse @) ) )\n            (NIL (cdr \"Lst\"))\n            (T (atom (cdr \"Lst\"))\n               (when (match \"Pat\" (cdr \"Lst\"))\n                  (con \"Lst\" (run \"Prg\")) ) )\n            (setq \"Lst\" (cdr \"Lst\")) ) ) ) )\n\n(de cache (\"Var\" \"X\" . \"Prg\")\n   (setq \"X\" (cons (char (hash \"X\")) \"X\"))\n   (nond\n      (\"Prg\" (caar (idx \"Var\" \"X\")))\n      ((setq \"Var\" (caar (idx \"Var\" \"X\" T)))\n         (set (car \"X\") (run \"Prg\" 1)) )\n      ((n== \"Var\" (val \"Var\"))\n         (set \"Var\" (run \"Prg\" 1)) )\n      (NIL (val \"Var\")) ) )\n\n### I/O ###\n(de tab (Lst . @)\n   (for N Lst\n      (let V (next)\n         (and (gt0 N) (space (- N (length V))))\n         (prin V)\n         (and (lt0 N) (args) (space (- 0 N (length V)))) ) )\n   (prinl) )\n\n(de beep ()\n   (prin \"^G\")\n   (flush)\n   NIL )\n\n(de msg (X . @)\n   (tty (print X) (pass prinl))\n   X )\n\n(de script (File . @)\n   (load File) )\n\n(de once \"Prg\"\n   (unless (idx '*Once (file) 0)\n      (run \"Prg\" 1) ) )\n\n(de finish Prg\n   (apply push1 (reverse Prg) '*Bye) )\n\n(de rc (File Key . @)\n   (ctl File\n      (in File\n         (let Lst (read)\n            (ifn (args)\n               (cdr (assoc Key Lst))\n               (let Val (next)\n                  (loop\n                     (if (assoc Key Lst)\n                        (con @ Val)\n                        (push 'Lst (cons Key Val)) )\n                     (NIL (args))\n                     (setq Key (next)  Val (next)) )\n                  (protect\n                     (out File (println Lst)) )\n                  Val ) ) ) ) ) )\n\n(de acquire (File)\n   (ctl File\n      (in File\n         (let P (rd)\n            (or\n               (= P *Pid)\n               (unless (and P (kill P 0))\n                  (out File (pr *Pid)) ) ) ) ) ) )\n\n(de release (File)\n   (ctl File (out File)) )\n\n# Temporary Files\n(de tmp @\n   (unless *Tmp\n      (finish (call \"rm\" \"-r\" *Tmp))\n      (push '*Fork '(off *Tmp))\n      (call \"mkdir\" \"-p\"\n         (setq *Tmp (pack (path \"~/.pil/tmp/\") *Pid \"/\")) ) )\n   (pass pack *Tmp) )\n\n### String ###\n(de pad (N Val)\n   (pack (need N (chop Val) \"0\")) )\n\n(de align (X . @)\n   (pack\n      (if (pair X)\n         (mapcar\n            '((X) (need X (chop (next)) \" \"))\n            X )\n         (need X (chop (next)) \" \") ) ) )\n\n(de center (X . @)\n   (pack\n      (if (pair X)\n         (let R 0\n            (mapcar\n               '((X)\n                  (let (S (chop (next))  N (>> 1 (+ X (length S))))\n                     (prog1\n                        (need (+ N R) S \" \")\n                        (setq R (- X N)) ) ) )\n               X ) )\n         (let S (chop (next))\n            (need (>> 1 (+ X (length S))) S \" \") ) ) ) )\n\n### List ###\n(de less (X N L)\n   (default N 4)\n   (cond\n      ((atom X) X)\n      ((=0 N) '(..))\n      ((asoq X L) (cdr @))\n      (T\n         (prog1\n            (cons (less (car X) N))\n            (conc @\n               (less\n                  (cdr X)\n                  (dec N)\n                  (cons (cons X @) L) ) ) ) ) ) )\n\n(de uniq (Lst)\n   (let R NIL\n      (filter\n         '((X)\n            (not (idx 'R (cons (hash X) X) T)) )\n         Lst ) ) )\n\n### Symbol ###\n(de qsym \"Sym\"\n   (cons (val \"Sym\") (getl \"Sym\")) )\n\n(de loc (S X)\n   (if (and (str? X) (= S X))\n      X\n      (and\n         (pair X)\n         (or\n            (loc S (car X))\n            (loc S (cdr X)) ) ) ) )\n\n(de -symbols ()\n   (apply symbols (symbols) (intern (opt))) )\n\n(de private ()\n   (symbols '(priv) (read)) )\n\n(de local ()\n   (symbols (list (car (symbols)))\n      (read) ) )\n\n(de import Lst\n   (for Sym Lst\n      (unless (== Sym (intern Sym T))\n         (quit \"Import conflict\" Sym) ) )\n   Lst )\n\n(de export Lst\n   (for Sym Lst\n      (unless (== Sym (intern Sym (cadr (symbols))))\n         (quit \"Export conflict\" Sym) ) )\n   Lst )\n\n(de all* (S Flg)\n   (sort\n      (conc\n         (unless (=0 Flg)\n            (let (L (split (chop S) \"~\")  N NIL  S)\n               (while (cdr L)\n                  (setq\n                     N (intern (car L) N)\n                     S (pack S (++ L) \"~\") ) )\n               (let P (pack (car L))\n                  (extract\n                     '((X) (and (pre? P X) (pack S X)))\n                     (all N) ) ) ) )\n         (unless (=T Flg)\n            (let P (rot (split (chop S) \"/\"))\n               (setq S (pack (car P)))\n               (cond\n                  ((cdr P)\n                     (setq P (pack (glue \"/\" @) \"/\")) )\n                  ((= \"@\" (caar P))\n                     (setq S (pack (cdar P))  P \"@\") )\n                  (T (off P)) )\n               (extract\n                  '((X)\n                     (when (pre? S X)\n                        (let F (pack P X)\n                           (if (=T (car (info F)))\n                              (pack F \"/\")\n                              F ) ) ) )\n                  (dir P T) ) ) ) ) ) )\n\n### Date/Time ###\n(de *mon . (jan feb mar apr may jun jul aug sep oct nov dec .))\n\n(de dat$ (Dat C)\n   (when (date Dat)\n      (pack (car @) C (pad 2 (cadr @)) C (pad 2 (caddr @))) ) )\n\n(de tim$ (Tim F)\n   (when (setq Tim (time Tim))\n      (pack (pad 2 (car Tim)) \":\" (pad 2 (cadr Tim))\n         (and F \":\")\n         (and F (pad 2 (caddr Tim))) ) ) )\n\n(de datSym (Dat)\n   (when (date Dat)\n      (pack\n         (pad 2 (caddr @))\n         (get *mon (cadr @))\n         (pad 2 (% (car @) 100)) ) ) )\n\n### OOP ###\n(de class Lst\n   (set (setq *Class (++ Lst)) (type *Class))\n   (putl *Class)\n   (def *Class Lst) )\n\n(de object (\"Sym\" \"Val\" . @)\n   (putl \"Sym\")\n   (def \"Sym\" \"Val\")\n   (while (args)\n      (put \"Sym\" (next) (next)) )\n   \"Sym\" )\n\n(de extend X\n   (setq *Class (car X)) )\n\n# Class variables\n(de var X\n   (if (pair (car X))\n      (def (cdar X) (car (++ X)) X)\n      (def *Class (++ X) X) )\n   X )\n\n(de var: X\n   (apply meta X This) )\n\n### Math ###\n(de scl (\"N\" . \"Prg\")\n   (if \"Prg\"\n      (let *Scl \"N\" (run \"Prg\"))\n      (setq *Scl \"N\") ) )\n\n# (Knuth Vol.2, p.442)\n(de ** (X N)  # N th power of X\n   (if (ge0 N)\n      (let Y 1\n         (loop\n            (when (bit? 1 N)\n               (setq Y (* Y X)) )\n            (T (=0 (setq N (>> 1 N)))\n               Y )\n            (setq X (* X X)) ) )\n      0 ) )\n\n# Accumulate\n(de accu (\"Var\" Key Val \"Var2\")\n   (when Val\n      (if\n         (if \"Var2\"\n            (lup (val \"Var2\") Key)\n            (assoc Key (val \"Var\")) )\n         (con @ (+ Val (cdr @)))\n         (push \"Var\" (setq Val (cons Key Val)))\n         (and \"Var2\" (idx @ Val 0)) ) ) )\n\n### REPL ###\n(de complete (S)\n   (when S\n      (setq \"*Cmpl\"\n         (if (=T S)\n            (list \"   \")\n            (flip (all* S)) ) ) )\n   (pop '\"*Cmpl\") )\n\n(de remark (\"X\")\n   (let? Lst\n      (recur (\"X\")\n         (make\n            (cond\n               ((num? \"X\")\n                  (when (>= 799999 \"X\" 700000)\n                     (link (dat$ \"X\" \"-\")) )\n                  (unless (=0 *Scl)\n                     (link (format \"X\" *Scl)) ) )\n               ((sym? \"X\")\n                  (let? Nsp (nsp \"X\")\n                     (or\n                        (== 'pico Nsp)\n                        (== 'priv Nsp)\n                        (link (pack (sym Nsp) \"~\" (sym \"X\"))) ) )\n                  (when (type \"X\")\n                     (link (sym @)) ) )\n               (T (and (recurse (car \"X\")) (chain @))) ) ) )\n      (prin\n         \"  \"\n         (and (=1 (%@ \"isatty\" 'I (fd))) \"\\e[0;36m\")\n         \"#\" )\n      (for X Lst\n         (prin \" \" X) )\n      (when (=1 (%@ \"isatty\" 'I (fd)))\n         (prin \"\\e[0m\") ) ) )\n\n### Pretty Printing ###\n(de pretty (X N)\n   (setq N (abs (space (or N 0))))\n   (while (and (pair X) (== 'quote (car X)))\n      (prin \"'\")\n      (++ X) )\n   (cond\n      ((atom X) (print X))\n      ((memq (car X) '(de dm redef))\n         (_pretty\n            (spPrt (++ X))\n            (spPrt (++ X))\n            (prtty1 X N Z) ) )\n      ((memq (car X) '(let let?))\n         (_pretty\n            (cond\n               ((atom (car X))\n                  (spPrt (++ X))\n                  (prtty? (++ X) N) )\n               ((>= 12 (size (car X)))\n                  (prin \" (\")\n                  (let (P (circ? X)  Z (++ X))\n                     (prtty2 Z NIL Z) )\n                  (prin \")\") )\n               (T\n                  (nlPrt N)\n                  (prin \"(\")\n                  (let (P (circ? X)  Z (++ X))\n                     (prtty2 Z (+ N 3) Z) )\n                  (prin \" )\") ) )\n            (prtty1 X N Z) ) )\n      ((== 'for (car X))\n         (_pretty\n            (cond\n               ((or (atom (car X)) (atom (cdar X)))\n                  (spPrt (++ X))\n                  (prtty? (++ X) N) )\n               ((>= 12 (size (car X)))\n                  (spPrt (++ X)) )\n               (T\n                  (nlPrt N)\n                  (prtty0 (++ X) (+ 3 N)) ) )\n            (prtty1 X N Z) ) )\n      ((== 'if2 (car X))\n         (_pretty\n            (when (>= 12 (size (head 2 X)))\n               (spPrt (++ X))\n               (spPrt (++ X)) )\n            (prtty1 X N Z) ) )\n      ((memq (car X) '(while until do state finally co))\n         (prtty3 X N) )\n      ((>= 12 (size X))\n         (ifn (memq (car X) '(set setq default))\n            (print X)\n            (prin \"(\")\n            (let (P (circ? X)  Z X)\n               (printsp (++ X))\n               (prtty2 X NIL Z) )\n            (prin \")\") ) )\n      ((memq (car X) '(=: use later recur tco tab new))\n         (_pretty\n            (space)\n            (print (++ X))\n            (prtty1 X N Z) ) )\n      ((memq (car X) '(setq default))\n         (_pretty\n            (if (cdddr X)\n               (prog\n                  (nlPrt N)\n                  (prtty2 X N Z) )\n               (spPrt (++ X))\n               (nlPrt1 (++ X) N) ) ) )\n      ((memq (car X) '(T NIL ! if ifn when unless case casq with catch throw push bind job rt in out err ctl))\n         (prtty3 X N) )\n      (T (prtty0 X N)) ) )\n\n(de _pretty \"Prg\"\n   (prin \"(\")\n   (let (P (circ? X)  Z X)\n      (print (++ X))\n      (run \"Prg\") )\n   (prin \" )\") )\n\n(de prtty0 (X N)\n   (prin \"(\")\n   (let (P (circ? X)  Z X)\n      (pretty (++ X) (- -3 N))\n      (prtty1 X N Z) )\n   (prin \" )\") )\n\n(de prtty1 (X N Z)\n   (loop\n      (NIL X)\n      (T (atom X)\n         (prin \" . \")\n         (print X) )\n      (T (== Z X)\n         (prin \" .\" (unless P \" )\")) )\n      (when (== P X)\n         (nlPrt N)\n         (inc 'N 3)\n         (prin \". (\")\n         (setq Z P  P) )\n      (nlPrt1 (++ X) N) ) )\n\n(de prtty2 (X N Z)\n   (loop\n      (print (++ X))\n      (NIL X)\n      (T (atom X)\n         (prin \" . \")\n         (print X) )\n      (T (== Z X)\n         (prin \" .\" (unless P \" )\")) )\n      (when (== P X)\n         (nlPrt N)\n         (inc 'N 3)\n         (prin \". (\")\n         (setq Z P  P) )\n      (if N\n         (prtty? (++ X) N)\n         (space)\n         (print (++ X)) )\n      (NIL X)\n      (T (atom X)\n         (prin \" . \")\n         (print X) )\n      (T (== Z X)\n         (prin \" .\" (unless P \" )\")) )\n      (when (== P X)\n         (nlPrt N)\n         (inc 'N 3)\n         (prin \". (\")\n         (setq Z P  P) )\n      (if N\n         (nlPrt N)\n         (space 2) ) ) )\n\n(de prtty3 (X N)\n   (prin \"(\")\n   (let (P (circ? X)  Z X)\n      (print (++ X))\n      (when (or (atom (car X)) (>= 12 (size (car X))))\n         (spPrt (++ X)) )\n      (when X\n         (prtty1 X N Z)\n         (space) ) )\n   (prin \")\") )\n\n(de prtty? (X N)\n   (ifn (or (atom X) (>= 12 (size X)))\n      (nlPrt1 X N)\n      (spPrt X) ) )\n\n(de spPrt (X)\n   (space)\n   (print X) )\n\n(de nlPrt (N)\n   (prinl)\n   (space (+ 3 N)) )\n\n(de nlPrt1 (X N)\n   (prinl)\n   (pretty X (+ 3 N)) )\n\n(de pp (\"X\" C)\n   (let *Dbg NIL\n      (pretty\n         (cond\n            ((or C (pair \"X\"))\n               (cons 'dm \"X\"\n                  (if (pair \"X\")\n                     (method (car \"X\") (cdr \"X\"))\n                     (method \"X\" C) ) ) )\n            ((getd \"X\") (cons 'de \"X\" @))\n            (T (cons 'def (lit \"X\") (val \"X\"))) ) )\n      (prinl)\n      \"X\" ) )\n\n(de show (\"X\" . @)\n   (let *Dbg NIL\n      (setq \"X\" (pass get \"X\"))\n      (when (sym? \"X\")\n         (print \"X\" (less (val \"X\")))\n         (prinl)\n         (maps\n            '((X)\n               (space 3)\n               (if (atom X)\n                  (prog (print X) (remark X))\n                  (print (cdr X) (less (car X)))\n                  (remark (car X)) )\n               (prinl) )\n            \"X\" ) )\n      \"X\" ) )\n\n(de view (X Y)\n   (let *Dbg NIL\n      (if (=T Y)\n         (let N 0\n            (recur (N X)\n               (when X\n                  (recurse (+ 3 N) (cddr X))\n                  (space N)\n                  (println (car X))\n                  (recurse (+ 3 N) (cadr X)) ) ) )\n         (let (P (circ? X)  Z X)\n            (loop\n               (T (atom X) (println X))\n               (if (atom (car X))\n                  (println '+-- (++ X))\n                  (print '+---)\n                  (view\n                     (++ X)\n                     (append Y (cons (if X \"|   \" \"    \"))) ) )\n               (NIL X)\n               (mapc prin Y)\n               (T (== Z X) (println '*))\n               (ifn (== P X)\n                  (println '|)\n                  (prinl \"|*\")\n                  (setq Z P  P) )\n               (mapc prin Y) ) ) ) ) )\n\n### Check ###\n# Assertions\n(de assert Prg\n   (when *Dbg\n      (let A (if (cdr Prg) (cons 'and Prg) (car Prg))\n         (cons\n            (list 'unless A\n               (list 'quit \"'assert' failed\" (lit A)) ) ) ) ) )\n\n# Unit tests\n(de test (\"Pat\" . \"Prg\")\n   (bind (fish pat? \"Pat\")\n      (unless (match \"Pat\" (run \"Prg\"))\n         (msg \"Prg\")\n         (quit \"'test' failed\" \"Pat\") ) ) )\n\n### Debug ###\n`*Dbg\n\n(and (info \"~/.pil/rc\") (load @@))\n\n(load \"@lib/lint.l\" \"@lib/debug.l\" \"@lib/vip.l\")\n\n(noLint 'recurse)\n(mapc noLint '(pretty _pretty) 'Z)\n(mapc noLint '(pretty _pretty prtty0 prtty1 prtty2 prtty3) 'P)\n"
  },
  {
    "path": "loc/AE.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode \"971\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@Y \"-\" @M \"-\" @D)\n   *DayFmt '(\"Monday\" \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" \"Saturday\" \"Sunday\")\n   *MonFmt '(\"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \"July\" \"August\" \"September\" \"October\" \"November\" \"December\") )\n"
  },
  {
    "path": "loc/AR.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"54\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \"-\" @M \"-\" @Y)\n   *DayFmt '(\"Lunes\" \"Martes\" \"Miércoles\" \"Jueves\" \"Viernes\" \"Sábado\" \"Domingo\")\n   *MonFmt '(\"Enero\" \"Febrero\" \"Marzo\" \"Abril\" \"Mayo\" \"Junio\" \"Julio\" \"Agosto\" \"Septiembre\" \"Octubre\" \"Noviembre\" \"Diciembre\") )\n"
  },
  {
    "path": "loc/CH.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \"'\"\n   *CtryCode \"41\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"Montag\" \"Dienstag\" \"Mittwoch\" \"Donnerstag\" \"Freitag\" \"Samstag\" \"Sonntag\")\n   *MonFmt '(\"Januar\" \"Februar\" \"März\" \"April\" \"Mai\" \"Juni\" \"Juli\" \"August\" \"September\" \"Oktober\" \"November\" \"Dezember\") )\n"
  },
  {
    "path": "loc/CKB.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode \"964\"\n   *NatTrunkPrf '(\"0\" \"0\")\n   *DateFmt '(@Y \"/\" @M \"/\" @D)\n   *DayFmt '(\"دووشەممە\" \"سێشەممە\" \"چوارشەممە\" \"پێنجشەممە\" \"هەینی\" \"شەممە\" \"یەکشەممە\")\n   *MonFmt '(\"کانوونی دووەم\" \"شوبات\" \"ئازار\" \"نیسان\" \"ئایار\" \"حوزەیران\" \"تەمموز\" \"ئاب\" \"ئەیلوول\" \"تشرینی یەکەم\" \"تشرینی دووەم\" \"کانوونی یەکەم\") )\n"
  },
  {
    "path": "loc/CN.l",
    "content": "(load \"@loc/NIL.l\")\n"
  },
  {
    "path": "loc/DE.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"49\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"Montag\" \"Dienstag\" \"Mittwoch\" \"Donnerstag\" \"Freitag\" \"Samstag\" \"Sonntag\")\n   *MonFmt '(\"Januar\" \"Februar\" \"März\" \"April\" \"Mai\" \"Juni\" \"Juli\" \"August\" \"September\" \"Oktober\" \"November\" \"Dezember\") )\n"
  },
  {
    "path": "loc/ES.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"34\"\n   *NatTrunkPrf NIL\n   *DateFmt '(@D \"/\" @M \"/\" @Y)\n   *DayFmt '(\"Lunes\" \"Martes\" \"Miércoles\" \"Jueves\" \"Viernes\" \"Sábado\" \"Domingo\")\n   *MonFmt '(\"Enero\" \"Febrero\" \"Marzo\" \"Abril\" \"Mayo\" \"Junio\" \"Julio\" \"Agosto\" \"Setiembre\" \"Octubre\" \"Noviembre\" \"Diciembre\") )\n"
  },
  {
    "path": "loc/FR.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"33\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \"/\" @M \"/\" @Y)\n   *DayFmt '(\"Lundi\" \"Mardi\" \"Mercredi\" \"Jeudi\" \"Vendredi\" \"Samedi\" \"Dimanche\")\n   *MonFmt '(\"Janvier\" \"Février\" \"Mars\" \"Avril\" \"Mai\" \"Juin\" \"Juillet\" \"Août\" \"Septembre\" \"Octobre\" \"Novembre\" \"Décembre\") )\n"
  },
  {
    "path": "loc/GB.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode \"44\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \"/\" @M \"/\" @Y)\n   *DayFmt '(\"Monday\" \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" \"Saturday\" \"Sunday\")\n   *MonFmt '(\"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \"July\" \"August\" \"September\" \"October\" \"November\" \"December\") )\n"
  },
  {
    "path": "loc/GR.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"30\"\n   *NatTrunkPrf NIL\n   *DateFmt '(@D \"/\" @M \"/\" @Y)\n   *DayFmt '(\"Δευτέρα\" \"Τρίτη\" \"Τετάρτη\" \"Πέμπτη\" \"Παρασκευή\" \"Σάββατο\" \"Κυριακή\")\n   *MonFmt '(\"Ιανουάριος\" \"Φεβρουάριος\" \"Μάρτιος\" \"Απρίλιος\" \"Μάϊος\" \"Ιούνιος\" \"Ιούλιος\" \"Αύγουστος\" \"Σεπτέμβριος\" \"Οκρώβριος\" \"Νοέμβριος\" \"Δεκέμβριος\") )\n"
  },
  {
    "path": "loc/HR.l",
    "content": "(load \"@loc/NIL.l\")\n"
  },
  {
    "path": "loc/IT.l",
    "content": "(load \"@loc/NIL.l\")\n"
  },
  {
    "path": "loc/JP.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode \"81\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@Y \"/\" @M \"/\" @D)\n   *DayFmt '(\"月曜日\" \"火曜日\" \"水曜日\" \"木曜日\" \"金曜日\" \"土曜日\" \"日曜日\")\n   *MonFmt '(\"一月\" \"二月\" \"三月\" \"四月\" \"五月\" \"六月\" \"七月\" \"八月\" \"九月\" \"十月\" \"十一月\" \"十二月\") )\n"
  },
  {
    "path": "loc/NIL.l",
    "content": "(setq  # Default locale\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode NIL\n   *NatTrunkPrf NIL\n   *DateFmt '(@Y \"-\" @M \"-\" @D)\n   *DayFmt '(\"Monday\" \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" \"Saturday\" \"Sunday\")\n   *MonFmt '(\"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \"July\" \"August\" \"September\" \"October\" \"November\" \"December\") )\n"
  },
  {
    "path": "loc/NO.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \".\"\n   *CtryCode \"47\"\n   *NatTrunkPrf NIL\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"mandag\" \"tirsdag\" \"onsdag\" \"torsdag\" \"fredag\" \"lørdag\" \"søndag\")\n   *MonFmt '(\"januar\" \"februar\" \"mars\" \"april\" \"mai\" \"juni\" \"juli\" \"august\" \"september\" \"oktober\" \"november\" \"desember\") )\n"
  },
  {
    "path": "loc/RU.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \" \"\n   *CtryCode \"7\"\n   *NatTrunkPrf '(\"8\")\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"Понедельник\" \"Вторник\" \"Среда\" \"Четверг\" \"Пятница\" \"Суббота\" \"Воскресенье\")\n   *MonFmt '(\"Январь\" \"Февраль\" \"Март\" \"Апрель\" \"Май\" \"Июнь\" \"Июль\" \"Август\" \"Сентябрь\" \"Октябрь\" \"Ноябрь\" \"Декабрь\") )\n"
  },
  {
    "path": "loc/SE.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \" \"\n   *CtryCode \"46\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"Måndag\" \"Tisdag\" \"Onsdag\" \"Torsdag\" \"Fredag\" \"Lördag\" \"Söndag\")\n   *MonFmt '(\"Januari\" \"Februari\" \"Mars\" \"April\" \"Maj\" \"juni\" \"Juli\" \"Augusti\" \"September\" \"Oktober\" \"November\" \"December\") )\n"
  },
  {
    "path": "loc/TR.l",
    "content": "(load \"@loc/NIL.l\")\n"
  },
  {
    "path": "loc/UA.l",
    "content": "(setq\n   *Sep0 \",\"\n   *Sep3 \" \"\n   *CtryCode \"380\"\n   *NatTrunkPrf '(\"0\")\n   *DateFmt '(@D \".\" @M \".\" @Y)\n   *DayFmt '(\"Понеділок\" \"Вівторок\" \"Середа\" \"Четвер\" \"П’ятниця\" \"Субота\" \"Неділя\")\n   *MonFmt '(\"Січень\" \"Лютий\" \"Березень\" \"Квітень\" \"Травень\" \"Червень\" \"Липень\" \"Серпень\" \"Вересень\" \"Жовтень\" \"Листопад\" \"Грудень\") )\n"
  },
  {
    "path": "loc/US.l",
    "content": "(setq\n   *Sep0 \".\"\n   *Sep3 \",\"\n   *CtryCode \"1\"\n   *NatTrunkPrf '(\"1\")\n   *DateFmt '(@M \"/\" @D \"/\" @Y)\n   *DayFmt '(\"Monday\" \"Tuesday\" \"Wednesday\" \"Thursday\" \"Friday\" \"Saturday\" \"Sunday\")\n   *MonFmt '(\"January\" \"February\" \"March\" \"April\" \"May\" \"June\" \"July\" \"August\" \"September\" \"October\" \"November\" \"December\") )\n"
  },
  {
    "path": "loc/ar",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\nT \"@loc/es\"\n"
  },
  {
    "path": "loc/ca",
    "content": "# 28aug17abu\n# Arnau Figueras\n\n\"Language\" \"Idioma\"\n\n# lib/db.l\n\"Boolean input expected\" \"S'espera l'ingrés de dades tipus booleà\"\n\"Numeric input expected\" \"S'espera l'ingrés de dades tipus numèric\"\n\"Symbolic type expected\" \"Se esperan datos del tipo simbólico\"\n\"String type expected\" \"S'esperen dades del tipus simbòlic\"\n\"Type error\" \"Error de teclejat\"\n\"Not unique\" \"No únic\"\n\"Input required\" \"Es requereix ingrés de dades\"\n\n# lib/form.l\n\"Cancel\" \"Cancel·lar\"\n\"Yes\" \"Sí\"\n\"No\" \"No\"\n\"Select\" \"Seleccionar\"\n\"Delete row?\" \"¿Borrar fila?\"\n\"Show\" \"Mostrar\"\n\"Bad date format\" \"El format de la data no és vàlid\"\n\"Bad time format\" \"El format de l’hora no és vàlid\"\n\"Bad phone number format\" \"El format del número de telèfon no és vàlid\"\n\"male\" \"home\"\n\"female\" \"dona\"\n\"New\" \"nou\"\n\"Edit\" \"Editar\"\n\"Save\" \"Guardar\"\n\"Done\" \"Acabar\"\n\"Currently edited by '@2' (@1)\" \"Actualmente editat per '@2' (@1)\"\n\"Search\" \"Buscar\"\n\"Reset\" \"Buidar/Netejar\"\n\"New/Copy\" \"Nou/Copiar\"\n\"Restore\" \"Restaurar\"\n\"Restore @1?\" \"¿Restaurar @1?\"\n\"Delete\" \"Esborrar\"\n\"Delete @1?\" \"¿Esborrar @1?\"\n\"Data not found\" \"No s’han trobat dades\"\n\"Undo\" \"Desfer\"\n\"Undo: '@1'\" \"Desfer: '@1'\"\n\"Redo\" \"Rehacer\"\n\"Redo: '@1'\" \"Desfer: '@1'\"\n\n# General\n\"login\" \"Entrar al sistema\"\n\"logout\" \"Sortir del sistema\"\n\"' logged in\" \"' ha ingressat al sistema\"\n\"Name\" \"Nom\"\n\"Login Name\" \"Nom d’usuari\"\n\"Full Name\" \"Nom complet\"\n\"Password\" \"Contrasenya\"\n\"Permission denied\" \"Permís denegat\"\n\"Permissions\" \"Permisos\"\n\"Role\" \"Rol\"\n\"Role Administration\" \"Administració de rols\"\n\"Roles\" \"Rols\"\n\"User\" \"Usuari\"\n\"User Administration\" \"Administració d’usuaris\"\n\"Users\" \"Usuaris\"\n\"Settings\" \"Configuració\"\n\"Phone\" \"Telèfon\"\n\n# Tooltips\n\"Open submenu\" \"Obrir submenú\"\n\"Close submenu\" \"Tancar submenú\"\n\"Next object of the same type\" \"Següent objecte del mateix tipus\"\n\"Find or create an object of the same type\" \"Buscar o crear objecte del mateix tipus\"\n\"Choose a suitable value\" \"Tria un valor adequat\"\n\"Adopt this value\" \"Selecciona aquest valor\"\n\"Go to first line\" \"Anar a la primera línia\"\n\"Scroll up one page\" \"Pujar una pàgina\"\n\"Scroll up one line\" \"Pujar una línia\"\n\"Scroll down one line\" \"Baixar una línia\"\n\"Scroll down one page\" \"Baixar una pàgina\"\n\"Go to last line\" \"Anar a l’última línia\"\n\"Insert empty row\" \"Insertar línia buida\"\n\"Delete row\" \"Esborrar línia\"\n\"Shift row up\" \"Moure línia amunt\"\n\"Clear all input fields\" \"Esborrar tots els camps\"\n\"Release exclusive write access for this object\" \"Alliberar accés exclusiu d’escriptura per a aquest objecte\"\n\"Gain exclusive write access for this object\" \"Reclamar accés exclusiu d’escriptura per a aquest objecte\"\n\"Start search\" \"Inicia la cerca\"\n\"Create new object\" \"Crear nou objecte\"\n\"Create a new copy of this object\" \"Crear nova còpia d'aquest objecte\"\n\"Mark this object as \\\"not deleted\\\"\" \"Marcar aquest objecte com \\\"no esborrat\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Marcar aquest objecte com \\\"esborrat\\\"\"\n\"Update\" \"Actualitzar\"\n"
  },
  {
    "path": "loc/ch",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\nT \"@loc/de\"\n"
  },
  {
    "path": "loc/ckb",
    "content": "# 10jan22\n# Hunar Omar <hbkurd@gmail.com>\n\n\"Language\" \"زمان\"\n\n# lib/db.l\n\"Boolean input expected\" \"چاوەڕوانی تێچەی ڕاست یان هەڵە کرا\"\n\"Numeric input expected\" \"چاوەڕوانی تێچەی ژمارەیی کرا\"\n\"Symbolic type expected\" \"چاوەڕوانی تێچەی هێمایی کرا\"\n\"String type expected\" \"چاوەڕوانی جۆرێکی نووسینی کرا\"\n\"Type error\" \"هەڵە لە جۆردا\"\n\"Not unique\" \"بێهاوتا نییە\"\n\"Input required\" \"تێچەیەک پێویستە\"\n\n# lib/form.l\n\"Cancel\" \"وازهێنان\"\n\"Yes\" \"بەڵێ\"\n\"No\" \"نەخێر\"\n\"Select\" \"دیاریکردن\"\n\"Delete row?\" \"ڕیز بسڕدرێتەوە؟\"\n\"Show\" \"پیشاندان\"\n\"Bad date format\" \"شێوازی بەروار هەڵەیە\"\n\"Bad time format\" \"شێوازی کات هەڵەیە\"\n\"Bad phone number format\" \"شێوازی ژمارەی تەلەفۆن هەڵەیە\"\n\"male\" \"نێر\"\n\"female\" \"مێ\"\n\"New\" \"نوێ\"\n\"Edit\" \"دەستکاری\"\n\"Save\" \"هەڵگرتن\"\n\"Done\" \"تەواو\"\n\"Currently edited by '@2' (@1)\" \"وا دەستکاری دەکرێت لەلایەن '@2' (@1)\"\n\"Search\" \"گەڕان\"\n\"Reset\" \"دامەزراندنەوە\"\n\"New/Copy\" \"نوێ/لەبەرگرتنەوە\"\n\"Restore\" \"گەڕاندنەوە\"\n\"Restore @1?\" \"@1 بگەڕێندرێتەوە؟\"\n\"Delete\" \"سڕینەوە\"\n\"Delete @1?\" \"@1 بسڕدرێتەوە؟\"\n\"Data not found\" \"زانیاری نەدۆزرایەوە\"\n\"Undo\" \"گەڕانەوە\"\n\"Undo: '@1'\" \"گەڕانەوە: '@1'\"\n\"Redo\" \"نەگەڕانەوە\"\n\"Redo: '@1'\" \"نەگەڕانەوە: '@1'\"\n\n# General\n\"login\" \"چوونەژوورەوە\"\n\"logout\" \"چوونەدەرەوە\"\n\"' logged in\" \"' چووە ژوورەوە\"\n\"Name\" \"ناو\"\n\"Login Name\" \"ناوی چوونەژوورەوە\"\n\"Full Name\" \"ناوی تەواو\"\n\"Password\" \"تێپەڕەوشە\"\n\"Permission denied\" \"مۆڵەت ڕەتکرایەوە\"\n\"Permissions\" \"مۆڵەتەکان\"\n\"Role\" \"پلە\"\n\"Role Administration\" \"بەڕێوبەرایەتی پلە\"\n\"Roles\" \"پلەکان\"\n\"User\" \"بەکارهێنەر\"\n\"User Administration\" \"بەڕێوبەرایەتی بەکارهێنەر\"\n\"Users\" \"بەکارهێنەران\"\n\"Settings\" \"ڕێکخستن\"\n\"Phone\" \"تەلەفۆن\"\n\n# Tooltips\n\"Open submenu\" \"کردنەوەی پێڕستی دووەمی\"\n\"Close submenu\" \"داخستنی پێڕستی دووەمی\"\n\"Next object of the same type\" \"تەنی دواتری هەمان جۆر\"\n\"Find or create an object of the same type\" \"دۆزینەوە یان دروستکردنی تەنێکی نوێ لە هەمان جۆر\"\n\"Choose a suitable value\" \"نرخێکی گونجاو هەڵبژێرە\"\n\"Adopt this value\" \"هەڵگرتنەوەی ئەم نرخە\"\n\"Go to first line\" \"بڕۆ بۆ یەکەم دێڕ\"\n\"Scroll up one page\" \"پەڕەیەک بۆ سەرەوە\"\n\"Scroll up one line\" \"دێڕێک بۆ سەرەوە\"\n\"Scroll down one line\" \"دێڕێک بۆ خوارەوە\"\n\"Scroll down one page\" \"پەڕەیەک بۆ خوارەوە\"\n\"Go to last line\" \"ڕۆیشتن بۆ کۆتا دێڕ\"\n\"Insert empty row\" \"زیادکردنی ڕیزێکی بەتاڵ\"\n\"Delete row\" \"سڕینەوەی ڕیز\"\n\"Shift row up\" \"ڕیز ببە بەرەو سەر\"\n\"Clear all input fields\" \"سڕینەوەی هەموو خانە تێچەکان\"\n\"Release exclusive write access for this object\" \"لەدەستدانی مافی تایبەتیی نووسین بۆ ئەم تەنە\"\n\"Gain exclusive write access for this object\" \"دەستکەوتنی مافی تایبەتیی نووسین بۆ ئەم تەنە\"\n\"Start search\" \"دەستکردن بە گەڕان\"\n\"Create new object\" \"دروستکردنی تەنێکی نوێ\"\n\"Create a new copy of this object\" \"درووستکردنی لەبەرگیراوەیەکی نوێ بۆ ئەم تەنە\"\n\"Mark this object as \\\"not deleted\\\"\" \"ئەم تەنە وەک \\\"نەسڕاوە\\\" دیاریبکە\"\n\"Mark this object as \\\"deleted\\\"\" \"ئەم تەنە وەک \\\"سڕاوە\\\" دیاریبکە\"\n\"Update\" \"نوێکردنەوە\"\n"
  },
  {
    "path": "loc/cn",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n"
  },
  {
    "path": "loc/de",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n\"Language\" \"Sprache\"\n\n# lib/db.l\n\"Boolean input expected\" \"Boolean-Type erwartet\"\n\"Numeric input expected\" \"Zahleneingabe erforderlich\"\n\"Symbolic type expected\" \"Symbol-Type erwartet\"\n\"String type expected\" \"String-Type erwartet\"\n\"Type error\" \"Typ-Fehler\"\n\"Not unique\" \"Nicht eindeutig\"\n\"Input required\" \"Eingabe erforderlich\"\n\n# lib/form.l\n\"Cancel\" \"Abbruch\"\n\"Yes\" \"Ja\"\n\"No\" \"Nein\"\n\"Select\" \"Auswahl\"\n\"Delete row?\" \"Zeile löschen?\"\n\"Show\" \"Anzeigen\"\n\"Bad date format\" \"Falsches Datums-Format\"\n\"Bad time format\" \"Falsches Uhrzeit-Format\"\n\"Bad phone number format\" \"Falsches Telefonnummern-Format\"\n\"male\" \"männlich\"\n\"female\" \"weiblich\"\n\"New\" \"Neu\"\n\"Edit\" \"Bearbeiten\"\n\"Save\" \"Speichern\"\n\"Done\" \"Fertig\"\n\"Currently edited by '@2' (@1)\" \"Zur Zeit von '@2' (@1) bearbeitet\"\n\"Search\" \"Suchen\"\n\"Reset\" \"Zurücksetzen\"\n\"New/Copy\" \"Neu/Muster\"\n\"Restore\" \"Wiederherstellen\"\n\"Restore @1?\" \"@1 wiederherstellen?\"\n\"Delete\" \"Löschen\"\n\"Delete @1?\" \"@1 löschen?\"\n\"Data not found\" \"Daten nicht gefunden\"\n\"Undo\" \"Rückgängig\"\n\"Undo: '@1'\" \"Rückgängig: '@1'\"\n\"Redo\" \"Wiederherstellen\"\n\"Redo: '@1'\" \"Wiederherstellen: '@1'\"\n\n# General\n\"login\" \"anmelden\"\n\"logout\" \"abmelden\"\n\"' logged in\" \"' ist angemeldet\"\n\"Name\" \"Name\"\n\"Login Name\" \"Login-Name\"\n\"Full Name\" \"Vollständiger Name\"\n\"Password\" \"Passwort\"\n\"Permission denied\" \"Keine Berechtigung\"\n\"Permissions\" \"Berechtigungen\"\n\"Role\" \"Rolle\"\n\"Role Administration\" \"Rollenverwaltung\"\n\"Roles\" \"Rollen\"\n\"User\" \"Benutzer\"\n\"User Administration\" \"Benutzerverwaltung\"\n\"Users\" \"Benutzer\"\n\"Settings\" \"Einstellungen\"\n\"Phone\" \"Telefon\"\n\n# Tooltips\n\"Open submenu\" \"Untermenü öffnen\"\n\"Close submenu\" \"Untermenü schließen\"\n\"Next object of the same type\" \"Nächstes Objekt vom gleichen Typ\"\n\"Find or create an object of the same type\" \"Ein Objekt vom gleichen Typ suchen oder neu anlegen\"\n\"Choose a suitable value\" \"Einen passenden Wert auswählen\"\n\"Adopt this value\" \"Diesen Wert übernehmen\"\n\"Go to first line\" \"Zur ersten Zeile gehen\"\n\"Scroll up one page\" \"Eine Seite nach oben scrollen\"\n\"Scroll up one line\" \"Eine Zeile nach oben scrollen\"\n\"Scroll down one line\" \"Eine Zeile nach unten scrollen\"\n\"Scroll down one page\" \"Eine Seite nach unten scrollen\"\n\"Go to last line\" \"Zur letzten Zeile gehen\"\n\"Insert empty row\" \"Leerzeile einfügen\"\n\"Delete row\" \"Zeile löschen\"\n\"Shift row up\" \"Zeile nach oben schieben\"\n\"Clear all input fields\" \"Alle Eingabefelder löschen\"\n\"Release exclusive write access for this object\" \"Exklusiven Schreibzugriff auf dieses Objekt freigeben\"\n\"Gain exclusive write access for this object\" \"Exklusiven Schreibzugriff auf dieses Objekt erhalten\"\n\"Start search\" \"Suche starten\"\n\"Create new object\" \"Neues Objekt anlegen\"\n\"Create a new copy of this object\" \"Eine neue Kopie dieses Objektes anlegen\"\n\"Mark this object as \\\"not deleted\\\"\" \"Dieses Objekt als \\\"nicht gelöscht\\\" markieren\"\n\"Mark this object as \\\"deleted\\\"\" \"Dieses Objekt als \\\"gelöscht\\\" markieren\"\n\"Update\" \"Aktualisieren\"\n"
  },
  {
    "path": "loc/el",
    "content": "# 23aug2016\n# Drakopoulos A. <anasdrak@gmail.com>\n\n\"Language\" \"Γλώσσα\"\n\n# lib/db.l\n\"Boolean input expected\" \"Αναμένονται δεδομένα λογικού τύπου\"\n\"Numeric input expected\" \"Αναμένονται δεδομένα αριθμητικού τύπου\"\n\"Symbolic type expected\" \"Αναμένονται δεδομένα συμβολικού τύπου\"\n\"String type expected\" \"Αναμένονται δεδομένα αλφαριθμητικού τύπου\"\n\"Type error\" \"Σφάλμα τύπου\"\n\"Not unique\" \"Δεν είναι μοναδικό\"\n\"Input required\" \"Απαιτείται είσοδος δεδομένων\"\n\n# lib/form.l\n\"Cancel\" \"Άκυρο\"\n\"Yes\" \"Ναί\"\n\"No\" \"Όχι\"\n\"Select\" \"Επιλέξτε\"\n\"Delete row?\" \"Διαγραφή σειράς;\"\n\"Show\" \"Εμφάνισε\"\n\"Bad date format\" \"Η μορφοποίηση τής ημερομηνίας δεν είναι έγκυρη\"\n\"Bad time format\" \"Η μορφοποίηση τής ώρας δεν είναι έγκυρη\"\n\"Bad phone number format\" \"Η μορφοποίηση τού αριθμού τηλεφώνου δεν είναι έγκυρη\"\n\"male\" \"άντρας\"\n\"female\" \"γυναίκα\"\n\"New\" \"Νέο\"\n\"Edit\" \"Διόρθωση\"\n\"Save\" \"Αποθήκευση\"\n\"Done\" \"Τερματισμός\"\n\"Currently edited by '@2' (@1)\" \"Πρόσφατα διορθωμένο από '@2' (@1)\"\n\"Search\" \"Αναζήτηση\"\n\"Reset\" \"Καθάρισε\"\n\"New/Copy\" \"Νέο/Αντιγραφή\"\n\"Restore\" \"Επαναφορά\"\n\"Restore @1?\" \"Επανάφερε @1?\"\n\"Delete\" \"Διαγραφή\"\n\"Delete @1?\" \"Διαγραφή @1?\"\n\"Data not found\" \"Δεν βρέθηκαν δεδομένα\"\n\n# General\n\"login\" \"Είσοδος στο σύστημα\"\n\"logout\" \"Έξοδος από το σύστημα\"\n\"' logged in\" \"' είσοδος στο σύστημα\"\n\"Name\" \"Όνομα\"\n\"Password\" \"Συνθηματικό\"\n\"Permission denied\" \"Άδεια απορρίφθηκε\"\n\"Permissions\" \"Άδειες\"\n\"Role\" \"Ρόλος\"\n\"Roles\" \"Ρόλοι\"\n\"User\" \"Χρήστης\"\n\"Users\" \"Χρήστες\"\n\"Settings\" \"Ρυθμίσεις\"\n\n# Tooltips\n\"Open submenu\" \"Άνοιξε υπομενού\"\n\"Close submenu\" \"Κλείσε υπομενού\"\n\"Next object of the same type\" \"Επόμενο αντικείμενο τού ίδιου τύπου\"\n\"Find or create an object of the same type\" \"Βρές ή δημιούργησε ένα αντικείμενο τού ίδιου τύπου\"\n\"Choose a suitable value\" \"Διάλεξε μια κατάλληλη τιμή\"\n\"Adopt this value\" \"Αποδέξου αυτή την τιμή\"\n\"Go to first line\" \"Πήγαινε στην πρώτη γραμμή\"\n\"Scroll up one page\" \"Πήγαινε πρός τα πάνω μια σελίδα\"\n\"Scroll up one line\" \"Πήγαινε προς τα πάνω μια γραμμή\"\n\"Scroll down one line\" \"Πήγαινε προς τα κάτω μια γραμμή\"\n\"Scroll down one page\" \"Πήγαινε προς τα κάτω μια σελίδα\"\n\"Go to last line\" \"Πήγαινε στην τελευταία γραμμή\"\n\"Insert empty row\" \"Τοποθέτησε κενή γραμμή\"\n\"Delete row\" \"Διάγραψε γραμμή\"\n\"Shift row up\" \"Μετακίνησε γραμμή προς τα πάνω\"\n\"Clear all input fields\" \"Καθάρισε όλα τα πεδία εισαγωγής\"\n\"Release exclusive write access for this object\" \"Απελευθέρωσε την αποκλειστική πρόσβαση εγγραφής για αυτό το αντικείμενο\"\n\"Gain exclusive write access for this object\" \"Απόκτησε αποκλειστική πρόσβαση εγγραφής για αυτό το αντικείμενο\"\n\"Start search\" \"Ξεκίνα αναζήτηση\"\n\"Create new object\" \"Δημιούργησε νέο αντικείμενο\"\n\"Create a new copy of this object\" \"Δημιούργησε νέο αντίγραφο αυτού τού αντικειμένου\"\n\"Mark this object as \\\"not deleted\\\"\" \"Σημάδεψε αυτό το αντικείμενο σαν \\\"μη διεγραμμένο\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Σημάδεψε αυτό το αντικείμενο σαν \\\"διεγραμμένο\\\"\"\n\"Update\" \"Ενημέρωσε\"\n"
  },
  {
    "path": "loc/es",
    "content": "# 28aug17abu\n# Armadillo <tc.rucho@gmail.com>\n# Manuel Cano <manutalcual@gmail.com>\n\n\"Language\" \"Idioma\"\n\n# lib/db.l\n\"Boolean input expected\" \"Se espera el ingreso de datos tipo buliano\"\n\"Numeric input expected\" \"Se espera el ingreso de datos tipo numérico\"\n\"Symbolic type expected\" \"Se esperan datos del tipo simbólico\"\n\"String type expected\" \"Se esperan datos del tipo String\"\n\"Type error\" \"Error de tipado\"\n\"Not unique\" \"No único\"\n\"Input required\" \"Se require ingreso de datos\"\n\n# lib/form.l\n\"Cancel\" \"Cancelar\"\n\"Yes\" \"Sí\"\n\"No\" \"No\"\n\"Select\" \"Seleccionar\"\n\"Delete row?\" \"¿Borrar fila?\"\n\"Show\" \"Mostrar\"\n\"Bad date format\" \"El formato de la fecha no es válido\"\n\"Bad time format\" \"El formato de la hora no es válido\"\n\"Bad phone number format\" \"El formato del número telefónico no es válido\"\n\"male\" \"hombre\"\n\"female\" \"mujer\"\n\"New\" \"Nuevo\"\n\"Edit\" \"Editar\"\n\"Save\" \"Guardar\"\n\"Done\" \"Terminar\"\n\"Currently edited by '@2' (@1)\" \"Actualmente editado por '@2' (@1)\"\n\"Search\" \"Buscar\"\n\"Reset\" \"Vaciar/Limpiar\"\n\"New/Copy\" \"Nuevo/Copiar\"\n\"Restore\" \"Restaurar\"\n\"Restore @1?\" \"¿Restaurar @1?\"\n\"Delete\" \"Borrar\"\n\"Delete @1?\" \"¿Borrar @1?\"\n\"Data not found\" \"No se encontraron datos\"\n\"Undo\" \"Deshacer\"\n\"Undo: '@1'\" \"Deshacer: '@1'\"\n\"Redo\" \"Rehacer\"\n\"Redo: '@1'\" \"Rehacer: '@1'\"\n\n# General\n\"login\" \"Ingresar al Sistema\"\n\"logout\" \"Salir del Sistema\"\n\"' logged in\" \"' ingresó al sistema\"\n\"Name\" \"Nombre\"\n\"Login Name\" \"Nombre de usuario\"\n\"Full Name\" \"Nombre Completo\"\n\"Password\" \"Contraseña\"\n\"Permission denied\" \"Permiso denegado\"\n\"Permissions\" \"Permisos\"\n\"Role\" \"Rol\"\n\"Role Administration\" \"Administración de roles\"\n\"Roles\" \"Roles\"\n\"User\" \"Usuario\"\n\"User Administration\" \"Administración de usuarios\"\n\"Users\" \"Usuarios\"\n\"Settings\" \"Configuración\"\n\"Phone\" \"Teléfono\"\n\n# Tooltips\n\"Open submenu\" \"Abrir submenu\"\n\"Close submenu\" \"Cerrar submenu\"\n\"Next object of the same type\" \"Siguiente objeto del mismo tipo\"\n\"Find or create an object of the same type\" \"Buscar o crear objeto del mismo tipo\"\n\"Choose a suitable value\" \"Elija un valor adecuado\"\n\"Adopt this value\" \"Seleccione este valor\"\n\"Go to first line\" \"Ir a la primera línea\"\n\"Scroll up one page\" \"Subir una página\"\n\"Scroll up one line\" \"Subir una línea\"\n\"Scroll down one line\" \"Bajar una línea\"\n\"Scroll down one page\" \"Bajar una página\"\n\"Go to last line\" \"Ir a la última línea\"\n\"Insert empty row\" \"Insertar línea vacia\"\n\"Delete row\" \"Borrar línea\"\n\"Shift row up\" \"Mover línea arriba\"\n\"Clear all input fields\" \"Borrar todos los campos\"\n\"Release exclusive write access for this object\" \"Liberar acceso exclusido en escritura para este objeto\"\n\"Gain exclusive write access for this object\" \"Reclamar acceso exclusivo en escritura para este objeto\"\n\"Start search\" \"Iniciar búsqueda\"\n\"Create new object\" \"Crear nuevo objeto\"\n\"Create a new copy of this object\" \"Crear nueva copia de este objeto\"\n\"Mark this object as \\\"not deleted\\\"\" \"Marcar este objeto como \\\"no borrado\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Marcar este objeto como \\\"borrado\\\"\"\n\"Update\" \"Actualizar\"\n"
  },
  {
    "path": "loc/fr",
    "content": "# 28aug17abu\n# Raman Gopalan <ramangopalan@gmail.com>\n\n\"Language\" \"Langue\"\n\n# lib/db.l\n\"Boolean input expected\" \"Type booléen attendu\"\n\"Numeric input expected\" \"Type numérique attendu\"\n\"Symbolic type expected\" \"Type symbole attendu\"\n\"String type expected\" \"Type chaîne de caractères attendu\"\n\"Type error\" \"Erreur de type\"\n\"Not unique\" \"Non unique\"\n\"Input required\" \"Saisie requise\"\n\n# lib/form.l\n\"Cancel\" \"Annuler\"\n\"Yes\" \"Oui\"\n\"No\" \"Non\"\n\"Select\" \"Sélectionner\"\n\"Delete row?\" \"Supprimer la ligne?\"\n\"Show\" \"Montrer\"\n\"Bad date format\" \"Mauvais format de date\"\n\"Bad time format\" \"Mauvais format d'heure\"\n\"Bad phone number format\" \"Mauvais format de numéro de téléphone\"\n\"male\" \"mâle\"\n\"female\" \"femelle\"\n\"New\" \"Nouveau\"\n\"Edit\" \"Modifier\"\n\"Save\" \"Enregistrer\"\n\"Done\" \"Terminé\"\n\"Currently edited by '@2' (@1)\" \"Actuellement modifié par '@2' (@1)\"\n\"Search\" \"Chercher\"\n\"Reset\" \"Réinitialiser\"\n\"New/Copy\" \"Nouveau/Copie\"\n\"Restore\" \"Restaurer\"\n\"Restore @1?\" \"Restaurer @1?\"\n\"Delete\" \"Supprimer\"\n\"Delete @1?\" \"Supprimer @1?\"\n\"Data not found\" \"Données introuvables\"\n\"Undo\" \"Annuler\"\n\"Undo: '@1'\" \"Annuler: '@1'\"\n\"Redo\" \"Refaire\"\n\"Redo: '@1'\" \"Refaire: '@1'\"\n\n# General\n\"login\" \"se connecter\"\n\"logout\" \"se déconnecter\"\n\"' logged in\" \"' connecté\"\n\"Name\" \"Nom\"\n\"Login Name\" \"Identifiant\"\n\"Full Name\" \"Nom complet\"\n\"Password\" \"Mot de passe\"\n\"Permission denied\" \"Permission refusée\"\n\"Permissions\" \"Autorisations\"\n\"Role\" \"Rôle\"\n\"Role Administration\" \"Gestion des rôles\"\n\"Roles\" \"Rôles\"\n\"User\" \"Utilisateur\"\n\"User Administration\" \"Gestion des utilisateurs\"\n\"Users\" \"Utilisateurs\"\n\"Settings\" \"Paramètres\"\n\"Phone\" \"Téléphone\"\n\n# Tooltips\n\"Open submenu\" \"Ouvrir le sous-menu\"\n\"Close submenu\" \"Fermer le sous-menu\"\n\"Next object of the same type\" \"Objet suivant du même type\"\n\"Find or create an object of the same type\" \"Trouver ou créer un objet du même type\"\n\"Choose a suitable value\" \"Choisissez une valeur appropriée\"\n\"Adopt this value\" \"Adopter cette valeur\"\n\"Go to first line\" \"Aller à la première ligne\"\n\"Scroll up one page\" \"Défiler d'une page vers le haut\"\n\"Scroll up one line\" \"Défiler d'une ligne vers le haut\"\n\"Scroll down one line\" \"Défiler d'une ligne vers le bas\"\n\"Scroll down one page\" \"Défiler d'une page vers le bas\"\n\"Go to last line\" \"Aller à la dernière ligne\"\n\"Insert empty row\" \"Insérer une ligne vide\"\n\"Delete row\" \"Supprimer la ligne\"\n\"Shift row up\" \"Déplacer la ligne vers le haut\"\n\"Clear all input fields\" \"Effacer tous les champs de saisie\"\n\"Release exclusive write access for this object\" \"Libérer l'accès en écriture exclusif pour cet objet\"\n\"Gain exclusive write access for this object\" \"Obtenir un accès en écriture exclusif pour cet objet\"\n\"Start search\" \"Lancer la recherche\"\n\"Create new object\" \"Créer un nouvel objet\"\n\"Create a new copy of this object\" \"Créer une nouvelle copie de cet objet\"\n\"Mark this object as \\\"not deleted\\\"\" \"Marquer cet objet comme \\\"non supprimé\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Marquer cet objet comme \\\"supprimé\\\"\"\n\"Update\" \"Mettre à jour\"\n"
  },
  {
    "path": "loc/hr",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n"
  },
  {
    "path": "loc/it",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n"
  },
  {
    "path": "loc/ja",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n\"Language\" \"言語\"\n\n# lib/db.l\n\"Boolean input expected\" \"Booleanタイプが必要\"\n\"Numeric input expected\" \"数値入力が必要\"\n\"Symbolic type expected\" \"Symbolicタイプが必要\"\n\"String type expected\" \"Stringタイプが必要\"\n\"Type error\" \"タイプエラー\"\n\"Not unique\" \"重複\"\n\"Input required\" \"入力が必要\"\n\n# lib/form.l\n\"Cancel\" \"キャンセル\"\n\"Yes\" \"はい\"\n\"No\" \"いいえ\"\n\"Select\" \"選択\"\n\"Delete row?\" \"行を消しますか？\"\n\"Show\" \"表示\"\n\"Bad date format\" \"日付が違います\"\n\"Bad time format\" \"時刻が違います\"\n\"Bad phone number format\" \"電話番号が違います\"\n\"male\" \"男性\"\n\"female\" \"女性\"\n\"New\" \"作成\"\n\"Edit\" \"編集\"\n\"Save\" \"保存\"\n\"Done\" \"終了\"\n\"Currently edited by '@2' (@1)\" \"現在'@2'(@1)が編集中です\"\n\"Search\" \"検索\"\n\"Reset\" \"リセット\"\n\"New/Copy\" \"作成/コピー\"\n\"Restore\" \"もとへ戻す\"\n\"Restore @1?\" \"@1もとへ戻しますか？\"\n\"Delete\" \"消去\"\n\"Delete @1?\" \"@1を消しますか？\"\n\"Data not found\" \"データが見つかりません\"\n\"Undo\" \"元に戻す\"\n\"Undo: '@1'\" \"元に戻す: '@1'\"\n\"Redo\" \"やり直す\"\n\"Redo: '@1'\" \"やり直す: '@1'\"\n\n# General\n\"login\" \"ログイン\"\n\"logout\" \"ログアウト\"\n\"' logged in\" \"' ログインしました\"\n\"Name\" \"名前\"\n\"Login Name\" \"ログイン名\"\n\"Full Name\" \"フルネーム\"\n\"Password\" \"パスワード\"\n\"Permission denied\" \"認証できません\"\n\"Permissions\" \"許可\"\n\"Role\" \"役割\"\n\"Role Administration\" \"役割管理\"\n\"Roles\" \"役割\"\n\"User\" \"ユーザー\"\n\"User Administration\" \"ユーザー管理\"\n\"Users\" \"ユーザー\"\n\"Settings\" \"設定\"\n\"Phone\" \"電話番号\"\n\n# Tooltips\n\"Open submenu\" \"サブメニューを開く\"\n\"Close submenu\" \"サブメニューを閉じる\"\n\"Next object of the same type\" \"次の同じタイプへ\"\n\"Find or create an object of the same type\" \"同じタイプを探す/新規\"\n\"Choose a suitable value\" \"適したバリューを選ぶ\"\n\"Adopt this value\" \"このバリューを採用する\"\n\"Go to first line\" \"最初の列にいく\"\n\"Scroll up one page\" \"一ページ上へスクロール\"\n\"Scroll up one line\" \"一行上へスクロール\"\n\"Scroll down one line\" \"一行下へスクロール\"\n\"Scroll down one page\" \"一ページ下へスクロール\"\n\"Go to last line\" \"最後の列にいく\"\n\"Insert empty row\" \"空の行挿入\"\n\"Delete row\" \"行を消す\"\n\"Shift row up\" \"行を上へ移す\"\n\"Clear all input fields\" \"全ての入力フィールドを消す\"\n\"Release exclusive write access for this object\" \"Release exclusive write access for this object\"\n\"Gain exclusive write access for this object\" \"Gain exclusive write access for this object\"\n\"Start search\" \"検索スタート\"\n\"Create new object\" \"オブジェクトを新規\"\n\"Create a new copy of this object\" \"このオブジェクトを新しくコピーする\"\n\"Mark this object as \\\"not deleted\\\"\" \"このオブジェクトを消さない状態にする\"\n\"Mark this object as \\\"deleted\\\"\" \"このオブジェクトを消された状態にする\"\n\"Update\" \"更新\"\n"
  },
  {
    "path": "loc/no",
    "content": "# 28aug17abu\n# Jon Kleiser <jon.kleiser@usit.uio.no>\n\n\"Language\" \"Språk\"\n\n# lib/db.l\n\"Boolean input expected\" \"Boolsk verdi forventet\"\n\"Numeric input expected\" \"Numerisk verdi forventet\"\n\"Symbolic type expected\" \"Symbol-type forventet\"\n\"String type expected\" \"Tekststreng forventet\"\n\"Type error\" \"Type-feil\"\n\"Not unique\" \"Ikke unik\"\n\"Input required\" \"Input-data påkrevet\"\n\n# lib/form.l\n\"Cancel\" \"Avbryt\"\n\"Yes\" \"Ja\"\n\"No\" \"Nei\"\n\"Select\" \"Velg\"\n\"Delete row?\" \"Slett rad?\"\n\"Show\" \"Vis\"\n\"Bad date format\" \"Ugyldig datoformat\"\n\"Bad time format\" \"Ugyldig tidsformat\"\n\"Bad phone number format\" \"Ugyldig telefonnummer-format\"\n\"male\" \"mannlig\"\n\"female\" \"kvinnelig\"\n\"New\" \"Ny\"\n\"Edit\" \"Rediger\"\n\"Save\" \"Lagre\"\n\"Done\" \"Ferdig\"\n\"Currently edited by '@2' (@1)\" \"Redigeres nå av '@2' (@1)\"\n\"Search\" \"Søk\"\n\"Reset\" \"Tilbakestill\"\n\"New/Copy\" \"Ny/Kopi\"\n\"Restore\" \"Gjenopprett\"\n\"Restore @1?\" \"Gjenopprette @1?\"\n\"Delete\" \"Slett\"\n\"Delete @1?\" \"Slett @1?\"\n\"Data not found\" \"Data ble ikke funnet\"\n\"Undo\" \"Angre\"\n\"Undo: '@1'\" \"Angre: '@1'\"\n\"Redo\" \"Utfør likevel\"\n\"Redo: '@1'\" \"Utfør likevel: '@1'\"\n\n# General\n\"login\" \"logg inn\"\n\"logout\" \"logg ut\"\n\"' logged in\" \"' er innlogget\"\n\"Name\" \"Navn\"\n\"Login Name\" \"Innloggingsnavn\"\n\"Full Name\" \"Fullt navn\"\n\"Password\" \"Passord\"\n\"Permission denied\" \"Ingen adgangsrett\"\n\"Permissions\" \"Adgangsrettigheter\"\n\"Role\" \"Rolle\"\n\"Role Administration\" \"Rolle-administrasjon\"\n\"Roles\" \"Roller\"\n\"User\" \"Bruker\"\n\"User Administration\" \"Bruker-administrasjon\"\n\"Users\" \"Brukere\"\n\"Settings\" \"Innstillinger\"\n\"Phone\" \"Telefon\"\n\n# Tooltips\n\"Open submenu\" \"Åpne undermeny\"\n\"Close submenu\" \"Lukk undermeny\"\n\"Next object of the same type\" \"Neste objekt av samme type\"\n\"Find or create an object of the same type\" \"Finn eller opprett et objekt av samme type\"\n\"Choose a suitable value\" \"Velg en passende verdi\"\n\"Adopt this value\" \"Overta denne verdien\"\n\"Go to first line\" \"Gå til første linje\"\n\"Scroll up one page\" \"Scroll opp en side\"\n\"Scroll up one line\" \"Scroll opp en linje\"\n\"Scroll down one line\" \"Scroll ned en linje\"\n\"Scroll down one page\" \"Scroll ned en side\"\n\"Go to last line\" \"Gå til siste linje\"\n\"Insert empty row\" \"Sett inn tom rad\"\n\"Delete row\" \"Slett rad\"\n\"Shift row up\" \"Forskyv en rad opp\"\n\"Clear all input fields\" \"Slett alle input-felter\"\n\"Release exclusive write access for this object\" \"Frigi eksklusiv skrivetilgang til dette objektet\"\n\"Gain exclusive write access for this object\" \"Innhent eksklusiv skrivetilgang til dette objektet\"\n\"Start search\" \"Start søk\"\n\"Create new object\" \"Opprett nytt objekt\"\n\"Create a new copy of this object\" \"Opprett ny kopi av dette objektet\"\n\"Mark this object as \\\"not deleted\\\"\" \"Merk dette objektet som \\\"ikke slettet\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Merk dette objektet som \\\"slettet\\\"\"\n\"Update\" \"Oppdater\"\n"
  },
  {
    "path": "loc/ru",
    "content": "# 17mar21abu\n# Mansur Mamkin <mmamkin@mail.ru>\n# Mike Pechkin <mike.pechkin@gmail.com>\n# Constantine Bytensky <kostya3@gmail.com>\n\n\"Language\" \"Язык\"\n\n# lib/db.l\n\"Boolean input expected\" \"Ожидается булев тип\"\n\"Numeric input expected\" \"Ожидается числовой тип\"\n\"Symbolic type expected\" \"Ожидается символьный тип\"\n\"String type expected\" \"Ожидается строковый тип\"\n\"Type error\" \"Ошибка типа\"\n\"Not unique\" \"Не уникальный\"\n\"Input required\" \"Требуется ввод\"\n\n# lib/form.l\n\"Cancel\" \"Отменить\"\n\"Yes\" \"Да\"\n\"No\" \"Нет\"\n\"Select\" \"Выбрать\"\n\"Delete row?\" \"Удалить строку?\"\n\"Show\" \"Показать\"\n\"Bad date format\" \"Некорректный формат даты\"\n\"Bad time format\" \"Некорректный формат времени\"\n\"Bad phone number format\" \"Некорректный формат номера телефона\"\n\"male\" \"мужской\"\n\"female\" \"женский\"\n\"New\" \"Новый\"\n\"Edit\" \"Редактировать\"\n\"Save\" \"Сохранить\"\n\"Done\" \"Готово\"\n\"Currently edited by '@2' (@1)\" \"Редактируется пользователем «@2» (@1)\"\n\"Search\" \"Искать\"\n\"Reset\" \"Сбросить\"\n\"New/Copy\" \"Новый/копировать\"\n\"Restore\" \"Восстановить\"\n\"Restore @1?\" \"Восстановить @1?\"\n\"Delete\" \"Удалить\"\n\"Delete @1?\" \"Удалить @1?\"\n\"Data not found\" \"Данные не найдены\"\n\"Undo\" \"Отменить\"\n\"Undo: '@1'\" \"Отменить: «@1»\"\n\"Redo\" \"Повторить\"\n\"Redo: '@1'\" \"Повторить: «@1»\"\n\n# General\n\"login\" \"Войти\"\n\"logout\" \"Выйти\"\n\"' logged in\" \"' вошёл\"\n\"Name\" \"Имя\"\n\"Login Name\" \"Имя пользователя\"\n\"Full Name\" \"Полное имя\"\n\"Password\" \"Пароль\"\n\"Permission denied\" \"В доступе отказано\"\n\"Permissions\" \"Права доступа\"\n\"Role\" \"Роль\"\n\"Role Administration\" \"Управление ролями\"\n\"Roles\" \"Роли\"\n\"User\" \"Пользователь\"\n\"User Administration\" \"Управление пользователями\"\n\"Users\" \"Пользователи\"\n\"Settings\" \"Настройки\"\n\"Phone\" \"Телефон\"\n\n# Tooltips\n\"Open submenu\" \"Открыть подменю\"\n\"Close submenu\" \"Закрыть подменю\"\n\"Next object of the same type\" \"Следующий объект того же типа\"\n\"Find or create an object of the same type\" \"Найти или создать объект того же типа\"\n\"Choose a suitable value\" \"Выберите подходящее значение\"\n\"Adopt this value\" \"Принять это значение\"\n\"Go to first line\" \"Перейти к первой строке\"\n\"Scroll up one page\" \"Прокрутить вверх на одну страницу\"\n\"Scroll up one line\" \"Прокрутить вверх на одну строку\"\n\"Scroll down one line\" \"Прокрутить вниз на одну строку\"\n\"Scroll down one page\" \"Прокрутить вниз на одну страницу\"\n\"Go to last line\" \"Перейти к последней строке\"\n\"Insert empty row\" \"Вставить пустую строку\"\n\"Delete row\" \"Удалить строку\"\n\"Shift row up\" \"Сдвинуть строку вверх\"\n\"Clear all input fields\" \"Очистить все поля ввода\"\n\"Release exclusive write access for this object\" \"Освободить эксклюзивный доступ на запись этого объекта\"\n\"Gain exclusive write access for this object\" \"Получить эксклюзивный доступ на запись этого объекта\"\n\"Start search\" \"Начать поиск\"\n\"Create new object\" \"Создать новый объект\"\n\"Create a new copy of this object\" \"Создать новую копию этого объекта\"\n\"Mark this object as \\\"not deleted\\\"\" \"Отметить этот объект как «не удалённый»\"\n\"Mark this object as \\\"deleted\\\"\" \"Отметить этот объект как «удалённый»\"\n\"Update\" \"Обновить\"\n"
  },
  {
    "path": "loc/sv",
    "content": "# 28aug17abu\n# Mattias Sundblad <mattias.sun@gmail.com>\n\n\"Language\" \"Språk\"\n\n# lib/db.l\n\"Boolean input expected\" \"Boolskt värde förväntades\"\n\"Numeric input expected\" \"Numeriskt värde förväntades\"\n\"Symbolic type expected\" \"Symbol-typ förväntades\"\n\"String type expected\" \"Sträng förväntades\"\n\"Type error\" \"Felaktig typ\"\n\"Not unique\" \"Ej unikt värde\"\n\"Input required\" \"Obligatoriskt värde\"\n\n# lib/form.l\n\"Cancel\" \"Avbryt\"\n\"Yes\" \"Ja\"\n\"No\" \"Nej\"\n\"Select\" \"Välj\"\n\"Delete row?\" \"Radera rad?\"\n\"Show\" \"Visa\"\n\"Bad date format\" \"Ogiltigt datumformat\"\n\"Bad time format\" \"Ogiltigt tidsformat\"\n\"Bad phone number format\" \"Ogiltigt telefonnummerformat\"\n\"male\" \"Man\"\n\"female\" \"Kvinna\"\n\"New\" \"Ny\"\n\"Edit\" \"Redigera\"\n\"Save\" \"Spara\"\n\"Done\" \"Klar\"\n\"Currently edited by '@2' (@1)\" \"Redigeras nu av '@2' (@1)\"\n\"Search\" \"Sök\"\n\"Reset\" \"Återställ\"\n\"New/Copy\" \"Ny/Kopiera\"\n\"Restore\" \"Återställ\"\n\"Restore @1?\" \"Återställ @1?\"\n\"Delete\" \"Radera\"\n\"Delete @1?\" \"Radera @1?\"\n\"Data not found\" \"Ingen data hittades\"\n\"Undo\" \"Ångra\"\n\"Undo: '@1'\" \"Ångra: '@1'\"\n\"Redo\" \"Upprepa\"\n\"Redo: '@1'\" \"Upprepa: '@1'\"\n\n# General\n\"login\" \"Logga in\"\n\"logout\" \"Logga ut\"\n\"' logged in\" \"' är inloggad\"\n\"Name\" \"Namn\"\n\"Login Name\" \"Användarnamn\"\n\"Full Name\" \"För- och efternamn\"\n\"Password\" \"Lösenord\"\n\"Permission denied\" \"Ej behörig\"\n\"Permissions\" \"Behörigheter\"\n\"Role\" \"Roll\"\n\"Role Administration\" \"Rollhantering\"\n\"Roles\" \"Roller\"\n\"User\" \"Användare\"\n\"User Administration\" \"Användarhantering\"\n\"Users\" \"Användare\"\n\"Settings\" \"Inställningar\"\n\"Phone\" \"Telefon\"\n\n# Tooltips\n\"Open submenu\" \"Öppna undermeny\"\n\"Close submenu\" \"Stäng undermeny\"\n\"Next object of the same type\" \"Nästa objekt av samma typ\"\n\"Find or create an object of the same type\" \"Hitta eller skapa ett objekt av samma typ\"\n\"Choose a suitable value\" \"Välj ett värde\"\n\"Adopt this value\" \"Använd detta värde\"\n\"Go to first line\" \"Gå till första raden\"\n\"Scroll up one page\" \"Bläddra en sida framåt\"\n\"Scroll up one line\" \"Gå upp en rad\"\n\"Scroll down one line\" \"Gå ner en rad\"\n\"Scroll down one page\" \"Bläddra en sida bakåt\"\n\"Go to last line\" \"Gå till sista raden\"\n\"Insert empty row\" \"Infoga ny rad\"\n\"Delete row\" \"Radera raden\"\n\"Shift row up\" \"Flytta raden uppåt\"\n\"Clear all input fields\" \"Töm alla fält\"\n\"Release exclusive write access for this object\" \"Släpp lås för detta objekt\"\n\"Gain exclusive write access for this object\" \"Lås detta objekt\"\n\"Start search\" \"Sök\"\n\"Create new object\" \"Skapa nytt objekt\"\n\"Create a new copy of this object\" \"Skapa en kopia av detta objekt\"\n\"Mark this object as \\\"not deleted\\\"\" \"Markera detta objekt som \\\"ej raderat\\\"\"\n\"Mark this object as \\\"deleted\\\"\" \"Markera detta objekt som \\\"raderat\\\"\"\n\"Update\" \"Uppdatera\"\n"
  },
  {
    "path": "loc/tr",
    "content": "# 22nov21 Software Lab. Alexander Burger\n\n"
  },
  {
    "path": "loc/uk",
    "content": "# 17mar21abu\n# Constantine Bytensky <kostya3@gmail.com>\n\n\"Language\" \"Мова\"\n\n# lib/db.l\n\"Boolean input expected\" \"Очікується булевий тип\"\n\"Numeric input expected\" \"Очікується числовий тип\"\n\"Symbolic type expected\" \"Очікується символьний тип\"\n\"String type expected\" \"Очікується строковий тип\"\n\"Type error\" \"Помилка типу\"\n\"Not unique\" \"Не унікальний\"\n\"Input required\" \"Потребується введення\"\n\n# lib/form.l\n\"Cancel\" \"Відмінити\"\n\"Yes\" \"Так\"\n\"No\" \"Ні\"\n\"Select\" \"Вибрати\"\n\"Delete row?\" \"Видалити строку?\"\n\"Show\" \"Показати\"\n\"Bad date format\" \"Неправильний формат дати\"\n\"Bad time format\" \"Неправильний формат часу\"\n\"Bad phone number format\" \"Неправильний формат номера телефону\"\n\"male\" \"чоловіча\"\n\"female\" \"жіноча\"\n\"New\" \"Новий\"\n\"Edit\" \"Редагувати\"\n\"Save\" \"Зберегти\"\n\"Done\" \"Готово\"\n\"Currently edited by '@2' (@1)\" \"Редагується користувачем «@2» (@1)\"\n\"Search\" \"Шукати\"\n\"Reset\" \"Скинути\"\n\"New/Copy\" \"Новий/копіювати\"\n\"Restore\" \"Відновити\"\n\"Restore @1?\" \"Відновити @1?\"\n\"Delete\" \"Видалити\"\n\"Delete @1?\" \"Видалити @1?\"\n\"Data not found\" \"Дані не знайдені\"\n\"Undo\" \"Відмінити\"\n\"Undo: '@1'\" \"Відмінити: «@1»\"\n\"Redo\" \"Повторити\"\n\"Redo: '@1'\" \"Повторити: «@1»\"\n\n# General\n\"login\" \"Увійти\"\n\"logout\" \"Вийти\"\n\"' logged in\" \"' увійшов\"\n\"Name\" \"Ім’я\"\n\"Login Name\" \"Ім’я користувача\"\n\"Full Name\" \"Повне ім’я\"\n\"Password\" \"Пароль\"\n\"Permission denied\" \"У доступі відмовлено\"\n\"Permissions\" \"Права доступу\"\n\"Role\" \"Роль\"\n\"Role Administration\" \"Управління ролями\"\n\"Roles\" \"Ролі\"\n\"User\" \"Користувач\"\n\"User Administration\" \"Управління користувачами\"\n\"Users\" \"Користувачі\"\n\"Settings\" \"Налаштування\"\n\"Phone\" \"Телефон\"\n\n# Tooltips\n\"Open submenu\" \"Відкрити підменю\"\n\"Close submenu\" \"Закрити підменю\"\n\"Next object of the same type\" \"Наступний об’ект цього ж типу\"\n\"Find or create an object of the same type\" \"Знайти або створити об’ект цього ж типу\"\n\"Choose a suitable value\" \"Оберіть відповідне значення\"\n\"Adopt this value\" \"Прийняти це значення\"\n\"Go to first line\" \"Перейти до першого рядка\"\n\"Scroll up one page\" \"Прокрутити вгору на одну сторінку\"\n\"Scroll up one line\" \"Прокрутити вгору на один рядок\"\n\"Scroll down one line\" \"Прокрутити вниз на один рядок\"\n\"Scroll down one page\" \"Прокрутити вниз на одну сторінку\"\n\"Go to last line\" \"Перейти до останнього рядка\"\n\"Insert empty row\" \"Вставити пустий рядок\"\n\"Delete row\" \"Видалити рядок\"\n\"Shift row up\" \"Зсунути рядок вгору\"\n\"Clear all input fields\" \"Очистити усі поля введення\"\n\"Release exclusive write access for this object\" \"Звільнити ексклюзивний доступ на запис цього об’єкту\"\n\"Gain exclusive write access for this object\" \"Отримати ексклюзивний доступ на запис цього об’єкту\"\n\"Start search\" \"Почати пошук\"\n\"Create new object\" \"Створити новый об’єкт\"\n\"Create a new copy of this object\" \"Створити нову копію цього об’єкту\"\n\"Mark this object as \\\"not deleted\\\"\" \"Позначити цей об’єкт як «не видаленний»\"\n\"Mark this object as \\\"deleted\\\"\" \"Позначити цей об’єкт як «видаленний»\"\n\"Update\" \"Оновити\"\n"
  },
  {
    "path": "man/man1/picolisp.1",
    "content": ".\\\" 26oct20abu\n.\\\"\n.TH PICOLISP 1 \"\" \"\" \"User Commands\"\n.SH NAME\npil, picolisp \\- a fast, lightweight Lisp interpreter\n.SH SYNOPSIS\n.B pil\n[arguments ...] [-] [arguments ...] [+]\n.br\n.B picolisp\n[arguments ...] [-] [arguments ...] [+]\n.SH DESCRIPTION\n.B PicoLisp\nis a Lisp interpreter with a small memory footprint, yet relatively high\nexecution speed. It combines an elegant and powerful language with built-in\ndatabase functionality.\n.P\n.B pil\nis the startup front-end for the interpreter. It takes care of starting the\nbinary base system and loading a useful runtime environment.\n.P\n.B picolisp\nis just the bare interpreter binary. It is usually called in stand-alone\nscripts, using the she-bang notation in the first line, passing the minimal\nenvironment in\n.I lib.l\nand loading additional files as needed:\n.P\n.RS\n#!/usr/bin/picolisp /usr/lib/picolisp/lib.l\n.RE\n.RS\n(load \"@ext.l\" \"myfiles/lib.l\" \"myfiles/foo.l\")\n.RE\n.RS\n(do ... something ...)\n.RE\n.RS\n(bye)\n.RE\n.SH INVOCATION\n.B PicoLisp\nhas no pre-defined command line flags; applications are free to define their\nown. Any built-in or user-level Lisp function can be invoked from the command\nline by prefixing it with a hyphen. Examples for built-in functions useful in\nthis context are\n.B version\n(print the version number) or\n.B bye\n(exit the interpreter). Therefore, a minimal call to print the version number\nand then immediately exit the interpreter would be:\n.P\n.RS\n$ pil -version -bye\n.RE\n.P\nAny other argument (not starting with a hyphen) should be the name of a file to\nbe loaded. If the first character of a path or file name is an at-mark, it\nwill be substituted with the path to the installation directory.\n.P\nAll arguments are evaluated from left to right, then an interactive\n.I read-eval-print\nloop is entered (with a colon as prompt).\n.P\nA single hyphen stops the evaluation of the rest of the command line, so that\nthe remaining arguments may be processed under program control.\n.P\nIf the very last command line argument is a single plus character, debugging\nmode is switched on at interpreter startup, before evaluating any of the command\nline arguments. A minimal interactive session is started with:\n.P\n.RS\n$ pil +\n.RE\n.P\nHere you can access the reference manual (expects the shell variable BROWSER to\nbe set, defaults to \"w3m\")\n.P\n.RS\n: (doc)\n.RE\n.P\nand the online documentation for most functions,\n.P\n.RS\n: (doc 'vi)\n.RE\n.P\nor directly inspect their sources:\n.P\n.RS\n: (vi 'doc)\n.RE\n.P\nThe interpreter can be terminated with\n.P\n.RS\n: (bye)\n.RE\n.P\nor by typing Ctrl-D.\n.SH FILES\nRuntime files are maintained in the ~/.pil directory:\n.IP ~/.pil/tmp/<pid>/\nProcess-local temporary directories\n.IP ~/.pil/rc\nLoaded after interpreter startup\n.IP ~/.pil/viprc\nLoaded by the Vip editor\n.SH BUGS\n.B PicoLisp\ndoesn't try to protect you from every possible programming error (\"You asked for\nit, you got it\").\n.SH AUTHOR\nAlexander Burger <abu@software-lab.de>\n.SH RESOURCES\n.B Home page:\nhttp://home.picolisp.com\n.br\n.B Download:\nhttp://www.software-lab.de/down.html\n"
  },
  {
    "path": "man/man1/pil.1",
    "content": ".so man1/picolisp.1\n"
  },
  {
    "path": "misc/bigtest",
    "content": "#!bin/picolisp lib.l\n# 26may22abu\n# misc/bigtest <seed>\n\n(load \"@lib/misc.l\")\n\n(seed (car (argv)))\n\n#  Random patterns:\n#  cnt\n#     xxx0000000000000000000000000xxxx0000000000000000000000000xxx\n#        (| 7 (>> -28 15) (>> -57 7))\n#\n#     xxx1111111111111111111111111xxxx1111111111111111111111111xxx\n#        1FFFFFF0FFFFFF8\n#\n#\n#  dig\n#     xxx000000000000000000000000000xxxx000000000000000000000000000xxx\n#        (| 7 (>> -30 15) (>> -61 7))\n#\n#     xxx111111111111111111111111111xxxx111111111111111111111111111xxx\n#        1FFFFFFC3FFFFFF8\n\n(de rnd ()\n   (let Big (| (rand 0 7) (>> -28 (rand 0 15)) (>> -57 (rand 0 7)))\n      (when (rand T)\n         (setq Big (| Big `(hex \"1FFFFFF0FFFFFF8\"))) )\n      (do (rand 0 2)\n         (let Dig (| (rand 0 7) (>> -30 (rand 0 15)) (>> -61 (rand 0 7)))\n            (when (rand T)\n               (setq Dig (| Dig `(hex \"1FFFFFFC3FFFFFF8\"))) )\n            (setq Big (| Dig (>> -64 Big))) ) )\n      (if (rand T) Big (- Big)) ) )\n\n\n(de test1 (S N1)\n   (let (N (read)  X (eval (list S N1)))\n      (unless (= N X)\n         (prinl \"\\n\" N \": (\" S \" \" N1 \") -> \" X)\n         (bye) ) ) )\n\n(de test2 (S N1 N2)\n   (let (N (read)  X (eval (list S N1 N2)))\n      (unless (= N X)\n         (prinl \"\\n\" N \": (\" S \" \" N1 \" \" N2 \") -> \" X)\n         (bye) ) ) )\n\n(de cmp2 (S N1 N2)\n   (let (N (n0 (read))  X (eval (list S N1 N2)))\n      (unless (== N X)\n         (prinl \"\\n\" N \": (\" S \" \" N1 \" \" N2 \") -> \" X)\n         (bye) ) ) )\n\n\n(sys \"BC_LINE_LENGTH\" \"200\")\n\n(pipe\n   (out '(\"bc\")\n      (do 10000000\n         (setq N1 (rnd))\n         (while (=0 (setq N2 (rnd))))\n         (prinl N1)\n         (prinl N2)\n         (prinl N1 \" + \" N2)\n         (prinl N1 \" + 1\")\n         (prinl N1 \" + 1\")\n         (prinl N1 \" - \" N2)\n         (prinl N1 \" - 1\")\n         (prinl N1 \" - 1\")\n         (prinl N1 \" * \" N2)\n         (prinl N1 \" * 2\")\n         (prinl N1 \" % \" N2)\n         (prinl N1 \" / \" N2)\n         (prinl N1 \" / 2\")\n         (prinl N1 \" >= \" N2)\n         (prinl N1 \" > \" N2)\n         (prinl \"sqrt(\" (abs N1) \")\")\n         (at (0 . 1000) (wait 100)) ) )\n   (do 100\n      (do 100000\n         (setq\n            N1 (read)\n            N2 (read) )\n         (test2 '+ N1 N2)\n         (test2 '+ N1 1)\n         (test1 'inc N1)\n         (test2 '- N1 N2)\n         (test2 '- N1 1)\n         (test1 'dec N1)\n         (test2 '* N1 N2)\n         (test2 '* N1 2)\n         (test2 '% N1 N2)\n         (test2 '/ N1 N2)\n         (test2 '/ N1 2)\n         (cmp2 '>= N1 N2)\n         (cmp2 '> N1 N2)\n         (test1 'sqrt (abs N1)) )\n      (prin \".\")\n      (flush) )\n   (prinl) )\n\n(bye)\n"
  },
  {
    "path": "misc/stress.l",
    "content": "# 18oct20 Software Lab. Alexander Burger\n# Use: nice pil misc/stress.l -main -go -bye; rm db/test jnl db/test2\n\n(load \"@lib/too.l\")\n\n(class +A +Entity)\n(rel key (+Key +Number))               # Key  1 .. 999\n(rel dat (+Ref +Number))               # Data 1 .. 999\n\n(de rnd ()\n   (rand 1 999) )\n\n(de modify (N)\n   (do N\n      (do (rand 10 40)\n         (let K (rnd)\n            (with (db 'key '+A K)\n               (unless (= K (: key))\n                  (quit \"key mismatch\" K) ) ) ) )\n      (dbSync)\n      (let (D (rnd)  X (db 'key '+A (rnd)))\n         (inc *DB (- D (get X 'dat)))\n         (put> X 'dat D) )\n      (commit 'upd) ) )\n\n(de verify ()\n   (dbCheck)\n   (let N 0\n      (scan (tree 'dat '+A)\n         '((K V)\n            (unless (= (car K) (get V 'dat))\n               (quit \"dat mismatch\" K) )\n            (inc 'N (car K)) ) )\n      (unless (= N (val *DB))\n         (quit \"val mismatch\" (- N (val *DB))) ) ) )\n\n(de main ()\n   (seed (in \"/dev/urandom\" (rd 8)))\n   (call \"mkdir\" \"-p\" \"db\")\n   (call \"rm\" \"-f\" \"db/test\" \"jnl\" \"db/test2\")\n   (pool \"db/test\" NIL \"jnl\")\n   (set *DB 0)\n   (for K 999\n      (let D (rnd)\n         (new T '(+A)  'key K  'dat D)\n         (inc *DB D) ) )\n   (commit) )\n\n(de go ()\n   (do 12\n      (do 99\n         (rand)\n         (unless (fork)\n            (modify 999)\n            (bye) ) )\n      (while (kids)\n         (wait 999) )\n      (rollback) )\n   (verify)\n   (pool \"db/test2\")\n   (journal \"jnl\")\n   (call \"cmp\" \"db/test\" \"db/test2\") )\n"
  },
  {
    "path": "pil",
    "content": "#!/bin/sh\nexec ${0%/*}/bin/picolisp ${0%/*}/lib.l @ext.l \"$@\"\n"
  },
  {
    "path": "soTest.c",
    "content": "/* 17sep25 Software Lab. Alexander Burger\n * $ cc -o soTest soTest.c lib/picolisp.so lib/ext.so lib/ht.so\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n\nint picolisp(char*, int, int, char**);\nchar *evaluate(char*);\nvoid reflect(void*, char*);\nvoid stoplisp(void);\n\nint main(int ac, char *av[]) {\n   static char *init[] = {\"picolisp\", \"lib.l\"};\n   char stack[1000000];\n   char *line = NULL;\n   size_t len = 0;\n   char *res;\n\n   if (!picolisp(stack, sizeof(stack), (int)(sizeof(init)/sizeof(char*)), init))\n      return 1;\n   while (--ac) {\n      printf(\"-> %s\\n\", res = evaluate(*++av));\n      free(res);\n   }\n   for (;;) {\n      printf(\": \");\n      if (getline(&line, &len, stdin) < 0)\n         break;\n      printf(\"-> %s\\n\", res = evaluate(line));\n      free(res);\n   }\n   putchar('\\n');\n   free(line);\n   stoplisp();\n   return 0;\n}\n\n#if 0\n\n$ ./soTest \"(* 3 4)\" *Pid *Dbg\n-> 12\n-> 16943\n-> T\n\n# Starting 2 corouines 'a' and 'b'\n$ ./soTest \"(co 'a (loop (yield (inc (0)))))\" \"(co 'a T)\" \"(co 'b (loop (yield (inc (0)))))\" \"(co 'a T)\" \"(co 'b T)\"\n-> 1\n-> 2\n-> 1\n-> 3\n-> 2\n\n#endif\n"
  },
  {
    "path": "src/Makefile",
    "content": "# 13mar26 Software Lab. Alexander Burger\n\n.SILENT:\n\nCC = clang\nPIL = ../pil\nASM = opt -O2\nLLC = llc\nLINK = llvm-link\nSHARED = -shared\nSTRIP = strip\n\n$(shell $(PIL) -bye 2>/dev/null || touch *.ll)\n\nLLVM = $(shell llvm-config --version | cut -d. -f1)\nifeq ($(shell test $(LLVM) -ge 15 -a $(LLVM) -lt 17; echo $$?), 0)\n\tASM += -opaque-pointers\nendif\n\nOS = $(shell uname)\nCPU = $(shell uname -m)\n\nBIN = ../bin\nLIB = ../lib\n\nINC = lib/llvm.l vers.l defs.l glob.l dec.l\nSRC = main.l gc.l big.l sym.l io.l db.l apply.l flow.l subr.l\n\nall: $(LIB)/sysdefs $(BIN)/picolisp $(LIB)/ext.so $(LIB)/ht.so $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\nso: $(LIB)/picolisp.so\n\n# System definitions\n$(LIB)/sysdefs: sysdefs.c\n\t$(CC) -w -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' sysdefs.c  &&  ./a.out > $(LIB)/sysdefs  &&  rm ./a.out\n\n# Base system\n$(BIN)/picolisp: picolisp.bc\n\tmkdir -p $(BIN)\n\t$(LLC) picolisp.bc -relocation-model=pic -o picolisp.s\n\t$(CC) picolisp.s -o $(BIN)/picolisp -rdynamic -lc -lutil -lm -ldl `pkg-config --libs readline libffi`\n\t$(STRIP) $(BIN)/picolisp\n\npicolisp.bc: base.bc lib.bc\n\t$(LINK) -o picolisp.bc base.bc lib.bc\n\nbase.bc: base.ll\n\t$(ASM) -o base.bc base.ll\n\nbase.ll: $(INC) $(SRC) lib/ex.l\n\t$(PIL) lib/llvm.l lib/ex.l main.l -bye > base.ll\n\tmv base.map $(LIB)/map\n\nlib.bc: pico.h lib.c\n\t$(CC) -O3 -w -c -o lib.bc -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' `pkg-config --cflags libffi` -emit-llvm lib.c\n\n# Base system as shared library\n$(LIB)/picolisp.so: picolisp.so.bc\n\t$(LLC) picolisp.so.bc -relocation-model=pic -o picolisp.so.s\n\t$(CC) picolisp.so.s -o $(LIB)/picolisp.so $(SHARED)\n\t$(STRIP) $(LIB)/picolisp.so\n\npicolisp.so.bc: base.so.bc lib.so.bc\n\t$(LINK) -o picolisp.so.bc base.so.bc lib.so.bc\n\nbase.so.bc: base.so.ll\n\t$(ASM) -o base.so.bc base.so.ll\n\nbase.so.ll: $(INC) $(SRC) lib/so.l\n\t$(PIL) lib/llvm.l -quiche lib/so.l main.l -bye > base.so.ll\n\trm base.map\n\nlib.so.bc: pico.h lib.so.c\n\t$(CC) -O3 -w -c -fPIC -o lib.so.bc -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' `pkg-config --cflags libffi` -emit-llvm lib.so.c\n\n# Extension libraries\n$(LIB)/ext.so: ext.bc\n\t$(LLC) ext.bc -relocation-model=pic -o ext.s\n\t$(CC) ext.s -o $(LIB)/ext.so $(SHARED)\n\t$(STRIP) $(LIB)/ext.so\n\next.bc: ext.ll\n\t$(ASM) -o ext.bc ext.ll\n\next.ll: $(INC) ext.l\n\t$(PIL) lib/llvm.l ext.l -bye > ext.ll\n\n$(LIB)/ht.so: ht.bc\n\t$(LLC) ht.bc -relocation-model=pic -o ht.s\n\t$(CC) ht.s -o $(LIB)/ht.so $(SHARED)\n\t$(STRIP) $(LIB)/ht.so\n\nht.bc: ht.ll\n\t$(ASM) -o ht.bc ht.ll\n\nht.ll: $(INC) ht.l\n\t$(PIL) lib/llvm.l ht.l -bye > ht.ll\n\n# Tools\n$(BIN)/balance: balance.c\n\t$(CC) -O3 -w -o $(BIN)/balance balance.c\n\t$(STRIP) $(BIN)/balance\n\n# Gate\n$(BIN)/ssl: ssl.c\n\t$(CC) -O3 -w -o $(BIN)/ssl ssl.c -lssl -lcrypto\n\t$(STRIP) $(BIN)/ssl\n\n$(BIN)/httpGate: httpGate.c\n\t$(CC) -O3 -w -o $(BIN)/httpGate httpGate.c -lssl -lcrypto\n\t$(STRIP) $(BIN)/httpGate\n\n# Clean up\nclean:\n\trm -f *.ll *.bc *.s\n\nclean2: clean\n\trm -f $(LIB)/sysdefs $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\n"
  },
  {
    "path": "src/Makefile.macos",
    "content": "# 23jan26\n\nHOMEBREW_PREFIX ?= /opt/homebrew\nCC ?= clang\n\nPIL = ../pil  # pil\nASM = opt -O2  # llvm-as\nLLC = llc\nLINK = llvm-link\nSHARED = -dynamiclib -undefined dynamic_lookup\nSTRIP = true\nexport PKG_CONFIG_PATH := $(HOMEBREW_PREFIX)/opt/readline/lib/pkgconfig:$(HOMEBREW_PREFIX)/opt/libffi/lib/pkgconfig:$(HOMEBREW_PREFIX)/opt/openssl/lib/pkgconfig\n\nLLVM = $(shell llvm-config --version | cut -d. -f1)\nifeq ($(shell test $(LLVM) -ge 15 -a $(LLVM) -lt 17; echo $$?), 0)\n\tASM += -opaque-pointers\nendif\n\nOS = $(shell uname)\nCPU = $(shell uname -m)\n\nBIN = ../bin\nLIB = ../lib\n\nINC = lib/llvm.l vers.l defs.l glob.l dec.l\nSRC = main.l gc.l big.l sym.l io.l db.l apply.l flow.l subr.l\n\nall: $(LIB)/sysdefs $(BIN)/picolisp $(LIB)/ext.so $(LIB)/ht.so $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\n\n# System definitions\n$(LIB)/sysdefs: sysdefs.c\n\t$(CC) -w -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' sysdefs.c  &&  ./a.out > $(LIB)/sysdefs  &&  rm ./a.out\n\n# Base system\n$(BIN)/picolisp: picolisp.bc\n\tmkdir -p $(BIN) $(LIB)\n\t$(LLC) picolisp.bc -relocation-model=pic -o picolisp.s\n\t$(CC) picolisp.s -o $(BIN)/picolisp -rdynamic -lc -lutil -lm -ldl `pkg-config --libs readline libffi`\n\t$(STRIP) $(BIN)/picolisp\n\npicolisp.bc: base.bc lib.bc\n\t$(LINK) -o picolisp.bc base.bc lib.bc\n\nbase.bc: base.ll\n\t$(ASM) -o base.bc base.ll\n\nbase.ll: $(INC) $(SRC)\n\t$(PIL) lib/llvm.l main.l -bye > base.ll\n\tmv base.map $(LIB)/map\n\nlib.bc: pico.h lib.c\n\t$(CC) -O3 -w -c -o lib.bc -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' `pkg-config --cflags libffi` `pkg-config --cflags readline` -emit-llvm lib.c\n\n# Extension libraries\n$(LIB)/ext.so: ext.bc\n\t$(LLC) ext.bc -relocation-model=pic -o ext.s\n\t$(CC) ext.s -o $(LIB)/ext.so $(SHARED)\n\t$(STRIP) $(LIB)/ext.so\n\next.bc: ext.ll\n\t$(ASM) -o ext.bc ext.ll\n\next.ll: $(INC) ext.l\n\t$(PIL) lib/llvm.l ext.l -bye > ext.ll\n\n$(LIB)/ht.so: ht.bc\n\t$(LLC) ht.bc -relocation-model=pic -o ht.s\n\t$(CC) ht.s -o $(LIB)/ht.so $(SHARED)\n\t$(STRIP) $(LIB)/ht.so\n\nht.bc: ht.ll\n\t$(ASM) -o ht.bc ht.ll\n\nht.ll: $(INC) ht.l\n\t$(PIL) lib/llvm.l ht.l -bye > ht.ll\n\n# Tools\n$(BIN)/balance: balance.c\n\t$(CC) -O3 -w -o $(BIN)/balance balance.c\n\t$(STRIP) $(BIN)/balance\n\n# Gate\n$(BIN)/ssl: ssl.c\n\t$(CC) -O3 -w -o $(BIN)/ssl ssl.c `pkg-config --cflags --libs openssl`\n\t$(STRIP) $(BIN)/ssl\n\n$(BIN)/httpGate: httpGate.c\n\t$(CC) -O3 -w -o $(BIN)/httpGate httpGate.c `pkg-config --cflags --libs openssl`\n\t$(STRIP) $(BIN)/httpGate\n\n# Clean up\nclean:\n\trm -f *.ll *.bc *.s\n\nclean2: clean\n\trm -f $(LIB)/sysdefs $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\n"
  },
  {
    "path": "src/Makefile.openbsd",
    "content": "# 29mar24 Software Lab. Alexander Burger\n\n#.SILENT:\n\nCC = clang-19\nPIL = ../pil  # pil\nASM = opt-19 -O3  # llvm-as\nLLC = llc-19\nLINK = llvm-link-19\nMAIN = -rdynamic -lc -lutil -lm -lereadline -L/usr/local/lib -lffi -lncursesw -Wl,-z,nobtcfi\nSHARED = -shared\nSTRIP = strip\n\nLLVM = $(shell llvm-config-19 --version | cut -d. -f1)\nifeq ($(shell test $(LLVM) -ge 15 -a $(LLVM) -lt 17; echo $$?), 0)\n\tASM += -opaque-pointers\nendif\n\nOS = $(shell uname)\nCPU = $(shell uname -m)\n\nBIN = ../bin\nLIB = ../lib\n\nINC = lib/llvm.l vers.l defs.l glob.l dec.l\nSRC = main.l gc.l big.l sym.l io.l db.l apply.l flow.l subr.l\n\nall: $(LIB)/sysdefs $(BIN)/picolisp $(LIB)/ext.so $(LIB)/ht.so $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\n\n# System definitions\n$(LIB)/sysdefs: sysdefs.c\n\t$(CC) -w -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' sysdefs.c  &&  ./a.out > $(LIB)/sysdefs  &&  rm ./a.out\n\n# Base system\n$(BIN)/picolisp: picolisp.bc\n\tmkdir -p $(BIN) $(LIB)\n\t$(LLC) picolisp.bc -relocation-model=pic -o picolisp.s\n\t$(CC) picolisp.s -o $(BIN)/picolisp $(MAIN)\n\t$(STRIP) $(BIN)/picolisp\n\npicolisp.bc: base.bc lib.bc\n\t$(LINK) -o picolisp.bc base.bc lib.bc\n\nbase.bc: base.ll\n\t$(ASM) -o base.bc base.ll\n\nbase.ll: $(INC) $(SRC)\n\t$(PIL) lib/llvm.l main.l -bye > base.ll\n\tmv base.map $(LIB)/map\n\nlib.bc: pico.h lib.c\n\t$(CC) -O3 -w -c -o lib.bc -D_OS='\"$(OS)\"' -D_CPU='\"$(CPU)\"' -I/usr/local/include -I/usr/local/include/ereadline -emit-llvm lib.c\n\n# Extension libraries\n$(LIB)/ext.so: ext.bc\n\t$(LLC) ext.bc -relocation-model=pic -o ext.s\n\t$(CC) ext.s -o $(LIB)/ext.so $(SHARED)\n\t$(STRIP) $(LIB)/ext.so\n\next.bc: ext.ll\n\t$(ASM) -o ext.bc ext.ll\n\next.ll: $(INC) ext.l\n\t$(PIL) lib/llvm.l ext.l -bye > ext.ll\n\n$(LIB)/ht.so: ht.bc\n\t$(LLC) ht.bc -relocation-model=pic -o ht.s\n\t$(CC) ht.s -o $(LIB)/ht.so $(SHARED)\n\t$(STRIP) $(LIB)/ht.so\n\nht.bc: ht.ll\n\t$(ASM) -o ht.bc ht.ll\n\nht.ll: $(INC) ht.l\n\t$(PIL) lib/llvm.l ht.l -bye > ht.ll\n\n# Tools\n$(BIN)/balance: balance.c\n\t$(CC) -O3 -w -o $(BIN)/balance balance.c\n\t$(STRIP) $(BIN)/balance\n\n# Gate\n$(BIN)/ssl: ssl.c\n\t$(CC) -O3 -w -o $(BIN)/ssl ssl.c -lssl -lcrypto\n\t$(STRIP) $(BIN)/ssl\n\n$(BIN)/httpGate: httpGate.c\n\t$(CC) -O3 -w -o $(BIN)/httpGate httpGate.c -lssl -lcrypto\n\t$(STRIP) $(BIN)/httpGate\n\n# Clean up\nclean:\n\trm -f *.ll *.bc *.s\n\nclean2: clean\n\trm -f $(LIB)/sysdefs $(BIN)/balance $(BIN)/ssl $(BIN)/httpGate\n"
  },
  {
    "path": "src/apply.l",
    "content": "# 09sep25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n# (apply 'fun 'lst ['any ..]) -> any\n(de _Apply (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL) )  # [car cdr name fun link]\n      (set E (link (ofs E 3) T))\n      (let (L (save (eval (car X)))  P E)\n         (while (pair (shift X))\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )  # [car cdr name val link]\n            (set P (link (ofs P 3))) )\n         (while (pair L)\n            (stkChk Exe)\n            (setq P\n               (set 2 P (push NIL $Nil ZERO (++ L) NIL)) )\n            (set P (link (ofs P 3))) )\n         (evList E) ) ) )\n\n# (pass 'fun ['any ..]) -> any\n(de _Pass (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL) )\n      (set E (link (ofs E 3) T))\n      (let P E\n         (while (pair X)\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (++ X)) NIL) ) )\n            (set P (link (ofs P 3))) )\n         (let L (val $Next)\n            (while (pair L)\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO (cdr L) NIL)) )\n               (set P (link (ofs P 3)))\n               (setq L (car L)) ) ) )\n      (evList E) ) )\n\n# (fun 'fun ['any ..]) -> any\n(de _Fun (Exe)\n   (evList (cdr Exe)) )\n\n# (maps 'fun 'sym ['lst ..]) -> any\n(de _Maps (Exe)\n   (let\n      (X (cdr Exe)\n         R $Nil\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let\n         (P E\n            Q A\n            Sym (save (needSymb Exe (eval (car X))))\n            V Sym )\n         (set Q V)\n         (loop\n            (setq P\n               (set 2 P (push NIL $Nil ZERO V NIL)) )\n            (set P (link (ofs P 3)))\n            (? (atom (shift X)))\n            (setq\n               Q (set 2 Q (push NIL NIL))\n               V (save (eval (car X))) )\n            (set Q V)\n            (when (pair V)\n               (setq V (car V)) ) )\n         (when (sym? (setq V (val (tail Sym))))\n            (dbFetch Exe Sym)\n            (setq V (& (val (tail Sym)) -9)) )\n         (set 4 (val 2 E)\n            (if (pair V) (car V) V) )\n         (set A V) )\n      (when (pair (car A))\n         (loop\n            (setq R (evList E))\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (map 'fun 'lst ..) -> lst\n(de _Map (Exe)\n   (let\n      (X (cdr Exe)\n         R $Nil\n         E (push NIL $Nil ZERO (eval (car X)) NIL) )\n      (set E (link (ofs E 3) T))\n      (let P E\n         (while (pair (shift X))\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )\n            (set P (link (ofs P 3))) ) )\n      (loop\n         (let P (val 2 E)\n            (? (atom (val 4 P)))\n            (setq R (evList E))\n            (loop\n               (when (pair (val 4 P))\n                  (set 4 P (cdr @)) )\n               (? (atom (shift P))) ) ) )\n      R ) )\n\n# (mapc 'fun 'lst ..) -> lst\n(de _Mapc (Exe)\n   (let\n      (X (cdr Exe)\n         R $Nil\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (setq R (evList E))\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (maplist 'fun 'lst ..) -> lst\n(de _Maplist (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (car X)) NIL) )\n      (set E (link (ofs E 3)))\n      (let P E\n         (while (pair (shift X))\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )\n            (set P (link (ofs P 3))) ) )\n      (loop\n         (let P (val 2 E)\n            (? (atom (val 4 P)))\n            (let Y (cons (evList E) $Nil)\n               (setq L\n                  (if L\n                     (set 2 L Y)\n                     (setq R (safe Y)) ) ) )\n            (loop\n               (when (pair (val 4 P))\n                  (set 4 P (cdr @)) )\n               (? (atom (shift P))) ) ) )\n      R ) )\n\n# (mapcar 'fun 'lst ..) -> lst\n(de _Mapcar (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (let Y (cons (evList E) $Nil)\n               (setq L\n                  (if L\n                     (set 2 L Y)\n                     (setq R (safe Y)) ) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (mapcon 'fun 'lst ..) -> lst\n(de _Mapcon (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (car X)) NIL) )\n      (set E (link (ofs E 3)))\n      (let P E\n         (while (pair (shift X))\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )\n            (set P (link (ofs P 3))) ) )\n      (loop\n         (let P (val 2 E)\n            (? (atom (val 4 P)))\n            (let Y (evList E)\n               (when (pair Y)\n                  (setq L\n                     (if L\n                        (let Z L\n                           (while (pair (cdr Z))\n                              (setq Z @) )\n                           (set 2 Z Y) )\n                        (setq R (safe Y)) ) ) ) )\n            (loop\n               (when (pair (val 4 P))\n                  (set 4 P (cdr @)) )\n               (? (atom (shift P))) ) ) )\n      R ) )\n\n# (mapcan 'fun 'lst ..) -> lst\n(de _Mapcan (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (let Y (evList E)\n               (when (pair Y)\n                  (setq L\n                     (if L\n                        (let Z L\n                           (while (pair (cdr Z))\n                              (setq Z @) )\n                           (set 2 Z Y) )\n                        (setq R (safe Y)) ) ) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (filter 'fun 'lst ..) -> lst\n(de _Filter (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (unless (nil? (evList E))\n               (let Y (cons (caar A) $Nil)\n                  (setq L\n                     (if L\n                        (set 2 L Y)\n                        (setq R (safe Y)) ) ) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (extract 'fun 'lst ..) -> lst\n(de _Extract (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (unless (nil? (evList E))\n               (let Y (cons @ $Nil)\n                  (setq L\n                     (if L\n                        (set 2 L Y)\n                        (setq R (safe Y)) ) ) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (seek 'fun 'lst ..) -> lst\n(de _Seek (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (car X)) NIL) )\n      (set E (link (ofs E 3) T))\n      (let P E\n         (while (pair (shift X))\n            (setq P\n               (set 2 P\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )\n            (set P (link (ofs P 3))) ) )\n      (loop\n         (let P (val 2 E)\n            (? (atom (val 4 P)) $Nil)\n            (? (not (nil? (evList E)))\n               (set $At2 @)\n               (val 4 P) )\n            (loop\n               (when (pair (val 4 P))\n                  (set 4 P (cdr @)) )\n               (? (atom (shift P))) ) ) ) ) )\n\n# (find 'fun 'lst ..) -> any\n(de _Find (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (if (atom (car A))\n         $Nil\n         (loop\n            (? (not (nil? (evList E)))\n               (set $At2 @)\n               (caar A) )\n            (? (atom (set A (cdar A))) $Nil)\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) ) ) )\n\n# (pick 'fun 'lst ..) -> any\n(de _Pick (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (if (atom (car A))\n         $Nil\n         (loop\n            (? (not (nil? (evList E))) @)\n            (? (atom (set A (cdar A))) $Nil)\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) ) ) )\n\n# (fully 'fun 'lst ..) -> flg\n(de _Fully (Exe)\n   (let\n      (X (cdr Exe)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (if (atom (car A))\n         $T\n         (loop\n            (? (nil? (evList E)) @)\n            (? (atom (set A (cdar A))) $T)\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) ) ) )\n\n# (cnt 'fun 'lst ..) -> cnt\n(de _Cnt (Exe)\n   (let\n      (X (cdr Exe)\n         R ZERO\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3) T))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (unless (nil? (evList E))\n               (inc 'R (hex \"10\")) )  # Increment count\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (sum 'fun 'lst ..) -> num\n(de _Sum (Exe)\n   (let\n      (X (cdr Exe)\n         R (save ZERO)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (when (num? (evList E))\n               (save @\n                  (setq R (safe (adds R @))) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      R ) )\n\n# (maxi 'fun 'lst ..) -> any\n(de _Maxi (Exe)\n   (let\n      (X (cdr Exe)\n         R $Nil\n         R2 (save $Nil)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (let Y (evList E)\n               (when (gt0 (compare Y R2))\n                  (setq R (caar A))\n                  (setq R2 (safe Y)) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      (set $At2 R2)\n      R ) )\n\n# (mini 'fun 'lst ..) -> any\n(de _Mini (Exe)\n   (let\n      (X (cdr Exe)\n         R $Nil\n         R2 (save $T)\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL) )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (let Y (evList E)\n               (when (lt0 (compare Y R2))\n                  (setq R (caar A))\n                  (setq R2 (safe Y)) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) ) )\n      (set $At2 R2)\n      R ) )\n\n(local) fish\n\n(de void fish (E V P R S)\n   (set P V)\n   (cond\n      ((nil? (evList E))\n         (when (pair V)\n            (stkChk 0)\n            (unless (nil? (cdr V))\n               (fish E @ P R S) )\n            (fish E (car V) P R S) ) )\n      ((<> @ S)\n         (set R (cons V (val R))) ) ) )\n\n# (fish 'fun 'any ['any2] ..) -> lst\n(de _Fish (Exe)\n   (let\n      (X (cdr Exe)\n         R (link (push $Nil NIL) T)\n         P (push NIL $Nil ZERO NIL)\n         E (push NIL P ZERO (eval (++ X)) NIL) )\n      (set\n         P (ofs P 3)\n         E (link (ofs E 3)) )\n      (let\n         (V (save (eval (++ X)))\n            S (save (eval (car X)))\n            Q P )\n         (while (pair (shift X))\n            (setq Q\n               (set 2 Q\n                  (push NIL $Nil ZERO (eval (car X)) NIL) ) )  # [car cdr name val link]\n            (set Q (link (ofs Q 3))) )\n         (fish E V (ofs P 3) R S)\n         (val R) ) ) )\n\n# (by 'fun1 'fun2 'lst ..) -> lst\n(de _By (Exe)\n   (let\n      (X (cdr Exe)\n         R (save $Nil)\n         L 0\n         E (push NIL $Nil ZERO (eval (++ X)) NIL)\n         A (push NIL NIL)\n         Fun2 (save (eval (++ X)))\n         A2 A )\n      (set E (link (ofs E 3)))\n      (let (P E  Q A)\n         (loop\n            (let V (set Q (save (eval (car X))))\n               (when (pair V)\n                  (setq V (car V)) )\n               (setq P\n                  (set 2 P (push NIL $Nil ZERO V NIL)) )\n               (set P (link (ofs P 3))) )\n            (? (atom (shift X)))\n            (setq Q (set 2 Q (push NIL NIL))) ) )\n      (when (pair (car A))\n         (loop\n            (let Y (cons (cons (evList E) (caar A)) $Nil)\n               (setq L\n                  (if L\n                     (set 2 L Y)\n                     (setq R (safe Y)) ) ) )\n            (? (atom (set A (cdar A))))\n            (let (P (val 2 E)  Q A)\n               (set 4 P (car @))\n               (while (pair (shift P))\n                  (set 4 P\n                     (cond\n                        ((atom (car (shift Q))) @)\n                        ((atom (set Q (cdr @))) @)\n                        (T (car @)) ) ) ) ) )\n         (set 4 E Fun2  4 (val 2 E) R)\n         (let Z (setq R (safe (evList E)))\n            (loop\n               (set Z (cdar Z))\n               (? (atom (shift Z))) ) ) )\n      R ) )\n\n# Readline\n(local) tabComplete\n\n(de i8* tabComplete ((i8* . Text))\n   (cond\n      ((nil? (val $Complete)) null)\n      ((nil?\n            (evExe $Complete\n               (nond\n                  (Text $Nil)\n                  ((val Text) $T)\n                  (NIL (mkStr Text)) )\n               $Nil ) )\n         null )\n      (T\n         (let Nm (name (val (tail (xSym @))))\n            (strdup (bufString Nm (b8 (bufSize Nm)))) ) ) ) )\n"
  },
  {
    "path": "src/balance.c",
    "content": "/* balance.c\n * 06jul05abu\n */\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <string.h>\n#include <errno.h>\n#include <signal.h>\n#include <sys/wait.h>\n\nint Len, Siz;\nchar *Line, **Data;\n\nstatic void giveup(char *msg) {\n   fprintf(stderr, \"balance: %s\\n\", msg);\n   exit(1);\n}\n\nstatic char *getLine(FILE *fp) {\n\tint i, c;\n   char *s;\n\n   i = 0;\n   while ((c = getc_unlocked(fp)) != '\\n') {\n      if (c == EOF)\n         return NULL;\n      Line[i] = c;\n      if (++i == Len  &&  !(Line = realloc(Line, Len *= 2)))\n         giveup(\"No memory\");\n   }\n   Line[i] = '\\0';\n   if (!(s = strdup(Line)))\n      giveup(\"No memory\");\n   return s;\n}\n\nstatic void balance(char **data, int len) {\n   if (len) {\n      int n = (len + 1) / 2;\n      char **p = data + n - 1;\n\n      printf(\"%s\\n\", *p);\n      balance(data, n - 1);\n      balance(p + 1, len - n);\n   }\n}\n\n// balance [-<cmd> [<arg> ..]]\n// balance [<file>]\nint main(int ac, char *av[]) {\n   int cnt;\n   char *s;\n   pid_t pid = 0;\n   FILE *fp = stdin;\n\n   if (ac > 1) {\n      if (*av[1] == '-') {\n         int pfd[2];\n\n         if (pipe(pfd) < 0)\n            giveup(\"Pipe error\\n\");\n         if ((pid = fork()) == 0) {\n            close(pfd[0]);\n            if (pfd[1] != STDOUT_FILENO)\n               dup2(pfd[1], STDOUT_FILENO),  close(pfd[1]);\n            execvp(av[1]+1, av+1);\n         }\n         if (pid < 0)\n            giveup(\"Fork error\\n\");\n         close(pfd[1]);\n         if (!(fp = fdopen(pfd[0], \"r\")))\n            giveup(\"Pipe open error\\n\");\n      }\n      else if (!(fp = fopen(av[1], \"r\")))\n         giveup(\"File open error\\n\");\n   }\n   Line = malloc(Len = 4096);\n   Data = malloc((Siz = 4096) * sizeof(char*));\n   for (cnt = 0;  s = getLine(fp);  ++cnt) {\n      if (cnt == Siz  &&  !(Data = realloc(Data, (Siz *= 2) * sizeof(char*))))\n         giveup(\"No memory\");\n      Data[cnt] = s;\n   }\n   if (pid) {\n      fclose(fp);\n      while (waitpid(pid, NULL, 0) < 0)\n         if (errno != EINTR)\n            giveup(\"Pipe close error\\n\");\n   }\n   balance(Data, cnt);\n   return 0;\n}\n"
  },
  {
    "path": "src/base.ll",
    "content": "source_filename = \"base.l\"\n\ndeclare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)\ndeclare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64)\ndeclare i64 @llvm.fshl.i64(i64, i64, i64)\ndeclare i64 @llvm.fshr.i64(i64, i64, i64)\ndeclare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i1)\ndeclare void @llvm.memset.p0i8.i64(i8*, i8, i64, i1)\ndeclare i8* @llvm.stacksave()\ndeclare void @llvm.stackrestore(i8*)\ndeclare void @llvm.donothing() nounwind readnone\n\n@$AV0 = global i8* null\n@$AV = global i8** null\n@$PilHome = global i8* null\n@$PilLen = global i64 0\n@$UsrHome = global i8* null\n@$UsrLen = global i64 0\n@$Heaps = global i64 0\n@$Avail = global i64 0\n@$Extern = global i64 0\n@$ExtCnt = global i64 1\n@$ExtSkip = global i64 0\n@$Coroutines = global i8* null\n@$Current = global i8* null\n@$CrtLast = global i8* null\n@$CrtFree = global i8* null\n@$SysStkLimit = global i8* null\n@$StkLimit = global i8* null\n@$StkSizeT = global i64 262144\n@$StkSize = global i64 65536\n@$Stdin = global i8* null\n@$Stdout = global i8* null\n@$LinePtr = global i8* null\n@$LineBuf = global i8* null\n@$LinePrmt = global i8* null\n@$ReplPrmt = global i8* null\n@$ContPrmt = global i8* null\n@$Ret = global i64 0\n@$Ret2 = global i64 0\n@$TtyPid = global i32 0\n@$InFDs = global i32 0\n@$InFiles = global i8** null\n@$OutFiles = global i8** null\n@$IoCnt = global i32 0\n@$IoIx = global i64 0\n@$InChar = global i64 0\n@$OutChar = global i64 0\n@$PutBin = global void(i8)* null\n@$GetBin = global i32()* null\n@$OutFDs = global i32 0\n@$Nfds = global i32 0\n@$Poll = global i64* null\n@$SeedL = global i64 0\n@$SeedH = global i64 0\n@$USec = global i64 0\n@$Rt = global i64 0\n@$Child = global i8* null\n@$Children = global i32 0\n@$Slot = global i32 0\n@$Spkr = global i32 0\n@$Mic = global i32 0\n@$SpMiPipe = global [2 x i32] [\n  i32 0,\n  i32 0\n]\n@$Talking = global i32 0\n@$Hear = global i32 0\n@$Tell = global i32 0\n@$TellBuf = global i8* null\n@$Ptr = global i8* null\n@$End = global i8* null\n@$BufX = global i8* null\n@$PtrX = global i8* null\n@$EndX = global i8* null\n@$ExtN = global i32 0\n@$Extn = global i32 0\n@$StrP = global i64* null\n@$GcCount = global i64 65536\n@$DbFiles = global i8* null\n@$DbFile = global i8* null\n@$DBs = global i32 0\n@$MaxBlkSize = global i32 0\n@$DbBlock = global i8* null\n@$BlkIndex = global i64 0\n@$BlkLink = global i64 0\n@$BlkPtr = global i8* null\n@$BlkEnd = global i8* null\n@$DbJnl = global i8* null\n@$DbLog = global i8* null\n@$Signal = global [16 x i32] [\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0,\n  i32 0\n]\n@SymTab = global [898 x i64] [\n  ; # [0] NIL\n  i64 79992034,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 0,\n  ; # [32] ~\n  i64 2018,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 48) to i64),\n  ; # [80] pico\n  i64 29900576514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 64) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 88) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64),\n  ; # [144] priv\n  i64 31785953026,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 128) to i64),\n  ; # [160] *OS\n  i64 87356066,\n  i64 0,\n  ; # [176] *CPU\n  i64 22901174946,\n  i64 0,\n  ; # [192] *Pid\n  i64 26953974434,\n  i64 0,\n  ; # [208] *PPid\n  i64 6900217610914,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [224] *DB\n  i64 69485218,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [240] meth\n  i64 28039337682,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64,i64)* @__Meth to i8*), i32 2) to i64),\n  ; # [256] quote\n  i64 6971922536210,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Quote to i8*), i32 2) to i64),\n  ; # [272] T\n  i64 1346,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64),\n  ; # [288] S\n  i64 1330,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [304] P\n  i64 1282,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [320] N\n  i64 1250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [336] U\n  i64 1362,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [352] I\n  i64 1170,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [368] W\n  i64 1394,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [384] C\n  i64 1074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [400] B\n  i64 1058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 0,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [432] *Solo\n  i64 7656969679522,\n  i64 2,\n  ; # [448] @\n  i64 1026,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [464] @@\n  i64 263170,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [480] @@@\n  i64 67372034,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [496] This\n  i64 30980605250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [512] *Prompt\n  i64 524395401951117986,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [528] *Zap\n  i64 30166852258,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [544] *Ext\n  i64 31264625314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [560] *Scl\n  i64 29095178914,\n  i64 2,\n  ; # [576] *Rule\n  i64 6969781199522,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [592] *Class\n  i64 2031030286693026,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [608] *Run\n  i64 29650920098,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [624] *Hup\n  i64 30187750050,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [640] *Sig1\n  i64 3395013653154,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [656] *Sig2\n  i64 3463733129890,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [672] *Winch\n  i64 1836420215173794,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [688] *TStp1\n  i64 869744923460258,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [704] *TStp2\n  i64 887337109504674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [720] *Term\n  i64 7521130857122,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [736] ^\n  i64 1506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [752] *Err\n  i64 30721462946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [768] *Msg\n  i64 27769754274,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [784] *Uni\n  i64 28301415074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [800] *Fork\n  i64 7383702332066,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [816] *Bye\n  i64 27239129762,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [832] *Dbg\n  i64 27751891618,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [848] remark\n  i64 1890224080049954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [864] complete\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 884) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 7310579611546251107,\n  i64 2,\n  ; # [896] reflect\n  i64 524166152958924578,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  ; # [912] gc\n  i64 407154,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Gc to i8*), i32 2) to i64),\n  ; # [928] format\n  i64 2047388749854306,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Format to i8*), i32 2) to i64),\n  ; # [944] +\n  i64 690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Add to i8*), i32 2) to i64),\n  ; # [960] -\n  i64 722,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sub to i8*), i32 2) to i64),\n  ; # [976] inc\n  i64 104261266,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Inc to i8*), i32 2) to i64),\n  ; # [992] dec\n  i64 104224322,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Dec to i8*), i32 2) to i64),\n  ; # [1008] *\n  i64 674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mul to i8*), i32 2) to i64),\n  ; # [1024] */\n  i64 193186,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_MulDiv to i8*), i32 2) to i64),\n  ; # [1040] /\n  i64 754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Div to i8*), i32 2) to i64),\n  ; # [1056] %\n  i64 594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rem to i8*), i32 2) to i64),\n  ; # [1072] >>\n  i64 254946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Shr to i8*), i32 2) to i64),\n  ; # [1088] rev\n  i64 124147490,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rev to i8*), i32 2) to i64),\n  ; # [1104] lt0\n  i64 50808514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lt0 to i8*), i32 2) to i64),\n  ; # [1120] le0\n  i64 50747074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Le0 to i8*), i32 2) to i64),\n  ; # [1136] ge0\n  i64 50746994,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ge0 to i8*), i32 2) to i64),\n  ; # [1152] gt0\n  i64 50808434,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Gt0 to i8*), i32 2) to i64),\n  ; # [1168] abs\n  i64 120989202,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Abs to i8*), i32 2) to i64),\n  ; # [1184] bit?\n  i64 17033500194,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BitQ to i8*), i32 2) to i64),\n  ; # [1200] &\n  i64 610,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BitAnd to i8*), i32 2) to i64),\n  ; # [1216] |\n  i64 1986,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BitOr to i8*), i32 2) to i64),\n  ; # [1232] x|\n  i64 509826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BitXor to i8*), i32 2) to i64),\n  ; # [1248] sq\n  i64 464690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sq to i8*), i32 2) to i64),\n  ; # [1264] sqrt\n  i64 31258515250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sqrt to i8*), i32 2) to i64),\n  ; # [1280] seed\n  i64 26949867314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Seed to i8*), i32 2) to i64),\n  ; # [1296] hash\n  i64 28038272642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Hash to i8*), i32 2) to i64),\n  ; # [1312] rand\n  i64 26959288098,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rand to i8*), i32 2) to i64),\n  ; # [1328] name\n  i64 27226674914,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Name to i8*), i32 2) to i64),\n  ; # [1344] nsp\n  i64 117913314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nsp to i8*), i32 2) to i64),\n  ; # [1360] sp?\n  i64 66520882,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_SpQ to i8*), i32 2) to i64),\n  ; # [1376] pat?\n  i64 17033467650,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_PatQ to i8*), i32 2) to i64),\n  ; # [1392] fun?\n  i64 17027257954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_FunQ to i8*), i32 2) to i64),\n  ; # [1408] getd\n  i64 26965595762,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Getd to i8*), i32 2) to i64),\n  ; # [1424] all\n  i64 113690130,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_All to i8*), i32 2) to i64),\n  ; # [1440] symbols\n  i64 519821567523788594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Symbols to i8*), i32 2) to i64),\n  ; # [1456] intern\n  i64 1943001719301778,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Intern to i8*), i32 2) to i64),\n  ; # [1472] ====\n  i64 16438776786,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Hide to i8*), i32 2) to i64),\n  ; # [1488] box?\n  i64 17037719074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BoxQ to i8*), i32 2) to i64),\n  ; # [1504] str?\n  i64 17031448370,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_StrQ to i8*), i32 2) to i64),\n  ; # [1520] zap\n  i64 117839778,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Zap to i8*), i32 2) to i64),\n  ; # [1536] chop\n  i64 30181590578,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Chop to i8*), i32 2) to i64),\n  ; # [1552] pack\n  i64 28826801922,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pack to i8*), i32 2) to i64),\n  ; # [1568] glue\n  i64 27235108466,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Glue to i8*), i32 2) to i64),\n  ; # [1584] text\n  i64 31264757570,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Text to i8*), i32 2) to i64),\n  ; # [1600] pre?\n  i64 17017808642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_PreQ to i8*), i32 2) to i64),\n  ; # [1616] sub?\n  i64 17014675250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_SubQ to i8*), i32 2) to i64),\n  ; # [1632] val\n  i64 113645410,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Val to i8*), i32 2) to i64),\n  ; # [1648] set\n  i64 122050354,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Set to i8*), i32 2) to i64),\n  ; # [1664] setq\n  i64 30455256882,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Setq to i8*), i32 2) to i64),\n  ; # [1680] swap\n  i64 30166972210,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Swap to i8*), i32 2) to i64),\n  ; # [1696] xchg\n  i64 27758311298,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Xchg to i8*), i32 2) to i64),\n  ; # [1712] on\n  i64 452338,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_On to i8*), i32 2) to i64),\n  ; # [1728] off\n  i64 107374322,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Off to i8*), i32 2) to i64),\n  ; # [1744] onOff\n  i64 7036850333426,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_OnOff to i8*), i32 2) to i64),\n  ; # [1760] zero\n  i64 29916288930,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Zero to i8*), i32 2) to i64),\n  ; # [1776] one\n  i64 106358514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_One to i8*), i32 2) to i64),\n  ; # [1792] default\n  i64 524325579192161858,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Default to i8*), i32 2) to i64),\n  ; # [1808] push\n  i64 28038354690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Push to i8*), i32 2) to i64),\n  ; # [1824] push1\n  i64 3395292714754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Push1 to i8*), i32 2) to i64),\n  ; # [1840] push1q\n  i64 1991312315733762,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Push1q to i8*), i32 2) to i64),\n  ; # [1856] pop\n  i64 117896962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pop to i8*), i32 2) to i64),\n  ; # [1872] ++\n  i64 176818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Popq to i8*), i32 2) to i64),\n  ; # [1888] shift\n  i64 7998950246194,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Shift to i8*), i32 2) to i64),\n  ; # [1904] cut\n  i64 122115634,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cut to i8*), i32 2) to i64),\n  ; # [1920] del\n  i64 113661506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Del to i8*), i32 2) to i64),\n  ; # [1936] queue\n  i64 6972180485906,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Queue to i8*), i32 2) to i64),\n  ; # [1952] fifo\n  i64 29903722082,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fifo to i8*), i32 2) to i64),\n  ; # [1968] rid\n  i64 105289506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rid to i8*), i32 2) to i64),\n  ; # [1984] enum\n  i64 29382600274,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Enum to i8*), i32 2) to i64),\n  ; # [2000] enum?\n  i64 4358709634642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_EnumQ to i8*), i32 2) to i64),\n  ; # [2016] idx\n  i64 126240402,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Idx to i8*), i32 2) to i64),\n  ; # [2032] lup\n  i64 117921474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lup to i8*), i32 2) to i64),\n  ; # [2048] put\n  i64 122115842,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Put to i8*), i32 2) to i64),\n  ; # [2064] get\n  i64 122050162,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Get to i8*), i32 2) to i64),\n  ; # [2080] prop\n  i64 30181631746,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prop to i8*), i32 2) to i64),\n  ; # [2096] ;\n  i64 946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Semicol to i8*), i32 2) to i64),\n  ; # [2112] =:\n  i64 238546,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_SetCol to i8*), i32 2) to i64),\n  ; # [2128] :\n  i64 930,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Col to i8*), i32 2) to i64),\n  ; # [2144] ::\n  i64 238498,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_PropCol to i8*), i32 2) to i64),\n  ; # [2160] putl\n  i64 29113145090,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Putl to i8*), i32 2) to i64),\n  ; # [2176] getl\n  i64 29113079410,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Getl to i8*), i32 2) to i64),\n  ; # [2192] wipe\n  i64 27229853554,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Wipe to i8*), i32 2) to i64),\n  ; # [2208] meta\n  i64 26160289490,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Meta to i8*), i32 2) to i64),\n  ; # [2224] low?\n  i64 17036670658,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_LowQ to i8*), i32 2) to i64),\n  ; # [2240] upp?\n  i64 17029334866,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_UppQ to i8*), i32 2) to i64),\n  ; # [2256] lowc\n  i64 26700347074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lowc to i8*), i32 2) to i64),\n  ; # [2272] uppc\n  i64 26693011282,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Uppc to i8*), i32 2) to i64),\n  ; # [2288] fold\n  i64 26957248098,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fold to i8*), i32 2) to i64),\n  ; # [2304] path\n  i64 28039321346,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Path to i8*), i32 2) to i64),\n  ; # [2320] wait\n  i64 31249012594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Wait to i8*), i32 2) to i64),\n  ; # [2336] sync\n  i64 26690950962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sync to i8*), i32 2) to i64),\n  ; # [2352] hear\n  i64 30703769218,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Hear to i8*), i32 2) to i64),\n  ; # [2368] tell\n  i64 29104691010,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Tell to i8*), i32 2) to i64),\n  ; # [2384] poll\n  i64 29104731906,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Poll to i8*), i32 2) to i64),\n  ; # [2400] read\n  i64 26945672994,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Read to i8*), i32 2) to i64),\n  ; # [2416] key\n  i64 127293106,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Key to i8*), i32 2) to i64),\n  ; # [2432] peek\n  i64 28828915458,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Peek to i8*), i32 2) to i64),\n  ; # [2448] char\n  i64 30703781426,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Char to i8*), i32 2) to i64),\n  ; # [2464] skip\n  i64 30175311666,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Skip to i8*), i32 2) to i64),\n  ; # [2480] eol\n  i64 113702482,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eol to i8*), i32 2) to i64),\n  ; # [2496] eof\n  i64 107411026,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eof to i8*), i32 2) to i64),\n  ; # [2512] from\n  i64 29376325218,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_From to i8*), i32 2) to i64),\n  ; # [2528] till\n  i64 29104707394,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Till to i8*), i32 2) to i64),\n  ; # [2544] line\n  i64 27227756226,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Line to i8*), i32 2) to i64),\n  ; # [2560] in\n  i64 452242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_In to i8*), i32 2) to i64),\n  ; # [2576] out\n  i64 122115826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Out to i8*), i32 2) to i64),\n  ; # [2592] err\n  i64 120006226,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Err to i8*), i32 2) to i64),\n  ; # [2608] ctl\n  i64 113722930,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ctl to i8*), i32 2) to i64),\n  ; # [2624] input\n  i64 8002984142482,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Input to i8*), i32 2) to i64),\n  ; # [2640] output\n  i64 2048763946817266,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Output to i8*), i32 2) to i64),\n  ; # [2656] fd\n  i64 411234,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fd to i8*), i32 2) to i64),\n  ; # [2672] pipe\n  i64 27229853442,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pipe to i8*), i32 2) to i64),\n  ; # [2688] open\n  i64 29634266866,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Open to i8*), i32 2) to i64),\n  ; # [2704] close\n  i64 6971654063666,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Close to i8*), i32 2) to i64),\n  ; # [2720] echo\n  i64 29905794642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Echo to i8*), i32 2) to i64),\n  ; # [2736] prin\n  i64 29638469378,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prin to i8*), i32 2) to i64),\n  ; # [2752] prinl\n  i64 7451341956866,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prinl to i8*), i32 2) to i64),\n  ; # [2768] space\n  i64 6967344432946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Space to i8*), i32 2) to i64),\n  ; # [2784] print\n  i64 8001097770754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Print to i8*), i32 2) to i64),\n  ; # [2800] printsp\n  i64 506434260758374146,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Printsp to i8*), i32 2) to i64),\n  ; # [2816] println\n  i64 497303916201322242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Println to i8*), i32 2) to i64),\n  ; # [2832] flush\n  i64 7177818785378,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Flush to i8*), i32 2) to i64),\n  ; # [2848] rewind\n  i64 1766806057801506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rewind to i8*), i32 2) to i64),\n  ; # [2864] ext\n  i64 122127954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ext to i8*), i32 2) to i64),\n  ; # [2880] plio\n  i64 29906880258,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Plio to i8*), i32 2) to i64),\n  ; # [2896] rd\n  i64 411426,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rd to i8*), i32 2) to i64),\n  ; # [2912] pr\n  i64 468738,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pr to i8*), i32 2) to i64),\n  ; # [2928] wr\n  i64 468850,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Wr to i8*), i32 2) to i64),\n  ; # [2944] any\n  i64 127329810,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Any to i8*), i32 2) to i64),\n  ; # [2960] sym\n  i64 114792242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sym to i8*), i32 2) to i64),\n  ; # [2976] str\n  i64 120014642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Str to i8*), i32 2) to i64),\n  ; # [2992] load\n  i64 26945713858,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Load to i8*), i32 2) to i64),\n  ; # [3008] ext?\n  i64 17033561682,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_ExtQ to i8*), i32 2) to i64),\n  ; # [3024] rollback\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 3044) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rollback to i8*), i32 2) to i64),\n  i64 7738135660106379122,\n  i64 2,\n  ; # [3056] extern\n  i64 1943001719342674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Extern to i8*), i32 2) to i64),\n  ; # [3072] pool\n  i64 29107877634,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pool to i8*), i32 2) to i64),\n  ; # [3088] pool2\n  i64 3465081714434,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pool2 to i8*), i32 2) to i64),\n  ; # [3104] journal\n  i64 488102791669544610,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Journal to i8*), i32 2) to i64),\n  ; # [3120] id\n  i64 411282,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Id to i8*), i32 2) to i64),\n  ; # [3136] blk\n  i64 112641570,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Blk to i8*), i32 2) to i64),\n  ; # [3152] seq\n  i64 118904626,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Seq to i8*), i32 2) to i64),\n  ; # [3168] lieu\n  i64 31513286338,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lieu to i8*), i32 2) to i64),\n  ; # [3184] lock\n  i64 28826859202,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lock to i8*), i32 2) to i64),\n  ; # [3200] touch\n  i64 7173523830594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Touch to i8*), i32 2) to i64),\n  ; # [3216] commit\n  i64 2047938500425266,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Commit to i8*), i32 2) to i64),\n  ; # [3232] mark\n  i64 28842530514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mark to i8*), i32 2) to i64),\n  ; # [3248] free\n  i64 27218355810,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Free to i8*), i32 2) to i64),\n  ; # [3264] dbck\n  i64 28826805826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Dbck to i8*), i32 2) to i64),\n  ; # [3280] apply\n  i64 8344165615122,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Apply to i8*), i32 2) to i64),\n  ; # [3296] pass\n  i64 30991062786,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pass to i8*), i32 2) to i64),\n  ; # [3312] fun\n  i64 115824226,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fun to i8*), i32 2) to i64),\n  ; # [3328] maps\n  i64 30987917010,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Maps to i8*), i32 2) to i64),\n  ; # [3344] map\n  i64 117839570,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Map to i8*), i32 2) to i64),\n  ; # [3360] mapc\n  i64 26692949714,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mapc to i8*), i32 2) to i64),\n  ; # [3376] maplist\n  i64 524447902824011474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Maplist to i8*), i32 2) to i64),\n  ; # [3392] mapcar\n  i64 2012201691256530,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mapcar to i8*), i32 2) to i64),\n  ; # [3408] mapcon\n  i64 1942795019753170,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mapcon to i8*), i32 2) to i64),\n  ; # [3424] mapcan\n  i64 1941832947078866,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mapcan to i8*), i32 2) to i64),\n  ; # [3440] filter\n  i64 2012481128404578,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Filter to i8*), i32 2) to i64),\n  ; # [3456] extract\n  i64 524165879706388050,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Extract to i8*), i32 2) to i64),\n  ; # [3472] seek\n  i64 28828915506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Seek to i8*), i32 2) to i64),\n  ; # [3488] find\n  i64 26959320674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Find to i8*), i32 2) to i64),\n  ; # [3504] pick\n  i64 28826834690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pick to i8*), i32 2) to i64),\n  ; # [3520] fully\n  i64 8344161441378,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fully to i8*), i32 2) to i64),\n  ; # [3536] cnt\n  i64 122086962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cnt to i8*), i32 2) to i64),\n  ; # [3552] sum\n  i64 114775858,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sum to i8*), i32 2) to i64),\n  ; # [3568] maxi\n  i64 28311951058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Maxi to i8*), i32 2) to i64),\n  ; # [3584] mini\n  i64 28301498066,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mini to i8*), i32 2) to i64),\n  ; # [3600] fish\n  i64 28038305378,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fish to i8*), i32 2) to i64),\n  ; # [3616] by\n  i64 497186,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_By to i8*), i32 2) to i64),\n  ; # [3632] as\n  i64 472594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_As to i8*), i32 2) to i64),\n  ; # [3648] lit\n  i64 122066626,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lit to i8*), i32 2) to i64),\n  ; # [3664] eval\n  i64 29093226066,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eval to i8*), i32 2) to i64),\n  ; # [3680] run\n  i64 115824418,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Run to i8*), i32 2) to i64),\n  ; # [3696] def\n  i64 107370050,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Def to i8*), i32 2) to i64),\n  ; # [3712] de\n  i64 415298,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_De to i8*), i32 2) to i64),\n  ; # [3728] dm\n  i64 448066,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Dm to i8*), i32 2) to i64),\n  ; # [3744] box\n  i64 126285346,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Box to i8*), i32 2) to i64),\n  ; # [3760] new\n  i64 125196002,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_New to i8*), i32 2) to i64),\n  ; # [3776] type\n  i64 27229919042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Type to i8*), i32 2) to i64),\n  ; # [3792] isa\n  i64 102184594,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Isa to i8*), i32 2) to i64),\n  ; # [3808] method\n  i64 1766874505696978,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Method to i8*), i32 2) to i64),\n  ; # [3824] send\n  i64 26959304498,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Send to i8*), i32 2) to i64),\n  ; # [3840] try\n  i64 127346498,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Try to i8*), i32 2) to i64),\n  ; # [3856] super\n  i64 7861250250546,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Super to i8*), i32 2) to i64),\n  ; # [3872] extra\n  i64 6696513013330,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Extra to i8*), i32 2) to i64),\n  ; # [3888] and\n  i64 105309714,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_And to i8*), i32 2) to i64),\n  ; # [3904] or\n  i64 468722,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Or to i8*), i32 2) to i64),\n  ; # [3920] nand\n  i64 26959288034,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nand to i8*), i32 2) to i64),\n  ; # [3936] nor\n  i64 119994082,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nor to i8*), i32 2) to i64),\n  ; # [3952] xor\n  i64 119994242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Xor to i8*), i32 2) to i64),\n  ; # [3968] bool\n  i64 29107877410,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Bool to i8*), i32 2) to i64),\n  ; # [3984] not\n  i64 122091234,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Not to i8*), i32 2) to i64),\n  ; # [4000] nil\n  i64 113678050,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nil to i8*), i32 2) to i64),\n  ; # [4016] t\n  i64 1858,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_T to i8*), i32 2) to i64),\n  ; # [4032] prog\n  i64 27765712642,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prog to i8*), i32 2) to i64),\n  ; # [4048] prog1\n  i64 3395020072706,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prog1 to i8*), i32 2) to i64),\n  ; # [4064] prog2\n  i64 3463739549442,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prog2 to i8*), i32 2) to i64),\n  ; # [4080] if\n  i64 419474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_If to i8*), i32 2) to i64),\n  ; # [4096] ifn\n  i64 115762834,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ifn to i8*), i32 2) to i64),\n  ; # [4112] if2\n  i64 52848274,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_If2 to i8*), i32 2) to i64),\n  ; # [4128] if@@\n  i64 17247397522,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_IfAt2 to i8*), i32 2) to i64),\n  ; # [4144] when\n  i64 29634234226,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_When to i8*), i32 2) to i64),\n  ; # [4160] unless\n  i64 2031031360612178,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Unless to i8*), i32 2) to i64),\n  ; # [4176] cond\n  i64 26959345202,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cond to i8*), i32 2) to i64),\n  ; # [4192] nond\n  i64 26959345378,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nond to i8*), i32 2) to i64),\n  ; # [4208] case\n  i64 27232966194,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Case to i8*), i32 2) to i64),\n  ; # [4224] casq\n  i64 30454191666,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Casq to i8*), i32 2) to i64),\n  ; # [4240] state\n  i64 6971907852082,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_State to i8*), i32 2) to i64),\n  ; # [4256] while\n  i64 6969768707954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_While to i8*), i32 2) to i64),\n  ; # [4272] until\n  i64 7450011297618,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Until to i8*), i32 2) to i64),\n  ; # [4288] at\n  i64 476690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_At to i8*), i32 2) to i64),\n  ; # [4304] do\n  i64 456258,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Do to i8*), i32 2) to i64),\n  ; # [4320] loop\n  i64 30181619394,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Loop to i8*), i32 2) to i64),\n  ; # [4336] for\n  i64 119993954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_For to i8*), i32 2) to i64),\n  ; # [4352] this\n  i64 30980605762,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_This to i8*), i32 2) to i64),\n  ; # [4368] with\n  i64 28039354226,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_With to i8*), i32 2) to i64),\n  ; # [4384] bind\n  i64 26959320610,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Bind to i8*), i32 2) to i64),\n  ; # [4400] job\n  i64 103216802,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Job to i8*), i32 2) to i64),\n  ; # [4416] let\n  i64 122050242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Let to i8*), i32 2) to i64),\n  ; # [4432] let?\n  i64 17033483970,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_LetQ to i8*), i32 2) to i64),\n  ; # [4448] use\n  i64 106379090,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Use to i8*), i32 2) to i64),\n  ; # [4464] buf\n  i64 107435554,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Buf to i8*), i32 2) to i64),\n  ; # [4480] tco\n  i64 116799298,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Tco to i8*), i32 2) to i64),\n  ; # [4496] tc\n  i64 407362,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Tc to i8*), i32 2) to i64),\n  ; # [4512] catch\n  i64 7173522724402,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Catch to i8*), i32 2) to i64),\n  ; # [4528] throw\n  i64 8207534032706,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Throw to i8*), i32 2) to i64),\n  ; # [4544] finally\n  i64 546842958862128738,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Finally to i8*), i32 2) to i64),\n  ; # [4560] co\n  i64 456242,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Co to i8*), i32 2) to i64),\n  ; # [4576] yield\n  i64 6901045041042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Yield to i8*), i32 2) to i64),\n  ; # [4592] !\n  i64 530,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Break to i8*), i32 2) to i64),\n  ; # [4608] !!\n  i64 135698,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_BreakIf to i8*), i32 2) to i64),\n  ; # [4624] e\n  i64 1618,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_E to i8*), i32 2) to i64),\n  ; # [4640] $\n  i64 578,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Trace to i8*), i32 2) to i64),\n  ; # [4656] exec\n  i64 26681509458,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Exec to i8*), i32 2) to i64),\n  ; # [4672] call\n  i64 29104674354,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Call to i8*), i32 2) to i64),\n  ; # [4688] ipid\n  i64 26954106514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ipid to i8*), i32 2) to i64),\n  ; # [4704] opid\n  i64 26954106610,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Opid to i8*), i32 2) to i64),\n  ; # [4720] kill\n  i64 29104707250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Kill to i8*), i32 2) to i64),\n  ; # [4736] fork\n  i64 28842587746,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fork to i8*), i32 2) to i64),\n  ; # [4752] detach\n  i64 1836416737105474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Detach to i8*), i32 2) to i64),\n  ; # [4768] bye\n  i64 106403362,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Bye to i8*), i32 2) to i64),\n  ; # [4784] car\n  i64 119936562,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Car to i8*), i32 2) to i64),\n  ; # [4800] cdr\n  i64 119948850,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdr to i8*), i32 2) to i64),\n  ; # [4816] caar\n  i64 30703752754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caar to i8*), i32 2) to i64),\n  ; # [4832] cadr\n  i64 30706898482,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cadr to i8*), i32 2) to i64),\n  ; # [4848] cdar\n  i64 30703765042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdar to i8*), i32 2) to i64),\n  ; # [4864] cddr\n  i64 30706910770,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cddr to i8*), i32 2) to i64),\n  ; # [4880] caaar\n  i64 7860160697906,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caaar to i8*), i32 2) to i64),\n  ; # [4896] caadr\n  i64 7860966004274,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caadr to i8*), i32 2) to i64),\n  ; # [4912] cadar\n  i64 7860163843634,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cadar to i8*), i32 2) to i64),\n  ; # [4928] caddr\n  i64 7860969150002,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caddr to i8*), i32 2) to i64),\n  ; # [4944] cdaar\n  i64 7860160710194,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdaar to i8*), i32 2) to i64),\n  ; # [4960] cdadr\n  i64 7860966016562,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdadr to i8*), i32 2) to i64),\n  ; # [4976] cddar\n  i64 7860163855922,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cddar to i8*), i32 2) to i64),\n  ; # [4992] cdddr\n  i64 7860969162290,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdddr to i8*), i32 2) to i64),\n  ; # [5008] caaaar\n  i64 2012201138656818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caaaar to i8*), i32 2) to i64),\n  ; # [5024] caaadr\n  i64 2012407297087026,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caaadr to i8*), i32 2) to i64),\n  ; # [5040] caadar\n  i64 2012201943963186,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caadar to i8*), i32 2) to i64),\n  ; # [5056] caaddr\n  i64 2012408102393394,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caaddr to i8*), i32 2) to i64),\n  ; # [5072] cadaar\n  i64 2012201141802546,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cadaar to i8*), i32 2) to i64),\n  ; # [5088] cadadr\n  i64 2012407300232754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cadadr to i8*), i32 2) to i64),\n  ; # [5104] caddar\n  i64 2012201947108914,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Caddar to i8*), i32 2) to i64),\n  ; # [5120] cadddr\n  i64 2012408105539122,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cadddr to i8*), i32 2) to i64),\n  ; # [5136] cdaaar\n  i64 2012201138669106,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdaaar to i8*), i32 2) to i64),\n  ; # [5152] cdaadr\n  i64 2012407297099314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdaadr to i8*), i32 2) to i64),\n  ; # [5168] cdadar\n  i64 2012201943975474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdadar to i8*), i32 2) to i64),\n  ; # [5184] cdaddr\n  i64 2012408102405682,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdaddr to i8*), i32 2) to i64),\n  ; # [5200] cddaar\n  i64 2012201141814834,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cddaar to i8*), i32 2) to i64),\n  ; # [5216] cddadr\n  i64 2012407300245042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cddadr to i8*), i32 2) to i64),\n  ; # [5232] cdddar\n  i64 2012201947121202,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cdddar to i8*), i32 2) to i64),\n  ; # [5248] cddddr\n  i64 2012408105551410,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cddddr to i8*), i32 2) to i64),\n  ; # [5264] nth\n  i64 109528802,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nth to i8*), i32 2) to i64),\n  ; # [5280] con\n  i64 115799602,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Con to i8*), i32 2) to i64),\n  ; # [5296] cons\n  i64 30985877042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cons to i8*), i32 2) to i64),\n  ; # [5312] conc\n  i64 26690909746,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Conc to i8*), i32 2) to i64),\n  ; # [5328] circ\n  i64 26695079474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Circ to i8*), i32 2) to i64),\n  ; # [5344] rot\n  i64 122091298,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rot to i8*), i32 2) to i64),\n  ; # [5360] list\n  i64 31259530946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_List to i8*), i32 2) to i64),\n  ; # [5376] need\n  i64 26949867234,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Need to i8*), i32 2) to i64),\n  ; # [5392] range\n  i64 6968431744802,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Range to i8*), i32 2) to i64),\n  ; # [5408] full\n  i64 29104756322,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Full to i8*), i32 2) to i64),\n  ; # [5424] make\n  i64 27224577746,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Make to i8*), i32 2) to i64),\n  ; # [5440] made\n  i64 27217237714,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Made to i8*), i32 2) to i64),\n  ; # [5456] chain\n  i64 7587430303282,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Chain to i8*), i32 2) to i64),\n  ; # [5472] link\n  i64 28838368962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Link to i8*), i32 2) to i64),\n  ; # [5488] yoke\n  i64 27224635282,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Yoke to i8*), i32 2) to i64),\n  ; # [5504] copy\n  i64 32598586930,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Copy to i8*), i32 2) to i64),\n  ; # [5520] mix\n  i64 126260946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mix to i8*), i32 2) to i64),\n  ; # [5536] append\n  i64 1766804976764434,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Append to i8*), i32 2) to i64),\n  ; # [5552] delete\n  i64 1784809475429954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Delete to i8*), i32 2) to i64),\n  ; # [5568] delq\n  i64 30446868034,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Delq to i8*), i32 2) to i64),\n  ; # [5584] replace\n  i64 456611883680945954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Replace to i8*), i32 2) to i64),\n  ; # [5600] insert\n  i64 2048554834519698,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Insert to i8*), i32 2) to i64),\n  ; # [5616] remove\n  i64 1784949599786786,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Remove to i8*), i32 2) to i64),\n  ; # [5632] place\n  i64 6967344416514,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Place to i8*), i32 2) to i64),\n  ; # [5648] strip\n  i64 7724887131954,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Strip to i8*), i32 2) to i64),\n  ; # [5664] split\n  i64 7999758731058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Split to i8*), i32 2) to i64),\n  ; # [5680] reverse\n  i64 456894525016004386,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Reverse to i8*), i32 2) to i64),\n  ; # [5696] flip\n  i64 30175315554,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Flip to i8*), i32 2) to i64),\n  ; # [5712] trim\n  i64 29370033986,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Trim to i8*), i32 2) to i64),\n  ; # [5728] clip\n  i64 30175315506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Clip to i8*), i32 2) to i64),\n  ; # [5744] head\n  i64 26945672834,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Head to i8*), i32 2) to i64),\n  ; # [5760] tail\n  i64 29101528898,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Tail to i8*), i32 2) to i64),\n  ; # [5776] stem\n  i64 29365847858,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Stem to i8*), i32 2) to i64),\n  ; # [5792] fin\n  i64 115775074,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fin to i8*), i32 2) to i64),\n  ; # [5808] last\n  i64 31259498178,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Last to i8*), i32 2) to i64),\n  ; # [5824] ==\n  i64 250834,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eq to i8*), i32 2) to i64),\n  ; # [5840] n==\n  i64 64214754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Neq to i8*), i32 2) to i64),\n  ; # [5856] =\n  i64 978,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Equal to i8*), i32 2) to i64),\n  ; # [5872] <>\n  i64 254914,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nequal to i8*), i32 2) to i64),\n  ; # [5888] =0\n  i64 197586,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eq0 to i8*), i32 2) to i64),\n  ; # [5904] =1\n  i64 201682,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Eq1 to i8*), i32 2) to i64),\n  ; # [5920] =T\n  i64 345042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_EqT to i8*), i32 2) to i64),\n  ; # [5936] n0\n  i64 198370,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Neq0 to i8*), i32 2) to i64),\n  ; # [5952] nT\n  i64 345826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_NeqT to i8*), i32 2) to i64),\n  ; # [5968] <\n  i64 962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lt to i8*), i32 2) to i64),\n  ; # [5984] <=\n  i64 250818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Le to i8*), i32 2) to i64),\n  ; # [6000] >\n  i64 994,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Gt to i8*), i32 2) to i64),\n  ; # [6016] >=\n  i64 250850,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ge to i8*), i32 2) to i64),\n  ; # [6032] max\n  i64 126228178,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Max to i8*), i32 2) to i64),\n  ; # [6048] min\n  i64 115775186,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Min to i8*), i32 2) to i64),\n  ; # [6064] atom\n  i64 29376333330,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Atom to i8*), i32 2) to i64),\n  ; # [6080] pair\n  i64 30712141570,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pair to i8*), i32 2) to i64),\n  ; # [6096] circ?\n  i64 4356022113842,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_CircQ to i8*), i32 2) to i64),\n  ; # [6112] lst?\n  i64 17033541314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_LstQ to i8*), i32 2) to i64),\n  ; # [6128] num?\n  i64 17026209506,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_NumQ to i8*), i32 2) to i64),\n  ; # [6144] sym?\n  i64 17026225970,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_SymQ to i8*), i32 2) to i64),\n  ; # [6160] flg?\n  i64 17019881058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_FlgQ to i8*), i32 2) to i64),\n  ; # [6176] member\n  i64 2012476297598674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Member to i8*), i32 2) to i64),\n  ; # [6192] memq\n  i64 30447916754,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Memq to i8*), i32 2) to i64),\n  ; # [6208] mmeq\n  i64 30439560914,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Mmeq to i8*), i32 2) to i64),\n  ; # [6224] sect\n  i64 31242737458,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sect to i8*), i32 2) to i64),\n  ; # [6240] diff\n  i64 27487802946,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Diff to i8*), i32 2) to i64),\n  ; # [6256] index\n  i64 8273554499218,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Index to i8*), i32 2) to i64),\n  ; # [6272] offset\n  i64 2047665225754354,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Offset to i8*), i32 2) to i64),\n  ; # [6288] prior\n  i64 7863927252738,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prior to i8*), i32 2) to i64),\n  ; # [6304] length\n  i64 1837586572531394,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Length to i8*), i32 2) to i64),\n  ; # [6320] size\n  i64 27240339250,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Size to i8*), i32 2) to i64),\n  ; # [6336] bytes\n  i64 7929973937698,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Bytes to i8*), i32 2) to i64),\n  ; # [6352] assoc\n  i64 6833145591314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Assoc to i8*), i32 2) to i64),\n  ; # [6368] rassoc\n  i64 1749285271377698,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rassoc to i8*), i32 2) to i64),\n  ; # [6384] asoq\n  i64 30450071058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Asoq to i8*), i32 2) to i64),\n  ; # [6400] rasoq\n  i64 7795218192162,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rasoq to i8*), i32 2) to i64),\n  ; # [6416] rank\n  i64 28838336290,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rank to i8*), i32 2) to i64),\n  ; # [6432] match\n  i64 7173522724562,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Match to i8*), i32 2) to i64),\n  ; # [6448] fill\n  i64 29104707170,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Fill to i8*), i32 2) to i64),\n  ; # [6464] prove\n  i64 6972459394818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prove to i8*), i32 2) to i64),\n  ; # [6480] ->\n  i64 254674,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Arrow to i8*), i32 2) to i64),\n  ; # [6496] unify\n  i64 8342547654482,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Unify to i8*), i32 2) to i64),\n  ; # [6512] group\n  i64 7728105203314,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Group to i8*), i32 2) to i64),\n  ; # [6528] sort\n  i64 31258507058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sort to i8*), i32 2) to i64),\n  ; # [6544] tty\n  i64 127354690,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Tty to i8*), i32 2) to i64),\n  ; # [6560] prompt\n  i64 2048419538872066,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Prompt to i8*), i32 2) to i64),\n  ; # [6576] raw\n  i64 125179682,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Raw to i8*), i32 2) to i64),\n  ; # [6592] alarm\n  i64 7521126762002,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Alarm to i8*), i32 2) to i64),\n  ; # [6608] sigio\n  i64 7656156075826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sigio to i8*), i32 2) to i64),\n  ; # [6624] kids\n  i64 30975366834,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Kids to i8*), i32 2) to i64),\n  ; # [6640] protect\n  i64 524166155115898626,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Protect to i8*), i32 2) to i64),\n  ; # [6656] heap\n  i64 30166898306,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Heap to i8*), i32 2) to i64),\n  ; # [6672] stack\n  i64 7379661309746,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Stack to i8*), i32 2) to i64),\n  ; # [6688] byte\n  i64 27234113058,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Byte to i8*), i32 2) to i64),\n  ; # [6704] env\n  i64 124184146,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Env to i8*), i32 2) to i64),\n  ; # [6720] date\n  i64 27234014786,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Date to i8*), i32 2) to i64),\n  ; # [6736] time\n  i64 27226707778,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Time to i8*), i32 2) to i64),\n  ; # [6752] usec\n  i64 26681489234,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Usec to i8*), i32 2) to i64),\n  ; # [6768] rt\n  i64 476962,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rt to i8*), i32 2) to i64),\n  ; # [6784] quit\n  i64 31249094418,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Quit to i8*), i32 2) to i64),\n  ; # [6800] sys\n  i64 121083698,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Sys to i8*), i32 2) to i64),\n  ; # [6816] pwd\n  i64 105346818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Pwd to i8*), i32 2) to i64),\n  ; # [6832] cd\n  i64 411186,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cd to i8*), i32 2) to i64),\n  ; # [6848] ctty\n  i64 32602801714,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Ctty to i8*), i32 2) to i64),\n  ; # [6864] cmd\n  i64 105305650,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Cmd to i8*), i32 2) to i64),\n  ; # [6880] dir\n  i64 119969346,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Dir to i8*), i32 2) to i64),\n  ; # [6896] info\n  i64 29903742610,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Info to i8*), i32 2) to i64),\n  ; # [6912] file\n  i64 27225658978,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_File to i8*), i32 2) to i64),\n  ; # [6928] argv\n  i64 31783855634,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Argv to i8*), i32 2) to i64),\n  ; # [6944] opt\n  i64 122095346,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Opt to i8*), i32 2) to i64),\n  ; # [6960] errno\n  i64 7657509824082,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Errno to i8*), i32 2) to i64),\n  ; # [6976] %@\n  i64 262738,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Nat to i8*), i32 2) to i64),\n  ; # [6992] native\n  i64 1784947996497634,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Native to i8*), i32 2) to i64),\n  ; # [7008] struct\n  i64 2047528336312114,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Struct to i8*), i32 2) to i64),\n  ; # [7024] lisp\n  i64 30185789122,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Lisp to i8*), i32 2) to i64),\n  ; # [7040] args\n  i64 30978549266,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Args to i8*), i32 2) to i64),\n  ; # [7056] next\n  i64 31264757474,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Next to i8*), i32 2) to i64),\n  ; # [7072] arg\n  i64 108471826,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Arg to i8*), i32 2) to i64),\n  ; # [7088] rest\n  i64 31259514658,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Rest to i8*), i32 2) to i64),\n  ; # [7104] adr\n  i64 119948818,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Adr to i8*), i32 2) to i64),\n  ; # [7120] trail\n  i64 7449991391042,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Trail to i8*), i32 2) to i64),\n  ; # [7136] up\n  i64 460626,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Up to i8*), i32 2) to i64),\n  ; # [7152] history\n  i64 546948723242342018,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_History to i8*), i32 2) to i64),\n  ; # [7168] version\n  i64 497355938196772706,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast (i64(i64)* @_Version to i8*), i32 2) to i64)\n], align 16\n@gcData = global [53 x i64] [\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 96) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n], align 8\n@cbFuns = global [24 x i64] [\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb1 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb2 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb3 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb4 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb5 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb6 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb7 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb8 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb9 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb10 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb11 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb12 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb13 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb14 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb15 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb16 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb17 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb18 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb19 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb20 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb21 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb22 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb23 to i64),\n  i64 ptrtoint (i64(i64,i64,i64,i64,i64)* @_Cb24 to i64)\n], align 8\n@env = global [25 x i64] [\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (i8* null to i64),\n  i64 ptrtoint (void(i8)* null to i64),\n  i64 ptrtoint (i32()* null to i64),\n  i64 ptrtoint (i64* null to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 0,\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0,\n  i64 0\n], align 8\n@$Cell = global [2 x i64] [\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64),\n  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n]\n@$Version = global [3 x i64] [\n  i64 418,\n  i64 66,\n  i64 482\n], align 8\n@$TBuf = global [2 x i8] [\n  i8 5,\n  i8 84\n]\n@$Month = global [13 x i8] [\n  i8 31,\n  i8 31,\n  i8 28,\n  i8 31,\n  i8 30,\n  i8 31,\n  i8 30,\n  i8 31,\n  i8 31,\n  i8 30,\n  i8 31,\n  i8 30,\n  i8 31\n]\n@$Repl = global i1 0\n@$PRepl = global i1 0\n@$Tc = global i1 0\n@$Jam = global i1 0\n@$InBye = global i1 0\n@$Sync = global i1 0\n@$Empty = constant [1 x i8] c\"\\00\"\n@$Delim = constant [16 x i8] c\" \\09\\0A\\0D\\22'(),[]`{}~\\00\"\ndeclare i8* @malloc(i64)\ndeclare i8* @realloc(i8*, i64)\ndeclare void @free(i8*)\ndeclare i32 @fork()\ndeclare i8* @getenv(i8*)\ndeclare i32 @setenv(i8*, i8*, i32)\ndeclare i8* @getcwd(i8*, i64)\ndeclare i32 @chdir(i8*)\ndeclare i32 @getpid()\ndeclare i32 @getpgrp()\ndeclare i32 @setsid()\ndeclare i32 @alarm(i32)\ndeclare i32 @setpgid(i32, i32)\ndeclare i32 @execvp(i8*, i8**)\ndeclare i32 @isatty(i32)\ndeclare i32 @openpty(i32*, i32*, i8*, i8*, i8*)\ndeclare i32 @login_tty(i32)\ndeclare i32 @tcgetattr(i32, i8*)\ndeclare i32 @tcgetpgrp(i32)\ndeclare i32 @tcsetpgrp(i32, i32)\ndeclare i64 @read(i32, i8*, i64)\ndeclare i64 @write(i32, i8*, i64)\ndeclare i64 @pread(i32, i8*, i64, i64)\ndeclare i64 @pwrite(i32, i8*, i64, i64)\ndeclare i32 @fread(i8*, i64, i64, i8*)\ndeclare i32 @fwrite(i8*, i64, i64, i8*)\ndeclare i32 @putc_unlocked(i32, i8*)\ndeclare i32 @getc_unlocked(i8*)\ndeclare i8* @fopen(i8*, i8*)\ndeclare i32 @fflush(i8*)\ndeclare i32 @feof(i8*)\ndeclare i32 @fclose(i8*)\ndeclare i32 @fileno(i8*)\ndeclare i32 @fsync(i32)\ndeclare i32 @pipe(i32*)\ndeclare i32 @memcmp(i8*, i8*, i64)\ndeclare i64 @strlen(i8*)\ndeclare i8* @strcpy(i8*, i8*)\ndeclare i8* @strdup(i8*)\ndeclare i32 @strcmp(i8*, i8*)\ndeclare i8* @strchr(i8*, i32)\ndeclare i8* @strrchr(i8*, i32)\ndeclare i8* @dlsym(i8*, i8*)\ndeclare i8* @dlerror()\ndeclare i32 @dup(i32)\ndeclare i32 @dup2(i32, i32)\ndeclare i32 @close(i32)\ndeclare i8* @signal(i32, i8*)\ndeclare i32 @waitpid(i32, i32*, i32)\ndeclare i32 @poll(i64*, i32, i64)\ndeclare i32 @setjmp(i8*)\ndeclare void @longjmp(i8*, i32)\ndeclare i32 @kill(i32, i32)\ndeclare void @exit(i32)\ndeclare void @add_history(i8*)\ndeclare i8*** @history_list()\ndeclare void @clear_history()\n@TgOS = external global i8\n@TgCPU = external global i8\n@PipeBufSize = external global i32\n@Fsign = external global i1\n@Fdigit = external global i64\ndeclare i8* @stderrMsg(i8*, i8*)\ndeclare void @gPrintf(i8*, i32, i8*, i8*)\ndeclare i8* @strErrno()\ndeclare i32 @openRd(i8*)\ndeclare i32 @openWr(i8*)\ndeclare i32 @openRdWr(i8*)\ndeclare i32 @openRdWrExcl(i8*)\ndeclare i32 @openRdWrCreate(i8*)\ndeclare i32 @openRdWrAppend(i8*)\ndeclare i32 @openWrAppend(i8*)\ndeclare i1 @fseekOfs(i8*, i32)\ndeclare i1 @fseek0(i8*)\ndeclare i1 @seek0(i32)\ndeclare i1 @truncate0(i32)\ndeclare i32 @socketPair(i32*)\ndeclare i32 @fcntlCloExec(i32)\ndeclare void @fcntlSetFl(i32, i32)\ndeclare i32 @nonBlocking(i32)\ndeclare void @fcntlSetOwn(i32, i32)\ndeclare i8* @getDir(i8*)\ndeclare void @initReadline()\ndeclare i8* @gReadline(i8*)\ndeclare void @rlHide()\ndeclare void @rlShow()\ndeclare void @rlSigBeg()\ndeclare void @rlSigEnd()\ndeclare i8* @currentLine()\n@Sig = external global i32\n@SigDfl = external global i8*\n@SigIgn = external global i8*\ndeclare i32 @gSignal(i32)\ndeclare void @iSignal(i32, i8*)\ndeclare void @sigUnblock(i32)\ndeclare void @sigChld(i32)\ndeclare i32 @waitWuntraced(i32, i32*)\ndeclare i32 @wifStopped(i32*)\ndeclare i32 @nErrno()\ndeclare i32 @gErrno()\n@Tio = external global i1\n@OrgTermio = external global i8\n@Termio = external global i8*\ndeclare void @stopTerm()\ndeclare void @setRaw()\ndeclare void @setCooked()\ndeclare i1 @reopenTty(i8*)\ndeclare i64 @getUsec(i1)\ndeclare i64 @getMsec()\ndeclare i64 @getDate()\ndeclare i64 @getGmDate()\ndeclare i64 @getTime()\ndeclare i64 @getGmTime()\ndeclare i8* @ulimStk()\ndeclare i64 @fileInfo(i1, i1, i8*, i64*)\ndeclare void @pollIn(i32, i64*)\ndeclare void @pollOut(i32, i64*)\ndeclare void @pollIgn(i64*)\ndeclare i32 @gPoll(i64*, i32, i64)\ndeclare i1 @readyIn(i64*)\ndeclare i1 @readyOut(i64*)\ndeclare i32 @rdLock(i32, i64, i64, i1)\ndeclare i32 @wrLock(i32, i64, i64, i1)\ndeclare i32 @unLock(i32, i64, i64)\ndeclare i32 @getLock(i32, i64, i64)\n@JmpBufSize = external global i64\n@QuitRst = external global i8\n@SoRst = external global i8\ndeclare i8* @dlOpen(i8*)\ndeclare i8* @ffiPrep(i8*, i8*, i64)\ndeclare i64 @ffiCall(i8*, i64)\ndeclare i64 @boxFloat(i32, i64)\ndeclare i64 @boxFlt()\ndeclare i64 @boxDouble(i64, i64)\ndeclare i64 @boxDbl()\ndeclare void @bufFloat(i64, i64, i32*)\ndeclare void @bufDouble(i64, i64, i64*)\ndeclare i1 @chance(i64)\ndeclare i1 @isLowc(i32)\ndeclare i1 @isUppc(i32)\ndeclare i1 @isLetterOrDigit(i32)\ndeclare i32 @toUpperCase(i32)\ndeclare i32 @toLowerCase(i32)\n\ndefine i64 @execAt(i64) align 8 {\n$1:\n; # (let At (save (val $At)) (exec Prg) (set $At At))\n; # (val $At)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (save (val $At))\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (exec Prg)\n  br label %$2\n$2:\n  %11 = phi i64 [%0, %$1], [%23, %$5] ; # Prg\n  %12 = inttoptr i64 %11 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$3, label %$4\n$3:\n  %18 = phi i64 [%14, %$2] ; # Prg\n  %19 = call i64 @evList(i64 %15)\n  br label %$4\n$4:\n  %20 = phi i64 [%14, %$2], [%18, %$3] ; # Prg\n  %21 = and i64 %20, 15\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$6, label %$5\n$5:\n  %23 = phi i64 [%20, %$4] ; # Prg\n  br label %$2\n$6:\n  %24 = phi i64 [%20, %$4] ; # Prg\n  %25 = phi i64 [0, %$4] ; # ->\n; # (set $At At)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %2, i64* %26\n; # (drop *Safe)\n  %27 = inttoptr i64 %6 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %30\n  ret i64 %2\n}\n\ndefine i64 @runAt(i64) align 8 {\n$1:\n; # (let At (save (val $At)) (prog1 (run Prg) (set $At At)))\n; # (val $At)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (save (val $At))\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (prog1 (run Prg) (set $At At))\n; # (run Prg)\n  br label %$2\n$2:\n  %11 = phi i64 [%0, %$1], [%41, %$11] ; # Prg\n  %12 = inttoptr i64 %11 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n  %16 = and i64 %14, 15\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$5, label %$3\n$5:\n  %18 = phi i64 [%14, %$2] ; # Prg\n  %19 = phi i64 [%15, %$2] ; # X\n  %20 = and i64 %19, 6\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%19, %$5] ; # X\n  br label %$6\n$7:\n  %23 = phi i64 [%19, %$5] ; # X\n  %24 = and i64 %23, 8\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$10, label %$9\n$10:\n  %26 = phi i64 [%23, %$7] ; # X\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n  br label %$6\n$9:\n  %29 = phi i64 [%23, %$7] ; # X\n  %30 = call i64 @evList(i64 %29)\n  br label %$6\n$6:\n  %31 = phi i64 [%22, %$8], [%26, %$10], [%29, %$9] ; # X\n  %32 = phi i64 [%22, %$8], [%28, %$10], [%30, %$9] ; # ->\n  br label %$4\n$3:\n  %33 = phi i64 [%14, %$2] ; # Prg\n  %34 = phi i64 [%15, %$2] ; # X\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$12, label %$11\n$12:\n  %37 = phi i64 [%33, %$3] ; # Prg\n  %38 = phi i64 [%34, %$3] ; # X\n  %39 = call i64 @evList(i64 %38)\n  %40 = icmp ne i64 %39, 0\n  br label %$11\n$11:\n  %41 = phi i64 [%33, %$3], [%37, %$12] ; # Prg\n  %42 = phi i64 [%34, %$3], [%38, %$12] ; # X\n  %43 = phi i1 [0, %$3], [%40, %$12] ; # ->\n  br label %$2\n$4:\n  %44 = phi i64 [%18, %$6] ; # Prg\n  %45 = phi i64 [%32, %$6] ; # ->\n; # (set $At At)\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %2, i64* %46\n; # (drop *Safe)\n  %47 = inttoptr i64 %6 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %50\n  ret i64 %45\n}\n\ndefine i64 @evExe(i64, i64, i64) align 8 {\n$1:\n; # (let (W (push NIL $Nil ZERO NIL NIL) V (push NIL NIL ZERO NIL NIL...\n; # (push NIL $Nil ZERO NIL NIL)\n  %3 = alloca i64, i64 5, align 16\n  %4 = ptrtoint i64* %3 to i64\n  %5 = add i64 %4, 8\n  %6 = inttoptr i64 %5 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %6\n  %7 = add i64 %4, 16\n  %8 = inttoptr i64 %7 to i64*\n  store i64 2, i64* %8\n; # (push NIL NIL ZERO NIL NIL)\n  %9 = alloca i64, i64 5, align 16\n  %10 = ptrtoint i64* %9 to i64\n  %11 = add i64 %10, 16\n  %12 = inttoptr i64 %11 to i64*\n  store i64 2, i64* %12\n; # (push Fun V)\n  %13 = alloca i64, i64 2, align 16\n  %14 = ptrtoint i64* %13 to i64\n  %15 = inttoptr i64 %14 to i64*\n  store i64 %0, i64* %15\n  %16 = add i64 %14, 8\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %10, i64* %17\n; # (set 4 W Arg2 W (link (ofs W 3) T) 2 V W 4 V Arg1 V (link (ofs V ...\n  %18 = inttoptr i64 %4 to i64*\n  %19 = getelementptr i64, i64* %18, i32 3\n  store i64 %2, i64* %19\n; # (ofs W 3)\n  %20 = add i64 %4, 24\n; # (link (ofs W 3) T)\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = inttoptr i64 %20 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  store i64 %22, i64* %24\n  %25 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 %4 to i64*\n  store i64 %20, i64* %26\n  %27 = inttoptr i64 %10 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  store i64 %4, i64* %28\n  %29 = inttoptr i64 %10 to i64*\n  %30 = getelementptr i64, i64* %29, i32 3\n  store i64 %1, i64* %30\n; # (ofs V 3)\n  %31 = add i64 %10, 24\n; # (link (ofs V 3))\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %10 to i64*\n  store i64 %31, i64* %37\n; # (evList E)\n  %38 = call i64 @evList(i64 %14)\n; # (drop *Safe)\n  %39 = inttoptr i64 %20 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %42\n  ret i64 %38\n}\n\ndefine i64 @wrnl() align 8 {\n$1:\n; # (write 1 ($ \"^J\") 1)\n  %0 = call i64 @write(i32 1, i8* bitcast ([2 x i8]* @$1 to i8*), i64 1)\n  ret i64 %0\n}\n\ndefine i64 @dbg(i64, i64) align 8 {\n$1:\n; # (let (Out (val $OutFile) Put (val (i8** $Put))) (set $OutFile (va...\n; # (val $OutFile)\n  %2 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (i8** $Put)\n  %3 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (val (i8** $Put))\n  %4 = load i8*, i8** %3\n; # (set $OutFile (val 3 (val $OutFiles)) $Put (fun (void i8) _putStd...\n; # (val $OutFiles)\n  %5 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %6 = getelementptr i8*, i8** %5, i32 2\n  %7 = load i8*, i8** %6\n  store i8* %7, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (outWord N)\n  call void @outWord(i64 %0)\n; # (when X (space) (print X))\n  %8 = icmp ne i64 %1, 0\n  br i1 %8, label %$2, label %$3\n$2:\n  %9 = phi i64 [%0, %$1] ; # N\n  %10 = phi i64 [%1, %$1] ; # X\n  %11 = phi i8* [%2, %$1] ; # Out\n  %12 = phi i8* [%4, %$1] ; # Put\n; # (space)\n  call void @space()\n; # (print X)\n  call void @print(i64 %10)\n  br label %$3\n$3:\n  %13 = phi i64 [%0, %$1], [%9, %$2] ; # N\n  %14 = phi i64 [%1, %$1], [%10, %$2] ; # X\n  %15 = phi i8* [%2, %$1], [%11, %$2] ; # Out\n  %16 = phi i8* [%4, %$1], [%12, %$2] ; # Put\n; # (newline)\n  call void @newline()\n; # (set (i8** $Put) Put $OutFile Out)\n; # (i8** $Put)\n  %17 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  store i8* %16, i8** %17\n  store i8* %15, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  ret i64 %14\n}\n\ndefine void @stop(i8*) align 8 {\n$1:\n; # (let Crt: (coroutine Crt) (when (symb? (Crt: tag)) (put @ ZERO $N...\n; # (when (symb? (Crt: tag)) (put @ ZERO $Nil))\n; # (Crt: tag)\n  %1 = ptrtoint i8* %0 to i64\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (symb? (Crt: tag))\n  %4 = xor i64 %3, 8\n  %5 = and i64 %4, 14\n  %6 = icmp eq i64 %5, 0\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i8* [%0, %$1] ; # Crt\n; # (put @ ZERO $Nil)\n  call void @put(i64 %3, i64 2, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$3\n$3:\n  %8 = phi i8* [%0, %$1], [%7, %$2] ; # Crt\n; # (Crt: tag 0)\n  %9 = ptrtoint i8* %0 to i64\n  %10 = inttoptr i64 %9 to i64*\n  store i64 0, i64* %10\n; # (Crt: lim (val $CrtFree))\n  %11 = getelementptr i8, i8* %0, i32 40\n  %12 = bitcast i8* %11 to i8**\n  %13 = load i8*, i8** @$CrtFree\n  store i8* %13, i8** %12\n; # (set $CrtFree Crt)\n  store i8* %8, i8** @$CrtFree\n  ret void\n}\n\ndefine void @unwind(i8*) align 8 {\n$1:\n; # (let (Ca (val $Catch) Bnd (val $Bind)) (while Ca (let Ca: (caFram...\n; # (val $Catch)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (val $Bind)\n  %2 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %3 = load i64, i64* %2\n; # (while Ca (let Ca: (caFrame Ca) (while (and Bnd (<> Bnd (Ca: (env...\n  br label %$2\n$2:\n  %4 = phi i8* [%0, %$1], [%232, %$40] ; # Catch\n  %5 = phi i8* [%1, %$1], [%236, %$40] ; # Ca\n  %6 = phi i64 [%3, %$1], [%234, %$40] ; # Bnd\n  %7 = icmp ne i8* %5, null\n  br i1 %7, label %$3, label %$4\n$3:\n  %8 = phi i8* [%4, %$2] ; # Catch\n  %9 = phi i8* [%5, %$2] ; # Ca\n  %10 = phi i64 [%6, %$2] ; # Bnd\n; # (let Ca: (caFrame Ca) (while (and Bnd (<> Bnd (Ca: (env $Bind any...\n; # (while (and Bnd (<> Bnd (Ca: (env $Bind any)))) (set (val 2 Bnd) ...\n  br label %$5\n$5:\n  %11 = phi i8* [%8, %$3], [%28, %$8] ; # Catch\n  %12 = phi i8* [%9, %$3], [%29, %$8] ; # Ca\n  %13 = phi i64 [%10, %$3], [%39, %$8] ; # Bnd\n; # (and Bnd (<> Bnd (Ca: (env $Bind any))))\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$7, label %$6\n$7:\n  %15 = phi i8* [%11, %$5] ; # Catch\n  %16 = phi i8* [%12, %$5] ; # Ca\n  %17 = phi i64 [%13, %$5] ; # Bnd\n; # (Ca: (env $Bind any))\n  %18 = getelementptr i8, i8* %9, i32 72\n  %19 = getelementptr i8, i8* %18, i32 8\n  %20 = ptrtoint i8* %19 to i64\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n; # (<> Bnd (Ca: (env $Bind any)))\n  %23 = icmp ne i64 %17, %22\n  br label %$6\n$6:\n  %24 = phi i8* [%11, %$5], [%15, %$7] ; # Catch\n  %25 = phi i8* [%12, %$5], [%16, %$7] ; # Ca\n  %26 = phi i64 [%13, %$5], [%17, %$7] ; # Bnd\n  %27 = phi i1 [0, %$5], [%23, %$7] ; # ->\n  br i1 %27, label %$8, label %$9\n$8:\n  %28 = phi i8* [%24, %$6] ; # Catch\n  %29 = phi i8* [%25, %$6] ; # Ca\n  %30 = phi i64 [%26, %$6] ; # Bnd\n; # (set (val 2 Bnd) (val Bnd))\n; # (val 2 Bnd)\n  %31 = inttoptr i64 %30 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (val Bnd)\n  %34 = inttoptr i64 %30 to i64*\n  %35 = load i64, i64* %34\n  %36 = inttoptr i64 %33 to i64*\n  store i64 %35, i64* %36\n; # (val 3 Bnd)\n  %37 = inttoptr i64 %30 to i64*\n  %38 = getelementptr i64, i64* %37, i32 2\n  %39 = load i64, i64* %38\n  br label %$5\n$9:\n  %40 = phi i8* [%24, %$6] ; # Catch\n  %41 = phi i8* [%25, %$6] ; # Ca\n  %42 = phi i64 [%26, %$6] ; # Bnd\n; # (while (and (val $CtlFrames) (<> @ (Ca: (env $CtlFrames i8*)))) (...\n  br label %$10\n$10:\n  %43 = phi i8* [%40, %$9], [%60, %$13] ; # Catch\n  %44 = phi i8* [%41, %$9], [%61, %$13] ; # Ca\n  %45 = phi i64 [%42, %$9], [%62, %$13] ; # Bnd\n; # (and (val $CtlFrames) (<> @ (Ca: (env $CtlFrames i8*))))\n; # (val $CtlFrames)\n  %46 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  %47 = icmp ne i8* %46, null\n  br i1 %47, label %$12, label %$11\n$12:\n  %48 = phi i8* [%43, %$10] ; # Catch\n  %49 = phi i8* [%44, %$10] ; # Ca\n  %50 = phi i64 [%45, %$10] ; # Bnd\n; # (Ca: (env $CtlFrames i8*))\n  %51 = getelementptr i8, i8* %9, i32 72\n  %52 = getelementptr i8, i8* %51, i32 64\n  %53 = bitcast i8* %52 to i8**\n  %54 = load i8*, i8** %53\n; # (<> @ (Ca: (env $CtlFrames i8*)))\n  %55 = icmp ne i8* %46, %54\n  br label %$11\n$11:\n  %56 = phi i8* [%43, %$10], [%48, %$12] ; # Catch\n  %57 = phi i8* [%44, %$10], [%49, %$12] ; # Ca\n  %58 = phi i64 [%45, %$10], [%50, %$12] ; # Bnd\n  %59 = phi i1 [0, %$10], [%55, %$12] ; # ->\n  br i1 %59, label %$13, label %$14\n$13:\n  %60 = phi i8* [%56, %$11] ; # Catch\n  %61 = phi i8* [%57, %$11] ; # Ca\n  %62 = phi i64 [%58, %$11] ; # Bnd\n; # (popCtlFiles)\n  call void @popCtlFiles()\n  br label %$10\n$14:\n  %63 = phi i8* [%56, %$11] ; # Catch\n  %64 = phi i8* [%57, %$11] ; # Ca\n  %65 = phi i64 [%58, %$11] ; # Bnd\n; # (while (and (val $ErrFrames) (<> @ (Ca: (env $ErrFrames i8*)))) (...\n  br label %$15\n$15:\n  %66 = phi i8* [%63, %$14], [%83, %$18] ; # Catch\n  %67 = phi i8* [%64, %$14], [%84, %$18] ; # Ca\n  %68 = phi i64 [%65, %$14], [%85, %$18] ; # Bnd\n; # (and (val $ErrFrames) (<> @ (Ca: (env $ErrFrames i8*))))\n; # (val $ErrFrames)\n  %69 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  %70 = icmp ne i8* %69, null\n  br i1 %70, label %$17, label %$16\n$17:\n  %71 = phi i8* [%66, %$15] ; # Catch\n  %72 = phi i8* [%67, %$15] ; # Ca\n  %73 = phi i64 [%68, %$15] ; # Bnd\n; # (Ca: (env $ErrFrames i8*))\n  %74 = getelementptr i8, i8* %9, i32 72\n  %75 = getelementptr i8, i8* %74, i32 56\n  %76 = bitcast i8* %75 to i8**\n  %77 = load i8*, i8** %76\n; # (<> @ (Ca: (env $ErrFrames i8*)))\n  %78 = icmp ne i8* %69, %77\n  br label %$16\n$16:\n  %79 = phi i8* [%66, %$15], [%71, %$17] ; # Catch\n  %80 = phi i8* [%67, %$15], [%72, %$17] ; # Ca\n  %81 = phi i64 [%68, %$15], [%73, %$17] ; # Bnd\n  %82 = phi i1 [0, %$15], [%78, %$17] ; # ->\n  br i1 %82, label %$18, label %$19\n$18:\n  %83 = phi i8* [%79, %$16] ; # Catch\n  %84 = phi i8* [%80, %$16] ; # Ca\n  %85 = phi i64 [%81, %$16] ; # Bnd\n; # (popErrFiles)\n  call void @popErrFiles()\n  br label %$15\n$19:\n  %86 = phi i8* [%79, %$16] ; # Catch\n  %87 = phi i8* [%80, %$16] ; # Ca\n  %88 = phi i64 [%81, %$16] ; # Bnd\n; # (until (or (== (val $OutFrames) (val $Stdout)) (== (val $OutFrame...\n  br label %$20\n$20:\n  %89 = phi i8* [%86, %$19], [%108, %$23] ; # Catch\n  %90 = phi i8* [%87, %$19], [%109, %$23] ; # Ca\n  %91 = phi i64 [%88, %$19], [%110, %$23] ; # Bnd\n; # (or (== (val $OutFrames) (val $Stdout)) (== (val $OutFrames) (Ca:...\n; # (val $OutFrames)\n  %92 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (val $Stdout)\n  %93 = load i8*, i8** @$Stdout\n; # (== (val $OutFrames) (val $Stdout))\n  %94 = icmp eq i8* %92, %93\n  br i1 %94, label %$21, label %$22\n$22:\n  %95 = phi i8* [%89, %$20] ; # Catch\n  %96 = phi i8* [%90, %$20] ; # Ca\n  %97 = phi i64 [%91, %$20] ; # Bnd\n; # (val $OutFrames)\n  %98 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (Ca: (env $OutFrames i8*))\n  %99 = getelementptr i8, i8* %9, i32 72\n  %100 = getelementptr i8, i8* %99, i32 48\n  %101 = bitcast i8* %100 to i8**\n  %102 = load i8*, i8** %101\n; # (== (val $OutFrames) (Ca: (env $OutFrames i8*)))\n  %103 = icmp eq i8* %98, %102\n  br label %$21\n$21:\n  %104 = phi i8* [%89, %$20], [%95, %$22] ; # Catch\n  %105 = phi i8* [%90, %$20], [%96, %$22] ; # Ca\n  %106 = phi i64 [%91, %$20], [%97, %$22] ; # Bnd\n  %107 = phi i1 [1, %$20], [%103, %$22] ; # ->\n  br i1 %107, label %$24, label %$23\n$23:\n  %108 = phi i8* [%104, %$21] ; # Catch\n  %109 = phi i8* [%105, %$21] ; # Ca\n  %110 = phi i64 [%106, %$21] ; # Bnd\n; # (popOutFiles)\n  call void @popOutFiles()\n  br label %$20\n$24:\n  %111 = phi i8* [%104, %$21] ; # Catch\n  %112 = phi i8* [%105, %$21] ; # Ca\n  %113 = phi i64 [%106, %$21] ; # Bnd\n; # (until (or (== (val $InFrames) (val $Stdin)) (== (val $InFrames) ...\n  br label %$25\n$25:\n  %114 = phi i8* [%111, %$24], [%133, %$28] ; # Catch\n  %115 = phi i8* [%112, %$24], [%134, %$28] ; # Ca\n  %116 = phi i64 [%113, %$24], [%135, %$28] ; # Bnd\n; # (or (== (val $InFrames) (val $Stdin)) (== (val $InFrames) (Ca: (e...\n; # (val $InFrames)\n  %117 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (val $Stdin)\n  %118 = load i8*, i8** @$Stdin\n; # (== (val $InFrames) (val $Stdin))\n  %119 = icmp eq i8* %117, %118\n  br i1 %119, label %$26, label %$27\n$27:\n  %120 = phi i8* [%114, %$25] ; # Catch\n  %121 = phi i8* [%115, %$25] ; # Ca\n  %122 = phi i64 [%116, %$25] ; # Bnd\n; # (val $InFrames)\n  %123 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (Ca: (env $InFrames i8*))\n  %124 = getelementptr i8, i8* %9, i32 72\n  %125 = getelementptr i8, i8* %124, i32 40\n  %126 = bitcast i8* %125 to i8**\n  %127 = load i8*, i8** %126\n; # (== (val $InFrames) (Ca: (env $InFrames i8*)))\n  %128 = icmp eq i8* %123, %127\n  br label %$26\n$26:\n  %129 = phi i8* [%114, %$25], [%120, %$27] ; # Catch\n  %130 = phi i8* [%115, %$25], [%121, %$27] ; # Ca\n  %131 = phi i64 [%116, %$25], [%122, %$27] ; # Bnd\n  %132 = phi i1 [1, %$25], [%128, %$27] ; # ->\n  br i1 %132, label %$29, label %$28\n$28:\n  %133 = phi i8* [%129, %$26] ; # Catch\n  %134 = phi i8* [%130, %$26] ; # Ca\n  %135 = phi i64 [%131, %$26] ; # Bnd\n; # (popInFiles)\n  call void @popInFiles()\n  br label %$25\n$29:\n  %136 = phi i8* [%129, %$26] ; # Catch\n  %137 = phi i8* [%130, %$26] ; # Ca\n  %138 = phi i64 [%131, %$26] ; # Bnd\n; # (let (Src (val $Current) Dst (Ca: co)) (unless Dst (setq Dst (val...\n; # (val $Current)\n  %139 = load i8*, i8** @$Current\n; # (Ca: co)\n  %140 = getelementptr i8, i8* %9, i32 24\n  %141 = bitcast i8* %140 to i8**\n  %142 = load i8*, i8** %141\n; # (unless Dst (setq Dst (val $Coroutines)))\n  %143 = icmp ne i8* %142, null\n  br i1 %143, label %$31, label %$30\n$30:\n  %144 = phi i8* [%136, %$29] ; # Catch\n  %145 = phi i8* [%137, %$29] ; # Ca\n  %146 = phi i64 [%138, %$29] ; # Bnd\n  %147 = phi i8* [%139, %$29] ; # Src\n  %148 = phi i8* [%142, %$29] ; # Dst\n; # (val $Coroutines)\n  %149 = load i8*, i8** @$Coroutines\n  br label %$31\n$31:\n  %150 = phi i8* [%136, %$29], [%144, %$30] ; # Catch\n  %151 = phi i8* [%137, %$29], [%145, %$30] ; # Ca\n  %152 = phi i64 [%138, %$29], [%146, %$30] ; # Bnd\n  %153 = phi i8* [%139, %$29], [%147, %$30] ; # Src\n  %154 = phi i8* [%142, %$29], [%149, %$30] ; # Dst\n; # (unless (== Src Dst) (stop Src) (let Crt: (coroutine (set $Curren...\n; # (== Src Dst)\n  %155 = icmp eq i8* %153, %154\n  br i1 %155, label %$33, label %$32\n$32:\n  %156 = phi i8* [%150, %$31] ; # Catch\n  %157 = phi i8* [%151, %$31] ; # Ca\n  %158 = phi i64 [%152, %$31] ; # Bnd\n  %159 = phi i8* [%153, %$31] ; # Src\n  %160 = phi i8* [%154, %$31] ; # Dst\n; # (stop Src)\n  call void @stop(i8* %159)\n; # (let Crt: (coroutine (set $Current Dst)) (set $StkLimit (ofs (Crt...\n; # (set $Current Dst)\n  store i8* %160, i8** @$Current\n; # (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n; # (Crt: lim)\n  %161 = getelementptr i8, i8* %160, i32 40\n  %162 = bitcast i8* %161 to i8**\n  %163 = load i8*, i8** %162\n; # (val $StkSize)\n  %164 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 6)\n  %165 = lshr i64 %164, 6\n; # (ofs (Crt: lim) (shr (val $StkSize) 6))\n  %166 = getelementptr i8, i8* %163, i64 %165\n  store i8* %166, i8** @$StkLimit\n; # (set $At (Crt: at))\n; # (Crt: at)\n  %167 = getelementptr i8, i8* %160, i32 48\n  %168 = ptrtoint i8* %167 to i64\n  %169 = inttoptr i64 %168 to i64*\n  %170 = load i64, i64* %169\n  %171 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %170, i64* %171\n; # (Crt: at 0)\n  %172 = getelementptr i8, i8* %160, i32 48\n  %173 = ptrtoint i8* %172 to i64\n  %174 = inttoptr i64 %173 to i64*\n  store i64 0, i64* %174\n  br label %$33\n$33:\n  %175 = phi i8* [%150, %$31], [%156, %$32] ; # Catch\n  %176 = phi i8* [%151, %$31], [%157, %$32] ; # Ca\n  %177 = phi i64 [%152, %$31], [%158, %$32] ; # Bnd\n  %178 = phi i8* [%153, %$31], [%159, %$32] ; # Src\n  %179 = phi i8* [%154, %$31], [%160, %$32] ; # Dst\n; # (Ca:)\n; # (getCaEnv (Ca:))\n  %180 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n  %181 = getelementptr i8, i8* %9, i32 72\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %180, i8* %181, i64 200, i1 0)\n  %182 = getelementptr i8, i8* %9, i32 32\n  %183 = ptrtoint i8* %182 to i64\n  %184 = inttoptr i64 %183 to i64*\n  %185 = load i64, i64* %184\n  %186 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %185, i64* %186\n  %187 = getelementptr i8, i8* %9, i32 40\n  %188 = ptrtoint i8* %187 to i64\n  %189 = inttoptr i64 %188 to i64*\n  %190 = load i64, i64* %189\n  %191 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 %190, i64* %191\n  %192 = getelementptr i8, i8* %9, i32 48\n  %193 = ptrtoint i8* %192 to i64\n  %194 = inttoptr i64 %193 to i64*\n  %195 = load i64, i64* %194\n  %196 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %197 = getelementptr i64, i64* %196, i32 1\n  store i64 %195, i64* %197\n  %198 = getelementptr i8, i8* %9, i32 56\n  %199 = ptrtoint i8* %198 to i64\n  %200 = inttoptr i64 %199 to i64*\n  %201 = load i64, i64* %200\n  %202 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  store i64 %201, i64* %202\n  %203 = getelementptr i8, i8* %9, i32 64\n  %204 = ptrtoint i8* %203 to i64\n  %205 = inttoptr i64 %204 to i64*\n  %206 = load i64, i64* %205\n  %207 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %208 = getelementptr i64, i64* %207, i32 1\n  store i64 %206, i64* %208\n; # (Ca: fin)\n  %209 = getelementptr i8, i8* %9, i32 16\n  %210 = ptrtoint i8* %209 to i64\n  %211 = inttoptr i64 %210 to i64*\n  %212 = load i64, i64* %211\n; # (eval (Ca: fin))\n  %213 = and i64 %212, 6\n  %214 = icmp ne i64 %213, 0\n  br i1 %214, label %$36, label %$35\n$36:\n  %215 = phi i64 [%212, %$33] ; # X\n  br label %$34\n$35:\n  %216 = phi i64 [%212, %$33] ; # X\n  %217 = and i64 %216, 8\n  %218 = icmp ne i64 %217, 0\n  br i1 %218, label %$38, label %$37\n$38:\n  %219 = phi i64 [%216, %$35] ; # X\n  %220 = inttoptr i64 %219 to i64*\n  %221 = load i64, i64* %220\n  br label %$34\n$37:\n  %222 = phi i64 [%216, %$35] ; # X\n  %223 = call i64 @evList(i64 %222)\n  br label %$34\n$34:\n  %224 = phi i64 [%215, %$36], [%219, %$38], [%222, %$37] ; # X\n  %225 = phi i64 [%215, %$36], [%221, %$38], [%223, %$37] ; # ->\n; # (set $Catch (Ca: link))\n; # (Ca: link)\n  %226 = bitcast i8* %9 to i8**\n  %227 = load i8*, i8** %226\n  store i8* %227, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (when (== Ca Catch) (ret))\n; # (== Ca Catch)\n  %228 = icmp eq i8* %176, %175\n  br i1 %228, label %$39, label %$40\n$39:\n  %229 = phi i8* [%175, %$34] ; # Catch\n  %230 = phi i8* [%176, %$34] ; # Ca\n  %231 = phi i64 [%177, %$34] ; # Bnd\n; # (ret)\n  ret void\n$40:\n  %232 = phi i8* [%175, %$34] ; # Catch\n  %233 = phi i8* [%176, %$34] ; # Ca\n  %234 = phi i64 [%177, %$34] ; # Bnd\n; # (Ca: link)\n  %235 = bitcast i8* %9 to i8**\n  %236 = load i8*, i8** %235\n  br label %$2\n$4:\n  %237 = phi i8* [%4, %$2] ; # Catch\n  %238 = phi i8* [%5, %$2] ; # Ca\n  %239 = phi i64 [%6, %$2] ; # Bnd\n; # (while Bnd (set (val 2 Bnd) (val Bnd)) (setq Bnd (val 3 Bnd)))\n  br label %$41\n$41:\n  %240 = phi i8* [%237, %$4], [%244, %$42] ; # Catch\n  %241 = phi i8* [%238, %$4], [%245, %$42] ; # Ca\n  %242 = phi i64 [%239, %$4], [%255, %$42] ; # Bnd\n  %243 = icmp ne i64 %242, 0\n  br i1 %243, label %$42, label %$43\n$42:\n  %244 = phi i8* [%240, %$41] ; # Catch\n  %245 = phi i8* [%241, %$41] ; # Ca\n  %246 = phi i64 [%242, %$41] ; # Bnd\n; # (set (val 2 Bnd) (val Bnd))\n; # (val 2 Bnd)\n  %247 = inttoptr i64 %246 to i64*\n  %248 = getelementptr i64, i64* %247, i32 1\n  %249 = load i64, i64* %248\n; # (val Bnd)\n  %250 = inttoptr i64 %246 to i64*\n  %251 = load i64, i64* %250\n  %252 = inttoptr i64 %249 to i64*\n  store i64 %251, i64* %252\n; # (val 3 Bnd)\n  %253 = inttoptr i64 %246 to i64*\n  %254 = getelementptr i64, i64* %253, i32 2\n  %255 = load i64, i64* %254\n  br label %$41\n$43:\n  %256 = phi i8* [%240, %$41] ; # Catch\n  %257 = phi i8* [%241, %$41] ; # Ca\n  %258 = phi i64 [%242, %$41] ; # Bnd\n; # (set $Bind 0)\n  %259 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 0, i64* %259\n; # (while (val $CtlFrames) (popCtlFiles))\n  br label %$44\n$44:\n  %260 = phi i8* [%256, %$43], [%265, %$45] ; # Catch\n  %261 = phi i8* [%257, %$43], [%266, %$45] ; # Ca\n  %262 = phi i64 [%258, %$43], [%267, %$45] ; # Bnd\n; # (val $CtlFrames)\n  %263 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  %264 = icmp ne i8* %263, null\n  br i1 %264, label %$45, label %$46\n$45:\n  %265 = phi i8* [%260, %$44] ; # Catch\n  %266 = phi i8* [%261, %$44] ; # Ca\n  %267 = phi i64 [%262, %$44] ; # Bnd\n; # (popCtlFiles)\n  call void @popCtlFiles()\n  br label %$44\n$46:\n  %268 = phi i8* [%260, %$44] ; # Catch\n  %269 = phi i8* [%261, %$44] ; # Ca\n  %270 = phi i64 [%262, %$44] ; # Bnd\n; # (while (val $ErrFrames) (popErrFiles))\n  br label %$47\n$47:\n  %271 = phi i8* [%268, %$46], [%276, %$48] ; # Catch\n  %272 = phi i8* [%269, %$46], [%277, %$48] ; # Ca\n  %273 = phi i64 [%270, %$46], [%278, %$48] ; # Bnd\n; # (val $ErrFrames)\n  %274 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  %275 = icmp ne i8* %274, null\n  br i1 %275, label %$48, label %$49\n$48:\n  %276 = phi i8* [%271, %$47] ; # Catch\n  %277 = phi i8* [%272, %$47] ; # Ca\n  %278 = phi i64 [%273, %$47] ; # Bnd\n; # (popErrFiles)\n  call void @popErrFiles()\n  br label %$47\n$49:\n  %279 = phi i8* [%271, %$47] ; # Catch\n  %280 = phi i8* [%272, %$47] ; # Ca\n  %281 = phi i64 [%273, %$47] ; # Bnd\n; # (until (== (val $OutFrames) (val $Stdout)) (popOutFiles))\n  br label %$50\n$50:\n  %282 = phi i8* [%279, %$49], [%288, %$51] ; # Catch\n  %283 = phi i8* [%280, %$49], [%289, %$51] ; # Ca\n  %284 = phi i64 [%281, %$49], [%290, %$51] ; # Bnd\n; # (val $OutFrames)\n  %285 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (val $Stdout)\n  %286 = load i8*, i8** @$Stdout\n; # (== (val $OutFrames) (val $Stdout))\n  %287 = icmp eq i8* %285, %286\n  br i1 %287, label %$52, label %$51\n$51:\n  %288 = phi i8* [%282, %$50] ; # Catch\n  %289 = phi i8* [%283, %$50] ; # Ca\n  %290 = phi i64 [%284, %$50] ; # Bnd\n; # (popOutFiles)\n  call void @popOutFiles()\n  br label %$50\n$52:\n  %291 = phi i8* [%282, %$50] ; # Catch\n  %292 = phi i8* [%283, %$50] ; # Ca\n  %293 = phi i64 [%284, %$50] ; # Bnd\n; # (until (== (val $InFrames) (val $Stdin)) (popInFiles))\n  br label %$53\n$53:\n  %294 = phi i8* [%291, %$52], [%300, %$54] ; # Catch\n  %295 = phi i8* [%292, %$52], [%301, %$54] ; # Ca\n  %296 = phi i64 [%293, %$52], [%302, %$54] ; # Bnd\n; # (val $InFrames)\n  %297 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (val $Stdin)\n  %298 = load i8*, i8** @$Stdin\n; # (== (val $InFrames) (val $Stdin))\n  %299 = icmp eq i8* %297, %298\n  br i1 %299, label %$55, label %$54\n$54:\n  %300 = phi i8* [%294, %$53] ; # Catch\n  %301 = phi i8* [%295, %$53] ; # Ca\n  %302 = phi i64 [%296, %$53] ; # Bnd\n; # (popInFiles)\n  call void @popInFiles()\n  br label %$53\n$55:\n  %303 = phi i8* [%294, %$53] ; # Catch\n  %304 = phi i8* [%295, %$53] ; # Ca\n  %305 = phi i64 [%296, %$53] ; # Bnd\n; # (let (Src (val $Current) Dst (val $Coroutines)) (unless (== Src D...\n; # (val $Current)\n  %306 = load i8*, i8** @$Current\n; # (val $Coroutines)\n  %307 = load i8*, i8** @$Coroutines\n; # (unless (== Src Dst) (stop Src) (let Crt: (coroutine (set $Curren...\n; # (== Src Dst)\n  %308 = icmp eq i8* %306, %307\n  br i1 %308, label %$57, label %$56\n$56:\n  %309 = phi i8* [%303, %$55] ; # Catch\n  %310 = phi i8* [%304, %$55] ; # Ca\n  %311 = phi i64 [%305, %$55] ; # Bnd\n  %312 = phi i8* [%306, %$55] ; # Src\n  %313 = phi i8* [%307, %$55] ; # Dst\n; # (stop Src)\n  call void @stop(i8* %312)\n; # (let Crt: (coroutine (set $Current Dst)) (set $StkLimit (ofs (Crt...\n; # (set $Current Dst)\n  store i8* %313, i8** @$Current\n; # (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n; # (Crt: lim)\n  %314 = getelementptr i8, i8* %313, i32 40\n  %315 = bitcast i8* %314 to i8**\n  %316 = load i8*, i8** %315\n; # (val $StkSize)\n  %317 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 6)\n  %318 = lshr i64 %317, 6\n; # (ofs (Crt: lim) (shr (val $StkSize) 6))\n  %319 = getelementptr i8, i8* %316, i64 %318\n  store i8* %319, i8** @$StkLimit\n; # (Crt:)\n; # (getCrtEnv (Crt:))\n  %320 = getelementptr i8, i8* %313, i32 112\n  %321 = ptrtoint i8* %320 to i64\n  %322 = inttoptr i64 %321 to i64*\n  %323 = load i64, i64* %322\n  %324 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %323, i64* %324\n  %325 = getelementptr i8, i8* %313, i32 120\n  %326 = ptrtoint i8* %325 to i64\n  %327 = inttoptr i64 %326 to i64*\n  %328 = load i64, i64* %327\n  %329 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 %328, i64* %329\n  %330 = getelementptr i8, i8* %313, i32 128\n  %331 = ptrtoint i8* %330 to i64\n  %332 = inttoptr i64 %331 to i64*\n  %333 = load i64, i64* %332\n  %334 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %335 = getelementptr i64, i64* %334, i32 1\n  store i64 %333, i64* %335\n  %336 = getelementptr i8, i8* %313, i32 136\n  %337 = ptrtoint i8* %336 to i64\n  %338 = inttoptr i64 %337 to i64*\n  %339 = load i64, i64* %338\n  %340 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  store i64 %339, i64* %340\n  %341 = getelementptr i8, i8* %313, i32 144\n  %342 = ptrtoint i8* %341 to i64\n  %343 = inttoptr i64 %342 to i64*\n  %344 = load i64, i64* %343\n  %345 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %346 = getelementptr i64, i64* %345, i32 1\n  store i64 %344, i64* %346\n; # (set $At (Crt: at))\n; # (Crt: at)\n  %347 = getelementptr i8, i8* %313, i32 48\n  %348 = ptrtoint i8* %347 to i64\n  %349 = inttoptr i64 %348 to i64*\n  %350 = load i64, i64* %349\n  %351 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %350, i64* %351\n; # (Crt: at 0)\n  %352 = getelementptr i8, i8* %313, i32 48\n  %353 = ptrtoint i8* %352 to i64\n  %354 = inttoptr i64 %353 to i64*\n  store i64 0, i64* %354\n  br label %$57\n$57:\n  %355 = phi i8* [%303, %$55], [%309, %$56] ; # Catch\n  %356 = phi i8* [%304, %$55], [%310, %$56] ; # Ca\n  %357 = phi i64 [%305, %$55], [%311, %$56] ; # Bnd\n  %358 = phi i8* [%306, %$55], [%312, %$56] ; # Src\n  %359 = phi i8* [%307, %$55], [%313, %$56] ; # Dst\n  ret void\n}\n\ndefine void @giveup(i8*) align 8 {\n$1:\n; # (stderrMsg ($ \"Give up: %s^J\") Msg)\n  %1 = call i8* @stderrMsg(i8* bitcast ([13 x i8]* @$2 to i8*), i8* %0)\n; # (setCooked)\n  call void @setCooked()\n; # (exit 1)\n  call void @exit(i32 1)\n  unreachable\n}\n\ndefine void @bye(i32) align 8 {\n$1:\n; # (unless (val $InBye) (set $InBye YES) (unwind null) (exec (val $B...\n; # (val $InBye)\n  %1 = load i1, i1* @$InBye\n  br i1 %1, label %$3, label %$2\n$2:\n  %2 = phi i32 [%0, %$1] ; # N\n; # (set $InBye YES)\n  store i1 1, i1* @$InBye\n; # (unwind null)\n  call void @unwind(i8* null)\n; # (val $Bye)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 824) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (exec (val $Bye))\n  br label %$4\n$4:\n  %5 = phi i64 [%4, %$2], [%17, %$7] ; # Prg\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n  %10 = and i64 %9, 15\n  %11 = icmp eq i64 %10, 0\n  br i1 %11, label %$5, label %$6\n$5:\n  %12 = phi i64 [%8, %$4] ; # Prg\n  %13 = call i64 @evList(i64 %9)\n  br label %$6\n$6:\n  %14 = phi i64 [%8, %$4], [%12, %$5] ; # Prg\n  %15 = and i64 %14, 15\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$8, label %$7\n$7:\n  %17 = phi i64 [%14, %$6] ; # Prg\n  br label %$4\n$8:\n  %18 = phi i64 [%14, %$6] ; # Prg\n  %19 = phi i64 [0, %$6] ; # ->\n  br label %$3\n$3:\n  %20 = phi i32 [%0, %$1], [%2, %$8] ; # N\n; # (when (nil? (val $PPid)) (flushAll))\n; # (val $PPid)\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 216) to i64) to i64*\n  %22 = load i64, i64* %21\n; # (nil? (val $PPid))\n  %23 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %23, label %$9, label %$10\n$9:\n  %24 = phi i32 [%20, %$3] ; # N\n; # (flushAll)\n  call void @flushAll()\n  br label %$10\n$10:\n  %25 = phi i32 [%20, %$3], [%24, %$9] ; # N\n; # (setCooked)\n  call void @setCooked()\n; # (exit N)\n  call void @exit(i32 %25)\n  unreachable\n}\n\ndefine void @execErr(i8*) align 8 {\n$1:\n; # (stderrMsg ($ \"%s: Can't exec^J\") Cmd)\n  %1 = call i8* @stderrMsg(i8* bitcast ([16 x i8]* @$3 to i8*), i8* %0)\n; # (exit 127)\n  call void @exit(i32 127)\n  unreachable\n}\n\ndefine i8* @alloc(i8*, i64) align 8 {\n$1:\n; # (unless (realloc Ptr Siz) (giveup ($ \"No memory\")))\n; # (realloc Ptr Siz)\n  %2 = call i8* @realloc(i8* %0, i64 %1)\n  %3 = icmp ne i8* %2, null\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i8* [%0, %$1] ; # Ptr\n  %5 = phi i64 [%1, %$1] ; # Siz\n; # (giveup ($ \"No memory\"))\n  call void @giveup(i8* bitcast ([10 x i8]* @$4 to i8*))\n  unreachable\n$3:\n  %6 = phi i8* [%0, %$1] ; # Ptr\n  %7 = phi i64 [%1, %$1] ; # Siz\n  ret i8* %2\n}\n\ndefine void @heapAlloc() align 8 {\n$1:\n; # (let (H (any (alloc null (* 8 (inc HEAP)))) P (ofs H HEAP) A (val...\n; # (inc HEAP)\n; # (* 8 (inc HEAP))\n; # (alloc null (* 8 (inc HEAP)))\n  %0 = call i8* @alloc(i8* null, i64 1048584)\n; # (any (alloc null (* 8 (inc HEAP))))\n  %1 = ptrtoint i8* %0 to i64\n; # (ofs H HEAP)\n  %2 = add i64 %1, 1048576\n; # (val $Avail)\n  %3 = load i64, i64* @$Avail\n; # (set P (val $Heaps) $Heaps H)\n; # (val $Heaps)\n  %4 = load i64, i64* @$Heaps\n  %5 = inttoptr i64 %2 to i64*\n  store i64 %4, i64* %5\n  store i64 %1, i64* @$Heaps\n; # (loop (set (setq P (ofs P -2)) A) (? (== (setq A P) H)))\n  br label %$2\n$2:\n  %6 = phi i64 [%1, %$1], [%12, %$3] ; # H\n  %7 = phi i64 [%2, %$1], [%13, %$3] ; # P\n  %8 = phi i64 [%3, %$1], [%14, %$3] ; # A\n; # (set (setq P (ofs P -2)) A)\n; # (ofs P -2)\n  %9 = add i64 %7, -16\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %8, i64* %10\n; # (? (== (setq A P) H))\n; # (== (setq A P) H)\n  %11 = icmp eq i64 %9, %6\n  br i1 %11, label %$4, label %$3\n$3:\n  %12 = phi i64 [%6, %$2] ; # H\n  %13 = phi i64 [%9, %$2] ; # P\n  %14 = phi i64 [%9, %$2] ; # A\n  br label %$2\n$4:\n  %15 = phi i64 [%6, %$2] ; # H\n  %16 = phi i64 [%9, %$2] ; # P\n  %17 = phi i64 [%9, %$2] ; # A\n  %18 = phi i64 [0, %$2] ; # ->\n; # (set $Avail A)\n  store i64 %17, i64* @$Avail\n  ret void\n}\n\ndefine void @sig(i32) align 8 {\n$1:\n; # (if (val $TtyPid) (kill @ N) (set $Signal (+ (val $Signal) 1)) (l...\n; # (val $TtyPid)\n  %1 = load i32, i32* @$TtyPid\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # N\n; # (kill @ N)\n  %4 = call i32 @kill(i32 %1, i32 %3)\n  br label %$4\n$3:\n  %5 = phi i32 [%0, %$1] ; # N\n; # (set $Signal (+ (val $Signal) 1))\n; # (val $Signal)\n  %6 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (+ (val $Signal) 1)\n  %7 = add i32 %6, 1\n  store i32 %7, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (let P (ofs $Signal (gSignal N)) (set P (+ (val P) 1)))\n; # (gSignal N)\n  %8 = call i32 @gSignal(i32 %5)\n; # (ofs $Signal (gSignal N))\n  %9 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 %8\n; # (set P (+ (val P) 1))\n; # (val P)\n  %10 = load i32, i32* %9\n; # (+ (val P) 1)\n  %11 = add i32 %10, 1\n  store i32 %11, i32* %9\n  br label %$4\n$4:\n  %12 = phi i32 [%3, %$2], [%5, %$3] ; # N\n  %13 = phi i32 [%4, %$2], [%11, %$3] ; # ->\n  ret void\n}\n\ndefine void @sigTerm(i32) align 8 {\n$1:\n; # (if (val $TtyPid) (kill @ N) (set $Signal (+ (val $Signal) 1)) (l...\n; # (val $TtyPid)\n  %1 = load i32, i32* @$TtyPid\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # N\n; # (kill @ N)\n  %4 = call i32 @kill(i32 %1, i32 %3)\n  br label %$4\n$3:\n  %5 = phi i32 [%0, %$1] ; # N\n; # (set $Signal (+ (val $Signal) 1))\n; # (val $Signal)\n  %6 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (+ (val $Signal) 1)\n  %7 = add i32 %6, 1\n  store i32 %7, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (let P (ofs $Signal (gSignal (val SIGTERM Sig))) (set P (+ (val P...\n; # (val SIGTERM Sig)\n  %8 = getelementptr i32, i32* @Sig, i32 6\n  %9 = load i32, i32* %8\n; # (gSignal (val SIGTERM Sig))\n  %10 = call i32 @gSignal(i32 %9)\n; # (ofs $Signal (gSignal (val SIGTERM Sig)))\n  %11 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 %10\n; # (set P (+ (val P) 1))\n; # (val P)\n  %12 = load i32, i32* %11\n; # (+ (val P) 1)\n  %13 = add i32 %12, 1\n  store i32 %13, i32* %11\n  br label %$4\n$4:\n  %14 = phi i32 [%3, %$2], [%5, %$3] ; # N\n  %15 = phi i32 [%4, %$2], [%13, %$3] ; # ->\n  ret void\n}\n\ndefine void @sighandler(i64) align 8 {\n$1:\n; # (unless (val $Protect) (set $Protect 1) (let P T (loop (cond ((va...\n; # (val $Protect)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$3, label %$2\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (set $Protect 1)\n  store i32 1, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (let P T (loop (cond ((val (setq P (ofs $Signal SIGIO))) (set P (...\n; # (loop (cond ((val (setq P (ofs $Signal SIGIO))) (set P (dec @)) (...\n  br label %$4\n$4:\n  %4 = phi i64 [%3, %$2], [%242, %$52] ; # Exe\n; # (cond ((val (setq P (ofs $Signal SIGIO))) (set P (dec @)) (set $S...\n; # (ofs $Signal SIGIO)\n  %5 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 15\n; # (val (setq P (ofs $Signal SIGIO)))\n  %6 = load i32, i32* %5\n  %7 = icmp ne i32 %6, 0\n  br i1 %7, label %$7, label %$6\n$7:\n  %8 = phi i64 [%4, %$4] ; # Exe\n  %9 = phi i32* [%5, %$4] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %10 = sub i32 %6, 1\n  store i32 %10, i32* %9\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %11 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %12 = sub i32 %11, 1\n  store i32 %12, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Sigio)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 32) to i64) to i64*\n  %14 = load i64, i64* %13\n; # (execAt (val $Sigio))\n  %15 = call i64 @execAt(i64 %14)\n  br label %$5\n$6:\n  %16 = phi i64 [%4, %$4] ; # Exe\n  %17 = phi i32* [%5, %$4] ; # P\n; # (ofs $Signal SIGUSR1)\n  %18 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 3\n; # (val (setq P (ofs $Signal SIGUSR1)))\n  %19 = load i32, i32* %18\n  %20 = icmp ne i32 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%16, %$6] ; # Exe\n  %22 = phi i32* [%18, %$6] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %23 = sub i32 %19, 1\n  store i32 %23, i32* %22\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %24 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %25 = sub i32 %24, 1\n  store i32 %25, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Sig1)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 648) to i64) to i64*\n  %27 = load i64, i64* %26\n; # (execAt (val $Sig1))\n  %28 = call i64 @execAt(i64 %27)\n  br label %$5\n$8:\n  %29 = phi i64 [%16, %$6] ; # Exe\n  %30 = phi i32* [%18, %$6] ; # P\n; # (ofs $Signal SIGUSR2)\n  %31 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 4\n; # (val (setq P (ofs $Signal SIGUSR2)))\n  %32 = load i32, i32* %31\n  %33 = icmp ne i32 %32, 0\n  br i1 %33, label %$11, label %$10\n$11:\n  %34 = phi i64 [%29, %$8] ; # Exe\n  %35 = phi i32* [%31, %$8] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %36 = sub i32 %32, 1\n  store i32 %36, i32* %35\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %37 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %38 = sub i32 %37, 1\n  store i32 %38, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Sig2)\n  %39 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 664) to i64) to i64*\n  %40 = load i64, i64* %39\n; # (execAt (val $Sig2))\n  %41 = call i64 @execAt(i64 %40)\n  br label %$5\n$10:\n  %42 = phi i64 [%29, %$8] ; # Exe\n  %43 = phi i32* [%31, %$8] ; # P\n; # (ofs $Signal SIGALRM)\n  %44 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 6\n; # (val (setq P (ofs $Signal SIGALRM)))\n  %45 = load i32, i32* %44\n  %46 = icmp ne i32 %45, 0\n  br i1 %46, label %$13, label %$12\n$13:\n  %47 = phi i64 [%42, %$10] ; # Exe\n  %48 = phi i32* [%44, %$10] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %49 = sub i32 %45, 1\n  store i32 %49, i32* %48\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %50 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %51 = sub i32 %50, 1\n  store i32 %51, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Alarm)\n  %52 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 24) to i64) to i64*\n  %53 = load i64, i64* %52\n; # (execAt (val $Alarm))\n  %54 = call i64 @execAt(i64 %53)\n  br label %$5\n$12:\n  %55 = phi i64 [%42, %$10] ; # Exe\n  %56 = phi i32* [%44, %$10] ; # P\n; # (ofs $Signal SIGHUP)\n  %57 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 1\n; # (val (setq P (ofs $Signal SIGHUP)))\n  %58 = load i32, i32* %57\n  %59 = icmp ne i32 %58, 0\n  br i1 %59, label %$15, label %$14\n$15:\n  %60 = phi i64 [%55, %$12] ; # Exe\n  %61 = phi i32* [%57, %$12] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %62 = sub i32 %58, 1\n  store i32 %62, i32* %61\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %63 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %64 = sub i32 %63, 1\n  store i32 %64, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Hup)\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 632) to i64) to i64*\n  %66 = load i64, i64* %65\n; # (execAt (val $Hup))\n  %67 = call i64 @execAt(i64 %66)\n  br label %$5\n$14:\n  %68 = phi i64 [%55, %$12] ; # Exe\n  %69 = phi i32* [%57, %$12] ; # P\n; # (ofs $Signal SIGINT)\n  %70 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 2\n; # (val (setq P (ofs $Signal SIGINT)))\n  %71 = load i32, i32* %70\n  %72 = icmp ne i32 %71, 0\n  br i1 %72, label %$17, label %$16\n$17:\n  %73 = phi i64 [%68, %$14] ; # Exe\n  %74 = phi i32* [%70, %$14] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %75 = sub i32 %71, 1\n  store i32 %75, i32* %74\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %76 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %77 = sub i32 %76, 1\n  store i32 %77, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (unless (val $PRepl) (wrnl) (rlSigBeg) (brkLoad (if Exe @ $Nil)) ...\n; # (val $PRepl)\n  %78 = load i1, i1* @$PRepl\n  br i1 %78, label %$19, label %$18\n$18:\n  %79 = phi i64 [%73, %$17] ; # Exe\n  %80 = phi i32* [%74, %$17] ; # P\n; # (wrnl)\n  %81 = call i64 @wrnl()\n; # (rlSigBeg)\n  call void @rlSigBeg()\n; # (if Exe @ $Nil)\n  %82 = icmp ne i64 %79, 0\n  br i1 %82, label %$20, label %$21\n$20:\n  %83 = phi i64 [%79, %$18] ; # Exe\n  %84 = phi i32* [%80, %$18] ; # P\n  br label %$22\n$21:\n  %85 = phi i64 [%79, %$18] ; # Exe\n  %86 = phi i32* [%80, %$18] ; # P\n  br label %$22\n$22:\n  %87 = phi i64 [%83, %$20], [%85, %$21] ; # Exe\n  %88 = phi i32* [%84, %$20], [%86, %$21] ; # P\n  %89 = phi i64 [%79, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (brkLoad (if Exe @ $Nil))\n  %90 = call i64 @brkLoad(i64 %89)\n; # (rlSigEnd)\n  call void @rlSigEnd()\n  br label %$19\n$19:\n  %91 = phi i64 [%73, %$17], [%87, %$22] ; # Exe\n  %92 = phi i32* [%74, %$17], [%88, %$22] ; # P\n  br label %$5\n$16:\n  %93 = phi i64 [%68, %$14] ; # Exe\n  %94 = phi i32* [%70, %$14] ; # P\n; # (ofs $Signal SIGWINCH)\n  %95 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 14\n; # (val (setq P (ofs $Signal SIGWINCH)))\n  %96 = load i32, i32* %95\n  %97 = icmp ne i32 %96, 0\n  br i1 %97, label %$24, label %$23\n$24:\n  %98 = phi i64 [%93, %$16] ; # Exe\n  %99 = phi i32* [%95, %$16] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %100 = sub i32 %96, 1\n  store i32 %100, i32* %99\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %101 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %102 = sub i32 %101, 1\n  store i32 %102, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (val $Winch)\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 680) to i64) to i64*\n  %104 = load i64, i64* %103\n; # (execAt (val $Winch))\n  %105 = call i64 @execAt(i64 %104)\n  br label %$5\n$23:\n  %106 = phi i64 [%93, %$16] ; # Exe\n  %107 = phi i32* [%95, %$16] ; # P\n; # (ofs $Signal SIGTSTP)\n  %108 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 11\n; # (val (setq P (ofs $Signal SIGTSTP)))\n  %109 = load i32, i32* %108\n  %110 = icmp ne i32 %109, 0\n  br i1 %110, label %$26, label %$25\n$26:\n  %111 = phi i64 [%106, %$23] ; # Exe\n  %112 = phi i32* [%108, %$23] ; # P\n; # (set P (dec @))\n; # (dec @)\n  %113 = sub i32 %109, 1\n  store i32 %113, i32* %112\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %114 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %115 = sub i32 %114, 1\n  store i32 %115, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (rlSigBeg)\n  call void @rlSigBeg()\n; # (val $TStp1)\n  %116 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 696) to i64) to i64*\n  %117 = load i64, i64* %116\n; # (execAt (val $TStp1))\n  %118 = call i64 @execAt(i64 %117)\n; # (stopTerm)\n  call void @stopTerm()\n; # (val SIGTSTP Sig)\n  %119 = getelementptr i32, i32* @Sig, i32 10\n  %120 = load i32, i32* %119\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car Args)) (func (; Args 1 cross~s...\n  %121 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGTSTP Sig) (fun sig))\n  call void @iSignal(i32 %120, i8* %121)\n; # (val $TStp2)\n  %122 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 712) to i64) to i64*\n  %123 = load i64, i64* %122\n; # (execAt (val $TStp2))\n  %124 = call i64 @execAt(i64 %123)\n; # (rlSigEnd)\n  call void @rlSigEnd()\n  br label %$5\n$25:\n  %125 = phi i64 [%106, %$23] ; # Exe\n  %126 = phi i32* [%108, %$23] ; # P\n; # (ofs $Signal SIGTERM)\n  %127 = getelementptr i32, i32* bitcast ([16 x i32]* @$Signal to i32*), i32 7\n; # (val (setq P (ofs $Signal SIGTERM)))\n  %128 = load i32, i32* %127\n  %129 = icmp ne i32 %128, 0\n  br i1 %129, label %$28, label %$27\n$28:\n  %130 = phi i64 [%125, %$25] ; # Exe\n  %131 = phi i32* [%127, %$25] ; # P\n; # (if (nil? (run (val $Term))) (let (Cld (val $Child) <Cld (ofs Cld...\n; # (val $Term)\n  %132 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 728) to i64) to i64*\n  %133 = load i64, i64* %132\n; # (run (val $Term))\n  br label %$29\n$29:\n  %134 = phi i64 [%133, %$28], [%164, %$38] ; # Prg\n  %135 = inttoptr i64 %134 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n  %138 = load i64, i64* %135\n  %139 = and i64 %137, 15\n  %140 = icmp ne i64 %139, 0\n  br i1 %140, label %$32, label %$30\n$32:\n  %141 = phi i64 [%137, %$29] ; # Prg\n  %142 = phi i64 [%138, %$29] ; # X\n  %143 = and i64 %142, 6\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$35, label %$34\n$35:\n  %145 = phi i64 [%142, %$32] ; # X\n  br label %$33\n$34:\n  %146 = phi i64 [%142, %$32] ; # X\n  %147 = and i64 %146, 8\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$37, label %$36\n$37:\n  %149 = phi i64 [%146, %$34] ; # X\n  %150 = inttoptr i64 %149 to i64*\n  %151 = load i64, i64* %150\n  br label %$33\n$36:\n  %152 = phi i64 [%146, %$34] ; # X\n  %153 = call i64 @evList(i64 %152)\n  br label %$33\n$33:\n  %154 = phi i64 [%145, %$35], [%149, %$37], [%152, %$36] ; # X\n  %155 = phi i64 [%145, %$35], [%151, %$37], [%153, %$36] ; # ->\n  br label %$31\n$30:\n  %156 = phi i64 [%137, %$29] ; # Prg\n  %157 = phi i64 [%138, %$29] ; # X\n  %158 = and i64 %157, 15\n  %159 = icmp eq i64 %158, 0\n  br i1 %159, label %$39, label %$38\n$39:\n  %160 = phi i64 [%156, %$30] ; # Prg\n  %161 = phi i64 [%157, %$30] ; # X\n  %162 = call i64 @evList(i64 %161)\n  %163 = icmp ne i64 %162, 0\n  br label %$38\n$38:\n  %164 = phi i64 [%156, %$30], [%160, %$39] ; # Prg\n  %165 = phi i64 [%157, %$30], [%161, %$39] ; # X\n  %166 = phi i1 [0, %$30], [%163, %$39] ; # ->\n  br label %$29\n$31:\n  %167 = phi i64 [%141, %$33] ; # Prg\n  %168 = phi i64 [%155, %$33] ; # ->\n; # (nil? (run (val $Term)))\n  %169 = icmp eq i64 %168, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %169, label %$40, label %$41\n$40:\n  %170 = phi i64 [%130, %$31] ; # Exe\n  %171 = phi i32* [%131, %$31] ; # P\n; # (let (Cld (val $Child) <Cld (ofs Cld (* (val $Children) (child T)...\n; # (val $Child)\n  %172 = load i8*, i8** @$Child\n; # (val $Children)\n  %173 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %174 = mul i32 %173, 32\n; # (ofs Cld (* (val $Children) (child T)))\n  %175 = getelementptr i8, i8* %172, i32 %174\n; # (until (== Cld <Cld) (let Cld: (child Cld) (when (and (Cld: pid) ...\n  br label %$43\n$43:\n  %176 = phi i64 [%170, %$40], [%211, %$49] ; # Exe\n  %177 = phi i32* [%171, %$40], [%212, %$49] ; # P\n  %178 = phi i8* [%172, %$40], [%216, %$49] ; # Cld\n  %179 = phi i8* [%175, %$40], [%214, %$49] ; # <Cld\n  %180 = phi i1 [0, %$40], [%215, %$49] ; # Flg\n; # (== Cld <Cld)\n  %181 = icmp eq i8* %178, %179\n  br i1 %181, label %$45, label %$44\n$44:\n  %182 = phi i64 [%176, %$43] ; # Exe\n  %183 = phi i32* [%177, %$43] ; # P\n  %184 = phi i8* [%178, %$43] ; # Cld\n  %185 = phi i8* [%179, %$43] ; # <Cld\n  %186 = phi i1 [%180, %$43] ; # Flg\n; # (let Cld: (child Cld) (when (and (Cld: pid) (=0 (kill @ (val SIGT...\n; # (when (and (Cld: pid) (=0 (kill @ (val SIGTERM Sig)))) (setq Flg ...\n; # (and (Cld: pid) (=0 (kill @ (val SIGTERM Sig))))\n; # (Cld: pid)\n  %187 = getelementptr i8, i8* %184, i32 16\n  %188 = bitcast i8* %187 to i32*\n  %189 = load i32, i32* %188\n  %190 = icmp ne i32 %189, 0\n  br i1 %190, label %$47, label %$46\n$47:\n  %191 = phi i64 [%182, %$44] ; # Exe\n  %192 = phi i32* [%183, %$44] ; # P\n  %193 = phi i8* [%184, %$44] ; # Cld\n  %194 = phi i8* [%185, %$44] ; # <Cld\n  %195 = phi i1 [%186, %$44] ; # Flg\n; # (val SIGTERM Sig)\n  %196 = getelementptr i32, i32* @Sig, i32 6\n  %197 = load i32, i32* %196\n; # (kill @ (val SIGTERM Sig))\n  %198 = call i32 @kill(i32 %189, i32 %197)\n; # (=0 (kill @ (val SIGTERM Sig)))\n  %199 = icmp eq i32 %198, 0\n  br label %$46\n$46:\n  %200 = phi i64 [%182, %$44], [%191, %$47] ; # Exe\n  %201 = phi i32* [%183, %$44], [%192, %$47] ; # P\n  %202 = phi i8* [%184, %$44], [%193, %$47] ; # Cld\n  %203 = phi i8* [%185, %$44], [%194, %$47] ; # <Cld\n  %204 = phi i1 [%186, %$44], [%195, %$47] ; # Flg\n  %205 = phi i1 [0, %$44], [%199, %$47] ; # ->\n  br i1 %205, label %$48, label %$49\n$48:\n  %206 = phi i64 [%200, %$46] ; # Exe\n  %207 = phi i32* [%201, %$46] ; # P\n  %208 = phi i8* [%202, %$46] ; # Cld\n  %209 = phi i8* [%203, %$46] ; # <Cld\n  %210 = phi i1 [%204, %$46] ; # Flg\n  br label %$49\n$49:\n  %211 = phi i64 [%200, %$46], [%206, %$48] ; # Exe\n  %212 = phi i32* [%201, %$46], [%207, %$48] ; # P\n  %213 = phi i8* [%202, %$46], [%208, %$48] ; # Cld\n  %214 = phi i8* [%203, %$46], [%209, %$48] ; # <Cld\n  %215 = phi i1 [%204, %$46], [1, %$48] ; # Flg\n; # (ofs Cld (child T))\n  %216 = getelementptr i8, i8* %213, i32 32\n  br label %$43\n$45:\n  %217 = phi i64 [%176, %$43] ; # Exe\n  %218 = phi i32* [%177, %$43] ; # P\n  %219 = phi i8* [%178, %$43] ; # Cld\n  %220 = phi i8* [%179, %$43] ; # <Cld\n  %221 = phi i1 [%180, %$43] ; # Flg\n; # (? Flg)\n  br i1 %221, label %$51, label %$50\n$50:\n  %222 = phi i64 [%217, %$45] ; # Exe\n  %223 = phi i32* [%218, %$45] ; # P\n  %224 = phi i8* [%219, %$45] ; # Cld\n  %225 = phi i8* [%220, %$45] ; # <Cld\n  %226 = phi i1 [%221, %$45] ; # Flg\n; # (set $Signal 0)\n  store i32 0, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (rlSigBeg)\n  call void @rlSigBeg()\n; # (bye 0)\n  call void @bye(i32 0)\n  unreachable\n$41:\n  %227 = phi i64 [%130, %$31] ; # Exe\n  %228 = phi i32* [%131, %$31] ; # P\n; # (set P (dec (val P)))\n; # (val P)\n  %229 = load i32, i32* %228\n; # (dec (val P))\n  %230 = sub i32 %229, 1\n  store i32 %230, i32* %228\n; # (set $Signal (dec (val $Signal)))\n; # (val $Signal)\n  %231 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (dec (val $Signal))\n  %232 = sub i32 %231, 1\n  store i32 %232, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  br label %$42\n$42:\n  %233 = phi i64 [%227, %$41] ; # Exe\n  %234 = phi i32* [%228, %$41] ; # P\n  %235 = phi i32 [%232, %$41] ; # ->\n  br label %$5\n$27:\n  %236 = phi i64 [%125, %$25] ; # Exe\n  %237 = phi i32* [%127, %$25] ; # P\n  br label %$5\n$5:\n  %238 = phi i64 [%8, %$7], [%21, %$9], [%34, %$11], [%47, %$13], [%60, %$15], [%91, %$19], [%98, %$24], [%111, %$26], [%233, %$42], [%236, %$27] ; # Exe\n  %239 = phi i32* [%9, %$7], [%22, %$9], [%35, %$11], [%48, %$13], [%61, %$15], [%92, %$19], [%99, %$24], [%112, %$26], [%234, %$42], [%237, %$27] ; # P\n; # (? (=0 (val $Signal)))\n; # (val $Signal)\n  %240 = load i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n; # (=0 (val $Signal))\n  %241 = icmp eq i32 %240, 0\n  br i1 %241, label %$51, label %$52\n$52:\n  %242 = phi i64 [%238, %$5] ; # Exe\n  %243 = phi i32* [%239, %$5] ; # P\n  br label %$4\n$51:\n  %244 = phi i64 [%217, %$45], [%238, %$5] ; # Exe\n  %245 = phi i32* [%218, %$45], [%239, %$5] ; # P\n  %246 = phi i64 [0, %$45], [0, %$5] ; # ->\n; # (set $Protect 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  br label %$3\n$3:\n  %247 = phi i64 [%0, %$1], [%244, %$51] ; # Exe\n  ret void\n}\n\ndefine void @err(i64, i64, i8*, i8*) align 8 {\n$1:\n; # (set $Up (if Exe @ $Nil))\n; # (if Exe @ $Nil)\n  %4 = icmp ne i64 %0, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  %6 = phi i64 [%1, %$1] ; # X\n  %7 = phi i8* [%2, %$1] ; # Fmt\n  %8 = phi i8* [%3, %$1] ; # Arg\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%1, %$1] ; # X\n  %11 = phi i8* [%2, %$1] ; # Fmt\n  %12 = phi i8* [%3, %$1] ; # Arg\n  br label %$4\n$4:\n  %13 = phi i64 [%5, %$2], [%9, %$3] ; # Exe\n  %14 = phi i64 [%6, %$2], [%10, %$3] ; # X\n  %15 = phi i8* [%7, %$2], [%11, %$3] ; # Fmt\n  %16 = phi i8* [%8, %$2], [%12, %$3] ; # Arg\n  %17 = phi i64 [%0, %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  store i64 %17, i64* %18\n; # (when X (link (push X NIL)))\n  %19 = icmp ne i64 %14, 0\n  br i1 %19, label %$5, label %$6\n$5:\n  %20 = phi i64 [%13, %$4] ; # Exe\n  %21 = phi i64 [%14, %$4] ; # X\n  %22 = phi i8* [%15, %$4] ; # Fmt\n  %23 = phi i8* [%16, %$4] ; # Arg\n; # (push X NIL)\n  %24 = alloca i64, i64 2, align 16\n  %25 = ptrtoint i64* %24 to i64\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n; # (link (push X NIL))\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %28 = load i64, i64* %27\n  %29 = inttoptr i64 %25 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  store i64 %28, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %25, i64* %31\n  br label %$6\n$6:\n  %32 = phi i64 [%13, %$4], [%20, %$5] ; # Exe\n  %33 = phi i64 [%14, %$4], [%21, %$5] ; # X\n  %34 = phi i8* [%15, %$4], [%22, %$5] ; # Fmt\n  %35 = phi i8* [%16, %$4], [%23, %$5] ; # Arg\n; # (let Msg (b8 240) (gPrintf Msg 240 Fmt Arg) (when (val Msg) (set ...\n; # (b8 240)\n  %36 = alloca i8, i64 240\n; # (gPrintf Msg 240 Fmt Arg)\n  call void @gPrintf(i8* %36, i32 240, i8* %34, i8* %35)\n; # (when (val Msg) (set $Msg (mkStr Msg)) (let Ca (val $Catch) (whil...\n; # (val Msg)\n  %37 = load i8, i8* %36\n  %38 = icmp ne i8 %37, 0\n  br i1 %38, label %$7, label %$8\n$7:\n  %39 = phi i64 [%32, %$6] ; # Exe\n  %40 = phi i64 [%33, %$6] ; # X\n  %41 = phi i8* [%34, %$6] ; # Fmt\n  %42 = phi i8* [%35, %$6] ; # Arg\n  %43 = phi i8* [%36, %$6] ; # Msg\n; # (set $Msg (mkStr Msg))\n; # (mkStr Msg)\n  %44 = call i64 @mkStr(i8* %43)\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 776) to i64) to i64*\n  store i64 %44, i64* %45\n; # (let Ca (val $Catch) (while Ca (let Ca: (caFrame Ca) (let Tag (Ca...\n; # (val $Catch)\n  %46 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (while Ca (let Ca: (caFrame Ca) (let Tag (Ca: tag) (when Tag (whi...\n  br label %$9\n$9:\n  %47 = phi i64 [%39, %$7], [%193, %$13] ; # Exe\n  %48 = phi i64 [%40, %$7], [%194, %$13] ; # X\n  %49 = phi i8* [%41, %$7], [%195, %$13] ; # Fmt\n  %50 = phi i8* [%42, %$7], [%196, %$13] ; # Arg\n  %51 = phi i8* [%43, %$7], [%197, %$13] ; # Msg\n  %52 = phi i8* [%46, %$7], [%201, %$13] ; # Ca\n  %53 = icmp ne i8* %52, null\n  br i1 %53, label %$10, label %$11\n$10:\n  %54 = phi i64 [%47, %$9] ; # Exe\n  %55 = phi i64 [%48, %$9] ; # X\n  %56 = phi i8* [%49, %$9] ; # Fmt\n  %57 = phi i8* [%50, %$9] ; # Arg\n  %58 = phi i8* [%51, %$9] ; # Msg\n  %59 = phi i8* [%52, %$9] ; # Ca\n; # (let Ca: (caFrame Ca) (let Tag (Ca: tag) (when Tag (while (pair T...\n; # (let Tag (Ca: tag) (when Tag (while (pair Tag) (when (ge0 (subStr...\n; # (Ca: tag)\n  %60 = getelementptr i8, i8* %59, i32 8\n  %61 = ptrtoint i8* %60 to i64\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (when Tag (while (pair Tag) (when (ge0 (subStr (car Tag) (val $Ms...\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$12, label %$13\n$12:\n  %65 = phi i64 [%54, %$10] ; # Exe\n  %66 = phi i64 [%55, %$10] ; # X\n  %67 = phi i8* [%56, %$10] ; # Fmt\n  %68 = phi i8* [%57, %$10] ; # Arg\n  %69 = phi i8* [%58, %$10] ; # Msg\n  %70 = phi i8* [%59, %$10] ; # Ca\n  %71 = phi i64 [%63, %$10] ; # Tag\n; # (while (pair Tag) (when (ge0 (subStr (car Tag) (val $Msg) 1)) (un...\n  br label %$14\n$14:\n  %72 = phi i64 [%65, %$12], [%176, %$18] ; # Exe\n  %73 = phi i64 [%66, %$12], [%177, %$18] ; # X\n  %74 = phi i8* [%67, %$12], [%178, %$18] ; # Fmt\n  %75 = phi i8* [%68, %$12], [%179, %$18] ; # Arg\n  %76 = phi i8* [%69, %$12], [%180, %$18] ; # Msg\n  %77 = phi i8* [%70, %$12], [%181, %$18] ; # Ca\n  %78 = phi i64 [%71, %$12], [%185, %$18] ; # Tag\n; # (pair Tag)\n  %79 = and i64 %78, 15\n  %80 = icmp eq i64 %79, 0\n  br i1 %80, label %$15, label %$16\n$15:\n  %81 = phi i64 [%72, %$14] ; # Exe\n  %82 = phi i64 [%73, %$14] ; # X\n  %83 = phi i8* [%74, %$14] ; # Fmt\n  %84 = phi i8* [%75, %$14] ; # Arg\n  %85 = phi i8* [%76, %$14] ; # Msg\n  %86 = phi i8* [%77, %$14] ; # Ca\n  %87 = phi i64 [%78, %$14] ; # Tag\n; # (when (ge0 (subStr (car Tag) (val $Msg) 1)) (unless (val $StkLimi...\n; # (car Tag)\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n; # (val $Msg)\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 776) to i64) to i64*\n  %91 = load i64, i64* %90\n; # (subStr (car Tag) (val $Msg) 1)\n  %92 = call i64 @subStr(i64 %89, i64 %91, i64 1)\n; # (ge0 (subStr (car Tag) (val $Msg) 1))\n  %93 = icmp sge i64 %92, 0\n  br i1 %93, label %$17, label %$18\n$17:\n  %94 = phi i64 [%81, %$15] ; # Exe\n  %95 = phi i64 [%82, %$15] ; # X\n  %96 = phi i8* [%83, %$15] ; # Fmt\n  %97 = phi i8* [%84, %$15] ; # Arg\n  %98 = phi i8* [%85, %$15] ; # Msg\n  %99 = phi i8* [%86, %$15] ; # Ca\n  %100 = phi i64 [%87, %$15] ; # Tag\n; # (unless (val $StkLimit) (set $StkLimit (if (val $Current) (ofs ((...\n; # (val $StkLimit)\n  %101 = load i8*, i8** @$StkLimit\n  %102 = icmp ne i8* %101, null\n  br i1 %102, label %$20, label %$19\n$19:\n  %103 = phi i64 [%94, %$17] ; # Exe\n  %104 = phi i64 [%95, %$17] ; # X\n  %105 = phi i8* [%96, %$17] ; # Fmt\n  %106 = phi i8* [%97, %$17] ; # Arg\n  %107 = phi i8* [%98, %$17] ; # Msg\n  %108 = phi i8* [%99, %$17] ; # Ca\n  %109 = phi i64 [%100, %$17] ; # Tag\n; # (set $StkLimit (if (val $Current) (ofs ((coroutine @) lim) (shr (...\n; # (if (val $Current) (ofs ((coroutine @) lim) (shr (val $StkSize) 6...\n; # (val $Current)\n  %110 = load i8*, i8** @$Current\n  %111 = icmp ne i8* %110, null\n  br i1 %111, label %$21, label %$22\n$21:\n  %112 = phi i64 [%103, %$19] ; # Exe\n  %113 = phi i64 [%104, %$19] ; # X\n  %114 = phi i8* [%105, %$19] ; # Fmt\n  %115 = phi i8* [%106, %$19] ; # Arg\n  %116 = phi i8* [%107, %$19] ; # Msg\n  %117 = phi i8* [%108, %$19] ; # Ca\n  %118 = phi i64 [%109, %$19] ; # Tag\n; # ((coroutine @) lim)\n  %119 = getelementptr i8, i8* %110, i32 40\n  %120 = bitcast i8* %119 to i8**\n  %121 = load i8*, i8** %120\n; # (val $StkSize)\n  %122 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 6)\n  %123 = lshr i64 %122, 6\n; # (ofs ((coroutine @) lim) (shr (val $StkSize) 6))\n  %124 = getelementptr i8, i8* %121, i64 %123\n  br label %$23\n$22:\n  %125 = phi i64 [%103, %$19] ; # Exe\n  %126 = phi i64 [%104, %$19] ; # X\n  %127 = phi i8* [%105, %$19] ; # Fmt\n  %128 = phi i8* [%106, %$19] ; # Arg\n  %129 = phi i8* [%107, %$19] ; # Msg\n  %130 = phi i8* [%108, %$19] ; # Ca\n  %131 = phi i64 [%109, %$19] ; # Tag\n; # (val $SysStkLimit)\n  %132 = load i8*, i8** @$SysStkLimit\n  br label %$23\n$23:\n  %133 = phi i64 [%112, %$21], [%125, %$22] ; # Exe\n  %134 = phi i64 [%113, %$21], [%126, %$22] ; # X\n  %135 = phi i8* [%114, %$21], [%127, %$22] ; # Fmt\n  %136 = phi i8* [%115, %$21], [%128, %$22] ; # Arg\n  %137 = phi i8* [%116, %$21], [%129, %$22] ; # Msg\n  %138 = phi i8* [%117, %$21], [%130, %$22] ; # Ca\n  %139 = phi i64 [%118, %$21], [%131, %$22] ; # Tag\n  %140 = phi i8* [%124, %$21], [%132, %$22] ; # ->\n  store i8* %140, i8** @$StkLimit\n  br label %$20\n$20:\n  %141 = phi i64 [%94, %$17], [%133, %$23] ; # Exe\n  %142 = phi i64 [%95, %$17], [%134, %$23] ; # X\n  %143 = phi i8* [%96, %$17], [%135, %$23] ; # Fmt\n  %144 = phi i8* [%97, %$17], [%136, %$23] ; # Arg\n  %145 = phi i8* [%98, %$17], [%137, %$23] ; # Msg\n  %146 = phi i8* [%99, %$17], [%138, %$23] ; # Ca\n  %147 = phi i64 [%100, %$17], [%139, %$23] ; # Tag\n; # (Ca:)\n; # (unwind (Ca:))\n  call void @unwind(i8* %59)\n; # (set $Ret (if (nil? (car Tag)) (val $Msg) @))\n; # (if (nil? (car Tag)) (val $Msg) @)\n; # (car Tag)\n  %148 = inttoptr i64 %147 to i64*\n  %149 = load i64, i64* %148\n; # (nil? (car Tag))\n  %150 = icmp eq i64 %149, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %150, label %$24, label %$25\n$24:\n  %151 = phi i64 [%141, %$20] ; # Exe\n  %152 = phi i64 [%142, %$20] ; # X\n  %153 = phi i8* [%143, %$20] ; # Fmt\n  %154 = phi i8* [%144, %$20] ; # Arg\n  %155 = phi i8* [%145, %$20] ; # Msg\n  %156 = phi i8* [%146, %$20] ; # Ca\n  %157 = phi i64 [%147, %$20] ; # Tag\n; # (val $Msg)\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 776) to i64) to i64*\n  %159 = load i64, i64* %158\n  br label %$26\n$25:\n  %160 = phi i64 [%141, %$20] ; # Exe\n  %161 = phi i64 [%142, %$20] ; # X\n  %162 = phi i8* [%143, %$20] ; # Fmt\n  %163 = phi i8* [%144, %$20] ; # Arg\n  %164 = phi i8* [%145, %$20] ; # Msg\n  %165 = phi i8* [%146, %$20] ; # Ca\n  %166 = phi i64 [%147, %$20] ; # Tag\n  br label %$26\n$26:\n  %167 = phi i64 [%151, %$24], [%160, %$25] ; # Exe\n  %168 = phi i64 [%152, %$24], [%161, %$25] ; # X\n  %169 = phi i8* [%153, %$24], [%162, %$25] ; # Fmt\n  %170 = phi i8* [%154, %$24], [%163, %$25] ; # Arg\n  %171 = phi i8* [%155, %$24], [%164, %$25] ; # Msg\n  %172 = phi i8* [%156, %$24], [%165, %$25] ; # Ca\n  %173 = phi i64 [%157, %$24], [%166, %$25] ; # Tag\n  %174 = phi i64 [%159, %$24], [%149, %$25] ; # ->\n  store i64 %174, i64* @$Ret\n; # (Ca: (rst))\n  %175 = getelementptr i8, i8* %59, i32 272\n; # (longjmp (Ca: (rst)) 1)\n  call void @longjmp(i8* %175, i32 1)\n  unreachable\n$18:\n  %176 = phi i64 [%81, %$15] ; # Exe\n  %177 = phi i64 [%82, %$15] ; # X\n  %178 = phi i8* [%83, %$15] ; # Fmt\n  %179 = phi i8* [%84, %$15] ; # Arg\n  %180 = phi i8* [%85, %$15] ; # Msg\n  %181 = phi i8* [%86, %$15] ; # Ca\n  %182 = phi i64 [%87, %$15] ; # Tag\n; # (shift Tag)\n  %183 = inttoptr i64 %182 to i64*\n  %184 = getelementptr i64, i64* %183, i32 1\n  %185 = load i64, i64* %184\n  br label %$14\n$16:\n  %186 = phi i64 [%72, %$14] ; # Exe\n  %187 = phi i64 [%73, %$14] ; # X\n  %188 = phi i8* [%74, %$14] ; # Fmt\n  %189 = phi i8* [%75, %$14] ; # Arg\n  %190 = phi i8* [%76, %$14] ; # Msg\n  %191 = phi i8* [%77, %$14] ; # Ca\n  %192 = phi i64 [%78, %$14] ; # Tag\n  br label %$13\n$13:\n  %193 = phi i64 [%54, %$10], [%186, %$16] ; # Exe\n  %194 = phi i64 [%55, %$10], [%187, %$16] ; # X\n  %195 = phi i8* [%56, %$10], [%188, %$16] ; # Fmt\n  %196 = phi i8* [%57, %$10], [%189, %$16] ; # Arg\n  %197 = phi i8* [%58, %$10], [%190, %$16] ; # Msg\n  %198 = phi i8* [%59, %$10], [%191, %$16] ; # Ca\n  %199 = phi i64 [%63, %$10], [%192, %$16] ; # Tag\n; # (Ca: link)\n  %200 = bitcast i8* %59 to i8**\n  %201 = load i8*, i8** %200\n  br label %$9\n$11:\n  %202 = phi i64 [%47, %$9] ; # Exe\n  %203 = phi i64 [%48, %$9] ; # X\n  %204 = phi i8* [%49, %$9] ; # Fmt\n  %205 = phi i8* [%50, %$9] ; # Arg\n  %206 = phi i8* [%51, %$9] ; # Msg\n  %207 = phi i8* [%52, %$9] ; # Ca\n  br label %$8\n$8:\n  %208 = phi i64 [%32, %$6], [%202, %$11] ; # Exe\n  %209 = phi i64 [%33, %$6], [%203, %$11] ; # X\n  %210 = phi i8* [%34, %$6], [%204, %$11] ; # Fmt\n  %211 = phi i8* [%35, %$6], [%205, %$11] ; # Arg\n  %212 = phi i8* [%36, %$6], [%206, %$11] ; # Msg\n; # (flushAll)\n  call void @flushAll()\n; # (set $Chr (set $ExtN 0))\n; # (set $ExtN 0)\n  store i32 0, i32* @$ExtN\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (set $Break 0)\n  %213 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 16) to i64) to i64*\n  store i64 0, i64* %213\n; # (set $LinePtr null)\n  store i8* null, i8** @$LinePtr\n; # (set $Alarm (set $Sigio $Nil))\n; # (set $Sigio $Nil)\n  %214 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 32) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %214\n  %215 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 24) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %215\n; # (b8+ (ioFrame T))\n  %216 = alloca i8, i64 28, align 8\n; # (val $OutFiles)\n  %217 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %218 = getelementptr i8*, i8** %217, i32 2\n  %219 = load i8*, i8** %218\n; # (pushOutFile (b8+ (ioFrame T)) (val 3 (val $OutFiles)) 0)\n  call void @pushOutFile(i8* %216, i8* %219, i32 0)\n; # (let In: (inFile (val $InFile)) (when (and (In:) (In: name)) (cal...\n; # (val $InFile)\n  %220 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (when (and (In:) (In: name)) (call $Put (char \"[\")) (outString (I...\n; # (and (In:) (In: name))\n; # (In:)\n  %221 = icmp ne i8* %220, null\n  br i1 %221, label %$28, label %$27\n$28:\n  %222 = phi i64 [%208, %$8] ; # Exe\n  %223 = phi i64 [%209, %$8] ; # X\n  %224 = phi i8* [%210, %$8] ; # Fmt\n  %225 = phi i8* [%211, %$8] ; # Arg\n  %226 = phi i8* [%212, %$8] ; # Msg\n; # (In: name)\n  %227 = bitcast i8* %220 to i8**\n  %228 = load i8*, i8** %227\n  %229 = icmp ne i8* %228, null\n  br label %$27\n$27:\n  %230 = phi i64 [%208, %$8], [%222, %$28] ; # Exe\n  %231 = phi i64 [%209, %$8], [%223, %$28] ; # X\n  %232 = phi i8* [%210, %$8], [%224, %$28] ; # Fmt\n  %233 = phi i8* [%211, %$8], [%225, %$28] ; # Arg\n  %234 = phi i8* [%212, %$8], [%226, %$28] ; # Msg\n  %235 = phi i1 [0, %$8], [%229, %$28] ; # ->\n  br i1 %235, label %$29, label %$30\n$29:\n  %236 = phi i64 [%230, %$27] ; # Exe\n  %237 = phi i64 [%231, %$27] ; # X\n  %238 = phi i8* [%232, %$27] ; # Fmt\n  %239 = phi i8* [%233, %$27] ; # Arg\n  %240 = phi i8* [%234, %$27] ; # Msg\n; # (call $Put (char \"[\"))\n  %241 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %241(i8 91)\n; # (In: name)\n  %242 = bitcast i8* %220 to i8**\n  %243 = load i8*, i8** %242\n; # (outString (In: name))\n  call void @outString(i8* %243)\n; # (call $Put (char \":\"))\n  %244 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %244(i8 58)\n; # (In: src)\n  %245 = getelementptr i8, i8* %220, i32 20\n  %246 = bitcast i8* %245 to i32*\n  %247 = load i32, i32* %246\n; # (i64 (In: src))\n  %248 = sext i32 %247 to i64\n; # (outWord (i64 (In: src)))\n  call void @outWord(i64 %248)\n; # (call $Put (char \"]\"))\n  %249 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %249(i8 93)\n; # (space)\n  call void @space()\n  br label %$30\n$30:\n  %250 = phi i64 [%230, %$27], [%236, %$29] ; # Exe\n  %251 = phi i64 [%231, %$27], [%237, %$29] ; # X\n  %252 = phi i8* [%232, %$27], [%238, %$29] ; # Fmt\n  %253 = phi i8* [%233, %$27], [%239, %$29] ; # Arg\n  %254 = phi i8* [%234, %$27], [%240, %$29] ; # Msg\n; # (when Exe (outString ($ \"!? \")) (print Exe) (newline))\n  %255 = icmp ne i64 %250, 0\n  br i1 %255, label %$31, label %$32\n$31:\n  %256 = phi i64 [%250, %$30] ; # Exe\n  %257 = phi i64 [%251, %$30] ; # X\n  %258 = phi i8* [%252, %$30] ; # Fmt\n  %259 = phi i8* [%253, %$30] ; # Arg\n  %260 = phi i8* [%254, %$30] ; # Msg\n; # (outString ($ \"!? \"))\n  call void @outString(i8* bitcast ([4 x i8]* @$5 to i8*))\n; # (print Exe)\n  call void @print(i64 %256)\n; # (newline)\n  call void @newline()\n  br label %$32\n$32:\n  %261 = phi i64 [%250, %$30], [%256, %$31] ; # Exe\n  %262 = phi i64 [%251, %$30], [%257, %$31] ; # X\n  %263 = phi i8* [%252, %$30], [%258, %$31] ; # Fmt\n  %264 = phi i8* [%253, %$30], [%259, %$31] ; # Arg\n  %265 = phi i8* [%254, %$30], [%260, %$31] ; # Msg\n; # (when X (print X) (outString ($ \" -- \")))\n  %266 = icmp ne i64 %262, 0\n  br i1 %266, label %$33, label %$34\n$33:\n  %267 = phi i64 [%261, %$32] ; # Exe\n  %268 = phi i64 [%262, %$32] ; # X\n  %269 = phi i8* [%263, %$32] ; # Fmt\n  %270 = phi i8* [%264, %$32] ; # Arg\n  %271 = phi i8* [%265, %$32] ; # Msg\n; # (print X)\n  call void @print(i64 %268)\n; # (outString ($ \" -- \"))\n  call void @outString(i8* bitcast ([5 x i8]* @$6 to i8*))\n  br label %$34\n$34:\n  %272 = phi i64 [%261, %$32], [%267, %$33] ; # Exe\n  %273 = phi i64 [%262, %$32], [%268, %$33] ; # X\n  %274 = phi i8* [%263, %$32], [%269, %$33] ; # Fmt\n  %275 = phi i8* [%264, %$32], [%270, %$33] ; # Arg\n  %276 = phi i8* [%265, %$32], [%271, %$33] ; # Msg\n; # (when (val Msg) (outString Msg) (newline) (unless (or (nil? (val ...\n; # (val Msg)\n  %277 = load i8, i8* %276\n  %278 = icmp ne i8 %277, 0\n  br i1 %278, label %$35, label %$36\n$35:\n  %279 = phi i64 [%272, %$34] ; # Exe\n  %280 = phi i64 [%273, %$34] ; # X\n  %281 = phi i8* [%274, %$34] ; # Fmt\n  %282 = phi i8* [%275, %$34] ; # Arg\n  %283 = phi i8* [%276, %$34] ; # Msg\n; # (outString Msg)\n  call void @outString(i8* %283)\n; # (newline)\n  call void @newline()\n; # (unless (or (nil? (val $Err)) (val $Jam)) (set $Jam YES) (execAt ...\n; # (or (nil? (val $Err)) (val $Jam))\n; # (val $Err)\n  %284 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 760) to i64) to i64*\n  %285 = load i64, i64* %284\n; # (nil? (val $Err))\n  %286 = icmp eq i64 %285, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %286, label %$37, label %$38\n$38:\n  %287 = phi i64 [%279, %$35] ; # Exe\n  %288 = phi i64 [%280, %$35] ; # X\n  %289 = phi i8* [%281, %$35] ; # Fmt\n  %290 = phi i8* [%282, %$35] ; # Arg\n  %291 = phi i8* [%283, %$35] ; # Msg\n; # (val $Jam)\n  %292 = load i1, i1* @$Jam\n  br label %$37\n$37:\n  %293 = phi i64 [%279, %$35], [%287, %$38] ; # Exe\n  %294 = phi i64 [%280, %$35], [%288, %$38] ; # X\n  %295 = phi i8* [%281, %$35], [%289, %$38] ; # Fmt\n  %296 = phi i8* [%282, %$35], [%290, %$38] ; # Arg\n  %297 = phi i8* [%283, %$35], [%291, %$38] ; # Msg\n  %298 = phi i1 [1, %$35], [%292, %$38] ; # ->\n  br i1 %298, label %$40, label %$39\n$39:\n  %299 = phi i64 [%293, %$37] ; # Exe\n  %300 = phi i64 [%294, %$37] ; # X\n  %301 = phi i8* [%295, %$37] ; # Fmt\n  %302 = phi i8* [%296, %$37] ; # Arg\n  %303 = phi i8* [%297, %$37] ; # Msg\n; # (set $Jam YES)\n  store i1 1, i1* @$Jam\n; # (val $Err)\n  %304 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 760) to i64) to i64*\n  %305 = load i64, i64* %304\n; # (execAt (val $Err))\n  %306 = call i64 @execAt(i64 %305)\n; # (set $Jam NO)\n  store i1 0, i1* @$Jam\n  br label %$40\n$40:\n  %307 = phi i64 [%293, %$37], [%299, %$39] ; # Exe\n  %308 = phi i64 [%294, %$37], [%300, %$39] ; # X\n  %309 = phi i8* [%295, %$37], [%301, %$39] ; # Fmt\n  %310 = phi i8* [%296, %$37], [%302, %$39] ; # Arg\n  %311 = phi i8* [%297, %$37], [%303, %$39] ; # Msg\n; # (unless (and ((inFile (val (val $InFiles))) tty) ((outFile (val 2...\n; # (and ((inFile (val (val $InFiles))) tty) ((outFile (val 2 (val $O...\n; # (val $InFiles)\n  %312 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %313 = load i8*, i8** %312\n; # ((inFile (val (val $InFiles))) tty)\n  %314 = getelementptr i8, i8* %313, i32 4128\n  %315 = bitcast i8* %314 to i1*\n  %316 = load i1, i1* %315\n  br i1 %316, label %$42, label %$41\n$42:\n  %317 = phi i64 [%307, %$40] ; # Exe\n  %318 = phi i64 [%308, %$40] ; # X\n  %319 = phi i8* [%309, %$40] ; # Fmt\n  %320 = phi i8* [%310, %$40] ; # Arg\n  %321 = phi i8* [%311, %$40] ; # Msg\n; # (val $OutFiles)\n  %322 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %323 = getelementptr i8*, i8** %322, i32 1\n  %324 = load i8*, i8** %323\n; # ((outFile (val 2 (val $OutFiles))) tty)\n  %325 = getelementptr i8, i8* %324, i32 4104\n  %326 = bitcast i8* %325 to i1*\n  %327 = load i1, i1* %326\n  br label %$41\n$41:\n  %328 = phi i64 [%307, %$40], [%317, %$42] ; # Exe\n  %329 = phi i64 [%308, %$40], [%318, %$42] ; # X\n  %330 = phi i8* [%309, %$40], [%319, %$42] ; # Fmt\n  %331 = phi i8* [%310, %$40], [%320, %$42] ; # Arg\n  %332 = phi i8* [%311, %$40], [%321, %$42] ; # Msg\n  %333 = phi i1 [0, %$40], [%327, %$42] ; # ->\n  br i1 %333, label %$44, label %$43\n$43:\n  %334 = phi i64 [%328, %$41] ; # Exe\n  %335 = phi i64 [%329, %$41] ; # X\n  %336 = phi i8* [%330, %$41] ; # Fmt\n  %337 = phi i8* [%331, %$41] ; # Arg\n  %338 = phi i8* [%332, %$41] ; # Msg\n; # (bye 1)\n  call void @bye(i32 1)\n  unreachable\n$44:\n  %339 = phi i64 [%328, %$41] ; # Exe\n  %340 = phi i64 [%329, %$41] ; # X\n  %341 = phi i8* [%330, %$41] ; # Fmt\n  %342 = phi i8* [%331, %$41] ; # Arg\n  %343 = phi i8* [%332, %$41] ; # Msg\n; # (repl 0 ($ \"? \") $Nil)\n  %344 = call i64 @repl(i64 0, i8* bitcast ([3 x i8]* @$7 to i8*), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$36\n$36:\n  %345 = phi i64 [%272, %$34], [%339, %$44] ; # Exe\n  %346 = phi i64 [%273, %$34], [%340, %$44] ; # X\n  %347 = phi i8* [%274, %$34], [%341, %$44] ; # Fmt\n  %348 = phi i8* [%275, %$34], [%342, %$44] ; # Arg\n  %349 = phi i8* [%276, %$34], [%343, %$44] ; # Msg\n; # (unless (val $StkLimit) (giveup ($ \"No stack\")))\n; # (val $StkLimit)\n  %350 = load i8*, i8** @$StkLimit\n  %351 = icmp ne i8* %350, null\n  br i1 %351, label %$46, label %$45\n$45:\n  %352 = phi i64 [%345, %$36] ; # Exe\n  %353 = phi i64 [%346, %$36] ; # X\n  %354 = phi i8* [%347, %$36] ; # Fmt\n  %355 = phi i8* [%348, %$36] ; # Arg\n  %356 = phi i8* [%349, %$36] ; # Msg\n; # (giveup ($ \"No stack\"))\n  call void @giveup(i8* bitcast ([9 x i8]* @$8 to i8*))\n  unreachable\n$46:\n  %357 = phi i64 [%345, %$36] ; # Exe\n  %358 = phi i64 [%346, %$36] ; # X\n  %359 = phi i8* [%347, %$36] ; # Fmt\n  %360 = phi i8* [%348, %$36] ; # Arg\n  %361 = phi i8* [%349, %$36] ; # Msg\n; # (unwind null)\n  call void @unwind(i8* null)\n; # (set $Link 0 $Protect 0 $Next $Nil $Make 0 $Yoke 0 $Trace 0 $Put ...\n  %362 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 0, i64* %362\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  %363 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %363\n  %364 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 0, i64* %364\n  %365 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  store i64 0, i64* %365\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 184) to i32*)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (fun (i32) _getStdin)\n  store i32()* @_getStdin, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n; # (longjmp QuitRst 1)\n  call void @longjmp(i8* @QuitRst, i32 1)\n  unreachable\n}\n\ndefine void @stkErr(i64) align 8 {\n$1:\n; # (set $StkLimit null)\n  store i8* null, i8** @$StkLimit\n; # (if (val $Current) ((coroutine @) tag) 0)\n; # (val $Current)\n  %1 = load i8*, i8** @$Current\n  %2 = icmp ne i8* %1, null\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # ((coroutine @) tag)\n  %4 = ptrtoint i8* %1 to i64\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$4:\n  %8 = phi i64 [%3, %$2], [%7, %$3] ; # Exe\n  %9 = phi i64 [%6, %$2], [0, %$3] ; # ->\n; # (err Exe (if (val $Current) ((coroutine @) tag) 0) ($ \"Stack over...\n  call void @err(i64 %0, i64 %9, i8* bitcast ([15 x i8]* @$9 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @argErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Bad argument\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([13 x i8]* @$10 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @cntErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Small number expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([22 x i8]* @$11 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @numErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Number expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([16 x i8]* @$12 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @symErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Symbol expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([16 x i8]* @$13 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @charErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Char expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([14 x i8]* @$14 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @extErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"External symbol expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([25 x i8]* @$15 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @atomErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Atom expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([14 x i8]* @$16 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @pairErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Cons pair expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([19 x i8]* @$17 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @lstErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"List expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([14 x i8]* @$18 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @varErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Variable expected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([18 x i8]* @$19 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @itemErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Item not found\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([15 x i8]* @$20 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @protErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Protected\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([10 x i8]* @$21 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @lockErr() align 8 {\n$1:\n; # (strErrno)\n  %0 = call i8* @strErrno()\n; # (err 0 0 ($ \"File lock: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([14 x i8]* @$22 to i8*), i8* %0)\n  unreachable\n}\n\ndefine void @forkErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Can't fork\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([11 x i8]* @$23 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @symNspErr(i64, i64) align 8 {\n$1:\n; # (err Exe X ($ \"Bad symbol namespace\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([21 x i8]* @$24 to i8*), i8* null)\n  unreachable\n}\n\ndefine i64 @xCnt(i64, i64) align 8 {\n$1:\n; # (let N (int (needCnt Exe X)) (if (sign? X) (- N) N))\n; # (needCnt Exe X)\n  %2 = and i64 %1, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%1, %$1] ; # X\n  %5 = phi i64 [%0, %$1] ; # Exe\n  call void @cntErr(i64 %5, i64 %4)\n  unreachable\n$3:\n  %6 = phi i64 [%1, %$1] ; # X\n  %7 = phi i64 [%0, %$1] ; # Exe\n; # (int (needCnt Exe X))\n  %8 = lshr i64 %6, 4\n; # (if (sign? X) (- N) N)\n; # (sign? X)\n  %9 = and i64 %1, 8\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$4, label %$5\n$4:\n  %11 = phi i64 [%0, %$3] ; # Exe\n  %12 = phi i64 [%1, %$3] ; # X\n  %13 = phi i64 [%8, %$3] ; # N\n; # (- N)\n  %14 = sub i64 0, %13\n  br label %$6\n$5:\n  %15 = phi i64 [%0, %$3] ; # Exe\n  %16 = phi i64 [%1, %$3] ; # X\n  %17 = phi i64 [%8, %$3] ; # N\n  br label %$6\n$6:\n  %18 = phi i64 [%11, %$4], [%15, %$5] ; # Exe\n  %19 = phi i64 [%12, %$4], [%16, %$5] ; # X\n  %20 = phi i64 [%13, %$4], [%17, %$5] ; # N\n  %21 = phi i64 [%14, %$4], [%17, %$5] ; # ->\n  ret i64 %21\n}\n\ndefine i64 @evCnt(i64, i64) align 8 {\n$1:\n; # (car X)\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (eval (car X))\n  %4 = and i64 %3, 6\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%3, %$1] ; # X\n  br label %$2\n$3:\n  %7 = phi i64 [%3, %$1] ; # X\n  %8 = and i64 %7, 8\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$6, label %$5\n$6:\n  %10 = phi i64 [%7, %$3] ; # X\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n  br label %$2\n$5:\n  %13 = phi i64 [%7, %$3] ; # X\n  %14 = call i64 @evList(i64 %13)\n  br label %$2\n$2:\n  %15 = phi i64 [%6, %$4], [%10, %$6], [%13, %$5] ; # X\n  %16 = phi i64 [%6, %$4], [%12, %$6], [%14, %$5] ; # ->\n; # (xCnt Exe (eval (car X)))\n  %17 = call i64 @xCnt(i64 %0, i64 %16)\n  ret i64 %17\n}\n\ndefine i64 @xCnt64(i64, i64) align 8 {\n$1:\n; # (if (cnt? (needNum Exe X)) (int @) (val (dig @)))\n; # (needNum Exe X)\n  %2 = and i64 %1, 6\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%1, %$1] ; # X\n  %5 = phi i64 [%0, %$1] ; # Exe\n  call void @numErr(i64 %5, i64 %4)\n  unreachable\n$3:\n  %6 = phi i64 [%1, %$1] ; # X\n  %7 = phi i64 [%0, %$1] ; # Exe\n; # (cnt? (needNum Exe X))\n  %8 = and i64 %6, 2\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$5\n$4:\n  %10 = phi i64 [%0, %$3] ; # Exe\n  %11 = phi i64 [%1, %$3] ; # X\n; # (int @)\n  %12 = lshr i64 %6, 4\n  br label %$6\n$5:\n  %13 = phi i64 [%0, %$3] ; # Exe\n  %14 = phi i64 [%1, %$3] ; # X\n; # (dig @)\n  %15 = add i64 %6, -4\n; # (val (dig @))\n  %16 = inttoptr i64 %15 to i64*\n  %17 = load i64, i64* %16\n  br label %$6\n$6:\n  %18 = phi i64 [%10, %$4], [%13, %$5] ; # Exe\n  %19 = phi i64 [%11, %$4], [%14, %$5] ; # X\n  %20 = phi i64 [%12, %$4], [%17, %$5] ; # ->\n  ret i64 %20\n}\n\ndefine i64 @evLst(i64) align 8 {\n$1:\n; # (let X (eval (car Exe)) (unless (or (pair X) (nil? X)) (lstErr Ex...\n; # (car Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = load i64, i64* %1\n; # (eval (car Exe))\n  %3 = and i64 %2, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$4, label %$3\n$4:\n  %5 = phi i64 [%2, %$1] ; # X\n  br label %$2\n$3:\n  %6 = phi i64 [%2, %$1] ; # X\n  %7 = and i64 %6, 8\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%6, %$3] ; # X\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n  br label %$2\n$5:\n  %12 = phi i64 [%6, %$3] ; # X\n  %13 = call i64 @evList(i64 %12)\n  br label %$2\n$2:\n  %14 = phi i64 [%5, %$4], [%9, %$6], [%12, %$5] ; # X\n  %15 = phi i64 [%5, %$4], [%11, %$6], [%13, %$5] ; # ->\n; # (unless (or (pair X) (nil? X)) (lstErr Exe X))\n; # (or (pair X) (nil? X))\n; # (pair X)\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$7, label %$8\n$8:\n  %18 = phi i64 [%0, %$2] ; # Exe\n  %19 = phi i64 [%15, %$2] ; # X\n; # (nil? X)\n  %20 = icmp eq i64 %19, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %21 = phi i64 [%0, %$2], [%18, %$8] ; # Exe\n  %22 = phi i64 [%15, %$2], [%19, %$8] ; # X\n  %23 = phi i1 [1, %$2], [%20, %$8] ; # ->\n  br i1 %23, label %$10, label %$9\n$9:\n  %24 = phi i64 [%21, %$7] ; # Exe\n  %25 = phi i64 [%22, %$7] ; # X\n; # (lstErr Exe X)\n  call void @lstErr(i64 %24, i64 %25)\n  unreachable\n$10:\n  %26 = phi i64 [%21, %$7] ; # Exe\n  %27 = phi i64 [%22, %$7] ; # X\n  ret i64 %27\n}\n\ndefine i64 @xSym(i64) align 8 {\n$1:\n; # (if (symb? X) X (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (...\n; # (symb? X)\n  %1 = xor i64 %0, 8\n  %2 = and i64 %1, 14\n  %3 = icmp eq i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # X\n  br label %$4\n$3:\n  %5 = phi i64 [%0, %$1] ; # X\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (pack X P) (consS...\n; # (push 4 NIL ZERO NIL)\n  %6 = alloca i64, i64 4, align 16\n  store i64 4, i64* %6\n  %7 = getelementptr i64, i64* %6, i32 2\n  store i64 2, i64* %7\n; # (ofs P 2)\n  %8 = getelementptr i64, i64* %6, i32 2\n; # (link (ofs P 2) T)\n  %9 = ptrtoint i64* %8 to i64\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %11 = load i64, i64* %10\n  %12 = inttoptr i64 %9 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  store i64 %11, i64* %13\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %9, i64* %14\n; # (pack X P)\n  call void @pack(i64 %5, i64* %6)\n; # (val 3 P)\n  %15 = getelementptr i64, i64* %6, i32 2\n  %16 = load i64, i64* %15\n; # (consStr (val 3 P))\n  %17 = call i64 @consStr(i64 %16)\n; # (drop *Safe)\n  %18 = inttoptr i64 %9 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  %20 = load i64, i64* %19\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %20, i64* %21\n  br label %$4\n$4:\n  %22 = phi i64 [%4, %$2], [%5, %$3] ; # X\n  %23 = phi i64 [%4, %$2], [%17, %$3] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @evSym(i64) align 8 {\n$1:\n; # (car Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = load i64, i64* %1\n; # (eval (car Exe))\n  %3 = and i64 %2, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$4, label %$3\n$4:\n  %5 = phi i64 [%2, %$1] ; # X\n  br label %$2\n$3:\n  %6 = phi i64 [%2, %$1] ; # X\n  %7 = and i64 %6, 8\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%6, %$3] ; # X\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n  br label %$2\n$5:\n  %12 = phi i64 [%6, %$3] ; # X\n  %13 = call i64 @evList(i64 %12)\n  br label %$2\n$2:\n  %14 = phi i64 [%5, %$4], [%9, %$6], [%12, %$5] ; # X\n  %15 = phi i64 [%5, %$4], [%11, %$6], [%13, %$5] ; # ->\n; # (xSym (eval (car Exe)))\n  %16 = call i64 @xSym(i64 %15)\n  ret i64 %16\n}\n\ndefine i64 @xName(i64) align 8 {\n$1:\n; # (cond ((nil? Sym) ZERO) ((sym? (val (tail Sym))) (let P (push 4 N...\n; # (nil? Sym)\n  %1 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i64 [%0, %$1] ; # Sym\n  br label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Sym\n; # (tail Sym)\n  %4 = add i64 %3, -8\n; # (val (tail Sym))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (sym? (val (tail Sym)))\n  %7 = and i64 %6, 8\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%3, %$3] ; # Sym\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (packExtNm (name ...\n; # (push 4 NIL ZERO NIL)\n  %10 = alloca i64, i64 4, align 16\n  store i64 4, i64* %10\n  %11 = getelementptr i64, i64* %10, i32 2\n  store i64 2, i64* %11\n; # (ofs P 2)\n  %12 = getelementptr i64, i64* %10, i32 2\n; # (link (ofs P 2) T)\n  %13 = ptrtoint i64* %12 to i64\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %15 = load i64, i64* %14\n  %16 = inttoptr i64 %13 to i64*\n  %17 = getelementptr i64, i64* %16, i32 1\n  store i64 %15, i64* %17\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %13, i64* %18\n; # (& @ -9)\n  %19 = and i64 %6, -9\n; # (name (& @ -9))\n  br label %$7\n$7:\n  %20 = phi i64 [%19, %$6], [%26, %$8] ; # Tail\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$8:\n  %23 = phi i64 [%20, %$7] ; # Tail\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  br label %$7\n$9:\n  %27 = phi i64 [%20, %$7] ; # Tail\n; # (packExtNm (name (& @ -9)) P)\n  call void @packExtNm(i64 %27, i64* %10)\n; # (val 3 P)\n  %28 = getelementptr i64, i64* %10, i32 2\n  %29 = load i64, i64* %28\n; # (drop *Safe)\n  %30 = inttoptr i64 %13 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %32, i64* %33\n  br label %$2\n$5:\n  %34 = phi i64 [%3, %$3] ; # Sym\n; # (name @)\n  br label %$10\n$10:\n  %35 = phi i64 [%6, %$5], [%41, %$11] ; # Tail\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$12, label %$11\n$11:\n  %38 = phi i64 [%35, %$10] ; # Tail\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  br label %$10\n$12:\n  %42 = phi i64 [%35, %$10] ; # Tail\n  br label %$2\n$2:\n  %43 = phi i64 [%2, %$4], [%9, %$9], [%34, %$12] ; # Sym\n  %44 = phi i64 [2, %$4], [%29, %$9], [%42, %$12] ; # ->\n  ret i64 %44\n}\n\ndefine i64 @circ(i64) align 8 {\n$1:\n; # (if (atom X) 0 (let Y X (loop (set Y (| (val Y) 1)) (? (atom (shi...\n; # (atom X)\n  %1 = and i64 %0, 15\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # X\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # X\n; # (let Y X (loop (set Y (| (val Y) 1)) (? (atom (shift Y)) (loop (s...\n; # (loop (set Y (| (val Y) 1)) (? (atom (shift Y)) (loop (set X (& (...\n  br label %$5\n$5:\n  %5 = phi i64 [%4, %$3], [%70, %$12] ; # X\n  %6 = phi i64 [%4, %$3], [%71, %$12] ; # Y\n; # (set Y (| (val Y) 1))\n; # (val Y)\n  %7 = inttoptr i64 %6 to i64*\n  %8 = load i64, i64* %7\n; # (| (val Y) 1)\n  %9 = or i64 %8, 1\n  %10 = inttoptr i64 %6 to i64*\n  store i64 %9, i64* %10\n; # (? (atom (shift Y)) (loop (set X (& (val X) -2)) (? (== Y (shift ...\n; # (shift Y)\n  %11 = inttoptr i64 %6 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n; # (atom (shift Y))\n  %14 = and i64 %13, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$8, label %$6\n$8:\n  %16 = phi i64 [%5, %$5] ; # X\n  %17 = phi i64 [%13, %$5] ; # Y\n; # (loop (set X (& (val X) -2)) (? (== Y (shift X))))\n  br label %$9\n$9:\n  %18 = phi i64 [%16, %$8], [%28, %$10] ; # X\n  %19 = phi i64 [%17, %$8], [%29, %$10] ; # Y\n; # (set X (& (val X) -2))\n; # (val X)\n  %20 = inttoptr i64 %18 to i64*\n  %21 = load i64, i64* %20\n; # (& (val X) -2)\n  %22 = and i64 %21, -2\n  %23 = inttoptr i64 %18 to i64*\n  store i64 %22, i64* %23\n; # (? (== Y (shift X)))\n; # (shift X)\n  %24 = inttoptr i64 %18 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n; # (== Y (shift X))\n  %27 = icmp eq i64 %19, %26\n  br i1 %27, label %$11, label %$10\n$10:\n  %28 = phi i64 [%26, %$9] ; # X\n  %29 = phi i64 [%19, %$9] ; # Y\n  br label %$9\n$11:\n  %30 = phi i64 [%26, %$9] ; # X\n  %31 = phi i64 [%19, %$9] ; # Y\n  %32 = phi i64 [0, %$9] ; # ->\n  br label %$7\n$6:\n  %33 = phi i64 [%5, %$5] ; # X\n  %34 = phi i64 [%13, %$5] ; # Y\n; # (? (& (val Y) 1) (until (== X Y) (set X (& (val X) -2)) (shift X)...\n; # (val Y)\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n; # (& (val Y) 1)\n  %37 = and i64 %36, 1\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$13, label %$12\n$13:\n  %39 = phi i64 [%33, %$6] ; # X\n  %40 = phi i64 [%34, %$6] ; # Y\n; # (until (== X Y) (set X (& (val X) -2)) (shift X))\n  br label %$14\n$14:\n  %41 = phi i64 [%39, %$13], [%52, %$15] ; # X\n  %42 = phi i64 [%40, %$13], [%45, %$15] ; # Y\n; # (== X Y)\n  %43 = icmp eq i64 %41, %42\n  br i1 %43, label %$16, label %$15\n$15:\n  %44 = phi i64 [%41, %$14] ; # X\n  %45 = phi i64 [%42, %$14] ; # Y\n; # (set X (& (val X) -2))\n; # (val X)\n  %46 = inttoptr i64 %44 to i64*\n  %47 = load i64, i64* %46\n; # (& (val X) -2)\n  %48 = and i64 %47, -2\n  %49 = inttoptr i64 %44 to i64*\n  store i64 %48, i64* %49\n; # (shift X)\n  %50 = inttoptr i64 %44 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n  br label %$14\n$16:\n  %53 = phi i64 [%41, %$14] ; # X\n  %54 = phi i64 [%42, %$14] ; # Y\n; # (loop (set X (& (val X) -2)) (? (== Y (shift X))))\n  br label %$17\n$17:\n  %55 = phi i64 [%53, %$16], [%65, %$18] ; # X\n  %56 = phi i64 [%54, %$16], [%66, %$18] ; # Y\n; # (set X (& (val X) -2))\n; # (val X)\n  %57 = inttoptr i64 %55 to i64*\n  %58 = load i64, i64* %57\n; # (& (val X) -2)\n  %59 = and i64 %58, -2\n  %60 = inttoptr i64 %55 to i64*\n  store i64 %59, i64* %60\n; # (? (== Y (shift X)))\n; # (shift X)\n  %61 = inttoptr i64 %55 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n; # (== Y (shift X))\n  %64 = icmp eq i64 %56, %63\n  br i1 %64, label %$19, label %$18\n$18:\n  %65 = phi i64 [%63, %$17] ; # X\n  %66 = phi i64 [%56, %$17] ; # Y\n  br label %$17\n$19:\n  %67 = phi i64 [%63, %$17] ; # X\n  %68 = phi i64 [%56, %$17] ; # Y\n  %69 = phi i64 [0, %$17] ; # ->\n  br label %$7\n$12:\n  %70 = phi i64 [%33, %$6] ; # X\n  %71 = phi i64 [%34, %$6] ; # Y\n  br label %$5\n$7:\n  %72 = phi i64 [%30, %$11], [%67, %$19] ; # X\n  %73 = phi i64 [%31, %$11], [%68, %$19] ; # Y\n  %74 = phi i64 [0, %$11], [%68, %$19] ; # ->\n  br label %$4\n$4:\n  %75 = phi i64 [%3, %$2], [%72, %$7] ; # X\n  %76 = phi i64 [0, %$2], [%74, %$7] ; # ->\n  ret i64 %76\n}\n\ndefine i64 @funq(i64) align 8 {\n$1:\n; # (cond ((cnt? X) X) ((or (big? X) (sym? X)) 0) ((circ X) 0) (T (le...\n; # (cnt? X)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n  br label %$2\n$3:\n  %4 = phi i64 [%0, %$1] ; # X\n; # (or (big? X) (sym? X))\n; # (big? X)\n  %5 = and i64 %4, 4\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$5, label %$6\n$6:\n  %7 = phi i64 [%4, %$3] ; # X\n; # (sym? X)\n  %8 = and i64 %7, 8\n  %9 = icmp ne i64 %8, 0\n  br label %$5\n$5:\n  %10 = phi i64 [%4, %$3], [%7, %$6] ; # X\n  %11 = phi i1 [1, %$3], [%9, %$6] ; # ->\n  br i1 %11, label %$8, label %$7\n$8:\n  %12 = phi i64 [%10, %$5] ; # X\n  br label %$2\n$7:\n  %13 = phi i64 [%10, %$5] ; # X\n; # (circ X)\n  %14 = call i64 @circ(i64 %13)\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$10, label %$9\n$10:\n  %16 = phi i64 [%13, %$7] ; # X\n  br label %$2\n$9:\n  %17 = phi i64 [%13, %$7] ; # X\n; # (let Y (cdr X) (loop (? (atom Y) (cond ((not (nil? Y)) 0) ((nil? ...\n; # (cdr X)\n  %18 = inttoptr i64 %17 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  %20 = load i64, i64* %19\n; # (loop (? (atom Y) (cond ((not (nil? Y)) 0) ((nil? (setq X (car X)...\n  br label %$11\n$11:\n  %21 = phi i64 [%17, %$9], [%217, %$53] ; # X\n  %22 = phi i64 [%20, %$9], [%218, %$53] ; # Y\n; # (? (atom Y) (cond ((not (nil? Y)) 0) ((nil? (setq X (car X))) $T)...\n; # (atom Y)\n  %23 = and i64 %22, 15\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$14, label %$12\n$14:\n  %25 = phi i64 [%21, %$11] ; # X\n  %26 = phi i64 [%22, %$11] ; # Y\n; # (cond ((not (nil? Y)) 0) ((nil? (setq X (car X))) $T) ((== X $Til...\n; # (nil? Y)\n  %27 = icmp eq i64 %26, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Y))\n  %28 = icmp eq i1 %27, 0\n  br i1 %28, label %$17, label %$16\n$17:\n  %29 = phi i64 [%25, %$14] ; # X\n  %30 = phi i64 [%26, %$14] ; # Y\n  br label %$15\n$16:\n  %31 = phi i64 [%25, %$14] ; # X\n  %32 = phi i64 [%26, %$14] ; # Y\n; # (car X)\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (nil? (setq X (car X)))\n  %35 = icmp eq i64 %34, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %35, label %$19, label %$18\n$19:\n  %36 = phi i64 [%34, %$16] ; # X\n  %37 = phi i64 [%32, %$16] ; # Y\n  br label %$15\n$18:\n  %38 = phi i64 [%34, %$16] ; # X\n  %39 = phi i64 [%32, %$16] ; # Y\n; # (== X $Tilde)\n  %40 = icmp eq i64 %38, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64)\n  br i1 %40, label %$21, label %$20\n$21:\n  %41 = phi i64 [%38, %$18] ; # X\n  %42 = phi i64 [%39, %$18] ; # Y\n  br label %$15\n$20:\n  %43 = phi i64 [%38, %$18] ; # X\n  %44 = phi i64 [%39, %$18] ; # Y\n; # (circ (setq Y X))\n  %45 = call i64 @circ(i64 %43)\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$23, label %$22\n$23:\n  %47 = phi i64 [%43, %$20] ; # X\n  %48 = phi i64 [%43, %$20] ; # Y\n  br label %$15\n$22:\n  %49 = phi i64 [%43, %$20] ; # X\n  %50 = phi i64 [%43, %$20] ; # Y\n; # (loop (? (atom Y) (if (or (num? Y) (t? Y)) 0 X)) (? (or (num? (++...\n  br label %$24\n$24:\n  %51 = phi i64 [%49, %$22], [%147, %$49] ; # X\n  %52 = phi i64 [%50, %$22], [%148, %$49] ; # Y\n; # (? (atom Y) (if (or (num? Y) (t? Y)) 0 X))\n; # (atom Y)\n  %53 = and i64 %52, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$27, label %$25\n$27:\n  %55 = phi i64 [%51, %$24] ; # X\n  %56 = phi i64 [%52, %$24] ; # Y\n; # (if (or (num? Y) (t? Y)) 0 X)\n; # (or (num? Y) (t? Y))\n; # (num? Y)\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$28, label %$29\n$29:\n  %59 = phi i64 [%55, %$27] ; # X\n  %60 = phi i64 [%56, %$27] ; # Y\n; # (t? Y)\n  %61 = icmp eq i64 %60, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br label %$28\n$28:\n  %62 = phi i64 [%55, %$27], [%59, %$29] ; # X\n  %63 = phi i64 [%56, %$27], [%60, %$29] ; # Y\n  %64 = phi i1 [1, %$27], [%61, %$29] ; # ->\n  br i1 %64, label %$30, label %$31\n$30:\n  %65 = phi i64 [%62, %$28] ; # X\n  %66 = phi i64 [%63, %$28] ; # Y\n  br label %$32\n$31:\n  %67 = phi i64 [%62, %$28] ; # X\n  %68 = phi i64 [%63, %$28] ; # Y\n  br label %$32\n$32:\n  %69 = phi i64 [%65, %$30], [%67, %$31] ; # X\n  %70 = phi i64 [%66, %$30], [%68, %$31] ; # Y\n  %71 = phi i64 [0, %$30], [%67, %$31] ; # ->\n  br label %$26\n$25:\n  %72 = phi i64 [%51, %$24] ; # X\n  %73 = phi i64 [%52, %$24] ; # Y\n; # (? (or (num? (++ Y)) (nil? @) (t? @) (and (pair @) (let Z @ (loop...\n; # (or (num? (++ Y)) (nil? @) (t? @) (and (pair @) (let Z @ (loop (?...\n; # (++ Y)\n  %74 = inttoptr i64 %73 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  %77 = load i64, i64* %74\n; # (num? (++ Y))\n  %78 = and i64 %77, 6\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$33, label %$34\n$34:\n  %80 = phi i64 [%72, %$25] ; # X\n  %81 = phi i64 [%76, %$25] ; # Y\n; # (nil? @)\n  %82 = icmp eq i64 %77, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %82, label %$33, label %$35\n$35:\n  %83 = phi i64 [%80, %$34] ; # X\n  %84 = phi i64 [%81, %$34] ; # Y\n; # (t? @)\n  %85 = icmp eq i64 %77, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %85, label %$33, label %$36\n$36:\n  %86 = phi i64 [%83, %$35] ; # X\n  %87 = phi i64 [%84, %$35] ; # Y\n; # (and (pair @) (let Z @ (loop (? (or (not (symb? (++ Z))) (t? @)) ...\n; # (pair @)\n  %88 = and i64 %77, 15\n  %89 = icmp eq i64 %88, 0\n  br i1 %89, label %$38, label %$37\n$38:\n  %90 = phi i64 [%86, %$36] ; # X\n  %91 = phi i64 [%87, %$36] ; # Y\n; # (let Z @ (loop (? (or (not (symb? (++ Z))) (t? @)) YES) (? (atom ...\n; # (loop (? (or (not (symb? (++ Z))) (t? @)) YES) (? (atom Z) (or (n...\n  br label %$39\n$39:\n  %92 = phi i64 [%90, %$38], [%132, %$45] ; # X\n  %93 = phi i64 [%91, %$38], [%133, %$45] ; # Y\n  %94 = phi i64 [%77, %$38], [%134, %$45] ; # Z\n; # (? (or (not (symb? (++ Z))) (t? @)) YES)\n; # (or (not (symb? (++ Z))) (t? @))\n; # (++ Z)\n  %95 = inttoptr i64 %94 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  %97 = load i64, i64* %96\n  %98 = load i64, i64* %95\n; # (symb? (++ Z))\n  %99 = xor i64 %98, 8\n  %100 = and i64 %99, 14\n  %101 = icmp eq i64 %100, 0\n; # (not (symb? (++ Z)))\n  %102 = icmp eq i1 %101, 0\n  br i1 %102, label %$40, label %$41\n$41:\n  %103 = phi i64 [%92, %$39] ; # X\n  %104 = phi i64 [%93, %$39] ; # Y\n  %105 = phi i64 [%97, %$39] ; # Z\n; # (t? @)\n  %106 = icmp eq i64 %98, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br label %$40\n$40:\n  %107 = phi i64 [%92, %$39], [%103, %$41] ; # X\n  %108 = phi i64 [%93, %$39], [%104, %$41] ; # Y\n  %109 = phi i64 [%97, %$39], [%105, %$41] ; # Z\n  %110 = phi i1 [1, %$39], [%106, %$41] ; # ->\n  br i1 %110, label %$44, label %$42\n$44:\n  %111 = phi i64 [%107, %$40] ; # X\n  %112 = phi i64 [%108, %$40] ; # Y\n  %113 = phi i64 [%109, %$40] ; # Z\n  br label %$43\n$42:\n  %114 = phi i64 [%107, %$40] ; # X\n  %115 = phi i64 [%108, %$40] ; # Y\n  %116 = phi i64 [%109, %$40] ; # Z\n; # (? (atom Z) (or (num? Z) (t? Z)))\n; # (atom Z)\n  %117 = and i64 %116, 15\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$46, label %$45\n$46:\n  %119 = phi i64 [%114, %$42] ; # X\n  %120 = phi i64 [%115, %$42] ; # Y\n  %121 = phi i64 [%116, %$42] ; # Z\n; # (or (num? Z) (t? Z))\n; # (num? Z)\n  %122 = and i64 %121, 6\n  %123 = icmp ne i64 %122, 0\n  br i1 %123, label %$47, label %$48\n$48:\n  %124 = phi i64 [%119, %$46] ; # X\n  %125 = phi i64 [%120, %$46] ; # Y\n  %126 = phi i64 [%121, %$46] ; # Z\n; # (t? Z)\n  %127 = icmp eq i64 %126, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br label %$47\n$47:\n  %128 = phi i64 [%119, %$46], [%124, %$48] ; # X\n  %129 = phi i64 [%120, %$46], [%125, %$48] ; # Y\n  %130 = phi i64 [%121, %$46], [%126, %$48] ; # Z\n  %131 = phi i1 [1, %$46], [%127, %$48] ; # ->\n  br label %$43\n$45:\n  %132 = phi i64 [%114, %$42] ; # X\n  %133 = phi i64 [%115, %$42] ; # Y\n  %134 = phi i64 [%116, %$42] ; # Z\n  br label %$39\n$43:\n  %135 = phi i64 [%111, %$44], [%128, %$47] ; # X\n  %136 = phi i64 [%112, %$44], [%129, %$47] ; # Y\n  %137 = phi i64 [%113, %$44], [%130, %$47] ; # Z\n  %138 = phi i1 [1, %$44], [%131, %$47] ; # ->\n  br label %$37\n$37:\n  %139 = phi i64 [%86, %$36], [%135, %$43] ; # X\n  %140 = phi i64 [%87, %$36], [%136, %$43] ; # Y\n  %141 = phi i1 [0, %$36], [%138, %$43] ; # ->\n  br label %$33\n$33:\n  %142 = phi i64 [%72, %$25], [%80, %$34], [%83, %$35], [%139, %$37] ; # X\n  %143 = phi i64 [%76, %$25], [%81, %$34], [%84, %$35], [%140, %$37] ; # Y\n  %144 = phi i1 [1, %$25], [1, %$34], [1, %$35], [%141, %$37] ; # ->\n  br i1 %144, label %$50, label %$49\n$50:\n  %145 = phi i64 [%142, %$33] ; # X\n  %146 = phi i64 [%143, %$33] ; # Y\n  br label %$26\n$49:\n  %147 = phi i64 [%142, %$33] ; # X\n  %148 = phi i64 [%143, %$33] ; # Y\n  br label %$24\n$26:\n  %149 = phi i64 [%69, %$32], [%145, %$50] ; # X\n  %150 = phi i64 [%70, %$32], [%146, %$50] ; # Y\n  %151 = phi i64 [%71, %$32], [0, %$50] ; # ->\n  br label %$15\n$15:\n  %152 = phi i64 [%29, %$17], [%36, %$19], [%41, %$21], [%47, %$23], [%149, %$26] ; # X\n  %153 = phi i64 [%30, %$17], [%37, %$19], [%42, %$21], [%48, %$23], [%150, %$26] ; # Y\n  %154 = phi i64 [0, %$17], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$19], [0, %$21], [0, %$23], [%151, %$26] ; # ->\n  br label %$13\n$12:\n  %155 = phi i64 [%21, %$11] ; # X\n  %156 = phi i64 [%22, %$11] ; # Y\n; # (let Z (++ Y) (if (pair Z) (if (num? (car Z)) (? (pair Y) 0) (? (...\n; # (++ Y)\n  %157 = inttoptr i64 %156 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n  %160 = load i64, i64* %157\n; # (if (pair Z) (if (num? (car Z)) (? (pair Y) 0) (? (or (nil? (car ...\n; # (pair Z)\n  %161 = and i64 %160, 15\n  %162 = icmp eq i64 %161, 0\n  br i1 %162, label %$51, label %$52\n$51:\n  %163 = phi i64 [%155, %$12] ; # X\n  %164 = phi i64 [%159, %$12] ; # Y\n  %165 = phi i64 [%160, %$12] ; # Z\n; # (if (num? (car Z)) (? (pair Y) 0) (? (or (nil? (car Z)) (t? (car ...\n; # (car Z)\n  %166 = inttoptr i64 %165 to i64*\n  %167 = load i64, i64* %166\n; # (num? (car Z))\n  %168 = and i64 %167, 6\n  %169 = icmp ne i64 %168, 0\n  br i1 %169, label %$54, label %$55\n$54:\n  %170 = phi i64 [%163, %$51] ; # X\n  %171 = phi i64 [%164, %$51] ; # Y\n  %172 = phi i64 [%165, %$51] ; # Z\n; # (? (pair Y) 0)\n; # (pair Y)\n  %173 = and i64 %171, 15\n  %174 = icmp eq i64 %173, 0\n  br i1 %174, label %$58, label %$57\n$58:\n  %175 = phi i64 [%170, %$54] ; # X\n  %176 = phi i64 [%171, %$54] ; # Y\n  %177 = phi i64 [%172, %$54] ; # Z\n  br label %$13\n$57:\n  %178 = phi i64 [%170, %$54] ; # X\n  %179 = phi i64 [%171, %$54] ; # Y\n  %180 = phi i64 [%172, %$54] ; # Z\n  br label %$56\n$55:\n  %181 = phi i64 [%163, %$51] ; # X\n  %182 = phi i64 [%164, %$51] ; # Y\n  %183 = phi i64 [%165, %$51] ; # Z\n; # (? (or (nil? (car Z)) (t? (car Z))) 0)\n; # (or (nil? (car Z)) (t? (car Z)))\n; # (car Z)\n  %184 = inttoptr i64 %183 to i64*\n  %185 = load i64, i64* %184\n; # (nil? (car Z))\n  %186 = icmp eq i64 %185, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %186, label %$59, label %$60\n$60:\n  %187 = phi i64 [%181, %$55] ; # X\n  %188 = phi i64 [%182, %$55] ; # Y\n  %189 = phi i64 [%183, %$55] ; # Z\n; # (car Z)\n  %190 = inttoptr i64 %189 to i64*\n  %191 = load i64, i64* %190\n; # (t? (car Z))\n  %192 = icmp eq i64 %191, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br label %$59\n$59:\n  %193 = phi i64 [%181, %$55], [%187, %$60] ; # X\n  %194 = phi i64 [%182, %$55], [%188, %$60] ; # Y\n  %195 = phi i64 [%183, %$55], [%189, %$60] ; # Z\n  %196 = phi i1 [1, %$55], [%192, %$60] ; # ->\n  br i1 %196, label %$62, label %$61\n$62:\n  %197 = phi i64 [%193, %$59] ; # X\n  %198 = phi i64 [%194, %$59] ; # Y\n  %199 = phi i64 [%195, %$59] ; # Z\n  br label %$13\n$61:\n  %200 = phi i64 [%193, %$59] ; # X\n  %201 = phi i64 [%194, %$59] ; # Y\n  %202 = phi i64 [%195, %$59] ; # Z\n  br label %$56\n$56:\n  %203 = phi i64 [%178, %$57], [%200, %$61] ; # X\n  %204 = phi i64 [%179, %$57], [%201, %$61] ; # Y\n  %205 = phi i64 [%180, %$57], [%202, %$61] ; # Z\n  br label %$53\n$52:\n  %206 = phi i64 [%155, %$12] ; # X\n  %207 = phi i64 [%159, %$12] ; # Y\n  %208 = phi i64 [%160, %$12] ; # Z\n; # (? (not (nil? Y)) 0)\n; # (nil? Y)\n  %209 = icmp eq i64 %207, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Y))\n  %210 = icmp eq i1 %209, 0\n  br i1 %210, label %$64, label %$63\n$64:\n  %211 = phi i64 [%206, %$52] ; # X\n  %212 = phi i64 [%207, %$52] ; # Y\n  %213 = phi i64 [%208, %$52] ; # Z\n  br label %$13\n$63:\n  %214 = phi i64 [%206, %$52] ; # X\n  %215 = phi i64 [%207, %$52] ; # Y\n  %216 = phi i64 [%208, %$52] ; # Z\n  br label %$53\n$53:\n  %217 = phi i64 [%203, %$56], [%214, %$63] ; # X\n  %218 = phi i64 [%204, %$56], [%215, %$63] ; # Y\n  %219 = phi i64 [%205, %$56], [%216, %$63] ; # Z\n  br label %$11\n$13:\n  %220 = phi i64 [%152, %$15], [%175, %$58], [%197, %$62], [%211, %$64] ; # X\n  %221 = phi i64 [%153, %$15], [%176, %$58], [%198, %$62], [%212, %$64] ; # Y\n  %222 = phi i64 [%154, %$15], [0, %$58], [0, %$62], [0, %$64] ; # ->\n  br label %$2\n$2:\n  %223 = phi i64 [%3, %$4], [%12, %$8], [%16, %$10], [%220, %$13] ; # X\n  %224 = phi i64 [%3, %$4], [0, %$8], [0, %$10], [%222, %$13] ; # ->\n  ret i64 %224\n}\n\ndefine i64 @_Tty(i64) align 8 {\n$1:\n; # (b8+ (ioFrame T))\n  %1 = alloca i8, i64 28, align 8\n; # (val $OutFiles)\n  %2 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %3 = getelementptr i8*, i8** %2, i32 2\n  %4 = load i8*, i8** %3\n; # (pushOutFile (b8+ (ioFrame T)) (val 3 (val $OutFiles)) 0)\n  call void @pushOutFile(i8* %1, i8* %4, i32 0)\n; # (prog2 (rlHide) (run (cdr Exe)) (rlShow) (popOutFiles))\n; # (rlHide)\n  call void @rlHide()\n; # (cdr Exe)\n  %5 = inttoptr i64 %0 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (run (cdr Exe))\n  br label %$2\n$2:\n  %8 = phi i64 [%7, %$1], [%38, %$11] ; # Prg\n  %9 = inttoptr i64 %8 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = load i64, i64* %9\n  %13 = and i64 %11, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$5, label %$3\n$5:\n  %15 = phi i64 [%11, %$2] ; # Prg\n  %16 = phi i64 [%12, %$2] ; # X\n  %17 = and i64 %16, 6\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$8, label %$7\n$8:\n  %19 = phi i64 [%16, %$5] ; # X\n  br label %$6\n$7:\n  %20 = phi i64 [%16, %$5] ; # X\n  %21 = and i64 %20, 8\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$10, label %$9\n$10:\n  %23 = phi i64 [%20, %$7] ; # X\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n  br label %$6\n$9:\n  %26 = phi i64 [%20, %$7] ; # X\n  %27 = call i64 @evList(i64 %26)\n  br label %$6\n$6:\n  %28 = phi i64 [%19, %$8], [%23, %$10], [%26, %$9] ; # X\n  %29 = phi i64 [%19, %$8], [%25, %$10], [%27, %$9] ; # ->\n  br label %$4\n$3:\n  %30 = phi i64 [%11, %$2] ; # Prg\n  %31 = phi i64 [%12, %$2] ; # X\n  %32 = and i64 %31, 15\n  %33 = icmp eq i64 %32, 0\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%30, %$3] ; # Prg\n  %35 = phi i64 [%31, %$3] ; # X\n  %36 = call i64 @evList(i64 %35)\n  %37 = icmp ne i64 %36, 0\n  br label %$11\n$11:\n  %38 = phi i64 [%30, %$3], [%34, %$12] ; # Prg\n  %39 = phi i64 [%31, %$3], [%35, %$12] ; # X\n  %40 = phi i1 [0, %$3], [%37, %$12] ; # ->\n  br label %$2\n$4:\n  %41 = phi i64 [%15, %$6] ; # Prg\n  %42 = phi i64 [%29, %$6] ; # ->\n; # (rlShow)\n  call void @rlShow()\n; # (popOutFiles)\n  call void @popOutFiles()\n  ret i64 %42\n}\n\ndefine i64 @_Prompt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (evSym X))) (prog2 (set $LinePrmt (se...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (prog2 (set $LinePrmt (set $ContPrmt (bufString Nm (b8 (bufSize N...\n; # (set $LinePrmt (set $ContPrmt (bufString Nm (b8 (bufSize Nm)))))\n; # (set $ContPrmt (bufString Nm (b8 (bufSize Nm))))\n; # (bufSize Nm)\n  %6 = call i64 @bufSize(i64 %5)\n; # (b8 (bufSize Nm))\n  %7 = alloca i8, i64 %6\n; # (bufString Nm (b8 (bufSize Nm)))\n  %8 = call i8* @bufString(i64 %5, i8* %7)\n  store i8* %8, i8** @$ContPrmt\n  store i8* %8, i8** @$LinePrmt\n; # (cdr X)\n  %9 = inttoptr i64 %3 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (run (cdr X))\n  br label %$2\n$2:\n  %12 = phi i64 [%11, %$1], [%42, %$11] ; # Prg\n  %13 = inttoptr i64 %12 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n  %16 = load i64, i64* %13\n  %17 = and i64 %15, 15\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$5, label %$3\n$5:\n  %19 = phi i64 [%15, %$2] ; # Prg\n  %20 = phi i64 [%16, %$2] ; # X\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$8, label %$7\n$8:\n  %23 = phi i64 [%20, %$5] ; # X\n  br label %$6\n$7:\n  %24 = phi i64 [%20, %$5] ; # X\n  %25 = and i64 %24, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$9\n$10:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$6\n$9:\n  %30 = phi i64 [%24, %$7] ; # X\n  %31 = call i64 @evList(i64 %30)\n  br label %$6\n$6:\n  %32 = phi i64 [%23, %$8], [%27, %$10], [%30, %$9] ; # X\n  %33 = phi i64 [%23, %$8], [%29, %$10], [%31, %$9] ; # ->\n  br label %$4\n$3:\n  %34 = phi i64 [%15, %$2] ; # Prg\n  %35 = phi i64 [%16, %$2] ; # X\n  %36 = and i64 %35, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$12, label %$11\n$12:\n  %38 = phi i64 [%34, %$3] ; # Prg\n  %39 = phi i64 [%35, %$3] ; # X\n  %40 = call i64 @evList(i64 %39)\n  %41 = icmp ne i64 %40, 0\n  br label %$11\n$11:\n  %42 = phi i64 [%34, %$3], [%38, %$12] ; # Prg\n  %43 = phi i64 [%35, %$3], [%39, %$12] ; # X\n  %44 = phi i1 [0, %$3], [%41, %$12] ; # ->\n  br label %$2\n$4:\n  %45 = phi i64 [%19, %$6] ; # Prg\n  %46 = phi i64 [%33, %$6] ; # ->\n; # (set $LinePrmt (set $ContPrmt null))\n; # (set $ContPrmt null)\n  store i8* null, i8** @$ContPrmt\n  store i8* null, i8** @$LinePrmt\n  ret i64 %46\n}\n\ndefine i64 @_Raw(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((atom X) (if (val Termio) $T $Nil)) ((nil...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((atom X) (if (val Termio) $T $Nil)) ((nil? (eval (car X)))...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (if (val Termio) $T $Nil)\n; # (val Termio)\n  %8 = load i8*, i8** @Termio\n  %9 = icmp ne i8* %8, null\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i64 [%6, %$4] ; # Exe\n  %11 = phi i64 [%7, %$4] ; # X\n  br label %$7\n$6:\n  %12 = phi i64 [%6, %$4] ; # Exe\n  %13 = phi i64 [%7, %$4] ; # X\n  br label %$7\n$7:\n  %14 = phi i64 [%10, %$5], [%12, %$6] ; # Exe\n  %15 = phi i64 [%11, %$5], [%13, %$6] ; # X\n  %16 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$5], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6] ; # ->\n  br label %$2\n$3:\n  %17 = phi i64 [%0, %$1] ; # Exe\n  %18 = phi i64 [%3, %$1] ; # X\n; # (car X)\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n; # (eval (car X))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$10, label %$9\n$10:\n  %23 = phi i64 [%20, %$3] ; # X\n  br label %$8\n$9:\n  %24 = phi i64 [%20, %$3] ; # X\n  %25 = and i64 %24, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$12, label %$11\n$12:\n  %27 = phi i64 [%24, %$9] ; # X\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$8\n$11:\n  %30 = phi i64 [%24, %$9] ; # X\n  %31 = call i64 @evList(i64 %30)\n  br label %$8\n$8:\n  %32 = phi i64 [%23, %$10], [%27, %$12], [%30, %$11] ; # X\n  %33 = phi i64 [%23, %$10], [%29, %$12], [%31, %$11] ; # ->\n; # (nil? (eval (car X)))\n  %34 = icmp eq i64 %33, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %34, label %$14, label %$13\n$14:\n  %35 = phi i64 [%17, %$8] ; # Exe\n  %36 = phi i64 [%18, %$8] ; # X\n; # (setCooked)\n  call void @setCooked()\n  br label %$2\n$13:\n  %37 = phi i64 [%17, %$8] ; # Exe\n  %38 = phi i64 [%18, %$8] ; # X\n; # (setRaw)\n  call void @setRaw()\n  br label %$2\n$2:\n  %39 = phi i64 [%14, %$7], [%35, %$14], [%37, %$13] ; # Exe\n  %40 = phi i64 [%15, %$7], [%36, %$14], [%38, %$13] ; # X\n  %41 = phi i64 [%16, %$7], [%33, %$14], [%33, %$13] ; # ->\n  ret i64 %41\n}\n\ndefine i64 @_Alarm(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (prog1 (cnt (i64 (alarm (i32 (evCnt Exe X))))) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (prog1 (cnt (i64 (alarm (i32 (evCnt Exe X))))) (set $Alarm (cdr X...\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (i32 (evCnt Exe X))\n  %5 = trunc i64 %4 to i32\n; # (alarm (i32 (evCnt Exe X)))\n  %6 = call i32 @alarm(i32 %5)\n; # (i64 (alarm (i32 (evCnt Exe X))))\n  %7 = sext i32 %6 to i64\n; # (cnt (i64 (alarm (i32 (evCnt Exe X)))))\n  %8 = shl i64 %7, 4\n  %9 = or i64 %8, 2\n; # (set $Alarm (cdr X))\n; # (cdr X)\n  %10 = inttoptr i64 %3 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 24) to i64) to i64*\n  store i64 %12, i64* %13\n  ret i64 %9\n}\n\ndefine i64 @_Sigio(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Fd (evCnt Exe X)) (set $Sigio (cdr X)) (fcntlSe...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (set $Sigio (cdr X))\n; # (cdr X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 32) to i64) to i64*\n  store i64 %7, i64* %8\n; # (i32 Fd)\n  %9 = trunc i64 %4 to i32\n; # (val $Pid)\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 200) to i64) to i64*\n  %11 = load i64, i64* %10\n; # (int (val $Pid))\n  %12 = lshr i64 %11, 4\n; # (i32 (int (val $Pid)))\n  %13 = trunc i64 %12 to i32\n; # (fcntlSetOwn (i32 Fd) (i32 (int (val $Pid))))\n  call void @fcntlSetOwn(i32 %9, i32 %13)\n; # (cnt Fd)\n  %14 = shl i64 %4, 4\n  %15 = or i64 %14, 2\n  ret i64 %15\n}\n\ndefine i64 @_Kids(i64) align 8 {\n$1:\n; # (let (X $Nil Cld (val $Child) <Cld (ofs Cld (* (val $Children) (c...\n; # (val $Child)\n  %1 = load i8*, i8** @$Child\n; # (val $Children)\n  %2 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %3 = mul i32 %2, 32\n; # (ofs Cld (* (val $Children) (child T)))\n  %4 = getelementptr i8, i8* %1, i32 %3\n; # (until (== Cld <Cld) (when ((child Cld) pid) (setq X (cons (cnt (...\n  br label %$2\n$2:\n  %5 = phi i64 [%0, %$1], [%26, %$6] ; # Exe\n  %6 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1], [%27, %$6] ; # X\n  %7 = phi i8* [%1, %$1], [%30, %$6] ; # Cld\n  %8 = phi i8* [%4, %$1], [%29, %$6] ; # <Cld\n; # (== Cld <Cld)\n  %9 = icmp eq i8* %7, %8\n  br i1 %9, label %$4, label %$3\n$3:\n  %10 = phi i64 [%5, %$2] ; # Exe\n  %11 = phi i64 [%6, %$2] ; # X\n  %12 = phi i8* [%7, %$2] ; # Cld\n  %13 = phi i8* [%8, %$2] ; # <Cld\n; # (when ((child Cld) pid) (setq X (cons (cnt (i64 @)) X)))\n; # ((child Cld) pid)\n  %14 = getelementptr i8, i8* %12, i32 16\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n  %17 = icmp ne i32 %16, 0\n  br i1 %17, label %$5, label %$6\n$5:\n  %18 = phi i64 [%10, %$3] ; # Exe\n  %19 = phi i64 [%11, %$3] ; # X\n  %20 = phi i8* [%12, %$3] ; # Cld\n  %21 = phi i8* [%13, %$3] ; # <Cld\n; # (i64 @)\n  %22 = sext i32 %16 to i64\n; # (cnt (i64 @))\n  %23 = shl i64 %22, 4\n  %24 = or i64 %23, 2\n; # (cons (cnt (i64 @)) X)\n  %25 = call i64 @cons(i64 %24, i64 %19)\n  br label %$6\n$6:\n  %26 = phi i64 [%10, %$3], [%18, %$5] ; # Exe\n  %27 = phi i64 [%11, %$3], [%25, %$5] ; # X\n  %28 = phi i8* [%12, %$3], [%20, %$5] ; # Cld\n  %29 = phi i8* [%13, %$3], [%21, %$5] ; # <Cld\n; # (ofs Cld (child T))\n  %30 = getelementptr i8, i8* %28, i32 32\n  br label %$2\n$4:\n  %31 = phi i64 [%5, %$2] ; # Exe\n  %32 = phi i64 [%6, %$2] ; # X\n  %33 = phi i8* [%7, %$2] ; # Cld\n  %34 = phi i8* [%8, %$2] ; # <Cld\n  ret i64 %32\n}\n\ndefine i64 @_Protect(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (prog2 (set $Protect (+ (val $Protect) 1)) (run ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (prog2 (set $Protect (+ (val $Protect) 1)) (run X) (set $Protect ...\n; # (set $Protect (+ (val $Protect) 1))\n; # (val $Protect)\n  %4 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (+ (val $Protect) 1)\n  %5 = add i32 %4, 1\n  store i32 %5, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (run X)\n  br label %$2\n$2:\n  %6 = phi i64 [%3, %$1], [%36, %$11] ; # Prg\n  %7 = inttoptr i64 %6 to i64*\n  %8 = getelementptr i64, i64* %7, i32 1\n  %9 = load i64, i64* %8\n  %10 = load i64, i64* %7\n  %11 = and i64 %9, 15\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$5, label %$3\n$5:\n  %13 = phi i64 [%9, %$2] ; # Prg\n  %14 = phi i64 [%10, %$2] ; # X\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$8, label %$7\n$8:\n  %17 = phi i64 [%14, %$5] ; # X\n  br label %$6\n$7:\n  %18 = phi i64 [%14, %$5] ; # X\n  %19 = and i64 %18, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$10, label %$9\n$10:\n  %21 = phi i64 [%18, %$7] ; # X\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$6\n$9:\n  %24 = phi i64 [%18, %$7] ; # X\n  %25 = call i64 @evList(i64 %24)\n  br label %$6\n$6:\n  %26 = phi i64 [%17, %$8], [%21, %$10], [%24, %$9] ; # X\n  %27 = phi i64 [%17, %$8], [%23, %$10], [%25, %$9] ; # ->\n  br label %$4\n$3:\n  %28 = phi i64 [%9, %$2] ; # Prg\n  %29 = phi i64 [%10, %$2] ; # X\n  %30 = and i64 %29, 15\n  %31 = icmp eq i64 %30, 0\n  br i1 %31, label %$12, label %$11\n$12:\n  %32 = phi i64 [%28, %$3] ; # Prg\n  %33 = phi i64 [%29, %$3] ; # X\n  %34 = call i64 @evList(i64 %33)\n  %35 = icmp ne i64 %34, 0\n  br label %$11\n$11:\n  %36 = phi i64 [%28, %$3], [%32, %$12] ; # Prg\n  %37 = phi i64 [%29, %$3], [%33, %$12] ; # X\n  %38 = phi i1 [0, %$3], [%35, %$12] ; # ->\n  br label %$2\n$4:\n  %39 = phi i64 [%13, %$6] ; # Prg\n  %40 = phi i64 [%27, %$6] ; # ->\n; # (set $Protect (- (val $Protect) 1))\n; # (val $Protect)\n  %41 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (- (val $Protect) 1)\n  %42 = sub i32 %41, 1\n  store i32 %42, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  ret i64 %40\n}\n\ndefine i64 @_Heap(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) (let (N 1 P (val $Heaps)) (while (se...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n; # (let (N 1 P (val $Heaps)) (while (setq P (val (ofs P HEAP))) (inc...\n; # (val $Heaps)\n  %21 = load i64, i64* @$Heaps\n; # (while (setq P (val (ofs P HEAP))) (inc 'N))\n  br label %$10\n$10:\n  %22 = phi i64 [%20, %$7], [%29, %$11] ; # Exe\n  %23 = phi i64 [1, %$7], [%32, %$11] ; # N\n  %24 = phi i64 [%21, %$7], [%31, %$11] ; # P\n; # (ofs P HEAP)\n  %25 = add i64 %24, 1048576\n; # (val (ofs P HEAP))\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$11, label %$12\n$11:\n  %29 = phi i64 [%22, %$10] ; # Exe\n  %30 = phi i64 [%23, %$10] ; # N\n  %31 = phi i64 [%27, %$10] ; # P\n; # (inc 'N)\n  %32 = add i64 %30, 1\n  br label %$10\n$12:\n  %33 = phi i64 [%22, %$10] ; # Exe\n  %34 = phi i64 [%23, %$10] ; # N\n  %35 = phi i64 [%27, %$10] ; # P\n; # (cnt N)\n  %36 = shl i64 %34, 4\n  %37 = or i64 %36, 2\n  br label %$9\n$8:\n  %38 = phi i64 [%0, %$2] ; # Exe\n; # (let (N 0 P (val $Avail)) (while P (inc 'N) (setq P (car P))) (cn...\n; # (val $Avail)\n  %39 = load i64, i64* @$Avail\n; # (while P (inc 'N) (setq P (car P)))\n  br label %$13\n$13:\n  %40 = phi i64 [%38, %$8], [%44, %$14] ; # Exe\n  %41 = phi i64 [0, %$8], [%47, %$14] ; # N\n  %42 = phi i64 [%39, %$8], [%49, %$14] ; # P\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$14, label %$15\n$14:\n  %44 = phi i64 [%40, %$13] ; # Exe\n  %45 = phi i64 [%41, %$13] ; # N\n  %46 = phi i64 [%42, %$13] ; # P\n; # (inc 'N)\n  %47 = add i64 %45, 1\n; # (car P)\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n  br label %$13\n$15:\n  %50 = phi i64 [%40, %$13] ; # Exe\n  %51 = phi i64 [%41, %$13] ; # N\n  %52 = phi i64 [%42, %$13] ; # P\n; # (- 20 4)\n; # (shr N (- 20 4))\n  %53 = lshr i64 %51, 16\n; # (cnt (shr N (- 20 4)))\n  %54 = shl i64 %53, 4\n  %55 = or i64 %54, 2\n  br label %$9\n$9:\n  %56 = phi i64 [%33, %$12], [%50, %$15] ; # Exe\n  %57 = phi i64 [%37, %$12], [%55, %$15] ; # ->\n  ret i64 %57\n}\n\ndefine i64 @_Stack(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Crt (val $Coroutines)) (if (or (atom X) (and Cr...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $Coroutines)\n  %4 = load i8*, i8** @$Coroutines\n; # (if (or (atom X) (and Crt ((coroutine Crt) nxt))) (let R (cnt (sh...\n; # (or (atom X) (and Crt ((coroutine Crt) nxt)))\n; # (atom X)\n  %5 = and i64 %3, 15\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$2, label %$3\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n  %9 = phi i8* [%4, %$1] ; # Crt\n; # (and Crt ((coroutine Crt) nxt))\n  %10 = icmp ne i8* %9, null\n  br i1 %10, label %$5, label %$4\n$5:\n  %11 = phi i64 [%7, %$3] ; # Exe\n  %12 = phi i64 [%8, %$3] ; # X\n  %13 = phi i8* [%9, %$3] ; # Crt\n; # ((coroutine Crt) nxt)\n  %14 = getelementptr i8, i8* %13, i32 8\n  %15 = bitcast i8* %14 to i8**\n  %16 = load i8*, i8** %15\n  %17 = icmp ne i8* %16, null\n  br label %$4\n$4:\n  %18 = phi i64 [%7, %$3], [%11, %$5] ; # Exe\n  %19 = phi i64 [%8, %$3], [%12, %$5] ; # X\n  %20 = phi i8* [%9, %$3], [%13, %$5] ; # Crt\n  %21 = phi i1 [0, %$3], [%17, %$5] ; # ->\n  br label %$2\n$2:\n  %22 = phi i64 [%0, %$1], [%18, %$4] ; # Exe\n  %23 = phi i64 [%3, %$1], [%19, %$4] ; # X\n  %24 = phi i8* [%4, %$1], [%20, %$4] ; # Crt\n  %25 = phi i1 [1, %$1], [%21, %$4] ; # ->\n  br i1 %25, label %$6, label %$7\n$6:\n  %26 = phi i64 [%22, %$2] ; # Exe\n  %27 = phi i64 [%23, %$2] ; # X\n  %28 = phi i8* [%24, %$2] ; # Crt\n; # (let R (cnt (shr (val $StkSize) 10)) (while Crt (let Crt: (corout...\n; # (val $StkSize)\n  %29 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 10)\n  %30 = lshr i64 %29, 10\n; # (cnt (shr (val $StkSize) 10))\n  %31 = shl i64 %30, 4\n  %32 = or i64 %31, 2\n; # (while Crt (let Crt: (coroutine Crt) (when (Crt: tag) (let P (Crt...\n  br label %$9\n$9:\n  %33 = phi i64 [%26, %$6], [%84, %$13] ; # Exe\n  %34 = phi i64 [%27, %$6], [%85, %$13] ; # X\n  %35 = phi i8* [%28, %$6], [%90, %$13] ; # Crt\n  %36 = phi i64 [%32, %$6], [%87, %$13] ; # R\n  %37 = icmp ne i8* %35, null\n  br i1 %37, label %$10, label %$11\n$10:\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = phi i64 [%34, %$9] ; # X\n  %40 = phi i8* [%35, %$9] ; # Crt\n  %41 = phi i64 [%36, %$9] ; # R\n; # (let Crt: (coroutine Crt) (when (Crt: tag) (let P (Crt: lim) (whi...\n; # (when (Crt: tag) (let P (Crt: lim) (while (== 7 (val P)) (inc 'P)...\n; # (Crt: tag)\n  %42 = ptrtoint i8* %40 to i64\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$12, label %$13\n$12:\n  %46 = phi i64 [%38, %$10] ; # Exe\n  %47 = phi i64 [%39, %$10] ; # X\n  %48 = phi i8* [%40, %$10] ; # Crt\n  %49 = phi i64 [%41, %$10] ; # R\n; # (let P (Crt: lim) (while (== 7 (val P)) (inc 'P)) (setq R (cons2 ...\n; # (Crt: lim)\n  %50 = getelementptr i8, i8* %40, i32 40\n  %51 = bitcast i8* %50 to i8**\n  %52 = load i8*, i8** %51\n; # (while (== 7 (val P)) (inc 'P))\n  br label %$14\n$14:\n  %53 = phi i64 [%46, %$12], [%60, %$15] ; # Exe\n  %54 = phi i64 [%47, %$12], [%61, %$15] ; # X\n  %55 = phi i8* [%48, %$12], [%62, %$15] ; # Crt\n  %56 = phi i64 [%49, %$12], [%63, %$15] ; # R\n  %57 = phi i8* [%52, %$12], [%65, %$15] ; # P\n; # (val P)\n  %58 = load i8, i8* %57\n; # (== 7 (val P))\n  %59 = icmp eq i8 7, %58\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%53, %$14] ; # Exe\n  %61 = phi i64 [%54, %$14] ; # X\n  %62 = phi i8* [%55, %$14] ; # Crt\n  %63 = phi i64 [%56, %$14] ; # R\n  %64 = phi i8* [%57, %$14] ; # P\n; # (inc 'P)\n  %65 = getelementptr i8, i8* %64, i32 1\n  br label %$14\n$16:\n  %66 = phi i64 [%53, %$14] ; # Exe\n  %67 = phi i64 [%54, %$14] ; # X\n  %68 = phi i8* [%55, %$14] ; # Crt\n  %69 = phi i64 [%56, %$14] ; # R\n  %70 = phi i8* [%57, %$14] ; # P\n; # (Crt: tag)\n  %71 = ptrtoint i8* %40 to i64\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n; # (Crt: lim)\n  %74 = getelementptr i8, i8* %40, i32 40\n  %75 = bitcast i8* %74 to i8**\n  %76 = load i8*, i8** %75\n; # (- P (Crt: lim))\n  %77 = ptrtoint i8* %70 to i64\n  %78 = ptrtoint i8* %76 to i64\n  %79 = sub i64 %77, %78\n; # (shr (- P (Crt: lim)) 10)\n  %80 = lshr i64 %79, 10\n; # (cnt (shr (- P (Crt: lim)) 10))\n  %81 = shl i64 %80, 4\n  %82 = or i64 %81, 2\n; # (cons2 (Crt: tag) (cnt (shr (- P (Crt: lim)) 10)) R)\n  %83 = call i64 @cons2(i64 %73, i64 %82, i64 %69)\n  br label %$13\n$13:\n  %84 = phi i64 [%38, %$10], [%66, %$16] ; # Exe\n  %85 = phi i64 [%39, %$10], [%67, %$16] ; # X\n  %86 = phi i8* [%40, %$10], [%68, %$16] ; # Crt\n  %87 = phi i64 [%41, %$10], [%83, %$16] ; # R\n; # (Crt: nxt)\n  %88 = getelementptr i8, i8* %40, i32 8\n  %89 = bitcast i8* %88 to i8**\n  %90 = load i8*, i8** %89\n  br label %$9\n$11:\n  %91 = phi i64 [%33, %$9] ; # Exe\n  %92 = phi i64 [%34, %$9] ; # X\n  %93 = phi i8* [%35, %$9] ; # Crt\n  %94 = phi i64 [%36, %$9] ; # R\n  br label %$8\n$7:\n  %95 = phi i64 [%22, %$2] ; # Exe\n  %96 = phi i64 [%23, %$2] ; # X\n  %97 = phi i8* [%24, %$2] ; # Crt\n; # (let N (evCnt Exe X) (set $StkSize (shl N 10)) (when (pair (shift...\n; # (evCnt Exe X)\n  %98 = call i64 @evCnt(i64 %95, i64 %96)\n; # (set $StkSize (shl N 10))\n; # (shl N 10)\n  %99 = shl i64 %98, 10\n  store i64 %99, i64* @$StkSize\n; # (when (pair (shift X)) (set $StkSizeT (shl (evCnt Exe X) 10)))\n; # (shift X)\n  %100 = inttoptr i64 %96 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n; # (pair (shift X))\n  %103 = and i64 %102, 15\n  %104 = icmp eq i64 %103, 0\n  br i1 %104, label %$17, label %$18\n$17:\n  %105 = phi i64 [%95, %$7] ; # Exe\n  %106 = phi i64 [%102, %$7] ; # X\n  %107 = phi i8* [%97, %$7] ; # Crt\n  %108 = phi i64 [%98, %$7] ; # N\n; # (set $StkSizeT (shl (evCnt Exe X) 10))\n; # (evCnt Exe X)\n  %109 = call i64 @evCnt(i64 %105, i64 %106)\n; # (shl (evCnt Exe X) 10)\n  %110 = shl i64 %109, 10\n  store i64 %110, i64* @$StkSizeT\n  br label %$18\n$18:\n  %111 = phi i64 [%95, %$7], [%105, %$17] ; # Exe\n  %112 = phi i64 [%102, %$7], [%106, %$17] ; # X\n  %113 = phi i8* [%97, %$7], [%107, %$17] ; # Crt\n  %114 = phi i64 [%98, %$7], [%108, %$17] ; # N\n; # (when Crt (let (Siz (val $StkSizeT) Stk (stack)) (memset ((corout...\n  %115 = icmp ne i8* %113, null\n  br i1 %115, label %$19, label %$20\n$19:\n  %116 = phi i64 [%111, %$18] ; # Exe\n  %117 = phi i64 [%112, %$18] ; # X\n  %118 = phi i8* [%113, %$18] ; # Crt\n  %119 = phi i64 [%114, %$18] ; # N\n; # (let (Siz (val $StkSizeT) Stk (stack)) (memset ((coroutine Crt) l...\n; # (val $StkSizeT)\n  %120 = load i64, i64* @$StkSizeT\n; # (stack)\n  %121 = call i8* @llvm.stacksave()\n; # ((coroutine Crt) lim (stack (ofs Stk (- Siz))))\n  %122 = getelementptr i8, i8* %118, i32 40\n  %123 = bitcast i8* %122 to i8**\n  %124 = sub i64 0, %120\n  %125 = getelementptr i8, i8* %121, i64 %124\n  call void @llvm.stackrestore(i8* %125)\n  store i8* %125, i8** %123\n; # (- Siz 256)\n  %126 = sub i64 %120, 256\n; # (memset ((coroutine Crt) lim (stack (ofs Stk (- Siz)))) 7 (- Siz ...\n  call void @llvm.memset.p0i8.i64(i8* align 8 %125, i8 7, i64 %126, i1 0)\n; # (stack Stk)\n  call void @llvm.stackrestore(i8* %121)\n  br label %$20\n$20:\n  %127 = phi i64 [%111, %$18], [%116, %$19] ; # Exe\n  %128 = phi i64 [%112, %$18], [%117, %$19] ; # X\n  %129 = phi i8* [%113, %$18], [%118, %$19] ; # Crt\n  %130 = phi i64 [%114, %$18], [%119, %$19] ; # N\n; # (cnt N)\n  %131 = shl i64 %130, 4\n  %132 = or i64 %131, 2\n  br label %$8\n$8:\n  %133 = phi i64 [%91, %$11], [%127, %$20] ; # Exe\n  %134 = phi i64 [%92, %$11], [%128, %$20] ; # X\n  %135 = phi i8* [%93, %$11], [%129, %$20] ; # Crt\n  %136 = phi i64 [%94, %$11], [%132, %$20] ; # ->\n  ret i64 %136\n}\n\ndefine i64 @tmDate(i64, i64, i64) align 8 {\n$1:\n; # (if (and (gt0 Y) (gt0 M) (>= 12 M) (gt0 D) (or (>= (i64 (val (ofs...\n; # (and (gt0 Y) (gt0 M) (>= 12 M) (gt0 D) (or (>= (i64 (val (ofs $Mo...\n; # (gt0 Y)\n  %3 = icmp sgt i64 %0, 0\n  br i1 %3, label %$3, label %$2\n$3:\n  %4 = phi i64 [%0, %$1] ; # Y\n  %5 = phi i64 [%1, %$1] ; # M\n  %6 = phi i64 [%2, %$1] ; # D\n; # (gt0 M)\n  %7 = icmp sgt i64 %5, 0\n  br i1 %7, label %$4, label %$2\n$4:\n  %8 = phi i64 [%4, %$3] ; # Y\n  %9 = phi i64 [%5, %$3] ; # M\n  %10 = phi i64 [%6, %$3] ; # D\n; # (>= 12 M)\n  %11 = icmp uge i64 12, %9\n  br i1 %11, label %$5, label %$2\n$5:\n  %12 = phi i64 [%8, %$4] ; # Y\n  %13 = phi i64 [%9, %$4] ; # M\n  %14 = phi i64 [%10, %$4] ; # D\n; # (gt0 D)\n  %15 = icmp sgt i64 %14, 0\n  br i1 %15, label %$6, label %$2\n$6:\n  %16 = phi i64 [%12, %$5] ; # Y\n  %17 = phi i64 [%13, %$5] ; # M\n  %18 = phi i64 [%14, %$5] ; # D\n; # (or (>= (i64 (val (ofs $Month M))) D) (and (== D 29) (== M 2) (=0...\n; # (ofs $Month M)\n  %19 = getelementptr i8, i8* bitcast ([13 x i8]* @$Month to i8*), i64 %17\n; # (val (ofs $Month M))\n  %20 = load i8, i8* %19\n; # (i64 (val (ofs $Month M)))\n  %21 = zext i8 %20 to i64\n; # (>= (i64 (val (ofs $Month M))) D)\n  %22 = icmp uge i64 %21, %18\n  br i1 %22, label %$7, label %$8\n$8:\n  %23 = phi i64 [%16, %$6] ; # Y\n  %24 = phi i64 [%17, %$6] ; # M\n  %25 = phi i64 [%18, %$6] ; # D\n; # (and (== D 29) (== M 2) (=0 (% Y 4)) (or (% Y 100) (=0 (% Y 400))...\n; # (== D 29)\n  %26 = icmp eq i64 %25, 29\n  br i1 %26, label %$10, label %$9\n$10:\n  %27 = phi i64 [%23, %$8] ; # Y\n  %28 = phi i64 [%24, %$8] ; # M\n  %29 = phi i64 [%25, %$8] ; # D\n; # (== M 2)\n  %30 = icmp eq i64 %28, 2\n  br i1 %30, label %$11, label %$9\n$11:\n  %31 = phi i64 [%27, %$10] ; # Y\n  %32 = phi i64 [%28, %$10] ; # M\n  %33 = phi i64 [%29, %$10] ; # D\n; # (% Y 4)\n  %34 = urem i64 %31, 4\n; # (=0 (% Y 4))\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$12, label %$9\n$12:\n  %36 = phi i64 [%31, %$11] ; # Y\n  %37 = phi i64 [%32, %$11] ; # M\n  %38 = phi i64 [%33, %$11] ; # D\n; # (or (% Y 100) (=0 (% Y 400)))\n; # (% Y 100)\n  %39 = urem i64 %36, 100\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$13, label %$14\n$14:\n  %41 = phi i64 [%36, %$12] ; # Y\n  %42 = phi i64 [%37, %$12] ; # M\n  %43 = phi i64 [%38, %$12] ; # D\n; # (% Y 400)\n  %44 = urem i64 %41, 400\n; # (=0 (% Y 400))\n  %45 = icmp eq i64 %44, 0\n  br label %$13\n$13:\n  %46 = phi i64 [%36, %$12], [%41, %$14] ; # Y\n  %47 = phi i64 [%37, %$12], [%42, %$14] ; # M\n  %48 = phi i64 [%38, %$12], [%43, %$14] ; # D\n  %49 = phi i1 [1, %$12], [%45, %$14] ; # ->\n  br label %$9\n$9:\n  %50 = phi i64 [%23, %$8], [%27, %$10], [%31, %$11], [%46, %$13] ; # Y\n  %51 = phi i64 [%24, %$8], [%28, %$10], [%32, %$11], [%47, %$13] ; # M\n  %52 = phi i64 [%25, %$8], [%29, %$10], [%33, %$11], [%48, %$13] ; # D\n  %53 = phi i1 [0, %$8], [0, %$10], [0, %$11], [%49, %$13] ; # ->\n  br label %$7\n$7:\n  %54 = phi i64 [%16, %$6], [%50, %$9] ; # Y\n  %55 = phi i64 [%17, %$6], [%51, %$9] ; # M\n  %56 = phi i64 [%18, %$6], [%52, %$9] ; # D\n  %57 = phi i1 [1, %$6], [%53, %$9] ; # ->\n  br label %$2\n$2:\n  %58 = phi i64 [%0, %$1], [%4, %$3], [%8, %$4], [%12, %$5], [%54, %$7] ; # Y\n  %59 = phi i64 [%1, %$1], [%5, %$3], [%9, %$4], [%13, %$5], [%55, %$7] ; # M\n  %60 = phi i64 [%2, %$1], [%6, %$3], [%10, %$4], [%14, %$5], [%56, %$7] ; # D\n  %61 = phi i1 [0, %$1], [0, %$3], [0, %$4], [0, %$5], [%57, %$7] ; # ->\n  br i1 %61, label %$15, label %$16\n$15:\n  %62 = phi i64 [%58, %$2] ; # Y\n  %63 = phi i64 [%59, %$2] ; # M\n  %64 = phi i64 [%60, %$2] ; # D\n; # (let N (/ (+ (* Y 12) M -3) 12) (cnt (- (+ (/ (+ (* Y 4404) (* M ...\n; # (* Y 12)\n  %65 = mul i64 %62, 12\n; # (+ (* Y 12) M -3)\n  %66 = add i64 %65, %63\n  %67 = add i64 %66, -3\n; # (/ (+ (* Y 12) M -3) 12)\n  %68 = udiv i64 %67, 12\n; # (* Y 4404)\n  %69 = mul i64 %62, 4404\n; # (* M 367)\n  %70 = mul i64 %63, 367\n; # (+ (* Y 4404) (* M 367) -1094)\n  %71 = add i64 %69, %70\n  %72 = add i64 %71, -1094\n; # (/ (+ (* Y 4404) (* M 367) -1094) 12)\n  %73 = udiv i64 %72, 12\n; # (/ N 4)\n  %74 = udiv i64 %68, 4\n; # (/ N 400)\n  %75 = udiv i64 %68, 400\n; # (+ (/ (+ (* Y 4404) (* M 367) -1094) 12) (/ N 4) (/ N 400) D)\n  %76 = add i64 %73, %74\n  %77 = add i64 %76, %75\n  %78 = add i64 %77, %64\n; # (* 2 N)\n  %79 = mul i64 2, %68\n; # (/ N 100)\n  %80 = udiv i64 %68, 100\n; # (- (+ (/ (+ (* Y 4404) (* M 367) -1094) 12) (/ N 4) (/ N 400) D) ...\n  %81 = sub i64 %78, %79\n  %82 = sub i64 %81, %80\n; # (cnt (- (+ (/ (+ (* Y 4404) (* M 367) -1094) 12) (/ N 4) (/ N 400...\n  %83 = shl i64 %82, 4\n  %84 = or i64 %83, 2\n  br label %$17\n$16:\n  %85 = phi i64 [%58, %$2] ; # Y\n  %86 = phi i64 [%59, %$2] ; # M\n  %87 = phi i64 [%60, %$2] ; # D\n  br label %$17\n$17:\n  %88 = phi i64 [%62, %$15], [%85, %$16] ; # Y\n  %89 = phi i64 [%63, %$15], [%86, %$16] ; # M\n  %90 = phi i64 [%64, %$15], [%87, %$16] ; # D\n  %91 = phi i64 [%84, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16] ; # ->\n  ret i64 %91\n}\n\ndefine i64 @tmTime(i64, i64, i64) align 8 {\n$1:\n; # (if (and (ge0 H) (ge0 M) (> 60 M) (ge0 S) (> 60 S)) (cnt (+ (* H ...\n; # (and (ge0 H) (ge0 M) (> 60 M) (ge0 S) (> 60 S))\n; # (ge0 H)\n  %3 = icmp sge i64 %0, 0\n  br i1 %3, label %$3, label %$2\n$3:\n  %4 = phi i64 [%0, %$1] ; # H\n  %5 = phi i64 [%1, %$1] ; # M\n  %6 = phi i64 [%2, %$1] ; # S\n; # (ge0 M)\n  %7 = icmp sge i64 %5, 0\n  br i1 %7, label %$4, label %$2\n$4:\n  %8 = phi i64 [%4, %$3] ; # H\n  %9 = phi i64 [%5, %$3] ; # M\n  %10 = phi i64 [%6, %$3] ; # S\n; # (> 60 M)\n  %11 = icmp ugt i64 60, %9\n  br i1 %11, label %$5, label %$2\n$5:\n  %12 = phi i64 [%8, %$4] ; # H\n  %13 = phi i64 [%9, %$4] ; # M\n  %14 = phi i64 [%10, %$4] ; # S\n; # (ge0 S)\n  %15 = icmp sge i64 %14, 0\n  br i1 %15, label %$6, label %$2\n$6:\n  %16 = phi i64 [%12, %$5] ; # H\n  %17 = phi i64 [%13, %$5] ; # M\n  %18 = phi i64 [%14, %$5] ; # S\n; # (> 60 S)\n  %19 = icmp ugt i64 60, %18\n  br label %$2\n$2:\n  %20 = phi i64 [%0, %$1], [%4, %$3], [%8, %$4], [%12, %$5], [%16, %$6] ; # H\n  %21 = phi i64 [%1, %$1], [%5, %$3], [%9, %$4], [%13, %$5], [%17, %$6] ; # M\n  %22 = phi i64 [%2, %$1], [%6, %$3], [%10, %$4], [%14, %$5], [%18, %$6] ; # S\n  %23 = phi i1 [0, %$1], [0, %$3], [0, %$4], [0, %$5], [%19, %$6] ; # ->\n  br i1 %23, label %$7, label %$8\n$7:\n  %24 = phi i64 [%20, %$2] ; # H\n  %25 = phi i64 [%21, %$2] ; # M\n  %26 = phi i64 [%22, %$2] ; # S\n; # (* H 3600)\n  %27 = mul i64 %24, 3600\n; # (* M 60)\n  %28 = mul i64 %25, 60\n; # (+ (* H 3600) (* M 60) S)\n  %29 = add i64 %27, %28\n  %30 = add i64 %29, %26\n; # (cnt (+ (* H 3600) (* M 60) S))\n  %31 = shl i64 %30, 4\n  %32 = or i64 %31, 2\n  br label %$9\n$8:\n  %33 = phi i64 [%20, %$2] ; # H\n  %34 = phi i64 [%21, %$2] ; # M\n  %35 = phi i64 [%22, %$2] ; # S\n  br label %$9\n$9:\n  %36 = phi i64 [%24, %$7], [%33, %$8] ; # H\n  %37 = phi i64 [%25, %$7], [%34, %$8] ; # M\n  %38 = phi i64 [%26, %$7], [%35, %$8] ; # S\n  %39 = phi i64 [%32, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %39\n}\n\ndefine i64 @_Date(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((atom X) (let N (getDate) (tmDate (& N (h...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((atom X) (let N (getDate) (tmDate (& N (hex \"FFFF\")) (& (s...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (let N (getDate) (tmDate (& N (hex \"FFFF\")) (& (shr N 16) (hex \"F...\n; # (getDate)\n  %8 = call i64 @getDate()\n; # (& N (hex \"FFFF\"))\n  %9 = and i64 %8, 65535\n; # (shr N 16)\n  %10 = lshr i64 %8, 16\n; # (& (shr N 16) (hex \"FF\"))\n  %11 = and i64 %10, 255\n; # (shr N 24)\n  %12 = lshr i64 %8, 24\n; # (& (shr N 24) (hex \"FF\"))\n  %13 = and i64 %12, 255\n; # (tmDate (& N (hex \"FFFF\")) (& (shr N 16) (hex \"FF\")) (& (shr N 24...\n  %14 = call i64 @tmDate(i64 %9, i64 %11, i64 %13)\n  br label %$2\n$3:\n  %15 = phi i64 [%0, %$1] ; # Exe\n  %16 = phi i64 [%3, %$1] ; # X\n; # (car X)\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n; # (eval (car X))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$6\n$7:\n  %21 = phi i64 [%18, %$3] ; # X\n  br label %$5\n$6:\n  %22 = phi i64 [%18, %$3] ; # X\n  %23 = and i64 %22, 8\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$9, label %$8\n$9:\n  %25 = phi i64 [%22, %$6] ; # X\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n  br label %$5\n$8:\n  %28 = phi i64 [%22, %$6] ; # X\n  %29 = call i64 @evList(i64 %28)\n  br label %$5\n$5:\n  %30 = phi i64 [%21, %$7], [%25, %$9], [%28, %$8] ; # X\n  %31 = phi i64 [%21, %$7], [%27, %$9], [%29, %$8] ; # ->\n; # (t? (eval (car X)))\n  %32 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %32, label %$11, label %$10\n$11:\n  %33 = phi i64 [%15, %$5] ; # Exe\n  %34 = phi i64 [%16, %$5] ; # X\n; # (let N (getGmDate) (tmDate (& N (hex \"FFFF\")) (& (shr N 16) (hex ...\n; # (getGmDate)\n  %35 = call i64 @getGmDate()\n; # (& N (hex \"FFFF\"))\n  %36 = and i64 %35, 65535\n; # (shr N 16)\n  %37 = lshr i64 %35, 16\n; # (& (shr N 16) (hex \"FF\"))\n  %38 = and i64 %37, 255\n; # (shr N 24)\n  %39 = lshr i64 %35, 24\n; # (& (shr N 24) (hex \"FF\"))\n  %40 = and i64 %39, 255\n; # (tmDate (& N (hex \"FFFF\")) (& (shr N 16) (hex \"FF\")) (& (shr N 24...\n  %41 = call i64 @tmDate(i64 %36, i64 %38, i64 %40)\n  br label %$2\n$10:\n  %42 = phi i64 [%15, %$5] ; # Exe\n  %43 = phi i64 [%16, %$5] ; # X\n; # (nil? @)\n  %44 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$10] ; # Exe\n  %46 = phi i64 [%43, %$10] ; # X\n  br label %$2\n$12:\n  %47 = phi i64 [%42, %$10] ; # Exe\n  %48 = phi i64 [%43, %$10] ; # X\n; # (pair @)\n  %49 = and i64 %31, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$15, label %$14\n$15:\n  %51 = phi i64 [%47, %$12] ; # Exe\n  %52 = phi i64 [%48, %$12] ; # X\n; # (let L @ (tmDate (xCnt Exe (++ L)) (xCnt Exe (++ L)) (xCnt Exe (c...\n; # (++ L)\n  %53 = inttoptr i64 %31 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n  %56 = load i64, i64* %53\n; # (xCnt Exe (++ L))\n  %57 = call i64 @xCnt(i64 %51, i64 %56)\n; # (++ L)\n  %58 = inttoptr i64 %55 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n  %61 = load i64, i64* %58\n; # (xCnt Exe (++ L))\n  %62 = call i64 @xCnt(i64 %51, i64 %61)\n; # (car L)\n  %63 = inttoptr i64 %60 to i64*\n  %64 = load i64, i64* %63\n; # (xCnt Exe (car L))\n  %65 = call i64 @xCnt(i64 %51, i64 %64)\n; # (tmDate (xCnt Exe (++ L)) (xCnt Exe (++ L)) (xCnt Exe (car L)))\n  %66 = call i64 @tmDate(i64 %57, i64 %62, i64 %65)\n  br label %$2\n$14:\n  %67 = phi i64 [%47, %$12] ; # Exe\n  %68 = phi i64 [%48, %$12] ; # X\n; # (let N @ (cond ((pair (shift X)) (tmDate (xCnt Exe N) (evCnt Exe ...\n; # (cond ((pair (shift X)) (tmDate (xCnt Exe N) (evCnt Exe X) (evCnt...\n; # (shift X)\n  %69 = inttoptr i64 %68 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n; # (pair (shift X))\n  %72 = and i64 %71, 15\n  %73 = icmp eq i64 %72, 0\n  br i1 %73, label %$18, label %$17\n$18:\n  %74 = phi i64 [%67, %$14] ; # Exe\n  %75 = phi i64 [%71, %$14] ; # X\n  %76 = phi i64 [%31, %$14] ; # N\n; # (xCnt Exe N)\n  %77 = call i64 @xCnt(i64 %74, i64 %76)\n; # (evCnt Exe X)\n  %78 = call i64 @evCnt(i64 %74, i64 %75)\n; # (cdr X)\n  %79 = inttoptr i64 %75 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (evCnt Exe (cdr X))\n  %82 = call i64 @evCnt(i64 %74, i64 %81)\n; # (tmDate (xCnt Exe N) (evCnt Exe X) (evCnt Exe (cdr X)))\n  %83 = call i64 @tmDate(i64 %77, i64 %78, i64 %82)\n  br label %$16\n$17:\n  %84 = phi i64 [%67, %$14] ; # Exe\n  %85 = phi i64 [%71, %$14] ; # X\n  %86 = phi i64 [%31, %$14] ; # N\n; # (xCnt Exe N)\n  %87 = call i64 @xCnt(i64 %84, i64 %86)\n; # (lt0 (setq N (xCnt Exe N)))\n  %88 = icmp slt i64 %87, 0\n  br i1 %88, label %$20, label %$19\n$20:\n  %89 = phi i64 [%84, %$17] ; # Exe\n  %90 = phi i64 [%85, %$17] ; # X\n  %91 = phi i64 [%87, %$17] ; # N\n  br label %$16\n$19:\n  %92 = phi i64 [%84, %$17] ; # Exe\n  %93 = phi i64 [%85, %$17] ; # X\n  %94 = phi i64 [%87, %$17] ; # N\n; # (let Y (/ (- (* N 100) 20) 3652425) (setq N (+ N (- Y (/ Y 4))) Y...\n; # (* N 100)\n  %95 = mul i64 %94, 100\n; # (- (* N 100) 20)\n  %96 = sub i64 %95, 20\n; # (/ (- (* N 100) 20) 3652425)\n  %97 = udiv i64 %96, 3652425\n; # (/ Y 4)\n  %98 = udiv i64 %97, 4\n; # (- Y (/ Y 4))\n  %99 = sub i64 %97, %98\n; # (+ N (- Y (/ Y 4)))\n  %100 = add i64 %94, %99\n; # (* N 100)\n  %101 = mul i64 %100, 100\n; # (- (* N 100) 20)\n  %102 = sub i64 %101, 20\n; # (/ (- (* N 100) 20) 36525)\n  %103 = udiv i64 %102, 36525\n; # (* Y 36525)\n  %104 = mul i64 %103, 36525\n; # (/ (* Y 36525) 100)\n  %105 = udiv i64 %104, 100\n; # (- N (/ (* Y 36525) 100))\n  %106 = sub i64 %100, %105\n; # (* (- N (/ (* Y 36525) 100)) 10)\n  %107 = mul i64 %106, 10\n; # (let (M (/ (- N 5) 306) D (/ (+ N (* M -306) 5) 10)) (if (> 10 M)...\n; # (- N 5)\n  %108 = sub i64 %107, 5\n; # (/ (- N 5) 306)\n  %109 = udiv i64 %108, 306\n; # (* M -306)\n  %110 = mul i64 %109, -306\n; # (+ N (* M -306) 5)\n  %111 = add i64 %107, %110\n  %112 = add i64 %111, 5\n; # (/ (+ N (* M -306) 5) 10)\n  %113 = udiv i64 %112, 10\n; # (if (> 10 M) (inc 'M 3) (inc 'Y) (dec 'M 9))\n; # (> 10 M)\n  %114 = icmp ugt i64 10, %109\n  br i1 %114, label %$21, label %$22\n$21:\n  %115 = phi i64 [%92, %$19] ; # Exe\n  %116 = phi i64 [%93, %$19] ; # X\n  %117 = phi i64 [%107, %$19] ; # N\n  %118 = phi i64 [%103, %$19] ; # Y\n  %119 = phi i64 [%109, %$19] ; # M\n  %120 = phi i64 [%113, %$19] ; # D\n; # (inc 'M 3)\n  %121 = add i64 %119, 3\n  br label %$23\n$22:\n  %122 = phi i64 [%92, %$19] ; # Exe\n  %123 = phi i64 [%93, %$19] ; # X\n  %124 = phi i64 [%107, %$19] ; # N\n  %125 = phi i64 [%103, %$19] ; # Y\n  %126 = phi i64 [%109, %$19] ; # M\n  %127 = phi i64 [%113, %$19] ; # D\n; # (inc 'Y)\n  %128 = add i64 %125, 1\n; # (dec 'M 9)\n  %129 = sub i64 %126, 9\n  br label %$23\n$23:\n  %130 = phi i64 [%115, %$21], [%122, %$22] ; # Exe\n  %131 = phi i64 [%116, %$21], [%123, %$22] ; # X\n  %132 = phi i64 [%117, %$21], [%124, %$22] ; # N\n  %133 = phi i64 [%118, %$21], [%128, %$22] ; # Y\n  %134 = phi i64 [%121, %$21], [%129, %$22] ; # M\n  %135 = phi i64 [%120, %$21], [%127, %$22] ; # D\n  %136 = phi i64 [%121, %$21], [%129, %$22] ; # ->\n; # (cnt Y)\n  %137 = shl i64 %133, 4\n  %138 = or i64 %137, 2\n; # (cnt M)\n  %139 = shl i64 %134, 4\n  %140 = or i64 %139, 2\n; # (cnt D)\n  %141 = shl i64 %135, 4\n  %142 = or i64 %141, 2\n; # (cons (cnt D) $Nil)\n  %143 = call i64 @cons(i64 %142, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (cnt M) (cons (cnt D) $Nil))\n  %144 = call i64 @cons(i64 %140, i64 %143)\n; # (cons (cnt Y) (cons (cnt M) (cons (cnt D) $Nil)))\n  %145 = call i64 @cons(i64 %138, i64 %144)\n  br label %$16\n$16:\n  %146 = phi i64 [%74, %$18], [%89, %$20], [%130, %$23] ; # Exe\n  %147 = phi i64 [%75, %$18], [%90, %$20], [%131, %$23] ; # X\n  %148 = phi i64 [%76, %$18], [%91, %$20], [%132, %$23] ; # N\n  %149 = phi i64 [%83, %$18], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$20], [%145, %$23] ; # ->\n  br label %$2\n$2:\n  %150 = phi i64 [%6, %$4], [%33, %$11], [%45, %$13], [%51, %$15], [%146, %$16] ; # Exe\n  %151 = phi i64 [%7, %$4], [%34, %$11], [%46, %$13], [%52, %$15], [%147, %$16] ; # X\n  %152 = phi i64 [%14, %$4], [%41, %$11], [%31, %$13], [%66, %$15], [%149, %$16] ; # ->\n  ret i64 %152\n}\n\ndefine i64 @_Time(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((atom X) (cnt (getTime))) ((t? (eval (car...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((atom X) (cnt (getTime))) ((t? (eval (car X))) (if (lt0 (g...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (getTime)\n  %8 = call i64 @getTime()\n; # (cnt (getTime))\n  %9 = shl i64 %8, 4\n  %10 = or i64 %9, 2\n  br label %$2\n$3:\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = phi i64 [%3, %$1] ; # X\n; # (car X)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (eval (car X))\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$7, label %$6\n$7:\n  %17 = phi i64 [%14, %$3] ; # X\n  br label %$5\n$6:\n  %18 = phi i64 [%14, %$3] ; # X\n  %19 = and i64 %18, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%18, %$6] ; # X\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$5\n$8:\n  %24 = phi i64 [%18, %$6] ; # X\n  %25 = call i64 @evList(i64 %24)\n  br label %$5\n$5:\n  %26 = phi i64 [%17, %$7], [%21, %$9], [%24, %$8] ; # X\n  %27 = phi i64 [%17, %$7], [%23, %$9], [%25, %$8] ; # ->\n; # (t? (eval (car X)))\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %28, label %$11, label %$10\n$11:\n  %29 = phi i64 [%11, %$5] ; # Exe\n  %30 = phi i64 [%12, %$5] ; # X\n; # (if (lt0 (getGmTime)) $Nil (cnt @))\n; # (getGmTime)\n  %31 = call i64 @getGmTime()\n; # (lt0 (getGmTime))\n  %32 = icmp slt i64 %31, 0\n  br i1 %32, label %$12, label %$13\n$12:\n  %33 = phi i64 [%29, %$11] ; # Exe\n  %34 = phi i64 [%30, %$11] ; # X\n  br label %$14\n$13:\n  %35 = phi i64 [%29, %$11] ; # Exe\n  %36 = phi i64 [%30, %$11] ; # X\n; # (cnt @)\n  %37 = shl i64 %31, 4\n  %38 = or i64 %37, 2\n  br label %$14\n$14:\n  %39 = phi i64 [%33, %$12], [%35, %$13] ; # Exe\n  %40 = phi i64 [%34, %$12], [%36, %$13] ; # X\n  %41 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%38, %$13] ; # ->\n  br label %$2\n$10:\n  %42 = phi i64 [%11, %$5] ; # Exe\n  %43 = phi i64 [%12, %$5] ; # X\n; # (nil? @)\n  %44 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %44, label %$16, label %$15\n$16:\n  %45 = phi i64 [%42, %$10] ; # Exe\n  %46 = phi i64 [%43, %$10] ; # X\n  br label %$2\n$15:\n  %47 = phi i64 [%42, %$10] ; # Exe\n  %48 = phi i64 [%43, %$10] ; # X\n; # (pair @)\n  %49 = and i64 %27, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$18, label %$17\n$18:\n  %51 = phi i64 [%47, %$15] ; # Exe\n  %52 = phi i64 [%48, %$15] ; # X\n; # (let L @ (tmTime (xCnt Exe (++ L)) (xCnt Exe (++ L)) (if (pair L)...\n; # (++ L)\n  %53 = inttoptr i64 %27 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n  %56 = load i64, i64* %53\n; # (xCnt Exe (++ L))\n  %57 = call i64 @xCnt(i64 %51, i64 %56)\n; # (++ L)\n  %58 = inttoptr i64 %55 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n  %61 = load i64, i64* %58\n; # (xCnt Exe (++ L))\n  %62 = call i64 @xCnt(i64 %51, i64 %61)\n; # (if (pair L) (xCnt Exe (car L)) 0)\n; # (pair L)\n  %63 = and i64 %60, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$19, label %$20\n$19:\n  %65 = phi i64 [%51, %$18] ; # Exe\n  %66 = phi i64 [%52, %$18] ; # X\n  %67 = phi i64 [%60, %$18] ; # L\n; # (car L)\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n; # (xCnt Exe (car L))\n  %70 = call i64 @xCnt(i64 %65, i64 %69)\n  br label %$21\n$20:\n  %71 = phi i64 [%51, %$18] ; # Exe\n  %72 = phi i64 [%52, %$18] ; # X\n  %73 = phi i64 [%60, %$18] ; # L\n  br label %$21\n$21:\n  %74 = phi i64 [%65, %$19], [%71, %$20] ; # Exe\n  %75 = phi i64 [%66, %$19], [%72, %$20] ; # X\n  %76 = phi i64 [%67, %$19], [%73, %$20] ; # L\n  %77 = phi i64 [%70, %$19], [0, %$20] ; # ->\n; # (tmTime (xCnt Exe (++ L)) (xCnt Exe (++ L)) (if (pair L) (xCnt Ex...\n  %78 = call i64 @tmTime(i64 %57, i64 %62, i64 %77)\n  br label %$2\n$17:\n  %79 = phi i64 [%47, %$15] ; # Exe\n  %80 = phi i64 [%48, %$15] ; # X\n; # (let N @ (cond ((pair (shift X)) (tmTime (xCnt Exe N) (evCnt Exe ...\n; # (cond ((pair (shift X)) (tmTime (xCnt Exe N) (evCnt Exe X) (if (p...\n; # (shift X)\n  %81 = inttoptr i64 %80 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n; # (pair (shift X))\n  %84 = and i64 %83, 15\n  %85 = icmp eq i64 %84, 0\n  br i1 %85, label %$24, label %$23\n$24:\n  %86 = phi i64 [%79, %$17] ; # Exe\n  %87 = phi i64 [%83, %$17] ; # X\n  %88 = phi i64 [%27, %$17] ; # N\n; # (xCnt Exe N)\n  %89 = call i64 @xCnt(i64 %86, i64 %88)\n; # (evCnt Exe X)\n  %90 = call i64 @evCnt(i64 %86, i64 %87)\n; # (if (pair (shift X)) (evCnt Exe X) 0)\n; # (shift X)\n  %91 = inttoptr i64 %87 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (pair (shift X))\n  %94 = and i64 %93, 15\n  %95 = icmp eq i64 %94, 0\n  br i1 %95, label %$25, label %$26\n$25:\n  %96 = phi i64 [%86, %$24] ; # Exe\n  %97 = phi i64 [%93, %$24] ; # X\n  %98 = phi i64 [%88, %$24] ; # N\n; # (evCnt Exe X)\n  %99 = call i64 @evCnt(i64 %96, i64 %97)\n  br label %$27\n$26:\n  %100 = phi i64 [%86, %$24] ; # Exe\n  %101 = phi i64 [%93, %$24] ; # X\n  %102 = phi i64 [%88, %$24] ; # N\n  br label %$27\n$27:\n  %103 = phi i64 [%96, %$25], [%100, %$26] ; # Exe\n  %104 = phi i64 [%97, %$25], [%101, %$26] ; # X\n  %105 = phi i64 [%98, %$25], [%102, %$26] ; # N\n  %106 = phi i64 [%99, %$25], [0, %$26] ; # ->\n; # (tmTime (xCnt Exe N) (evCnt Exe X) (if (pair (shift X)) (evCnt Ex...\n  %107 = call i64 @tmTime(i64 %89, i64 %90, i64 %106)\n  br label %$22\n$23:\n  %108 = phi i64 [%79, %$17] ; # Exe\n  %109 = phi i64 [%83, %$17] ; # X\n  %110 = phi i64 [%27, %$17] ; # N\n; # (xCnt Exe N)\n  %111 = call i64 @xCnt(i64 %108, i64 %110)\n; # (lt0 (setq N (xCnt Exe N)))\n  %112 = icmp slt i64 %111, 0\n  br i1 %112, label %$29, label %$28\n$29:\n  %113 = phi i64 [%108, %$23] ; # Exe\n  %114 = phi i64 [%109, %$23] ; # X\n  %115 = phi i64 [%111, %$23] ; # N\n  br label %$22\n$28:\n  %116 = phi i64 [%108, %$23] ; # Exe\n  %117 = phi i64 [%109, %$23] ; # X\n  %118 = phi i64 [%111, %$23] ; # N\n; # (/ N 3600)\n  %119 = udiv i64 %118, 3600\n; # (cnt (/ N 3600))\n  %120 = shl i64 %119, 4\n  %121 = or i64 %120, 2\n; # (/ N 60)\n  %122 = udiv i64 %118, 60\n; # (% (/ N 60) 60)\n  %123 = urem i64 %122, 60\n; # (cnt (% (/ N 60) 60))\n  %124 = shl i64 %123, 4\n  %125 = or i64 %124, 2\n; # (% N 60)\n  %126 = urem i64 %118, 60\n; # (cnt (% N 60))\n  %127 = shl i64 %126, 4\n  %128 = or i64 %127, 2\n; # (cons (cnt (% N 60)) $Nil)\n  %129 = call i64 @cons(i64 %128, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (cnt (% (/ N 60) 60)) (cons (cnt (% N 60)) $Nil))\n  %130 = call i64 @cons(i64 %125, i64 %129)\n; # (cons (cnt (/ N 3600)) (cons (cnt (% (/ N 60) 60)) (cons (cnt (% ...\n  %131 = call i64 @cons(i64 %121, i64 %130)\n  br label %$22\n$22:\n  %132 = phi i64 [%103, %$27], [%113, %$29], [%116, %$28] ; # Exe\n  %133 = phi i64 [%104, %$27], [%114, %$29], [%117, %$28] ; # X\n  %134 = phi i64 [%105, %$27], [%115, %$29], [%118, %$28] ; # N\n  %135 = phi i64 [%107, %$27], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$29], [%131, %$28] ; # ->\n  br label %$2\n$2:\n  %136 = phi i64 [%6, %$4], [%39, %$14], [%45, %$16], [%74, %$21], [%132, %$22] ; # Exe\n  %137 = phi i64 [%7, %$4], [%40, %$14], [%46, %$16], [%75, %$21], [%133, %$22] ; # X\n  %138 = phi i64 [%10, %$4], [%41, %$14], [%27, %$16], [%78, %$21], [%135, %$22] ; # ->\n  ret i64 %138\n}\n\ndefine i64 @_Usec(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) (- (getUsec YES) (val $USec)) (getUs...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n; # (getUsec YES)\n  %21 = call i64 @getUsec(i1 1)\n; # (val $USec)\n  %22 = load i64, i64* @$USec\n; # (- (getUsec YES) (val $USec))\n  %23 = sub i64 %21, %22\n  br label %$9\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n; # (getUsec NO)\n  %25 = call i64 @getUsec(i1 0)\n  br label %$9\n$9:\n  %26 = phi i64 [%20, %$7], [%24, %$8] ; # Exe\n  %27 = phi i64 [%23, %$7], [%25, %$8] ; # ->\n; # (cnt (if (nil? (eval (cadr Exe))) (- (getUsec YES) (val $USec)) (...\n  %28 = shl i64 %27, 4\n  %29 = or i64 %28, 2\n  ret i64 %29\n}\n\ndefine i64 @_Rt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Rt (val $Rt) U (getUsec YES)) (prog1 (run (cdr ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $Rt)\n  %4 = load i64, i64* @$Rt\n; # (getUsec YES)\n  %5 = call i64 @getUsec(i1 1)\n; # (prog1 (run (cdr X)) (let D (- (- (getUsec YES) U) (- (val $Rt) R...\n; # (cdr X)\n  %6 = inttoptr i64 %3 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n; # (run (cdr X))\n  br label %$2\n$2:\n  %9 = phi i64 [%8, %$1], [%39, %$11] ; # Prg\n  %10 = inttoptr i64 %9 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n  %13 = load i64, i64* %10\n  %14 = and i64 %12, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i64 [%12, %$2] ; # Prg\n  %17 = phi i64 [%13, %$2] ; # X\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$8, label %$7\n$8:\n  %20 = phi i64 [%17, %$5] ; # X\n  br label %$6\n$7:\n  %21 = phi i64 [%17, %$5] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$10, label %$9\n$10:\n  %24 = phi i64 [%21, %$7] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$6\n$9:\n  %27 = phi i64 [%21, %$7] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$6\n$6:\n  %29 = phi i64 [%20, %$8], [%24, %$10], [%27, %$9] ; # X\n  %30 = phi i64 [%20, %$8], [%26, %$10], [%28, %$9] ; # ->\n  br label %$4\n$3:\n  %31 = phi i64 [%12, %$2] ; # Prg\n  %32 = phi i64 [%13, %$2] ; # X\n  %33 = and i64 %32, 15\n  %34 = icmp eq i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%31, %$3] ; # Prg\n  %36 = phi i64 [%32, %$3] ; # X\n  %37 = call i64 @evList(i64 %36)\n  %38 = icmp ne i64 %37, 0\n  br label %$11\n$11:\n  %39 = phi i64 [%31, %$3], [%35, %$12] ; # Prg\n  %40 = phi i64 [%32, %$3], [%36, %$12] ; # X\n  %41 = phi i1 [0, %$3], [%38, %$12] ; # ->\n  br label %$2\n$4:\n  %42 = phi i64 [%16, %$6] ; # Prg\n  %43 = phi i64 [%30, %$6] ; # ->\n; # (let D (- (- (getUsec YES) U) (- (val $Rt) Rt)) (set $Rt (+ D (va...\n; # (getUsec YES)\n  %44 = call i64 @getUsec(i1 1)\n; # (- (getUsec YES) U)\n  %45 = sub i64 %44, %5\n; # (val $Rt)\n  %46 = load i64, i64* @$Rt\n; # (- (val $Rt) Rt)\n  %47 = sub i64 %46, %4\n; # (- (- (getUsec YES) U) (- (val $Rt) Rt))\n  %48 = sub i64 %45, %47\n; # (set $Rt (+ D (val $Rt)) X (+ (car X) (shl D 4)))\n; # (val $Rt)\n  %49 = load i64, i64* @$Rt\n; # (+ D (val $Rt))\n  %50 = add i64 %48, %49\n  store i64 %50, i64* @$Rt\n; # (car X)\n  %51 = inttoptr i64 %3 to i64*\n  %52 = load i64, i64* %51\n; # (shl D 4)\n  %53 = shl i64 %48, 4\n; # (+ (car X) (shl D 4))\n  %54 = add i64 %52, %53\n  %55 = inttoptr i64 %3 to i64*\n  store i64 %54, i64* %55\n  ret i64 %43\n}\n\ndefine i1 @sharedLib(i64) align 8 {\n$1:\n; # (let (Nm (xName Sym) S (bufString Nm (b8 (bufSize Nm))) P (strchr...\n; # (xName Sym)\n  %1 = call i64 @xName(i64 %0)\n; # (bufSize Nm)\n  %2 = call i64 @bufSize(i64 %1)\n; # (b8 (bufSize Nm))\n  %3 = alloca i8, i64 %2\n; # (bufString Nm (b8 (bufSize Nm)))\n  %4 = call i8* @bufString(i64 %1, i8* %3)\n; # (strchr S (char \":\"))\n  %5 = call i8* @strchr(i8* %4, i32 58)\n; # (and P (<> P S) (val 2 P) (let N (val $PilLen) (set P 0) (let (Le...\n  %6 = icmp ne i8* %5, null\n  br i1 %6, label %$3, label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # Sym\n  %8 = phi i64 [%1, %$1] ; # Nm\n  %9 = phi i8* [%4, %$1] ; # S\n  %10 = phi i8* [%5, %$1] ; # P\n; # (<> P S)\n  %11 = icmp ne i8* %10, %9\n  br i1 %11, label %$4, label %$2\n$4:\n  %12 = phi i64 [%7, %$3] ; # Sym\n  %13 = phi i64 [%8, %$3] ; # Nm\n  %14 = phi i8* [%9, %$3] ; # S\n  %15 = phi i8* [%10, %$3] ; # P\n; # (val 2 P)\n  %16 = getelementptr i8, i8* %15, i32 1\n  %17 = load i8, i8* %16\n  %18 = icmp ne i8 %17, 0\n  br i1 %18, label %$5, label %$2\n$5:\n  %19 = phi i64 [%12, %$4] ; # Sym\n  %20 = phi i64 [%13, %$4] ; # Nm\n  %21 = phi i8* [%14, %$4] ; # S\n  %22 = phi i8* [%15, %$4] ; # P\n; # (let N (val $PilLen) (set P 0) (let (Len (strlen S) Q (b8 (+ N Le...\n; # (val $PilLen)\n  %23 = load i64, i64* @$PilLen\n; # (set P 0)\n  store i8 0, i8* %22\n; # (let (Len (strlen S) Q (b8 (+ N Len (+ 4 3 1)))) (if (strchr S (c...\n; # (strlen S)\n  %24 = call i64 @strlen(i8* %21)\n; # (+ 4 3 1)\n; # (+ N Len (+ 4 3 1))\n  %25 = add i64 %23, %24\n  %26 = add i64 %25, 8\n; # (b8 (+ N Len (+ 4 3 1)))\n  %27 = alloca i8, i64 %26\n; # (if (strchr S (char \"/\")) (strcpy Q S) (when N (memcpy Q (val $Pi...\n; # (strchr S (char \"/\"))\n  %28 = call i8* @strchr(i8* %21, i32 47)\n  %29 = icmp ne i8* %28, null\n  br i1 %29, label %$6, label %$7\n$6:\n  %30 = phi i64 [%19, %$5] ; # Sym\n  %31 = phi i64 [%20, %$5] ; # Nm\n  %32 = phi i8* [%21, %$5] ; # S\n  %33 = phi i8* [%22, %$5] ; # P\n  %34 = phi i64 [%23, %$5] ; # N\n  %35 = phi i64 [%24, %$5] ; # Len\n  %36 = phi i8* [%27, %$5] ; # Q\n; # (strcpy Q S)\n  %37 = call i8* @strcpy(i8* %36, i8* %32)\n  br label %$8\n$7:\n  %38 = phi i64 [%19, %$5] ; # Sym\n  %39 = phi i64 [%20, %$5] ; # Nm\n  %40 = phi i8* [%21, %$5] ; # S\n  %41 = phi i8* [%22, %$5] ; # P\n  %42 = phi i64 [%23, %$5] ; # N\n  %43 = phi i64 [%24, %$5] ; # Len\n  %44 = phi i8* [%27, %$5] ; # Q\n; # (when N (memcpy Q (val $PilHome) N))\n  %45 = icmp ne i64 %42, 0\n  br i1 %45, label %$9, label %$10\n$9:\n  %46 = phi i64 [%38, %$7] ; # Sym\n  %47 = phi i64 [%39, %$7] ; # Nm\n  %48 = phi i8* [%40, %$7] ; # S\n  %49 = phi i8* [%41, %$7] ; # P\n  %50 = phi i64 [%42, %$7] ; # N\n  %51 = phi i64 [%43, %$7] ; # Len\n  %52 = phi i8* [%44, %$7] ; # Q\n; # (val $PilHome)\n  %53 = load i8*, i8** @$PilHome\n; # (memcpy Q (val $PilHome) N)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %52, i8* %53, i64 %50, i1 0)\n  br label %$10\n$10:\n  %54 = phi i64 [%38, %$7], [%46, %$9] ; # Sym\n  %55 = phi i64 [%39, %$7], [%47, %$9] ; # Nm\n  %56 = phi i8* [%40, %$7], [%48, %$9] ; # S\n  %57 = phi i8* [%41, %$7], [%49, %$9] ; # P\n  %58 = phi i64 [%42, %$7], [%50, %$9] ; # N\n  %59 = phi i64 [%43, %$7], [%51, %$9] ; # Len\n  %60 = phi i8* [%44, %$7], [%52, %$9] ; # Q\n; # (ofs Q N)\n  %61 = getelementptr i8, i8* %60, i64 %58\n; # (strcpy (ofs Q N) ($ \"lib/\"))\n  %62 = call i8* @strcpy(i8* %61, i8* bitcast ([5 x i8]* @$25 to i8*))\n; # (+ N 4)\n  %63 = add i64 %58, 4\n; # (ofs Q (+ N 4))\n  %64 = getelementptr i8, i8* %60, i64 %63\n; # (strcpy (ofs Q (+ N 4)) S)\n  %65 = call i8* @strcpy(i8* %64, i8* %56)\n; # (+ Len N 4)\n  %66 = add i64 %59, %58\n  %67 = add i64 %66, 4\n  br label %$8\n$8:\n  %68 = phi i64 [%30, %$6], [%54, %$10] ; # Sym\n  %69 = phi i64 [%31, %$6], [%55, %$10] ; # Nm\n  %70 = phi i8* [%32, %$6], [%56, %$10] ; # S\n  %71 = phi i8* [%33, %$6], [%57, %$10] ; # P\n  %72 = phi i64 [%34, %$6], [%58, %$10] ; # N\n  %73 = phi i64 [%35, %$6], [%67, %$10] ; # Len\n  %74 = phi i8* [%36, %$6], [%60, %$10] ; # Q\n; # (ofs Q Len)\n  %75 = getelementptr i8, i8* %74, i64 %73\n; # (strcpy (ofs Q Len) ($ \".so\"))\n  %76 = call i8* @strcpy(i8* %75, i8* bitcast ([4 x i8]* @$26 to i8*))\n; # (and (dlOpen Q) (dlsym @ (inc P)) (prog (set Sym (dlfun (i64 @)))...\n; # (dlOpen Q)\n  %77 = call i8* @dlOpen(i8* %74)\n  %78 = icmp ne i8* %77, null\n  br i1 %78, label %$12, label %$11\n$12:\n  %79 = phi i64 [%68, %$8] ; # Sym\n  %80 = phi i64 [%69, %$8] ; # Nm\n  %81 = phi i8* [%70, %$8] ; # S\n  %82 = phi i8* [%71, %$8] ; # P\n  %83 = phi i64 [%72, %$8] ; # N\n  %84 = phi i64 [%73, %$8] ; # Len\n  %85 = phi i8* [%74, %$8] ; # Q\n; # (inc P)\n  %86 = getelementptr i8, i8* %82, i32 1\n; # (dlsym @ (inc P))\n  %87 = call i8* @dlsym(i8* %77, i8* %86)\n  %88 = icmp ne i8* %87, null\n  br i1 %88, label %$13, label %$11\n$13:\n  %89 = phi i64 [%79, %$12] ; # Sym\n  %90 = phi i64 [%80, %$12] ; # Nm\n  %91 = phi i8* [%81, %$12] ; # S\n  %92 = phi i8* [%82, %$12] ; # P\n  %93 = phi i64 [%83, %$12] ; # N\n  %94 = phi i64 [%84, %$12] ; # Len\n  %95 = phi i8* [%85, %$12] ; # Q\n; # (set Sym (dlfun (i64 @)))\n; # (i64 @)\n  %96 = ptrtoint i8* %87 to i64\n; # (dlfun (i64 @))\n  %97 = or i64 %96, 2\n  %98 = inttoptr i64 %89 to i64*\n  store i64 %97, i64* %98\n  br label %$11\n$11:\n  %99 = phi i64 [%68, %$8], [%79, %$12], [%89, %$13] ; # Sym\n  %100 = phi i64 [%69, %$8], [%80, %$12], [%90, %$13] ; # Nm\n  %101 = phi i8* [%70, %$8], [%81, %$12], [%91, %$13] ; # S\n  %102 = phi i8* [%71, %$8], [%82, %$12], [%92, %$13] ; # P\n  %103 = phi i64 [%72, %$8], [%83, %$12], [%93, %$13] ; # N\n  %104 = phi i64 [%73, %$8], [%84, %$12], [%94, %$13] ; # Len\n  %105 = phi i8* [%74, %$8], [%85, %$12], [%95, %$13] ; # Q\n  %106 = phi i1 [0, %$8], [0, %$12], [1, %$13] ; # ->\n  br label %$2\n$2:\n  %107 = phi i64 [%0, %$1], [%7, %$3], [%12, %$4], [%99, %$11] ; # Sym\n  %108 = phi i64 [%1, %$1], [%8, %$3], [%13, %$4], [%100, %$11] ; # Nm\n  %109 = phi i8* [%4, %$1], [%9, %$3], [%14, %$4], [%101, %$11] ; # S\n  %110 = phi i8* [%5, %$1], [%10, %$3], [%15, %$4], [%102, %$11] ; # P\n  %111 = phi i1 [0, %$1], [0, %$3], [0, %$4], [%106, %$11] ; # ->\n  ret i1 %111\n}\n\ndefine void @mark(i64) align 8 {\n$1:\n; # (let Tos 0 (loop (until (cnt? E) (let (P (any (& E -16)) Q (val 2...\n; # (loop (until (cnt? E) (let (P (any (& E -16)) Q (val 2 P)) (? (=0...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%99, %$17] ; # E\n  %2 = phi i64 [0, %$1], [%100, %$17] ; # Tos\n; # (until (cnt? E) (let (P (any (& E -16)) Q (val 2 P)) (? (=0 (& Q ...\n  br label %$3\n$3:\n  %3 = phi i64 [%1, %$2], [%60, %$7] ; # E\n  %4 = phi i64 [%2, %$2], [%55, %$7] ; # Tos\n; # (cnt? E)\n  %5 = and i64 %3, 2\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$5, label %$4\n$4:\n  %7 = phi i64 [%3, %$3] ; # E\n  %8 = phi i64 [%4, %$3] ; # Tos\n; # (let (P (any (& E -16)) Q (val 2 P)) (? (=0 (& Q 1))) (set 2 P (s...\n; # (& E -16)\n  %9 = and i64 %7, -16\n; # (any (& E -16))\n; # (val 2 P)\n  %10 = inttoptr i64 %9 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n; # (? (=0 (& Q 1)))\n; # (& Q 1)\n  %13 = and i64 %12, 1\n; # (=0 (& Q 1))\n  %14 = icmp eq i64 %13, 0\n  br i1 %14, label %$5, label %$6\n$6:\n  %15 = phi i64 [%7, %$4] ; # E\n  %16 = phi i64 [%8, %$4] ; # Tos\n  %17 = phi i64 [%9, %$4] ; # P\n  %18 = phi i64 [%12, %$4] ; # Q\n; # (set 2 P (setq Q (& Q -2)))\n; # (& Q -2)\n  %19 = and i64 %18, -2\n  %20 = inttoptr i64 %17 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  store i64 %19, i64* %21\n; # (? (big? E) (until (cnt? Q) (let N (val (big Q)) (? (=0 (& N 1)))...\n; # (big? E)\n  %22 = and i64 %15, 4\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$8, label %$7\n$8:\n  %24 = phi i64 [%15, %$6] ; # E\n  %25 = phi i64 [%16, %$6] ; # Tos\n  %26 = phi i64 [%17, %$6] ; # P\n  %27 = phi i64 [%19, %$6] ; # Q\n; # (until (cnt? Q) (let N (val (big Q)) (? (=0 (& N 1))) (setq Q (se...\n  br label %$9\n$9:\n  %28 = phi i64 [%24, %$8], [%43, %$12] ; # E\n  %29 = phi i64 [%25, %$8], [%44, %$12] ; # Tos\n  %30 = phi i64 [%26, %$8], [%45, %$12] ; # P\n  %31 = phi i64 [%27, %$8], [%49, %$12] ; # Q\n; # (cnt? Q)\n  %32 = and i64 %31, 2\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%28, %$9] ; # E\n  %35 = phi i64 [%29, %$9] ; # Tos\n  %36 = phi i64 [%30, %$9] ; # P\n  %37 = phi i64 [%31, %$9] ; # Q\n; # (let N (val (big Q)) (? (=0 (& N 1))) (setq Q (set (big Q) (& N -...\n; # (big Q)\n  %38 = add i64 %37, 4\n; # (val (big Q))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (? (=0 (& N 1)))\n; # (& N 1)\n  %41 = and i64 %40, 1\n; # (=0 (& N 1))\n  %42 = icmp eq i64 %41, 0\n  br i1 %42, label %$11, label %$12\n$12:\n  %43 = phi i64 [%34, %$10] ; # E\n  %44 = phi i64 [%35, %$10] ; # Tos\n  %45 = phi i64 [%36, %$10] ; # P\n  %46 = phi i64 [%37, %$10] ; # Q\n  %47 = phi i64 [%40, %$10] ; # N\n; # (set (big Q) (& N -2))\n; # (big Q)\n  %48 = add i64 %46, 4\n; # (& N -2)\n  %49 = and i64 %47, -2\n  %50 = inttoptr i64 %48 to i64*\n  store i64 %49, i64* %50\n  br label %$9\n$11:\n  %51 = phi i64 [%28, %$9], [%34, %$10] ; # E\n  %52 = phi i64 [%29, %$9], [%35, %$10] ; # Tos\n  %53 = phi i64 [%30, %$9], [%36, %$10] ; # P\n  %54 = phi i64 [%31, %$9], [%37, %$10] ; # Q\n  br label %$5\n$7:\n  %55 = phi i64 [%15, %$6] ; # E\n  %56 = phi i64 [%16, %$6] ; # Tos\n  %57 = phi i64 [%17, %$6] ; # P\n  %58 = phi i64 [%19, %$6] ; # Q\n; # (let X E (setq E (val P)) (set P (| Tos 1)) (setq Tos X))\n; # (val P)\n  %59 = inttoptr i64 %57 to i64*\n  %60 = load i64, i64* %59\n; # (set P (| Tos 1))\n; # (| Tos 1)\n  %61 = or i64 %56, 1\n  %62 = inttoptr i64 %57 to i64*\n  store i64 %61, i64* %62\n  br label %$3\n$5:\n  %63 = phi i64 [%3, %$3], [%7, %$4], [%51, %$11] ; # E\n  %64 = phi i64 [%4, %$3], [%8, %$4], [%52, %$11] ; # Tos\n; # (loop (let P (any (& Tos -16)) (unless P (ret)) (let Q (val P) (?...\n  br label %$13\n$13:\n  %65 = phi i64 [%63, %$5], [%91, %$16] ; # E\n  %66 = phi i64 [%64, %$5], [%96, %$16] ; # Tos\n; # (let P (any (& Tos -16)) (unless P (ret)) (let Q (val P) (? (& Q ...\n; # (& Tos -16)\n  %67 = and i64 %66, -16\n; # (any (& Tos -16))\n; # (unless P (ret))\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$15, label %$14\n$14:\n  %69 = phi i64 [%65, %$13] ; # E\n  %70 = phi i64 [%66, %$13] ; # Tos\n  %71 = phi i64 [%67, %$13] ; # P\n; # (ret)\n  ret void\n$15:\n  %72 = phi i64 [%65, %$13] ; # E\n  %73 = phi i64 [%66, %$13] ; # Tos\n  %74 = phi i64 [%67, %$13] ; # P\n; # (let Q (val P) (? (& Q 1) (set P E) (setq E (val 2 P)) (set 2 P (...\n; # (val P)\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n; # (? (& Q 1) (set P E) (setq E (val 2 P)) (set 2 P (& Q -2)))\n; # (& Q 1)\n  %77 = and i64 %76, 1\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$18, label %$16\n$18:\n  %79 = phi i64 [%72, %$15] ; # E\n  %80 = phi i64 [%73, %$15] ; # Tos\n  %81 = phi i64 [%74, %$15] ; # P\n  %82 = phi i64 [%76, %$15] ; # Q\n; # (set P E)\n  %83 = inttoptr i64 %81 to i64*\n  store i64 %79, i64* %83\n; # (val 2 P)\n  %84 = inttoptr i64 %81 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n; # (set 2 P (& Q -2))\n; # (& Q -2)\n  %87 = and i64 %82, -2\n  %88 = inttoptr i64 %81 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  store i64 %87, i64* %89\n  br label %$17\n$16:\n  %90 = phi i64 [%72, %$15] ; # E\n  %91 = phi i64 [%73, %$15] ; # Tos\n  %92 = phi i64 [%74, %$15] ; # P\n  %93 = phi i64 [%76, %$15] ; # Q\n; # (let X Tos (setq Tos (val 2 P)) (set 2 P E) (setq E X))\n; # (val 2 P)\n  %94 = inttoptr i64 %92 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n; # (set 2 P E)\n  %97 = inttoptr i64 %92 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  store i64 %90, i64* %98\n  br label %$13\n$17:\n  %99 = phi i64 [%86, %$18] ; # E\n  %100 = phi i64 [%80, %$18] ; # Tos\n  %101 = phi i64 [%87, %$18] ; # ->\n  br label %$2\n}\n\ndefine void @gc() align 8 {\n$1:\n; # (set $DB $Nil)\n  %0 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 232) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %0\n; # (let P $Nil (set P (| (val P) 1)) (setq P (ofs P 4)) (loop (set P...\n; # (set P (| (val P) 1))\n; # (val P)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (| (val P) 1)\n  %3 = or i64 %2, 1\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64) to i64*\n  store i64 %3, i64* %4\n; # (ofs P 4)\n  %5 = add i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), 32\n; # (loop (set P (| (val P) 1)) (? (== P $LastSym)) (setq P (ofs P 2)...\n  br label %$2\n$2:\n  %6 = phi i64 [%5, %$1], [%13, %$3] ; # P\n; # (set P (| (val P) 1))\n; # (val P)\n  %7 = inttoptr i64 %6 to i64*\n  %8 = load i64, i64* %7\n; # (| (val P) 1)\n  %9 = or i64 %8, 1\n  %10 = inttoptr i64 %6 to i64*\n  store i64 %9, i64* %10\n; # (? (== P $LastSym))\n; # (== P $LastSym)\n  %11 = icmp eq i64 %6, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 7176) to i64)\n  br i1 %11, label %$4, label %$3\n$3:\n  %12 = phi i64 [%6, %$2] ; # P\n; # (ofs P 2)\n  %13 = add i64 %12, 16\n  br label %$2\n$4:\n  %14 = phi i64 [%6, %$2] ; # P\n  %15 = phi i64 [0, %$2] ; # ->\n; # (let P (val $Heaps) (loop (let C CELLS (loop (set 2 P (| (val 2 P...\n; # (val $Heaps)\n  %16 = load i64, i64* @$Heaps\n; # (loop (let C CELLS (loop (set 2 P (| (val 2 P) 1)) (setq P (ofs P...\n  br label %$5\n$5:\n  %17 = phi i64 [%16, %$4], [%37, %$9] ; # P\n; # (let C CELLS (loop (set 2 P (| (val 2 P) 1)) (setq P (ofs P 2)) (...\n; # (loop (set 2 P (| (val 2 P) 1)) (setq P (ofs P 2)) (? (=0 (dec 'C...\n  br label %$6\n$6:\n  %18 = phi i64 [%17, %$5], [%29, %$7] ; # P\n  %19 = phi i64 [65536, %$5], [%30, %$7] ; # C\n; # (set 2 P (| (val 2 P) 1))\n; # (val 2 P)\n  %20 = inttoptr i64 %18 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  %22 = load i64, i64* %21\n; # (| (val 2 P) 1)\n  %23 = or i64 %22, 1\n  %24 = inttoptr i64 %18 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  store i64 %23, i64* %25\n; # (ofs P 2)\n  %26 = add i64 %18, 16\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %27 = sub i64 %19, 1\n; # (=0 (dec 'C))\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$8, label %$7\n$7:\n  %29 = phi i64 [%26, %$6] ; # P\n  %30 = phi i64 [%27, %$6] ; # C\n  br label %$6\n$8:\n  %31 = phi i64 [%26, %$6] ; # P\n  %32 = phi i64 [%27, %$6] ; # C\n  %33 = phi i64 [0, %$6] ; # ->\n; # (? (=0 (setq P (val P))))\n; # (val P)\n  %34 = inttoptr i64 %31 to i64*\n  %35 = load i64, i64* %34\n; # (=0 (setq P (val P)))\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$10, label %$9\n$9:\n  %37 = phi i64 [%35, %$8] ; # P\n  br label %$5\n$10:\n  %38 = phi i64 [%35, %$8] ; # P\n  %39 = phi i64 [0, %$8] ; # ->\n; # (let P (any (gcData)) (loop (mark (val P)) (? (== P $LispEnd)) (s...\n; # (i8* $Intern)\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i8*\n; # (any (gcData))\n  %41 = ptrtoint i8* %40 to i64\n; # (loop (mark (val P)) (? (== P $LispEnd)) (setq P (ofs P 1)))\n  br label %$11\n$11:\n  %42 = phi i64 [%41, %$10], [%47, %$12] ; # P\n; # (val P)\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (mark (val P))\n  call void @mark(i64 %44)\n; # (? (== P $LispEnd))\n; # (== P $LispEnd)\n  %45 = icmp eq i64 %42, ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 416) to i64)\n  br i1 %45, label %$13, label %$12\n$12:\n  %46 = phi i64 [%42, %$11] ; # P\n; # (ofs P 1)\n  %47 = add i64 %46, 8\n  br label %$11\n$13:\n  %48 = phi i64 [%42, %$11] ; # P\n  %49 = phi i64 [0, %$11] ; # ->\n; # (let P (val $Link) (while P (mark (val P)) (setq P (val 2 P))))\n; # (val $Link)\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %51 = load i64, i64* %50\n; # (while P (mark (val P)) (setq P (val 2 P)))\n  br label %$14\n$14:\n  %52 = phi i64 [%51, %$13], [%59, %$15] ; # P\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$15, label %$16\n$15:\n  %54 = phi i64 [%52, %$14] ; # P\n; # (val P)\n  %55 = inttoptr i64 %54 to i64*\n  %56 = load i64, i64* %55\n; # (mark (val P))\n  call void @mark(i64 %56)\n; # (val 2 P)\n  %57 = inttoptr i64 %54 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  br label %$14\n$16:\n  %60 = phi i64 [%52, %$14] ; # P\n; # (let P (val $Bind) (while P (mark (val P)) (mark (val 2 P)) (setq...\n; # (val $Bind)\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %62 = load i64, i64* %61\n; # (while P (mark (val P)) (mark (val 2 P)) (setq P (val 3 P)))\n  br label %$17\n$17:\n  %63 = phi i64 [%62, %$16], [%73, %$18] ; # P\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$18, label %$19\n$18:\n  %65 = phi i64 [%63, %$17] ; # P\n; # (val P)\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (mark (val P))\n  call void @mark(i64 %67)\n; # (val 2 P)\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n; # (mark (val 2 P))\n  call void @mark(i64 %70)\n; # (val 3 P)\n  %71 = inttoptr i64 %65 to i64*\n  %72 = getelementptr i64, i64* %71, i32 2\n  %73 = load i64, i64* %72\n  br label %$17\n$19:\n  %74 = phi i64 [%63, %$17] ; # P\n; # (let Ca (val $Catch) (while Ca (let Ca: (caFrame Ca) (when (Ca: t...\n; # (val $Catch)\n  %75 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (while Ca (let Ca: (caFrame Ca) (when (Ca: tag) (mark @)) (mark (...\n  br label %$20\n$20:\n  %76 = phi i8* [%75, %$19], [%111, %$24] ; # Ca\n  %77 = icmp ne i8* %76, null\n  br i1 %77, label %$21, label %$22\n$21:\n  %78 = phi i8* [%76, %$20] ; # Ca\n; # (let Ca: (caFrame Ca) (when (Ca: tag) (mark @)) (mark (Ca: fin)) ...\n; # (when (Ca: tag) (mark @))\n; # (Ca: tag)\n  %79 = getelementptr i8, i8* %78, i32 8\n  %80 = ptrtoint i8* %79 to i64\n  %81 = inttoptr i64 %80 to i64*\n  %82 = load i64, i64* %81\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$23, label %$24\n$23:\n  %84 = phi i8* [%78, %$21] ; # Ca\n; # (mark @)\n  call void @mark(i64 %82)\n  br label %$24\n$24:\n  %85 = phi i8* [%78, %$21], [%84, %$23] ; # Ca\n; # (Ca: fin)\n  %86 = getelementptr i8, i8* %78, i32 16\n  %87 = ptrtoint i8* %86 to i64\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n; # (mark (Ca: fin))\n  call void @mark(i64 %89)\n; # (Ca: intrn)\n  %90 = getelementptr i8, i8* %78, i32 32\n  %91 = ptrtoint i8* %90 to i64\n  %92 = inttoptr i64 %91 to i64*\n  %93 = load i64, i64* %92\n; # (mark (Ca: intrn))\n  call void @mark(i64 %93)\n; # (Ca: trns1)\n  %94 = getelementptr i8, i8* %78, i32 40\n  %95 = ptrtoint i8* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (mark (Ca: trns1))\n  call void @mark(i64 %97)\n; # (Ca: trns2)\n  %98 = getelementptr i8, i8* %78, i32 48\n  %99 = ptrtoint i8* %98 to i64\n  %100 = inttoptr i64 %99 to i64*\n  %101 = load i64, i64* %100\n; # (mark (Ca: trns2))\n  call void @mark(i64 %101)\n; # (Ca: priv1)\n  %102 = getelementptr i8, i8* %78, i32 56\n  %103 = ptrtoint i8* %102 to i64\n  %104 = inttoptr i64 %103 to i64*\n  %105 = load i64, i64* %104\n; # (mark (Ca: priv1))\n  call void @mark(i64 %105)\n; # (Ca: priv2)\n  %106 = getelementptr i8, i8* %78, i32 64\n  %107 = ptrtoint i8* %106 to i64\n  %108 = inttoptr i64 %107 to i64*\n  %109 = load i64, i64* %108\n; # (mark (Ca: priv2))\n  call void @mark(i64 %109)\n; # (Ca: link)\n  %110 = bitcast i8* %78 to i8**\n  %111 = load i8*, i8** %110\n  br label %$20\n$22:\n  %112 = phi i8* [%76, %$20] ; # Ca\n; # (let Crt (val $Coroutines) (while Crt (let Crt: (coroutine Crt) (...\n; # (val $Coroutines)\n  %113 = load i8*, i8** @$Coroutines\n; # (while Crt (let Crt: (coroutine Crt) (when (Crt: tag) (mark (Crt:...\n  br label %$25\n$25:\n  %114 = phi i8* [%113, %$22], [%253, %$29] ; # Crt\n  %115 = icmp ne i8* %114, null\n  br i1 %115, label %$26, label %$27\n$26:\n  %116 = phi i8* [%114, %$25] ; # Crt\n; # (let Crt: (coroutine Crt) (when (Crt: tag) (mark (Crt: tag)) (mar...\n; # (when (Crt: tag) (mark (Crt: tag)) (mark (Crt: otg)) (mark (Crt: ...\n; # (Crt: tag)\n  %117 = ptrtoint i8* %116 to i64\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n  %120 = icmp ne i64 %119, 0\n  br i1 %120, label %$28, label %$29\n$28:\n  %121 = phi i8* [%116, %$26] ; # Crt\n; # (Crt: tag)\n  %122 = ptrtoint i8* %116 to i64\n  %123 = inttoptr i64 %122 to i64*\n  %124 = load i64, i64* %123\n; # (mark (Crt: tag))\n  call void @mark(i64 %124)\n; # (Crt: otg)\n  %125 = getelementptr i8, i8* %116, i32 24\n  %126 = ptrtoint i8* %125 to i64\n  %127 = inttoptr i64 %126 to i64*\n  %128 = load i64, i64* %127\n; # (mark (Crt: otg))\n  call void @mark(i64 %128)\n; # (Crt: prg)\n  %129 = getelementptr i8, i8* %116, i32 32\n  %130 = ptrtoint i8* %129 to i64\n  %131 = inttoptr i64 %130 to i64*\n  %132 = load i64, i64* %131\n; # (mark (Crt: prg))\n  call void @mark(i64 %132)\n; # (when (Crt: at) (mark (Crt: at)) (mark (Crt: intrn)) (mark (Crt: ...\n; # (Crt: at)\n  %133 = getelementptr i8, i8* %116, i32 48\n  %134 = ptrtoint i8* %133 to i64\n  %135 = inttoptr i64 %134 to i64*\n  %136 = load i64, i64* %135\n  %137 = icmp ne i64 %136, 0\n  br i1 %137, label %$30, label %$31\n$30:\n  %138 = phi i8* [%121, %$28] ; # Crt\n; # (Crt: at)\n  %139 = getelementptr i8, i8* %116, i32 48\n  %140 = ptrtoint i8* %139 to i64\n  %141 = inttoptr i64 %140 to i64*\n  %142 = load i64, i64* %141\n; # (mark (Crt: at))\n  call void @mark(i64 %142)\n; # (Crt: intrn)\n  %143 = getelementptr i8, i8* %116, i32 112\n  %144 = ptrtoint i8* %143 to i64\n  %145 = inttoptr i64 %144 to i64*\n  %146 = load i64, i64* %145\n; # (mark (Crt: intrn))\n  call void @mark(i64 %146)\n; # (Crt: trns1)\n  %147 = getelementptr i8, i8* %116, i32 120\n  %148 = ptrtoint i8* %147 to i64\n  %149 = inttoptr i64 %148 to i64*\n  %150 = load i64, i64* %149\n; # (mark (Crt: trns1))\n  call void @mark(i64 %150)\n; # (Crt: trns2)\n  %151 = getelementptr i8, i8* %116, i32 128\n  %152 = ptrtoint i8* %151 to i64\n  %153 = inttoptr i64 %152 to i64*\n  %154 = load i64, i64* %153\n; # (mark (Crt: trns2))\n  call void @mark(i64 %154)\n; # (Crt: priv1)\n  %155 = getelementptr i8, i8* %116, i32 136\n  %156 = ptrtoint i8* %155 to i64\n  %157 = inttoptr i64 %156 to i64*\n  %158 = load i64, i64* %157\n; # (mark (Crt: priv1))\n  call void @mark(i64 %158)\n; # (Crt: priv2)\n  %159 = getelementptr i8, i8* %116, i32 144\n  %160 = ptrtoint i8* %159 to i64\n  %161 = inttoptr i64 %160 to i64*\n  %162 = load i64, i64* %161\n; # (mark (Crt: priv2))\n  call void @mark(i64 %162)\n; # (let P (Crt: (env $Link any)) (while P (mark (val P)) (setq P (va...\n; # (Crt: (env $Link any))\n  %163 = getelementptr i8, i8* %116, i32 152\n  %164 = ptrtoint i8* %163 to i64\n  %165 = inttoptr i64 %164 to i64*\n  %166 = load i64, i64* %165\n; # (while P (mark (val P)) (setq P (val 2 P)))\n  br label %$32\n$32:\n  %167 = phi i8* [%138, %$30], [%170, %$33] ; # Crt\n  %168 = phi i64 [%166, %$30], [%176, %$33] ; # P\n  %169 = icmp ne i64 %168, 0\n  br i1 %169, label %$33, label %$34\n$33:\n  %170 = phi i8* [%167, %$32] ; # Crt\n  %171 = phi i64 [%168, %$32] ; # P\n; # (val P)\n  %172 = inttoptr i64 %171 to i64*\n  %173 = load i64, i64* %172\n; # (mark (val P))\n  call void @mark(i64 %173)\n; # (val 2 P)\n  %174 = inttoptr i64 %171 to i64*\n  %175 = getelementptr i64, i64* %174, i32 1\n  %176 = load i64, i64* %175\n  br label %$32\n$34:\n  %177 = phi i8* [%167, %$32] ; # Crt\n  %178 = phi i64 [%168, %$32] ; # P\n; # (let P (Crt: (env $Bind any)) (while P (mark (val P)) (mark (val ...\n; # (Crt: (env $Bind any))\n  %179 = getelementptr i8, i8* %116, i32 152\n  %180 = getelementptr i8, i8* %179, i32 8\n  %181 = ptrtoint i8* %180 to i64\n  %182 = inttoptr i64 %181 to i64*\n  %183 = load i64, i64* %182\n; # (while P (mark (val P)) (mark (val 2 P)) (setq P (val 3 P)))\n  br label %$35\n$35:\n  %184 = phi i8* [%177, %$34], [%187, %$36] ; # Crt\n  %185 = phi i64 [%183, %$34], [%196, %$36] ; # P\n  %186 = icmp ne i64 %185, 0\n  br i1 %186, label %$36, label %$37\n$36:\n  %187 = phi i8* [%184, %$35] ; # Crt\n  %188 = phi i64 [%185, %$35] ; # P\n; # (val P)\n  %189 = inttoptr i64 %188 to i64*\n  %190 = load i64, i64* %189\n; # (mark (val P))\n  call void @mark(i64 %190)\n; # (val 2 P)\n  %191 = inttoptr i64 %188 to i64*\n  %192 = getelementptr i64, i64* %191, i32 1\n  %193 = load i64, i64* %192\n; # (mark (val 2 P))\n  call void @mark(i64 %193)\n; # (val 3 P)\n  %194 = inttoptr i64 %188 to i64*\n  %195 = getelementptr i64, i64* %194, i32 2\n  %196 = load i64, i64* %195\n  br label %$35\n$37:\n  %197 = phi i8* [%184, %$35] ; # Crt\n  %198 = phi i64 [%185, %$35] ; # P\n; # (let Ca (Crt: (env $Catch i8*)) (while Ca (let Ca: (caFrame Ca) (...\n; # (Crt: (env $Catch i8*))\n  %199 = getelementptr i8, i8* %116, i32 152\n  %200 = getelementptr i8, i8* %199, i32 32\n  %201 = bitcast i8* %200 to i8**\n  %202 = load i8*, i8** %201\n; # (while Ca (let Ca: (caFrame Ca) (when (Ca: tag) (mark (Ca: tag)))...\n  br label %$38\n$38:\n  %203 = phi i8* [%197, %$37], [%219, %$42] ; # Crt\n  %204 = phi i8* [%202, %$37], [%246, %$42] ; # Ca\n  %205 = icmp ne i8* %204, null\n  br i1 %205, label %$39, label %$40\n$39:\n  %206 = phi i8* [%203, %$38] ; # Crt\n  %207 = phi i8* [%204, %$38] ; # Ca\n; # (let Ca: (caFrame Ca) (when (Ca: tag) (mark (Ca: tag))) (mark (Ca...\n; # (when (Ca: tag) (mark (Ca: tag)))\n; # (Ca: tag)\n  %208 = getelementptr i8, i8* %207, i32 8\n  %209 = ptrtoint i8* %208 to i64\n  %210 = inttoptr i64 %209 to i64*\n  %211 = load i64, i64* %210\n  %212 = icmp ne i64 %211, 0\n  br i1 %212, label %$41, label %$42\n$41:\n  %213 = phi i8* [%206, %$39] ; # Crt\n  %214 = phi i8* [%207, %$39] ; # Ca\n; # (Ca: tag)\n  %215 = getelementptr i8, i8* %207, i32 8\n  %216 = ptrtoint i8* %215 to i64\n  %217 = inttoptr i64 %216 to i64*\n  %218 = load i64, i64* %217\n; # (mark (Ca: tag))\n  call void @mark(i64 %218)\n  br label %$42\n$42:\n  %219 = phi i8* [%206, %$39], [%213, %$41] ; # Crt\n  %220 = phi i8* [%207, %$39], [%214, %$41] ; # Ca\n; # (Ca: fin)\n  %221 = getelementptr i8, i8* %207, i32 16\n  %222 = ptrtoint i8* %221 to i64\n  %223 = inttoptr i64 %222 to i64*\n  %224 = load i64, i64* %223\n; # (mark (Ca: fin))\n  call void @mark(i64 %224)\n; # (Ca: intrn)\n  %225 = getelementptr i8, i8* %207, i32 32\n  %226 = ptrtoint i8* %225 to i64\n  %227 = inttoptr i64 %226 to i64*\n  %228 = load i64, i64* %227\n; # (mark (Ca: intrn))\n  call void @mark(i64 %228)\n; # (Ca: trns1)\n  %229 = getelementptr i8, i8* %207, i32 40\n  %230 = ptrtoint i8* %229 to i64\n  %231 = inttoptr i64 %230 to i64*\n  %232 = load i64, i64* %231\n; # (mark (Ca: trns1))\n  call void @mark(i64 %232)\n; # (Ca: trns2)\n  %233 = getelementptr i8, i8* %207, i32 48\n  %234 = ptrtoint i8* %233 to i64\n  %235 = inttoptr i64 %234 to i64*\n  %236 = load i64, i64* %235\n; # (mark (Ca: trns2))\n  call void @mark(i64 %236)\n; # (Ca: priv1)\n  %237 = getelementptr i8, i8* %207, i32 56\n  %238 = ptrtoint i8* %237 to i64\n  %239 = inttoptr i64 %238 to i64*\n  %240 = load i64, i64* %239\n; # (mark (Ca: priv1))\n  call void @mark(i64 %240)\n; # (Ca: priv2)\n  %241 = getelementptr i8, i8* %207, i32 64\n  %242 = ptrtoint i8* %241 to i64\n  %243 = inttoptr i64 %242 to i64*\n  %244 = load i64, i64* %243\n; # (mark (Ca: priv2))\n  call void @mark(i64 %244)\n; # (Ca: link)\n  %245 = bitcast i8* %207 to i8**\n  %246 = load i8*, i8** %245\n  br label %$38\n$40:\n  %247 = phi i8* [%203, %$38] ; # Crt\n  %248 = phi i8* [%204, %$38] ; # Ca\n  br label %$31\n$31:\n  %249 = phi i8* [%121, %$28], [%247, %$40] ; # Crt\n  br label %$29\n$29:\n  %250 = phi i8* [%116, %$26], [%249, %$31] ; # Crt\n; # (Crt: nxt)\n  %251 = getelementptr i8, i8* %116, i32 8\n  %252 = bitcast i8* %251 to i8**\n  %253 = load i8*, i8** %252\n  br label %$25\n$27:\n  %254 = phi i8* [%114, %$25] ; # Crt\n; # (let (Tos 0 P (val $Extern)) (loop (loop (let X (any (& (val 2 P)...\n; # (val $Extern)\n  %255 = load i64, i64* @$Extern\n; # (loop (loop (let X (any (& (val 2 P) -2)) (set 2 P X) (let Y (any...\n  br label %$43\n$43:\n  %256 = phi i64 [0, %$27], [%386, %$58] ; # Tos\n  %257 = phi i64 [%255, %$27], [%387, %$58] ; # P\n; # (loop (let X (any (& (val 2 P) -2)) (set 2 P X) (let Y (any (& (v...\n  br label %$44\n$44:\n  %258 = phi i64 [%256, %$43], [%275, %$45] ; # Tos\n  %259 = phi i64 [%257, %$43], [%277, %$45] ; # P\n; # (let X (any (& (val 2 P) -2)) (set 2 P X) (let Y (any (& (val 2 X...\n; # (val 2 P)\n  %260 = inttoptr i64 %259 to i64*\n  %261 = getelementptr i64, i64* %260, i32 1\n  %262 = load i64, i64* %261\n; # (& (val 2 P) -2)\n  %263 = and i64 %262, -2\n; # (any (& (val 2 P) -2))\n; # (set 2 P X)\n  %264 = inttoptr i64 %259 to i64*\n  %265 = getelementptr i64, i64* %264, i32 1\n  store i64 %263, i64* %265\n; # (let Y (any (& (val 2 X) -2)) (set 2 X Y) (? (atom Y)) (let Z P (...\n; # (val 2 X)\n  %266 = inttoptr i64 %263 to i64*\n  %267 = getelementptr i64, i64* %266, i32 1\n  %268 = load i64, i64* %267\n; # (& (val 2 X) -2)\n  %269 = and i64 %268, -2\n; # (any (& (val 2 X) -2))\n; # (set 2 X Y)\n  %270 = inttoptr i64 %263 to i64*\n  %271 = getelementptr i64, i64* %270, i32 1\n  store i64 %269, i64* %271\n; # (? (atom Y))\n; # (atom Y)\n  %272 = and i64 %269, 15\n  %273 = icmp ne i64 %272, 0\n  br i1 %273, label %$46, label %$45\n$45:\n  %274 = phi i64 [%258, %$44] ; # Tos\n  %275 = phi i64 [%259, %$44] ; # P\n  %276 = phi i64 [%263, %$44] ; # X\n  %277 = phi i64 [%269, %$44] ; # Y\n; # (let Z P (setq P Y) (set 2 X Tos) (setq Tos Z))\n; # (set 2 X Tos)\n  %278 = inttoptr i64 %276 to i64*\n  %279 = getelementptr i64, i64* %278, i32 1\n  store i64 %274, i64* %279\n  br label %$44\n$46:\n  %280 = phi i64 [%258, %$44] ; # Tos\n  %281 = phi i64 [%259, %$44] ; # P\n  %282 = phi i64 [0, %$44] ; # ->\n; # (loop (let S (val P) (when (& (val S) 1) (let Tail (val (tail S))...\n  br label %$47\n$47:\n  %283 = phi i64 [%280, %$46], [%383, %$64] ; # Tos\n  %284 = phi i64 [%281, %$46], [%384, %$64] ; # P\n; # (let S (val P) (when (& (val S) 1) (let Tail (val (tail S)) (unle...\n; # (val P)\n  %285 = inttoptr i64 %284 to i64*\n  %286 = load i64, i64* %285\n; # (when (& (val S) 1) (let Tail (val (tail S)) (unless (num? Tail) ...\n; # (val S)\n  %287 = inttoptr i64 %286 to i64*\n  %288 = load i64, i64* %287\n; # (& (val S) 1)\n  %289 = and i64 %288, 1\n  %290 = icmp ne i64 %289, 0\n  br i1 %290, label %$48, label %$49\n$48:\n  %291 = phi i64 [%283, %$47] ; # Tos\n  %292 = phi i64 [%284, %$47] ; # P\n  %293 = phi i64 [%286, %$47] ; # S\n; # (let Tail (val (tail S)) (unless (num? Tail) (setq Tail (& Tail -...\n; # (tail S)\n  %294 = add i64 %293, -8\n; # (val (tail S))\n  %295 = inttoptr i64 %294 to i64*\n  %296 = load i64, i64* %295\n; # (unless (num? Tail) (setq Tail (& Tail -10)) (until (num? (setq T...\n; # (num? Tail)\n  %297 = and i64 %296, 6\n  %298 = icmp ne i64 %297, 0\n  br i1 %298, label %$51, label %$50\n$50:\n  %299 = phi i64 [%291, %$48] ; # Tos\n  %300 = phi i64 [%292, %$48] ; # P\n  %301 = phi i64 [%293, %$48] ; # S\n  %302 = phi i64 [%296, %$48] ; # Tail\n; # (& Tail -10)\n  %303 = and i64 %302, -10\n; # (until (num? (setq Tail (val 2 Tail))) (setq Tail (& Tail -2)))\n  br label %$52\n$52:\n  %304 = phi i64 [%299, %$50], [%313, %$53] ; # Tos\n  %305 = phi i64 [%300, %$50], [%314, %$53] ; # P\n  %306 = phi i64 [%301, %$50], [%315, %$53] ; # S\n  %307 = phi i64 [%303, %$50], [%317, %$53] ; # Tail\n; # (val 2 Tail)\n  %308 = inttoptr i64 %307 to i64*\n  %309 = getelementptr i64, i64* %308, i32 1\n  %310 = load i64, i64* %309\n; # (num? (setq Tail (val 2 Tail)))\n  %311 = and i64 %310, 6\n  %312 = icmp ne i64 %311, 0\n  br i1 %312, label %$54, label %$53\n$53:\n  %313 = phi i64 [%304, %$52] ; # Tos\n  %314 = phi i64 [%305, %$52] ; # P\n  %315 = phi i64 [%306, %$52] ; # S\n  %316 = phi i64 [%310, %$52] ; # Tail\n; # (& Tail -2)\n  %317 = and i64 %316, -2\n  br label %$52\n$54:\n  %318 = phi i64 [%304, %$52] ; # Tos\n  %319 = phi i64 [%305, %$52] ; # P\n  %320 = phi i64 [%306, %$52] ; # S\n  %321 = phi i64 [%310, %$52] ; # Tail\n  br label %$51\n$51:\n  %322 = phi i64 [%291, %$48], [%318, %$54] ; # Tos\n  %323 = phi i64 [%292, %$48], [%319, %$54] ; # P\n  %324 = phi i64 [%293, %$48], [%320, %$54] ; # S\n  %325 = phi i64 [%296, %$48], [%321, %$54] ; # Tail\n; # (add Tail Tail)\n  %326 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %325, i64 %325)\n  %327 = extractvalue {i64, i1} %326, 1\n  %328 = extractvalue {i64, i1} %326, 0\n; # (when @@ (mark S))\n  br i1 %327, label %$55, label %$56\n$55:\n  %329 = phi i64 [%322, %$51] ; # Tos\n  %330 = phi i64 [%323, %$51] ; # P\n  %331 = phi i64 [%324, %$51] ; # S\n  %332 = phi i64 [%325, %$51] ; # Tail\n; # (mark S)\n  call void @mark(i64 %331)\n  br label %$56\n$56:\n  %333 = phi i64 [%322, %$51], [%329, %$55] ; # Tos\n  %334 = phi i64 [%323, %$51], [%330, %$55] ; # P\n  %335 = phi i64 [%324, %$51], [%331, %$55] ; # S\n  %336 = phi i64 [%325, %$51], [%332, %$55] ; # Tail\n  br label %$49\n$49:\n  %337 = phi i64 [%283, %$47], [%333, %$56] ; # Tos\n  %338 = phi i64 [%284, %$47], [%334, %$56] ; # P\n  %339 = phi i64 [%286, %$47], [%335, %$56] ; # S\n; # (let X (val 2 P) (? (pair (val X)) (let Z P (setq P @) (set X Tos...\n; # (val 2 P)\n  %340 = inttoptr i64 %338 to i64*\n  %341 = getelementptr i64, i64* %340, i32 1\n  %342 = load i64, i64* %341\n; # (? (pair (val X)) (let Z P (setq P @) (set X Tos) (setq Tos (| Z ...\n; # (val X)\n  %343 = inttoptr i64 %342 to i64*\n  %344 = load i64, i64* %343\n; # (pair (val X))\n  %345 = and i64 %344, 15\n  %346 = icmp eq i64 %345, 0\n  br i1 %346, label %$59, label %$57\n$59:\n  %347 = phi i64 [%337, %$49] ; # Tos\n  %348 = phi i64 [%338, %$49] ; # P\n  %349 = phi i64 [%342, %$49] ; # X\n; # (let Z P (setq P @) (set X Tos) (setq Tos (| Z 8)))\n; # (set X Tos)\n  %350 = inttoptr i64 %349 to i64*\n  store i64 %347, i64* %350\n; # (| Z 8)\n  %351 = or i64 %348, 8\n  br label %$58\n$57:\n  %352 = phi i64 [%337, %$49] ; # Tos\n  %353 = phi i64 [%338, %$49] ; # P\n  %354 = phi i64 [%342, %$49] ; # X\n; # (loop (unless Tos (goto 1)) (? (=0 (& Tos 8)) (let (X Tos Y (val ...\n  br label %$60\n$60:\n  %355 = phi i64 [%352, %$57], [%381, %$63] ; # Tos\n  %356 = phi i64 [%353, %$57], [%376, %$63] ; # P\n; # (unless Tos (goto 1))\n  %357 = icmp ne i64 %355, 0\n  br i1 %357, label %$62, label %$61\n$61:\n  %358 = phi i64 [%355, %$60] ; # Tos\n  %359 = phi i64 [%356, %$60] ; # P\n; # (goto 1)\n  br label %$-1\n$62:\n  %360 = phi i64 [%355, %$60] ; # Tos\n  %361 = phi i64 [%356, %$60] ; # P\n; # (? (=0 (& Tos 8)) (let (X Tos Y (val 2 X)) (setq Tos (val 2 Y)) (...\n; # (& Tos 8)\n  %362 = and i64 %360, 8\n; # (=0 (& Tos 8))\n  %363 = icmp eq i64 %362, 0\n  br i1 %363, label %$65, label %$63\n$65:\n  %364 = phi i64 [%360, %$62] ; # Tos\n  %365 = phi i64 [%361, %$62] ; # P\n; # (let (X Tos Y (val 2 X)) (setq Tos (val 2 Y)) (set 2 Y P) (setq P...\n; # (val 2 X)\n  %366 = inttoptr i64 %364 to i64*\n  %367 = getelementptr i64, i64* %366, i32 1\n  %368 = load i64, i64* %367\n; # (val 2 Y)\n  %369 = inttoptr i64 %368 to i64*\n  %370 = getelementptr i64, i64* %369, i32 1\n  %371 = load i64, i64* %370\n; # (set 2 Y P)\n  %372 = inttoptr i64 %368 to i64*\n  %373 = getelementptr i64, i64* %372, i32 1\n  store i64 %365, i64* %373\n  br label %$64\n$63:\n  %374 = phi i64 [%360, %$62] ; # Tos\n  %375 = phi i64 [%361, %$62] ; # P\n; # (& Tos -9)\n  %376 = and i64 %374, -9\n; # (let (X Tos Y (val 2 X)) (setq Tos (val Y)) (set Y P) (setq P X))...\n; # (val 2 X)\n  %377 = inttoptr i64 %376 to i64*\n  %378 = getelementptr i64, i64* %377, i32 1\n  %379 = load i64, i64* %378\n; # (val Y)\n  %380 = inttoptr i64 %379 to i64*\n  %381 = load i64, i64* %380\n; # (set Y P)\n  %382 = inttoptr i64 %379 to i64*\n  store i64 %375, i64* %382\n  br label %$60\n$64:\n  %383 = phi i64 [%371, %$65] ; # Tos\n  %384 = phi i64 [%364, %$65] ; # P\n  %385 = phi i64 [%364, %$65] ; # ->\n  br label %$47\n$58:\n  %386 = phi i64 [%351, %$59] ; # Tos\n  %387 = phi i64 [%344, %$59] ; # P\n  %388 = phi i64 [%351, %$59] ; # ->\n  br label %$43\n$66:\n; # (: 1 (when (val $DBs) (set $DB $Db1)) (when (& (val $Db1) 1) (set...\n  br label %$-1\n$-1:\n; # (when (val $DBs) (set $DB $Db1))\n; # (val $DBs)\n  %389 = load i32, i32* @$DBs\n  %390 = icmp ne i32 %389, 0\n  br i1 %390, label %$67, label %$68\n$67:\n; # (set $DB $Db1)\n  %391 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 232) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64), i64* %391\n  br label %$68\n$68:\n; # (when (& (val $Db1) 1) (set $Db1 $Nil (tail $Db1) DB1))\n; # (val $Db1)\n  %392 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64) to i64*\n  %393 = load i64, i64* %392\n; # (& (val $Db1) 1)\n  %394 = and i64 %393, 1\n  %395 = icmp ne i64 %394, 0\n  br i1 %395, label %$69, label %$70\n$69:\n; # (set $Db1 $Nil (tail $Db1) DB1)\n  %396 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %396\n; # (tail $Db1)\n  %397 = add i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64), -8\n  %398 = inttoptr i64 %397 to i64*\n  store i64 26, i64* %398\n  br label %$70\n$70:\n; # (let (Tos 0 P (val $Extern)) (: 2 (loop (loop (let X (val 2 P) (?...\n; # (val $Extern)\n  %399 = load i64, i64* @$Extern\n; # (: 2 (loop (loop (let X (val 2 P) (? (atom (val 2 X))) (let Z P (...\n  br label %$-2\n$-2:\n  %400 = phi i64 [0, %$70], [%472, %$82] ; # Tos\n  %401 = phi i64 [%399, %$70], [%479, %$82] ; # P\n; # (loop (loop (let X (val 2 P) (? (atom (val 2 X))) (let Z P (setq ...\n  br label %$71\n$71:\n  %402 = phi i64 [%400, %$-2], [%609, %$91] ; # Tos\n  %403 = phi i64 [%401, %$-2], [%610, %$91] ; # P\n; # (loop (let X (val 2 P) (? (atom (val 2 X))) (let Z P (setq P @) (...\n  br label %$72\n$72:\n  %404 = phi i64 [%402, %$71], [%415, %$73] ; # Tos\n  %405 = phi i64 [%403, %$71], [%411, %$73] ; # P\n; # (let X (val 2 P) (? (atom (val 2 X))) (let Z P (setq P @) (set 2 ...\n; # (val 2 P)\n  %406 = inttoptr i64 %405 to i64*\n  %407 = getelementptr i64, i64* %406, i32 1\n  %408 = load i64, i64* %407\n; # (? (atom (val 2 X)))\n; # (val 2 X)\n  %409 = inttoptr i64 %408 to i64*\n  %410 = getelementptr i64, i64* %409, i32 1\n  %411 = load i64, i64* %410\n; # (atom (val 2 X))\n  %412 = and i64 %411, 15\n  %413 = icmp ne i64 %412, 0\n  br i1 %413, label %$74, label %$73\n$73:\n  %414 = phi i64 [%404, %$72] ; # Tos\n  %415 = phi i64 [%405, %$72] ; # P\n  %416 = phi i64 [%408, %$72] ; # X\n; # (let Z P (setq P @) (set 2 X Tos) (setq Tos Z))\n; # (set 2 X Tos)\n  %417 = inttoptr i64 %416 to i64*\n  %418 = getelementptr i64, i64* %417, i32 1\n  store i64 %414, i64* %418\n  br label %$72\n$74:\n  %419 = phi i64 [%404, %$72] ; # Tos\n  %420 = phi i64 [%405, %$72] ; # P\n  %421 = phi i64 [0, %$72] ; # ->\n; # (loop (when (& (val (val P)) 1) (set $ExtCnt (- (val $ExtCnt) 1))...\n  br label %$75\n$75:\n  %422 = phi i64 [%419, %$74], [%606, %$97] ; # Tos\n  %423 = phi i64 [%420, %$74], [%607, %$97] ; # P\n; # (when (& (val (val P)) 1) (set $ExtCnt (- (val $ExtCnt) 1)) (let ...\n; # (val P)\n  %424 = inttoptr i64 %423 to i64*\n  %425 = load i64, i64* %424\n; # (val (val P))\n  %426 = inttoptr i64 %425 to i64*\n  %427 = load i64, i64* %426\n; # (& (val (val P)) 1)\n  %428 = and i64 %427, 1\n  %429 = icmp ne i64 %428, 0\n  br i1 %429, label %$76, label %$77\n$76:\n  %430 = phi i64 [%422, %$75] ; # Tos\n  %431 = phi i64 [%423, %$75] ; # P\n; # (set $ExtCnt (- (val $ExtCnt) 1))\n; # (val $ExtCnt)\n  %432 = load i64, i64* @$ExtCnt\n; # (- (val $ExtCnt) 1)\n  %433 = sub i64 %432, 1\n  store i64 %433, i64* @$ExtCnt\n; # (let X (val 2 P) (when (atom X) (set 2 P (| X 1)) (setq P X) (got...\n; # (val 2 P)\n  %434 = inttoptr i64 %431 to i64*\n  %435 = getelementptr i64, i64* %434, i32 1\n  %436 = load i64, i64* %435\n; # (when (atom X) (set 2 P (| X 1)) (setq P X) (goto 4))\n; # (atom X)\n  %437 = and i64 %436, 15\n  %438 = icmp ne i64 %437, 0\n  br i1 %438, label %$78, label %$79\n$78:\n  %439 = phi i64 [%430, %$76] ; # Tos\n  %440 = phi i64 [%431, %$76] ; # P\n  %441 = phi i64 [%436, %$76] ; # X\n; # (set 2 P (| X 1))\n; # (| X 1)\n  %442 = or i64 %441, 1\n  %443 = inttoptr i64 %440 to i64*\n  %444 = getelementptr i64, i64* %443, i32 1\n  store i64 %442, i64* %444\n; # (goto 4)\n  br label %$-4\n$79:\n  %445 = phi i64 [%430, %$76] ; # Tos\n  %446 = phi i64 [%431, %$76] ; # P\n  %447 = phi i64 [%436, %$76] ; # X\n; # (when (atom (val X)) (set 2 P (| X 1)) (setq P (val 2 X)) (set 2 ...\n; # (val X)\n  %448 = inttoptr i64 %447 to i64*\n  %449 = load i64, i64* %448\n; # (atom (val X))\n  %450 = and i64 %449, 15\n  %451 = icmp ne i64 %450, 0\n  br i1 %451, label %$80, label %$81\n$80:\n  %452 = phi i64 [%445, %$79] ; # Tos\n  %453 = phi i64 [%446, %$79] ; # P\n  %454 = phi i64 [%447, %$79] ; # X\n; # (set 2 P (| X 1))\n; # (| X 1)\n  %455 = or i64 %454, 1\n  %456 = inttoptr i64 %453 to i64*\n  %457 = getelementptr i64, i64* %456, i32 1\n  store i64 %455, i64* %457\n; # (val 2 X)\n  %458 = inttoptr i64 %454 to i64*\n  %459 = getelementptr i64, i64* %458, i32 1\n  %460 = load i64, i64* %459\n; # (set 2 X (| P 1))\n; # (| P 1)\n  %461 = or i64 %460, 1\n  %462 = inttoptr i64 %454 to i64*\n  %463 = getelementptr i64, i64* %462, i32 1\n  store i64 %461, i64* %463\n; # (goto 4)\n  br label %$-4\n$81:\n  %464 = phi i64 [%445, %$79] ; # Tos\n  %465 = phi i64 [%446, %$79] ; # P\n  %466 = phi i64 [%447, %$79] ; # X\n; # (when (atom (val 2 X)) (set 2 P (| X 1)) (setq P (val X)) (set 2 ...\n; # (val 2 X)\n  %467 = inttoptr i64 %466 to i64*\n  %468 = getelementptr i64, i64* %467, i32 1\n  %469 = load i64, i64* %468\n; # (atom (val 2 X))\n  %470 = and i64 %469, 15\n  %471 = icmp ne i64 %470, 0\n  br i1 %471, label %$82, label %$83\n$82:\n  %472 = phi i64 [%464, %$81] ; # Tos\n  %473 = phi i64 [%465, %$81] ; # P\n  %474 = phi i64 [%466, %$81] ; # X\n; # (set 2 P (| X 1))\n; # (| X 1)\n  %475 = or i64 %474, 1\n  %476 = inttoptr i64 %473 to i64*\n  %477 = getelementptr i64, i64* %476, i32 1\n  store i64 %475, i64* %477\n; # (val X)\n  %478 = inttoptr i64 %474 to i64*\n  %479 = load i64, i64* %478\n; # (set 2 X (| (val 2 X) 1))\n; # (val 2 X)\n  %480 = inttoptr i64 %474 to i64*\n  %481 = getelementptr i64, i64* %480, i32 1\n  %482 = load i64, i64* %481\n; # (| (val 2 X) 1)\n  %483 = or i64 %482, 1\n  %484 = inttoptr i64 %474 to i64*\n  %485 = getelementptr i64, i64* %484, i32 1\n  store i64 %483, i64* %485\n; # (goto 2)\n  br label %$-2\n$83:\n  %486 = phi i64 [%464, %$81] ; # Tos\n  %487 = phi i64 [%465, %$81] ; # P\n  %488 = phi i64 [%466, %$81] ; # X\n; # (let Y (val 2 (setq X (val 2 X))) (when (atom (val Y)) (set P (va...\n; # (val 2 X)\n  %489 = inttoptr i64 %488 to i64*\n  %490 = getelementptr i64, i64* %489, i32 1\n  %491 = load i64, i64* %490\n; # (val 2 (setq X (val 2 X)))\n  %492 = inttoptr i64 %491 to i64*\n  %493 = getelementptr i64, i64* %492, i32 1\n  %494 = load i64, i64* %493\n; # (when (atom (val Y)) (set P (val X) 2 (val 2 P) (val 2 Y)) (goto ...\n; # (val Y)\n  %495 = inttoptr i64 %494 to i64*\n  %496 = load i64, i64* %495\n; # (atom (val Y))\n  %497 = and i64 %496, 15\n  %498 = icmp ne i64 %497, 0\n  br i1 %498, label %$84, label %$85\n$84:\n  %499 = phi i64 [%486, %$83] ; # Tos\n  %500 = phi i64 [%487, %$83] ; # P\n  %501 = phi i64 [%491, %$83] ; # X\n  %502 = phi i64 [%494, %$83] ; # Y\n; # (set P (val X) 2 (val 2 P) (val 2 Y))\n; # (val X)\n  %503 = inttoptr i64 %501 to i64*\n  %504 = load i64, i64* %503\n  %505 = inttoptr i64 %500 to i64*\n  store i64 %504, i64* %505\n; # (val 2 P)\n  %506 = inttoptr i64 %500 to i64*\n  %507 = getelementptr i64, i64* %506, i32 1\n  %508 = load i64, i64* %507\n; # (val 2 Y)\n  %509 = inttoptr i64 %502 to i64*\n  %510 = getelementptr i64, i64* %509, i32 1\n  %511 = load i64, i64* %510\n  %512 = inttoptr i64 %508 to i64*\n  %513 = getelementptr i64, i64* %512, i32 1\n  store i64 %511, i64* %513\n; # (goto 3)\n  br label %$-3\n$85:\n  %514 = phi i64 [%486, %$83] ; # Tos\n  %515 = phi i64 [%487, %$83] ; # P\n  %516 = phi i64 [%491, %$83] ; # X\n  %517 = phi i64 [%494, %$83] ; # Y\n; # (val Y)\n  %518 = inttoptr i64 %517 to i64*\n  %519 = load i64, i64* %518\n; # (loop (? (atom (val (val 2 Y))) (set P (val Y) (val 2 X) (val 2 (...\n  br label %$86\n$86:\n  %520 = phi i64 [%514, %$85], [%548, %$87] ; # Tos\n  %521 = phi i64 [%515, %$85], [%549, %$87] ; # P\n  %522 = phi i64 [%516, %$85], [%551, %$87] ; # X\n  %523 = phi i64 [%519, %$85], [%528, %$87] ; # Y\n; # (? (atom (val (val 2 Y))) (set P (val Y) (val 2 X) (val 2 (val 2 ...\n; # (val 2 Y)\n  %524 = inttoptr i64 %523 to i64*\n  %525 = getelementptr i64, i64* %524, i32 1\n  %526 = load i64, i64* %525\n; # (val (val 2 Y))\n  %527 = inttoptr i64 %526 to i64*\n  %528 = load i64, i64* %527\n; # (atom (val (val 2 Y)))\n  %529 = and i64 %528, 15\n  %530 = icmp ne i64 %529, 0\n  br i1 %530, label %$89, label %$87\n$89:\n  %531 = phi i64 [%520, %$86] ; # Tos\n  %532 = phi i64 [%521, %$86] ; # P\n  %533 = phi i64 [%522, %$86] ; # X\n  %534 = phi i64 [%523, %$86] ; # Y\n; # (set P (val Y) (val 2 X) (val 2 (val 2 Y)))\n; # (val Y)\n  %535 = inttoptr i64 %534 to i64*\n  %536 = load i64, i64* %535\n  %537 = inttoptr i64 %532 to i64*\n  store i64 %536, i64* %537\n; # (val 2 X)\n  %538 = inttoptr i64 %533 to i64*\n  %539 = getelementptr i64, i64* %538, i32 1\n  %540 = load i64, i64* %539\n; # (val 2 Y)\n  %541 = inttoptr i64 %534 to i64*\n  %542 = getelementptr i64, i64* %541, i32 1\n  %543 = load i64, i64* %542\n; # (val 2 (val 2 Y))\n  %544 = inttoptr i64 %543 to i64*\n  %545 = getelementptr i64, i64* %544, i32 1\n  %546 = load i64, i64* %545\n  %547 = inttoptr i64 %540 to i64*\n  store i64 %546, i64* %547\n  br label %$88\n$87:\n  %548 = phi i64 [%520, %$86] ; # Tos\n  %549 = phi i64 [%521, %$86] ; # P\n  %550 = phi i64 [%522, %$86] ; # X\n  %551 = phi i64 [%523, %$86] ; # Y\n  br label %$86\n$88:\n  %552 = phi i64 [%531, %$89] ; # Tos\n  %553 = phi i64 [%532, %$89] ; # P\n  %554 = phi i64 [%533, %$89] ; # X\n  %555 = phi i64 [%534, %$89] ; # Y\n  %556 = phi i64 [%546, %$89] ; # ->\n  br label %$77\n$77:\n  %557 = phi i64 [%422, %$75], [%552, %$88] ; # Tos\n  %558 = phi i64 [%423, %$75], [%553, %$88] ; # P\n; # (: 3 (let X (val 2 P) (? (pair (val X)) (let Z P (setq P @) (set ...\n  br label %$-3\n$-3:\n  %559 = phi i64 [%499, %$84], [%557, %$77] ; # Tos\n  %560 = phi i64 [%500, %$84], [%558, %$77] ; # P\n; # (let X (val 2 P) (? (pair (val X)) (let Z P (setq P @) (set X Tos...\n; # (val 2 P)\n  %561 = inttoptr i64 %560 to i64*\n  %562 = getelementptr i64, i64* %561, i32 1\n  %563 = load i64, i64* %562\n; # (? (pair (val X)) (let Z P (setq P @) (set X Tos) (setq Tos (| Z ...\n; # (val X)\n  %564 = inttoptr i64 %563 to i64*\n  %565 = load i64, i64* %564\n; # (pair (val X))\n  %566 = and i64 %565, 15\n  %567 = icmp eq i64 %566, 0\n  br i1 %567, label %$92, label %$90\n$92:\n  %568 = phi i64 [%559, %$-3] ; # Tos\n  %569 = phi i64 [%560, %$-3] ; # P\n  %570 = phi i64 [%563, %$-3] ; # X\n; # (let Z P (setq P @) (set X Tos) (setq Tos (| Z 8)))\n; # (set X Tos)\n  %571 = inttoptr i64 %570 to i64*\n  store i64 %568, i64* %571\n; # (| Z 8)\n  %572 = or i64 %569, 8\n  br label %$91\n$90:\n  %573 = phi i64 [%559, %$-3] ; # Tos\n  %574 = phi i64 [%560, %$-3] ; # P\n  %575 = phi i64 [%563, %$-3] ; # X\n; # (: 4 (loop (unless Tos (goto 5)) (? (=0 (& Tos 8)) (let (X Tos Y ...\n  br label %$-4\n$-4:\n  %576 = phi i64 [%439, %$78], [%452, %$80], [%573, %$90] ; # Tos\n  %577 = phi i64 [%441, %$78], [%460, %$80], [%574, %$90] ; # P\n; # (loop (unless Tos (goto 5)) (? (=0 (& Tos 8)) (let (X Tos Y (val ...\n  br label %$93\n$93:\n  %578 = phi i64 [%576, %$-4], [%604, %$96] ; # Tos\n  %579 = phi i64 [%577, %$-4], [%599, %$96] ; # P\n; # (unless Tos (goto 5))\n  %580 = icmp ne i64 %578, 0\n  br i1 %580, label %$95, label %$94\n$94:\n  %581 = phi i64 [%578, %$93] ; # Tos\n  %582 = phi i64 [%579, %$93] ; # P\n; # (goto 5)\n  br label %$-5\n$95:\n  %583 = phi i64 [%578, %$93] ; # Tos\n  %584 = phi i64 [%579, %$93] ; # P\n; # (? (=0 (& Tos 8)) (let (X Tos Y (val 2 X)) (setq Tos (val 2 Y)) (...\n; # (& Tos 8)\n  %585 = and i64 %583, 8\n; # (=0 (& Tos 8))\n  %586 = icmp eq i64 %585, 0\n  br i1 %586, label %$98, label %$96\n$98:\n  %587 = phi i64 [%583, %$95] ; # Tos\n  %588 = phi i64 [%584, %$95] ; # P\n; # (let (X Tos Y (val 2 X)) (setq Tos (val 2 Y)) (set 2 Y P) (setq P...\n; # (val 2 X)\n  %589 = inttoptr i64 %587 to i64*\n  %590 = getelementptr i64, i64* %589, i32 1\n  %591 = load i64, i64* %590\n; # (val 2 Y)\n  %592 = inttoptr i64 %591 to i64*\n  %593 = getelementptr i64, i64* %592, i32 1\n  %594 = load i64, i64* %593\n; # (set 2 Y P)\n  %595 = inttoptr i64 %591 to i64*\n  %596 = getelementptr i64, i64* %595, i32 1\n  store i64 %588, i64* %596\n  br label %$97\n$96:\n  %597 = phi i64 [%583, %$95] ; # Tos\n  %598 = phi i64 [%584, %$95] ; # P\n; # (let (X (& Tos -9) Y (val 2 X)) (setq Tos (val Y)) (set Y P) (set...\n; # (& Tos -9)\n  %599 = and i64 %597, -9\n; # (val 2 X)\n  %600 = inttoptr i64 %599 to i64*\n  %601 = getelementptr i64, i64* %600, i32 1\n  %602 = load i64, i64* %601\n; # (val Y)\n  %603 = inttoptr i64 %602 to i64*\n  %604 = load i64, i64* %603\n; # (set Y P)\n  %605 = inttoptr i64 %602 to i64*\n  store i64 %598, i64* %605\n  br label %$93\n$97:\n  %606 = phi i64 [%594, %$98] ; # Tos\n  %607 = phi i64 [%587, %$98] ; # P\n  %608 = phi i64 [%587, %$98] ; # ->\n  br label %$75\n$91:\n  %609 = phi i64 [%572, %$92] ; # Tos\n  %610 = phi i64 [%565, %$92] ; # P\n  %611 = phi i64 [%572, %$92] ; # ->\n  br label %$71\n$99:\n; # (: 5 (set $Extern P))\n  br label %$-5\n$-5:\n  %612 = phi i64 [%581, %$94], [%609, %$99] ; # Tos\n  %613 = phi i64 [%582, %$94], [%610, %$99] ; # P\n; # (set $Extern P)\n  store i64 %613, i64* @$Extern\n; # (let (Avail 0 Heap (val $Heaps) Cnt (val $GcCount)) (ifn Cnt (let...\n; # (val $Heaps)\n  %614 = load i64, i64* @$Heaps\n; # (val $GcCount)\n  %615 = load i64, i64* @$GcCount\n; # (ifn Cnt (let H (any $Heaps) (loop (let (A Avail P (ofs Heap (- H...\n  %616 = icmp ne i64 %615, 0\n  br i1 %616, label %$101, label %$100\n$100:\n  %617 = phi i64 [0, %$-5] ; # Avail\n  %618 = phi i64 [%614, %$-5] ; # Heap\n  %619 = phi i64 [%615, %$-5] ; # Cnt\n; # (let H (any $Heaps) (loop (let (A Avail P (ofs Heap (- HEAP 2))) ...\n; # (any $Heaps)\n  %620 = ptrtoint i64* @$Heaps to i64\n; # (loop (let (A Avail P (ofs Heap (- HEAP 2))) (setq Cnt CELLS) (lo...\n  br label %$103\n$103:\n  %621 = phi i64 [%617, %$100], [%697, %$112] ; # Avail\n  %622 = phi i64 [%618, %$100], [%698, %$112] ; # Heap\n  %623 = phi i64 [%619, %$100], [%699, %$112] ; # Cnt\n  %624 = phi i64 [%620, %$100], [%700, %$112] ; # H\n; # (let (A Avail P (ofs Heap (- HEAP 2))) (setq Cnt CELLS) (loop (wh...\n; # (- HEAP 2)\n; # (ofs Heap (- HEAP 2))\n  %625 = add i64 %622, 1048560\n; # (loop (when (& (val 2 P) 1) (set P Avail) (setq Avail P) (dec 'Cn...\n  br label %$104\n$104:\n  %626 = phi i64 [%621, %$103], [%652, %$107] ; # Avail\n  %627 = phi i64 [%622, %$103], [%653, %$107] ; # Heap\n  %628 = phi i64 [65536, %$103], [%654, %$107] ; # Cnt\n  %629 = phi i64 [%624, %$103], [%655, %$107] ; # H\n  %630 = phi i64 [%621, %$103], [%656, %$107] ; # A\n  %631 = phi i64 [%625, %$103], [%658, %$107] ; # P\n; # (when (& (val 2 P) 1) (set P Avail) (setq Avail P) (dec 'Cnt))\n; # (val 2 P)\n  %632 = inttoptr i64 %631 to i64*\n  %633 = getelementptr i64, i64* %632, i32 1\n  %634 = load i64, i64* %633\n; # (& (val 2 P) 1)\n  %635 = and i64 %634, 1\n  %636 = icmp ne i64 %635, 0\n  br i1 %636, label %$105, label %$106\n$105:\n  %637 = phi i64 [%626, %$104] ; # Avail\n  %638 = phi i64 [%627, %$104] ; # Heap\n  %639 = phi i64 [%628, %$104] ; # Cnt\n  %640 = phi i64 [%629, %$104] ; # H\n  %641 = phi i64 [%630, %$104] ; # A\n  %642 = phi i64 [%631, %$104] ; # P\n; # (set P Avail)\n  %643 = inttoptr i64 %642 to i64*\n  store i64 %637, i64* %643\n; # (dec 'Cnt)\n  %644 = sub i64 %639, 1\n  br label %$106\n$106:\n  %645 = phi i64 [%626, %$104], [%642, %$105] ; # Avail\n  %646 = phi i64 [%627, %$104], [%638, %$105] ; # Heap\n  %647 = phi i64 [%628, %$104], [%644, %$105] ; # Cnt\n  %648 = phi i64 [%629, %$104], [%640, %$105] ; # H\n  %649 = phi i64 [%630, %$104], [%641, %$105] ; # A\n  %650 = phi i64 [%631, %$104], [%642, %$105] ; # P\n; # (? (== P Heap))\n; # (== P Heap)\n  %651 = icmp eq i64 %650, %646\n  br i1 %651, label %$108, label %$107\n$107:\n  %652 = phi i64 [%645, %$106] ; # Avail\n  %653 = phi i64 [%646, %$106] ; # Heap\n  %654 = phi i64 [%647, %$106] ; # Cnt\n  %655 = phi i64 [%648, %$106] ; # H\n  %656 = phi i64 [%649, %$106] ; # A\n  %657 = phi i64 [%650, %$106] ; # P\n; # (ofs P -2)\n  %658 = add i64 %657, -16\n  br label %$104\n$108:\n  %659 = phi i64 [%645, %$106] ; # Avail\n  %660 = phi i64 [%646, %$106] ; # Heap\n  %661 = phi i64 [%647, %$106] ; # Cnt\n  %662 = phi i64 [%648, %$106] ; # H\n  %663 = phi i64 [%649, %$106] ; # A\n  %664 = phi i64 [%650, %$106] ; # P\n  %665 = phi i64 [0, %$106] ; # ->\n; # (if Cnt (setq Heap (val (setq H (ofs Heap HEAP)))) (setq Avail A ...\n  %666 = icmp ne i64 %661, 0\n  br i1 %666, label %$109, label %$110\n$109:\n  %667 = phi i64 [%659, %$108] ; # Avail\n  %668 = phi i64 [%660, %$108] ; # Heap\n  %669 = phi i64 [%661, %$108] ; # Cnt\n  %670 = phi i64 [%662, %$108] ; # H\n  %671 = phi i64 [%663, %$108] ; # A\n  %672 = phi i64 [%664, %$108] ; # P\n; # (ofs Heap HEAP)\n  %673 = add i64 %668, 1048576\n; # (val (setq H (ofs Heap HEAP)))\n  %674 = inttoptr i64 %673 to i64*\n  %675 = load i64, i64* %674\n  br label %$111\n$110:\n  %676 = phi i64 [%659, %$108] ; # Avail\n  %677 = phi i64 [%660, %$108] ; # Heap\n  %678 = phi i64 [%661, %$108] ; # Cnt\n  %679 = phi i64 [%662, %$108] ; # H\n  %680 = phi i64 [%663, %$108] ; # A\n  %681 = phi i64 [%664, %$108] ; # P\n; # (inc HEAP)\n; # (val (inc HEAP) Heap)\n  %682 = inttoptr i64 %677 to i64*\n  %683 = getelementptr i64, i64* %682, i32 131072\n  %684 = load i64, i64* %683\n; # (val H)\n  %685 = inttoptr i64 %679 to i64*\n  %686 = load i64, i64* %685\n; # (i8* (val H))\n  %687 = inttoptr i64 %686 to i8*\n; # (free (i8* (val H)))\n  call void @free(i8* %687)\n; # (set H Heap)\n  %688 = inttoptr i64 %679 to i64*\n  store i64 %684, i64* %688\n  br label %$111\n$111:\n  %689 = phi i64 [%667, %$109], [%680, %$110] ; # Avail\n  %690 = phi i64 [%675, %$109], [%684, %$110] ; # Heap\n  %691 = phi i64 [%669, %$109], [%678, %$110] ; # Cnt\n  %692 = phi i64 [%673, %$109], [%679, %$110] ; # H\n  %693 = phi i64 [%671, %$109], [%680, %$110] ; # A\n  %694 = phi i64 [%672, %$109], [%681, %$110] ; # P\n  %695 = phi i64 [%675, %$109], [%684, %$110] ; # ->\n; # (? (=0 Heap))\n; # (=0 Heap)\n  %696 = icmp eq i64 %690, 0\n  br i1 %696, label %$113, label %$112\n$112:\n  %697 = phi i64 [%689, %$111] ; # Avail\n  %698 = phi i64 [%690, %$111] ; # Heap\n  %699 = phi i64 [%691, %$111] ; # Cnt\n  %700 = phi i64 [%692, %$111] ; # H\n  br label %$103\n$113:\n  %701 = phi i64 [%689, %$111] ; # Avail\n  %702 = phi i64 [%690, %$111] ; # Heap\n  %703 = phi i64 [%691, %$111] ; # Cnt\n  %704 = phi i64 [%692, %$111] ; # H\n  %705 = phi i64 [0, %$111] ; # ->\n; # (set $Avail Avail)\n  store i64 %701, i64* @$Avail\n  br label %$102\n$101:\n  %706 = phi i64 [0, %$-5] ; # Avail\n  %707 = phi i64 [%614, %$-5] ; # Heap\n  %708 = phi i64 [%615, %$-5] ; # Cnt\n; # (loop (let P (ofs Heap (- HEAP 2)) (loop (when (& (val 2 P) 1) (s...\n  br label %$114\n$114:\n  %709 = phi i64 [%706, %$101], [%747, %$120] ; # Avail\n  %710 = phi i64 [%707, %$101], [%748, %$120] ; # Heap\n  %711 = phi i64 [%708, %$101], [%749, %$120] ; # Cnt\n; # (let P (ofs Heap (- HEAP 2)) (loop (when (& (val 2 P) 1) (set P A...\n; # (- HEAP 2)\n; # (ofs Heap (- HEAP 2))\n  %712 = add i64 %710, 1048560\n; # (loop (when (& (val 2 P) 1) (set P Avail) (setq Avail P) (dec 'Cn...\n  br label %$115\n$115:\n  %713 = phi i64 [%709, %$114], [%733, %$118] ; # Avail\n  %714 = phi i64 [%710, %$114], [%734, %$118] ; # Heap\n  %715 = phi i64 [%711, %$114], [%735, %$118] ; # Cnt\n  %716 = phi i64 [%712, %$114], [%737, %$118] ; # P\n; # (when (& (val 2 P) 1) (set P Avail) (setq Avail P) (dec 'Cnt))\n; # (val 2 P)\n  %717 = inttoptr i64 %716 to i64*\n  %718 = getelementptr i64, i64* %717, i32 1\n  %719 = load i64, i64* %718\n; # (& (val 2 P) 1)\n  %720 = and i64 %719, 1\n  %721 = icmp ne i64 %720, 0\n  br i1 %721, label %$116, label %$117\n$116:\n  %722 = phi i64 [%713, %$115] ; # Avail\n  %723 = phi i64 [%714, %$115] ; # Heap\n  %724 = phi i64 [%715, %$115] ; # Cnt\n  %725 = phi i64 [%716, %$115] ; # P\n; # (set P Avail)\n  %726 = inttoptr i64 %725 to i64*\n  store i64 %722, i64* %726\n; # (dec 'Cnt)\n  %727 = sub i64 %724, 1\n  br label %$117\n$117:\n  %728 = phi i64 [%713, %$115], [%725, %$116] ; # Avail\n  %729 = phi i64 [%714, %$115], [%723, %$116] ; # Heap\n  %730 = phi i64 [%715, %$115], [%727, %$116] ; # Cnt\n  %731 = phi i64 [%716, %$115], [%725, %$116] ; # P\n; # (? (== P Heap))\n; # (== P Heap)\n  %732 = icmp eq i64 %731, %729\n  br i1 %732, label %$119, label %$118\n$118:\n  %733 = phi i64 [%728, %$117] ; # Avail\n  %734 = phi i64 [%729, %$117] ; # Heap\n  %735 = phi i64 [%730, %$117] ; # Cnt\n  %736 = phi i64 [%731, %$117] ; # P\n; # (ofs P -2)\n  %737 = add i64 %736, -16\n  br label %$115\n$119:\n  %738 = phi i64 [%728, %$117] ; # Avail\n  %739 = phi i64 [%729, %$117] ; # Heap\n  %740 = phi i64 [%730, %$117] ; # Cnt\n  %741 = phi i64 [%731, %$117] ; # P\n  %742 = phi i64 [0, %$117] ; # ->\n; # (? (=0 (setq Heap (val (inc HEAP) Heap))))\n; # (inc HEAP)\n; # (val (inc HEAP) Heap)\n  %743 = inttoptr i64 %739 to i64*\n  %744 = getelementptr i64, i64* %743, i32 131072\n  %745 = load i64, i64* %744\n; # (=0 (setq Heap (val (inc HEAP) Heap)))\n  %746 = icmp eq i64 %745, 0\n  br i1 %746, label %$121, label %$120\n$120:\n  %747 = phi i64 [%738, %$119] ; # Avail\n  %748 = phi i64 [%745, %$119] ; # Heap\n  %749 = phi i64 [%740, %$119] ; # Cnt\n  br label %$114\n$121:\n  %750 = phi i64 [%738, %$119] ; # Avail\n  %751 = phi i64 [%745, %$119] ; # Heap\n  %752 = phi i64 [%740, %$119] ; # Cnt\n  %753 = phi i64 [0, %$119] ; # ->\n; # (set $Avail Avail)\n  store i64 %750, i64* @$Avail\n; # (when (gt0 Cnt) (set $GcCount (+ Cnt (val $GcCount))) (inc 'Cnt C...\n; # (gt0 Cnt)\n  %754 = icmp sgt i64 %752, 0\n  br i1 %754, label %$122, label %$123\n$122:\n  %755 = phi i64 [%750, %$121] ; # Avail\n  %756 = phi i64 [%751, %$121] ; # Heap\n  %757 = phi i64 [%752, %$121] ; # Cnt\n; # (set $GcCount (+ Cnt (val $GcCount)))\n; # (val $GcCount)\n  %758 = load i64, i64* @$GcCount\n; # (+ Cnt (val $GcCount))\n  %759 = add i64 %757, %758\n  store i64 %759, i64* @$GcCount\n; # (inc 'Cnt Cnt)\n  %760 = add i64 %757, %757\n; # (loop (heapAlloc) (? (le0 (dec 'Cnt CELLS))))\n  br label %$124\n$124:\n  %761 = phi i64 [%755, %$122], [%766, %$125] ; # Avail\n  %762 = phi i64 [%756, %$122], [%767, %$125] ; # Heap\n  %763 = phi i64 [%760, %$122], [%768, %$125] ; # Cnt\n; # (heapAlloc)\n  call void @heapAlloc()\n; # (? (le0 (dec 'Cnt CELLS)))\n; # (dec 'Cnt CELLS)\n  %764 = sub i64 %763, 65536\n; # (le0 (dec 'Cnt CELLS))\n  %765 = icmp sle i64 %764, 0\n  br i1 %765, label %$126, label %$125\n$125:\n  %766 = phi i64 [%761, %$124] ; # Avail\n  %767 = phi i64 [%762, %$124] ; # Heap\n  %768 = phi i64 [%764, %$124] ; # Cnt\n  br label %$124\n$126:\n  %769 = phi i64 [%761, %$124] ; # Avail\n  %770 = phi i64 [%762, %$124] ; # Heap\n  %771 = phi i64 [%764, %$124] ; # Cnt\n  %772 = phi i64 [0, %$124] ; # ->\n  br label %$123\n$123:\n  %773 = phi i64 [%750, %$121], [%769, %$126] ; # Avail\n  %774 = phi i64 [%751, %$121], [%770, %$126] ; # Heap\n  %775 = phi i64 [%752, %$121], [%771, %$126] ; # Cnt\n  br label %$102\n$102:\n  %776 = phi i64 [%701, %$113], [%773, %$123] ; # Avail\n  %777 = phi i64 [%702, %$113], [%774, %$123] ; # Heap\n  %778 = phi i64 [%703, %$113], [%775, %$123] ; # Cnt\n  ret void\n}\n\ndefine void @need3() align 8 {\n$1:\n; # (let P (val $Avail) (unless (and P (setq P (val P)) (val P)) (gc)...\n; # (val $Avail)\n  %0 = load i64, i64* @$Avail\n; # (unless (and P (setq P (val P)) (val P)) (gc))\n; # (and P (setq P (val P)) (val P))\n  %1 = icmp ne i64 %0, 0\n  br i1 %1, label %$3, label %$2\n$3:\n  %2 = phi i64 [%0, %$1] ; # P\n; # (val P)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$2\n$4:\n  %6 = phi i64 [%4, %$3] ; # P\n; # (val P)\n  %7 = inttoptr i64 %6 to i64*\n  %8 = load i64, i64* %7\n  %9 = icmp ne i64 %8, 0\n  br label %$2\n$2:\n  %10 = phi i64 [%0, %$1], [%4, %$3], [%6, %$4] ; # P\n  %11 = phi i1 [0, %$1], [0, %$3], [%9, %$4] ; # ->\n  br i1 %11, label %$6, label %$5\n$5:\n  %12 = phi i64 [%10, %$2] ; # P\n; # (gc)\n  call void @gc()\n  br label %$6\n$6:\n  %13 = phi i64 [%10, %$2], [%12, %$5] ; # P\n  ret void\n}\n\ndefine i64 @_Gc(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (if (nil? Y) (gc) (set $GcCou...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (nil? Y) (gc) (set $GcCount (shl (xCnt Exe Y) 16)) (gc) (set ...\n; # (nil? Y)\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  %22 = phi i64 [%18, %$2] ; # Y\n; # (gc)\n  call void @gc()\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%3, %$2] ; # X\n  %25 = phi i64 [%18, %$2] ; # Y\n; # (set $GcCount (shl (xCnt Exe Y) 16))\n; # (xCnt Exe Y)\n  %26 = call i64 @xCnt(i64 %23, i64 %25)\n; # (shl (xCnt Exe Y) 16)\n  %27 = shl i64 %26, 16\n  store i64 %27, i64* @$GcCount\n; # (gc)\n  call void @gc()\n; # (set $GcCount (if (atom (shift X)) CELLS (shl (evCnt Exe X) 16)))...\n; # (if (atom (shift X)) CELLS (shl (evCnt Exe X) 16))\n; # (shift X)\n  %28 = inttoptr i64 %24 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n; # (atom (shift X))\n  %31 = and i64 %30, 15\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$10, label %$11\n$10:\n  %33 = phi i64 [%23, %$8] ; # Exe\n  %34 = phi i64 [%30, %$8] ; # X\n  %35 = phi i64 [%25, %$8] ; # Y\n  br label %$12\n$11:\n  %36 = phi i64 [%23, %$8] ; # Exe\n  %37 = phi i64 [%30, %$8] ; # X\n  %38 = phi i64 [%25, %$8] ; # Y\n; # (evCnt Exe X)\n  %39 = call i64 @evCnt(i64 %36, i64 %37)\n; # (shl (evCnt Exe X) 16)\n  %40 = shl i64 %39, 16\n  br label %$12\n$12:\n  %41 = phi i64 [%33, %$10], [%36, %$11] ; # Exe\n  %42 = phi i64 [%34, %$10], [%37, %$11] ; # X\n  %43 = phi i64 [%35, %$10], [%38, %$11] ; # Y\n  %44 = phi i64 [65536, %$10], [%40, %$11] ; # ->\n  store i64 %44, i64* @$GcCount\n  br label %$9\n$9:\n  %45 = phi i64 [%20, %$7], [%41, %$12] ; # Exe\n  %46 = phi i64 [%21, %$7], [%42, %$12] ; # X\n  %47 = phi i64 [%22, %$7], [%43, %$12] ; # Y\n  ret i64 %47\n}\n\ndefine i64 @cons(i64, i64) align 8 {\n$1:\n; # (let P (val $Avail) (unless P (save2 Car Cdr (gc)) (setq P (val $...\n; # (val $Avail)\n  %2 = load i64, i64* @$Avail\n; # (unless P (save2 Car Cdr (gc)) (setq P (val $Avail)))\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Car\n  %5 = phi i64 [%1, %$1] ; # Cdr\n  %6 = phi i64 [%2, %$1] ; # P\n; # (save2 Car Cdr (gc))\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %8 = load i64, i64* %7\n  %9 = alloca i64, i64 2, align 16\n  %10 = ptrtoint i64* %9 to i64\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %4, i64* %11\n  %12 = add i64 %10, 8\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = alloca i64, i64 2, align 16\n  %15 = ptrtoint i64* %14 to i64\n  %16 = inttoptr i64 %15 to i64*\n  store i64 %5, i64* %16\n  %17 = add i64 %15, 8\n  %18 = inttoptr i64 %17 to i64*\n  store i64 %10, i64* %18\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %15, i64* %19\n; # (gc)\n  call void @gc()\n; # drop\n  %20 = inttoptr i64 %10 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  %22 = load i64, i64* %21\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %23\n; # (val $Avail)\n  %24 = load i64, i64* @$Avail\n  br label %$3\n$3:\n  %25 = phi i64 [%0, %$1], [%4, %$2] ; # Car\n  %26 = phi i64 [%1, %$1], [%5, %$2] ; # Cdr\n  %27 = phi i64 [%2, %$1], [%24, %$2] ; # P\n; # (set $Avail (val P))\n; # (val P)\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  store i64 %29, i64* @$Avail\n; # (set P Car)\n  %30 = inttoptr i64 %27 to i64*\n  store i64 %25, i64* %30\n; # (set 2 P Cdr)\n  %31 = inttoptr i64 %27 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  store i64 %26, i64* %32\n  ret i64 %27\n}\n\ndefine i64 @cons2(i64, i64, i64) align 8 {\n$1:\n; # (let P (val $Avail) (when P (let Q (val P) (when Q (set $Avail (v...\n; # (val $Avail)\n  %3 = load i64, i64* @$Avail\n; # (when P (let Q (val P) (when Q (set $Avail (val Q)) (set P Car1) ...\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Car1\n  %6 = phi i64 [%1, %$1] ; # Cdr1\n  %7 = phi i64 [%2, %$1] ; # Cdr2\n  %8 = phi i64 [%3, %$1] ; # P\n; # (let Q (val P) (when Q (set $Avail (val Q)) (set P Car1) (set 2 P...\n; # (val P)\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (when Q (set $Avail (val Q)) (set P Car1) (set 2 P Cdr1) (set Q P...\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$5\n$4:\n  %12 = phi i64 [%5, %$2] ; # Car1\n  %13 = phi i64 [%6, %$2] ; # Cdr1\n  %14 = phi i64 [%7, %$2] ; # Cdr2\n  %15 = phi i64 [%8, %$2] ; # P\n  %16 = phi i64 [%10, %$2] ; # Q\n; # (set $Avail (val Q))\n; # (val Q)\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  store i64 %18, i64* @$Avail\n; # (set P Car1)\n  %19 = inttoptr i64 %15 to i64*\n  store i64 %12, i64* %19\n; # (set 2 P Cdr1)\n  %20 = inttoptr i64 %15 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  store i64 %13, i64* %21\n; # (set Q P)\n  %22 = inttoptr i64 %16 to i64*\n  store i64 %15, i64* %22\n; # (set 2 Q Cdr2)\n  %23 = inttoptr i64 %16 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  store i64 %14, i64* %24\n; # (ret Q)\n  ret i64 %16\n$5:\n  %25 = phi i64 [%5, %$2] ; # Car1\n  %26 = phi i64 [%6, %$2] ; # Cdr1\n  %27 = phi i64 [%7, %$2] ; # Cdr2\n  %28 = phi i64 [%8, %$2] ; # P\n  %29 = phi i64 [%10, %$2] ; # Q\n  br label %$3\n$3:\n  %30 = phi i64 [%0, %$1], [%25, %$5] ; # Car1\n  %31 = phi i64 [%1, %$1], [%26, %$5] ; # Cdr1\n  %32 = phi i64 [%2, %$1], [%27, %$5] ; # Cdr2\n  %33 = phi i64 [%3, %$1], [%28, %$5] ; # P\n; # (save2 Car1 Cdr1 (save Cdr2 (gc)))\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %35 = load i64, i64* %34\n  %36 = alloca i64, i64 2, align 16\n  %37 = ptrtoint i64* %36 to i64\n  %38 = inttoptr i64 %37 to i64*\n  store i64 %30, i64* %38\n  %39 = add i64 %37, 8\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %35, i64* %40\n  %41 = alloca i64, i64 2, align 16\n  %42 = ptrtoint i64* %41 to i64\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %31, i64* %43\n  %44 = add i64 %42, 8\n  %45 = inttoptr i64 %44 to i64*\n  store i64 %37, i64* %45\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %42, i64* %46\n; # (save Cdr2 (gc))\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = alloca i64, i64 2, align 16\n  %50 = ptrtoint i64* %49 to i64\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %32, i64* %51\n  %52 = add i64 %50, 8\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %50, i64* %54\n; # (gc)\n  call void @gc()\n; # drop\n  %55 = inttoptr i64 %50 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %57, i64* %58\n; # drop\n  %59 = inttoptr i64 %37 to i64*\n  %60 = getelementptr i64, i64* %59, i32 1\n  %61 = load i64, i64* %60\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %61, i64* %62\n; # (let (P (val $Avail) Q (val P)) (set $Avail (val Q)) (set P Car1)...\n; # (val $Avail)\n  %63 = load i64, i64* @$Avail\n; # (val P)\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n; # (set $Avail (val Q))\n; # (val Q)\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n  store i64 %67, i64* @$Avail\n; # (set P Car1)\n  %68 = inttoptr i64 %63 to i64*\n  store i64 %30, i64* %68\n; # (set 2 P Cdr1)\n  %69 = inttoptr i64 %63 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  store i64 %31, i64* %70\n; # (set Q P)\n  %71 = inttoptr i64 %65 to i64*\n  store i64 %63, i64* %71\n; # (set 2 Q Cdr2)\n  %72 = inttoptr i64 %65 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  store i64 %32, i64* %73\n  ret i64 %65\n}\n\ndefine i64 @cons3(i64, i64, i64, i64) align 8 {\n$1:\n; # (let P (val $Avail) (when P (let Q (val P) (when Q (let R (val Q)...\n; # (val $Avail)\n  %4 = load i64, i64* @$Avail\n; # (when P (let Q (val P) (when Q (let R (val Q) (when R (set $Avail...\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Car1\n  %7 = phi i64 [%1, %$1] ; # Cdr1\n  %8 = phi i64 [%2, %$1] ; # Car2\n  %9 = phi i64 [%3, %$1] ; # Cdr2\n  %10 = phi i64 [%4, %$1] ; # P\n; # (let Q (val P) (when Q (let R (val Q) (when R (set $Avail (val R)...\n; # (val P)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (when Q (let R (val Q) (when R (set $Avail (val R)) (set P Car1) ...\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$4, label %$5\n$4:\n  %14 = phi i64 [%6, %$2] ; # Car1\n  %15 = phi i64 [%7, %$2] ; # Cdr1\n  %16 = phi i64 [%8, %$2] ; # Car2\n  %17 = phi i64 [%9, %$2] ; # Cdr2\n  %18 = phi i64 [%10, %$2] ; # P\n  %19 = phi i64 [%12, %$2] ; # Q\n; # (let R (val Q) (when R (set $Avail (val R)) (set P Car1) (set 2 P...\n; # (val Q)\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n; # (when R (set $Avail (val R)) (set P Car1) (set 2 P Cdr1) (set Q C...\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$6, label %$7\n$6:\n  %23 = phi i64 [%14, %$4] ; # Car1\n  %24 = phi i64 [%15, %$4] ; # Cdr1\n  %25 = phi i64 [%16, %$4] ; # Car2\n  %26 = phi i64 [%17, %$4] ; # Cdr2\n  %27 = phi i64 [%18, %$4] ; # P\n  %28 = phi i64 [%19, %$4] ; # Q\n  %29 = phi i64 [%21, %$4] ; # R\n; # (set $Avail (val R))\n; # (val R)\n  %30 = inttoptr i64 %29 to i64*\n  %31 = load i64, i64* %30\n  store i64 %31, i64* @$Avail\n; # (set P Car1)\n  %32 = inttoptr i64 %27 to i64*\n  store i64 %23, i64* %32\n; # (set 2 P Cdr1)\n  %33 = inttoptr i64 %27 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  store i64 %24, i64* %34\n; # (set Q Car2)\n  %35 = inttoptr i64 %28 to i64*\n  store i64 %25, i64* %35\n; # (set 2 Q Cdr2)\n  %36 = inttoptr i64 %28 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  store i64 %26, i64* %37\n; # (set R P)\n  %38 = inttoptr i64 %29 to i64*\n  store i64 %27, i64* %38\n; # (set 2 R Q)\n  %39 = inttoptr i64 %29 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  store i64 %28, i64* %40\n; # (ret R)\n  ret i64 %29\n$7:\n  %41 = phi i64 [%14, %$4] ; # Car1\n  %42 = phi i64 [%15, %$4] ; # Cdr1\n  %43 = phi i64 [%16, %$4] ; # Car2\n  %44 = phi i64 [%17, %$4] ; # Cdr2\n  %45 = phi i64 [%18, %$4] ; # P\n  %46 = phi i64 [%19, %$4] ; # Q\n  %47 = phi i64 [%21, %$4] ; # R\n  br label %$5\n$5:\n  %48 = phi i64 [%6, %$2], [%41, %$7] ; # Car1\n  %49 = phi i64 [%7, %$2], [%42, %$7] ; # Cdr1\n  %50 = phi i64 [%8, %$2], [%43, %$7] ; # Car2\n  %51 = phi i64 [%9, %$2], [%44, %$7] ; # Cdr2\n  %52 = phi i64 [%10, %$2], [%45, %$7] ; # P\n  %53 = phi i64 [%12, %$2], [%46, %$7] ; # Q\n  br label %$3\n$3:\n  %54 = phi i64 [%0, %$1], [%48, %$5] ; # Car1\n  %55 = phi i64 [%1, %$1], [%49, %$5] ; # Cdr1\n  %56 = phi i64 [%2, %$1], [%50, %$5] ; # Car2\n  %57 = phi i64 [%3, %$1], [%51, %$5] ; # Cdr2\n  %58 = phi i64 [%4, %$1], [%52, %$5] ; # P\n; # (save2 Car1 Cdr1 (save2 Car2 Cdr2 (gc)))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = alloca i64, i64 2, align 16\n  %62 = ptrtoint i64* %61 to i64\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %54, i64* %63\n  %64 = add i64 %62, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 %60, i64* %65\n  %66 = alloca i64, i64 2, align 16\n  %67 = ptrtoint i64* %66 to i64\n  %68 = inttoptr i64 %67 to i64*\n  store i64 %55, i64* %68\n  %69 = add i64 %67, 8\n  %70 = inttoptr i64 %69 to i64*\n  store i64 %62, i64* %70\n  %71 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %67, i64* %71\n; # (save2 Car2 Cdr2 (gc))\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %73 = load i64, i64* %72\n  %74 = alloca i64, i64 2, align 16\n  %75 = ptrtoint i64* %74 to i64\n  %76 = inttoptr i64 %75 to i64*\n  store i64 %56, i64* %76\n  %77 = add i64 %75, 8\n  %78 = inttoptr i64 %77 to i64*\n  store i64 %73, i64* %78\n  %79 = alloca i64, i64 2, align 16\n  %80 = ptrtoint i64* %79 to i64\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %57, i64* %81\n  %82 = add i64 %80, 8\n  %83 = inttoptr i64 %82 to i64*\n  store i64 %75, i64* %83\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %84\n; # (gc)\n  call void @gc()\n; # drop\n  %85 = inttoptr i64 %75 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  %87 = load i64, i64* %86\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %87, i64* %88\n; # drop\n  %89 = inttoptr i64 %62 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %91, i64* %92\n; # (let (P (val $Avail) Q (val P) R (val Q)) (set $Avail (val R)) (s...\n; # (val $Avail)\n  %93 = load i64, i64* @$Avail\n; # (val P)\n  %94 = inttoptr i64 %93 to i64*\n  %95 = load i64, i64* %94\n; # (val Q)\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (set $Avail (val R))\n; # (val R)\n  %98 = inttoptr i64 %97 to i64*\n  %99 = load i64, i64* %98\n  store i64 %99, i64* @$Avail\n; # (set P Car1)\n  %100 = inttoptr i64 %93 to i64*\n  store i64 %54, i64* %100\n; # (set 2 P Cdr1)\n  %101 = inttoptr i64 %93 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  store i64 %55, i64* %102\n; # (set Q Car2)\n  %103 = inttoptr i64 %95 to i64*\n  store i64 %56, i64* %103\n; # (set 2 Q Cdr2)\n  %104 = inttoptr i64 %95 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  store i64 %57, i64* %105\n; # (set R P)\n  %106 = inttoptr i64 %97 to i64*\n  store i64 %93, i64* %106\n; # (set 2 R Q)\n  %107 = inttoptr i64 %97 to i64*\n  %108 = getelementptr i64, i64* %107, i32 1\n  store i64 %95, i64* %108\n  ret i64 %97\n}\n\ndefine i64 @consSym(i64, i64) align 8 {\n$1:\n; # (let P (val $Avail) (unless P (if Val (save2 Name Val (gc)) (save...\n; # (val $Avail)\n  %2 = load i64, i64* @$Avail\n; # (unless P (if Val (save2 Name Val (gc)) (save Name (gc))) (setq P...\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Name\n  %5 = phi i64 [%1, %$1] ; # Val\n  %6 = phi i64 [%2, %$1] ; # P\n; # (if Val (save2 Name Val (gc)) (save Name (gc)))\n  %7 = icmp ne i64 %5, 0\n  br i1 %7, label %$4, label %$5\n$4:\n  %8 = phi i64 [%4, %$2] ; # Name\n  %9 = phi i64 [%5, %$2] ; # Val\n  %10 = phi i64 [%6, %$2] ; # P\n; # (save2 Name Val (gc))\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %12 = load i64, i64* %11\n  %13 = alloca i64, i64 2, align 16\n  %14 = ptrtoint i64* %13 to i64\n  %15 = inttoptr i64 %14 to i64*\n  store i64 %8, i64* %15\n  %16 = add i64 %14, 8\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %12, i64* %17\n  %18 = alloca i64, i64 2, align 16\n  %19 = ptrtoint i64* %18 to i64\n  %20 = inttoptr i64 %19 to i64*\n  store i64 %9, i64* %20\n  %21 = add i64 %19, 8\n  %22 = inttoptr i64 %21 to i64*\n  store i64 %14, i64* %22\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %19, i64* %23\n; # (gc)\n  call void @gc()\n; # drop\n  %24 = inttoptr i64 %14 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %27\n  br label %$6\n$5:\n  %28 = phi i64 [%4, %$2] ; # Name\n  %29 = phi i64 [%5, %$2] ; # Val\n  %30 = phi i64 [%6, %$2] ; # P\n; # (save Name (gc))\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %32 = load i64, i64* %31\n  %33 = alloca i64, i64 2, align 16\n  %34 = ptrtoint i64* %33 to i64\n  %35 = inttoptr i64 %34 to i64*\n  store i64 %28, i64* %35\n  %36 = add i64 %34, 8\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %32, i64* %37\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %34, i64* %38\n; # (gc)\n  call void @gc()\n; # drop\n  %39 = inttoptr i64 %34 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %42\n  br label %$6\n$6:\n  %43 = phi i64 [%8, %$4], [%28, %$5] ; # Name\n  %44 = phi i64 [%9, %$4], [%29, %$5] ; # Val\n  %45 = phi i64 [%10, %$4], [%30, %$5] ; # P\n; # (val $Avail)\n  %46 = load i64, i64* @$Avail\n  br label %$3\n$3:\n  %47 = phi i64 [%0, %$1], [%43, %$6] ; # Name\n  %48 = phi i64 [%1, %$1], [%44, %$6] ; # Val\n  %49 = phi i64 [%2, %$1], [%46, %$6] ; # P\n; # (set $Avail (val P))\n; # (val P)\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  store i64 %51, i64* @$Avail\n; # (set P Name)\n  %52 = inttoptr i64 %49 to i64*\n  store i64 %47, i64* %52\n; # (let S (sym P) (set S (if Val @ S)) S)\n; # (sym P)\n  %53 = or i64 %49, 8\n; # (set S (if Val @ S))\n; # (if Val @ S)\n  %54 = icmp ne i64 %48, 0\n  br i1 %54, label %$7, label %$8\n$7:\n  %55 = phi i64 [%47, %$3] ; # Name\n  %56 = phi i64 [%48, %$3] ; # Val\n  %57 = phi i64 [%49, %$3] ; # P\n  %58 = phi i64 [%53, %$3] ; # S\n  br label %$9\n$8:\n  %59 = phi i64 [%47, %$3] ; # Name\n  %60 = phi i64 [%48, %$3] ; # Val\n  %61 = phi i64 [%49, %$3] ; # P\n  %62 = phi i64 [%53, %$3] ; # S\n  br label %$9\n$9:\n  %63 = phi i64 [%55, %$7], [%59, %$8] ; # Name\n  %64 = phi i64 [%56, %$7], [%60, %$8] ; # Val\n  %65 = phi i64 [%57, %$7], [%61, %$8] ; # P\n  %66 = phi i64 [%58, %$7], [%62, %$8] ; # S\n  %67 = phi i64 [%48, %$7], [%62, %$8] ; # ->\n  %68 = inttoptr i64 %53 to i64*\n  store i64 %67, i64* %68\n  ret i64 %66\n}\n\ndefine i64 @consStr(i64) align 8 {\n$1:\n; # (if (== Name ZERO) $Nil (tailcall (consSym Name 0)))\n; # (== Name ZERO)\n  %1 = icmp eq i64 %0, 2\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i64 [%0, %$1] ; # Name\n  br label %$4\n$3:\n  %3 = phi i64 [%0, %$1] ; # Name\n; # (consSym Name 0)\n  %4 = tail call i64 @consSym(i64 %3, i64 0)\n  br label %$4\n$4:\n  %5 = phi i64 [%2, %$2], [%3, %$3] ; # Name\n  %6 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%4, %$3] ; # ->\n  ret i64 %6\n}\n\ndefine i64 @consExt(i64) align 8 {\n$1:\n; # (set $ExtCnt (+ (val $ExtCnt) 1))\n; # (val $ExtCnt)\n  %1 = load i64, i64* @$ExtCnt\n; # (+ (val $ExtCnt) 1)\n  %2 = add i64 %1, 1\n  store i64 %2, i64* @$ExtCnt\n; # (sign Name)\n  %3 = or i64 %0, 8\n; # (consSym (sign Name) $Nil)\n  %4 = tail call i64 @consSym(i64 %3, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  ret i64 %4\n}\n\ndefine i64 @boxNum(i64) align 8 {\n$1:\n; # (let P (val $Avail) (unless P (gc) (setq P (val $Avail))) (set $A...\n; # (val $Avail)\n  %1 = load i64, i64* @$Avail\n; # (unless P (gc) (setq P (val $Avail)))\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$3, label %$2\n$2:\n  %3 = phi i64 [%0, %$1] ; # Dig\n  %4 = phi i64 [%1, %$1] ; # P\n; # (gc)\n  call void @gc()\n; # (val $Avail)\n  %5 = load i64, i64* @$Avail\n  br label %$3\n$3:\n  %6 = phi i64 [%0, %$1], [%3, %$2] ; # Dig\n  %7 = phi i64 [%1, %$1], [%5, %$2] ; # P\n; # (set $Avail (val P))\n; # (val P)\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n  store i64 %9, i64* @$Avail\n; # (set P Dig)\n  %10 = inttoptr i64 %7 to i64*\n  store i64 %6, i64* %10\n; # (set 2 P ZERO)\n  %11 = inttoptr i64 %7 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  store i64 2, i64* %12\n; # (big P)\n  %13 = add i64 %7, 4\n  ret i64 %13\n}\n\ndefine i64 @consNum(i64, i64) align 8 {\n$1:\n; # (let P (val $Avail) (unless P (save Big (gc)) (setq P (val $Avail...\n; # (val $Avail)\n  %2 = load i64, i64* @$Avail\n; # (unless P (save Big (gc)) (setq P (val $Avail)))\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Dig\n  %5 = phi i64 [%1, %$1] ; # Big\n  %6 = phi i64 [%2, %$1] ; # P\n; # (save Big (gc))\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %8 = load i64, i64* %7\n  %9 = alloca i64, i64 2, align 16\n  %10 = ptrtoint i64* %9 to i64\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %5, i64* %11\n  %12 = add i64 %10, 8\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %10, i64* %14\n; # (gc)\n  call void @gc()\n; # drop\n  %15 = inttoptr i64 %10 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %17, i64* %18\n; # (val $Avail)\n  %19 = load i64, i64* @$Avail\n  br label %$3\n$3:\n  %20 = phi i64 [%0, %$1], [%4, %$2] ; # Dig\n  %21 = phi i64 [%1, %$1], [%5, %$2] ; # Big\n  %22 = phi i64 [%2, %$1], [%19, %$2] ; # P\n; # (set $Avail (val P))\n; # (val P)\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  store i64 %24, i64* @$Avail\n; # (set P Dig)\n  %25 = inttoptr i64 %22 to i64*\n  store i64 %20, i64* %25\n; # (set 2 P Big)\n  %26 = inttoptr i64 %22 to i64*\n  %27 = getelementptr i64, i64* %26, i32 1\n  store i64 %21, i64* %27\n; # (big P)\n  %28 = add i64 %22, 4\n  ret i64 %28\n}\n\ndefine i64 @box(i64) align 8 {\n$1:\n; # (if (ge0 N) (box64 N) (sign (box64 (- N))))\n; # (ge0 N)\n  %1 = icmp sge i64 %0, 0\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i64 [%0, %$1] ; # N\n; # (box64 N)\n  %3 = and i64 %2, 17293822569102704640\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$5, label %$6\n$5:\n  %5 = phi i64 [%2, %$2] ; # N\n  %6 = call i64 @boxNum(i64 %5)\n  br label %$7\n$6:\n  %7 = phi i64 [%2, %$2] ; # N\n  %8 = shl i64 %7, 4\n  %9 = or i64 %8, 2\n  br label %$7\n$7:\n  %10 = phi i64 [%5, %$5], [%7, %$6] ; # N\n  %11 = phi i64 [%6, %$5], [%9, %$6] ; # ->\n  br label %$4\n$3:\n  %12 = phi i64 [%0, %$1] ; # N\n; # (- N)\n  %13 = sub i64 0, %12\n; # (box64 (- N))\n  %14 = and i64 %13, 17293822569102704640\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$8, label %$9\n$8:\n  %16 = phi i64 [%13, %$3] ; # N\n  %17 = call i64 @boxNum(i64 %16)\n  br label %$10\n$9:\n  %18 = phi i64 [%13, %$3] ; # N\n  %19 = shl i64 %18, 4\n  %20 = or i64 %19, 2\n  br label %$10\n$10:\n  %21 = phi i64 [%16, %$8], [%18, %$9] ; # N\n  %22 = phi i64 [%17, %$8], [%20, %$9] ; # ->\n; # (sign (box64 (- N)))\n  %23 = or i64 %22, 8\n  br label %$4\n$4:\n  %24 = phi i64 [%2, %$7], [%12, %$10] ; # N\n  %25 = phi i64 [%11, %$7], [%23, %$10] ; # ->\n  ret i64 %25\n}\n\ndefine void @divErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Div/0\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([6 x i8]* @$27 to i8*), i8* null)\n  unreachable\n}\n\ndefine i8 @symByte(i64*) align 8 {\n$1:\n; # (let C (val P) (unless C (let Nm (val 2 P) (cond ((== Nm ZERO) (r...\n; # (val P)\n  %1 = load i64, i64* %0\n; # (unless C (let Nm (val 2 P) (cond ((== Nm ZERO) (ret (i8 0))) ((c...\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$3, label %$2\n$2:\n  %3 = phi i64* [%0, %$1] ; # P\n  %4 = phi i64 [%1, %$1] ; # C\n; # (let Nm (val 2 P) (cond ((== Nm ZERO) (ret (i8 0))) ((cnt? Nm) (s...\n; # (val 2 P)\n  %5 = getelementptr i64, i64* %3, i32 1\n  %6 = load i64, i64* %5\n; # (cond ((== Nm ZERO) (ret (i8 0))) ((cnt? Nm) (setq C (int Nm)) (s...\n; # (== Nm ZERO)\n  %7 = icmp eq i64 %6, 2\n  br i1 %7, label %$6, label %$5\n$6:\n  %8 = phi i64* [%3, %$2] ; # P\n  %9 = phi i64 [%4, %$2] ; # C\n  %10 = phi i64 [%6, %$2] ; # Nm\n; # (i8 0)\n; # (ret (i8 0))\n  ret i8 0\n$5:\n  %11 = phi i64* [%3, %$2] ; # P\n  %12 = phi i64 [%4, %$2] ; # C\n  %13 = phi i64 [%6, %$2] ; # Nm\n; # (cnt? Nm)\n  %14 = and i64 %13, 2\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$8, label %$7\n$8:\n  %16 = phi i64* [%11, %$5] ; # P\n  %17 = phi i64 [%12, %$5] ; # C\n  %18 = phi i64 [%13, %$5] ; # Nm\n; # (int Nm)\n  %19 = lshr i64 %18, 4\n; # (set 2 P ZERO)\n  %20 = getelementptr i64, i64* %16, i32 1\n  store i64 2, i64* %20\n  br label %$4\n$7:\n  %21 = phi i64* [%11, %$5] ; # P\n  %22 = phi i64 [%12, %$5] ; # C\n  %23 = phi i64 [%13, %$5] ; # Nm\n; # (set P (val (dig Nm)))\n; # (dig Nm)\n  %24 = add i64 %23, -4\n; # (val (dig Nm))\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  store i64 %26, i64* %21\n; # (set 2 P (val (big Nm)))\n; # (big Nm)\n  %27 = add i64 %23, 4\n; # (val (big Nm))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  %30 = getelementptr i64, i64* %21, i32 1\n  store i64 %29, i64* %30\n  br label %$4\n$4:\n  %31 = phi i64* [%16, %$8], [%21, %$7] ; # P\n  %32 = phi i64 [%19, %$8], [%26, %$7] ; # C\n  %33 = phi i64 [%18, %$8], [%23, %$7] ; # Nm\n  %34 = phi i64 [2, %$8], [%29, %$7] ; # ->\n  br label %$3\n$3:\n  %35 = phi i64* [%0, %$1], [%31, %$4] ; # P\n  %36 = phi i64 [%1, %$1], [%32, %$4] ; # C\n; # (set P (shr C 8))\n; # (shr C 8)\n  %37 = lshr i64 %36, 8\n  store i64 %37, i64* %35\n; # (i8 C)\n  %38 = trunc i64 %36 to i8\n  ret i8 %38\n}\n\ndefine i32 @symChar(i64*) align 8 {\n$1:\n; # (let C (i32 (symByte P)) (cond ((>= 127 C) C) ((== C (hex \"FF\")) ...\n; # (symByte P)\n  %1 = call i8 @symByte(i64* %0)\n; # (i32 (symByte P))\n  %2 = zext i8 %1 to i32\n; # (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)) (T (| (shl (if...\n; # (>= 127 C)\n  %3 = icmp sge i32 127, %2\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64* [%0, %$1] ; # P\n  %5 = phi i32 [%2, %$1] ; # C\n  br label %$2\n$3:\n  %6 = phi i64* [%0, %$1] ; # P\n  %7 = phi i32 [%2, %$1] ; # C\n; # (== C (hex \"FF\"))\n  %8 = icmp eq i32 %7, 255\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64* [%6, %$3] ; # P\n  %10 = phi i32 [%7, %$3] ; # C\n; # (i32 TOP)\n  br label %$2\n$5:\n  %11 = phi i64* [%6, %$3] ; # P\n  %12 = phi i32 [%7, %$3] ; # C\n; # (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C (hex \"10...\n; # (& C (hex \"20\"))\n  %13 = and i32 %12, 32\n  %14 = icmp ne i32 %13, 0\n  br i1 %14, label %$8, label %$7\n$7:\n  %15 = phi i64* [%11, %$5] ; # P\n  %16 = phi i32 [%12, %$5] ; # C\n; # (& C (hex \"1F\"))\n  %17 = and i32 %16, 31\n  br label %$9\n$8:\n  %18 = phi i64* [%11, %$5] ; # P\n  %19 = phi i32 [%12, %$5] ; # C\n; # (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex \"7\")) 6)...\n; # (& C (hex \"10\"))\n  %20 = and i32 %19, 16\n  %21 = icmp ne i32 %20, 0\n  br i1 %21, label %$11, label %$10\n$10:\n  %22 = phi i64* [%18, %$8] ; # P\n  %23 = phi i32 [%19, %$8] ; # C\n; # (& C (hex \"0F\"))\n  %24 = and i32 %23, 15\n  br label %$12\n$11:\n  %25 = phi i64* [%18, %$8] ; # P\n  %26 = phi i32 [%19, %$8] ; # C\n; # (& C (hex \"7\"))\n  %27 = and i32 %26, 7\n; # (shl (& C (hex \"7\")) 6)\n  %28 = shl i32 %27, 6\n; # (symByte P)\n  %29 = call i8 @symByte(i64* %25)\n; # (i32 (symByte P))\n  %30 = zext i8 %29 to i32\n; # (& (i32 (symByte P)) (hex \"3F\"))\n  %31 = and i32 %30, 63\n; # (| (shl (& C (hex \"7\")) 6) (& (i32 (symByte P)) (hex \"3F\")))\n  %32 = or i32 %28, %31\n  br label %$12\n$12:\n  %33 = phi i64* [%22, %$10], [%25, %$11] ; # P\n  %34 = phi i32 [%23, %$10], [%26, %$11] ; # C\n  %35 = phi i32 [%24, %$10], [%32, %$11] ; # ->\n; # (shl (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex \"7\"...\n  %36 = shl i32 %35, 6\n; # (symByte P)\n  %37 = call i8 @symByte(i64* %33)\n; # (i32 (symByte P))\n  %38 = zext i8 %37 to i32\n; # (& (i32 (symByte P)) (hex \"3F\"))\n  %39 = and i32 %38, 63\n; # (| (shl (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex ...\n  %40 = or i32 %36, %39\n  br label %$9\n$9:\n  %41 = phi i64* [%15, %$7], [%33, %$12] ; # P\n  %42 = phi i32 [%16, %$7], [%34, %$12] ; # C\n  %43 = phi i32 [%17, %$7], [%40, %$12] ; # ->\n; # (shl (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C (he...\n  %44 = shl i32 %43, 6\n; # (symByte P)\n  %45 = call i8 @symByte(i64* %41)\n; # (i32 (symByte P))\n  %46 = zext i8 %45 to i32\n; # (& (i32 (symByte P)) (hex \"3F\"))\n  %47 = and i32 %46, 63\n; # (| (shl (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C ...\n  %48 = or i32 %44, %47\n  br label %$2\n$2:\n  %49 = phi i64* [%4, %$4], [%9, %$6], [%41, %$9] ; # P\n  %50 = phi i32 [%5, %$4], [%10, %$6], [%42, %$9] ; # C\n  %51 = phi i32 [%5, %$4], [1114112, %$6], [%48, %$9] ; # ->\n  ret i32 %51\n}\n\ndefine void @byteNum(i8, i64*) align 8 {\n$1:\n; # (let (Cnt (val P) Nm (val 3 P)) (if (cnt? Nm) (cond ((== Cnt 67) ...\n; # (val P)\n  %2 = load i64, i64* %1\n; # (val 3 P)\n  %3 = getelementptr i64, i64* %1, i32 2\n  %4 = load i64, i64* %3\n; # (if (cnt? Nm) (cond ((== Cnt 67) (set 3 P (set 2 P (consNum (shr ...\n; # (cnt? Nm)\n  %5 = and i64 %4, 2\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i8 [%0, %$1] ; # B\n  %8 = phi i64* [%1, %$1] ; # P\n  %9 = phi i64 [%2, %$1] ; # Cnt\n  %10 = phi i64 [%4, %$1] ; # Nm\n; # (cond ((== Cnt 67) (set 3 P (set 2 P (consNum (shr Nm 3) (cnt (i6...\n; # (== Cnt 67)\n  %11 = icmp eq i64 %9, 67\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i8 [%7, %$2] ; # B\n  %13 = phi i64* [%8, %$2] ; # P\n  %14 = phi i64 [%9, %$2] ; # Cnt\n  %15 = phi i64 [%10, %$2] ; # Nm\n; # (set 3 P (set 2 P (consNum (shr Nm 3) (cnt (i64 B)))))\n; # (set 2 P (consNum (shr Nm 3) (cnt (i64 B))))\n; # (shr Nm 3)\n  %16 = lshr i64 %15, 3\n; # (i64 B)\n  %17 = zext i8 %12 to i64\n; # (cnt (i64 B))\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n; # (consNum (shr Nm 3) (cnt (i64 B)))\n  %20 = call i64 @consNum(i64 %16, i64 %19)\n  %21 = getelementptr i64, i64* %13, i32 1\n  store i64 %20, i64* %21\n  %22 = getelementptr i64, i64* %13, i32 2\n  store i64 %20, i64* %22\n; # (set P 12)\n  store i64 12, i64* %13\n  br label %$5\n$6:\n  %23 = phi i8 [%7, %$2] ; # B\n  %24 = phi i64* [%8, %$2] ; # P\n  %25 = phi i64 [%9, %$2] ; # Cnt\n  %26 = phi i64 [%10, %$2] ; # Nm\n; # (and (== Cnt 59) (>= B 32))\n; # (== Cnt 59)\n  %27 = icmp eq i64 %25, 59\n  br i1 %27, label %$9, label %$8\n$9:\n  %28 = phi i8 [%23, %$6] ; # B\n  %29 = phi i64* [%24, %$6] ; # P\n  %30 = phi i64 [%25, %$6] ; # Cnt\n  %31 = phi i64 [%26, %$6] ; # Nm\n; # (>= B 32)\n  %32 = icmp uge i8 %28, 32\n  br label %$8\n$8:\n  %33 = phi i8 [%23, %$6], [%28, %$9] ; # B\n  %34 = phi i64* [%24, %$6], [%29, %$9] ; # P\n  %35 = phi i64 [%25, %$6], [%30, %$9] ; # Cnt\n  %36 = phi i64 [%26, %$6], [%31, %$9] ; # Nm\n  %37 = phi i1 [0, %$6], [%32, %$9] ; # ->\n  br i1 %37, label %$11, label %$10\n$11:\n  %38 = phi i8 [%33, %$8] ; # B\n  %39 = phi i64* [%34, %$8] ; # P\n  %40 = phi i64 [%35, %$8] ; # Cnt\n  %41 = phi i64 [%36, %$8] ; # Nm\n; # (set 3 P (set 2 P (boxNum (| (shr Nm 3) (shl (i64 B) 56)))))\n; # (set 2 P (boxNum (| (shr Nm 3) (shl (i64 B) 56))))\n; # (shr Nm 3)\n  %42 = lshr i64 %41, 3\n; # (i64 B)\n  %43 = zext i8 %38 to i64\n; # (shl (i64 B) 56)\n  %44 = shl i64 %43, 56\n; # (| (shr Nm 3) (shl (i64 B) 56))\n  %45 = or i64 %42, %44\n; # (boxNum (| (shr Nm 3) (shl (i64 B) 56)))\n  %46 = call i64 @boxNum(i64 %45)\n  %47 = getelementptr i64, i64* %39, i32 1\n  store i64 %46, i64* %47\n  %48 = getelementptr i64, i64* %39, i32 2\n  store i64 %46, i64* %48\n; # (set P 4)\n  store i64 4, i64* %39\n  br label %$5\n$10:\n  %49 = phi i8 [%33, %$8] ; # B\n  %50 = phi i64* [%34, %$8] ; # P\n  %51 = phi i64 [%35, %$8] ; # Cnt\n  %52 = phi i64 [%36, %$8] ; # Nm\n; # (set 3 P (| Nm (shl (i64 B) Cnt)) P (+ Cnt 8))\n; # (i64 B)\n  %53 = zext i8 %49 to i64\n; # (shl (i64 B) Cnt)\n  %54 = shl i64 %53, %51\n; # (| Nm (shl (i64 B) Cnt))\n  %55 = or i64 %52, %54\n  %56 = getelementptr i64, i64* %50, i32 2\n  store i64 %55, i64* %56\n; # (+ Cnt 8)\n  %57 = add i64 %51, 8\n  store i64 %57, i64* %50\n  br label %$5\n$5:\n  %58 = phi i8 [%12, %$7], [%38, %$11], [%49, %$10] ; # B\n  %59 = phi i64* [%13, %$7], [%39, %$11], [%50, %$10] ; # P\n  %60 = phi i64 [%14, %$7], [%40, %$11], [%51, %$10] ; # Cnt\n  %61 = phi i64 [%15, %$7], [%41, %$11], [%52, %$10] ; # Nm\n  %62 = phi i64 [12, %$7], [4, %$11], [%57, %$10] ; # ->\n  br label %$4\n$3:\n  %63 = phi i8 [%0, %$1] ; # B\n  %64 = phi i64* [%1, %$1] ; # P\n  %65 = phi i64 [%2, %$1] ; # Cnt\n  %66 = phi i64 [%4, %$1] ; # Nm\n; # (let (Q (val 2 P) N (val (big Q))) (cond ((== Cnt 68) (set 2 P (s...\n; # (val 2 P)\n  %67 = getelementptr i64, i64* %64, i32 1\n  %68 = load i64, i64* %67\n; # (big Q)\n  %69 = add i64 %68, 4\n; # (val (big Q))\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n; # (cond ((== Cnt 68) (set 2 P (set (big Q) (consNum (int N) (cnt (i...\n; # (== Cnt 68)\n  %72 = icmp eq i64 %65, 68\n  br i1 %72, label %$14, label %$13\n$14:\n  %73 = phi i8 [%63, %$3] ; # B\n  %74 = phi i64* [%64, %$3] ; # P\n  %75 = phi i64 [%65, %$3] ; # Cnt\n  %76 = phi i64 [%66, %$3] ; # Nm\n  %77 = phi i64 [%68, %$3] ; # Q\n  %78 = phi i64 [%71, %$3] ; # N\n; # (set 2 P (set (big Q) (consNum (int N) (cnt (i64 B)))))\n; # (set (big Q) (consNum (int N) (cnt (i64 B))))\n; # (big Q)\n  %79 = add i64 %77, 4\n; # (int N)\n  %80 = lshr i64 %78, 4\n; # (i64 B)\n  %81 = zext i8 %73 to i64\n; # (cnt (i64 B))\n  %82 = shl i64 %81, 4\n  %83 = or i64 %82, 2\n; # (consNum (int N) (cnt (i64 B)))\n  %84 = call i64 @consNum(i64 %80, i64 %83)\n  %85 = inttoptr i64 %79 to i64*\n  store i64 %84, i64* %85\n  %86 = getelementptr i64, i64* %74, i32 1\n  store i64 %84, i64* %86\n; # (set P 12)\n  store i64 12, i64* %74\n  br label %$12\n$13:\n  %87 = phi i8 [%63, %$3] ; # B\n  %88 = phi i64* [%64, %$3] ; # P\n  %89 = phi i64 [%65, %$3] ; # Cnt\n  %90 = phi i64 [%66, %$3] ; # Nm\n  %91 = phi i64 [%68, %$3] ; # Q\n  %92 = phi i64 [%71, %$3] ; # N\n; # (and (== Cnt 60) (>= B 16))\n; # (== Cnt 60)\n  %93 = icmp eq i64 %89, 60\n  br i1 %93, label %$16, label %$15\n$16:\n  %94 = phi i8 [%87, %$13] ; # B\n  %95 = phi i64* [%88, %$13] ; # P\n  %96 = phi i64 [%89, %$13] ; # Cnt\n  %97 = phi i64 [%90, %$13] ; # Nm\n  %98 = phi i64 [%91, %$13] ; # Q\n  %99 = phi i64 [%92, %$13] ; # N\n; # (>= B 16)\n  %100 = icmp uge i8 %94, 16\n  br label %$15\n$15:\n  %101 = phi i8 [%87, %$13], [%94, %$16] ; # B\n  %102 = phi i64* [%88, %$13], [%95, %$16] ; # P\n  %103 = phi i64 [%89, %$13], [%96, %$16] ; # Cnt\n  %104 = phi i64 [%90, %$13], [%97, %$16] ; # Nm\n  %105 = phi i64 [%91, %$13], [%98, %$16] ; # Q\n  %106 = phi i64 [%92, %$13], [%99, %$16] ; # N\n  %107 = phi i1 [0, %$13], [%100, %$16] ; # ->\n  br i1 %107, label %$18, label %$17\n$18:\n  %108 = phi i8 [%101, %$15] ; # B\n  %109 = phi i64* [%102, %$15] ; # P\n  %110 = phi i64 [%103, %$15] ; # Cnt\n  %111 = phi i64 [%104, %$15] ; # Nm\n  %112 = phi i64 [%105, %$15] ; # Q\n  %113 = phi i64 [%106, %$15] ; # N\n; # (set 2 P (set (big Q) (boxNum (| (int N) (shl (i64 B) 56)))))\n; # (set (big Q) (boxNum (| (int N) (shl (i64 B) 56))))\n; # (big Q)\n  %114 = add i64 %112, 4\n; # (int N)\n  %115 = lshr i64 %113, 4\n; # (i64 B)\n  %116 = zext i8 %108 to i64\n; # (shl (i64 B) 56)\n  %117 = shl i64 %116, 56\n; # (| (int N) (shl (i64 B) 56))\n  %118 = or i64 %115, %117\n; # (boxNum (| (int N) (shl (i64 B) 56)))\n  %119 = call i64 @boxNum(i64 %118)\n  %120 = inttoptr i64 %114 to i64*\n  store i64 %119, i64* %120\n  %121 = getelementptr i64, i64* %109, i32 1\n  store i64 %119, i64* %121\n; # (set P 4)\n  store i64 4, i64* %109\n  br label %$12\n$17:\n  %122 = phi i8 [%101, %$15] ; # B\n  %123 = phi i64* [%102, %$15] ; # P\n  %124 = phi i64 [%103, %$15] ; # Cnt\n  %125 = phi i64 [%104, %$15] ; # Nm\n  %126 = phi i64 [%105, %$15] ; # Q\n  %127 = phi i64 [%106, %$15] ; # N\n; # (set (big Q) (| N (shl (i64 B) Cnt)) P (+ Cnt 8))\n; # (big Q)\n  %128 = add i64 %126, 4\n; # (i64 B)\n  %129 = zext i8 %122 to i64\n; # (shl (i64 B) Cnt)\n  %130 = shl i64 %129, %124\n; # (| N (shl (i64 B) Cnt))\n  %131 = or i64 %127, %130\n  %132 = inttoptr i64 %128 to i64*\n  store i64 %131, i64* %132\n; # (+ Cnt 8)\n  %133 = add i64 %124, 8\n  store i64 %133, i64* %123\n  br label %$12\n$12:\n  %134 = phi i8 [%73, %$14], [%108, %$18], [%122, %$17] ; # B\n  %135 = phi i64* [%74, %$14], [%109, %$18], [%123, %$17] ; # P\n  %136 = phi i64 [%75, %$14], [%110, %$18], [%124, %$17] ; # Cnt\n  %137 = phi i64 [%76, %$14], [%111, %$18], [%125, %$17] ; # Nm\n  %138 = phi i64 [%77, %$14], [%112, %$18], [%126, %$17] ; # Q\n  %139 = phi i64 [%78, %$14], [%113, %$18], [%127, %$17] ; # N\n  %140 = phi i64 [12, %$14], [4, %$18], [%133, %$17] ; # ->\n  br label %$4\n$4:\n  %141 = phi i8 [%58, %$5], [%134, %$12] ; # B\n  %142 = phi i64* [%59, %$5], [%135, %$12] ; # P\n  %143 = phi i64 [%60, %$5], [%136, %$12] ; # Cnt\n  %144 = phi i64 [%61, %$5], [%137, %$12] ; # Nm\n  %145 = phi i64 [%62, %$5], [%140, %$12] ; # ->\n  ret void\n}\n\ndefine void @byteSym(i8, i64*) align 8 {\n$1:\n; # (let (Cnt (val P) Nm (val 3 P)) (if (cnt? Nm) (if (> 60 Cnt) (set...\n; # (val P)\n  %2 = load i64, i64* %1\n; # (val 3 P)\n  %3 = getelementptr i64, i64* %1, i32 2\n  %4 = load i64, i64* %3\n; # (if (cnt? Nm) (if (> 60 Cnt) (set 3 P (| Nm (shl (i64 B) Cnt)) P ...\n; # (cnt? Nm)\n  %5 = and i64 %4, 2\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i8 [%0, %$1] ; # B\n  %8 = phi i64* [%1, %$1] ; # P\n  %9 = phi i64 [%2, %$1] ; # Cnt\n  %10 = phi i64 [%4, %$1] ; # Nm\n; # (if (> 60 Cnt) (set 3 P (| Nm (shl (i64 B) Cnt)) P (+ Cnt 8)) (se...\n; # (> 60 Cnt)\n  %11 = icmp ugt i64 60, %9\n  br i1 %11, label %$5, label %$6\n$5:\n  %12 = phi i8 [%7, %$2] ; # B\n  %13 = phi i64* [%8, %$2] ; # P\n  %14 = phi i64 [%9, %$2] ; # Cnt\n  %15 = phi i64 [%10, %$2] ; # Nm\n; # (set 3 P (| Nm (shl (i64 B) Cnt)) P (+ Cnt 8))\n; # (i64 B)\n  %16 = zext i8 %12 to i64\n; # (shl (i64 B) Cnt)\n  %17 = shl i64 %16, %14\n; # (| Nm (shl (i64 B) Cnt))\n  %18 = or i64 %15, %17\n  %19 = getelementptr i64, i64* %13, i32 2\n  store i64 %18, i64* %19\n; # (+ Cnt 8)\n  %20 = add i64 %14, 8\n  store i64 %20, i64* %13\n  br label %$7\n$6:\n  %21 = phi i8 [%7, %$2] ; # B\n  %22 = phi i64* [%8, %$2] ; # P\n  %23 = phi i64 [%9, %$2] ; # Cnt\n  %24 = phi i64 [%10, %$2] ; # Nm\n; # (set 3 P (set 2 P (boxNum (| (int Nm) (shl (i64 B) 56)))))\n; # (set 2 P (boxNum (| (int Nm) (shl (i64 B) 56))))\n; # (int Nm)\n  %25 = lshr i64 %24, 4\n; # (i64 B)\n  %26 = zext i8 %21 to i64\n; # (shl (i64 B) 56)\n  %27 = shl i64 %26, 56\n; # (| (int Nm) (shl (i64 B) 56))\n  %28 = or i64 %25, %27\n; # (boxNum (| (int Nm) (shl (i64 B) 56)))\n  %29 = call i64 @boxNum(i64 %28)\n  %30 = getelementptr i64, i64* %22, i32 1\n  store i64 %29, i64* %30\n  %31 = getelementptr i64, i64* %22, i32 2\n  store i64 %29, i64* %31\n; # (set P 4)\n  store i64 4, i64* %22\n  br label %$7\n$7:\n  %32 = phi i8 [%12, %$5], [%21, %$6] ; # B\n  %33 = phi i64* [%13, %$5], [%22, %$6] ; # P\n  %34 = phi i64 [%14, %$5], [%23, %$6] ; # Cnt\n  %35 = phi i64 [%15, %$5], [%24, %$6] ; # Nm\n  %36 = phi i64 [%20, %$5], [4, %$6] ; # ->\n  br label %$4\n$3:\n  %37 = phi i8 [%0, %$1] ; # B\n  %38 = phi i64* [%1, %$1] ; # P\n  %39 = phi i64 [%2, %$1] ; # Cnt\n  %40 = phi i64 [%4, %$1] ; # Nm\n; # (let (Q (val 2 P) N (val (big Q))) (if (> 60 Cnt) (set (big Q) (|...\n; # (val 2 P)\n  %41 = getelementptr i64, i64* %38, i32 1\n  %42 = load i64, i64* %41\n; # (big Q)\n  %43 = add i64 %42, 4\n; # (val (big Q))\n  %44 = inttoptr i64 %43 to i64*\n  %45 = load i64, i64* %44\n; # (if (> 60 Cnt) (set (big Q) (| N (shl (i64 B) Cnt)) P (+ Cnt 8)) ...\n; # (> 60 Cnt)\n  %46 = icmp ugt i64 60, %39\n  br i1 %46, label %$8, label %$9\n$8:\n  %47 = phi i8 [%37, %$3] ; # B\n  %48 = phi i64* [%38, %$3] ; # P\n  %49 = phi i64 [%39, %$3] ; # Cnt\n  %50 = phi i64 [%40, %$3] ; # Nm\n  %51 = phi i64 [%42, %$3] ; # Q\n  %52 = phi i64 [%45, %$3] ; # N\n; # (set (big Q) (| N (shl (i64 B) Cnt)) P (+ Cnt 8))\n; # (big Q)\n  %53 = add i64 %51, 4\n; # (i64 B)\n  %54 = zext i8 %47 to i64\n; # (shl (i64 B) Cnt)\n  %55 = shl i64 %54, %49\n; # (| N (shl (i64 B) Cnt))\n  %56 = or i64 %52, %55\n  %57 = inttoptr i64 %53 to i64*\n  store i64 %56, i64* %57\n; # (+ Cnt 8)\n  %58 = add i64 %49, 8\n  store i64 %58, i64* %48\n  br label %$10\n$9:\n  %59 = phi i8 [%37, %$3] ; # B\n  %60 = phi i64* [%38, %$3] ; # P\n  %61 = phi i64 [%39, %$3] ; # Cnt\n  %62 = phi i64 [%40, %$3] ; # Nm\n  %63 = phi i64 [%42, %$3] ; # Q\n  %64 = phi i64 [%45, %$3] ; # N\n; # (set 2 P (set (big Q) (boxNum (| (int N) (shl (i64 B) 56)))))\n; # (set (big Q) (boxNum (| (int N) (shl (i64 B) 56))))\n; # (big Q)\n  %65 = add i64 %63, 4\n; # (int N)\n  %66 = lshr i64 %64, 4\n; # (i64 B)\n  %67 = zext i8 %59 to i64\n; # (shl (i64 B) 56)\n  %68 = shl i64 %67, 56\n; # (| (int N) (shl (i64 B) 56))\n  %69 = or i64 %66, %68\n; # (boxNum (| (int N) (shl (i64 B) 56)))\n  %70 = call i64 @boxNum(i64 %69)\n  %71 = inttoptr i64 %65 to i64*\n  store i64 %70, i64* %71\n  %72 = getelementptr i64, i64* %60, i32 1\n  store i64 %70, i64* %72\n; # (set P 4)\n  store i64 4, i64* %60\n  br label %$10\n$10:\n  %73 = phi i8 [%47, %$8], [%59, %$9] ; # B\n  %74 = phi i64* [%48, %$8], [%60, %$9] ; # P\n  %75 = phi i64 [%49, %$8], [%61, %$9] ; # Cnt\n  %76 = phi i64 [%50, %$8], [%62, %$9] ; # Nm\n  %77 = phi i64 [%51, %$8], [%63, %$9] ; # Q\n  %78 = phi i64 [%52, %$8], [%64, %$9] ; # N\n  %79 = phi i64 [%58, %$8], [4, %$9] ; # ->\n  br label %$4\n$4:\n  %80 = phi i8 [%32, %$7], [%73, %$10] ; # B\n  %81 = phi i64* [%33, %$7], [%74, %$10] ; # P\n  %82 = phi i64 [%34, %$7], [%75, %$10] ; # Cnt\n  %83 = phi i64 [%35, %$7], [%76, %$10] ; # Nm\n  %84 = phi i64 [%36, %$7], [%79, %$10] ; # ->\n  ret void\n}\n\ndefine void @charSym(i32, i64*) align 8 {\n$1:\n; # (cond ((>= 127 C) (byteSym (i8 C) P)) ((== TOP C) (byteSym (hex \"...\n; # (>= 127 C)\n  %2 = icmp sge i32 127, %0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i32 [%0, %$1] ; # C\n  %4 = phi i64* [%1, %$1] ; # P\n; # (i8 C)\n  %5 = trunc i32 %3 to i8\n; # (byteSym (i8 C) P)\n  call void @byteSym(i8 %5, i64* %4)\n  br label %$2\n$3:\n  %6 = phi i32 [%0, %$1] ; # C\n  %7 = phi i64* [%1, %$1] ; # P\n; # (== TOP C)\n  %8 = icmp eq i32 1114112, %6\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i32 [%6, %$3] ; # C\n  %10 = phi i64* [%7, %$3] ; # P\n; # (byteSym (hex \"FF\") P)\n  call void @byteSym(i8 255, i64* %10)\n  br label %$2\n$5:\n  %11 = phi i32 [%6, %$3] ; # C\n  %12 = phi i64* [%7, %$3] ; # P\n; # (cond ((> (hex \"800\") C) (byteSym (i8 (| (hex \"C0\") (& (shr C 6) ...\n; # (> (hex \"800\") C)\n  %13 = icmp sgt i32 2048, %11\n  br i1 %13, label %$9, label %$8\n$9:\n  %14 = phi i32 [%11, %$5] ; # C\n  %15 = phi i64* [%12, %$5] ; # P\n; # (shr C 6)\n  %16 = lshr i32 %14, 6\n; # (& (shr C 6) (hex \"1F\"))\n  %17 = and i32 %16, 31\n; # (| (hex \"C0\") (& (shr C 6) (hex \"1F\")))\n  %18 = or i32 192, %17\n; # (i8 (| (hex \"C0\") (& (shr C 6) (hex \"1F\"))))\n  %19 = trunc i32 %18 to i8\n; # (byteSym (i8 (| (hex \"C0\") (& (shr C 6) (hex \"1F\")))) P)\n  call void @byteSym(i8 %19, i64* %15)\n  br label %$7\n$8:\n  %20 = phi i32 [%11, %$5] ; # C\n  %21 = phi i64* [%12, %$5] ; # P\n; # (> (hex \"10000\") C)\n  %22 = icmp sgt i32 65536, %20\n  br i1 %22, label %$11, label %$10\n$11:\n  %23 = phi i32 [%20, %$8] ; # C\n  %24 = phi i64* [%21, %$8] ; # P\n; # (shr C 12)\n  %25 = lshr i32 %23, 12\n; # (& (shr C 12) (hex \"0F\"))\n  %26 = and i32 %25, 15\n; # (| (hex \"E0\") (& (shr C 12) (hex \"0F\")))\n  %27 = or i32 224, %26\n; # (i8 (| (hex \"E0\") (& (shr C 12) (hex \"0F\"))))\n  %28 = trunc i32 %27 to i8\n; # (byteSym (i8 (| (hex \"E0\") (& (shr C 12) (hex \"0F\")))) P)\n  call void @byteSym(i8 %28, i64* %24)\n; # (shr C 6)\n  %29 = lshr i32 %23, 6\n; # (& (shr C 6) (hex \"3F\"))\n  %30 = and i32 %29, 63\n; # (| (hex \"80\") (& (shr C 6) (hex \"3F\")))\n  %31 = or i32 128, %30\n; # (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\"))))\n  %32 = trunc i32 %31 to i8\n; # (byteSym (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\")))) P)\n  call void @byteSym(i8 %32, i64* %24)\n  br label %$7\n$10:\n  %33 = phi i32 [%20, %$8] ; # C\n  %34 = phi i64* [%21, %$8] ; # P\n; # (shr C 18)\n  %35 = lshr i32 %33, 18\n; # (& (shr C 18) (hex \"07\"))\n  %36 = and i32 %35, 7\n; # (| (hex \"F0\") (& (shr C 18) (hex \"07\")))\n  %37 = or i32 240, %36\n; # (i8 (| (hex \"F0\") (& (shr C 18) (hex \"07\"))))\n  %38 = trunc i32 %37 to i8\n; # (byteSym (i8 (| (hex \"F0\") (& (shr C 18) (hex \"07\")))) P)\n  call void @byteSym(i8 %38, i64* %34)\n; # (shr C 12)\n  %39 = lshr i32 %33, 12\n; # (& (shr C 12) (hex \"3F\"))\n  %40 = and i32 %39, 63\n; # (| (hex \"80\") (& (shr C 12) (hex \"3F\")))\n  %41 = or i32 128, %40\n; # (i8 (| (hex \"80\") (& (shr C 12) (hex \"3F\"))))\n  %42 = trunc i32 %41 to i8\n; # (byteSym (i8 (| (hex \"80\") (& (shr C 12) (hex \"3F\")))) P)\n  call void @byteSym(i8 %42, i64* %34)\n; # (shr C 6)\n  %43 = lshr i32 %33, 6\n; # (& (shr C 6) (hex \"3F\"))\n  %44 = and i32 %43, 63\n; # (| (hex \"80\") (& (shr C 6) (hex \"3F\")))\n  %45 = or i32 128, %44\n; # (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\"))))\n  %46 = trunc i32 %45 to i8\n; # (byteSym (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\")))) P)\n  call void @byteSym(i8 %46, i64* %34)\n  br label %$7\n$7:\n  %47 = phi i32 [%14, %$9], [%23, %$11], [%33, %$10] ; # C\n  %48 = phi i64* [%15, %$9], [%24, %$11], [%34, %$10] ; # P\n; # (& C (hex \"3F\"))\n  %49 = and i32 %47, 63\n; # (| (hex \"80\") (& C (hex \"3F\")))\n  %50 = or i32 128, %49\n; # (i8 (| (hex \"80\") (& C (hex \"3F\"))))\n  %51 = trunc i32 %50 to i8\n; # (byteSym (i8 (| (hex \"80\") (& C (hex \"3F\")))) P)\n  call void @byteSym(i8 %51, i64* %48)\n  br label %$2\n$2:\n  %52 = phi i32 [%3, %$4], [%9, %$6], [%47, %$7] ; # C\n  %53 = phi i64* [%4, %$4], [%10, %$6], [%48, %$7] ; # P\n  ret void\n}\n\ndefine i64 @zapZero(i64) align 8 {\n$1:\n; # (let (P (push N) X P Y P Z T) (until (cnt? (setq Z (val (big N)))...\n; # (push N)\n  %1 = alloca i64, i64 1\n  %2 = ptrtoint i64* %1 to i64\n  %3 = inttoptr i64 %2 to i64*\n  store i64 %0, i64* %3\n; # (until (cnt? (setq Z (val (big N)))) (when (val (dig N)) (setq X ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%34, %$6] ; # N\n  %5 = phi i64 [%2, %$1], [%28, %$6] ; # P\n  %6 = phi i64 [%2, %$1], [%29, %$6] ; # X\n  %7 = phi i64 [%2, %$1], [%32, %$6] ; # Y\n; # (big N)\n  %8 = add i64 %4, 4\n; # (val (big N))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (cnt? (setq Z (val (big N))))\n  %11 = and i64 %10, 2\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$4, label %$3\n$3:\n  %13 = phi i64 [%4, %$2] ; # N\n  %14 = phi i64 [%5, %$2] ; # P\n  %15 = phi i64 [%6, %$2] ; # X\n  %16 = phi i64 [%7, %$2] ; # Y\n  %17 = phi i64 [%10, %$2] ; # Z\n; # (when (val (dig N)) (setq X Y))\n; # (dig N)\n  %18 = add i64 %13, -4\n; # (val (dig N))\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$5, label %$6\n$5:\n  %22 = phi i64 [%13, %$3] ; # N\n  %23 = phi i64 [%14, %$3] ; # P\n  %24 = phi i64 [%15, %$3] ; # X\n  %25 = phi i64 [%16, %$3] ; # Y\n  %26 = phi i64 [%17, %$3] ; # Z\n  br label %$6\n$6:\n  %27 = phi i64 [%13, %$3], [%22, %$5] ; # N\n  %28 = phi i64 [%14, %$3], [%23, %$5] ; # P\n  %29 = phi i64 [%15, %$3], [%25, %$5] ; # X\n  %30 = phi i64 [%16, %$3], [%25, %$5] ; # Y\n  %31 = phi i64 [%17, %$3], [%26, %$5] ; # Z\n; # (big N)\n  %32 = add i64 %27, 4\n; # (val Y)\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  br label %$2\n$4:\n  %35 = phi i64 [%4, %$2] ; # N\n  %36 = phi i64 [%5, %$2] ; # P\n  %37 = phi i64 [%6, %$2] ; # X\n  %38 = phi i64 [%7, %$2] ; # Y\n  %39 = phi i64 [%10, %$2] ; # Z\n; # (when (== Z ZERO) (cond ((setq N (val (dig N))) (unless (& N (hex...\n; # (== Z ZERO)\n  %40 = icmp eq i64 %39, 2\n  br i1 %40, label %$7, label %$8\n$7:\n  %41 = phi i64 [%35, %$4] ; # N\n  %42 = phi i64 [%36, %$4] ; # P\n  %43 = phi i64 [%37, %$4] ; # X\n  %44 = phi i64 [%38, %$4] ; # Y\n  %45 = phi i64 [%39, %$4] ; # Z\n; # (cond ((setq N (val (dig N))) (unless (& N (hex \"F000000000000000...\n; # (dig N)\n  %46 = add i64 %41, -4\n; # (val (dig N))\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$11, label %$10\n$11:\n  %50 = phi i64 [%48, %$7] ; # N\n  %51 = phi i64 [%42, %$7] ; # P\n  %52 = phi i64 [%43, %$7] ; # X\n  %53 = phi i64 [%44, %$7] ; # Y\n  %54 = phi i64 [%45, %$7] ; # Z\n; # (unless (& N (hex \"F000000000000000\")) (set Y (cnt N)))\n; # (& N (hex \"F000000000000000\"))\n  %55 = and i64 %50, 17293822569102704640\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$13, label %$12\n$12:\n  %57 = phi i64 [%50, %$11] ; # N\n  %58 = phi i64 [%51, %$11] ; # P\n  %59 = phi i64 [%52, %$11] ; # X\n  %60 = phi i64 [%53, %$11] ; # Y\n  %61 = phi i64 [%54, %$11] ; # Z\n; # (set Y (cnt N))\n; # (cnt N)\n  %62 = shl i64 %57, 4\n  %63 = or i64 %62, 2\n  %64 = inttoptr i64 %60 to i64*\n  store i64 %63, i64* %64\n  br label %$13\n$13:\n  %65 = phi i64 [%50, %$11], [%57, %$12] ; # N\n  %66 = phi i64 [%51, %$11], [%58, %$12] ; # P\n  %67 = phi i64 [%52, %$11], [%59, %$12] ; # X\n  %68 = phi i64 [%53, %$11], [%60, %$12] ; # Y\n  %69 = phi i64 [%54, %$11], [%61, %$12] ; # Z\n  br label %$9\n$10:\n  %70 = phi i64 [%48, %$7] ; # N\n  %71 = phi i64 [%42, %$7] ; # P\n  %72 = phi i64 [%43, %$7] ; # X\n  %73 = phi i64 [%44, %$7] ; # Y\n  %74 = phi i64 [%45, %$7] ; # Z\n; # (val X)\n  %75 = inttoptr i64 %72 to i64*\n  %76 = load i64, i64* %75\n; # (dig (val X))\n  %77 = add i64 %76, -4\n; # (val (dig (val X)))\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (& (setq N (val (dig (val X)))) (hex \"F000000000000000\"))\n  %80 = and i64 %79, 17293822569102704640\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$15, label %$14\n$15:\n  %82 = phi i64 [%79, %$10] ; # N\n  %83 = phi i64 [%71, %$10] ; # P\n  %84 = phi i64 [%72, %$10] ; # X\n  %85 = phi i64 [%73, %$10] ; # Y\n  %86 = phi i64 [%74, %$10] ; # Z\n; # (set (big (val X)) ZERO)\n; # (val X)\n  %87 = inttoptr i64 %84 to i64*\n  %88 = load i64, i64* %87\n; # (big (val X))\n  %89 = add i64 %88, 4\n  %90 = inttoptr i64 %89 to i64*\n  store i64 2, i64* %90\n  br label %$9\n$14:\n  %91 = phi i64 [%79, %$10] ; # N\n  %92 = phi i64 [%71, %$10] ; # P\n  %93 = phi i64 [%72, %$10] ; # X\n  %94 = phi i64 [%73, %$10] ; # Y\n  %95 = phi i64 [%74, %$10] ; # Z\n; # (set X (cnt N))\n; # (cnt N)\n  %96 = shl i64 %91, 4\n  %97 = or i64 %96, 2\n  %98 = inttoptr i64 %93 to i64*\n  store i64 %97, i64* %98\n  br label %$9\n$9:\n  %99 = phi i64 [%65, %$13], [%82, %$15], [%91, %$14] ; # N\n  %100 = phi i64 [%66, %$13], [%83, %$15], [%92, %$14] ; # P\n  %101 = phi i64 [%67, %$13], [%84, %$15], [%93, %$14] ; # X\n  %102 = phi i64 [%68, %$13], [%85, %$15], [%94, %$14] ; # Y\n  %103 = phi i64 [%69, %$13], [%86, %$15], [%95, %$14] ; # Z\n  br label %$8\n$8:\n  %104 = phi i64 [%35, %$4], [%99, %$9] ; # N\n  %105 = phi i64 [%36, %$4], [%100, %$9] ; # P\n  %106 = phi i64 [%37, %$4], [%101, %$9] ; # X\n  %107 = phi i64 [%38, %$4], [%102, %$9] ; # Y\n  %108 = phi i64 [%39, %$4], [%103, %$9] ; # Z\n; # (val P)\n  %109 = inttoptr i64 %105 to i64*\n  %110 = load i64, i64* %109\n  ret i64 %110\n}\n\ndefine i64 @twiceBig(i64) align 8 {\n$1:\n; # (let (X N A (val (dig X)) Y (val (big X))) (set (dig X) (shl A 1)...\n; # (dig X)\n  %1 = add i64 %0, -4\n; # (val (dig X))\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (big X)\n  %4 = add i64 %0, 4\n; # (val (big X))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (set (dig X) (shl A 1))\n; # (dig X)\n  %7 = add i64 %0, -4\n; # (shl A 1)\n  %8 = shl i64 %3, 1\n  %9 = inttoptr i64 %7 to i64*\n  store i64 %8, i64* %9\n; # (while (big? Y) (let B (val (dig Y)) (set (dig (setq X Y)) (| (sh...\n  br label %$2\n$2:\n  %10 = phi i64 [%0, %$1], [%16, %$3] ; # N\n  %11 = phi i64 [%0, %$1], [%19, %$3] ; # X\n  %12 = phi i64 [%3, %$1], [%22, %$3] ; # A\n  %13 = phi i64 [%6, %$1], [%30, %$3] ; # Y\n; # (big? Y)\n  %14 = and i64 %13, 4\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$3, label %$4\n$3:\n  %16 = phi i64 [%10, %$2] ; # N\n  %17 = phi i64 [%11, %$2] ; # X\n  %18 = phi i64 [%12, %$2] ; # A\n  %19 = phi i64 [%13, %$2] ; # Y\n; # (let B (val (dig Y)) (set (dig (setq X Y)) (| (shl B 1) (shl 0 A ...\n; # (dig Y)\n  %20 = add i64 %19, -4\n; # (val (dig Y))\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n; # (set (dig (setq X Y)) (| (shl B 1) (shl 0 A 1)))\n; # (dig (setq X Y))\n  %23 = add i64 %19, -4\n; # (shl B 1)\n  %24 = shl i64 %22, 1\n; # (shl 0 A 1)\n  %25 = call i64 @llvm.fshl.i64(i64 0, i64 %18, i64 1)\n; # (| (shl B 1) (shl 0 A 1))\n  %26 = or i64 %24, %25\n  %27 = inttoptr i64 %23 to i64*\n  store i64 %26, i64* %27\n; # (big Y)\n  %28 = add i64 %19, 4\n; # (val (big Y))\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n  br label %$2\n$4:\n  %31 = phi i64 [%10, %$2] ; # N\n  %32 = phi i64 [%11, %$2] ; # X\n  %33 = phi i64 [%12, %$2] ; # A\n  %34 = phi i64 [%13, %$2] ; # Y\n; # (set (big X) (box64 (| (shl (int Y) 1) (shl 0 A 1))))\n; # (big X)\n  %35 = add i64 %32, 4\n; # (int Y)\n  %36 = lshr i64 %34, 4\n; # (shl (int Y) 1)\n  %37 = shl i64 %36, 1\n; # (shl 0 A 1)\n  %38 = call i64 @llvm.fshl.i64(i64 0, i64 %33, i64 1)\n; # (| (shl (int Y) 1) (shl 0 A 1))\n  %39 = or i64 %37, %38\n; # (box64 (| (shl (int Y) 1) (shl 0 A 1)))\n  %40 = and i64 %39, 17293822569102704640\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$5, label %$6\n$5:\n  %42 = phi i64 [%39, %$4] ; # N\n  %43 = call i64 @boxNum(i64 %42)\n  br label %$7\n$6:\n  %44 = phi i64 [%39, %$4] ; # N\n  %45 = shl i64 %44, 4\n  %46 = or i64 %45, 2\n  br label %$7\n$7:\n  %47 = phi i64 [%42, %$5], [%44, %$6] ; # N\n  %48 = phi i64 [%43, %$5], [%46, %$6] ; # ->\n  %49 = inttoptr i64 %35 to i64*\n  store i64 %48, i64* %49\n  ret i64 %31\n}\n\ndefine i64 @twice(i64) align 8 {\n$1:\n; # (if (cnt? N) (let X (add N N) (if @@ (boxNum (shr N 3)) (x| X 6))...\n; # (cnt? N)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # N\n; # (let X (add N N) (if @@ (boxNum (shr N 3)) (x| X 6)))\n; # (add N N)\n  %4 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %3, i64 %3)\n  %5 = extractvalue {i64, i1} %4, 1\n  %6 = extractvalue {i64, i1} %4, 0\n; # (if @@ (boxNum (shr N 3)) (x| X 6))\n  br i1 %5, label %$5, label %$6\n$5:\n  %7 = phi i64 [%3, %$2] ; # N\n  %8 = phi i64 [%6, %$2] ; # X\n; # (shr N 3)\n  %9 = lshr i64 %7, 3\n; # (boxNum (shr N 3))\n  %10 = call i64 @boxNum(i64 %9)\n  br label %$7\n$6:\n  %11 = phi i64 [%3, %$2] ; # N\n  %12 = phi i64 [%6, %$2] ; # X\n; # (x| X 6)\n  %13 = xor i64 %12, 6\n  br label %$7\n$7:\n  %14 = phi i64 [%7, %$5], [%11, %$6] ; # N\n  %15 = phi i64 [%8, %$5], [%12, %$6] ; # X\n  %16 = phi i64 [%10, %$5], [%13, %$6] ; # ->\n  br label %$4\n$3:\n  %17 = phi i64 [%0, %$1] ; # N\n; # (twiceBig N)\n  %18 = call i64 @twiceBig(i64 %17)\n  br label %$4\n$4:\n  %19 = phi i64 [%14, %$7], [%17, %$3] ; # N\n  %20 = phi i64 [%16, %$7], [%18, %$3] ; # ->\n  ret i64 %20\n}\n\ndefine i64 @half(i64) align 8 {\n$1:\n; # (if (cnt? N) (| (& (shr N 1) -10) 2) (let (X N A (shr (val (dig X...\n; # (cnt? N)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # N\n; # (shr N 1)\n  %4 = lshr i64 %3, 1\n; # (& (shr N 1) -10)\n  %5 = and i64 %4, -10\n; # (| (& (shr N 1) -10) 2)\n  %6 = or i64 %5, 2\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # N\n; # (let (X N A (shr (val (dig X)) 1) Y (val (big X))) (if (big? Y) (...\n; # (dig X)\n  %8 = add i64 %7, -4\n; # (val (dig X))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (shr (val (dig X)) 1)\n  %11 = lshr i64 %10, 1\n; # (big X)\n  %12 = add i64 %7, 4\n; # (val (big X))\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (if (big? Y) (let Z (val (big Y)) (loop (let B (val (dig Y)) (set...\n; # (big? Y)\n  %15 = and i64 %14, 4\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$5, label %$6\n$5:\n  %17 = phi i64 [%7, %$3] ; # N\n  %18 = phi i64 [%7, %$3] ; # X\n  %19 = phi i64 [%11, %$3] ; # A\n  %20 = phi i64 [%14, %$3] ; # Y\n; # (let Z (val (big Y)) (loop (let B (val (dig Y)) (set (dig X) (| (...\n; # (big Y)\n  %21 = add i64 %20, 4\n; # (val (big Y))\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n; # (loop (let B (val (dig Y)) (set (dig X) (| (shr B 0 1) A)) (setq ...\n  br label %$8\n$8:\n  %24 = phi i64 [%17, %$5], [%39, %$9] ; # N\n  %25 = phi i64 [%18, %$5], [%42, %$9] ; # X\n  %26 = phi i64 [%19, %$5], [%41, %$9] ; # A\n  %27 = phi i64 [%20, %$5], [%43, %$9] ; # Y\n  %28 = phi i64 [%23, %$5], [%46, %$9] ; # Z\n; # (let B (val (dig Y)) (set (dig X) (| (shr B 0 1) A)) (setq A (shr...\n; # (dig Y)\n  %29 = add i64 %27, -4\n; # (val (dig Y))\n  %30 = inttoptr i64 %29 to i64*\n  %31 = load i64, i64* %30\n; # (set (dig X) (| (shr B 0 1) A))\n; # (dig X)\n  %32 = add i64 %25, -4\n; # (shr B 0 1)\n  %33 = call i64 @llvm.fshr.i64(i64 %31, i64 0, i64 1)\n; # (| (shr B 0 1) A)\n  %34 = or i64 %33, %26\n  %35 = inttoptr i64 %32 to i64*\n  store i64 %34, i64* %35\n; # (shr B 1)\n  %36 = lshr i64 %31, 1\n; # (? (cnt? Z))\n; # (cnt? Z)\n  %37 = and i64 %28, 2\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$10, label %$9\n$9:\n  %39 = phi i64 [%24, %$8] ; # N\n  %40 = phi i64 [%25, %$8] ; # X\n  %41 = phi i64 [%36, %$8] ; # A\n  %42 = phi i64 [%27, %$8] ; # Y\n  %43 = phi i64 [%28, %$8] ; # Z\n; # (big Z)\n  %44 = add i64 %43, 4\n; # (val (big Z))\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n  br label %$8\n$10:\n  %47 = phi i64 [%24, %$8] ; # N\n  %48 = phi i64 [%25, %$8] ; # X\n  %49 = phi i64 [%36, %$8] ; # A\n  %50 = phi i64 [%27, %$8] ; # Y\n  %51 = phi i64 [%28, %$8] ; # Z\n  %52 = phi i64 [0, %$8] ; # ->\n; # (int Z)\n  %53 = lshr i64 %51, 4\n; # (shr Z 0 1)\n  %54 = call i64 @llvm.fshr.i64(i64 %53, i64 0, i64 1)\n; # (| (shr Z 0 1) A)\n  %55 = or i64 %54, %49\n; # (ifn (or (setq Z (shr Z 1)) (& A (hex \"F000000000000000\"))) (set ...\n; # (or (setq Z (shr Z 1)) (& A (hex \"F000000000000000\")))\n; # (shr Z 1)\n  %56 = lshr i64 %53, 1\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$11, label %$12\n$12:\n  %58 = phi i64 [%47, %$10] ; # N\n  %59 = phi i64 [%48, %$10] ; # X\n  %60 = phi i64 [%55, %$10] ; # A\n  %61 = phi i64 [%50, %$10] ; # Y\n  %62 = phi i64 [%56, %$10] ; # Z\n; # (& A (hex \"F000000000000000\"))\n  %63 = and i64 %60, 17293822569102704640\n  %64 = icmp ne i64 %63, 0\n  br label %$11\n$11:\n  %65 = phi i64 [%47, %$10], [%58, %$12] ; # N\n  %66 = phi i64 [%48, %$10], [%59, %$12] ; # X\n  %67 = phi i64 [%55, %$10], [%60, %$12] ; # A\n  %68 = phi i64 [%50, %$10], [%61, %$12] ; # Y\n  %69 = phi i64 [%56, %$10], [%62, %$12] ; # Z\n  %70 = phi i1 [1, %$10], [%64, %$12] ; # ->\n  br i1 %70, label %$14, label %$13\n$13:\n  %71 = phi i64 [%65, %$11] ; # N\n  %72 = phi i64 [%66, %$11] ; # X\n  %73 = phi i64 [%67, %$11] ; # A\n  %74 = phi i64 [%68, %$11] ; # Y\n  %75 = phi i64 [%69, %$11] ; # Z\n; # (set (big X) (cnt A))\n; # (big X)\n  %76 = add i64 %72, 4\n; # (cnt A)\n  %77 = shl i64 %73, 4\n  %78 = or i64 %77, 2\n  %79 = inttoptr i64 %76 to i64*\n  store i64 %78, i64* %79\n  br label %$15\n$14:\n  %80 = phi i64 [%65, %$11] ; # N\n  %81 = phi i64 [%66, %$11] ; # X\n  %82 = phi i64 [%67, %$11] ; # A\n  %83 = phi i64 [%68, %$11] ; # Y\n  %84 = phi i64 [%69, %$11] ; # Z\n; # (set (dig Y) A)\n; # (dig Y)\n  %85 = add i64 %83, -4\n  %86 = inttoptr i64 %85 to i64*\n  store i64 %82, i64* %86\n; # (set (big Y) (cnt Z))\n; # (big Y)\n  %87 = add i64 %83, 4\n; # (cnt Z)\n  %88 = shl i64 %84, 4\n  %89 = or i64 %88, 2\n  %90 = inttoptr i64 %87 to i64*\n  store i64 %89, i64* %90\n  br label %$15\n$15:\n  %91 = phi i64 [%71, %$13], [%80, %$14] ; # N\n  %92 = phi i64 [%72, %$13], [%81, %$14] ; # X\n  %93 = phi i64 [%73, %$13], [%82, %$14] ; # A\n  %94 = phi i64 [%74, %$13], [%83, %$14] ; # Y\n  %95 = phi i64 [%75, %$13], [%84, %$14] ; # Z\n  %96 = phi i64 [%78, %$13], [%89, %$14] ; # ->\n  br label %$7\n$6:\n  %97 = phi i64 [%7, %$3] ; # N\n  %98 = phi i64 [%7, %$3] ; # X\n  %99 = phi i64 [%11, %$3] ; # A\n  %100 = phi i64 [%14, %$3] ; # Y\n; # (int Y)\n  %101 = lshr i64 %100, 4\n; # (shr Y 0 1)\n  %102 = call i64 @llvm.fshr.i64(i64 %101, i64 0, i64 1)\n; # (| (shr Y 0 1) A)\n  %103 = or i64 %102, %99\n; # (unless (or (setq Y (shr Y 1)) (& A (hex \"F000000000000000\"))) (r...\n; # (or (setq Y (shr Y 1)) (& A (hex \"F000000000000000\")))\n; # (shr Y 1)\n  %104 = lshr i64 %101, 1\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$16, label %$17\n$17:\n  %106 = phi i64 [%97, %$6] ; # N\n  %107 = phi i64 [%98, %$6] ; # X\n  %108 = phi i64 [%103, %$6] ; # A\n  %109 = phi i64 [%104, %$6] ; # Y\n; # (& A (hex \"F000000000000000\"))\n  %110 = and i64 %108, 17293822569102704640\n  %111 = icmp ne i64 %110, 0\n  br label %$16\n$16:\n  %112 = phi i64 [%97, %$6], [%106, %$17] ; # N\n  %113 = phi i64 [%98, %$6], [%107, %$17] ; # X\n  %114 = phi i64 [%103, %$6], [%108, %$17] ; # A\n  %115 = phi i64 [%104, %$6], [%109, %$17] ; # Y\n  %116 = phi i1 [1, %$6], [%111, %$17] ; # ->\n  br i1 %116, label %$19, label %$18\n$18:\n  %117 = phi i64 [%112, %$16] ; # N\n  %118 = phi i64 [%113, %$16] ; # X\n  %119 = phi i64 [%114, %$16] ; # A\n  %120 = phi i64 [%115, %$16] ; # Y\n; # (cnt A)\n  %121 = shl i64 %119, 4\n  %122 = or i64 %121, 2\n; # (ret (cnt A))\n  ret i64 %122\n$19:\n  %123 = phi i64 [%112, %$16] ; # N\n  %124 = phi i64 [%113, %$16] ; # X\n  %125 = phi i64 [%114, %$16] ; # A\n  %126 = phi i64 [%115, %$16] ; # Y\n; # (set (dig X) A)\n; # (dig X)\n  %127 = add i64 %124, -4\n  %128 = inttoptr i64 %127 to i64*\n  store i64 %125, i64* %128\n; # (set (big X) (cnt Y))\n; # (big X)\n  %129 = add i64 %124, 4\n; # (cnt Y)\n  %130 = shl i64 %126, 4\n  %131 = or i64 %130, 2\n  %132 = inttoptr i64 %129 to i64*\n  store i64 %131, i64* %132\n  br label %$7\n$7:\n  %133 = phi i64 [%91, %$15], [%123, %$19] ; # N\n  %134 = phi i64 [%92, %$15], [%124, %$19] ; # X\n  %135 = phi i64 [%93, %$15], [%125, %$19] ; # A\n  %136 = phi i64 [%94, %$15], [%126, %$19] ; # Y\n  %137 = phi i64 [%96, %$15], [%131, %$19] ; # ->\n  br label %$4\n$4:\n  %138 = phi i64 [%3, %$2], [%133, %$7] ; # N\n  %139 = phi i64 [%6, %$2], [%133, %$7] ; # ->\n  ret i64 %139\n}\n\ndefine i64 @tenfold(i64) align 8 {\n$1:\n; # (if (cnt? N) (box64 (* 10 (int N))) (let (X N Lo (mul 10 (val (di...\n; # (cnt? N)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # N\n; # (int N)\n  %4 = lshr i64 %3, 4\n; # (* 10 (int N))\n  %5 = mul i64 10, %4\n; # (box64 (* 10 (int N)))\n  %6 = and i64 %5, 17293822569102704640\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%5, %$2] ; # N\n  %9 = call i64 @boxNum(i64 %8)\n  br label %$7\n$6:\n  %10 = phi i64 [%5, %$2] ; # N\n  %11 = shl i64 %10, 4\n  %12 = or i64 %11, 2\n  br label %$7\n$7:\n  %13 = phi i64 [%8, %$5], [%10, %$6] ; # N\n  %14 = phi i64 [%9, %$5], [%12, %$6] ; # ->\n  br label %$4\n$3:\n  %15 = phi i64 [%0, %$1] ; # N\n; # (let (X N Lo (mul 10 (val (dig X))) Hi @@@) (loop (set (dig X) Lo...\n; # (dig X)\n  %16 = add i64 %15, -4\n; # (val (dig X))\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n; # (mul 10 (val (dig X)))\n  %19 = zext i64 %18 to i128\n  %20 = mul i128 10, %19\n  %21 = lshr i128 %20, 64\n  %22 = trunc i128 %21 to i64\n  %23 = trunc i128 %20 to i64\n; # (loop (set (dig X) Lo) (? (cnt? (val (big X))) (set (big X) (box6...\n  br label %$8\n$8:\n  %24 = phi i64 [%15, %$3], [%53, %$9] ; # N\n  %25 = phi i64 [%15, %$3], [%32, %$9] ; # X\n  %26 = phi i64 [%23, %$3], [%67, %$9] ; # Lo\n  %27 = phi i64 [%22, %$3], [%69, %$9] ; # Hi\n; # (set (dig X) Lo)\n; # (dig X)\n  %28 = add i64 %25, -4\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %26, i64* %29\n; # (? (cnt? (val (big X))) (set (big X) (box64 (+ Hi (* 10 (int @)))...\n; # (big X)\n  %30 = add i64 %25, 4\n; # (val (big X))\n  %31 = inttoptr i64 %30 to i64*\n  %32 = load i64, i64* %31\n; # (cnt? (val (big X)))\n  %33 = and i64 %32, 2\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$11, label %$9\n$11:\n  %35 = phi i64 [%24, %$8] ; # N\n  %36 = phi i64 [%25, %$8] ; # X\n  %37 = phi i64 [%26, %$8] ; # Lo\n  %38 = phi i64 [%27, %$8] ; # Hi\n; # (set (big X) (box64 (+ Hi (* 10 (int @)))))\n; # (big X)\n  %39 = add i64 %36, 4\n; # (int @)\n  %40 = lshr i64 %32, 4\n; # (* 10 (int @))\n  %41 = mul i64 10, %40\n; # (+ Hi (* 10 (int @)))\n  %42 = add i64 %38, %41\n; # (box64 (+ Hi (* 10 (int @))))\n  %43 = and i64 %42, 17293822569102704640\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$12, label %$13\n$12:\n  %45 = phi i64 [%42, %$11] ; # N\n  %46 = call i64 @boxNum(i64 %45)\n  br label %$14\n$13:\n  %47 = phi i64 [%42, %$11] ; # N\n  %48 = shl i64 %47, 4\n  %49 = or i64 %48, 2\n  br label %$14\n$14:\n  %50 = phi i64 [%45, %$12], [%47, %$13] ; # N\n  %51 = phi i64 [%46, %$12], [%49, %$13] ; # ->\n  %52 = inttoptr i64 %39 to i64*\n  store i64 %51, i64* %52\n  br label %$10\n$9:\n  %53 = phi i64 [%24, %$8] ; # N\n  %54 = phi i64 [%25, %$8] ; # X\n  %55 = phi i64 [%26, %$8] ; # Lo\n  %56 = phi i64 [%27, %$8] ; # Hi\n; # (dig X)\n  %57 = add i64 %32, -4\n; # (val (dig X))\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n; # (mul 10 (val (dig X)))\n  %60 = zext i64 %59 to i128\n  %61 = mul i128 10, %60\n  %62 = lshr i128 %61, 64\n  %63 = trunc i128 %62 to i64\n  %64 = trunc i128 %61 to i64\n; # (add (mul 10 (val (dig X))) Hi)\n  %65 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %64, i64 %56)\n  %66 = extractvalue {i64, i1} %65, 1\n  %67 = extractvalue {i64, i1} %65, 0\n; # (+ @@@ @@)\n  %68 = zext i1 %66 to i64\n  %69 = add i64 %63, %68\n  br label %$8\n$10:\n  %70 = phi i64 [%35, %$14] ; # N\n  %71 = phi i64 [%36, %$14] ; # X\n  %72 = phi i64 [%37, %$14] ; # Lo\n  %73 = phi i64 [%38, %$14] ; # Hi\n  %74 = phi i64 [%51, %$14] ; # ->\n  br label %$4\n$4:\n  %75 = phi i64 [%3, %$7], [%70, %$10] ; # N\n  %76 = phi i64 [%14, %$7], [%70, %$10] ; # ->\n  ret i64 %76\n}\n\ndefine i64 @shlu(i64) align 8 {\n$1:\n; # (if (cnt? N) (let X (add N N) (if @@ (boxNum (shr N 3)) (x| X 6))...\n; # (cnt? N)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # N\n; # (let X (add N N) (if @@ (boxNum (shr N 3)) (x| X 6)))\n; # (add N N)\n  %4 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %3, i64 %3)\n  %5 = extractvalue {i64, i1} %4, 1\n  %6 = extractvalue {i64, i1} %4, 0\n; # (if @@ (boxNum (shr N 3)) (x| X 6))\n  br i1 %5, label %$5, label %$6\n$5:\n  %7 = phi i64 [%3, %$2] ; # N\n  %8 = phi i64 [%6, %$2] ; # X\n; # (shr N 3)\n  %9 = lshr i64 %7, 3\n; # (boxNum (shr N 3))\n  %10 = call i64 @boxNum(i64 %9)\n  br label %$7\n$6:\n  %11 = phi i64 [%3, %$2] ; # N\n  %12 = phi i64 [%6, %$2] ; # X\n; # (x| X 6)\n  %13 = xor i64 %12, 6\n  br label %$7\n$7:\n  %14 = phi i64 [%7, %$5], [%11, %$6] ; # N\n  %15 = phi i64 [%8, %$5], [%12, %$6] ; # X\n  %16 = phi i64 [%10, %$5], [%13, %$6] ; # ->\n  br label %$4\n$3:\n  %17 = phi i64 [%0, %$1] ; # N\n; # (let (A (val (dig N)) X (boxNum (shl A 1)) Y (val (big N)) R (sav...\n; # (dig N)\n  %18 = add i64 %17, -4\n; # (val (dig N))\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n; # (shl A 1)\n  %21 = shl i64 %20, 1\n; # (boxNum (shl A 1))\n  %22 = call i64 @boxNum(i64 %21)\n; # (big N)\n  %23 = add i64 %17, 4\n; # (val (big N))\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n; # (save X)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %22, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (while (big? Y) (let B (val (dig Y)) (setq X (set (big X) (boxNum...\n  br label %$8\n$8:\n  %34 = phi i64 [%17, %$3], [%41, %$9] ; # N\n  %35 = phi i64 [%20, %$3], [%48, %$9] ; # A\n  %36 = phi i64 [%22, %$3], [%53, %$9] ; # X\n  %37 = phi i64 [%25, %$3], [%57, %$9] ; # Y\n  %38 = phi i64 [%22, %$3], [%45, %$9] ; # R\n; # (big? Y)\n  %39 = and i64 %37, 4\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$9, label %$10\n$9:\n  %41 = phi i64 [%34, %$8] ; # N\n  %42 = phi i64 [%35, %$8] ; # A\n  %43 = phi i64 [%36, %$8] ; # X\n  %44 = phi i64 [%37, %$8] ; # Y\n  %45 = phi i64 [%38, %$8] ; # R\n; # (let B (val (dig Y)) (setq X (set (big X) (boxNum (| (shl B 1) (s...\n; # (dig Y)\n  %46 = add i64 %44, -4\n; # (val (dig Y))\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (set (big X) (boxNum (| (shl B 1) (shl 0 A 1))))\n; # (big X)\n  %49 = add i64 %43, 4\n; # (shl B 1)\n  %50 = shl i64 %48, 1\n; # (shl 0 A 1)\n  %51 = call i64 @llvm.fshl.i64(i64 0, i64 %42, i64 1)\n; # (| (shl B 1) (shl 0 A 1))\n  %52 = or i64 %50, %51\n; # (boxNum (| (shl B 1) (shl 0 A 1)))\n  %53 = call i64 @boxNum(i64 %52)\n  %54 = inttoptr i64 %49 to i64*\n  store i64 %53, i64* %54\n; # (big Y)\n  %55 = add i64 %44, 4\n; # (val (big Y))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n  br label %$8\n$10:\n  %58 = phi i64 [%34, %$8] ; # N\n  %59 = phi i64 [%35, %$8] ; # A\n  %60 = phi i64 [%36, %$8] ; # X\n  %61 = phi i64 [%37, %$8] ; # Y\n  %62 = phi i64 [%38, %$8] ; # R\n; # (set (big X) (box64 (| (shl (int Y) 1) (shl 0 A 1))))\n; # (big X)\n  %63 = add i64 %60, 4\n; # (int Y)\n  %64 = lshr i64 %61, 4\n; # (shl (int Y) 1)\n  %65 = shl i64 %64, 1\n; # (shl 0 A 1)\n  %66 = call i64 @llvm.fshl.i64(i64 0, i64 %59, i64 1)\n; # (| (shl (int Y) 1) (shl 0 A 1))\n  %67 = or i64 %65, %66\n; # (box64 (| (shl (int Y) 1) (shl 0 A 1)))\n  %68 = and i64 %67, 17293822569102704640\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$11, label %$12\n$11:\n  %70 = phi i64 [%67, %$10] ; # N\n  %71 = call i64 @boxNum(i64 %70)\n  br label %$13\n$12:\n  %72 = phi i64 [%67, %$10] ; # N\n  %73 = shl i64 %72, 4\n  %74 = or i64 %73, 2\n  br label %$13\n$13:\n  %75 = phi i64 [%70, %$11], [%72, %$12] ; # N\n  %76 = phi i64 [%71, %$11], [%74, %$12] ; # ->\n  %77 = inttoptr i64 %63 to i64*\n  store i64 %76, i64* %77\n; # (drop *Safe)\n  %78 = inttoptr i64 %29 to i64*\n  %79 = getelementptr i64, i64* %78, i32 1\n  %80 = load i64, i64* %79\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %81\n  br label %$4\n$4:\n  %82 = phi i64 [%14, %$7], [%58, %$13] ; # N\n  %83 = phi i64 [%16, %$7], [%62, %$13] ; # ->\n  ret i64 %83\n}\n\ndefine i64 @shru(i64) align 8 {\n$1:\n; # (if (cnt? N) (| (& (shr N 1) -10) 2) (let A (shr (val (dig N)) 1)...\n; # (cnt? N)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # N\n; # (shr N 1)\n  %4 = lshr i64 %3, 1\n; # (& (shr N 1) -10)\n  %5 = and i64 %4, -10\n; # (| (& (shr N 1) -10) 2)\n  %6 = or i64 %5, 2\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # N\n; # (let A (shr (val (dig N)) 1) (if (big? (setq N (val (big N)))) (l...\n; # (dig N)\n  %8 = add i64 %7, -4\n; # (val (dig N))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (shr (val (dig N)) 1)\n  %11 = lshr i64 %10, 1\n; # (if (big? (setq N (val (big N)))) (let (B (val (dig N)) P (boxNum...\n; # (big N)\n  %12 = add i64 %7, 4\n; # (val (big N))\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (big? (setq N (val (big N))))\n  %15 = and i64 %14, 4\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$5, label %$6\n$5:\n  %17 = phi i64 [%14, %$3] ; # N\n  %18 = phi i64 [%11, %$3] ; # A\n; # (let (B (val (dig N)) P (boxNum (| (shr B 0 1) A)) R (save P)) (l...\n; # (dig N)\n  %19 = add i64 %17, -4\n; # (val (dig N))\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n; # (shr B 0 1)\n  %22 = call i64 @llvm.fshr.i64(i64 %21, i64 0, i64 1)\n; # (| (shr B 0 1) A)\n  %23 = or i64 %22, %18\n; # (boxNum (| (shr B 0 1) A))\n  %24 = call i64 @boxNum(i64 %23)\n; # (save P)\n  %25 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %26 = load i64, i64* %25\n  %27 = alloca i64, i64 2, align 16\n  %28 = ptrtoint i64* %27 to i64\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = add i64 %28, 8\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %26, i64* %31\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %28, i64* %32\n; # (loop (setq A (shr B 1)) (? (cnt? (setq N (val (big N))))) (setq ...\n  br label %$8\n$8:\n  %33 = phi i64 [%17, %$5], [%44, %$9] ; # N\n  %34 = phi i64 [%18, %$5], [%45, %$9] ; # A\n  %35 = phi i64 [%21, %$5], [%51, %$9] ; # B\n  %36 = phi i64 [%24, %$5], [%55, %$9] ; # P\n  %37 = phi i64 [%24, %$5], [%48, %$9] ; # R\n; # (shr B 1)\n  %38 = lshr i64 %35, 1\n; # (? (cnt? (setq N (val (big N)))))\n; # (big N)\n  %39 = add i64 %33, 4\n; # (val (big N))\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n; # (cnt? (setq N (val (big N))))\n  %42 = and i64 %41, 2\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$10, label %$9\n$9:\n  %44 = phi i64 [%41, %$8] ; # N\n  %45 = phi i64 [%38, %$8] ; # A\n  %46 = phi i64 [%35, %$8] ; # B\n  %47 = phi i64 [%36, %$8] ; # P\n  %48 = phi i64 [%37, %$8] ; # R\n; # (dig N)\n  %49 = add i64 %44, -4\n; # (val (dig N))\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n; # (set (big P) (boxNum (| (shr B 0 1) A)))\n; # (big P)\n  %52 = add i64 %47, 4\n; # (shr B 0 1)\n  %53 = call i64 @llvm.fshr.i64(i64 %51, i64 0, i64 1)\n; # (| (shr B 0 1) A)\n  %54 = or i64 %53, %45\n; # (boxNum (| (shr B 0 1) A))\n  %55 = call i64 @boxNum(i64 %54)\n  %56 = inttoptr i64 %52 to i64*\n  store i64 %55, i64* %56\n  br label %$8\n$10:\n  %57 = phi i64 [%41, %$8] ; # N\n  %58 = phi i64 [%38, %$8] ; # A\n  %59 = phi i64 [%35, %$8] ; # B\n  %60 = phi i64 [%36, %$8] ; # P\n  %61 = phi i64 [%37, %$8] ; # R\n  %62 = phi i64 [0, %$8] ; # ->\n; # (int N)\n  %63 = lshr i64 %57, 4\n; # (shr N 0 1)\n  %64 = call i64 @llvm.fshr.i64(i64 %63, i64 0, i64 1)\n; # (| (shr N 0 1) A)\n  %65 = or i64 %64, %58\n; # (set (big P) (ifn (or (setq N (shr N 1)) (& A (hex \"F000000000000...\n; # (big P)\n  %66 = add i64 %60, 4\n; # (ifn (or (setq N (shr N 1)) (& A (hex \"F000000000000000\"))) (cnt ...\n; # (or (setq N (shr N 1)) (& A (hex \"F000000000000000\")))\n; # (shr N 1)\n  %67 = lshr i64 %63, 1\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$11, label %$12\n$12:\n  %69 = phi i64 [%67, %$10] ; # N\n  %70 = phi i64 [%65, %$10] ; # A\n  %71 = phi i64 [%59, %$10] ; # B\n  %72 = phi i64 [%60, %$10] ; # P\n  %73 = phi i64 [%61, %$10] ; # R\n; # (& A (hex \"F000000000000000\"))\n  %74 = and i64 %70, 17293822569102704640\n  %75 = icmp ne i64 %74, 0\n  br label %$11\n$11:\n  %76 = phi i64 [%67, %$10], [%69, %$12] ; # N\n  %77 = phi i64 [%65, %$10], [%70, %$12] ; # A\n  %78 = phi i64 [%59, %$10], [%71, %$12] ; # B\n  %79 = phi i64 [%60, %$10], [%72, %$12] ; # P\n  %80 = phi i64 [%61, %$10], [%73, %$12] ; # R\n  %81 = phi i1 [1, %$10], [%75, %$12] ; # ->\n  br i1 %81, label %$14, label %$13\n$13:\n  %82 = phi i64 [%76, %$11] ; # N\n  %83 = phi i64 [%77, %$11] ; # A\n  %84 = phi i64 [%78, %$11] ; # B\n  %85 = phi i64 [%79, %$11] ; # P\n  %86 = phi i64 [%80, %$11] ; # R\n; # (cnt A)\n  %87 = shl i64 %83, 4\n  %88 = or i64 %87, 2\n  br label %$15\n$14:\n  %89 = phi i64 [%76, %$11] ; # N\n  %90 = phi i64 [%77, %$11] ; # A\n  %91 = phi i64 [%78, %$11] ; # B\n  %92 = phi i64 [%79, %$11] ; # P\n  %93 = phi i64 [%80, %$11] ; # R\n; # (prog1 (boxNum A) (set (big @) (cnt N)))\n; # (boxNum A)\n  %94 = call i64 @boxNum(i64 %90)\n; # (set (big @) (cnt N))\n; # (big @)\n  %95 = add i64 %94, 4\n; # (cnt N)\n  %96 = shl i64 %89, 4\n  %97 = or i64 %96, 2\n  %98 = inttoptr i64 %95 to i64*\n  store i64 %97, i64* %98\n  br label %$15\n$15:\n  %99 = phi i64 [%82, %$13], [%89, %$14] ; # N\n  %100 = phi i64 [%83, %$13], [%90, %$14] ; # A\n  %101 = phi i64 [%84, %$13], [%91, %$14] ; # B\n  %102 = phi i64 [%85, %$13], [%92, %$14] ; # P\n  %103 = phi i64 [%86, %$13], [%93, %$14] ; # R\n  %104 = phi i64 [%88, %$13], [%94, %$14] ; # ->\n  %105 = inttoptr i64 %66 to i64*\n  store i64 %104, i64* %105\n; # (drop *Safe)\n  %106 = inttoptr i64 %28 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n  %109 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %108, i64* %109\n  br label %$7\n$6:\n  %110 = phi i64 [%14, %$3] ; # N\n  %111 = phi i64 [%11, %$3] ; # A\n; # (int N)\n  %112 = lshr i64 %110, 4\n; # (shr N 0 1)\n  %113 = call i64 @llvm.fshr.i64(i64 %112, i64 0, i64 1)\n; # (| (shr N 0 1) A)\n  %114 = or i64 %113, %111\n; # (ifn (or (setq N (shr N 1)) (& A (hex \"F000000000000000\"))) (cnt ...\n; # (or (setq N (shr N 1)) (& A (hex \"F000000000000000\")))\n; # (shr N 1)\n  %115 = lshr i64 %112, 1\n  %116 = icmp ne i64 %115, 0\n  br i1 %116, label %$16, label %$17\n$17:\n  %117 = phi i64 [%115, %$6] ; # N\n  %118 = phi i64 [%114, %$6] ; # A\n; # (& A (hex \"F000000000000000\"))\n  %119 = and i64 %118, 17293822569102704640\n  %120 = icmp ne i64 %119, 0\n  br label %$16\n$16:\n  %121 = phi i64 [%115, %$6], [%117, %$17] ; # N\n  %122 = phi i64 [%114, %$6], [%118, %$17] ; # A\n  %123 = phi i1 [1, %$6], [%120, %$17] ; # ->\n  br i1 %123, label %$19, label %$18\n$18:\n  %124 = phi i64 [%121, %$16] ; # N\n  %125 = phi i64 [%122, %$16] ; # A\n; # (cnt A)\n  %126 = shl i64 %125, 4\n  %127 = or i64 %126, 2\n  br label %$20\n$19:\n  %128 = phi i64 [%121, %$16] ; # N\n  %129 = phi i64 [%122, %$16] ; # A\n; # (prog1 (boxNum A) (set (big @) (cnt N)))\n; # (boxNum A)\n  %130 = call i64 @boxNum(i64 %129)\n; # (set (big @) (cnt N))\n; # (big @)\n  %131 = add i64 %130, 4\n; # (cnt N)\n  %132 = shl i64 %128, 4\n  %133 = or i64 %132, 2\n  %134 = inttoptr i64 %131 to i64*\n  store i64 %133, i64* %134\n  br label %$20\n$20:\n  %135 = phi i64 [%124, %$18], [%128, %$19] ; # N\n  %136 = phi i64 [%125, %$18], [%129, %$19] ; # A\n  %137 = phi i64 [%127, %$18], [%130, %$19] ; # ->\n  br label %$7\n$7:\n  %138 = phi i64 [%99, %$15], [%135, %$20] ; # N\n  %139 = phi i64 [%100, %$15], [%136, %$20] ; # A\n  %140 = phi i64 [%103, %$15], [%137, %$20] ; # ->\n  br label %$4\n$4:\n  %141 = phi i64 [%3, %$2], [%138, %$7] ; # N\n  %142 = phi i64 [%6, %$2], [%140, %$7] ; # ->\n  ret i64 %142\n}\n\ndefine i64 @andu(i64, i64) align 8 {\n$1:\n; # (cond ((cnt? A) (& A (if (cnt? B) B (cnt (val (dig B)))))) ((cnt?...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) B (cnt (val (dig B))))\n; # (cnt? B)\n  %6 = and i64 %5, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$4] ; # A\n  %9 = phi i64 [%5, %$4] ; # B\n  br label %$7\n$6:\n  %10 = phi i64 [%4, %$4] ; # A\n  %11 = phi i64 [%5, %$4] ; # B\n; # (dig B)\n  %12 = add i64 %11, -4\n; # (val (dig B))\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (cnt (val (dig B)))\n  %15 = shl i64 %14, 4\n  %16 = or i64 %15, 2\n  br label %$7\n$7:\n  %17 = phi i64 [%8, %$5], [%10, %$6] ; # A\n  %18 = phi i64 [%9, %$5], [%11, %$6] ; # B\n  %19 = phi i64 [%9, %$5], [%16, %$6] ; # ->\n; # (& A (if (cnt? B) B (cnt (val (dig B)))))\n  %20 = and i64 %4, %19\n  br label %$2\n$3:\n  %21 = phi i64 [%0, %$1] ; # A\n  %22 = phi i64 [%1, %$1] ; # B\n; # (cnt? B)\n  %23 = and i64 %22, 2\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$9, label %$8\n$9:\n  %25 = phi i64 [%21, %$3] ; # A\n  %26 = phi i64 [%22, %$3] ; # B\n; # (dig A)\n  %27 = add i64 %25, -4\n; # (val (dig A))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n; # (cnt (val (dig A)))\n  %30 = shl i64 %29, 4\n  %31 = or i64 %30, 2\n; # (& B (cnt (val (dig A))))\n  %32 = and i64 %26, %31\n  br label %$2\n$8:\n  %33 = phi i64 [%21, %$3] ; # A\n  %34 = phi i64 [%22, %$3] ; # B\n; # (let (P (boxNum (& (val (dig A)) (val (dig B)))) R (save P)) (loo...\n; # (dig A)\n  %35 = add i64 %33, -4\n; # (val (dig A))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (dig B)\n  %38 = add i64 %34, -4\n; # (val (dig B))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (& (val (dig A)) (val (dig B)))\n  %41 = and i64 %37, %40\n; # (boxNum (& (val (dig A)) (val (dig B))))\n  %42 = call i64 @boxNum(i64 %41)\n; # (save P)\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %44 = load i64, i64* %43\n  %45 = alloca i64, i64 2, align 16\n  %46 = ptrtoint i64* %45 to i64\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %42, i64* %47\n  %48 = add i64 %46, 8\n  %49 = inttoptr i64 %48 to i64*\n  store i64 %44, i64* %49\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %46, i64* %50\n; # (loop (setq A (val (big A)) B (val (big B))) (? (cnt? A) (set (bi...\n  br label %$10\n$10:\n  %51 = phi i64 [%33, %$8], [%108, %$17] ; # A\n  %52 = phi i64 [%34, %$8], [%109, %$17] ; # B\n  %53 = phi i64 [%42, %$8], [%120, %$17] ; # P\n  %54 = phi i64 [%42, %$8], [%111, %$17] ; # R\n; # (big A)\n  %55 = add i64 %51, 4\n; # (val (big A))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n; # (big B)\n  %58 = add i64 %52, 4\n; # (val (big B))\n  %59 = inttoptr i64 %58 to i64*\n  %60 = load i64, i64* %59\n; # (? (cnt? A) (set (big P) (& A (if (cnt? B) B (cnt (val (dig B))))...\n; # (cnt? A)\n  %61 = and i64 %57, 2\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$13, label %$11\n$13:\n  %63 = phi i64 [%57, %$10] ; # A\n  %64 = phi i64 [%60, %$10] ; # B\n  %65 = phi i64 [%53, %$10] ; # P\n  %66 = phi i64 [%54, %$10] ; # R\n; # (set (big P) (& A (if (cnt? B) B (cnt (val (dig B))))))\n; # (big P)\n  %67 = add i64 %65, 4\n; # (if (cnt? B) B (cnt (val (dig B))))\n; # (cnt? B)\n  %68 = and i64 %64, 2\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$14, label %$15\n$14:\n  %70 = phi i64 [%63, %$13] ; # A\n  %71 = phi i64 [%64, %$13] ; # B\n  %72 = phi i64 [%65, %$13] ; # P\n  %73 = phi i64 [%66, %$13] ; # R\n  br label %$16\n$15:\n  %74 = phi i64 [%63, %$13] ; # A\n  %75 = phi i64 [%64, %$13] ; # B\n  %76 = phi i64 [%65, %$13] ; # P\n  %77 = phi i64 [%66, %$13] ; # R\n; # (dig B)\n  %78 = add i64 %75, -4\n; # (val (dig B))\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n; # (cnt (val (dig B)))\n  %81 = shl i64 %80, 4\n  %82 = or i64 %81, 2\n  br label %$16\n$16:\n  %83 = phi i64 [%70, %$14], [%74, %$15] ; # A\n  %84 = phi i64 [%71, %$14], [%75, %$15] ; # B\n  %85 = phi i64 [%72, %$14], [%76, %$15] ; # P\n  %86 = phi i64 [%73, %$14], [%77, %$15] ; # R\n  %87 = phi i64 [%71, %$14], [%82, %$15] ; # ->\n; # (& A (if (cnt? B) B (cnt (val (dig B)))))\n  %88 = and i64 %63, %87\n  %89 = inttoptr i64 %67 to i64*\n  store i64 %88, i64* %89\n  br label %$12\n$11:\n  %90 = phi i64 [%57, %$10] ; # A\n  %91 = phi i64 [%60, %$10] ; # B\n  %92 = phi i64 [%53, %$10] ; # P\n  %93 = phi i64 [%54, %$10] ; # R\n; # (? (cnt? B) (set (big P) (& B (cnt (val (dig A))))))\n; # (cnt? B)\n  %94 = and i64 %91, 2\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$18, label %$17\n$18:\n  %96 = phi i64 [%90, %$11] ; # A\n  %97 = phi i64 [%91, %$11] ; # B\n  %98 = phi i64 [%92, %$11] ; # P\n  %99 = phi i64 [%93, %$11] ; # R\n; # (set (big P) (& B (cnt (val (dig A)))))\n; # (big P)\n  %100 = add i64 %98, 4\n; # (dig A)\n  %101 = add i64 %96, -4\n; # (val (dig A))\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n; # (cnt (val (dig A)))\n  %104 = shl i64 %103, 4\n  %105 = or i64 %104, 2\n; # (& B (cnt (val (dig A))))\n  %106 = and i64 %97, %105\n  %107 = inttoptr i64 %100 to i64*\n  store i64 %106, i64* %107\n  br label %$12\n$17:\n  %108 = phi i64 [%90, %$11] ; # A\n  %109 = phi i64 [%91, %$11] ; # B\n  %110 = phi i64 [%92, %$11] ; # P\n  %111 = phi i64 [%93, %$11] ; # R\n; # (set (big P) (boxNum (& (val (dig A)) (val (dig B)))))\n; # (big P)\n  %112 = add i64 %110, 4\n; # (dig A)\n  %113 = add i64 %108, -4\n; # (val (dig A))\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n; # (dig B)\n  %116 = add i64 %109, -4\n; # (val (dig B))\n  %117 = inttoptr i64 %116 to i64*\n  %118 = load i64, i64* %117\n; # (& (val (dig A)) (val (dig B)))\n  %119 = and i64 %115, %118\n; # (boxNum (& (val (dig A)) (val (dig B))))\n  %120 = call i64 @boxNum(i64 %119)\n  %121 = inttoptr i64 %112 to i64*\n  store i64 %120, i64* %121\n  br label %$10\n$12:\n  %122 = phi i64 [%83, %$16], [%96, %$18] ; # A\n  %123 = phi i64 [%84, %$16], [%97, %$18] ; # B\n  %124 = phi i64 [%85, %$16], [%98, %$18] ; # P\n  %125 = phi i64 [%86, %$16], [%99, %$18] ; # R\n  %126 = phi i64 [%88, %$16], [%106, %$18] ; # ->\n; # (zapZero R)\n  %127 = call i64 @zapZero(i64 %125)\n; # (drop *Safe)\n  %128 = inttoptr i64 %46 to i64*\n  %129 = getelementptr i64, i64* %128, i32 1\n  %130 = load i64, i64* %129\n  %131 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %130, i64* %131\n  br label %$2\n$2:\n  %132 = phi i64 [%17, %$7], [%25, %$9], [%122, %$12] ; # A\n  %133 = phi i64 [%18, %$7], [%26, %$9], [%123, %$12] ; # B\n  %134 = phi i64 [%20, %$7], [%32, %$9], [%127, %$12] ; # ->\n  ret i64 %134\n}\n\ndefine i64 @oru(i64, i64) align 8 {\n$1:\n; # (cond ((cnt? A) (if (cnt? B) (| A B) (consNum (| (int A) (val (di...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) (| A B) (consNum (| (int A) (val (dig B))) (val (big...\n; # (cnt? B)\n  %6 = and i64 %5, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$4] ; # A\n  %9 = phi i64 [%5, %$4] ; # B\n; # (| A B)\n  %10 = or i64 %8, %9\n  br label %$7\n$6:\n  %11 = phi i64 [%4, %$4] ; # A\n  %12 = phi i64 [%5, %$4] ; # B\n; # (int A)\n  %13 = lshr i64 %11, 4\n; # (dig B)\n  %14 = add i64 %12, -4\n; # (val (dig B))\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n; # (| (int A) (val (dig B)))\n  %17 = or i64 %13, %16\n; # (big B)\n  %18 = add i64 %12, 4\n; # (val (big B))\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n; # (consNum (| (int A) (val (dig B))) (val (big B)))\n  %21 = call i64 @consNum(i64 %17, i64 %20)\n  br label %$7\n$7:\n  %22 = phi i64 [%8, %$5], [%11, %$6] ; # A\n  %23 = phi i64 [%9, %$5], [%12, %$6] ; # B\n  %24 = phi i64 [%10, %$5], [%21, %$6] ; # ->\n  br label %$2\n$3:\n  %25 = phi i64 [%0, %$1] ; # A\n  %26 = phi i64 [%1, %$1] ; # B\n; # (cnt? B)\n  %27 = and i64 %26, 2\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$8\n$9:\n  %29 = phi i64 [%25, %$3] ; # A\n  %30 = phi i64 [%26, %$3] ; # B\n; # (int B)\n  %31 = lshr i64 %30, 4\n; # (dig A)\n  %32 = add i64 %29, -4\n; # (val (dig A))\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n; # (| (int B) (val (dig A)))\n  %35 = or i64 %31, %34\n; # (big A)\n  %36 = add i64 %29, 4\n; # (val (big A))\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n; # (consNum (| (int B) (val (dig A))) (val (big A)))\n  %39 = call i64 @consNum(i64 %35, i64 %38)\n  br label %$2\n$8:\n  %40 = phi i64 [%25, %$3] ; # A\n  %41 = phi i64 [%26, %$3] ; # B\n; # (let (P (boxNum (| (val (dig A)) (val (dig B)))) R (save P)) (loo...\n; # (dig A)\n  %42 = add i64 %40, -4\n; # (val (dig A))\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (dig B)\n  %45 = add i64 %41, -4\n; # (val (dig B))\n  %46 = inttoptr i64 %45 to i64*\n  %47 = load i64, i64* %46\n; # (| (val (dig A)) (val (dig B)))\n  %48 = or i64 %44, %47\n; # (boxNum (| (val (dig A)) (val (dig B))))\n  %49 = call i64 @boxNum(i64 %48)\n; # (save P)\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %51 = load i64, i64* %50\n  %52 = alloca i64, i64 2, align 16\n  %53 = ptrtoint i64* %52 to i64\n  %54 = inttoptr i64 %53 to i64*\n  store i64 %49, i64* %54\n  %55 = add i64 %53, 8\n  %56 = inttoptr i64 %55 to i64*\n  store i64 %51, i64* %56\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %53, i64* %57\n; # (loop (setq A (val (big A)) B (val (big B))) (? (cnt? A) (set (bi...\n  br label %$10\n$10:\n  %58 = phi i64 [%40, %$8], [%122, %$17] ; # A\n  %59 = phi i64 [%41, %$8], [%123, %$17] ; # B\n  %60 = phi i64 [%49, %$8], [%134, %$17] ; # P\n  %61 = phi i64 [%49, %$8], [%125, %$17] ; # R\n; # (big A)\n  %62 = add i64 %58, 4\n; # (val (big A))\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n; # (big B)\n  %65 = add i64 %59, 4\n; # (val (big B))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (? (cnt? A) (set (big P) (if (cnt? B) (| A B) (consNum (| (int A)...\n; # (cnt? A)\n  %68 = and i64 %64, 2\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$13, label %$11\n$13:\n  %70 = phi i64 [%64, %$10] ; # A\n  %71 = phi i64 [%67, %$10] ; # B\n  %72 = phi i64 [%60, %$10] ; # P\n  %73 = phi i64 [%61, %$10] ; # R\n; # (set (big P) (if (cnt? B) (| A B) (consNum (| (int A) (val (dig B...\n; # (big P)\n  %74 = add i64 %72, 4\n; # (if (cnt? B) (| A B) (consNum (| (int A) (val (dig B))) (val (big...\n; # (cnt? B)\n  %75 = and i64 %71, 2\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$14, label %$15\n$14:\n  %77 = phi i64 [%70, %$13] ; # A\n  %78 = phi i64 [%71, %$13] ; # B\n  %79 = phi i64 [%72, %$13] ; # P\n  %80 = phi i64 [%73, %$13] ; # R\n; # (| A B)\n  %81 = or i64 %77, %78\n  br label %$16\n$15:\n  %82 = phi i64 [%70, %$13] ; # A\n  %83 = phi i64 [%71, %$13] ; # B\n  %84 = phi i64 [%72, %$13] ; # P\n  %85 = phi i64 [%73, %$13] ; # R\n; # (int A)\n  %86 = lshr i64 %82, 4\n; # (dig B)\n  %87 = add i64 %83, -4\n; # (val (dig B))\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n; # (| (int A) (val (dig B)))\n  %90 = or i64 %86, %89\n; # (big B)\n  %91 = add i64 %83, 4\n; # (val (big B))\n  %92 = inttoptr i64 %91 to i64*\n  %93 = load i64, i64* %92\n; # (consNum (| (int A) (val (dig B))) (val (big B)))\n  %94 = call i64 @consNum(i64 %90, i64 %93)\n  br label %$16\n$16:\n  %95 = phi i64 [%77, %$14], [%82, %$15] ; # A\n  %96 = phi i64 [%78, %$14], [%83, %$15] ; # B\n  %97 = phi i64 [%79, %$14], [%84, %$15] ; # P\n  %98 = phi i64 [%80, %$14], [%85, %$15] ; # R\n  %99 = phi i64 [%81, %$14], [%94, %$15] ; # ->\n  %100 = inttoptr i64 %74 to i64*\n  store i64 %99, i64* %100\n  br label %$12\n$11:\n  %101 = phi i64 [%64, %$10] ; # A\n  %102 = phi i64 [%67, %$10] ; # B\n  %103 = phi i64 [%60, %$10] ; # P\n  %104 = phi i64 [%61, %$10] ; # R\n; # (? (cnt? B) (set (big P) (consNum (| (int B) (val (dig A))) (val ...\n; # (cnt? B)\n  %105 = and i64 %102, 2\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$18, label %$17\n$18:\n  %107 = phi i64 [%101, %$11] ; # A\n  %108 = phi i64 [%102, %$11] ; # B\n  %109 = phi i64 [%103, %$11] ; # P\n  %110 = phi i64 [%104, %$11] ; # R\n; # (set (big P) (consNum (| (int B) (val (dig A))) (val (big A))))\n; # (big P)\n  %111 = add i64 %109, 4\n; # (int B)\n  %112 = lshr i64 %108, 4\n; # (dig A)\n  %113 = add i64 %107, -4\n; # (val (dig A))\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n; # (| (int B) (val (dig A)))\n  %116 = or i64 %112, %115\n; # (big A)\n  %117 = add i64 %107, 4\n; # (val (big A))\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n; # (consNum (| (int B) (val (dig A))) (val (big A)))\n  %120 = call i64 @consNum(i64 %116, i64 %119)\n  %121 = inttoptr i64 %111 to i64*\n  store i64 %120, i64* %121\n  br label %$12\n$17:\n  %122 = phi i64 [%101, %$11] ; # A\n  %123 = phi i64 [%102, %$11] ; # B\n  %124 = phi i64 [%103, %$11] ; # P\n  %125 = phi i64 [%104, %$11] ; # R\n; # (set (big P) (boxNum (| (val (dig A)) (val (dig B)))))\n; # (big P)\n  %126 = add i64 %124, 4\n; # (dig A)\n  %127 = add i64 %122, -4\n; # (val (dig A))\n  %128 = inttoptr i64 %127 to i64*\n  %129 = load i64, i64* %128\n; # (dig B)\n  %130 = add i64 %123, -4\n; # (val (dig B))\n  %131 = inttoptr i64 %130 to i64*\n  %132 = load i64, i64* %131\n; # (| (val (dig A)) (val (dig B)))\n  %133 = or i64 %129, %132\n; # (boxNum (| (val (dig A)) (val (dig B))))\n  %134 = call i64 @boxNum(i64 %133)\n  %135 = inttoptr i64 %126 to i64*\n  store i64 %134, i64* %135\n  br label %$10\n$12:\n  %136 = phi i64 [%95, %$16], [%107, %$18] ; # A\n  %137 = phi i64 [%96, %$16], [%108, %$18] ; # B\n  %138 = phi i64 [%97, %$16], [%109, %$18] ; # P\n  %139 = phi i64 [%98, %$16], [%110, %$18] ; # R\n  %140 = phi i64 [%99, %$16], [%120, %$18] ; # ->\n; # (drop *Safe)\n  %141 = inttoptr i64 %53 to i64*\n  %142 = getelementptr i64, i64* %141, i32 1\n  %143 = load i64, i64* %142\n  %144 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %143, i64* %144\n  br label %$2\n$2:\n  %145 = phi i64 [%22, %$7], [%29, %$9], [%136, %$12] ; # A\n  %146 = phi i64 [%23, %$7], [%30, %$9], [%137, %$12] ; # B\n  %147 = phi i64 [%24, %$7], [%39, %$9], [%139, %$12] ; # ->\n  ret i64 %147\n}\n\ndefine i64 @xoru(i64, i64) align 8 {\n$1:\n; # (cond ((cnt? A) (if (cnt? B) (| (x| A B) 2) (zapZero (consNum (x|...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) (| (x| A B) 2) (zapZero (consNum (x| (int A) (val (d...\n; # (cnt? B)\n  %6 = and i64 %5, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$4] ; # A\n  %9 = phi i64 [%5, %$4] ; # B\n; # (x| A B)\n  %10 = xor i64 %8, %9\n; # (| (x| A B) 2)\n  %11 = or i64 %10, 2\n  br label %$7\n$6:\n  %12 = phi i64 [%4, %$4] ; # A\n  %13 = phi i64 [%5, %$4] ; # B\n; # (int A)\n  %14 = lshr i64 %12, 4\n; # (dig B)\n  %15 = add i64 %13, -4\n; # (val (dig B))\n  %16 = inttoptr i64 %15 to i64*\n  %17 = load i64, i64* %16\n; # (x| (int A) (val (dig B)))\n  %18 = xor i64 %14, %17\n; # (big B)\n  %19 = add i64 %13, 4\n; # (val (big B))\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n; # (consNum (x| (int A) (val (dig B))) (val (big B)))\n  %22 = call i64 @consNum(i64 %18, i64 %21)\n; # (zapZero (consNum (x| (int A) (val (dig B))) (val (big B))))\n  %23 = call i64 @zapZero(i64 %22)\n  br label %$7\n$7:\n  %24 = phi i64 [%8, %$5], [%12, %$6] ; # A\n  %25 = phi i64 [%9, %$5], [%13, %$6] ; # B\n  %26 = phi i64 [%11, %$5], [%23, %$6] ; # ->\n  br label %$2\n$3:\n  %27 = phi i64 [%0, %$1] ; # A\n  %28 = phi i64 [%1, %$1] ; # B\n; # (cnt? B)\n  %29 = and i64 %28, 2\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$9, label %$8\n$9:\n  %31 = phi i64 [%27, %$3] ; # A\n  %32 = phi i64 [%28, %$3] ; # B\n; # (int B)\n  %33 = lshr i64 %32, 4\n; # (dig A)\n  %34 = add i64 %31, -4\n; # (val (dig A))\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n; # (x| (int B) (val (dig A)))\n  %37 = xor i64 %33, %36\n; # (big A)\n  %38 = add i64 %31, 4\n; # (val (big A))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (consNum (x| (int B) (val (dig A))) (val (big A)))\n  %41 = call i64 @consNum(i64 %37, i64 %40)\n; # (zapZero (consNum (x| (int B) (val (dig A))) (val (big A))))\n  %42 = call i64 @zapZero(i64 %41)\n  br label %$2\n$8:\n  %43 = phi i64 [%27, %$3] ; # A\n  %44 = phi i64 [%28, %$3] ; # B\n; # (let (P (boxNum (x| (val (dig A)) (val (dig B)))) R (save P)) (lo...\n; # (dig A)\n  %45 = add i64 %43, -4\n; # (val (dig A))\n  %46 = inttoptr i64 %45 to i64*\n  %47 = load i64, i64* %46\n; # (dig B)\n  %48 = add i64 %44, -4\n; # (val (dig B))\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n; # (x| (val (dig A)) (val (dig B)))\n  %51 = xor i64 %47, %50\n; # (boxNum (x| (val (dig A)) (val (dig B))))\n  %52 = call i64 @boxNum(i64 %51)\n; # (save P)\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %54 = load i64, i64* %53\n  %55 = alloca i64, i64 2, align 16\n  %56 = ptrtoint i64* %55 to i64\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %52, i64* %57\n  %58 = add i64 %56, 8\n  %59 = inttoptr i64 %58 to i64*\n  store i64 %54, i64* %59\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %60\n; # (loop (setq A (val (big A)) B (val (big B))) (? (cnt? A) (set (bi...\n  br label %$10\n$10:\n  %61 = phi i64 [%43, %$8], [%126, %$17] ; # A\n  %62 = phi i64 [%44, %$8], [%127, %$17] ; # B\n  %63 = phi i64 [%52, %$8], [%138, %$17] ; # P\n  %64 = phi i64 [%52, %$8], [%129, %$17] ; # R\n; # (big A)\n  %65 = add i64 %61, 4\n; # (val (big A))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (big B)\n  %68 = add i64 %62, 4\n; # (val (big B))\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n; # (? (cnt? A) (set (big P) (if (cnt? B) (| (x| A B) 2) (consNum (x|...\n; # (cnt? A)\n  %71 = and i64 %67, 2\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$13, label %$11\n$13:\n  %73 = phi i64 [%67, %$10] ; # A\n  %74 = phi i64 [%70, %$10] ; # B\n  %75 = phi i64 [%63, %$10] ; # P\n  %76 = phi i64 [%64, %$10] ; # R\n; # (set (big P) (if (cnt? B) (| (x| A B) 2) (consNum (x| (int A) (va...\n; # (big P)\n  %77 = add i64 %75, 4\n; # (if (cnt? B) (| (x| A B) 2) (consNum (x| (int A) (val (dig B))) (...\n; # (cnt? B)\n  %78 = and i64 %74, 2\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$14, label %$15\n$14:\n  %80 = phi i64 [%73, %$13] ; # A\n  %81 = phi i64 [%74, %$13] ; # B\n  %82 = phi i64 [%75, %$13] ; # P\n  %83 = phi i64 [%76, %$13] ; # R\n; # (x| A B)\n  %84 = xor i64 %80, %81\n; # (| (x| A B) 2)\n  %85 = or i64 %84, 2\n  br label %$16\n$15:\n  %86 = phi i64 [%73, %$13] ; # A\n  %87 = phi i64 [%74, %$13] ; # B\n  %88 = phi i64 [%75, %$13] ; # P\n  %89 = phi i64 [%76, %$13] ; # R\n; # (int A)\n  %90 = lshr i64 %86, 4\n; # (dig B)\n  %91 = add i64 %87, -4\n; # (val (dig B))\n  %92 = inttoptr i64 %91 to i64*\n  %93 = load i64, i64* %92\n; # (x| (int A) (val (dig B)))\n  %94 = xor i64 %90, %93\n; # (big B)\n  %95 = add i64 %87, 4\n; # (val (big B))\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (consNum (x| (int A) (val (dig B))) (val (big B)))\n  %98 = call i64 @consNum(i64 %94, i64 %97)\n  br label %$16\n$16:\n  %99 = phi i64 [%80, %$14], [%86, %$15] ; # A\n  %100 = phi i64 [%81, %$14], [%87, %$15] ; # B\n  %101 = phi i64 [%82, %$14], [%88, %$15] ; # P\n  %102 = phi i64 [%83, %$14], [%89, %$15] ; # R\n  %103 = phi i64 [%85, %$14], [%98, %$15] ; # ->\n  %104 = inttoptr i64 %77 to i64*\n  store i64 %103, i64* %104\n  br label %$12\n$11:\n  %105 = phi i64 [%67, %$10] ; # A\n  %106 = phi i64 [%70, %$10] ; # B\n  %107 = phi i64 [%63, %$10] ; # P\n  %108 = phi i64 [%64, %$10] ; # R\n; # (? (cnt? B) (set (big P) (consNum (x| (int B) (val (dig A))) (val...\n; # (cnt? B)\n  %109 = and i64 %106, 2\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$18, label %$17\n$18:\n  %111 = phi i64 [%105, %$11] ; # A\n  %112 = phi i64 [%106, %$11] ; # B\n  %113 = phi i64 [%107, %$11] ; # P\n  %114 = phi i64 [%108, %$11] ; # R\n; # (set (big P) (consNum (x| (int B) (val (dig A))) (val (big A))))\n; # (big P)\n  %115 = add i64 %113, 4\n; # (int B)\n  %116 = lshr i64 %112, 4\n; # (dig A)\n  %117 = add i64 %111, -4\n; # (val (dig A))\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n; # (x| (int B) (val (dig A)))\n  %120 = xor i64 %116, %119\n; # (big A)\n  %121 = add i64 %111, 4\n; # (val (big A))\n  %122 = inttoptr i64 %121 to i64*\n  %123 = load i64, i64* %122\n; # (consNum (x| (int B) (val (dig A))) (val (big A)))\n  %124 = call i64 @consNum(i64 %120, i64 %123)\n  %125 = inttoptr i64 %115 to i64*\n  store i64 %124, i64* %125\n  br label %$12\n$17:\n  %126 = phi i64 [%105, %$11] ; # A\n  %127 = phi i64 [%106, %$11] ; # B\n  %128 = phi i64 [%107, %$11] ; # P\n  %129 = phi i64 [%108, %$11] ; # R\n; # (set (big P) (boxNum (x| (val (dig A)) (val (dig B)))))\n; # (big P)\n  %130 = add i64 %128, 4\n; # (dig A)\n  %131 = add i64 %126, -4\n; # (val (dig A))\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n; # (dig B)\n  %134 = add i64 %127, -4\n; # (val (dig B))\n  %135 = inttoptr i64 %134 to i64*\n  %136 = load i64, i64* %135\n; # (x| (val (dig A)) (val (dig B)))\n  %137 = xor i64 %133, %136\n; # (boxNum (x| (val (dig A)) (val (dig B))))\n  %138 = call i64 @boxNum(i64 %137)\n  %139 = inttoptr i64 %130 to i64*\n  store i64 %138, i64* %139\n  br label %$10\n$12:\n  %140 = phi i64 [%99, %$16], [%111, %$18] ; # A\n  %141 = phi i64 [%100, %$16], [%112, %$18] ; # B\n  %142 = phi i64 [%101, %$16], [%113, %$18] ; # P\n  %143 = phi i64 [%102, %$16], [%114, %$18] ; # R\n  %144 = phi i64 [%103, %$16], [%124, %$18] ; # ->\n; # (zapZero R)\n  %145 = call i64 @zapZero(i64 %143)\n; # (drop *Safe)\n  %146 = inttoptr i64 %56 to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  %148 = load i64, i64* %147\n  %149 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %148, i64* %149\n  br label %$2\n$2:\n  %150 = phi i64 [%24, %$7], [%31, %$9], [%140, %$12] ; # A\n  %151 = phi i64 [%25, %$7], [%32, %$9], [%141, %$12] ; # B\n  %152 = phi i64 [%26, %$7], [%42, %$9], [%145, %$12] ; # ->\n  ret i64 %152\n}\n\ndefine i64 @addu(i64, i64) align 8 {\n$1:\n; # (cond ((cnt? A) (if (cnt? B) (box64 (+ (int A) (int B))) (xchg 'A...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) (box64 (+ (int A) (int B))) (xchg 'A 'B) (goto 1))\n; # (cnt? B)\n  %6 = and i64 %5, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$4] ; # A\n  %9 = phi i64 [%5, %$4] ; # B\n; # (int A)\n  %10 = lshr i64 %8, 4\n; # (int B)\n  %11 = lshr i64 %9, 4\n; # (+ (int A) (int B))\n  %12 = add i64 %10, %11\n; # (box64 (+ (int A) (int B)))\n  %13 = and i64 %12, 17293822569102704640\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$8, label %$9\n$8:\n  %15 = phi i64 [%12, %$5] ; # N\n  %16 = call i64 @boxNum(i64 %15)\n  br label %$10\n$9:\n  %17 = phi i64 [%12, %$5] ; # N\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  br label %$10\n$10:\n  %20 = phi i64 [%15, %$8], [%17, %$9] ; # N\n  %21 = phi i64 [%16, %$8], [%19, %$9] ; # ->\n  br label %$7\n$6:\n  %22 = phi i64 [%4, %$4] ; # A\n  %23 = phi i64 [%5, %$4] ; # B\n; # (xchg 'A 'B)\n; # (goto 1)\n  br label %$-1\n$7:\n  %24 = phi i64 [%8, %$10] ; # A\n  %25 = phi i64 [%9, %$10] ; # B\n  %26 = phi i64 [%21, %$10] ; # ->\n  br label %$2\n$3:\n  %27 = phi i64 [%0, %$1] ; # A\n  %28 = phi i64 [%1, %$1] ; # B\n; # (cnt? B)\n  %29 = and i64 %28, 2\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$12, label %$11\n$12:\n  %31 = phi i64 [%27, %$3] ; # A\n  %32 = phi i64 [%28, %$3] ; # B\n; # (: 1 (let N (val (big A)) (setq B (add (int B) (val (dig A)))) (i...\n  br label %$-1\n$-1:\n  %33 = phi i64 [%23, %$6], [%31, %$12] ; # A\n  %34 = phi i64 [%22, %$6], [%32, %$12] ; # B\n; # (let N (val (big A)) (setq B (add (int B) (val (dig A)))) (ifn @@...\n; # (big A)\n  %35 = add i64 %33, 4\n; # (val (big A))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (int B)\n  %38 = lshr i64 %34, 4\n; # (dig A)\n  %39 = add i64 %33, -4\n; # (val (dig A))\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n; # (add (int B) (val (dig A)))\n  %42 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %38, i64 %41)\n  %43 = extractvalue {i64, i1} %42, 1\n  %44 = extractvalue {i64, i1} %42, 0\n; # (ifn @@ (consNum B N) (let R (save (setq B (consNum B N))) (loop ...\n  br i1 %43, label %$14, label %$13\n$13:\n  %45 = phi i64 [%33, %$-1] ; # A\n  %46 = phi i64 [%44, %$-1] ; # B\n  %47 = phi i64 [%37, %$-1] ; # N\n; # (consNum B N)\n  %48 = call i64 @consNum(i64 %46, i64 %47)\n  br label %$15\n$14:\n  %49 = phi i64 [%33, %$-1] ; # A\n  %50 = phi i64 [%44, %$-1] ; # B\n  %51 = phi i64 [%37, %$-1] ; # N\n; # (let R (save (setq B (consNum B N))) (loop (? (cnt? N) (setq N (a...\n; # (consNum B N)\n  %52 = call i64 @consNum(i64 %50, i64 %51)\n; # (save (setq B (consNum B N)))\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %54 = load i64, i64* %53\n  %55 = alloca i64, i64 2, align 16\n  %56 = ptrtoint i64* %55 to i64\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %52, i64* %57\n  %58 = add i64 %56, 8\n  %59 = inttoptr i64 %58 to i64*\n  store i64 %54, i64* %59\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %60\n; # (loop (? (cnt? N) (setq N (add N (hex \"10\"))) (set (big B) (ifn @...\n  br label %$16\n$16:\n  %61 = phi i64 [%49, %$14], [%114, %$23] ; # A\n  %62 = phi i64 [%52, %$14], [%120, %$23] ; # B\n  %63 = phi i64 [%51, %$14], [%116, %$23] ; # N\n  %64 = phi i64 [%52, %$14], [%117, %$23] ; # R\n; # (? (cnt? N) (setq N (add N (hex \"10\"))) (set (big B) (ifn @@ N (b...\n; # (cnt? N)\n  %65 = and i64 %63, 2\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$19, label %$17\n$19:\n  %67 = phi i64 [%61, %$16] ; # A\n  %68 = phi i64 [%62, %$16] ; # B\n  %69 = phi i64 [%63, %$16] ; # N\n  %70 = phi i64 [%64, %$16] ; # R\n; # (add N (hex \"10\"))\n  %71 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %69, i64 16)\n  %72 = extractvalue {i64, i1} %71, 1\n  %73 = extractvalue {i64, i1} %71, 0\n; # (set (big B) (ifn @@ N (boxNum (| (int N) (hex \"1000000000000000\"...\n; # (big B)\n  %74 = add i64 %68, 4\n; # (ifn @@ N (boxNum (| (int N) (hex \"1000000000000000\"))))\n  br i1 %72, label %$21, label %$20\n$20:\n  %75 = phi i64 [%67, %$19] ; # A\n  %76 = phi i64 [%68, %$19] ; # B\n  %77 = phi i64 [%73, %$19] ; # N\n  %78 = phi i64 [%70, %$19] ; # R\n  br label %$22\n$21:\n  %79 = phi i64 [%67, %$19] ; # A\n  %80 = phi i64 [%68, %$19] ; # B\n  %81 = phi i64 [%73, %$19] ; # N\n  %82 = phi i64 [%70, %$19] ; # R\n; # (int N)\n  %83 = lshr i64 %81, 4\n; # (| (int N) (hex \"1000000000000000\"))\n  %84 = or i64 %83, 1152921504606846976\n; # (boxNum (| (int N) (hex \"1000000000000000\")))\n  %85 = call i64 @boxNum(i64 %84)\n  br label %$22\n$22:\n  %86 = phi i64 [%75, %$20], [%79, %$21] ; # A\n  %87 = phi i64 [%76, %$20], [%80, %$21] ; # B\n  %88 = phi i64 [%77, %$20], [%81, %$21] ; # N\n  %89 = phi i64 [%78, %$20], [%82, %$21] ; # R\n  %90 = phi i64 [%77, %$20], [%85, %$21] ; # ->\n  %91 = inttoptr i64 %74 to i64*\n  store i64 %90, i64* %91\n  br label %$18\n$17:\n  %92 = phi i64 [%61, %$16] ; # A\n  %93 = phi i64 [%62, %$16] ; # B\n  %94 = phi i64 [%63, %$16] ; # N\n  %95 = phi i64 [%64, %$16] ; # R\n; # (let D (val (dig N)) (setq N (val (big N)) D (add D 1)) (? (not @...\n; # (dig N)\n  %96 = add i64 %94, -4\n; # (val (dig N))\n  %97 = inttoptr i64 %96 to i64*\n  %98 = load i64, i64* %97\n; # (big N)\n  %99 = add i64 %94, 4\n; # (val (big N))\n  %100 = inttoptr i64 %99 to i64*\n  %101 = load i64, i64* %100\n; # (add D 1)\n  %102 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %98, i64 1)\n  %103 = extractvalue {i64, i1} %102, 1\n  %104 = extractvalue {i64, i1} %102, 0\n; # (? (not @@) (set (big B) (consNum D N)))\n; # (not @@)\n  %105 = icmp eq i1 %103, 0\n  br i1 %105, label %$24, label %$23\n$24:\n  %106 = phi i64 [%92, %$17] ; # A\n  %107 = phi i64 [%93, %$17] ; # B\n  %108 = phi i64 [%101, %$17] ; # N\n  %109 = phi i64 [%95, %$17] ; # R\n  %110 = phi i64 [%104, %$17] ; # D\n; # (set (big B) (consNum D N))\n; # (big B)\n  %111 = add i64 %107, 4\n; # (consNum D N)\n  %112 = call i64 @consNum(i64 %110, i64 %108)\n  %113 = inttoptr i64 %111 to i64*\n  store i64 %112, i64* %113\n  br label %$18\n$23:\n  %114 = phi i64 [%92, %$17] ; # A\n  %115 = phi i64 [%93, %$17] ; # B\n  %116 = phi i64 [%101, %$17] ; # N\n  %117 = phi i64 [%95, %$17] ; # R\n  %118 = phi i64 [%104, %$17] ; # D\n; # (set (big B) (consNum D N))\n; # (big B)\n  %119 = add i64 %115, 4\n; # (consNum D N)\n  %120 = call i64 @consNum(i64 %118, i64 %116)\n  %121 = inttoptr i64 %119 to i64*\n  store i64 %120, i64* %121\n  br label %$16\n$18:\n  %122 = phi i64 [%86, %$22], [%106, %$24] ; # A\n  %123 = phi i64 [%87, %$22], [%107, %$24] ; # B\n  %124 = phi i64 [%88, %$22], [%108, %$24] ; # N\n  %125 = phi i64 [%89, %$22], [%109, %$24] ; # R\n  %126 = phi i64 [%90, %$22], [%112, %$24] ; # ->\n; # (drop *Safe)\n  %127 = inttoptr i64 %56 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n  %130 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %129, i64* %130\n  br label %$15\n$15:\n  %131 = phi i64 [%45, %$13], [%122, %$18] ; # A\n  %132 = phi i64 [%46, %$13], [%123, %$18] ; # B\n  %133 = phi i64 [%47, %$13], [%124, %$18] ; # N\n  %134 = phi i64 [%48, %$13], [%125, %$18] ; # ->\n  br label %$2\n$11:\n  %135 = phi i64 [%27, %$3] ; # A\n  %136 = phi i64 [%28, %$3] ; # B\n; # (let (N (add (val (dig A)) (val (dig B))) C @@ P (boxNum N) R (sa...\n; # (dig A)\n  %137 = add i64 %135, -4\n; # (val (dig A))\n  %138 = inttoptr i64 %137 to i64*\n  %139 = load i64, i64* %138\n; # (dig B)\n  %140 = add i64 %136, -4\n; # (val (dig B))\n  %141 = inttoptr i64 %140 to i64*\n  %142 = load i64, i64* %141\n; # (add (val (dig A)) (val (dig B)))\n  %143 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %139, i64 %142)\n  %144 = extractvalue {i64, i1} %143, 1\n  %145 = extractvalue {i64, i1} %143, 0\n; # (boxNum N)\n  %146 = call i64 @boxNum(i64 %145)\n; # (save P)\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %148 = load i64, i64* %147\n  %149 = alloca i64, i64 2, align 16\n  %150 = ptrtoint i64* %149 to i64\n  %151 = inttoptr i64 %150 to i64*\n  store i64 %146, i64* %151\n  %152 = add i64 %150, 8\n  %153 = inttoptr i64 %152 to i64*\n  store i64 %148, i64* %153\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %150, i64* %154\n; # (loop (setq A (val (big A)) B (val (big B))) (? (cnt? A) (if (cnt...\n  br label %$25\n$25:\n  %155 = phi i64 [%135, %$11], [%309, %$35] ; # A\n  %156 = phi i64 [%136, %$11], [%310, %$35] ; # B\n  %157 = phi i64 [%145, %$11], [%328, %$35] ; # N\n  %158 = phi i1 [%144, %$11], [%327, %$35] ; # C\n  %159 = phi i64 [%146, %$11], [%330, %$35] ; # P\n  %160 = phi i64 [%146, %$11], [%314, %$35] ; # R\n; # (big A)\n  %161 = add i64 %155, 4\n; # (val (big A))\n  %162 = inttoptr i64 %161 to i64*\n  %163 = load i64, i64* %162\n; # (big B)\n  %164 = add i64 %156, 4\n; # (val (big B))\n  %165 = inttoptr i64 %164 to i64*\n  %166 = load i64, i64* %165\n; # (? (cnt? A) (if (cnt? B) (set (big P) (box64 (add (int A) (int B)...\n; # (cnt? A)\n  %167 = and i64 %163, 2\n  %168 = icmp ne i64 %167, 0\n  br i1 %168, label %$28, label %$26\n$28:\n  %169 = phi i64 [%163, %$25] ; # A\n  %170 = phi i64 [%166, %$25] ; # B\n  %171 = phi i64 [%157, %$25] ; # N\n  %172 = phi i1 [%158, %$25] ; # C\n  %173 = phi i64 [%159, %$25] ; # P\n  %174 = phi i64 [%160, %$25] ; # R\n; # (if (cnt? B) (set (big P) (box64 (add (int A) (int B) C))) (xchg ...\n; # (cnt? B)\n  %175 = and i64 %170, 2\n  %176 = icmp ne i64 %175, 0\n  br i1 %176, label %$29, label %$30\n$29:\n  %177 = phi i64 [%169, %$28] ; # A\n  %178 = phi i64 [%170, %$28] ; # B\n  %179 = phi i64 [%171, %$28] ; # N\n  %180 = phi i1 [%172, %$28] ; # C\n  %181 = phi i64 [%173, %$28] ; # P\n  %182 = phi i64 [%174, %$28] ; # R\n; # (set (big P) (box64 (add (int A) (int B) C)))\n; # (big P)\n  %183 = add i64 %181, 4\n; # (int A)\n  %184 = lshr i64 %177, 4\n; # (int B)\n  %185 = lshr i64 %178, 4\n; # (add (int A) (int B) C)\n  %186 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %184, i64 %185)\n  %187 = extractvalue {i64, i1} %186, 1\n  %188 = extractvalue {i64, i1} %186, 0\n  %189 = zext i1 %180 to i64\n  %190 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %188, i64 %189)\n  %191 = extractvalue {i64, i1} %190, 1\n  %192 = or i1 %187, %191\n  %193 = extractvalue {i64, i1} %190, 0\n; # (box64 (add (int A) (int B) C))\n  %194 = and i64 %193, 17293822569102704640\n  %195 = icmp ne i64 %194, 0\n  br i1 %195, label %$32, label %$33\n$32:\n  %196 = phi i64 [%193, %$29] ; # N\n  %197 = call i64 @boxNum(i64 %196)\n  br label %$34\n$33:\n  %198 = phi i64 [%193, %$29] ; # N\n  %199 = shl i64 %198, 4\n  %200 = or i64 %199, 2\n  br label %$34\n$34:\n  %201 = phi i64 [%196, %$32], [%198, %$33] ; # N\n  %202 = phi i64 [%197, %$32], [%200, %$33] ; # ->\n  %203 = inttoptr i64 %183 to i64*\n  store i64 %202, i64* %203\n  br label %$31\n$30:\n  %204 = phi i64 [%169, %$28] ; # A\n  %205 = phi i64 [%170, %$28] ; # B\n  %206 = phi i64 [%171, %$28] ; # N\n  %207 = phi i1 [%172, %$28] ; # C\n  %208 = phi i64 [%173, %$28] ; # P\n  %209 = phi i64 [%174, %$28] ; # R\n; # (xchg 'A 'B)\n; # (goto 2)\n  br label %$-2\n$31:\n  %210 = phi i64 [%177, %$34] ; # A\n  %211 = phi i64 [%178, %$34] ; # B\n  %212 = phi i64 [%179, %$34] ; # N\n  %213 = phi i1 [%180, %$34] ; # C\n  %214 = phi i64 [%181, %$34] ; # P\n  %215 = phi i64 [%182, %$34] ; # R\n  %216 = phi i64 [%202, %$34] ; # ->\n  br label %$27\n$26:\n  %217 = phi i64 [%163, %$25] ; # A\n  %218 = phi i64 [%166, %$25] ; # B\n  %219 = phi i64 [%157, %$25] ; # N\n  %220 = phi i1 [%158, %$25] ; # C\n  %221 = phi i64 [%159, %$25] ; # P\n  %222 = phi i64 [%160, %$25] ; # R\n; # (? (cnt? B) (: 2 (setq N (add (int B) (val (dig A)) C) C @@) (loo...\n; # (cnt? B)\n  %223 = and i64 %218, 2\n  %224 = icmp ne i64 %223, 0\n  br i1 %224, label %$36, label %$35\n$36:\n  %225 = phi i64 [%217, %$26] ; # A\n  %226 = phi i64 [%218, %$26] ; # B\n  %227 = phi i64 [%219, %$26] ; # N\n  %228 = phi i1 [%220, %$26] ; # C\n  %229 = phi i64 [%221, %$26] ; # P\n  %230 = phi i64 [%222, %$26] ; # R\n; # (: 2 (setq N (add (int B) (val (dig A)) C) C @@) (loop (setq P (s...\n  br label %$-2\n$-2:\n  %231 = phi i64 [%205, %$30], [%225, %$36] ; # A\n  %232 = phi i64 [%204, %$30], [%226, %$36] ; # B\n  %233 = phi i64 [%206, %$30], [%227, %$36] ; # N\n  %234 = phi i1 [%207, %$30], [%228, %$36] ; # C\n  %235 = phi i64 [%208, %$30], [%229, %$36] ; # P\n  %236 = phi i64 [%209, %$30], [%230, %$36] ; # R\n; # (int B)\n  %237 = lshr i64 %232, 4\n; # (dig A)\n  %238 = add i64 %231, -4\n; # (val (dig A))\n  %239 = inttoptr i64 %238 to i64*\n  %240 = load i64, i64* %239\n; # (add (int B) (val (dig A)) C)\n  %241 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %237, i64 %240)\n  %242 = extractvalue {i64, i1} %241, 1\n  %243 = extractvalue {i64, i1} %241, 0\n  %244 = zext i1 %234 to i64\n  %245 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %243, i64 %244)\n  %246 = extractvalue {i64, i1} %245, 1\n  %247 = or i1 %242, %246\n  %248 = extractvalue {i64, i1} %245, 0\n; # (loop (setq P (set (big P) (consNum N (setq A (val (big A)))))) (...\n  br label %$37\n$37:\n  %249 = phi i64 [%231, %$-2], [%290, %$40] ; # A\n  %250 = phi i64 [%232, %$-2], [%291, %$40] ; # B\n  %251 = phi i64 [%248, %$-2], [%301, %$40] ; # N\n  %252 = phi i1 [%247, %$-2], [%300, %$40] ; # C\n  %253 = phi i64 [%235, %$-2], [%294, %$40] ; # P\n  %254 = phi i64 [%236, %$-2], [%295, %$40] ; # R\n; # (set (big P) (consNum N (setq A (val (big A)))))\n; # (big P)\n  %255 = add i64 %253, 4\n; # (big A)\n  %256 = add i64 %249, 4\n; # (val (big A))\n  %257 = inttoptr i64 %256 to i64*\n  %258 = load i64, i64* %257\n; # (consNum N (setq A (val (big A))))\n  %259 = call i64 @consNum(i64 %251, i64 %258)\n  %260 = inttoptr i64 %255 to i64*\n  store i64 %259, i64* %260\n; # (? (not C))\n; # (not C)\n  %261 = icmp eq i1 %252, 0\n  br i1 %261, label %$39, label %$38\n$38:\n  %262 = phi i64 [%258, %$37] ; # A\n  %263 = phi i64 [%250, %$37] ; # B\n  %264 = phi i64 [%251, %$37] ; # N\n  %265 = phi i1 [%252, %$37] ; # C\n  %266 = phi i64 [%259, %$37] ; # P\n  %267 = phi i64 [%254, %$37] ; # R\n; # (? (cnt? A) (set (big P) (box64 (+ (int A) C))))\n; # (cnt? A)\n  %268 = and i64 %262, 2\n  %269 = icmp ne i64 %268, 0\n  br i1 %269, label %$41, label %$40\n$41:\n  %270 = phi i64 [%262, %$38] ; # A\n  %271 = phi i64 [%263, %$38] ; # B\n  %272 = phi i64 [%264, %$38] ; # N\n  %273 = phi i1 [%265, %$38] ; # C\n  %274 = phi i64 [%266, %$38] ; # P\n  %275 = phi i64 [%267, %$38] ; # R\n; # (set (big P) (box64 (+ (int A) C)))\n; # (big P)\n  %276 = add i64 %274, 4\n; # (int A)\n  %277 = lshr i64 %270, 4\n; # (+ (int A) C)\n  %278 = zext i1 %273 to i64\n  %279 = add i64 %277, %278\n; # (box64 (+ (int A) C))\n  %280 = and i64 %279, 17293822569102704640\n  %281 = icmp ne i64 %280, 0\n  br i1 %281, label %$42, label %$43\n$42:\n  %282 = phi i64 [%279, %$41] ; # N\n  %283 = call i64 @boxNum(i64 %282)\n  br label %$44\n$43:\n  %284 = phi i64 [%279, %$41] ; # N\n  %285 = shl i64 %284, 4\n  %286 = or i64 %285, 2\n  br label %$44\n$44:\n  %287 = phi i64 [%282, %$42], [%284, %$43] ; # N\n  %288 = phi i64 [%283, %$42], [%286, %$43] ; # ->\n  %289 = inttoptr i64 %276 to i64*\n  store i64 %288, i64* %289\n  br label %$39\n$40:\n  %290 = phi i64 [%262, %$38] ; # A\n  %291 = phi i64 [%263, %$38] ; # B\n  %292 = phi i64 [%264, %$38] ; # N\n  %293 = phi i1 [%265, %$38] ; # C\n  %294 = phi i64 [%266, %$38] ; # P\n  %295 = phi i64 [%267, %$38] ; # R\n; # (dig A)\n  %296 = add i64 %290, -4\n; # (val (dig A))\n  %297 = inttoptr i64 %296 to i64*\n  %298 = load i64, i64* %297\n; # (add (val (dig A)) 1)\n  %299 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %298, i64 1)\n  %300 = extractvalue {i64, i1} %299, 1\n  %301 = extractvalue {i64, i1} %299, 0\n  br label %$37\n$39:\n  %302 = phi i64 [%258, %$37], [%270, %$44] ; # A\n  %303 = phi i64 [%250, %$37], [%271, %$44] ; # B\n  %304 = phi i64 [%251, %$37], [%272, %$44] ; # N\n  %305 = phi i1 [%252, %$37], [%273, %$44] ; # C\n  %306 = phi i64 [%259, %$37], [%274, %$44] ; # P\n  %307 = phi i64 [%254, %$37], [%275, %$44] ; # R\n  %308 = phi i64 [0, %$37], [%288, %$44] ; # ->\n  br label %$27\n$35:\n  %309 = phi i64 [%217, %$26] ; # A\n  %310 = phi i64 [%218, %$26] ; # B\n  %311 = phi i64 [%219, %$26] ; # N\n  %312 = phi i1 [%220, %$26] ; # C\n  %313 = phi i64 [%221, %$26] ; # P\n  %314 = phi i64 [%222, %$26] ; # R\n; # (dig A)\n  %315 = add i64 %309, -4\n; # (val (dig A))\n  %316 = inttoptr i64 %315 to i64*\n  %317 = load i64, i64* %316\n; # (dig B)\n  %318 = add i64 %310, -4\n; # (val (dig B))\n  %319 = inttoptr i64 %318 to i64*\n  %320 = load i64, i64* %319\n; # (add (val (dig A)) (val (dig B)) C)\n  %321 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %317, i64 %320)\n  %322 = extractvalue {i64, i1} %321, 1\n  %323 = extractvalue {i64, i1} %321, 0\n  %324 = zext i1 %312 to i64\n  %325 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %323, i64 %324)\n  %326 = extractvalue {i64, i1} %325, 1\n  %327 = or i1 %322, %326\n  %328 = extractvalue {i64, i1} %325, 0\n; # (set (big P) (boxNum N))\n; # (big P)\n  %329 = add i64 %313, 4\n; # (boxNum N)\n  %330 = call i64 @boxNum(i64 %328)\n  %331 = inttoptr i64 %329 to i64*\n  store i64 %330, i64* %331\n  br label %$25\n$27:\n  %332 = phi i64 [%210, %$31], [%302, %$39] ; # A\n  %333 = phi i64 [%211, %$31], [%303, %$39] ; # B\n  %334 = phi i64 [%212, %$31], [%304, %$39] ; # N\n  %335 = phi i1 [%213, %$31], [%305, %$39] ; # C\n  %336 = phi i64 [%214, %$31], [%306, %$39] ; # P\n  %337 = phi i64 [%215, %$31], [%307, %$39] ; # R\n  %338 = phi i64 [%216, %$31], [%308, %$39] ; # ->\n; # (drop *Safe)\n  %339 = inttoptr i64 %150 to i64*\n  %340 = getelementptr i64, i64* %339, i32 1\n  %341 = load i64, i64* %340\n  %342 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %341, i64* %342\n  br label %$2\n$2:\n  %343 = phi i64 [%24, %$7], [%131, %$15], [%332, %$27] ; # A\n  %344 = phi i64 [%25, %$7], [%132, %$15], [%333, %$27] ; # B\n  %345 = phi i64 [%26, %$7], [%134, %$15], [%337, %$27] ; # ->\n  ret i64 %345\n}\n\ndefine i64 @sub1(i64, i64) align 8 {\n$1:\n; # (dig B)\n  %2 = add i64 %0, -4\n; # (val (dig B))\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n; # (int N)\n  %5 = lshr i64 %1, 4\n; # (sub (val (dig B)) (int N))\n  %6 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %4, i64 %5)\n  %7 = extractvalue {i64, i1} %6, 1\n  %8 = extractvalue {i64, i1} %6, 0\n; # (big B)\n  %9 = add i64 %0, 4\n; # (val (big B))\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n; # (nond (@@ (if (== B ZERO) (box64 N) (consNum N B))) ((big? B) (se...\n  br i1 %7, label %$3, label %$4\n$4:\n  %12 = phi i64 [%11, %$1] ; # B\n  %13 = phi i64 [%8, %$1] ; # N\n; # (if (== B ZERO) (box64 N) (consNum N B))\n; # (== B ZERO)\n  %14 = icmp eq i64 %12, 2\n  br i1 %14, label %$5, label %$6\n$5:\n  %15 = phi i64 [%12, %$4] ; # B\n  %16 = phi i64 [%13, %$4] ; # N\n; # (box64 N)\n  %17 = and i64 %16, 17293822569102704640\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$8, label %$9\n$8:\n  %19 = phi i64 [%16, %$5] ; # N\n  %20 = call i64 @boxNum(i64 %19)\n  br label %$10\n$9:\n  %21 = phi i64 [%16, %$5] ; # N\n  %22 = shl i64 %21, 4\n  %23 = or i64 %22, 2\n  br label %$10\n$10:\n  %24 = phi i64 [%19, %$8], [%21, %$9] ; # N\n  %25 = phi i64 [%20, %$8], [%23, %$9] ; # ->\n  br label %$7\n$6:\n  %26 = phi i64 [%12, %$4] ; # B\n  %27 = phi i64 [%13, %$4] ; # N\n; # (consNum N B)\n  %28 = call i64 @consNum(i64 %27, i64 %26)\n  br label %$7\n$7:\n  %29 = phi i64 [%15, %$10], [%26, %$6] ; # B\n  %30 = phi i64 [%16, %$10], [%27, %$6] ; # N\n  %31 = phi i64 [%25, %$10], [%28, %$6] ; # ->\n  br label %$2\n$3:\n  %32 = phi i64 [%11, %$1] ; # B\n  %33 = phi i64 [%8, %$1] ; # N\n; # (big? B)\n  %34 = and i64 %32, 4\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%32, %$3] ; # B\n  %37 = phi i64 [%33, %$3] ; # N\n; # (sub B (hex \"10\"))\n  %38 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %36, i64 16)\n  %39 = extractvalue {i64, i1} %38, 1\n  %40 = extractvalue {i64, i1} %38, 0\n; # (if @@ (sign (cnt (- N))) (zapZero (consNum N B)))\n  br i1 %39, label %$13, label %$14\n$13:\n  %41 = phi i64 [%40, %$12] ; # B\n  %42 = phi i64 [%37, %$12] ; # N\n; # (- N)\n  %43 = sub i64 0, %42\n; # (cnt (- N))\n  %44 = shl i64 %43, 4\n  %45 = or i64 %44, 2\n; # (sign (cnt (- N)))\n  %46 = or i64 %45, 8\n  br label %$15\n$14:\n  %47 = phi i64 [%40, %$12] ; # B\n  %48 = phi i64 [%37, %$12] ; # N\n; # (consNum N B)\n  %49 = call i64 @consNum(i64 %48, i64 %47)\n; # (zapZero (consNum N B))\n  %50 = call i64 @zapZero(i64 %49)\n  br label %$15\n$15:\n  %51 = phi i64 [%41, %$13], [%47, %$14] ; # B\n  %52 = phi i64 [%42, %$13], [%48, %$14] ; # N\n  %53 = phi i64 [%46, %$13], [%50, %$14] ; # ->\n  br label %$2\n$11:\n  %54 = phi i64 [%32, %$3] ; # B\n  %55 = phi i64 [%33, %$3] ; # N\n; # (let (P (boxNum N B) R (save P)) (loop (setq N (sub (val (dig B))...\n; # (boxNum N B)\n  %56 = call i64 @boxNum(i64 %55)\n; # (save P)\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %58 = load i64, i64* %57\n  %59 = alloca i64, i64 2, align 16\n  %60 = ptrtoint i64* %59 to i64\n  %61 = inttoptr i64 %60 to i64*\n  store i64 %56, i64* %61\n  %62 = add i64 %60, 8\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %58, i64* %63\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %60, i64* %64\n; # (loop (setq N (sub (val (dig B)) 1) B (val (big B))) (? (not @@) ...\n  br label %$16\n$16:\n  %65 = phi i64 [%54, %$11], [%104, %$20] ; # B\n  %66 = phi i64 [%55, %$11], [%105, %$20] ; # N\n  %67 = phi i64 [%56, %$11], [%106, %$20] ; # P\n  %68 = phi i64 [%56, %$11], [%107, %$20] ; # R\n; # (dig B)\n  %69 = add i64 %65, -4\n; # (val (dig B))\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n; # (sub (val (dig B)) 1)\n  %72 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %71, i64 1)\n  %73 = extractvalue {i64, i1} %72, 1\n  %74 = extractvalue {i64, i1} %72, 0\n; # (big B)\n  %75 = add i64 %65, 4\n; # (val (big B))\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n; # (? (not @@) (set (big P) (consNum N B)))\n; # (not @@)\n  %78 = icmp eq i1 %73, 0\n  br i1 %78, label %$19, label %$17\n$19:\n  %79 = phi i64 [%77, %$16] ; # B\n  %80 = phi i64 [%74, %$16] ; # N\n  %81 = phi i64 [%67, %$16] ; # P\n  %82 = phi i64 [%68, %$16] ; # R\n; # (set (big P) (consNum N B))\n; # (big P)\n  %83 = add i64 %81, 4\n; # (consNum N B)\n  %84 = call i64 @consNum(i64 %80, i64 %79)\n  %85 = inttoptr i64 %83 to i64*\n  store i64 %84, i64* %85\n  br label %$18\n$17:\n  %86 = phi i64 [%77, %$16] ; # B\n  %87 = phi i64 [%74, %$16] ; # N\n  %88 = phi i64 [%67, %$16] ; # P\n  %89 = phi i64 [%68, %$16] ; # R\n; # (set (big P) (consNum N B))\n; # (big P)\n  %90 = add i64 %88, 4\n; # (consNum N B)\n  %91 = call i64 @consNum(i64 %87, i64 %86)\n  %92 = inttoptr i64 %90 to i64*\n  store i64 %91, i64* %92\n; # (? (cnt? B) (set (big P) (sub B (hex \"10\"))))\n; # (cnt? B)\n  %93 = and i64 %86, 2\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$21, label %$20\n$21:\n  %95 = phi i64 [%86, %$17] ; # B\n  %96 = phi i64 [%87, %$17] ; # N\n  %97 = phi i64 [%91, %$17] ; # P\n  %98 = phi i64 [%89, %$17] ; # R\n; # (set (big P) (sub B (hex \"10\")))\n; # (big P)\n  %99 = add i64 %97, 4\n; # (sub B (hex \"10\"))\n  %100 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %95, i64 16)\n  %101 = extractvalue {i64, i1} %100, 1\n  %102 = extractvalue {i64, i1} %100, 0\n  %103 = inttoptr i64 %99 to i64*\n  store i64 %102, i64* %103\n  br label %$18\n$20:\n  %104 = phi i64 [%86, %$17] ; # B\n  %105 = phi i64 [%87, %$17] ; # N\n  %106 = phi i64 [%91, %$17] ; # P\n  %107 = phi i64 [%89, %$17] ; # R\n  br label %$16\n$18:\n  %108 = phi i64 [%79, %$19], [%95, %$21] ; # B\n  %109 = phi i64 [%80, %$19], [%96, %$21] ; # N\n  %110 = phi i64 [%81, %$19], [%97, %$21] ; # P\n  %111 = phi i64 [%82, %$19], [%98, %$21] ; # R\n  %112 = phi i64 [%84, %$19], [%102, %$21] ; # ->\n; # (zapZero R)\n  %113 = call i64 @zapZero(i64 %111)\n; # (drop *Safe)\n  %114 = inttoptr i64 %60 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %117\n  br label %$2\n$2:\n  %118 = phi i64 [%29, %$7], [%51, %$15], [%108, %$18] ; # B\n  %119 = phi i64 [%30, %$7], [%52, %$15], [%109, %$18] ; # N\n  %120 = phi i64 [%31, %$7], [%53, %$15], [%113, %$18] ; # ->\n  ret i64 %120\n}\n\ndefine i64 @subu(i64, i64) align 8 {\n$1:\n; # (cond ((cnt? A) (if (cnt? B) (let N (sub A (& B -3)) (if @@ (+ (x...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) (let N (sub A (& B -3)) (if @@ (+ (x| N -16) (hex \"1...\n; # (cnt? B)\n  %6 = and i64 %5, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$4] ; # A\n  %9 = phi i64 [%5, %$4] ; # B\n; # (let N (sub A (& B -3)) (if @@ (+ (x| N -16) (hex \"18\")) N))\n; # (& B -3)\n  %10 = and i64 %9, -3\n; # (sub A (& B -3))\n  %11 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %8, i64 %10)\n  %12 = extractvalue {i64, i1} %11, 1\n  %13 = extractvalue {i64, i1} %11, 0\n; # (if @@ (+ (x| N -16) (hex \"18\")) N)\n  br i1 %12, label %$8, label %$9\n$8:\n  %14 = phi i64 [%8, %$5] ; # A\n  %15 = phi i64 [%9, %$5] ; # B\n  %16 = phi i64 [%13, %$5] ; # N\n; # (x| N -16)\n  %17 = xor i64 %16, -16\n; # (+ (x| N -16) (hex \"18\"))\n  %18 = add i64 %17, 24\n  br label %$10\n$9:\n  %19 = phi i64 [%8, %$5] ; # A\n  %20 = phi i64 [%9, %$5] ; # B\n  %21 = phi i64 [%13, %$5] ; # N\n  br label %$10\n$10:\n  %22 = phi i64 [%14, %$8], [%19, %$9] ; # A\n  %23 = phi i64 [%15, %$8], [%20, %$9] ; # B\n  %24 = phi i64 [%16, %$8], [%21, %$9] ; # N\n  %25 = phi i64 [%18, %$8], [%21, %$9] ; # ->\n  br label %$7\n$6:\n  %26 = phi i64 [%4, %$4] ; # A\n  %27 = phi i64 [%5, %$4] ; # B\n; # (sub1 B A)\n  %28 = call i64 @sub1(i64 %27, i64 %26)\n; # (neg (sub1 B A))\n  %29 = icmp eq i64 %28, 2\n  br i1 %29, label %$11, label %$12\n$11:\n  %30 = phi i64 [%28, %$6] ; # N\n  br label %$13\n$12:\n  %31 = phi i64 [%28, %$6] ; # N\n  %32 = xor i64 %31, 8\n  br label %$13\n$13:\n  %33 = phi i64 [%30, %$11], [%31, %$12] ; # N\n  %34 = phi i64 [%30, %$11], [%32, %$12] ; # ->\n  br label %$7\n$7:\n  %35 = phi i64 [%22, %$10], [%26, %$13] ; # A\n  %36 = phi i64 [%23, %$10], [%27, %$13] ; # B\n  %37 = phi i64 [%25, %$10], [%34, %$13] ; # ->\n  br label %$2\n$3:\n  %38 = phi i64 [%0, %$1] ; # A\n  %39 = phi i64 [%1, %$1] ; # B\n; # (cnt? B)\n  %40 = and i64 %39, 2\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$15, label %$14\n$15:\n  %42 = phi i64 [%38, %$3] ; # A\n  %43 = phi i64 [%39, %$3] ; # B\n; # (sub1 A B)\n  %44 = call i64 @sub1(i64 %42, i64 %43)\n  br label %$2\n$14:\n  %45 = phi i64 [%38, %$3] ; # A\n  %46 = phi i64 [%39, %$3] ; # B\n; # (let (N (sub (val (dig A)) (val (dig B))) C @@ P (boxNum N) R (sa...\n; # (dig A)\n  %47 = add i64 %45, -4\n; # (val (dig A))\n  %48 = inttoptr i64 %47 to i64*\n  %49 = load i64, i64* %48\n; # (dig B)\n  %50 = add i64 %46, -4\n; # (val (dig B))\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n; # (sub (val (dig A)) (val (dig B)))\n  %53 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %49, i64 %52)\n  %54 = extractvalue {i64, i1} %53, 1\n  %55 = extractvalue {i64, i1} %53, 0\n; # (boxNum N)\n  %56 = call i64 @boxNum(i64 %55)\n; # (save P)\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %58 = load i64, i64* %57\n  %59 = alloca i64, i64 2, align 16\n  %60 = ptrtoint i64* %59 to i64\n  %61 = inttoptr i64 %60 to i64*\n  store i64 %56, i64* %61\n  %62 = add i64 %60, 8\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %58, i64* %63\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %60, i64* %64\n; # (loop (setq A (val (big A)) B (val (big B))) (? (cnt? B) (setq B ...\n  br label %$16\n$16:\n  %65 = phi i64 [%45, %$14], [%195, %$25] ; # A\n  %66 = phi i64 [%46, %$14], [%196, %$25] ; # B\n  %67 = phi i64 [%55, %$14], [%214, %$25] ; # N\n  %68 = phi i1 [%54, %$14], [%213, %$25] ; # C\n  %69 = phi i64 [%56, %$14], [%216, %$25] ; # P\n  %70 = phi i64 [%56, %$14], [%200, %$25] ; # R\n; # (big A)\n  %71 = add i64 %65, 4\n; # (val (big A))\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n; # (big B)\n  %74 = add i64 %66, 4\n; # (val (big B))\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n; # (? (cnt? B) (setq B (int B)) (until (cnt? A) (setq N (sub (val (d...\n; # (cnt? B)\n  %77 = and i64 %76, 2\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$19, label %$17\n$19:\n  %79 = phi i64 [%73, %$16] ; # A\n  %80 = phi i64 [%76, %$16] ; # B\n  %81 = phi i64 [%67, %$16] ; # N\n  %82 = phi i1 [%68, %$16] ; # C\n  %83 = phi i64 [%69, %$16] ; # P\n  %84 = phi i64 [%70, %$16] ; # R\n; # (int B)\n  %85 = lshr i64 %80, 4\n; # (until (cnt? A) (setq N (sub (val (dig A)) B C) C @@ A (val (big ...\n  br label %$20\n$20:\n  %86 = phi i64 [%79, %$19], [%128, %$24] ; # A\n  %87 = phi i64 [%85, %$19], [0, %$24] ; # B\n  %88 = phi i64 [%81, %$19], [%130, %$24] ; # N\n  %89 = phi i1 [%82, %$19], [%131, %$24] ; # C\n  %90 = phi i64 [%83, %$19], [%132, %$24] ; # P\n  %91 = phi i64 [%84, %$19], [%133, %$24] ; # R\n; # (cnt? A)\n  %92 = and i64 %86, 2\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$22, label %$21\n$21:\n  %94 = phi i64 [%86, %$20] ; # A\n  %95 = phi i64 [%87, %$20] ; # B\n  %96 = phi i64 [%88, %$20] ; # N\n  %97 = phi i1 [%89, %$20] ; # C\n  %98 = phi i64 [%90, %$20] ; # P\n  %99 = phi i64 [%91, %$20] ; # R\n; # (dig A)\n  %100 = add i64 %94, -4\n; # (val (dig A))\n  %101 = inttoptr i64 %100 to i64*\n  %102 = load i64, i64* %101\n; # (sub (val (dig A)) B C)\n  %103 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %102, i64 %95)\n  %104 = extractvalue {i64, i1} %103, 1\n  %105 = extractvalue {i64, i1} %103, 0\n  %106 = zext i1 %97 to i64\n  %107 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %105, i64 %106)\n  %108 = extractvalue {i64, i1} %107, 1\n  %109 = or i1 %104, %108\n  %110 = extractvalue {i64, i1} %107, 0\n; # (big A)\n  %111 = add i64 %94, 4\n; # (val (big A))\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n; # (set (big P) (consNum N A))\n; # (big P)\n  %114 = add i64 %98, 4\n; # (consNum N A)\n  %115 = call i64 @consNum(i64 %110, i64 %113)\n  %116 = inttoptr i64 %114 to i64*\n  store i64 %115, i64* %116\n; # (unless C (ret (zapZero R)))\n  br i1 %109, label %$24, label %$23\n$23:\n  %117 = phi i64 [%113, %$21] ; # A\n  %118 = phi i64 [%95, %$21] ; # B\n  %119 = phi i64 [%110, %$21] ; # N\n  %120 = phi i1 [%109, %$21] ; # C\n  %121 = phi i64 [%115, %$21] ; # P\n  %122 = phi i64 [%99, %$21] ; # R\n; # (zapZero R)\n  %123 = call i64 @zapZero(i64 %122)\n; # (ret (zapZero R))\n; # (drop *Safe)\n  %124 = inttoptr i64 %60 to i64*\n  %125 = getelementptr i64, i64* %124, i32 1\n  %126 = load i64, i64* %125\n  %127 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %126, i64* %127\n  ret i64 %123\n$24:\n  %128 = phi i64 [%113, %$21] ; # A\n  %129 = phi i64 [%95, %$21] ; # B\n  %130 = phi i64 [%110, %$21] ; # N\n  %131 = phi i1 [%109, %$21] ; # C\n  %132 = phi i64 [%115, %$21] ; # P\n  %133 = phi i64 [%99, %$21] ; # R\n  br label %$20\n$22:\n  %134 = phi i64 [%86, %$20] ; # A\n  %135 = phi i64 [%87, %$20] ; # B\n  %136 = phi i64 [%88, %$20] ; # N\n  %137 = phi i1 [%89, %$20] ; # C\n  %138 = phi i64 [%90, %$20] ; # P\n  %139 = phi i64 [%91, %$20] ; # R\n; # (int A)\n  %140 = lshr i64 %134, 4\n  br label %$18\n$17:\n  %141 = phi i64 [%73, %$16] ; # A\n  %142 = phi i64 [%76, %$16] ; # B\n  %143 = phi i64 [%67, %$16] ; # N\n  %144 = phi i1 [%68, %$16] ; # C\n  %145 = phi i64 [%69, %$16] ; # P\n  %146 = phi i64 [%70, %$16] ; # R\n; # (? (cnt? A) (setq A (int A)) (loop (setq N (sub A (val (dig B)) C...\n; # (cnt? A)\n  %147 = and i64 %141, 2\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$26, label %$25\n$26:\n  %149 = phi i64 [%141, %$17] ; # A\n  %150 = phi i64 [%142, %$17] ; # B\n  %151 = phi i64 [%143, %$17] ; # N\n  %152 = phi i1 [%144, %$17] ; # C\n  %153 = phi i64 [%145, %$17] ; # P\n  %154 = phi i64 [%146, %$17] ; # R\n; # (int A)\n  %155 = lshr i64 %149, 4\n; # (loop (setq N (sub A (val (dig B)) C) C @@ P (set (big P) (boxNum...\n  br label %$27\n$27:\n  %156 = phi i64 [%155, %$26], [%181, %$28] ; # A\n  %157 = phi i64 [%150, %$26], [%182, %$28] ; # B\n  %158 = phi i64 [%151, %$26], [%183, %$28] ; # N\n  %159 = phi i1 [%152, %$26], [%184, %$28] ; # C\n  %160 = phi i64 [%153, %$26], [%185, %$28] ; # P\n  %161 = phi i64 [%154, %$26], [%186, %$28] ; # R\n; # (dig B)\n  %162 = add i64 %157, -4\n; # (val (dig B))\n  %163 = inttoptr i64 %162 to i64*\n  %164 = load i64, i64* %163\n; # (sub A (val (dig B)) C)\n  %165 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %156, i64 %164)\n  %166 = extractvalue {i64, i1} %165, 1\n  %167 = extractvalue {i64, i1} %165, 0\n  %168 = zext i1 %159 to i64\n  %169 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %167, i64 %168)\n  %170 = extractvalue {i64, i1} %169, 1\n  %171 = or i1 %166, %170\n  %172 = extractvalue {i64, i1} %169, 0\n; # (set (big P) (boxNum N))\n; # (big P)\n  %173 = add i64 %160, 4\n; # (boxNum N)\n  %174 = call i64 @boxNum(i64 %172)\n  %175 = inttoptr i64 %173 to i64*\n  store i64 %174, i64* %175\n; # (? (cnt? (setq B (val (big B)))))\n; # (big B)\n  %176 = add i64 %157, 4\n; # (val (big B))\n  %177 = inttoptr i64 %176 to i64*\n  %178 = load i64, i64* %177\n; # (cnt? (setq B (val (big B))))\n  %179 = and i64 %178, 2\n  %180 = icmp ne i64 %179, 0\n  br i1 %180, label %$29, label %$28\n$28:\n  %181 = phi i64 [0, %$27] ; # A\n  %182 = phi i64 [%178, %$27] ; # B\n  %183 = phi i64 [%172, %$27] ; # N\n  %184 = phi i1 [%171, %$27] ; # C\n  %185 = phi i64 [%174, %$27] ; # P\n  %186 = phi i64 [%161, %$27] ; # R\n  br label %$27\n$29:\n  %187 = phi i64 [0, %$27] ; # A\n  %188 = phi i64 [%178, %$27] ; # B\n  %189 = phi i64 [%172, %$27] ; # N\n  %190 = phi i1 [%171, %$27] ; # C\n  %191 = phi i64 [%174, %$27] ; # P\n  %192 = phi i64 [%161, %$27] ; # R\n  %193 = phi i64 [0, %$27] ; # ->\n; # (int B)\n  %194 = lshr i64 %188, 4\n  br label %$18\n$25:\n  %195 = phi i64 [%141, %$17] ; # A\n  %196 = phi i64 [%142, %$17] ; # B\n  %197 = phi i64 [%143, %$17] ; # N\n  %198 = phi i1 [%144, %$17] ; # C\n  %199 = phi i64 [%145, %$17] ; # P\n  %200 = phi i64 [%146, %$17] ; # R\n; # (dig A)\n  %201 = add i64 %195, -4\n; # (val (dig A))\n  %202 = inttoptr i64 %201 to i64*\n  %203 = load i64, i64* %202\n; # (dig B)\n  %204 = add i64 %196, -4\n; # (val (dig B))\n  %205 = inttoptr i64 %204 to i64*\n  %206 = load i64, i64* %205\n; # (sub (val (dig A)) (val (dig B)) C)\n  %207 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %203, i64 %206)\n  %208 = extractvalue {i64, i1} %207, 1\n  %209 = extractvalue {i64, i1} %207, 0\n  %210 = zext i1 %198 to i64\n  %211 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %209, i64 %210)\n  %212 = extractvalue {i64, i1} %211, 1\n  %213 = or i1 %208, %212\n  %214 = extractvalue {i64, i1} %211, 0\n; # (set (big P) (boxNum N))\n; # (big P)\n  %215 = add i64 %199, 4\n; # (boxNum N)\n  %216 = call i64 @boxNum(i64 %214)\n  %217 = inttoptr i64 %215 to i64*\n  store i64 %216, i64* %217\n  br label %$16\n$18:\n  %218 = phi i64 [%140, %$22], [%187, %$29] ; # A\n  %219 = phi i64 [%135, %$22], [%194, %$29] ; # B\n  %220 = phi i64 [%136, %$22], [%189, %$29] ; # N\n  %221 = phi i1 [%137, %$22], [%190, %$29] ; # C\n  %222 = phi i64 [%138, %$22], [%191, %$29] ; # P\n  %223 = phi i64 [%139, %$22], [%192, %$29] ; # R\n  %224 = phi i64 [%140, %$22], [%194, %$29] ; # ->\n; # (set (big P) (cnt (sub A B C)))\n; # (big P)\n  %225 = add i64 %222, 4\n; # (sub A B C)\n  %226 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %218, i64 %219)\n  %227 = extractvalue {i64, i1} %226, 1\n  %228 = extractvalue {i64, i1} %226, 0\n  %229 = zext i1 %221 to i64\n  %230 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %228, i64 %229)\n  %231 = extractvalue {i64, i1} %230, 1\n  %232 = or i1 %227, %231\n  %233 = extractvalue {i64, i1} %230, 0\n; # (cnt (sub A B C))\n  %234 = shl i64 %233, 4\n  %235 = or i64 %234, 2\n  %236 = inttoptr i64 %225 to i64*\n  store i64 %235, i64* %236\n; # (ifn @@ (zapZero R) (let Q R (loop (set (dig Q) (x| (val (dig Q))...\n  br i1 %232, label %$31, label %$30\n$30:\n  %237 = phi i64 [%218, %$18] ; # A\n  %238 = phi i64 [%219, %$18] ; # B\n  %239 = phi i64 [%220, %$18] ; # N\n  %240 = phi i1 [%221, %$18] ; # C\n  %241 = phi i64 [%222, %$18] ; # P\n  %242 = phi i64 [%223, %$18] ; # R\n; # (zapZero R)\n  %243 = call i64 @zapZero(i64 %242)\n  br label %$32\n$31:\n  %244 = phi i64 [%218, %$18] ; # A\n  %245 = phi i64 [%219, %$18] ; # B\n  %246 = phi i64 [%220, %$18] ; # N\n  %247 = phi i1 [%221, %$18] ; # C\n  %248 = phi i64 [%222, %$18] ; # P\n  %249 = phi i64 [%223, %$18] ; # R\n; # (let Q R (loop (set (dig Q) (x| (val (dig Q)) -1)) (? (cnt? (setq...\n; # (loop (set (dig Q) (x| (val (dig Q)) -1)) (? (cnt? (setq N (val (...\n  br label %$33\n$33:\n  %250 = phi i64 [%244, %$31], [%268, %$34] ; # A\n  %251 = phi i64 [%245, %$31], [%269, %$34] ; # B\n  %252 = phi i64 [%246, %$31], [%270, %$34] ; # N\n  %253 = phi i1 [%247, %$31], [%271, %$34] ; # C\n  %254 = phi i64 [%248, %$31], [%272, %$34] ; # P\n  %255 = phi i64 [%249, %$31], [%273, %$34] ; # R\n  %256 = phi i64 [%249, %$31], [%270, %$34] ; # Q\n; # (set (dig Q) (x| (val (dig Q)) -1))\n; # (dig Q)\n  %257 = add i64 %256, -4\n; # (dig Q)\n  %258 = add i64 %256, -4\n; # (val (dig Q))\n  %259 = inttoptr i64 %258 to i64*\n  %260 = load i64, i64* %259\n; # (x| (val (dig Q)) -1)\n  %261 = xor i64 %260, -1\n  %262 = inttoptr i64 %257 to i64*\n  store i64 %261, i64* %262\n; # (? (cnt? (setq N (val (big Q)))))\n; # (big Q)\n  %263 = add i64 %256, 4\n; # (val (big Q))\n  %264 = inttoptr i64 %263 to i64*\n  %265 = load i64, i64* %264\n; # (cnt? (setq N (val (big Q))))\n  %266 = and i64 %265, 2\n  %267 = icmp ne i64 %266, 0\n  br i1 %267, label %$35, label %$34\n$34:\n  %268 = phi i64 [%250, %$33] ; # A\n  %269 = phi i64 [%251, %$33] ; # B\n  %270 = phi i64 [%265, %$33] ; # N\n  %271 = phi i1 [%253, %$33] ; # C\n  %272 = phi i64 [%254, %$33] ; # P\n  %273 = phi i64 [%255, %$33] ; # R\n  %274 = phi i64 [%256, %$33] ; # Q\n  br label %$33\n$35:\n  %275 = phi i64 [%250, %$33] ; # A\n  %276 = phi i64 [%251, %$33] ; # B\n  %277 = phi i64 [%265, %$33] ; # N\n  %278 = phi i1 [%253, %$33] ; # C\n  %279 = phi i64 [%254, %$33] ; # P\n  %280 = phi i64 [%255, %$33] ; # R\n  %281 = phi i64 [%256, %$33] ; # Q\n  %282 = phi i64 [0, %$33] ; # ->\n; # (set (big Q) (x| N -16))\n; # (big Q)\n  %283 = add i64 %281, 4\n; # (x| N -16)\n  %284 = xor i64 %277, -16\n  %285 = inttoptr i64 %283 to i64*\n  store i64 %284, i64* %285\n; # (let Q R (loop (set (dig Q) (add (val (dig Q)) 1)) (unless @@ (go...\n; # (loop (set (dig Q) (add (val (dig Q)) 1)) (unless @@ (goto 9)) (?...\n  br label %$36\n$36:\n  %286 = phi i64 [%275, %$35], [%320, %$39] ; # A\n  %287 = phi i64 [%276, %$35], [%321, %$39] ; # B\n  %288 = phi i64 [%277, %$35], [%322, %$39] ; # N\n  %289 = phi i1 [%278, %$35], [%323, %$39] ; # C\n  %290 = phi i64 [%279, %$35], [%324, %$39] ; # P\n  %291 = phi i64 [%280, %$35], [%325, %$39] ; # R\n  %292 = phi i64 [%280, %$35], [%322, %$39] ; # Q\n; # (set (dig Q) (add (val (dig Q)) 1))\n; # (dig Q)\n  %293 = add i64 %292, -4\n; # (dig Q)\n  %294 = add i64 %292, -4\n; # (val (dig Q))\n  %295 = inttoptr i64 %294 to i64*\n  %296 = load i64, i64* %295\n; # (add (val (dig Q)) 1)\n  %297 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %296, i64 1)\n  %298 = extractvalue {i64, i1} %297, 1\n  %299 = extractvalue {i64, i1} %297, 0\n  %300 = inttoptr i64 %293 to i64*\n  store i64 %299, i64* %300\n; # (unless @@ (goto 9))\n  br i1 %298, label %$38, label %$37\n$37:\n  %301 = phi i64 [%286, %$36] ; # A\n  %302 = phi i64 [%287, %$36] ; # B\n  %303 = phi i64 [%288, %$36] ; # N\n  %304 = phi i1 [%289, %$36] ; # C\n  %305 = phi i64 [%290, %$36] ; # P\n  %306 = phi i64 [%291, %$36] ; # R\n  %307 = phi i64 [%292, %$36] ; # Q\n; # (goto 9)\n  br label %$-9\n$38:\n  %308 = phi i64 [%286, %$36] ; # A\n  %309 = phi i64 [%287, %$36] ; # B\n  %310 = phi i64 [%288, %$36] ; # N\n  %311 = phi i1 [%289, %$36] ; # C\n  %312 = phi i64 [%290, %$36] ; # P\n  %313 = phi i64 [%291, %$36] ; # R\n  %314 = phi i64 [%292, %$36] ; # Q\n; # (? (cnt? (setq N (val (big Q)))))\n; # (big Q)\n  %315 = add i64 %314, 4\n; # (val (big Q))\n  %316 = inttoptr i64 %315 to i64*\n  %317 = load i64, i64* %316\n; # (cnt? (setq N (val (big Q))))\n  %318 = and i64 %317, 2\n  %319 = icmp ne i64 %318, 0\n  br i1 %319, label %$40, label %$39\n$39:\n  %320 = phi i64 [%308, %$38] ; # A\n  %321 = phi i64 [%309, %$38] ; # B\n  %322 = phi i64 [%317, %$38] ; # N\n  %323 = phi i1 [%311, %$38] ; # C\n  %324 = phi i64 [%312, %$38] ; # P\n  %325 = phi i64 [%313, %$38] ; # R\n  %326 = phi i64 [%314, %$38] ; # Q\n  br label %$36\n$40:\n  %327 = phi i64 [%308, %$38] ; # A\n  %328 = phi i64 [%309, %$38] ; # B\n  %329 = phi i64 [%317, %$38] ; # N\n  %330 = phi i1 [%311, %$38] ; # C\n  %331 = phi i64 [%312, %$38] ; # P\n  %332 = phi i64 [%313, %$38] ; # R\n  %333 = phi i64 [%314, %$38] ; # Q\n  %334 = phi i64 [0, %$38] ; # ->\n; # (set (big Q) (+ N (hex \"10\")))\n; # (big Q)\n  %335 = add i64 %333, 4\n; # (+ N (hex \"10\"))\n  %336 = add i64 %329, 16\n  %337 = inttoptr i64 %335 to i64*\n  store i64 %336, i64* %337\n; # (: 9 (sign (zapZero R)))\n  br label %$-9\n$-9:\n  %338 = phi i64 [%301, %$37], [%327, %$40] ; # A\n  %339 = phi i64 [%302, %$37], [%328, %$40] ; # B\n  %340 = phi i64 [%303, %$37], [%329, %$40] ; # N\n  %341 = phi i1 [%304, %$37], [%330, %$40] ; # C\n  %342 = phi i64 [%305, %$37], [%331, %$40] ; # P\n  %343 = phi i64 [%306, %$37], [%332, %$40] ; # R\n; # (zapZero R)\n  %344 = call i64 @zapZero(i64 %343)\n; # (sign (zapZero R))\n  %345 = or i64 %344, 8\n  br label %$32\n$32:\n  %346 = phi i64 [%237, %$30], [%338, %$-9] ; # A\n  %347 = phi i64 [%238, %$30], [%339, %$-9] ; # B\n  %348 = phi i64 [%239, %$30], [%340, %$-9] ; # N\n  %349 = phi i1 [%240, %$30], [%341, %$-9] ; # C\n  %350 = phi i64 [%241, %$30], [%342, %$-9] ; # P\n  %351 = phi i64 [%242, %$30], [%343, %$-9] ; # R\n  %352 = phi i64 [%243, %$30], [%345, %$-9] ; # ->\n; # (drop *Safe)\n  %353 = inttoptr i64 %60 to i64*\n  %354 = getelementptr i64, i64* %353, i32 1\n  %355 = load i64, i64* %354\n  %356 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %355, i64* %356\n  br label %$2\n$2:\n  %357 = phi i64 [%35, %$7], [%42, %$15], [%346, %$32] ; # A\n  %358 = phi i64 [%36, %$7], [%43, %$15], [%347, %$32] ; # B\n  %359 = phi i64 [%37, %$7], [%44, %$15], [%352, %$32] ; # ->\n  ret i64 %359\n}\n\ndefine i64 @mulu(i64, i64) align 8 {\n$1:\n; # (cond ((== A ZERO) A) ((cnt? A) (setq A (int A)) (if (cnt? B) (le...\n; # (== A ZERO)\n  %2 = icmp eq i64 %0, 2\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # A\n  %4 = phi i64 [%1, %$1] ; # B\n  br label %$2\n$3:\n  %5 = phi i64 [%0, %$1] ; # A\n  %6 = phi i64 [%1, %$1] ; # B\n; # (cnt? A)\n  %7 = and i64 %5, 2\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%5, %$3] ; # A\n  %10 = phi i64 [%6, %$3] ; # B\n; # (int A)\n  %11 = lshr i64 %9, 4\n; # (if (cnt? B) (let N (mul A (int B)) (if (or @@@ (& N (hex \"F00000...\n; # (cnt? B)\n  %12 = and i64 %10, 2\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$8\n$7:\n  %14 = phi i64 [%11, %$6] ; # A\n  %15 = phi i64 [%10, %$6] ; # B\n; # (let N (mul A (int B)) (if (or @@@ (& N (hex \"F000000000000000\"))...\n; # (int B)\n  %16 = lshr i64 %15, 4\n; # (mul A (int B))\n  %17 = zext i64 %14 to i128\n  %18 = zext i64 %16 to i128\n  %19 = mul i128 %17, %18\n  %20 = lshr i128 %19, 64\n  %21 = trunc i128 %20 to i64\n  %22 = trunc i128 %19 to i64\n; # (if (or @@@ (& N (hex \"F000000000000000\"))) (consNum N (cnt @@@))...\n; # (or @@@ (& N (hex \"F000000000000000\")))\n  %23 = icmp ne i64 %21, 0\n  br i1 %23, label %$10, label %$11\n$11:\n  %24 = phi i64 [%14, %$7] ; # A\n  %25 = phi i64 [%15, %$7] ; # B\n  %26 = phi i64 [%22, %$7] ; # N\n; # (& N (hex \"F000000000000000\"))\n  %27 = and i64 %26, 17293822569102704640\n  %28 = icmp ne i64 %27, 0\n  br label %$10\n$10:\n  %29 = phi i64 [%14, %$7], [%24, %$11] ; # A\n  %30 = phi i64 [%15, %$7], [%25, %$11] ; # B\n  %31 = phi i64 [%22, %$7], [%26, %$11] ; # N\n  %32 = phi i1 [1, %$7], [%28, %$11] ; # ->\n  br i1 %32, label %$12, label %$13\n$12:\n  %33 = phi i64 [%29, %$10] ; # A\n  %34 = phi i64 [%30, %$10] ; # B\n  %35 = phi i64 [%31, %$10] ; # N\n; # (cnt @@@)\n  %36 = shl i64 %21, 4\n  %37 = or i64 %36, 2\n; # (consNum N (cnt @@@))\n  %38 = call i64 @consNum(i64 %35, i64 %37)\n  br label %$14\n$13:\n  %39 = phi i64 [%29, %$10] ; # A\n  %40 = phi i64 [%30, %$10] ; # B\n  %41 = phi i64 [%31, %$10] ; # N\n; # (cnt N)\n  %42 = shl i64 %41, 4\n  %43 = or i64 %42, 2\n  br label %$14\n$14:\n  %44 = phi i64 [%33, %$12], [%39, %$13] ; # A\n  %45 = phi i64 [%34, %$12], [%40, %$13] ; # B\n  %46 = phi i64 [%35, %$12], [%41, %$13] ; # N\n  %47 = phi i64 [%38, %$12], [%43, %$13] ; # ->\n  br label %$9\n$8:\n  %48 = phi i64 [%11, %$6] ; # A\n  %49 = phi i64 [%10, %$6] ; # B\n; # (: 1 (let (Lo (mul A (val (dig B))) Hi @@@ P (boxNum Lo) R (save ...\n  br label %$-1\n$-1:\n  %50 = phi i64 [%48, %$8], [%182, %$26] ; # A\n  %51 = phi i64 [%49, %$8], [%180, %$26] ; # B\n; # (let (Lo (mul A (val (dig B))) Hi @@@ P (boxNum Lo) R (save P)) (...\n; # (dig B)\n  %52 = add i64 %51, -4\n; # (val (dig B))\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n; # (mul A (val (dig B)))\n  %55 = zext i64 %50 to i128\n  %56 = zext i64 %54 to i128\n  %57 = mul i128 %55, %56\n  %58 = lshr i128 %57, 64\n  %59 = trunc i128 %58 to i64\n  %60 = trunc i128 %57 to i64\n; # (boxNum Lo)\n  %61 = call i64 @boxNum(i64 %60)\n; # (save P)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %63 = load i64, i64* %62\n  %64 = alloca i64, i64 2, align 16\n  %65 = ptrtoint i64* %64 to i64\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %61, i64* %66\n  %67 = add i64 %65, 8\n  %68 = inttoptr i64 %67 to i64*\n  store i64 %63, i64* %68\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %69\n; # (while (big? (setq B (val (big B)))) (setq Lo (add (mul A (val (d...\n  br label %$15\n$15:\n  %70 = phi i64 [%50, %$-1], [%81, %$16] ; # A\n  %71 = phi i64 [%51, %$-1], [%82, %$16] ; # B\n  %72 = phi i64 [%60, %$-1], [%98, %$16] ; # Lo\n  %73 = phi i64 [%59, %$-1], [%100, %$16] ; # Hi\n  %74 = phi i64 [%61, %$-1], [%102, %$16] ; # P\n  %75 = phi i64 [%61, %$-1], [%86, %$16] ; # R\n; # (big B)\n  %76 = add i64 %71, 4\n; # (val (big B))\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n; # (big? (setq B (val (big B))))\n  %79 = and i64 %78, 4\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$16, label %$17\n$16:\n  %81 = phi i64 [%70, %$15] ; # A\n  %82 = phi i64 [%78, %$15] ; # B\n  %83 = phi i64 [%72, %$15] ; # Lo\n  %84 = phi i64 [%73, %$15] ; # Hi\n  %85 = phi i64 [%74, %$15] ; # P\n  %86 = phi i64 [%75, %$15] ; # R\n; # (dig B)\n  %87 = add i64 %82, -4\n; # (val (dig B))\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n; # (mul A (val (dig B)))\n  %90 = zext i64 %81 to i128\n  %91 = zext i64 %89 to i128\n  %92 = mul i128 %90, %91\n  %93 = lshr i128 %92, 64\n  %94 = trunc i128 %93 to i64\n  %95 = trunc i128 %92 to i64\n; # (add (mul A (val (dig B))) Hi)\n  %96 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %95, i64 %84)\n  %97 = extractvalue {i64, i1} %96, 1\n  %98 = extractvalue {i64, i1} %96, 0\n; # (+ @@@ @@)\n  %99 = zext i1 %97 to i64\n  %100 = add i64 %94, %99\n; # (set (big P) (boxNum Lo))\n; # (big P)\n  %101 = add i64 %85, 4\n; # (boxNum Lo)\n  %102 = call i64 @boxNum(i64 %98)\n  %103 = inttoptr i64 %101 to i64*\n  store i64 %102, i64* %103\n  br label %$15\n$17:\n  %104 = phi i64 [%70, %$15] ; # A\n  %105 = phi i64 [%78, %$15] ; # B\n  %106 = phi i64 [%72, %$15] ; # Lo\n  %107 = phi i64 [%73, %$15] ; # Hi\n  %108 = phi i64 [%74, %$15] ; # P\n  %109 = phi i64 [%75, %$15] ; # R\n; # (int B)\n  %110 = lshr i64 %105, 4\n; # (mul A (int B))\n  %111 = zext i64 %104 to i128\n  %112 = zext i64 %110 to i128\n  %113 = mul i128 %111, %112\n  %114 = lshr i128 %113, 64\n  %115 = trunc i128 %114 to i64\n  %116 = trunc i128 %113 to i64\n; # (add (mul A (int B)) Hi)\n  %117 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %116, i64 %107)\n  %118 = extractvalue {i64, i1} %117, 1\n  %119 = extractvalue {i64, i1} %117, 0\n; # (+ @@@ @@)\n  %120 = zext i1 %118 to i64\n  %121 = add i64 %115, %120\n; # (set (big P) (if (or Hi (& Lo (hex \"F000000000000000\"))) (consNum...\n; # (big P)\n  %122 = add i64 %108, 4\n; # (if (or Hi (& Lo (hex \"F000000000000000\"))) (consNum Lo (cnt Hi))...\n; # (or Hi (& Lo (hex \"F000000000000000\")))\n  %123 = icmp ne i64 %121, 0\n  br i1 %123, label %$18, label %$19\n$19:\n  %124 = phi i64 [%104, %$17] ; # A\n  %125 = phi i64 [%105, %$17] ; # B\n  %126 = phi i64 [%119, %$17] ; # Lo\n  %127 = phi i64 [%121, %$17] ; # Hi\n  %128 = phi i64 [%108, %$17] ; # P\n  %129 = phi i64 [%109, %$17] ; # R\n; # (& Lo (hex \"F000000000000000\"))\n  %130 = and i64 %126, 17293822569102704640\n  %131 = icmp ne i64 %130, 0\n  br label %$18\n$18:\n  %132 = phi i64 [%104, %$17], [%124, %$19] ; # A\n  %133 = phi i64 [%105, %$17], [%125, %$19] ; # B\n  %134 = phi i64 [%119, %$17], [%126, %$19] ; # Lo\n  %135 = phi i64 [%121, %$17], [%127, %$19] ; # Hi\n  %136 = phi i64 [%108, %$17], [%128, %$19] ; # P\n  %137 = phi i64 [%109, %$17], [%129, %$19] ; # R\n  %138 = phi i1 [1, %$17], [%131, %$19] ; # ->\n  br i1 %138, label %$20, label %$21\n$20:\n  %139 = phi i64 [%132, %$18] ; # A\n  %140 = phi i64 [%133, %$18] ; # B\n  %141 = phi i64 [%134, %$18] ; # Lo\n  %142 = phi i64 [%135, %$18] ; # Hi\n  %143 = phi i64 [%136, %$18] ; # P\n  %144 = phi i64 [%137, %$18] ; # R\n; # (cnt Hi)\n  %145 = shl i64 %142, 4\n  %146 = or i64 %145, 2\n; # (consNum Lo (cnt Hi))\n  %147 = call i64 @consNum(i64 %141, i64 %146)\n  br label %$22\n$21:\n  %148 = phi i64 [%132, %$18] ; # A\n  %149 = phi i64 [%133, %$18] ; # B\n  %150 = phi i64 [%134, %$18] ; # Lo\n  %151 = phi i64 [%135, %$18] ; # Hi\n  %152 = phi i64 [%136, %$18] ; # P\n  %153 = phi i64 [%137, %$18] ; # R\n; # (cnt Lo)\n  %154 = shl i64 %150, 4\n  %155 = or i64 %154, 2\n  br label %$22\n$22:\n  %156 = phi i64 [%139, %$20], [%148, %$21] ; # A\n  %157 = phi i64 [%140, %$20], [%149, %$21] ; # B\n  %158 = phi i64 [%141, %$20], [%150, %$21] ; # Lo\n  %159 = phi i64 [%142, %$20], [%151, %$21] ; # Hi\n  %160 = phi i64 [%143, %$20], [%152, %$21] ; # P\n  %161 = phi i64 [%144, %$20], [%153, %$21] ; # R\n  %162 = phi i64 [%147, %$20], [%155, %$21] ; # ->\n  %163 = inttoptr i64 %122 to i64*\n  store i64 %162, i64* %163\n; # (drop *Safe)\n  %164 = inttoptr i64 %65 to i64*\n  %165 = getelementptr i64, i64* %164, i32 1\n  %166 = load i64, i64* %165\n  %167 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %166, i64* %167\n  br label %$9\n$9:\n  %168 = phi i64 [%44, %$14], [%156, %$22] ; # A\n  %169 = phi i64 [%45, %$14], [%157, %$22] ; # B\n  %170 = phi i64 [%47, %$14], [%161, %$22] ; # ->\n  br label %$2\n$5:\n  %171 = phi i64 [%5, %$3] ; # A\n  %172 = phi i64 [%6, %$3] ; # B\n; # (== B ZERO)\n  %173 = icmp eq i64 %172, 2\n  br i1 %173, label %$24, label %$23\n$24:\n  %174 = phi i64 [%171, %$5] ; # A\n  %175 = phi i64 [%172, %$5] ; # B\n  br label %$2\n$23:\n  %176 = phi i64 [%171, %$5] ; # A\n  %177 = phi i64 [%172, %$5] ; # B\n; # (cnt? B)\n  %178 = and i64 %177, 2\n  %179 = icmp ne i64 %178, 0\n  br i1 %179, label %$26, label %$25\n$26:\n  %180 = phi i64 [%176, %$23] ; # A\n  %181 = phi i64 [%177, %$23] ; # B\n; # (int B)\n  %182 = lshr i64 %181, 4\n; # (xchg 'A 'B)\n; # (goto 1)\n  br label %$-1\n$25:\n  %183 = phi i64 [%176, %$23] ; # A\n  %184 = phi i64 [%177, %$23] ; # B\n; # (let (P (boxNum 0) R (save P)) (loop (let (X A Q P Lo (add (mul (...\n; # (boxNum 0)\n  %185 = call i64 @boxNum(i64 0)\n; # (save P)\n  %186 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %187 = load i64, i64* %186\n  %188 = alloca i64, i64 2, align 16\n  %189 = ptrtoint i64* %188 to i64\n  %190 = inttoptr i64 %189 to i64*\n  store i64 %185, i64* %190\n  %191 = add i64 %189, 8\n  %192 = inttoptr i64 %191 to i64*\n  store i64 %187, i64* %192\n  %193 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %189, i64* %193\n; # (loop (let (X A Q P Lo (add (mul (val (dig X)) (val (dig B))) (va...\n  br label %$27\n$27:\n  %194 = phi i64 [%183, %$25], [%393, %$39] ; # A\n  %195 = phi i64 [%184, %$25], [%394, %$39] ; # B\n  %196 = phi i64 [%185, %$25], [%395, %$39] ; # P\n  %197 = phi i64 [%185, %$25], [%396, %$39] ; # R\n; # (let (X A Q P Lo (add (mul (val (dig X)) (val (dig B))) (val (dig...\n; # (dig X)\n  %198 = add i64 %194, -4\n; # (val (dig X))\n  %199 = inttoptr i64 %198 to i64*\n  %200 = load i64, i64* %199\n; # (dig B)\n  %201 = add i64 %195, -4\n; # (val (dig B))\n  %202 = inttoptr i64 %201 to i64*\n  %203 = load i64, i64* %202\n; # (mul (val (dig X)) (val (dig B)))\n  %204 = zext i64 %200 to i128\n  %205 = zext i64 %203 to i128\n  %206 = mul i128 %204, %205\n  %207 = lshr i128 %206, 64\n  %208 = trunc i128 %207 to i64\n  %209 = trunc i128 %206 to i64\n; # (dig Q)\n  %210 = add i64 %196, -4\n; # (val (dig Q))\n  %211 = inttoptr i64 %210 to i64*\n  %212 = load i64, i64* %211\n; # (add (mul (val (dig X)) (val (dig B))) (val (dig Q)))\n  %213 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %209, i64 %212)\n  %214 = extractvalue {i64, i1} %213, 1\n  %215 = extractvalue {i64, i1} %213, 0\n; # (+ @@@ @@)\n  %216 = zext i1 %214 to i64\n  %217 = add i64 %208, %216\n; # (loop (set (dig Q) Lo) (setq Q (if (cnt? (val (big Q))) (set (big...\n  br label %$28\n$28:\n  %218 = phi i64 [%194, %$27], [%266, %$32] ; # A\n  %219 = phi i64 [%195, %$27], [%267, %$32] ; # B\n  %220 = phi i64 [%196, %$27], [%268, %$32] ; # P\n  %221 = phi i64 [%197, %$27], [%269, %$32] ; # R\n  %222 = phi i64 [%194, %$27], [%270, %$32] ; # X\n  %223 = phi i64 [%196, %$27], [%271, %$32] ; # Q\n  %224 = phi i64 [%215, %$27], [%296, %$32] ; # Lo\n  %225 = phi i64 [%217, %$27], [%298, %$32] ; # Hi\n; # (set (dig Q) Lo)\n; # (dig Q)\n  %226 = add i64 %223, -4\n  %227 = inttoptr i64 %226 to i64*\n  store i64 %224, i64* %227\n; # (if (cnt? (val (big Q))) (set (big Q) (boxNum 0)) @)\n; # (big Q)\n  %228 = add i64 %223, 4\n; # (val (big Q))\n  %229 = inttoptr i64 %228 to i64*\n  %230 = load i64, i64* %229\n; # (cnt? (val (big Q)))\n  %231 = and i64 %230, 2\n  %232 = icmp ne i64 %231, 0\n  br i1 %232, label %$29, label %$30\n$29:\n  %233 = phi i64 [%218, %$28] ; # A\n  %234 = phi i64 [%219, %$28] ; # B\n  %235 = phi i64 [%220, %$28] ; # P\n  %236 = phi i64 [%221, %$28] ; # R\n  %237 = phi i64 [%222, %$28] ; # X\n  %238 = phi i64 [%223, %$28] ; # Q\n  %239 = phi i64 [%224, %$28] ; # Lo\n  %240 = phi i64 [%225, %$28] ; # Hi\n; # (set (big Q) (boxNum 0))\n; # (big Q)\n  %241 = add i64 %238, 4\n; # (boxNum 0)\n  %242 = call i64 @boxNum(i64 0)\n  %243 = inttoptr i64 %241 to i64*\n  store i64 %242, i64* %243\n  br label %$31\n$30:\n  %244 = phi i64 [%218, %$28] ; # A\n  %245 = phi i64 [%219, %$28] ; # B\n  %246 = phi i64 [%220, %$28] ; # P\n  %247 = phi i64 [%221, %$28] ; # R\n  %248 = phi i64 [%222, %$28] ; # X\n  %249 = phi i64 [%223, %$28] ; # Q\n  %250 = phi i64 [%224, %$28] ; # Lo\n  %251 = phi i64 [%225, %$28] ; # Hi\n  br label %$31\n$31:\n  %252 = phi i64 [%233, %$29], [%244, %$30] ; # A\n  %253 = phi i64 [%234, %$29], [%245, %$30] ; # B\n  %254 = phi i64 [%235, %$29], [%246, %$30] ; # P\n  %255 = phi i64 [%236, %$29], [%247, %$30] ; # R\n  %256 = phi i64 [%237, %$29], [%248, %$30] ; # X\n  %257 = phi i64 [%238, %$29], [%249, %$30] ; # Q\n  %258 = phi i64 [%239, %$29], [%250, %$30] ; # Lo\n  %259 = phi i64 [%240, %$29], [%251, %$30] ; # Hi\n  %260 = phi i64 [%242, %$29], [%230, %$30] ; # ->\n; # (? (cnt? (setq X (val (big X)))))\n; # (big X)\n  %261 = add i64 %256, 4\n; # (val (big X))\n  %262 = inttoptr i64 %261 to i64*\n  %263 = load i64, i64* %262\n; # (cnt? (setq X (val (big X))))\n  %264 = and i64 %263, 2\n  %265 = icmp ne i64 %264, 0\n  br i1 %265, label %$33, label %$32\n$32:\n  %266 = phi i64 [%252, %$31] ; # A\n  %267 = phi i64 [%253, %$31] ; # B\n  %268 = phi i64 [%254, %$31] ; # P\n  %269 = phi i64 [%255, %$31] ; # R\n  %270 = phi i64 [%263, %$31] ; # X\n  %271 = phi i64 [%260, %$31] ; # Q\n  %272 = phi i64 [%258, %$31] ; # Lo\n  %273 = phi i64 [%259, %$31] ; # Hi\n; # (dig X)\n  %274 = add i64 %270, -4\n; # (val (dig X))\n  %275 = inttoptr i64 %274 to i64*\n  %276 = load i64, i64* %275\n; # (dig B)\n  %277 = add i64 %267, -4\n; # (val (dig B))\n  %278 = inttoptr i64 %277 to i64*\n  %279 = load i64, i64* %278\n; # (mulAddHiLo (val (dig X)) (val (dig B)) Q)\n  %280 = zext i64 %276 to i128\n  %281 = zext i64 %279 to i128\n  %282 = mul i128 %280, %281\n  %283 = lshr i128 %282, 64\n  %284 = trunc i128 %283 to i64\n  %285 = trunc i128 %282 to i64\n  %286 = add i64 %271, -4\n  %287 = inttoptr i64 %286 to i64*\n  %288 = load i64, i64* %287\n  %289 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %285, i64 %288)\n  %290 = extractvalue {i64, i1} %289, 1\n  %291 = extractvalue {i64, i1} %289, 0\n  %292 = zext i1 %290 to i64\n  %293 = add i64 %284, %292\n  %294 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %291, i64 %273)\n  %295 = extractvalue {i64, i1} %294, 1\n  %296 = extractvalue {i64, i1} %294, 0\n  %297 = zext i1 %295 to i64\n  %298 = add i64 %293, %297\n  br label %$28\n$33:\n  %299 = phi i64 [%252, %$31] ; # A\n  %300 = phi i64 [%253, %$31] ; # B\n  %301 = phi i64 [%254, %$31] ; # P\n  %302 = phi i64 [%255, %$31] ; # R\n  %303 = phi i64 [%263, %$31] ; # X\n  %304 = phi i64 [%260, %$31] ; # Q\n  %305 = phi i64 [%258, %$31] ; # Lo\n  %306 = phi i64 [%259, %$31] ; # Hi\n  %307 = phi i64 [0, %$31] ; # ->\n; # (int X)\n  %308 = lshr i64 %303, 4\n; # (dig B)\n  %309 = add i64 %300, -4\n; # (val (dig B))\n  %310 = inttoptr i64 %309 to i64*\n  %311 = load i64, i64* %310\n; # (mulAddHiLo (int X) (val (dig B)) Q)\n  %312 = zext i64 %308 to i128\n  %313 = zext i64 %311 to i128\n  %314 = mul i128 %312, %313\n  %315 = lshr i128 %314, 64\n  %316 = trunc i128 %315 to i64\n  %317 = trunc i128 %314 to i64\n  %318 = add i64 %304, -4\n  %319 = inttoptr i64 %318 to i64*\n  %320 = load i64, i64* %319\n  %321 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %317, i64 %320)\n  %322 = extractvalue {i64, i1} %321, 1\n  %323 = extractvalue {i64, i1} %321, 0\n  %324 = zext i1 %322 to i64\n  %325 = add i64 %316, %324\n  %326 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %323, i64 %306)\n  %327 = extractvalue {i64, i1} %326, 1\n  %328 = extractvalue {i64, i1} %326, 0\n  %329 = zext i1 %327 to i64\n  %330 = add i64 %325, %329\n; # (set (dig Q) Lo)\n; # (dig Q)\n  %331 = add i64 %304, -4\n  %332 = inttoptr i64 %331 to i64*\n  store i64 %328, i64* %332\n; # (when Hi (if (cnt? (val (big Q))) (set (big Q) (boxNum Hi)) (set ...\n  %333 = icmp ne i64 %330, 0\n  br i1 %333, label %$34, label %$35\n$34:\n  %334 = phi i64 [%299, %$33] ; # A\n  %335 = phi i64 [%300, %$33] ; # B\n  %336 = phi i64 [%301, %$33] ; # P\n  %337 = phi i64 [%302, %$33] ; # R\n  %338 = phi i64 [%303, %$33] ; # X\n  %339 = phi i64 [%304, %$33] ; # Q\n  %340 = phi i64 [%328, %$33] ; # Lo\n  %341 = phi i64 [%330, %$33] ; # Hi\n; # (if (cnt? (val (big Q))) (set (big Q) (boxNum Hi)) (set (big @) H...\n; # (big Q)\n  %342 = add i64 %339, 4\n; # (val (big Q))\n  %343 = inttoptr i64 %342 to i64*\n  %344 = load i64, i64* %343\n; # (cnt? (val (big Q)))\n  %345 = and i64 %344, 2\n  %346 = icmp ne i64 %345, 0\n  br i1 %346, label %$36, label %$37\n$36:\n  %347 = phi i64 [%334, %$34] ; # A\n  %348 = phi i64 [%335, %$34] ; # B\n  %349 = phi i64 [%336, %$34] ; # P\n  %350 = phi i64 [%337, %$34] ; # R\n  %351 = phi i64 [%338, %$34] ; # X\n  %352 = phi i64 [%339, %$34] ; # Q\n  %353 = phi i64 [%340, %$34] ; # Lo\n  %354 = phi i64 [%341, %$34] ; # Hi\n; # (set (big Q) (boxNum Hi))\n; # (big Q)\n  %355 = add i64 %352, 4\n; # (boxNum Hi)\n  %356 = call i64 @boxNum(i64 %354)\n  %357 = inttoptr i64 %355 to i64*\n  store i64 %356, i64* %357\n  br label %$38\n$37:\n  %358 = phi i64 [%334, %$34] ; # A\n  %359 = phi i64 [%335, %$34] ; # B\n  %360 = phi i64 [%336, %$34] ; # P\n  %361 = phi i64 [%337, %$34] ; # R\n  %362 = phi i64 [%338, %$34] ; # X\n  %363 = phi i64 [%339, %$34] ; # Q\n  %364 = phi i64 [%340, %$34] ; # Lo\n  %365 = phi i64 [%341, %$34] ; # Hi\n; # (set (big @) Hi)\n; # (big @)\n  %366 = add i64 %344, 4\n  %367 = inttoptr i64 %366 to i64*\n  store i64 %365, i64* %367\n  br label %$38\n$38:\n  %368 = phi i64 [%347, %$36], [%358, %$37] ; # A\n  %369 = phi i64 [%348, %$36], [%359, %$37] ; # B\n  %370 = phi i64 [%349, %$36], [%360, %$37] ; # P\n  %371 = phi i64 [%350, %$36], [%361, %$37] ; # R\n  %372 = phi i64 [%351, %$36], [%362, %$37] ; # X\n  %373 = phi i64 [%352, %$36], [%363, %$37] ; # Q\n  %374 = phi i64 [%353, %$36], [%364, %$37] ; # Lo\n  %375 = phi i64 [%354, %$36], [%365, %$37] ; # Hi\n  %376 = phi i64 [%356, %$36], [%365, %$37] ; # ->\n  br label %$35\n$35:\n  %377 = phi i64 [%299, %$33], [%368, %$38] ; # A\n  %378 = phi i64 [%300, %$33], [%369, %$38] ; # B\n  %379 = phi i64 [%301, %$33], [%370, %$38] ; # P\n  %380 = phi i64 [%302, %$33], [%371, %$38] ; # R\n  %381 = phi i64 [%303, %$33], [%372, %$38] ; # X\n  %382 = phi i64 [%304, %$33], [%373, %$38] ; # Q\n  %383 = phi i64 [%328, %$33], [%374, %$38] ; # Lo\n  %384 = phi i64 [%330, %$33], [%375, %$38] ; # Hi\n; # (big P)\n  %385 = add i64 %379, 4\n; # (val (big P))\n  %386 = inttoptr i64 %385 to i64*\n  %387 = load i64, i64* %386\n; # (? (cnt? (setq B (val (big B)))))\n; # (big B)\n  %388 = add i64 %378, 4\n; # (val (big B))\n  %389 = inttoptr i64 %388 to i64*\n  %390 = load i64, i64* %389\n; # (cnt? (setq B (val (big B))))\n  %391 = and i64 %390, 2\n  %392 = icmp ne i64 %391, 0\n  br i1 %392, label %$40, label %$39\n$39:\n  %393 = phi i64 [%377, %$35] ; # A\n  %394 = phi i64 [%390, %$35] ; # B\n  %395 = phi i64 [%387, %$35] ; # P\n  %396 = phi i64 [%380, %$35] ; # R\n  br label %$27\n$40:\n  %397 = phi i64 [%377, %$35] ; # A\n  %398 = phi i64 [%390, %$35] ; # B\n  %399 = phi i64 [%387, %$35] ; # P\n  %400 = phi i64 [%380, %$35] ; # R\n  %401 = phi i64 [0, %$35] ; # ->\n; # (int B)\n  %402 = lshr i64 %398, 4\n; # (let (Lo (add (mul (val (dig A)) B) (val (dig P))) Hi (+ @@@ @@))...\n; # (dig A)\n  %403 = add i64 %397, -4\n; # (val (dig A))\n  %404 = inttoptr i64 %403 to i64*\n  %405 = load i64, i64* %404\n; # (mul (val (dig A)) B)\n  %406 = zext i64 %405 to i128\n  %407 = zext i64 %402 to i128\n  %408 = mul i128 %406, %407\n  %409 = lshr i128 %408, 64\n  %410 = trunc i128 %409 to i64\n  %411 = trunc i128 %408 to i64\n; # (dig P)\n  %412 = add i64 %399, -4\n; # (val (dig P))\n  %413 = inttoptr i64 %412 to i64*\n  %414 = load i64, i64* %413\n; # (add (mul (val (dig A)) B) (val (dig P)))\n  %415 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %411, i64 %414)\n  %416 = extractvalue {i64, i1} %415, 1\n  %417 = extractvalue {i64, i1} %415, 0\n; # (+ @@@ @@)\n  %418 = zext i1 %416 to i64\n  %419 = add i64 %410, %418\n; # (loop (set (dig P) Lo) (setq P (if (cnt? (val (big P))) (set (big...\n  br label %$41\n$41:\n  %420 = phi i64 [%397, %$40], [%460, %$45] ; # A\n  %421 = phi i64 [%402, %$40], [%461, %$45] ; # B\n  %422 = phi i64 [%399, %$40], [%462, %$45] ; # P\n  %423 = phi i64 [%400, %$40], [%463, %$45] ; # R\n  %424 = phi i64 [%417, %$40], [%485, %$45] ; # Lo\n  %425 = phi i64 [%419, %$40], [%487, %$45] ; # Hi\n; # (set (dig P) Lo)\n; # (dig P)\n  %426 = add i64 %422, -4\n  %427 = inttoptr i64 %426 to i64*\n  store i64 %424, i64* %427\n; # (if (cnt? (val (big P))) (set (big P) (boxNum 0)) @)\n; # (big P)\n  %428 = add i64 %422, 4\n; # (val (big P))\n  %429 = inttoptr i64 %428 to i64*\n  %430 = load i64, i64* %429\n; # (cnt? (val (big P)))\n  %431 = and i64 %430, 2\n  %432 = icmp ne i64 %431, 0\n  br i1 %432, label %$42, label %$43\n$42:\n  %433 = phi i64 [%420, %$41] ; # A\n  %434 = phi i64 [%421, %$41] ; # B\n  %435 = phi i64 [%422, %$41] ; # P\n  %436 = phi i64 [%423, %$41] ; # R\n  %437 = phi i64 [%424, %$41] ; # Lo\n  %438 = phi i64 [%425, %$41] ; # Hi\n; # (set (big P) (boxNum 0))\n; # (big P)\n  %439 = add i64 %435, 4\n; # (boxNum 0)\n  %440 = call i64 @boxNum(i64 0)\n  %441 = inttoptr i64 %439 to i64*\n  store i64 %440, i64* %441\n  br label %$44\n$43:\n  %442 = phi i64 [%420, %$41] ; # A\n  %443 = phi i64 [%421, %$41] ; # B\n  %444 = phi i64 [%422, %$41] ; # P\n  %445 = phi i64 [%423, %$41] ; # R\n  %446 = phi i64 [%424, %$41] ; # Lo\n  %447 = phi i64 [%425, %$41] ; # Hi\n  br label %$44\n$44:\n  %448 = phi i64 [%433, %$42], [%442, %$43] ; # A\n  %449 = phi i64 [%434, %$42], [%443, %$43] ; # B\n  %450 = phi i64 [%435, %$42], [%444, %$43] ; # P\n  %451 = phi i64 [%436, %$42], [%445, %$43] ; # R\n  %452 = phi i64 [%437, %$42], [%446, %$43] ; # Lo\n  %453 = phi i64 [%438, %$42], [%447, %$43] ; # Hi\n  %454 = phi i64 [%440, %$42], [%430, %$43] ; # ->\n; # (? (cnt? (setq A (val (big A)))))\n; # (big A)\n  %455 = add i64 %448, 4\n; # (val (big A))\n  %456 = inttoptr i64 %455 to i64*\n  %457 = load i64, i64* %456\n; # (cnt? (setq A (val (big A))))\n  %458 = and i64 %457, 2\n  %459 = icmp ne i64 %458, 0\n  br i1 %459, label %$46, label %$45\n$45:\n  %460 = phi i64 [%457, %$44] ; # A\n  %461 = phi i64 [%449, %$44] ; # B\n  %462 = phi i64 [%454, %$44] ; # P\n  %463 = phi i64 [%451, %$44] ; # R\n  %464 = phi i64 [%452, %$44] ; # Lo\n  %465 = phi i64 [%453, %$44] ; # Hi\n; # (dig A)\n  %466 = add i64 %460, -4\n; # (val (dig A))\n  %467 = inttoptr i64 %466 to i64*\n  %468 = load i64, i64* %467\n; # (mulAddHiLo (val (dig A)) B P)\n  %469 = zext i64 %468 to i128\n  %470 = zext i64 %461 to i128\n  %471 = mul i128 %469, %470\n  %472 = lshr i128 %471, 64\n  %473 = trunc i128 %472 to i64\n  %474 = trunc i128 %471 to i64\n  %475 = add i64 %462, -4\n  %476 = inttoptr i64 %475 to i64*\n  %477 = load i64, i64* %476\n  %478 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %474, i64 %477)\n  %479 = extractvalue {i64, i1} %478, 1\n  %480 = extractvalue {i64, i1} %478, 0\n  %481 = zext i1 %479 to i64\n  %482 = add i64 %473, %481\n  %483 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %480, i64 %465)\n  %484 = extractvalue {i64, i1} %483, 1\n  %485 = extractvalue {i64, i1} %483, 0\n  %486 = zext i1 %484 to i64\n  %487 = add i64 %482, %486\n  br label %$41\n$46:\n  %488 = phi i64 [%457, %$44] ; # A\n  %489 = phi i64 [%449, %$44] ; # B\n  %490 = phi i64 [%454, %$44] ; # P\n  %491 = phi i64 [%451, %$44] ; # R\n  %492 = phi i64 [%452, %$44] ; # Lo\n  %493 = phi i64 [%453, %$44] ; # Hi\n  %494 = phi i64 [0, %$44] ; # ->\n; # (int A)\n  %495 = lshr i64 %488, 4\n; # (mulAddHiLo (int A) B P)\n  %496 = zext i64 %495 to i128\n  %497 = zext i64 %489 to i128\n  %498 = mul i128 %496, %497\n  %499 = lshr i128 %498, 64\n  %500 = trunc i128 %499 to i64\n  %501 = trunc i128 %498 to i64\n  %502 = add i64 %490, -4\n  %503 = inttoptr i64 %502 to i64*\n  %504 = load i64, i64* %503\n  %505 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %501, i64 %504)\n  %506 = extractvalue {i64, i1} %505, 1\n  %507 = extractvalue {i64, i1} %505, 0\n  %508 = zext i1 %506 to i64\n  %509 = add i64 %500, %508\n  %510 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %507, i64 %493)\n  %511 = extractvalue {i64, i1} %510, 1\n  %512 = extractvalue {i64, i1} %510, 0\n  %513 = zext i1 %511 to i64\n  %514 = add i64 %509, %513\n; # (set (dig P) Lo)\n; # (dig P)\n  %515 = add i64 %490, -4\n  %516 = inttoptr i64 %515 to i64*\n  store i64 %512, i64* %516\n; # (when Hi (if (cnt? (val (big P))) (set (big P) (boxNum Hi)) (set ...\n  %517 = icmp ne i64 %514, 0\n  br i1 %517, label %$47, label %$48\n$47:\n  %518 = phi i64 [%488, %$46] ; # A\n  %519 = phi i64 [%489, %$46] ; # B\n  %520 = phi i64 [%490, %$46] ; # P\n  %521 = phi i64 [%491, %$46] ; # R\n  %522 = phi i64 [%512, %$46] ; # Lo\n  %523 = phi i64 [%514, %$46] ; # Hi\n; # (if (cnt? (val (big P))) (set (big P) (boxNum Hi)) (set (big @) H...\n; # (big P)\n  %524 = add i64 %520, 4\n; # (val (big P))\n  %525 = inttoptr i64 %524 to i64*\n  %526 = load i64, i64* %525\n; # (cnt? (val (big P)))\n  %527 = and i64 %526, 2\n  %528 = icmp ne i64 %527, 0\n  br i1 %528, label %$49, label %$50\n$49:\n  %529 = phi i64 [%518, %$47] ; # A\n  %530 = phi i64 [%519, %$47] ; # B\n  %531 = phi i64 [%520, %$47] ; # P\n  %532 = phi i64 [%521, %$47] ; # R\n  %533 = phi i64 [%522, %$47] ; # Lo\n  %534 = phi i64 [%523, %$47] ; # Hi\n; # (set (big P) (boxNum Hi))\n; # (big P)\n  %535 = add i64 %531, 4\n; # (boxNum Hi)\n  %536 = call i64 @boxNum(i64 %534)\n  %537 = inttoptr i64 %535 to i64*\n  store i64 %536, i64* %537\n  br label %$51\n$50:\n  %538 = phi i64 [%518, %$47] ; # A\n  %539 = phi i64 [%519, %$47] ; # B\n  %540 = phi i64 [%520, %$47] ; # P\n  %541 = phi i64 [%521, %$47] ; # R\n  %542 = phi i64 [%522, %$47] ; # Lo\n  %543 = phi i64 [%523, %$47] ; # Hi\n; # (set (big @) Hi)\n; # (big @)\n  %544 = add i64 %526, 4\n  %545 = inttoptr i64 %544 to i64*\n  store i64 %543, i64* %545\n  br label %$51\n$51:\n  %546 = phi i64 [%529, %$49], [%538, %$50] ; # A\n  %547 = phi i64 [%530, %$49], [%539, %$50] ; # B\n  %548 = phi i64 [%531, %$49], [%540, %$50] ; # P\n  %549 = phi i64 [%532, %$49], [%541, %$50] ; # R\n  %550 = phi i64 [%533, %$49], [%542, %$50] ; # Lo\n  %551 = phi i64 [%534, %$49], [%543, %$50] ; # Hi\n  %552 = phi i64 [%536, %$49], [%543, %$50] ; # ->\n  br label %$48\n$48:\n  %553 = phi i64 [%488, %$46], [%546, %$51] ; # A\n  %554 = phi i64 [%489, %$46], [%547, %$51] ; # B\n  %555 = phi i64 [%490, %$46], [%548, %$51] ; # P\n  %556 = phi i64 [%491, %$46], [%549, %$51] ; # R\n  %557 = phi i64 [%512, %$46], [%550, %$51] ; # Lo\n  %558 = phi i64 [%514, %$46], [%551, %$51] ; # Hi\n; # (zapZero R)\n  %559 = call i64 @zapZero(i64 %556)\n; # (drop *Safe)\n  %560 = inttoptr i64 %189 to i64*\n  %561 = getelementptr i64, i64* %560, i32 1\n  %562 = load i64, i64* %561\n  %563 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %562, i64* %563\n  br label %$2\n$2:\n  %564 = phi i64 [%3, %$4], [%168, %$9], [%174, %$24], [%553, %$48] ; # A\n  %565 = phi i64 [%4, %$4], [%169, %$9], [%175, %$24], [%554, %$48] ; # B\n  %566 = phi i64 [%3, %$4], [%170, %$9], [%175, %$24], [%559, %$48] ; # ->\n  ret i64 %566\n}\n\ndefine i64 @div1(i64, i64, i1) align 8 {\n$1:\n; # (let (R (save ZERO) P (boxNum (val (dig A))) U (link (push P NIL)...\n; # (save ZERO)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (dig A)\n  %11 = add i64 %0, -4\n; # (val (dig A))\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n; # (boxNum (val (dig A)))\n  %14 = call i64 @boxNum(i64 %13)\n; # (push P NIL)\n  %15 = alloca i64, i64 2, align 16\n  %16 = ptrtoint i64* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %14, i64* %17\n; # (link (push P NIL))\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %19 = load i64, i64* %18\n  %20 = inttoptr i64 %16 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  store i64 %19, i64* %21\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %16, i64* %22\n; # (push B NIL)\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %1, i64* %25\n; # (link (push B NIL))\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = inttoptr i64 %24 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  store i64 %27, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %30\n; # (while (big? (setq A (val (big A)))) (setq P (set (big P) (boxNum...\n  br label %$2\n$2:\n  %31 = phi i64 [%0, %$1], [%47, %$3] ; # A\n  %32 = phi i64 [%1, %$1], [%48, %$3] ; # B\n  %33 = phi i1 [%2, %$1], [%49, %$3] ; # Rem\n  %34 = phi i64 [2, %$1], [%50, %$3] ; # R\n  %35 = phi i64 [%14, %$1], [%62, %$3] ; # P\n  %36 = phi i64 [%16, %$1], [%52, %$3] ; # U\n  %37 = phi i64 [%24, %$1], [%53, %$3] ; # V\n  %38 = phi i64 [0, %$1], [%54, %$3] ; # V2\n  %39 = phi i64 [0, %$1], [%64, %$3] ; # M\n  %40 = phi i64 [1, %$1], [%56, %$3] ; # N\n  %41 = phi i64 [0, %$1], [%57, %$3] ; # D\n; # (big A)\n  %42 = add i64 %31, 4\n; # (val (big A))\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (big? (setq A (val (big A))))\n  %45 = and i64 %44, 4\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$3, label %$4\n$3:\n  %47 = phi i64 [%44, %$2] ; # A\n  %48 = phi i64 [%32, %$2] ; # B\n  %49 = phi i1 [%33, %$2] ; # Rem\n  %50 = phi i64 [%34, %$2] ; # R\n  %51 = phi i64 [%35, %$2] ; # P\n  %52 = phi i64 [%36, %$2] ; # U\n  %53 = phi i64 [%37, %$2] ; # V\n  %54 = phi i64 [%38, %$2] ; # V2\n  %55 = phi i64 [%39, %$2] ; # M\n  %56 = phi i64 [%40, %$2] ; # N\n  %57 = phi i64 [%41, %$2] ; # D\n; # (set (big P) (boxNum (val (dig A))))\n; # (big P)\n  %58 = add i64 %51, 4\n; # (dig A)\n  %59 = add i64 %47, -4\n; # (val (dig A))\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n; # (boxNum (val (dig A)))\n  %62 = call i64 @boxNum(i64 %61)\n  %63 = inttoptr i64 %58 to i64*\n  store i64 %62, i64* %63\n; # (inc 'M)\n  %64 = add i64 %55, 1\n  br label %$2\n$4:\n  %65 = phi i64 [%44, %$2] ; # A\n  %66 = phi i64 [%32, %$2] ; # B\n  %67 = phi i1 [%33, %$2] ; # Rem\n  %68 = phi i64 [%34, %$2] ; # R\n  %69 = phi i64 [%35, %$2] ; # P\n  %70 = phi i64 [%36, %$2] ; # U\n  %71 = phi i64 [%37, %$2] ; # V\n  %72 = phi i64 [%38, %$2] ; # V2\n  %73 = phi i64 [%39, %$2] ; # M\n  %74 = phi i64 [%40, %$2] ; # N\n  %75 = phi i64 [%41, %$2] ; # D\n; # (unless (== A ZERO) (setq P (set (big P) (boxNum (int A)))) (inc ...\n; # (== A ZERO)\n  %76 = icmp eq i64 %65, 2\n  br i1 %76, label %$6, label %$5\n$5:\n  %77 = phi i64 [%65, %$4] ; # A\n  %78 = phi i64 [%66, %$4] ; # B\n  %79 = phi i1 [%67, %$4] ; # Rem\n  %80 = phi i64 [%68, %$4] ; # R\n  %81 = phi i64 [%69, %$4] ; # P\n  %82 = phi i64 [%70, %$4] ; # U\n  %83 = phi i64 [%71, %$4] ; # V\n  %84 = phi i64 [%72, %$4] ; # V2\n  %85 = phi i64 [%73, %$4] ; # M\n  %86 = phi i64 [%74, %$4] ; # N\n  %87 = phi i64 [%75, %$4] ; # D\n; # (set (big P) (boxNum (int A)))\n; # (big P)\n  %88 = add i64 %81, 4\n; # (int A)\n  %89 = lshr i64 %77, 4\n; # (boxNum (int A))\n  %90 = call i64 @boxNum(i64 %89)\n  %91 = inttoptr i64 %88 to i64*\n  store i64 %90, i64* %91\n; # (inc 'M)\n  %92 = add i64 %85, 1\n  br label %$6\n$6:\n  %93 = phi i64 [%65, %$4], [%77, %$5] ; # A\n  %94 = phi i64 [%66, %$4], [%78, %$5] ; # B\n  %95 = phi i1 [%67, %$4], [%79, %$5] ; # Rem\n  %96 = phi i64 [%68, %$4], [%80, %$5] ; # R\n  %97 = phi i64 [%69, %$4], [%90, %$5] ; # P\n  %98 = phi i64 [%70, %$4], [%82, %$5] ; # U\n  %99 = phi i64 [%71, %$4], [%83, %$5] ; # V\n  %100 = phi i64 [%72, %$4], [%84, %$5] ; # V2\n  %101 = phi i64 [%73, %$4], [%92, %$5] ; # M\n  %102 = phi i64 [%74, %$4], [%86, %$5] ; # N\n  %103 = phi i64 [%75, %$4], [%87, %$5] ; # D\n; # (if (cnt? B) (setq Q (set V (boxNum (int B)))) (setq Q (set V (bo...\n; # (cnt? B)\n  %104 = and i64 %94, 2\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$7, label %$8\n$7:\n  %106 = phi i64 [%93, %$6] ; # A\n  %107 = phi i64 [%94, %$6] ; # B\n  %108 = phi i1 [%95, %$6] ; # Rem\n  %109 = phi i64 [%96, %$6] ; # R\n  %110 = phi i64 [%97, %$6] ; # P\n  %111 = phi i64 [%98, %$6] ; # U\n  %112 = phi i64 [%99, %$6] ; # V\n  %113 = phi i64 [%100, %$6] ; # V2\n  %114 = phi i64 [%101, %$6] ; # M\n  %115 = phi i64 [%102, %$6] ; # N\n  %116 = phi i64 [%103, %$6] ; # D\n; # (set V (boxNum (int B)))\n; # (int B)\n  %117 = lshr i64 %107, 4\n; # (boxNum (int B))\n  %118 = call i64 @boxNum(i64 %117)\n  %119 = inttoptr i64 %112 to i64*\n  store i64 %118, i64* %119\n  br label %$9\n$8:\n  %120 = phi i64 [%93, %$6] ; # A\n  %121 = phi i64 [%94, %$6] ; # B\n  %122 = phi i1 [%95, %$6] ; # Rem\n  %123 = phi i64 [%96, %$6] ; # R\n  %124 = phi i64 [%97, %$6] ; # P\n  %125 = phi i64 [%98, %$6] ; # U\n  %126 = phi i64 [%99, %$6] ; # V\n  %127 = phi i64 [%100, %$6] ; # V2\n  %128 = phi i64 [%101, %$6] ; # M\n  %129 = phi i64 [%102, %$6] ; # N\n  %130 = phi i64 [%103, %$6] ; # D\n; # (set V (boxNum (val (dig B))))\n; # (dig B)\n  %131 = add i64 %121, -4\n; # (val (dig B))\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n; # (boxNum (val (dig B)))\n  %134 = call i64 @boxNum(i64 %133)\n  %135 = inttoptr i64 %126 to i64*\n  store i64 %134, i64* %135\n; # (while (big? (setq B (val (big B)))) (setq V2 Q Q (set (big Q) (b...\n  br label %$10\n$10:\n  %136 = phi i64 [%120, %$8], [%153, %$11] ; # A\n  %137 = phi i64 [%121, %$8], [%154, %$11] ; # B\n  %138 = phi i1 [%122, %$8], [%155, %$11] ; # Rem\n  %139 = phi i64 [%123, %$8], [%156, %$11] ; # R\n  %140 = phi i64 [%124, %$8], [%157, %$11] ; # P\n  %141 = phi i64 [%125, %$8], [%158, %$11] ; # U\n  %142 = phi i64 [%126, %$8], [%159, %$11] ; # V\n  %143 = phi i64 [%127, %$8], [%164, %$11] ; # V2\n  %144 = phi i64 [%128, %$8], [%171, %$11] ; # M\n  %145 = phi i64 [%129, %$8], [%172, %$11] ; # N\n  %146 = phi i64 [%130, %$8], [%163, %$11] ; # D\n  %147 = phi i64 [%134, %$8], [%169, %$11] ; # Q\n; # (big B)\n  %148 = add i64 %137, 4\n; # (val (big B))\n  %149 = inttoptr i64 %148 to i64*\n  %150 = load i64, i64* %149\n; # (big? (setq B (val (big B))))\n  %151 = and i64 %150, 4\n  %152 = icmp ne i64 %151, 0\n  br i1 %152, label %$11, label %$12\n$11:\n  %153 = phi i64 [%136, %$10] ; # A\n  %154 = phi i64 [%150, %$10] ; # B\n  %155 = phi i1 [%138, %$10] ; # Rem\n  %156 = phi i64 [%139, %$10] ; # R\n  %157 = phi i64 [%140, %$10] ; # P\n  %158 = phi i64 [%141, %$10] ; # U\n  %159 = phi i64 [%142, %$10] ; # V\n  %160 = phi i64 [%143, %$10] ; # V2\n  %161 = phi i64 [%144, %$10] ; # M\n  %162 = phi i64 [%145, %$10] ; # N\n  %163 = phi i64 [%146, %$10] ; # D\n  %164 = phi i64 [%147, %$10] ; # Q\n; # (set (big Q) (boxNum (val (dig B))))\n; # (big Q)\n  %165 = add i64 %164, 4\n; # (dig B)\n  %166 = add i64 %154, -4\n; # (val (dig B))\n  %167 = inttoptr i64 %166 to i64*\n  %168 = load i64, i64* %167\n; # (boxNum (val (dig B)))\n  %169 = call i64 @boxNum(i64 %168)\n  %170 = inttoptr i64 %165 to i64*\n  store i64 %169, i64* %170\n; # (dec 'M)\n  %171 = sub i64 %161, 1\n; # (inc 'N)\n  %172 = add i64 %162, 1\n  br label %$10\n$12:\n  %173 = phi i64 [%136, %$10] ; # A\n  %174 = phi i64 [%150, %$10] ; # B\n  %175 = phi i1 [%138, %$10] ; # Rem\n  %176 = phi i64 [%139, %$10] ; # R\n  %177 = phi i64 [%140, %$10] ; # P\n  %178 = phi i64 [%141, %$10] ; # U\n  %179 = phi i64 [%142, %$10] ; # V\n  %180 = phi i64 [%143, %$10] ; # V2\n  %181 = phi i64 [%144, %$10] ; # M\n  %182 = phi i64 [%145, %$10] ; # N\n  %183 = phi i64 [%146, %$10] ; # D\n  %184 = phi i64 [%147, %$10] ; # Q\n; # (unless (== B ZERO) (setq V2 Q Q (set (big Q) (boxNum (int B)))) ...\n; # (== B ZERO)\n  %185 = icmp eq i64 %174, 2\n  br i1 %185, label %$14, label %$13\n$13:\n  %186 = phi i64 [%173, %$12] ; # A\n  %187 = phi i64 [%174, %$12] ; # B\n  %188 = phi i1 [%175, %$12] ; # Rem\n  %189 = phi i64 [%176, %$12] ; # R\n  %190 = phi i64 [%177, %$12] ; # P\n  %191 = phi i64 [%178, %$12] ; # U\n  %192 = phi i64 [%179, %$12] ; # V\n  %193 = phi i64 [%180, %$12] ; # V2\n  %194 = phi i64 [%181, %$12] ; # M\n  %195 = phi i64 [%182, %$12] ; # N\n  %196 = phi i64 [%183, %$12] ; # D\n  %197 = phi i64 [%184, %$12] ; # Q\n; # (set (big Q) (boxNum (int B)))\n; # (big Q)\n  %198 = add i64 %197, 4\n; # (int B)\n  %199 = lshr i64 %187, 4\n; # (boxNum (int B))\n  %200 = call i64 @boxNum(i64 %199)\n  %201 = inttoptr i64 %198 to i64*\n  store i64 %200, i64* %201\n; # (dec 'M)\n  %202 = sub i64 %194, 1\n; # (inc 'N)\n  %203 = add i64 %195, 1\n  br label %$14\n$14:\n  %204 = phi i64 [%173, %$12], [%186, %$13] ; # A\n  %205 = phi i64 [%174, %$12], [%187, %$13] ; # B\n  %206 = phi i1 [%175, %$12], [%188, %$13] ; # Rem\n  %207 = phi i64 [%176, %$12], [%189, %$13] ; # R\n  %208 = phi i64 [%177, %$12], [%190, %$13] ; # P\n  %209 = phi i64 [%178, %$12], [%191, %$13] ; # U\n  %210 = phi i64 [%179, %$12], [%192, %$13] ; # V\n  %211 = phi i64 [%180, %$12], [%197, %$13] ; # V2\n  %212 = phi i64 [%181, %$12], [%202, %$13] ; # M\n  %213 = phi i64 [%182, %$12], [%203, %$13] ; # N\n  %214 = phi i64 [%183, %$12], [%196, %$13] ; # D\n  %215 = phi i64 [%184, %$12], [%200, %$13] ; # Q\n; # (when (lt0 M) (ret (if Rem (zapZero (val U)) ZERO)))\n; # (lt0 M)\n  %216 = icmp slt i64 %212, 0\n  br i1 %216, label %$15, label %$16\n$15:\n  %217 = phi i64 [%204, %$14] ; # A\n  %218 = phi i64 [%205, %$14] ; # B\n  %219 = phi i1 [%206, %$14] ; # Rem\n  %220 = phi i64 [%207, %$14] ; # R\n  %221 = phi i64 [%208, %$14] ; # P\n  %222 = phi i64 [%209, %$14] ; # U\n  %223 = phi i64 [%210, %$14] ; # V\n  %224 = phi i64 [%211, %$14] ; # V2\n  %225 = phi i64 [%212, %$14] ; # M\n  %226 = phi i64 [%213, %$14] ; # N\n  %227 = phi i64 [%214, %$14] ; # D\n  %228 = phi i64 [%215, %$14] ; # Q\n; # (if Rem (zapZero (val U)) ZERO)\n  br i1 %219, label %$17, label %$18\n$17:\n  %229 = phi i64 [%217, %$15] ; # A\n  %230 = phi i64 [%218, %$15] ; # B\n  %231 = phi i1 [%219, %$15] ; # Rem\n  %232 = phi i64 [%220, %$15] ; # R\n  %233 = phi i64 [%221, %$15] ; # P\n  %234 = phi i64 [%222, %$15] ; # U\n  %235 = phi i64 [%223, %$15] ; # V\n  %236 = phi i64 [%224, %$15] ; # V2\n  %237 = phi i64 [%225, %$15] ; # M\n  %238 = phi i64 [%226, %$15] ; # N\n  %239 = phi i64 [%227, %$15] ; # D\n  %240 = phi i64 [%228, %$15] ; # Q\n; # (val U)\n  %241 = inttoptr i64 %234 to i64*\n  %242 = load i64, i64* %241\n; # (zapZero (val U))\n  %243 = call i64 @zapZero(i64 %242)\n  br label %$19\n$18:\n  %244 = phi i64 [%217, %$15] ; # A\n  %245 = phi i64 [%218, %$15] ; # B\n  %246 = phi i1 [%219, %$15] ; # Rem\n  %247 = phi i64 [%220, %$15] ; # R\n  %248 = phi i64 [%221, %$15] ; # P\n  %249 = phi i64 [%222, %$15] ; # U\n  %250 = phi i64 [%223, %$15] ; # V\n  %251 = phi i64 [%224, %$15] ; # V2\n  %252 = phi i64 [%225, %$15] ; # M\n  %253 = phi i64 [%226, %$15] ; # N\n  %254 = phi i64 [%227, %$15] ; # D\n  %255 = phi i64 [%228, %$15] ; # Q\n  br label %$19\n$19:\n  %256 = phi i64 [%229, %$17], [%244, %$18] ; # A\n  %257 = phi i64 [%230, %$17], [%245, %$18] ; # B\n  %258 = phi i1 [%231, %$17], [%246, %$18] ; # Rem\n  %259 = phi i64 [%232, %$17], [%247, %$18] ; # R\n  %260 = phi i64 [%233, %$17], [%248, %$18] ; # P\n  %261 = phi i64 [%234, %$17], [%249, %$18] ; # U\n  %262 = phi i64 [%235, %$17], [%250, %$18] ; # V\n  %263 = phi i64 [%236, %$17], [%251, %$18] ; # V2\n  %264 = phi i64 [%237, %$17], [%252, %$18] ; # M\n  %265 = phi i64 [%238, %$17], [%253, %$18] ; # N\n  %266 = phi i64 [%239, %$17], [%254, %$18] ; # D\n  %267 = phi i64 [%240, %$17], [%255, %$18] ; # Q\n  %268 = phi i64 [%243, %$17], [2, %$18] ; # ->\n; # (ret (if Rem (zapZero (val U)) ZERO))\n; # (drop *Safe)\n  %269 = inttoptr i64 %6 to i64*\n  %270 = getelementptr i64, i64* %269, i32 1\n  %271 = load i64, i64* %270\n  %272 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %271, i64* %272\n  ret i64 %268\n$16:\n  %273 = phi i64 [%204, %$14] ; # A\n  %274 = phi i64 [%205, %$14] ; # B\n  %275 = phi i1 [%206, %$14] ; # Rem\n  %276 = phi i64 [%207, %$14] ; # R\n  %277 = phi i64 [%208, %$14] ; # P\n  %278 = phi i64 [%209, %$14] ; # U\n  %279 = phi i64 [%210, %$14] ; # V\n  %280 = phi i64 [%211, %$14] ; # V2\n  %281 = phi i64 [%212, %$14] ; # M\n  %282 = phi i64 [%213, %$14] ; # N\n  %283 = phi i64 [%214, %$14] ; # D\n  %284 = phi i64 [%215, %$14] ; # Q\n  br label %$9\n$9:\n  %285 = phi i64 [%106, %$7], [%273, %$16] ; # A\n  %286 = phi i64 [%107, %$7], [%274, %$16] ; # B\n  %287 = phi i1 [%108, %$7], [%275, %$16] ; # Rem\n  %288 = phi i64 [%109, %$7], [%276, %$16] ; # R\n  %289 = phi i64 [%110, %$7], [%277, %$16] ; # P\n  %290 = phi i64 [%111, %$7], [%278, %$16] ; # U\n  %291 = phi i64 [%112, %$7], [%279, %$16] ; # V\n  %292 = phi i64 [%113, %$7], [%280, %$16] ; # V2\n  %293 = phi i64 [%114, %$7], [%281, %$16] ; # M\n  %294 = phi i64 [%115, %$7], [%282, %$16] ; # N\n  %295 = phi i64 [%116, %$7], [%283, %$16] ; # D\n  %296 = phi i64 [%118, %$7], [%284, %$16] ; # Q\n; # (set (big P) (boxNum 0))\n; # (big P)\n  %297 = add i64 %289, 4\n; # (boxNum 0)\n  %298 = call i64 @boxNum(i64 0)\n  %299 = inttoptr i64 %297 to i64*\n  store i64 %298, i64* %299\n; # (while (ge0 (val (dig Q))) (twiceBig (val U)) (twiceBig (val V)) ...\n  br label %$20\n$20:\n  %300 = phi i64 [%285, %$9], [%316, %$21] ; # A\n  %301 = phi i64 [%286, %$9], [%317, %$21] ; # B\n  %302 = phi i1 [%287, %$9], [%318, %$21] ; # Rem\n  %303 = phi i64 [%288, %$9], [%319, %$21] ; # R\n  %304 = phi i64 [%289, %$9], [%320, %$21] ; # P\n  %305 = phi i64 [%290, %$9], [%321, %$21] ; # U\n  %306 = phi i64 [%291, %$9], [%322, %$21] ; # V\n  %307 = phi i64 [%292, %$9], [%323, %$21] ; # V2\n  %308 = phi i64 [%293, %$9], [%324, %$21] ; # M\n  %309 = phi i64 [%294, %$9], [%325, %$21] ; # N\n  %310 = phi i64 [%295, %$9], [%334, %$21] ; # D\n  %311 = phi i64 [%296, %$9], [%327, %$21] ; # Q\n; # (dig Q)\n  %312 = add i64 %311, -4\n; # (val (dig Q))\n  %313 = inttoptr i64 %312 to i64*\n  %314 = load i64, i64* %313\n; # (ge0 (val (dig Q)))\n  %315 = icmp sge i64 %314, 0\n  br i1 %315, label %$21, label %$22\n$21:\n  %316 = phi i64 [%300, %$20] ; # A\n  %317 = phi i64 [%301, %$20] ; # B\n  %318 = phi i1 [%302, %$20] ; # Rem\n  %319 = phi i64 [%303, %$20] ; # R\n  %320 = phi i64 [%304, %$20] ; # P\n  %321 = phi i64 [%305, %$20] ; # U\n  %322 = phi i64 [%306, %$20] ; # V\n  %323 = phi i64 [%307, %$20] ; # V2\n  %324 = phi i64 [%308, %$20] ; # M\n  %325 = phi i64 [%309, %$20] ; # N\n  %326 = phi i64 [%310, %$20] ; # D\n  %327 = phi i64 [%311, %$20] ; # Q\n; # (val U)\n  %328 = inttoptr i64 %321 to i64*\n  %329 = load i64, i64* %328\n; # (twiceBig (val U))\n  %330 = call i64 @twiceBig(i64 %329)\n; # (val V)\n  %331 = inttoptr i64 %322 to i64*\n  %332 = load i64, i64* %331\n; # (twiceBig (val V))\n  %333 = call i64 @twiceBig(i64 %332)\n; # (inc 'D)\n  %334 = add i64 %326, 1\n  br label %$20\n$22:\n  %335 = phi i64 [%300, %$20] ; # A\n  %336 = phi i64 [%301, %$20] ; # B\n  %337 = phi i1 [%302, %$20] ; # Rem\n  %338 = phi i64 [%303, %$20] ; # R\n  %339 = phi i64 [%304, %$20] ; # P\n  %340 = phi i64 [%305, %$20] ; # U\n  %341 = phi i64 [%306, %$20] ; # V\n  %342 = phi i64 [%307, %$20] ; # V2\n  %343 = phi i64 [%308, %$20] ; # M\n  %344 = phi i64 [%309, %$20] ; # N\n  %345 = phi i64 [%310, %$20] ; # D\n  %346 = phi i64 [%311, %$20] ; # Q\n; # (dig Q)\n  %347 = add i64 %346, -4\n; # (val (dig Q))\n  %348 = inttoptr i64 %347 to i64*\n  %349 = load i64, i64* %348\n; # (when V2 (setq V2 (val (dig V2))))\n  %350 = icmp ne i64 %342, 0\n  br i1 %350, label %$23, label %$24\n$23:\n  %351 = phi i64 [%335, %$22] ; # A\n  %352 = phi i64 [%336, %$22] ; # B\n  %353 = phi i1 [%337, %$22] ; # Rem\n  %354 = phi i64 [%338, %$22] ; # R\n  %355 = phi i64 [%339, %$22] ; # P\n  %356 = phi i64 [%340, %$22] ; # U\n  %357 = phi i64 [%341, %$22] ; # V\n  %358 = phi i64 [%349, %$22] ; # V1\n  %359 = phi i64 [%342, %$22] ; # V2\n  %360 = phi i64 [%343, %$22] ; # M\n  %361 = phi i64 [%344, %$22] ; # N\n  %362 = phi i64 [%345, %$22] ; # D\n  %363 = phi i64 [%346, %$22] ; # Q\n; # (dig V2)\n  %364 = add i64 %359, -4\n; # (val (dig V2))\n  %365 = inttoptr i64 %364 to i64*\n  %366 = load i64, i64* %365\n  br label %$24\n$24:\n  %367 = phi i64 [%335, %$22], [%351, %$23] ; # A\n  %368 = phi i64 [%336, %$22], [%352, %$23] ; # B\n  %369 = phi i1 [%337, %$22], [%353, %$23] ; # Rem\n  %370 = phi i64 [%338, %$22], [%354, %$23] ; # R\n  %371 = phi i64 [%339, %$22], [%355, %$23] ; # P\n  %372 = phi i64 [%340, %$22], [%356, %$23] ; # U\n  %373 = phi i64 [%341, %$22], [%357, %$23] ; # V\n  %374 = phi i64 [%349, %$22], [%358, %$23] ; # V1\n  %375 = phi i64 [%342, %$22], [%366, %$23] ; # V2\n  %376 = phi i64 [%343, %$22], [%360, %$23] ; # M\n  %377 = phi i64 [%344, %$22], [%361, %$23] ; # N\n  %378 = phi i64 [%345, %$22], [%362, %$23] ; # D\n  %379 = phi i64 [%346, %$22], [%363, %$23] ; # Q\n; # (loop (let (X (val U) U1 0 U2 0 U3 T) (let I M (while (ge0 (dec '...\n  br label %$25\n$25:\n  %380 = phi i64 [%367, %$24], [%1182, %$56] ; # A\n  %381 = phi i64 [%368, %$24], [%1183, %$56] ; # B\n  %382 = phi i1 [%369, %$24], [%1184, %$56] ; # Rem\n  %383 = phi i64 [%370, %$24], [%1185, %$56] ; # R\n  %384 = phi i64 [%371, %$24], [%1186, %$56] ; # P\n  %385 = phi i64 [%372, %$24], [%1187, %$56] ; # U\n  %386 = phi i64 [%373, %$24], [%1188, %$56] ; # V\n  %387 = phi i64 [%374, %$24], [%1189, %$56] ; # V1\n  %388 = phi i64 [%375, %$24], [%1190, %$56] ; # V2\n  %389 = phi i64 [%376, %$24], [%1191, %$56] ; # M\n  %390 = phi i64 [%377, %$24], [%1192, %$56] ; # N\n  %391 = phi i64 [%378, %$24], [%1193, %$56] ; # D\n  %392 = phi i64 [%379, %$24], [%1194, %$56] ; # Q\n; # (let (X (val U) U1 0 U2 0 U3 T) (let I M (while (ge0 (dec 'I)) (s...\n; # (val U)\n  %393 = inttoptr i64 %385 to i64*\n  %394 = load i64, i64* %393\n; # (let I M (while (ge0 (dec 'I)) (setq X (val (big X)))))\n; # (while (ge0 (dec 'I)) (setq X (val (big X))))\n  br label %$26\n$26:\n  %395 = phi i64 [%380, %$25], [%414, %$27] ; # A\n  %396 = phi i64 [%381, %$25], [%415, %$27] ; # B\n  %397 = phi i1 [%382, %$25], [%416, %$27] ; # Rem\n  %398 = phi i64 [%383, %$25], [%417, %$27] ; # R\n  %399 = phi i64 [%384, %$25], [%418, %$27] ; # P\n  %400 = phi i64 [%385, %$25], [%419, %$27] ; # U\n  %401 = phi i64 [%386, %$25], [%420, %$27] ; # V\n  %402 = phi i64 [%387, %$25], [%421, %$27] ; # V1\n  %403 = phi i64 [%388, %$25], [%422, %$27] ; # V2\n  %404 = phi i64 [%389, %$25], [%423, %$27] ; # M\n  %405 = phi i64 [%390, %$25], [%424, %$27] ; # N\n  %406 = phi i64 [%391, %$25], [%425, %$27] ; # D\n  %407 = phi i64 [%392, %$25], [%426, %$27] ; # Q\n  %408 = phi i64 [%394, %$25], [%433, %$27] ; # X\n  %409 = phi i64 [0, %$25], [%428, %$27] ; # U1\n  %410 = phi i64 [0, %$25], [%429, %$27] ; # U2\n  %411 = phi i64 [%389, %$25], [%430, %$27] ; # I\n; # (dec 'I)\n  %412 = sub i64 %411, 1\n; # (ge0 (dec 'I))\n  %413 = icmp sge i64 %412, 0\n  br i1 %413, label %$27, label %$28\n$27:\n  %414 = phi i64 [%395, %$26] ; # A\n  %415 = phi i64 [%396, %$26] ; # B\n  %416 = phi i1 [%397, %$26] ; # Rem\n  %417 = phi i64 [%398, %$26] ; # R\n  %418 = phi i64 [%399, %$26] ; # P\n  %419 = phi i64 [%400, %$26] ; # U\n  %420 = phi i64 [%401, %$26] ; # V\n  %421 = phi i64 [%402, %$26] ; # V1\n  %422 = phi i64 [%403, %$26] ; # V2\n  %423 = phi i64 [%404, %$26] ; # M\n  %424 = phi i64 [%405, %$26] ; # N\n  %425 = phi i64 [%406, %$26] ; # D\n  %426 = phi i64 [%407, %$26] ; # Q\n  %427 = phi i64 [%408, %$26] ; # X\n  %428 = phi i64 [%409, %$26] ; # U1\n  %429 = phi i64 [%410, %$26] ; # U2\n  %430 = phi i64 [%412, %$26] ; # I\n; # (big X)\n  %431 = add i64 %427, 4\n; # (val (big X))\n  %432 = inttoptr i64 %431 to i64*\n  %433 = load i64, i64* %432\n  br label %$26\n$28:\n  %434 = phi i64 [%395, %$26] ; # A\n  %435 = phi i64 [%396, %$26] ; # B\n  %436 = phi i1 [%397, %$26] ; # Rem\n  %437 = phi i64 [%398, %$26] ; # R\n  %438 = phi i64 [%399, %$26] ; # P\n  %439 = phi i64 [%400, %$26] ; # U\n  %440 = phi i64 [%401, %$26] ; # V\n  %441 = phi i64 [%402, %$26] ; # V1\n  %442 = phi i64 [%403, %$26] ; # V2\n  %443 = phi i64 [%404, %$26] ; # M\n  %444 = phi i64 [%405, %$26] ; # N\n  %445 = phi i64 [%406, %$26] ; # D\n  %446 = phi i64 [%407, %$26] ; # Q\n  %447 = phi i64 [%408, %$26] ; # X\n  %448 = phi i64 [%409, %$26] ; # U1\n  %449 = phi i64 [%410, %$26] ; # U2\n  %450 = phi i64 [%412, %$26] ; # I\n; # (let (I N Y X) (loop (setq U3 U2 U2 U1 U1 (val (dig Y)) Y (val (b...\n; # (loop (setq U3 U2 U2 U1 U1 (val (dig Y)) Y (val (big Y))) (? (lt0...\n  br label %$29\n$29:\n  %451 = phi i64 [%434, %$28], [%477, %$30] ; # A\n  %452 = phi i64 [%435, %$28], [%478, %$30] ; # B\n  %453 = phi i1 [%436, %$28], [%479, %$30] ; # Rem\n  %454 = phi i64 [%437, %$28], [%480, %$30] ; # R\n  %455 = phi i64 [%438, %$28], [%481, %$30] ; # P\n  %456 = phi i64 [%439, %$28], [%482, %$30] ; # U\n  %457 = phi i64 [%440, %$28], [%483, %$30] ; # V\n  %458 = phi i64 [%441, %$28], [%484, %$30] ; # V1\n  %459 = phi i64 [%442, %$28], [%485, %$30] ; # V2\n  %460 = phi i64 [%443, %$28], [%486, %$30] ; # M\n  %461 = phi i64 [%444, %$28], [%487, %$30] ; # N\n  %462 = phi i64 [%445, %$28], [%488, %$30] ; # D\n  %463 = phi i64 [%446, %$28], [%489, %$30] ; # Q\n  %464 = phi i64 [%447, %$28], [%490, %$30] ; # X\n  %465 = phi i64 [%448, %$28], [%491, %$30] ; # U1\n  %466 = phi i64 [%449, %$28], [%492, %$30] ; # U2\n  %467 = phi i64 [%444, %$28], [%494, %$30] ; # I\n  %468 = phi i64 [%447, %$28], [%495, %$30] ; # Y\n; # (dig Y)\n  %469 = add i64 %468, -4\n; # (val (dig Y))\n  %470 = inttoptr i64 %469 to i64*\n  %471 = load i64, i64* %470\n; # (big Y)\n  %472 = add i64 %468, 4\n; # (val (big Y))\n  %473 = inttoptr i64 %472 to i64*\n  %474 = load i64, i64* %473\n; # (? (lt0 (dec 'I)))\n; # (dec 'I)\n  %475 = sub i64 %467, 1\n; # (lt0 (dec 'I))\n  %476 = icmp slt i64 %475, 0\n  br i1 %476, label %$31, label %$30\n$30:\n  %477 = phi i64 [%451, %$29] ; # A\n  %478 = phi i64 [%452, %$29] ; # B\n  %479 = phi i1 [%453, %$29] ; # Rem\n  %480 = phi i64 [%454, %$29] ; # R\n  %481 = phi i64 [%455, %$29] ; # P\n  %482 = phi i64 [%456, %$29] ; # U\n  %483 = phi i64 [%457, %$29] ; # V\n  %484 = phi i64 [%458, %$29] ; # V1\n  %485 = phi i64 [%459, %$29] ; # V2\n  %486 = phi i64 [%460, %$29] ; # M\n  %487 = phi i64 [%461, %$29] ; # N\n  %488 = phi i64 [%462, %$29] ; # D\n  %489 = phi i64 [%463, %$29] ; # Q\n  %490 = phi i64 [%464, %$29] ; # X\n  %491 = phi i64 [%471, %$29] ; # U1\n  %492 = phi i64 [%465, %$29] ; # U2\n  %493 = phi i64 [%466, %$29] ; # U3\n  %494 = phi i64 [%475, %$29] ; # I\n  %495 = phi i64 [%474, %$29] ; # Y\n  br label %$29\n$31:\n  %496 = phi i64 [%451, %$29] ; # A\n  %497 = phi i64 [%452, %$29] ; # B\n  %498 = phi i1 [%453, %$29] ; # Rem\n  %499 = phi i64 [%454, %$29] ; # R\n  %500 = phi i64 [%455, %$29] ; # P\n  %501 = phi i64 [%456, %$29] ; # U\n  %502 = phi i64 [%457, %$29] ; # V\n  %503 = phi i64 [%458, %$29] ; # V1\n  %504 = phi i64 [%459, %$29] ; # V2\n  %505 = phi i64 [%460, %$29] ; # M\n  %506 = phi i64 [%461, %$29] ; # N\n  %507 = phi i64 [%462, %$29] ; # D\n  %508 = phi i64 [%463, %$29] ; # Q\n  %509 = phi i64 [%464, %$29] ; # X\n  %510 = phi i64 [%471, %$29] ; # U1\n  %511 = phi i64 [%465, %$29] ; # U2\n  %512 = phi i64 [%466, %$29] ; # U3\n  %513 = phi i64 [%475, %$29] ; # I\n  %514 = phi i64 [%474, %$29] ; # Y\n  %515 = phi i64 [0, %$29] ; # ->\n; # (let (Hi U1 Lo U2) (setq Q (if (== U1 V1) -1 (div Hi Lo V1))) (se...\n; # (if (== U1 V1) -1 (div Hi Lo V1))\n; # (== U1 V1)\n  %516 = icmp eq i64 %510, %503\n  br i1 %516, label %$32, label %$33\n$32:\n  %517 = phi i64 [%496, %$31] ; # A\n  %518 = phi i64 [%497, %$31] ; # B\n  %519 = phi i1 [%498, %$31] ; # Rem\n  %520 = phi i64 [%499, %$31] ; # R\n  %521 = phi i64 [%500, %$31] ; # P\n  %522 = phi i64 [%501, %$31] ; # U\n  %523 = phi i64 [%502, %$31] ; # V\n  %524 = phi i64 [%503, %$31] ; # V1\n  %525 = phi i64 [%504, %$31] ; # V2\n  %526 = phi i64 [%505, %$31] ; # M\n  %527 = phi i64 [%506, %$31] ; # N\n  %528 = phi i64 [%507, %$31] ; # D\n  %529 = phi i64 [%508, %$31] ; # Q\n  %530 = phi i64 [%509, %$31] ; # X\n  %531 = phi i64 [%510, %$31] ; # U1\n  %532 = phi i64 [%511, %$31] ; # U2\n  %533 = phi i64 [%512, %$31] ; # U3\n  %534 = phi i64 [%510, %$31] ; # Hi\n  %535 = phi i64 [%511, %$31] ; # Lo\n  br label %$34\n$33:\n  %536 = phi i64 [%496, %$31] ; # A\n  %537 = phi i64 [%497, %$31] ; # B\n  %538 = phi i1 [%498, %$31] ; # Rem\n  %539 = phi i64 [%499, %$31] ; # R\n  %540 = phi i64 [%500, %$31] ; # P\n  %541 = phi i64 [%501, %$31] ; # U\n  %542 = phi i64 [%502, %$31] ; # V\n  %543 = phi i64 [%503, %$31] ; # V1\n  %544 = phi i64 [%504, %$31] ; # V2\n  %545 = phi i64 [%505, %$31] ; # M\n  %546 = phi i64 [%506, %$31] ; # N\n  %547 = phi i64 [%507, %$31] ; # D\n  %548 = phi i64 [%508, %$31] ; # Q\n  %549 = phi i64 [%509, %$31] ; # X\n  %550 = phi i64 [%510, %$31] ; # U1\n  %551 = phi i64 [%511, %$31] ; # U2\n  %552 = phi i64 [%512, %$31] ; # U3\n  %553 = phi i64 [%510, %$31] ; # Hi\n  %554 = phi i64 [%511, %$31] ; # Lo\n; # (div Hi Lo V1)\n  %555 = zext i64 %553 to i128\n  %556 = shl i128 %555, 64\n  %557 = zext i64 %554 to i128\n  %558 = or i128 %556, %557\n  %559 = zext i64 %543 to i128\n  %560 = urem i128 %558, %559\n  %561 = trunc i128 %560 to i64\n  %562 = udiv i128 %558, %559\n  %563 = trunc i128 %562 to i64\n  br label %$34\n$34:\n  %564 = phi i64 [%517, %$32], [%536, %$33] ; # A\n  %565 = phi i64 [%518, %$32], [%537, %$33] ; # B\n  %566 = phi i1 [%519, %$32], [%538, %$33] ; # Rem\n  %567 = phi i64 [%520, %$32], [%539, %$33] ; # R\n  %568 = phi i64 [%521, %$32], [%540, %$33] ; # P\n  %569 = phi i64 [%522, %$32], [%541, %$33] ; # U\n  %570 = phi i64 [%523, %$32], [%542, %$33] ; # V\n  %571 = phi i64 [%524, %$32], [%543, %$33] ; # V1\n  %572 = phi i64 [%525, %$32], [%544, %$33] ; # V2\n  %573 = phi i64 [%526, %$32], [%545, %$33] ; # M\n  %574 = phi i64 [%527, %$32], [%546, %$33] ; # N\n  %575 = phi i64 [%528, %$32], [%547, %$33] ; # D\n  %576 = phi i64 [%529, %$32], [%548, %$33] ; # Q\n  %577 = phi i64 [%530, %$32], [%549, %$33] ; # X\n  %578 = phi i64 [%531, %$32], [%550, %$33] ; # U1\n  %579 = phi i64 [%532, %$32], [%551, %$33] ; # U2\n  %580 = phi i64 [%533, %$32], [%552, %$33] ; # U3\n  %581 = phi i64 [%534, %$32], [%553, %$33] ; # Hi\n  %582 = phi i64 [%535, %$32], [%554, %$33] ; # Lo\n  %583 = phi i64 [-1, %$32], [%563, %$33] ; # ->\n; # (mul Q V1)\n  %584 = zext i64 %583 to i128\n  %585 = zext i64 %571 to i128\n  %586 = mul i128 %584, %585\n  %587 = lshr i128 %586, 64\n  %588 = trunc i128 %587 to i64\n  %589 = trunc i128 %586 to i64\n; # (sub Lo (mul Q V1))\n  %590 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %582, i64 %589)\n  %591 = extractvalue {i64, i1} %590, 1\n  %592 = extractvalue {i64, i1} %590, 0\n; # (sub Hi @@@ @@)\n  %593 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %581, i64 %588)\n  %594 = extractvalue {i64, i1} %593, 1\n  %595 = extractvalue {i64, i1} %593, 0\n  %596 = zext i1 %591 to i64\n  %597 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %595, i64 %596)\n  %598 = extractvalue {i64, i1} %597, 1\n  %599 = or i1 %594, %598\n  %600 = extractvalue {i64, i1} %597, 0\n; # (until Hi (let L (mul Q V2) (? (> Lo @@@)) (? (and (== Lo @@@) (>...\n  br label %$35\n$35:\n  %601 = phi i64 [%564, %$34], [%710, %$41] ; # A\n  %602 = phi i64 [%565, %$34], [%711, %$41] ; # B\n  %603 = phi i1 [%566, %$34], [%712, %$41] ; # Rem\n  %604 = phi i64 [%567, %$34], [%713, %$41] ; # R\n  %605 = phi i64 [%568, %$34], [%714, %$41] ; # P\n  %606 = phi i64 [%569, %$34], [%715, %$41] ; # U\n  %607 = phi i64 [%570, %$34], [%716, %$41] ; # V\n  %608 = phi i64 [%571, %$34], [%717, %$41] ; # V1\n  %609 = phi i64 [%572, %$34], [%718, %$41] ; # V2\n  %610 = phi i64 [%573, %$34], [%719, %$41] ; # M\n  %611 = phi i64 [%574, %$34], [%720, %$41] ; # N\n  %612 = phi i64 [%575, %$34], [%721, %$41] ; # D\n  %613 = phi i64 [%583, %$34], [%730, %$41] ; # Q\n  %614 = phi i64 [%577, %$34], [%723, %$41] ; # X\n  %615 = phi i64 [%578, %$34], [%724, %$41] ; # U1\n  %616 = phi i64 [%579, %$34], [%725, %$41] ; # U2\n  %617 = phi i64 [%580, %$34], [%726, %$41] ; # U3\n  %618 = phi i64 [%600, %$34], [%735, %$41] ; # Hi\n  %619 = phi i64 [%592, %$34], [%733, %$41] ; # Lo\n  %620 = icmp ne i64 %618, 0\n  br i1 %620, label %$37, label %$36\n$36:\n  %621 = phi i64 [%601, %$35] ; # A\n  %622 = phi i64 [%602, %$35] ; # B\n  %623 = phi i1 [%603, %$35] ; # Rem\n  %624 = phi i64 [%604, %$35] ; # R\n  %625 = phi i64 [%605, %$35] ; # P\n  %626 = phi i64 [%606, %$35] ; # U\n  %627 = phi i64 [%607, %$35] ; # V\n  %628 = phi i64 [%608, %$35] ; # V1\n  %629 = phi i64 [%609, %$35] ; # V2\n  %630 = phi i64 [%610, %$35] ; # M\n  %631 = phi i64 [%611, %$35] ; # N\n  %632 = phi i64 [%612, %$35] ; # D\n  %633 = phi i64 [%613, %$35] ; # Q\n  %634 = phi i64 [%614, %$35] ; # X\n  %635 = phi i64 [%615, %$35] ; # U1\n  %636 = phi i64 [%616, %$35] ; # U2\n  %637 = phi i64 [%617, %$35] ; # U3\n  %638 = phi i64 [%618, %$35] ; # Hi\n  %639 = phi i64 [%619, %$35] ; # Lo\n; # (let L (mul Q V2) (? (> Lo @@@)) (? (and (== Lo @@@) (>= U3 L))))...\n; # (mul Q V2)\n  %640 = zext i64 %633 to i128\n  %641 = zext i64 %629 to i128\n  %642 = mul i128 %640, %641\n  %643 = lshr i128 %642, 64\n  %644 = trunc i128 %643 to i64\n  %645 = trunc i128 %642 to i64\n; # (? (> Lo @@@))\n; # (> Lo @@@)\n  %646 = icmp ugt i64 %639, %644\n  br i1 %646, label %$37, label %$38\n$38:\n  %647 = phi i64 [%621, %$36] ; # A\n  %648 = phi i64 [%622, %$36] ; # B\n  %649 = phi i1 [%623, %$36] ; # Rem\n  %650 = phi i64 [%624, %$36] ; # R\n  %651 = phi i64 [%625, %$36] ; # P\n  %652 = phi i64 [%626, %$36] ; # U\n  %653 = phi i64 [%627, %$36] ; # V\n  %654 = phi i64 [%628, %$36] ; # V1\n  %655 = phi i64 [%629, %$36] ; # V2\n  %656 = phi i64 [%630, %$36] ; # M\n  %657 = phi i64 [%631, %$36] ; # N\n  %658 = phi i64 [%632, %$36] ; # D\n  %659 = phi i64 [%633, %$36] ; # Q\n  %660 = phi i64 [%634, %$36] ; # X\n  %661 = phi i64 [%635, %$36] ; # U1\n  %662 = phi i64 [%636, %$36] ; # U2\n  %663 = phi i64 [%637, %$36] ; # U3\n  %664 = phi i64 [%638, %$36] ; # Hi\n  %665 = phi i64 [%639, %$36] ; # Lo\n  %666 = phi i64 [%645, %$36] ; # L\n; # (? (and (== Lo @@@) (>= U3 L)))\n; # (and (== Lo @@@) (>= U3 L))\n; # (== Lo @@@)\n  %667 = icmp eq i64 %665, %644\n  br i1 %667, label %$40, label %$39\n$40:\n  %668 = phi i64 [%647, %$38] ; # A\n  %669 = phi i64 [%648, %$38] ; # B\n  %670 = phi i1 [%649, %$38] ; # Rem\n  %671 = phi i64 [%650, %$38] ; # R\n  %672 = phi i64 [%651, %$38] ; # P\n  %673 = phi i64 [%652, %$38] ; # U\n  %674 = phi i64 [%653, %$38] ; # V\n  %675 = phi i64 [%654, %$38] ; # V1\n  %676 = phi i64 [%655, %$38] ; # V2\n  %677 = phi i64 [%656, %$38] ; # M\n  %678 = phi i64 [%657, %$38] ; # N\n  %679 = phi i64 [%658, %$38] ; # D\n  %680 = phi i64 [%659, %$38] ; # Q\n  %681 = phi i64 [%660, %$38] ; # X\n  %682 = phi i64 [%661, %$38] ; # U1\n  %683 = phi i64 [%662, %$38] ; # U2\n  %684 = phi i64 [%663, %$38] ; # U3\n  %685 = phi i64 [%664, %$38] ; # Hi\n  %686 = phi i64 [%665, %$38] ; # Lo\n  %687 = phi i64 [%666, %$38] ; # L\n; # (>= U3 L)\n  %688 = icmp uge i64 %684, %687\n  br label %$39\n$39:\n  %689 = phi i64 [%647, %$38], [%668, %$40] ; # A\n  %690 = phi i64 [%648, %$38], [%669, %$40] ; # B\n  %691 = phi i1 [%649, %$38], [%670, %$40] ; # Rem\n  %692 = phi i64 [%650, %$38], [%671, %$40] ; # R\n  %693 = phi i64 [%651, %$38], [%672, %$40] ; # P\n  %694 = phi i64 [%652, %$38], [%673, %$40] ; # U\n  %695 = phi i64 [%653, %$38], [%674, %$40] ; # V\n  %696 = phi i64 [%654, %$38], [%675, %$40] ; # V1\n  %697 = phi i64 [%655, %$38], [%676, %$40] ; # V2\n  %698 = phi i64 [%656, %$38], [%677, %$40] ; # M\n  %699 = phi i64 [%657, %$38], [%678, %$40] ; # N\n  %700 = phi i64 [%658, %$38], [%679, %$40] ; # D\n  %701 = phi i64 [%659, %$38], [%680, %$40] ; # Q\n  %702 = phi i64 [%660, %$38], [%681, %$40] ; # X\n  %703 = phi i64 [%661, %$38], [%682, %$40] ; # U1\n  %704 = phi i64 [%662, %$38], [%683, %$40] ; # U2\n  %705 = phi i64 [%663, %$38], [%684, %$40] ; # U3\n  %706 = phi i64 [%664, %$38], [%685, %$40] ; # Hi\n  %707 = phi i64 [%665, %$38], [%686, %$40] ; # Lo\n  %708 = phi i64 [%666, %$38], [%687, %$40] ; # L\n  %709 = phi i1 [0, %$38], [%688, %$40] ; # ->\n  br i1 %709, label %$37, label %$41\n$41:\n  %710 = phi i64 [%689, %$39] ; # A\n  %711 = phi i64 [%690, %$39] ; # B\n  %712 = phi i1 [%691, %$39] ; # Rem\n  %713 = phi i64 [%692, %$39] ; # R\n  %714 = phi i64 [%693, %$39] ; # P\n  %715 = phi i64 [%694, %$39] ; # U\n  %716 = phi i64 [%695, %$39] ; # V\n  %717 = phi i64 [%696, %$39] ; # V1\n  %718 = phi i64 [%697, %$39] ; # V2\n  %719 = phi i64 [%698, %$39] ; # M\n  %720 = phi i64 [%699, %$39] ; # N\n  %721 = phi i64 [%700, %$39] ; # D\n  %722 = phi i64 [%701, %$39] ; # Q\n  %723 = phi i64 [%702, %$39] ; # X\n  %724 = phi i64 [%703, %$39] ; # U1\n  %725 = phi i64 [%704, %$39] ; # U2\n  %726 = phi i64 [%705, %$39] ; # U3\n  %727 = phi i64 [%706, %$39] ; # Hi\n  %728 = phi i64 [%707, %$39] ; # Lo\n  %729 = phi i64 [%708, %$39] ; # L\n; # (dec 'Q)\n  %730 = sub i64 %722, 1\n; # (add Lo V1)\n  %731 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %728, i64 %717)\n  %732 = extractvalue {i64, i1} %731, 1\n  %733 = extractvalue {i64, i1} %731, 0\n; # (+ Hi @@)\n  %734 = zext i1 %732 to i64\n  %735 = add i64 %727, %734\n  br label %$35\n$37:\n  %736 = phi i64 [%601, %$35], [%621, %$36], [%689, %$39] ; # A\n  %737 = phi i64 [%602, %$35], [%622, %$36], [%690, %$39] ; # B\n  %738 = phi i1 [%603, %$35], [%623, %$36], [%691, %$39] ; # Rem\n  %739 = phi i64 [%604, %$35], [%624, %$36], [%692, %$39] ; # R\n  %740 = phi i64 [%605, %$35], [%625, %$36], [%693, %$39] ; # P\n  %741 = phi i64 [%606, %$35], [%626, %$36], [%694, %$39] ; # U\n  %742 = phi i64 [%607, %$35], [%627, %$36], [%695, %$39] ; # V\n  %743 = phi i64 [%608, %$35], [%628, %$36], [%696, %$39] ; # V1\n  %744 = phi i64 [%609, %$35], [%629, %$36], [%697, %$39] ; # V2\n  %745 = phi i64 [%610, %$35], [%630, %$36], [%698, %$39] ; # M\n  %746 = phi i64 [%611, %$35], [%631, %$36], [%699, %$39] ; # N\n  %747 = phi i64 [%612, %$35], [%632, %$36], [%700, %$39] ; # D\n  %748 = phi i64 [%613, %$35], [%633, %$36], [%701, %$39] ; # Q\n  %749 = phi i64 [%614, %$35], [%634, %$36], [%702, %$39] ; # X\n  %750 = phi i64 [%615, %$35], [%635, %$36], [%703, %$39] ; # U1\n  %751 = phi i64 [%616, %$35], [%636, %$36], [%704, %$39] ; # U2\n  %752 = phi i64 [%617, %$35], [%637, %$36], [%705, %$39] ; # U3\n  %753 = phi i64 [%618, %$35], [%638, %$36], [%706, %$39] ; # Hi\n  %754 = phi i64 [%619, %$35], [%639, %$36], [%707, %$39] ; # Lo\n; # (let (Z X Y (val V)) (set (dig Z) (sub (val (dig Z)) (mul Q (val ...\n; # (val V)\n  %755 = inttoptr i64 %742 to i64*\n  %756 = load i64, i64* %755\n; # (set (dig Z) (sub (val (dig Z)) (mul Q (val (dig Y)))))\n; # (dig Z)\n  %757 = add i64 %749, -4\n; # (dig Z)\n  %758 = add i64 %749, -4\n; # (val (dig Z))\n  %759 = inttoptr i64 %758 to i64*\n  %760 = load i64, i64* %759\n; # (dig Y)\n  %761 = add i64 %756, -4\n; # (val (dig Y))\n  %762 = inttoptr i64 %761 to i64*\n  %763 = load i64, i64* %762\n; # (mul Q (val (dig Y)))\n  %764 = zext i64 %748 to i128\n  %765 = zext i64 %763 to i128\n  %766 = mul i128 %764, %765\n  %767 = lshr i128 %766, 64\n  %768 = trunc i128 %767 to i64\n  %769 = trunc i128 %766 to i64\n; # (sub (val (dig Z)) (mul Q (val (dig Y))))\n  %770 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %760, i64 %769)\n  %771 = extractvalue {i64, i1} %770, 1\n  %772 = extractvalue {i64, i1} %770, 0\n  %773 = inttoptr i64 %757 to i64*\n  store i64 %772, i64* %773\n; # (+ @@@ @@)\n  %774 = zext i1 %771 to i64\n  %775 = add i64 %768, %774\n; # (while (big? (setq Y (val (big Y)))) (setq Z (val (big Z))) (set ...\n  br label %$42\n$42:\n  %776 = phi i64 [%736, %$37], [%802, %$43] ; # A\n  %777 = phi i64 [%737, %$37], [%803, %$43] ; # B\n  %778 = phi i1 [%738, %$37], [%804, %$43] ; # Rem\n  %779 = phi i64 [%739, %$37], [%805, %$43] ; # R\n  %780 = phi i64 [%740, %$37], [%806, %$43] ; # P\n  %781 = phi i64 [%741, %$37], [%807, %$43] ; # U\n  %782 = phi i64 [%742, %$37], [%808, %$43] ; # V\n  %783 = phi i64 [%743, %$37], [%809, %$43] ; # V1\n  %784 = phi i64 [%744, %$37], [%810, %$43] ; # V2\n  %785 = phi i64 [%745, %$37], [%811, %$43] ; # M\n  %786 = phi i64 [%746, %$37], [%812, %$43] ; # N\n  %787 = phi i64 [%747, %$37], [%813, %$43] ; # D\n  %788 = phi i64 [%748, %$37], [%814, %$43] ; # Q\n  %789 = phi i64 [%749, %$37], [%815, %$43] ; # X\n  %790 = phi i64 [%750, %$37], [%816, %$43] ; # U1\n  %791 = phi i64 [%751, %$37], [%817, %$43] ; # U2\n  %792 = phi i64 [%752, %$37], [%818, %$43] ; # U3\n  %793 = phi i64 [%775, %$37], [%862, %$43] ; # Hi\n  %794 = phi i64 [%754, %$37], [%820, %$43] ; # Lo\n  %795 = phi i64 [%749, %$37], [%825, %$43] ; # Z\n  %796 = phi i64 [%756, %$37], [%822, %$43] ; # Y\n; # (big Y)\n  %797 = add i64 %796, 4\n; # (val (big Y))\n  %798 = inttoptr i64 %797 to i64*\n  %799 = load i64, i64* %798\n; # (big? (setq Y (val (big Y))))\n  %800 = and i64 %799, 4\n  %801 = icmp ne i64 %800, 0\n  br i1 %801, label %$43, label %$44\n$43:\n  %802 = phi i64 [%776, %$42] ; # A\n  %803 = phi i64 [%777, %$42] ; # B\n  %804 = phi i1 [%778, %$42] ; # Rem\n  %805 = phi i64 [%779, %$42] ; # R\n  %806 = phi i64 [%780, %$42] ; # P\n  %807 = phi i64 [%781, %$42] ; # U\n  %808 = phi i64 [%782, %$42] ; # V\n  %809 = phi i64 [%783, %$42] ; # V1\n  %810 = phi i64 [%784, %$42] ; # V2\n  %811 = phi i64 [%785, %$42] ; # M\n  %812 = phi i64 [%786, %$42] ; # N\n  %813 = phi i64 [%787, %$42] ; # D\n  %814 = phi i64 [%788, %$42] ; # Q\n  %815 = phi i64 [%789, %$42] ; # X\n  %816 = phi i64 [%790, %$42] ; # U1\n  %817 = phi i64 [%791, %$42] ; # U2\n  %818 = phi i64 [%792, %$42] ; # U3\n  %819 = phi i64 [%793, %$42] ; # Hi\n  %820 = phi i64 [%794, %$42] ; # Lo\n  %821 = phi i64 [%795, %$42] ; # Z\n  %822 = phi i64 [%799, %$42] ; # Y\n; # (big Z)\n  %823 = add i64 %821, 4\n; # (val (big Z))\n  %824 = inttoptr i64 %823 to i64*\n  %825 = load i64, i64* %824\n; # (set (dig Z) (sub (val (dig Z)) Hi))\n; # (dig Z)\n  %826 = add i64 %825, -4\n; # (dig Z)\n  %827 = add i64 %825, -4\n; # (val (dig Z))\n  %828 = inttoptr i64 %827 to i64*\n  %829 = load i64, i64* %828\n; # (sub (val (dig Z)) Hi)\n  %830 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %829, i64 %819)\n  %831 = extractvalue {i64, i1} %830, 1\n  %832 = extractvalue {i64, i1} %830, 0\n  %833 = inttoptr i64 %826 to i64*\n  store i64 %832, i64* %833\n; # (- Hi Hi @@)\n  %834 = sub i64 %819, %819\n  %835 = zext i1 %831 to i64\n  %836 = sub i64 %834, %835\n; # (set (dig Z) (sub (val (dig Z)) (mul Q (val (dig Y)))))\n; # (dig Z)\n  %837 = add i64 %825, -4\n; # (dig Z)\n  %838 = add i64 %825, -4\n; # (val (dig Z))\n  %839 = inttoptr i64 %838 to i64*\n  %840 = load i64, i64* %839\n; # (dig Y)\n  %841 = add i64 %822, -4\n; # (val (dig Y))\n  %842 = inttoptr i64 %841 to i64*\n  %843 = load i64, i64* %842\n; # (mul Q (val (dig Y)))\n  %844 = zext i64 %814 to i128\n  %845 = zext i64 %843 to i128\n  %846 = mul i128 %844, %845\n  %847 = lshr i128 %846, 64\n  %848 = trunc i128 %847 to i64\n  %849 = trunc i128 %846 to i64\n; # (sub (val (dig Z)) (mul Q (val (dig Y))))\n  %850 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %840, i64 %849)\n  %851 = extractvalue {i64, i1} %850, 1\n  %852 = extractvalue {i64, i1} %850, 0\n  %853 = inttoptr i64 %837 to i64*\n  store i64 %852, i64* %853\n; # (sub Hi @@@ @@)\n  %854 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %836, i64 %848)\n  %855 = extractvalue {i64, i1} %854, 1\n  %856 = extractvalue {i64, i1} %854, 0\n  %857 = zext i1 %851 to i64\n  %858 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %856, i64 %857)\n  %859 = extractvalue {i64, i1} %858, 1\n  %860 = or i1 %855, %859\n  %861 = extractvalue {i64, i1} %858, 0\n; # (- (sub Hi @@@ @@))\n  %862 = sub i64 0, %861\n  br label %$42\n$44:\n  %863 = phi i64 [%776, %$42] ; # A\n  %864 = phi i64 [%777, %$42] ; # B\n  %865 = phi i1 [%778, %$42] ; # Rem\n  %866 = phi i64 [%779, %$42] ; # R\n  %867 = phi i64 [%780, %$42] ; # P\n  %868 = phi i64 [%781, %$42] ; # U\n  %869 = phi i64 [%782, %$42] ; # V\n  %870 = phi i64 [%783, %$42] ; # V1\n  %871 = phi i64 [%784, %$42] ; # V2\n  %872 = phi i64 [%785, %$42] ; # M\n  %873 = phi i64 [%786, %$42] ; # N\n  %874 = phi i64 [%787, %$42] ; # D\n  %875 = phi i64 [%788, %$42] ; # Q\n  %876 = phi i64 [%789, %$42] ; # X\n  %877 = phi i64 [%790, %$42] ; # U1\n  %878 = phi i64 [%791, %$42] ; # U2\n  %879 = phi i64 [%792, %$42] ; # U3\n  %880 = phi i64 [%793, %$42] ; # Hi\n  %881 = phi i64 [%794, %$42] ; # Lo\n  %882 = phi i64 [%795, %$42] ; # Z\n  %883 = phi i64 [%799, %$42] ; # Y\n; # (when Hi (setq Z (val (big Z))) (set (dig Z) (sub (val (dig Z)) H...\n  %884 = icmp ne i64 %880, 0\n  br i1 %884, label %$45, label %$46\n$45:\n  %885 = phi i64 [%863, %$44] ; # A\n  %886 = phi i64 [%864, %$44] ; # B\n  %887 = phi i1 [%865, %$44] ; # Rem\n  %888 = phi i64 [%866, %$44] ; # R\n  %889 = phi i64 [%867, %$44] ; # P\n  %890 = phi i64 [%868, %$44] ; # U\n  %891 = phi i64 [%869, %$44] ; # V\n  %892 = phi i64 [%870, %$44] ; # V1\n  %893 = phi i64 [%871, %$44] ; # V2\n  %894 = phi i64 [%872, %$44] ; # M\n  %895 = phi i64 [%873, %$44] ; # N\n  %896 = phi i64 [%874, %$44] ; # D\n  %897 = phi i64 [%875, %$44] ; # Q\n  %898 = phi i64 [%876, %$44] ; # X\n  %899 = phi i64 [%877, %$44] ; # U1\n  %900 = phi i64 [%878, %$44] ; # U2\n  %901 = phi i64 [%879, %$44] ; # U3\n  %902 = phi i64 [%880, %$44] ; # Hi\n  %903 = phi i64 [%881, %$44] ; # Lo\n  %904 = phi i64 [%882, %$44] ; # Z\n  %905 = phi i64 [%883, %$44] ; # Y\n; # (big Z)\n  %906 = add i64 %904, 4\n; # (val (big Z))\n  %907 = inttoptr i64 %906 to i64*\n  %908 = load i64, i64* %907\n; # (set (dig Z) (sub (val (dig Z)) Hi))\n; # (dig Z)\n  %909 = add i64 %908, -4\n; # (dig Z)\n  %910 = add i64 %908, -4\n; # (val (dig Z))\n  %911 = inttoptr i64 %910 to i64*\n  %912 = load i64, i64* %911\n; # (sub (val (dig Z)) Hi)\n  %913 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %912, i64 %902)\n  %914 = extractvalue {i64, i1} %913, 1\n  %915 = extractvalue {i64, i1} %913, 0\n  %916 = inttoptr i64 %909 to i64*\n  store i64 %915, i64* %916\n; # (when @@ (dec 'Q) (when (or Rem M) (setq Y (val V)) (set (dig X) ...\n  br i1 %914, label %$47, label %$48\n$47:\n  %917 = phi i64 [%885, %$45] ; # A\n  %918 = phi i64 [%886, %$45] ; # B\n  %919 = phi i1 [%887, %$45] ; # Rem\n  %920 = phi i64 [%888, %$45] ; # R\n  %921 = phi i64 [%889, %$45] ; # P\n  %922 = phi i64 [%890, %$45] ; # U\n  %923 = phi i64 [%891, %$45] ; # V\n  %924 = phi i64 [%892, %$45] ; # V1\n  %925 = phi i64 [%893, %$45] ; # V2\n  %926 = phi i64 [%894, %$45] ; # M\n  %927 = phi i64 [%895, %$45] ; # N\n  %928 = phi i64 [%896, %$45] ; # D\n  %929 = phi i64 [%897, %$45] ; # Q\n  %930 = phi i64 [%898, %$45] ; # X\n  %931 = phi i64 [%899, %$45] ; # U1\n  %932 = phi i64 [%900, %$45] ; # U2\n  %933 = phi i64 [%901, %$45] ; # U3\n  %934 = phi i64 [%902, %$45] ; # Hi\n  %935 = phi i64 [%903, %$45] ; # Lo\n  %936 = phi i64 [%908, %$45] ; # Z\n  %937 = phi i64 [%905, %$45] ; # Y\n; # (dec 'Q)\n  %938 = sub i64 %929, 1\n; # (when (or Rem M) (setq Y (val V)) (set (dig X) (add (val (dig X))...\n; # (or Rem M)\n  br i1 %919, label %$49, label %$50\n$50:\n  %939 = phi i64 [%917, %$47] ; # A\n  %940 = phi i64 [%918, %$47] ; # B\n  %941 = phi i1 [%919, %$47] ; # Rem\n  %942 = phi i64 [%920, %$47] ; # R\n  %943 = phi i64 [%921, %$47] ; # P\n  %944 = phi i64 [%922, %$47] ; # U\n  %945 = phi i64 [%923, %$47] ; # V\n  %946 = phi i64 [%924, %$47] ; # V1\n  %947 = phi i64 [%925, %$47] ; # V2\n  %948 = phi i64 [%926, %$47] ; # M\n  %949 = phi i64 [%927, %$47] ; # N\n  %950 = phi i64 [%928, %$47] ; # D\n  %951 = phi i64 [%938, %$47] ; # Q\n  %952 = phi i64 [%930, %$47] ; # X\n  %953 = phi i64 [%931, %$47] ; # U1\n  %954 = phi i64 [%932, %$47] ; # U2\n  %955 = phi i64 [%933, %$47] ; # U3\n  %956 = phi i64 [%934, %$47] ; # Hi\n  %957 = phi i64 [%935, %$47] ; # Lo\n  %958 = phi i64 [%936, %$47] ; # Z\n  %959 = phi i64 [%937, %$47] ; # Y\n  %960 = icmp ne i64 %948, 0\n  br label %$49\n$49:\n  %961 = phi i64 [%917, %$47], [%939, %$50] ; # A\n  %962 = phi i64 [%918, %$47], [%940, %$50] ; # B\n  %963 = phi i1 [%919, %$47], [%941, %$50] ; # Rem\n  %964 = phi i64 [%920, %$47], [%942, %$50] ; # R\n  %965 = phi i64 [%921, %$47], [%943, %$50] ; # P\n  %966 = phi i64 [%922, %$47], [%944, %$50] ; # U\n  %967 = phi i64 [%923, %$47], [%945, %$50] ; # V\n  %968 = phi i64 [%924, %$47], [%946, %$50] ; # V1\n  %969 = phi i64 [%925, %$47], [%947, %$50] ; # V2\n  %970 = phi i64 [%926, %$47], [%948, %$50] ; # M\n  %971 = phi i64 [%927, %$47], [%949, %$50] ; # N\n  %972 = phi i64 [%928, %$47], [%950, %$50] ; # D\n  %973 = phi i64 [%938, %$47], [%951, %$50] ; # Q\n  %974 = phi i64 [%930, %$47], [%952, %$50] ; # X\n  %975 = phi i64 [%931, %$47], [%953, %$50] ; # U1\n  %976 = phi i64 [%932, %$47], [%954, %$50] ; # U2\n  %977 = phi i64 [%933, %$47], [%955, %$50] ; # U3\n  %978 = phi i64 [%934, %$47], [%956, %$50] ; # Hi\n  %979 = phi i64 [%935, %$47], [%957, %$50] ; # Lo\n  %980 = phi i64 [%936, %$47], [%958, %$50] ; # Z\n  %981 = phi i64 [%937, %$47], [%959, %$50] ; # Y\n  %982 = phi i1 [1, %$47], [%960, %$50] ; # ->\n  br i1 %982, label %$51, label %$52\n$51:\n  %983 = phi i64 [%961, %$49] ; # A\n  %984 = phi i64 [%962, %$49] ; # B\n  %985 = phi i1 [%963, %$49] ; # Rem\n  %986 = phi i64 [%964, %$49] ; # R\n  %987 = phi i64 [%965, %$49] ; # P\n  %988 = phi i64 [%966, %$49] ; # U\n  %989 = phi i64 [%967, %$49] ; # V\n  %990 = phi i64 [%968, %$49] ; # V1\n  %991 = phi i64 [%969, %$49] ; # V2\n  %992 = phi i64 [%970, %$49] ; # M\n  %993 = phi i64 [%971, %$49] ; # N\n  %994 = phi i64 [%972, %$49] ; # D\n  %995 = phi i64 [%973, %$49] ; # Q\n  %996 = phi i64 [%974, %$49] ; # X\n  %997 = phi i64 [%975, %$49] ; # U1\n  %998 = phi i64 [%976, %$49] ; # U2\n  %999 = phi i64 [%977, %$49] ; # U3\n  %1000 = phi i64 [%978, %$49] ; # Hi\n  %1001 = phi i64 [%979, %$49] ; # Lo\n  %1002 = phi i64 [%980, %$49] ; # Z\n  %1003 = phi i64 [%981, %$49] ; # Y\n; # (val V)\n  %1004 = inttoptr i64 %989 to i64*\n  %1005 = load i64, i64* %1004\n; # (set (dig X) (add (val (dig X)) (val (dig Y))))\n; # (dig X)\n  %1006 = add i64 %996, -4\n; # (dig X)\n  %1007 = add i64 %996, -4\n; # (val (dig X))\n  %1008 = inttoptr i64 %1007 to i64*\n  %1009 = load i64, i64* %1008\n; # (dig Y)\n  %1010 = add i64 %1005, -4\n; # (val (dig Y))\n  %1011 = inttoptr i64 %1010 to i64*\n  %1012 = load i64, i64* %1011\n; # (add (val (dig X)) (val (dig Y)))\n  %1013 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %1009, i64 %1012)\n  %1014 = extractvalue {i64, i1} %1013, 1\n  %1015 = extractvalue {i64, i1} %1013, 0\n  %1016 = inttoptr i64 %1006 to i64*\n  store i64 %1015, i64* %1016\n; # (let C @@ (loop (setq X (val (big X))) (? (cnt? (setq Y (val (big...\n; # (loop (setq X (val (big X))) (? (cnt? (setq Y (val (big Y))))) (s...\n  br label %$53\n$53:\n  %1017 = phi i64 [%983, %$51], [%1047, %$54] ; # A\n  %1018 = phi i64 [%984, %$51], [%1048, %$54] ; # B\n  %1019 = phi i1 [%985, %$51], [%1049, %$54] ; # Rem\n  %1020 = phi i64 [%986, %$51], [%1050, %$54] ; # R\n  %1021 = phi i64 [%987, %$51], [%1051, %$54] ; # P\n  %1022 = phi i64 [%988, %$51], [%1052, %$54] ; # U\n  %1023 = phi i64 [%989, %$51], [%1053, %$54] ; # V\n  %1024 = phi i64 [%990, %$51], [%1054, %$54] ; # V1\n  %1025 = phi i64 [%991, %$51], [%1055, %$54] ; # V2\n  %1026 = phi i64 [%992, %$51], [%1056, %$54] ; # M\n  %1027 = phi i64 [%993, %$51], [%1057, %$54] ; # N\n  %1028 = phi i64 [%994, %$51], [%1058, %$54] ; # D\n  %1029 = phi i64 [%995, %$51], [%1059, %$54] ; # Q\n  %1030 = phi i64 [%996, %$51], [%1060, %$54] ; # X\n  %1031 = phi i64 [%997, %$51], [%1061, %$54] ; # U1\n  %1032 = phi i64 [%998, %$51], [%1062, %$54] ; # U2\n  %1033 = phi i64 [%999, %$51], [%1063, %$54] ; # U3\n  %1034 = phi i64 [%1000, %$51], [%1064, %$54] ; # Hi\n  %1035 = phi i64 [%1001, %$51], [%1065, %$54] ; # Lo\n  %1036 = phi i64 [%1002, %$51], [%1066, %$54] ; # Z\n  %1037 = phi i64 [%1005, %$51], [%1067, %$54] ; # Y\n  %1038 = phi i1 [%1014, %$51], [%1082, %$54] ; # C\n; # (big X)\n  %1039 = add i64 %1030, 4\n; # (val (big X))\n  %1040 = inttoptr i64 %1039 to i64*\n  %1041 = load i64, i64* %1040\n; # (? (cnt? (setq Y (val (big Y)))))\n; # (big Y)\n  %1042 = add i64 %1037, 4\n; # (val (big Y))\n  %1043 = inttoptr i64 %1042 to i64*\n  %1044 = load i64, i64* %1043\n; # (cnt? (setq Y (val (big Y))))\n  %1045 = and i64 %1044, 2\n  %1046 = icmp ne i64 %1045, 0\n  br i1 %1046, label %$55, label %$54\n$54:\n  %1047 = phi i64 [%1017, %$53] ; # A\n  %1048 = phi i64 [%1018, %$53] ; # B\n  %1049 = phi i1 [%1019, %$53] ; # Rem\n  %1050 = phi i64 [%1020, %$53] ; # R\n  %1051 = phi i64 [%1021, %$53] ; # P\n  %1052 = phi i64 [%1022, %$53] ; # U\n  %1053 = phi i64 [%1023, %$53] ; # V\n  %1054 = phi i64 [%1024, %$53] ; # V1\n  %1055 = phi i64 [%1025, %$53] ; # V2\n  %1056 = phi i64 [%1026, %$53] ; # M\n  %1057 = phi i64 [%1027, %$53] ; # N\n  %1058 = phi i64 [%1028, %$53] ; # D\n  %1059 = phi i64 [%1029, %$53] ; # Q\n  %1060 = phi i64 [%1041, %$53] ; # X\n  %1061 = phi i64 [%1031, %$53] ; # U1\n  %1062 = phi i64 [%1032, %$53] ; # U2\n  %1063 = phi i64 [%1033, %$53] ; # U3\n  %1064 = phi i64 [%1034, %$53] ; # Hi\n  %1065 = phi i64 [%1035, %$53] ; # Lo\n  %1066 = phi i64 [%1036, %$53] ; # Z\n  %1067 = phi i64 [%1044, %$53] ; # Y\n  %1068 = phi i1 [%1038, %$53] ; # C\n; # (set (dig X) (add (val (dig X)) (val (dig Y)) C))\n; # (dig X)\n  %1069 = add i64 %1060, -4\n; # (dig X)\n  %1070 = add i64 %1060, -4\n; # (val (dig X))\n  %1071 = inttoptr i64 %1070 to i64*\n  %1072 = load i64, i64* %1071\n; # (dig Y)\n  %1073 = add i64 %1067, -4\n; # (val (dig Y))\n  %1074 = inttoptr i64 %1073 to i64*\n  %1075 = load i64, i64* %1074\n; # (add (val (dig X)) (val (dig Y)) C)\n  %1076 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %1072, i64 %1075)\n  %1077 = extractvalue {i64, i1} %1076, 1\n  %1078 = extractvalue {i64, i1} %1076, 0\n  %1079 = zext i1 %1068 to i64\n  %1080 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %1078, i64 %1079)\n  %1081 = extractvalue {i64, i1} %1080, 1\n  %1082 = or i1 %1077, %1081\n  %1083 = extractvalue {i64, i1} %1080, 0\n  %1084 = inttoptr i64 %1069 to i64*\n  store i64 %1083, i64* %1084\n  br label %$53\n$55:\n  %1085 = phi i64 [%1017, %$53] ; # A\n  %1086 = phi i64 [%1018, %$53] ; # B\n  %1087 = phi i1 [%1019, %$53] ; # Rem\n  %1088 = phi i64 [%1020, %$53] ; # R\n  %1089 = phi i64 [%1021, %$53] ; # P\n  %1090 = phi i64 [%1022, %$53] ; # U\n  %1091 = phi i64 [%1023, %$53] ; # V\n  %1092 = phi i64 [%1024, %$53] ; # V1\n  %1093 = phi i64 [%1025, %$53] ; # V2\n  %1094 = phi i64 [%1026, %$53] ; # M\n  %1095 = phi i64 [%1027, %$53] ; # N\n  %1096 = phi i64 [%1028, %$53] ; # D\n  %1097 = phi i64 [%1029, %$53] ; # Q\n  %1098 = phi i64 [%1041, %$53] ; # X\n  %1099 = phi i64 [%1031, %$53] ; # U1\n  %1100 = phi i64 [%1032, %$53] ; # U2\n  %1101 = phi i64 [%1033, %$53] ; # U3\n  %1102 = phi i64 [%1034, %$53] ; # Hi\n  %1103 = phi i64 [%1035, %$53] ; # Lo\n  %1104 = phi i64 [%1036, %$53] ; # Z\n  %1105 = phi i64 [%1044, %$53] ; # Y\n  %1106 = phi i1 [%1038, %$53] ; # C\n  %1107 = phi i64 [0, %$53] ; # ->\n; # (set (dig X) (+ (val (dig X)) C))\n; # (dig X)\n  %1108 = add i64 %1098, -4\n; # (dig X)\n  %1109 = add i64 %1098, -4\n; # (val (dig X))\n  %1110 = inttoptr i64 %1109 to i64*\n  %1111 = load i64, i64* %1110\n; # (+ (val (dig X)) C)\n  %1112 = zext i1 %1106 to i64\n  %1113 = add i64 %1111, %1112\n  %1114 = inttoptr i64 %1108 to i64*\n  store i64 %1113, i64* %1114\n  br label %$52\n$52:\n  %1115 = phi i64 [%961, %$49], [%1085, %$55] ; # A\n  %1116 = phi i64 [%962, %$49], [%1086, %$55] ; # B\n  %1117 = phi i1 [%963, %$49], [%1087, %$55] ; # Rem\n  %1118 = phi i64 [%964, %$49], [%1088, %$55] ; # R\n  %1119 = phi i64 [%965, %$49], [%1089, %$55] ; # P\n  %1120 = phi i64 [%966, %$49], [%1090, %$55] ; # U\n  %1121 = phi i64 [%967, %$49], [%1091, %$55] ; # V\n  %1122 = phi i64 [%968, %$49], [%1092, %$55] ; # V1\n  %1123 = phi i64 [%969, %$49], [%1093, %$55] ; # V2\n  %1124 = phi i64 [%970, %$49], [%1094, %$55] ; # M\n  %1125 = phi i64 [%971, %$49], [%1095, %$55] ; # N\n  %1126 = phi i64 [%972, %$49], [%1096, %$55] ; # D\n  %1127 = phi i64 [%973, %$49], [%1097, %$55] ; # Q\n  %1128 = phi i64 [%974, %$49], [%1098, %$55] ; # X\n  %1129 = phi i64 [%975, %$49], [%1099, %$55] ; # U1\n  %1130 = phi i64 [%976, %$49], [%1100, %$55] ; # U2\n  %1131 = phi i64 [%977, %$49], [%1101, %$55] ; # U3\n  %1132 = phi i64 [%978, %$49], [%1102, %$55] ; # Hi\n  %1133 = phi i64 [%979, %$49], [%1103, %$55] ; # Lo\n  %1134 = phi i64 [%980, %$49], [%1104, %$55] ; # Z\n  %1135 = phi i64 [%981, %$49], [%1105, %$55] ; # Y\n  br label %$48\n$48:\n  %1136 = phi i64 [%885, %$45], [%1115, %$52] ; # A\n  %1137 = phi i64 [%886, %$45], [%1116, %$52] ; # B\n  %1138 = phi i1 [%887, %$45], [%1117, %$52] ; # Rem\n  %1139 = phi i64 [%888, %$45], [%1118, %$52] ; # R\n  %1140 = phi i64 [%889, %$45], [%1119, %$52] ; # P\n  %1141 = phi i64 [%890, %$45], [%1120, %$52] ; # U\n  %1142 = phi i64 [%891, %$45], [%1121, %$52] ; # V\n  %1143 = phi i64 [%892, %$45], [%1122, %$52] ; # V1\n  %1144 = phi i64 [%893, %$45], [%1123, %$52] ; # V2\n  %1145 = phi i64 [%894, %$45], [%1124, %$52] ; # M\n  %1146 = phi i64 [%895, %$45], [%1125, %$52] ; # N\n  %1147 = phi i64 [%896, %$45], [%1126, %$52] ; # D\n  %1148 = phi i64 [%897, %$45], [%1127, %$52] ; # Q\n  %1149 = phi i64 [%898, %$45], [%1128, %$52] ; # X\n  %1150 = phi i64 [%899, %$45], [%1129, %$52] ; # U1\n  %1151 = phi i64 [%900, %$45], [%1130, %$52] ; # U2\n  %1152 = phi i64 [%901, %$45], [%1131, %$52] ; # U3\n  %1153 = phi i64 [%902, %$45], [%1132, %$52] ; # Hi\n  %1154 = phi i64 [%903, %$45], [%1133, %$52] ; # Lo\n  %1155 = phi i64 [%908, %$45], [%1134, %$52] ; # Z\n  %1156 = phi i64 [%905, %$45], [%1135, %$52] ; # Y\n  br label %$46\n$46:\n  %1157 = phi i64 [%863, %$44], [%1136, %$48] ; # A\n  %1158 = phi i64 [%864, %$44], [%1137, %$48] ; # B\n  %1159 = phi i1 [%865, %$44], [%1138, %$48] ; # Rem\n  %1160 = phi i64 [%866, %$44], [%1139, %$48] ; # R\n  %1161 = phi i64 [%867, %$44], [%1140, %$48] ; # P\n  %1162 = phi i64 [%868, %$44], [%1141, %$48] ; # U\n  %1163 = phi i64 [%869, %$44], [%1142, %$48] ; # V\n  %1164 = phi i64 [%870, %$44], [%1143, %$48] ; # V1\n  %1165 = phi i64 [%871, %$44], [%1144, %$48] ; # V2\n  %1166 = phi i64 [%872, %$44], [%1145, %$48] ; # M\n  %1167 = phi i64 [%873, %$44], [%1146, %$48] ; # N\n  %1168 = phi i64 [%874, %$44], [%1147, %$48] ; # D\n  %1169 = phi i64 [%875, %$44], [%1148, %$48] ; # Q\n  %1170 = phi i64 [%876, %$44], [%1149, %$48] ; # X\n  %1171 = phi i64 [%877, %$44], [%1150, %$48] ; # U1\n  %1172 = phi i64 [%878, %$44], [%1151, %$48] ; # U2\n  %1173 = phi i64 [%879, %$44], [%1152, %$48] ; # U3\n  %1174 = phi i64 [%880, %$44], [%1153, %$48] ; # Hi\n  %1175 = phi i64 [%881, %$44], [%1154, %$48] ; # Lo\n  %1176 = phi i64 [%882, %$44], [%1155, %$48] ; # Z\n  %1177 = phi i64 [%883, %$44], [%1156, %$48] ; # Y\n; # (consNum Q R)\n  %1178 = call i64 @consNum(i64 %1169, i64 %1160)\n; # (safe (consNum Q R))\n  %1179 = inttoptr i64 %6 to i64*\n  store i64 %1178, i64* %1179\n; # (? (lt0 (dec 'M)))\n; # (dec 'M)\n  %1180 = sub i64 %1166, 1\n; # (lt0 (dec 'M))\n  %1181 = icmp slt i64 %1180, 0\n  br i1 %1181, label %$57, label %$56\n$56:\n  %1182 = phi i64 [%1157, %$46] ; # A\n  %1183 = phi i64 [%1158, %$46] ; # B\n  %1184 = phi i1 [%1159, %$46] ; # Rem\n  %1185 = phi i64 [%1178, %$46] ; # R\n  %1186 = phi i64 [%1161, %$46] ; # P\n  %1187 = phi i64 [%1162, %$46] ; # U\n  %1188 = phi i64 [%1163, %$46] ; # V\n  %1189 = phi i64 [%1164, %$46] ; # V1\n  %1190 = phi i64 [%1165, %$46] ; # V2\n  %1191 = phi i64 [%1180, %$46] ; # M\n  %1192 = phi i64 [%1167, %$46] ; # N\n  %1193 = phi i64 [%1168, %$46] ; # D\n  %1194 = phi i64 [%1169, %$46] ; # Q\n  br label %$25\n$57:\n  %1195 = phi i64 [%1157, %$46] ; # A\n  %1196 = phi i64 [%1158, %$46] ; # B\n  %1197 = phi i1 [%1159, %$46] ; # Rem\n  %1198 = phi i64 [%1178, %$46] ; # R\n  %1199 = phi i64 [%1161, %$46] ; # P\n  %1200 = phi i64 [%1162, %$46] ; # U\n  %1201 = phi i64 [%1163, %$46] ; # V\n  %1202 = phi i64 [%1164, %$46] ; # V1\n  %1203 = phi i64 [%1165, %$46] ; # V2\n  %1204 = phi i64 [%1180, %$46] ; # M\n  %1205 = phi i64 [%1167, %$46] ; # N\n  %1206 = phi i64 [%1168, %$46] ; # D\n  %1207 = phi i64 [%1169, %$46] ; # Q\n  %1208 = phi i64 [0, %$46] ; # ->\n; # (ifn Rem (zapZero R) (setq A (zapZero (val U))) (while D (setq A ...\n  br i1 %1197, label %$59, label %$58\n$58:\n  %1209 = phi i64 [%1195, %$57] ; # A\n  %1210 = phi i64 [%1196, %$57] ; # B\n  %1211 = phi i1 [%1197, %$57] ; # Rem\n  %1212 = phi i64 [%1198, %$57] ; # R\n  %1213 = phi i64 [%1199, %$57] ; # P\n  %1214 = phi i64 [%1200, %$57] ; # U\n  %1215 = phi i64 [%1201, %$57] ; # V\n  %1216 = phi i64 [%1202, %$57] ; # V1\n  %1217 = phi i64 [%1203, %$57] ; # V2\n  %1218 = phi i64 [%1204, %$57] ; # M\n  %1219 = phi i64 [%1205, %$57] ; # N\n  %1220 = phi i64 [%1206, %$57] ; # D\n  %1221 = phi i64 [%1207, %$57] ; # Q\n; # (zapZero R)\n  %1222 = call i64 @zapZero(i64 %1212)\n  br label %$60\n$59:\n  %1223 = phi i64 [%1195, %$57] ; # A\n  %1224 = phi i64 [%1196, %$57] ; # B\n  %1225 = phi i1 [%1197, %$57] ; # Rem\n  %1226 = phi i64 [%1198, %$57] ; # R\n  %1227 = phi i64 [%1199, %$57] ; # P\n  %1228 = phi i64 [%1200, %$57] ; # U\n  %1229 = phi i64 [%1201, %$57] ; # V\n  %1230 = phi i64 [%1202, %$57] ; # V1\n  %1231 = phi i64 [%1203, %$57] ; # V2\n  %1232 = phi i64 [%1204, %$57] ; # M\n  %1233 = phi i64 [%1205, %$57] ; # N\n  %1234 = phi i64 [%1206, %$57] ; # D\n  %1235 = phi i64 [%1207, %$57] ; # Q\n; # (val U)\n  %1236 = inttoptr i64 %1228 to i64*\n  %1237 = load i64, i64* %1236\n; # (zapZero (val U))\n  %1238 = call i64 @zapZero(i64 %1237)\n; # (while D (setq A (half A)) (dec 'D))\n  br label %$61\n$61:\n  %1239 = phi i64 [%1238, %$59], [%1266, %$62] ; # A\n  %1240 = phi i64 [%1224, %$59], [%1254, %$62] ; # B\n  %1241 = phi i1 [%1225, %$59], [%1255, %$62] ; # Rem\n  %1242 = phi i64 [%1226, %$59], [%1256, %$62] ; # R\n  %1243 = phi i64 [%1227, %$59], [%1257, %$62] ; # P\n  %1244 = phi i64 [%1228, %$59], [%1258, %$62] ; # U\n  %1245 = phi i64 [%1229, %$59], [%1259, %$62] ; # V\n  %1246 = phi i64 [%1230, %$59], [%1260, %$62] ; # V1\n  %1247 = phi i64 [%1231, %$59], [%1261, %$62] ; # V2\n  %1248 = phi i64 [%1232, %$59], [%1262, %$62] ; # M\n  %1249 = phi i64 [%1233, %$59], [%1263, %$62] ; # N\n  %1250 = phi i64 [%1234, %$59], [%1267, %$62] ; # D\n  %1251 = phi i64 [%1235, %$59], [%1265, %$62] ; # Q\n  %1252 = icmp ne i64 %1250, 0\n  br i1 %1252, label %$62, label %$63\n$62:\n  %1253 = phi i64 [%1239, %$61] ; # A\n  %1254 = phi i64 [%1240, %$61] ; # B\n  %1255 = phi i1 [%1241, %$61] ; # Rem\n  %1256 = phi i64 [%1242, %$61] ; # R\n  %1257 = phi i64 [%1243, %$61] ; # P\n  %1258 = phi i64 [%1244, %$61] ; # U\n  %1259 = phi i64 [%1245, %$61] ; # V\n  %1260 = phi i64 [%1246, %$61] ; # V1\n  %1261 = phi i64 [%1247, %$61] ; # V2\n  %1262 = phi i64 [%1248, %$61] ; # M\n  %1263 = phi i64 [%1249, %$61] ; # N\n  %1264 = phi i64 [%1250, %$61] ; # D\n  %1265 = phi i64 [%1251, %$61] ; # Q\n; # (half A)\n  %1266 = call i64 @half(i64 %1253)\n; # (dec 'D)\n  %1267 = sub i64 %1264, 1\n  br label %$61\n$63:\n  %1268 = phi i64 [%1239, %$61] ; # A\n  %1269 = phi i64 [%1240, %$61] ; # B\n  %1270 = phi i1 [%1241, %$61] ; # Rem\n  %1271 = phi i64 [%1242, %$61] ; # R\n  %1272 = phi i64 [%1243, %$61] ; # P\n  %1273 = phi i64 [%1244, %$61] ; # U\n  %1274 = phi i64 [%1245, %$61] ; # V\n  %1275 = phi i64 [%1246, %$61] ; # V1\n  %1276 = phi i64 [%1247, %$61] ; # V2\n  %1277 = phi i64 [%1248, %$61] ; # M\n  %1278 = phi i64 [%1249, %$61] ; # N\n  %1279 = phi i64 [%1250, %$61] ; # D\n  %1280 = phi i64 [%1251, %$61] ; # Q\n  br label %$60\n$60:\n  %1281 = phi i64 [%1209, %$58], [%1268, %$63] ; # A\n  %1282 = phi i64 [%1210, %$58], [%1269, %$63] ; # B\n  %1283 = phi i1 [%1211, %$58], [%1270, %$63] ; # Rem\n  %1284 = phi i64 [%1212, %$58], [%1271, %$63] ; # R\n  %1285 = phi i64 [%1213, %$58], [%1272, %$63] ; # P\n  %1286 = phi i64 [%1214, %$58], [%1273, %$63] ; # U\n  %1287 = phi i64 [%1215, %$58], [%1274, %$63] ; # V\n  %1288 = phi i64 [%1216, %$58], [%1275, %$63] ; # V1\n  %1289 = phi i64 [%1217, %$58], [%1276, %$63] ; # V2\n  %1290 = phi i64 [%1218, %$58], [%1277, %$63] ; # M\n  %1291 = phi i64 [%1219, %$58], [%1278, %$63] ; # N\n  %1292 = phi i64 [%1220, %$58], [%1279, %$63] ; # D\n  %1293 = phi i64 [%1221, %$58], [%1280, %$63] ; # Q\n  %1294 = phi i64 [%1222, %$58], [%1268, %$63] ; # ->\n; # (drop *Safe)\n  %1295 = inttoptr i64 %6 to i64*\n  %1296 = getelementptr i64, i64* %1295, i32 1\n  %1297 = load i64, i64* %1296\n  %1298 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1297, i64* %1298\n  ret i64 %1294\n}\n\ndefine i64 @divu(i64, i64) align 8 {\n$1:\n; # (cond ((big? A) (div1 A B NO)) ((big? B) ZERO) (T (cnt (/ (int A)...\n; # (big? A)\n  %2 = and i64 %0, 4\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (div1 A B NO)\n  %6 = call i64 @div1(i64 %4, i64 %5, i1 0)\n  br label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # A\n  %8 = phi i64 [%1, %$1] ; # B\n; # (big? B)\n  %9 = and i64 %8, 4\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$6, label %$5\n$6:\n  %11 = phi i64 [%7, %$3] ; # A\n  %12 = phi i64 [%8, %$3] ; # B\n  br label %$2\n$5:\n  %13 = phi i64 [%7, %$3] ; # A\n  %14 = phi i64 [%8, %$3] ; # B\n; # (int A)\n  %15 = lshr i64 %13, 4\n; # (int B)\n  %16 = lshr i64 %14, 4\n; # (/ (int A) (int B))\n  %17 = udiv i64 %15, %16\n; # (cnt (/ (int A) (int B)))\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  br label %$2\n$2:\n  %20 = phi i64 [%4, %$4], [%11, %$6], [%13, %$5] ; # A\n  %21 = phi i64 [%5, %$4], [%12, %$6], [%14, %$5] ; # B\n  %22 = phi i64 [%6, %$4], [2, %$6], [%19, %$5] ; # ->\n  ret i64 %22\n}\n\ndefine i64 @remu(i64, i64) align 8 {\n$1:\n; # (cond ((big? A) (div1 A B YES)) ((big? B) A) (T (cnt (% (int A) (...\n; # (big? A)\n  %2 = and i64 %0, 4\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (div1 A B YES)\n  %6 = call i64 @div1(i64 %4, i64 %5, i1 1)\n  br label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # A\n  %8 = phi i64 [%1, %$1] ; # B\n; # (big? B)\n  %9 = and i64 %8, 4\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$6, label %$5\n$6:\n  %11 = phi i64 [%7, %$3] ; # A\n  %12 = phi i64 [%8, %$3] ; # B\n  br label %$2\n$5:\n  %13 = phi i64 [%7, %$3] ; # A\n  %14 = phi i64 [%8, %$3] ; # B\n; # (int A)\n  %15 = lshr i64 %13, 4\n; # (int B)\n  %16 = lshr i64 %14, 4\n; # (% (int A) (int B))\n  %17 = urem i64 %15, %16\n; # (cnt (% (int A) (int B)))\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  br label %$2\n$2:\n  %20 = phi i64 [%4, %$4], [%11, %$6], [%13, %$5] ; # A\n  %21 = phi i64 [%5, %$4], [%12, %$6], [%14, %$5] ; # B\n  %22 = phi i64 [%6, %$4], [%11, %$6], [%19, %$5] ; # ->\n  ret i64 %22\n}\n\ndefine i64 @incs(i64) align 8 {\n$1:\n; # (if (sign? A) (neg (subu (pos A) ONE)) (addu A ONE))\n; # (sign? A)\n  %1 = and i64 %0, 8\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # A\n; # (pos A)\n  %4 = and i64 %3, -9\n; # (subu (pos A) ONE)\n  %5 = call i64 @subu(i64 %4, i64 18)\n; # (neg (subu (pos A) ONE))\n  %6 = icmp eq i64 %5, 2\n  br i1 %6, label %$5, label %$6\n$5:\n  %7 = phi i64 [%5, %$2] ; # N\n  br label %$7\n$6:\n  %8 = phi i64 [%5, %$2] ; # N\n  %9 = xor i64 %8, 8\n  br label %$7\n$7:\n  %10 = phi i64 [%7, %$5], [%8, %$6] ; # N\n  %11 = phi i64 [%7, %$5], [%9, %$6] ; # ->\n  br label %$4\n$3:\n  %12 = phi i64 [%0, %$1] ; # A\n; # (addu A ONE)\n  %13 = call i64 @addu(i64 %12, i64 18)\n  br label %$4\n$4:\n  %14 = phi i64 [%3, %$7], [%12, %$3] ; # A\n  %15 = phi i64 [%11, %$7], [%13, %$3] ; # ->\n  ret i64 %15\n}\n\ndefine i64 @decs(i64) align 8 {\n$1:\n; # (if (sign? A) (neg (addu (pos A) ONE)) (subu A ONE))\n; # (sign? A)\n  %1 = and i64 %0, 8\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # A\n; # (pos A)\n  %4 = and i64 %3, -9\n; # (addu (pos A) ONE)\n  %5 = call i64 @addu(i64 %4, i64 18)\n; # (neg (addu (pos A) ONE))\n  %6 = icmp eq i64 %5, 2\n  br i1 %6, label %$5, label %$6\n$5:\n  %7 = phi i64 [%5, %$2] ; # N\n  br label %$7\n$6:\n  %8 = phi i64 [%5, %$2] ; # N\n  %9 = xor i64 %8, 8\n  br label %$7\n$7:\n  %10 = phi i64 [%7, %$5], [%8, %$6] ; # N\n  %11 = phi i64 [%7, %$5], [%9, %$6] ; # ->\n  br label %$4\n$3:\n  %12 = phi i64 [%0, %$1] ; # A\n; # (subu A ONE)\n  %13 = call i64 @subu(i64 %12, i64 18)\n  br label %$4\n$4:\n  %14 = phi i64 [%3, %$7], [%12, %$3] ; # A\n  %15 = phi i64 [%11, %$7], [%13, %$3] ; # ->\n  ret i64 %15\n}\n\ndefine i64 @adds(i64, i64) align 8 {\n$1:\n; # (ifn (sign? A) (ifn (sign? B) (addu A B) (subu A (pos B))) (neg (...\n; # (sign? A)\n  %2 = and i64 %0, 8\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) (addu A B) (subu A (pos B)))\n; # (sign? B)\n  %6 = and i64 %5, 8\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$6, label %$5\n$5:\n  %8 = phi i64 [%4, %$2] ; # A\n  %9 = phi i64 [%5, %$2] ; # B\n; # (addu A B)\n  %10 = call i64 @addu(i64 %8, i64 %9)\n  br label %$7\n$6:\n  %11 = phi i64 [%4, %$2] ; # A\n  %12 = phi i64 [%5, %$2] ; # B\n; # (pos B)\n  %13 = and i64 %12, -9\n; # (subu A (pos B))\n  %14 = call i64 @subu(i64 %11, i64 %13)\n  br label %$7\n$7:\n  %15 = phi i64 [%8, %$5], [%11, %$6] ; # A\n  %16 = phi i64 [%9, %$5], [%12, %$6] ; # B\n  %17 = phi i64 [%10, %$5], [%14, %$6] ; # ->\n  br label %$4\n$3:\n  %18 = phi i64 [%0, %$1] ; # A\n  %19 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) (subu (pos A) B) (addu (pos A) (pos B)))\n; # (sign? B)\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$9, label %$8\n$8:\n  %22 = phi i64 [%18, %$3] ; # A\n  %23 = phi i64 [%19, %$3] ; # B\n; # (pos A)\n  %24 = and i64 %22, -9\n; # (subu (pos A) B)\n  %25 = call i64 @subu(i64 %24, i64 %23)\n  br label %$10\n$9:\n  %26 = phi i64 [%18, %$3] ; # A\n  %27 = phi i64 [%19, %$3] ; # B\n; # (pos A)\n  %28 = and i64 %26, -9\n; # (pos B)\n  %29 = and i64 %27, -9\n; # (addu (pos A) (pos B))\n  %30 = call i64 @addu(i64 %28, i64 %29)\n  br label %$10\n$10:\n  %31 = phi i64 [%22, %$8], [%26, %$9] ; # A\n  %32 = phi i64 [%23, %$8], [%27, %$9] ; # B\n  %33 = phi i64 [%25, %$8], [%30, %$9] ; # ->\n; # (neg (ifn (sign? B) (subu (pos A) B) (addu (pos A) (pos B))))\n  %34 = icmp eq i64 %33, 2\n  br i1 %34, label %$11, label %$12\n$11:\n  %35 = phi i64 [%33, %$10] ; # N\n  br label %$13\n$12:\n  %36 = phi i64 [%33, %$10] ; # N\n  %37 = xor i64 %36, 8\n  br label %$13\n$13:\n  %38 = phi i64 [%35, %$11], [%36, %$12] ; # N\n  %39 = phi i64 [%35, %$11], [%37, %$12] ; # ->\n  br label %$4\n$4:\n  %40 = phi i64 [%15, %$7], [%31, %$13] ; # A\n  %41 = phi i64 [%16, %$7], [%32, %$13] ; # B\n  %42 = phi i64 [%17, %$7], [%39, %$13] ; # ->\n  ret i64 %42\n}\n\ndefine i64 @subs(i64, i64) align 8 {\n$1:\n; # (ifn (sign? A) (ifn (sign? B) (subu A B) (addu A (pos B))) (neg (...\n; # (sign? A)\n  %2 = and i64 %0, 8\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) (subu A B) (addu A (pos B)))\n; # (sign? B)\n  %6 = and i64 %5, 8\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$6, label %$5\n$5:\n  %8 = phi i64 [%4, %$2] ; # A\n  %9 = phi i64 [%5, %$2] ; # B\n; # (subu A B)\n  %10 = call i64 @subu(i64 %8, i64 %9)\n  br label %$7\n$6:\n  %11 = phi i64 [%4, %$2] ; # A\n  %12 = phi i64 [%5, %$2] ; # B\n; # (pos B)\n  %13 = and i64 %12, -9\n; # (addu A (pos B))\n  %14 = call i64 @addu(i64 %11, i64 %13)\n  br label %$7\n$7:\n  %15 = phi i64 [%8, %$5], [%11, %$6] ; # A\n  %16 = phi i64 [%9, %$5], [%12, %$6] ; # B\n  %17 = phi i64 [%10, %$5], [%14, %$6] ; # ->\n  br label %$4\n$3:\n  %18 = phi i64 [%0, %$1] ; # A\n  %19 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) (addu (pos A) B) (subu (pos A) (pos B)))\n; # (sign? B)\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$9, label %$8\n$8:\n  %22 = phi i64 [%18, %$3] ; # A\n  %23 = phi i64 [%19, %$3] ; # B\n; # (pos A)\n  %24 = and i64 %22, -9\n; # (addu (pos A) B)\n  %25 = call i64 @addu(i64 %24, i64 %23)\n  br label %$10\n$9:\n  %26 = phi i64 [%18, %$3] ; # A\n  %27 = phi i64 [%19, %$3] ; # B\n; # (pos A)\n  %28 = and i64 %26, -9\n; # (pos B)\n  %29 = and i64 %27, -9\n; # (subu (pos A) (pos B))\n  %30 = call i64 @subu(i64 %28, i64 %29)\n  br label %$10\n$10:\n  %31 = phi i64 [%22, %$8], [%26, %$9] ; # A\n  %32 = phi i64 [%23, %$8], [%27, %$9] ; # B\n  %33 = phi i64 [%25, %$8], [%30, %$9] ; # ->\n; # (neg (ifn (sign? B) (addu (pos A) B) (subu (pos A) (pos B))))\n  %34 = icmp eq i64 %33, 2\n  br i1 %34, label %$11, label %$12\n$11:\n  %35 = phi i64 [%33, %$10] ; # N\n  br label %$13\n$12:\n  %36 = phi i64 [%33, %$10] ; # N\n  %37 = xor i64 %36, 8\n  br label %$13\n$13:\n  %38 = phi i64 [%35, %$11], [%36, %$12] ; # N\n  %39 = phi i64 [%35, %$11], [%37, %$12] ; # ->\n  br label %$4\n$4:\n  %40 = phi i64 [%15, %$7], [%31, %$13] ; # A\n  %41 = phi i64 [%16, %$7], [%32, %$13] ; # B\n  %42 = phi i64 [%17, %$7], [%39, %$13] ; # ->\n  ret i64 %42\n}\n\ndefine i64 @cmpu(i64, i64) align 8 {\n$1:\n; # (if (cnt? A) (cond ((or (big? B) (> B A)) -1) ((== B A) 0) (T 1))...\n; # (cnt? A)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (cond ((or (big? B) (> B A)) -1) ((== B A) 0) (T 1))\n; # (or (big? B) (> B A))\n; # (big? B)\n  %6 = and i64 %5, 4\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$6, label %$7\n$7:\n  %8 = phi i64 [%4, %$2] ; # A\n  %9 = phi i64 [%5, %$2] ; # B\n; # (> B A)\n  %10 = icmp ugt i64 %9, %8\n  br label %$6\n$6:\n  %11 = phi i64 [%4, %$2], [%8, %$7] ; # A\n  %12 = phi i64 [%5, %$2], [%9, %$7] ; # B\n  %13 = phi i1 [1, %$2], [%10, %$7] ; # ->\n  br i1 %13, label %$9, label %$8\n$9:\n  %14 = phi i64 [%11, %$6] ; # A\n  %15 = phi i64 [%12, %$6] ; # B\n  br label %$5\n$8:\n  %16 = phi i64 [%11, %$6] ; # A\n  %17 = phi i64 [%12, %$6] ; # B\n; # (== B A)\n  %18 = icmp eq i64 %17, %16\n  br i1 %18, label %$11, label %$10\n$11:\n  %19 = phi i64 [%16, %$8] ; # A\n  %20 = phi i64 [%17, %$8] ; # B\n  br label %$5\n$10:\n  %21 = phi i64 [%16, %$8] ; # A\n  %22 = phi i64 [%17, %$8] ; # B\n  br label %$5\n$5:\n  %23 = phi i64 [%14, %$9], [%19, %$11], [%21, %$10] ; # A\n  %24 = phi i64 [%15, %$9], [%20, %$11], [%22, %$10] ; # B\n  %25 = phi i64 [-1, %$9], [0, %$11], [1, %$10] ; # ->\n  br label %$4\n$3:\n  %26 = phi i64 [%0, %$1] ; # A\n  %27 = phi i64 [%1, %$1] ; # B\n; # (if (cnt? B) 1 (let (X 0 Y 0) (prog1 (loop (let (C (val (big A)) ...\n; # (cnt? B)\n  %28 = and i64 %27, 2\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$12, label %$13\n$12:\n  %30 = phi i64 [%26, %$3] ; # A\n  %31 = phi i64 [%27, %$3] ; # B\n  br label %$14\n$13:\n  %32 = phi i64 [%26, %$3] ; # A\n  %33 = phi i64 [%27, %$3] ; # B\n; # (let (X 0 Y 0) (prog1 (loop (let (C (val (big A)) D (val (big B))...\n; # (prog1 (loop (let (C (val (big A)) D (val (big B))) (? (== C D) (...\n; # (loop (let (C (val (big A)) D (val (big B))) (? (== C D) (loop (s...\n  br label %$15\n$15:\n  %34 = phi i64 [%32, %$13], [%199, %$36] ; # A\n  %35 = phi i64 [%33, %$13], [%200, %$36] ; # B\n  %36 = phi i64 [0, %$13], [%195, %$36] ; # X\n  %37 = phi i64 [0, %$13], [%196, %$36] ; # Y\n; # (let (C (val (big A)) D (val (big B))) (? (== C D) (loop (setq C ...\n; # (big A)\n  %38 = add i64 %34, 4\n; # (val (big A))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (big B)\n  %41 = add i64 %35, 4\n; # (val (big B))\n  %42 = inttoptr i64 %41 to i64*\n  %43 = load i64, i64* %42\n; # (? (== C D) (loop (setq C (val (dig A)) D (val (dig B))) (? (> D ...\n; # (== C D)\n  %44 = icmp eq i64 %40, %43\n  br i1 %44, label %$18, label %$16\n$18:\n  %45 = phi i64 [%34, %$15] ; # A\n  %46 = phi i64 [%35, %$15] ; # B\n  %47 = phi i64 [%36, %$15] ; # X\n  %48 = phi i64 [%37, %$15] ; # Y\n  %49 = phi i64 [%40, %$15] ; # C\n  %50 = phi i64 [%43, %$15] ; # D\n; # (loop (setq C (val (dig A)) D (val (dig B))) (? (> D C) -1) (? (>...\n  br label %$19\n$19:\n  %51 = phi i64 [%45, %$18], [%98, %$25] ; # A\n  %52 = phi i64 [%46, %$18], [%99, %$25] ; # B\n  %53 = phi i64 [%47, %$18], [%104, %$25] ; # X\n  %54 = phi i64 [%48, %$18], [%109, %$25] ; # Y\n  %55 = phi i64 [%49, %$18], [%100, %$25] ; # C\n  %56 = phi i64 [%50, %$18], [%101, %$25] ; # D\n; # (dig A)\n  %57 = add i64 %51, -4\n; # (val (dig A))\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n; # (dig B)\n  %60 = add i64 %52, -4\n; # (val (dig B))\n  %61 = inttoptr i64 %60 to i64*\n  %62 = load i64, i64* %61\n; # (? (> D C) -1)\n; # (> D C)\n  %63 = icmp ugt i64 %62, %59\n  br i1 %63, label %$22, label %$20\n$22:\n  %64 = phi i64 [%51, %$19] ; # A\n  %65 = phi i64 [%52, %$19] ; # B\n  %66 = phi i64 [%53, %$19] ; # X\n  %67 = phi i64 [%54, %$19] ; # Y\n  %68 = phi i64 [%59, %$19] ; # C\n  %69 = phi i64 [%62, %$19] ; # D\n  br label %$21\n$20:\n  %70 = phi i64 [%51, %$19] ; # A\n  %71 = phi i64 [%52, %$19] ; # B\n  %72 = phi i64 [%53, %$19] ; # X\n  %73 = phi i64 [%54, %$19] ; # Y\n  %74 = phi i64 [%59, %$19] ; # C\n  %75 = phi i64 [%62, %$19] ; # D\n; # (? (> C D) 1)\n; # (> C D)\n  %76 = icmp ugt i64 %74, %75\n  br i1 %76, label %$24, label %$23\n$24:\n  %77 = phi i64 [%70, %$20] ; # A\n  %78 = phi i64 [%71, %$20] ; # B\n  %79 = phi i64 [%72, %$20] ; # X\n  %80 = phi i64 [%73, %$20] ; # Y\n  %81 = phi i64 [%74, %$20] ; # C\n  %82 = phi i64 [%75, %$20] ; # D\n  br label %$21\n$23:\n  %83 = phi i64 [%70, %$20] ; # A\n  %84 = phi i64 [%71, %$20] ; # B\n  %85 = phi i64 [%72, %$20] ; # X\n  %86 = phi i64 [%73, %$20] ; # Y\n  %87 = phi i64 [%74, %$20] ; # C\n  %88 = phi i64 [%75, %$20] ; # D\n; # (? (=0 X) 0)\n; # (=0 X)\n  %89 = icmp eq i64 %85, 0\n  br i1 %89, label %$26, label %$25\n$26:\n  %90 = phi i64 [%83, %$23] ; # A\n  %91 = phi i64 [%84, %$23] ; # B\n  %92 = phi i64 [%85, %$23] ; # X\n  %93 = phi i64 [%86, %$23] ; # Y\n  %94 = phi i64 [%87, %$23] ; # C\n  %95 = phi i64 [%88, %$23] ; # D\n  br label %$21\n$25:\n  %96 = phi i64 [%83, %$23] ; # A\n  %97 = phi i64 [%84, %$23] ; # B\n  %98 = phi i64 [%85, %$23] ; # X\n  %99 = phi i64 [%86, %$23] ; # Y\n  %100 = phi i64 [%87, %$23] ; # C\n  %101 = phi i64 [%88, %$23] ; # D\n; # (let Z (val (big X)) (set (big X) A) (setq A X X Z))\n; # (big X)\n  %102 = add i64 %98, 4\n; # (val (big X))\n  %103 = inttoptr i64 %102 to i64*\n  %104 = load i64, i64* %103\n; # (set (big X) A)\n; # (big X)\n  %105 = add i64 %98, 4\n  %106 = inttoptr i64 %105 to i64*\n  store i64 %96, i64* %106\n; # (let Z (val (big Y)) (set (big Y) B) (setq B Y Y Z))\n; # (big Y)\n  %107 = add i64 %99, 4\n; # (val (big Y))\n  %108 = inttoptr i64 %107 to i64*\n  %109 = load i64, i64* %108\n; # (set (big Y) B)\n; # (big Y)\n  %110 = add i64 %99, 4\n  %111 = inttoptr i64 %110 to i64*\n  store i64 %97, i64* %111\n  br label %$19\n$21:\n  %112 = phi i64 [%64, %$22], [%77, %$24], [%90, %$26] ; # A\n  %113 = phi i64 [%65, %$22], [%78, %$24], [%91, %$26] ; # B\n  %114 = phi i64 [%66, %$22], [%79, %$24], [%92, %$26] ; # X\n  %115 = phi i64 [%67, %$22], [%80, %$24], [%93, %$26] ; # Y\n  %116 = phi i64 [%68, %$22], [%81, %$24], [%94, %$26] ; # C\n  %117 = phi i64 [%69, %$22], [%82, %$24], [%95, %$26] ; # D\n  %118 = phi i64 [-1, %$22], [1, %$24], [0, %$26] ; # ->\n  br label %$17\n$16:\n  %119 = phi i64 [%34, %$15] ; # A\n  %120 = phi i64 [%35, %$15] ; # B\n  %121 = phi i64 [%36, %$15] ; # X\n  %122 = phi i64 [%37, %$15] ; # Y\n  %123 = phi i64 [%40, %$15] ; # C\n  %124 = phi i64 [%43, %$15] ; # D\n; # (? (cnt? C) (cond ((or (big? D) (> D C)) -1) ((== D C) 0) (T 1)))...\n; # (cnt? C)\n  %125 = and i64 %123, 2\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$28, label %$27\n$28:\n  %127 = phi i64 [%119, %$16] ; # A\n  %128 = phi i64 [%120, %$16] ; # B\n  %129 = phi i64 [%121, %$16] ; # X\n  %130 = phi i64 [%122, %$16] ; # Y\n  %131 = phi i64 [%123, %$16] ; # C\n  %132 = phi i64 [%124, %$16] ; # D\n; # (cond ((or (big? D) (> D C)) -1) ((== D C) 0) (T 1))\n; # (or (big? D) (> D C))\n; # (big? D)\n  %133 = and i64 %132, 4\n  %134 = icmp ne i64 %133, 0\n  br i1 %134, label %$30, label %$31\n$31:\n  %135 = phi i64 [%127, %$28] ; # A\n  %136 = phi i64 [%128, %$28] ; # B\n  %137 = phi i64 [%129, %$28] ; # X\n  %138 = phi i64 [%130, %$28] ; # Y\n  %139 = phi i64 [%131, %$28] ; # C\n  %140 = phi i64 [%132, %$28] ; # D\n; # (> D C)\n  %141 = icmp ugt i64 %140, %139\n  br label %$30\n$30:\n  %142 = phi i64 [%127, %$28], [%135, %$31] ; # A\n  %143 = phi i64 [%128, %$28], [%136, %$31] ; # B\n  %144 = phi i64 [%129, %$28], [%137, %$31] ; # X\n  %145 = phi i64 [%130, %$28], [%138, %$31] ; # Y\n  %146 = phi i64 [%131, %$28], [%139, %$31] ; # C\n  %147 = phi i64 [%132, %$28], [%140, %$31] ; # D\n  %148 = phi i1 [1, %$28], [%141, %$31] ; # ->\n  br i1 %148, label %$33, label %$32\n$33:\n  %149 = phi i64 [%142, %$30] ; # A\n  %150 = phi i64 [%143, %$30] ; # B\n  %151 = phi i64 [%144, %$30] ; # X\n  %152 = phi i64 [%145, %$30] ; # Y\n  %153 = phi i64 [%146, %$30] ; # C\n  %154 = phi i64 [%147, %$30] ; # D\n  br label %$29\n$32:\n  %155 = phi i64 [%142, %$30] ; # A\n  %156 = phi i64 [%143, %$30] ; # B\n  %157 = phi i64 [%144, %$30] ; # X\n  %158 = phi i64 [%145, %$30] ; # Y\n  %159 = phi i64 [%146, %$30] ; # C\n  %160 = phi i64 [%147, %$30] ; # D\n; # (== D C)\n  %161 = icmp eq i64 %160, %159\n  br i1 %161, label %$35, label %$34\n$35:\n  %162 = phi i64 [%155, %$32] ; # A\n  %163 = phi i64 [%156, %$32] ; # B\n  %164 = phi i64 [%157, %$32] ; # X\n  %165 = phi i64 [%158, %$32] ; # Y\n  %166 = phi i64 [%159, %$32] ; # C\n  %167 = phi i64 [%160, %$32] ; # D\n  br label %$29\n$34:\n  %168 = phi i64 [%155, %$32] ; # A\n  %169 = phi i64 [%156, %$32] ; # B\n  %170 = phi i64 [%157, %$32] ; # X\n  %171 = phi i64 [%158, %$32] ; # Y\n  %172 = phi i64 [%159, %$32] ; # C\n  %173 = phi i64 [%160, %$32] ; # D\n  br label %$29\n$29:\n  %174 = phi i64 [%149, %$33], [%162, %$35], [%168, %$34] ; # A\n  %175 = phi i64 [%150, %$33], [%163, %$35], [%169, %$34] ; # B\n  %176 = phi i64 [%151, %$33], [%164, %$35], [%170, %$34] ; # X\n  %177 = phi i64 [%152, %$33], [%165, %$35], [%171, %$34] ; # Y\n  %178 = phi i64 [%153, %$33], [%166, %$35], [%172, %$34] ; # C\n  %179 = phi i64 [%154, %$33], [%167, %$35], [%173, %$34] ; # D\n  %180 = phi i64 [-1, %$33], [0, %$35], [1, %$34] ; # ->\n  br label %$17\n$27:\n  %181 = phi i64 [%119, %$16] ; # A\n  %182 = phi i64 [%120, %$16] ; # B\n  %183 = phi i64 [%121, %$16] ; # X\n  %184 = phi i64 [%122, %$16] ; # Y\n  %185 = phi i64 [%123, %$16] ; # C\n  %186 = phi i64 [%124, %$16] ; # D\n; # (? (cnt? D) 1)\n; # (cnt? D)\n  %187 = and i64 %186, 2\n  %188 = icmp ne i64 %187, 0\n  br i1 %188, label %$37, label %$36\n$37:\n  %189 = phi i64 [%181, %$27] ; # A\n  %190 = phi i64 [%182, %$27] ; # B\n  %191 = phi i64 [%183, %$27] ; # X\n  %192 = phi i64 [%184, %$27] ; # Y\n  %193 = phi i64 [%185, %$27] ; # C\n  %194 = phi i64 [%186, %$27] ; # D\n  br label %$17\n$36:\n  %195 = phi i64 [%181, %$27] ; # A\n  %196 = phi i64 [%182, %$27] ; # B\n  %197 = phi i64 [%183, %$27] ; # X\n  %198 = phi i64 [%184, %$27] ; # Y\n  %199 = phi i64 [%185, %$27] ; # C\n  %200 = phi i64 [%186, %$27] ; # D\n; # (set (big A) X)\n; # (big A)\n  %201 = add i64 %195, 4\n  %202 = inttoptr i64 %201 to i64*\n  store i64 %197, i64* %202\n; # (set (big B) Y)\n; # (big B)\n  %203 = add i64 %196, 4\n  %204 = inttoptr i64 %203 to i64*\n  store i64 %198, i64* %204\n  br label %$15\n$17:\n  %205 = phi i64 [%112, %$21], [%174, %$29], [%189, %$37] ; # A\n  %206 = phi i64 [%113, %$21], [%175, %$29], [%190, %$37] ; # B\n  %207 = phi i64 [%114, %$21], [%176, %$29], [%191, %$37] ; # X\n  %208 = phi i64 [%115, %$21], [%177, %$29], [%192, %$37] ; # Y\n  %209 = phi i64 [%118, %$21], [%180, %$29], [1, %$37] ; # ->\n; # (while X (let Z (val (big X)) (set (big X) A) (setq A X X Z)) (le...\n  br label %$38\n$38:\n  %210 = phi i64 [%205, %$17], [%217, %$39] ; # A\n  %211 = phi i64 [%206, %$17], [%218, %$39] ; # B\n  %212 = phi i64 [%207, %$17], [%221, %$39] ; # X\n  %213 = phi i64 [%208, %$17], [%226, %$39] ; # Y\n  %214 = icmp ne i64 %212, 0\n  br i1 %214, label %$39, label %$40\n$39:\n  %215 = phi i64 [%210, %$38] ; # A\n  %216 = phi i64 [%211, %$38] ; # B\n  %217 = phi i64 [%212, %$38] ; # X\n  %218 = phi i64 [%213, %$38] ; # Y\n; # (let Z (val (big X)) (set (big X) A) (setq A X X Z))\n; # (big X)\n  %219 = add i64 %217, 4\n; # (val (big X))\n  %220 = inttoptr i64 %219 to i64*\n  %221 = load i64, i64* %220\n; # (set (big X) A)\n; # (big X)\n  %222 = add i64 %217, 4\n  %223 = inttoptr i64 %222 to i64*\n  store i64 %215, i64* %223\n; # (let Z (val (big Y)) (set (big Y) B) (setq B Y Y Z))\n; # (big Y)\n  %224 = add i64 %218, 4\n; # (val (big Y))\n  %225 = inttoptr i64 %224 to i64*\n  %226 = load i64, i64* %225\n; # (set (big Y) B)\n; # (big Y)\n  %227 = add i64 %218, 4\n  %228 = inttoptr i64 %227 to i64*\n  store i64 %216, i64* %228\n  br label %$38\n$40:\n  %229 = phi i64 [%210, %$38] ; # A\n  %230 = phi i64 [%211, %$38] ; # B\n  %231 = phi i64 [%212, %$38] ; # X\n  %232 = phi i64 [%213, %$38] ; # Y\n  br label %$14\n$14:\n  %233 = phi i64 [%30, %$12], [%229, %$40] ; # A\n  %234 = phi i64 [%31, %$12], [%230, %$40] ; # B\n  %235 = phi i64 [1, %$12], [%209, %$40] ; # ->\n  br label %$4\n$4:\n  %236 = phi i64 [%23, %$5], [%233, %$14] ; # A\n  %237 = phi i64 [%24, %$5], [%234, %$14] ; # B\n  %238 = phi i64 [%25, %$5], [%235, %$14] ; # ->\n  ret i64 %238\n}\n\ndefine i64 @cmpNum(i64, i64) align 8 {\n$1:\n; # (ifn (sign? A) (ifn (sign? B) (cmpu A B) 1) (ifn (sign? B) -1 (cm...\n; # (sign? A)\n  %2 = and i64 %0, 8\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # A\n  %5 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) (cmpu A B) 1)\n; # (sign? B)\n  %6 = and i64 %5, 8\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$6, label %$5\n$5:\n  %8 = phi i64 [%4, %$2] ; # A\n  %9 = phi i64 [%5, %$2] ; # B\n; # (cmpu A B)\n  %10 = call i64 @cmpu(i64 %8, i64 %9)\n  br label %$7\n$6:\n  %11 = phi i64 [%4, %$2] ; # A\n  %12 = phi i64 [%5, %$2] ; # B\n  br label %$7\n$7:\n  %13 = phi i64 [%8, %$5], [%11, %$6] ; # A\n  %14 = phi i64 [%9, %$5], [%12, %$6] ; # B\n  %15 = phi i64 [%10, %$5], [1, %$6] ; # ->\n  br label %$4\n$3:\n  %16 = phi i64 [%0, %$1] ; # A\n  %17 = phi i64 [%1, %$1] ; # B\n; # (ifn (sign? B) -1 (cmpu (pos B) (pos A)))\n; # (sign? B)\n  %18 = and i64 %17, 8\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$9, label %$8\n$8:\n  %20 = phi i64 [%16, %$3] ; # A\n  %21 = phi i64 [%17, %$3] ; # B\n  br label %$10\n$9:\n  %22 = phi i64 [%16, %$3] ; # A\n  %23 = phi i64 [%17, %$3] ; # B\n; # (pos B)\n  %24 = and i64 %23, -9\n; # (pos A)\n  %25 = and i64 %22, -9\n; # (cmpu (pos B) (pos A))\n  %26 = call i64 @cmpu(i64 %24, i64 %25)\n  br label %$10\n$10:\n  %27 = phi i64 [%20, %$8], [%22, %$9] ; # A\n  %28 = phi i64 [%21, %$8], [%23, %$9] ; # B\n  %29 = phi i64 [-1, %$8], [%26, %$9] ; # ->\n  br label %$4\n$4:\n  %30 = phi i64 [%13, %$7], [%27, %$10] ; # A\n  %31 = phi i64 [%14, %$7], [%28, %$10] ; # B\n  %32 = phi i64 [%15, %$7], [%29, %$10] ; # ->\n  ret i64 %32\n}\n\ndefine i64 @symToNum(i64, i64, i8, i8) align 8 {\n$1:\n; # (let (P (push 0 Name) Num (push ZERO NIL) Sign NO Frac NO B T) (u...\n; # (push 0 Name)\n  %4 = alloca i64, i64 2, align 16\n  store i64 0, i64* %4\n  %5 = getelementptr i64, i64* %4, i32 1\n  store i64 %0, i64* %5\n; # (push ZERO NIL)\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 2, i64* %8\n; # (until (> (setq B (symByte P)) (char \" \")) (unless B (ret 0)))\n  br label %$2\n$2:\n  %9 = phi i64 [%0, %$1], [%38, %$6] ; # Name\n  %10 = phi i64 [%1, %$1], [%39, %$6] ; # Scl\n  %11 = phi i8 [%2, %$1], [%40, %$6] ; # Sep\n  %12 = phi i8 [%3, %$1], [%41, %$6] ; # Ign\n  %13 = phi i64* [%4, %$1], [%42, %$6] ; # P\n  %14 = phi i64 [%7, %$1], [%43, %$6] ; # Num\n  %15 = phi i1 [0, %$1], [%44, %$6] ; # Sign\n  %16 = phi i1 [0, %$1], [%45, %$6] ; # Frac\n; # (symByte P)\n  %17 = call i8 @symByte(i64* %13)\n; # (> (setq B (symByte P)) (char \" \"))\n  %18 = icmp ugt i8 %17, 32\n  br i1 %18, label %$4, label %$3\n$3:\n  %19 = phi i64 [%9, %$2] ; # Name\n  %20 = phi i64 [%10, %$2] ; # Scl\n  %21 = phi i8 [%11, %$2] ; # Sep\n  %22 = phi i8 [%12, %$2] ; # Ign\n  %23 = phi i64* [%13, %$2] ; # P\n  %24 = phi i64 [%14, %$2] ; # Num\n  %25 = phi i1 [%15, %$2] ; # Sign\n  %26 = phi i1 [%16, %$2] ; # Frac\n  %27 = phi i8 [%17, %$2] ; # B\n; # (unless B (ret 0))\n  %28 = icmp ne i8 %27, 0\n  br i1 %28, label %$6, label %$5\n$5:\n  %29 = phi i64 [%19, %$3] ; # Name\n  %30 = phi i64 [%20, %$3] ; # Scl\n  %31 = phi i8 [%21, %$3] ; # Sep\n  %32 = phi i8 [%22, %$3] ; # Ign\n  %33 = phi i64* [%23, %$3] ; # P\n  %34 = phi i64 [%24, %$3] ; # Num\n  %35 = phi i1 [%25, %$3] ; # Sign\n  %36 = phi i1 [%26, %$3] ; # Frac\n  %37 = phi i8 [%27, %$3] ; # B\n; # (ret 0)\n  ret i64 0\n$6:\n  %38 = phi i64 [%19, %$3] ; # Name\n  %39 = phi i64 [%20, %$3] ; # Scl\n  %40 = phi i8 [%21, %$3] ; # Sep\n  %41 = phi i8 [%22, %$3] ; # Ign\n  %42 = phi i64* [%23, %$3] ; # P\n  %43 = phi i64 [%24, %$3] ; # Num\n  %44 = phi i1 [%25, %$3] ; # Sign\n  %45 = phi i1 [%26, %$3] ; # Frac\n  %46 = phi i8 [%27, %$3] ; # B\n  br label %$2\n$4:\n  %47 = phi i64 [%9, %$2] ; # Name\n  %48 = phi i64 [%10, %$2] ; # Scl\n  %49 = phi i8 [%11, %$2] ; # Sep\n  %50 = phi i8 [%12, %$2] ; # Ign\n  %51 = phi i64* [%13, %$2] ; # P\n  %52 = phi i64 [%14, %$2] ; # Num\n  %53 = phi i1 [%15, %$2] ; # Sign\n  %54 = phi i1 [%16, %$2] ; # Frac\n  %55 = phi i8 [%17, %$2] ; # B\n; # (cond ((== B (char \"+\")) (goto 1)) ((== B (char \"-\")) (setq Sign ...\n; # (== B (char \"+\"))\n  %56 = icmp eq i8 %55, 43\n  br i1 %56, label %$9, label %$8\n$9:\n  %57 = phi i64 [%47, %$4] ; # Name\n  %58 = phi i64 [%48, %$4] ; # Scl\n  %59 = phi i8 [%49, %$4] ; # Sep\n  %60 = phi i8 [%50, %$4] ; # Ign\n  %61 = phi i64* [%51, %$4] ; # P\n  %62 = phi i64 [%52, %$4] ; # Num\n  %63 = phi i1 [%53, %$4] ; # Sign\n  %64 = phi i1 [%54, %$4] ; # Frac\n  %65 = phi i8 [%55, %$4] ; # B\n; # (goto 1)\n  br label %$-1\n$8:\n  %66 = phi i64 [%47, %$4] ; # Name\n  %67 = phi i64 [%48, %$4] ; # Scl\n  %68 = phi i8 [%49, %$4] ; # Sep\n  %69 = phi i8 [%50, %$4] ; # Ign\n  %70 = phi i64* [%51, %$4] ; # P\n  %71 = phi i64 [%52, %$4] ; # Num\n  %72 = phi i1 [%53, %$4] ; # Sign\n  %73 = phi i1 [%54, %$4] ; # Frac\n  %74 = phi i8 [%55, %$4] ; # B\n; # (== B (char \"-\"))\n  %75 = icmp eq i8 %74, 45\n  br i1 %75, label %$11, label %$10\n$11:\n  %76 = phi i64 [%66, %$8] ; # Name\n  %77 = phi i64 [%67, %$8] ; # Scl\n  %78 = phi i8 [%68, %$8] ; # Sep\n  %79 = phi i8 [%69, %$8] ; # Ign\n  %80 = phi i64* [%70, %$8] ; # P\n  %81 = phi i64 [%71, %$8] ; # Num\n  %82 = phi i1 [%72, %$8] ; # Sign\n  %83 = phi i1 [%73, %$8] ; # Frac\n  %84 = phi i8 [%74, %$8] ; # B\n; # (: 1 (unless (setq B (symByte P)) (ret 0)))\n  br label %$-1\n$-1:\n  %85 = phi i64 [%57, %$9], [%76, %$11] ; # Name\n  %86 = phi i64 [%58, %$9], [%77, %$11] ; # Scl\n  %87 = phi i8 [%59, %$9], [%78, %$11] ; # Sep\n  %88 = phi i8 [%60, %$9], [%79, %$11] ; # Ign\n  %89 = phi i64* [%61, %$9], [%80, %$11] ; # P\n  %90 = phi i64 [%62, %$9], [%81, %$11] ; # Num\n  %91 = phi i1 [%63, %$9], [1, %$11] ; # Sign\n  %92 = phi i1 [%64, %$9], [%83, %$11] ; # Frac\n  %93 = phi i8 [%65, %$9], [%84, %$11] ; # B\n; # (unless (setq B (symByte P)) (ret 0))\n; # (symByte P)\n  %94 = call i8 @symByte(i64* %89)\n  %95 = icmp ne i8 %94, 0\n  br i1 %95, label %$13, label %$12\n$12:\n  %96 = phi i64 [%85, %$-1] ; # Name\n  %97 = phi i64 [%86, %$-1] ; # Scl\n  %98 = phi i8 [%87, %$-1] ; # Sep\n  %99 = phi i8 [%88, %$-1] ; # Ign\n  %100 = phi i64* [%89, %$-1] ; # P\n  %101 = phi i64 [%90, %$-1] ; # Num\n  %102 = phi i1 [%91, %$-1] ; # Sign\n  %103 = phi i1 [%92, %$-1] ; # Frac\n  %104 = phi i8 [%94, %$-1] ; # B\n; # (ret 0)\n  ret i64 0\n$13:\n  %105 = phi i64 [%85, %$-1] ; # Name\n  %106 = phi i64 [%86, %$-1] ; # Scl\n  %107 = phi i8 [%87, %$-1] ; # Sep\n  %108 = phi i8 [%88, %$-1] ; # Ign\n  %109 = phi i64* [%89, %$-1] ; # P\n  %110 = phi i64 [%90, %$-1] ; # Num\n  %111 = phi i1 [%91, %$-1] ; # Sign\n  %112 = phi i1 [%92, %$-1] ; # Frac\n  %113 = phi i8 [%94, %$-1] ; # B\n  br label %$7\n$10:\n  %114 = phi i64 [%66, %$8] ; # Name\n  %115 = phi i64 [%67, %$8] ; # Scl\n  %116 = phi i8 [%68, %$8] ; # Sep\n  %117 = phi i8 [%69, %$8] ; # Ign\n  %118 = phi i64* [%70, %$8] ; # P\n  %119 = phi i64 [%71, %$8] ; # Num\n  %120 = phi i1 [%72, %$8] ; # Sign\n  %121 = phi i1 [%73, %$8] ; # Frac\n  %122 = phi i8 [%74, %$8] ; # B\n  br label %$7\n$7:\n  %123 = phi i64 [%105, %$13], [%114, %$10] ; # Name\n  %124 = phi i64 [%106, %$13], [%115, %$10] ; # Scl\n  %125 = phi i8 [%107, %$13], [%116, %$10] ; # Sep\n  %126 = phi i8 [%108, %$13], [%117, %$10] ; # Ign\n  %127 = phi i64* [%109, %$13], [%118, %$10] ; # P\n  %128 = phi i64 [%110, %$13], [%119, %$10] ; # Num\n  %129 = phi i1 [%111, %$13], [%120, %$10] ; # Sign\n  %130 = phi i1 [%112, %$13], [%121, %$10] ; # Frac\n  %131 = phi i8 [%113, %$13], [%122, %$10] ; # B\n; # (when (> (dec 'B (char \"0\")) 9) (ret 0))\n; # (dec 'B (char \"0\"))\n  %132 = sub i8 %131, 48\n; # (> (dec 'B (char \"0\")) 9)\n  %133 = icmp ugt i8 %132, 9\n  br i1 %133, label %$14, label %$15\n$14:\n  %134 = phi i64 [%123, %$7] ; # Name\n  %135 = phi i64 [%124, %$7] ; # Scl\n  %136 = phi i8 [%125, %$7] ; # Sep\n  %137 = phi i8 [%126, %$7] ; # Ign\n  %138 = phi i64* [%127, %$7] ; # P\n  %139 = phi i64 [%128, %$7] ; # Num\n  %140 = phi i1 [%129, %$7] ; # Sign\n  %141 = phi i1 [%130, %$7] ; # Frac\n  %142 = phi i8 [%132, %$7] ; # B\n; # (ret 0)\n  ret i64 0\n$15:\n  %143 = phi i64 [%123, %$7] ; # Name\n  %144 = phi i64 [%124, %$7] ; # Scl\n  %145 = phi i8 [%125, %$7] ; # Sep\n  %146 = phi i8 [%126, %$7] ; # Ign\n  %147 = phi i64* [%127, %$7] ; # P\n  %148 = phi i64 [%128, %$7] ; # Num\n  %149 = phi i1 [%129, %$7] ; # Sign\n  %150 = phi i1 [%130, %$7] ; # Frac\n  %151 = phi i8 [%132, %$7] ; # B\n; # (set (link Num T) (cnt (i64 B)))\n; # (link Num T)\n  %152 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %153 = load i64, i64* %152\n  %154 = inttoptr i64 %148 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  store i64 %153, i64* %155\n  %156 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %148, i64* %156\n; # (i64 B)\n  %157 = zext i8 %151 to i64\n; # (cnt (i64 B))\n  %158 = shl i64 %157, 4\n  %159 = or i64 %158, 2\n  %160 = inttoptr i64 %148 to i64*\n  store i64 %159, i64* %160\n; # (while (setq B (symByte P)) (? (and Frac (=0 Scl)) (when (> (dec ...\n  br label %$16\n$16:\n  %161 = phi i64 [%143, %$15], [%430, %$32] ; # Name\n  %162 = phi i64 [%144, %$15], [%431, %$32] ; # Scl\n  %163 = phi i8 [%145, %$15], [%432, %$32] ; # Sep\n  %164 = phi i8 [%146, %$15], [%433, %$32] ; # Ign\n  %165 = phi i64* [%147, %$15], [%434, %$32] ; # P\n  %166 = phi i64 [%148, %$15], [%435, %$32] ; # Num\n  %167 = phi i1 [%149, %$15], [%436, %$32] ; # Sign\n  %168 = phi i1 [%150, %$15], [%437, %$32] ; # Frac\n  %169 = phi i8 [%151, %$15], [%438, %$32] ; # B\n; # (symByte P)\n  %170 = call i8 @symByte(i64* %165)\n  %171 = icmp ne i8 %170, 0\n  br i1 %171, label %$17, label %$18\n$17:\n  %172 = phi i64 [%161, %$16] ; # Name\n  %173 = phi i64 [%162, %$16] ; # Scl\n  %174 = phi i8 [%163, %$16] ; # Sep\n  %175 = phi i8 [%164, %$16] ; # Ign\n  %176 = phi i64* [%165, %$16] ; # P\n  %177 = phi i64 [%166, %$16] ; # Num\n  %178 = phi i1 [%167, %$16] ; # Sign\n  %179 = phi i1 [%168, %$16] ; # Frac\n  %180 = phi i8 [%170, %$16] ; # B\n; # (? (and Frac (=0 Scl)) (when (> (dec 'B (char \"0\")) 9) (ret 0)) (...\n; # (and Frac (=0 Scl))\n  br i1 %179, label %$20, label %$19\n$20:\n  %181 = phi i64 [%172, %$17] ; # Name\n  %182 = phi i64 [%173, %$17] ; # Scl\n  %183 = phi i8 [%174, %$17] ; # Sep\n  %184 = phi i8 [%175, %$17] ; # Ign\n  %185 = phi i64* [%176, %$17] ; # P\n  %186 = phi i64 [%177, %$17] ; # Num\n  %187 = phi i1 [%178, %$17] ; # Sign\n  %188 = phi i1 [%179, %$17] ; # Frac\n  %189 = phi i8 [%180, %$17] ; # B\n; # (=0 Scl)\n  %190 = icmp eq i64 %182, 0\n  br label %$19\n$19:\n  %191 = phi i64 [%172, %$17], [%181, %$20] ; # Name\n  %192 = phi i64 [%173, %$17], [%182, %$20] ; # Scl\n  %193 = phi i8 [%174, %$17], [%183, %$20] ; # Sep\n  %194 = phi i8 [%175, %$17], [%184, %$20] ; # Ign\n  %195 = phi i64* [%176, %$17], [%185, %$20] ; # P\n  %196 = phi i64 [%177, %$17], [%186, %$20] ; # Num\n  %197 = phi i1 [%178, %$17], [%187, %$20] ; # Sign\n  %198 = phi i1 [%179, %$17], [%188, %$20] ; # Frac\n  %199 = phi i8 [%180, %$17], [%189, %$20] ; # B\n  %200 = phi i1 [0, %$17], [%190, %$20] ; # ->\n  br i1 %200, label %$22, label %$21\n$22:\n  %201 = phi i64 [%191, %$19] ; # Name\n  %202 = phi i64 [%192, %$19] ; # Scl\n  %203 = phi i8 [%193, %$19] ; # Sep\n  %204 = phi i8 [%194, %$19] ; # Ign\n  %205 = phi i64* [%195, %$19] ; # P\n  %206 = phi i64 [%196, %$19] ; # Num\n  %207 = phi i1 [%197, %$19] ; # Sign\n  %208 = phi i1 [%198, %$19] ; # Frac\n  %209 = phi i8 [%199, %$19] ; # B\n; # (when (> (dec 'B (char \"0\")) 9) (ret 0))\n; # (dec 'B (char \"0\"))\n  %210 = sub i8 %209, 48\n; # (> (dec 'B (char \"0\")) 9)\n  %211 = icmp ugt i8 %210, 9\n  br i1 %211, label %$23, label %$24\n$23:\n  %212 = phi i64 [%201, %$22] ; # Name\n  %213 = phi i64 [%202, %$22] ; # Scl\n  %214 = phi i8 [%203, %$22] ; # Sep\n  %215 = phi i8 [%204, %$22] ; # Ign\n  %216 = phi i64* [%205, %$22] ; # P\n  %217 = phi i64 [%206, %$22] ; # Num\n  %218 = phi i1 [%207, %$22] ; # Sign\n  %219 = phi i1 [%208, %$22] ; # Frac\n  %220 = phi i8 [%210, %$22] ; # B\n; # (ret 0)\n; # (drop *Safe)\n  %221 = inttoptr i64 %148 to i64*\n  %222 = getelementptr i64, i64* %221, i32 1\n  %223 = load i64, i64* %222\n  %224 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %223, i64* %224\n  ret i64 0\n$24:\n  %225 = phi i64 [%201, %$22] ; # Name\n  %226 = phi i64 [%202, %$22] ; # Scl\n  %227 = phi i8 [%203, %$22] ; # Sep\n  %228 = phi i8 [%204, %$22] ; # Ign\n  %229 = phi i64* [%205, %$22] ; # P\n  %230 = phi i64 [%206, %$22] ; # Num\n  %231 = phi i1 [%207, %$22] ; # Sign\n  %232 = phi i1 [%208, %$22] ; # Frac\n  %233 = phi i8 [%210, %$22] ; # B\n; # (when (>= B 5) (set Num (addu (val Num) ONE)))\n; # (>= B 5)\n  %234 = icmp uge i8 %233, 5\n  br i1 %234, label %$25, label %$26\n$25:\n  %235 = phi i64 [%225, %$24] ; # Name\n  %236 = phi i64 [%226, %$24] ; # Scl\n  %237 = phi i8 [%227, %$24] ; # Sep\n  %238 = phi i8 [%228, %$24] ; # Ign\n  %239 = phi i64* [%229, %$24] ; # P\n  %240 = phi i64 [%230, %$24] ; # Num\n  %241 = phi i1 [%231, %$24] ; # Sign\n  %242 = phi i1 [%232, %$24] ; # Frac\n  %243 = phi i8 [%233, %$24] ; # B\n; # (set Num (addu (val Num) ONE))\n; # (val Num)\n  %244 = inttoptr i64 %240 to i64*\n  %245 = load i64, i64* %244\n; # (addu (val Num) ONE)\n  %246 = call i64 @addu(i64 %245, i64 18)\n  %247 = inttoptr i64 %240 to i64*\n  store i64 %246, i64* %247\n  br label %$26\n$26:\n  %248 = phi i64 [%225, %$24], [%235, %$25] ; # Name\n  %249 = phi i64 [%226, %$24], [%236, %$25] ; # Scl\n  %250 = phi i8 [%227, %$24], [%237, %$25] ; # Sep\n  %251 = phi i8 [%228, %$24], [%238, %$25] ; # Ign\n  %252 = phi i64* [%229, %$24], [%239, %$25] ; # P\n  %253 = phi i64 [%230, %$24], [%240, %$25] ; # Num\n  %254 = phi i1 [%231, %$24], [%241, %$25] ; # Sign\n  %255 = phi i1 [%232, %$24], [%242, %$25] ; # Frac\n  %256 = phi i8 [%233, %$24], [%243, %$25] ; # B\n; # (while (setq B (symByte P)) (when (> (dec 'B (char \"0\")) 9) (ret ...\n  br label %$27\n$27:\n  %257 = phi i64 [%248, %$26], [%292, %$31] ; # Name\n  %258 = phi i64 [%249, %$26], [%293, %$31] ; # Scl\n  %259 = phi i8 [%250, %$26], [%294, %$31] ; # Sep\n  %260 = phi i8 [%251, %$26], [%295, %$31] ; # Ign\n  %261 = phi i64* [%252, %$26], [%296, %$31] ; # P\n  %262 = phi i64 [%253, %$26], [%297, %$31] ; # Num\n  %263 = phi i1 [%254, %$26], [%298, %$31] ; # Sign\n  %264 = phi i1 [%255, %$26], [%299, %$31] ; # Frac\n  %265 = phi i8 [%256, %$26], [%300, %$31] ; # B\n; # (symByte P)\n  %266 = call i8 @symByte(i64* %261)\n  %267 = icmp ne i8 %266, 0\n  br i1 %267, label %$28, label %$29\n$28:\n  %268 = phi i64 [%257, %$27] ; # Name\n  %269 = phi i64 [%258, %$27] ; # Scl\n  %270 = phi i8 [%259, %$27] ; # Sep\n  %271 = phi i8 [%260, %$27] ; # Ign\n  %272 = phi i64* [%261, %$27] ; # P\n  %273 = phi i64 [%262, %$27] ; # Num\n  %274 = phi i1 [%263, %$27] ; # Sign\n  %275 = phi i1 [%264, %$27] ; # Frac\n  %276 = phi i8 [%266, %$27] ; # B\n; # (when (> (dec 'B (char \"0\")) 9) (ret 0))\n; # (dec 'B (char \"0\"))\n  %277 = sub i8 %276, 48\n; # (> (dec 'B (char \"0\")) 9)\n  %278 = icmp ugt i8 %277, 9\n  br i1 %278, label %$30, label %$31\n$30:\n  %279 = phi i64 [%268, %$28] ; # Name\n  %280 = phi i64 [%269, %$28] ; # Scl\n  %281 = phi i8 [%270, %$28] ; # Sep\n  %282 = phi i8 [%271, %$28] ; # Ign\n  %283 = phi i64* [%272, %$28] ; # P\n  %284 = phi i64 [%273, %$28] ; # Num\n  %285 = phi i1 [%274, %$28] ; # Sign\n  %286 = phi i1 [%275, %$28] ; # Frac\n  %287 = phi i8 [%277, %$28] ; # B\n; # (ret 0)\n; # (drop *Safe)\n  %288 = inttoptr i64 %148 to i64*\n  %289 = getelementptr i64, i64* %288, i32 1\n  %290 = load i64, i64* %289\n  %291 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %290, i64* %291\n  ret i64 0\n$31:\n  %292 = phi i64 [%268, %$28] ; # Name\n  %293 = phi i64 [%269, %$28] ; # Scl\n  %294 = phi i8 [%270, %$28] ; # Sep\n  %295 = phi i8 [%271, %$28] ; # Ign\n  %296 = phi i64* [%272, %$28] ; # P\n  %297 = phi i64 [%273, %$28] ; # Num\n  %298 = phi i1 [%274, %$28] ; # Sign\n  %299 = phi i1 [%275, %$28] ; # Frac\n  %300 = phi i8 [%277, %$28] ; # B\n  br label %$27\n$29:\n  %301 = phi i64 [%257, %$27] ; # Name\n  %302 = phi i64 [%258, %$27] ; # Scl\n  %303 = phi i8 [%259, %$27] ; # Sep\n  %304 = phi i8 [%260, %$27] ; # Ign\n  %305 = phi i64* [%261, %$27] ; # P\n  %306 = phi i64 [%262, %$27] ; # Num\n  %307 = phi i1 [%263, %$27] ; # Sign\n  %308 = phi i1 [%264, %$27] ; # Frac\n  %309 = phi i8 [%266, %$27] ; # B\n  br label %$18\n$21:\n  %310 = phi i64 [%191, %$19] ; # Name\n  %311 = phi i64 [%192, %$19] ; # Scl\n  %312 = phi i8 [%193, %$19] ; # Sep\n  %313 = phi i8 [%194, %$19] ; # Ign\n  %314 = phi i64* [%195, %$19] ; # P\n  %315 = phi i64 [%196, %$19] ; # Num\n  %316 = phi i1 [%197, %$19] ; # Sign\n  %317 = phi i1 [%198, %$19] ; # Frac\n  %318 = phi i8 [%199, %$19] ; # B\n; # (cond ((== B Sep) (when Frac (ret 0)) (setq Frac YES)) ((<> B Ign...\n; # (== B Sep)\n  %319 = icmp eq i8 %318, %312\n  br i1 %319, label %$34, label %$33\n$34:\n  %320 = phi i64 [%310, %$21] ; # Name\n  %321 = phi i64 [%311, %$21] ; # Scl\n  %322 = phi i8 [%312, %$21] ; # Sep\n  %323 = phi i8 [%313, %$21] ; # Ign\n  %324 = phi i64* [%314, %$21] ; # P\n  %325 = phi i64 [%315, %$21] ; # Num\n  %326 = phi i1 [%316, %$21] ; # Sign\n  %327 = phi i1 [%317, %$21] ; # Frac\n  %328 = phi i8 [%318, %$21] ; # B\n; # (when Frac (ret 0))\n  br i1 %327, label %$35, label %$36\n$35:\n  %329 = phi i64 [%320, %$34] ; # Name\n  %330 = phi i64 [%321, %$34] ; # Scl\n  %331 = phi i8 [%322, %$34] ; # Sep\n  %332 = phi i8 [%323, %$34] ; # Ign\n  %333 = phi i64* [%324, %$34] ; # P\n  %334 = phi i64 [%325, %$34] ; # Num\n  %335 = phi i1 [%326, %$34] ; # Sign\n  %336 = phi i1 [%327, %$34] ; # Frac\n  %337 = phi i8 [%328, %$34] ; # B\n; # (ret 0)\n; # (drop *Safe)\n  %338 = inttoptr i64 %148 to i64*\n  %339 = getelementptr i64, i64* %338, i32 1\n  %340 = load i64, i64* %339\n  %341 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %340, i64* %341\n  ret i64 0\n$36:\n  %342 = phi i64 [%320, %$34] ; # Name\n  %343 = phi i64 [%321, %$34] ; # Scl\n  %344 = phi i8 [%322, %$34] ; # Sep\n  %345 = phi i8 [%323, %$34] ; # Ign\n  %346 = phi i64* [%324, %$34] ; # P\n  %347 = phi i64 [%325, %$34] ; # Num\n  %348 = phi i1 [%326, %$34] ; # Sign\n  %349 = phi i1 [%327, %$34] ; # Frac\n  %350 = phi i8 [%328, %$34] ; # B\n  br label %$32\n$33:\n  %351 = phi i64 [%310, %$21] ; # Name\n  %352 = phi i64 [%311, %$21] ; # Scl\n  %353 = phi i8 [%312, %$21] ; # Sep\n  %354 = phi i8 [%313, %$21] ; # Ign\n  %355 = phi i64* [%314, %$21] ; # P\n  %356 = phi i64 [%315, %$21] ; # Num\n  %357 = phi i1 [%316, %$21] ; # Sign\n  %358 = phi i1 [%317, %$21] ; # Frac\n  %359 = phi i8 [%318, %$21] ; # B\n; # (<> B Ign)\n  %360 = icmp ne i8 %359, %354\n  br i1 %360, label %$38, label %$37\n$38:\n  %361 = phi i64 [%351, %$33] ; # Name\n  %362 = phi i64 [%352, %$33] ; # Scl\n  %363 = phi i8 [%353, %$33] ; # Sep\n  %364 = phi i8 [%354, %$33] ; # Ign\n  %365 = phi i64* [%355, %$33] ; # P\n  %366 = phi i64 [%356, %$33] ; # Num\n  %367 = phi i1 [%357, %$33] ; # Sign\n  %368 = phi i1 [%358, %$33] ; # Frac\n  %369 = phi i8 [%359, %$33] ; # B\n; # (when (> (dec 'B (char \"0\")) 9) (ret 0))\n; # (dec 'B (char \"0\"))\n  %370 = sub i8 %369, 48\n; # (> (dec 'B (char \"0\")) 9)\n  %371 = icmp ugt i8 %370, 9\n  br i1 %371, label %$39, label %$40\n$39:\n  %372 = phi i64 [%361, %$38] ; # Name\n  %373 = phi i64 [%362, %$38] ; # Scl\n  %374 = phi i8 [%363, %$38] ; # Sep\n  %375 = phi i8 [%364, %$38] ; # Ign\n  %376 = phi i64* [%365, %$38] ; # P\n  %377 = phi i64 [%366, %$38] ; # Num\n  %378 = phi i1 [%367, %$38] ; # Sign\n  %379 = phi i1 [%368, %$38] ; # Frac\n  %380 = phi i8 [%370, %$38] ; # B\n; # (ret 0)\n; # (drop *Safe)\n  %381 = inttoptr i64 %148 to i64*\n  %382 = getelementptr i64, i64* %381, i32 1\n  %383 = load i64, i64* %382\n  %384 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %383, i64* %384\n  ret i64 0\n$40:\n  %385 = phi i64 [%361, %$38] ; # Name\n  %386 = phi i64 [%362, %$38] ; # Scl\n  %387 = phi i8 [%363, %$38] ; # Sep\n  %388 = phi i8 [%364, %$38] ; # Ign\n  %389 = phi i64* [%365, %$38] ; # P\n  %390 = phi i64 [%366, %$38] ; # Num\n  %391 = phi i1 [%367, %$38] ; # Sign\n  %392 = phi i1 [%368, %$38] ; # Frac\n  %393 = phi i8 [%370, %$38] ; # B\n; # (set Num (addu (tenfold (val Num)) (cnt (i64 B))))\n; # (val Num)\n  %394 = inttoptr i64 %390 to i64*\n  %395 = load i64, i64* %394\n; # (tenfold (val Num))\n  %396 = call i64 @tenfold(i64 %395)\n; # (i64 B)\n  %397 = zext i8 %393 to i64\n; # (cnt (i64 B))\n  %398 = shl i64 %397, 4\n  %399 = or i64 %398, 2\n; # (addu (tenfold (val Num)) (cnt (i64 B)))\n  %400 = call i64 @addu(i64 %396, i64 %399)\n  %401 = inttoptr i64 %390 to i64*\n  store i64 %400, i64* %401\n; # (when Frac (dec 'Scl))\n  br i1 %392, label %$41, label %$42\n$41:\n  %402 = phi i64 [%385, %$40] ; # Name\n  %403 = phi i64 [%386, %$40] ; # Scl\n  %404 = phi i8 [%387, %$40] ; # Sep\n  %405 = phi i8 [%388, %$40] ; # Ign\n  %406 = phi i64* [%389, %$40] ; # P\n  %407 = phi i64 [%390, %$40] ; # Num\n  %408 = phi i1 [%391, %$40] ; # Sign\n  %409 = phi i1 [%392, %$40] ; # Frac\n  %410 = phi i8 [%393, %$40] ; # B\n; # (dec 'Scl)\n  %411 = sub i64 %403, 1\n  br label %$42\n$42:\n  %412 = phi i64 [%385, %$40], [%402, %$41] ; # Name\n  %413 = phi i64 [%386, %$40], [%411, %$41] ; # Scl\n  %414 = phi i8 [%387, %$40], [%404, %$41] ; # Sep\n  %415 = phi i8 [%388, %$40], [%405, %$41] ; # Ign\n  %416 = phi i64* [%389, %$40], [%406, %$41] ; # P\n  %417 = phi i64 [%390, %$40], [%407, %$41] ; # Num\n  %418 = phi i1 [%391, %$40], [%408, %$41] ; # Sign\n  %419 = phi i1 [%392, %$40], [%409, %$41] ; # Frac\n  %420 = phi i8 [%393, %$40], [%410, %$41] ; # B\n  br label %$32\n$37:\n  %421 = phi i64 [%351, %$33] ; # Name\n  %422 = phi i64 [%352, %$33] ; # Scl\n  %423 = phi i8 [%353, %$33] ; # Sep\n  %424 = phi i8 [%354, %$33] ; # Ign\n  %425 = phi i64* [%355, %$33] ; # P\n  %426 = phi i64 [%356, %$33] ; # Num\n  %427 = phi i1 [%357, %$33] ; # Sign\n  %428 = phi i1 [%358, %$33] ; # Frac\n  %429 = phi i8 [%359, %$33] ; # B\n  br label %$32\n$32:\n  %430 = phi i64 [%342, %$36], [%412, %$42], [%421, %$37] ; # Name\n  %431 = phi i64 [%343, %$36], [%413, %$42], [%422, %$37] ; # Scl\n  %432 = phi i8 [%344, %$36], [%414, %$42], [%423, %$37] ; # Sep\n  %433 = phi i8 [%345, %$36], [%415, %$42], [%424, %$37] ; # Ign\n  %434 = phi i64* [%346, %$36], [%416, %$42], [%425, %$37] ; # P\n  %435 = phi i64 [%347, %$36], [%417, %$42], [%426, %$37] ; # Num\n  %436 = phi i1 [%348, %$36], [%418, %$42], [%427, %$37] ; # Sign\n  %437 = phi i1 [1, %$36], [%419, %$42], [%428, %$37] ; # Frac\n  %438 = phi i8 [%350, %$36], [%420, %$42], [%429, %$37] ; # B\n  br label %$16\n$18:\n  %439 = phi i64 [%161, %$16], [%301, %$29] ; # Name\n  %440 = phi i64 [%162, %$16], [%302, %$29] ; # Scl\n  %441 = phi i8 [%163, %$16], [%303, %$29] ; # Sep\n  %442 = phi i8 [%164, %$16], [%304, %$29] ; # Ign\n  %443 = phi i64* [%165, %$16], [%305, %$29] ; # P\n  %444 = phi i64 [%166, %$16], [%306, %$29] ; # Num\n  %445 = phi i1 [%167, %$16], [%307, %$29] ; # Sign\n  %446 = phi i1 [%168, %$16], [%308, %$29] ; # Frac\n  %447 = phi i8 [%170, %$16], [%309, %$29] ; # B\n; # (when Frac (while (ge0 (dec 'Scl)) (set Num (tenfold (val Num))))...\n  br i1 %446, label %$43, label %$44\n$43:\n  %448 = phi i64 [%439, %$18] ; # Name\n  %449 = phi i64 [%440, %$18] ; # Scl\n  %450 = phi i8 [%441, %$18] ; # Sep\n  %451 = phi i8 [%442, %$18] ; # Ign\n  %452 = phi i64* [%443, %$18] ; # P\n  %453 = phi i64 [%444, %$18] ; # Num\n  %454 = phi i1 [%445, %$18] ; # Sign\n  %455 = phi i1 [%446, %$18] ; # Frac\n  %456 = phi i8 [%447, %$18] ; # B\n; # (while (ge0 (dec 'Scl)) (set Num (tenfold (val Num))))\n  br label %$45\n$45:\n  %457 = phi i64 [%448, %$43], [%468, %$46] ; # Name\n  %458 = phi i64 [%449, %$43], [%469, %$46] ; # Scl\n  %459 = phi i8 [%450, %$43], [%470, %$46] ; # Sep\n  %460 = phi i8 [%451, %$43], [%471, %$46] ; # Ign\n  %461 = phi i64* [%452, %$43], [%472, %$46] ; # P\n  %462 = phi i64 [%453, %$43], [%473, %$46] ; # Num\n  %463 = phi i1 [%454, %$43], [%474, %$46] ; # Sign\n  %464 = phi i1 [%455, %$43], [%475, %$46] ; # Frac\n  %465 = phi i8 [%456, %$43], [%476, %$46] ; # B\n; # (dec 'Scl)\n  %466 = sub i64 %458, 1\n; # (ge0 (dec 'Scl))\n  %467 = icmp sge i64 %466, 0\n  br i1 %467, label %$46, label %$47\n$46:\n  %468 = phi i64 [%457, %$45] ; # Name\n  %469 = phi i64 [%466, %$45] ; # Scl\n  %470 = phi i8 [%459, %$45] ; # Sep\n  %471 = phi i8 [%460, %$45] ; # Ign\n  %472 = phi i64* [%461, %$45] ; # P\n  %473 = phi i64 [%462, %$45] ; # Num\n  %474 = phi i1 [%463, %$45] ; # Sign\n  %475 = phi i1 [%464, %$45] ; # Frac\n  %476 = phi i8 [%465, %$45] ; # B\n; # (set Num (tenfold (val Num)))\n; # (val Num)\n  %477 = inttoptr i64 %473 to i64*\n  %478 = load i64, i64* %477\n; # (tenfold (val Num))\n  %479 = call i64 @tenfold(i64 %478)\n  %480 = inttoptr i64 %473 to i64*\n  store i64 %479, i64* %480\n  br label %$45\n$47:\n  %481 = phi i64 [%457, %$45] ; # Name\n  %482 = phi i64 [%466, %$45] ; # Scl\n  %483 = phi i8 [%459, %$45] ; # Sep\n  %484 = phi i8 [%460, %$45] ; # Ign\n  %485 = phi i64* [%461, %$45] ; # P\n  %486 = phi i64 [%462, %$45] ; # Num\n  %487 = phi i1 [%463, %$45] ; # Sign\n  %488 = phi i1 [%464, %$45] ; # Frac\n  %489 = phi i8 [%465, %$45] ; # B\n  br label %$44\n$44:\n  %490 = phi i64 [%439, %$18], [%481, %$47] ; # Name\n  %491 = phi i64 [%440, %$18], [%482, %$47] ; # Scl\n  %492 = phi i8 [%441, %$18], [%483, %$47] ; # Sep\n  %493 = phi i8 [%442, %$18], [%484, %$47] ; # Ign\n  %494 = phi i64* [%443, %$18], [%485, %$47] ; # P\n  %495 = phi i64 [%444, %$18], [%486, %$47] ; # Num\n  %496 = phi i1 [%445, %$18], [%487, %$47] ; # Sign\n  %497 = phi i1 [%446, %$18], [%488, %$47] ; # Frac\n  %498 = phi i8 [%447, %$18], [%489, %$47] ; # B\n; # (val Num)\n  %499 = inttoptr i64 %495 to i64*\n  %500 = load i64, i64* %499\n; # (if Sign (neg Num) Num)\n  br i1 %496, label %$48, label %$49\n$48:\n  %501 = phi i64 [%490, %$44] ; # Name\n  %502 = phi i64 [%491, %$44] ; # Scl\n  %503 = phi i8 [%492, %$44] ; # Sep\n  %504 = phi i8 [%493, %$44] ; # Ign\n  %505 = phi i64* [%494, %$44] ; # P\n  %506 = phi i64 [%500, %$44] ; # Num\n  %507 = phi i1 [%496, %$44] ; # Sign\n  %508 = phi i1 [%497, %$44] ; # Frac\n  %509 = phi i8 [%498, %$44] ; # B\n; # (neg Num)\n  %510 = icmp eq i64 %506, 2\n  br i1 %510, label %$51, label %$52\n$51:\n  %511 = phi i64 [%506, %$48] ; # N\n  br label %$53\n$52:\n  %512 = phi i64 [%506, %$48] ; # N\n  %513 = xor i64 %512, 8\n  br label %$53\n$53:\n  %514 = phi i64 [%511, %$51], [%512, %$52] ; # N\n  %515 = phi i64 [%511, %$51], [%513, %$52] ; # ->\n  br label %$50\n$49:\n  %516 = phi i64 [%490, %$44] ; # Name\n  %517 = phi i64 [%491, %$44] ; # Scl\n  %518 = phi i8 [%492, %$44] ; # Sep\n  %519 = phi i8 [%493, %$44] ; # Ign\n  %520 = phi i64* [%494, %$44] ; # P\n  %521 = phi i64 [%500, %$44] ; # Num\n  %522 = phi i1 [%496, %$44] ; # Sign\n  %523 = phi i1 [%497, %$44] ; # Frac\n  %524 = phi i8 [%498, %$44] ; # B\n  br label %$50\n$50:\n  %525 = phi i64 [%501, %$53], [%516, %$49] ; # Name\n  %526 = phi i64 [%502, %$53], [%517, %$49] ; # Scl\n  %527 = phi i8 [%503, %$53], [%518, %$49] ; # Sep\n  %528 = phi i8 [%504, %$53], [%519, %$49] ; # Ign\n  %529 = phi i64* [%505, %$53], [%520, %$49] ; # P\n  %530 = phi i64 [%506, %$53], [%521, %$49] ; # Num\n  %531 = phi i1 [%507, %$53], [%522, %$49] ; # Sign\n  %532 = phi i1 [%508, %$53], [%523, %$49] ; # Frac\n  %533 = phi i8 [%509, %$53], [%524, %$49] ; # B\n  %534 = phi i64 [%515, %$53], [%521, %$49] ; # ->\n; # (drop *Safe)\n  %535 = inttoptr i64 %148 to i64*\n  %536 = getelementptr i64, i64* %535, i32 1\n  %537 = load i64, i64* %536\n  %538 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %537, i64* %538\n  ret i64 %534\n}\n\ndefine i64 @fmtScl(i64, i64, i8, i8, i64*) align 8 {\n$1:\n; # (when (> N 9) (setq Scl (fmtScl (/ N 10) Scl Sep Ign P)) (cond ((...\n; # (> N 9)\n  %5 = icmp ugt i64 %0, 9\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # N\n  %7 = phi i64 [%1, %$1] ; # Scl\n  %8 = phi i8 [%2, %$1] ; # Sep\n  %9 = phi i8 [%3, %$1] ; # Ign\n  %10 = phi i64* [%4, %$1] ; # P\n; # (/ N 10)\n  %11 = udiv i64 %6, 10\n; # (fmtScl (/ N 10) Scl Sep Ign P)\n  %12 = call i64 @fmtScl(i64 %11, i64 %7, i8 %8, i8 %9, i64* %10)\n; # (cond ((=0 Scl) (byteSym Sep P)) ((and Ign (gt0 Scl) (=0 (% Scl 3...\n; # (=0 Scl)\n  %13 = icmp eq i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%6, %$2] ; # N\n  %15 = phi i64 [%12, %$2] ; # Scl\n  %16 = phi i8 [%8, %$2] ; # Sep\n  %17 = phi i8 [%9, %$2] ; # Ign\n  %18 = phi i64* [%10, %$2] ; # P\n; # (byteSym Sep P)\n  call void @byteSym(i8 %16, i64* %18)\n  br label %$4\n$5:\n  %19 = phi i64 [%6, %$2] ; # N\n  %20 = phi i64 [%12, %$2] ; # Scl\n  %21 = phi i8 [%8, %$2] ; # Sep\n  %22 = phi i8 [%9, %$2] ; # Ign\n  %23 = phi i64* [%10, %$2] ; # P\n; # (and Ign (gt0 Scl) (=0 (% Scl 3)))\n  %24 = icmp ne i8 %22, 0\n  br i1 %24, label %$8, label %$7\n$8:\n  %25 = phi i64 [%19, %$5] ; # N\n  %26 = phi i64 [%20, %$5] ; # Scl\n  %27 = phi i8 [%21, %$5] ; # Sep\n  %28 = phi i8 [%22, %$5] ; # Ign\n  %29 = phi i64* [%23, %$5] ; # P\n; # (gt0 Scl)\n  %30 = icmp sgt i64 %26, 0\n  br i1 %30, label %$9, label %$7\n$9:\n  %31 = phi i64 [%25, %$8] ; # N\n  %32 = phi i64 [%26, %$8] ; # Scl\n  %33 = phi i8 [%27, %$8] ; # Sep\n  %34 = phi i8 [%28, %$8] ; # Ign\n  %35 = phi i64* [%29, %$8] ; # P\n; # (% Scl 3)\n  %36 = urem i64 %32, 3\n; # (=0 (% Scl 3))\n  %37 = icmp eq i64 %36, 0\n  br label %$7\n$7:\n  %38 = phi i64 [%19, %$5], [%25, %$8], [%31, %$9] ; # N\n  %39 = phi i64 [%20, %$5], [%26, %$8], [%32, %$9] ; # Scl\n  %40 = phi i8 [%21, %$5], [%27, %$8], [%33, %$9] ; # Sep\n  %41 = phi i8 [%22, %$5], [%28, %$8], [%34, %$9] ; # Ign\n  %42 = phi i64* [%23, %$5], [%29, %$8], [%35, %$9] ; # P\n  %43 = phi i1 [0, %$5], [0, %$8], [%37, %$9] ; # ->\n  br i1 %43, label %$11, label %$10\n$11:\n  %44 = phi i64 [%38, %$7] ; # N\n  %45 = phi i64 [%39, %$7] ; # Scl\n  %46 = phi i8 [%40, %$7] ; # Sep\n  %47 = phi i8 [%41, %$7] ; # Ign\n  %48 = phi i64* [%42, %$7] ; # P\n; # (byteSym Ign P)\n  call void @byteSym(i8 %47, i64* %48)\n  br label %$4\n$10:\n  %49 = phi i64 [%38, %$7] ; # N\n  %50 = phi i64 [%39, %$7] ; # Scl\n  %51 = phi i8 [%40, %$7] ; # Sep\n  %52 = phi i8 [%41, %$7] ; # Ign\n  %53 = phi i64* [%42, %$7] ; # P\n  br label %$4\n$4:\n  %54 = phi i64 [%14, %$6], [%44, %$11], [%49, %$10] ; # N\n  %55 = phi i64 [%15, %$6], [%45, %$11], [%50, %$10] ; # Scl\n  %56 = phi i8 [%16, %$6], [%46, %$11], [%51, %$10] ; # Sep\n  %57 = phi i8 [%17, %$6], [%47, %$11], [%52, %$10] ; # Ign\n  %58 = phi i64* [%18, %$6], [%48, %$11], [%53, %$10] ; # P\n; # (dec 'Scl)\n  %59 = sub i64 %55, 1\n; # (% N 10)\n  %60 = urem i64 %54, 10\n  br label %$3\n$3:\n  %61 = phi i64 [%0, %$1], [%60, %$4] ; # N\n  %62 = phi i64 [%1, %$1], [%59, %$4] ; # Scl\n  %63 = phi i8 [%2, %$1], [%56, %$4] ; # Sep\n  %64 = phi i8 [%3, %$1], [%57, %$4] ; # Ign\n  %65 = phi i64* [%4, %$1], [%58, %$4] ; # P\n; # (i8 N)\n  %66 = trunc i64 %61 to i8\n; # (+ (i8 N) (char \"0\"))\n  %67 = add i8 %66, 48\n; # (byteSym (+ (i8 N) (char \"0\")) P)\n  call void @byteSym(i8 %67, i64* %65)\n  ret i64 %62\n}\n\ndefine i64 @outScl(i64, i64, i8) align 8 {\n$1:\n; # (when (> N 9) (setq Scl (outScl (/ N 10) Scl Sep)) (when (=0 Scl)...\n; # (> N 9)\n  %3 = icmp ugt i64 %0, 9\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # N\n  %5 = phi i64 [%1, %$1] ; # Scl\n  %6 = phi i8 [%2, %$1] ; # Sep\n; # (/ N 10)\n  %7 = udiv i64 %4, 10\n; # (outScl (/ N 10) Scl Sep)\n  %8 = call i64 @outScl(i64 %7, i64 %5, i8 %6)\n; # (when (=0 Scl) (call $Put Sep))\n; # (=0 Scl)\n  %9 = icmp eq i64 %8, 0\n  br i1 %9, label %$4, label %$5\n$4:\n  %10 = phi i64 [%4, %$2] ; # N\n  %11 = phi i64 [%8, %$2] ; # Scl\n  %12 = phi i8 [%6, %$2] ; # Sep\n; # (call $Put Sep)\n  %13 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %13(i8 %12)\n  br label %$5\n$5:\n  %14 = phi i64 [%4, %$2], [%10, %$4] ; # N\n  %15 = phi i64 [%8, %$2], [%11, %$4] ; # Scl\n  %16 = phi i8 [%6, %$2], [%12, %$4] ; # Sep\n; # (dec 'Scl)\n  %17 = sub i64 %15, 1\n; # (% N 10)\n  %18 = urem i64 %14, 10\n  br label %$3\n$3:\n  %19 = phi i64 [%0, %$1], [%18, %$5] ; # N\n  %20 = phi i64 [%1, %$1], [%17, %$5] ; # Scl\n  %21 = phi i8 [%2, %$1], [%16, %$5] ; # Sep\n; # (i8 N)\n  %22 = trunc i64 %19 to i8\n; # (+ (i8 N) (char \"0\"))\n  %23 = add i8 %22, 48\n; # (call $Put (+ (i8 N) (char \"0\")))\n  %24 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %24(i8 %23)\n  ret i64 %20\n}\n\ndefine i64 @fmtNum(i64, i64, i8, i8, i64*) align 8 {\n$1:\n; # (let (Sign (sign? Num) Len (+ 19 17)) (let N (setq Num (& Num -9)...\n; # (sign? Num)\n  %5 = and i64 %0, 8\n  %6 = icmp ne i64 %5, 0\n; # (+ 19 17)\n; # (let N (setq Num (& Num -9)) (until (cnt? N) (inc 'Len 20) (setq ...\n; # (& Num -9)\n  %7 = and i64 %0, -9\n; # (until (cnt? N) (inc 'Len 20) (setq N (val (big N))))\n  br label %$2\n$2:\n  %8 = phi i64 [%7, %$1], [%18, %$3] ; # Num\n  %9 = phi i64 [%1, %$1], [%19, %$3] ; # Scl\n  %10 = phi i8 [%2, %$1], [%20, %$3] ; # Sep\n  %11 = phi i8 [%3, %$1], [%21, %$3] ; # Ign\n  %12 = phi i64* [%4, %$1], [%22, %$3] ; # P\n  %13 = phi i1 [%6, %$1], [%23, %$3] ; # Sign\n  %14 = phi i64 [36, %$1], [%26, %$3] ; # Len\n  %15 = phi i64 [%7, %$1], [%29, %$3] ; # N\n; # (cnt? N)\n  %16 = and i64 %15, 2\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$3:\n  %18 = phi i64 [%8, %$2] ; # Num\n  %19 = phi i64 [%9, %$2] ; # Scl\n  %20 = phi i8 [%10, %$2] ; # Sep\n  %21 = phi i8 [%11, %$2] ; # Ign\n  %22 = phi i64* [%12, %$2] ; # P\n  %23 = phi i1 [%13, %$2] ; # Sign\n  %24 = phi i64 [%14, %$2] ; # Len\n  %25 = phi i64 [%15, %$2] ; # N\n; # (inc 'Len 20)\n  %26 = add i64 %24, 20\n; # (big N)\n  %27 = add i64 %25, 4\n; # (val (big N))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$2\n$4:\n  %30 = phi i64 [%8, %$2] ; # Num\n  %31 = phi i64 [%9, %$2] ; # Scl\n  %32 = phi i8 [%10, %$2] ; # Sep\n  %33 = phi i8 [%11, %$2] ; # Ign\n  %34 = phi i64* [%12, %$2] ; # P\n  %35 = phi i1 [%13, %$2] ; # Sign\n  %36 = phi i64 [%14, %$2] ; # Len\n  %37 = phi i64 [%15, %$2] ; # N\n; # (/ Len 18)\n  %38 = udiv i64 %36, 18\n; # (let (Acc (b64 Len) TopA Acc) (let (Inc (b64 Len) TopI Inc) (set ...\n; # (b64 Len)\n  %39 = alloca i64, i64 %38\n; # (let (Inc (b64 Len) TopI Inc) (set Acc 0 Inc 1) (loop (let (Dig N...\n; # (b64 Len)\n  %40 = alloca i64, i64 %38\n; # (set Acc 0 Inc 1)\n  store i64 0, i64* %39\n  store i64 1, i64* %40\n; # (loop (let (Dig Num Mask 16) (when (big? Num) (setq Dig (val (dig...\n  br label %$5\n$5:\n  %41 = phi i64 [%30, %$4], [%480, %$31] ; # Num\n  %42 = phi i64 [%31, %$4], [%468, %$31] ; # Scl\n  %43 = phi i8 [%32, %$4], [%469, %$31] ; # Sep\n  %44 = phi i8 [%33, %$4], [%470, %$31] ; # Ign\n  %45 = phi i64* [%34, %$4], [%471, %$31] ; # P\n  %46 = phi i1 [%35, %$4], [%472, %$31] ; # Sign\n  %47 = phi i64 [%38, %$4], [%473, %$31] ; # Len\n  %48 = phi i64* [%39, %$4], [%474, %$31] ; # Acc\n  %49 = phi i64* [%39, %$4], [%475, %$31] ; # TopA\n  %50 = phi i64* [%40, %$4], [%476, %$31] ; # Inc\n  %51 = phi i64* [%40, %$4], [%477, %$31] ; # TopI\n; # (let (Dig Num Mask 16) (when (big? Num) (setq Dig (val (dig Num))...\n; # (when (big? Num) (setq Dig (val (dig Num)) Mask 1))\n; # (big? Num)\n  %52 = and i64 %41, 4\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$6, label %$7\n$6:\n  %54 = phi i64 [%41, %$5] ; # Num\n  %55 = phi i64 [%42, %$5] ; # Scl\n  %56 = phi i8 [%43, %$5] ; # Sep\n  %57 = phi i8 [%44, %$5] ; # Ign\n  %58 = phi i64* [%45, %$5] ; # P\n  %59 = phi i1 [%46, %$5] ; # Sign\n  %60 = phi i64 [%47, %$5] ; # Len\n  %61 = phi i64* [%48, %$5] ; # Acc\n  %62 = phi i64* [%49, %$5] ; # TopA\n  %63 = phi i64* [%50, %$5] ; # Inc\n  %64 = phi i64* [%51, %$5] ; # TopI\n  %65 = phi i64 [%41, %$5] ; # Dig\n  %66 = phi i64 [16, %$5] ; # Mask\n; # (dig Num)\n  %67 = add i64 %54, -4\n; # (val (dig Num))\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n  br label %$7\n$7:\n  %70 = phi i64 [%41, %$5], [%54, %$6] ; # Num\n  %71 = phi i64 [%42, %$5], [%55, %$6] ; # Scl\n  %72 = phi i8 [%43, %$5], [%56, %$6] ; # Sep\n  %73 = phi i8 [%44, %$5], [%57, %$6] ; # Ign\n  %74 = phi i64* [%45, %$5], [%58, %$6] ; # P\n  %75 = phi i1 [%46, %$5], [%59, %$6] ; # Sign\n  %76 = phi i64 [%47, %$5], [%60, %$6] ; # Len\n  %77 = phi i64* [%48, %$5], [%61, %$6] ; # Acc\n  %78 = phi i64* [%49, %$5], [%62, %$6] ; # TopA\n  %79 = phi i64* [%50, %$5], [%63, %$6] ; # Inc\n  %80 = phi i64* [%51, %$5], [%64, %$6] ; # TopI\n  %81 = phi i64 [%41, %$5], [%69, %$6] ; # Dig\n  %82 = phi i64 [16, %$5], [1, %$6] ; # Mask\n; # (loop (when (& Dig Mask) (let (A Acc I Inc C 0) (loop (let N (+ (...\n  br label %$8\n$8:\n  %83 = phi i64 [%70, %$7], [%438, %$29] ; # Num\n  %84 = phi i64 [%71, %$7], [%439, %$29] ; # Scl\n  %85 = phi i8 [%72, %$7], [%440, %$29] ; # Sep\n  %86 = phi i8 [%73, %$7], [%441, %$29] ; # Ign\n  %87 = phi i64* [%74, %$7], [%442, %$29] ; # P\n  %88 = phi i1 [%75, %$7], [%443, %$29] ; # Sign\n  %89 = phi i64 [%76, %$7], [%444, %$29] ; # Len\n  %90 = phi i64* [%77, %$7], [%445, %$29] ; # Acc\n  %91 = phi i64* [%78, %$7], [%446, %$29] ; # TopA\n  %92 = phi i64* [%79, %$7], [%447, %$29] ; # Inc\n  %93 = phi i64* [%80, %$7], [%448, %$29] ; # TopI\n  %94 = phi i64 [%81, %$7], [%449, %$29] ; # Dig\n  %95 = phi i64 [%82, %$7], [%450, %$29] ; # Mask\n; # (when (& Dig Mask) (let (A Acc I Inc C 0) (loop (let N (+ (val A)...\n; # (& Dig Mask)\n  %96 = and i64 %94, %95\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$9, label %$10\n$9:\n  %98 = phi i64 [%83, %$8] ; # Num\n  %99 = phi i64 [%84, %$8] ; # Scl\n  %100 = phi i8 [%85, %$8] ; # Sep\n  %101 = phi i8 [%86, %$8] ; # Ign\n  %102 = phi i64* [%87, %$8] ; # P\n  %103 = phi i1 [%88, %$8] ; # Sign\n  %104 = phi i64 [%89, %$8] ; # Len\n  %105 = phi i64* [%90, %$8] ; # Acc\n  %106 = phi i64* [%91, %$8] ; # TopA\n  %107 = phi i64* [%92, %$8] ; # Inc\n  %108 = phi i64* [%93, %$8] ; # TopI\n  %109 = phi i64 [%94, %$8] ; # Dig\n  %110 = phi i64 [%95, %$8] ; # Mask\n; # (let (A Acc I Inc C 0) (loop (let N (+ (val A) (val I) C) (setq C...\n; # (loop (let N (+ (val A) (val I) C) (setq C (if (> 100000000000000...\n  br label %$11\n$11:\n  %111 = phi i64 [%98, %$9], [%222, %$18] ; # Num\n  %112 = phi i64 [%99, %$9], [%223, %$18] ; # Scl\n  %113 = phi i8 [%100, %$9], [%224, %$18] ; # Sep\n  %114 = phi i8 [%101, %$9], [%225, %$18] ; # Ign\n  %115 = phi i64* [%102, %$9], [%226, %$18] ; # P\n  %116 = phi i1 [%103, %$9], [%227, %$18] ; # Sign\n  %117 = phi i64 [%104, %$9], [%228, %$18] ; # Len\n  %118 = phi i64* [%105, %$9], [%229, %$18] ; # Acc\n  %119 = phi i64* [%106, %$9], [%230, %$18] ; # TopA\n  %120 = phi i64* [%107, %$9], [%231, %$18] ; # Inc\n  %121 = phi i64* [%108, %$9], [%232, %$18] ; # TopI\n  %122 = phi i64 [%109, %$9], [%233, %$18] ; # Dig\n  %123 = phi i64 [%110, %$9], [%234, %$18] ; # Mask\n  %124 = phi i64* [%105, %$9], [%235, %$18] ; # A\n  %125 = phi i64* [%107, %$9], [%236, %$18] ; # I\n  %126 = phi i64 [0, %$9], [%237, %$18] ; # C\n; # (let N (+ (val A) (val I) C) (setq C (if (> 1000000000000000000 N...\n; # (val A)\n  %127 = load i64, i64* %124\n; # (val I)\n  %128 = load i64, i64* %125\n; # (+ (val A) (val I) C)\n  %129 = add i64 %127, %128\n  %130 = add i64 %129, %126\n; # (if (> 1000000000000000000 N) 0 (dec 'N 1000000000000000000) 1)\n; # (> 1000000000000000000 N)\n  %131 = icmp ugt i64 1000000000000000000, %130\n  br i1 %131, label %$12, label %$13\n$12:\n  %132 = phi i64 [%111, %$11] ; # Num\n  %133 = phi i64 [%112, %$11] ; # Scl\n  %134 = phi i8 [%113, %$11] ; # Sep\n  %135 = phi i8 [%114, %$11] ; # Ign\n  %136 = phi i64* [%115, %$11] ; # P\n  %137 = phi i1 [%116, %$11] ; # Sign\n  %138 = phi i64 [%117, %$11] ; # Len\n  %139 = phi i64* [%118, %$11] ; # Acc\n  %140 = phi i64* [%119, %$11] ; # TopA\n  %141 = phi i64* [%120, %$11] ; # Inc\n  %142 = phi i64* [%121, %$11] ; # TopI\n  %143 = phi i64 [%122, %$11] ; # Dig\n  %144 = phi i64 [%123, %$11] ; # Mask\n  %145 = phi i64* [%124, %$11] ; # A\n  %146 = phi i64* [%125, %$11] ; # I\n  %147 = phi i64 [%126, %$11] ; # C\n  %148 = phi i64 [%130, %$11] ; # N\n  br label %$14\n$13:\n  %149 = phi i64 [%111, %$11] ; # Num\n  %150 = phi i64 [%112, %$11] ; # Scl\n  %151 = phi i8 [%113, %$11] ; # Sep\n  %152 = phi i8 [%114, %$11] ; # Ign\n  %153 = phi i64* [%115, %$11] ; # P\n  %154 = phi i1 [%116, %$11] ; # Sign\n  %155 = phi i64 [%117, %$11] ; # Len\n  %156 = phi i64* [%118, %$11] ; # Acc\n  %157 = phi i64* [%119, %$11] ; # TopA\n  %158 = phi i64* [%120, %$11] ; # Inc\n  %159 = phi i64* [%121, %$11] ; # TopI\n  %160 = phi i64 [%122, %$11] ; # Dig\n  %161 = phi i64 [%123, %$11] ; # Mask\n  %162 = phi i64* [%124, %$11] ; # A\n  %163 = phi i64* [%125, %$11] ; # I\n  %164 = phi i64 [%126, %$11] ; # C\n  %165 = phi i64 [%130, %$11] ; # N\n; # (dec 'N 1000000000000000000)\n  %166 = sub i64 %165, 1000000000000000000\n  br label %$14\n$14:\n  %167 = phi i64 [%132, %$12], [%149, %$13] ; # Num\n  %168 = phi i64 [%133, %$12], [%150, %$13] ; # Scl\n  %169 = phi i8 [%134, %$12], [%151, %$13] ; # Sep\n  %170 = phi i8 [%135, %$12], [%152, %$13] ; # Ign\n  %171 = phi i64* [%136, %$12], [%153, %$13] ; # P\n  %172 = phi i1 [%137, %$12], [%154, %$13] ; # Sign\n  %173 = phi i64 [%138, %$12], [%155, %$13] ; # Len\n  %174 = phi i64* [%139, %$12], [%156, %$13] ; # Acc\n  %175 = phi i64* [%140, %$12], [%157, %$13] ; # TopA\n  %176 = phi i64* [%141, %$12], [%158, %$13] ; # Inc\n  %177 = phi i64* [%142, %$12], [%159, %$13] ; # TopI\n  %178 = phi i64 [%143, %$12], [%160, %$13] ; # Dig\n  %179 = phi i64 [%144, %$12], [%161, %$13] ; # Mask\n  %180 = phi i64* [%145, %$12], [%162, %$13] ; # A\n  %181 = phi i64* [%146, %$12], [%163, %$13] ; # I\n  %182 = phi i64 [%147, %$12], [%164, %$13] ; # C\n  %183 = phi i64 [%148, %$12], [%166, %$13] ; # N\n  %184 = phi i64 [0, %$12], [1, %$13] ; # ->\n; # (set A N)\n  store i64 %183, i64* %180\n; # (? (> (inc 'I) TopI))\n; # (inc 'I)\n  %185 = getelementptr i64, i64* %181, i32 1\n; # (> (inc 'I) TopI)\n  %186 = icmp ugt i64* %185, %177\n  br i1 %186, label %$16, label %$15\n$15:\n  %187 = phi i64 [%167, %$14] ; # Num\n  %188 = phi i64 [%168, %$14] ; # Scl\n  %189 = phi i8 [%169, %$14] ; # Sep\n  %190 = phi i8 [%170, %$14] ; # Ign\n  %191 = phi i64* [%171, %$14] ; # P\n  %192 = phi i1 [%172, %$14] ; # Sign\n  %193 = phi i64 [%173, %$14] ; # Len\n  %194 = phi i64* [%174, %$14] ; # Acc\n  %195 = phi i64* [%175, %$14] ; # TopA\n  %196 = phi i64* [%176, %$14] ; # Inc\n  %197 = phi i64* [%177, %$14] ; # TopI\n  %198 = phi i64 [%178, %$14] ; # Dig\n  %199 = phi i64 [%179, %$14] ; # Mask\n  %200 = phi i64* [%180, %$14] ; # A\n  %201 = phi i64* [%185, %$14] ; # I\n  %202 = phi i64 [%184, %$14] ; # C\n; # (when (> (inc 'A) TopA) (inc 'TopA) (set A 0))\n; # (inc 'A)\n  %203 = getelementptr i64, i64* %200, i32 1\n; # (> (inc 'A) TopA)\n  %204 = icmp ugt i64* %203, %195\n  br i1 %204, label %$17, label %$18\n$17:\n  %205 = phi i64 [%187, %$15] ; # Num\n  %206 = phi i64 [%188, %$15] ; # Scl\n  %207 = phi i8 [%189, %$15] ; # Sep\n  %208 = phi i8 [%190, %$15] ; # Ign\n  %209 = phi i64* [%191, %$15] ; # P\n  %210 = phi i1 [%192, %$15] ; # Sign\n  %211 = phi i64 [%193, %$15] ; # Len\n  %212 = phi i64* [%194, %$15] ; # Acc\n  %213 = phi i64* [%195, %$15] ; # TopA\n  %214 = phi i64* [%196, %$15] ; # Inc\n  %215 = phi i64* [%197, %$15] ; # TopI\n  %216 = phi i64 [%198, %$15] ; # Dig\n  %217 = phi i64 [%199, %$15] ; # Mask\n  %218 = phi i64* [%203, %$15] ; # A\n  %219 = phi i64* [%201, %$15] ; # I\n  %220 = phi i64 [%202, %$15] ; # C\n; # (inc 'TopA)\n  %221 = getelementptr i64, i64* %213, i32 1\n; # (set A 0)\n  store i64 0, i64* %218\n  br label %$18\n$18:\n  %222 = phi i64 [%187, %$15], [%205, %$17] ; # Num\n  %223 = phi i64 [%188, %$15], [%206, %$17] ; # Scl\n  %224 = phi i8 [%189, %$15], [%207, %$17] ; # Sep\n  %225 = phi i8 [%190, %$15], [%208, %$17] ; # Ign\n  %226 = phi i64* [%191, %$15], [%209, %$17] ; # P\n  %227 = phi i1 [%192, %$15], [%210, %$17] ; # Sign\n  %228 = phi i64 [%193, %$15], [%211, %$17] ; # Len\n  %229 = phi i64* [%194, %$15], [%212, %$17] ; # Acc\n  %230 = phi i64* [%195, %$15], [%221, %$17] ; # TopA\n  %231 = phi i64* [%196, %$15], [%214, %$17] ; # Inc\n  %232 = phi i64* [%197, %$15], [%215, %$17] ; # TopI\n  %233 = phi i64 [%198, %$15], [%216, %$17] ; # Dig\n  %234 = phi i64 [%199, %$15], [%217, %$17] ; # Mask\n  %235 = phi i64* [%203, %$15], [%218, %$17] ; # A\n  %236 = phi i64* [%201, %$15], [%219, %$17] ; # I\n  %237 = phi i64 [%202, %$15], [%220, %$17] ; # C\n  br label %$11\n$16:\n  %238 = phi i64 [%167, %$14] ; # Num\n  %239 = phi i64 [%168, %$14] ; # Scl\n  %240 = phi i8 [%169, %$14] ; # Sep\n  %241 = phi i8 [%170, %$14] ; # Ign\n  %242 = phi i64* [%171, %$14] ; # P\n  %243 = phi i1 [%172, %$14] ; # Sign\n  %244 = phi i64 [%173, %$14] ; # Len\n  %245 = phi i64* [%174, %$14] ; # Acc\n  %246 = phi i64* [%175, %$14] ; # TopA\n  %247 = phi i64* [%176, %$14] ; # Inc\n  %248 = phi i64* [%177, %$14] ; # TopI\n  %249 = phi i64 [%178, %$14] ; # Dig\n  %250 = phi i64 [%179, %$14] ; # Mask\n  %251 = phi i64* [%180, %$14] ; # A\n  %252 = phi i64* [%185, %$14] ; # I\n  %253 = phi i64 [%184, %$14] ; # C\n  %254 = phi i64 [0, %$14] ; # ->\n; # (when C (set (inc 'TopA) 1))\n  %255 = icmp ne i64 %253, 0\n  br i1 %255, label %$19, label %$20\n$19:\n  %256 = phi i64 [%238, %$16] ; # Num\n  %257 = phi i64 [%239, %$16] ; # Scl\n  %258 = phi i8 [%240, %$16] ; # Sep\n  %259 = phi i8 [%241, %$16] ; # Ign\n  %260 = phi i64* [%242, %$16] ; # P\n  %261 = phi i1 [%243, %$16] ; # Sign\n  %262 = phi i64 [%244, %$16] ; # Len\n  %263 = phi i64* [%245, %$16] ; # Acc\n  %264 = phi i64* [%246, %$16] ; # TopA\n  %265 = phi i64* [%247, %$16] ; # Inc\n  %266 = phi i64* [%248, %$16] ; # TopI\n  %267 = phi i64 [%249, %$16] ; # Dig\n  %268 = phi i64 [%250, %$16] ; # Mask\n  %269 = phi i64* [%251, %$16] ; # A\n  %270 = phi i64* [%252, %$16] ; # I\n  %271 = phi i64 [%253, %$16] ; # C\n; # (set (inc 'TopA) 1)\n; # (inc 'TopA)\n  %272 = getelementptr i64, i64* %264, i32 1\n  store i64 1, i64* %272\n  br label %$20\n$20:\n  %273 = phi i64 [%238, %$16], [%256, %$19] ; # Num\n  %274 = phi i64 [%239, %$16], [%257, %$19] ; # Scl\n  %275 = phi i8 [%240, %$16], [%258, %$19] ; # Sep\n  %276 = phi i8 [%241, %$16], [%259, %$19] ; # Ign\n  %277 = phi i64* [%242, %$16], [%260, %$19] ; # P\n  %278 = phi i1 [%243, %$16], [%261, %$19] ; # Sign\n  %279 = phi i64 [%244, %$16], [%262, %$19] ; # Len\n  %280 = phi i64* [%245, %$16], [%263, %$19] ; # Acc\n  %281 = phi i64* [%246, %$16], [%272, %$19] ; # TopA\n  %282 = phi i64* [%247, %$16], [%265, %$19] ; # Inc\n  %283 = phi i64* [%248, %$16], [%266, %$19] ; # TopI\n  %284 = phi i64 [%249, %$16], [%267, %$19] ; # Dig\n  %285 = phi i64 [%250, %$16], [%268, %$19] ; # Mask\n  %286 = phi i64* [%251, %$16], [%269, %$19] ; # A\n  %287 = phi i64* [%252, %$16], [%270, %$19] ; # I\n  %288 = phi i64 [%253, %$16], [%271, %$19] ; # C\n  br label %$10\n$10:\n  %289 = phi i64 [%83, %$8], [%273, %$20] ; # Num\n  %290 = phi i64 [%84, %$8], [%274, %$20] ; # Scl\n  %291 = phi i8 [%85, %$8], [%275, %$20] ; # Sep\n  %292 = phi i8 [%86, %$8], [%276, %$20] ; # Ign\n  %293 = phi i64* [%87, %$8], [%277, %$20] ; # P\n  %294 = phi i1 [%88, %$8], [%278, %$20] ; # Sign\n  %295 = phi i64 [%89, %$8], [%279, %$20] ; # Len\n  %296 = phi i64* [%90, %$8], [%280, %$20] ; # Acc\n  %297 = phi i64* [%91, %$8], [%281, %$20] ; # TopA\n  %298 = phi i64* [%92, %$8], [%282, %$20] ; # Inc\n  %299 = phi i64* [%93, %$8], [%283, %$20] ; # TopI\n  %300 = phi i64 [%94, %$8], [%284, %$20] ; # Dig\n  %301 = phi i64 [%95, %$8], [%285, %$20] ; # Mask\n; # (let (I Inc C 0) (loop (let N (val I) (setq C (if (> 100000000000...\n; # (loop (let N (val I) (setq C (if (> 1000000000000000000 (setq N (...\n  br label %$21\n$21:\n  %302 = phi i64 [%289, %$10], [%373, %$25] ; # Num\n  %303 = phi i64 [%290, %$10], [%374, %$25] ; # Scl\n  %304 = phi i8 [%291, %$10], [%375, %$25] ; # Sep\n  %305 = phi i8 [%292, %$10], [%376, %$25] ; # Ign\n  %306 = phi i64* [%293, %$10], [%377, %$25] ; # P\n  %307 = phi i1 [%294, %$10], [%378, %$25] ; # Sign\n  %308 = phi i64 [%295, %$10], [%379, %$25] ; # Len\n  %309 = phi i64* [%296, %$10], [%380, %$25] ; # Acc\n  %310 = phi i64* [%297, %$10], [%381, %$25] ; # TopA\n  %311 = phi i64* [%298, %$10], [%382, %$25] ; # Inc\n  %312 = phi i64* [%299, %$10], [%383, %$25] ; # TopI\n  %313 = phi i64 [%300, %$10], [%384, %$25] ; # Dig\n  %314 = phi i64 [%301, %$10], [%385, %$25] ; # Mask\n  %315 = phi i64* [%298, %$10], [%386, %$25] ; # I\n  %316 = phi i64 [0, %$10], [%387, %$25] ; # C\n; # (let N (val I) (setq C (if (> 1000000000000000000 (setq N (+ N N ...\n; # (val I)\n  %317 = load i64, i64* %315\n; # (if (> 1000000000000000000 (setq N (+ N N C))) 0 (dec 'N 10000000...\n; # (+ N N C)\n  %318 = add i64 %317, %317\n  %319 = add i64 %318, %316\n; # (> 1000000000000000000 (setq N (+ N N C)))\n  %320 = icmp ugt i64 1000000000000000000, %319\n  br i1 %320, label %$22, label %$23\n$22:\n  %321 = phi i64 [%302, %$21] ; # Num\n  %322 = phi i64 [%303, %$21] ; # Scl\n  %323 = phi i8 [%304, %$21] ; # Sep\n  %324 = phi i8 [%305, %$21] ; # Ign\n  %325 = phi i64* [%306, %$21] ; # P\n  %326 = phi i1 [%307, %$21] ; # Sign\n  %327 = phi i64 [%308, %$21] ; # Len\n  %328 = phi i64* [%309, %$21] ; # Acc\n  %329 = phi i64* [%310, %$21] ; # TopA\n  %330 = phi i64* [%311, %$21] ; # Inc\n  %331 = phi i64* [%312, %$21] ; # TopI\n  %332 = phi i64 [%313, %$21] ; # Dig\n  %333 = phi i64 [%314, %$21] ; # Mask\n  %334 = phi i64* [%315, %$21] ; # I\n  %335 = phi i64 [%316, %$21] ; # C\n  %336 = phi i64 [%319, %$21] ; # N\n  br label %$24\n$23:\n  %337 = phi i64 [%302, %$21] ; # Num\n  %338 = phi i64 [%303, %$21] ; # Scl\n  %339 = phi i8 [%304, %$21] ; # Sep\n  %340 = phi i8 [%305, %$21] ; # Ign\n  %341 = phi i64* [%306, %$21] ; # P\n  %342 = phi i1 [%307, %$21] ; # Sign\n  %343 = phi i64 [%308, %$21] ; # Len\n  %344 = phi i64* [%309, %$21] ; # Acc\n  %345 = phi i64* [%310, %$21] ; # TopA\n  %346 = phi i64* [%311, %$21] ; # Inc\n  %347 = phi i64* [%312, %$21] ; # TopI\n  %348 = phi i64 [%313, %$21] ; # Dig\n  %349 = phi i64 [%314, %$21] ; # Mask\n  %350 = phi i64* [%315, %$21] ; # I\n  %351 = phi i64 [%316, %$21] ; # C\n  %352 = phi i64 [%319, %$21] ; # N\n; # (dec 'N 1000000000000000000)\n  %353 = sub i64 %352, 1000000000000000000\n  br label %$24\n$24:\n  %354 = phi i64 [%321, %$22], [%337, %$23] ; # Num\n  %355 = phi i64 [%322, %$22], [%338, %$23] ; # Scl\n  %356 = phi i8 [%323, %$22], [%339, %$23] ; # Sep\n  %357 = phi i8 [%324, %$22], [%340, %$23] ; # Ign\n  %358 = phi i64* [%325, %$22], [%341, %$23] ; # P\n  %359 = phi i1 [%326, %$22], [%342, %$23] ; # Sign\n  %360 = phi i64 [%327, %$22], [%343, %$23] ; # Len\n  %361 = phi i64* [%328, %$22], [%344, %$23] ; # Acc\n  %362 = phi i64* [%329, %$22], [%345, %$23] ; # TopA\n  %363 = phi i64* [%330, %$22], [%346, %$23] ; # Inc\n  %364 = phi i64* [%331, %$22], [%347, %$23] ; # TopI\n  %365 = phi i64 [%332, %$22], [%348, %$23] ; # Dig\n  %366 = phi i64 [%333, %$22], [%349, %$23] ; # Mask\n  %367 = phi i64* [%334, %$22], [%350, %$23] ; # I\n  %368 = phi i64 [%335, %$22], [%351, %$23] ; # C\n  %369 = phi i64 [%336, %$22], [%353, %$23] ; # N\n  %370 = phi i64 [0, %$22], [1, %$23] ; # ->\n; # (set I N)\n  store i64 %369, i64* %367\n; # (? (> (inc 'I) TopI))\n; # (inc 'I)\n  %371 = getelementptr i64, i64* %367, i32 1\n; # (> (inc 'I) TopI)\n  %372 = icmp ugt i64* %371, %364\n  br i1 %372, label %$26, label %$25\n$25:\n  %373 = phi i64 [%354, %$24] ; # Num\n  %374 = phi i64 [%355, %$24] ; # Scl\n  %375 = phi i8 [%356, %$24] ; # Sep\n  %376 = phi i8 [%357, %$24] ; # Ign\n  %377 = phi i64* [%358, %$24] ; # P\n  %378 = phi i1 [%359, %$24] ; # Sign\n  %379 = phi i64 [%360, %$24] ; # Len\n  %380 = phi i64* [%361, %$24] ; # Acc\n  %381 = phi i64* [%362, %$24] ; # TopA\n  %382 = phi i64* [%363, %$24] ; # Inc\n  %383 = phi i64* [%364, %$24] ; # TopI\n  %384 = phi i64 [%365, %$24] ; # Dig\n  %385 = phi i64 [%366, %$24] ; # Mask\n  %386 = phi i64* [%371, %$24] ; # I\n  %387 = phi i64 [%370, %$24] ; # C\n  br label %$21\n$26:\n  %388 = phi i64 [%354, %$24] ; # Num\n  %389 = phi i64 [%355, %$24] ; # Scl\n  %390 = phi i8 [%356, %$24] ; # Sep\n  %391 = phi i8 [%357, %$24] ; # Ign\n  %392 = phi i64* [%358, %$24] ; # P\n  %393 = phi i1 [%359, %$24] ; # Sign\n  %394 = phi i64 [%360, %$24] ; # Len\n  %395 = phi i64* [%361, %$24] ; # Acc\n  %396 = phi i64* [%362, %$24] ; # TopA\n  %397 = phi i64* [%363, %$24] ; # Inc\n  %398 = phi i64* [%364, %$24] ; # TopI\n  %399 = phi i64 [%365, %$24] ; # Dig\n  %400 = phi i64 [%366, %$24] ; # Mask\n  %401 = phi i64* [%371, %$24] ; # I\n  %402 = phi i64 [%370, %$24] ; # C\n  %403 = phi i64 [0, %$24] ; # ->\n; # (when C (inc 'TopI) (set I 1))\n  %404 = icmp ne i64 %402, 0\n  br i1 %404, label %$27, label %$28\n$27:\n  %405 = phi i64 [%388, %$26] ; # Num\n  %406 = phi i64 [%389, %$26] ; # Scl\n  %407 = phi i8 [%390, %$26] ; # Sep\n  %408 = phi i8 [%391, %$26] ; # Ign\n  %409 = phi i64* [%392, %$26] ; # P\n  %410 = phi i1 [%393, %$26] ; # Sign\n  %411 = phi i64 [%394, %$26] ; # Len\n  %412 = phi i64* [%395, %$26] ; # Acc\n  %413 = phi i64* [%396, %$26] ; # TopA\n  %414 = phi i64* [%397, %$26] ; # Inc\n  %415 = phi i64* [%398, %$26] ; # TopI\n  %416 = phi i64 [%399, %$26] ; # Dig\n  %417 = phi i64 [%400, %$26] ; # Mask\n  %418 = phi i64* [%401, %$26] ; # I\n  %419 = phi i64 [%402, %$26] ; # C\n; # (inc 'TopI)\n  %420 = getelementptr i64, i64* %415, i32 1\n; # (set I 1)\n  store i64 1, i64* %418\n  br label %$28\n$28:\n  %421 = phi i64 [%388, %$26], [%405, %$27] ; # Num\n  %422 = phi i64 [%389, %$26], [%406, %$27] ; # Scl\n  %423 = phi i8 [%390, %$26], [%407, %$27] ; # Sep\n  %424 = phi i8 [%391, %$26], [%408, %$27] ; # Ign\n  %425 = phi i64* [%392, %$26], [%409, %$27] ; # P\n  %426 = phi i1 [%393, %$26], [%410, %$27] ; # Sign\n  %427 = phi i64 [%394, %$26], [%411, %$27] ; # Len\n  %428 = phi i64* [%395, %$26], [%412, %$27] ; # Acc\n  %429 = phi i64* [%396, %$26], [%413, %$27] ; # TopA\n  %430 = phi i64* [%397, %$26], [%414, %$27] ; # Inc\n  %431 = phi i64* [%398, %$26], [%420, %$27] ; # TopI\n  %432 = phi i64 [%399, %$26], [%416, %$27] ; # Dig\n  %433 = phi i64 [%400, %$26], [%417, %$27] ; # Mask\n  %434 = phi i64* [%401, %$26], [%418, %$27] ; # I\n  %435 = phi i64 [%402, %$26], [%419, %$27] ; # C\n; # (? (=0 (setq Mask (shl Mask 1))))\n; # (shl Mask 1)\n  %436 = shl i64 %433, 1\n; # (=0 (setq Mask (shl Mask 1)))\n  %437 = icmp eq i64 %436, 0\n  br i1 %437, label %$30, label %$29\n$29:\n  %438 = phi i64 [%421, %$28] ; # Num\n  %439 = phi i64 [%422, %$28] ; # Scl\n  %440 = phi i8 [%423, %$28] ; # Sep\n  %441 = phi i8 [%424, %$28] ; # Ign\n  %442 = phi i64* [%425, %$28] ; # P\n  %443 = phi i1 [%426, %$28] ; # Sign\n  %444 = phi i64 [%427, %$28] ; # Len\n  %445 = phi i64* [%428, %$28] ; # Acc\n  %446 = phi i64* [%429, %$28] ; # TopA\n  %447 = phi i64* [%430, %$28] ; # Inc\n  %448 = phi i64* [%431, %$28] ; # TopI\n  %449 = phi i64 [%432, %$28] ; # Dig\n  %450 = phi i64 [%436, %$28] ; # Mask\n  br label %$8\n$30:\n  %451 = phi i64 [%421, %$28] ; # Num\n  %452 = phi i64 [%422, %$28] ; # Scl\n  %453 = phi i8 [%423, %$28] ; # Sep\n  %454 = phi i8 [%424, %$28] ; # Ign\n  %455 = phi i64* [%425, %$28] ; # P\n  %456 = phi i1 [%426, %$28] ; # Sign\n  %457 = phi i64 [%427, %$28] ; # Len\n  %458 = phi i64* [%428, %$28] ; # Acc\n  %459 = phi i64* [%429, %$28] ; # TopA\n  %460 = phi i64* [%430, %$28] ; # Inc\n  %461 = phi i64* [%431, %$28] ; # TopI\n  %462 = phi i64 [%432, %$28] ; # Dig\n  %463 = phi i64 [%436, %$28] ; # Mask\n  %464 = phi i64 [0, %$28] ; # ->\n; # (? (cnt? Num))\n; # (cnt? Num)\n  %465 = and i64 %451, 2\n  %466 = icmp ne i64 %465, 0\n  br i1 %466, label %$32, label %$31\n$31:\n  %467 = phi i64 [%451, %$30] ; # Num\n  %468 = phi i64 [%452, %$30] ; # Scl\n  %469 = phi i8 [%453, %$30] ; # Sep\n  %470 = phi i8 [%454, %$30] ; # Ign\n  %471 = phi i64* [%455, %$30] ; # P\n  %472 = phi i1 [%456, %$30] ; # Sign\n  %473 = phi i64 [%457, %$30] ; # Len\n  %474 = phi i64* [%458, %$30] ; # Acc\n  %475 = phi i64* [%459, %$30] ; # TopA\n  %476 = phi i64* [%460, %$30] ; # Inc\n  %477 = phi i64* [%461, %$30] ; # TopI\n; # (big Num)\n  %478 = add i64 %467, 4\n; # (val (big Num))\n  %479 = inttoptr i64 %478 to i64*\n  %480 = load i64, i64* %479\n  br label %$5\n$32:\n  %481 = phi i64 [%451, %$30] ; # Num\n  %482 = phi i64 [%452, %$30] ; # Scl\n  %483 = phi i8 [%453, %$30] ; # Sep\n  %484 = phi i8 [%454, %$30] ; # Ign\n  %485 = phi i64* [%455, %$30] ; # P\n  %486 = phi i1 [%456, %$30] ; # Sign\n  %487 = phi i64 [%457, %$30] ; # Len\n  %488 = phi i64* [%458, %$30] ; # Acc\n  %489 = phi i64* [%459, %$30] ; # TopA\n  %490 = phi i64* [%460, %$30] ; # Inc\n  %491 = phi i64* [%461, %$30] ; # TopI\n  %492 = phi i64 [0, %$30] ; # ->\n; # (let (N (* (shr (- TopA Acc) 3) 18) D (val TopA)) (cond (P (when ...\n; # (- TopA Acc)\n  %493 = ptrtoint i64* %489 to i64\n  %494 = ptrtoint i64* %488 to i64\n  %495 = sub i64 %493, %494\n; # (shr (- TopA Acc) 3)\n  %496 = lshr i64 %495, 3\n; # (* (shr (- TopA Acc) 3) 18)\n  %497 = mul i64 %496, 18\n; # (val TopA)\n  %498 = load i64, i64* %489\n; # (cond (P (when Sign (byteSym (char \"-\") P)) (while (setq D (/ D 1...\n  %499 = icmp ne i64* %485, null\n  br i1 %499, label %$35, label %$34\n$35:\n  %500 = phi i64 [%481, %$32] ; # Num\n  %501 = phi i64 [%482, %$32] ; # Scl\n  %502 = phi i8 [%483, %$32] ; # Sep\n  %503 = phi i8 [%484, %$32] ; # Ign\n  %504 = phi i64* [%485, %$32] ; # P\n  %505 = phi i1 [%486, %$32] ; # Sign\n  %506 = phi i64 [%487, %$32] ; # Len\n  %507 = phi i64* [%488, %$32] ; # Acc\n  %508 = phi i64* [%489, %$32] ; # TopA\n  %509 = phi i64 [%497, %$32] ; # N\n  %510 = phi i64 [%498, %$32] ; # D\n; # (when Sign (byteSym (char \"-\") P))\n  br i1 %505, label %$36, label %$37\n$36:\n  %511 = phi i64 [%500, %$35] ; # Num\n  %512 = phi i64 [%501, %$35] ; # Scl\n  %513 = phi i8 [%502, %$35] ; # Sep\n  %514 = phi i8 [%503, %$35] ; # Ign\n  %515 = phi i64* [%504, %$35] ; # P\n  %516 = phi i1 [%505, %$35] ; # Sign\n  %517 = phi i64 [%506, %$35] ; # Len\n  %518 = phi i64* [%507, %$35] ; # Acc\n  %519 = phi i64* [%508, %$35] ; # TopA\n  %520 = phi i64 [%509, %$35] ; # N\n  %521 = phi i64 [%510, %$35] ; # D\n; # (byteSym (char \"-\") P)\n  call void @byteSym(i8 45, i64* %515)\n  br label %$37\n$37:\n  %522 = phi i64 [%500, %$35], [%511, %$36] ; # Num\n  %523 = phi i64 [%501, %$35], [%512, %$36] ; # Scl\n  %524 = phi i8 [%502, %$35], [%513, %$36] ; # Sep\n  %525 = phi i8 [%503, %$35], [%514, %$36] ; # Ign\n  %526 = phi i64* [%504, %$35], [%515, %$36] ; # P\n  %527 = phi i1 [%505, %$35], [%516, %$36] ; # Sign\n  %528 = phi i64 [%506, %$35], [%517, %$36] ; # Len\n  %529 = phi i64* [%507, %$35], [%518, %$36] ; # Acc\n  %530 = phi i64* [%508, %$35], [%519, %$36] ; # TopA\n  %531 = phi i64 [%509, %$35], [%520, %$36] ; # N\n  %532 = phi i64 [%510, %$35], [%521, %$36] ; # D\n; # (while (setq D (/ D 10)) (inc 'N))\n  br label %$38\n$38:\n  %533 = phi i64 [%522, %$37], [%546, %$39] ; # Num\n  %534 = phi i64 [%523, %$37], [%547, %$39] ; # Scl\n  %535 = phi i8 [%524, %$37], [%548, %$39] ; # Sep\n  %536 = phi i8 [%525, %$37], [%549, %$39] ; # Ign\n  %537 = phi i64* [%526, %$37], [%550, %$39] ; # P\n  %538 = phi i1 [%527, %$37], [%551, %$39] ; # Sign\n  %539 = phi i64 [%528, %$37], [%552, %$39] ; # Len\n  %540 = phi i64* [%529, %$37], [%553, %$39] ; # Acc\n  %541 = phi i64* [%530, %$37], [%554, %$39] ; # TopA\n  %542 = phi i64 [%531, %$37], [%557, %$39] ; # N\n  %543 = phi i64 [%532, %$37], [%556, %$39] ; # D\n; # (/ D 10)\n  %544 = udiv i64 %543, 10\n  %545 = icmp ne i64 %544, 0\n  br i1 %545, label %$39, label %$40\n$39:\n  %546 = phi i64 [%533, %$38] ; # Num\n  %547 = phi i64 [%534, %$38] ; # Scl\n  %548 = phi i8 [%535, %$38] ; # Sep\n  %549 = phi i8 [%536, %$38] ; # Ign\n  %550 = phi i64* [%537, %$38] ; # P\n  %551 = phi i1 [%538, %$38] ; # Sign\n  %552 = phi i64 [%539, %$38] ; # Len\n  %553 = phi i64* [%540, %$38] ; # Acc\n  %554 = phi i64* [%541, %$38] ; # TopA\n  %555 = phi i64 [%542, %$38] ; # N\n  %556 = phi i64 [%544, %$38] ; # D\n; # (inc 'N)\n  %557 = add i64 %555, 1\n  br label %$38\n$40:\n  %558 = phi i64 [%533, %$38] ; # Num\n  %559 = phi i64 [%534, %$38] ; # Scl\n  %560 = phi i8 [%535, %$38] ; # Sep\n  %561 = phi i8 [%536, %$38] ; # Ign\n  %562 = phi i64* [%537, %$38] ; # P\n  %563 = phi i1 [%538, %$38] ; # Sign\n  %564 = phi i64 [%539, %$38] ; # Len\n  %565 = phi i64* [%540, %$38] ; # Acc\n  %566 = phi i64* [%541, %$38] ; # TopA\n  %567 = phi i64 [%542, %$38] ; # N\n  %568 = phi i64 [%544, %$38] ; # D\n; # (when (lt0 (setq Scl (- N Scl))) (byteSym (char \"0\") P) (byteSym ...\n; # (- N Scl)\n  %569 = sub i64 %567, %559\n; # (lt0 (setq Scl (- N Scl)))\n  %570 = icmp slt i64 %569, 0\n  br i1 %570, label %$41, label %$42\n$41:\n  %571 = phi i64 [%558, %$40] ; # Num\n  %572 = phi i64 [%569, %$40] ; # Scl\n  %573 = phi i8 [%560, %$40] ; # Sep\n  %574 = phi i8 [%561, %$40] ; # Ign\n  %575 = phi i64* [%562, %$40] ; # P\n  %576 = phi i1 [%563, %$40] ; # Sign\n  %577 = phi i64 [%564, %$40] ; # Len\n  %578 = phi i64* [%565, %$40] ; # Acc\n  %579 = phi i64* [%566, %$40] ; # TopA\n  %580 = phi i64 [%567, %$40] ; # N\n  %581 = phi i64 [%568, %$40] ; # D\n; # (byteSym (char \"0\") P)\n  call void @byteSym(i8 48, i64* %575)\n; # (byteSym Sep P)\n  call void @byteSym(i8 %573, i64* %575)\n; # (while (> -1 Scl) (inc 'Scl) (byteSym (char \"0\") P))\n  br label %$43\n$43:\n  %582 = phi i64 [%571, %$41], [%594, %$44] ; # Num\n  %583 = phi i64 [%572, %$41], [%605, %$44] ; # Scl\n  %584 = phi i8 [%573, %$41], [%596, %$44] ; # Sep\n  %585 = phi i8 [%574, %$41], [%597, %$44] ; # Ign\n  %586 = phi i64* [%575, %$41], [%598, %$44] ; # P\n  %587 = phi i1 [%576, %$41], [%599, %$44] ; # Sign\n  %588 = phi i64 [%577, %$41], [%600, %$44] ; # Len\n  %589 = phi i64* [%578, %$41], [%601, %$44] ; # Acc\n  %590 = phi i64* [%579, %$41], [%602, %$44] ; # TopA\n  %591 = phi i64 [%580, %$41], [%603, %$44] ; # N\n  %592 = phi i64 [%581, %$41], [%604, %$44] ; # D\n; # (> -1 Scl)\n  %593 = icmp ugt i64 -1, %583\n  br i1 %593, label %$44, label %$45\n$44:\n  %594 = phi i64 [%582, %$43] ; # Num\n  %595 = phi i64 [%583, %$43] ; # Scl\n  %596 = phi i8 [%584, %$43] ; # Sep\n  %597 = phi i8 [%585, %$43] ; # Ign\n  %598 = phi i64* [%586, %$43] ; # P\n  %599 = phi i1 [%587, %$43] ; # Sign\n  %600 = phi i64 [%588, %$43] ; # Len\n  %601 = phi i64* [%589, %$43] ; # Acc\n  %602 = phi i64* [%590, %$43] ; # TopA\n  %603 = phi i64 [%591, %$43] ; # N\n  %604 = phi i64 [%592, %$43] ; # D\n; # (inc 'Scl)\n  %605 = add i64 %595, 1\n; # (byteSym (char \"0\") P)\n  call void @byteSym(i8 48, i64* %598)\n  br label %$43\n$45:\n  %606 = phi i64 [%582, %$43] ; # Num\n  %607 = phi i64 [%583, %$43] ; # Scl\n  %608 = phi i8 [%584, %$43] ; # Sep\n  %609 = phi i8 [%585, %$43] ; # Ign\n  %610 = phi i64* [%586, %$43] ; # P\n  %611 = phi i1 [%587, %$43] ; # Sign\n  %612 = phi i64 [%588, %$43] ; # Len\n  %613 = phi i64* [%589, %$43] ; # Acc\n  %614 = phi i64* [%590, %$43] ; # TopA\n  %615 = phi i64 [%591, %$43] ; # N\n  %616 = phi i64 [%592, %$43] ; # D\n  br label %$42\n$42:\n  %617 = phi i64 [%558, %$40], [%606, %$45] ; # Num\n  %618 = phi i64 [%569, %$40], [%607, %$45] ; # Scl\n  %619 = phi i8 [%560, %$40], [%608, %$45] ; # Sep\n  %620 = phi i8 [%561, %$40], [%609, %$45] ; # Ign\n  %621 = phi i64* [%562, %$40], [%610, %$45] ; # P\n  %622 = phi i1 [%563, %$40], [%611, %$45] ; # Sign\n  %623 = phi i64 [%564, %$40], [%612, %$45] ; # Len\n  %624 = phi i64* [%565, %$40], [%613, %$45] ; # Acc\n  %625 = phi i64* [%566, %$40], [%614, %$45] ; # TopA\n  %626 = phi i64 [%567, %$40], [%615, %$45] ; # N\n  %627 = phi i64 [%568, %$40], [%616, %$45] ; # D\n; # (val TopA)\n  %628 = load i64, i64* %625\n; # (fmtScl (val TopA) Scl Sep Ign P)\n  %629 = call i64 @fmtScl(i64 %628, i64 %618, i8 %619, i8 %620, i64* %621)\n; # (while (>= (dec 'TopA) Acc) (let (N (val TopA) D 1000000000000000...\n  br label %$46\n$46:\n  %630 = phi i64 [%617, %$42], [%778, %$59] ; # Num\n  %631 = phi i64 [%629, %$42], [%779, %$59] ; # Scl\n  %632 = phi i8 [%619, %$42], [%780, %$59] ; # Sep\n  %633 = phi i8 [%620, %$42], [%781, %$59] ; # Ign\n  %634 = phi i64* [%621, %$42], [%782, %$59] ; # P\n  %635 = phi i1 [%622, %$42], [%783, %$59] ; # Sign\n  %636 = phi i64 [%623, %$42], [%784, %$59] ; # Len\n  %637 = phi i64* [%624, %$42], [%785, %$59] ; # Acc\n  %638 = phi i64* [%625, %$42], [%786, %$59] ; # TopA\n  %639 = phi i64 [%626, %$42], [%652, %$59] ; # N\n  %640 = phi i64 [%627, %$42], [%653, %$59] ; # D\n; # (dec 'TopA)\n  %641 = getelementptr i64, i64* %638, i32 -1\n; # (>= (dec 'TopA) Acc)\n  %642 = icmp uge i64* %641, %637\n  br i1 %642, label %$47, label %$48\n$47:\n  %643 = phi i64 [%630, %$46] ; # Num\n  %644 = phi i64 [%631, %$46] ; # Scl\n  %645 = phi i8 [%632, %$46] ; # Sep\n  %646 = phi i8 [%633, %$46] ; # Ign\n  %647 = phi i64* [%634, %$46] ; # P\n  %648 = phi i1 [%635, %$46] ; # Sign\n  %649 = phi i64 [%636, %$46] ; # Len\n  %650 = phi i64* [%637, %$46] ; # Acc\n  %651 = phi i64* [%641, %$46] ; # TopA\n  %652 = phi i64 [%639, %$46] ; # N\n  %653 = phi i64 [%640, %$46] ; # D\n; # (let (N (val TopA) D 100000000000000000) (loop (cond ((=0 Scl) (b...\n; # (val TopA)\n  %654 = load i64, i64* %651\n; # (loop (cond ((=0 Scl) (byteSym Sep P)) ((and Ign (gt0 Scl) (=0 (%...\n  br label %$49\n$49:\n  %655 = phi i64 [%643, %$47], [%767, %$58] ; # Num\n  %656 = phi i64 [%644, %$47], [%768, %$58] ; # Scl\n  %657 = phi i8 [%645, %$47], [%769, %$58] ; # Sep\n  %658 = phi i8 [%646, %$47], [%770, %$58] ; # Ign\n  %659 = phi i64* [%647, %$47], [%771, %$58] ; # P\n  %660 = phi i1 [%648, %$47], [%772, %$58] ; # Sign\n  %661 = phi i64 [%649, %$47], [%773, %$58] ; # Len\n  %662 = phi i64* [%650, %$47], [%774, %$58] ; # Acc\n  %663 = phi i64* [%651, %$47], [%775, %$58] ; # TopA\n  %664 = phi i64 [%654, %$47], [%776, %$58] ; # N\n  %665 = phi i64 [100000000000000000, %$47], [%777, %$58] ; # D\n; # (cond ((=0 Scl) (byteSym Sep P)) ((and Ign (gt0 Scl) (=0 (% Scl 3...\n; # (=0 Scl)\n  %666 = icmp eq i64 %656, 0\n  br i1 %666, label %$52, label %$51\n$52:\n  %667 = phi i64 [%655, %$49] ; # Num\n  %668 = phi i64 [%656, %$49] ; # Scl\n  %669 = phi i8 [%657, %$49] ; # Sep\n  %670 = phi i8 [%658, %$49] ; # Ign\n  %671 = phi i64* [%659, %$49] ; # P\n  %672 = phi i1 [%660, %$49] ; # Sign\n  %673 = phi i64 [%661, %$49] ; # Len\n  %674 = phi i64* [%662, %$49] ; # Acc\n  %675 = phi i64* [%663, %$49] ; # TopA\n  %676 = phi i64 [%664, %$49] ; # N\n  %677 = phi i64 [%665, %$49] ; # D\n; # (byteSym Sep P)\n  call void @byteSym(i8 %669, i64* %671)\n  br label %$50\n$51:\n  %678 = phi i64 [%655, %$49] ; # Num\n  %679 = phi i64 [%656, %$49] ; # Scl\n  %680 = phi i8 [%657, %$49] ; # Sep\n  %681 = phi i8 [%658, %$49] ; # Ign\n  %682 = phi i64* [%659, %$49] ; # P\n  %683 = phi i1 [%660, %$49] ; # Sign\n  %684 = phi i64 [%661, %$49] ; # Len\n  %685 = phi i64* [%662, %$49] ; # Acc\n  %686 = phi i64* [%663, %$49] ; # TopA\n  %687 = phi i64 [%664, %$49] ; # N\n  %688 = phi i64 [%665, %$49] ; # D\n; # (and Ign (gt0 Scl) (=0 (% Scl 3)))\n  %689 = icmp ne i8 %681, 0\n  br i1 %689, label %$54, label %$53\n$54:\n  %690 = phi i64 [%678, %$51] ; # Num\n  %691 = phi i64 [%679, %$51] ; # Scl\n  %692 = phi i8 [%680, %$51] ; # Sep\n  %693 = phi i8 [%681, %$51] ; # Ign\n  %694 = phi i64* [%682, %$51] ; # P\n  %695 = phi i1 [%683, %$51] ; # Sign\n  %696 = phi i64 [%684, %$51] ; # Len\n  %697 = phi i64* [%685, %$51] ; # Acc\n  %698 = phi i64* [%686, %$51] ; # TopA\n  %699 = phi i64 [%687, %$51] ; # N\n  %700 = phi i64 [%688, %$51] ; # D\n; # (gt0 Scl)\n  %701 = icmp sgt i64 %691, 0\n  br i1 %701, label %$55, label %$53\n$55:\n  %702 = phi i64 [%690, %$54] ; # Num\n  %703 = phi i64 [%691, %$54] ; # Scl\n  %704 = phi i8 [%692, %$54] ; # Sep\n  %705 = phi i8 [%693, %$54] ; # Ign\n  %706 = phi i64* [%694, %$54] ; # P\n  %707 = phi i1 [%695, %$54] ; # Sign\n  %708 = phi i64 [%696, %$54] ; # Len\n  %709 = phi i64* [%697, %$54] ; # Acc\n  %710 = phi i64* [%698, %$54] ; # TopA\n  %711 = phi i64 [%699, %$54] ; # N\n  %712 = phi i64 [%700, %$54] ; # D\n; # (% Scl 3)\n  %713 = urem i64 %703, 3\n; # (=0 (% Scl 3))\n  %714 = icmp eq i64 %713, 0\n  br label %$53\n$53:\n  %715 = phi i64 [%678, %$51], [%690, %$54], [%702, %$55] ; # Num\n  %716 = phi i64 [%679, %$51], [%691, %$54], [%703, %$55] ; # Scl\n  %717 = phi i8 [%680, %$51], [%692, %$54], [%704, %$55] ; # Sep\n  %718 = phi i8 [%681, %$51], [%693, %$54], [%705, %$55] ; # Ign\n  %719 = phi i64* [%682, %$51], [%694, %$54], [%706, %$55] ; # P\n  %720 = phi i1 [%683, %$51], [%695, %$54], [%707, %$55] ; # Sign\n  %721 = phi i64 [%684, %$51], [%696, %$54], [%708, %$55] ; # Len\n  %722 = phi i64* [%685, %$51], [%697, %$54], [%709, %$55] ; # Acc\n  %723 = phi i64* [%686, %$51], [%698, %$54], [%710, %$55] ; # TopA\n  %724 = phi i64 [%687, %$51], [%699, %$54], [%711, %$55] ; # N\n  %725 = phi i64 [%688, %$51], [%700, %$54], [%712, %$55] ; # D\n  %726 = phi i1 [0, %$51], [0, %$54], [%714, %$55] ; # ->\n  br i1 %726, label %$57, label %$56\n$57:\n  %727 = phi i64 [%715, %$53] ; # Num\n  %728 = phi i64 [%716, %$53] ; # Scl\n  %729 = phi i8 [%717, %$53] ; # Sep\n  %730 = phi i8 [%718, %$53] ; # Ign\n  %731 = phi i64* [%719, %$53] ; # P\n  %732 = phi i1 [%720, %$53] ; # Sign\n  %733 = phi i64 [%721, %$53] ; # Len\n  %734 = phi i64* [%722, %$53] ; # Acc\n  %735 = phi i64* [%723, %$53] ; # TopA\n  %736 = phi i64 [%724, %$53] ; # N\n  %737 = phi i64 [%725, %$53] ; # D\n; # (byteSym Ign P)\n  call void @byteSym(i8 %730, i64* %731)\n  br label %$50\n$56:\n  %738 = phi i64 [%715, %$53] ; # Num\n  %739 = phi i64 [%716, %$53] ; # Scl\n  %740 = phi i8 [%717, %$53] ; # Sep\n  %741 = phi i8 [%718, %$53] ; # Ign\n  %742 = phi i64* [%719, %$53] ; # P\n  %743 = phi i1 [%720, %$53] ; # Sign\n  %744 = phi i64 [%721, %$53] ; # Len\n  %745 = phi i64* [%722, %$53] ; # Acc\n  %746 = phi i64* [%723, %$53] ; # TopA\n  %747 = phi i64 [%724, %$53] ; # N\n  %748 = phi i64 [%725, %$53] ; # D\n  br label %$50\n$50:\n  %749 = phi i64 [%667, %$52], [%727, %$57], [%738, %$56] ; # Num\n  %750 = phi i64 [%668, %$52], [%728, %$57], [%739, %$56] ; # Scl\n  %751 = phi i8 [%669, %$52], [%729, %$57], [%740, %$56] ; # Sep\n  %752 = phi i8 [%670, %$52], [%730, %$57], [%741, %$56] ; # Ign\n  %753 = phi i64* [%671, %$52], [%731, %$57], [%742, %$56] ; # P\n  %754 = phi i1 [%672, %$52], [%732, %$57], [%743, %$56] ; # Sign\n  %755 = phi i64 [%673, %$52], [%733, %$57], [%744, %$56] ; # Len\n  %756 = phi i64* [%674, %$52], [%734, %$57], [%745, %$56] ; # Acc\n  %757 = phi i64* [%675, %$52], [%735, %$57], [%746, %$56] ; # TopA\n  %758 = phi i64 [%676, %$52], [%736, %$57], [%747, %$56] ; # N\n  %759 = phi i64 [%677, %$52], [%737, %$57], [%748, %$56] ; # D\n; # (dec 'Scl)\n  %760 = sub i64 %750, 1\n; # (/ N D)\n  %761 = udiv i64 %758, %759\n; # (i8 (/ N D))\n  %762 = trunc i64 %761 to i8\n; # (+ (i8 (/ N D)) (char \"0\"))\n  %763 = add i8 %762, 48\n; # (byteSym (+ (i8 (/ N D)) (char \"0\")) P)\n  call void @byteSym(i8 %763, i64* %753)\n; # (% N D)\n  %764 = urem i64 %758, %759\n; # (? (== 1 (setq D (/ D 10))))\n; # (/ D 10)\n  %765 = udiv i64 %759, 10\n; # (== 1 (setq D (/ D 10)))\n  %766 = icmp eq i64 1, %765\n  br i1 %766, label %$59, label %$58\n$58:\n  %767 = phi i64 [%749, %$50] ; # Num\n  %768 = phi i64 [%760, %$50] ; # Scl\n  %769 = phi i8 [%751, %$50] ; # Sep\n  %770 = phi i8 [%752, %$50] ; # Ign\n  %771 = phi i64* [%753, %$50] ; # P\n  %772 = phi i1 [%754, %$50] ; # Sign\n  %773 = phi i64 [%755, %$50] ; # Len\n  %774 = phi i64* [%756, %$50] ; # Acc\n  %775 = phi i64* [%757, %$50] ; # TopA\n  %776 = phi i64 [%764, %$50] ; # N\n  %777 = phi i64 [%765, %$50] ; # D\n  br label %$49\n$59:\n  %778 = phi i64 [%749, %$50] ; # Num\n  %779 = phi i64 [%760, %$50] ; # Scl\n  %780 = phi i8 [%751, %$50] ; # Sep\n  %781 = phi i8 [%752, %$50] ; # Ign\n  %782 = phi i64* [%753, %$50] ; # P\n  %783 = phi i1 [%754, %$50] ; # Sign\n  %784 = phi i64 [%755, %$50] ; # Len\n  %785 = phi i64* [%756, %$50] ; # Acc\n  %786 = phi i64* [%757, %$50] ; # TopA\n  %787 = phi i64 [%764, %$50] ; # N\n  %788 = phi i64 [%765, %$50] ; # D\n  %789 = phi i64 [0, %$50] ; # ->\n; # (i8 N)\n  %790 = trunc i64 %787 to i8\n; # (+ (i8 N) (char \"0\"))\n  %791 = add i8 %790, 48\n; # (byteSym (+ (i8 N) (char \"0\")) P)\n  call void @byteSym(i8 %791, i64* %782)\n  br label %$46\n$48:\n  %792 = phi i64 [%630, %$46] ; # Num\n  %793 = phi i64 [%631, %$46] ; # Scl\n  %794 = phi i8 [%632, %$46] ; # Sep\n  %795 = phi i8 [%633, %$46] ; # Ign\n  %796 = phi i64* [%634, %$46] ; # P\n  %797 = phi i1 [%635, %$46] ; # Sign\n  %798 = phi i64 [%636, %$46] ; # Len\n  %799 = phi i64* [%637, %$46] ; # Acc\n  %800 = phi i64* [%641, %$46] ; # TopA\n  %801 = phi i64 [%639, %$46] ; # N\n  %802 = phi i64 [%640, %$46] ; # D\n  br label %$33\n$34:\n  %803 = phi i64 [%481, %$32] ; # Num\n  %804 = phi i64 [%482, %$32] ; # Scl\n  %805 = phi i8 [%483, %$32] ; # Sep\n  %806 = phi i8 [%484, %$32] ; # Ign\n  %807 = phi i64* [%485, %$32] ; # P\n  %808 = phi i1 [%486, %$32] ; # Sign\n  %809 = phi i64 [%487, %$32] ; # Len\n  %810 = phi i64* [%488, %$32] ; # Acc\n  %811 = phi i64* [%489, %$32] ; # TopA\n  %812 = phi i64 [%497, %$32] ; # N\n  %813 = phi i64 [%498, %$32] ; # D\n; # (== Scl -1)\n  %814 = icmp eq i64 %804, -1\n  br i1 %814, label %$61, label %$60\n$61:\n  %815 = phi i64 [%803, %$34] ; # Num\n  %816 = phi i64 [%804, %$34] ; # Scl\n  %817 = phi i8 [%805, %$34] ; # Sep\n  %818 = phi i8 [%806, %$34] ; # Ign\n  %819 = phi i64* [%807, %$34] ; # P\n  %820 = phi i1 [%808, %$34] ; # Sign\n  %821 = phi i64 [%809, %$34] ; # Len\n  %822 = phi i64* [%810, %$34] ; # Acc\n  %823 = phi i64* [%811, %$34] ; # TopA\n  %824 = phi i64 [%812, %$34] ; # N\n  %825 = phi i64 [%813, %$34] ; # D\n; # (loop (inc 'N) (? (=0 (setq D (/ D 10)))))\n  br label %$62\n$62:\n  %826 = phi i64 [%815, %$61], [%840, %$63] ; # Num\n  %827 = phi i64 [%816, %$61], [%841, %$63] ; # Scl\n  %828 = phi i8 [%817, %$61], [%842, %$63] ; # Sep\n  %829 = phi i8 [%818, %$61], [%843, %$63] ; # Ign\n  %830 = phi i64* [%819, %$61], [%844, %$63] ; # P\n  %831 = phi i1 [%820, %$61], [%845, %$63] ; # Sign\n  %832 = phi i64 [%821, %$61], [%846, %$63] ; # Len\n  %833 = phi i64* [%822, %$61], [%847, %$63] ; # Acc\n  %834 = phi i64* [%823, %$61], [%848, %$63] ; # TopA\n  %835 = phi i64 [%824, %$61], [%849, %$63] ; # N\n  %836 = phi i64 [%825, %$61], [%850, %$63] ; # D\n; # (inc 'N)\n  %837 = add i64 %835, 1\n; # (? (=0 (setq D (/ D 10))))\n; # (/ D 10)\n  %838 = udiv i64 %836, 10\n; # (=0 (setq D (/ D 10)))\n  %839 = icmp eq i64 %838, 0\n  br i1 %839, label %$64, label %$63\n$63:\n  %840 = phi i64 [%826, %$62] ; # Num\n  %841 = phi i64 [%827, %$62] ; # Scl\n  %842 = phi i8 [%828, %$62] ; # Sep\n  %843 = phi i8 [%829, %$62] ; # Ign\n  %844 = phi i64* [%830, %$62] ; # P\n  %845 = phi i1 [%831, %$62] ; # Sign\n  %846 = phi i64 [%832, %$62] ; # Len\n  %847 = phi i64* [%833, %$62] ; # Acc\n  %848 = phi i64* [%834, %$62] ; # TopA\n  %849 = phi i64 [%837, %$62] ; # N\n  %850 = phi i64 [%838, %$62] ; # D\n  br label %$62\n$64:\n  %851 = phi i64 [%826, %$62] ; # Num\n  %852 = phi i64 [%827, %$62] ; # Scl\n  %853 = phi i8 [%828, %$62] ; # Sep\n  %854 = phi i8 [%829, %$62] ; # Ign\n  %855 = phi i64* [%830, %$62] ; # P\n  %856 = phi i1 [%831, %$62] ; # Sign\n  %857 = phi i64 [%832, %$62] ; # Len\n  %858 = phi i64* [%833, %$62] ; # Acc\n  %859 = phi i64* [%834, %$62] ; # TopA\n  %860 = phi i64 [%837, %$62] ; # N\n  %861 = phi i64 [%838, %$62] ; # D\n  %862 = phi i64 [0, %$62] ; # ->\n; # (when Sign (inc 'N))\n  br i1 %856, label %$65, label %$66\n$65:\n  %863 = phi i64 [%851, %$64] ; # Num\n  %864 = phi i64 [%852, %$64] ; # Scl\n  %865 = phi i8 [%853, %$64] ; # Sep\n  %866 = phi i8 [%854, %$64] ; # Ign\n  %867 = phi i64* [%855, %$64] ; # P\n  %868 = phi i1 [%856, %$64] ; # Sign\n  %869 = phi i64 [%857, %$64] ; # Len\n  %870 = phi i64* [%858, %$64] ; # Acc\n  %871 = phi i64* [%859, %$64] ; # TopA\n  %872 = phi i64 [%860, %$64] ; # N\n  %873 = phi i64 [%861, %$64] ; # D\n; # (inc 'N)\n  %874 = add i64 %872, 1\n  br label %$66\n$66:\n  %875 = phi i64 [%851, %$64], [%863, %$65] ; # Num\n  %876 = phi i64 [%852, %$64], [%864, %$65] ; # Scl\n  %877 = phi i8 [%853, %$64], [%865, %$65] ; # Sep\n  %878 = phi i8 [%854, %$64], [%866, %$65] ; # Ign\n  %879 = phi i64* [%855, %$64], [%867, %$65] ; # P\n  %880 = phi i1 [%856, %$64], [%868, %$65] ; # Sign\n  %881 = phi i64 [%857, %$64], [%869, %$65] ; # Len\n  %882 = phi i64* [%858, %$64], [%870, %$65] ; # Acc\n  %883 = phi i64* [%859, %$64], [%871, %$65] ; # TopA\n  %884 = phi i64 [%860, %$64], [%874, %$65] ; # N\n  %885 = phi i64 [%861, %$64], [%873, %$65] ; # D\n; # (cnt N)\n  %886 = shl i64 %884, 4\n  %887 = or i64 %886, 2\n  br label %$33\n$60:\n  %888 = phi i64 [%803, %$34] ; # Num\n  %889 = phi i64 [%804, %$34] ; # Scl\n  %890 = phi i8 [%805, %$34] ; # Sep\n  %891 = phi i8 [%806, %$34] ; # Ign\n  %892 = phi i64* [%807, %$34] ; # P\n  %893 = phi i1 [%808, %$34] ; # Sign\n  %894 = phi i64 [%809, %$34] ; # Len\n  %895 = phi i64* [%810, %$34] ; # Acc\n  %896 = phi i64* [%811, %$34] ; # TopA\n  %897 = phi i64 [%812, %$34] ; # N\n  %898 = phi i64 [%813, %$34] ; # D\n; # (when Sign (call $Put (char \"-\")))\n  br i1 %893, label %$67, label %$68\n$67:\n  %899 = phi i64 [%888, %$60] ; # Num\n  %900 = phi i64 [%889, %$60] ; # Scl\n  %901 = phi i8 [%890, %$60] ; # Sep\n  %902 = phi i8 [%891, %$60] ; # Ign\n  %903 = phi i64* [%892, %$60] ; # P\n  %904 = phi i1 [%893, %$60] ; # Sign\n  %905 = phi i64 [%894, %$60] ; # Len\n  %906 = phi i64* [%895, %$60] ; # Acc\n  %907 = phi i64* [%896, %$60] ; # TopA\n  %908 = phi i64 [%897, %$60] ; # N\n  %909 = phi i64 [%898, %$60] ; # D\n; # (call $Put (char \"-\"))\n  %910 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %910(i8 45)\n  br label %$68\n$68:\n  %911 = phi i64 [%888, %$60], [%899, %$67] ; # Num\n  %912 = phi i64 [%889, %$60], [%900, %$67] ; # Scl\n  %913 = phi i8 [%890, %$60], [%901, %$67] ; # Sep\n  %914 = phi i8 [%891, %$60], [%902, %$67] ; # Ign\n  %915 = phi i64* [%892, %$60], [%903, %$67] ; # P\n  %916 = phi i1 [%893, %$60], [%904, %$67] ; # Sign\n  %917 = phi i64 [%894, %$60], [%905, %$67] ; # Len\n  %918 = phi i64* [%895, %$60], [%906, %$67] ; # Acc\n  %919 = phi i64* [%896, %$60], [%907, %$67] ; # TopA\n  %920 = phi i64 [%897, %$60], [%908, %$67] ; # N\n  %921 = phi i64 [%898, %$60], [%909, %$67] ; # D\n; # (if (=0 Sep) (outWord (val TopA)) (while (setq D (/ D 10)) (inc '...\n; # (=0 Sep)\n  %922 = icmp eq i8 %913, 0\n  br i1 %922, label %$69, label %$70\n$69:\n  %923 = phi i64 [%911, %$68] ; # Num\n  %924 = phi i64 [%912, %$68] ; # Scl\n  %925 = phi i8 [%913, %$68] ; # Sep\n  %926 = phi i8 [%914, %$68] ; # Ign\n  %927 = phi i64* [%915, %$68] ; # P\n  %928 = phi i1 [%916, %$68] ; # Sign\n  %929 = phi i64 [%917, %$68] ; # Len\n  %930 = phi i64* [%918, %$68] ; # Acc\n  %931 = phi i64* [%919, %$68] ; # TopA\n  %932 = phi i64 [%920, %$68] ; # N\n  %933 = phi i64 [%921, %$68] ; # D\n; # (val TopA)\n  %934 = load i64, i64* %931\n; # (outWord (val TopA))\n  call void @outWord(i64 %934)\n  br label %$71\n$70:\n  %935 = phi i64 [%911, %$68] ; # Num\n  %936 = phi i64 [%912, %$68] ; # Scl\n  %937 = phi i8 [%913, %$68] ; # Sep\n  %938 = phi i8 [%914, %$68] ; # Ign\n  %939 = phi i64* [%915, %$68] ; # P\n  %940 = phi i1 [%916, %$68] ; # Sign\n  %941 = phi i64 [%917, %$68] ; # Len\n  %942 = phi i64* [%918, %$68] ; # Acc\n  %943 = phi i64* [%919, %$68] ; # TopA\n  %944 = phi i64 [%920, %$68] ; # N\n  %945 = phi i64 [%921, %$68] ; # D\n; # (while (setq D (/ D 10)) (inc 'N))\n  br label %$72\n$72:\n  %946 = phi i64 [%935, %$70], [%959, %$73] ; # Num\n  %947 = phi i64 [%936, %$70], [%960, %$73] ; # Scl\n  %948 = phi i8 [%937, %$70], [%961, %$73] ; # Sep\n  %949 = phi i8 [%938, %$70], [%962, %$73] ; # Ign\n  %950 = phi i64* [%939, %$70], [%963, %$73] ; # P\n  %951 = phi i1 [%940, %$70], [%964, %$73] ; # Sign\n  %952 = phi i64 [%941, %$70], [%965, %$73] ; # Len\n  %953 = phi i64* [%942, %$70], [%966, %$73] ; # Acc\n  %954 = phi i64* [%943, %$70], [%967, %$73] ; # TopA\n  %955 = phi i64 [%944, %$70], [%970, %$73] ; # N\n  %956 = phi i64 [%945, %$70], [%969, %$73] ; # D\n; # (/ D 10)\n  %957 = udiv i64 %956, 10\n  %958 = icmp ne i64 %957, 0\n  br i1 %958, label %$73, label %$74\n$73:\n  %959 = phi i64 [%946, %$72] ; # Num\n  %960 = phi i64 [%947, %$72] ; # Scl\n  %961 = phi i8 [%948, %$72] ; # Sep\n  %962 = phi i8 [%949, %$72] ; # Ign\n  %963 = phi i64* [%950, %$72] ; # P\n  %964 = phi i1 [%951, %$72] ; # Sign\n  %965 = phi i64 [%952, %$72] ; # Len\n  %966 = phi i64* [%953, %$72] ; # Acc\n  %967 = phi i64* [%954, %$72] ; # TopA\n  %968 = phi i64 [%955, %$72] ; # N\n  %969 = phi i64 [%957, %$72] ; # D\n; # (inc 'N)\n  %970 = add i64 %968, 1\n  br label %$72\n$74:\n  %971 = phi i64 [%946, %$72] ; # Num\n  %972 = phi i64 [%947, %$72] ; # Scl\n  %973 = phi i8 [%948, %$72] ; # Sep\n  %974 = phi i8 [%949, %$72] ; # Ign\n  %975 = phi i64* [%950, %$72] ; # P\n  %976 = phi i1 [%951, %$72] ; # Sign\n  %977 = phi i64 [%952, %$72] ; # Len\n  %978 = phi i64* [%953, %$72] ; # Acc\n  %979 = phi i64* [%954, %$72] ; # TopA\n  %980 = phi i64 [%955, %$72] ; # N\n  %981 = phi i64 [%957, %$72] ; # D\n; # (when (lt0 (setq Scl (- N Scl))) (call $Put (char \"0\")) (call $Pu...\n; # (- N Scl)\n  %982 = sub i64 %980, %972\n; # (lt0 (setq Scl (- N Scl)))\n  %983 = icmp slt i64 %982, 0\n  br i1 %983, label %$75, label %$76\n$75:\n  %984 = phi i64 [%971, %$74] ; # Num\n  %985 = phi i64 [%982, %$74] ; # Scl\n  %986 = phi i8 [%973, %$74] ; # Sep\n  %987 = phi i8 [%974, %$74] ; # Ign\n  %988 = phi i64* [%975, %$74] ; # P\n  %989 = phi i1 [%976, %$74] ; # Sign\n  %990 = phi i64 [%977, %$74] ; # Len\n  %991 = phi i64* [%978, %$74] ; # Acc\n  %992 = phi i64* [%979, %$74] ; # TopA\n  %993 = phi i64 [%980, %$74] ; # N\n  %994 = phi i64 [%981, %$74] ; # D\n; # (call $Put (char \"0\"))\n  %995 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %995(i8 48)\n; # (call $Put Sep)\n  %996 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %996(i8 %986)\n; # (while (> -1 Scl) (inc 'Scl) (call $Put (char \"0\")))\n  br label %$77\n$77:\n  %997 = phi i64 [%984, %$75], [%1009, %$78] ; # Num\n  %998 = phi i64 [%985, %$75], [%1020, %$78] ; # Scl\n  %999 = phi i8 [%986, %$75], [%1011, %$78] ; # Sep\n  %1000 = phi i8 [%987, %$75], [%1012, %$78] ; # Ign\n  %1001 = phi i64* [%988, %$75], [%1013, %$78] ; # P\n  %1002 = phi i1 [%989, %$75], [%1014, %$78] ; # Sign\n  %1003 = phi i64 [%990, %$75], [%1015, %$78] ; # Len\n  %1004 = phi i64* [%991, %$75], [%1016, %$78] ; # Acc\n  %1005 = phi i64* [%992, %$75], [%1017, %$78] ; # TopA\n  %1006 = phi i64 [%993, %$75], [%1018, %$78] ; # N\n  %1007 = phi i64 [%994, %$75], [%1019, %$78] ; # D\n; # (> -1 Scl)\n  %1008 = icmp ugt i64 -1, %998\n  br i1 %1008, label %$78, label %$79\n$78:\n  %1009 = phi i64 [%997, %$77] ; # Num\n  %1010 = phi i64 [%998, %$77] ; # Scl\n  %1011 = phi i8 [%999, %$77] ; # Sep\n  %1012 = phi i8 [%1000, %$77] ; # Ign\n  %1013 = phi i64* [%1001, %$77] ; # P\n  %1014 = phi i1 [%1002, %$77] ; # Sign\n  %1015 = phi i64 [%1003, %$77] ; # Len\n  %1016 = phi i64* [%1004, %$77] ; # Acc\n  %1017 = phi i64* [%1005, %$77] ; # TopA\n  %1018 = phi i64 [%1006, %$77] ; # N\n  %1019 = phi i64 [%1007, %$77] ; # D\n; # (inc 'Scl)\n  %1020 = add i64 %1010, 1\n; # (call $Put (char \"0\"))\n  %1021 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1021(i8 48)\n  br label %$77\n$79:\n  %1022 = phi i64 [%997, %$77] ; # Num\n  %1023 = phi i64 [%998, %$77] ; # Scl\n  %1024 = phi i8 [%999, %$77] ; # Sep\n  %1025 = phi i8 [%1000, %$77] ; # Ign\n  %1026 = phi i64* [%1001, %$77] ; # P\n  %1027 = phi i1 [%1002, %$77] ; # Sign\n  %1028 = phi i64 [%1003, %$77] ; # Len\n  %1029 = phi i64* [%1004, %$77] ; # Acc\n  %1030 = phi i64* [%1005, %$77] ; # TopA\n  %1031 = phi i64 [%1006, %$77] ; # N\n  %1032 = phi i64 [%1007, %$77] ; # D\n  br label %$76\n$76:\n  %1033 = phi i64 [%971, %$74], [%1022, %$79] ; # Num\n  %1034 = phi i64 [%982, %$74], [%1023, %$79] ; # Scl\n  %1035 = phi i8 [%973, %$74], [%1024, %$79] ; # Sep\n  %1036 = phi i8 [%974, %$74], [%1025, %$79] ; # Ign\n  %1037 = phi i64* [%975, %$74], [%1026, %$79] ; # P\n  %1038 = phi i1 [%976, %$74], [%1027, %$79] ; # Sign\n  %1039 = phi i64 [%977, %$74], [%1028, %$79] ; # Len\n  %1040 = phi i64* [%978, %$74], [%1029, %$79] ; # Acc\n  %1041 = phi i64* [%979, %$74], [%1030, %$79] ; # TopA\n  %1042 = phi i64 [%980, %$74], [%1031, %$79] ; # N\n  %1043 = phi i64 [%981, %$74], [%1032, %$79] ; # D\n; # (val TopA)\n  %1044 = load i64, i64* %1041\n; # (outScl (val TopA) Scl Sep)\n  %1045 = call i64 @outScl(i64 %1044, i64 %1034, i8 %1035)\n  br label %$71\n$71:\n  %1046 = phi i64 [%923, %$69], [%1033, %$76] ; # Num\n  %1047 = phi i64 [%924, %$69], [%1045, %$76] ; # Scl\n  %1048 = phi i8 [%925, %$69], [%1035, %$76] ; # Sep\n  %1049 = phi i8 [%926, %$69], [%1036, %$76] ; # Ign\n  %1050 = phi i64* [%927, %$69], [%1037, %$76] ; # P\n  %1051 = phi i1 [%928, %$69], [%1038, %$76] ; # Sign\n  %1052 = phi i64 [%929, %$69], [%1039, %$76] ; # Len\n  %1053 = phi i64* [%930, %$69], [%1040, %$76] ; # Acc\n  %1054 = phi i64* [%931, %$69], [%1041, %$76] ; # TopA\n  %1055 = phi i64 [%932, %$69], [%1042, %$76] ; # N\n  %1056 = phi i64 [%933, %$69], [%1043, %$76] ; # D\n; # (while (>= (dec 'TopA) Acc) (let (N (val TopA) D 1000000000000000...\n  br label %$80\n$80:\n  %1057 = phi i64 [%1046, %$71], [%1160, %$89] ; # Num\n  %1058 = phi i64 [%1047, %$71], [%1161, %$89] ; # Scl\n  %1059 = phi i8 [%1048, %$71], [%1162, %$89] ; # Sep\n  %1060 = phi i8 [%1049, %$71], [%1163, %$89] ; # Ign\n  %1061 = phi i64* [%1050, %$71], [%1164, %$89] ; # P\n  %1062 = phi i1 [%1051, %$71], [%1165, %$89] ; # Sign\n  %1063 = phi i64 [%1052, %$71], [%1166, %$89] ; # Len\n  %1064 = phi i64* [%1053, %$71], [%1167, %$89] ; # Acc\n  %1065 = phi i64* [%1054, %$71], [%1168, %$89] ; # TopA\n  %1066 = phi i64 [%1055, %$71], [%1079, %$89] ; # N\n  %1067 = phi i64 [%1056, %$71], [%1080, %$89] ; # D\n; # (dec 'TopA)\n  %1068 = getelementptr i64, i64* %1065, i32 -1\n; # (>= (dec 'TopA) Acc)\n  %1069 = icmp uge i64* %1068, %1064\n  br i1 %1069, label %$81, label %$82\n$81:\n  %1070 = phi i64 [%1057, %$80] ; # Num\n  %1071 = phi i64 [%1058, %$80] ; # Scl\n  %1072 = phi i8 [%1059, %$80] ; # Sep\n  %1073 = phi i8 [%1060, %$80] ; # Ign\n  %1074 = phi i64* [%1061, %$80] ; # P\n  %1075 = phi i1 [%1062, %$80] ; # Sign\n  %1076 = phi i64 [%1063, %$80] ; # Len\n  %1077 = phi i64* [%1064, %$80] ; # Acc\n  %1078 = phi i64* [%1068, %$80] ; # TopA\n  %1079 = phi i64 [%1066, %$80] ; # N\n  %1080 = phi i64 [%1067, %$80] ; # D\n; # (let (N (val TopA) D 100000000000000000) (loop (when (and Sep (=0...\n; # (val TopA)\n  %1081 = load i64, i64* %1078\n; # (loop (when (and Sep (=0 Scl)) (call $Put Sep)) (dec 'Scl) (call ...\n  br label %$83\n$83:\n  %1082 = phi i64 [%1070, %$81], [%1149, %$88] ; # Num\n  %1083 = phi i64 [%1071, %$81], [%1150, %$88] ; # Scl\n  %1084 = phi i8 [%1072, %$81], [%1151, %$88] ; # Sep\n  %1085 = phi i8 [%1073, %$81], [%1152, %$88] ; # Ign\n  %1086 = phi i64* [%1074, %$81], [%1153, %$88] ; # P\n  %1087 = phi i1 [%1075, %$81], [%1154, %$88] ; # Sign\n  %1088 = phi i64 [%1076, %$81], [%1155, %$88] ; # Len\n  %1089 = phi i64* [%1077, %$81], [%1156, %$88] ; # Acc\n  %1090 = phi i64* [%1078, %$81], [%1157, %$88] ; # TopA\n  %1091 = phi i64 [%1081, %$81], [%1158, %$88] ; # N\n  %1092 = phi i64 [100000000000000000, %$81], [%1159, %$88] ; # D\n; # (when (and Sep (=0 Scl)) (call $Put Sep))\n; # (and Sep (=0 Scl))\n  %1093 = icmp ne i8 %1084, 0\n  br i1 %1093, label %$85, label %$84\n$85:\n  %1094 = phi i64 [%1082, %$83] ; # Num\n  %1095 = phi i64 [%1083, %$83] ; # Scl\n  %1096 = phi i8 [%1084, %$83] ; # Sep\n  %1097 = phi i8 [%1085, %$83] ; # Ign\n  %1098 = phi i64* [%1086, %$83] ; # P\n  %1099 = phi i1 [%1087, %$83] ; # Sign\n  %1100 = phi i64 [%1088, %$83] ; # Len\n  %1101 = phi i64* [%1089, %$83] ; # Acc\n  %1102 = phi i64* [%1090, %$83] ; # TopA\n  %1103 = phi i64 [%1091, %$83] ; # N\n  %1104 = phi i64 [%1092, %$83] ; # D\n; # (=0 Scl)\n  %1105 = icmp eq i64 %1095, 0\n  br label %$84\n$84:\n  %1106 = phi i64 [%1082, %$83], [%1094, %$85] ; # Num\n  %1107 = phi i64 [%1083, %$83], [%1095, %$85] ; # Scl\n  %1108 = phi i8 [%1084, %$83], [%1096, %$85] ; # Sep\n  %1109 = phi i8 [%1085, %$83], [%1097, %$85] ; # Ign\n  %1110 = phi i64* [%1086, %$83], [%1098, %$85] ; # P\n  %1111 = phi i1 [%1087, %$83], [%1099, %$85] ; # Sign\n  %1112 = phi i64 [%1088, %$83], [%1100, %$85] ; # Len\n  %1113 = phi i64* [%1089, %$83], [%1101, %$85] ; # Acc\n  %1114 = phi i64* [%1090, %$83], [%1102, %$85] ; # TopA\n  %1115 = phi i64 [%1091, %$83], [%1103, %$85] ; # N\n  %1116 = phi i64 [%1092, %$83], [%1104, %$85] ; # D\n  %1117 = phi i1 [0, %$83], [%1105, %$85] ; # ->\n  br i1 %1117, label %$86, label %$87\n$86:\n  %1118 = phi i64 [%1106, %$84] ; # Num\n  %1119 = phi i64 [%1107, %$84] ; # Scl\n  %1120 = phi i8 [%1108, %$84] ; # Sep\n  %1121 = phi i8 [%1109, %$84] ; # Ign\n  %1122 = phi i64* [%1110, %$84] ; # P\n  %1123 = phi i1 [%1111, %$84] ; # Sign\n  %1124 = phi i64 [%1112, %$84] ; # Len\n  %1125 = phi i64* [%1113, %$84] ; # Acc\n  %1126 = phi i64* [%1114, %$84] ; # TopA\n  %1127 = phi i64 [%1115, %$84] ; # N\n  %1128 = phi i64 [%1116, %$84] ; # D\n; # (call $Put Sep)\n  %1129 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1129(i8 %1120)\n  br label %$87\n$87:\n  %1130 = phi i64 [%1106, %$84], [%1118, %$86] ; # Num\n  %1131 = phi i64 [%1107, %$84], [%1119, %$86] ; # Scl\n  %1132 = phi i8 [%1108, %$84], [%1120, %$86] ; # Sep\n  %1133 = phi i8 [%1109, %$84], [%1121, %$86] ; # Ign\n  %1134 = phi i64* [%1110, %$84], [%1122, %$86] ; # P\n  %1135 = phi i1 [%1111, %$84], [%1123, %$86] ; # Sign\n  %1136 = phi i64 [%1112, %$84], [%1124, %$86] ; # Len\n  %1137 = phi i64* [%1113, %$84], [%1125, %$86] ; # Acc\n  %1138 = phi i64* [%1114, %$84], [%1126, %$86] ; # TopA\n  %1139 = phi i64 [%1115, %$84], [%1127, %$86] ; # N\n  %1140 = phi i64 [%1116, %$84], [%1128, %$86] ; # D\n; # (dec 'Scl)\n  %1141 = sub i64 %1131, 1\n; # (/ N D)\n  %1142 = udiv i64 %1139, %1140\n; # (i8 (/ N D))\n  %1143 = trunc i64 %1142 to i8\n; # (+ (i8 (/ N D)) (char \"0\"))\n  %1144 = add i8 %1143, 48\n; # (call $Put (+ (i8 (/ N D)) (char \"0\")))\n  %1145 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1145(i8 %1144)\n; # (% N D)\n  %1146 = urem i64 %1139, %1140\n; # (? (== 1 (setq D (/ D 10))))\n; # (/ D 10)\n  %1147 = udiv i64 %1140, 10\n; # (== 1 (setq D (/ D 10)))\n  %1148 = icmp eq i64 1, %1147\n  br i1 %1148, label %$89, label %$88\n$88:\n  %1149 = phi i64 [%1130, %$87] ; # Num\n  %1150 = phi i64 [%1141, %$87] ; # Scl\n  %1151 = phi i8 [%1132, %$87] ; # Sep\n  %1152 = phi i8 [%1133, %$87] ; # Ign\n  %1153 = phi i64* [%1134, %$87] ; # P\n  %1154 = phi i1 [%1135, %$87] ; # Sign\n  %1155 = phi i64 [%1136, %$87] ; # Len\n  %1156 = phi i64* [%1137, %$87] ; # Acc\n  %1157 = phi i64* [%1138, %$87] ; # TopA\n  %1158 = phi i64 [%1146, %$87] ; # N\n  %1159 = phi i64 [%1147, %$87] ; # D\n  br label %$83\n$89:\n  %1160 = phi i64 [%1130, %$87] ; # Num\n  %1161 = phi i64 [%1141, %$87] ; # Scl\n  %1162 = phi i8 [%1132, %$87] ; # Sep\n  %1163 = phi i8 [%1133, %$87] ; # Ign\n  %1164 = phi i64* [%1134, %$87] ; # P\n  %1165 = phi i1 [%1135, %$87] ; # Sign\n  %1166 = phi i64 [%1136, %$87] ; # Len\n  %1167 = phi i64* [%1137, %$87] ; # Acc\n  %1168 = phi i64* [%1138, %$87] ; # TopA\n  %1169 = phi i64 [%1146, %$87] ; # N\n  %1170 = phi i64 [%1147, %$87] ; # D\n  %1171 = phi i64 [0, %$87] ; # ->\n; # (i8 N)\n  %1172 = trunc i64 %1169 to i8\n; # (+ (i8 N) (char \"0\"))\n  %1173 = add i8 %1172, 48\n; # (call $Put (+ (i8 N) (char \"0\")))\n  %1174 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1174(i8 %1173)\n  br label %$80\n$82:\n  %1175 = phi i64 [%1057, %$80] ; # Num\n  %1176 = phi i64 [%1058, %$80] ; # Scl\n  %1177 = phi i8 [%1059, %$80] ; # Sep\n  %1178 = phi i8 [%1060, %$80] ; # Ign\n  %1179 = phi i64* [%1061, %$80] ; # P\n  %1180 = phi i1 [%1062, %$80] ; # Sign\n  %1181 = phi i64 [%1063, %$80] ; # Len\n  %1182 = phi i64* [%1064, %$80] ; # Acc\n  %1183 = phi i64* [%1068, %$80] ; # TopA\n  %1184 = phi i64 [%1066, %$80] ; # N\n  %1185 = phi i64 [%1067, %$80] ; # D\n  br label %$33\n$33:\n  %1186 = phi i64 [%792, %$48], [%875, %$66], [%1175, %$82] ; # Num\n  %1187 = phi i64 [%793, %$48], [%876, %$66], [%1176, %$82] ; # Scl\n  %1188 = phi i8 [%794, %$48], [%877, %$66], [%1177, %$82] ; # Sep\n  %1189 = phi i8 [%795, %$48], [%878, %$66], [%1178, %$82] ; # Ign\n  %1190 = phi i64* [%796, %$48], [%879, %$66], [%1179, %$82] ; # P\n  %1191 = phi i1 [%797, %$48], [%880, %$66], [%1180, %$82] ; # Sign\n  %1192 = phi i64 [%798, %$48], [%881, %$66], [%1181, %$82] ; # Len\n  %1193 = phi i64* [%799, %$48], [%882, %$66], [%1182, %$82] ; # Acc\n  %1194 = phi i64* [%800, %$48], [%883, %$66], [%1183, %$82] ; # TopA\n  %1195 = phi i64 [%801, %$48], [%884, %$66], [%1184, %$82] ; # N\n  %1196 = phi i64 [%802, %$48], [%885, %$66], [%1185, %$82] ; # D\n  %1197 = phi i64 [0, %$48], [%887, %$66], [0, %$82] ; # ->\n  ret i64 %1197\n}\n\ndefine i64 @_Format(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) A (save (eval (++ X))) Y (eval (++ X)) Scl (if ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (if (nil? Y) 0 (xCnt Exe Y))\n; # (nil? Y)\n  %46 = icmp eq i64 %45, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %46, label %$12, label %$13\n$12:\n  %47 = phi i64 [%0, %$7] ; # Exe\n  %48 = phi i64 [%31, %$7] ; # X\n  %49 = phi i64 [%20, %$7] ; # A\n  %50 = phi i64 [%45, %$7] ; # Y\n  br label %$14\n$13:\n  %51 = phi i64 [%0, %$7] ; # Exe\n  %52 = phi i64 [%31, %$7] ; # X\n  %53 = phi i64 [%20, %$7] ; # A\n  %54 = phi i64 [%45, %$7] ; # Y\n; # (xCnt Exe Y)\n  %55 = call i64 @xCnt(i64 %51, i64 %54)\n  br label %$14\n$14:\n  %56 = phi i64 [%47, %$12], [%51, %$13] ; # Exe\n  %57 = phi i64 [%48, %$12], [%52, %$13] ; # X\n  %58 = phi i64 [%49, %$12], [%53, %$13] ; # A\n  %59 = phi i64 [%50, %$12], [%54, %$13] ; # Y\n  %60 = phi i64 [0, %$12], [%55, %$13] ; # ->\n; # (i8 (char \".\"))\n; # (i8 0)\n; # (when (pair X) (setq Sep (firstByte (needSymb Exe (eval (++ X))))...\n; # (pair X)\n  %61 = and i64 %57, 15\n  %62 = icmp eq i64 %61, 0\n  br i1 %62, label %$15, label %$16\n$15:\n  %63 = phi i64 [%56, %$14] ; # Exe\n  %64 = phi i64 [%57, %$14] ; # X\n  %65 = phi i64 [%58, %$14] ; # A\n  %66 = phi i64 [%59, %$14] ; # Y\n  %67 = phi i64 [%60, %$14] ; # Scl\n  %68 = phi i8 [46, %$14] ; # Sep\n  %69 = phi i8 [0, %$14] ; # Ign\n; # (++ X)\n  %70 = inttoptr i64 %64 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n  %73 = load i64, i64* %70\n; # (eval (++ X))\n  %74 = and i64 %73, 6\n  %75 = icmp ne i64 %74, 0\n  br i1 %75, label %$19, label %$18\n$19:\n  %76 = phi i64 [%73, %$15] ; # X\n  br label %$17\n$18:\n  %77 = phi i64 [%73, %$15] ; # X\n  %78 = and i64 %77, 8\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$21, label %$20\n$21:\n  %80 = phi i64 [%77, %$18] ; # X\n  %81 = inttoptr i64 %80 to i64*\n  %82 = load i64, i64* %81\n  br label %$17\n$20:\n  %83 = phi i64 [%77, %$18] ; # X\n  %84 = call i64 @evList(i64 %83)\n  br label %$17\n$17:\n  %85 = phi i64 [%76, %$19], [%80, %$21], [%83, %$20] ; # X\n  %86 = phi i64 [%76, %$19], [%82, %$21], [%84, %$20] ; # ->\n; # (needSymb Exe (eval (++ X)))\n  %87 = xor i64 %86, 8\n  %88 = and i64 %87, 14\n  %89 = icmp eq i64 %88, 0\n  br i1 %89, label %$23, label %$22\n$22:\n  %90 = phi i64 [%86, %$17] ; # X\n  %91 = phi i64 [%63, %$17] ; # Exe\n  call void @symErr(i64 %91, i64 %90)\n  unreachable\n$23:\n  %92 = phi i64 [%86, %$17] ; # X\n  %93 = phi i64 [%63, %$17] ; # Exe\n; # (firstByte (needSymb Exe (eval (++ X))))\n  %94 = call i8 @firstByte(i64 %92)\n; # (when (pair X) (setq Ign (firstByte (needSymb Exe (eval (car X)))...\n; # (pair X)\n  %95 = and i64 %72, 15\n  %96 = icmp eq i64 %95, 0\n  br i1 %96, label %$24, label %$25\n$24:\n  %97 = phi i64 [%63, %$23] ; # Exe\n  %98 = phi i64 [%72, %$23] ; # X\n  %99 = phi i64 [%65, %$23] ; # A\n  %100 = phi i64 [%66, %$23] ; # Y\n  %101 = phi i64 [%67, %$23] ; # Scl\n  %102 = phi i8 [%94, %$23] ; # Sep\n  %103 = phi i8 [%69, %$23] ; # Ign\n; # (car X)\n  %104 = inttoptr i64 %98 to i64*\n  %105 = load i64, i64* %104\n; # (eval (car X))\n  %106 = and i64 %105, 6\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$28, label %$27\n$28:\n  %108 = phi i64 [%105, %$24] ; # X\n  br label %$26\n$27:\n  %109 = phi i64 [%105, %$24] ; # X\n  %110 = and i64 %109, 8\n  %111 = icmp ne i64 %110, 0\n  br i1 %111, label %$30, label %$29\n$30:\n  %112 = phi i64 [%109, %$27] ; # X\n  %113 = inttoptr i64 %112 to i64*\n  %114 = load i64, i64* %113\n  br label %$26\n$29:\n  %115 = phi i64 [%109, %$27] ; # X\n  %116 = call i64 @evList(i64 %115)\n  br label %$26\n$26:\n  %117 = phi i64 [%108, %$28], [%112, %$30], [%115, %$29] ; # X\n  %118 = phi i64 [%108, %$28], [%114, %$30], [%116, %$29] ; # ->\n; # (needSymb Exe (eval (car X)))\n  %119 = xor i64 %118, 8\n  %120 = and i64 %119, 14\n  %121 = icmp eq i64 %120, 0\n  br i1 %121, label %$32, label %$31\n$31:\n  %122 = phi i64 [%118, %$26] ; # X\n  %123 = phi i64 [%97, %$26] ; # Exe\n  call void @symErr(i64 %123, i64 %122)\n  unreachable\n$32:\n  %124 = phi i64 [%118, %$26] ; # X\n  %125 = phi i64 [%97, %$26] ; # Exe\n; # (firstByte (needSymb Exe (eval (car X))))\n  %126 = call i8 @firstByte(i64 %124)\n  br label %$25\n$25:\n  %127 = phi i64 [%63, %$23], [%97, %$32] ; # Exe\n  %128 = phi i64 [%72, %$23], [%98, %$32] ; # X\n  %129 = phi i64 [%65, %$23], [%99, %$32] ; # A\n  %130 = phi i64 [%66, %$23], [%100, %$32] ; # Y\n  %131 = phi i64 [%67, %$23], [%101, %$32] ; # Scl\n  %132 = phi i8 [%94, %$23], [%102, %$32] ; # Sep\n  %133 = phi i8 [%69, %$23], [%126, %$32] ; # Ign\n  br label %$16\n$16:\n  %134 = phi i64 [%56, %$14], [%127, %$25] ; # Exe\n  %135 = phi i64 [%57, %$14], [%128, %$25] ; # X\n  %136 = phi i64 [%58, %$14], [%129, %$25] ; # A\n  %137 = phi i64 [%59, %$14], [%130, %$25] ; # Y\n  %138 = phi i64 [%60, %$14], [%131, %$25] ; # Scl\n  %139 = phi i8 [46, %$14], [%132, %$25] ; # Sep\n  %140 = phi i8 [0, %$14], [%133, %$25] ; # Ign\n; # (cond ((num? A) (let P (push 4 NIL ZERO NIL) (link (ofs P 2)) (fm...\n; # (num? A)\n  %141 = and i64 %136, 6\n  %142 = icmp ne i64 %141, 0\n  br i1 %142, label %$35, label %$34\n$35:\n  %143 = phi i64 [%134, %$16] ; # Exe\n  %144 = phi i64 [%135, %$16] ; # X\n  %145 = phi i64 [%136, %$16] ; # A\n  %146 = phi i64 [%137, %$16] ; # Y\n  %147 = phi i64 [%138, %$16] ; # Scl\n  %148 = phi i8 [%139, %$16] ; # Sep\n  %149 = phi i8 [%140, %$16] ; # Ign\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2)) (fmtNum A Scl Sep I...\n; # (push 4 NIL ZERO NIL)\n  %150 = alloca i64, i64 4, align 16\n  store i64 4, i64* %150\n  %151 = getelementptr i64, i64* %150, i32 2\n  store i64 2, i64* %151\n; # (ofs P 2)\n  %152 = getelementptr i64, i64* %150, i32 2\n; # (link (ofs P 2))\n  %153 = ptrtoint i64* %152 to i64\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %155 = load i64, i64* %154\n  %156 = inttoptr i64 %153 to i64*\n  %157 = getelementptr i64, i64* %156, i32 1\n  store i64 %155, i64* %157\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %153, i64* %158\n; # (fmtNum A Scl Sep Ign P)\n  %159 = call i64 @fmtNum(i64 %145, i64 %147, i8 %148, i8 %149, i64* %150)\n; # (val 3 P)\n  %160 = getelementptr i64, i64* %150, i32 2\n  %161 = load i64, i64* %160\n; # (consStr (val 3 P))\n  %162 = call i64 @consStr(i64 %161)\n  br label %$33\n$34:\n  %163 = phi i64 [%134, %$16] ; # Exe\n  %164 = phi i64 [%135, %$16] ; # X\n  %165 = phi i64 [%136, %$16] ; # A\n  %166 = phi i64 [%137, %$16] ; # Y\n  %167 = phi i64 [%138, %$16] ; # Scl\n  %168 = phi i8 [%139, %$16] ; # Sep\n  %169 = phi i8 [%140, %$16] ; # Ign\n; # (sym? A)\n  %170 = and i64 %165, 8\n  %171 = icmp ne i64 %170, 0\n  br i1 %171, label %$37, label %$36\n$37:\n  %172 = phi i64 [%163, %$34] ; # Exe\n  %173 = phi i64 [%164, %$34] ; # X\n  %174 = phi i64 [%165, %$34] ; # A\n  %175 = phi i64 [%166, %$34] ; # Y\n  %176 = phi i64 [%167, %$34] ; # Scl\n  %177 = phi i8 [%168, %$34] ; # Sep\n  %178 = phi i8 [%169, %$34] ; # Ign\n; # (cond ((sym? (val (tail A))) $Nil) ((=0 (symToNum (name @) Scl Se...\n; # (tail A)\n  %179 = add i64 %174, -8\n; # (val (tail A))\n  %180 = inttoptr i64 %179 to i64*\n  %181 = load i64, i64* %180\n; # (sym? (val (tail A)))\n  %182 = and i64 %181, 8\n  %183 = icmp ne i64 %182, 0\n  br i1 %183, label %$40, label %$39\n$40:\n  %184 = phi i64 [%172, %$37] ; # Exe\n  %185 = phi i64 [%173, %$37] ; # X\n  %186 = phi i64 [%174, %$37] ; # A\n  %187 = phi i64 [%175, %$37] ; # Y\n  %188 = phi i64 [%176, %$37] ; # Scl\n  %189 = phi i8 [%177, %$37] ; # Sep\n  %190 = phi i8 [%178, %$37] ; # Ign\n  br label %$38\n$39:\n  %191 = phi i64 [%172, %$37] ; # Exe\n  %192 = phi i64 [%173, %$37] ; # X\n  %193 = phi i64 [%174, %$37] ; # A\n  %194 = phi i64 [%175, %$37] ; # Y\n  %195 = phi i64 [%176, %$37] ; # Scl\n  %196 = phi i8 [%177, %$37] ; # Sep\n  %197 = phi i8 [%178, %$37] ; # Ign\n; # (name @)\n  br label %$41\n$41:\n  %198 = phi i64 [%181, %$39], [%204, %$42] ; # Tail\n  %199 = and i64 %198, 6\n  %200 = icmp ne i64 %199, 0\n  br i1 %200, label %$43, label %$42\n$42:\n  %201 = phi i64 [%198, %$41] ; # Tail\n  %202 = inttoptr i64 %201 to i64*\n  %203 = getelementptr i64, i64* %202, i32 1\n  %204 = load i64, i64* %203\n  br label %$41\n$43:\n  %205 = phi i64 [%198, %$41] ; # Tail\n; # (symToNum (name @) Scl Sep Ign)\n  %206 = call i64 @symToNum(i64 %205, i64 %195, i8 %196, i8 %197)\n; # (=0 (symToNum (name @) Scl Sep Ign))\n  %207 = icmp eq i64 %206, 0\n  br i1 %207, label %$45, label %$44\n$45:\n  %208 = phi i64 [%191, %$43] ; # Exe\n  %209 = phi i64 [%192, %$43] ; # X\n  %210 = phi i64 [%193, %$43] ; # A\n  %211 = phi i64 [%194, %$43] ; # Y\n  %212 = phi i64 [%195, %$43] ; # Scl\n  %213 = phi i8 [%196, %$43] ; # Sep\n  %214 = phi i8 [%197, %$43] ; # Ign\n  br label %$38\n$44:\n  %215 = phi i64 [%191, %$43] ; # Exe\n  %216 = phi i64 [%192, %$43] ; # X\n  %217 = phi i64 [%193, %$43] ; # A\n  %218 = phi i64 [%194, %$43] ; # Y\n  %219 = phi i64 [%195, %$43] ; # Scl\n  %220 = phi i8 [%196, %$43] ; # Sep\n  %221 = phi i8 [%197, %$43] ; # Ign\n  br label %$38\n$38:\n  %222 = phi i64 [%184, %$40], [%208, %$45], [%215, %$44] ; # Exe\n  %223 = phi i64 [%185, %$40], [%209, %$45], [%216, %$44] ; # X\n  %224 = phi i64 [%186, %$40], [%210, %$45], [%217, %$44] ; # A\n  %225 = phi i64 [%187, %$40], [%211, %$45], [%218, %$44] ; # Y\n  %226 = phi i64 [%188, %$40], [%212, %$45], [%219, %$44] ; # Scl\n  %227 = phi i8 [%189, %$40], [%213, %$45], [%220, %$44] ; # Sep\n  %228 = phi i8 [%190, %$40], [%214, %$45], [%221, %$44] ; # Ign\n  %229 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$40], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$45], [%206, %$44] ; # ->\n  br label %$33\n$36:\n  %230 = phi i64 [%163, %$34] ; # Exe\n  %231 = phi i64 [%164, %$34] ; # X\n  %232 = phi i64 [%165, %$34] ; # A\n  %233 = phi i64 [%166, %$34] ; # Y\n  %234 = phi i64 [%167, %$34] ; # Scl\n  %235 = phi i8 [%168, %$34] ; # Sep\n  %236 = phi i8 [%169, %$34] ; # Ign\n; # (if (symToNum (let P (push 4 NIL ZERO NIL) (link (ofs P 2)) (pack...\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2)) (pack A P) (val 3 P...\n; # (push 4 NIL ZERO NIL)\n  %237 = alloca i64, i64 4, align 16\n  store i64 4, i64* %237\n  %238 = getelementptr i64, i64* %237, i32 2\n  store i64 2, i64* %238\n; # (ofs P 2)\n  %239 = getelementptr i64, i64* %237, i32 2\n; # (link (ofs P 2))\n  %240 = ptrtoint i64* %239 to i64\n  %241 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %242 = load i64, i64* %241\n  %243 = inttoptr i64 %240 to i64*\n  %244 = getelementptr i64, i64* %243, i32 1\n  store i64 %242, i64* %244\n  %245 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %240, i64* %245\n; # (pack A P)\n  call void @pack(i64 %232, i64* %237)\n; # (val 3 P)\n  %246 = getelementptr i64, i64* %237, i32 2\n  %247 = load i64, i64* %246\n; # (symToNum (let P (push 4 NIL ZERO NIL) (link (ofs P 2)) (pack A P...\n  %248 = call i64 @symToNum(i64 %247, i64 %234, i8 %235, i8 %236)\n  %249 = icmp ne i64 %248, 0\n  br i1 %249, label %$46, label %$47\n$46:\n  %250 = phi i64 [%230, %$36] ; # Exe\n  %251 = phi i64 [%231, %$36] ; # X\n  %252 = phi i64 [%232, %$36] ; # A\n  %253 = phi i64 [%233, %$36] ; # Y\n  %254 = phi i64 [%234, %$36] ; # Scl\n  %255 = phi i8 [%235, %$36] ; # Sep\n  %256 = phi i8 [%236, %$36] ; # Ign\n  br label %$48\n$47:\n  %257 = phi i64 [%230, %$36] ; # Exe\n  %258 = phi i64 [%231, %$36] ; # X\n  %259 = phi i64 [%232, %$36] ; # A\n  %260 = phi i64 [%233, %$36] ; # Y\n  %261 = phi i64 [%234, %$36] ; # Scl\n  %262 = phi i8 [%235, %$36] ; # Sep\n  %263 = phi i8 [%236, %$36] ; # Ign\n  br label %$48\n$48:\n  %264 = phi i64 [%250, %$46], [%257, %$47] ; # Exe\n  %265 = phi i64 [%251, %$46], [%258, %$47] ; # X\n  %266 = phi i64 [%252, %$46], [%259, %$47] ; # A\n  %267 = phi i64 [%253, %$46], [%260, %$47] ; # Y\n  %268 = phi i64 [%254, %$46], [%261, %$47] ; # Scl\n  %269 = phi i8 [%255, %$46], [%262, %$47] ; # Sep\n  %270 = phi i8 [%256, %$46], [%263, %$47] ; # Ign\n  %271 = phi i64 [%248, %$46], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$47] ; # ->\n  br label %$33\n$33:\n  %272 = phi i64 [%143, %$35], [%222, %$38], [%264, %$48] ; # Exe\n  %273 = phi i64 [%144, %$35], [%223, %$38], [%265, %$48] ; # X\n  %274 = phi i64 [%145, %$35], [%224, %$38], [%266, %$48] ; # A\n  %275 = phi i64 [%146, %$35], [%225, %$38], [%267, %$48] ; # Y\n  %276 = phi i64 [%147, %$35], [%226, %$38], [%268, %$48] ; # Scl\n  %277 = phi i8 [%148, %$35], [%227, %$38], [%269, %$48] ; # Sep\n  %278 = phi i8 [%149, %$35], [%228, %$38], [%270, %$48] ; # Ign\n  %279 = phi i64 [%162, %$35], [%229, %$38], [%271, %$48] ; # ->\n; # (drop *Safe)\n  %280 = inttoptr i64 %24 to i64*\n  %281 = getelementptr i64, i64* %280, i32 1\n  %282 = load i64, i64* %281\n  %283 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %282, i64* %283\n  ret i64 %279\n}\n\ndefine i64 @_Add(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let R (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let R (link (push (needN...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let R (link (push (needNum Exe @) NIL)) (loop (? (at...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let R (link (push (needNum Exe @) NIL)) (loop (? (atom (shift X)...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (push (needNum Exe @) NIL)\n  %38 = alloca i64, i64 2, align 16\n  %39 = ptrtoint i64* %38 to i64\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %36, i64* %40\n; # (link (push (needNum Exe @) NIL))\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %42 = load i64, i64* %41\n  %43 = inttoptr i64 %39 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  store i64 %42, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %45\n; # (loop (? (atom (shift X)) (val R)) (? (nil? (eval (car X))) @) (s...\n  br label %$12\n$12:\n  %46 = phi i64 [%22, %$11], [%81, %$24] ; # Exe\n  %47 = phi i64 [%23, %$11], [%82, %$24] ; # X\n  %48 = phi i64 [%39, %$11], [%83, %$24] ; # R\n; # (? (atom (shift X)) (val R))\n; # (shift X)\n  %49 = inttoptr i64 %47 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n; # (atom (shift X))\n  %52 = and i64 %51, 15\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$15, label %$13\n$15:\n  %54 = phi i64 [%46, %$12] ; # Exe\n  %55 = phi i64 [%51, %$12] ; # X\n  %56 = phi i64 [%48, %$12] ; # R\n; # (val R)\n  %57 = inttoptr i64 %56 to i64*\n  %58 = load i64, i64* %57\n  br label %$14\n$13:\n  %59 = phi i64 [%46, %$12] ; # Exe\n  %60 = phi i64 [%51, %$12] ; # X\n  %61 = phi i64 [%48, %$12] ; # R\n; # (? (nil? (eval (car X))) @)\n; # (car X)\n  %62 = inttoptr i64 %60 to i64*\n  %63 = load i64, i64* %62\n; # (eval (car X))\n  %64 = and i64 %63, 6\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$18, label %$17\n$18:\n  %66 = phi i64 [%63, %$13] ; # X\n  br label %$16\n$17:\n  %67 = phi i64 [%63, %$13] ; # X\n  %68 = and i64 %67, 8\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$20, label %$19\n$20:\n  %70 = phi i64 [%67, %$17] ; # X\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n  br label %$16\n$19:\n  %73 = phi i64 [%67, %$17] ; # X\n  %74 = call i64 @evList(i64 %73)\n  br label %$16\n$16:\n  %75 = phi i64 [%66, %$18], [%70, %$20], [%73, %$19] ; # X\n  %76 = phi i64 [%66, %$18], [%72, %$20], [%74, %$19] ; # ->\n; # (nil? (eval (car X)))\n  %77 = icmp eq i64 %76, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %77, label %$22, label %$21\n$22:\n  %78 = phi i64 [%59, %$16] ; # Exe\n  %79 = phi i64 [%60, %$16] ; # X\n  %80 = phi i64 [%61, %$16] ; # R\n  br label %$14\n$21:\n  %81 = phi i64 [%59, %$16] ; # Exe\n  %82 = phi i64 [%60, %$16] ; # X\n  %83 = phi i64 [%61, %$16] ; # R\n; # (needNum Exe @)\n  %84 = and i64 %76, 6\n  %85 = icmp ne i64 %84, 0\n  br i1 %85, label %$24, label %$23\n$23:\n  %86 = phi i64 [%76, %$21] ; # X\n  %87 = phi i64 [%81, %$21] ; # Exe\n  call void @numErr(i64 %87, i64 %86)\n  unreachable\n$24:\n  %88 = phi i64 [%76, %$21] ; # X\n  %89 = phi i64 [%81, %$21] ; # Exe\n; # (safe (needNum Exe @))\n  %90 = inttoptr i64 %27 to i64*\n  store i64 %88, i64* %90\n; # (set R (adds (val R) @))\n; # (val R)\n  %91 = inttoptr i64 %83 to i64*\n  %92 = load i64, i64* %91\n; # (adds (val R) @)\n  %93 = call i64 @adds(i64 %92, i64 %76)\n  %94 = inttoptr i64 %83 to i64*\n  store i64 %93, i64* %94\n  br label %$12\n$14:\n  %95 = phi i64 [%54, %$15], [%78, %$22] ; # Exe\n  %96 = phi i64 [%55, %$15], [%79, %$22] ; # X\n  %97 = phi i64 [%56, %$15], [%80, %$22] ; # R\n  %98 = phi i64 [%58, %$15], [%76, %$22] ; # ->\n; # drop\n  %99 = inttoptr i64 %27 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %101, i64* %102\n  br label %$9\n$9:\n  %103 = phi i64 [%20, %$7], [%95, %$14] ; # Exe\n  %104 = phi i64 [%21, %$7], [%96, %$14] ; # X\n  %105 = phi i64 [%18, %$7], [%98, %$14] ; # ->\n  ret i64 %105\n}\n\ndefine i64 @_Sub(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (eval (++ X))) (if (nil? N) N (needNum Exe N)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (if (nil? N) N (needNum Exe N) (if (atom X) (neg N) (save -ZERO (...\n; # (nil? N)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # N\n  br label %$9\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i64 [%20, %$2] ; # N\n; # (needNum Exe N)\n  %28 = and i64 %27, 6\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$10\n$10:\n  %30 = phi i64 [%27, %$8] ; # X\n  %31 = phi i64 [%25, %$8] ; # Exe\n  call void @numErr(i64 %31, i64 %30)\n  unreachable\n$11:\n  %32 = phi i64 [%27, %$8] ; # X\n  %33 = phi i64 [%25, %$8] ; # Exe\n; # (if (atom X) (neg N) (save -ZERO (let R (link (push N NIL)) (loop...\n; # (atom X)\n  %34 = and i64 %26, 15\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$12, label %$13\n$12:\n  %36 = phi i64 [%25, %$11] ; # Exe\n  %37 = phi i64 [%26, %$11] ; # X\n  %38 = phi i64 [%27, %$11] ; # N\n; # (neg N)\n  %39 = icmp eq i64 %38, 2\n  br i1 %39, label %$15, label %$16\n$15:\n  %40 = phi i64 [%38, %$12] ; # N\n  br label %$17\n$16:\n  %41 = phi i64 [%38, %$12] ; # N\n  %42 = xor i64 %41, 8\n  br label %$17\n$17:\n  %43 = phi i64 [%40, %$15], [%41, %$16] ; # N\n  %44 = phi i64 [%40, %$15], [%42, %$16] ; # ->\n  br label %$14\n$13:\n  %45 = phi i64 [%25, %$11] ; # Exe\n  %46 = phi i64 [%26, %$11] ; # X\n  %47 = phi i64 [%27, %$11] ; # N\n; # (save -ZERO (let R (link (push N NIL)) (loop (? (nil? (eval (++ X...\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %49 = load i64, i64* %48\n  %50 = alloca i64, i64 2, align 16\n  %51 = ptrtoint i64* %50 to i64\n  %52 = inttoptr i64 %51 to i64*\n  store i64 10, i64* %52\n  %53 = add i64 %51, 8\n  %54 = inttoptr i64 %53 to i64*\n  store i64 %49, i64* %54\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %51, i64* %55\n; # (let R (link (push N NIL)) (loop (? (nil? (eval (++ X))) @) (safe...\n; # (push N NIL)\n  %56 = alloca i64, i64 2, align 16\n  %57 = ptrtoint i64* %56 to i64\n  %58 = inttoptr i64 %57 to i64*\n  store i64 %47, i64* %58\n; # (link (push N NIL))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = inttoptr i64 %57 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  store i64 %60, i64* %62\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %57, i64* %63\n; # (loop (? (nil? (eval (++ X))) @) (safe (needNum Exe @)) (set R (s...\n  br label %$18\n$18:\n  %64 = phi i64 [%45, %$13], [%113, %$29] ; # Exe\n  %65 = phi i64 [%46, %$13], [%114, %$29] ; # X\n  %66 = phi i64 [%47, %$13], [%115, %$29] ; # N\n  %67 = phi i64 [%57, %$13], [%116, %$29] ; # R\n; # (? (nil? (eval (++ X))) @)\n; # (++ X)\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n  %71 = load i64, i64* %68\n; # (eval (++ X))\n  %72 = and i64 %71, 6\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$21, label %$20\n$21:\n  %74 = phi i64 [%71, %$18] ; # X\n  br label %$19\n$20:\n  %75 = phi i64 [%71, %$18] ; # X\n  %76 = and i64 %75, 8\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$23, label %$22\n$23:\n  %78 = phi i64 [%75, %$20] ; # X\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$19\n$22:\n  %81 = phi i64 [%75, %$20] ; # X\n  %82 = call i64 @evList(i64 %81)\n  br label %$19\n$19:\n  %83 = phi i64 [%74, %$21], [%78, %$23], [%81, %$22] ; # X\n  %84 = phi i64 [%74, %$21], [%80, %$23], [%82, %$22] ; # ->\n; # (nil? (eval (++ X)))\n  %85 = icmp eq i64 %84, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %85, label %$26, label %$24\n$26:\n  %86 = phi i64 [%64, %$19] ; # Exe\n  %87 = phi i64 [%70, %$19] ; # X\n  %88 = phi i64 [%66, %$19] ; # N\n  %89 = phi i64 [%67, %$19] ; # R\n  br label %$25\n$24:\n  %90 = phi i64 [%64, %$19] ; # Exe\n  %91 = phi i64 [%70, %$19] ; # X\n  %92 = phi i64 [%66, %$19] ; # N\n  %93 = phi i64 [%67, %$19] ; # R\n; # (needNum Exe @)\n  %94 = and i64 %84, 6\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$28, label %$27\n$27:\n  %96 = phi i64 [%84, %$24] ; # X\n  %97 = phi i64 [%90, %$24] ; # Exe\n  call void @numErr(i64 %97, i64 %96)\n  unreachable\n$28:\n  %98 = phi i64 [%84, %$24] ; # X\n  %99 = phi i64 [%90, %$24] ; # Exe\n; # (safe (needNum Exe @))\n  %100 = inttoptr i64 %51 to i64*\n  store i64 %98, i64* %100\n; # (set R (subs (val R) @))\n; # (val R)\n  %101 = inttoptr i64 %93 to i64*\n  %102 = load i64, i64* %101\n; # (subs (val R) @)\n  %103 = call i64 @subs(i64 %102, i64 %84)\n  %104 = inttoptr i64 %93 to i64*\n  store i64 %103, i64* %104\n; # (? (atom X) (val R))\n; # (atom X)\n  %105 = and i64 %91, 15\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$30, label %$29\n$30:\n  %107 = phi i64 [%90, %$28] ; # Exe\n  %108 = phi i64 [%91, %$28] ; # X\n  %109 = phi i64 [%92, %$28] ; # N\n  %110 = phi i64 [%93, %$28] ; # R\n; # (val R)\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n  br label %$25\n$29:\n  %113 = phi i64 [%90, %$28] ; # Exe\n  %114 = phi i64 [%91, %$28] ; # X\n  %115 = phi i64 [%92, %$28] ; # N\n  %116 = phi i64 [%93, %$28] ; # R\n  br label %$18\n$25:\n  %117 = phi i64 [%86, %$26], [%107, %$30] ; # Exe\n  %118 = phi i64 [%87, %$26], [%108, %$30] ; # X\n  %119 = phi i64 [%88, %$26], [%109, %$30] ; # N\n  %120 = phi i64 [%89, %$26], [%110, %$30] ; # R\n  %121 = phi i64 [%84, %$26], [%112, %$30] ; # ->\n; # drop\n  %122 = inttoptr i64 %51 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  %124 = load i64, i64* %123\n  %125 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %124, i64* %125\n  br label %$14\n$14:\n  %126 = phi i64 [%36, %$17], [%117, %$25] ; # Exe\n  %127 = phi i64 [%37, %$17], [%118, %$25] ; # X\n  %128 = phi i64 [%38, %$17], [%119, %$25] ; # N\n  %129 = phi i64 [%44, %$17], [%121, %$25] ; # ->\n  br label %$9\n$9:\n  %130 = phi i64 [%22, %$7], [%126, %$14] ; # Exe\n  %131 = phi i64 [%23, %$7], [%127, %$14] ; # X\n  %132 = phi i64 [%24, %$7], [%128, %$14] ; # N\n  %133 = phi i64 [%24, %$7], [%129, %$14] ; # ->\n  ret i64 %133\n}\n\ndefine i64 @_Inc(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((nil? (eval (car X))) @) ((num? @) (incs ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((nil? (eval (car X))) @) ((num? @) (incs @)) (T (let Y (sa...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$9, label %$8\n$9:\n  %20 = phi i64 [%0, %$3] ; # Exe\n  %21 = phi i64 [%3, %$3] ; # X\n  br label %$2\n$8:\n  %22 = phi i64 [%0, %$3] ; # Exe\n  %23 = phi i64 [%3, %$3] ; # X\n; # (num? @)\n  %24 = and i64 %18, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$11:\n  %26 = phi i64 [%22, %$8] ; # Exe\n  %27 = phi i64 [%23, %$8] ; # X\n; # (incs @)\n  %28 = call i64 @incs(i64 %18)\n  br label %$2\n$10:\n  %29 = phi i64 [%22, %$8] ; # Exe\n  %30 = phi i64 [%23, %$8] ; # X\n; # (let Y (save (chkVar Exe @)) (when (and (sym? Y) (sym? (val (tail...\n; # (chkVar Exe @)\n  %31 = icmp uge i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %31, label %$13, label %$12\n$13:\n  %32 = phi i64 [%18, %$10] ; # X\n  %33 = phi i64 [%29, %$10] ; # Exe\n  %34 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %32\n  br label %$12\n$12:\n  %35 = phi i64 [%18, %$10], [%32, %$13] ; # X\n  %36 = phi i64 [%29, %$10], [%33, %$13] ; # Exe\n  %37 = phi i1 [0, %$10], [%34, %$13] ; # ->\n  br i1 %37, label %$14, label %$15\n$14:\n  %38 = phi i64 [%35, %$12] ; # X\n  %39 = phi i64 [%36, %$12] ; # Exe\n  call void @protErr(i64 %39, i64 %38)\n  unreachable\n$15:\n  %40 = phi i64 [%35, %$12] ; # X\n  %41 = phi i64 [%36, %$12] ; # Exe\n; # (save (chkVar Exe @))\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n  %44 = alloca i64, i64 2, align 16\n  %45 = ptrtoint i64* %44 to i64\n  %46 = inttoptr i64 %45 to i64*\n  store i64 %40, i64* %46\n  %47 = add i64 %45, 8\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %45, i64* %49\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %50 = and i64 %40, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$17, label %$16\n$17:\n  %52 = phi i64 [%29, %$15] ; # Exe\n  %53 = phi i64 [%30, %$15] ; # X\n  %54 = phi i64 [%40, %$15] ; # Y\n; # (tail Y)\n  %55 = add i64 %54, -8\n; # (val (tail Y))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n; # (sym? (val (tail Y)))\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br label %$16\n$16:\n  %60 = phi i64 [%29, %$15], [%52, %$17] ; # Exe\n  %61 = phi i64 [%30, %$15], [%53, %$17] ; # X\n  %62 = phi i64 [%40, %$15], [%54, %$17] ; # Y\n  %63 = phi i1 [0, %$15], [%59, %$17] ; # ->\n  br i1 %63, label %$18, label %$19\n$18:\n  %64 = phi i64 [%60, %$16] ; # Exe\n  %65 = phi i64 [%61, %$16] ; # X\n  %66 = phi i64 [%62, %$16] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %64, i64 %66)\n  br label %$19\n$19:\n  %67 = phi i64 [%60, %$16], [%64, %$18] ; # Exe\n  %68 = phi i64 [%61, %$16], [%65, %$18] ; # X\n  %69 = phi i64 [%62, %$16], [%66, %$18] ; # Y\n; # (if (atom (shift X)) (set Y (if (nil? (val Y)) ONE (incs (needNum...\n; # (shift X)\n  %70 = inttoptr i64 %68 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n; # (atom (shift X))\n  %73 = and i64 %72, 15\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$21\n$20:\n  %75 = phi i64 [%67, %$19] ; # Exe\n  %76 = phi i64 [%72, %$19] ; # X\n  %77 = phi i64 [%69, %$19] ; # Y\n; # (set Y (if (nil? (val Y)) ONE (incs (needNum Exe @))))\n; # (if (nil? (val Y)) ONE (incs (needNum Exe @)))\n; # (val Y)\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (nil? (val Y))\n  %80 = icmp eq i64 %79, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %80, label %$23, label %$24\n$23:\n  %81 = phi i64 [%75, %$20] ; # Exe\n  %82 = phi i64 [%76, %$20] ; # X\n  %83 = phi i64 [%77, %$20] ; # Y\n  br label %$25\n$24:\n  %84 = phi i64 [%75, %$20] ; # Exe\n  %85 = phi i64 [%76, %$20] ; # X\n  %86 = phi i64 [%77, %$20] ; # Y\n; # (needNum Exe @)\n  %87 = and i64 %79, 6\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$27, label %$26\n$26:\n  %89 = phi i64 [%79, %$24] ; # X\n  %90 = phi i64 [%84, %$24] ; # Exe\n  call void @numErr(i64 %90, i64 %89)\n  unreachable\n$27:\n  %91 = phi i64 [%79, %$24] ; # X\n  %92 = phi i64 [%84, %$24] ; # Exe\n; # (incs (needNum Exe @))\n  %93 = call i64 @incs(i64 %91)\n  br label %$25\n$25:\n  %94 = phi i64 [%81, %$23], [%84, %$27] ; # Exe\n  %95 = phi i64 [%82, %$23], [%85, %$27] ; # X\n  %96 = phi i64 [%83, %$23], [%86, %$27] ; # Y\n  %97 = phi i64 [18, %$23], [%93, %$27] ; # ->\n  %98 = inttoptr i64 %77 to i64*\n  store i64 %97, i64* %98\n  br label %$22\n$21:\n  %99 = phi i64 [%67, %$19] ; # Exe\n  %100 = phi i64 [%72, %$19] ; # X\n  %101 = phi i64 [%69, %$19] ; # Y\n; # (let (D (save (eval (car X))) N (val Y)) (if (nil? D) D (needNum ...\n; # (car X)\n  %102 = inttoptr i64 %100 to i64*\n  %103 = load i64, i64* %102\n; # (eval (car X))\n  %104 = and i64 %103, 6\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$30, label %$29\n$30:\n  %106 = phi i64 [%103, %$21] ; # X\n  br label %$28\n$29:\n  %107 = phi i64 [%103, %$21] ; # X\n  %108 = and i64 %107, 8\n  %109 = icmp ne i64 %108, 0\n  br i1 %109, label %$32, label %$31\n$32:\n  %110 = phi i64 [%107, %$29] ; # X\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n  br label %$28\n$31:\n  %113 = phi i64 [%107, %$29] ; # X\n  %114 = call i64 @evList(i64 %113)\n  br label %$28\n$28:\n  %115 = phi i64 [%106, %$30], [%110, %$32], [%113, %$31] ; # X\n  %116 = phi i64 [%106, %$30], [%112, %$32], [%114, %$31] ; # ->\n; # (save (eval (car X)))\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %118 = load i64, i64* %117\n  %119 = alloca i64, i64 2, align 16\n  %120 = ptrtoint i64* %119 to i64\n  %121 = inttoptr i64 %120 to i64*\n  store i64 %116, i64* %121\n  %122 = add i64 %120, 8\n  %123 = inttoptr i64 %122 to i64*\n  store i64 %118, i64* %123\n  %124 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %120, i64* %124\n; # (val Y)\n  %125 = inttoptr i64 %101 to i64*\n  %126 = load i64, i64* %125\n; # (if (nil? D) D (needNum Exe D) (set Y (if (nil? N) D (adds (needN...\n; # (nil? D)\n  %127 = icmp eq i64 %116, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %127, label %$33, label %$34\n$33:\n  %128 = phi i64 [%99, %$28] ; # Exe\n  %129 = phi i64 [%100, %$28] ; # X\n  %130 = phi i64 [%101, %$28] ; # Y\n  %131 = phi i64 [%116, %$28] ; # D\n  %132 = phi i64 [%126, %$28] ; # N\n  br label %$35\n$34:\n  %133 = phi i64 [%99, %$28] ; # Exe\n  %134 = phi i64 [%100, %$28] ; # X\n  %135 = phi i64 [%101, %$28] ; # Y\n  %136 = phi i64 [%116, %$28] ; # D\n  %137 = phi i64 [%126, %$28] ; # N\n; # (needNum Exe D)\n  %138 = and i64 %136, 6\n  %139 = icmp ne i64 %138, 0\n  br i1 %139, label %$37, label %$36\n$36:\n  %140 = phi i64 [%136, %$34] ; # X\n  %141 = phi i64 [%133, %$34] ; # Exe\n  call void @numErr(i64 %141, i64 %140)\n  unreachable\n$37:\n  %142 = phi i64 [%136, %$34] ; # X\n  %143 = phi i64 [%133, %$34] ; # Exe\n; # (set Y (if (nil? N) D (adds (needNum Exe N) D)))\n; # (if (nil? N) D (adds (needNum Exe N) D))\n; # (nil? N)\n  %144 = icmp eq i64 %137, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %144, label %$38, label %$39\n$38:\n  %145 = phi i64 [%133, %$37] ; # Exe\n  %146 = phi i64 [%134, %$37] ; # X\n  %147 = phi i64 [%135, %$37] ; # Y\n  %148 = phi i64 [%136, %$37] ; # D\n  %149 = phi i64 [%137, %$37] ; # N\n  br label %$40\n$39:\n  %150 = phi i64 [%133, %$37] ; # Exe\n  %151 = phi i64 [%134, %$37] ; # X\n  %152 = phi i64 [%135, %$37] ; # Y\n  %153 = phi i64 [%136, %$37] ; # D\n  %154 = phi i64 [%137, %$37] ; # N\n; # (needNum Exe N)\n  %155 = and i64 %154, 6\n  %156 = icmp ne i64 %155, 0\n  br i1 %156, label %$42, label %$41\n$41:\n  %157 = phi i64 [%154, %$39] ; # X\n  %158 = phi i64 [%150, %$39] ; # Exe\n  call void @numErr(i64 %158, i64 %157)\n  unreachable\n$42:\n  %159 = phi i64 [%154, %$39] ; # X\n  %160 = phi i64 [%150, %$39] ; # Exe\n; # (adds (needNum Exe N) D)\n  %161 = call i64 @adds(i64 %159, i64 %153)\n  br label %$40\n$40:\n  %162 = phi i64 [%145, %$38], [%150, %$42] ; # Exe\n  %163 = phi i64 [%146, %$38], [%151, %$42] ; # X\n  %164 = phi i64 [%147, %$38], [%152, %$42] ; # Y\n  %165 = phi i64 [%148, %$38], [%153, %$42] ; # D\n  %166 = phi i64 [%149, %$38], [%154, %$42] ; # N\n  %167 = phi i64 [%148, %$38], [%161, %$42] ; # ->\n  %168 = inttoptr i64 %135 to i64*\n  store i64 %167, i64* %168\n  br label %$35\n$35:\n  %169 = phi i64 [%128, %$33], [%162, %$40] ; # Exe\n  %170 = phi i64 [%129, %$33], [%163, %$40] ; # X\n  %171 = phi i64 [%130, %$33], [%164, %$40] ; # Y\n  %172 = phi i64 [%131, %$33], [%165, %$40] ; # D\n  %173 = phi i64 [%132, %$33], [%166, %$40] ; # N\n  %174 = phi i64 [%131, %$33], [%167, %$40] ; # ->\n  br label %$22\n$22:\n  %175 = phi i64 [%94, %$25], [%169, %$35] ; # Exe\n  %176 = phi i64 [%95, %$25], [%170, %$35] ; # X\n  %177 = phi i64 [%96, %$25], [%171, %$35] ; # Y\n  %178 = phi i64 [%97, %$25], [%174, %$35] ; # ->\n; # (drop *Safe)\n  %179 = inttoptr i64 %45 to i64*\n  %180 = getelementptr i64, i64* %179, i32 1\n  %181 = load i64, i64* %180\n  %182 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %181, i64* %182\n  br label %$2\n$2:\n  %183 = phi i64 [%20, %$9], [%26, %$11], [%175, %$22] ; # Exe\n  %184 = phi i64 [%21, %$9], [%27, %$11], [%176, %$22] ; # X\n  %185 = phi i64 [%18, %$9], [%28, %$11], [%178, %$22] ; # ->\n  ret i64 %185\n}\n\ndefine i64 @_Dec(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((nil? (eval (car X))) @) ((num? @) (decs ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((nil? (eval (car X))) @) ((num? @) (decs @)) (T (let Y (sa...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$9, label %$8\n$9:\n  %20 = phi i64 [%0, %$3] ; # Exe\n  %21 = phi i64 [%3, %$3] ; # X\n  br label %$2\n$8:\n  %22 = phi i64 [%0, %$3] ; # Exe\n  %23 = phi i64 [%3, %$3] ; # X\n; # (num? @)\n  %24 = and i64 %18, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$11:\n  %26 = phi i64 [%22, %$8] ; # Exe\n  %27 = phi i64 [%23, %$8] ; # X\n; # (decs @)\n  %28 = call i64 @decs(i64 %18)\n  br label %$2\n$10:\n  %29 = phi i64 [%22, %$8] ; # Exe\n  %30 = phi i64 [%23, %$8] ; # X\n; # (let Y (save (chkVar Exe @)) (when (and (sym? Y) (sym? (val (tail...\n; # (chkVar Exe @)\n  %31 = icmp uge i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %31, label %$13, label %$12\n$13:\n  %32 = phi i64 [%18, %$10] ; # X\n  %33 = phi i64 [%29, %$10] ; # Exe\n  %34 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %32\n  br label %$12\n$12:\n  %35 = phi i64 [%18, %$10], [%32, %$13] ; # X\n  %36 = phi i64 [%29, %$10], [%33, %$13] ; # Exe\n  %37 = phi i1 [0, %$10], [%34, %$13] ; # ->\n  br i1 %37, label %$14, label %$15\n$14:\n  %38 = phi i64 [%35, %$12] ; # X\n  %39 = phi i64 [%36, %$12] ; # Exe\n  call void @protErr(i64 %39, i64 %38)\n  unreachable\n$15:\n  %40 = phi i64 [%35, %$12] ; # X\n  %41 = phi i64 [%36, %$12] ; # Exe\n; # (save (chkVar Exe @))\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n  %44 = alloca i64, i64 2, align 16\n  %45 = ptrtoint i64* %44 to i64\n  %46 = inttoptr i64 %45 to i64*\n  store i64 %40, i64* %46\n  %47 = add i64 %45, 8\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %45, i64* %49\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %50 = and i64 %40, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$17, label %$16\n$17:\n  %52 = phi i64 [%29, %$15] ; # Exe\n  %53 = phi i64 [%30, %$15] ; # X\n  %54 = phi i64 [%40, %$15] ; # Y\n; # (tail Y)\n  %55 = add i64 %54, -8\n; # (val (tail Y))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n; # (sym? (val (tail Y)))\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br label %$16\n$16:\n  %60 = phi i64 [%29, %$15], [%52, %$17] ; # Exe\n  %61 = phi i64 [%30, %$15], [%53, %$17] ; # X\n  %62 = phi i64 [%40, %$15], [%54, %$17] ; # Y\n  %63 = phi i1 [0, %$15], [%59, %$17] ; # ->\n  br i1 %63, label %$18, label %$19\n$18:\n  %64 = phi i64 [%60, %$16] ; # Exe\n  %65 = phi i64 [%61, %$16] ; # X\n  %66 = phi i64 [%62, %$16] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %64, i64 %66)\n  br label %$19\n$19:\n  %67 = phi i64 [%60, %$16], [%64, %$18] ; # Exe\n  %68 = phi i64 [%61, %$16], [%65, %$18] ; # X\n  %69 = phi i64 [%62, %$16], [%66, %$18] ; # Y\n; # (if (atom (shift X)) (set Y (if (nil? (val Y)) -ONE (decs (needNu...\n; # (shift X)\n  %70 = inttoptr i64 %68 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n; # (atom (shift X))\n  %73 = and i64 %72, 15\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$21\n$20:\n  %75 = phi i64 [%67, %$19] ; # Exe\n  %76 = phi i64 [%72, %$19] ; # X\n  %77 = phi i64 [%69, %$19] ; # Y\n; # (set Y (if (nil? (val Y)) -ONE (decs (needNum Exe @))))\n; # (if (nil? (val Y)) -ONE (decs (needNum Exe @)))\n; # (val Y)\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (nil? (val Y))\n  %80 = icmp eq i64 %79, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %80, label %$23, label %$24\n$23:\n  %81 = phi i64 [%75, %$20] ; # Exe\n  %82 = phi i64 [%76, %$20] ; # X\n  %83 = phi i64 [%77, %$20] ; # Y\n  br label %$25\n$24:\n  %84 = phi i64 [%75, %$20] ; # Exe\n  %85 = phi i64 [%76, %$20] ; # X\n  %86 = phi i64 [%77, %$20] ; # Y\n; # (needNum Exe @)\n  %87 = and i64 %79, 6\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$27, label %$26\n$26:\n  %89 = phi i64 [%79, %$24] ; # X\n  %90 = phi i64 [%84, %$24] ; # Exe\n  call void @numErr(i64 %90, i64 %89)\n  unreachable\n$27:\n  %91 = phi i64 [%79, %$24] ; # X\n  %92 = phi i64 [%84, %$24] ; # Exe\n; # (decs (needNum Exe @))\n  %93 = call i64 @decs(i64 %91)\n  br label %$25\n$25:\n  %94 = phi i64 [%81, %$23], [%84, %$27] ; # Exe\n  %95 = phi i64 [%82, %$23], [%85, %$27] ; # X\n  %96 = phi i64 [%83, %$23], [%86, %$27] ; # Y\n  %97 = phi i64 [26, %$23], [%93, %$27] ; # ->\n  %98 = inttoptr i64 %77 to i64*\n  store i64 %97, i64* %98\n  br label %$22\n$21:\n  %99 = phi i64 [%67, %$19] ; # Exe\n  %100 = phi i64 [%72, %$19] ; # X\n  %101 = phi i64 [%69, %$19] ; # Y\n; # (let (D (save (eval (car X))) N (val Y)) (if (nil? D) D (needNum ...\n; # (car X)\n  %102 = inttoptr i64 %100 to i64*\n  %103 = load i64, i64* %102\n; # (eval (car X))\n  %104 = and i64 %103, 6\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$30, label %$29\n$30:\n  %106 = phi i64 [%103, %$21] ; # X\n  br label %$28\n$29:\n  %107 = phi i64 [%103, %$21] ; # X\n  %108 = and i64 %107, 8\n  %109 = icmp ne i64 %108, 0\n  br i1 %109, label %$32, label %$31\n$32:\n  %110 = phi i64 [%107, %$29] ; # X\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n  br label %$28\n$31:\n  %113 = phi i64 [%107, %$29] ; # X\n  %114 = call i64 @evList(i64 %113)\n  br label %$28\n$28:\n  %115 = phi i64 [%106, %$30], [%110, %$32], [%113, %$31] ; # X\n  %116 = phi i64 [%106, %$30], [%112, %$32], [%114, %$31] ; # ->\n; # (save (eval (car X)))\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %118 = load i64, i64* %117\n  %119 = alloca i64, i64 2, align 16\n  %120 = ptrtoint i64* %119 to i64\n  %121 = inttoptr i64 %120 to i64*\n  store i64 %116, i64* %121\n  %122 = add i64 %120, 8\n  %123 = inttoptr i64 %122 to i64*\n  store i64 %118, i64* %123\n  %124 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %120, i64* %124\n; # (val Y)\n  %125 = inttoptr i64 %101 to i64*\n  %126 = load i64, i64* %125\n; # (if (nil? D) D (needNum Exe D) (set Y (if (nil? N) (- D) (subs (n...\n; # (nil? D)\n  %127 = icmp eq i64 %116, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %127, label %$33, label %$34\n$33:\n  %128 = phi i64 [%99, %$28] ; # Exe\n  %129 = phi i64 [%100, %$28] ; # X\n  %130 = phi i64 [%101, %$28] ; # Y\n  %131 = phi i64 [%116, %$28] ; # D\n  %132 = phi i64 [%126, %$28] ; # N\n  br label %$35\n$34:\n  %133 = phi i64 [%99, %$28] ; # Exe\n  %134 = phi i64 [%100, %$28] ; # X\n  %135 = phi i64 [%101, %$28] ; # Y\n  %136 = phi i64 [%116, %$28] ; # D\n  %137 = phi i64 [%126, %$28] ; # N\n; # (needNum Exe D)\n  %138 = and i64 %136, 6\n  %139 = icmp ne i64 %138, 0\n  br i1 %139, label %$37, label %$36\n$36:\n  %140 = phi i64 [%136, %$34] ; # X\n  %141 = phi i64 [%133, %$34] ; # Exe\n  call void @numErr(i64 %141, i64 %140)\n  unreachable\n$37:\n  %142 = phi i64 [%136, %$34] ; # X\n  %143 = phi i64 [%133, %$34] ; # Exe\n; # (set Y (if (nil? N) (- D) (subs (needNum Exe N) D)))\n; # (if (nil? N) (- D) (subs (needNum Exe N) D))\n; # (nil? N)\n  %144 = icmp eq i64 %137, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %144, label %$38, label %$39\n$38:\n  %145 = phi i64 [%133, %$37] ; # Exe\n  %146 = phi i64 [%134, %$37] ; # X\n  %147 = phi i64 [%135, %$37] ; # Y\n  %148 = phi i64 [%136, %$37] ; # D\n  %149 = phi i64 [%137, %$37] ; # N\n; # (- D)\n  %150 = sub i64 0, %148\n  br label %$40\n$39:\n  %151 = phi i64 [%133, %$37] ; # Exe\n  %152 = phi i64 [%134, %$37] ; # X\n  %153 = phi i64 [%135, %$37] ; # Y\n  %154 = phi i64 [%136, %$37] ; # D\n  %155 = phi i64 [%137, %$37] ; # N\n; # (needNum Exe N)\n  %156 = and i64 %155, 6\n  %157 = icmp ne i64 %156, 0\n  br i1 %157, label %$42, label %$41\n$41:\n  %158 = phi i64 [%155, %$39] ; # X\n  %159 = phi i64 [%151, %$39] ; # Exe\n  call void @numErr(i64 %159, i64 %158)\n  unreachable\n$42:\n  %160 = phi i64 [%155, %$39] ; # X\n  %161 = phi i64 [%151, %$39] ; # Exe\n; # (subs (needNum Exe N) D)\n  %162 = call i64 @subs(i64 %160, i64 %154)\n  br label %$40\n$40:\n  %163 = phi i64 [%145, %$38], [%151, %$42] ; # Exe\n  %164 = phi i64 [%146, %$38], [%152, %$42] ; # X\n  %165 = phi i64 [%147, %$38], [%153, %$42] ; # Y\n  %166 = phi i64 [%148, %$38], [%154, %$42] ; # D\n  %167 = phi i64 [%149, %$38], [%155, %$42] ; # N\n  %168 = phi i64 [%150, %$38], [%162, %$42] ; # ->\n  %169 = inttoptr i64 %135 to i64*\n  store i64 %168, i64* %169\n  br label %$35\n$35:\n  %170 = phi i64 [%128, %$33], [%163, %$40] ; # Exe\n  %171 = phi i64 [%129, %$33], [%164, %$40] ; # X\n  %172 = phi i64 [%130, %$33], [%165, %$40] ; # Y\n  %173 = phi i64 [%131, %$33], [%166, %$40] ; # D\n  %174 = phi i64 [%132, %$33], [%167, %$40] ; # N\n  %175 = phi i64 [%131, %$33], [%168, %$40] ; # ->\n  br label %$22\n$22:\n  %176 = phi i64 [%94, %$25], [%170, %$35] ; # Exe\n  %177 = phi i64 [%95, %$25], [%171, %$35] ; # X\n  %178 = phi i64 [%96, %$25], [%172, %$35] ; # Y\n  %179 = phi i64 [%97, %$25], [%175, %$35] ; # ->\n; # (drop *Safe)\n  %180 = inttoptr i64 %45 to i64*\n  %181 = getelementptr i64, i64* %180, i32 1\n  %182 = load i64, i64* %181\n  %183 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %182, i64* %183\n  br label %$2\n$2:\n  %184 = phi i64 [%20, %$9], [%26, %$11], [%176, %$22] ; # Exe\n  %185 = phi i64 [%21, %$9], [%27, %$11], [%177, %$22] ; # X\n  %186 = phi i64 [%18, %$9], [%28, %$11], [%179, %$22] ; # ->\n  ret i64 %186\n}\n\ndefine i64 @_Mul(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let (Si...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let (Sign (sign? (needNu...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let (Sign (sign? (needNum Exe @)) R (link (push (pos...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let (Sign (sign? (needNum Exe @)) R (link (push (pos @) NIL))) (...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (sign? (needNum Exe @))\n  %38 = and i64 %36, 8\n  %39 = icmp ne i64 %38, 0\n; # (pos @)\n  %40 = and i64 %36, -9\n; # (push (pos @) NIL)\n  %41 = alloca i64, i64 2, align 16\n  %42 = ptrtoint i64* %41 to i64\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %40, i64* %43\n; # (link (push (pos @) NIL))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %42 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %42, i64* %48\n; # (loop (? (atom (shift X)) (let N (val R) (if Sign (neg N) N))) (l...\n  br label %$12\n$12:\n  %49 = phi i64 [%22, %$11], [%142, %$34] ; # Exe\n  %50 = phi i64 [%23, %$11], [%143, %$34] ; # X\n  %51 = phi i1 [%39, %$11], [%144, %$34] ; # Sign\n  %52 = phi i64 [%42, %$11], [%145, %$34] ; # R\n; # (? (atom (shift X)) (let N (val R) (if Sign (neg N) N)))\n; # (shift X)\n  %53 = inttoptr i64 %50 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n; # (atom (shift X))\n  %56 = and i64 %55, 15\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$15, label %$13\n$15:\n  %58 = phi i64 [%49, %$12] ; # Exe\n  %59 = phi i64 [%55, %$12] ; # X\n  %60 = phi i1 [%51, %$12] ; # Sign\n  %61 = phi i64 [%52, %$12] ; # R\n; # (let N (val R) (if Sign (neg N) N))\n; # (val R)\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (if Sign (neg N) N)\n  br i1 %60, label %$16, label %$17\n$16:\n  %64 = phi i64 [%58, %$15] ; # Exe\n  %65 = phi i64 [%59, %$15] ; # X\n  %66 = phi i1 [%60, %$15] ; # Sign\n  %67 = phi i64 [%61, %$15] ; # R\n  %68 = phi i64 [%63, %$15] ; # N\n; # (neg N)\n  %69 = icmp eq i64 %68, 2\n  br i1 %69, label %$19, label %$20\n$19:\n  %70 = phi i64 [%68, %$16] ; # N\n  br label %$21\n$20:\n  %71 = phi i64 [%68, %$16] ; # N\n  %72 = xor i64 %71, 8\n  br label %$21\n$21:\n  %73 = phi i64 [%70, %$19], [%71, %$20] ; # N\n  %74 = phi i64 [%70, %$19], [%72, %$20] ; # ->\n  br label %$18\n$17:\n  %75 = phi i64 [%58, %$15] ; # Exe\n  %76 = phi i64 [%59, %$15] ; # X\n  %77 = phi i1 [%60, %$15] ; # Sign\n  %78 = phi i64 [%61, %$15] ; # R\n  %79 = phi i64 [%63, %$15] ; # N\n  br label %$18\n$18:\n  %80 = phi i64 [%64, %$21], [%75, %$17] ; # Exe\n  %81 = phi i64 [%65, %$21], [%76, %$17] ; # X\n  %82 = phi i1 [%66, %$21], [%77, %$17] ; # Sign\n  %83 = phi i64 [%67, %$21], [%78, %$17] ; # R\n  %84 = phi i64 [%68, %$21], [%79, %$17] ; # N\n  %85 = phi i64 [%74, %$21], [%79, %$17] ; # ->\n  br label %$14\n$13:\n  %86 = phi i64 [%49, %$12] ; # Exe\n  %87 = phi i64 [%55, %$12] ; # X\n  %88 = phi i1 [%51, %$12] ; # Sign\n  %89 = phi i64 [%52, %$12] ; # R\n; # (let N (eval (car X)) (? (nil? N) N) (? (== N ZERO) N) (when (sig...\n; # (car X)\n  %90 = inttoptr i64 %87 to i64*\n  %91 = load i64, i64* %90\n; # (eval (car X))\n  %92 = and i64 %91, 6\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$24, label %$23\n$24:\n  %94 = phi i64 [%91, %$13] ; # X\n  br label %$22\n$23:\n  %95 = phi i64 [%91, %$13] ; # X\n  %96 = and i64 %95, 8\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$26, label %$25\n$26:\n  %98 = phi i64 [%95, %$23] ; # X\n  %99 = inttoptr i64 %98 to i64*\n  %100 = load i64, i64* %99\n  br label %$22\n$25:\n  %101 = phi i64 [%95, %$23] ; # X\n  %102 = call i64 @evList(i64 %101)\n  br label %$22\n$22:\n  %103 = phi i64 [%94, %$24], [%98, %$26], [%101, %$25] ; # X\n  %104 = phi i64 [%94, %$24], [%100, %$26], [%102, %$25] ; # ->\n; # (? (nil? N) N)\n; # (nil? N)\n  %105 = icmp eq i64 %104, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %105, label %$28, label %$27\n$28:\n  %106 = phi i64 [%86, %$22] ; # Exe\n  %107 = phi i64 [%87, %$22] ; # X\n  %108 = phi i1 [%88, %$22] ; # Sign\n  %109 = phi i64 [%89, %$22] ; # R\n  %110 = phi i64 [%104, %$22] ; # N\n  br label %$14\n$27:\n  %111 = phi i64 [%86, %$22] ; # Exe\n  %112 = phi i64 [%87, %$22] ; # X\n  %113 = phi i1 [%88, %$22] ; # Sign\n  %114 = phi i64 [%89, %$22] ; # R\n  %115 = phi i64 [%104, %$22] ; # N\n; # (? (== N ZERO) N)\n; # (== N ZERO)\n  %116 = icmp eq i64 %115, 2\n  br i1 %116, label %$30, label %$29\n$30:\n  %117 = phi i64 [%111, %$27] ; # Exe\n  %118 = phi i64 [%112, %$27] ; # X\n  %119 = phi i1 [%113, %$27] ; # Sign\n  %120 = phi i64 [%114, %$27] ; # R\n  %121 = phi i64 [%115, %$27] ; # N\n  br label %$14\n$29:\n  %122 = phi i64 [%111, %$27] ; # Exe\n  %123 = phi i64 [%112, %$27] ; # X\n  %124 = phi i1 [%113, %$27] ; # Sign\n  %125 = phi i64 [%114, %$27] ; # R\n  %126 = phi i64 [%115, %$27] ; # N\n; # (when (sign? (needNum Exe N)) (setq Sign (not Sign) N (pos N)))\n; # (needNum Exe N)\n  %127 = and i64 %126, 6\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$32, label %$31\n$31:\n  %129 = phi i64 [%126, %$29] ; # X\n  %130 = phi i64 [%122, %$29] ; # Exe\n  call void @numErr(i64 %130, i64 %129)\n  unreachable\n$32:\n  %131 = phi i64 [%126, %$29] ; # X\n  %132 = phi i64 [%122, %$29] ; # Exe\n; # (sign? (needNum Exe N))\n  %133 = and i64 %131, 8\n  %134 = icmp ne i64 %133, 0\n  br i1 %134, label %$33, label %$34\n$33:\n  %135 = phi i64 [%122, %$32] ; # Exe\n  %136 = phi i64 [%123, %$32] ; # X\n  %137 = phi i1 [%124, %$32] ; # Sign\n  %138 = phi i64 [%125, %$32] ; # R\n  %139 = phi i64 [%126, %$32] ; # N\n; # (not Sign)\n  %140 = icmp eq i1 %137, 0\n; # (pos N)\n  %141 = and i64 %139, -9\n  br label %$34\n$34:\n  %142 = phi i64 [%122, %$32], [%135, %$33] ; # Exe\n  %143 = phi i64 [%123, %$32], [%136, %$33] ; # X\n  %144 = phi i1 [%124, %$32], [%140, %$33] ; # Sign\n  %145 = phi i64 [%125, %$32], [%138, %$33] ; # R\n  %146 = phi i64 [%126, %$32], [%141, %$33] ; # N\n; # (safe N)\n  %147 = inttoptr i64 %27 to i64*\n  store i64 %146, i64* %147\n; # (set R (mulu (val R) N))\n; # (val R)\n  %148 = inttoptr i64 %145 to i64*\n  %149 = load i64, i64* %148\n; # (mulu (val R) N)\n  %150 = call i64 @mulu(i64 %149, i64 %146)\n  %151 = inttoptr i64 %145 to i64*\n  store i64 %150, i64* %151\n  br label %$12\n$14:\n  %152 = phi i64 [%80, %$18], [%106, %$28], [%117, %$30] ; # Exe\n  %153 = phi i64 [%81, %$18], [%107, %$28], [%118, %$30] ; # X\n  %154 = phi i1 [%82, %$18], [%108, %$28], [%119, %$30] ; # Sign\n  %155 = phi i64 [%83, %$18], [%109, %$28], [%120, %$30] ; # R\n  %156 = phi i64 [%85, %$18], [%110, %$28], [%121, %$30] ; # ->\n; # drop\n  %157 = inttoptr i64 %27 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n  %160 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %159, i64* %160\n  br label %$9\n$9:\n  %161 = phi i64 [%20, %$7], [%152, %$14] ; # Exe\n  %162 = phi i64 [%21, %$7], [%153, %$14] ; # X\n  %163 = phi i64 [%18, %$7], [%156, %$14] ; # ->\n  ret i64 %163\n}\n\ndefine i64 @_MulDiv(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let (Si...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let (Sign (sign? (needNu...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let (Sign (sign? (needNum Exe @)) R (link (push (pos...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let (Sign (sign? (needNum Exe @)) R (link (push (pos @) NIL))) (...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (sign? (needNum Exe @))\n  %38 = and i64 %36, 8\n  %39 = icmp ne i64 %38, 0\n; # (pos @)\n  %40 = and i64 %36, -9\n; # (push (pos @) NIL)\n  %41 = alloca i64, i64 2, align 16\n  %42 = ptrtoint i64* %41 to i64\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %40, i64* %43\n; # (link (push (pos @) NIL))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %42 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %42, i64* %48\n; # (shift X)\n  %49 = inttoptr i64 %23 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n; # (loop (let N (eval (car X)) (? (nil? N) N) (when (sign? (needNum ...\n  br label %$12\n$12:\n  %52 = phi i64 [%22, %$11], [%171, %$35] ; # Exe\n  %53 = phi i64 [%51, %$11], [%172, %$35] ; # X\n  %54 = phi i1 [%39, %$11], [%173, %$35] ; # Sign\n  %55 = phi i64 [%42, %$11], [%174, %$35] ; # R\n; # (let N (eval (car X)) (? (nil? N) N) (when (sign? (needNum Exe N)...\n; # (car X)\n  %56 = inttoptr i64 %53 to i64*\n  %57 = load i64, i64* %56\n; # (eval (car X))\n  %58 = and i64 %57, 6\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$15, label %$14\n$15:\n  %60 = phi i64 [%57, %$12] ; # X\n  br label %$13\n$14:\n  %61 = phi i64 [%57, %$12] ; # X\n  %62 = and i64 %61, 8\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$17, label %$16\n$17:\n  %64 = phi i64 [%61, %$14] ; # X\n  %65 = inttoptr i64 %64 to i64*\n  %66 = load i64, i64* %65\n  br label %$13\n$16:\n  %67 = phi i64 [%61, %$14] ; # X\n  %68 = call i64 @evList(i64 %67)\n  br label %$13\n$13:\n  %69 = phi i64 [%60, %$15], [%64, %$17], [%67, %$16] ; # X\n  %70 = phi i64 [%60, %$15], [%66, %$17], [%68, %$16] ; # ->\n; # (? (nil? N) N)\n; # (nil? N)\n  %71 = icmp eq i64 %70, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %71, label %$20, label %$18\n$20:\n  %72 = phi i64 [%52, %$13] ; # Exe\n  %73 = phi i64 [%53, %$13] ; # X\n  %74 = phi i1 [%54, %$13] ; # Sign\n  %75 = phi i64 [%55, %$13] ; # R\n  %76 = phi i64 [%70, %$13] ; # N\n  br label %$19\n$18:\n  %77 = phi i64 [%52, %$13] ; # Exe\n  %78 = phi i64 [%53, %$13] ; # X\n  %79 = phi i1 [%54, %$13] ; # Sign\n  %80 = phi i64 [%55, %$13] ; # R\n  %81 = phi i64 [%70, %$13] ; # N\n; # (when (sign? (needNum Exe N)) (setq Sign (not Sign) N (pos N)))\n; # (needNum Exe N)\n  %82 = and i64 %81, 6\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$22, label %$21\n$21:\n  %84 = phi i64 [%81, %$18] ; # X\n  %85 = phi i64 [%77, %$18] ; # Exe\n  call void @numErr(i64 %85, i64 %84)\n  unreachable\n$22:\n  %86 = phi i64 [%81, %$18] ; # X\n  %87 = phi i64 [%77, %$18] ; # Exe\n; # (sign? (needNum Exe N))\n  %88 = and i64 %86, 8\n  %89 = icmp ne i64 %88, 0\n  br i1 %89, label %$23, label %$24\n$23:\n  %90 = phi i64 [%77, %$22] ; # Exe\n  %91 = phi i64 [%78, %$22] ; # X\n  %92 = phi i1 [%79, %$22] ; # Sign\n  %93 = phi i64 [%80, %$22] ; # R\n  %94 = phi i64 [%81, %$22] ; # N\n; # (not Sign)\n  %95 = icmp eq i1 %92, 0\n; # (pos N)\n  %96 = and i64 %94, -9\n  br label %$24\n$24:\n  %97 = phi i64 [%77, %$22], [%90, %$23] ; # Exe\n  %98 = phi i64 [%78, %$22], [%91, %$23] ; # X\n  %99 = phi i1 [%79, %$22], [%95, %$23] ; # Sign\n  %100 = phi i64 [%80, %$22], [%93, %$23] ; # R\n  %101 = phi i64 [%81, %$22], [%96, %$23] ; # N\n; # (safe N)\n  %102 = inttoptr i64 %27 to i64*\n  store i64 %101, i64* %102\n; # (? (atom (shift X)) (when (== N ZERO) (divErr Exe)) (let Half (sa...\n; # (shift X)\n  %103 = inttoptr i64 %98 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (atom (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$26, label %$25\n$26:\n  %108 = phi i64 [%97, %$24] ; # Exe\n  %109 = phi i64 [%105, %$24] ; # X\n  %110 = phi i1 [%99, %$24] ; # Sign\n  %111 = phi i64 [%100, %$24] ; # R\n  %112 = phi i64 [%101, %$24] ; # N\n; # (when (== N ZERO) (divErr Exe))\n; # (== N ZERO)\n  %113 = icmp eq i64 %112, 2\n  br i1 %113, label %$27, label %$28\n$27:\n  %114 = phi i64 [%108, %$26] ; # Exe\n  %115 = phi i64 [%109, %$26] ; # X\n  %116 = phi i1 [%110, %$26] ; # Sign\n  %117 = phi i64 [%111, %$26] ; # R\n  %118 = phi i64 [%112, %$26] ; # N\n; # (divErr Exe)\n  call void @divErr(i64 %114)\n  unreachable\n$28:\n  %119 = phi i64 [%108, %$26] ; # Exe\n  %120 = phi i64 [%109, %$26] ; # X\n  %121 = phi i1 [%110, %$26] ; # Sign\n  %122 = phi i64 [%111, %$26] ; # R\n  %123 = phi i64 [%112, %$26] ; # N\n; # (let Half (save (shru N)) (setq N (divu (set R (addu (val R) Half...\n; # (shru N)\n  %124 = call i64 @shru(i64 %123)\n; # (save (shru N))\n  %125 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %126 = load i64, i64* %125\n  %127 = alloca i64, i64 2, align 16\n  %128 = ptrtoint i64* %127 to i64\n  %129 = inttoptr i64 %128 to i64*\n  store i64 %124, i64* %129\n  %130 = add i64 %128, 8\n  %131 = inttoptr i64 %130 to i64*\n  store i64 %126, i64* %131\n  %132 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %128, i64* %132\n; # (set R (addu (val R) Half))\n; # (val R)\n  %133 = inttoptr i64 %122 to i64*\n  %134 = load i64, i64* %133\n; # (addu (val R) Half)\n  %135 = call i64 @addu(i64 %134, i64 %124)\n  %136 = inttoptr i64 %122 to i64*\n  store i64 %135, i64* %136\n; # (divu (set R (addu (val R) Half)) N)\n  %137 = call i64 @divu(i64 %135, i64 %123)\n; # (if Sign (neg N) N)\n  br i1 %121, label %$29, label %$30\n$29:\n  %138 = phi i64 [%119, %$28] ; # Exe\n  %139 = phi i64 [%120, %$28] ; # X\n  %140 = phi i1 [%121, %$28] ; # Sign\n  %141 = phi i64 [%122, %$28] ; # R\n  %142 = phi i64 [%137, %$28] ; # N\n; # (neg N)\n  %143 = icmp eq i64 %142, 2\n  br i1 %143, label %$32, label %$33\n$32:\n  %144 = phi i64 [%142, %$29] ; # N\n  br label %$34\n$33:\n  %145 = phi i64 [%142, %$29] ; # N\n  %146 = xor i64 %145, 8\n  br label %$34\n$34:\n  %147 = phi i64 [%144, %$32], [%145, %$33] ; # N\n  %148 = phi i64 [%144, %$32], [%146, %$33] ; # ->\n  br label %$31\n$30:\n  %149 = phi i64 [%119, %$28] ; # Exe\n  %150 = phi i64 [%120, %$28] ; # X\n  %151 = phi i1 [%121, %$28] ; # Sign\n  %152 = phi i64 [%122, %$28] ; # R\n  %153 = phi i64 [%137, %$28] ; # N\n  br label %$31\n$31:\n  %154 = phi i64 [%138, %$34], [%149, %$30] ; # Exe\n  %155 = phi i64 [%139, %$34], [%150, %$30] ; # X\n  %156 = phi i1 [%140, %$34], [%151, %$30] ; # Sign\n  %157 = phi i64 [%141, %$34], [%152, %$30] ; # R\n  %158 = phi i64 [%142, %$34], [%153, %$30] ; # N\n  %159 = phi i64 [%148, %$34], [%153, %$30] ; # ->\n  br label %$19\n$25:\n  %160 = phi i64 [%97, %$24] ; # Exe\n  %161 = phi i64 [%105, %$24] ; # X\n  %162 = phi i1 [%99, %$24] ; # Sign\n  %163 = phi i64 [%100, %$24] ; # R\n  %164 = phi i64 [%101, %$24] ; # N\n; # (? (== N ZERO) N)\n; # (== N ZERO)\n  %165 = icmp eq i64 %164, 2\n  br i1 %165, label %$36, label %$35\n$36:\n  %166 = phi i64 [%160, %$25] ; # Exe\n  %167 = phi i64 [%161, %$25] ; # X\n  %168 = phi i1 [%162, %$25] ; # Sign\n  %169 = phi i64 [%163, %$25] ; # R\n  %170 = phi i64 [%164, %$25] ; # N\n  br label %$19\n$35:\n  %171 = phi i64 [%160, %$25] ; # Exe\n  %172 = phi i64 [%161, %$25] ; # X\n  %173 = phi i1 [%162, %$25] ; # Sign\n  %174 = phi i64 [%163, %$25] ; # R\n  %175 = phi i64 [%164, %$25] ; # N\n; # (set R (mulu (val R) N))\n; # (val R)\n  %176 = inttoptr i64 %174 to i64*\n  %177 = load i64, i64* %176\n; # (mulu (val R) N)\n  %178 = call i64 @mulu(i64 %177, i64 %175)\n  %179 = inttoptr i64 %174 to i64*\n  store i64 %178, i64* %179\n  br label %$12\n$19:\n  %180 = phi i64 [%72, %$20], [%154, %$31], [%166, %$36] ; # Exe\n  %181 = phi i64 [%73, %$20], [%155, %$31], [%167, %$36] ; # X\n  %182 = phi i1 [%74, %$20], [%156, %$31], [%168, %$36] ; # Sign\n  %183 = phi i64 [%75, %$20], [%157, %$31], [%169, %$36] ; # R\n  %184 = phi i64 [%76, %$20], [%159, %$31], [%170, %$36] ; # ->\n; # drop\n  %185 = inttoptr i64 %27 to i64*\n  %186 = getelementptr i64, i64* %185, i32 1\n  %187 = load i64, i64* %186\n  %188 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %187, i64* %188\n  br label %$9\n$9:\n  %189 = phi i64 [%20, %$7], [%180, %$19] ; # Exe\n  %190 = phi i64 [%21, %$7], [%181, %$19] ; # X\n  %191 = phi i64 [%18, %$7], [%184, %$19] ; # ->\n  ret i64 %191\n}\n\ndefine i64 @_Div(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let (Si...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let (Sign (sign? (needNu...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let (Sign (sign? (needNum Exe @)) R (link (push (pos...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let (Sign (sign? (needNum Exe @)) R (link (push (pos @) NIL))) (...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (sign? (needNum Exe @))\n  %38 = and i64 %36, 8\n  %39 = icmp ne i64 %38, 0\n; # (pos @)\n  %40 = and i64 %36, -9\n; # (push (pos @) NIL)\n  %41 = alloca i64, i64 2, align 16\n  %42 = ptrtoint i64* %41 to i64\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %40, i64* %43\n; # (link (push (pos @) NIL))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %42 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %42, i64* %48\n; # (loop (? (atom (shift X)) (let N (val R) (if Sign (neg N) N))) (l...\n  br label %$12\n$12:\n  %49 = phi i64 [%22, %$11], [%142, %$34] ; # Exe\n  %50 = phi i64 [%23, %$11], [%143, %$34] ; # X\n  %51 = phi i1 [%39, %$11], [%144, %$34] ; # Sign\n  %52 = phi i64 [%42, %$11], [%145, %$34] ; # R\n; # (? (atom (shift X)) (let N (val R) (if Sign (neg N) N)))\n; # (shift X)\n  %53 = inttoptr i64 %50 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n; # (atom (shift X))\n  %56 = and i64 %55, 15\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$15, label %$13\n$15:\n  %58 = phi i64 [%49, %$12] ; # Exe\n  %59 = phi i64 [%55, %$12] ; # X\n  %60 = phi i1 [%51, %$12] ; # Sign\n  %61 = phi i64 [%52, %$12] ; # R\n; # (let N (val R) (if Sign (neg N) N))\n; # (val R)\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (if Sign (neg N) N)\n  br i1 %60, label %$16, label %$17\n$16:\n  %64 = phi i64 [%58, %$15] ; # Exe\n  %65 = phi i64 [%59, %$15] ; # X\n  %66 = phi i1 [%60, %$15] ; # Sign\n  %67 = phi i64 [%61, %$15] ; # R\n  %68 = phi i64 [%63, %$15] ; # N\n; # (neg N)\n  %69 = icmp eq i64 %68, 2\n  br i1 %69, label %$19, label %$20\n$19:\n  %70 = phi i64 [%68, %$16] ; # N\n  br label %$21\n$20:\n  %71 = phi i64 [%68, %$16] ; # N\n  %72 = xor i64 %71, 8\n  br label %$21\n$21:\n  %73 = phi i64 [%70, %$19], [%71, %$20] ; # N\n  %74 = phi i64 [%70, %$19], [%72, %$20] ; # ->\n  br label %$18\n$17:\n  %75 = phi i64 [%58, %$15] ; # Exe\n  %76 = phi i64 [%59, %$15] ; # X\n  %77 = phi i1 [%60, %$15] ; # Sign\n  %78 = phi i64 [%61, %$15] ; # R\n  %79 = phi i64 [%63, %$15] ; # N\n  br label %$18\n$18:\n  %80 = phi i64 [%64, %$21], [%75, %$17] ; # Exe\n  %81 = phi i64 [%65, %$21], [%76, %$17] ; # X\n  %82 = phi i1 [%66, %$21], [%77, %$17] ; # Sign\n  %83 = phi i64 [%67, %$21], [%78, %$17] ; # R\n  %84 = phi i64 [%68, %$21], [%79, %$17] ; # N\n  %85 = phi i64 [%74, %$21], [%79, %$17] ; # ->\n  br label %$14\n$13:\n  %86 = phi i64 [%49, %$12] ; # Exe\n  %87 = phi i64 [%55, %$12] ; # X\n  %88 = phi i1 [%51, %$12] ; # Sign\n  %89 = phi i64 [%52, %$12] ; # R\n; # (let N (eval (car X)) (? (nil? N) N) (when (== N ZERO) (divErr Ex...\n; # (car X)\n  %90 = inttoptr i64 %87 to i64*\n  %91 = load i64, i64* %90\n; # (eval (car X))\n  %92 = and i64 %91, 6\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$24, label %$23\n$24:\n  %94 = phi i64 [%91, %$13] ; # X\n  br label %$22\n$23:\n  %95 = phi i64 [%91, %$13] ; # X\n  %96 = and i64 %95, 8\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$26, label %$25\n$26:\n  %98 = phi i64 [%95, %$23] ; # X\n  %99 = inttoptr i64 %98 to i64*\n  %100 = load i64, i64* %99\n  br label %$22\n$25:\n  %101 = phi i64 [%95, %$23] ; # X\n  %102 = call i64 @evList(i64 %101)\n  br label %$22\n$22:\n  %103 = phi i64 [%94, %$24], [%98, %$26], [%101, %$25] ; # X\n  %104 = phi i64 [%94, %$24], [%100, %$26], [%102, %$25] ; # ->\n; # (? (nil? N) N)\n; # (nil? N)\n  %105 = icmp eq i64 %104, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %105, label %$28, label %$27\n$28:\n  %106 = phi i64 [%86, %$22] ; # Exe\n  %107 = phi i64 [%87, %$22] ; # X\n  %108 = phi i1 [%88, %$22] ; # Sign\n  %109 = phi i64 [%89, %$22] ; # R\n  %110 = phi i64 [%104, %$22] ; # N\n  br label %$14\n$27:\n  %111 = phi i64 [%86, %$22] ; # Exe\n  %112 = phi i64 [%87, %$22] ; # X\n  %113 = phi i1 [%88, %$22] ; # Sign\n  %114 = phi i64 [%89, %$22] ; # R\n  %115 = phi i64 [%104, %$22] ; # N\n; # (when (== N ZERO) (divErr Exe))\n; # (== N ZERO)\n  %116 = icmp eq i64 %115, 2\n  br i1 %116, label %$29, label %$30\n$29:\n  %117 = phi i64 [%111, %$27] ; # Exe\n  %118 = phi i64 [%112, %$27] ; # X\n  %119 = phi i1 [%113, %$27] ; # Sign\n  %120 = phi i64 [%114, %$27] ; # R\n  %121 = phi i64 [%115, %$27] ; # N\n; # (divErr Exe)\n  call void @divErr(i64 %117)\n  unreachable\n$30:\n  %122 = phi i64 [%111, %$27] ; # Exe\n  %123 = phi i64 [%112, %$27] ; # X\n  %124 = phi i1 [%113, %$27] ; # Sign\n  %125 = phi i64 [%114, %$27] ; # R\n  %126 = phi i64 [%115, %$27] ; # N\n; # (when (sign? (needNum Exe N)) (setq Sign (not Sign) N (pos N)))\n; # (needNum Exe N)\n  %127 = and i64 %126, 6\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$32, label %$31\n$31:\n  %129 = phi i64 [%126, %$30] ; # X\n  %130 = phi i64 [%122, %$30] ; # Exe\n  call void @numErr(i64 %130, i64 %129)\n  unreachable\n$32:\n  %131 = phi i64 [%126, %$30] ; # X\n  %132 = phi i64 [%122, %$30] ; # Exe\n; # (sign? (needNum Exe N))\n  %133 = and i64 %131, 8\n  %134 = icmp ne i64 %133, 0\n  br i1 %134, label %$33, label %$34\n$33:\n  %135 = phi i64 [%122, %$32] ; # Exe\n  %136 = phi i64 [%123, %$32] ; # X\n  %137 = phi i1 [%124, %$32] ; # Sign\n  %138 = phi i64 [%125, %$32] ; # R\n  %139 = phi i64 [%126, %$32] ; # N\n; # (not Sign)\n  %140 = icmp eq i1 %137, 0\n; # (pos N)\n  %141 = and i64 %139, -9\n  br label %$34\n$34:\n  %142 = phi i64 [%122, %$32], [%135, %$33] ; # Exe\n  %143 = phi i64 [%123, %$32], [%136, %$33] ; # X\n  %144 = phi i1 [%124, %$32], [%140, %$33] ; # Sign\n  %145 = phi i64 [%125, %$32], [%138, %$33] ; # R\n  %146 = phi i64 [%126, %$32], [%141, %$33] ; # N\n; # (safe N)\n  %147 = inttoptr i64 %27 to i64*\n  store i64 %146, i64* %147\n; # (set R (divu (val R) N))\n; # (val R)\n  %148 = inttoptr i64 %145 to i64*\n  %149 = load i64, i64* %148\n; # (divu (val R) N)\n  %150 = call i64 @divu(i64 %149, i64 %146)\n  %151 = inttoptr i64 %145 to i64*\n  store i64 %150, i64* %151\n  br label %$12\n$14:\n  %152 = phi i64 [%80, %$18], [%106, %$28] ; # Exe\n  %153 = phi i64 [%81, %$18], [%107, %$28] ; # X\n  %154 = phi i1 [%82, %$18], [%108, %$28] ; # Sign\n  %155 = phi i64 [%83, %$18], [%109, %$28] ; # R\n  %156 = phi i64 [%85, %$18], [%110, %$28] ; # ->\n; # drop\n  %157 = inttoptr i64 %27 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n  %160 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %159, i64* %160\n  br label %$9\n$9:\n  %161 = phi i64 [%20, %$7], [%152, %$14] ; # Exe\n  %162 = phi i64 [%21, %$7], [%153, %$14] ; # X\n  %163 = phi i64 [%18, %$7], [%156, %$14] ; # ->\n  ret i64 %163\n}\n\ndefine i64 @_Rem(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let (Si...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let (Sign (sign? (needNu...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let (Sign (sign? (needNum Exe @)) R (link (push (pos...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let (Sign (sign? (needNum Exe @)) R (link (push (pos @) NIL))) (...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (sign? (needNum Exe @))\n  %38 = and i64 %36, 8\n  %39 = icmp ne i64 %38, 0\n; # (pos @)\n  %40 = and i64 %36, -9\n; # (push (pos @) NIL)\n  %41 = alloca i64, i64 2, align 16\n  %42 = ptrtoint i64* %41 to i64\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %40, i64* %43\n; # (link (push (pos @) NIL))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %42 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %42, i64* %48\n; # (loop (? (atom (shift X)) (let N (val R) (if Sign (neg N) N))) (l...\n  br label %$12\n$12:\n  %49 = phi i64 [%22, %$11], [%122, %$32] ; # Exe\n  %50 = phi i64 [%23, %$11], [%123, %$32] ; # X\n  %51 = phi i1 [%39, %$11], [%124, %$32] ; # Sign\n  %52 = phi i64 [%42, %$11], [%125, %$32] ; # R\n; # (? (atom (shift X)) (let N (val R) (if Sign (neg N) N)))\n; # (shift X)\n  %53 = inttoptr i64 %50 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n; # (atom (shift X))\n  %56 = and i64 %55, 15\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$15, label %$13\n$15:\n  %58 = phi i64 [%49, %$12] ; # Exe\n  %59 = phi i64 [%55, %$12] ; # X\n  %60 = phi i1 [%51, %$12] ; # Sign\n  %61 = phi i64 [%52, %$12] ; # R\n; # (let N (val R) (if Sign (neg N) N))\n; # (val R)\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (if Sign (neg N) N)\n  br i1 %60, label %$16, label %$17\n$16:\n  %64 = phi i64 [%58, %$15] ; # Exe\n  %65 = phi i64 [%59, %$15] ; # X\n  %66 = phi i1 [%60, %$15] ; # Sign\n  %67 = phi i64 [%61, %$15] ; # R\n  %68 = phi i64 [%63, %$15] ; # N\n; # (neg N)\n  %69 = icmp eq i64 %68, 2\n  br i1 %69, label %$19, label %$20\n$19:\n  %70 = phi i64 [%68, %$16] ; # N\n  br label %$21\n$20:\n  %71 = phi i64 [%68, %$16] ; # N\n  %72 = xor i64 %71, 8\n  br label %$21\n$21:\n  %73 = phi i64 [%70, %$19], [%71, %$20] ; # N\n  %74 = phi i64 [%70, %$19], [%72, %$20] ; # ->\n  br label %$18\n$17:\n  %75 = phi i64 [%58, %$15] ; # Exe\n  %76 = phi i64 [%59, %$15] ; # X\n  %77 = phi i1 [%60, %$15] ; # Sign\n  %78 = phi i64 [%61, %$15] ; # R\n  %79 = phi i64 [%63, %$15] ; # N\n  br label %$18\n$18:\n  %80 = phi i64 [%64, %$21], [%75, %$17] ; # Exe\n  %81 = phi i64 [%65, %$21], [%76, %$17] ; # X\n  %82 = phi i1 [%66, %$21], [%77, %$17] ; # Sign\n  %83 = phi i64 [%67, %$21], [%78, %$17] ; # R\n  %84 = phi i64 [%68, %$21], [%79, %$17] ; # N\n  %85 = phi i64 [%74, %$21], [%79, %$17] ; # ->\n  br label %$14\n$13:\n  %86 = phi i64 [%49, %$12] ; # Exe\n  %87 = phi i64 [%55, %$12] ; # X\n  %88 = phi i1 [%51, %$12] ; # Sign\n  %89 = phi i64 [%52, %$12] ; # R\n; # (let N (eval (car X)) (? (nil? N) N) (when (== N ZERO) (divErr Ex...\n; # (car X)\n  %90 = inttoptr i64 %87 to i64*\n  %91 = load i64, i64* %90\n; # (eval (car X))\n  %92 = and i64 %91, 6\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$24, label %$23\n$24:\n  %94 = phi i64 [%91, %$13] ; # X\n  br label %$22\n$23:\n  %95 = phi i64 [%91, %$13] ; # X\n  %96 = and i64 %95, 8\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$26, label %$25\n$26:\n  %98 = phi i64 [%95, %$23] ; # X\n  %99 = inttoptr i64 %98 to i64*\n  %100 = load i64, i64* %99\n  br label %$22\n$25:\n  %101 = phi i64 [%95, %$23] ; # X\n  %102 = call i64 @evList(i64 %101)\n  br label %$22\n$22:\n  %103 = phi i64 [%94, %$24], [%98, %$26], [%101, %$25] ; # X\n  %104 = phi i64 [%94, %$24], [%100, %$26], [%102, %$25] ; # ->\n; # (? (nil? N) N)\n; # (nil? N)\n  %105 = icmp eq i64 %104, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %105, label %$28, label %$27\n$28:\n  %106 = phi i64 [%86, %$22] ; # Exe\n  %107 = phi i64 [%87, %$22] ; # X\n  %108 = phi i1 [%88, %$22] ; # Sign\n  %109 = phi i64 [%89, %$22] ; # R\n  %110 = phi i64 [%104, %$22] ; # N\n  br label %$14\n$27:\n  %111 = phi i64 [%86, %$22] ; # Exe\n  %112 = phi i64 [%87, %$22] ; # X\n  %113 = phi i1 [%88, %$22] ; # Sign\n  %114 = phi i64 [%89, %$22] ; # R\n  %115 = phi i64 [%104, %$22] ; # N\n; # (when (== N ZERO) (divErr Exe))\n; # (== N ZERO)\n  %116 = icmp eq i64 %115, 2\n  br i1 %116, label %$29, label %$30\n$29:\n  %117 = phi i64 [%111, %$27] ; # Exe\n  %118 = phi i64 [%112, %$27] ; # X\n  %119 = phi i1 [%113, %$27] ; # Sign\n  %120 = phi i64 [%114, %$27] ; # R\n  %121 = phi i64 [%115, %$27] ; # N\n; # (divErr Exe)\n  call void @divErr(i64 %117)\n  unreachable\n$30:\n  %122 = phi i64 [%111, %$27] ; # Exe\n  %123 = phi i64 [%112, %$27] ; # X\n  %124 = phi i1 [%113, %$27] ; # Sign\n  %125 = phi i64 [%114, %$27] ; # R\n  %126 = phi i64 [%115, %$27] ; # N\n; # (set R (remu (val R) (safe (pos (needNum Exe N)))))\n; # (val R)\n  %127 = inttoptr i64 %125 to i64*\n  %128 = load i64, i64* %127\n; # (needNum Exe N)\n  %129 = and i64 %126, 6\n  %130 = icmp ne i64 %129, 0\n  br i1 %130, label %$32, label %$31\n$31:\n  %131 = phi i64 [%126, %$30] ; # X\n  %132 = phi i64 [%122, %$30] ; # Exe\n  call void @numErr(i64 %132, i64 %131)\n  unreachable\n$32:\n  %133 = phi i64 [%126, %$30] ; # X\n  %134 = phi i64 [%122, %$30] ; # Exe\n; # (pos (needNum Exe N))\n  %135 = and i64 %133, -9\n; # (safe (pos (needNum Exe N)))\n  %136 = inttoptr i64 %27 to i64*\n  store i64 %135, i64* %136\n; # (remu (val R) (safe (pos (needNum Exe N))))\n  %137 = call i64 @remu(i64 %128, i64 %135)\n  %138 = inttoptr i64 %125 to i64*\n  store i64 %137, i64* %138\n  br label %$12\n$14:\n  %139 = phi i64 [%80, %$18], [%106, %$28] ; # Exe\n  %140 = phi i64 [%81, %$18], [%107, %$28] ; # X\n  %141 = phi i1 [%82, %$18], [%108, %$28] ; # Sign\n  %142 = phi i64 [%83, %$18], [%109, %$28] ; # R\n  %143 = phi i64 [%85, %$18], [%110, %$28] ; # ->\n; # drop\n  %144 = inttoptr i64 %27 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  %146 = load i64, i64* %145\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %146, i64* %147\n  br label %$9\n$9:\n  %148 = phi i64 [%20, %$7], [%139, %$14] ; # Exe\n  %149 = phi i64 [%21, %$7], [%140, %$14] ; # X\n  %150 = phi i64 [%18, %$7], [%143, %$14] ; # ->\n  ret i64 %150\n}\n\ndefine i64 @_Shr(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X) Y (eval (cadr X))) (if (or (=0 ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (cadr X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (eval (cadr X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$3\n$4:\n  %12 = phi i64 [%9, %$1] ; # X\n  br label %$2\n$3:\n  %13 = phi i64 [%9, %$1] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i64 [%13, %$3] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$2\n$5:\n  %19 = phi i64 [%13, %$3] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$2\n$2:\n  %21 = phi i64 [%12, %$4], [%16, %$6], [%19, %$5] ; # X\n  %22 = phi i64 [%12, %$4], [%18, %$6], [%20, %$5] ; # ->\n; # (if (or (=0 N) (nil? Y) (== ZERO (needNum Exe Y))) Y (let Sign (s...\n; # (or (=0 N) (nil? Y) (== ZERO (needNum Exe Y)))\n; # (=0 N)\n  %23 = icmp eq i64 %4, 0\n  br i1 %23, label %$7, label %$8\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%3, %$2] ; # X\n  %26 = phi i64 [%4, %$2] ; # N\n  %27 = phi i64 [%22, %$2] ; # Y\n; # (nil? Y)\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %28, label %$7, label %$9\n$9:\n  %29 = phi i64 [%24, %$8] ; # Exe\n  %30 = phi i64 [%25, %$8] ; # X\n  %31 = phi i64 [%26, %$8] ; # N\n  %32 = phi i64 [%27, %$8] ; # Y\n; # (needNum Exe Y)\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$11, label %$10\n$10:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%29, %$9] ; # Exe\n  call void @numErr(i64 %36, i64 %35)\n  unreachable\n$11:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%29, %$9] ; # Exe\n; # (== ZERO (needNum Exe Y))\n  %39 = icmp eq i64 2, %37\n  br label %$7\n$7:\n  %40 = phi i64 [%0, %$2], [%24, %$8], [%29, %$11] ; # Exe\n  %41 = phi i64 [%3, %$2], [%25, %$8], [%30, %$11] ; # X\n  %42 = phi i64 [%4, %$2], [%26, %$8], [%31, %$11] ; # N\n  %43 = phi i64 [%22, %$2], [%27, %$8], [%32, %$11] ; # Y\n  %44 = phi i1 [1, %$2], [1, %$8], [%39, %$11] ; # ->\n  br i1 %44, label %$12, label %$13\n$12:\n  %45 = phi i64 [%40, %$7] ; # Exe\n  %46 = phi i64 [%41, %$7] ; # X\n  %47 = phi i64 [%42, %$7] ; # N\n  %48 = phi i64 [%43, %$7] ; # Y\n  br label %$14\n$13:\n  %49 = phi i64 [%40, %$7] ; # Exe\n  %50 = phi i64 [%41, %$7] ; # X\n  %51 = phi i64 [%42, %$7] ; # N\n  %52 = phi i64 [%43, %$7] ; # Y\n; # (let Sign (sign? Y) (setq Y (save (pos Y))) (cond ((gt0 N) (while...\n; # (sign? Y)\n  %53 = and i64 %52, 8\n  %54 = icmp ne i64 %53, 0\n; # (pos Y)\n  %55 = and i64 %52, -9\n; # (save (pos Y))\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %57 = load i64, i64* %56\n  %58 = alloca i64, i64 2, align 16\n  %59 = ptrtoint i64* %58 to i64\n  %60 = inttoptr i64 %59 to i64*\n  store i64 %55, i64* %60\n  %61 = add i64 %59, 8\n  %62 = inttoptr i64 %61 to i64*\n  store i64 %57, i64* %62\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %59, i64* %63\n; # (cond ((gt0 N) (while (and (big? Y) (>= N 64)) (setq Y (val (big ...\n; # (gt0 N)\n  %64 = icmp sgt i64 %51, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%49, %$13] ; # Exe\n  %66 = phi i64 [%50, %$13] ; # X\n  %67 = phi i64 [%51, %$13] ; # N\n  %68 = phi i64 [%55, %$13] ; # Y\n  %69 = phi i1 [%54, %$13] ; # Sign\n; # (while (and (big? Y) (>= N 64)) (setq Y (val (big Y))) (unless (d...\n  br label %$18\n$18:\n  %70 = phi i64 [%65, %$17], [%104, %$24] ; # Exe\n  %71 = phi i64 [%66, %$17], [%105, %$24] ; # X\n  %72 = phi i64 [%67, %$17], [%106, %$24] ; # N\n  %73 = phi i64 [%68, %$17], [%107, %$24] ; # Y\n  %74 = phi i1 [%69, %$17], [%108, %$24] ; # Sign\n; # (and (big? Y) (>= N 64))\n; # (big? Y)\n  %75 = and i64 %73, 4\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$20, label %$19\n$20:\n  %77 = phi i64 [%70, %$18] ; # Exe\n  %78 = phi i64 [%71, %$18] ; # X\n  %79 = phi i64 [%72, %$18] ; # N\n  %80 = phi i64 [%73, %$18] ; # Y\n  %81 = phi i1 [%74, %$18] ; # Sign\n; # (>= N 64)\n  %82 = icmp uge i64 %79, 64\n  br label %$19\n$19:\n  %83 = phi i64 [%70, %$18], [%77, %$20] ; # Exe\n  %84 = phi i64 [%71, %$18], [%78, %$20] ; # X\n  %85 = phi i64 [%72, %$18], [%79, %$20] ; # N\n  %86 = phi i64 [%73, %$18], [%80, %$20] ; # Y\n  %87 = phi i1 [%74, %$18], [%81, %$20] ; # Sign\n  %88 = phi i1 [0, %$18], [%82, %$20] ; # ->\n  br i1 %88, label %$21, label %$22\n$21:\n  %89 = phi i64 [%83, %$19] ; # Exe\n  %90 = phi i64 [%84, %$19] ; # X\n  %91 = phi i64 [%85, %$19] ; # N\n  %92 = phi i64 [%86, %$19] ; # Y\n  %93 = phi i1 [%87, %$19] ; # Sign\n; # (big Y)\n  %94 = add i64 %92, 4\n; # (val (big Y))\n  %95 = inttoptr i64 %94 to i64*\n  %96 = load i64, i64* %95\n; # (unless (dec 'N 64) (goto 9))\n; # (dec 'N 64)\n  %97 = sub i64 %91, 64\n  %98 = icmp ne i64 %97, 0\n  br i1 %98, label %$24, label %$23\n$23:\n  %99 = phi i64 [%89, %$21] ; # Exe\n  %100 = phi i64 [%90, %$21] ; # X\n  %101 = phi i64 [%97, %$21] ; # N\n  %102 = phi i64 [%96, %$21] ; # Y\n  %103 = phi i1 [%93, %$21] ; # Sign\n; # (goto 9)\n  br label %$-9\n$24:\n  %104 = phi i64 [%89, %$21] ; # Exe\n  %105 = phi i64 [%90, %$21] ; # X\n  %106 = phi i64 [%97, %$21] ; # N\n  %107 = phi i64 [%96, %$21] ; # Y\n  %108 = phi i1 [%93, %$21] ; # Sign\n  br label %$18\n$22:\n  %109 = phi i64 [%83, %$19] ; # Exe\n  %110 = phi i64 [%84, %$19] ; # X\n  %111 = phi i64 [%85, %$19] ; # N\n  %112 = phi i64 [%86, %$19] ; # Y\n  %113 = phi i1 [%87, %$19] ; # Sign\n; # (shru Y)\n  %114 = call i64 @shru(i64 %112)\n; # (safe (shru Y))\n  %115 = inttoptr i64 %59 to i64*\n  store i64 %114, i64* %115\n; # (while (dec 'N) (setq Y (half Y)))\n  br label %$25\n$25:\n  %116 = phi i64 [%109, %$22], [%123, %$26] ; # Exe\n  %117 = phi i64 [%110, %$22], [%124, %$26] ; # X\n  %118 = phi i64 [%111, %$22], [%125, %$26] ; # N\n  %119 = phi i64 [%114, %$22], [%128, %$26] ; # Y\n  %120 = phi i1 [%113, %$22], [%127, %$26] ; # Sign\n; # (dec 'N)\n  %121 = sub i64 %118, 1\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$26, label %$27\n$26:\n  %123 = phi i64 [%116, %$25] ; # Exe\n  %124 = phi i64 [%117, %$25] ; # X\n  %125 = phi i64 [%121, %$25] ; # N\n  %126 = phi i64 [%119, %$25] ; # Y\n  %127 = phi i1 [%120, %$25] ; # Sign\n; # (half Y)\n  %128 = call i64 @half(i64 %126)\n  br label %$25\n$27:\n  %129 = phi i64 [%116, %$25] ; # Exe\n  %130 = phi i64 [%117, %$25] ; # X\n  %131 = phi i64 [%121, %$25] ; # N\n  %132 = phi i64 [%119, %$25] ; # Y\n  %133 = phi i1 [%120, %$25] ; # Sign\n  br label %$15\n$16:\n  %134 = phi i64 [%49, %$13] ; # Exe\n  %135 = phi i64 [%50, %$13] ; # X\n  %136 = phi i64 [%51, %$13] ; # N\n  %137 = phi i64 [%55, %$13] ; # Y\n  %138 = phi i1 [%54, %$13] ; # Sign\n; # (while (>= -64 N) (setq Y (safe (consNum 0 Y))) (unless (inc 'N 6...\n  br label %$28\n$28:\n  %139 = phi i64 [%134, %$16], [%159, %$32] ; # Exe\n  %140 = phi i64 [%135, %$16], [%160, %$32] ; # X\n  %141 = phi i64 [%136, %$16], [%161, %$32] ; # N\n  %142 = phi i64 [%137, %$16], [%162, %$32] ; # Y\n  %143 = phi i1 [%138, %$16], [%163, %$32] ; # Sign\n; # (>= -64 N)\n  %144 = icmp uge i64 -64, %141\n  br i1 %144, label %$29, label %$30\n$29:\n  %145 = phi i64 [%139, %$28] ; # Exe\n  %146 = phi i64 [%140, %$28] ; # X\n  %147 = phi i64 [%141, %$28] ; # N\n  %148 = phi i64 [%142, %$28] ; # Y\n  %149 = phi i1 [%143, %$28] ; # Sign\n; # (consNum 0 Y)\n  %150 = call i64 @consNum(i64 0, i64 %148)\n; # (safe (consNum 0 Y))\n  %151 = inttoptr i64 %59 to i64*\n  store i64 %150, i64* %151\n; # (unless (inc 'N 64) (goto 9))\n; # (inc 'N 64)\n  %152 = add i64 %147, 64\n  %153 = icmp ne i64 %152, 0\n  br i1 %153, label %$32, label %$31\n$31:\n  %154 = phi i64 [%145, %$29] ; # Exe\n  %155 = phi i64 [%146, %$29] ; # X\n  %156 = phi i64 [%152, %$29] ; # N\n  %157 = phi i64 [%150, %$29] ; # Y\n  %158 = phi i1 [%149, %$29] ; # Sign\n; # (goto 9)\n  br label %$-9\n$32:\n  %159 = phi i64 [%145, %$29] ; # Exe\n  %160 = phi i64 [%146, %$29] ; # X\n  %161 = phi i64 [%152, %$29] ; # N\n  %162 = phi i64 [%150, %$29] ; # Y\n  %163 = phi i1 [%149, %$29] ; # Sign\n  br label %$28\n$30:\n  %164 = phi i64 [%139, %$28] ; # Exe\n  %165 = phi i64 [%140, %$28] ; # X\n  %166 = phi i64 [%141, %$28] ; # N\n  %167 = phi i64 [%142, %$28] ; # Y\n  %168 = phi i1 [%143, %$28] ; # Sign\n; # (shlu Y)\n  %169 = call i64 @shlu(i64 %167)\n; # (safe (shlu Y))\n  %170 = inttoptr i64 %59 to i64*\n  store i64 %169, i64* %170\n; # (while (inc 'N) (setq Y (safe (twice Y))))\n  br label %$33\n$33:\n  %171 = phi i64 [%164, %$30], [%178, %$34] ; # Exe\n  %172 = phi i64 [%165, %$30], [%179, %$34] ; # X\n  %173 = phi i64 [%166, %$30], [%180, %$34] ; # N\n  %174 = phi i64 [%169, %$30], [%183, %$34] ; # Y\n  %175 = phi i1 [%168, %$30], [%182, %$34] ; # Sign\n; # (inc 'N)\n  %176 = add i64 %173, 1\n  %177 = icmp ne i64 %176, 0\n  br i1 %177, label %$34, label %$35\n$34:\n  %178 = phi i64 [%171, %$33] ; # Exe\n  %179 = phi i64 [%172, %$33] ; # X\n  %180 = phi i64 [%176, %$33] ; # N\n  %181 = phi i64 [%174, %$33] ; # Y\n  %182 = phi i1 [%175, %$33] ; # Sign\n; # (twice Y)\n  %183 = call i64 @twice(i64 %181)\n; # (safe (twice Y))\n  %184 = inttoptr i64 %59 to i64*\n  store i64 %183, i64* %184\n  br label %$33\n$35:\n  %185 = phi i64 [%171, %$33] ; # Exe\n  %186 = phi i64 [%172, %$33] ; # X\n  %187 = phi i64 [%176, %$33] ; # N\n  %188 = phi i64 [%174, %$33] ; # Y\n  %189 = phi i1 [%175, %$33] ; # Sign\n  br label %$15\n$15:\n  %190 = phi i64 [%129, %$27], [%185, %$35] ; # Exe\n  %191 = phi i64 [%130, %$27], [%186, %$35] ; # X\n  %192 = phi i64 [%131, %$27], [%187, %$35] ; # N\n  %193 = phi i64 [%132, %$27], [%188, %$35] ; # Y\n  %194 = phi i1 [%133, %$27], [%189, %$35] ; # Sign\n; # (: 9 (if Sign (neg Y) Y))\n  br label %$-9\n$-9:\n  %195 = phi i64 [%99, %$23], [%154, %$31], [%190, %$15] ; # Exe\n  %196 = phi i64 [%100, %$23], [%155, %$31], [%191, %$15] ; # X\n  %197 = phi i64 [%101, %$23], [%156, %$31], [%192, %$15] ; # N\n  %198 = phi i64 [%102, %$23], [%157, %$31], [%193, %$15] ; # Y\n  %199 = phi i1 [%103, %$23], [%158, %$31], [%194, %$15] ; # Sign\n; # (if Sign (neg Y) Y)\n  br i1 %199, label %$36, label %$37\n$36:\n  %200 = phi i64 [%195, %$-9] ; # Exe\n  %201 = phi i64 [%196, %$-9] ; # X\n  %202 = phi i64 [%197, %$-9] ; # N\n  %203 = phi i64 [%198, %$-9] ; # Y\n  %204 = phi i1 [%199, %$-9] ; # Sign\n; # (neg Y)\n  %205 = icmp eq i64 %203, 2\n  br i1 %205, label %$39, label %$40\n$39:\n  %206 = phi i64 [%203, %$36] ; # N\n  br label %$41\n$40:\n  %207 = phi i64 [%203, %$36] ; # N\n  %208 = xor i64 %207, 8\n  br label %$41\n$41:\n  %209 = phi i64 [%206, %$39], [%207, %$40] ; # N\n  %210 = phi i64 [%206, %$39], [%208, %$40] ; # ->\n  br label %$38\n$37:\n  %211 = phi i64 [%195, %$-9] ; # Exe\n  %212 = phi i64 [%196, %$-9] ; # X\n  %213 = phi i64 [%197, %$-9] ; # N\n  %214 = phi i64 [%198, %$-9] ; # Y\n  %215 = phi i1 [%199, %$-9] ; # Sign\n  br label %$38\n$38:\n  %216 = phi i64 [%200, %$41], [%211, %$37] ; # Exe\n  %217 = phi i64 [%201, %$41], [%212, %$37] ; # X\n  %218 = phi i64 [%202, %$41], [%213, %$37] ; # N\n  %219 = phi i64 [%203, %$41], [%214, %$37] ; # Y\n  %220 = phi i1 [%204, %$41], [%215, %$37] ; # Sign\n  %221 = phi i64 [%210, %$41], [%214, %$37] ; # ->\n; # (drop *Safe)\n  %222 = inttoptr i64 %59 to i64*\n  %223 = getelementptr i64, i64* %222, i32 1\n  %224 = load i64, i64* %223\n  %225 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %224, i64* %225\n  br label %$14\n$14:\n  %226 = phi i64 [%45, %$12], [%216, %$38] ; # Exe\n  %227 = phi i64 [%46, %$12], [%217, %$38] ; # X\n  %228 = phi i64 [%47, %$12], [%218, %$38] ; # N\n  %229 = phi i64 [%48, %$12], [%219, %$38] ; # Y\n  %230 = phi i64 [%48, %$12], [%221, %$38] ; # ->\n  ret i64 %230\n}\n\ndefine i64 @_Rev(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) C (evCnt Exe X) N (evCnt Exe (cdr X)) R 0) (loo...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (cdr X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (evCnt Exe (cdr X))\n  %8 = call i64 @evCnt(i64 %0, i64 %7)\n; # (loop (setq R (+ R R (& N 1)) N (shr N 1)) (? (=0 (dec 'C))))\n  br label %$2\n$2:\n  %9 = phi i64 [%0, %$1], [%20, %$3] ; # Exe\n  %10 = phi i64 [%3, %$1], [%21, %$3] ; # X\n  %11 = phi i64 [%4, %$1], [%22, %$3] ; # C\n  %12 = phi i64 [%8, %$1], [%23, %$3] ; # N\n  %13 = phi i64 [0, %$1], [%24, %$3] ; # R\n; # (& N 1)\n  %14 = and i64 %12, 1\n; # (+ R R (& N 1))\n  %15 = add i64 %13, %13\n  %16 = add i64 %15, %14\n; # (shr N 1)\n  %17 = lshr i64 %12, 1\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %18 = sub i64 %11, 1\n; # (=0 (dec 'C))\n  %19 = icmp eq i64 %18, 0\n  br i1 %19, label %$4, label %$3\n$3:\n  %20 = phi i64 [%9, %$2] ; # Exe\n  %21 = phi i64 [%10, %$2] ; # X\n  %22 = phi i64 [%18, %$2] ; # C\n  %23 = phi i64 [%17, %$2] ; # N\n  %24 = phi i64 [%16, %$2] ; # R\n  br label %$2\n$4:\n  %25 = phi i64 [%9, %$2] ; # Exe\n  %26 = phi i64 [%10, %$2] ; # X\n  %27 = phi i64 [%18, %$2] ; # C\n  %28 = phi i64 [%17, %$2] ; # N\n  %29 = phi i64 [%16, %$2] ; # R\n  %30 = phi i64 [0, %$2] ; # ->\n; # (cnt R)\n  %31 = shl i64 %29, 4\n  %32 = or i64 %31, 2\n  ret i64 %32\n}\n\ndefine i64 @_Lt0(i64) align 8 {\n$1:\n; # (if (and (num? (eval (cadr Exe))) (sign? @)) @ $Nil)\n; # (and (num? (eval (cadr Exe))) (sign? @))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (num? (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$2\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (sign? @)\n  %22 = and i64 %18, 8\n  %23 = icmp ne i64 %22, 0\n  br label %$2\n$2:\n  %24 = phi i64 [%0, %$3], [%21, %$8] ; # Exe\n  %25 = phi i1 [0, %$3], [%23, %$8] ; # ->\n  br i1 %25, label %$9, label %$10\n$9:\n  %26 = phi i64 [%24, %$2] ; # Exe\n  br label %$11\n$10:\n  %27 = phi i64 [%24, %$2] ; # Exe\n  br label %$11\n$11:\n  %28 = phi i64 [%26, %$9], [%27, %$10] ; # Exe\n  %29 = phi i64 [%18, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %29\n}\n\ndefine i64 @_Le0(i64) align 8 {\n$1:\n; # (if (and (num? (eval (cadr Exe))) (or (== @ ZERO) (sign? @))) @ $...\n; # (and (num? (eval (cadr Exe))) (or (== @ ZERO) (sign? @)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (num? (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$2\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (or (== @ ZERO) (sign? @))\n; # (== @ ZERO)\n  %22 = icmp eq i64 %18, 2\n  br i1 %22, label %$9, label %$10\n$10:\n  %23 = phi i64 [%21, %$8] ; # Exe\n; # (sign? @)\n  %24 = and i64 %18, 8\n  %25 = icmp ne i64 %24, 0\n  br label %$9\n$9:\n  %26 = phi i64 [%21, %$8], [%23, %$10] ; # Exe\n  %27 = phi i1 [1, %$8], [%25, %$10] ; # ->\n  br label %$2\n$2:\n  %28 = phi i64 [%0, %$3], [%26, %$9] ; # Exe\n  %29 = phi i1 [0, %$3], [%27, %$9] ; # ->\n  br i1 %29, label %$11, label %$12\n$11:\n  %30 = phi i64 [%28, %$2] ; # Exe\n  br label %$13\n$12:\n  %31 = phi i64 [%28, %$2] ; # Exe\n  br label %$13\n$13:\n  %32 = phi i64 [%30, %$11], [%31, %$12] ; # Exe\n  %33 = phi i64 [%18, %$11], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # ->\n  ret i64 %33\n}\n\ndefine i64 @_Ge0(i64) align 8 {\n$1:\n; # (if (and (num? (eval (cadr Exe))) (not (sign? @))) @ $Nil)\n; # (and (num? (eval (cadr Exe))) (not (sign? @)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (num? (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$2\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (sign? @)\n  %22 = and i64 %18, 8\n  %23 = icmp ne i64 %22, 0\n; # (not (sign? @))\n  %24 = icmp eq i1 %23, 0\n  br label %$2\n$2:\n  %25 = phi i64 [%0, %$3], [%21, %$8] ; # Exe\n  %26 = phi i1 [0, %$3], [%24, %$8] ; # ->\n  br i1 %26, label %$9, label %$10\n$9:\n  %27 = phi i64 [%25, %$2] ; # Exe\n  br label %$11\n$10:\n  %28 = phi i64 [%25, %$2] ; # Exe\n  br label %$11\n$11:\n  %29 = phi i64 [%27, %$9], [%28, %$10] ; # Exe\n  %30 = phi i64 [%18, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %30\n}\n\ndefine i64 @_Gt0(i64) align 8 {\n$1:\n; # (if (and (num? (eval (cadr Exe))) (<> @ ZERO) (not (sign? @))) @ ...\n; # (and (num? (eval (cadr Exe))) (<> @ ZERO) (not (sign? @)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (num? (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$2\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (<> @ ZERO)\n  %22 = icmp ne i64 %18, 2\n  br i1 %22, label %$9, label %$2\n$9:\n  %23 = phi i64 [%21, %$8] ; # Exe\n; # (sign? @)\n  %24 = and i64 %18, 8\n  %25 = icmp ne i64 %24, 0\n; # (not (sign? @))\n  %26 = icmp eq i1 %25, 0\n  br label %$2\n$2:\n  %27 = phi i64 [%0, %$3], [%21, %$8], [%23, %$9] ; # Exe\n  %28 = phi i1 [0, %$3], [0, %$8], [%26, %$9] ; # ->\n  br i1 %28, label %$10, label %$11\n$10:\n  %29 = phi i64 [%27, %$2] ; # Exe\n  br label %$12\n$11:\n  %30 = phi i64 [%27, %$2] ; # Exe\n  br label %$12\n$12:\n  %31 = phi i64 [%29, %$10], [%30, %$11] ; # Exe\n  %32 = phi i64 [%18, %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11] ; # ->\n  ret i64 %32\n}\n\ndefine i64 @_Abs(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) @ (pos (needNum Exe @)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n; # (needNum Exe @)\n  %22 = and i64 %18, 6\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$11, label %$10\n$10:\n  %24 = phi i64 [%18, %$8] ; # X\n  %25 = phi i64 [%21, %$8] ; # Exe\n  call void @numErr(i64 %25, i64 %24)\n  unreachable\n$11:\n  %26 = phi i64 [%18, %$8] ; # X\n  %27 = phi i64 [%21, %$8] ; # Exe\n; # (pos (needNum Exe @))\n  %28 = and i64 %26, -9\n  br label %$9\n$9:\n  %29 = phi i64 [%20, %$7], [%21, %$11] ; # Exe\n  %30 = phi i64 [%18, %$7], [%28, %$11] ; # ->\n  ret i64 %30\n}\n\ndefine i64 @_BitQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (save (pos (needNum Exe (eval (++ X)))))) (lo...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needNum Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$8, label %$7\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @numErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n; # (pos (needNum Exe (eval (++ X))))\n  %27 = and i64 %25, -9\n; # (save (pos (needNum Exe (eval (++ X)))))\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = alloca i64, i64 2, align 16\n  %31 = ptrtoint i64* %30 to i64\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = add i64 %31, 8\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %35\n; # (loop (? (atom X) N) (let Y (eval (++ X)) (? (nil? Y) Y) (setq Y ...\n  br label %$9\n$9:\n  %36 = phi i64 [%0, %$8], [%166, %$31] ; # Exe\n  %37 = phi i64 [%6, %$8], [%167, %$31] ; # X\n  %38 = phi i64 [%27, %$8], [%168, %$31] ; # N\n; # (? (atom X) N)\n; # (atom X)\n  %39 = and i64 %37, 15\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$12, label %$10\n$12:\n  %41 = phi i64 [%36, %$9] ; # Exe\n  %42 = phi i64 [%37, %$9] ; # X\n  %43 = phi i64 [%38, %$9] ; # N\n  br label %$11\n$10:\n  %44 = phi i64 [%36, %$9] ; # Exe\n  %45 = phi i64 [%37, %$9] ; # X\n  %46 = phi i64 [%38, %$9] ; # N\n; # (let Y (eval (++ X)) (? (nil? Y) Y) (setq Y (pos (needNum Exe Y))...\n; # (++ X)\n  %47 = inttoptr i64 %45 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  %50 = load i64, i64* %47\n; # (eval (++ X))\n  %51 = and i64 %50, 6\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$15, label %$14\n$15:\n  %53 = phi i64 [%50, %$10] ; # X\n  br label %$13\n$14:\n  %54 = phi i64 [%50, %$10] ; # X\n  %55 = and i64 %54, 8\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$17, label %$16\n$17:\n  %57 = phi i64 [%54, %$14] ; # X\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$13\n$16:\n  %60 = phi i64 [%54, %$14] ; # X\n  %61 = call i64 @evList(i64 %60)\n  br label %$13\n$13:\n  %62 = phi i64 [%53, %$15], [%57, %$17], [%60, %$16] ; # X\n  %63 = phi i64 [%53, %$15], [%59, %$17], [%61, %$16] ; # ->\n; # (? (nil? Y) Y)\n; # (nil? Y)\n  %64 = icmp eq i64 %63, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %64, label %$19, label %$18\n$19:\n  %65 = phi i64 [%44, %$13] ; # Exe\n  %66 = phi i64 [%49, %$13] ; # X\n  %67 = phi i64 [%46, %$13] ; # N\n  %68 = phi i64 [%63, %$13] ; # Y\n  br label %$11\n$18:\n  %69 = phi i64 [%44, %$13] ; # Exe\n  %70 = phi i64 [%49, %$13] ; # X\n  %71 = phi i64 [%46, %$13] ; # N\n  %72 = phi i64 [%63, %$13] ; # Y\n; # (needNum Exe Y)\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$21, label %$20\n$20:\n  %75 = phi i64 [%72, %$18] ; # X\n  %76 = phi i64 [%69, %$18] ; # Exe\n  call void @numErr(i64 %76, i64 %75)\n  unreachable\n$21:\n  %77 = phi i64 [%72, %$18] ; # X\n  %78 = phi i64 [%69, %$18] ; # Exe\n; # (pos (needNum Exe Y))\n  %79 = and i64 %77, -9\n; # (let Z N (while (big? Z) (unless (big? Y) (ret $Nil)) (let A (val...\n; # (while (big? Z) (unless (big? Y) (ret $Nil)) (let A (val (dig Z))...\n  br label %$22\n$22:\n  %80 = phi i64 [%69, %$21], [%126, %$28] ; # Exe\n  %81 = phi i64 [%70, %$21], [%127, %$28] ; # X\n  %82 = phi i64 [%71, %$21], [%128, %$28] ; # N\n  %83 = phi i64 [%79, %$21], [%134, %$28] ; # Y\n  %84 = phi i64 [%71, %$21], [%137, %$28] ; # Z\n; # (big? Z)\n  %85 = and i64 %84, 4\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$23, label %$24\n$23:\n  %87 = phi i64 [%80, %$22] ; # Exe\n  %88 = phi i64 [%81, %$22] ; # X\n  %89 = phi i64 [%82, %$22] ; # N\n  %90 = phi i64 [%83, %$22] ; # Y\n  %91 = phi i64 [%84, %$22] ; # Z\n; # (unless (big? Y) (ret $Nil))\n; # (big? Y)\n  %92 = and i64 %90, 4\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$26, label %$25\n$25:\n  %94 = phi i64 [%87, %$23] ; # Exe\n  %95 = phi i64 [%88, %$23] ; # X\n  %96 = phi i64 [%89, %$23] ; # N\n  %97 = phi i64 [%90, %$23] ; # Y\n  %98 = phi i64 [%91, %$23] ; # Z\n; # (ret $Nil)\n; # (drop *Safe)\n  %99 = inttoptr i64 %31 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %101, i64* %102\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$26:\n  %103 = phi i64 [%87, %$23] ; # Exe\n  %104 = phi i64 [%88, %$23] ; # X\n  %105 = phi i64 [%89, %$23] ; # N\n  %106 = phi i64 [%90, %$23] ; # Y\n  %107 = phi i64 [%91, %$23] ; # Z\n; # (let A (val (dig Z)) (unless (== A (& A (val (dig Y)))) (ret $Nil...\n; # (dig Z)\n  %108 = add i64 %107, -4\n; # (val (dig Z))\n  %109 = inttoptr i64 %108 to i64*\n  %110 = load i64, i64* %109\n; # (unless (== A (& A (val (dig Y)))) (ret $Nil))\n; # (dig Y)\n  %111 = add i64 %106, -4\n; # (val (dig Y))\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n; # (& A (val (dig Y)))\n  %114 = and i64 %110, %113\n; # (== A (& A (val (dig Y))))\n  %115 = icmp eq i64 %110, %114\n  br i1 %115, label %$28, label %$27\n$27:\n  %116 = phi i64 [%103, %$26] ; # Exe\n  %117 = phi i64 [%104, %$26] ; # X\n  %118 = phi i64 [%105, %$26] ; # N\n  %119 = phi i64 [%106, %$26] ; # Y\n  %120 = phi i64 [%107, %$26] ; # Z\n  %121 = phi i64 [%110, %$26] ; # A\n; # (ret $Nil)\n; # (drop *Safe)\n  %122 = inttoptr i64 %31 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  %124 = load i64, i64* %123\n  %125 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %124, i64* %125\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$28:\n  %126 = phi i64 [%103, %$26] ; # Exe\n  %127 = phi i64 [%104, %$26] ; # X\n  %128 = phi i64 [%105, %$26] ; # N\n  %129 = phi i64 [%106, %$26] ; # Y\n  %130 = phi i64 [%107, %$26] ; # Z\n  %131 = phi i64 [%110, %$26] ; # A\n; # (big Y)\n  %132 = add i64 %129, 4\n; # (val (big Y))\n  %133 = inttoptr i64 %132 to i64*\n  %134 = load i64, i64* %133\n; # (big Z)\n  %135 = add i64 %130, 4\n; # (val (big Z))\n  %136 = inttoptr i64 %135 to i64*\n  %137 = load i64, i64* %136\n  br label %$22\n$24:\n  %138 = phi i64 [%80, %$22] ; # Exe\n  %139 = phi i64 [%81, %$22] ; # X\n  %140 = phi i64 [%82, %$22] ; # N\n  %141 = phi i64 [%83, %$22] ; # Y\n  %142 = phi i64 [%84, %$22] ; # Z\n; # (when (big? Y) (setq Z (int Z) Y (val (dig Y))))\n; # (big? Y)\n  %143 = and i64 %141, 4\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$29, label %$30\n$29:\n  %145 = phi i64 [%138, %$24] ; # Exe\n  %146 = phi i64 [%139, %$24] ; # X\n  %147 = phi i64 [%140, %$24] ; # N\n  %148 = phi i64 [%141, %$24] ; # Y\n  %149 = phi i64 [%142, %$24] ; # Z\n; # (int Z)\n  %150 = lshr i64 %149, 4\n; # (dig Y)\n  %151 = add i64 %148, -4\n; # (val (dig Y))\n  %152 = inttoptr i64 %151 to i64*\n  %153 = load i64, i64* %152\n  br label %$30\n$30:\n  %154 = phi i64 [%138, %$24], [%145, %$29] ; # Exe\n  %155 = phi i64 [%139, %$24], [%146, %$29] ; # X\n  %156 = phi i64 [%140, %$24], [%147, %$29] ; # N\n  %157 = phi i64 [%141, %$24], [%153, %$29] ; # Y\n  %158 = phi i64 [%142, %$24], [%150, %$29] ; # Z\n; # (? (<> Z (& Y Z)) $Nil)\n; # (& Y Z)\n  %159 = and i64 %157, %158\n; # (<> Z (& Y Z))\n  %160 = icmp ne i64 %158, %159\n  br i1 %160, label %$32, label %$31\n$32:\n  %161 = phi i64 [%154, %$30] ; # Exe\n  %162 = phi i64 [%155, %$30] ; # X\n  %163 = phi i64 [%156, %$30] ; # N\n  %164 = phi i64 [%157, %$30] ; # Y\n  %165 = phi i64 [%158, %$30] ; # Z\n  br label %$11\n$31:\n  %166 = phi i64 [%154, %$30] ; # Exe\n  %167 = phi i64 [%155, %$30] ; # X\n  %168 = phi i64 [%156, %$30] ; # N\n  %169 = phi i64 [%157, %$30] ; # Y\n  %170 = phi i64 [%158, %$30] ; # Z\n  br label %$9\n$11:\n  %171 = phi i64 [%41, %$12], [%65, %$19], [%161, %$32] ; # Exe\n  %172 = phi i64 [%42, %$12], [%66, %$19], [%162, %$32] ; # X\n  %173 = phi i64 [%43, %$12], [%67, %$19], [%163, %$32] ; # N\n  %174 = phi i64 [%43, %$12], [%68, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$32] ; # ->\n; # (drop *Safe)\n  %175 = inttoptr i64 %31 to i64*\n  %176 = getelementptr i64, i64* %175, i32 1\n  %177 = load i64, i64* %176\n  %178 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %177, i64* %178\n  ret i64 %174\n}\n\ndefine i64 @_BitAnd(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let R (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let R (link (push (pos (...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let R (link (push (pos (needNum Exe @)) NIL)) (loop ...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let R (link (push (pos (needNum Exe @)) NIL)) (loop (? (atom (sh...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (pos (needNum Exe @))\n  %38 = and i64 %36, -9\n; # (push (pos (needNum Exe @)) NIL)\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %38, i64* %41\n; # (link (push (pos (needNum Exe @)) NIL))\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n  %44 = inttoptr i64 %40 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  store i64 %43, i64* %45\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %46\n; # (loop (? (atom (shift X)) (val R)) (? (nil? (eval (car X))) @) (s...\n  br label %$12\n$12:\n  %47 = phi i64 [%22, %$11], [%82, %$24] ; # Exe\n  %48 = phi i64 [%23, %$11], [%83, %$24] ; # X\n  %49 = phi i64 [%40, %$11], [%84, %$24] ; # R\n; # (? (atom (shift X)) (val R))\n; # (shift X)\n  %50 = inttoptr i64 %48 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n; # (atom (shift X))\n  %53 = and i64 %52, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$15, label %$13\n$15:\n  %55 = phi i64 [%47, %$12] ; # Exe\n  %56 = phi i64 [%52, %$12] ; # X\n  %57 = phi i64 [%49, %$12] ; # R\n; # (val R)\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$14\n$13:\n  %60 = phi i64 [%47, %$12] ; # Exe\n  %61 = phi i64 [%52, %$12] ; # X\n  %62 = phi i64 [%49, %$12] ; # R\n; # (? (nil? (eval (car X))) @)\n; # (car X)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n; # (eval (car X))\n  %65 = and i64 %64, 6\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$18, label %$17\n$18:\n  %67 = phi i64 [%64, %$13] ; # X\n  br label %$16\n$17:\n  %68 = phi i64 [%64, %$13] ; # X\n  %69 = and i64 %68, 8\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$19\n$20:\n  %71 = phi i64 [%68, %$17] ; # X\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n  br label %$16\n$19:\n  %74 = phi i64 [%68, %$17] ; # X\n  %75 = call i64 @evList(i64 %74)\n  br label %$16\n$16:\n  %76 = phi i64 [%67, %$18], [%71, %$20], [%74, %$19] ; # X\n  %77 = phi i64 [%67, %$18], [%73, %$20], [%75, %$19] ; # ->\n; # (nil? (eval (car X)))\n  %78 = icmp eq i64 %77, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%60, %$16] ; # Exe\n  %80 = phi i64 [%61, %$16] ; # X\n  %81 = phi i64 [%62, %$16] ; # R\n  br label %$14\n$21:\n  %82 = phi i64 [%60, %$16] ; # Exe\n  %83 = phi i64 [%61, %$16] ; # X\n  %84 = phi i64 [%62, %$16] ; # R\n; # (needNum Exe @)\n  %85 = and i64 %77, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$24, label %$23\n$23:\n  %87 = phi i64 [%77, %$21] ; # X\n  %88 = phi i64 [%82, %$21] ; # Exe\n  call void @numErr(i64 %88, i64 %87)\n  unreachable\n$24:\n  %89 = phi i64 [%77, %$21] ; # X\n  %90 = phi i64 [%82, %$21] ; # Exe\n; # (safe (needNum Exe @))\n  %91 = inttoptr i64 %27 to i64*\n  store i64 %89, i64* %91\n; # (set R (andu (val R) (pos @)))\n; # (val R)\n  %92 = inttoptr i64 %84 to i64*\n  %93 = load i64, i64* %92\n; # (pos @)\n  %94 = and i64 %77, -9\n; # (andu (val R) (pos @))\n  %95 = call i64 @andu(i64 %93, i64 %94)\n  %96 = inttoptr i64 %84 to i64*\n  store i64 %95, i64* %96\n  br label %$12\n$14:\n  %97 = phi i64 [%55, %$15], [%79, %$22] ; # Exe\n  %98 = phi i64 [%56, %$15], [%80, %$22] ; # X\n  %99 = phi i64 [%57, %$15], [%81, %$22] ; # R\n  %100 = phi i64 [%59, %$15], [%77, %$22] ; # ->\n; # drop\n  %101 = inttoptr i64 %27 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %103, i64* %104\n  br label %$9\n$9:\n  %105 = phi i64 [%20, %$7], [%97, %$14] ; # Exe\n  %106 = phi i64 [%21, %$7], [%98, %$14] ; # X\n  %107 = phi i64 [%18, %$7], [%100, %$14] ; # ->\n  ret i64 %107\n}\n\ndefine i64 @_BitOr(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let R (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let R (link (push (pos (...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let R (link (push (pos (needNum Exe @)) NIL)) (loop ...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let R (link (push (pos (needNum Exe @)) NIL)) (loop (? (atom (sh...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (pos (needNum Exe @))\n  %38 = and i64 %36, -9\n; # (push (pos (needNum Exe @)) NIL)\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %38, i64* %41\n; # (link (push (pos (needNum Exe @)) NIL))\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n  %44 = inttoptr i64 %40 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  store i64 %43, i64* %45\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %46\n; # (loop (? (atom (shift X)) (val R)) (? (nil? (eval (car X))) @) (s...\n  br label %$12\n$12:\n  %47 = phi i64 [%22, %$11], [%82, %$24] ; # Exe\n  %48 = phi i64 [%23, %$11], [%83, %$24] ; # X\n  %49 = phi i64 [%40, %$11], [%84, %$24] ; # R\n; # (? (atom (shift X)) (val R))\n; # (shift X)\n  %50 = inttoptr i64 %48 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n; # (atom (shift X))\n  %53 = and i64 %52, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$15, label %$13\n$15:\n  %55 = phi i64 [%47, %$12] ; # Exe\n  %56 = phi i64 [%52, %$12] ; # X\n  %57 = phi i64 [%49, %$12] ; # R\n; # (val R)\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$14\n$13:\n  %60 = phi i64 [%47, %$12] ; # Exe\n  %61 = phi i64 [%52, %$12] ; # X\n  %62 = phi i64 [%49, %$12] ; # R\n; # (? (nil? (eval (car X))) @)\n; # (car X)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n; # (eval (car X))\n  %65 = and i64 %64, 6\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$18, label %$17\n$18:\n  %67 = phi i64 [%64, %$13] ; # X\n  br label %$16\n$17:\n  %68 = phi i64 [%64, %$13] ; # X\n  %69 = and i64 %68, 8\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$19\n$20:\n  %71 = phi i64 [%68, %$17] ; # X\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n  br label %$16\n$19:\n  %74 = phi i64 [%68, %$17] ; # X\n  %75 = call i64 @evList(i64 %74)\n  br label %$16\n$16:\n  %76 = phi i64 [%67, %$18], [%71, %$20], [%74, %$19] ; # X\n  %77 = phi i64 [%67, %$18], [%73, %$20], [%75, %$19] ; # ->\n; # (nil? (eval (car X)))\n  %78 = icmp eq i64 %77, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%60, %$16] ; # Exe\n  %80 = phi i64 [%61, %$16] ; # X\n  %81 = phi i64 [%62, %$16] ; # R\n  br label %$14\n$21:\n  %82 = phi i64 [%60, %$16] ; # Exe\n  %83 = phi i64 [%61, %$16] ; # X\n  %84 = phi i64 [%62, %$16] ; # R\n; # (needNum Exe @)\n  %85 = and i64 %77, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$24, label %$23\n$23:\n  %87 = phi i64 [%77, %$21] ; # X\n  %88 = phi i64 [%82, %$21] ; # Exe\n  call void @numErr(i64 %88, i64 %87)\n  unreachable\n$24:\n  %89 = phi i64 [%77, %$21] ; # X\n  %90 = phi i64 [%82, %$21] ; # Exe\n; # (safe (needNum Exe @))\n  %91 = inttoptr i64 %27 to i64*\n  store i64 %89, i64* %91\n; # (set R (oru (val R) (pos @)))\n; # (val R)\n  %92 = inttoptr i64 %84 to i64*\n  %93 = load i64, i64* %92\n; # (pos @)\n  %94 = and i64 %77, -9\n; # (oru (val R) (pos @))\n  %95 = call i64 @oru(i64 %93, i64 %94)\n  %96 = inttoptr i64 %84 to i64*\n  store i64 %95, i64* %96\n  br label %$12\n$14:\n  %97 = phi i64 [%55, %$15], [%79, %$22] ; # Exe\n  %98 = phi i64 [%56, %$15], [%80, %$22] ; # X\n  %99 = phi i64 [%57, %$15], [%81, %$22] ; # R\n  %100 = phi i64 [%59, %$15], [%77, %$22] ; # ->\n; # drop\n  %101 = inttoptr i64 %27 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %103, i64* %104\n  br label %$9\n$9:\n  %105 = phi i64 [%20, %$7], [%97, %$14] ; # Exe\n  %106 = phi i64 [%21, %$7], [%98, %$14] ; # X\n  %107 = phi i64 [%18, %$7], [%100, %$14] ; # ->\n  ret i64 %107\n}\n\ndefine i64 @_BitXor(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (save -ZERO (let R (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (save -ZERO (let R (link (push (pos (...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (save -ZERO (let R (link (push (pos (needNum Exe @)) NIL)) (loop ...\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %25 = load i64, i64* %24\n  %26 = alloca i64, i64 2, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  store i64 10, i64* %28\n  %29 = add i64 %27, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %31\n; # (let R (link (push (pos (needNum Exe @)) NIL)) (loop (? (atom (sh...\n; # (needNum Exe @)\n  %32 = and i64 %18, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$11, label %$10\n$10:\n  %34 = phi i64 [%18, %$8] ; # X\n  %35 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %35, i64 %34)\n  unreachable\n$11:\n  %36 = phi i64 [%18, %$8] ; # X\n  %37 = phi i64 [%22, %$8] ; # Exe\n; # (pos (needNum Exe @))\n  %38 = and i64 %36, -9\n; # (push (pos (needNum Exe @)) NIL)\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %38, i64* %41\n; # (link (push (pos (needNum Exe @)) NIL))\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n  %44 = inttoptr i64 %40 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  store i64 %43, i64* %45\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %46\n; # (loop (? (atom (shift X)) (val R)) (? (nil? (eval (car X))) @) (s...\n  br label %$12\n$12:\n  %47 = phi i64 [%22, %$11], [%82, %$24] ; # Exe\n  %48 = phi i64 [%23, %$11], [%83, %$24] ; # X\n  %49 = phi i64 [%40, %$11], [%84, %$24] ; # R\n; # (? (atom (shift X)) (val R))\n; # (shift X)\n  %50 = inttoptr i64 %48 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n; # (atom (shift X))\n  %53 = and i64 %52, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$15, label %$13\n$15:\n  %55 = phi i64 [%47, %$12] ; # Exe\n  %56 = phi i64 [%52, %$12] ; # X\n  %57 = phi i64 [%49, %$12] ; # R\n; # (val R)\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$14\n$13:\n  %60 = phi i64 [%47, %$12] ; # Exe\n  %61 = phi i64 [%52, %$12] ; # X\n  %62 = phi i64 [%49, %$12] ; # R\n; # (? (nil? (eval (car X))) @)\n; # (car X)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n; # (eval (car X))\n  %65 = and i64 %64, 6\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$18, label %$17\n$18:\n  %67 = phi i64 [%64, %$13] ; # X\n  br label %$16\n$17:\n  %68 = phi i64 [%64, %$13] ; # X\n  %69 = and i64 %68, 8\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$19\n$20:\n  %71 = phi i64 [%68, %$17] ; # X\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n  br label %$16\n$19:\n  %74 = phi i64 [%68, %$17] ; # X\n  %75 = call i64 @evList(i64 %74)\n  br label %$16\n$16:\n  %76 = phi i64 [%67, %$18], [%71, %$20], [%74, %$19] ; # X\n  %77 = phi i64 [%67, %$18], [%73, %$20], [%75, %$19] ; # ->\n; # (nil? (eval (car X)))\n  %78 = icmp eq i64 %77, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%60, %$16] ; # Exe\n  %80 = phi i64 [%61, %$16] ; # X\n  %81 = phi i64 [%62, %$16] ; # R\n  br label %$14\n$21:\n  %82 = phi i64 [%60, %$16] ; # Exe\n  %83 = phi i64 [%61, %$16] ; # X\n  %84 = phi i64 [%62, %$16] ; # R\n; # (needNum Exe @)\n  %85 = and i64 %77, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$24, label %$23\n$23:\n  %87 = phi i64 [%77, %$21] ; # X\n  %88 = phi i64 [%82, %$21] ; # Exe\n  call void @numErr(i64 %88, i64 %87)\n  unreachable\n$24:\n  %89 = phi i64 [%77, %$21] ; # X\n  %90 = phi i64 [%82, %$21] ; # Exe\n; # (safe (needNum Exe @))\n  %91 = inttoptr i64 %27 to i64*\n  store i64 %89, i64* %91\n; # (set R (xoru (val R) (pos @)))\n; # (val R)\n  %92 = inttoptr i64 %84 to i64*\n  %93 = load i64, i64* %92\n; # (pos @)\n  %94 = and i64 %77, -9\n; # (xoru (val R) (pos @))\n  %95 = call i64 @xoru(i64 %93, i64 %94)\n  %96 = inttoptr i64 %84 to i64*\n  store i64 %95, i64* %96\n  br label %$12\n$14:\n  %97 = phi i64 [%55, %$15], [%79, %$22] ; # Exe\n  %98 = phi i64 [%56, %$15], [%80, %$22] ; # X\n  %99 = phi i64 [%57, %$15], [%81, %$22] ; # R\n  %100 = phi i64 [%59, %$15], [%77, %$22] ; # ->\n; # drop\n  %101 = inttoptr i64 %27 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %103, i64* %104\n  br label %$9\n$9:\n  %105 = phi i64 [%20, %$7], [%97, %$14] ; # Exe\n  %106 = phi i64 [%21, %$7], [%98, %$14] ; # X\n  %107 = phi i64 [%18, %$7], [%100, %$14] ; # ->\n  ret i64 %107\n}\n\ndefine i64 @_Sq(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (let Y (save (pos (n...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (let Y (save (pos (needNum Exe @))) (...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (let Y (save (pos (needNum Exe @))) (setq Y (mulu Y Y)) (if (atom...\n; # (needNum Exe @)\n  %24 = and i64 %18, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$10:\n  %26 = phi i64 [%18, %$8] ; # X\n  %27 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %27, i64 %26)\n  unreachable\n$11:\n  %28 = phi i64 [%18, %$8] ; # X\n  %29 = phi i64 [%22, %$8] ; # Exe\n; # (pos (needNum Exe @))\n  %30 = and i64 %28, -9\n; # (save (pos (needNum Exe @)))\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %32 = load i64, i64* %31\n  %33 = alloca i64, i64 2, align 16\n  %34 = ptrtoint i64* %33 to i64\n  %35 = inttoptr i64 %34 to i64*\n  store i64 %30, i64* %35\n  %36 = add i64 %34, 8\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %32, i64* %37\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %34, i64* %38\n; # (mulu Y Y)\n  %39 = call i64 @mulu(i64 %30, i64 %30)\n; # (if (atom (shift X)) Y (safe Y) (let N (eval (car X)) (cond ((nil...\n; # (shift X)\n  %40 = inttoptr i64 %23 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (atom (shift X))\n  %43 = and i64 %42, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$12, label %$13\n$12:\n  %45 = phi i64 [%22, %$11] ; # Exe\n  %46 = phi i64 [%42, %$11] ; # X\n  %47 = phi i64 [%39, %$11] ; # Y\n  br label %$14\n$13:\n  %48 = phi i64 [%22, %$11] ; # Exe\n  %49 = phi i64 [%42, %$11] ; # X\n  %50 = phi i64 [%39, %$11] ; # Y\n; # (safe Y)\n  %51 = inttoptr i64 %34 to i64*\n  store i64 %50, i64* %51\n; # (let N (eval (car X)) (cond ((nil? N) N) ((== N ZERO) (divErr Exe...\n; # (car X)\n  %52 = inttoptr i64 %49 to i64*\n  %53 = load i64, i64* %52\n; # (eval (car X))\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$17, label %$16\n$17:\n  %56 = phi i64 [%53, %$13] ; # X\n  br label %$15\n$16:\n  %57 = phi i64 [%53, %$13] ; # X\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$19, label %$18\n$19:\n  %60 = phi i64 [%57, %$16] ; # X\n  %61 = inttoptr i64 %60 to i64*\n  %62 = load i64, i64* %61\n  br label %$15\n$18:\n  %63 = phi i64 [%57, %$16] ; # X\n  %64 = call i64 @evList(i64 %63)\n  br label %$15\n$15:\n  %65 = phi i64 [%56, %$17], [%60, %$19], [%63, %$18] ; # X\n  %66 = phi i64 [%56, %$17], [%62, %$19], [%64, %$18] ; # ->\n; # (cond ((nil? N) N) ((== N ZERO) (divErr Exe)) (T (let (Sign (sign...\n; # (nil? N)\n  %67 = icmp eq i64 %66, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %67, label %$22, label %$21\n$22:\n  %68 = phi i64 [%48, %$15] ; # Exe\n  %69 = phi i64 [%49, %$15] ; # X\n  %70 = phi i64 [%50, %$15] ; # Y\n  %71 = phi i64 [%66, %$15] ; # N\n  br label %$20\n$21:\n  %72 = phi i64 [%48, %$15] ; # Exe\n  %73 = phi i64 [%49, %$15] ; # X\n  %74 = phi i64 [%50, %$15] ; # Y\n  %75 = phi i64 [%66, %$15] ; # N\n; # (== N ZERO)\n  %76 = icmp eq i64 %75, 2\n  br i1 %76, label %$24, label %$23\n$24:\n  %77 = phi i64 [%72, %$21] ; # Exe\n  %78 = phi i64 [%73, %$21] ; # X\n  %79 = phi i64 [%74, %$21] ; # Y\n  %80 = phi i64 [%75, %$21] ; # N\n; # (divErr Exe)\n  call void @divErr(i64 %77)\n  unreachable\n$23:\n  %81 = phi i64 [%72, %$21] ; # Exe\n  %82 = phi i64 [%73, %$21] ; # X\n  %83 = phi i64 [%74, %$21] ; # Y\n  %84 = phi i64 [%75, %$21] ; # N\n; # (let (Sign (sign? (needNum Exe N)) Half (save (shru (setq N (save...\n; # (needNum Exe N)\n  %85 = and i64 %84, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$26, label %$25\n$25:\n  %87 = phi i64 [%84, %$23] ; # X\n  %88 = phi i64 [%81, %$23] ; # Exe\n  call void @numErr(i64 %88, i64 %87)\n  unreachable\n$26:\n  %89 = phi i64 [%84, %$23] ; # X\n  %90 = phi i64 [%81, %$23] ; # Exe\n; # (sign? (needNum Exe N))\n  %91 = and i64 %89, 8\n  %92 = icmp ne i64 %91, 0\n; # (pos N)\n  %93 = and i64 %84, -9\n; # (save (pos N))\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %95 = load i64, i64* %94\n  %96 = alloca i64, i64 2, align 16\n  %97 = ptrtoint i64* %96 to i64\n  %98 = inttoptr i64 %97 to i64*\n  store i64 %93, i64* %98\n  %99 = add i64 %97, 8\n  %100 = inttoptr i64 %99 to i64*\n  store i64 %95, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %97, i64* %101\n; # (shru (setq N (save (pos N))))\n  %102 = call i64 @shru(i64 %93)\n; # (save (shru (setq N (save (pos N)))))\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %104 = load i64, i64* %103\n  %105 = alloca i64, i64 2, align 16\n  %106 = ptrtoint i64* %105 to i64\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %102, i64* %107\n  %108 = add i64 %106, 8\n  %109 = inttoptr i64 %108 to i64*\n  store i64 %104, i64* %109\n  %110 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %106, i64* %110\n; # (addu Y Half)\n  %111 = call i64 @addu(i64 %83, i64 %102)\n; # (safe (addu Y Half))\n  %112 = inttoptr i64 %34 to i64*\n  store i64 %111, i64* %112\n; # (divu (safe (addu Y Half)) N)\n  %113 = call i64 @divu(i64 %111, i64 %93)\n; # (if Sign (neg N) N)\n  br i1 %92, label %$27, label %$28\n$27:\n  %114 = phi i64 [%81, %$26] ; # Exe\n  %115 = phi i64 [%82, %$26] ; # X\n  %116 = phi i64 [%83, %$26] ; # Y\n  %117 = phi i64 [%113, %$26] ; # N\n  %118 = phi i1 [%92, %$26] ; # Sign\n  %119 = phi i64 [%102, %$26] ; # Half\n; # (neg N)\n  %120 = icmp eq i64 %117, 2\n  br i1 %120, label %$30, label %$31\n$30:\n  %121 = phi i64 [%117, %$27] ; # N\n  br label %$32\n$31:\n  %122 = phi i64 [%117, %$27] ; # N\n  %123 = xor i64 %122, 8\n  br label %$32\n$32:\n  %124 = phi i64 [%121, %$30], [%122, %$31] ; # N\n  %125 = phi i64 [%121, %$30], [%123, %$31] ; # ->\n  br label %$29\n$28:\n  %126 = phi i64 [%81, %$26] ; # Exe\n  %127 = phi i64 [%82, %$26] ; # X\n  %128 = phi i64 [%83, %$26] ; # Y\n  %129 = phi i64 [%113, %$26] ; # N\n  %130 = phi i1 [%92, %$26] ; # Sign\n  %131 = phi i64 [%102, %$26] ; # Half\n  br label %$29\n$29:\n  %132 = phi i64 [%114, %$32], [%126, %$28] ; # Exe\n  %133 = phi i64 [%115, %$32], [%127, %$28] ; # X\n  %134 = phi i64 [%116, %$32], [%128, %$28] ; # Y\n  %135 = phi i64 [%117, %$32], [%129, %$28] ; # N\n  %136 = phi i1 [%118, %$32], [%130, %$28] ; # Sign\n  %137 = phi i64 [%119, %$32], [%131, %$28] ; # Half\n  %138 = phi i64 [%125, %$32], [%129, %$28] ; # ->\n  br label %$20\n$20:\n  %139 = phi i64 [%68, %$22], [%132, %$29] ; # Exe\n  %140 = phi i64 [%69, %$22], [%133, %$29] ; # X\n  %141 = phi i64 [%70, %$22], [%134, %$29] ; # Y\n  %142 = phi i64 [%71, %$22], [%135, %$29] ; # N\n  %143 = phi i64 [%71, %$22], [%138, %$29] ; # ->\n  br label %$14\n$14:\n  %144 = phi i64 [%45, %$12], [%139, %$20] ; # Exe\n  %145 = phi i64 [%46, %$12], [%140, %$20] ; # X\n  %146 = phi i64 [%47, %$12], [%141, %$20] ; # Y\n  %147 = phi i64 [%47, %$12], [%143, %$20] ; # ->\n; # (drop *Safe)\n  %148 = inttoptr i64 %34 to i64*\n  %149 = getelementptr i64, i64* %148, i32 1\n  %150 = load i64, i64* %149\n  %151 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %150, i64* %151\n  br label %$9\n$9:\n  %152 = phi i64 [%20, %$7], [%144, %$14] ; # Exe\n  %153 = phi i64 [%21, %$7], [%145, %$14] ; # X\n  %154 = phi i64 [%18, %$7], [%147, %$14] ; # ->\n  ret i64 %154\n}\n\ndefine i64 @_Sqrt(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (when (sign? (needNu...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (when (sign? (needNum Exe @)) (argErr...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (when (sign? (needNum Exe @)) (argErr Exe @))\n; # (needNum Exe @)\n  %24 = and i64 %18, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$10:\n  %26 = phi i64 [%18, %$8] ; # X\n  %27 = phi i64 [%22, %$8] ; # Exe\n  call void @numErr(i64 %27, i64 %26)\n  unreachable\n$11:\n  %28 = phi i64 [%18, %$8] ; # X\n  %29 = phi i64 [%22, %$8] ; # Exe\n; # (sign? (needNum Exe @))\n  %30 = and i64 %28, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$12, label %$13\n$12:\n  %32 = phi i64 [%22, %$11] ; # Exe\n  %33 = phi i64 [%23, %$11] ; # X\n; # (argErr Exe @)\n  call void @argErr(i64 %32, i64 %28)\n  unreachable\n$13:\n  %34 = phi i64 [%22, %$11] ; # Exe\n  %35 = phi i64 [%23, %$11] ; # X\n; # (let (Y (save @) Z (save (eval (cadr X)))) (when (num? Z) (setq Y...\n; # (save @)\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %37 = load i64, i64* %36\n  %38 = alloca i64, i64 2, align 16\n  %39 = ptrtoint i64* %38 to i64\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %28, i64* %40\n  %41 = add i64 %39, 8\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %37, i64* %42\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %43\n; # (cadr X)\n  %44 = inttoptr i64 %35 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (eval (cadr X))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$16, label %$15\n$16:\n  %51 = phi i64 [%48, %$13] ; # X\n  br label %$14\n$15:\n  %52 = phi i64 [%48, %$13] ; # X\n  %53 = and i64 %52, 8\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$18, label %$17\n$18:\n  %55 = phi i64 [%52, %$15] ; # X\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n  br label %$14\n$17:\n  %58 = phi i64 [%52, %$15] ; # X\n  %59 = call i64 @evList(i64 %58)\n  br label %$14\n$14:\n  %60 = phi i64 [%51, %$16], [%55, %$18], [%58, %$17] ; # X\n  %61 = phi i64 [%51, %$16], [%57, %$18], [%59, %$17] ; # ->\n; # (save (eval (cadr X)))\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %63 = load i64, i64* %62\n  %64 = alloca i64, i64 2, align 16\n  %65 = ptrtoint i64* %64 to i64\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %61, i64* %66\n  %67 = add i64 %65, 8\n  %68 = inttoptr i64 %67 to i64*\n  store i64 %63, i64* %68\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %69\n; # (when (num? Z) (setq Y (safe (mulu Y Z))))\n; # (num? Z)\n  %70 = and i64 %61, 6\n  %71 = icmp ne i64 %70, 0\n  br i1 %71, label %$19, label %$20\n$19:\n  %72 = phi i64 [%34, %$14] ; # Exe\n  %73 = phi i64 [%35, %$14] ; # X\n  %74 = phi i64 [%28, %$14] ; # Y\n  %75 = phi i64 [%61, %$14] ; # Z\n; # (mulu Y Z)\n  %76 = call i64 @mulu(i64 %74, i64 %75)\n; # (safe (mulu Y Z))\n  %77 = inttoptr i64 %39 to i64*\n  store i64 %76, i64* %77\n  br label %$20\n$20:\n  %78 = phi i64 [%34, %$14], [%72, %$19] ; # Exe\n  %79 = phi i64 [%35, %$14], [%73, %$19] ; # X\n  %80 = phi i64 [%28, %$14], [%76, %$19] ; # Y\n  %81 = phi i64 [%61, %$14], [%75, %$19] ; # Z\n; # (prog1 (if (cnt? Y) (let (M (hex \"400000000000000\") R 0) (setq Y ...\n; # (if (cnt? Y) (let (M (hex \"400000000000000\") R 0) (setq Y (int Y)...\n; # (cnt? Y)\n  %82 = and i64 %80, 2\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$21, label %$22\n$21:\n  %84 = phi i64 [%78, %$20] ; # Exe\n  %85 = phi i64 [%79, %$20] ; # X\n  %86 = phi i64 [%80, %$20] ; # Y\n  %87 = phi i64 [%81, %$20] ; # Z\n; # (let (M (hex \"400000000000000\") R 0) (setq Y (int Y)) (loop (let ...\n; # (int Y)\n  %88 = lshr i64 %86, 4\n; # (loop (let N (+ R M) (when (>= Y N) (dec 'Y N) (setq R (+ N M))))...\n  br label %$24\n$24:\n  %89 = phi i64 [%84, %$21], [%116, %$27] ; # Exe\n  %90 = phi i64 [%85, %$21], [%117, %$27] ; # X\n  %91 = phi i64 [%88, %$21], [%118, %$27] ; # Y\n  %92 = phi i64 [%87, %$21], [%119, %$27] ; # Z\n  %93 = phi i64 [288230376151711744, %$21], [%120, %$27] ; # M\n  %94 = phi i64 [0, %$21], [%121, %$27] ; # R\n; # (let N (+ R M) (when (>= Y N) (dec 'Y N) (setq R (+ N M))))\n; # (+ R M)\n  %95 = add i64 %94, %93\n; # (when (>= Y N) (dec 'Y N) (setq R (+ N M)))\n; # (>= Y N)\n  %96 = icmp uge i64 %91, %95\n  br i1 %96, label %$25, label %$26\n$25:\n  %97 = phi i64 [%89, %$24] ; # Exe\n  %98 = phi i64 [%90, %$24] ; # X\n  %99 = phi i64 [%91, %$24] ; # Y\n  %100 = phi i64 [%92, %$24] ; # Z\n  %101 = phi i64 [%93, %$24] ; # M\n  %102 = phi i64 [%94, %$24] ; # R\n  %103 = phi i64 [%95, %$24] ; # N\n; # (dec 'Y N)\n  %104 = sub i64 %99, %103\n; # (+ N M)\n  %105 = add i64 %103, %101\n  br label %$26\n$26:\n  %106 = phi i64 [%89, %$24], [%97, %$25] ; # Exe\n  %107 = phi i64 [%90, %$24], [%98, %$25] ; # X\n  %108 = phi i64 [%91, %$24], [%104, %$25] ; # Y\n  %109 = phi i64 [%92, %$24], [%100, %$25] ; # Z\n  %110 = phi i64 [%93, %$24], [%101, %$25] ; # M\n  %111 = phi i64 [%94, %$24], [%105, %$25] ; # R\n  %112 = phi i64 [%95, %$24], [%103, %$25] ; # N\n; # (shr R 1)\n  %113 = lshr i64 %111, 1\n; # (? (=0 (setq M (shr M 2))))\n; # (shr M 2)\n  %114 = lshr i64 %110, 2\n; # (=0 (setq M (shr M 2)))\n  %115 = icmp eq i64 %114, 0\n  br i1 %115, label %$28, label %$27\n$27:\n  %116 = phi i64 [%106, %$26] ; # Exe\n  %117 = phi i64 [%107, %$26] ; # X\n  %118 = phi i64 [%108, %$26] ; # Y\n  %119 = phi i64 [%109, %$26] ; # Z\n  %120 = phi i64 [%114, %$26] ; # M\n  %121 = phi i64 [%113, %$26] ; # R\n  br label %$24\n$28:\n  %122 = phi i64 [%106, %$26] ; # Exe\n  %123 = phi i64 [%107, %$26] ; # X\n  %124 = phi i64 [%108, %$26] ; # Y\n  %125 = phi i64 [%109, %$26] ; # Z\n  %126 = phi i64 [%114, %$26] ; # M\n  %127 = phi i64 [%113, %$26] ; # R\n  %128 = phi i64 [0, %$26] ; # ->\n; # (or (nil? Z) (>= R Y) (inc 'R))\n; # (nil? Z)\n  %129 = icmp eq i64 %125, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %129, label %$29, label %$30\n$30:\n  %130 = phi i64 [%122, %$28] ; # Exe\n  %131 = phi i64 [%123, %$28] ; # X\n  %132 = phi i64 [%124, %$28] ; # Y\n  %133 = phi i64 [%125, %$28] ; # Z\n  %134 = phi i64 [%126, %$28] ; # M\n  %135 = phi i64 [%127, %$28] ; # R\n; # (>= R Y)\n  %136 = icmp uge i64 %135, %132\n  br i1 %136, label %$29, label %$31\n$31:\n  %137 = phi i64 [%130, %$30] ; # Exe\n  %138 = phi i64 [%131, %$30] ; # X\n  %139 = phi i64 [%132, %$30] ; # Y\n  %140 = phi i64 [%133, %$30] ; # Z\n  %141 = phi i64 [%134, %$30] ; # M\n  %142 = phi i64 [%135, %$30] ; # R\n; # (inc 'R)\n  %143 = add i64 %142, 1\n  %144 = icmp ne i64 %143, 0\n  br label %$29\n$29:\n  %145 = phi i64 [%122, %$28], [%130, %$30], [%137, %$31] ; # Exe\n  %146 = phi i64 [%123, %$28], [%131, %$30], [%138, %$31] ; # X\n  %147 = phi i64 [%124, %$28], [%132, %$30], [%139, %$31] ; # Y\n  %148 = phi i64 [%125, %$28], [%133, %$30], [%140, %$31] ; # Z\n  %149 = phi i64 [%126, %$28], [%134, %$30], [%141, %$31] ; # M\n  %150 = phi i64 [%127, %$28], [%135, %$30], [%143, %$31] ; # R\n  %151 = phi i1 [1, %$28], [1, %$30], [%144, %$31] ; # ->\n; # (cnt R)\n  %152 = shl i64 %150, 4\n  %153 = or i64 %152, 2\n  br label %$23\n$22:\n  %154 = phi i64 [%78, %$20] ; # Exe\n  %155 = phi i64 [%79, %$20] ; # X\n  %156 = phi i64 [%80, %$20] ; # Y\n  %157 = phi i64 [%81, %$20] ; # Z\n; # (let (M (consNum 0 ONE) M* (link (push M NIL)) R (link (push ZERO...\n; # (consNum 0 ONE)\n  %158 = call i64 @consNum(i64 0, i64 18)\n; # (push M NIL)\n  %159 = alloca i64, i64 2, align 16\n  %160 = ptrtoint i64* %159 to i64\n  %161 = inttoptr i64 %160 to i64*\n  store i64 %158, i64* %161\n; # (link (push M NIL))\n  %162 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %163 = load i64, i64* %162\n  %164 = inttoptr i64 %160 to i64*\n  %165 = getelementptr i64, i64* %164, i32 1\n  store i64 %163, i64* %165\n  %166 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %160, i64* %166\n; # (push ZERO NIL)\n  %167 = alloca i64, i64 2, align 16\n  %168 = ptrtoint i64* %167 to i64\n  %169 = inttoptr i64 %168 to i64*\n  store i64 2, i64* %169\n; # (link (push ZERO NIL))\n  %170 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %171 = load i64, i64* %170\n  %172 = inttoptr i64 %168 to i64*\n  %173 = getelementptr i64, i64* %172, i32 1\n  store i64 %171, i64* %173\n  %174 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %168, i64* %174\n; # (dig Y)\n  %175 = add i64 %156, -4\n; # (val (dig Y))\n  %176 = inttoptr i64 %175 to i64*\n  %177 = load i64, i64* %176\n; # (boxNum (val (dig Y)))\n  %178 = call i64 @boxNum(i64 %177)\n; # (push C NIL)\n  %179 = alloca i64, i64 2, align 16\n  %180 = ptrtoint i64* %179 to i64\n  %181 = inttoptr i64 %180 to i64*\n  store i64 %178, i64* %181\n; # (link (push C NIL))\n  %182 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %183 = load i64, i64* %182\n  %184 = inttoptr i64 %180 to i64*\n  %185 = getelementptr i64, i64* %184, i32 1\n  store i64 %183, i64* %185\n  %186 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %180, i64* %186\n; # (while (big? (setq Y (val (big Y)))) (setq C (set (big C) (boxNum...\n  br label %$32\n$32:\n  %187 = phi i64 [%154, %$22], [%201, %$33] ; # Exe\n  %188 = phi i64 [%155, %$22], [%202, %$33] ; # X\n  %189 = phi i64 [%156, %$22], [%203, %$33] ; # Y\n  %190 = phi i64 [%157, %$22], [%204, %$33] ; # Z\n  %191 = phi i64 [%158, %$22], [%216, %$33] ; # M\n  %192 = phi i64 [%160, %$22], [%206, %$33] ; # M*\n  %193 = phi i64 [%168, %$22], [%207, %$33] ; # R\n  %194 = phi i64 [%178, %$22], [%214, %$33] ; # C\n  %195 = phi i64 [%180, %$22], [%209, %$33] ; # C*\n; # (big Y)\n  %196 = add i64 %189, 4\n; # (val (big Y))\n  %197 = inttoptr i64 %196 to i64*\n  %198 = load i64, i64* %197\n; # (big? (setq Y (val (big Y))))\n  %199 = and i64 %198, 4\n  %200 = icmp ne i64 %199, 0\n  br i1 %200, label %$33, label %$34\n$33:\n  %201 = phi i64 [%187, %$32] ; # Exe\n  %202 = phi i64 [%188, %$32] ; # X\n  %203 = phi i64 [%198, %$32] ; # Y\n  %204 = phi i64 [%190, %$32] ; # Z\n  %205 = phi i64 [%191, %$32] ; # M\n  %206 = phi i64 [%192, %$32] ; # M*\n  %207 = phi i64 [%193, %$32] ; # R\n  %208 = phi i64 [%194, %$32] ; # C\n  %209 = phi i64 [%195, %$32] ; # C*\n; # (set (big C) (boxNum (val (dig Y))))\n; # (big C)\n  %210 = add i64 %208, 4\n; # (dig Y)\n  %211 = add i64 %203, -4\n; # (val (dig Y))\n  %212 = inttoptr i64 %211 to i64*\n  %213 = load i64, i64* %212\n; # (boxNum (val (dig Y)))\n  %214 = call i64 @boxNum(i64 %213)\n  %215 = inttoptr i64 %210 to i64*\n  store i64 %214, i64* %215\n; # (set M* (consNum 0 M))\n; # (consNum 0 M)\n  %216 = call i64 @consNum(i64 0, i64 %205)\n  %217 = inttoptr i64 %206 to i64*\n  store i64 %216, i64* %217\n  br label %$32\n$34:\n  %218 = phi i64 [%187, %$32] ; # Exe\n  %219 = phi i64 [%188, %$32] ; # X\n  %220 = phi i64 [%198, %$32] ; # Y\n  %221 = phi i64 [%190, %$32] ; # Z\n  %222 = phi i64 [%191, %$32] ; # M\n  %223 = phi i64 [%192, %$32] ; # M*\n  %224 = phi i64 [%193, %$32] ; # R\n  %225 = phi i64 [%194, %$32] ; # C\n  %226 = phi i64 [%195, %$32] ; # C*\n; # (set (big C) Y)\n; # (big C)\n  %227 = add i64 %225, 4\n  %228 = inttoptr i64 %227 to i64*\n  store i64 %220, i64* %228\n; # (val C*)\n  %229 = inttoptr i64 %226 to i64*\n  %230 = load i64, i64* %229\n; # (safe (val C*))\n  %231 = inttoptr i64 %39 to i64*\n  store i64 %230, i64* %231\n; # (while (le0 (cmpu M Y)) (twiceBig M) (twiceBig M))\n  br label %$35\n$35:\n  %232 = phi i64 [%218, %$34], [%243, %$36] ; # Exe\n  %233 = phi i64 [%219, %$34], [%244, %$36] ; # X\n  %234 = phi i64 [%230, %$34], [%245, %$36] ; # Y\n  %235 = phi i64 [%221, %$34], [%246, %$36] ; # Z\n  %236 = phi i64 [%222, %$34], [%247, %$36] ; # M\n  %237 = phi i64 [%223, %$34], [%248, %$36] ; # M*\n  %238 = phi i64 [%224, %$34], [%249, %$36] ; # R\n  %239 = phi i64 [%225, %$34], [%250, %$36] ; # C\n  %240 = phi i64 [%226, %$34], [%251, %$36] ; # C*\n; # (cmpu M Y)\n  %241 = call i64 @cmpu(i64 %236, i64 %234)\n; # (le0 (cmpu M Y))\n  %242 = icmp sle i64 %241, 0\n  br i1 %242, label %$36, label %$37\n$36:\n  %243 = phi i64 [%232, %$35] ; # Exe\n  %244 = phi i64 [%233, %$35] ; # X\n  %245 = phi i64 [%234, %$35] ; # Y\n  %246 = phi i64 [%235, %$35] ; # Z\n  %247 = phi i64 [%236, %$35] ; # M\n  %248 = phi i64 [%237, %$35] ; # M*\n  %249 = phi i64 [%238, %$35] ; # R\n  %250 = phi i64 [%239, %$35] ; # C\n  %251 = phi i64 [%240, %$35] ; # C*\n; # (twiceBig M)\n  %252 = call i64 @twiceBig(i64 %247)\n; # (twiceBig M)\n  %253 = call i64 @twiceBig(i64 %247)\n  br label %$35\n$37:\n  %254 = phi i64 [%232, %$35] ; # Exe\n  %255 = phi i64 [%233, %$35] ; # X\n  %256 = phi i64 [%234, %$35] ; # Y\n  %257 = phi i64 [%235, %$35] ; # Z\n  %258 = phi i64 [%236, %$35] ; # M\n  %259 = phi i64 [%237, %$35] ; # M*\n  %260 = phi i64 [%238, %$35] ; # R\n  %261 = phi i64 [%239, %$35] ; # C\n  %262 = phi i64 [%240, %$35] ; # C*\n; # (loop (let N (set C* (addu (val R) M)) (when (ge0 (cmpu Y N)) (se...\n  br label %$38\n$38:\n  %263 = phi i64 [%254, %$37], [%310, %$41] ; # Exe\n  %264 = phi i64 [%255, %$37], [%311, %$41] ; # X\n  %265 = phi i64 [%256, %$37], [%312, %$41] ; # Y\n  %266 = phi i64 [%257, %$37], [%313, %$41] ; # Z\n  %267 = phi i64 [%258, %$37], [%314, %$41] ; # M\n  %268 = phi i64 [%259, %$37], [%315, %$41] ; # M*\n  %269 = phi i64 [%260, %$37], [%316, %$41] ; # R\n  %270 = phi i64 [%261, %$37], [%317, %$41] ; # C\n  %271 = phi i64 [%262, %$37], [%318, %$41] ; # C*\n; # (let N (set C* (addu (val R) M)) (when (ge0 (cmpu Y N)) (setq Y (...\n; # (set C* (addu (val R) M))\n; # (val R)\n  %272 = inttoptr i64 %269 to i64*\n  %273 = load i64, i64* %272\n; # (addu (val R) M)\n  %274 = call i64 @addu(i64 %273, i64 %267)\n  %275 = inttoptr i64 %271 to i64*\n  store i64 %274, i64* %275\n; # (when (ge0 (cmpu Y N)) (setq Y (safe (subu Y N))) (set R (addu N ...\n; # (cmpu Y N)\n  %276 = call i64 @cmpu(i64 %265, i64 %274)\n; # (ge0 (cmpu Y N))\n  %277 = icmp sge i64 %276, 0\n  br i1 %277, label %$39, label %$40\n$39:\n  %278 = phi i64 [%263, %$38] ; # Exe\n  %279 = phi i64 [%264, %$38] ; # X\n  %280 = phi i64 [%265, %$38] ; # Y\n  %281 = phi i64 [%266, %$38] ; # Z\n  %282 = phi i64 [%267, %$38] ; # M\n  %283 = phi i64 [%268, %$38] ; # M*\n  %284 = phi i64 [%269, %$38] ; # R\n  %285 = phi i64 [%270, %$38] ; # C\n  %286 = phi i64 [%271, %$38] ; # C*\n  %287 = phi i64 [%274, %$38] ; # N\n; # (subu Y N)\n  %288 = call i64 @subu(i64 %280, i64 %287)\n; # (safe (subu Y N))\n  %289 = inttoptr i64 %39 to i64*\n  store i64 %288, i64* %289\n; # (set R (addu N M))\n; # (addu N M)\n  %290 = call i64 @addu(i64 %287, i64 %282)\n  %291 = inttoptr i64 %284 to i64*\n  store i64 %290, i64* %291\n  br label %$40\n$40:\n  %292 = phi i64 [%263, %$38], [%278, %$39] ; # Exe\n  %293 = phi i64 [%264, %$38], [%279, %$39] ; # X\n  %294 = phi i64 [%265, %$38], [%288, %$39] ; # Y\n  %295 = phi i64 [%266, %$38], [%281, %$39] ; # Z\n  %296 = phi i64 [%267, %$38], [%282, %$39] ; # M\n  %297 = phi i64 [%268, %$38], [%283, %$39] ; # M*\n  %298 = phi i64 [%269, %$38], [%284, %$39] ; # R\n  %299 = phi i64 [%270, %$38], [%285, %$39] ; # C\n  %300 = phi i64 [%271, %$38], [%286, %$39] ; # C*\n  %301 = phi i64 [%274, %$38], [%287, %$39] ; # N\n; # (set R (half (val R)))\n; # (val R)\n  %302 = inttoptr i64 %298 to i64*\n  %303 = load i64, i64* %302\n; # (half (val R))\n  %304 = call i64 @half(i64 %303)\n  %305 = inttoptr i64 %298 to i64*\n  store i64 %304, i64* %305\n; # (? (== ZERO (setq M (set M* (half (half M))))))\n; # (set M* (half (half M)))\n; # (half M)\n  %306 = call i64 @half(i64 %296)\n; # (half (half M))\n  %307 = call i64 @half(i64 %306)\n  %308 = inttoptr i64 %297 to i64*\n  store i64 %307, i64* %308\n; # (== ZERO (setq M (set M* (half (half M)))))\n  %309 = icmp eq i64 2, %307\n  br i1 %309, label %$42, label %$41\n$41:\n  %310 = phi i64 [%292, %$40] ; # Exe\n  %311 = phi i64 [%293, %$40] ; # X\n  %312 = phi i64 [%294, %$40] ; # Y\n  %313 = phi i64 [%295, %$40] ; # Z\n  %314 = phi i64 [%307, %$40] ; # M\n  %315 = phi i64 [%297, %$40] ; # M*\n  %316 = phi i64 [%298, %$40] ; # R\n  %317 = phi i64 [%299, %$40] ; # C\n  %318 = phi i64 [%300, %$40] ; # C*\n  br label %$38\n$42:\n  %319 = phi i64 [%292, %$40] ; # Exe\n  %320 = phi i64 [%293, %$40] ; # X\n  %321 = phi i64 [%294, %$40] ; # Y\n  %322 = phi i64 [%295, %$40] ; # Z\n  %323 = phi i64 [%307, %$40] ; # M\n  %324 = phi i64 [%297, %$40] ; # M*\n  %325 = phi i64 [%298, %$40] ; # R\n  %326 = phi i64 [%299, %$40] ; # C\n  %327 = phi i64 [%300, %$40] ; # C*\n  %328 = phi i64 [0, %$40] ; # ->\n; # (val R)\n  %329 = inttoptr i64 %325 to i64*\n  %330 = load i64, i64* %329\n; # (if (or (nil? Z) (ge0 (cmpu R Y))) R (addu R ONE))\n; # (or (nil? Z) (ge0 (cmpu R Y)))\n; # (nil? Z)\n  %331 = icmp eq i64 %322, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %331, label %$43, label %$44\n$44:\n  %332 = phi i64 [%319, %$42] ; # Exe\n  %333 = phi i64 [%320, %$42] ; # X\n  %334 = phi i64 [%321, %$42] ; # Y\n  %335 = phi i64 [%322, %$42] ; # Z\n  %336 = phi i64 [%323, %$42] ; # M\n  %337 = phi i64 [%324, %$42] ; # M*\n  %338 = phi i64 [%330, %$42] ; # R\n  %339 = phi i64 [%326, %$42] ; # C\n  %340 = phi i64 [%327, %$42] ; # C*\n; # (cmpu R Y)\n  %341 = call i64 @cmpu(i64 %338, i64 %334)\n; # (ge0 (cmpu R Y))\n  %342 = icmp sge i64 %341, 0\n  br label %$43\n$43:\n  %343 = phi i64 [%319, %$42], [%332, %$44] ; # Exe\n  %344 = phi i64 [%320, %$42], [%333, %$44] ; # X\n  %345 = phi i64 [%321, %$42], [%334, %$44] ; # Y\n  %346 = phi i64 [%322, %$42], [%335, %$44] ; # Z\n  %347 = phi i64 [%323, %$42], [%336, %$44] ; # M\n  %348 = phi i64 [%324, %$42], [%337, %$44] ; # M*\n  %349 = phi i64 [%330, %$42], [%338, %$44] ; # R\n  %350 = phi i64 [%326, %$42], [%339, %$44] ; # C\n  %351 = phi i64 [%327, %$42], [%340, %$44] ; # C*\n  %352 = phi i1 [1, %$42], [%342, %$44] ; # ->\n  br i1 %352, label %$45, label %$46\n$45:\n  %353 = phi i64 [%343, %$43] ; # Exe\n  %354 = phi i64 [%344, %$43] ; # X\n  %355 = phi i64 [%345, %$43] ; # Y\n  %356 = phi i64 [%346, %$43] ; # Z\n  %357 = phi i64 [%347, %$43] ; # M\n  %358 = phi i64 [%348, %$43] ; # M*\n  %359 = phi i64 [%349, %$43] ; # R\n  %360 = phi i64 [%350, %$43] ; # C\n  %361 = phi i64 [%351, %$43] ; # C*\n  br label %$47\n$46:\n  %362 = phi i64 [%343, %$43] ; # Exe\n  %363 = phi i64 [%344, %$43] ; # X\n  %364 = phi i64 [%345, %$43] ; # Y\n  %365 = phi i64 [%346, %$43] ; # Z\n  %366 = phi i64 [%347, %$43] ; # M\n  %367 = phi i64 [%348, %$43] ; # M*\n  %368 = phi i64 [%349, %$43] ; # R\n  %369 = phi i64 [%350, %$43] ; # C\n  %370 = phi i64 [%351, %$43] ; # C*\n; # (addu R ONE)\n  %371 = call i64 @addu(i64 %368, i64 18)\n  br label %$47\n$47:\n  %372 = phi i64 [%353, %$45], [%362, %$46] ; # Exe\n  %373 = phi i64 [%354, %$45], [%363, %$46] ; # X\n  %374 = phi i64 [%355, %$45], [%364, %$46] ; # Y\n  %375 = phi i64 [%356, %$45], [%365, %$46] ; # Z\n  %376 = phi i64 [%357, %$45], [%366, %$46] ; # M\n  %377 = phi i64 [%358, %$45], [%367, %$46] ; # M*\n  %378 = phi i64 [%359, %$45], [%368, %$46] ; # R\n  %379 = phi i64 [%360, %$45], [%369, %$46] ; # C\n  %380 = phi i64 [%361, %$45], [%370, %$46] ; # C*\n  %381 = phi i64 [%359, %$45], [%371, %$46] ; # ->\n  br label %$23\n$23:\n  %382 = phi i64 [%145, %$29], [%372, %$47] ; # Exe\n  %383 = phi i64 [%146, %$29], [%373, %$47] ; # X\n  %384 = phi i64 [%147, %$29], [%374, %$47] ; # Y\n  %385 = phi i64 [%148, %$29], [%375, %$47] ; # Z\n  %386 = phi i64 [%153, %$29], [%381, %$47] ; # ->\n; # (drop *Safe)\n  %387 = inttoptr i64 %39 to i64*\n  %388 = getelementptr i64, i64* %387, i32 1\n  %389 = load i64, i64* %388\n  %390 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %389, i64* %390\n  br label %$9\n$9:\n  %391 = phi i64 [%20, %$7], [%382, %$23] ; # Exe\n  %392 = phi i64 [%21, %$7], [%383, %$23] ; # X\n  %393 = phi i64 [%18, %$7], [%386, %$23] ; # ->\n  ret i64 %393\n}\n\ndefine i64 @initSeed(i64) align 8 {\n$1:\n; # (let C 0 (while (pair X) (inc 'C (initSeed (++ X)))) (unless (nil...\n; # (while (pair X) (inc 'C (initSeed (++ X))))\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%9, %$3] ; # X\n  %2 = phi i64 [0, %$1], [%12, %$3] ; # C\n; # (pair X)\n  %3 = and i64 %1, 15\n  %4 = icmp eq i64 %3, 0\n  br i1 %4, label %$3, label %$4\n$3:\n  %5 = phi i64 [%1, %$2] ; # X\n  %6 = phi i64 [%2, %$2] ; # C\n; # (++ X)\n  %7 = inttoptr i64 %5 to i64*\n  %8 = getelementptr i64, i64* %7, i32 1\n  %9 = load i64, i64* %8\n  %10 = load i64, i64* %7\n; # (initSeed (++ X))\n  %11 = call i64 @initSeed(i64 %10)\n; # (inc 'C (initSeed (++ X)))\n  %12 = add i64 %6, %11\n  br label %$2\n$4:\n  %13 = phi i64 [%1, %$2] ; # X\n  %14 = phi i64 [%2, %$2] ; # C\n; # (unless (nil? X) (unless (num? X) (setq X (& (name (& (val (tail ...\n; # (nil? X)\n  %15 = icmp eq i64 %13, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %15, label %$6, label %$5\n$5:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = phi i64 [%14, %$4] ; # C\n; # (unless (num? X) (setq X (& (name (& (val (tail X)) -9)) (hex \"3F...\n; # (num? X)\n  %18 = and i64 %16, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$8, label %$7\n$7:\n  %20 = phi i64 [%16, %$5] ; # X\n  %21 = phi i64 [%17, %$5] ; # C\n; # (tail X)\n  %22 = add i64 %20, -8\n; # (val (tail X))\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n; # (& (val (tail X)) -9)\n  %25 = and i64 %24, -9\n; # (name (& (val (tail X)) -9))\n  br label %$9\n$9:\n  %26 = phi i64 [%25, %$7], [%32, %$10] ; # Tail\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$11, label %$10\n$10:\n  %29 = phi i64 [%26, %$9] ; # Tail\n  %30 = inttoptr i64 %29 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n  br label %$9\n$11:\n  %33 = phi i64 [%26, %$9] ; # Tail\n; # (& (name (& (val (tail X)) -9)) (hex \"3FFFFFFFFFFFFFF7\"))\n  %34 = and i64 %33, 4611686018427387895\n  br label %$8\n$8:\n  %35 = phi i64 [%16, %$5], [%34, %$11] ; # X\n  %36 = phi i64 [%17, %$5], [%21, %$11] ; # C\n; # (if (cnt? X) (inc 'C (shr X 3)) (when (sign? X) (inc 'C) (setq X ...\n; # (cnt? X)\n  %37 = and i64 %35, 2\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$12, label %$13\n$12:\n  %39 = phi i64 [%35, %$8] ; # X\n  %40 = phi i64 [%36, %$8] ; # C\n; # (shr X 3)\n  %41 = lshr i64 %39, 3\n; # (inc 'C (shr X 3))\n  %42 = add i64 %40, %41\n  br label %$14\n$13:\n  %43 = phi i64 [%35, %$8] ; # X\n  %44 = phi i64 [%36, %$8] ; # C\n; # (when (sign? X) (inc 'C) (setq X (pos X)))\n; # (sign? X)\n  %45 = and i64 %43, 8\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$15, label %$16\n$15:\n  %47 = phi i64 [%43, %$13] ; # X\n  %48 = phi i64 [%44, %$13] ; # C\n; # (inc 'C)\n  %49 = add i64 %48, 1\n; # (pos X)\n  %50 = and i64 %47, -9\n  br label %$16\n$16:\n  %51 = phi i64 [%43, %$13], [%50, %$15] ; # X\n  %52 = phi i64 [%44, %$13], [%49, %$15] ; # C\n; # (loop (inc 'C (val (dig X))) (? (cnt? (setq X (val (big X))))))\n  br label %$17\n$17:\n  %53 = phi i64 [%51, %$16], [%64, %$18] ; # X\n  %54 = phi i64 [%52, %$16], [%65, %$18] ; # C\n; # (dig X)\n  %55 = add i64 %53, -4\n; # (val (dig X))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n; # (inc 'C (val (dig X)))\n  %58 = add i64 %54, %57\n; # (? (cnt? (setq X (val (big X)))))\n; # (big X)\n  %59 = add i64 %53, 4\n; # (val (big X))\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n; # (cnt? (setq X (val (big X))))\n  %62 = and i64 %61, 2\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$19, label %$18\n$18:\n  %64 = phi i64 [%61, %$17] ; # X\n  %65 = phi i64 [%58, %$17] ; # C\n  br label %$17\n$19:\n  %66 = phi i64 [%61, %$17] ; # X\n  %67 = phi i64 [%58, %$17] ; # C\n  %68 = phi i64 [0, %$17] ; # ->\n; # (int X)\n  %69 = lshr i64 %66, 4\n; # (inc 'C (int X))\n  %70 = add i64 %67, %69\n  br label %$14\n$14:\n  %71 = phi i64 [%39, %$12], [%66, %$19] ; # X\n  %72 = phi i64 [%42, %$12], [%70, %$19] ; # C\n  %73 = phi i64 [%42, %$12], [%70, %$19] ; # ->\n  br label %$6\n$6:\n  %74 = phi i64 [%13, %$4], [%71, %$14] ; # X\n  %75 = phi i64 [%14, %$4], [%72, %$14] ; # C\n  ret i64 %75\n}\n\ndefine i64 @_Seed(i64) align 8 {\n$1:\n; # (let N (mul 6364136223846793005 (initSeed (eval (cadr Exe)))) (se...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (initSeed (eval (cadr Exe)))\n  %19 = call i64 @initSeed(i64 %18)\n; # (mul 6364136223846793005 (initSeed (eval (cadr Exe))))\n  %20 = zext i64 %19 to i128\n  %21 = mul i128 6364136223846793005, %20\n  %22 = lshr i128 %21, 64\n  %23 = trunc i128 %22 to i64\n  %24 = trunc i128 %21 to i64\n; # (set $SeedL N $SeedH @@@)\n  store i64 %24, i64* @$SeedL\n  store i64 %23, i64* @$SeedH\n; # (- 32 3)\n; # (shr N (- 32 3))\n  %25 = lshr i64 %24, 29\n; # (& (shr N (- 32 3)) -8)\n  %26 = and i64 %25, -8\n; # (| (& (shr N (- 32 3)) -8) 2)\n  %27 = or i64 %26, 2\n  ret i64 %27\n}\n\ndefine i64 @_Hash(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (initSeed (eval (cadr Exe)))\n  %19 = call i64 @initSeed(i64 %18)\n; # (mul 6364136223846793005 (initSeed (eval (cadr Exe))))\n  %20 = zext i64 %19 to i128\n  %21 = mul i128 6364136223846793005, %20\n  %22 = lshr i128 %21, 64\n  %23 = trunc i128 %22 to i64\n  %24 = trunc i128 %21 to i64\n; # (shr (mul 6364136223846793005 (initSeed (eval (cadr Exe)))) 44)\n  %25 = lshr i64 %24, 44\n; # (inc (shr (mul 6364136223846793005 (initSeed (eval (cadr Exe)))) ...\n  %26 = add i64 %25, 1\n; # (cnt (inc (shr (mul 6364136223846793005 (initSeed (eval (cadr Exe...\n  %27 = shl i64 %26, 4\n  %28 = or i64 %27, 2\n  ret i64 %28\n}\n\ndefine i64 @_Rand(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X)) N (add (mul 6364136223846793005...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (val $SeedL)\n  %21 = load i64, i64* @$SeedL\n; # (mul 6364136223846793005 (val $SeedL))\n  %22 = zext i64 %21 to i128\n  %23 = mul i128 6364136223846793005, %22\n  %24 = lshr i128 %23, 64\n  %25 = trunc i128 %24 to i64\n  %26 = trunc i128 %23 to i64\n; # (add (mul 6364136223846793005 (val $SeedL)) 1)\n  %27 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %26, i64 1)\n  %28 = extractvalue {i64, i1} %27, 1\n  %29 = extractvalue {i64, i1} %27, 0\n; # (set $SeedL N $SeedH (+ @@@ @@))\n  store i64 %29, i64* @$SeedL\n; # (+ @@@ @@)\n  %30 = zext i1 %28 to i64\n  %31 = add i64 %25, %30\n  store i64 %31, i64* @$SeedH\n; # (cond ((nil? Y) (| (& (shr N (- 32 3)) -8) 2)) ((t? Y) (add N N) ...\n; # (nil? Y)\n  %32 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%0, %$2] ; # Exe\n  %34 = phi i64 [%6, %$2] ; # X\n  %35 = phi i64 [%20, %$2] ; # Y\n  %36 = phi i64 [%29, %$2] ; # N\n; # (- 32 3)\n; # (shr N (- 32 3))\n  %37 = lshr i64 %36, 29\n; # (& (shr N (- 32 3)) -8)\n  %38 = and i64 %37, -8\n; # (| (& (shr N (- 32 3)) -8) 2)\n  %39 = or i64 %38, 2\n  br label %$7\n$8:\n  %40 = phi i64 [%0, %$2] ; # Exe\n  %41 = phi i64 [%6, %$2] ; # X\n  %42 = phi i64 [%20, %$2] ; # Y\n  %43 = phi i64 [%29, %$2] ; # N\n; # (t? Y)\n  %44 = icmp eq i64 %42, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %44, label %$11, label %$10\n$11:\n  %45 = phi i64 [%40, %$8] ; # Exe\n  %46 = phi i64 [%41, %$8] ; # X\n  %47 = phi i64 [%42, %$8] ; # Y\n  %48 = phi i64 [%43, %$8] ; # N\n; # (add N N)\n  %49 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %48, i64 %48)\n  %50 = extractvalue {i64, i1} %49, 1\n  %51 = extractvalue {i64, i1} %49, 0\n; # (if @@ Y $Nil)\n  br i1 %50, label %$12, label %$13\n$12:\n  %52 = phi i64 [%45, %$11] ; # Exe\n  %53 = phi i64 [%46, %$11] ; # X\n  %54 = phi i64 [%47, %$11] ; # Y\n  %55 = phi i64 [%48, %$11] ; # N\n  br label %$14\n$13:\n  %56 = phi i64 [%45, %$11] ; # Exe\n  %57 = phi i64 [%46, %$11] ; # X\n  %58 = phi i64 [%47, %$11] ; # Y\n  %59 = phi i64 [%48, %$11] ; # N\n  br label %$14\n$14:\n  %60 = phi i64 [%52, %$12], [%56, %$13] ; # Exe\n  %61 = phi i64 [%53, %$12], [%57, %$13] ; # X\n  %62 = phi i64 [%54, %$12], [%58, %$13] ; # Y\n  %63 = phi i64 [%55, %$12], [%59, %$13] ; # N\n  %64 = phi i64 [%54, %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13] ; # ->\n  br label %$7\n$10:\n  %65 = phi i64 [%40, %$8] ; # Exe\n  %66 = phi i64 [%41, %$8] ; # X\n  %67 = phi i64 [%42, %$8] ; # Y\n  %68 = phi i64 [%43, %$8] ; # N\n; # (when (sign? (needCnt Exe Y)) (argErr Exe Y))\n; # (needCnt Exe Y)\n  %69 = and i64 %67, 2\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$16, label %$15\n$15:\n  %71 = phi i64 [%67, %$10] ; # X\n  %72 = phi i64 [%65, %$10] ; # Exe\n  call void @cntErr(i64 %72, i64 %71)\n  unreachable\n$16:\n  %73 = phi i64 [%67, %$10] ; # X\n  %74 = phi i64 [%65, %$10] ; # Exe\n; # (sign? (needCnt Exe Y))\n  %75 = and i64 %73, 8\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$17, label %$18\n$17:\n  %77 = phi i64 [%65, %$16] ; # Exe\n  %78 = phi i64 [%66, %$16] ; # X\n  %79 = phi i64 [%67, %$16] ; # Y\n  %80 = phi i64 [%68, %$16] ; # N\n; # (argErr Exe Y)\n  call void @argErr(i64 %77, i64 %79)\n  unreachable\n$18:\n  %81 = phi i64 [%65, %$16] ; # Exe\n  %82 = phi i64 [%66, %$16] ; # X\n  %83 = phi i64 [%67, %$16] ; # Y\n  %84 = phi i64 [%68, %$16] ; # N\n; # (let A (int Y) (when (sign? (needCnt Exe (setq Y (eval (car X))))...\n; # (int Y)\n  %85 = lshr i64 %83, 4\n; # (when (sign? (needCnt Exe (setq Y (eval (car X))))) (argErr Exe Y...\n; # (car X)\n  %86 = inttoptr i64 %82 to i64*\n  %87 = load i64, i64* %86\n; # (eval (car X))\n  %88 = and i64 %87, 6\n  %89 = icmp ne i64 %88, 0\n  br i1 %89, label %$21, label %$20\n$21:\n  %90 = phi i64 [%87, %$18] ; # X\n  br label %$19\n$20:\n  %91 = phi i64 [%87, %$18] ; # X\n  %92 = and i64 %91, 8\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$23, label %$22\n$23:\n  %94 = phi i64 [%91, %$20] ; # X\n  %95 = inttoptr i64 %94 to i64*\n  %96 = load i64, i64* %95\n  br label %$19\n$22:\n  %97 = phi i64 [%91, %$20] ; # X\n  %98 = call i64 @evList(i64 %97)\n  br label %$19\n$19:\n  %99 = phi i64 [%90, %$21], [%94, %$23], [%97, %$22] ; # X\n  %100 = phi i64 [%90, %$21], [%96, %$23], [%98, %$22] ; # ->\n; # (needCnt Exe (setq Y (eval (car X))))\n  %101 = and i64 %100, 2\n  %102 = icmp ne i64 %101, 0\n  br i1 %102, label %$25, label %$24\n$24:\n  %103 = phi i64 [%100, %$19] ; # X\n  %104 = phi i64 [%81, %$19] ; # Exe\n  call void @cntErr(i64 %104, i64 %103)\n  unreachable\n$25:\n  %105 = phi i64 [%100, %$19] ; # X\n  %106 = phi i64 [%81, %$19] ; # Exe\n; # (sign? (needCnt Exe (setq Y (eval (car X)))))\n  %107 = and i64 %105, 8\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$26, label %$27\n$26:\n  %109 = phi i64 [%81, %$25] ; # Exe\n  %110 = phi i64 [%82, %$25] ; # X\n  %111 = phi i64 [%100, %$25] ; # Y\n  %112 = phi i64 [%84, %$25] ; # N\n  %113 = phi i64 [%85, %$25] ; # A\n; # (argErr Exe Y)\n  call void @argErr(i64 %109, i64 %111)\n  unreachable\n$27:\n  %114 = phi i64 [%81, %$25] ; # Exe\n  %115 = phi i64 [%82, %$25] ; # X\n  %116 = phi i64 [%100, %$25] ; # Y\n  %117 = phi i64 [%84, %$25] ; # N\n  %118 = phi i64 [%85, %$25] ; # A\n; # (let B (inc (int Y)) (when (>= A B) (argErr Exe Y)) (setq N (+ (%...\n; # (int Y)\n  %119 = lshr i64 %116, 4\n; # (inc (int Y))\n  %120 = add i64 %119, 1\n; # (when (>= A B) (argErr Exe Y))\n; # (>= A B)\n  %121 = icmp uge i64 %118, %120\n  br i1 %121, label %$28, label %$29\n$28:\n  %122 = phi i64 [%114, %$27] ; # Exe\n  %123 = phi i64 [%115, %$27] ; # X\n  %124 = phi i64 [%116, %$27] ; # Y\n  %125 = phi i64 [%117, %$27] ; # N\n  %126 = phi i64 [%118, %$27] ; # A\n  %127 = phi i64 [%120, %$27] ; # B\n; # (argErr Exe Y)\n  call void @argErr(i64 %122, i64 %124)\n  unreachable\n$29:\n  %128 = phi i64 [%114, %$27] ; # Exe\n  %129 = phi i64 [%115, %$27] ; # X\n  %130 = phi i64 [%116, %$27] ; # Y\n  %131 = phi i64 [%117, %$27] ; # N\n  %132 = phi i64 [%118, %$27] ; # A\n  %133 = phi i64 [%120, %$27] ; # B\n; # (val $SeedH)\n  %134 = load i64, i64* @$SeedH\n; # (val $SeedL)\n  %135 = load i64, i64* @$SeedL\n; # (shr (val $SeedH) (val $SeedL) 32)\n  %136 = call i64 @llvm.fshr.i64(i64 %134, i64 %135, i64 32)\n; # (- B A)\n  %137 = sub i64 %133, %132\n; # (% (shr (val $SeedH) (val $SeedL) 32) (- B A))\n  %138 = urem i64 %136, %137\n; # (+ (% (shr (val $SeedH) (val $SeedL) 32) (- B A)) A)\n  %139 = add i64 %138, %132\n; # (if (lt0 N) (sign (cnt (- N))) (cnt N))\n; # (lt0 N)\n  %140 = icmp slt i64 %139, 0\n  br i1 %140, label %$30, label %$31\n$30:\n  %141 = phi i64 [%128, %$29] ; # Exe\n  %142 = phi i64 [%129, %$29] ; # X\n  %143 = phi i64 [%130, %$29] ; # Y\n  %144 = phi i64 [%139, %$29] ; # N\n  %145 = phi i64 [%132, %$29] ; # A\n  %146 = phi i64 [%133, %$29] ; # B\n; # (- N)\n  %147 = sub i64 0, %144\n; # (cnt (- N))\n  %148 = shl i64 %147, 4\n  %149 = or i64 %148, 2\n; # (sign (cnt (- N)))\n  %150 = or i64 %149, 8\n  br label %$32\n$31:\n  %151 = phi i64 [%128, %$29] ; # Exe\n  %152 = phi i64 [%129, %$29] ; # X\n  %153 = phi i64 [%130, %$29] ; # Y\n  %154 = phi i64 [%139, %$29] ; # N\n  %155 = phi i64 [%132, %$29] ; # A\n  %156 = phi i64 [%133, %$29] ; # B\n; # (cnt N)\n  %157 = shl i64 %154, 4\n  %158 = or i64 %157, 2\n  br label %$32\n$32:\n  %159 = phi i64 [%141, %$30], [%151, %$31] ; # Exe\n  %160 = phi i64 [%142, %$30], [%152, %$31] ; # X\n  %161 = phi i64 [%143, %$30], [%153, %$31] ; # Y\n  %162 = phi i64 [%144, %$30], [%154, %$31] ; # N\n  %163 = phi i64 [%145, %$30], [%155, %$31] ; # A\n  %164 = phi i64 [%146, %$30], [%156, %$31] ; # B\n  %165 = phi i64 [%150, %$30], [%158, %$31] ; # ->\n  br label %$7\n$7:\n  %166 = phi i64 [%33, %$9], [%60, %$14], [%159, %$32] ; # Exe\n  %167 = phi i64 [%34, %$9], [%61, %$14], [%160, %$32] ; # X\n  %168 = phi i64 [%35, %$9], [%62, %$14], [%161, %$32] ; # Y\n  %169 = phi i64 [%36, %$9], [%63, %$14], [%162, %$32] ; # N\n  %170 = phi i64 [%39, %$9], [%64, %$14], [%165, %$32] ; # ->\n  ret i64 %170\n}\n\ndefine i64 @bufSize(i64) align 8 {\n$1:\n; # (let N 1 (while (big? Nm) (inc 'N 8) (setq Nm (val (big Nm)))) (s...\n; # (while (big? Nm) (inc 'N 8) (setq Nm (val (big Nm))))\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%10, %$3] ; # Nm\n  %2 = phi i64 [1, %$1], [%7, %$3] ; # N\n; # (big? Nm)\n  %3 = and i64 %1, 4\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$3, label %$4\n$3:\n  %5 = phi i64 [%1, %$2] ; # Nm\n  %6 = phi i64 [%2, %$2] ; # N\n; # (inc 'N 8)\n  %7 = add i64 %6, 8\n; # (big Nm)\n  %8 = add i64 %5, 4\n; # (val (big Nm))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n  br label %$2\n$4:\n  %11 = phi i64 [%1, %$2] ; # Nm\n  %12 = phi i64 [%2, %$2] ; # N\n; # (int Nm)\n  %13 = lshr i64 %11, 4\n; # (while Nm (inc 'N) (setq Nm (shr Nm 8)))\n  br label %$5\n$5:\n  %14 = phi i64 [%13, %$4], [%20, %$6] ; # Nm\n  %15 = phi i64 [%12, %$4], [%19, %$6] ; # N\n  %16 = icmp ne i64 %14, 0\n  br i1 %16, label %$6, label %$7\n$6:\n  %17 = phi i64 [%14, %$5] ; # Nm\n  %18 = phi i64 [%15, %$5] ; # N\n; # (inc 'N)\n  %19 = add i64 %18, 1\n; # (shr Nm 8)\n  %20 = lshr i64 %17, 8\n  br label %$5\n$7:\n  %21 = phi i64 [%14, %$5] ; # Nm\n  %22 = phi i64 [%15, %$5] ; # N\n  ret i64 %22\n}\n\ndefine i64 @pathSize(i64) align 8 {\n$1:\n; # (let (Len (bufSize Nm) N (if (cnt? Nm) (int @) (val (dig @))) B (...\n; # (bufSize Nm)\n  %1 = call i64 @bufSize(i64 %0)\n; # (if (cnt? Nm) (int @) (val (dig @)))\n; # (cnt? Nm)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Nm\n  %5 = phi i64 [%1, %$1] ; # Len\n; # (int @)\n  %6 = lshr i64 %0, 4\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Nm\n  %8 = phi i64 [%1, %$1] ; # Len\n; # (dig @)\n  %9 = add i64 %0, -4\n; # (val (dig @))\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n  br label %$4\n$4:\n  %12 = phi i64 [%4, %$2], [%7, %$3] ; # Nm\n  %13 = phi i64 [%5, %$2], [%8, %$3] ; # Len\n  %14 = phi i64 [%6, %$2], [%11, %$3] ; # ->\n; # (i8 N)\n  %15 = trunc i64 %14 to i8\n; # (cond ((or (== B (char \"@\")) (and (== B (char \"+\")) (== (i8 (shr ...\n; # (or (== B (char \"@\")) (and (== B (char \"+\")) (== (i8 (shr N 8)) (...\n; # (== B (char \"@\"))\n  %16 = icmp eq i8 %15, 64\n  br i1 %16, label %$6, label %$7\n$7:\n  %17 = phi i64 [%12, %$4] ; # Nm\n  %18 = phi i64 [%13, %$4] ; # Len\n  %19 = phi i64 [%14, %$4] ; # N\n  %20 = phi i8 [%15, %$4] ; # B\n; # (and (== B (char \"+\")) (== (i8 (shr N 8)) (char \"@\")))\n; # (== B (char \"+\"))\n  %21 = icmp eq i8 %20, 43\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%17, %$7] ; # Nm\n  %23 = phi i64 [%18, %$7] ; # Len\n  %24 = phi i64 [%19, %$7] ; # N\n  %25 = phi i8 [%20, %$7] ; # B\n; # (shr N 8)\n  %26 = lshr i64 %24, 8\n; # (i8 (shr N 8))\n  %27 = trunc i64 %26 to i8\n; # (== (i8 (shr N 8)) (char \"@\"))\n  %28 = icmp eq i8 %27, 64\n  br label %$8\n$8:\n  %29 = phi i64 [%17, %$7], [%22, %$9] ; # Nm\n  %30 = phi i64 [%18, %$7], [%23, %$9] ; # Len\n  %31 = phi i64 [%19, %$7], [%24, %$9] ; # N\n  %32 = phi i8 [%20, %$7], [%25, %$9] ; # B\n  %33 = phi i1 [0, %$7], [%28, %$9] ; # ->\n  br label %$6\n$6:\n  %34 = phi i64 [%12, %$4], [%29, %$8] ; # Nm\n  %35 = phi i64 [%13, %$4], [%30, %$8] ; # Len\n  %36 = phi i64 [%14, %$4], [%31, %$8] ; # N\n  %37 = phi i8 [%15, %$4], [%32, %$8] ; # B\n  %38 = phi i1 [1, %$4], [%33, %$8] ; # ->\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%34, %$6] ; # Nm\n  %40 = phi i64 [%35, %$6] ; # Len\n  %41 = phi i64 [%36, %$6] ; # N\n  %42 = phi i8 [%37, %$6] ; # B\n; # (val $PilLen)\n  %43 = load i64, i64* @$PilLen\n; # (dec Len)\n  %44 = sub i64 %40, 1\n; # (+ (val $PilLen) (dec Len))\n  %45 = add i64 %43, %44\n  br label %$5\n$10:\n  %46 = phi i64 [%34, %$6] ; # Nm\n  %47 = phi i64 [%35, %$6] ; # Len\n  %48 = phi i64 [%36, %$6] ; # N\n  %49 = phi i8 [%37, %$6] ; # B\n; # (or (== B (char \"~\")) (and (== B (char \"+\")) (== (i8 (shr N 8)) (...\n; # (== B (char \"~\"))\n  %50 = icmp eq i8 %49, 126\n  br i1 %50, label %$12, label %$13\n$13:\n  %51 = phi i64 [%46, %$10] ; # Nm\n  %52 = phi i64 [%47, %$10] ; # Len\n  %53 = phi i64 [%48, %$10] ; # N\n  %54 = phi i8 [%49, %$10] ; # B\n; # (and (== B (char \"+\")) (== (i8 (shr N 8)) (char \"~\")))\n; # (== B (char \"+\"))\n  %55 = icmp eq i8 %54, 43\n  br i1 %55, label %$15, label %$14\n$15:\n  %56 = phi i64 [%51, %$13] ; # Nm\n  %57 = phi i64 [%52, %$13] ; # Len\n  %58 = phi i64 [%53, %$13] ; # N\n  %59 = phi i8 [%54, %$13] ; # B\n; # (shr N 8)\n  %60 = lshr i64 %58, 8\n; # (i8 (shr N 8))\n  %61 = trunc i64 %60 to i8\n; # (== (i8 (shr N 8)) (char \"~\"))\n  %62 = icmp eq i8 %61, 126\n  br label %$14\n$14:\n  %63 = phi i64 [%51, %$13], [%56, %$15] ; # Nm\n  %64 = phi i64 [%52, %$13], [%57, %$15] ; # Len\n  %65 = phi i64 [%53, %$13], [%58, %$15] ; # N\n  %66 = phi i8 [%54, %$13], [%59, %$15] ; # B\n  %67 = phi i1 [0, %$13], [%62, %$15] ; # ->\n  br label %$12\n$12:\n  %68 = phi i64 [%46, %$10], [%63, %$14] ; # Nm\n  %69 = phi i64 [%47, %$10], [%64, %$14] ; # Len\n  %70 = phi i64 [%48, %$10], [%65, %$14] ; # N\n  %71 = phi i8 [%49, %$10], [%66, %$14] ; # B\n  %72 = phi i1 [1, %$10], [%67, %$14] ; # ->\n  br i1 %72, label %$17, label %$16\n$17:\n  %73 = phi i64 [%68, %$12] ; # Nm\n  %74 = phi i64 [%69, %$12] ; # Len\n  %75 = phi i64 [%70, %$12] ; # N\n  %76 = phi i8 [%71, %$12] ; # B\n; # (val $UsrLen)\n  %77 = load i64, i64* @$UsrLen\n; # (dec Len)\n  %78 = sub i64 %74, 1\n; # (+ (val $UsrLen) (dec Len))\n  %79 = add i64 %77, %78\n  br label %$5\n$16:\n  %80 = phi i64 [%68, %$12] ; # Nm\n  %81 = phi i64 [%69, %$12] ; # Len\n  %82 = phi i64 [%70, %$12] ; # N\n  %83 = phi i8 [%71, %$12] ; # B\n  br label %$5\n$5:\n  %84 = phi i64 [%39, %$11], [%73, %$17], [%80, %$16] ; # Nm\n  %85 = phi i64 [%40, %$11], [%74, %$17], [%81, %$16] ; # Len\n  %86 = phi i64 [%41, %$11], [%75, %$17], [%82, %$16] ; # N\n  %87 = phi i8 [%42, %$11], [%76, %$17], [%83, %$16] ; # B\n  %88 = phi i64 [%45, %$11], [%79, %$17], [%81, %$16] ; # ->\n  ret i64 %88\n}\n\ndefine i8* @bufString(i64, i8*) align 8 {\n$1:\n; # (let Q (push 0 Nm) (prog1 P (while (set P (symByte Q)) (inc 'P)))...\n; # (push 0 Nm)\n  %2 = alloca i64, i64 2, align 16\n  store i64 0, i64* %2\n  %3 = getelementptr i64, i64* %2, i32 1\n  store i64 %0, i64* %3\n; # (prog1 P (while (set P (symByte Q)) (inc 'P)))\n; # (while (set P (symByte Q)) (inc 'P))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%9, %$3] ; # Nm\n  %5 = phi i8* [%1, %$1], [%12, %$3] ; # P\n  %6 = phi i64* [%2, %$1], [%11, %$3] ; # Q\n; # (set P (symByte Q))\n; # (symByte Q)\n  %7 = call i8 @symByte(i64* %6)\n  store i8 %7, i8* %5\n  %8 = icmp ne i8 %7, 0\n  br i1 %8, label %$3, label %$4\n$3:\n  %9 = phi i64 [%4, %$2] ; # Nm\n  %10 = phi i8* [%5, %$2] ; # P\n  %11 = phi i64* [%6, %$2] ; # Q\n; # (inc 'P)\n  %12 = getelementptr i8, i8* %10, i32 1\n  br label %$2\n$4:\n  %13 = phi i64 [%4, %$2] ; # Nm\n  %14 = phi i8* [%5, %$2] ; # P\n  %15 = phi i64* [%6, %$2] ; # Q\n  ret i8* %1\n}\n\ndefine i8* @pathString(i64, i8*) align 8 {\n$1:\n; # (let (Q (push 0 Nm) B (symByte Q)) (prog1 P (when (== B (char \"+\"...\n; # (push 0 Nm)\n  %2 = alloca i64, i64 2, align 16\n  store i64 0, i64* %2\n  %3 = getelementptr i64, i64* %2, i32 1\n  store i64 %0, i64* %3\n; # (symByte Q)\n  %4 = call i8 @symByte(i64* %2)\n; # (prog1 P (when (== B (char \"+\")) (set P B) (inc 'P) (setq B (symB...\n; # (when (== B (char \"+\")) (set P B) (inc 'P) (setq B (symByte Q)))\n; # (== B (char \"+\"))\n  %5 = icmp eq i8 %4, 43\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Nm\n  %7 = phi i8* [%1, %$1] ; # P\n  %8 = phi i64* [%2, %$1] ; # Q\n  %9 = phi i8 [%4, %$1] ; # B\n; # (set P B)\n  store i8 %9, i8* %7\n; # (inc 'P)\n  %10 = getelementptr i8, i8* %7, i32 1\n; # (symByte Q)\n  %11 = call i8 @symByte(i64* %8)\n  br label %$3\n$3:\n  %12 = phi i64 [%0, %$1], [%6, %$2] ; # Nm\n  %13 = phi i8* [%1, %$1], [%10, %$2] ; # P\n  %14 = phi i64* [%2, %$1], [%8, %$2] ; # Q\n  %15 = phi i8 [%4, %$1], [%11, %$2] ; # B\n; # (case B ((char \"@\") (when (val $PilLen) (memcpy P (val $PilHome) ...\n  switch i8 %15, label %$4 [\n    i8 64, label %$6\n    i8 126, label %$7\n  ]\n$6:\n  %16 = phi i64 [%12, %$3] ; # Nm\n  %17 = phi i8* [%13, %$3] ; # P\n  %18 = phi i64* [%14, %$3] ; # Q\n  %19 = phi i8 [%15, %$3] ; # B\n; # (when (val $PilLen) (memcpy P (val $PilHome) @) (inc 'P @))\n; # (val $PilLen)\n  %20 = load i64, i64* @$PilLen\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$8, label %$9\n$8:\n  %22 = phi i64 [%16, %$6] ; # Nm\n  %23 = phi i8* [%17, %$6] ; # P\n  %24 = phi i64* [%18, %$6] ; # Q\n  %25 = phi i8 [%19, %$6] ; # B\n; # (val $PilHome)\n  %26 = load i8*, i8** @$PilHome\n; # (memcpy P (val $PilHome) @)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %23, i8* %26, i64 %20, i1 0)\n; # (inc 'P @)\n  %27 = getelementptr i8, i8* %23, i64 %20\n  br label %$9\n$9:\n  %28 = phi i64 [%16, %$6], [%22, %$8] ; # Nm\n  %29 = phi i8* [%17, %$6], [%27, %$8] ; # P\n  %30 = phi i64* [%18, %$6], [%24, %$8] ; # Q\n  %31 = phi i8 [%19, %$6], [%25, %$8] ; # B\n  br label %$5\n$7:\n  %32 = phi i64 [%12, %$3] ; # Nm\n  %33 = phi i8* [%13, %$3] ; # P\n  %34 = phi i64* [%14, %$3] ; # Q\n  %35 = phi i8 [%15, %$3] ; # B\n; # (when (val $UsrLen) (memcpy P (val $UsrHome) @) (inc 'P @))\n; # (val $UsrLen)\n  %36 = load i64, i64* @$UsrLen\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$10, label %$11\n$10:\n  %38 = phi i64 [%32, %$7] ; # Nm\n  %39 = phi i8* [%33, %$7] ; # P\n  %40 = phi i64* [%34, %$7] ; # Q\n  %41 = phi i8 [%35, %$7] ; # B\n; # (val $UsrHome)\n  %42 = load i8*, i8** @$UsrHome\n; # (memcpy P (val $UsrHome) @)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %39, i8* %42, i64 %36, i1 0)\n; # (inc 'P @)\n  %43 = getelementptr i8, i8* %39, i64 %36\n  br label %$11\n$11:\n  %44 = phi i64 [%32, %$7], [%38, %$10] ; # Nm\n  %45 = phi i8* [%33, %$7], [%43, %$10] ; # P\n  %46 = phi i64* [%34, %$7], [%40, %$10] ; # Q\n  %47 = phi i8 [%35, %$7], [%41, %$10] ; # B\n  br label %$5\n$4:\n  %48 = phi i64 [%12, %$3] ; # Nm\n  %49 = phi i8* [%13, %$3] ; # P\n  %50 = phi i64* [%14, %$3] ; # Q\n  %51 = phi i8 [%15, %$3] ; # B\n; # (set P B)\n  store i8 %51, i8* %49\n; # (inc 'P)\n  %52 = getelementptr i8, i8* %49, i32 1\n  br label %$5\n$5:\n  %53 = phi i64 [%28, %$9], [%44, %$11], [%48, %$4] ; # Nm\n  %54 = phi i8* [%29, %$9], [%45, %$11], [%52, %$4] ; # P\n  %55 = phi i64* [%30, %$9], [%46, %$11], [%50, %$4] ; # Q\n  %56 = phi i8 [%31, %$9], [%47, %$11], [%51, %$4] ; # B\n; # (while (set P (symByte Q)) (inc 'P))\n  br label %$12\n$12:\n  %57 = phi i64 [%53, %$5], [%63, %$13] ; # Nm\n  %58 = phi i8* [%54, %$5], [%67, %$13] ; # P\n  %59 = phi i64* [%55, %$5], [%65, %$13] ; # Q\n  %60 = phi i8 [%56, %$5], [%66, %$13] ; # B\n; # (set P (symByte Q))\n; # (symByte Q)\n  %61 = call i8 @symByte(i64* %59)\n  store i8 %61, i8* %58\n  %62 = icmp ne i8 %61, 0\n  br i1 %62, label %$13, label %$14\n$13:\n  %63 = phi i64 [%57, %$12] ; # Nm\n  %64 = phi i8* [%58, %$12] ; # P\n  %65 = phi i64* [%59, %$12] ; # Q\n  %66 = phi i8 [%60, %$12] ; # B\n; # (inc 'P)\n  %67 = getelementptr i8, i8* %64, i32 1\n  br label %$12\n$14:\n  %68 = phi i64 [%57, %$12] ; # Nm\n  %69 = phi i8* [%58, %$12] ; # P\n  %70 = phi i64* [%59, %$12] ; # Q\n  %71 = phi i8 [%60, %$12] ; # B\n  ret i8* %1\n}\n\ndefine i64 @mkChar(i32) align 8 {\n$1:\n; # (cond ((>= 127 C) (i64 C)) ((== TOP C) (hex \"FF\")) ((> (hex \"800\"...\n; # (>= 127 C)\n  %1 = icmp sge i32 127, %0\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i32 [%0, %$1] ; # C\n; # (i64 C)\n  %3 = sext i32 %2 to i64\n  br label %$2\n$3:\n  %4 = phi i32 [%0, %$1] ; # C\n; # (== TOP C)\n  %5 = icmp eq i32 1114112, %4\n  br i1 %5, label %$6, label %$5\n$6:\n  %6 = phi i32 [%4, %$3] ; # C\n  br label %$2\n$5:\n  %7 = phi i32 [%4, %$3] ; # C\n; # (> (hex \"800\") C)\n  %8 = icmp sgt i32 2048, %7\n  br i1 %8, label %$8, label %$7\n$8:\n  %9 = phi i32 [%7, %$5] ; # C\n; # (shr C 6)\n  %10 = lshr i32 %9, 6\n; # (& (shr C 6) (hex \"1F\"))\n  %11 = and i32 %10, 31\n; # (| (hex \"C0\") (& (shr C 6) (hex \"1F\")))\n  %12 = or i32 192, %11\n; # (& C (hex \"3F\"))\n  %13 = and i32 %9, 63\n; # (| (hex \"80\") (& C (hex \"3F\")))\n  %14 = or i32 128, %13\n; # (shl (| (hex \"80\") (& C (hex \"3F\"))) 8)\n  %15 = shl i32 %14, 8\n; # (| (| (hex \"C0\") (& (shr C 6) (hex \"1F\"))) (shl (| (hex \"80\") (& ...\n  %16 = or i32 %12, %15\n; # (i64 (| (| (hex \"C0\") (& (shr C 6) (hex \"1F\"))) (shl (| (hex \"80\"...\n  %17 = sext i32 %16 to i64\n  br label %$2\n$7:\n  %18 = phi i32 [%7, %$5] ; # C\n; # (> (hex \"10000\") C)\n  %19 = icmp sgt i32 65536, %18\n  br i1 %19, label %$10, label %$9\n$10:\n  %20 = phi i32 [%18, %$7] ; # C\n; # (shr C 12)\n  %21 = lshr i32 %20, 12\n; # (& (shr C 12) (hex \"0F\"))\n  %22 = and i32 %21, 15\n; # (| (hex \"E0\") (& (shr C 12) (hex \"0F\")))\n  %23 = or i32 224, %22\n; # (shr C 6)\n  %24 = lshr i32 %20, 6\n; # (& (shr C 6) (hex \"3F\"))\n  %25 = and i32 %24, 63\n; # (| (hex \"80\") (& (shr C 6) (hex \"3F\")))\n  %26 = or i32 128, %25\n; # (shl (| (hex \"80\") (& (shr C 6) (hex \"3F\"))) 8)\n  %27 = shl i32 %26, 8\n; # (| (| (hex \"E0\") (& (shr C 12) (hex \"0F\"))) (shl (| (hex \"80\") (&...\n  %28 = or i32 %23, %27\n; # (& C (hex \"3F\"))\n  %29 = and i32 %20, 63\n; # (| (hex \"80\") (& C (hex \"3F\")))\n  %30 = or i32 128, %29\n; # (shl (| (hex \"80\") (& C (hex \"3F\"))) 16)\n  %31 = shl i32 %30, 16\n; # (| (| (| (hex \"E0\") (& (shr C 12) (hex \"0F\"))) (shl (| (hex \"80\")...\n  %32 = or i32 %28, %31\n; # (i64 (| (| (| (hex \"E0\") (& (shr C 12) (hex \"0F\"))) (shl (| (hex ...\n  %33 = sext i32 %32 to i64\n  br label %$2\n$9:\n  %34 = phi i32 [%18, %$7] ; # C\n; # (shr C 18)\n  %35 = lshr i32 %34, 18\n; # (& (shr C 18) (hex \"07\"))\n  %36 = and i32 %35, 7\n; # (| (hex \"F0\") (& (shr C 18) (hex \"07\")))\n  %37 = or i32 240, %36\n; # (shr C 12)\n  %38 = lshr i32 %34, 12\n; # (& (shr C 12) (hex \"3F\"))\n  %39 = and i32 %38, 63\n; # (| (hex \"80\") (& (shr C 12) (hex \"3F\")))\n  %40 = or i32 128, %39\n; # (shl (| (hex \"80\") (& (shr C 12) (hex \"3F\"))) 8)\n  %41 = shl i32 %40, 8\n; # (| (| (hex \"F0\") (& (shr C 18) (hex \"07\"))) (shl (| (hex \"80\") (&...\n  %42 = or i32 %37, %41\n; # (shr C 6)\n  %43 = lshr i32 %34, 6\n; # (& (shr C 6) (hex \"3F\"))\n  %44 = and i32 %43, 63\n; # (| (hex \"80\") (& (shr C 6) (hex \"3F\")))\n  %45 = or i32 128, %44\n; # (shl (| (hex \"80\") (& (shr C 6) (hex \"3F\"))) 16)\n  %46 = shl i32 %45, 16\n; # (| (| (| (hex \"F0\") (& (shr C 18) (hex \"07\"))) (shl (| (hex \"80\")...\n  %47 = or i32 %42, %46\n; # (i64 (| (| (| (hex \"F0\") (& (shr C 18) (hex \"07\"))) (shl (| (hex ...\n  %48 = sext i32 %47 to i64\n; # (i64 C)\n  %49 = sext i32 %34 to i64\n; # (& (i64 C) (hex \"3F\"))\n  %50 = and i64 %49, 63\n; # (| (hex \"80\") (& (i64 C) (hex \"3F\")))\n  %51 = or i64 128, %50\n; # (shl (| (hex \"80\") (& (i64 C) (hex \"3F\"))) 24)\n  %52 = shl i64 %51, 24\n; # (| (i64 (| (| (| (hex \"F0\") (& (shr C 18) (hex \"07\"))) (shl (| (h...\n  %53 = or i64 %48, %52\n  br label %$2\n$2:\n  %54 = phi i32 [%2, %$4], [%6, %$6], [%9, %$8], [%20, %$10], [%34, %$9] ; # C\n  %55 = phi i64 [%3, %$4], [255, %$6], [%17, %$8], [%33, %$10], [%53, %$9] ; # ->\n; # (cnt (cond ((>= 127 C) (i64 C)) ((== TOP C) (hex \"FF\")) ((> (hex ...\n  %56 = shl i64 %55, 4\n  %57 = or i64 %56, 2\n; # (consStr (cnt (cond ((>= 127 C) (i64 C)) ((== TOP C) (hex \"FF\")) ...\n  %58 = call i64 @consStr(i64 %57)\n  ret i64 %58\n}\n\ndefine i64 @mkStr(i8*) align 8 {\n$1:\n; # (if Str (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (while (v...\n  %1 = icmp ne i8* %0, null\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i8* [%0, %$1] ; # Str\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (while (val Str) ...\n; # (push 4 NIL ZERO NIL)\n  %3 = alloca i64, i64 4, align 16\n  store i64 4, i64* %3\n  %4 = getelementptr i64, i64* %3, i32 2\n  store i64 2, i64* %4\n; # (ofs P 2)\n  %5 = getelementptr i64, i64* %3, i32 2\n; # (link (ofs P 2) T)\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %8 = load i64, i64* %7\n  %9 = inttoptr i64 %6 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  store i64 %8, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %11\n; # (while (val Str) (byteSym @ P) (inc 'Str))\n  br label %$5\n$5:\n  %12 = phi i8* [%2, %$2], [%18, %$6] ; # Str\n  %13 = phi i64* [%3, %$2], [%17, %$6] ; # P\n; # (val Str)\n  %14 = load i8, i8* %12\n  %15 = icmp ne i8 %14, 0\n  br i1 %15, label %$6, label %$7\n$6:\n  %16 = phi i8* [%12, %$5] ; # Str\n  %17 = phi i64* [%13, %$5] ; # P\n; # (byteSym @ P)\n  call void @byteSym(i8 %14, i64* %17)\n; # (inc 'Str)\n  %18 = getelementptr i8, i8* %16, i32 1\n  br label %$5\n$7:\n  %19 = phi i8* [%12, %$5] ; # Str\n  %20 = phi i64* [%13, %$5] ; # P\n; # (val 3 P)\n  %21 = getelementptr i64, i64* %20, i32 2\n  %22 = load i64, i64* %21\n; # (consStr (val 3 P))\n  %23 = call i64 @consStr(i64 %22)\n; # (drop *Safe)\n  %24 = inttoptr i64 %6 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %27\n  br label %$4\n$3:\n  %28 = phi i8* [%0, %$1] ; # Str\n  br label %$4\n$4:\n  %29 = phi i8* [%19, %$7], [%28, %$3] ; # Str\n  %30 = phi i64 [%23, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %30\n}\n\ndefine i64 @mkStrE(i8*, i8*) align 8 {\n$1:\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (loop (? (== Str ...\n; # (push 4 NIL ZERO NIL)\n  %2 = alloca i64, i64 4, align 16\n  store i64 4, i64* %2\n  %3 = getelementptr i64, i64* %2, i32 2\n  store i64 2, i64* %3\n; # (ofs P 2)\n  %4 = getelementptr i64, i64* %2, i32 2\n; # (link (ofs P 2) T)\n  %5 = ptrtoint i64* %4 to i64\n  %6 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %7 = load i64, i64* %6\n  %8 = inttoptr i64 %5 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  store i64 %7, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %5, i64* %10\n; # (loop (? (== Str End)) (? (=0 (val Str))) (byteSym @ P) (inc 'Str...\n  br label %$2\n$2:\n  %11 = phi i8* [%0, %$1], [%23, %$5] ; # Str\n  %12 = phi i8* [%1, %$1], [%21, %$5] ; # End\n  %13 = phi i64* [%2, %$1], [%22, %$5] ; # P\n; # (? (== Str End))\n; # (== Str End)\n  %14 = icmp eq i8* %11, %12\n  br i1 %14, label %$4, label %$3\n$3:\n  %15 = phi i8* [%11, %$2] ; # Str\n  %16 = phi i8* [%12, %$2] ; # End\n  %17 = phi i64* [%13, %$2] ; # P\n; # (? (=0 (val Str)))\n; # (val Str)\n  %18 = load i8, i8* %15\n; # (=0 (val Str))\n  %19 = icmp eq i8 %18, 0\n  br i1 %19, label %$4, label %$5\n$5:\n  %20 = phi i8* [%15, %$3] ; # Str\n  %21 = phi i8* [%16, %$3] ; # End\n  %22 = phi i64* [%17, %$3] ; # P\n; # (byteSym @ P)\n  call void @byteSym(i8 %18, i64* %22)\n; # (inc 'Str)\n  %23 = getelementptr i8, i8* %20, i32 1\n  br label %$2\n$4:\n  %24 = phi i8* [%11, %$2], [%15, %$3] ; # Str\n  %25 = phi i8* [%12, %$2], [%16, %$3] ; # End\n  %26 = phi i64* [%13, %$2], [%17, %$3] ; # P\n  %27 = phi i64 [0, %$2], [0, %$3] ; # ->\n; # (val 3 P)\n  %28 = getelementptr i64, i64* %26, i32 2\n  %29 = load i64, i64* %28\n; # (consStr (val 3 P))\n  %30 = call i64 @consStr(i64 %29)\n; # (drop *Safe)\n  %31 = inttoptr i64 %5 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %33, i64* %34\n  ret i64 %30\n}\n\ndefine i8 @firstByte(i64) align 8 {\n$1:\n; # (cond ((nil? Sym) 0) ((sym? (val (tail Sym))) 0) ((cnt? (name @))...\n; # (nil? Sym)\n  %1 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i64 [%0, %$1] ; # Sym\n  br label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Sym\n; # (tail Sym)\n  %4 = add i64 %3, -8\n; # (val (tail Sym))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (sym? (val (tail Sym)))\n  %7 = and i64 %6, 8\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%3, %$3] ; # Sym\n  br label %$2\n$5:\n  %10 = phi i64 [%3, %$3] ; # Sym\n; # (name @)\n  br label %$7\n$7:\n  %11 = phi i64 [%6, %$5], [%17, %$8] ; # Tail\n  %12 = and i64 %11, 6\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$9, label %$8\n$8:\n  %14 = phi i64 [%11, %$7] ; # Tail\n  %15 = inttoptr i64 %14 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n  br label %$7\n$9:\n  %18 = phi i64 [%11, %$7] ; # Tail\n; # (cnt? (name @))\n  %19 = and i64 %18, 2\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$11, label %$10\n$11:\n  %21 = phi i64 [%10, %$9] ; # Sym\n; # (int @)\n  %22 = lshr i64 %18, 4\n  br label %$2\n$10:\n  %23 = phi i64 [%10, %$9] ; # Sym\n; # (dig @)\n  %24 = add i64 %18, -4\n; # (val (dig @))\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$2\n$2:\n  %27 = phi i64 [%2, %$4], [%9, %$6], [%21, %$11], [%23, %$10] ; # Sym\n  %28 = phi i64 [0, %$4], [0, %$6], [%22, %$11], [%26, %$10] ; # ->\n; # (i8 (cond ((nil? Sym) 0) ((sym? (val (tail Sym))) 0) ((cnt? (name...\n  %29 = trunc i64 %28 to i8\n  ret i8 %29\n}\n\ndefine i32 @firstChar(i64) align 8 {\n$1:\n; # (cond ((nil? Sym) 0) ((sym? (val (tail Sym))) 0) (T (symChar (pus...\n; # (nil? Sym)\n  %1 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i64 [%0, %$1] ; # Sym\n  br label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Sym\n; # (tail Sym)\n  %4 = add i64 %3, -8\n; # (val (tail Sym))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (sym? (val (tail Sym)))\n  %7 = and i64 %6, 8\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%3, %$3] ; # Sym\n  br label %$2\n$5:\n  %10 = phi i64 [%3, %$3] ; # Sym\n; # (name @)\n  br label %$7\n$7:\n  %11 = phi i64 [%6, %$5], [%17, %$8] ; # Tail\n  %12 = and i64 %11, 6\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$9, label %$8\n$8:\n  %14 = phi i64 [%11, %$7] ; # Tail\n  %15 = inttoptr i64 %14 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n  br label %$7\n$9:\n  %18 = phi i64 [%11, %$7] ; # Tail\n; # (push 0 (name @))\n  %19 = alloca i64, i64 2, align 16\n  store i64 0, i64* %19\n  %20 = getelementptr i64, i64* %19, i32 1\n  store i64 %18, i64* %20\n; # (symChar (push 0 (name @)))\n  %21 = call i32 @symChar(i64* %19)\n  br label %$2\n$2:\n  %22 = phi i64 [%2, %$4], [%9, %$6], [%10, %$9] ; # Sym\n  %23 = phi i32 [0, %$4], [0, %$6], [%21, %$9] ; # ->\n  ret i32 %23\n}\n\ndefine i1 @isBlank(i64) align 8 {\n$1:\n; # (or (nil? X) (and (symb? X) (not (sym? (val (tail X)))) (let P (p...\n; # (nil? X)\n  %1 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1, label %$2, label %$3\n$3:\n  %2 = phi i64 [%0, %$1] ; # X\n; # (and (symb? X) (not (sym? (val (tail X)))) (let P (push 0 (name @...\n; # (symb? X)\n  %3 = xor i64 %2, 8\n  %4 = and i64 %3, 14\n  %5 = icmp eq i64 %4, 0\n  br i1 %5, label %$5, label %$4\n$5:\n  %6 = phi i64 [%2, %$3] ; # X\n; # (tail X)\n  %7 = add i64 %6, -8\n; # (val (tail X))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (sym? (val (tail X)))\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n; # (not (sym? (val (tail X))))\n  %12 = icmp eq i1 %11, 0\n  br i1 %12, label %$6, label %$4\n$6:\n  %13 = phi i64 [%6, %$5] ; # X\n; # (let P (push 0 (name @)) (loop (? (=0 (symByte P)) YES) (? (> @ 3...\n; # (name @)\n  br label %$7\n$7:\n  %14 = phi i64 [%9, %$6], [%20, %$8] ; # Tail\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$9, label %$8\n$8:\n  %17 = phi i64 [%14, %$7] ; # Tail\n  %18 = inttoptr i64 %17 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  %20 = load i64, i64* %19\n  br label %$7\n$9:\n  %21 = phi i64 [%14, %$7] ; # Tail\n; # (push 0 (name @))\n  %22 = alloca i64, i64 2, align 16\n  store i64 0, i64* %22\n  %23 = getelementptr i64, i64* %22, i32 1\n  store i64 %21, i64* %23\n; # (loop (? (=0 (symByte P)) YES) (? (> @ 32) NO))\n  br label %$10\n$10:\n  %24 = phi i64 [%13, %$9], [%35, %$14] ; # X\n  %25 = phi i64* [%22, %$9], [%36, %$14] ; # P\n; # (? (=0 (symByte P)) YES)\n; # (symByte P)\n  %26 = call i8 @symByte(i64* %25)\n; # (=0 (symByte P))\n  %27 = icmp eq i8 %26, 0\n  br i1 %27, label %$13, label %$11\n$13:\n  %28 = phi i64 [%24, %$10] ; # X\n  %29 = phi i64* [%25, %$10] ; # P\n  br label %$12\n$11:\n  %30 = phi i64 [%24, %$10] ; # X\n  %31 = phi i64* [%25, %$10] ; # P\n; # (? (> @ 32) NO)\n; # (> @ 32)\n  %32 = icmp ugt i8 %26, 32\n  br i1 %32, label %$15, label %$14\n$15:\n  %33 = phi i64 [%30, %$11] ; # X\n  %34 = phi i64* [%31, %$11] ; # P\n  br label %$12\n$14:\n  %35 = phi i64 [%30, %$11] ; # X\n  %36 = phi i64* [%31, %$11] ; # P\n  br label %$10\n$12:\n  %37 = phi i64 [%28, %$13], [%33, %$15] ; # X\n  %38 = phi i64* [%29, %$13], [%34, %$15] ; # P\n  %39 = phi i1 [1, %$13], [0, %$15] ; # ->\n  br label %$4\n$4:\n  %40 = phi i64 [%2, %$3], [%6, %$5], [%37, %$12] ; # X\n  %41 = phi i1 [0, %$3], [0, %$5], [%39, %$12] ; # ->\n  br label %$2\n$2:\n  %42 = phi i64 [%0, %$1], [%40, %$4] ; # X\n  %43 = phi i1 [1, %$1], [%41, %$4] ; # ->\n  ret i1 %43\n}\n\ndefine i64 @extNm(i32, i64) align 8 {\n$1:\n; # (& Obj (hex \"FFFFF\"))\n  %2 = and i64 %1, 1048575\n; # (& File (hex \"FF\"))\n  %3 = and i32 %0, 255\n; # (i64 (& File (hex \"FF\")))\n  %4 = sext i32 %3 to i64\n; # (shl (i64 (& File (hex \"FF\"))) 20)\n  %5 = shl i64 %4, 20\n; # (shr Obj 20)\n  %6 = lshr i64 %1, 20\n; # (& (setq Obj (shr Obj 20)) (hex \"FFF\"))\n  %7 = and i64 %6, 4095\n; # (shl (& (setq Obj (shr Obj 20)) (hex \"FFF\")) 28)\n  %8 = shl i64 %7, 28\n; # (shr File 8)\n  %9 = lshr i32 %0, 8\n; # (i64 (shr File 8))\n  %10 = sext i32 %9 to i64\n; # (shl (i64 (shr File 8)) 40)\n  %11 = shl i64 %10, 40\n; # (shr Obj 12)\n  %12 = lshr i64 %6, 12\n; # (shl (shr Obj 12) 48)\n  %13 = shl i64 %12, 48\n; # (| (shl (i64 (shr File 8)) 40) (shl (shr Obj 12) 48))\n  %14 = or i64 %11, %13\n; # (| (shl (& (setq Obj (shr Obj 20)) (hex \"FFF\")) 28) (| (shl (i64 ...\n  %15 = or i64 %8, %14\n; # (| (shl (i64 (& File (hex \"FF\"))) 20) (| (shl (& (setq Obj (shr O...\n  %16 = or i64 %5, %15\n; # (| (& Obj (hex \"FFFFF\")) (| (shl (i64 (& File (hex \"FF\"))) 20) (|...\n  %17 = or i64 %2, %16\n; # (cnt (| (& Obj (hex \"FFFFF\")) (| (shl (i64 (& File (hex \"FF\"))) 2...\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  ret i64 %19\n}\n\ndefine i32 @objFile(i64) align 8 {\n$1:\n; # (shr Name 24)\n  %1 = lshr i64 %0, 24\n; # (i32 (setq Name (shr Name 24)))\n  %2 = trunc i64 %1 to i32\n; # (& (i32 (setq Name (shr Name 24))) (hex \"FF\"))\n  %3 = and i32 %2, 255\n; # (shr Name 12)\n  %4 = lshr i64 %1, 12\n; # (i32 (shr Name 12))\n  %5 = trunc i64 %4 to i32\n; # (& (i32 (shr Name 12)) (hex \"FF00\"))\n  %6 = and i32 %5, 65280\n; # (| (& (i32 (setq Name (shr Name 24))) (hex \"FF\")) (& (i32 (shr Na...\n  %7 = or i32 %3, %6\n  ret i32 %7\n}\n\ndefine i64 @objId(i64) align 8 {\n$1:\n; # (shr Name 4)\n  %1 = lshr i64 %0, 4\n; # (& (setq Name (shr Name 4)) (hex \"FFFFF\"))\n  %2 = and i64 %1, 1048575\n; # (shr Name 8)\n  %3 = lshr i64 %1, 8\n; # (& (setq Name (shr Name 8)) (hex \"FFF00000\"))\n  %4 = and i64 %3, 4293918720\n; # (| (& (setq Name (shr Name 4)) (hex \"FFFFF\")) (& (setq Name (shr ...\n  %5 = or i64 %2, %4\n; # (shr Name 8)\n  %6 = lshr i64 %3, 8\n; # (& (shr Name 8) (hex \"3FF00000000\"))\n  %7 = and i64 %6, 4393751543808\n; # (| (| (& (setq Name (shr Name 4)) (hex \"FFFFF\")) (& (setq Name (s...\n  %8 = or i64 %5, %7\n  ret i64 %8\n}\n\ndefine void @packAO(i32, i64*) align 8 {\n$1:\n; # (when (> File 15) (packAO (shr File 4) P))\n; # (> File 15)\n  %2 = icmp sgt i32 %0, 15\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # File\n  %4 = phi i64* [%1, %$1] ; # P\n; # (shr File 4)\n  %5 = lshr i32 %3, 4\n; # (packAO (shr File 4) P)\n  call void @packAO(i32 %5, i64* %4)\n  br label %$3\n$3:\n  %6 = phi i32 [%0, %$1], [%3, %$2] ; # File\n  %7 = phi i64* [%1, %$1], [%4, %$2] ; # P\n; # (i8 File)\n  %8 = trunc i32 %6 to i8\n; # (& (i8 File) 15)\n  %9 = and i8 %8, 15\n; # (+ (& (i8 File) 15) (char \"@\"))\n  %10 = add i8 %9, 64\n; # (byteSym (+ (& (i8 File) 15) (char \"@\")) P)\n  call void @byteSym(i8 %10, i64* %7)\n  ret void\n}\n\ndefine void @packOct(i64, i64*) align 8 {\n$1:\n; # (when (> Obj 7) (packOct (shr Obj 3) P))\n; # (> Obj 7)\n  %2 = icmp ugt i64 %0, 7\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Obj\n  %4 = phi i64* [%1, %$1] ; # P\n; # (shr Obj 3)\n  %5 = lshr i64 %3, 3\n; # (packOct (shr Obj 3) P)\n  call void @packOct(i64 %5, i64* %4)\n  br label %$3\n$3:\n  %6 = phi i64 [%0, %$1], [%3, %$2] ; # Obj\n  %7 = phi i64* [%1, %$1], [%4, %$2] ; # P\n; # (i8 Obj)\n  %8 = trunc i64 %6 to i8\n; # (& (i8 Obj) 7)\n  %9 = and i8 %8, 7\n; # (+ (& (i8 Obj) 7) (char \"0\"))\n  %10 = add i8 %9, 48\n; # (byteSym (+ (& (i8 Obj) 7) (char \"0\")) P)\n  call void @byteSym(i8 %10, i64* %7)\n  ret void\n}\n\ndefine void @packExtNm(i64, i64*) align 8 {\n$1:\n; # (when (objFile Name) (packAO @ P))\n; # (objFile Name)\n  %2 = call i32 @objFile(i64 %0)\n  %3 = icmp ne i32 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Name\n  %5 = phi i64* [%1, %$1] ; # P\n; # (packAO @ P)\n  call void @packAO(i32 %2, i64* %5)\n  br label %$3\n$3:\n  %6 = phi i64 [%0, %$1], [%4, %$2] ; # Name\n  %7 = phi i64* [%1, %$1], [%5, %$2] ; # P\n; # (objId Name)\n  %8 = call i64 @objId(i64 %6)\n; # (packOct (objId Name) P)\n  call void @packOct(i64 %8, i64* %7)\n  ret void\n}\n\ndefine void @pack(i64, i64*) align 8 {\n$1:\n; # (when (pair X) (stkChk 0) (loop (pack (++ X) P) (? (atom X))))\n; # (pair X)\n  %2 = and i64 %0, 15\n  %3 = icmp eq i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # X\n  %5 = phi i64* [%1, %$1] ; # P\n; # (stkChk 0)\n  %6 = load i8*, i8** @$StkLimit\n  %7 = call i8* @llvm.stacksave()\n  %8 = icmp ugt i8* %6, %7\n  br i1 %8, label %$4, label %$5\n$4:\n  %9 = phi i64 [0, %$2] ; # Exe\n  call void @stkErr(i64 %9)\n  unreachable\n$5:\n  %10 = phi i64 [0, %$2] ; # Exe\n; # (loop (pack (++ X) P) (? (atom X)))\n  br label %$6\n$6:\n  %11 = phi i64 [%4, %$5], [%19, %$7] ; # X\n  %12 = phi i64* [%5, %$5], [%20, %$7] ; # P\n; # (++ X)\n  %13 = inttoptr i64 %11 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n  %16 = load i64, i64* %13\n; # (pack (++ X) P)\n  call void @pack(i64 %16, i64* %12)\n; # (? (atom X))\n; # (atom X)\n  %17 = and i64 %15, 15\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$8, label %$7\n$7:\n  %19 = phi i64 [%15, %$6] ; # X\n  %20 = phi i64* [%12, %$6] ; # P\n  br label %$6\n$8:\n  %21 = phi i64 [%15, %$6] ; # X\n  %22 = phi i64* [%12, %$6] ; # P\n  %23 = phi i64 [0, %$6] ; # ->\n  br label %$3\n$3:\n  %24 = phi i64 [%0, %$1], [%21, %$8] ; # X\n  %25 = phi i64* [%1, %$1], [%22, %$8] ; # P\n; # (cond ((nil? X)) ((num? X) (fmtNum X 0 0 0 P)) ((sym? (val (tail ...\n; # (nil? X)\n  %26 = icmp eq i64 %24, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %26, label %$9, label %$10\n$10:\n  %27 = phi i64 [%24, %$3] ; # X\n  %28 = phi i64* [%25, %$3] ; # P\n; # (num? X)\n  %29 = and i64 %27, 6\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$12, label %$11\n$12:\n  %31 = phi i64 [%27, %$10] ; # X\n  %32 = phi i64* [%28, %$10] ; # P\n; # (fmtNum X 0 0 0 P)\n  %33 = call i64 @fmtNum(i64 %31, i64 0, i8 0, i8 0, i64* %32)\n  br label %$9\n$11:\n  %34 = phi i64 [%27, %$10] ; # X\n  %35 = phi i64* [%28, %$10] ; # P\n; # (tail X)\n  %36 = add i64 %34, -8\n; # (val (tail X))\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n; # (sym? (val (tail X)))\n  %39 = and i64 %38, 8\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$14, label %$13\n$14:\n  %41 = phi i64 [%34, %$11] ; # X\n  %42 = phi i64* [%35, %$11] ; # P\n; # (byteSym (char \"{\") P)\n  call void @byteSym(i8 123, i64* %42)\n; # (& @ -9)\n  %43 = and i64 %38, -9\n; # (name (& @ -9))\n  br label %$15\n$15:\n  %44 = phi i64 [%43, %$14], [%50, %$16] ; # Tail\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$17, label %$16\n$16:\n  %47 = phi i64 [%44, %$15] ; # Tail\n  %48 = inttoptr i64 %47 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n  br label %$15\n$17:\n  %51 = phi i64 [%44, %$15] ; # Tail\n; # (packExtNm (name (& @ -9)) P)\n  call void @packExtNm(i64 %51, i64* %42)\n; # (byteSym (char \"}\") P)\n  call void @byteSym(i8 125, i64* %42)\n  br label %$9\n$13:\n  %52 = phi i64 [%34, %$11] ; # X\n  %53 = phi i64* [%35, %$11] ; # P\n; # (let Q (push 0 (name @)) (while (symByte Q) (byteSym @ P)))\n; # (name @)\n  br label %$18\n$18:\n  %54 = phi i64 [%38, %$13], [%60, %$19] ; # Tail\n  %55 = and i64 %54, 6\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$20, label %$19\n$19:\n  %57 = phi i64 [%54, %$18] ; # Tail\n  %58 = inttoptr i64 %57 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n  br label %$18\n$20:\n  %61 = phi i64 [%54, %$18] ; # Tail\n; # (push 0 (name @))\n  %62 = alloca i64, i64 2, align 16\n  store i64 0, i64* %62\n  %63 = getelementptr i64, i64* %62, i32 1\n  store i64 %61, i64* %63\n; # (while (symByte Q) (byteSym @ P))\n  br label %$21\n$21:\n  %64 = phi i64 [%52, %$20], [%69, %$22] ; # X\n  %65 = phi i64* [%53, %$20], [%70, %$22] ; # P\n  %66 = phi i64* [%62, %$20], [%71, %$22] ; # Q\n; # (symByte Q)\n  %67 = call i8 @symByte(i64* %66)\n  %68 = icmp ne i8 %67, 0\n  br i1 %68, label %$22, label %$23\n$22:\n  %69 = phi i64 [%64, %$21] ; # X\n  %70 = phi i64* [%65, %$21] ; # P\n  %71 = phi i64* [%66, %$21] ; # Q\n; # (byteSym @ P)\n  call void @byteSym(i8 %67, i64* %70)\n  br label %$21\n$23:\n  %72 = phi i64 [%64, %$21] ; # X\n  %73 = phi i64* [%65, %$21] ; # P\n  %74 = phi i64* [%66, %$21] ; # Q\n  br label %$9\n$9:\n  %75 = phi i64 [%24, %$3], [%31, %$12], [%41, %$17], [%72, %$23] ; # X\n  %76 = phi i64* [%25, %$3], [%32, %$12], [%42, %$17], [%73, %$23] ; # P\n  ret void\n}\n\ndefine i64 @chopExtNm(i64) align 8 {\n$1:\n; # (let (R (link (push $Nil NIL)) N (objId Name)) (loop (let A (+ (&...\n; # (push $Nil NIL)\n  %1 = alloca i64, i64 2, align 16\n  %2 = ptrtoint i64* %1 to i64\n  %3 = inttoptr i64 %2 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %3\n; # (link (push $Nil NIL))\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = inttoptr i64 %2 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  store i64 %5, i64* %7\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %2, i64* %8\n; # (objId Name)\n  %9 = call i64 @objId(i64 %0)\n; # (loop (let A (+ (& N 7) (char \"0\")) (when (setq N (shr N 3)) (set...\n  br label %$2\n$2:\n  %10 = phi i64 [%0, %$1], [%52, %$7] ; # Name\n  %11 = phi i64 [%2, %$1], [%53, %$7] ; # R\n  %12 = phi i64 [%9, %$1], [%54, %$7] ; # N\n; # (let A (+ (& N 7) (char \"0\")) (when (setq N (shr N 3)) (setq A (|...\n; # (& N 7)\n  %13 = and i64 %12, 7\n; # (+ (& N 7) (char \"0\"))\n  %14 = add i64 %13, 48\n; # (when (setq N (shr N 3)) (setq A (| (shl A 8) (+ (& N 7) (char \"0...\n; # (shr N 3)\n  %15 = lshr i64 %12, 3\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$3, label %$4\n$3:\n  %17 = phi i64 [%10, %$2] ; # Name\n  %18 = phi i64 [%11, %$2] ; # R\n  %19 = phi i64 [%15, %$2] ; # N\n  %20 = phi i64 [%14, %$2] ; # A\n; # (shl A 8)\n  %21 = shl i64 %20, 8\n; # (& N 7)\n  %22 = and i64 %19, 7\n; # (+ (& N 7) (char \"0\"))\n  %23 = add i64 %22, 48\n; # (| (shl A 8) (+ (& N 7) (char \"0\")))\n  %24 = or i64 %21, %23\n; # (when (setq N (shr N 3)) (setq A (| (shl A 8) (+ (& N 7) (char \"0...\n; # (shr N 3)\n  %25 = lshr i64 %19, 3\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$5, label %$6\n$5:\n  %27 = phi i64 [%17, %$3] ; # Name\n  %28 = phi i64 [%18, %$3] ; # R\n  %29 = phi i64 [%25, %$3] ; # N\n  %30 = phi i64 [%24, %$3] ; # A\n; # (shl A 8)\n  %31 = shl i64 %30, 8\n; # (& N 7)\n  %32 = and i64 %29, 7\n; # (+ (& N 7) (char \"0\"))\n  %33 = add i64 %32, 48\n; # (| (shl A 8) (+ (& N 7) (char \"0\")))\n  %34 = or i64 %31, %33\n  br label %$6\n$6:\n  %35 = phi i64 [%17, %$3], [%27, %$5] ; # Name\n  %36 = phi i64 [%18, %$3], [%28, %$5] ; # R\n  %37 = phi i64 [%25, %$3], [%29, %$5] ; # N\n  %38 = phi i64 [%24, %$3], [%34, %$5] ; # A\n  br label %$4\n$4:\n  %39 = phi i64 [%10, %$2], [%35, %$6] ; # Name\n  %40 = phi i64 [%11, %$2], [%36, %$6] ; # R\n  %41 = phi i64 [%15, %$2], [%37, %$6] ; # N\n  %42 = phi i64 [%14, %$2], [%38, %$6] ; # A\n; # (set R (cons (consSym (cnt A) 0) (val R)))\n; # (cnt A)\n  %43 = shl i64 %42, 4\n  %44 = or i64 %43, 2\n; # (consSym (cnt A) 0)\n  %45 = call i64 @consSym(i64 %44, i64 0)\n; # (val R)\n  %46 = inttoptr i64 %40 to i64*\n  %47 = load i64, i64* %46\n; # (cons (consSym (cnt A) 0) (val R))\n  %48 = call i64 @cons(i64 %45, i64 %47)\n  %49 = inttoptr i64 %40 to i64*\n  store i64 %48, i64* %49\n; # (? (=0 (setq N (shr N 3))))\n; # (shr N 3)\n  %50 = lshr i64 %41, 3\n; # (=0 (setq N (shr N 3)))\n  %51 = icmp eq i64 %50, 0\n  br i1 %51, label %$8, label %$7\n$7:\n  %52 = phi i64 [%39, %$4] ; # Name\n  %53 = phi i64 [%40, %$4] ; # R\n  %54 = phi i64 [%50, %$4] ; # N\n  br label %$2\n$8:\n  %55 = phi i64 [%39, %$4] ; # Name\n  %56 = phi i64 [%40, %$4] ; # R\n  %57 = phi i64 [%50, %$4] ; # N\n  %58 = phi i64 [0, %$4] ; # ->\n; # (when (setq N (objFile Name)) (let F (i32 0) (loop (setq F (| F (...\n; # (objFile Name)\n  %59 = call i32 @objFile(i64 %55)\n  %60 = icmp ne i32 %59, 0\n  br i1 %60, label %$9, label %$10\n$9:\n  %61 = phi i64 [%55, %$8] ; # Name\n  %62 = phi i64 [%56, %$8] ; # R\n  %63 = phi i32 [%59, %$8] ; # N\n; # (let F (i32 0) (loop (setq F (| F (+ (& N 15) (char \"@\")))) (? (=...\n; # (i32 0)\n; # (loop (setq F (| F (+ (& N 15) (char \"@\")))) (? (=0 (setq N (shr ...\n  br label %$11\n$11:\n  %64 = phi i64 [%61, %$9], [%73, %$12] ; # Name\n  %65 = phi i64 [%62, %$9], [%74, %$12] ; # R\n  %66 = phi i32 [%63, %$9], [%75, %$12] ; # N\n  %67 = phi i32 [0, %$9], [%77, %$12] ; # F\n; # (& N 15)\n  %68 = and i32 %66, 15\n; # (+ (& N 15) (char \"@\"))\n  %69 = add i32 %68, 64\n; # (| F (+ (& N 15) (char \"@\")))\n  %70 = or i32 %67, %69\n; # (? (=0 (setq N (shr N 4))))\n; # (shr N 4)\n  %71 = lshr i32 %66, 4\n; # (=0 (setq N (shr N 4)))\n  %72 = icmp eq i32 %71, 0\n  br i1 %72, label %$13, label %$12\n$12:\n  %73 = phi i64 [%64, %$11] ; # Name\n  %74 = phi i64 [%65, %$11] ; # R\n  %75 = phi i32 [%71, %$11] ; # N\n  %76 = phi i32 [%70, %$11] ; # F\n; # (shl F 8)\n  %77 = shl i32 %76, 8\n  br label %$11\n$13:\n  %78 = phi i64 [%64, %$11] ; # Name\n  %79 = phi i64 [%65, %$11] ; # R\n  %80 = phi i32 [%71, %$11] ; # N\n  %81 = phi i32 [%70, %$11] ; # F\n  %82 = phi i64 [0, %$11] ; # ->\n; # (set R (cons (consStr (cnt (i64 F))) (val R)))\n; # (i64 F)\n  %83 = sext i32 %81 to i64\n; # (cnt (i64 F))\n  %84 = shl i64 %83, 4\n  %85 = or i64 %84, 2\n; # (consStr (cnt (i64 F)))\n  %86 = call i64 @consStr(i64 %85)\n; # (val R)\n  %87 = inttoptr i64 %79 to i64*\n  %88 = load i64, i64* %87\n; # (cons (consStr (cnt (i64 F))) (val R))\n  %89 = call i64 @cons(i64 %86, i64 %88)\n  %90 = inttoptr i64 %79 to i64*\n  store i64 %89, i64* %90\n  br label %$10\n$10:\n  %91 = phi i64 [%55, %$8], [%78, %$13] ; # Name\n  %92 = phi i64 [%56, %$8], [%79, %$13] ; # R\n  %93 = phi i32 [%59, %$8], [%80, %$13] ; # N\n; # (pop R)\n  %94 = inttoptr i64 %92 to i64*\n  %95 = load i64, i64* %94\n  %96 = inttoptr i64 %92 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %98, i64* %99\n  ret i64 %95\n}\n\ndefine i64 @cmpLong(i64, i64) align 8 {\n$1:\n; # (loop (? (sub (val (dig X)) (val (dig Y))) (if @@ -1 1)) (setq X ...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%60, %$18] ; # X\n  %3 = phi i64 [%1, %$1], [%61, %$18] ; # Y\n; # (? (sub (val (dig X)) (val (dig Y))) (if @@ -1 1))\n; # (dig X)\n  %4 = add i64 %2, -4\n; # (val (dig X))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (dig Y)\n  %7 = add i64 %3, -4\n; # (val (dig Y))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (sub (val (dig X)) (val (dig Y)))\n  %10 = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %6, i64 %9)\n  %11 = extractvalue {i64, i1} %10, 1\n  %12 = extractvalue {i64, i1} %10, 0\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$5, label %$3\n$5:\n  %14 = phi i64 [%2, %$2] ; # X\n  %15 = phi i64 [%3, %$2] ; # Y\n; # (if @@ -1 1)\n  br i1 %11, label %$6, label %$7\n$6:\n  %16 = phi i64 [%14, %$5] ; # X\n  %17 = phi i64 [%15, %$5] ; # Y\n  br label %$8\n$7:\n  %18 = phi i64 [%14, %$5] ; # X\n  %19 = phi i64 [%15, %$5] ; # Y\n  br label %$8\n$8:\n  %20 = phi i64 [%16, %$6], [%18, %$7] ; # X\n  %21 = phi i64 [%17, %$6], [%19, %$7] ; # Y\n  %22 = phi i64 [-1, %$6], [1, %$7] ; # ->\n  br label %$4\n$3:\n  %23 = phi i64 [%2, %$2] ; # X\n  %24 = phi i64 [%3, %$2] ; # Y\n; # (big X)\n  %25 = add i64 %23, 4\n; # (val (big X))\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n; # (big Y)\n  %28 = add i64 %24, 4\n; # (val (big Y))\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n; # (? (cnt? X) (cond ((big? Y) -1) ((== Y X) 0) ((> Y X) -1) (T 1)))...\n; # (cnt? X)\n  %31 = and i64 %27, 2\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$10, label %$9\n$10:\n  %33 = phi i64 [%27, %$3] ; # X\n  %34 = phi i64 [%30, %$3] ; # Y\n; # (cond ((big? Y) -1) ((== Y X) 0) ((> Y X) -1) (T 1))\n; # (big? Y)\n  %35 = and i64 %34, 4\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$13, label %$12\n$13:\n  %37 = phi i64 [%33, %$10] ; # X\n  %38 = phi i64 [%34, %$10] ; # Y\n  br label %$11\n$12:\n  %39 = phi i64 [%33, %$10] ; # X\n  %40 = phi i64 [%34, %$10] ; # Y\n; # (== Y X)\n  %41 = icmp eq i64 %40, %39\n  br i1 %41, label %$15, label %$14\n$15:\n  %42 = phi i64 [%39, %$12] ; # X\n  %43 = phi i64 [%40, %$12] ; # Y\n  br label %$11\n$14:\n  %44 = phi i64 [%39, %$12] ; # X\n  %45 = phi i64 [%40, %$12] ; # Y\n; # (> Y X)\n  %46 = icmp ugt i64 %45, %44\n  br i1 %46, label %$17, label %$16\n$17:\n  %47 = phi i64 [%44, %$14] ; # X\n  %48 = phi i64 [%45, %$14] ; # Y\n  br label %$11\n$16:\n  %49 = phi i64 [%44, %$14] ; # X\n  %50 = phi i64 [%45, %$14] ; # Y\n  br label %$11\n$11:\n  %51 = phi i64 [%37, %$13], [%42, %$15], [%47, %$17], [%49, %$16] ; # X\n  %52 = phi i64 [%38, %$13], [%43, %$15], [%48, %$17], [%50, %$16] ; # Y\n  %53 = phi i64 [-1, %$13], [0, %$15], [-1, %$17], [1, %$16] ; # ->\n  br label %$4\n$9:\n  %54 = phi i64 [%27, %$3] ; # X\n  %55 = phi i64 [%30, %$3] ; # Y\n; # (? (cnt? Y) 1)\n; # (cnt? Y)\n  %56 = and i64 %55, 2\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$19, label %$18\n$19:\n  %58 = phi i64 [%54, %$9] ; # X\n  %59 = phi i64 [%55, %$9] ; # Y\n  br label %$4\n$18:\n  %60 = phi i64 [%54, %$9] ; # X\n  %61 = phi i64 [%55, %$9] ; # Y\n  br label %$2\n$4:\n  %62 = phi i64 [%20, %$8], [%51, %$11], [%58, %$19] ; # X\n  %63 = phi i64 [%21, %$8], [%52, %$11], [%59, %$19] ; # Y\n  %64 = phi i64 [%22, %$8], [%53, %$11], [1, %$19] ; # ->\n  ret i64 %64\n}\n\ndefine i64 @isIntern(i64, i64) align 8 {\n$1:\n; # (if (cnt? Name) (let X (val Tree) (loop (? (atom X) 0) (let (S (c...\n; # (cnt? Name)\n  %2 = and i64 %0, 2\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Name\n  %5 = phi i64 [%1, %$1] ; # Tree\n; # (let X (val Tree) (loop (? (atom X) 0) (let (S (car X) Nm (name (...\n; # (val Tree)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (loop (? (atom X) 0) (let (S (car X) Nm (name (val (tail S)))) (?...\n  br label %$5\n$5:\n  %8 = phi i64 [%4, %$2], [%65, %$16] ; # Name\n  %9 = phi i64 [%5, %$2], [%66, %$16] ; # Tree\n  %10 = phi i64 [%7, %$2], [%70, %$16] ; # X\n; # (? (atom X) 0)\n; # (atom X)\n  %11 = and i64 %10, 15\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$8, label %$6\n$8:\n  %13 = phi i64 [%8, %$5] ; # Name\n  %14 = phi i64 [%9, %$5] ; # Tree\n  %15 = phi i64 [%10, %$5] ; # X\n  br label %$7\n$6:\n  %16 = phi i64 [%8, %$5] ; # Name\n  %17 = phi i64 [%9, %$5] ; # Tree\n  %18 = phi i64 [%10, %$5] ; # X\n; # (let (S (car X) Nm (name (val (tail S)))) (? (== Name Nm) S) (set...\n; # (car X)\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n; # (tail S)\n  %21 = add i64 %20, -8\n; # (val (tail S))\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n; # (name (val (tail S)))\n  br label %$9\n$9:\n  %24 = phi i64 [%23, %$6], [%30, %$10] ; # Tail\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$11, label %$10\n$10:\n  %27 = phi i64 [%24, %$9] ; # Tail\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  br label %$9\n$11:\n  %31 = phi i64 [%24, %$9] ; # Tail\n; # (? (== Name Nm) S)\n; # (== Name Nm)\n  %32 = icmp eq i64 %16, %31\n  br i1 %32, label %$13, label %$12\n$13:\n  %33 = phi i64 [%16, %$11] ; # Name\n  %34 = phi i64 [%17, %$11] ; # Tree\n  %35 = phi i64 [%18, %$11] ; # X\n  %36 = phi i64 [%20, %$11] ; # S\n  %37 = phi i64 [%31, %$11] ; # Nm\n  br label %$7\n$12:\n  %38 = phi i64 [%16, %$11] ; # Name\n  %39 = phi i64 [%17, %$11] ; # Tree\n  %40 = phi i64 [%18, %$11] ; # X\n  %41 = phi i64 [%20, %$11] ; # S\n  %42 = phi i64 [%31, %$11] ; # Nm\n; # (if (> Name Nm) (cddr X) (cadr X))\n; # (> Name Nm)\n  %43 = icmp ugt i64 %38, %42\n  br i1 %43, label %$14, label %$15\n$14:\n  %44 = phi i64 [%38, %$12] ; # Name\n  %45 = phi i64 [%39, %$12] ; # Tree\n  %46 = phi i64 [%40, %$12] ; # X\n  %47 = phi i64 [%41, %$12] ; # S\n  %48 = phi i64 [%42, %$12] ; # Nm\n; # (cddr X)\n  %49 = inttoptr i64 %46 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n  %52 = inttoptr i64 %51 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  br label %$16\n$15:\n  %55 = phi i64 [%38, %$12] ; # Name\n  %56 = phi i64 [%39, %$12] ; # Tree\n  %57 = phi i64 [%40, %$12] ; # X\n  %58 = phi i64 [%41, %$12] ; # S\n  %59 = phi i64 [%42, %$12] ; # Nm\n; # (cadr X)\n  %60 = inttoptr i64 %57 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$16\n$16:\n  %65 = phi i64 [%44, %$14], [%55, %$15] ; # Name\n  %66 = phi i64 [%45, %$14], [%56, %$15] ; # Tree\n  %67 = phi i64 [%46, %$14], [%57, %$15] ; # X\n  %68 = phi i64 [%47, %$14], [%58, %$15] ; # S\n  %69 = phi i64 [%48, %$14], [%59, %$15] ; # Nm\n  %70 = phi i64 [%54, %$14], [%64, %$15] ; # ->\n  br label %$5\n$7:\n  %71 = phi i64 [%13, %$8], [%33, %$13] ; # Name\n  %72 = phi i64 [%14, %$8], [%34, %$13] ; # Tree\n  %73 = phi i64 [%15, %$8], [%35, %$13] ; # X\n  %74 = phi i64 [0, %$8], [%36, %$13] ; # ->\n  br label %$4\n$3:\n  %75 = phi i64 [%0, %$1] ; # Name\n  %76 = phi i64 [%1, %$1] ; # Tree\n; # (let X (val 2 Tree) (loop (? (atom X) 0) (let (S (car X) Nm (name...\n; # (val 2 Tree)\n  %77 = inttoptr i64 %76 to i64*\n  %78 = getelementptr i64, i64* %77, i32 1\n  %79 = load i64, i64* %78\n; # (loop (? (atom X) 0) (let (S (car X) Nm (name (val (tail S)))) (?...\n  br label %$17\n$17:\n  %80 = phi i64 [%75, %$3], [%138, %$28] ; # Name\n  %81 = phi i64 [%76, %$3], [%139, %$28] ; # Tree\n  %82 = phi i64 [%79, %$3], [%143, %$28] ; # X\n; # (? (atom X) 0)\n; # (atom X)\n  %83 = and i64 %82, 15\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$20, label %$18\n$20:\n  %85 = phi i64 [%80, %$17] ; # Name\n  %86 = phi i64 [%81, %$17] ; # Tree\n  %87 = phi i64 [%82, %$17] ; # X\n  br label %$19\n$18:\n  %88 = phi i64 [%80, %$17] ; # Name\n  %89 = phi i64 [%81, %$17] ; # Tree\n  %90 = phi i64 [%82, %$17] ; # X\n; # (let (S (car X) Nm (name (val (tail S)))) (? (=0 (cmpLong Nm Name...\n; # (car X)\n  %91 = inttoptr i64 %90 to i64*\n  %92 = load i64, i64* %91\n; # (tail S)\n  %93 = add i64 %92, -8\n; # (val (tail S))\n  %94 = inttoptr i64 %93 to i64*\n  %95 = load i64, i64* %94\n; # (name (val (tail S)))\n  br label %$21\n$21:\n  %96 = phi i64 [%95, %$18], [%102, %$22] ; # Tail\n  %97 = and i64 %96, 6\n  %98 = icmp ne i64 %97, 0\n  br i1 %98, label %$23, label %$22\n$22:\n  %99 = phi i64 [%96, %$21] ; # Tail\n  %100 = inttoptr i64 %99 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n  br label %$21\n$23:\n  %103 = phi i64 [%96, %$21] ; # Tail\n; # (? (=0 (cmpLong Nm Name)) S)\n; # (cmpLong Nm Name)\n  %104 = call i64 @cmpLong(i64 %103, i64 %88)\n; # (=0 (cmpLong Nm Name))\n  %105 = icmp eq i64 %104, 0\n  br i1 %105, label %$25, label %$24\n$25:\n  %106 = phi i64 [%88, %$23] ; # Name\n  %107 = phi i64 [%89, %$23] ; # Tree\n  %108 = phi i64 [%90, %$23] ; # X\n  %109 = phi i64 [%92, %$23] ; # S\n  %110 = phi i64 [%103, %$23] ; # Nm\n  br label %$19\n$24:\n  %111 = phi i64 [%88, %$23] ; # Name\n  %112 = phi i64 [%89, %$23] ; # Tree\n  %113 = phi i64 [%90, %$23] ; # X\n  %114 = phi i64 [%92, %$23] ; # S\n  %115 = phi i64 [%103, %$23] ; # Nm\n; # (if (lt0 @) (cddr X) (cadr X))\n; # (lt0 @)\n  %116 = icmp slt i64 %104, 0\n  br i1 %116, label %$26, label %$27\n$26:\n  %117 = phi i64 [%111, %$24] ; # Name\n  %118 = phi i64 [%112, %$24] ; # Tree\n  %119 = phi i64 [%113, %$24] ; # X\n  %120 = phi i64 [%114, %$24] ; # S\n  %121 = phi i64 [%115, %$24] ; # Nm\n; # (cddr X)\n  %122 = inttoptr i64 %119 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  %124 = load i64, i64* %123\n  %125 = inttoptr i64 %124 to i64*\n  %126 = getelementptr i64, i64* %125, i32 1\n  %127 = load i64, i64* %126\n  br label %$28\n$27:\n  %128 = phi i64 [%111, %$24] ; # Name\n  %129 = phi i64 [%112, %$24] ; # Tree\n  %130 = phi i64 [%113, %$24] ; # X\n  %131 = phi i64 [%114, %$24] ; # S\n  %132 = phi i64 [%115, %$24] ; # Nm\n; # (cadr X)\n  %133 = inttoptr i64 %130 to i64*\n  %134 = getelementptr i64, i64* %133, i32 1\n  %135 = load i64, i64* %134\n  %136 = inttoptr i64 %135 to i64*\n  %137 = load i64, i64* %136\n  br label %$28\n$28:\n  %138 = phi i64 [%117, %$26], [%128, %$27] ; # Name\n  %139 = phi i64 [%118, %$26], [%129, %$27] ; # Tree\n  %140 = phi i64 [%119, %$26], [%130, %$27] ; # X\n  %141 = phi i64 [%120, %$26], [%131, %$27] ; # S\n  %142 = phi i64 [%121, %$26], [%132, %$27] ; # Nm\n  %143 = phi i64 [%127, %$26], [%137, %$27] ; # ->\n  br label %$17\n$19:\n  %144 = phi i64 [%85, %$20], [%106, %$25] ; # Name\n  %145 = phi i64 [%86, %$20], [%107, %$25] ; # Tree\n  %146 = phi i64 [%87, %$20], [%108, %$25] ; # X\n  %147 = phi i64 [0, %$20], [%109, %$25] ; # ->\n  br label %$4\n$4:\n  %148 = phi i64 [%71, %$7], [%144, %$19] ; # Name\n  %149 = phi i64 [%72, %$7], [%145, %$19] ; # Tree\n  %150 = phi i64 [%74, %$7], [%147, %$19] ; # ->\n  ret i64 %150\n}\n\ndefine i64 @isLstIntern(i64, i64) align 8 {\n$1:\n; # (loop (? (atom Lst) 0) (? (isIntern Name (cdar (car Lst))) @) (sh...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%21, %$6] ; # Name\n  %3 = phi i64 [%1, %$1], [%25, %$6] ; # Lst\n; # (? (atom Lst) 0)\n; # (atom Lst)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$5, label %$3\n$5:\n  %6 = phi i64 [%2, %$2] ; # Name\n  %7 = phi i64 [%3, %$2] ; # Lst\n  br label %$4\n$3:\n  %8 = phi i64 [%2, %$2] ; # Name\n  %9 = phi i64 [%3, %$2] ; # Lst\n; # (? (isIntern Name (cdar (car Lst))) @)\n; # (car Lst)\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n; # (cdar (car Lst))\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n  %14 = inttoptr i64 %13 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n; # (isIntern Name (cdar (car Lst)))\n  %17 = call i64 @isIntern(i64 %8, i64 %16)\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$7, label %$6\n$7:\n  %19 = phi i64 [%8, %$3] ; # Name\n  %20 = phi i64 [%9, %$3] ; # Lst\n  br label %$4\n$6:\n  %21 = phi i64 [%8, %$3] ; # Name\n  %22 = phi i64 [%9, %$3] ; # Lst\n; # (shift Lst)\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  br label %$2\n$4:\n  %26 = phi i64 [%6, %$5], [%19, %$7] ; # Name\n  %27 = phi i64 [%7, %$5], [%20, %$7] ; # Lst\n  %28 = phi i64 [0, %$5], [%17, %$7] ; # ->\n  ret i64 %28\n}\n\ndefine i1 @findSym(i64, i64, i64) align 8 {\n$1:\n; # (loop (? (atom Lst) NO) (? (== Sym (isIntern Name (cdar (car Lst)...\n  br label %$2\n$2:\n  %3 = phi i64 [%0, %$1], [%26, %$6] ; # Sym\n  %4 = phi i64 [%1, %$1], [%27, %$6] ; # Name\n  %5 = phi i64 [%2, %$1], [%31, %$6] ; # Lst\n; # (? (atom Lst) NO)\n; # (atom Lst)\n  %6 = and i64 %5, 15\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$3\n$5:\n  %8 = phi i64 [%3, %$2] ; # Sym\n  %9 = phi i64 [%4, %$2] ; # Name\n  %10 = phi i64 [%5, %$2] ; # Lst\n  br label %$4\n$3:\n  %11 = phi i64 [%3, %$2] ; # Sym\n  %12 = phi i64 [%4, %$2] ; # Name\n  %13 = phi i64 [%5, %$2] ; # Lst\n; # (? (== Sym (isIntern Name (cdar (car Lst)))) YES)\n; # (car Lst)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (cdar (car Lst))\n  %16 = inttoptr i64 %15 to i64*\n  %17 = load i64, i64* %16\n  %18 = inttoptr i64 %17 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  %20 = load i64, i64* %19\n; # (isIntern Name (cdar (car Lst)))\n  %21 = call i64 @isIntern(i64 %12, i64 %20)\n; # (== Sym (isIntern Name (cdar (car Lst))))\n  %22 = icmp eq i64 %11, %21\n  br i1 %22, label %$7, label %$6\n$7:\n  %23 = phi i64 [%11, %$3] ; # Sym\n  %24 = phi i64 [%12, %$3] ; # Name\n  %25 = phi i64 [%13, %$3] ; # Lst\n  br label %$4\n$6:\n  %26 = phi i64 [%11, %$3] ; # Sym\n  %27 = phi i64 [%12, %$3] ; # Name\n  %28 = phi i64 [%13, %$3] ; # Lst\n; # (shift Lst)\n  %29 = inttoptr i64 %28 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  br label %$2\n$4:\n  %32 = phi i64 [%8, %$5], [%23, %$7] ; # Sym\n  %33 = phi i64 [%9, %$5], [%24, %$7] ; # Name\n  %34 = phi i64 [%10, %$5], [%25, %$7] ; # Lst\n  %35 = phi i1 [0, %$5], [1, %$7] ; # ->\n  ret i1 %35\n}\n\ndefine i64 @intern(i64, i64, i64, i64, i64, i1) align 8 {\n$1:\n; # (if (cnt? Name) (let X (val Tree) (if (pair X) (loop (let (S (car...\n; # (cnt? Name)\n  %6 = and i64 %2, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$2, label %$3\n$2:\n  %8 = phi i64 [%0, %$1] ; # Sym\n  %9 = phi i64 [%1, %$1] ; # Val\n  %10 = phi i64 [%2, %$1] ; # Name\n  %11 = phi i64 [%3, %$1] ; # Tree\n  %12 = phi i64 [%4, %$1] ; # More\n  %13 = phi i1 [%5, %$1] ; # Rpl\n; # (let X (val Tree) (if (pair X) (loop (let (S (car X) Nm (name (va...\n; # (val Tree)\n  %14 = inttoptr i64 %11 to i64*\n  %15 = load i64, i64* %14\n; # (if (pair X) (loop (let (S (car X) Nm (name (val (tail S)))) (? (...\n; # (pair X)\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$5, label %$6\n$5:\n  %18 = phi i64 [%8, %$2] ; # Sym\n  %19 = phi i64 [%9, %$2] ; # Val\n  %20 = phi i64 [%10, %$2] ; # Name\n  %21 = phi i64 [%11, %$2] ; # Tree\n  %22 = phi i64 [%12, %$2] ; # More\n  %23 = phi i1 [%13, %$2] ; # Rpl\n  %24 = phi i64 [%15, %$2] ; # X\n; # (loop (let (S (car X) Nm (name (val (tail S)))) (? (== Name Nm) (...\n  br label %$8\n$8:\n  %25 = phi i64 [%18, %$5], [%343, %$18] ; # Sym\n  %26 = phi i64 [%19, %$5], [%344, %$18] ; # Val\n  %27 = phi i64 [%20, %$5], [%345, %$18] ; # Name\n  %28 = phi i64 [%21, %$5], [%346, %$18] ; # Tree\n  %29 = phi i64 [%22, %$5], [%347, %$18] ; # More\n  %30 = phi i1 [%23, %$5], [%348, %$18] ; # Rpl\n  %31 = phi i64 [%24, %$5], [%352, %$18] ; # X\n; # (let (S (car X) Nm (name (val (tail S)))) (? (== Name Nm) (if Rpl...\n; # (car X)\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n; # (tail S)\n  %34 = add i64 %33, -8\n; # (val (tail S))\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n; # (name (val (tail S)))\n  br label %$9\n$9:\n  %37 = phi i64 [%36, %$8], [%43, %$10] ; # Tail\n  %38 = and i64 %37, 6\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$11, label %$10\n$10:\n  %40 = phi i64 [%37, %$9] ; # Tail\n  %41 = inttoptr i64 %40 to i64*\n  %42 = getelementptr i64, i64* %41, i32 1\n  %43 = load i64, i64* %42\n  br label %$9\n$11:\n  %44 = phi i64 [%37, %$9] ; # Tail\n; # (? (== Name Nm) (if Rpl (set X Sym) S))\n; # (== Name Nm)\n  %45 = icmp eq i64 %27, %44\n  br i1 %45, label %$14, label %$12\n$14:\n  %46 = phi i64 [%25, %$11] ; # Sym\n  %47 = phi i64 [%26, %$11] ; # Val\n  %48 = phi i64 [%27, %$11] ; # Name\n  %49 = phi i64 [%28, %$11] ; # Tree\n  %50 = phi i64 [%29, %$11] ; # More\n  %51 = phi i1 [%30, %$11] ; # Rpl\n  %52 = phi i64 [%31, %$11] ; # X\n  %53 = phi i64 [%33, %$11] ; # S\n  %54 = phi i64 [%44, %$11] ; # Nm\n; # (if Rpl (set X Sym) S)\n  br i1 %51, label %$15, label %$16\n$15:\n  %55 = phi i64 [%46, %$14] ; # Sym\n  %56 = phi i64 [%47, %$14] ; # Val\n  %57 = phi i64 [%48, %$14] ; # Name\n  %58 = phi i64 [%49, %$14] ; # Tree\n  %59 = phi i64 [%50, %$14] ; # More\n  %60 = phi i1 [%51, %$14] ; # Rpl\n  %61 = phi i64 [%52, %$14] ; # X\n  %62 = phi i64 [%53, %$14] ; # S\n  %63 = phi i64 [%54, %$14] ; # Nm\n; # (set X Sym)\n  %64 = inttoptr i64 %61 to i64*\n  store i64 %55, i64* %64\n  br label %$17\n$16:\n  %65 = phi i64 [%46, %$14] ; # Sym\n  %66 = phi i64 [%47, %$14] ; # Val\n  %67 = phi i64 [%48, %$14] ; # Name\n  %68 = phi i64 [%49, %$14] ; # Tree\n  %69 = phi i64 [%50, %$14] ; # More\n  %70 = phi i1 [%51, %$14] ; # Rpl\n  %71 = phi i64 [%52, %$14] ; # X\n  %72 = phi i64 [%53, %$14] ; # S\n  %73 = phi i64 [%54, %$14] ; # Nm\n  br label %$17\n$17:\n  %74 = phi i64 [%55, %$15], [%65, %$16] ; # Sym\n  %75 = phi i64 [%56, %$15], [%66, %$16] ; # Val\n  %76 = phi i64 [%57, %$15], [%67, %$16] ; # Name\n  %77 = phi i64 [%58, %$15], [%68, %$16] ; # Tree\n  %78 = phi i64 [%59, %$15], [%69, %$16] ; # More\n  %79 = phi i1 [%60, %$15], [%70, %$16] ; # Rpl\n  %80 = phi i64 [%61, %$15], [%71, %$16] ; # X\n  %81 = phi i64 [%62, %$15], [%72, %$16] ; # S\n  %82 = phi i64 [%63, %$15], [%73, %$16] ; # Nm\n  %83 = phi i64 [%55, %$15], [%72, %$16] ; # ->\n  br label %$13\n$12:\n  %84 = phi i64 [%25, %$11] ; # Sym\n  %85 = phi i64 [%26, %$11] ; # Val\n  %86 = phi i64 [%27, %$11] ; # Name\n  %87 = phi i64 [%28, %$11] ; # Tree\n  %88 = phi i64 [%29, %$11] ; # More\n  %89 = phi i1 [%30, %$11] ; # Rpl\n  %90 = phi i64 [%31, %$11] ; # X\n  %91 = phi i64 [%33, %$11] ; # S\n  %92 = phi i64 [%44, %$11] ; # Nm\n; # (let Y (cdr X) (cond ((> Name Nm) (? (atom Y) (internRight Sym Va...\n; # (cdr X)\n  %93 = inttoptr i64 %90 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n; # (cond ((> Name Nm) (? (atom Y) (internRight Sym Val Name X More))...\n; # (> Name Nm)\n  %96 = icmp ugt i64 %86, %92\n  br i1 %96, label %$20, label %$19\n$20:\n  %97 = phi i64 [%84, %$12] ; # Sym\n  %98 = phi i64 [%85, %$12] ; # Val\n  %99 = phi i64 [%86, %$12] ; # Name\n  %100 = phi i64 [%87, %$12] ; # Tree\n  %101 = phi i64 [%88, %$12] ; # More\n  %102 = phi i1 [%89, %$12] ; # Rpl\n  %103 = phi i64 [%90, %$12] ; # X\n  %104 = phi i64 [%91, %$12] ; # S\n  %105 = phi i64 [%92, %$12] ; # Nm\n  %106 = phi i64 [%95, %$12] ; # Y\n; # (? (atom Y) (internRight Sym Val Name X More))\n; # (atom Y)\n  %107 = and i64 %106, 15\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$22, label %$21\n$22:\n  %109 = phi i64 [%97, %$20] ; # Sym\n  %110 = phi i64 [%98, %$20] ; # Val\n  %111 = phi i64 [%99, %$20] ; # Name\n  %112 = phi i64 [%100, %$20] ; # Tree\n  %113 = phi i64 [%101, %$20] ; # More\n  %114 = phi i1 [%102, %$20] ; # Rpl\n  %115 = phi i64 [%103, %$20] ; # X\n  %116 = phi i64 [%104, %$20] ; # S\n  %117 = phi i64 [%105, %$20] ; # Nm\n  %118 = phi i64 [%106, %$20] ; # Y\n; # (internRight Sym Val Name X More)\n  %119 = call i64 @isLstIntern(i64 %111, i64 %113)\n  %120 = icmp ne i64 %119, 0\n  br i1 %120, label %$23, label %$24\n$23:\n  %121 = phi i64 [%113, %$22] ; # More\n  %122 = phi i64 [%115, %$22] ; # Node\n  %123 = phi i64 [%111, %$22] ; # Name\n  %124 = phi i64 [%110, %$22] ; # Val\n  %125 = phi i64 [%109, %$22] ; # Sym\n  br label %$25\n$24:\n  %126 = phi i64 [%113, %$22] ; # More\n  %127 = phi i64 [%115, %$22] ; # Node\n  %128 = phi i64 [%111, %$22] ; # Name\n  %129 = phi i64 [%110, %$22] ; # Val\n  %130 = phi i64 [%109, %$22] ; # Sym\n  %131 = icmp ne i64 %130, 0\n  br i1 %131, label %$27, label %$26\n$26:\n  %132 = phi i64 [%126, %$24] ; # More\n  %133 = phi i64 [%127, %$24] ; # Node\n  %134 = phi i64 [%128, %$24] ; # Name\n  %135 = phi i64 [%129, %$24] ; # Val\n  %136 = phi i64 [%130, %$24] ; # Sym\n  %137 = call i64 @consSym(i64 %134, i64 %135)\n  br label %$27\n$27:\n  %138 = phi i64 [%126, %$24], [%132, %$26] ; # More\n  %139 = phi i64 [%127, %$24], [%133, %$26] ; # Node\n  %140 = phi i64 [%128, %$24], [%134, %$26] ; # Name\n  %141 = phi i64 [%129, %$24], [%135, %$26] ; # Val\n  %142 = phi i64 [%130, %$24], [%137, %$26] ; # Sym\n  %143 = call i64 @cons(i64 %142, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %144 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %143)\n  %145 = inttoptr i64 %139 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  store i64 %144, i64* %146\n  br label %$25\n$25:\n  %147 = phi i64 [%121, %$23], [%138, %$27] ; # More\n  %148 = phi i64 [%122, %$23], [%139, %$27] ; # Node\n  %149 = phi i64 [%123, %$23], [%140, %$27] ; # Name\n  %150 = phi i64 [%124, %$23], [%141, %$27] ; # Val\n  %151 = phi i64 [%125, %$23], [%142, %$27] ; # Sym\n  %152 = phi i64 [%119, %$23], [%142, %$27] ; # ->\n  br label %$13\n$21:\n  %153 = phi i64 [%97, %$20] ; # Sym\n  %154 = phi i64 [%98, %$20] ; # Val\n  %155 = phi i64 [%99, %$20] ; # Name\n  %156 = phi i64 [%100, %$20] ; # Tree\n  %157 = phi i64 [%101, %$20] ; # More\n  %158 = phi i1 [%102, %$20] ; # Rpl\n  %159 = phi i64 [%103, %$20] ; # X\n  %160 = phi i64 [%104, %$20] ; # S\n  %161 = phi i64 [%105, %$20] ; # Nm\n  %162 = phi i64 [%106, %$20] ; # Y\n; # (? (atom (setq Y (cdr (setq X Y)))) (intern2 Sym Val Name X More)...\n; # (cdr (setq X Y))\n  %163 = inttoptr i64 %162 to i64*\n  %164 = getelementptr i64, i64* %163, i32 1\n  %165 = load i64, i64* %164\n; # (atom (setq Y (cdr (setq X Y))))\n  %166 = and i64 %165, 15\n  %167 = icmp ne i64 %166, 0\n  br i1 %167, label %$29, label %$28\n$29:\n  %168 = phi i64 [%153, %$21] ; # Sym\n  %169 = phi i64 [%154, %$21] ; # Val\n  %170 = phi i64 [%155, %$21] ; # Name\n  %171 = phi i64 [%156, %$21] ; # Tree\n  %172 = phi i64 [%157, %$21] ; # More\n  %173 = phi i1 [%158, %$21] ; # Rpl\n  %174 = phi i64 [%162, %$21] ; # X\n  %175 = phi i64 [%160, %$21] ; # S\n  %176 = phi i64 [%161, %$21] ; # Nm\n  %177 = phi i64 [%165, %$21] ; # Y\n; # (intern2 Sym Val Name X More)\n  %178 = call i64 @isLstIntern(i64 %170, i64 %172)\n  %179 = icmp ne i64 %178, 0\n  br i1 %179, label %$30, label %$31\n$30:\n  %180 = phi i64 [%172, %$29] ; # More\n  %181 = phi i64 [%174, %$29] ; # Node\n  %182 = phi i64 [%170, %$29] ; # Name\n  %183 = phi i64 [%169, %$29] ; # Val\n  %184 = phi i64 [%168, %$29] ; # Sym\n  br label %$32\n$31:\n  %185 = phi i64 [%172, %$29] ; # More\n  %186 = phi i64 [%174, %$29] ; # Node\n  %187 = phi i64 [%170, %$29] ; # Name\n  %188 = phi i64 [%169, %$29] ; # Val\n  %189 = phi i64 [%168, %$29] ; # Sym\n  %190 = icmp ne i64 %189, 0\n  br i1 %190, label %$34, label %$33\n$33:\n  %191 = phi i64 [%185, %$31] ; # More\n  %192 = phi i64 [%186, %$31] ; # Node\n  %193 = phi i64 [%187, %$31] ; # Name\n  %194 = phi i64 [%188, %$31] ; # Val\n  %195 = phi i64 [%189, %$31] ; # Sym\n  %196 = call i64 @consSym(i64 %193, i64 %194)\n  br label %$34\n$34:\n  %197 = phi i64 [%185, %$31], [%191, %$33] ; # More\n  %198 = phi i64 [%186, %$31], [%192, %$33] ; # Node\n  %199 = phi i64 [%187, %$31], [%193, %$33] ; # Name\n  %200 = phi i64 [%188, %$31], [%194, %$33] ; # Val\n  %201 = phi i64 [%189, %$31], [%196, %$33] ; # Sym\n  %202 = call i64 @cons(i64 %201, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %203 = inttoptr i64 %198 to i64*\n  %204 = getelementptr i64, i64* %203, i32 1\n  store i64 %202, i64* %204\n  br label %$32\n$32:\n  %205 = phi i64 [%180, %$30], [%197, %$34] ; # More\n  %206 = phi i64 [%181, %$30], [%198, %$34] ; # Node\n  %207 = phi i64 [%182, %$30], [%199, %$34] ; # Name\n  %208 = phi i64 [%183, %$30], [%200, %$34] ; # Val\n  %209 = phi i64 [%184, %$30], [%201, %$34] ; # Sym\n  %210 = phi i64 [%178, %$30], [%201, %$34] ; # ->\n  br label %$13\n$28:\n  %211 = phi i64 [%153, %$21] ; # Sym\n  %212 = phi i64 [%154, %$21] ; # Val\n  %213 = phi i64 [%155, %$21] ; # Name\n  %214 = phi i64 [%156, %$21] ; # Tree\n  %215 = phi i64 [%157, %$21] ; # More\n  %216 = phi i1 [%158, %$21] ; # Rpl\n  %217 = phi i64 [%162, %$21] ; # X\n  %218 = phi i64 [%160, %$21] ; # S\n  %219 = phi i64 [%161, %$21] ; # Nm\n  %220 = phi i64 [%165, %$21] ; # Y\n  br label %$18\n$19:\n  %221 = phi i64 [%84, %$12] ; # Sym\n  %222 = phi i64 [%85, %$12] ; # Val\n  %223 = phi i64 [%86, %$12] ; # Name\n  %224 = phi i64 [%87, %$12] ; # Tree\n  %225 = phi i64 [%88, %$12] ; # More\n  %226 = phi i1 [%89, %$12] ; # Rpl\n  %227 = phi i64 [%90, %$12] ; # X\n  %228 = phi i64 [%91, %$12] ; # S\n  %229 = phi i64 [%92, %$12] ; # Nm\n  %230 = phi i64 [%95, %$12] ; # Y\n; # (? (atom Y) (internLeft Sym Val Name X More))\n; # (atom Y)\n  %231 = and i64 %230, 15\n  %232 = icmp ne i64 %231, 0\n  br i1 %232, label %$36, label %$35\n$36:\n  %233 = phi i64 [%221, %$19] ; # Sym\n  %234 = phi i64 [%222, %$19] ; # Val\n  %235 = phi i64 [%223, %$19] ; # Name\n  %236 = phi i64 [%224, %$19] ; # Tree\n  %237 = phi i64 [%225, %$19] ; # More\n  %238 = phi i1 [%226, %$19] ; # Rpl\n  %239 = phi i64 [%227, %$19] ; # X\n  %240 = phi i64 [%228, %$19] ; # S\n  %241 = phi i64 [%229, %$19] ; # Nm\n  %242 = phi i64 [%230, %$19] ; # Y\n; # (internLeft Sym Val Name X More)\n  %243 = call i64 @isLstIntern(i64 %235, i64 %237)\n  %244 = icmp ne i64 %243, 0\n  br i1 %244, label %$37, label %$38\n$37:\n  %245 = phi i64 [%237, %$36] ; # More\n  %246 = phi i64 [%239, %$36] ; # Node\n  %247 = phi i64 [%235, %$36] ; # Name\n  %248 = phi i64 [%234, %$36] ; # Val\n  %249 = phi i64 [%233, %$36] ; # Sym\n  br label %$39\n$38:\n  %250 = phi i64 [%237, %$36] ; # More\n  %251 = phi i64 [%239, %$36] ; # Node\n  %252 = phi i64 [%235, %$36] ; # Name\n  %253 = phi i64 [%234, %$36] ; # Val\n  %254 = phi i64 [%233, %$36] ; # Sym\n  %255 = icmp ne i64 %254, 0\n  br i1 %255, label %$41, label %$40\n$40:\n  %256 = phi i64 [%250, %$38] ; # More\n  %257 = phi i64 [%251, %$38] ; # Node\n  %258 = phi i64 [%252, %$38] ; # Name\n  %259 = phi i64 [%253, %$38] ; # Val\n  %260 = phi i64 [%254, %$38] ; # Sym\n  %261 = call i64 @consSym(i64 %258, i64 %259)\n  br label %$41\n$41:\n  %262 = phi i64 [%250, %$38], [%256, %$40] ; # More\n  %263 = phi i64 [%251, %$38], [%257, %$40] ; # Node\n  %264 = phi i64 [%252, %$38], [%258, %$40] ; # Name\n  %265 = phi i64 [%253, %$38], [%259, %$40] ; # Val\n  %266 = phi i64 [%254, %$38], [%261, %$40] ; # Sym\n  %267 = call i64 @cons(i64 %266, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %268 = call i64 @cons(i64 %267, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %269 = inttoptr i64 %263 to i64*\n  %270 = getelementptr i64, i64* %269, i32 1\n  store i64 %268, i64* %270\n  br label %$39\n$39:\n  %271 = phi i64 [%245, %$37], [%262, %$41] ; # More\n  %272 = phi i64 [%246, %$37], [%263, %$41] ; # Node\n  %273 = phi i64 [%247, %$37], [%264, %$41] ; # Name\n  %274 = phi i64 [%248, %$37], [%265, %$41] ; # Val\n  %275 = phi i64 [%249, %$37], [%266, %$41] ; # Sym\n  %276 = phi i64 [%243, %$37], [%266, %$41] ; # ->\n  br label %$13\n$35:\n  %277 = phi i64 [%221, %$19] ; # Sym\n  %278 = phi i64 [%222, %$19] ; # Val\n  %279 = phi i64 [%223, %$19] ; # Name\n  %280 = phi i64 [%224, %$19] ; # Tree\n  %281 = phi i64 [%225, %$19] ; # More\n  %282 = phi i1 [%226, %$19] ; # Rpl\n  %283 = phi i64 [%227, %$19] ; # X\n  %284 = phi i64 [%228, %$19] ; # S\n  %285 = phi i64 [%229, %$19] ; # Nm\n  %286 = phi i64 [%230, %$19] ; # Y\n; # (? (atom (setq Y (car (setq X Y)))) (intern1 Sym Val Name X More)...\n; # (car (setq X Y))\n  %287 = inttoptr i64 %286 to i64*\n  %288 = load i64, i64* %287\n; # (atom (setq Y (car (setq X Y))))\n  %289 = and i64 %288, 15\n  %290 = icmp ne i64 %289, 0\n  br i1 %290, label %$43, label %$42\n$43:\n  %291 = phi i64 [%277, %$35] ; # Sym\n  %292 = phi i64 [%278, %$35] ; # Val\n  %293 = phi i64 [%279, %$35] ; # Name\n  %294 = phi i64 [%280, %$35] ; # Tree\n  %295 = phi i64 [%281, %$35] ; # More\n  %296 = phi i1 [%282, %$35] ; # Rpl\n  %297 = phi i64 [%286, %$35] ; # X\n  %298 = phi i64 [%284, %$35] ; # S\n  %299 = phi i64 [%285, %$35] ; # Nm\n  %300 = phi i64 [%288, %$35] ; # Y\n; # (intern1 Sym Val Name X More)\n  %301 = call i64 @isLstIntern(i64 %293, i64 %295)\n  %302 = icmp ne i64 %301, 0\n  br i1 %302, label %$44, label %$45\n$44:\n  %303 = phi i64 [%295, %$43] ; # More\n  %304 = phi i64 [%297, %$43] ; # Node\n  %305 = phi i64 [%293, %$43] ; # Name\n  %306 = phi i64 [%292, %$43] ; # Val\n  %307 = phi i64 [%291, %$43] ; # Sym\n  br label %$46\n$45:\n  %308 = phi i64 [%295, %$43] ; # More\n  %309 = phi i64 [%297, %$43] ; # Node\n  %310 = phi i64 [%293, %$43] ; # Name\n  %311 = phi i64 [%292, %$43] ; # Val\n  %312 = phi i64 [%291, %$43] ; # Sym\n  %313 = icmp ne i64 %312, 0\n  br i1 %313, label %$48, label %$47\n$47:\n  %314 = phi i64 [%308, %$45] ; # More\n  %315 = phi i64 [%309, %$45] ; # Node\n  %316 = phi i64 [%310, %$45] ; # Name\n  %317 = phi i64 [%311, %$45] ; # Val\n  %318 = phi i64 [%312, %$45] ; # Sym\n  %319 = call i64 @consSym(i64 %316, i64 %317)\n  br label %$48\n$48:\n  %320 = phi i64 [%308, %$45], [%314, %$47] ; # More\n  %321 = phi i64 [%309, %$45], [%315, %$47] ; # Node\n  %322 = phi i64 [%310, %$45], [%316, %$47] ; # Name\n  %323 = phi i64 [%311, %$45], [%317, %$47] ; # Val\n  %324 = phi i64 [%312, %$45], [%319, %$47] ; # Sym\n  %325 = call i64 @cons(i64 %324, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %326 = inttoptr i64 %321 to i64*\n  store i64 %325, i64* %326\n  br label %$46\n$46:\n  %327 = phi i64 [%303, %$44], [%320, %$48] ; # More\n  %328 = phi i64 [%304, %$44], [%321, %$48] ; # Node\n  %329 = phi i64 [%305, %$44], [%322, %$48] ; # Name\n  %330 = phi i64 [%306, %$44], [%323, %$48] ; # Val\n  %331 = phi i64 [%307, %$44], [%324, %$48] ; # Sym\n  %332 = phi i64 [%301, %$44], [%324, %$48] ; # ->\n  br label %$13\n$42:\n  %333 = phi i64 [%277, %$35] ; # Sym\n  %334 = phi i64 [%278, %$35] ; # Val\n  %335 = phi i64 [%279, %$35] ; # Name\n  %336 = phi i64 [%280, %$35] ; # Tree\n  %337 = phi i64 [%281, %$35] ; # More\n  %338 = phi i1 [%282, %$35] ; # Rpl\n  %339 = phi i64 [%286, %$35] ; # X\n  %340 = phi i64 [%284, %$35] ; # S\n  %341 = phi i64 [%285, %$35] ; # Nm\n  %342 = phi i64 [%288, %$35] ; # Y\n  br label %$18\n$18:\n  %343 = phi i64 [%211, %$28], [%333, %$42] ; # Sym\n  %344 = phi i64 [%212, %$28], [%334, %$42] ; # Val\n  %345 = phi i64 [%213, %$28], [%335, %$42] ; # Name\n  %346 = phi i64 [%214, %$28], [%336, %$42] ; # Tree\n  %347 = phi i64 [%215, %$28], [%337, %$42] ; # More\n  %348 = phi i1 [%216, %$28], [%338, %$42] ; # Rpl\n  %349 = phi i64 [%217, %$28], [%339, %$42] ; # X\n  %350 = phi i64 [%218, %$28], [%340, %$42] ; # S\n  %351 = phi i64 [%219, %$28], [%341, %$42] ; # Nm\n  %352 = phi i64 [%220, %$28], [%342, %$42] ; # Y\n  br label %$8\n$13:\n  %353 = phi i64 [%74, %$17], [%109, %$25], [%168, %$32], [%233, %$39], [%291, %$46] ; # Sym\n  %354 = phi i64 [%75, %$17], [%110, %$25], [%169, %$32], [%234, %$39], [%292, %$46] ; # Val\n  %355 = phi i64 [%76, %$17], [%111, %$25], [%170, %$32], [%235, %$39], [%293, %$46] ; # Name\n  %356 = phi i64 [%77, %$17], [%112, %$25], [%171, %$32], [%236, %$39], [%294, %$46] ; # Tree\n  %357 = phi i64 [%78, %$17], [%113, %$25], [%172, %$32], [%237, %$39], [%295, %$46] ; # More\n  %358 = phi i1 [%79, %$17], [%114, %$25], [%173, %$32], [%238, %$39], [%296, %$46] ; # Rpl\n  %359 = phi i64 [%80, %$17], [%115, %$25], [%174, %$32], [%239, %$39], [%297, %$46] ; # X\n  %360 = phi i64 [%83, %$17], [%152, %$25], [%210, %$32], [%276, %$39], [%332, %$46] ; # ->\n  br label %$7\n$6:\n  %361 = phi i64 [%8, %$2] ; # Sym\n  %362 = phi i64 [%9, %$2] ; # Val\n  %363 = phi i64 [%10, %$2] ; # Name\n  %364 = phi i64 [%11, %$2] ; # Tree\n  %365 = phi i64 [%12, %$2] ; # More\n  %366 = phi i1 [%13, %$2] ; # Rpl\n  %367 = phi i64 [%15, %$2] ; # X\n; # (intern1 Sym Val Name Tree More)\n  %368 = call i64 @isLstIntern(i64 %363, i64 %365)\n  %369 = icmp ne i64 %368, 0\n  br i1 %369, label %$49, label %$50\n$49:\n  %370 = phi i64 [%365, %$6] ; # More\n  %371 = phi i64 [%364, %$6] ; # Node\n  %372 = phi i64 [%363, %$6] ; # Name\n  %373 = phi i64 [%362, %$6] ; # Val\n  %374 = phi i64 [%361, %$6] ; # Sym\n  br label %$51\n$50:\n  %375 = phi i64 [%365, %$6] ; # More\n  %376 = phi i64 [%364, %$6] ; # Node\n  %377 = phi i64 [%363, %$6] ; # Name\n  %378 = phi i64 [%362, %$6] ; # Val\n  %379 = phi i64 [%361, %$6] ; # Sym\n  %380 = icmp ne i64 %379, 0\n  br i1 %380, label %$53, label %$52\n$52:\n  %381 = phi i64 [%375, %$50] ; # More\n  %382 = phi i64 [%376, %$50] ; # Node\n  %383 = phi i64 [%377, %$50] ; # Name\n  %384 = phi i64 [%378, %$50] ; # Val\n  %385 = phi i64 [%379, %$50] ; # Sym\n  %386 = call i64 @consSym(i64 %383, i64 %384)\n  br label %$53\n$53:\n  %387 = phi i64 [%375, %$50], [%381, %$52] ; # More\n  %388 = phi i64 [%376, %$50], [%382, %$52] ; # Node\n  %389 = phi i64 [%377, %$50], [%383, %$52] ; # Name\n  %390 = phi i64 [%378, %$50], [%384, %$52] ; # Val\n  %391 = phi i64 [%379, %$50], [%386, %$52] ; # Sym\n  %392 = call i64 @cons(i64 %391, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %393 = inttoptr i64 %388 to i64*\n  store i64 %392, i64* %393\n  br label %$51\n$51:\n  %394 = phi i64 [%370, %$49], [%387, %$53] ; # More\n  %395 = phi i64 [%371, %$49], [%388, %$53] ; # Node\n  %396 = phi i64 [%372, %$49], [%389, %$53] ; # Name\n  %397 = phi i64 [%373, %$49], [%390, %$53] ; # Val\n  %398 = phi i64 [%374, %$49], [%391, %$53] ; # Sym\n  %399 = phi i64 [%368, %$49], [%391, %$53] ; # ->\n  br label %$7\n$7:\n  %400 = phi i64 [%353, %$13], [%361, %$51] ; # Sym\n  %401 = phi i64 [%354, %$13], [%362, %$51] ; # Val\n  %402 = phi i64 [%355, %$13], [%363, %$51] ; # Name\n  %403 = phi i64 [%356, %$13], [%364, %$51] ; # Tree\n  %404 = phi i64 [%357, %$13], [%365, %$51] ; # More\n  %405 = phi i1 [%358, %$13], [%366, %$51] ; # Rpl\n  %406 = phi i64 [%359, %$13], [%367, %$51] ; # X\n  %407 = phi i64 [%360, %$13], [%399, %$51] ; # ->\n  br label %$4\n$3:\n  %408 = phi i64 [%0, %$1] ; # Sym\n  %409 = phi i64 [%1, %$1] ; # Val\n  %410 = phi i64 [%2, %$1] ; # Name\n  %411 = phi i64 [%3, %$1] ; # Tree\n  %412 = phi i64 [%4, %$1] ; # More\n  %413 = phi i1 [%5, %$1] ; # Rpl\n; # (let X (val 2 Tree) (if (pair X) (loop (let (S (car X) Nm (name (...\n; # (val 2 Tree)\n  %414 = inttoptr i64 %411 to i64*\n  %415 = getelementptr i64, i64* %414, i32 1\n  %416 = load i64, i64* %415\n; # (if (pair X) (loop (let (S (car X) Nm (name (val (tail S)))) (? (...\n; # (pair X)\n  %417 = and i64 %416, 15\n  %418 = icmp eq i64 %417, 0\n  br i1 %418, label %$54, label %$55\n$54:\n  %419 = phi i64 [%408, %$3] ; # Sym\n  %420 = phi i64 [%409, %$3] ; # Val\n  %421 = phi i64 [%410, %$3] ; # Name\n  %422 = phi i64 [%411, %$3] ; # Tree\n  %423 = phi i64 [%412, %$3] ; # More\n  %424 = phi i1 [%413, %$3] ; # Rpl\n  %425 = phi i64 [%416, %$3] ; # X\n; # (loop (let (S (car X) Nm (name (val (tail S)))) (? (=0 (cmpLong N...\n  br label %$57\n$57:\n  %426 = phi i64 [%419, %$54], [%745, %$67] ; # Sym\n  %427 = phi i64 [%420, %$54], [%746, %$67] ; # Val\n  %428 = phi i64 [%421, %$54], [%747, %$67] ; # Name\n  %429 = phi i64 [%422, %$54], [%748, %$67] ; # Tree\n  %430 = phi i64 [%423, %$54], [%749, %$67] ; # More\n  %431 = phi i1 [%424, %$54], [%750, %$67] ; # Rpl\n  %432 = phi i64 [%425, %$54], [%754, %$67] ; # X\n; # (let (S (car X) Nm (name (val (tail S)))) (? (=0 (cmpLong Nm Name...\n; # (car X)\n  %433 = inttoptr i64 %432 to i64*\n  %434 = load i64, i64* %433\n; # (tail S)\n  %435 = add i64 %434, -8\n; # (val (tail S))\n  %436 = inttoptr i64 %435 to i64*\n  %437 = load i64, i64* %436\n; # (name (val (tail S)))\n  br label %$58\n$58:\n  %438 = phi i64 [%437, %$57], [%444, %$59] ; # Tail\n  %439 = and i64 %438, 6\n  %440 = icmp ne i64 %439, 0\n  br i1 %440, label %$60, label %$59\n$59:\n  %441 = phi i64 [%438, %$58] ; # Tail\n  %442 = inttoptr i64 %441 to i64*\n  %443 = getelementptr i64, i64* %442, i32 1\n  %444 = load i64, i64* %443\n  br label %$58\n$60:\n  %445 = phi i64 [%438, %$58] ; # Tail\n; # (? (=0 (cmpLong Nm Name)) (if Rpl (set X Sym) S))\n; # (cmpLong Nm Name)\n  %446 = call i64 @cmpLong(i64 %445, i64 %428)\n; # (=0 (cmpLong Nm Name))\n  %447 = icmp eq i64 %446, 0\n  br i1 %447, label %$63, label %$61\n$63:\n  %448 = phi i64 [%426, %$60] ; # Sym\n  %449 = phi i64 [%427, %$60] ; # Val\n  %450 = phi i64 [%428, %$60] ; # Name\n  %451 = phi i64 [%429, %$60] ; # Tree\n  %452 = phi i64 [%430, %$60] ; # More\n  %453 = phi i1 [%431, %$60] ; # Rpl\n  %454 = phi i64 [%432, %$60] ; # X\n  %455 = phi i64 [%434, %$60] ; # S\n  %456 = phi i64 [%445, %$60] ; # Nm\n; # (if Rpl (set X Sym) S)\n  br i1 %453, label %$64, label %$65\n$64:\n  %457 = phi i64 [%448, %$63] ; # Sym\n  %458 = phi i64 [%449, %$63] ; # Val\n  %459 = phi i64 [%450, %$63] ; # Name\n  %460 = phi i64 [%451, %$63] ; # Tree\n  %461 = phi i64 [%452, %$63] ; # More\n  %462 = phi i1 [%453, %$63] ; # Rpl\n  %463 = phi i64 [%454, %$63] ; # X\n  %464 = phi i64 [%455, %$63] ; # S\n  %465 = phi i64 [%456, %$63] ; # Nm\n; # (set X Sym)\n  %466 = inttoptr i64 %463 to i64*\n  store i64 %457, i64* %466\n  br label %$66\n$65:\n  %467 = phi i64 [%448, %$63] ; # Sym\n  %468 = phi i64 [%449, %$63] ; # Val\n  %469 = phi i64 [%450, %$63] ; # Name\n  %470 = phi i64 [%451, %$63] ; # Tree\n  %471 = phi i64 [%452, %$63] ; # More\n  %472 = phi i1 [%453, %$63] ; # Rpl\n  %473 = phi i64 [%454, %$63] ; # X\n  %474 = phi i64 [%455, %$63] ; # S\n  %475 = phi i64 [%456, %$63] ; # Nm\n  br label %$66\n$66:\n  %476 = phi i64 [%457, %$64], [%467, %$65] ; # Sym\n  %477 = phi i64 [%458, %$64], [%468, %$65] ; # Val\n  %478 = phi i64 [%459, %$64], [%469, %$65] ; # Name\n  %479 = phi i64 [%460, %$64], [%470, %$65] ; # Tree\n  %480 = phi i64 [%461, %$64], [%471, %$65] ; # More\n  %481 = phi i1 [%462, %$64], [%472, %$65] ; # Rpl\n  %482 = phi i64 [%463, %$64], [%473, %$65] ; # X\n  %483 = phi i64 [%464, %$64], [%474, %$65] ; # S\n  %484 = phi i64 [%465, %$64], [%475, %$65] ; # Nm\n  %485 = phi i64 [%457, %$64], [%474, %$65] ; # ->\n  br label %$62\n$61:\n  %486 = phi i64 [%426, %$60] ; # Sym\n  %487 = phi i64 [%427, %$60] ; # Val\n  %488 = phi i64 [%428, %$60] ; # Name\n  %489 = phi i64 [%429, %$60] ; # Tree\n  %490 = phi i64 [%430, %$60] ; # More\n  %491 = phi i1 [%431, %$60] ; # Rpl\n  %492 = phi i64 [%432, %$60] ; # X\n  %493 = phi i64 [%434, %$60] ; # S\n  %494 = phi i64 [%445, %$60] ; # Nm\n; # (let Y (cdr X) (cond ((lt0 @) (? (atom Y) (internRight Sym Val Na...\n; # (cdr X)\n  %495 = inttoptr i64 %492 to i64*\n  %496 = getelementptr i64, i64* %495, i32 1\n  %497 = load i64, i64* %496\n; # (cond ((lt0 @) (? (atom Y) (internRight Sym Val Name X More)) (? ...\n; # (lt0 @)\n  %498 = icmp slt i64 %446, 0\n  br i1 %498, label %$69, label %$68\n$69:\n  %499 = phi i64 [%486, %$61] ; # Sym\n  %500 = phi i64 [%487, %$61] ; # Val\n  %501 = phi i64 [%488, %$61] ; # Name\n  %502 = phi i64 [%489, %$61] ; # Tree\n  %503 = phi i64 [%490, %$61] ; # More\n  %504 = phi i1 [%491, %$61] ; # Rpl\n  %505 = phi i64 [%492, %$61] ; # X\n  %506 = phi i64 [%493, %$61] ; # S\n  %507 = phi i64 [%494, %$61] ; # Nm\n  %508 = phi i64 [%497, %$61] ; # Y\n; # (? (atom Y) (internRight Sym Val Name X More))\n; # (atom Y)\n  %509 = and i64 %508, 15\n  %510 = icmp ne i64 %509, 0\n  br i1 %510, label %$71, label %$70\n$71:\n  %511 = phi i64 [%499, %$69] ; # Sym\n  %512 = phi i64 [%500, %$69] ; # Val\n  %513 = phi i64 [%501, %$69] ; # Name\n  %514 = phi i64 [%502, %$69] ; # Tree\n  %515 = phi i64 [%503, %$69] ; # More\n  %516 = phi i1 [%504, %$69] ; # Rpl\n  %517 = phi i64 [%505, %$69] ; # X\n  %518 = phi i64 [%506, %$69] ; # S\n  %519 = phi i64 [%507, %$69] ; # Nm\n  %520 = phi i64 [%508, %$69] ; # Y\n; # (internRight Sym Val Name X More)\n  %521 = call i64 @isLstIntern(i64 %513, i64 %515)\n  %522 = icmp ne i64 %521, 0\n  br i1 %522, label %$72, label %$73\n$72:\n  %523 = phi i64 [%515, %$71] ; # More\n  %524 = phi i64 [%517, %$71] ; # Node\n  %525 = phi i64 [%513, %$71] ; # Name\n  %526 = phi i64 [%512, %$71] ; # Val\n  %527 = phi i64 [%511, %$71] ; # Sym\n  br label %$74\n$73:\n  %528 = phi i64 [%515, %$71] ; # More\n  %529 = phi i64 [%517, %$71] ; # Node\n  %530 = phi i64 [%513, %$71] ; # Name\n  %531 = phi i64 [%512, %$71] ; # Val\n  %532 = phi i64 [%511, %$71] ; # Sym\n  %533 = icmp ne i64 %532, 0\n  br i1 %533, label %$76, label %$75\n$75:\n  %534 = phi i64 [%528, %$73] ; # More\n  %535 = phi i64 [%529, %$73] ; # Node\n  %536 = phi i64 [%530, %$73] ; # Name\n  %537 = phi i64 [%531, %$73] ; # Val\n  %538 = phi i64 [%532, %$73] ; # Sym\n  %539 = call i64 @consSym(i64 %536, i64 %537)\n  br label %$76\n$76:\n  %540 = phi i64 [%528, %$73], [%534, %$75] ; # More\n  %541 = phi i64 [%529, %$73], [%535, %$75] ; # Node\n  %542 = phi i64 [%530, %$73], [%536, %$75] ; # Name\n  %543 = phi i64 [%531, %$73], [%537, %$75] ; # Val\n  %544 = phi i64 [%532, %$73], [%539, %$75] ; # Sym\n  %545 = call i64 @cons(i64 %544, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %546 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %545)\n  %547 = inttoptr i64 %541 to i64*\n  %548 = getelementptr i64, i64* %547, i32 1\n  store i64 %546, i64* %548\n  br label %$74\n$74:\n  %549 = phi i64 [%523, %$72], [%540, %$76] ; # More\n  %550 = phi i64 [%524, %$72], [%541, %$76] ; # Node\n  %551 = phi i64 [%525, %$72], [%542, %$76] ; # Name\n  %552 = phi i64 [%526, %$72], [%543, %$76] ; # Val\n  %553 = phi i64 [%527, %$72], [%544, %$76] ; # Sym\n  %554 = phi i64 [%521, %$72], [%544, %$76] ; # ->\n  br label %$62\n$70:\n  %555 = phi i64 [%499, %$69] ; # Sym\n  %556 = phi i64 [%500, %$69] ; # Val\n  %557 = phi i64 [%501, %$69] ; # Name\n  %558 = phi i64 [%502, %$69] ; # Tree\n  %559 = phi i64 [%503, %$69] ; # More\n  %560 = phi i1 [%504, %$69] ; # Rpl\n  %561 = phi i64 [%505, %$69] ; # X\n  %562 = phi i64 [%506, %$69] ; # S\n  %563 = phi i64 [%507, %$69] ; # Nm\n  %564 = phi i64 [%508, %$69] ; # Y\n; # (? (atom (setq Y (cdr (setq X Y)))) (intern2 Sym Val Name X More)...\n; # (cdr (setq X Y))\n  %565 = inttoptr i64 %564 to i64*\n  %566 = getelementptr i64, i64* %565, i32 1\n  %567 = load i64, i64* %566\n; # (atom (setq Y (cdr (setq X Y))))\n  %568 = and i64 %567, 15\n  %569 = icmp ne i64 %568, 0\n  br i1 %569, label %$78, label %$77\n$78:\n  %570 = phi i64 [%555, %$70] ; # Sym\n  %571 = phi i64 [%556, %$70] ; # Val\n  %572 = phi i64 [%557, %$70] ; # Name\n  %573 = phi i64 [%558, %$70] ; # Tree\n  %574 = phi i64 [%559, %$70] ; # More\n  %575 = phi i1 [%560, %$70] ; # Rpl\n  %576 = phi i64 [%564, %$70] ; # X\n  %577 = phi i64 [%562, %$70] ; # S\n  %578 = phi i64 [%563, %$70] ; # Nm\n  %579 = phi i64 [%567, %$70] ; # Y\n; # (intern2 Sym Val Name X More)\n  %580 = call i64 @isLstIntern(i64 %572, i64 %574)\n  %581 = icmp ne i64 %580, 0\n  br i1 %581, label %$79, label %$80\n$79:\n  %582 = phi i64 [%574, %$78] ; # More\n  %583 = phi i64 [%576, %$78] ; # Node\n  %584 = phi i64 [%572, %$78] ; # Name\n  %585 = phi i64 [%571, %$78] ; # Val\n  %586 = phi i64 [%570, %$78] ; # Sym\n  br label %$81\n$80:\n  %587 = phi i64 [%574, %$78] ; # More\n  %588 = phi i64 [%576, %$78] ; # Node\n  %589 = phi i64 [%572, %$78] ; # Name\n  %590 = phi i64 [%571, %$78] ; # Val\n  %591 = phi i64 [%570, %$78] ; # Sym\n  %592 = icmp ne i64 %591, 0\n  br i1 %592, label %$83, label %$82\n$82:\n  %593 = phi i64 [%587, %$80] ; # More\n  %594 = phi i64 [%588, %$80] ; # Node\n  %595 = phi i64 [%589, %$80] ; # Name\n  %596 = phi i64 [%590, %$80] ; # Val\n  %597 = phi i64 [%591, %$80] ; # Sym\n  %598 = call i64 @consSym(i64 %595, i64 %596)\n  br label %$83\n$83:\n  %599 = phi i64 [%587, %$80], [%593, %$82] ; # More\n  %600 = phi i64 [%588, %$80], [%594, %$82] ; # Node\n  %601 = phi i64 [%589, %$80], [%595, %$82] ; # Name\n  %602 = phi i64 [%590, %$80], [%596, %$82] ; # Val\n  %603 = phi i64 [%591, %$80], [%598, %$82] ; # Sym\n  %604 = call i64 @cons(i64 %603, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %605 = inttoptr i64 %600 to i64*\n  %606 = getelementptr i64, i64* %605, i32 1\n  store i64 %604, i64* %606\n  br label %$81\n$81:\n  %607 = phi i64 [%582, %$79], [%599, %$83] ; # More\n  %608 = phi i64 [%583, %$79], [%600, %$83] ; # Node\n  %609 = phi i64 [%584, %$79], [%601, %$83] ; # Name\n  %610 = phi i64 [%585, %$79], [%602, %$83] ; # Val\n  %611 = phi i64 [%586, %$79], [%603, %$83] ; # Sym\n  %612 = phi i64 [%580, %$79], [%603, %$83] ; # ->\n  br label %$62\n$77:\n  %613 = phi i64 [%555, %$70] ; # Sym\n  %614 = phi i64 [%556, %$70] ; # Val\n  %615 = phi i64 [%557, %$70] ; # Name\n  %616 = phi i64 [%558, %$70] ; # Tree\n  %617 = phi i64 [%559, %$70] ; # More\n  %618 = phi i1 [%560, %$70] ; # Rpl\n  %619 = phi i64 [%564, %$70] ; # X\n  %620 = phi i64 [%562, %$70] ; # S\n  %621 = phi i64 [%563, %$70] ; # Nm\n  %622 = phi i64 [%567, %$70] ; # Y\n  br label %$67\n$68:\n  %623 = phi i64 [%486, %$61] ; # Sym\n  %624 = phi i64 [%487, %$61] ; # Val\n  %625 = phi i64 [%488, %$61] ; # Name\n  %626 = phi i64 [%489, %$61] ; # Tree\n  %627 = phi i64 [%490, %$61] ; # More\n  %628 = phi i1 [%491, %$61] ; # Rpl\n  %629 = phi i64 [%492, %$61] ; # X\n  %630 = phi i64 [%493, %$61] ; # S\n  %631 = phi i64 [%494, %$61] ; # Nm\n  %632 = phi i64 [%497, %$61] ; # Y\n; # (? (atom Y) (internLeft Sym Val Name X More))\n; # (atom Y)\n  %633 = and i64 %632, 15\n  %634 = icmp ne i64 %633, 0\n  br i1 %634, label %$85, label %$84\n$85:\n  %635 = phi i64 [%623, %$68] ; # Sym\n  %636 = phi i64 [%624, %$68] ; # Val\n  %637 = phi i64 [%625, %$68] ; # Name\n  %638 = phi i64 [%626, %$68] ; # Tree\n  %639 = phi i64 [%627, %$68] ; # More\n  %640 = phi i1 [%628, %$68] ; # Rpl\n  %641 = phi i64 [%629, %$68] ; # X\n  %642 = phi i64 [%630, %$68] ; # S\n  %643 = phi i64 [%631, %$68] ; # Nm\n  %644 = phi i64 [%632, %$68] ; # Y\n; # (internLeft Sym Val Name X More)\n  %645 = call i64 @isLstIntern(i64 %637, i64 %639)\n  %646 = icmp ne i64 %645, 0\n  br i1 %646, label %$86, label %$87\n$86:\n  %647 = phi i64 [%639, %$85] ; # More\n  %648 = phi i64 [%641, %$85] ; # Node\n  %649 = phi i64 [%637, %$85] ; # Name\n  %650 = phi i64 [%636, %$85] ; # Val\n  %651 = phi i64 [%635, %$85] ; # Sym\n  br label %$88\n$87:\n  %652 = phi i64 [%639, %$85] ; # More\n  %653 = phi i64 [%641, %$85] ; # Node\n  %654 = phi i64 [%637, %$85] ; # Name\n  %655 = phi i64 [%636, %$85] ; # Val\n  %656 = phi i64 [%635, %$85] ; # Sym\n  %657 = icmp ne i64 %656, 0\n  br i1 %657, label %$90, label %$89\n$89:\n  %658 = phi i64 [%652, %$87] ; # More\n  %659 = phi i64 [%653, %$87] ; # Node\n  %660 = phi i64 [%654, %$87] ; # Name\n  %661 = phi i64 [%655, %$87] ; # Val\n  %662 = phi i64 [%656, %$87] ; # Sym\n  %663 = call i64 @consSym(i64 %660, i64 %661)\n  br label %$90\n$90:\n  %664 = phi i64 [%652, %$87], [%658, %$89] ; # More\n  %665 = phi i64 [%653, %$87], [%659, %$89] ; # Node\n  %666 = phi i64 [%654, %$87], [%660, %$89] ; # Name\n  %667 = phi i64 [%655, %$87], [%661, %$89] ; # Val\n  %668 = phi i64 [%656, %$87], [%663, %$89] ; # Sym\n  %669 = call i64 @cons(i64 %668, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %670 = call i64 @cons(i64 %669, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %671 = inttoptr i64 %665 to i64*\n  %672 = getelementptr i64, i64* %671, i32 1\n  store i64 %670, i64* %672\n  br label %$88\n$88:\n  %673 = phi i64 [%647, %$86], [%664, %$90] ; # More\n  %674 = phi i64 [%648, %$86], [%665, %$90] ; # Node\n  %675 = phi i64 [%649, %$86], [%666, %$90] ; # Name\n  %676 = phi i64 [%650, %$86], [%667, %$90] ; # Val\n  %677 = phi i64 [%651, %$86], [%668, %$90] ; # Sym\n  %678 = phi i64 [%645, %$86], [%668, %$90] ; # ->\n  br label %$62\n$84:\n  %679 = phi i64 [%623, %$68] ; # Sym\n  %680 = phi i64 [%624, %$68] ; # Val\n  %681 = phi i64 [%625, %$68] ; # Name\n  %682 = phi i64 [%626, %$68] ; # Tree\n  %683 = phi i64 [%627, %$68] ; # More\n  %684 = phi i1 [%628, %$68] ; # Rpl\n  %685 = phi i64 [%629, %$68] ; # X\n  %686 = phi i64 [%630, %$68] ; # S\n  %687 = phi i64 [%631, %$68] ; # Nm\n  %688 = phi i64 [%632, %$68] ; # Y\n; # (? (atom (setq Y (car (setq X Y)))) (intern1 Sym Val Name X More)...\n; # (car (setq X Y))\n  %689 = inttoptr i64 %688 to i64*\n  %690 = load i64, i64* %689\n; # (atom (setq Y (car (setq X Y))))\n  %691 = and i64 %690, 15\n  %692 = icmp ne i64 %691, 0\n  br i1 %692, label %$92, label %$91\n$92:\n  %693 = phi i64 [%679, %$84] ; # Sym\n  %694 = phi i64 [%680, %$84] ; # Val\n  %695 = phi i64 [%681, %$84] ; # Name\n  %696 = phi i64 [%682, %$84] ; # Tree\n  %697 = phi i64 [%683, %$84] ; # More\n  %698 = phi i1 [%684, %$84] ; # Rpl\n  %699 = phi i64 [%688, %$84] ; # X\n  %700 = phi i64 [%686, %$84] ; # S\n  %701 = phi i64 [%687, %$84] ; # Nm\n  %702 = phi i64 [%690, %$84] ; # Y\n; # (intern1 Sym Val Name X More)\n  %703 = call i64 @isLstIntern(i64 %695, i64 %697)\n  %704 = icmp ne i64 %703, 0\n  br i1 %704, label %$93, label %$94\n$93:\n  %705 = phi i64 [%697, %$92] ; # More\n  %706 = phi i64 [%699, %$92] ; # Node\n  %707 = phi i64 [%695, %$92] ; # Name\n  %708 = phi i64 [%694, %$92] ; # Val\n  %709 = phi i64 [%693, %$92] ; # Sym\n  br label %$95\n$94:\n  %710 = phi i64 [%697, %$92] ; # More\n  %711 = phi i64 [%699, %$92] ; # Node\n  %712 = phi i64 [%695, %$92] ; # Name\n  %713 = phi i64 [%694, %$92] ; # Val\n  %714 = phi i64 [%693, %$92] ; # Sym\n  %715 = icmp ne i64 %714, 0\n  br i1 %715, label %$97, label %$96\n$96:\n  %716 = phi i64 [%710, %$94] ; # More\n  %717 = phi i64 [%711, %$94] ; # Node\n  %718 = phi i64 [%712, %$94] ; # Name\n  %719 = phi i64 [%713, %$94] ; # Val\n  %720 = phi i64 [%714, %$94] ; # Sym\n  %721 = call i64 @consSym(i64 %718, i64 %719)\n  br label %$97\n$97:\n  %722 = phi i64 [%710, %$94], [%716, %$96] ; # More\n  %723 = phi i64 [%711, %$94], [%717, %$96] ; # Node\n  %724 = phi i64 [%712, %$94], [%718, %$96] ; # Name\n  %725 = phi i64 [%713, %$94], [%719, %$96] ; # Val\n  %726 = phi i64 [%714, %$94], [%721, %$96] ; # Sym\n  %727 = call i64 @cons(i64 %726, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %728 = inttoptr i64 %723 to i64*\n  store i64 %727, i64* %728\n  br label %$95\n$95:\n  %729 = phi i64 [%705, %$93], [%722, %$97] ; # More\n  %730 = phi i64 [%706, %$93], [%723, %$97] ; # Node\n  %731 = phi i64 [%707, %$93], [%724, %$97] ; # Name\n  %732 = phi i64 [%708, %$93], [%725, %$97] ; # Val\n  %733 = phi i64 [%709, %$93], [%726, %$97] ; # Sym\n  %734 = phi i64 [%703, %$93], [%726, %$97] ; # ->\n  br label %$62\n$91:\n  %735 = phi i64 [%679, %$84] ; # Sym\n  %736 = phi i64 [%680, %$84] ; # Val\n  %737 = phi i64 [%681, %$84] ; # Name\n  %738 = phi i64 [%682, %$84] ; # Tree\n  %739 = phi i64 [%683, %$84] ; # More\n  %740 = phi i1 [%684, %$84] ; # Rpl\n  %741 = phi i64 [%688, %$84] ; # X\n  %742 = phi i64 [%686, %$84] ; # S\n  %743 = phi i64 [%687, %$84] ; # Nm\n  %744 = phi i64 [%690, %$84] ; # Y\n  br label %$67\n$67:\n  %745 = phi i64 [%613, %$77], [%735, %$91] ; # Sym\n  %746 = phi i64 [%614, %$77], [%736, %$91] ; # Val\n  %747 = phi i64 [%615, %$77], [%737, %$91] ; # Name\n  %748 = phi i64 [%616, %$77], [%738, %$91] ; # Tree\n  %749 = phi i64 [%617, %$77], [%739, %$91] ; # More\n  %750 = phi i1 [%618, %$77], [%740, %$91] ; # Rpl\n  %751 = phi i64 [%619, %$77], [%741, %$91] ; # X\n  %752 = phi i64 [%620, %$77], [%742, %$91] ; # S\n  %753 = phi i64 [%621, %$77], [%743, %$91] ; # Nm\n  %754 = phi i64 [%622, %$77], [%744, %$91] ; # Y\n  br label %$57\n$62:\n  %755 = phi i64 [%476, %$66], [%511, %$74], [%570, %$81], [%635, %$88], [%693, %$95] ; # Sym\n  %756 = phi i64 [%477, %$66], [%512, %$74], [%571, %$81], [%636, %$88], [%694, %$95] ; # Val\n  %757 = phi i64 [%478, %$66], [%513, %$74], [%572, %$81], [%637, %$88], [%695, %$95] ; # Name\n  %758 = phi i64 [%479, %$66], [%514, %$74], [%573, %$81], [%638, %$88], [%696, %$95] ; # Tree\n  %759 = phi i64 [%480, %$66], [%515, %$74], [%574, %$81], [%639, %$88], [%697, %$95] ; # More\n  %760 = phi i1 [%481, %$66], [%516, %$74], [%575, %$81], [%640, %$88], [%698, %$95] ; # Rpl\n  %761 = phi i64 [%482, %$66], [%517, %$74], [%576, %$81], [%641, %$88], [%699, %$95] ; # X\n  %762 = phi i64 [%485, %$66], [%554, %$74], [%612, %$81], [%678, %$88], [%734, %$95] ; # ->\n  br label %$56\n$55:\n  %763 = phi i64 [%408, %$3] ; # Sym\n  %764 = phi i64 [%409, %$3] ; # Val\n  %765 = phi i64 [%410, %$3] ; # Name\n  %766 = phi i64 [%411, %$3] ; # Tree\n  %767 = phi i64 [%412, %$3] ; # More\n  %768 = phi i1 [%413, %$3] ; # Rpl\n  %769 = phi i64 [%416, %$3] ; # X\n; # (intern2 Sym Val Name Tree More)\n  %770 = call i64 @isLstIntern(i64 %765, i64 %767)\n  %771 = icmp ne i64 %770, 0\n  br i1 %771, label %$98, label %$99\n$98:\n  %772 = phi i64 [%767, %$55] ; # More\n  %773 = phi i64 [%766, %$55] ; # Node\n  %774 = phi i64 [%765, %$55] ; # Name\n  %775 = phi i64 [%764, %$55] ; # Val\n  %776 = phi i64 [%763, %$55] ; # Sym\n  br label %$100\n$99:\n  %777 = phi i64 [%767, %$55] ; # More\n  %778 = phi i64 [%766, %$55] ; # Node\n  %779 = phi i64 [%765, %$55] ; # Name\n  %780 = phi i64 [%764, %$55] ; # Val\n  %781 = phi i64 [%763, %$55] ; # Sym\n  %782 = icmp ne i64 %781, 0\n  br i1 %782, label %$102, label %$101\n$101:\n  %783 = phi i64 [%777, %$99] ; # More\n  %784 = phi i64 [%778, %$99] ; # Node\n  %785 = phi i64 [%779, %$99] ; # Name\n  %786 = phi i64 [%780, %$99] ; # Val\n  %787 = phi i64 [%781, %$99] ; # Sym\n  %788 = call i64 @consSym(i64 %785, i64 %786)\n  br label %$102\n$102:\n  %789 = phi i64 [%777, %$99], [%783, %$101] ; # More\n  %790 = phi i64 [%778, %$99], [%784, %$101] ; # Node\n  %791 = phi i64 [%779, %$99], [%785, %$101] ; # Name\n  %792 = phi i64 [%780, %$99], [%786, %$101] ; # Val\n  %793 = phi i64 [%781, %$99], [%788, %$101] ; # Sym\n  %794 = call i64 @cons(i64 %793, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %795 = inttoptr i64 %790 to i64*\n  %796 = getelementptr i64, i64* %795, i32 1\n  store i64 %794, i64* %796\n  br label %$100\n$100:\n  %797 = phi i64 [%772, %$98], [%789, %$102] ; # More\n  %798 = phi i64 [%773, %$98], [%790, %$102] ; # Node\n  %799 = phi i64 [%774, %$98], [%791, %$102] ; # Name\n  %800 = phi i64 [%775, %$98], [%792, %$102] ; # Val\n  %801 = phi i64 [%776, %$98], [%793, %$102] ; # Sym\n  %802 = phi i64 [%770, %$98], [%793, %$102] ; # ->\n  br label %$56\n$56:\n  %803 = phi i64 [%755, %$62], [%763, %$100] ; # Sym\n  %804 = phi i64 [%756, %$62], [%764, %$100] ; # Val\n  %805 = phi i64 [%757, %$62], [%765, %$100] ; # Name\n  %806 = phi i64 [%758, %$62], [%766, %$100] ; # Tree\n  %807 = phi i64 [%759, %$62], [%767, %$100] ; # More\n  %808 = phi i1 [%760, %$62], [%768, %$100] ; # Rpl\n  %809 = phi i64 [%761, %$62], [%769, %$100] ; # X\n  %810 = phi i64 [%762, %$62], [%802, %$100] ; # ->\n  br label %$4\n$4:\n  %811 = phi i64 [%400, %$7], [%803, %$56] ; # Sym\n  %812 = phi i64 [%401, %$7], [%804, %$56] ; # Val\n  %813 = phi i64 [%402, %$7], [%805, %$56] ; # Name\n  %814 = phi i64 [%403, %$7], [%806, %$56] ; # Tree\n  %815 = phi i64 [%404, %$7], [%807, %$56] ; # More\n  %816 = phi i1 [%405, %$7], [%808, %$56] ; # Rpl\n  %817 = phi i64 [%407, %$7], [%810, %$56] ; # ->\n  ret i64 %817\n}\n\ndefine i64 @requestSym(i64) align 8 {\n$1:\n; # (if (isIntern Name $PrivT) @ (let L (val $Intern) (intern 0 $Nil ...\n; # (isIntern Name $PrivT)\n  %1 = call i64 @isIntern(i64 %0, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64))\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Name\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # Name\n; # (let L (val $Intern) (intern 0 $Nil Name (cdar (car L)) (cdr L) N...\n; # (val $Intern)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n; # (car L)\n  %7 = inttoptr i64 %6 to i64*\n  %8 = load i64, i64* %7\n; # (cdar (car L))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n  %11 = inttoptr i64 %10 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n; # (cdr L)\n  %14 = inttoptr i64 %6 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n; # (intern 0 $Nil Name (cdar (car L)) (cdr L) NO)\n  %17 = call i64 @intern(i64 0, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %4, i64 %13, i64 %16, i1 0)\n  br label %$4\n$4:\n  %18 = phi i64 [%3, %$2], [%4, %$3] ; # Name\n  %19 = phi i64 [%1, %$2], [%17, %$3] ; # ->\n  ret i64 %19\n}\n\ndefine i64 @extern(i64) align 8 {\n$1:\n; # (need3)\n  call void @need3()\n; # (let (X (val $Extern) C 0 Sym T) (loop (inc 'C) (setq Sym (car X)...\n; # (val $Extern)\n  %1 = load i64, i64* @$Extern\n; # (loop (inc 'C) (setq Sym (car X)) (let Nm (& (name (& (val (tail ...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%121, %$8] ; # Name\n  %3 = phi i64 [%1, %$1], [%126, %$8] ; # X\n  %4 = phi i64 [0, %$1], [%123, %$8] ; # C\n; # (inc 'C)\n  %5 = add i64 %4, 1\n; # (car X)\n  %6 = inttoptr i64 %3 to i64*\n  %7 = load i64, i64* %6\n; # (let Nm (& (name (& (val (tail Sym)) -9)) (hex \"3FFFFFFFFFFFFFF7\"...\n; # (tail Sym)\n  %8 = add i64 %7, -8\n; # (val (tail Sym))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (& (val (tail Sym)) -9)\n  %11 = and i64 %10, -9\n; # (name (& (val (tail Sym)) -9))\n  br label %$3\n$3:\n  %12 = phi i64 [%11, %$2], [%18, %$4] ; # Tail\n  %13 = and i64 %12, 6\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$5, label %$4\n$4:\n  %15 = phi i64 [%12, %$3] ; # Tail\n  %16 = inttoptr i64 %15 to i64*\n  %17 = getelementptr i64, i64* %16, i32 1\n  %18 = load i64, i64* %17\n  br label %$3\n$5:\n  %19 = phi i64 [%12, %$3] ; # Tail\n; # (& (name (& (val (tail Sym)) -9)) (hex \"3FFFFFFFFFFFFFF7\"))\n  %20 = and i64 %19, 4611686018427387895\n; # (? (== Nm Name))\n; # (== Nm Name)\n  %21 = icmp eq i64 %20, %2\n  br i1 %21, label %$7, label %$6\n$6:\n  %22 = phi i64 [%2, %$5] ; # Name\n  %23 = phi i64 [%3, %$5] ; # X\n  %24 = phi i64 [%5, %$5] ; # C\n  %25 = phi i64 [%7, %$5] ; # Sym\n  %26 = phi i64 [%20, %$5] ; # Nm\n; # (let Y (cdr X) (cond ((> Name Nm) (? (atom Y) (set 2 X (cons $Nil...\n; # (cdr X)\n  %27 = inttoptr i64 %23 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (cond ((> Name Nm) (? (atom Y) (set 2 X (cons $Nil (cons (setq Sy...\n; # (> Name Nm)\n  %30 = icmp ugt i64 %22, %26\n  br i1 %30, label %$10, label %$9\n$10:\n  %31 = phi i64 [%22, %$6] ; # Name\n  %32 = phi i64 [%23, %$6] ; # X\n  %33 = phi i64 [%24, %$6] ; # C\n  %34 = phi i64 [%25, %$6] ; # Sym\n  %35 = phi i64 [%26, %$6] ; # Nm\n  %36 = phi i64 [%29, %$6] ; # Y\n; # (? (atom Y) (set 2 X (cons $Nil (cons (setq Sym (consExt Name)) $...\n; # (atom Y)\n  %37 = and i64 %36, 15\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$12, label %$11\n$12:\n  %39 = phi i64 [%31, %$10] ; # Name\n  %40 = phi i64 [%32, %$10] ; # X\n  %41 = phi i64 [%33, %$10] ; # C\n  %42 = phi i64 [%34, %$10] ; # Sym\n  %43 = phi i64 [%35, %$10] ; # Nm\n  %44 = phi i64 [%36, %$10] ; # Y\n; # (set 2 X (cons $Nil (cons (setq Sym (consExt Name)) $Nil)))\n; # (consExt Name)\n  %45 = call i64 @consExt(i64 %39)\n; # (cons (setq Sym (consExt Name)) $Nil)\n  %46 = call i64 @cons(i64 %45, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons $Nil (cons (setq Sym (consExt Name)) $Nil))\n  %47 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %46)\n  %48 = inttoptr i64 %40 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  store i64 %47, i64* %49\n  br label %$7\n$11:\n  %50 = phi i64 [%31, %$10] ; # Name\n  %51 = phi i64 [%32, %$10] ; # X\n  %52 = phi i64 [%33, %$10] ; # C\n  %53 = phi i64 [%34, %$10] ; # Sym\n  %54 = phi i64 [%35, %$10] ; # Nm\n  %55 = phi i64 [%36, %$10] ; # Y\n; # (? (atom (setq Y (cdr (setq X Y)))) (set 2 X (cons (setq Sym (con...\n; # (cdr (setq X Y))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = getelementptr i64, i64* %56, i32 1\n  %58 = load i64, i64* %57\n; # (atom (setq Y (cdr (setq X Y))))\n  %59 = and i64 %58, 15\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$14, label %$13\n$14:\n  %61 = phi i64 [%50, %$11] ; # Name\n  %62 = phi i64 [%55, %$11] ; # X\n  %63 = phi i64 [%52, %$11] ; # C\n  %64 = phi i64 [%53, %$11] ; # Sym\n  %65 = phi i64 [%54, %$11] ; # Nm\n  %66 = phi i64 [%58, %$11] ; # Y\n; # (set 2 X (cons (setq Sym (consExt Name)) $Nil))\n; # (consExt Name)\n  %67 = call i64 @consExt(i64 %61)\n; # (cons (setq Sym (consExt Name)) $Nil)\n  %68 = call i64 @cons(i64 %67, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %69 = inttoptr i64 %62 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  store i64 %68, i64* %70\n  br label %$7\n$13:\n  %71 = phi i64 [%50, %$11] ; # Name\n  %72 = phi i64 [%55, %$11] ; # X\n  %73 = phi i64 [%52, %$11] ; # C\n  %74 = phi i64 [%53, %$11] ; # Sym\n  %75 = phi i64 [%54, %$11] ; # Nm\n  %76 = phi i64 [%58, %$11] ; # Y\n  br label %$8\n$9:\n  %77 = phi i64 [%22, %$6] ; # Name\n  %78 = phi i64 [%23, %$6] ; # X\n  %79 = phi i64 [%24, %$6] ; # C\n  %80 = phi i64 [%25, %$6] ; # Sym\n  %81 = phi i64 [%26, %$6] ; # Nm\n  %82 = phi i64 [%29, %$6] ; # Y\n; # (? (atom Y) (set 2 X (cons (cons (setq Sym (consExt Name)) $Nil) ...\n; # (atom Y)\n  %83 = and i64 %82, 15\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$16, label %$15\n$16:\n  %85 = phi i64 [%77, %$9] ; # Name\n  %86 = phi i64 [%78, %$9] ; # X\n  %87 = phi i64 [%79, %$9] ; # C\n  %88 = phi i64 [%80, %$9] ; # Sym\n  %89 = phi i64 [%81, %$9] ; # Nm\n  %90 = phi i64 [%82, %$9] ; # Y\n; # (set 2 X (cons (cons (setq Sym (consExt Name)) $Nil) $Nil))\n; # (consExt Name)\n  %91 = call i64 @consExt(i64 %85)\n; # (cons (setq Sym (consExt Name)) $Nil)\n  %92 = call i64 @cons(i64 %91, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (cons (setq Sym (consExt Name)) $Nil) $Nil)\n  %93 = call i64 @cons(i64 %92, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %94 = inttoptr i64 %86 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  store i64 %93, i64* %95\n  br label %$7\n$15:\n  %96 = phi i64 [%77, %$9] ; # Name\n  %97 = phi i64 [%78, %$9] ; # X\n  %98 = phi i64 [%79, %$9] ; # C\n  %99 = phi i64 [%80, %$9] ; # Sym\n  %100 = phi i64 [%81, %$9] ; # Nm\n  %101 = phi i64 [%82, %$9] ; # Y\n; # (? (atom (setq Y (car (setq X Y)))) (set X (cons (setq Sym (consE...\n; # (car (setq X Y))\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n; # (atom (setq Y (car (setq X Y))))\n  %104 = and i64 %103, 15\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$18, label %$17\n$18:\n  %106 = phi i64 [%96, %$15] ; # Name\n  %107 = phi i64 [%101, %$15] ; # X\n  %108 = phi i64 [%98, %$15] ; # C\n  %109 = phi i64 [%99, %$15] ; # Sym\n  %110 = phi i64 [%100, %$15] ; # Nm\n  %111 = phi i64 [%103, %$15] ; # Y\n; # (set X (cons (setq Sym (consExt Name)) $Nil))\n; # (consExt Name)\n  %112 = call i64 @consExt(i64 %106)\n; # (cons (setq Sym (consExt Name)) $Nil)\n  %113 = call i64 @cons(i64 %112, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %114 = inttoptr i64 %107 to i64*\n  store i64 %113, i64* %114\n  br label %$7\n$17:\n  %115 = phi i64 [%96, %$15] ; # Name\n  %116 = phi i64 [%101, %$15] ; # X\n  %117 = phi i64 [%98, %$15] ; # C\n  %118 = phi i64 [%99, %$15] ; # Sym\n  %119 = phi i64 [%100, %$15] ; # Nm\n  %120 = phi i64 [%103, %$15] ; # Y\n  br label %$8\n$8:\n  %121 = phi i64 [%71, %$13], [%115, %$17] ; # Name\n  %122 = phi i64 [%72, %$13], [%116, %$17] ; # X\n  %123 = phi i64 [%73, %$13], [%117, %$17] ; # C\n  %124 = phi i64 [%74, %$13], [%118, %$17] ; # Sym\n  %125 = phi i64 [%75, %$13], [%119, %$17] ; # Nm\n  %126 = phi i64 [%76, %$13], [%120, %$17] ; # Y\n  br label %$2\n$7:\n  %127 = phi i64 [%2, %$5], [%39, %$12], [%61, %$14], [%85, %$16], [%106, %$18] ; # Name\n  %128 = phi i64 [%3, %$5], [%40, %$12], [%62, %$14], [%86, %$16], [%107, %$18] ; # X\n  %129 = phi i64 [%5, %$5], [%41, %$12], [%63, %$14], [%87, %$16], [%108, %$18] ; # C\n  %130 = phi i64 [%7, %$5], [%45, %$12], [%67, %$14], [%91, %$16], [%112, %$18] ; # Sym\n  %131 = phi i64 [0, %$5], [%47, %$12], [%68, %$14], [%93, %$16], [%113, %$18] ; # ->\n; # (shr C 1)\n  %132 = lshr i64 %129, 1\n; # (when (> (shl 1 C) (val $ExtCnt)) (setq X (val $Extern)) (let N (...\n; # (shl 1 C)\n  %133 = shl i64 1, %132\n; # (val $ExtCnt)\n  %134 = load i64, i64* @$ExtCnt\n; # (> (shl 1 C) (val $ExtCnt))\n  %135 = icmp ugt i64 %133, %134\n  br i1 %135, label %$19, label %$20\n$19:\n  %136 = phi i64 [%127, %$7] ; # Name\n  %137 = phi i64 [%128, %$7] ; # X\n  %138 = phi i64 [%132, %$7] ; # C\n  %139 = phi i64 [%130, %$7] ; # Sym\n; # (val $Extern)\n  %140 = load i64, i64* @$Extern\n; # (let N (val $ExtSkip) (if (> (inc 'N) C) (set $ExtSkip 0) (set $E...\n; # (val $ExtSkip)\n  %141 = load i64, i64* @$ExtSkip\n; # (if (> (inc 'N) C) (set $ExtSkip 0) (set $ExtSkip N) (loop (setq ...\n; # (inc 'N)\n  %142 = add i64 %141, 1\n; # (> (inc 'N) C)\n  %143 = icmp ugt i64 %142, %138\n  br i1 %143, label %$21, label %$22\n$21:\n  %144 = phi i64 [%136, %$19] ; # Name\n  %145 = phi i64 [%140, %$19] ; # X\n  %146 = phi i64 [%138, %$19] ; # C\n  %147 = phi i64 [%139, %$19] ; # Sym\n  %148 = phi i64 [%142, %$19] ; # N\n; # (set $ExtSkip 0)\n  store i64 0, i64* @$ExtSkip\n  br label %$23\n$22:\n  %149 = phi i64 [%136, %$19] ; # Name\n  %150 = phi i64 [%140, %$19] ; # X\n  %151 = phi i64 [%138, %$19] ; # C\n  %152 = phi i64 [%139, %$19] ; # Sym\n  %153 = phi i64 [%142, %$19] ; # N\n; # (set $ExtSkip N)\n  store i64 %153, i64* @$ExtSkip\n; # (loop (setq X (if (> Name (& (name (& (val (tail (++ X))) -9)) (h...\n  br label %$24\n$24:\n  %154 = phi i64 [%149, %$22], [%200, %$31] ; # Name\n  %155 = phi i64 [%150, %$22], [%201, %$31] ; # X\n  %156 = phi i64 [%151, %$22], [%202, %$31] ; # C\n  %157 = phi i64 [%152, %$22], [%203, %$31] ; # Sym\n  %158 = phi i64 [%153, %$22], [%204, %$31] ; # N\n; # (if (> Name (& (name (& (val (tail (++ X))) -9)) (hex \"3FFFFFFFFF...\n; # (++ X)\n  %159 = inttoptr i64 %155 to i64*\n  %160 = getelementptr i64, i64* %159, i32 1\n  %161 = load i64, i64* %160\n  %162 = load i64, i64* %159\n; # (tail (++ X))\n  %163 = add i64 %162, -8\n; # (val (tail (++ X)))\n  %164 = inttoptr i64 %163 to i64*\n  %165 = load i64, i64* %164\n; # (& (val (tail (++ X))) -9)\n  %166 = and i64 %165, -9\n; # (name (& (val (tail (++ X))) -9))\n  br label %$25\n$25:\n  %167 = phi i64 [%166, %$24], [%173, %$26] ; # Tail\n  %168 = and i64 %167, 6\n  %169 = icmp ne i64 %168, 0\n  br i1 %169, label %$27, label %$26\n$26:\n  %170 = phi i64 [%167, %$25] ; # Tail\n  %171 = inttoptr i64 %170 to i64*\n  %172 = getelementptr i64, i64* %171, i32 1\n  %173 = load i64, i64* %172\n  br label %$25\n$27:\n  %174 = phi i64 [%167, %$25] ; # Tail\n; # (& (name (& (val (tail (++ X))) -9)) (hex \"3FFFFFFFFFFFFFF7\"))\n  %175 = and i64 %174, 4611686018427387895\n; # (> Name (& (name (& (val (tail (++ X))) -9)) (hex \"3FFFFFFFFFFFFF...\n  %176 = icmp ugt i64 %154, %175\n  br i1 %176, label %$28, label %$29\n$28:\n  %177 = phi i64 [%154, %$27] ; # Name\n  %178 = phi i64 [%161, %$27] ; # X\n  %179 = phi i64 [%156, %$27] ; # C\n  %180 = phi i64 [%157, %$27] ; # Sym\n  %181 = phi i64 [%158, %$27] ; # N\n; # (cdr X)\n  %182 = inttoptr i64 %178 to i64*\n  %183 = getelementptr i64, i64* %182, i32 1\n  %184 = load i64, i64* %183\n  br label %$30\n$29:\n  %185 = phi i64 [%154, %$27] ; # Name\n  %186 = phi i64 [%161, %$27] ; # X\n  %187 = phi i64 [%156, %$27] ; # C\n  %188 = phi i64 [%157, %$27] ; # Sym\n  %189 = phi i64 [%158, %$27] ; # N\n; # (car X)\n  %190 = inttoptr i64 %186 to i64*\n  %191 = load i64, i64* %190\n  br label %$30\n$30:\n  %192 = phi i64 [%177, %$28], [%185, %$29] ; # Name\n  %193 = phi i64 [%178, %$28], [%186, %$29] ; # X\n  %194 = phi i64 [%179, %$28], [%187, %$29] ; # C\n  %195 = phi i64 [%180, %$28], [%188, %$29] ; # Sym\n  %196 = phi i64 [%181, %$28], [%189, %$29] ; # N\n  %197 = phi i64 [%184, %$28], [%191, %$29] ; # ->\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %198 = sub i64 %194, 1\n; # (=0 (dec 'C))\n  %199 = icmp eq i64 %198, 0\n  br i1 %199, label %$32, label %$31\n$31:\n  %200 = phi i64 [%192, %$30] ; # Name\n  %201 = phi i64 [%197, %$30] ; # X\n  %202 = phi i64 [%198, %$30] ; # C\n  %203 = phi i64 [%195, %$30] ; # Sym\n  %204 = phi i64 [%196, %$30] ; # N\n  br label %$24\n$32:\n  %205 = phi i64 [%192, %$30] ; # Name\n  %206 = phi i64 [%197, %$30] ; # X\n  %207 = phi i64 [%198, %$30] ; # C\n  %208 = phi i64 [%195, %$30] ; # Sym\n  %209 = phi i64 [%196, %$30] ; # N\n  %210 = phi i64 [0, %$30] ; # ->\n  br label %$23\n$23:\n  %211 = phi i64 [%144, %$21], [%205, %$32] ; # Name\n  %212 = phi i64 [%145, %$21], [%206, %$32] ; # X\n  %213 = phi i64 [%146, %$21], [%207, %$32] ; # C\n  %214 = phi i64 [%147, %$21], [%208, %$32] ; # Sym\n  %215 = phi i64 [%148, %$21], [%209, %$32] ; # N\n  %216 = phi i64 [0, %$21], [%210, %$32] ; # ->\n; # (loop (let (Nm (& (name (& (val (tail (car X))) -9)) (hex \"3FFFFF...\n  br label %$33\n$33:\n  %217 = phi i64 [%211, %$23], [%334, %$41] ; # Name\n  %218 = phi i64 [%212, %$23], [%335, %$41] ; # X\n  %219 = phi i64 [%213, %$23], [%336, %$41] ; # C\n  %220 = phi i64 [%214, %$23], [%337, %$41] ; # Sym\n; # (let (Nm (& (name (& (val (tail (car X))) -9)) (hex \"3FFFFFFFFFFF...\n; # (car X)\n  %221 = inttoptr i64 %218 to i64*\n  %222 = load i64, i64* %221\n; # (tail (car X))\n  %223 = add i64 %222, -8\n; # (val (tail (car X)))\n  %224 = inttoptr i64 %223 to i64*\n  %225 = load i64, i64* %224\n; # (& (val (tail (car X))) -9)\n  %226 = and i64 %225, -9\n; # (name (& (val (tail (car X))) -9))\n  br label %$34\n$34:\n  %227 = phi i64 [%226, %$33], [%233, %$35] ; # Tail\n  %228 = and i64 %227, 6\n  %229 = icmp ne i64 %228, 0\n  br i1 %229, label %$36, label %$35\n$35:\n  %230 = phi i64 [%227, %$34] ; # Tail\n  %231 = inttoptr i64 %230 to i64*\n  %232 = getelementptr i64, i64* %231, i32 1\n  %233 = load i64, i64* %232\n  br label %$34\n$36:\n  %234 = phi i64 [%227, %$34] ; # Tail\n; # (& (name (& (val (tail (car X))) -9)) (hex \"3FFFFFFFFFFFFFF7\"))\n  %235 = and i64 %234, 4611686018427387895\n; # (cdr X)\n  %236 = inttoptr i64 %218 to i64*\n  %237 = getelementptr i64, i64* %236, i32 1\n  %238 = load i64, i64* %237\n; # (? (== Nm Name))\n; # (== Nm Name)\n  %239 = icmp eq i64 %235, %217\n  br i1 %239, label %$38, label %$37\n$37:\n  %240 = phi i64 [%217, %$36] ; # Name\n  %241 = phi i64 [%218, %$36] ; # X\n  %242 = phi i64 [%219, %$36] ; # C\n  %243 = phi i64 [%220, %$36] ; # Sym\n  %244 = phi i64 [%235, %$36] ; # Nm\n  %245 = phi i64 [%238, %$36] ; # Y\n; # (if (> Name Nm) (let Z (cdr Y) (? (atom (cdr Z))) (xchg Z X) (set...\n; # (> Name Nm)\n  %246 = icmp ugt i64 %240, %244\n  br i1 %246, label %$39, label %$40\n$39:\n  %247 = phi i64 [%240, %$37] ; # Name\n  %248 = phi i64 [%241, %$37] ; # X\n  %249 = phi i64 [%242, %$37] ; # C\n  %250 = phi i64 [%243, %$37] ; # Sym\n  %251 = phi i64 [%244, %$37] ; # Nm\n  %252 = phi i64 [%245, %$37] ; # Y\n; # (let Z (cdr Y) (? (atom (cdr Z))) (xchg Z X) (setq Z (cdr Z) X (c...\n; # (cdr Y)\n  %253 = inttoptr i64 %252 to i64*\n  %254 = getelementptr i64, i64* %253, i32 1\n  %255 = load i64, i64* %254\n; # (? (atom (cdr Z)))\n; # (cdr Z)\n  %256 = inttoptr i64 %255 to i64*\n  %257 = getelementptr i64, i64* %256, i32 1\n  %258 = load i64, i64* %257\n; # (atom (cdr Z))\n  %259 = and i64 %258, 15\n  %260 = icmp ne i64 %259, 0\n  br i1 %260, label %$38, label %$42\n$42:\n  %261 = phi i64 [%247, %$39] ; # Name\n  %262 = phi i64 [%248, %$39] ; # X\n  %263 = phi i64 [%249, %$39] ; # C\n  %264 = phi i64 [%250, %$39] ; # Sym\n  %265 = phi i64 [%251, %$39] ; # Nm\n  %266 = phi i64 [%252, %$39] ; # Y\n  %267 = phi i64 [%255, %$39] ; # Z\n; # (xchg Z X)\n  %268 = inttoptr i64 %267 to i64*\n  %269 = load i64, i64* %268\n  %270 = inttoptr i64 %262 to i64*\n  %271 = load i64, i64* %270\n  store i64 %271, i64* %268\n  store i64 %269, i64* %270\n; # (cdr Z)\n  %272 = inttoptr i64 %267 to i64*\n  %273 = getelementptr i64, i64* %272, i32 1\n  %274 = load i64, i64* %273\n; # (cdr Z)\n  %275 = inttoptr i64 %274 to i64*\n  %276 = getelementptr i64, i64* %275, i32 1\n  %277 = load i64, i64* %276\n; # (set 2 Z (val Z) Z (val Y) Y (cdr Y) 2 Y X)\n; # (val Z)\n  %278 = inttoptr i64 %274 to i64*\n  %279 = load i64, i64* %278\n  %280 = inttoptr i64 %274 to i64*\n  %281 = getelementptr i64, i64* %280, i32 1\n  store i64 %279, i64* %281\n; # (val Y)\n  %282 = inttoptr i64 %266 to i64*\n  %283 = load i64, i64* %282\n  %284 = inttoptr i64 %274 to i64*\n  store i64 %283, i64* %284\n; # (cdr Y)\n  %285 = inttoptr i64 %266 to i64*\n  %286 = getelementptr i64, i64* %285, i32 1\n  %287 = load i64, i64* %286\n  %288 = inttoptr i64 %266 to i64*\n  store i64 %287, i64* %288\n  %289 = inttoptr i64 %266 to i64*\n  %290 = getelementptr i64, i64* %289, i32 1\n  store i64 %277, i64* %290\n  br label %$41\n$40:\n  %291 = phi i64 [%240, %$37] ; # Name\n  %292 = phi i64 [%241, %$37] ; # X\n  %293 = phi i64 [%242, %$37] ; # C\n  %294 = phi i64 [%243, %$37] ; # Sym\n  %295 = phi i64 [%244, %$37] ; # Nm\n  %296 = phi i64 [%245, %$37] ; # Y\n; # (let Z (car Y) (? (atom (cdr Z))) (xchg Z X) (setq Z (cdr Z) X (v...\n; # (car Y)\n  %297 = inttoptr i64 %296 to i64*\n  %298 = load i64, i64* %297\n; # (? (atom (cdr Z)))\n; # (cdr Z)\n  %299 = inttoptr i64 %298 to i64*\n  %300 = getelementptr i64, i64* %299, i32 1\n  %301 = load i64, i64* %300\n; # (atom (cdr Z))\n  %302 = and i64 %301, 15\n  %303 = icmp ne i64 %302, 0\n  br i1 %303, label %$38, label %$43\n$43:\n  %304 = phi i64 [%291, %$40] ; # Name\n  %305 = phi i64 [%292, %$40] ; # X\n  %306 = phi i64 [%293, %$40] ; # C\n  %307 = phi i64 [%294, %$40] ; # Sym\n  %308 = phi i64 [%295, %$40] ; # Nm\n  %309 = phi i64 [%296, %$40] ; # Y\n  %310 = phi i64 [%298, %$40] ; # Z\n; # (xchg Z X)\n  %311 = inttoptr i64 %310 to i64*\n  %312 = load i64, i64* %311\n  %313 = inttoptr i64 %305 to i64*\n  %314 = load i64, i64* %313\n  store i64 %314, i64* %311\n  store i64 %312, i64* %313\n; # (cdr Z)\n  %315 = inttoptr i64 %310 to i64*\n  %316 = getelementptr i64, i64* %315, i32 1\n  %317 = load i64, i64* %316\n; # (val Z)\n  %318 = inttoptr i64 %317 to i64*\n  %319 = load i64, i64* %318\n; # (set Z (cdr Z) 2 Z (cdr Y) 2 Y (val Y) Y X)\n; # (cdr Z)\n  %320 = inttoptr i64 %317 to i64*\n  %321 = getelementptr i64, i64* %320, i32 1\n  %322 = load i64, i64* %321\n  %323 = inttoptr i64 %317 to i64*\n  store i64 %322, i64* %323\n; # (cdr Y)\n  %324 = inttoptr i64 %309 to i64*\n  %325 = getelementptr i64, i64* %324, i32 1\n  %326 = load i64, i64* %325\n  %327 = inttoptr i64 %317 to i64*\n  %328 = getelementptr i64, i64* %327, i32 1\n  store i64 %326, i64* %328\n; # (val Y)\n  %329 = inttoptr i64 %309 to i64*\n  %330 = load i64, i64* %329\n  %331 = inttoptr i64 %309 to i64*\n  %332 = getelementptr i64, i64* %331, i32 1\n  store i64 %330, i64* %332\n  %333 = inttoptr i64 %309 to i64*\n  store i64 %319, i64* %333\n  br label %$41\n$41:\n  %334 = phi i64 [%261, %$42], [%304, %$43] ; # Name\n  %335 = phi i64 [%277, %$42], [%319, %$43] ; # X\n  %336 = phi i64 [%263, %$42], [%306, %$43] ; # C\n  %337 = phi i64 [%264, %$42], [%307, %$43] ; # Sym\n  %338 = phi i64 [%265, %$42], [%308, %$43] ; # Nm\n  %339 = phi i64 [%266, %$42], [%309, %$43] ; # Y\n  %340 = phi i64 [%277, %$42], [%319, %$43] ; # ->\n  br label %$33\n$38:\n  %341 = phi i64 [%217, %$36], [%247, %$39], [%291, %$40] ; # Name\n  %342 = phi i64 [%218, %$36], [%248, %$39], [%292, %$40] ; # X\n  %343 = phi i64 [%219, %$36], [%249, %$39], [%293, %$40] ; # C\n  %344 = phi i64 [%220, %$36], [%250, %$39], [%294, %$40] ; # Sym\n  %345 = phi i64 [0, %$36], [0, %$39], [0, %$40] ; # ->\n  br label %$20\n$20:\n  %346 = phi i64 [%127, %$7], [%341, %$38] ; # Name\n  %347 = phi i64 [%128, %$7], [%342, %$38] ; # X\n  %348 = phi i64 [%132, %$7], [%343, %$38] ; # C\n  %349 = phi i64 [%130, %$7], [%344, %$38] ; # Sym\n  ret i64 %349\n}\n\ndefine void @delNode(i64, i64) align 8 {\n$1:\n; # (let Y (cdr X) (cond ((atom (car Y)) (set P (cdr Y))) ((atom (cdr...\n; # (cdr X)\n  %2 = inttoptr i64 %0 to i64*\n  %3 = getelementptr i64, i64* %2, i32 1\n  %4 = load i64, i64* %3\n; # (cond ((atom (car Y)) (set P (cdr Y))) ((atom (cdr Y)) (set P (ca...\n; # (car Y)\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (atom (car Y))\n  %7 = and i64 %6, 15\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$4, label %$3\n$4:\n  %9 = phi i64 [%0, %$1] ; # X\n  %10 = phi i64 [%1, %$1] ; # P\n  %11 = phi i64 [%4, %$1] ; # Y\n; # (set P (cdr Y))\n; # (cdr Y)\n  %12 = inttoptr i64 %11 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = inttoptr i64 %10 to i64*\n  store i64 %14, i64* %15\n  br label %$2\n$3:\n  %16 = phi i64 [%0, %$1] ; # X\n  %17 = phi i64 [%1, %$1] ; # P\n  %18 = phi i64 [%4, %$1] ; # Y\n; # (cdr Y)\n  %19 = inttoptr i64 %18 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  %21 = load i64, i64* %20\n; # (atom (cdr Y))\n  %22 = and i64 %21, 15\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$6, label %$5\n$6:\n  %24 = phi i64 [%16, %$3] ; # X\n  %25 = phi i64 [%17, %$3] ; # P\n  %26 = phi i64 [%18, %$3] ; # Y\n; # (set P (car Y))\n; # (car Y)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n  %29 = inttoptr i64 %25 to i64*\n  store i64 %28, i64* %29\n  br label %$2\n$5:\n  %30 = phi i64 [%16, %$3] ; # X\n  %31 = phi i64 [%17, %$3] ; # P\n  %32 = phi i64 [%18, %$3] ; # Y\n; # (shift Y)\n  %33 = inttoptr i64 %32 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (cdr (shift Y))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n; # (car (setq P (cdr (shift Y))))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (atom (car (setq P (cdr (shift Y)))))\n  %41 = and i64 %40, 15\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$8, label %$7\n$8:\n  %43 = phi i64 [%30, %$5] ; # X\n  %44 = phi i64 [%38, %$5] ; # P\n  %45 = phi i64 [%35, %$5] ; # Y\n; # (set X (car Y) 2 (cdr X) (cdr P))\n; # (car Y)\n  %46 = inttoptr i64 %45 to i64*\n  %47 = load i64, i64* %46\n  %48 = inttoptr i64 %43 to i64*\n  store i64 %47, i64* %48\n; # (cdr X)\n  %49 = inttoptr i64 %43 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n; # (cdr P)\n  %52 = inttoptr i64 %44 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = inttoptr i64 %51 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  store i64 %54, i64* %56\n  br label %$2\n$7:\n  %57 = phi i64 [%30, %$5] ; # X\n  %58 = phi i64 [%38, %$5] ; # P\n  %59 = phi i64 [%35, %$5] ; # Y\n; # (car P)\n  %60 = inttoptr i64 %58 to i64*\n  %61 = load i64, i64* %60\n; # (loop (let Z (cdr P) (? (atom (car Z)) (set X (car P) (cdr Y) (cd...\n  br label %$9\n$9:\n  %62 = phi i64 [%57, %$7], [%86, %$10] ; # X\n  %63 = phi i64 [%61, %$7], [%91, %$10] ; # P\n  %64 = phi i64 [%59, %$7], [%87, %$10] ; # Y\n; # (let Z (cdr P) (? (atom (car Z)) (set X (car P) (cdr Y) (cdr Z)))...\n; # (cdr P)\n  %65 = inttoptr i64 %63 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n; # (? (atom (car Z)) (set X (car P) (cdr Y) (cdr Z)))\n; # (car Z)\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n; # (atom (car Z))\n  %70 = and i64 %69, 15\n  %71 = icmp ne i64 %70, 0\n  br i1 %71, label %$12, label %$10\n$12:\n  %72 = phi i64 [%62, %$9] ; # X\n  %73 = phi i64 [%63, %$9] ; # P\n  %74 = phi i64 [%64, %$9] ; # Y\n  %75 = phi i64 [%67, %$9] ; # Z\n; # (set X (car P) (cdr Y) (cdr Z))\n; # (car P)\n  %76 = inttoptr i64 %73 to i64*\n  %77 = load i64, i64* %76\n  %78 = inttoptr i64 %72 to i64*\n  store i64 %77, i64* %78\n; # (cdr Y)\n  %79 = inttoptr i64 %74 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (cdr Z)\n  %82 = inttoptr i64 %75 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  %84 = load i64, i64* %83\n  %85 = inttoptr i64 %81 to i64*\n  store i64 %84, i64* %85\n  br label %$11\n$10:\n  %86 = phi i64 [%62, %$9] ; # X\n  %87 = phi i64 [%63, %$9] ; # P\n  %88 = phi i64 [%64, %$9] ; # Y\n  %89 = phi i64 [%67, %$9] ; # Z\n; # (car Z)\n  %90 = inttoptr i64 %89 to i64*\n  %91 = load i64, i64* %90\n  br label %$9\n$11:\n  %92 = phi i64 [%72, %$12] ; # X\n  %93 = phi i64 [%73, %$12] ; # P\n  %94 = phi i64 [%74, %$12] ; # Y\n  %95 = phi i64 [%84, %$12] ; # ->\n  br label %$2\n$2:\n  %96 = phi i64 [%9, %$4], [%24, %$6], [%43, %$8], [%92, %$11] ; # X\n  %97 = phi i64 [%10, %$4], [%25, %$6], [%44, %$8], [%93, %$11] ; # P\n  %98 = phi i64 [%11, %$4], [%26, %$6], [%45, %$8], [%94, %$11] ; # Y\n  %99 = phi i64 [%14, %$4], [%28, %$6], [%54, %$8], [%95, %$11] ; # ->\n  ret void\n}\n\ndefine void @unintern(i64, i64, i64) align 8 {\n$1:\n; # (if (cnt? Name) (loop (let X (car P) (? (atom X)) (let (S (car X)...\n; # (cnt? Name)\n  %3 = and i64 %1, 2\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Sym\n  %6 = phi i64 [%1, %$1] ; # Name\n  %7 = phi i64 [%2, %$1] ; # P\n; # (loop (let X (car P) (? (atom X)) (let (S (car X) Nm (name (val (...\n  br label %$5\n$5:\n  %8 = phi i64 [%5, %$2], [%83, %$18] ; # Sym\n  %9 = phi i64 [%6, %$2], [%84, %$18] ; # Name\n  %10 = phi i64 [%7, %$2], [%89, %$18] ; # P\n; # (let X (car P) (? (atom X)) (let (S (car X) Nm (name (val (tail S...\n; # (car P)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (? (atom X))\n; # (atom X)\n  %13 = and i64 %12, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$7, label %$6\n$6:\n  %15 = phi i64 [%8, %$5] ; # Sym\n  %16 = phi i64 [%9, %$5] ; # Name\n  %17 = phi i64 [%10, %$5] ; # P\n  %18 = phi i64 [%12, %$5] ; # X\n; # (let (S (car X) Nm (name (val (tail S)))) (? (== Name Nm) (when (...\n; # (car X)\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n; # (tail S)\n  %21 = add i64 %20, -8\n; # (val (tail S))\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n; # (name (val (tail S)))\n  br label %$8\n$8:\n  %24 = phi i64 [%23, %$6], [%30, %$9] ; # Tail\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$8] ; # Tail\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  br label %$8\n$10:\n  %31 = phi i64 [%24, %$8] ; # Tail\n; # (? (== Name Nm) (when (== S Sym) (delNode X P)))\n; # (== Name Nm)\n  %32 = icmp eq i64 %16, %31\n  br i1 %32, label %$12, label %$11\n$12:\n  %33 = phi i64 [%15, %$10] ; # Sym\n  %34 = phi i64 [%16, %$10] ; # Name\n  %35 = phi i64 [%17, %$10] ; # P\n  %36 = phi i64 [%18, %$10] ; # X\n  %37 = phi i64 [%20, %$10] ; # S\n  %38 = phi i64 [%31, %$10] ; # Nm\n; # (when (== S Sym) (delNode X P))\n; # (== S Sym)\n  %39 = icmp eq i64 %37, %33\n  br i1 %39, label %$13, label %$14\n$13:\n  %40 = phi i64 [%33, %$12] ; # Sym\n  %41 = phi i64 [%34, %$12] ; # Name\n  %42 = phi i64 [%35, %$12] ; # P\n  %43 = phi i64 [%36, %$12] ; # X\n  %44 = phi i64 [%37, %$12] ; # S\n  %45 = phi i64 [%38, %$12] ; # Nm\n; # (delNode X P)\n  call void @delNode(i64 %43, i64 %42)\n  br label %$14\n$14:\n  %46 = phi i64 [%33, %$12], [%40, %$13] ; # Sym\n  %47 = phi i64 [%34, %$12], [%41, %$13] ; # Name\n  %48 = phi i64 [%35, %$12], [%42, %$13] ; # P\n  %49 = phi i64 [%36, %$12], [%43, %$13] ; # X\n  %50 = phi i64 [%37, %$12], [%44, %$13] ; # S\n  %51 = phi i64 [%38, %$12], [%45, %$13] ; # Nm\n  br label %$7\n$11:\n  %52 = phi i64 [%15, %$10] ; # Sym\n  %53 = phi i64 [%16, %$10] ; # Name\n  %54 = phi i64 [%17, %$10] ; # P\n  %55 = phi i64 [%18, %$10] ; # X\n  %56 = phi i64 [%20, %$10] ; # S\n  %57 = phi i64 [%31, %$10] ; # Nm\n; # (? (atom (shift X)))\n; # (shift X)\n  %58 = inttoptr i64 %55 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n; # (atom (shift X))\n  %61 = and i64 %60, 15\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$7, label %$15\n$15:\n  %63 = phi i64 [%52, %$11] ; # Sym\n  %64 = phi i64 [%53, %$11] ; # Name\n  %65 = phi i64 [%54, %$11] ; # P\n  %66 = phi i64 [%60, %$11] ; # X\n  %67 = phi i64 [%56, %$11] ; # S\n  %68 = phi i64 [%57, %$11] ; # Nm\n; # (if (> Name Nm) (ofs X 1) X)\n; # (> Name Nm)\n  %69 = icmp ugt i64 %64, %68\n  br i1 %69, label %$16, label %$17\n$16:\n  %70 = phi i64 [%63, %$15] ; # Sym\n  %71 = phi i64 [%64, %$15] ; # Name\n  %72 = phi i64 [%65, %$15] ; # P\n  %73 = phi i64 [%66, %$15] ; # X\n  %74 = phi i64 [%67, %$15] ; # S\n  %75 = phi i64 [%68, %$15] ; # Nm\n; # (ofs X 1)\n  %76 = add i64 %73, 8\n  br label %$18\n$17:\n  %77 = phi i64 [%63, %$15] ; # Sym\n  %78 = phi i64 [%64, %$15] ; # Name\n  %79 = phi i64 [%65, %$15] ; # P\n  %80 = phi i64 [%66, %$15] ; # X\n  %81 = phi i64 [%67, %$15] ; # S\n  %82 = phi i64 [%68, %$15] ; # Nm\n  br label %$18\n$18:\n  %83 = phi i64 [%70, %$16], [%77, %$17] ; # Sym\n  %84 = phi i64 [%71, %$16], [%78, %$17] ; # Name\n  %85 = phi i64 [%72, %$16], [%79, %$17] ; # P\n  %86 = phi i64 [%73, %$16], [%80, %$17] ; # X\n  %87 = phi i64 [%74, %$16], [%81, %$17] ; # S\n  %88 = phi i64 [%75, %$16], [%82, %$17] ; # Nm\n  %89 = phi i64 [%76, %$16], [%80, %$17] ; # ->\n  br label %$5\n$7:\n  %90 = phi i64 [%8, %$5], [%46, %$14], [%52, %$11] ; # Sym\n  %91 = phi i64 [%9, %$5], [%47, %$14], [%53, %$11] ; # Name\n  %92 = phi i64 [%10, %$5], [%48, %$14], [%54, %$11] ; # P\n  br label %$4\n$3:\n  %93 = phi i64 [%0, %$1] ; # Sym\n  %94 = phi i64 [%1, %$1] ; # Name\n  %95 = phi i64 [%2, %$1] ; # P\n; # (ofs P 1)\n  %96 = add i64 %95, 8\n; # (loop (let X (car P) (? (atom X)) (let (S (car X) Nm (name (val (...\n  br label %$19\n$19:\n  %97 = phi i64 [%93, %$3], [%180, %$32] ; # Sym\n  %98 = phi i64 [%94, %$3], [%181, %$32] ; # Name\n  %99 = phi i64 [%96, %$3], [%187, %$32] ; # P\n; # (let X (car P) (? (atom X)) (let (S (car X) Nm (name (val (tail S...\n; # (car P)\n  %100 = inttoptr i64 %99 to i64*\n  %101 = load i64, i64* %100\n; # (? (atom X))\n; # (atom X)\n  %102 = and i64 %101, 15\n  %103 = icmp ne i64 %102, 0\n  br i1 %103, label %$21, label %$20\n$20:\n  %104 = phi i64 [%97, %$19] ; # Sym\n  %105 = phi i64 [%98, %$19] ; # Name\n  %106 = phi i64 [%99, %$19] ; # P\n  %107 = phi i64 [%101, %$19] ; # X\n; # (let (S (car X) Nm (name (val (tail S))) I (cmpLong Nm Name)) (? ...\n; # (car X)\n  %108 = inttoptr i64 %107 to i64*\n  %109 = load i64, i64* %108\n; # (tail S)\n  %110 = add i64 %109, -8\n; # (val (tail S))\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n; # (name (val (tail S)))\n  br label %$22\n$22:\n  %113 = phi i64 [%112, %$20], [%119, %$23] ; # Tail\n  %114 = and i64 %113, 6\n  %115 = icmp ne i64 %114, 0\n  br i1 %115, label %$24, label %$23\n$23:\n  %116 = phi i64 [%113, %$22] ; # Tail\n  %117 = inttoptr i64 %116 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n  br label %$22\n$24:\n  %120 = phi i64 [%113, %$22] ; # Tail\n; # (cmpLong Nm Name)\n  %121 = call i64 @cmpLong(i64 %120, i64 %105)\n; # (? (=0 I) (when (== S Sym) (delNode X P)))\n; # (=0 I)\n  %122 = icmp eq i64 %121, 0\n  br i1 %122, label %$26, label %$25\n$26:\n  %123 = phi i64 [%104, %$24] ; # Sym\n  %124 = phi i64 [%105, %$24] ; # Name\n  %125 = phi i64 [%106, %$24] ; # P\n  %126 = phi i64 [%107, %$24] ; # X\n  %127 = phi i64 [%109, %$24] ; # S\n  %128 = phi i64 [%120, %$24] ; # Nm\n  %129 = phi i64 [%121, %$24] ; # I\n; # (when (== S Sym) (delNode X P))\n; # (== S Sym)\n  %130 = icmp eq i64 %127, %123\n  br i1 %130, label %$27, label %$28\n$27:\n  %131 = phi i64 [%123, %$26] ; # Sym\n  %132 = phi i64 [%124, %$26] ; # Name\n  %133 = phi i64 [%125, %$26] ; # P\n  %134 = phi i64 [%126, %$26] ; # X\n  %135 = phi i64 [%127, %$26] ; # S\n  %136 = phi i64 [%128, %$26] ; # Nm\n  %137 = phi i64 [%129, %$26] ; # I\n; # (delNode X P)\n  call void @delNode(i64 %134, i64 %133)\n  br label %$28\n$28:\n  %138 = phi i64 [%123, %$26], [%131, %$27] ; # Sym\n  %139 = phi i64 [%124, %$26], [%132, %$27] ; # Name\n  %140 = phi i64 [%125, %$26], [%133, %$27] ; # P\n  %141 = phi i64 [%126, %$26], [%134, %$27] ; # X\n  %142 = phi i64 [%127, %$26], [%135, %$27] ; # S\n  %143 = phi i64 [%128, %$26], [%136, %$27] ; # Nm\n  %144 = phi i64 [%129, %$26], [%137, %$27] ; # I\n  br label %$21\n$25:\n  %145 = phi i64 [%104, %$24] ; # Sym\n  %146 = phi i64 [%105, %$24] ; # Name\n  %147 = phi i64 [%106, %$24] ; # P\n  %148 = phi i64 [%107, %$24] ; # X\n  %149 = phi i64 [%109, %$24] ; # S\n  %150 = phi i64 [%120, %$24] ; # Nm\n  %151 = phi i64 [%121, %$24] ; # I\n; # (? (atom (shift X)))\n; # (shift X)\n  %152 = inttoptr i64 %148 to i64*\n  %153 = getelementptr i64, i64* %152, i32 1\n  %154 = load i64, i64* %153\n; # (atom (shift X))\n  %155 = and i64 %154, 15\n  %156 = icmp ne i64 %155, 0\n  br i1 %156, label %$21, label %$29\n$29:\n  %157 = phi i64 [%145, %$25] ; # Sym\n  %158 = phi i64 [%146, %$25] ; # Name\n  %159 = phi i64 [%147, %$25] ; # P\n  %160 = phi i64 [%154, %$25] ; # X\n  %161 = phi i64 [%149, %$25] ; # S\n  %162 = phi i64 [%150, %$25] ; # Nm\n  %163 = phi i64 [%151, %$25] ; # I\n; # (if (lt0 I) (ofs X 1) X)\n; # (lt0 I)\n  %164 = icmp slt i64 %163, 0\n  br i1 %164, label %$30, label %$31\n$30:\n  %165 = phi i64 [%157, %$29] ; # Sym\n  %166 = phi i64 [%158, %$29] ; # Name\n  %167 = phi i64 [%159, %$29] ; # P\n  %168 = phi i64 [%160, %$29] ; # X\n  %169 = phi i64 [%161, %$29] ; # S\n  %170 = phi i64 [%162, %$29] ; # Nm\n  %171 = phi i64 [%163, %$29] ; # I\n; # (ofs X 1)\n  %172 = add i64 %168, 8\n  br label %$32\n$31:\n  %173 = phi i64 [%157, %$29] ; # Sym\n  %174 = phi i64 [%158, %$29] ; # Name\n  %175 = phi i64 [%159, %$29] ; # P\n  %176 = phi i64 [%160, %$29] ; # X\n  %177 = phi i64 [%161, %$29] ; # S\n  %178 = phi i64 [%162, %$29] ; # Nm\n  %179 = phi i64 [%163, %$29] ; # I\n  br label %$32\n$32:\n  %180 = phi i64 [%165, %$30], [%173, %$31] ; # Sym\n  %181 = phi i64 [%166, %$30], [%174, %$31] ; # Name\n  %182 = phi i64 [%167, %$30], [%175, %$31] ; # P\n  %183 = phi i64 [%168, %$30], [%176, %$31] ; # X\n  %184 = phi i64 [%169, %$30], [%177, %$31] ; # S\n  %185 = phi i64 [%170, %$30], [%178, %$31] ; # Nm\n  %186 = phi i64 [%171, %$30], [%179, %$31] ; # I\n  %187 = phi i64 [%172, %$30], [%176, %$31] ; # ->\n  br label %$19\n$21:\n  %188 = phi i64 [%97, %$19], [%138, %$28], [%145, %$25] ; # Sym\n  %189 = phi i64 [%98, %$19], [%139, %$28], [%146, %$25] ; # Name\n  %190 = phi i64 [%99, %$19], [%140, %$28], [%147, %$25] ; # P\n  br label %$4\n$4:\n  %191 = phi i64 [%90, %$7], [%188, %$21] ; # Sym\n  %192 = phi i64 [%91, %$7], [%189, %$21] ; # Name\n  %193 = phi i64 [%92, %$7], [%190, %$21] ; # P\n  ret void\n}\n\ndefine i64 @_Name(i64) align 8 {\n$1:\n; # (let Tail (val (tail (needSymb Exe (eval (cadr Exe))))) (if (sym?...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needSymb Exe (eval (cadr Exe)))\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$7:\n  %22 = phi i64 [%18, %$2] ; # X\n  %23 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %23, i64 %22)\n  unreachable\n$8:\n  %24 = phi i64 [%18, %$2] ; # X\n  %25 = phi i64 [%0, %$2] ; # Exe\n; # (tail (needSymb Exe (eval (cadr Exe))))\n  %26 = add i64 %24, -8\n; # (val (tail (needSymb Exe (eval (cadr Exe)))))\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (if (sym? Tail) (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (...\n; # (sym? Tail)\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$9, label %$10\n$9:\n  %31 = phi i64 [%0, %$8] ; # Exe\n  %32 = phi i64 [%28, %$8] ; # Tail\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (packExtNm (name ...\n; # (push 4 NIL ZERO NIL)\n  %33 = alloca i64, i64 4, align 16\n  store i64 4, i64* %33\n  %34 = getelementptr i64, i64* %33, i32 2\n  store i64 2, i64* %34\n; # (ofs P 2)\n  %35 = getelementptr i64, i64* %33, i32 2\n; # (link (ofs P 2) T)\n  %36 = ptrtoint i64* %35 to i64\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = inttoptr i64 %36 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  store i64 %38, i64* %40\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %36, i64* %41\n; # (& Tail -9)\n  %42 = and i64 %32, -9\n; # (name (& Tail -9))\n  br label %$12\n$12:\n  %43 = phi i64 [%42, %$9], [%49, %$13] ; # Tail\n  %44 = and i64 %43, 6\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$14, label %$13\n$13:\n  %46 = phi i64 [%43, %$12] ; # Tail\n  %47 = inttoptr i64 %46 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  br label %$12\n$14:\n  %50 = phi i64 [%43, %$12] ; # Tail\n; # (packExtNm (name (& Tail -9)) P)\n  call void @packExtNm(i64 %50, i64* %33)\n; # (val 3 P)\n  %51 = getelementptr i64, i64* %33, i32 2\n  %52 = load i64, i64* %51\n; # (consStr (val 3 P))\n  %53 = call i64 @consStr(i64 %52)\n; # (drop *Safe)\n  %54 = inttoptr i64 %36 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %57\n  br label %$11\n$10:\n  %58 = phi i64 [%0, %$8] ; # Exe\n  %59 = phi i64 [%28, %$8] ; # Tail\n; # (name Tail)\n  br label %$15\n$15:\n  %60 = phi i64 [%59, %$10], [%66, %$16] ; # Tail\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$17, label %$16\n$16:\n  %63 = phi i64 [%60, %$15] ; # Tail\n  %64 = inttoptr i64 %63 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n  br label %$15\n$17:\n  %67 = phi i64 [%60, %$15] ; # Tail\n; # (consStr (name Tail))\n  %68 = call i64 @consStr(i64 %67)\n  br label %$11\n$11:\n  %69 = phi i64 [%31, %$14], [%58, %$17] ; # Exe\n  %70 = phi i64 [%32, %$14], [%59, %$17] ; # Tail\n  %71 = phi i64 [%53, %$14], [%68, %$17] ; # ->\n  ret i64 %71\n}\n\ndefine i64 @_Nsp(i64) align 8 {\n$1:\n; # (let Sym (needSymb Exe (eval (cadr Exe))) (if (sym? (val (tail Sy...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needSymb Exe (eval (cadr Exe)))\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$7:\n  %22 = phi i64 [%18, %$2] ; # X\n  %23 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %23, i64 %22)\n  unreachable\n$8:\n  %24 = phi i64 [%18, %$2] ; # X\n  %25 = phi i64 [%0, %$2] ; # Exe\n; # (if (sym? (val (tail Sym))) $Nil (let Nm (name @) (if (== Sym (is...\n; # (tail Sym)\n  %26 = add i64 %24, -8\n; # (val (tail Sym))\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (sym? (val (tail Sym)))\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$9, label %$10\n$9:\n  %31 = phi i64 [%0, %$8] ; # Exe\n  %32 = phi i64 [%24, %$8] ; # Sym\n  br label %$11\n$10:\n  %33 = phi i64 [%0, %$8] ; # Exe\n  %34 = phi i64 [%24, %$8] ; # Sym\n; # (let Nm (name @) (if (== Sym (isIntern Nm $PrivT)) $priv (let Lst...\n; # (name @)\n  br label %$12\n$12:\n  %35 = phi i64 [%28, %$10], [%41, %$13] ; # Tail\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$13:\n  %38 = phi i64 [%35, %$12] ; # Tail\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  br label %$12\n$14:\n  %42 = phi i64 [%35, %$12] ; # Tail\n; # (if (== Sym (isIntern Nm $PrivT)) $priv (let Lst (val $Intern) (l...\n; # (isIntern Nm $PrivT)\n  %43 = call i64 @isIntern(i64 %42, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64))\n; # (== Sym (isIntern Nm $PrivT))\n  %44 = icmp eq i64 %34, %43\n  br i1 %44, label %$15, label %$16\n$15:\n  %45 = phi i64 [%33, %$14] ; # Exe\n  %46 = phi i64 [%34, %$14] ; # Sym\n  %47 = phi i64 [%42, %$14] ; # Nm\n  br label %$17\n$16:\n  %48 = phi i64 [%33, %$14] ; # Exe\n  %49 = phi i64 [%34, %$14] ; # Sym\n  %50 = phi i64 [%42, %$14] ; # Nm\n; # (let Lst (val $Intern) (loop (? (atom Lst) $Nil) (let Nsp (car Ls...\n; # (val $Intern)\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %52 = load i64, i64* %51\n; # (loop (? (atom Lst) $Nil) (let Nsp (car Lst) (? (== Sym (isIntern...\n  br label %$18\n$18:\n  %53 = phi i64 [%48, %$16], [%81, %$22] ; # Exe\n  %54 = phi i64 [%49, %$16], [%82, %$22] ; # Sym\n  %55 = phi i64 [%50, %$16], [%83, %$22] ; # Nm\n  %56 = phi i64 [%52, %$16], [%88, %$22] ; # Lst\n; # (? (atom Lst) $Nil)\n; # (atom Lst)\n  %57 = and i64 %56, 15\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$21, label %$19\n$21:\n  %59 = phi i64 [%53, %$18] ; # Exe\n  %60 = phi i64 [%54, %$18] ; # Sym\n  %61 = phi i64 [%55, %$18] ; # Nm\n  %62 = phi i64 [%56, %$18] ; # Lst\n  br label %$20\n$19:\n  %63 = phi i64 [%53, %$18] ; # Exe\n  %64 = phi i64 [%54, %$18] ; # Sym\n  %65 = phi i64 [%55, %$18] ; # Nm\n  %66 = phi i64 [%56, %$18] ; # Lst\n; # (let Nsp (car Lst) (? (== Sym (isIntern Nm (cdar Nsp))) Nsp))\n; # (car Lst)\n  %67 = inttoptr i64 %66 to i64*\n  %68 = load i64, i64* %67\n; # (? (== Sym (isIntern Nm (cdar Nsp))) Nsp)\n; # (cdar Nsp)\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n  %71 = inttoptr i64 %70 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n; # (isIntern Nm (cdar Nsp))\n  %74 = call i64 @isIntern(i64 %65, i64 %73)\n; # (== Sym (isIntern Nm (cdar Nsp)))\n  %75 = icmp eq i64 %64, %74\n  br i1 %75, label %$23, label %$22\n$23:\n  %76 = phi i64 [%63, %$19] ; # Exe\n  %77 = phi i64 [%64, %$19] ; # Sym\n  %78 = phi i64 [%65, %$19] ; # Nm\n  %79 = phi i64 [%66, %$19] ; # Lst\n  %80 = phi i64 [%68, %$19] ; # Nsp\n  br label %$20\n$22:\n  %81 = phi i64 [%63, %$19] ; # Exe\n  %82 = phi i64 [%64, %$19] ; # Sym\n  %83 = phi i64 [%65, %$19] ; # Nm\n  %84 = phi i64 [%66, %$19] ; # Lst\n  %85 = phi i64 [%68, %$19] ; # Nsp\n; # (shift Lst)\n  %86 = inttoptr i64 %84 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n  br label %$18\n$20:\n  %89 = phi i64 [%59, %$21], [%76, %$23] ; # Exe\n  %90 = phi i64 [%60, %$21], [%77, %$23] ; # Sym\n  %91 = phi i64 [%61, %$21], [%78, %$23] ; # Nm\n  %92 = phi i64 [%62, %$21], [%79, %$23] ; # Lst\n  %93 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21], [%80, %$23] ; # ->\n  br label %$17\n$17:\n  %94 = phi i64 [%45, %$15], [%89, %$20] ; # Exe\n  %95 = phi i64 [%46, %$15], [%90, %$20] ; # Sym\n  %96 = phi i64 [%47, %$15], [%91, %$20] ; # Nm\n  %97 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 152) to i64), %$15], [%93, %$20] ; # ->\n  br label %$11\n$11:\n  %98 = phi i64 [%31, %$9], [%94, %$17] ; # Exe\n  %99 = phi i64 [%32, %$9], [%95, %$17] ; # Sym\n  %100 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%97, %$17] ; # ->\n  ret i64 %100\n}\n\ndefine i64 @_SpQ(i64) align 8 {\n$1:\n; # (if (isBlank (eval (cadr Exe))) $T $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (isBlank (eval (cadr Exe)))\n  %19 = call i1 @isBlank(i64 %18)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_PatQ(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (and (symb? X) (== (firstChar X) (ch...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (and (symb? X) (== (firstChar X) (char \"@\"))) X $Nil)\n; # (and (symb? X) (== (firstChar X) (char \"@\")))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n; # (firstChar X)\n  %24 = call i32 @firstChar(i64 %23)\n; # (== (firstChar X) (char \"@\"))\n  %25 = icmp eq i32 %24, 64\n  br label %$7\n$7:\n  %26 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %27 = phi i64 [%18, %$2], [%23, %$8] ; # X\n  %28 = phi i1 [0, %$2], [%25, %$8] ; # ->\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$7] ; # Exe\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$10:\n  %31 = phi i64 [%26, %$7] ; # Exe\n  %32 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$11:\n  %33 = phi i64 [%29, %$9], [%31, %$10] ; # Exe\n  %34 = phi i64 [%30, %$9], [%32, %$10] ; # X\n  %35 = phi i64 [%30, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %35\n}\n\ndefine i64 @_FunQ(i64) align 8 {\n$1:\n; # (if (funq (eval (cadr Exe))) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (funq (eval (cadr Exe)))\n  %19 = call i64 @funq(i64 %18)\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %23 = phi i64 [%21, %$7], [%22, %$8] ; # Exe\n  %24 = phi i64 [%19, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_Getd(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) V T) (cond ((not (symb? X)) $Nil) ((fun...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((not (symb? X)) $Nil) ((funq (setq V (val X))) V) ((and (n...\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n; # (not (symb? X))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%18, %$2] ; # X\n; # (val X)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (funq (setq V (val X)))\n  %29 = call i64 @funq(i64 %28)\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%25, %$8] ; # Exe\n  %32 = phi i64 [%26, %$8] ; # X\n  %33 = phi i64 [%28, %$8] ; # V\n  br label %$7\n$10:\n  %34 = phi i64 [%25, %$8] ; # Exe\n  %35 = phi i64 [%26, %$8] ; # X\n  %36 = phi i64 [%28, %$8] ; # V\n; # (and (nil? V) (sharedLib X))\n; # (nil? V)\n  %37 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %37, label %$13, label %$12\n$13:\n  %38 = phi i64 [%34, %$10] ; # Exe\n  %39 = phi i64 [%35, %$10] ; # X\n  %40 = phi i64 [%36, %$10] ; # V\n; # (sharedLib X)\n  %41 = call i1 @sharedLib(i64 %39)\n  br label %$12\n$12:\n  %42 = phi i64 [%34, %$10], [%38, %$13] ; # Exe\n  %43 = phi i64 [%35, %$10], [%39, %$13] ; # X\n  %44 = phi i64 [%36, %$10], [%40, %$13] ; # V\n  %45 = phi i1 [0, %$10], [%41, %$13] ; # ->\n  br i1 %45, label %$15, label %$14\n$15:\n  %46 = phi i64 [%42, %$12] ; # Exe\n  %47 = phi i64 [%43, %$12] ; # X\n  %48 = phi i64 [%44, %$12] ; # V\n; # (val X)\n  %49 = inttoptr i64 %47 to i64*\n  %50 = load i64, i64* %49\n  br label %$7\n$14:\n  %51 = phi i64 [%42, %$12] ; # Exe\n  %52 = phi i64 [%43, %$12] ; # X\n  %53 = phi i64 [%44, %$12] ; # V\n  br label %$7\n$7:\n  %54 = phi i64 [%23, %$9], [%31, %$11], [%46, %$15], [%51, %$14] ; # Exe\n  %55 = phi i64 [%24, %$9], [%32, %$11], [%47, %$15], [%52, %$14] ; # X\n  %56 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%33, %$11], [%50, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14] ; # ->\n  ret i64 %56\n}\n\ndefine i64 @consTree(i64, i64) align 8 {\n$1:\n; # (if (atom P) Lst (let (Q (link (push NIL NIL)) Tos (link (push -Z...\n; # (atom P)\n  %2 = and i64 %0, 15\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # P\n  %5 = phi i64 [%1, %$1] ; # Lst\n  br label %$4\n$3:\n  %6 = phi i64 [%0, %$1] ; # P\n  %7 = phi i64 [%1, %$1] ; # Lst\n; # (let (Q (link (push NIL NIL)) Tos (link (push -ZERO NIL))) (loop ...\n; # (push NIL NIL)\n  %8 = alloca i64, i64 2, align 16\n  %9 = ptrtoint i64* %8 to i64\n; # (link (push NIL NIL))\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %11 = load i64, i64* %10\n  %12 = inttoptr i64 %9 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  store i64 %11, i64* %13\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %9, i64* %14\n; # (push -ZERO NIL)\n  %15 = alloca i64, i64 2, align 16\n  %16 = ptrtoint i64* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  store i64 10, i64* %17\n; # (link (push -ZERO NIL))\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %19 = load i64, i64* %18\n  %20 = inttoptr i64 %16 to i64*\n  %21 = getelementptr i64, i64* %20, i32 1\n  store i64 %19, i64* %21\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %16, i64* %22\n; # (loop (loop (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @)...\n  br label %$5\n$5:\n  %23 = phi i64 [%6, %$3], [%142, %$11] ; # P\n  %24 = phi i64 [%7, %$3], [%143, %$11] ; # Lst\n  %25 = phi i64 [%9, %$3], [%144, %$11] ; # Q\n  %26 = phi i64 [%16, %$3], [%145, %$11] ; # Tos\n; # (loop (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @) (set ...\n  br label %$6\n$6:\n  %27 = phi i64 [%23, %$5], [%36, %$7] ; # P\n  %28 = phi i64 [%24, %$5], [%40, %$7] ; # Lst\n  %29 = phi i64 [%25, %$5], [%41, %$7] ; # Q\n  %30 = phi i64 [%26, %$5], [%42, %$7] ; # Tos\n; # (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @) (set 2 X (v...\n; # (cdr P)\n  %31 = inttoptr i64 %27 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (? (atom (cdr X)))\n; # (cdr X)\n  %34 = inttoptr i64 %33 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n; # (atom (cdr X))\n  %37 = and i64 %36, 15\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$8, label %$7\n$7:\n  %39 = phi i64 [%27, %$6] ; # P\n  %40 = phi i64 [%28, %$6] ; # Lst\n  %41 = phi i64 [%29, %$6] ; # Q\n  %42 = phi i64 [%30, %$6] ; # Tos\n  %43 = phi i64 [%33, %$6] ; # X\n; # (let Y P (setq P @) (set 2 X (val Tos)) (set Tos Y))\n; # (set 2 X (val Tos))\n; # (val Tos)\n  %44 = inttoptr i64 %42 to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %43 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n; # (set Tos Y)\n  %48 = inttoptr i64 %42 to i64*\n  store i64 %39, i64* %48\n  br label %$6\n$8:\n  %49 = phi i64 [%27, %$6] ; # P\n  %50 = phi i64 [%28, %$6] ; # Lst\n  %51 = phi i64 [%29, %$6] ; # Q\n  %52 = phi i64 [%30, %$6] ; # Tos\n  %53 = phi i64 [0, %$6] ; # ->\n; # (set Q P)\n  %54 = inttoptr i64 %51 to i64*\n  store i64 %49, i64* %54\n; # (loop (setq Lst (cons (car P) Lst)) (let X (cdr P) (? (pair (car ...\n  br label %$9\n$9:\n  %55 = phi i64 [%49, %$8], [%137, %$17] ; # P\n  %56 = phi i64 [%50, %$8], [%138, %$17] ; # Lst\n  %57 = phi i64 [%51, %$8], [%139, %$17] ; # Q\n  %58 = phi i64 [%52, %$8], [%140, %$17] ; # Tos\n; # (car P)\n  %59 = inttoptr i64 %55 to i64*\n  %60 = load i64, i64* %59\n; # (cons (car P) Lst)\n  %61 = call i64 @cons(i64 %60, i64 %56)\n; # (let X (cdr P) (? (pair (car X)) (let Y P (setq P @) (set X (val ...\n; # (cdr P)\n  %62 = inttoptr i64 %55 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n; # (? (pair (car X)) (let Y P (setq P @) (set X (val Tos)) (set Tos ...\n; # (car X)\n  %65 = inttoptr i64 %64 to i64*\n  %66 = load i64, i64* %65\n; # (pair (car X))\n  %67 = and i64 %66, 15\n  %68 = icmp eq i64 %67, 0\n  br i1 %68, label %$12, label %$10\n$12:\n  %69 = phi i64 [%55, %$9] ; # P\n  %70 = phi i64 [%61, %$9] ; # Lst\n  %71 = phi i64 [%57, %$9] ; # Q\n  %72 = phi i64 [%58, %$9] ; # Tos\n  %73 = phi i64 [%64, %$9] ; # X\n; # (let Y P (setq P @) (set X (val Tos)) (set Tos (| Y 8)) (set Q P)...\n; # (set X (val Tos))\n; # (val Tos)\n  %74 = inttoptr i64 %72 to i64*\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 %73 to i64*\n  store i64 %75, i64* %76\n; # (set Tos (| Y 8))\n; # (| Y 8)\n  %77 = or i64 %69, 8\n  %78 = inttoptr i64 %72 to i64*\n  store i64 %77, i64* %78\n; # (set Q P)\n  %79 = inttoptr i64 %71 to i64*\n  store i64 %66, i64* %79\n  br label %$11\n$10:\n  %80 = phi i64 [%55, %$9] ; # P\n  %81 = phi i64 [%61, %$9] ; # Lst\n  %82 = phi i64 [%57, %$9] ; # Q\n  %83 = phi i64 [%58, %$9] ; # Tos\n  %84 = phi i64 [%64, %$9] ; # X\n; # (loop (let X (val Tos) (when (== -ZERO X) (drop Q) (ret Lst)) (? ...\n  br label %$13\n$13:\n  %85 = phi i64 [%80, %$10], [%128, %$16] ; # P\n  %86 = phi i64 [%81, %$10], [%124, %$16] ; # Lst\n  %87 = phi i64 [%82, %$10], [%125, %$16] ; # Q\n  %88 = phi i64 [%83, %$10], [%126, %$16] ; # Tos\n; # (let X (val Tos) (when (== -ZERO X) (drop Q) (ret Lst)) (? (=0 (&...\n; # (val Tos)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n; # (when (== -ZERO X) (drop Q) (ret Lst))\n; # (== -ZERO X)\n  %91 = icmp eq i64 10, %90\n  br i1 %91, label %$14, label %$15\n$14:\n  %92 = phi i64 [%85, %$13] ; # P\n  %93 = phi i64 [%86, %$13] ; # Lst\n  %94 = phi i64 [%87, %$13] ; # Q\n  %95 = phi i64 [%88, %$13] ; # Tos\n  %96 = phi i64 [%90, %$13] ; # X\n; # (drop Q)\n  %97 = inttoptr i64 %94 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  %99 = load i64, i64* %98\n  %100 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %100\n; # (ret Lst)\n  ret i64 %93\n$15:\n  %101 = phi i64 [%85, %$13] ; # P\n  %102 = phi i64 [%86, %$13] ; # Lst\n  %103 = phi i64 [%87, %$13] ; # Q\n  %104 = phi i64 [%88, %$13] ; # Tos\n  %105 = phi i64 [%90, %$13] ; # X\n; # (? (=0 (& X 8)) (let Y (cdr X) (set Tos (cdr Y)) (set 2 Y P) (set...\n; # (& X 8)\n  %106 = and i64 %105, 8\n; # (=0 (& X 8))\n  %107 = icmp eq i64 %106, 0\n  br i1 %107, label %$18, label %$16\n$18:\n  %108 = phi i64 [%101, %$15] ; # P\n  %109 = phi i64 [%102, %$15] ; # Lst\n  %110 = phi i64 [%103, %$15] ; # Q\n  %111 = phi i64 [%104, %$15] ; # Tos\n  %112 = phi i64 [%105, %$15] ; # X\n; # (let Y (cdr X) (set Tos (cdr Y)) (set 2 Y P) (setq P X) (set Q P)...\n; # (cdr X)\n  %113 = inttoptr i64 %112 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n; # (set Tos (cdr Y))\n; # (cdr Y)\n  %116 = inttoptr i64 %115 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n  %119 = inttoptr i64 %111 to i64*\n  store i64 %118, i64* %119\n; # (set 2 Y P)\n  %120 = inttoptr i64 %115 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  store i64 %108, i64* %121\n; # (set Q P)\n  %122 = inttoptr i64 %110 to i64*\n  store i64 %112, i64* %122\n  br label %$17\n$16:\n  %123 = phi i64 [%101, %$15] ; # P\n  %124 = phi i64 [%102, %$15] ; # Lst\n  %125 = phi i64 [%103, %$15] ; # Q\n  %126 = phi i64 [%104, %$15] ; # Tos\n  %127 = phi i64 [%105, %$15] ; # X\n; # (& X -9)\n  %128 = and i64 %127, -9\n; # (let Y (cdr X) (set Tos (car Y)) (set Y P) (setq P X) (set Q P))\n; # (cdr X)\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n; # (set Tos (car Y))\n; # (car Y)\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n  %134 = inttoptr i64 %126 to i64*\n  store i64 %133, i64* %134\n; # (set Y P)\n  %135 = inttoptr i64 %131 to i64*\n  store i64 %123, i64* %135\n; # (set Q P)\n  %136 = inttoptr i64 %125 to i64*\n  store i64 %128, i64* %136\n  br label %$13\n$17:\n  %137 = phi i64 [%112, %$18] ; # P\n  %138 = phi i64 [%109, %$18] ; # Lst\n  %139 = phi i64 [%110, %$18] ; # Q\n  %140 = phi i64 [%111, %$18] ; # Tos\n  %141 = phi i64 [%112, %$18] ; # ->\n  br label %$9\n$11:\n  %142 = phi i64 [%66, %$12] ; # P\n  %143 = phi i64 [%70, %$12] ; # Lst\n  %144 = phi i64 [%71, %$12] ; # Q\n  %145 = phi i64 [%72, %$12] ; # Tos\n  %146 = phi i64 [%66, %$12] ; # ->\n  br label %$5\n$4:\n  %147 = phi i64 [%4, %$2] ; # P\n  %148 = phi i64 [%5, %$2] ; # Lst\n  %149 = phi i64 [%5, %$2] ; # ->\n  ret i64 %149\n}\n\ndefine i64 @_All(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (cond ((nil? X) (let Y (val $Intern) (lo...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((nil? X) (let Y (val $Intern) (loop (let Z (cdar (++ Y)) (...\n; # (nil? X)\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$9, label %$8\n$9:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%18, %$2] ; # X\n; # (let Y (val $Intern) (loop (let Z (cdar (++ Y)) (setq X (consTree...\n; # (val $Intern)\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %23 = load i64, i64* %22\n; # (loop (let Z (cdar (++ Y)) (setq X (consTree (val Z) (consTree (v...\n  br label %$10\n$10:\n  %24 = phi i64 [%20, %$9], [%48, %$11] ; # Exe\n  %25 = phi i64 [%21, %$9], [%49, %$11] ; # X\n  %26 = phi i64 [%23, %$9], [%50, %$11] ; # Y\n; # (let Z (cdar (++ Y)) (setq X (consTree (val Z) (consTree (val 2 Z...\n; # (++ Y)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n  %30 = load i64, i64* %27\n; # (cdar (++ Y))\n  %31 = inttoptr i64 %30 to i64*\n  %32 = load i64, i64* %31\n  %33 = inttoptr i64 %32 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (val Z)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (val 2 Z)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n; # (consTree (val 2 Z) X)\n  %41 = call i64 @consTree(i64 %40, i64 %25)\n; # (consTree (val Z) (consTree (val 2 Z) X))\n  %42 = call i64 @consTree(i64 %37, i64 %41)\n; # (? (atom Y) X)\n; # (atom Y)\n  %43 = and i64 %29, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$11\n$13:\n  %45 = phi i64 [%24, %$10] ; # Exe\n  %46 = phi i64 [%42, %$10] ; # X\n  %47 = phi i64 [%29, %$10] ; # Y\n  br label %$12\n$11:\n  %48 = phi i64 [%24, %$10] ; # Exe\n  %49 = phi i64 [%42, %$10] ; # X\n  %50 = phi i64 [%29, %$10] ; # Y\n  br label %$10\n$12:\n  %51 = phi i64 [%45, %$13] ; # Exe\n  %52 = phi i64 [%46, %$13] ; # X\n  %53 = phi i64 [%47, %$13] ; # Y\n  %54 = phi i64 [%46, %$13] ; # ->\n  br label %$7\n$8:\n  %55 = phi i64 [%0, %$2] ; # Exe\n  %56 = phi i64 [%18, %$2] ; # X\n; # (t? X)\n  %57 = icmp eq i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %57, label %$15, label %$14\n$15:\n  %58 = phi i64 [%55, %$8] ; # Exe\n  %59 = phi i64 [%56, %$8] ; # X\n; # (val $Transient)\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %61 = load i64, i64* %60\n; # (val 2 $Transient)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n; # (consTree (val 2 $Transient) $Nil)\n  %65 = call i64 @consTree(i64 %64, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (consTree (val $Transient) (consTree (val 2 $Transient) $Nil))\n  %66 = call i64 @consTree(i64 %61, i64 %65)\n  br label %$7\n$14:\n  %67 = phi i64 [%55, %$8] ; # Exe\n  %68 = phi i64 [%56, %$8] ; # X\n; # (num? X)\n  %69 = and i64 %68, 6\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$17, label %$16\n$17:\n  %71 = phi i64 [%67, %$14] ; # Exe\n  %72 = phi i64 [%68, %$14] ; # X\n; # (val $Extern)\n  %73 = load i64, i64* @$Extern\n; # (consTree (val $Extern) $Nil)\n  %74 = call i64 @consTree(i64 %73, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$7\n$16:\n  %75 = phi i64 [%67, %$14] ; # Exe\n  %76 = phi i64 [%68, %$14] ; # X\n; # (sym? X)\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$19, label %$18\n$19:\n  %79 = phi i64 [%75, %$16] ; # Exe\n  %80 = phi i64 [%76, %$16] ; # X\n; # (let Y (cdar X) (if (pair Y) (consTree (val Y) (consTree (val 2 Y...\n; # (cdar X)\n  %81 = inttoptr i64 %80 to i64*\n  %82 = load i64, i64* %81\n  %83 = inttoptr i64 %82 to i64*\n  %84 = getelementptr i64, i64* %83, i32 1\n  %85 = load i64, i64* %84\n; # (if (pair Y) (consTree (val Y) (consTree (val 2 Y) $Nil)) $Nil)\n; # (pair Y)\n  %86 = and i64 %85, 15\n  %87 = icmp eq i64 %86, 0\n  br i1 %87, label %$20, label %$21\n$20:\n  %88 = phi i64 [%79, %$19] ; # Exe\n  %89 = phi i64 [%80, %$19] ; # X\n  %90 = phi i64 [%85, %$19] ; # Y\n; # (val Y)\n  %91 = inttoptr i64 %90 to i64*\n  %92 = load i64, i64* %91\n; # (val 2 Y)\n  %93 = inttoptr i64 %90 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n; # (consTree (val 2 Y) $Nil)\n  %96 = call i64 @consTree(i64 %95, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (consTree (val Y) (consTree (val 2 Y) $Nil))\n  %97 = call i64 @consTree(i64 %92, i64 %96)\n  br label %$22\n$21:\n  %98 = phi i64 [%79, %$19] ; # Exe\n  %99 = phi i64 [%80, %$19] ; # X\n  %100 = phi i64 [%85, %$19] ; # Y\n  br label %$22\n$22:\n  %101 = phi i64 [%88, %$20], [%98, %$21] ; # Exe\n  %102 = phi i64 [%89, %$20], [%99, %$21] ; # X\n  %103 = phi i64 [%90, %$20], [%100, %$21] ; # Y\n  %104 = phi i64 [%97, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n  br label %$7\n$18:\n  %105 = phi i64 [%75, %$16] ; # Exe\n  %106 = phi i64 [%76, %$16] ; # X\n; # (car X)\n  %107 = inttoptr i64 %106 to i64*\n  %108 = load i64, i64* %107\n; # (nil? (car X))\n  %109 = icmp eq i64 %108, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %109, label %$24, label %$23\n$24:\n  %110 = phi i64 [%105, %$18] ; # Exe\n  %111 = phi i64 [%106, %$18] ; # X\n; # (let Y (val (car (val $Intern))) (if (nil? (cdr X)) (val Y) (val ...\n; # (val $Intern)\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %113 = load i64, i64* %112\n; # (car (val $Intern))\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n; # (val (car (val $Intern)))\n  %116 = inttoptr i64 %115 to i64*\n  %117 = load i64, i64* %116\n; # (if (nil? (cdr X)) (val Y) (val 2 Y))\n; # (cdr X)\n  %118 = inttoptr i64 %111 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n; # (nil? (cdr X))\n  %121 = icmp eq i64 %120, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %121, label %$25, label %$26\n$25:\n  %122 = phi i64 [%110, %$24] ; # Exe\n  %123 = phi i64 [%111, %$24] ; # X\n  %124 = phi i64 [%117, %$24] ; # Y\n; # (val Y)\n  %125 = inttoptr i64 %124 to i64*\n  %126 = load i64, i64* %125\n  br label %$27\n$26:\n  %127 = phi i64 [%110, %$24] ; # Exe\n  %128 = phi i64 [%111, %$24] ; # X\n  %129 = phi i64 [%117, %$24] ; # Y\n; # (val 2 Y)\n  %130 = inttoptr i64 %129 to i64*\n  %131 = getelementptr i64, i64* %130, i32 1\n  %132 = load i64, i64* %131\n  br label %$27\n$27:\n  %133 = phi i64 [%122, %$25], [%127, %$26] ; # Exe\n  %134 = phi i64 [%123, %$25], [%128, %$26] ; # X\n  %135 = phi i64 [%124, %$25], [%129, %$26] ; # Y\n  %136 = phi i64 [%126, %$25], [%132, %$26] ; # ->\n  br label %$7\n$23:\n  %137 = phi i64 [%105, %$18] ; # Exe\n  %138 = phi i64 [%106, %$18] ; # X\n; # (car X)\n  %139 = inttoptr i64 %138 to i64*\n  %140 = load i64, i64* %139\n; # (t? (car X))\n  %141 = icmp eq i64 %140, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %141, label %$29, label %$28\n$29:\n  %142 = phi i64 [%137, %$23] ; # Exe\n  %143 = phi i64 [%138, %$23] ; # X\n; # (if (nil? (val 2 X)) (val $Transient) (val 2 $Transient))\n; # (val 2 X)\n  %144 = inttoptr i64 %143 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  %146 = load i64, i64* %145\n; # (nil? (val 2 X))\n  %147 = icmp eq i64 %146, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %147, label %$30, label %$31\n$30:\n  %148 = phi i64 [%142, %$29] ; # Exe\n  %149 = phi i64 [%143, %$29] ; # X\n; # (val $Transient)\n  %150 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %151 = load i64, i64* %150\n  br label %$32\n$31:\n  %152 = phi i64 [%142, %$29] ; # Exe\n  %153 = phi i64 [%143, %$29] ; # X\n; # (val 2 $Transient)\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  %156 = load i64, i64* %155\n  br label %$32\n$32:\n  %157 = phi i64 [%148, %$30], [%152, %$31] ; # Exe\n  %158 = phi i64 [%149, %$30], [%153, %$31] ; # X\n  %159 = phi i64 [%151, %$30], [%156, %$31] ; # ->\n  br label %$7\n$28:\n  %160 = phi i64 [%137, %$23] ; # Exe\n  %161 = phi i64 [%138, %$23] ; # X\n; # (val $Extern)\n  %162 = load i64, i64* @$Extern\n  br label %$7\n$7:\n  %163 = phi i64 [%51, %$12], [%58, %$15], [%71, %$17], [%101, %$22], [%133, %$27], [%157, %$32], [%160, %$28] ; # Exe\n  %164 = phi i64 [%52, %$12], [%59, %$15], [%72, %$17], [%102, %$22], [%134, %$27], [%158, %$32], [%161, %$28] ; # X\n  %165 = phi i64 [%54, %$12], [%66, %$15], [%74, %$17], [%104, %$22], [%136, %$27], [%159, %$32], [%162, %$28] ; # ->\n  ret i64 %165\n}\n\ndefine i64 @_Symbols(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (atom X) (val $Intern) (let Y (eval (++ X)) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (atom X) (val $Intern) (let Y (eval (++ X)) (if (pair Y) (let...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (val $Intern)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  br label %$4\n$3:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%3, %$1] ; # X\n; # (let Y (eval (++ X)) (if (pair Y) (let L Y (loop (needNsp Exe (ne...\n; # (++ X)\n  %12 = inttoptr i64 %11 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$7, label %$6\n$7:\n  %18 = phi i64 [%15, %$3] ; # X\n  br label %$5\n$6:\n  %19 = phi i64 [%15, %$3] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%19, %$6] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$5\n$8:\n  %25 = phi i64 [%19, %$6] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$5\n$5:\n  %27 = phi i64 [%18, %$7], [%22, %$9], [%25, %$8] ; # X\n  %28 = phi i64 [%18, %$7], [%24, %$9], [%26, %$8] ; # ->\n; # (if (pair Y) (let L Y (loop (needNsp Exe (needSymb Exe (++ L))) (...\n; # (pair Y)\n  %29 = and i64 %28, 15\n  %30 = icmp eq i64 %29, 0\n  br i1 %30, label %$10, label %$11\n$10:\n  %31 = phi i64 [%10, %$5] ; # Exe\n  %32 = phi i64 [%14, %$5] ; # X\n  %33 = phi i64 [%28, %$5] ; # Y\n; # (let L Y (loop (needNsp Exe (needSymb Exe (++ L))) (? (atom L))) ...\n; # (loop (needNsp Exe (needSymb Exe (++ L))) (? (atom L)))\n  br label %$13\n$13:\n  %34 = phi i64 [%31, %$10], [%67, %$20] ; # Exe\n  %35 = phi i64 [%32, %$10], [%68, %$20] ; # X\n  %36 = phi i64 [%33, %$10], [%69, %$20] ; # Y\n  %37 = phi i64 [%33, %$10], [%70, %$20] ; # L\n; # (++ L)\n  %38 = inttoptr i64 %37 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n  %41 = load i64, i64* %38\n; # (needSymb Exe (++ L))\n  %42 = xor i64 %41, 8\n  %43 = and i64 %42, 14\n  %44 = icmp eq i64 %43, 0\n  br i1 %44, label %$15, label %$14\n$14:\n  %45 = phi i64 [%41, %$13] ; # X\n  %46 = phi i64 [%34, %$13] ; # Exe\n  call void @symErr(i64 %46, i64 %45)\n  unreachable\n$15:\n  %47 = phi i64 [%41, %$13] ; # X\n  %48 = phi i64 [%34, %$13] ; # Exe\n; # (needNsp Exe (needSymb Exe (++ L)))\n  %49 = inttoptr i64 %47 to i64*\n  %50 = load i64, i64* %49\n  %51 = and i64 %50, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$17, label %$16\n$17:\n  %53 = phi i64 [%47, %$15] ; # X\n  %54 = phi i64 [%34, %$15] ; # Exe\n  %55 = inttoptr i64 %50 to i64*\n  %56 = load i64, i64* %55\n  %57 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64), %56\n  br label %$16\n$16:\n  %58 = phi i64 [%47, %$15], [%53, %$17] ; # X\n  %59 = phi i64 [%34, %$15], [%54, %$17] ; # Exe\n  %60 = phi i1 [0, %$15], [%57, %$17] ; # ->\n  br i1 %60, label %$19, label %$18\n$18:\n  %61 = phi i64 [%58, %$16] ; # X\n  %62 = phi i64 [%59, %$16] ; # Exe\n  call void @symNspErr(i64 %62, i64 %61)\n  unreachable\n$19:\n  %63 = phi i64 [%58, %$16] ; # X\n  %64 = phi i64 [%59, %$16] ; # Exe\n; # (? (atom L))\n; # (atom L)\n  %65 = and i64 %40, 15\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$21, label %$20\n$20:\n  %67 = phi i64 [%34, %$19] ; # Exe\n  %68 = phi i64 [%35, %$19] ; # X\n  %69 = phi i64 [%36, %$19] ; # Y\n  %70 = phi i64 [%40, %$19] ; # L\n  br label %$13\n$21:\n  %71 = phi i64 [%34, %$19] ; # Exe\n  %72 = phi i64 [%35, %$19] ; # X\n  %73 = phi i64 [%36, %$19] ; # Y\n  %74 = phi i64 [%40, %$19] ; # L\n  %75 = phi i64 [0, %$19] ; # ->\n; # (if (atom X) (prog1 (val $Intern) (set $Intern Y)) (let Z (save (...\n; # (atom X)\n  %76 = and i64 %72, 15\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$22, label %$23\n$22:\n  %78 = phi i64 [%71, %$21] ; # Exe\n  %79 = phi i64 [%72, %$21] ; # X\n  %80 = phi i64 [%73, %$21] ; # Y\n  %81 = phi i64 [%74, %$21] ; # L\n; # (prog1 (val $Intern) (set $Intern Y))\n; # (val $Intern)\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %83 = load i64, i64* %82\n; # (set $Intern Y)\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %84\n  br label %$24\n$23:\n  %85 = phi i64 [%71, %$21] ; # Exe\n  %86 = phi i64 [%72, %$21] ; # X\n  %87 = phi i64 [%73, %$21] ; # Y\n  %88 = phi i64 [%74, %$21] ; # L\n; # (let Z (save (val $Intern)) (set $Intern Y) (prog1 (run X) (set $...\n; # (val $Intern)\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %90 = load i64, i64* %89\n; # (save (val $Intern))\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %92 = load i64, i64* %91\n  %93 = alloca i64, i64 2, align 16\n  %94 = ptrtoint i64* %93 to i64\n  %95 = inttoptr i64 %94 to i64*\n  store i64 %90, i64* %95\n  %96 = add i64 %94, 8\n  %97 = inttoptr i64 %96 to i64*\n  store i64 %92, i64* %97\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %94, i64* %98\n; # (set $Intern Y)\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %87, i64* %99\n; # (prog1 (run X) (set $Intern Z))\n; # (run X)\n  br label %$25\n$25:\n  %100 = phi i64 [%86, %$23], [%130, %$34] ; # Prg\n  %101 = inttoptr i64 %100 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = load i64, i64* %101\n  %105 = and i64 %103, 15\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$28, label %$26\n$28:\n  %107 = phi i64 [%103, %$25] ; # Prg\n  %108 = phi i64 [%104, %$25] ; # X\n  %109 = and i64 %108, 6\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$31, label %$30\n$31:\n  %111 = phi i64 [%108, %$28] ; # X\n  br label %$29\n$30:\n  %112 = phi i64 [%108, %$28] ; # X\n  %113 = and i64 %112, 8\n  %114 = icmp ne i64 %113, 0\n  br i1 %114, label %$33, label %$32\n$33:\n  %115 = phi i64 [%112, %$30] ; # X\n  %116 = inttoptr i64 %115 to i64*\n  %117 = load i64, i64* %116\n  br label %$29\n$32:\n  %118 = phi i64 [%112, %$30] ; # X\n  %119 = call i64 @evList(i64 %118)\n  br label %$29\n$29:\n  %120 = phi i64 [%111, %$31], [%115, %$33], [%118, %$32] ; # X\n  %121 = phi i64 [%111, %$31], [%117, %$33], [%119, %$32] ; # ->\n  br label %$27\n$26:\n  %122 = phi i64 [%103, %$25] ; # Prg\n  %123 = phi i64 [%104, %$25] ; # X\n  %124 = and i64 %123, 15\n  %125 = icmp eq i64 %124, 0\n  br i1 %125, label %$35, label %$34\n$35:\n  %126 = phi i64 [%122, %$26] ; # Prg\n  %127 = phi i64 [%123, %$26] ; # X\n  %128 = call i64 @evList(i64 %127)\n  %129 = icmp ne i64 %128, 0\n  br label %$34\n$34:\n  %130 = phi i64 [%122, %$26], [%126, %$35] ; # Prg\n  %131 = phi i64 [%123, %$26], [%127, %$35] ; # X\n  %132 = phi i1 [0, %$26], [%129, %$35] ; # ->\n  br label %$25\n$27:\n  %133 = phi i64 [%107, %$29] ; # Prg\n  %134 = phi i64 [%121, %$29] ; # ->\n; # (set $Intern Z)\n  %135 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %90, i64* %135\n; # (drop *Safe)\n  %136 = inttoptr i64 %94 to i64*\n  %137 = getelementptr i64, i64* %136, i32 1\n  %138 = load i64, i64* %137\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %138, i64* %139\n  br label %$24\n$24:\n  %140 = phi i64 [%78, %$22], [%85, %$27] ; # Exe\n  %141 = phi i64 [%79, %$22], [%86, %$27] ; # X\n  %142 = phi i64 [%80, %$22], [%87, %$27] ; # Y\n  %143 = phi i64 [%81, %$22], [%88, %$27] ; # L\n  %144 = phi i64 [%83, %$22], [%134, %$27] ; # ->\n  br label %$12\n$11:\n  %145 = phi i64 [%10, %$5] ; # Exe\n  %146 = phi i64 [%14, %$5] ; # X\n  %147 = phi i64 [%28, %$5] ; # Y\n; # (let F (t? Y) (when F (setq Y (eval (++ X)))) (if (or (nil? (val ...\n; # (t? Y)\n  %148 = icmp eq i64 %147, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n; # (when F (setq Y (eval (++ X))))\n  br i1 %148, label %$36, label %$37\n$36:\n  %149 = phi i64 [%145, %$11] ; # Exe\n  %150 = phi i64 [%146, %$11] ; # X\n  %151 = phi i64 [%147, %$11] ; # Y\n  %152 = phi i1 [%148, %$11] ; # F\n; # (++ X)\n  %153 = inttoptr i64 %150 to i64*\n  %154 = getelementptr i64, i64* %153, i32 1\n  %155 = load i64, i64* %154\n  %156 = load i64, i64* %153\n; # (eval (++ X))\n  %157 = and i64 %156, 6\n  %158 = icmp ne i64 %157, 0\n  br i1 %158, label %$40, label %$39\n$40:\n  %159 = phi i64 [%156, %$36] ; # X\n  br label %$38\n$39:\n  %160 = phi i64 [%156, %$36] ; # X\n  %161 = and i64 %160, 8\n  %162 = icmp ne i64 %161, 0\n  br i1 %162, label %$42, label %$41\n$42:\n  %163 = phi i64 [%160, %$39] ; # X\n  %164 = inttoptr i64 %163 to i64*\n  %165 = load i64, i64* %164\n  br label %$38\n$41:\n  %166 = phi i64 [%160, %$39] ; # X\n  %167 = call i64 @evList(i64 %166)\n  br label %$38\n$38:\n  %168 = phi i64 [%159, %$40], [%163, %$42], [%166, %$41] ; # X\n  %169 = phi i64 [%159, %$40], [%165, %$42], [%167, %$41] ; # ->\n  br label %$37\n$37:\n  %170 = phi i64 [%145, %$11], [%149, %$38] ; # Exe\n  %171 = phi i64 [%146, %$11], [%155, %$38] ; # X\n  %172 = phi i64 [%147, %$11], [%169, %$38] ; # Y\n  %173 = phi i1 [%148, %$11], [%152, %$38] ; # F\n; # (if (or (nil? (val (needSymb Exe Y))) (== @ Y)) (set (chkVar Exe ...\n; # (or (nil? (val (needSymb Exe Y))) (== @ Y))\n; # (needSymb Exe Y)\n  %174 = xor i64 %172, 8\n  %175 = and i64 %174, 14\n  %176 = icmp eq i64 %175, 0\n  br i1 %176, label %$45, label %$44\n$44:\n  %177 = phi i64 [%172, %$37] ; # X\n  %178 = phi i64 [%170, %$37] ; # Exe\n  call void @symErr(i64 %178, i64 %177)\n  unreachable\n$45:\n  %179 = phi i64 [%172, %$37] ; # X\n  %180 = phi i64 [%170, %$37] ; # Exe\n; # (val (needSymb Exe Y))\n  %181 = inttoptr i64 %179 to i64*\n  %182 = load i64, i64* %181\n; # (nil? (val (needSymb Exe Y)))\n  %183 = icmp eq i64 %182, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %183, label %$43, label %$46\n$46:\n  %184 = phi i64 [%170, %$45] ; # Exe\n  %185 = phi i64 [%171, %$45] ; # X\n  %186 = phi i64 [%172, %$45] ; # Y\n  %187 = phi i1 [%173, %$45] ; # F\n; # (== @ Y)\n  %188 = icmp eq i64 %182, %186\n  br label %$43\n$43:\n  %189 = phi i64 [%170, %$45], [%184, %$46] ; # Exe\n  %190 = phi i64 [%171, %$45], [%185, %$46] ; # X\n  %191 = phi i64 [%172, %$45], [%186, %$46] ; # Y\n  %192 = phi i1 [%173, %$45], [%187, %$46] ; # F\n  %193 = phi i1 [1, %$45], [%188, %$46] ; # ->\n  br i1 %193, label %$47, label %$48\n$47:\n  %194 = phi i64 [%189, %$43] ; # Exe\n  %195 = phi i64 [%190, %$43] ; # X\n  %196 = phi i64 [%191, %$43] ; # Y\n  %197 = phi i1 [%192, %$43] ; # F\n; # (set (chkVar Exe Y) (cons $Tilde (cons $Nil $Nil)))\n; # (chkVar Exe Y)\n  %198 = icmp uge i64 %196, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %198, label %$51, label %$50\n$51:\n  %199 = phi i64 [%196, %$47] ; # X\n  %200 = phi i64 [%194, %$47] ; # Exe\n  %201 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %199\n  br label %$50\n$50:\n  %202 = phi i64 [%196, %$47], [%199, %$51] ; # X\n  %203 = phi i64 [%194, %$47], [%200, %$51] ; # Exe\n  %204 = phi i1 [0, %$47], [%201, %$51] ; # ->\n  br i1 %204, label %$52, label %$53\n$52:\n  %205 = phi i64 [%202, %$50] ; # X\n  %206 = phi i64 [%203, %$50] ; # Exe\n  call void @protErr(i64 %206, i64 %205)\n  unreachable\n$53:\n  %207 = phi i64 [%202, %$50] ; # X\n  %208 = phi i64 [%203, %$50] ; # Exe\n; # (cons $Nil $Nil)\n  %209 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons $Tilde (cons $Nil $Nil))\n  %210 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64), i64 %209)\n  %211 = inttoptr i64 %207 to i64*\n  store i64 %210, i64* %211\n  br label %$49\n$48:\n  %212 = phi i64 [%189, %$43] ; # Exe\n  %213 = phi i64 [%190, %$43] ; # X\n  %214 = phi i64 [%191, %$43] ; # Y\n  %215 = phi i1 [%192, %$43] ; # F\n; # (needNsp Exe Y)\n  %216 = inttoptr i64 %214 to i64*\n  %217 = load i64, i64* %216\n  %218 = and i64 %217, 15\n  %219 = icmp eq i64 %218, 0\n  br i1 %219, label %$55, label %$54\n$55:\n  %220 = phi i64 [%214, %$48] ; # X\n  %221 = phi i64 [%212, %$48] ; # Exe\n  %222 = inttoptr i64 %217 to i64*\n  %223 = load i64, i64* %222\n  %224 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64), %223\n  br label %$54\n$54:\n  %225 = phi i64 [%214, %$48], [%220, %$55] ; # X\n  %226 = phi i64 [%212, %$48], [%221, %$55] ; # Exe\n  %227 = phi i1 [0, %$48], [%224, %$55] ; # ->\n  br i1 %227, label %$57, label %$56\n$56:\n  %228 = phi i64 [%225, %$54] ; # X\n  %229 = phi i64 [%226, %$54] ; # Exe\n  call void @symNspErr(i64 %229, i64 %228)\n  unreachable\n$57:\n  %230 = phi i64 [%225, %$54] ; # X\n  %231 = phi i64 [%226, %$54] ; # Exe\n  br label %$49\n$49:\n  %232 = phi i64 [%194, %$53], [%212, %$57] ; # Exe\n  %233 = phi i64 [%195, %$53], [%213, %$57] ; # X\n  %234 = phi i64 [%196, %$53], [%214, %$57] ; # Y\n  %235 = phi i1 [%197, %$53], [%215, %$57] ; # F\n  %236 = phi i64 [%210, %$53], [%230, %$57] ; # ->\n; # (let R (setq Y (save (cons Y $Nil))) (while (pair X) (setq Y (set...\n; # (cons Y $Nil)\n  %237 = call i64 @cons(i64 %234, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons Y $Nil))\n  %238 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %239 = load i64, i64* %238\n  %240 = alloca i64, i64 2, align 16\n  %241 = ptrtoint i64* %240 to i64\n  %242 = inttoptr i64 %241 to i64*\n  store i64 %237, i64* %242\n  %243 = add i64 %241, 8\n  %244 = inttoptr i64 %243 to i64*\n  store i64 %239, i64* %244\n  %245 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %241, i64* %245\n; # (while (pair X) (setq Y (set 2 Y (cons (needNsp Exe (needSymb Exe...\n  br label %$58\n$58:\n  %246 = phi i64 [%232, %$49], [%253, %$71] ; # Exe\n  %247 = phi i64 [%233, %$49], [%260, %$71] ; # X\n  %248 = phi i64 [%237, %$49], [%298, %$71] ; # Y\n  %249 = phi i1 [%235, %$49], [%256, %$71] ; # F\n  %250 = phi i64 [%237, %$49], [%257, %$71] ; # R\n; # (pair X)\n  %251 = and i64 %247, 15\n  %252 = icmp eq i64 %251, 0\n  br i1 %252, label %$59, label %$60\n$59:\n  %253 = phi i64 [%246, %$58] ; # Exe\n  %254 = phi i64 [%247, %$58] ; # X\n  %255 = phi i64 [%248, %$58] ; # Y\n  %256 = phi i1 [%249, %$58] ; # F\n  %257 = phi i64 [%250, %$58] ; # R\n; # (set 2 Y (cons (needNsp Exe (needSymb Exe (eval (++ X)))) $Nil))\n; # (++ X)\n  %258 = inttoptr i64 %254 to i64*\n  %259 = getelementptr i64, i64* %258, i32 1\n  %260 = load i64, i64* %259\n  %261 = load i64, i64* %258\n; # (eval (++ X))\n  %262 = and i64 %261, 6\n  %263 = icmp ne i64 %262, 0\n  br i1 %263, label %$63, label %$62\n$63:\n  %264 = phi i64 [%261, %$59] ; # X\n  br label %$61\n$62:\n  %265 = phi i64 [%261, %$59] ; # X\n  %266 = and i64 %265, 8\n  %267 = icmp ne i64 %266, 0\n  br i1 %267, label %$65, label %$64\n$65:\n  %268 = phi i64 [%265, %$62] ; # X\n  %269 = inttoptr i64 %268 to i64*\n  %270 = load i64, i64* %269\n  br label %$61\n$64:\n  %271 = phi i64 [%265, %$62] ; # X\n  %272 = call i64 @evList(i64 %271)\n  br label %$61\n$61:\n  %273 = phi i64 [%264, %$63], [%268, %$65], [%271, %$64] ; # X\n  %274 = phi i64 [%264, %$63], [%270, %$65], [%272, %$64] ; # ->\n; # (needSymb Exe (eval (++ X)))\n  %275 = xor i64 %274, 8\n  %276 = and i64 %275, 14\n  %277 = icmp eq i64 %276, 0\n  br i1 %277, label %$67, label %$66\n$66:\n  %278 = phi i64 [%274, %$61] ; # X\n  %279 = phi i64 [%253, %$61] ; # Exe\n  call void @symErr(i64 %279, i64 %278)\n  unreachable\n$67:\n  %280 = phi i64 [%274, %$61] ; # X\n  %281 = phi i64 [%253, %$61] ; # Exe\n; # (needNsp Exe (needSymb Exe (eval (++ X))))\n  %282 = inttoptr i64 %280 to i64*\n  %283 = load i64, i64* %282\n  %284 = and i64 %283, 15\n  %285 = icmp eq i64 %284, 0\n  br i1 %285, label %$69, label %$68\n$69:\n  %286 = phi i64 [%280, %$67] ; # X\n  %287 = phi i64 [%253, %$67] ; # Exe\n  %288 = inttoptr i64 %283 to i64*\n  %289 = load i64, i64* %288\n  %290 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64), %289\n  br label %$68\n$68:\n  %291 = phi i64 [%280, %$67], [%286, %$69] ; # X\n  %292 = phi i64 [%253, %$67], [%287, %$69] ; # Exe\n  %293 = phi i1 [0, %$67], [%290, %$69] ; # ->\n  br i1 %293, label %$71, label %$70\n$70:\n  %294 = phi i64 [%291, %$68] ; # X\n  %295 = phi i64 [%292, %$68] ; # Exe\n  call void @symNspErr(i64 %295, i64 %294)\n  unreachable\n$71:\n  %296 = phi i64 [%291, %$68] ; # X\n  %297 = phi i64 [%292, %$68] ; # Exe\n; # (cons (needNsp Exe (needSymb Exe (eval (++ X)))) $Nil)\n  %298 = call i64 @cons(i64 %296, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %299 = inttoptr i64 %255 to i64*\n  %300 = getelementptr i64, i64* %299, i32 1\n  store i64 %298, i64* %300\n  br label %$58\n$60:\n  %301 = phi i64 [%246, %$58] ; # Exe\n  %302 = phi i64 [%247, %$58] ; # X\n  %303 = phi i64 [%248, %$58] ; # Y\n  %304 = phi i1 [%249, %$58] ; # F\n  %305 = phi i64 [%250, %$58] ; # R\n; # (prog1 (val $Intern) (set $Intern R) (when F (set (val $NsLink) R...\n; # (val $Intern)\n  %306 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %307 = load i64, i64* %306\n; # (set $Intern R)\n  %308 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %305, i64* %308\n; # (when F (set (val $NsLink) R))\n  br i1 %304, label %$72, label %$73\n$72:\n  %309 = phi i64 [%301, %$60] ; # Exe\n  %310 = phi i64 [%302, %$60] ; # X\n  %311 = phi i64 [%303, %$60] ; # Y\n  %312 = phi i1 [%304, %$60] ; # F\n  %313 = phi i64 [%305, %$60] ; # R\n; # (set (val $NsLink) R)\n; # (val $NsLink)\n  %314 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 24) to i64) to i64*\n  %315 = load i64, i64* %314\n  %316 = inttoptr i64 %315 to i64*\n  store i64 %313, i64* %316\n  br label %$73\n$73:\n  %317 = phi i64 [%301, %$60], [%309, %$72] ; # Exe\n  %318 = phi i64 [%302, %$60], [%310, %$72] ; # X\n  %319 = phi i64 [%303, %$60], [%311, %$72] ; # Y\n  %320 = phi i1 [%304, %$60], [%312, %$72] ; # F\n  %321 = phi i64 [%305, %$60], [%313, %$72] ; # R\n; # (car R)\n  %322 = inttoptr i64 %321 to i64*\n  %323 = load i64, i64* %322\n; # (putSrc (car R) 0)\n  call void @putSrc(i64 %323, i64 0)\n; # (drop *Safe)\n  %324 = inttoptr i64 %241 to i64*\n  %325 = getelementptr i64, i64* %324, i32 1\n  %326 = load i64, i64* %325\n  %327 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %326, i64* %327\n  br label %$12\n$12:\n  %328 = phi i64 [%140, %$24], [%317, %$73] ; # Exe\n  %329 = phi i64 [%141, %$24], [%318, %$73] ; # X\n  %330 = phi i64 [%142, %$24], [%319, %$73] ; # Y\n  %331 = phi i64 [%144, %$24], [%307, %$73] ; # ->\n  br label %$4\n$4:\n  %332 = phi i64 [%6, %$2], [%328, %$12] ; # Exe\n  %333 = phi i64 [%7, %$2], [%329, %$12] ; # X\n  %334 = phi i64 [%9, %$2], [%331, %$12] ; # ->\n  ret i64 %334\n}\n\ndefine i64 @_Intern(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Sym (save (evSym X))) (cond ((sym? (val (tail S...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (save (evSym X))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (cond ((sym? (val (tail Sym))) $Nil) ((== (name @) ZERO) $Nil) (T...\n; # (tail Sym)\n  %13 = add i64 %4, -8\n; # (val (tail Sym))\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (sym? (val (tail Sym)))\n  %16 = and i64 %15, 8\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%0, %$1] ; # Exe\n  %19 = phi i64 [%3, %$1] ; # X\n  %20 = phi i64 [%4, %$1] ; # Sym\n  br label %$2\n$3:\n  %21 = phi i64 [%0, %$1] ; # Exe\n  %22 = phi i64 [%3, %$1] ; # X\n  %23 = phi i64 [%4, %$1] ; # Sym\n; # (name @)\n  br label %$5\n$5:\n  %24 = phi i64 [%15, %$3], [%30, %$6] ; # Tail\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$7, label %$6\n$6:\n  %27 = phi i64 [%24, %$5] ; # Tail\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  br label %$5\n$7:\n  %31 = phi i64 [%24, %$5] ; # Tail\n; # (== (name @) ZERO)\n  %32 = icmp eq i64 %31, 2\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%21, %$7] ; # Exe\n  %34 = phi i64 [%22, %$7] ; # X\n  %35 = phi i64 [%23, %$7] ; # Sym\n  br label %$2\n$8:\n  %36 = phi i64 [%21, %$7] ; # Exe\n  %37 = phi i64 [%22, %$7] ; # X\n  %38 = phi i64 [%23, %$7] ; # Sym\n; # (let Nm @ (if (nil? (eval (cadr X))) (let L (val $Intern) (intern...\n; # (if (nil? (eval (cadr X))) (let L (val $Intern) (intern Sym 0 Nm ...\n; # (cadr X)\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %41 to i64*\n  %43 = load i64, i64* %42\n; # (eval (cadr X))\n  %44 = and i64 %43, 6\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$12, label %$11\n$12:\n  %46 = phi i64 [%43, %$8] ; # X\n  br label %$10\n$11:\n  %47 = phi i64 [%43, %$8] ; # X\n  %48 = and i64 %47, 8\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$14, label %$13\n$14:\n  %50 = phi i64 [%47, %$11] ; # X\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n  br label %$10\n$13:\n  %53 = phi i64 [%47, %$11] ; # X\n  %54 = call i64 @evList(i64 %53)\n  br label %$10\n$10:\n  %55 = phi i64 [%46, %$12], [%50, %$14], [%53, %$13] ; # X\n  %56 = phi i64 [%46, %$12], [%52, %$14], [%54, %$13] ; # ->\n; # (nil? (eval (cadr X)))\n  %57 = icmp eq i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %57, label %$15, label %$16\n$15:\n  %58 = phi i64 [%36, %$10] ; # Exe\n  %59 = phi i64 [%37, %$10] ; # X\n  %60 = phi i64 [%38, %$10] ; # Sym\n  %61 = phi i64 [%31, %$10] ; # Nm\n; # (let L (val $Intern) (intern Sym 0 Nm (cdar (car L)) (cdr L) NO))...\n; # (val $Intern)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %63 = load i64, i64* %62\n; # (car L)\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n; # (cdar (car L))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 %67 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n; # (cdr L)\n  %71 = inttoptr i64 %63 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n; # (intern Sym 0 Nm (cdar (car L)) (cdr L) NO)\n  %74 = call i64 @intern(i64 %60, i64 0, i64 %61, i64 %70, i64 %73, i1 0)\n  br label %$17\n$16:\n  %75 = phi i64 [%36, %$10] ; # Exe\n  %76 = phi i64 [%37, %$10] ; # X\n  %77 = phi i64 [%38, %$10] ; # Sym\n  %78 = phi i64 [%31, %$10] ; # Nm\n; # (if (t? @) (cdar (car (val $Intern))) (cdar @))\n; # (t? @)\n  %79 = icmp eq i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %79, label %$18, label %$19\n$18:\n  %80 = phi i64 [%75, %$16] ; # Exe\n  %81 = phi i64 [%76, %$16] ; # X\n  %82 = phi i64 [%77, %$16] ; # Sym\n  %83 = phi i64 [%78, %$16] ; # Nm\n; # (val $Intern)\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %85 = load i64, i64* %84\n; # (car (val $Intern))\n  %86 = inttoptr i64 %85 to i64*\n  %87 = load i64, i64* %86\n; # (cdar (car (val $Intern)))\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n  %90 = inttoptr i64 %89 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n  br label %$20\n$19:\n  %93 = phi i64 [%75, %$16] ; # Exe\n  %94 = phi i64 [%76, %$16] ; # X\n  %95 = phi i64 [%77, %$16] ; # Sym\n  %96 = phi i64 [%78, %$16] ; # Nm\n; # (cdar @)\n  %97 = inttoptr i64 %56 to i64*\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 %98 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  br label %$20\n$20:\n  %102 = phi i64 [%80, %$18], [%93, %$19] ; # Exe\n  %103 = phi i64 [%81, %$18], [%94, %$19] ; # X\n  %104 = phi i64 [%82, %$18], [%95, %$19] ; # Sym\n  %105 = phi i64 [%83, %$18], [%96, %$19] ; # Nm\n  %106 = phi i64 [%92, %$18], [%101, %$19] ; # ->\n; # (intern Sym 0 Nm (if (t? @) (cdar (car (val $Intern))) (cdar @)) ...\n  %107 = call i64 @intern(i64 %77, i64 0, i64 %78, i64 %106, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i1 0)\n  br label %$17\n$17:\n  %108 = phi i64 [%58, %$15], [%102, %$20] ; # Exe\n  %109 = phi i64 [%59, %$15], [%103, %$20] ; # X\n  %110 = phi i64 [%60, %$15], [%104, %$20] ; # Sym\n  %111 = phi i64 [%61, %$15], [%105, %$20] ; # Nm\n  %112 = phi i64 [%74, %$15], [%107, %$20] ; # ->\n  br label %$2\n$2:\n  %113 = phi i64 [%18, %$4], [%33, %$9], [%108, %$17] ; # Exe\n  %114 = phi i64 [%19, %$4], [%34, %$9], [%109, %$17] ; # X\n  %115 = phi i64 [%20, %$4], [%35, %$9], [%110, %$17] ; # Sym\n  %116 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%112, %$17] ; # ->\n; # (drop *Safe)\n  %117 = inttoptr i64 %8 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n  %120 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %119, i64* %120\n  ret i64 %116\n}\n\ndefine i64 @_Hide(i64) align 8 {\n$1:\n; # (set $Transient (set 2 $Transient $Nil))\n; # (set 2 $Transient $Nil)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %2\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %3\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_BoxQ(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (and (symb? X) (not (sym? (val (tail...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (and (symb? X) (not (sym? (val (tail X)))) (== ZERO (name @))...\n; # (and (symb? X) (not (sym? (val (tail X)))) (== ZERO (name @)))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n; # (tail X)\n  %24 = add i64 %23, -8\n; # (val (tail X))\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n; # (sym? (val (tail X)))\n  %27 = and i64 %26, 8\n  %28 = icmp ne i64 %27, 0\n; # (not (sym? (val (tail X))))\n  %29 = icmp eq i1 %28, 0\n  br i1 %29, label %$9, label %$7\n$9:\n  %30 = phi i64 [%22, %$8] ; # Exe\n  %31 = phi i64 [%23, %$8] ; # X\n; # (name @)\n  br label %$10\n$10:\n  %32 = phi i64 [%26, %$9], [%38, %$11] ; # Tail\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$10] ; # Tail\n  %36 = inttoptr i64 %35 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n  br label %$10\n$12:\n  %39 = phi i64 [%32, %$10] ; # Tail\n; # (== ZERO (name @))\n  %40 = icmp eq i64 2, %39\n  br label %$7\n$7:\n  %41 = phi i64 [%0, %$2], [%22, %$8], [%30, %$12] ; # Exe\n  %42 = phi i64 [%18, %$2], [%23, %$8], [%31, %$12] ; # X\n  %43 = phi i1 [0, %$2], [0, %$8], [%40, %$12] ; # ->\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$7] ; # Exe\n  %45 = phi i64 [%42, %$7] ; # X\n  br label %$15\n$14:\n  %46 = phi i64 [%41, %$7] ; # Exe\n  %47 = phi i64 [%42, %$7] ; # X\n  br label %$15\n$15:\n  %48 = phi i64 [%44, %$13], [%46, %$14] ; # Exe\n  %49 = phi i64 [%45, %$13], [%47, %$14] ; # X\n  %50 = phi i64 [%45, %$13], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14] ; # ->\n  ret i64 %50\n}\n\ndefine i64 @_StrQ(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (cond ((not (symb? X)) $Nil) ((or (sym? ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((not (symb? X)) $Nil) ((or (sym? (val (tail X))) (findSym ...\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n; # (not (symb? X))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%18, %$2] ; # X\n; # (or (sym? (val (tail X))) (findSym X (name @) (val $Intern)))\n; # (tail X)\n  %27 = add i64 %26, -8\n; # (val (tail X))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n; # (sym? (val (tail X)))\n  %30 = and i64 %29, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$10, label %$11\n$11:\n  %32 = phi i64 [%25, %$8] ; # Exe\n  %33 = phi i64 [%26, %$8] ; # X\n; # (name @)\n  br label %$12\n$12:\n  %34 = phi i64 [%29, %$11], [%40, %$13] ; # Tail\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$14, label %$13\n$13:\n  %37 = phi i64 [%34, %$12] ; # Tail\n  %38 = inttoptr i64 %37 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n  br label %$12\n$14:\n  %41 = phi i64 [%34, %$12] ; # Tail\n; # (val $Intern)\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %43 = load i64, i64* %42\n; # (findSym X (name @) (val $Intern))\n  %44 = call i1 @findSym(i64 %33, i64 %41, i64 %43)\n  br label %$10\n$10:\n  %45 = phi i64 [%25, %$8], [%32, %$14] ; # Exe\n  %46 = phi i64 [%26, %$8], [%33, %$14] ; # X\n  %47 = phi i1 [1, %$8], [%44, %$14] ; # ->\n  br i1 %47, label %$16, label %$15\n$16:\n  %48 = phi i64 [%45, %$10] ; # Exe\n  %49 = phi i64 [%46, %$10] ; # X\n  br label %$7\n$15:\n  %50 = phi i64 [%45, %$10] ; # Exe\n  %51 = phi i64 [%46, %$10] ; # X\n  br label %$7\n$7:\n  %52 = phi i64 [%23, %$9], [%48, %$16], [%50, %$15] ; # Exe\n  %53 = phi i64 [%24, %$9], [%49, %$16], [%51, %$15] ; # X\n  %54 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16], [%51, %$15] ; # ->\n  ret i64 %54\n}\n\ndefine i64 @_Zap(i64) align 8 {\n$1:\n; # (let Sym (needSymb Exe (eval (cadr Exe))) (if (sym? (val (tail Sy...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needSymb Exe (eval (cadr Exe)))\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$7:\n  %22 = phi i64 [%18, %$2] ; # X\n  %23 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %23, i64 %22)\n  unreachable\n$8:\n  %24 = phi i64 [%18, %$2] ; # X\n  %25 = phi i64 [%0, %$2] ; # Exe\n; # (if (sym? (val (tail Sym))) (dbZap Sym) (unintern Sym (name @) (c...\n; # (tail Sym)\n  %26 = add i64 %24, -8\n; # (val (tail Sym))\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (sym? (val (tail Sym)))\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$9, label %$10\n$9:\n  %31 = phi i64 [%0, %$8] ; # Exe\n  %32 = phi i64 [%24, %$8] ; # Sym\n; # (dbZap Sym)\n  call void @dbZap(i64 %32)\n  br label %$11\n$10:\n  %33 = phi i64 [%0, %$8] ; # Exe\n  %34 = phi i64 [%24, %$8] ; # Sym\n; # (name @)\n  br label %$12\n$12:\n  %35 = phi i64 [%28, %$10], [%41, %$13] ; # Tail\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$13:\n  %38 = phi i64 [%35, %$12] ; # Tail\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  br label %$12\n$14:\n  %42 = phi i64 [%35, %$12] ; # Tail\n; # (val $Intern)\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %44 = load i64, i64* %43\n; # (car (val $Intern))\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n; # (cdar (car (val $Intern)))\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 %48 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n; # (unintern Sym (name @) (cdar (car (val $Intern))))\n  call void @unintern(i64 %34, i64 %42, i64 %51)\n  br label %$11\n$11:\n  %52 = phi i64 [%31, %$9], [%33, %$14] ; # Exe\n  %53 = phi i64 [%32, %$9], [%34, %$14] ; # Sym\n  ret i64 %53\n}\n\ndefine i64 @_Chop(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (or (pair X) (nil? X)) X (let Tail (...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (or (pair X) (nil? X)) X (let Tail (val (tail (xSym X))) (if ...\n; # (or (pair X) (nil? X))\n; # (pair X)\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n; # (nil? X)\n  %23 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%0, %$2], [%21, %$8] ; # Exe\n  %25 = phi i64 [%18, %$2], [%22, %$8] ; # X\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$9, label %$10\n$9:\n  %27 = phi i64 [%24, %$7] ; # Exe\n  %28 = phi i64 [%25, %$7] ; # X\n  br label %$11\n$10:\n  %29 = phi i64 [%24, %$7] ; # Exe\n  %30 = phi i64 [%25, %$7] ; # X\n; # (let Tail (val (tail (xSym X))) (if (sym? Tail) (chopExtNm (name ...\n; # (xSym X)\n  %31 = call i64 @xSym(i64 %30)\n; # (tail (xSym X))\n  %32 = add i64 %31, -8\n; # (val (tail (xSym X)))\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n; # (if (sym? Tail) (chopExtNm (name (& Tail -9))) (let (P (push 0 (n...\n; # (sym? Tail)\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$12, label %$13\n$12:\n  %37 = phi i64 [%29, %$10] ; # Exe\n  %38 = phi i64 [%30, %$10] ; # X\n  %39 = phi i64 [%34, %$10] ; # Tail\n; # (& Tail -9)\n  %40 = and i64 %39, -9\n; # (name (& Tail -9))\n  br label %$15\n$15:\n  %41 = phi i64 [%40, %$12], [%47, %$16] ; # Tail\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$17, label %$16\n$16:\n  %44 = phi i64 [%41, %$15] ; # Tail\n  %45 = inttoptr i64 %44 to i64*\n  %46 = getelementptr i64, i64* %45, i32 1\n  %47 = load i64, i64* %46\n  br label %$15\n$17:\n  %48 = phi i64 [%41, %$15] ; # Tail\n; # (chopExtNm (name (& Tail -9)))\n  %49 = call i64 @chopExtNm(i64 %48)\n  br label %$14\n$13:\n  %50 = phi i64 [%29, %$10] ; # Exe\n  %51 = phi i64 [%30, %$10] ; # X\n  %52 = phi i64 [%34, %$10] ; # Tail\n; # (let (P (push 0 (name Tail)) C (symChar P)) (if C (save Tail (let...\n; # (name Tail)\n  br label %$18\n$18:\n  %53 = phi i64 [%52, %$13], [%59, %$19] ; # Tail\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$20, label %$19\n$19:\n  %56 = phi i64 [%53, %$18] ; # Tail\n  %57 = inttoptr i64 %56 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  br label %$18\n$20:\n  %60 = phi i64 [%53, %$18] ; # Tail\n; # (push 0 (name Tail))\n  %61 = alloca i64, i64 2, align 16\n  store i64 0, i64* %61\n  %62 = getelementptr i64, i64* %61, i32 1\n  store i64 %60, i64* %62\n; # (symChar P)\n  %63 = call i32 @symChar(i64* %61)\n; # (if C (save Tail (let (Y (cons (mkChar C) $Nil) R (save Y)) (whil...\n  %64 = icmp ne i32 %63, 0\n  br i1 %64, label %$21, label %$22\n$21:\n  %65 = phi i64 [%50, %$20] ; # Exe\n  %66 = phi i64 [%51, %$20] ; # X\n  %67 = phi i64 [%52, %$20] ; # Tail\n  %68 = phi i64* [%61, %$20] ; # P\n  %69 = phi i32 [%63, %$20] ; # C\n; # (save Tail (let (Y (cons (mkChar C) $Nil) R (save Y)) (while (set...\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %71 = load i64, i64* %70\n  %72 = alloca i64, i64 2, align 16\n  %73 = ptrtoint i64* %72 to i64\n  %74 = inttoptr i64 %73 to i64*\n  store i64 %67, i64* %74\n  %75 = add i64 %73, 8\n  %76 = inttoptr i64 %75 to i64*\n  store i64 %71, i64* %76\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %77\n; # (let (Y (cons (mkChar C) $Nil) R (save Y)) (while (setq C (symCha...\n; # (mkChar C)\n  %78 = call i64 @mkChar(i32 %69)\n; # (cons (mkChar C) $Nil)\n  %79 = call i64 @cons(i64 %78, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %81 = load i64, i64* %80\n  %82 = alloca i64, i64 2, align 16\n  %83 = ptrtoint i64* %82 to i64\n  %84 = inttoptr i64 %83 to i64*\n  store i64 %79, i64* %84\n  %85 = add i64 %83, 8\n  %86 = inttoptr i64 %85 to i64*\n  store i64 %81, i64* %86\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %83, i64* %87\n; # (while (setq C (symChar P)) (setq Y (set 2 Y (cons (mkChar C) $Ni...\n  br label %$24\n$24:\n  %88 = phi i64 [%65, %$21], [%97, %$25] ; # Exe\n  %89 = phi i64 [%66, %$21], [%98, %$25] ; # X\n  %90 = phi i64 [%67, %$21], [%99, %$25] ; # Tail\n  %91 = phi i64* [%68, %$21], [%100, %$25] ; # P\n  %92 = phi i32 [%69, %$21], [%101, %$25] ; # C\n  %93 = phi i64 [%79, %$21], [%105, %$25] ; # Y\n  %94 = phi i64 [%79, %$21], [%103, %$25] ; # R\n; # (symChar P)\n  %95 = call i32 @symChar(i64* %91)\n  %96 = icmp ne i32 %95, 0\n  br i1 %96, label %$25, label %$26\n$25:\n  %97 = phi i64 [%88, %$24] ; # Exe\n  %98 = phi i64 [%89, %$24] ; # X\n  %99 = phi i64 [%90, %$24] ; # Tail\n  %100 = phi i64* [%91, %$24] ; # P\n  %101 = phi i32 [%95, %$24] ; # C\n  %102 = phi i64 [%93, %$24] ; # Y\n  %103 = phi i64 [%94, %$24] ; # R\n; # (set 2 Y (cons (mkChar C) $Nil))\n; # (mkChar C)\n  %104 = call i64 @mkChar(i32 %101)\n; # (cons (mkChar C) $Nil)\n  %105 = call i64 @cons(i64 %104, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %106 = inttoptr i64 %102 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  store i64 %105, i64* %107\n  br label %$24\n$26:\n  %108 = phi i64 [%88, %$24] ; # Exe\n  %109 = phi i64 [%89, %$24] ; # X\n  %110 = phi i64 [%90, %$24] ; # Tail\n  %111 = phi i64* [%91, %$24] ; # P\n  %112 = phi i32 [%95, %$24] ; # C\n  %113 = phi i64 [%93, %$24] ; # Y\n  %114 = phi i64 [%94, %$24] ; # R\n; # drop\n  %115 = inttoptr i64 %73 to i64*\n  %116 = getelementptr i64, i64* %115, i32 1\n  %117 = load i64, i64* %116\n  %118 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %117, i64* %118\n  br label %$23\n$22:\n  %119 = phi i64 [%50, %$20] ; # Exe\n  %120 = phi i64 [%51, %$20] ; # X\n  %121 = phi i64 [%52, %$20] ; # Tail\n  %122 = phi i64* [%61, %$20] ; # P\n  %123 = phi i32 [%63, %$20] ; # C\n  br label %$23\n$23:\n  %124 = phi i64 [%108, %$26], [%119, %$22] ; # Exe\n  %125 = phi i64 [%109, %$26], [%120, %$22] ; # X\n  %126 = phi i64 [%110, %$26], [%121, %$22] ; # Tail\n  %127 = phi i64* [%111, %$26], [%122, %$22] ; # P\n  %128 = phi i32 [%112, %$26], [%123, %$22] ; # C\n  %129 = phi i64 [%114, %$26], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22] ; # ->\n  br label %$14\n$14:\n  %130 = phi i64 [%37, %$17], [%124, %$23] ; # Exe\n  %131 = phi i64 [%38, %$17], [%125, %$23] ; # X\n  %132 = phi i64 [%39, %$17], [%126, %$23] ; # Tail\n  %133 = phi i64 [%49, %$17], [%129, %$23] ; # ->\n  br label %$11\n$11:\n  %134 = phi i64 [%27, %$9], [%130, %$14] ; # Exe\n  %135 = phi i64 [%28, %$9], [%131, %$14] ; # X\n  %136 = phi i64 [%28, %$9], [%133, %$14] ; # ->\n  ret i64 %136\n}\n\ndefine i64 @_Pack(i64) align 8 {\n$1:\n; # (save -ZERO (let (X (cdr Exe) P (push 4 NIL ZERO NIL)) (link (ofs...\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %2 = load i64, i64* %1\n  %3 = alloca i64, i64 2, align 16\n  %4 = ptrtoint i64* %3 to i64\n  %5 = inttoptr i64 %4 to i64*\n  store i64 10, i64* %5\n  %6 = add i64 %4, 8\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %4, i64* %8\n; # (let (X (cdr Exe) P (push 4 NIL ZERO NIL)) (link (ofs P 2)) (whil...\n; # (cdr Exe)\n  %9 = inttoptr i64 %0 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (push 4 NIL ZERO NIL)\n  %12 = alloca i64, i64 4, align 16\n  store i64 4, i64* %12\n  %13 = getelementptr i64, i64* %12, i32 2\n  store i64 2, i64* %13\n; # (ofs P 2)\n  %14 = getelementptr i64, i64* %12, i32 2\n; # (link (ofs P 2))\n  %15 = ptrtoint i64* %14 to i64\n  %16 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %17 = load i64, i64* %16\n  %18 = inttoptr i64 %15 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  store i64 %17, i64* %19\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %15, i64* %20\n; # (while (pair X) (pack (safe (eval (++ X))) P))\n  br label %$2\n$2:\n  %21 = phi i64 [%0, %$1], [%26, %$5] ; # Exe\n  %22 = phi i64 [%11, %$1], [%31, %$5] ; # X\n  %23 = phi i64* [%12, %$1], [%28, %$5] ; # P\n; # (pair X)\n  %24 = and i64 %22, 15\n  %25 = icmp eq i64 %24, 0\n  br i1 %25, label %$3, label %$4\n$3:\n  %26 = phi i64 [%21, %$2] ; # Exe\n  %27 = phi i64 [%22, %$2] ; # X\n  %28 = phi i64* [%23, %$2] ; # P\n; # (++ X)\n  %29 = inttoptr i64 %27 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$7, label %$6\n$7:\n  %35 = phi i64 [%32, %$3] ; # X\n  br label %$5\n$6:\n  %36 = phi i64 [%32, %$3] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$9, label %$8\n$9:\n  %39 = phi i64 [%36, %$6] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$5\n$8:\n  %42 = phi i64 [%36, %$6] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$5\n$5:\n  %44 = phi i64 [%35, %$7], [%39, %$9], [%42, %$8] ; # X\n  %45 = phi i64 [%35, %$7], [%41, %$9], [%43, %$8] ; # ->\n; # (safe (eval (++ X)))\n  %46 = inttoptr i64 %4 to i64*\n  store i64 %45, i64* %46\n; # (pack (safe (eval (++ X))) P)\n  call void @pack(i64 %45, i64* %28)\n  br label %$2\n$4:\n  %47 = phi i64 [%21, %$2] ; # Exe\n  %48 = phi i64 [%22, %$2] ; # X\n  %49 = phi i64* [%23, %$2] ; # P\n; # (val 3 P)\n  %50 = getelementptr i64, i64* %49, i32 2\n  %51 = load i64, i64* %50\n; # (consStr (val 3 P))\n  %52 = call i64 @consStr(i64 %51)\n; # drop\n  %53 = inttoptr i64 %4 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %55, i64* %56\n  ret i64 %52\n}\n\ndefine i64 @_Glue(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X)))) (if (atom (eval (++ X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (if (atom (eval (++ X))) @ (let (Z (save @) P (push 4 NIL ZERO NI...\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (atom (eval (++ X)))\n  %46 = and i64 %45, 15\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$12, label %$13\n$12:\n  %48 = phi i64 [%0, %$7] ; # Exe\n  %49 = phi i64 [%31, %$7] ; # X\n  %50 = phi i64 [%20, %$7] ; # Y\n  br label %$14\n$13:\n  %51 = phi i64 [%0, %$7] ; # Exe\n  %52 = phi i64 [%31, %$7] ; # X\n  %53 = phi i64 [%20, %$7] ; # Y\n; # (let (Z (save @) P (push 4 NIL ZERO NIL)) (link (ofs P 2)) (loop ...\n; # (save @)\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %55 = load i64, i64* %54\n  %56 = alloca i64, i64 2, align 16\n  %57 = ptrtoint i64* %56 to i64\n  %58 = inttoptr i64 %57 to i64*\n  store i64 %45, i64* %58\n  %59 = add i64 %57, 8\n  %60 = inttoptr i64 %59 to i64*\n  store i64 %55, i64* %60\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %57, i64* %61\n; # (push 4 NIL ZERO NIL)\n  %62 = alloca i64, i64 4, align 16\n  store i64 4, i64* %62\n  %63 = getelementptr i64, i64* %62, i32 2\n  store i64 2, i64* %63\n; # (ofs P 2)\n  %64 = getelementptr i64, i64* %62, i32 2\n; # (link (ofs P 2))\n  %65 = ptrtoint i64* %64 to i64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  store i64 %67, i64* %69\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %70\n; # (loop (pack (++ Z) P) (? (atom Z)) (pack Y P))\n  br label %$15\n$15:\n  %71 = phi i64 [%51, %$13], [%82, %$16] ; # Exe\n  %72 = phi i64 [%52, %$13], [%83, %$16] ; # X\n  %73 = phi i64 [%53, %$13], [%84, %$16] ; # Y\n  %74 = phi i64 [%45, %$13], [%85, %$16] ; # Z\n  %75 = phi i64* [%62, %$13], [%86, %$16] ; # P\n; # (++ Z)\n  %76 = inttoptr i64 %74 to i64*\n  %77 = getelementptr i64, i64* %76, i32 1\n  %78 = load i64, i64* %77\n  %79 = load i64, i64* %76\n; # (pack (++ Z) P)\n  call void @pack(i64 %79, i64* %75)\n; # (? (atom Z))\n; # (atom Z)\n  %80 = and i64 %78, 15\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$17, label %$16\n$16:\n  %82 = phi i64 [%71, %$15] ; # Exe\n  %83 = phi i64 [%72, %$15] ; # X\n  %84 = phi i64 [%73, %$15] ; # Y\n  %85 = phi i64 [%78, %$15] ; # Z\n  %86 = phi i64* [%75, %$15] ; # P\n; # (pack Y P)\n  call void @pack(i64 %84, i64* %86)\n  br label %$15\n$17:\n  %87 = phi i64 [%71, %$15] ; # Exe\n  %88 = phi i64 [%72, %$15] ; # X\n  %89 = phi i64 [%73, %$15] ; # Y\n  %90 = phi i64 [%78, %$15] ; # Z\n  %91 = phi i64* [%75, %$15] ; # P\n  %92 = phi i64 [0, %$15] ; # ->\n; # (val 3 P)\n  %93 = getelementptr i64, i64* %91, i32 2\n  %94 = load i64, i64* %93\n; # (consStr (val 3 P))\n  %95 = call i64 @consStr(i64 %94)\n  br label %$14\n$14:\n  %96 = phi i64 [%48, %$12], [%87, %$17] ; # Exe\n  %97 = phi i64 [%49, %$12], [%88, %$17] ; # X\n  %98 = phi i64 [%50, %$12], [%89, %$17] ; # Y\n  %99 = phi i64 [%45, %$12], [%95, %$17] ; # ->\n; # (drop *Safe)\n  %100 = inttoptr i64 %24 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %102, i64* %103\n  ret i64 %99\n}\n\ndefine i64 @_Text(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (evSym X)) (if (nil? Y) Y (let (P (push 0 (xN...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (if (nil? Y) Y (let (P (push 0 (xName Y) NIL) Q (link (ofs P 1) T...\n; # (nil? Y)\n  %5 = icmp eq i64 %4, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n  %8 = phi i64 [%4, %$1] ; # Y\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n  %11 = phi i64 [%4, %$1] ; # Y\n; # (let (P (push 0 (xName Y) NIL) Q (link (ofs P 1) T) R (push 4 NIL...\n; # (xName Y)\n  %12 = call i64 @xName(i64 %11)\n; # (push 0 (xName Y) NIL)\n  %13 = alloca i64, i64 3, align 16\n  store i64 0, i64* %13\n  %14 = getelementptr i64, i64* %13, i32 1\n  store i64 %12, i64* %14\n; # (ofs P 1)\n  %15 = getelementptr i64, i64* %13, i32 1\n; # (link (ofs P 1) T)\n  %16 = ptrtoint i64* %15 to i64\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %18 = load i64, i64* %17\n  %19 = inttoptr i64 %16 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  store i64 %18, i64* %20\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %16, i64* %21\n; # (push 4 NIL ZERO NIL)\n  %22 = alloca i64, i64 4, align 16\n  store i64 4, i64* %22\n  %23 = getelementptr i64, i64* %22, i32 2\n  store i64 2, i64* %23\n; # (ofs R 2)\n  %24 = getelementptr i64, i64* %22, i32 2\n; # (link (ofs R 2))\n  %25 = ptrtoint i64* %24 to i64\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = inttoptr i64 %25 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  store i64 %27, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %25, i64* %30\n; # (while (pair (shift X)) (setq A (link (push (eval (car X)) NIL)))...\n  br label %$5\n$5:\n  %31 = phi i64 [%9, %$3], [%44, %$8] ; # Exe\n  %32 = phi i64 [%10, %$3], [%45, %$8] ; # X\n  %33 = phi i64 [%11, %$3], [%46, %$8] ; # Y\n  %34 = phi i64* [%13, %$3], [%47, %$8] ; # P\n  %35 = phi i64 [%16, %$3], [%48, %$8] ; # Q\n  %36 = phi i64* [%22, %$3], [%49, %$8] ; # R\n  %37 = phi i64 [%25, %$3], [%68, %$8] ; # A\n  %38 = phi i64 [0, %$3], [%75, %$8] ; # N\n; # (shift X)\n  %39 = inttoptr i64 %32 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (pair (shift X))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$6, label %$7\n$6:\n  %44 = phi i64 [%31, %$5] ; # Exe\n  %45 = phi i64 [%41, %$5] ; # X\n  %46 = phi i64 [%33, %$5] ; # Y\n  %47 = phi i64* [%34, %$5] ; # P\n  %48 = phi i64 [%35, %$5] ; # Q\n  %49 = phi i64* [%36, %$5] ; # R\n  %50 = phi i64 [%37, %$5] ; # A\n  %51 = phi i64 [%38, %$5] ; # N\n; # (car X)\n  %52 = inttoptr i64 %45 to i64*\n  %53 = load i64, i64* %52\n; # (eval (car X))\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$10, label %$9\n$10:\n  %56 = phi i64 [%53, %$6] ; # X\n  br label %$8\n$9:\n  %57 = phi i64 [%53, %$6] ; # X\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$12, label %$11\n$12:\n  %60 = phi i64 [%57, %$9] ; # X\n  %61 = inttoptr i64 %60 to i64*\n  %62 = load i64, i64* %61\n  br label %$8\n$11:\n  %63 = phi i64 [%57, %$9] ; # X\n  %64 = call i64 @evList(i64 %63)\n  br label %$8\n$8:\n  %65 = phi i64 [%56, %$10], [%60, %$12], [%63, %$11] ; # X\n  %66 = phi i64 [%56, %$10], [%62, %$12], [%64, %$11] ; # ->\n; # (push (eval (car X)) NIL)\n  %67 = alloca i64, i64 2, align 16\n  %68 = ptrtoint i64* %67 to i64\n  %69 = inttoptr i64 %68 to i64*\n  store i64 %66, i64* %69\n; # (link (push (eval (car X)) NIL))\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %71 = load i64, i64* %70\n  %72 = inttoptr i64 %68 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  store i64 %71, i64* %73\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %68, i64* %74\n; # (inc 'N)\n  %75 = add i64 %51, 1\n  br label %$5\n$7:\n  %76 = phi i64 [%31, %$5] ; # Exe\n  %77 = phi i64 [%41, %$5] ; # X\n  %78 = phi i64 [%33, %$5] ; # Y\n  %79 = phi i64* [%34, %$5] ; # P\n  %80 = phi i64 [%35, %$5] ; # Q\n  %81 = phi i64* [%36, %$5] ; # R\n  %82 = phi i64 [%37, %$5] ; # A\n  %83 = phi i64 [%38, %$5] ; # N\n; # (while (setq C (symByte P)) (cond ((<> C (char \"@\")) (byteSym C R...\n  br label %$13\n$13:\n  %84 = phi i64 [%76, %$7], [%240, %$16] ; # Exe\n  %85 = phi i64 [%77, %$7], [%241, %$16] ; # X\n  %86 = phi i64 [%78, %$7], [%242, %$16] ; # Y\n  %87 = phi i64* [%79, %$7], [%243, %$16] ; # P\n  %88 = phi i64 [%80, %$7], [%244, %$16] ; # Q\n  %89 = phi i64* [%81, %$7], [%245, %$16] ; # R\n  %90 = phi i64 [%82, %$7], [%246, %$16] ; # A\n  %91 = phi i64 [%83, %$7], [%247, %$16] ; # N\n; # (symByte P)\n  %92 = call i8 @symByte(i64* %87)\n  %93 = icmp ne i8 %92, 0\n  br i1 %93, label %$14, label %$15\n$14:\n  %94 = phi i64 [%84, %$13] ; # Exe\n  %95 = phi i64 [%85, %$13] ; # X\n  %96 = phi i64 [%86, %$13] ; # Y\n  %97 = phi i64* [%87, %$13] ; # P\n  %98 = phi i64 [%88, %$13] ; # Q\n  %99 = phi i64* [%89, %$13] ; # R\n  %100 = phi i64 [%90, %$13] ; # A\n  %101 = phi i64 [%91, %$13] ; # N\n  %102 = phi i8 [%92, %$13] ; # C\n; # (cond ((<> C (char \"@\")) (byteSym C R)) ((== (setq C (symByte P))...\n; # (<> C (char \"@\"))\n  %103 = icmp ne i8 %102, 64\n  br i1 %103, label %$18, label %$17\n$18:\n  %104 = phi i64 [%94, %$14] ; # Exe\n  %105 = phi i64 [%95, %$14] ; # X\n  %106 = phi i64 [%96, %$14] ; # Y\n  %107 = phi i64* [%97, %$14] ; # P\n  %108 = phi i64 [%98, %$14] ; # Q\n  %109 = phi i64* [%99, %$14] ; # R\n  %110 = phi i64 [%100, %$14] ; # A\n  %111 = phi i64 [%101, %$14] ; # N\n  %112 = phi i8 [%102, %$14] ; # C\n; # (byteSym C R)\n  call void @byteSym(i8 %112, i64* %109)\n  br label %$16\n$17:\n  %113 = phi i64 [%94, %$14] ; # Exe\n  %114 = phi i64 [%95, %$14] ; # X\n  %115 = phi i64 [%96, %$14] ; # Y\n  %116 = phi i64* [%97, %$14] ; # P\n  %117 = phi i64 [%98, %$14] ; # Q\n  %118 = phi i64* [%99, %$14] ; # R\n  %119 = phi i64 [%100, %$14] ; # A\n  %120 = phi i64 [%101, %$14] ; # N\n  %121 = phi i8 [%102, %$14] ; # C\n; # (symByte P)\n  %122 = call i8 @symByte(i64* %116)\n; # (== (setq C (symByte P)) (char \"@\"))\n  %123 = icmp eq i8 %122, 64\n  br i1 %123, label %$20, label %$19\n$20:\n  %124 = phi i64 [%113, %$17] ; # Exe\n  %125 = phi i64 [%114, %$17] ; # X\n  %126 = phi i64 [%115, %$17] ; # Y\n  %127 = phi i64* [%116, %$17] ; # P\n  %128 = phi i64 [%117, %$17] ; # Q\n  %129 = phi i64* [%118, %$17] ; # R\n  %130 = phi i64 [%119, %$17] ; # A\n  %131 = phi i64 [%120, %$17] ; # N\n  %132 = phi i8 [%122, %$17] ; # C\n; # (byteSym C R)\n  call void @byteSym(i8 %132, i64* %129)\n  br label %$16\n$19:\n  %133 = phi i64 [%113, %$17] ; # Exe\n  %134 = phi i64 [%114, %$17] ; # X\n  %135 = phi i64 [%115, %$17] ; # Y\n  %136 = phi i64* [%116, %$17] ; # P\n  %137 = phi i64 [%117, %$17] ; # Q\n  %138 = phi i64* [%118, %$17] ; # R\n  %139 = phi i64 [%119, %$17] ; # A\n  %140 = phi i64 [%120, %$17] ; # N\n  %141 = phi i8 [%122, %$17] ; # C\n; # (dec 'C (char \"0\"))\n  %142 = sub i8 %141, 48\n; # (gt0 (dec 'C (char \"0\")))\n  %143 = icmp sgt i8 %142, 0\n  br i1 %143, label %$22, label %$21\n$22:\n  %144 = phi i64 [%133, %$19] ; # Exe\n  %145 = phi i64 [%134, %$19] ; # X\n  %146 = phi i64 [%135, %$19] ; # Y\n  %147 = phi i64* [%136, %$19] ; # P\n  %148 = phi i64 [%137, %$19] ; # Q\n  %149 = phi i64* [%138, %$19] ; # R\n  %150 = phi i64 [%139, %$19] ; # A\n  %151 = phi i64 [%140, %$19] ; # N\n  %152 = phi i8 [%142, %$19] ; # C\n; # (when (> C 9) (dec 'C 7))\n; # (> C 9)\n  %153 = icmp ugt i8 %152, 9\n  br i1 %153, label %$23, label %$24\n$23:\n  %154 = phi i64 [%144, %$22] ; # Exe\n  %155 = phi i64 [%145, %$22] ; # X\n  %156 = phi i64 [%146, %$22] ; # Y\n  %157 = phi i64* [%147, %$22] ; # P\n  %158 = phi i64 [%148, %$22] ; # Q\n  %159 = phi i64* [%149, %$22] ; # R\n  %160 = phi i64 [%150, %$22] ; # A\n  %161 = phi i64 [%151, %$22] ; # N\n  %162 = phi i8 [%152, %$22] ; # C\n; # (dec 'C 7)\n  %163 = sub i8 %162, 7\n  br label %$24\n$24:\n  %164 = phi i64 [%144, %$22], [%154, %$23] ; # Exe\n  %165 = phi i64 [%145, %$22], [%155, %$23] ; # X\n  %166 = phi i64 [%146, %$22], [%156, %$23] ; # Y\n  %167 = phi i64* [%147, %$22], [%157, %$23] ; # P\n  %168 = phi i64 [%148, %$22], [%158, %$23] ; # Q\n  %169 = phi i64* [%149, %$22], [%159, %$23] ; # R\n  %170 = phi i64 [%150, %$22], [%160, %$23] ; # A\n  %171 = phi i64 [%151, %$22], [%161, %$23] ; # N\n  %172 = phi i8 [%152, %$22], [%163, %$23] ; # C\n; # (when (ge0 (setq C (- N (i64 C)))) (let I A (while (ge0 (dec 'C))...\n; # (i64 C)\n  %173 = zext i8 %172 to i64\n; # (- N (i64 C))\n  %174 = sub i64 %171, %173\n; # (ge0 (setq C (- N (i64 C))))\n  %175 = icmp sge i64 %174, 0\n  br i1 %175, label %$25, label %$26\n$25:\n  %176 = phi i64 [%164, %$24] ; # Exe\n  %177 = phi i64 [%165, %$24] ; # X\n  %178 = phi i64 [%166, %$24] ; # Y\n  %179 = phi i64* [%167, %$24] ; # P\n  %180 = phi i64 [%168, %$24] ; # Q\n  %181 = phi i64* [%169, %$24] ; # R\n  %182 = phi i64 [%170, %$24] ; # A\n  %183 = phi i64 [%171, %$24] ; # N\n  %184 = phi i64 [%174, %$24] ; # C\n; # (let I A (while (ge0 (dec 'C)) (shift I)) (pack (val I) R))\n; # (while (ge0 (dec 'C)) (shift I))\n  br label %$27\n$27:\n  %185 = phi i64 [%176, %$25], [%197, %$28] ; # Exe\n  %186 = phi i64 [%177, %$25], [%198, %$28] ; # X\n  %187 = phi i64 [%178, %$25], [%199, %$28] ; # Y\n  %188 = phi i64* [%179, %$25], [%200, %$28] ; # P\n  %189 = phi i64 [%180, %$25], [%201, %$28] ; # Q\n  %190 = phi i64* [%181, %$25], [%202, %$28] ; # R\n  %191 = phi i64 [%182, %$25], [%203, %$28] ; # A\n  %192 = phi i64 [%183, %$25], [%204, %$28] ; # N\n  %193 = phi i64 [%184, %$25], [%205, %$28] ; # C\n  %194 = phi i64 [%182, %$25], [%209, %$28] ; # I\n; # (dec 'C)\n  %195 = sub i64 %193, 1\n; # (ge0 (dec 'C))\n  %196 = icmp sge i64 %195, 0\n  br i1 %196, label %$28, label %$29\n$28:\n  %197 = phi i64 [%185, %$27] ; # Exe\n  %198 = phi i64 [%186, %$27] ; # X\n  %199 = phi i64 [%187, %$27] ; # Y\n  %200 = phi i64* [%188, %$27] ; # P\n  %201 = phi i64 [%189, %$27] ; # Q\n  %202 = phi i64* [%190, %$27] ; # R\n  %203 = phi i64 [%191, %$27] ; # A\n  %204 = phi i64 [%192, %$27] ; # N\n  %205 = phi i64 [%195, %$27] ; # C\n  %206 = phi i64 [%194, %$27] ; # I\n; # (shift I)\n  %207 = inttoptr i64 %206 to i64*\n  %208 = getelementptr i64, i64* %207, i32 1\n  %209 = load i64, i64* %208\n  br label %$27\n$29:\n  %210 = phi i64 [%185, %$27] ; # Exe\n  %211 = phi i64 [%186, %$27] ; # X\n  %212 = phi i64 [%187, %$27] ; # Y\n  %213 = phi i64* [%188, %$27] ; # P\n  %214 = phi i64 [%189, %$27] ; # Q\n  %215 = phi i64* [%190, %$27] ; # R\n  %216 = phi i64 [%191, %$27] ; # A\n  %217 = phi i64 [%192, %$27] ; # N\n  %218 = phi i64 [%195, %$27] ; # C\n  %219 = phi i64 [%194, %$27] ; # I\n; # (val I)\n  %220 = inttoptr i64 %219 to i64*\n  %221 = load i64, i64* %220\n; # (pack (val I) R)\n  call void @pack(i64 %221, i64* %215)\n  br label %$26\n$26:\n  %222 = phi i64 [%164, %$24], [%210, %$29] ; # Exe\n  %223 = phi i64 [%165, %$24], [%211, %$29] ; # X\n  %224 = phi i64 [%166, %$24], [%212, %$29] ; # Y\n  %225 = phi i64* [%167, %$24], [%213, %$29] ; # P\n  %226 = phi i64 [%168, %$24], [%214, %$29] ; # Q\n  %227 = phi i64* [%169, %$24], [%215, %$29] ; # R\n  %228 = phi i64 [%170, %$24], [%216, %$29] ; # A\n  %229 = phi i64 [%171, %$24], [%217, %$29] ; # N\n  %230 = phi i64 [%174, %$24], [%218, %$29] ; # C\n  br label %$16\n$21:\n  %231 = phi i64 [%133, %$19] ; # Exe\n  %232 = phi i64 [%134, %$19] ; # X\n  %233 = phi i64 [%135, %$19] ; # Y\n  %234 = phi i64* [%136, %$19] ; # P\n  %235 = phi i64 [%137, %$19] ; # Q\n  %236 = phi i64* [%138, %$19] ; # R\n  %237 = phi i64 [%139, %$19] ; # A\n  %238 = phi i64 [%140, %$19] ; # N\n  %239 = phi i8 [%142, %$19] ; # C\n  br label %$16\n$16:\n  %240 = phi i64 [%104, %$18], [%124, %$20], [%222, %$26], [%231, %$21] ; # Exe\n  %241 = phi i64 [%105, %$18], [%125, %$20], [%223, %$26], [%232, %$21] ; # X\n  %242 = phi i64 [%106, %$18], [%126, %$20], [%224, %$26], [%233, %$21] ; # Y\n  %243 = phi i64* [%107, %$18], [%127, %$20], [%225, %$26], [%234, %$21] ; # P\n  %244 = phi i64 [%108, %$18], [%128, %$20], [%226, %$26], [%235, %$21] ; # Q\n  %245 = phi i64* [%109, %$18], [%129, %$20], [%227, %$26], [%236, %$21] ; # R\n  %246 = phi i64 [%110, %$18], [%130, %$20], [%228, %$26], [%237, %$21] ; # A\n  %247 = phi i64 [%111, %$18], [%131, %$20], [%229, %$26], [%238, %$21] ; # N\n  br label %$13\n$15:\n  %248 = phi i64 [%84, %$13] ; # Exe\n  %249 = phi i64 [%85, %$13] ; # X\n  %250 = phi i64 [%86, %$13] ; # Y\n  %251 = phi i64* [%87, %$13] ; # P\n  %252 = phi i64 [%88, %$13] ; # Q\n  %253 = phi i64* [%89, %$13] ; # R\n  %254 = phi i64 [%90, %$13] ; # A\n  %255 = phi i64 [%91, %$13] ; # N\n  %256 = phi i8 [%92, %$13] ; # C\n; # (val 3 R)\n  %257 = getelementptr i64, i64* %253, i32 2\n  %258 = load i64, i64* %257\n; # (consStr (val 3 R))\n  %259 = call i64 @consStr(i64 %258)\n; # (drop *Safe)\n  %260 = inttoptr i64 %16 to i64*\n  %261 = getelementptr i64, i64* %260, i32 1\n  %262 = load i64, i64* %261\n  %263 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %262, i64* %263\n  br label %$4\n$4:\n  %264 = phi i64 [%6, %$2], [%248, %$15] ; # Exe\n  %265 = phi i64 [%7, %$2], [%249, %$15] ; # X\n  %266 = phi i64 [%8, %$2], [%250, %$15] ; # Y\n  %267 = phi i64 [%8, %$2], [%259, %$15] ; # ->\n  ret i64 %267\n}\n\ndefine i1 @preStr(i64, i8, i64*) align 8 {\n$1:\n; # (let (Q (push 0 (i64 Nm)) C (symByte Q)) (loop (? (<> B C) NO) (?...\n; # (i64 Nm)\n; # (push 0 (i64 Nm))\n  %3 = alloca i64, i64 2, align 16\n  store i64 0, i64* %3\n  %4 = getelementptr i64, i64* %3, i32 1\n  store i64 %0, i64* %4\n; # (symByte Q)\n  %5 = call i8 @symByte(i64* %3)\n; # (loop (? (<> B C) NO) (? (=0 (setq C (symByte Q))) YES) (? (=0 (s...\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%41, %$8] ; # Nm\n  %7 = phi i8 [%1, %$1], [%42, %$8] ; # B\n  %8 = phi i64* [%2, %$1], [%43, %$8] ; # P\n  %9 = phi i64* [%3, %$1], [%44, %$8] ; # Q\n  %10 = phi i8 [%5, %$1], [%45, %$8] ; # C\n; # (? (<> B C) NO)\n; # (<> B C)\n  %11 = icmp ne i8 %7, %10\n  br i1 %11, label %$5, label %$3\n$5:\n  %12 = phi i64 [%6, %$2] ; # Nm\n  %13 = phi i8 [%7, %$2] ; # B\n  %14 = phi i64* [%8, %$2] ; # P\n  %15 = phi i64* [%9, %$2] ; # Q\n  %16 = phi i8 [%10, %$2] ; # C\n  br label %$4\n$3:\n  %17 = phi i64 [%6, %$2] ; # Nm\n  %18 = phi i8 [%7, %$2] ; # B\n  %19 = phi i64* [%8, %$2] ; # P\n  %20 = phi i64* [%9, %$2] ; # Q\n  %21 = phi i8 [%10, %$2] ; # C\n; # (? (=0 (setq C (symByte Q))) YES)\n; # (symByte Q)\n  %22 = call i8 @symByte(i64* %20)\n; # (=0 (setq C (symByte Q)))\n  %23 = icmp eq i8 %22, 0\n  br i1 %23, label %$7, label %$6\n$7:\n  %24 = phi i64 [%17, %$3] ; # Nm\n  %25 = phi i8 [%18, %$3] ; # B\n  %26 = phi i64* [%19, %$3] ; # P\n  %27 = phi i64* [%20, %$3] ; # Q\n  %28 = phi i8 [%22, %$3] ; # C\n  br label %$4\n$6:\n  %29 = phi i64 [%17, %$3] ; # Nm\n  %30 = phi i8 [%18, %$3] ; # B\n  %31 = phi i64* [%19, %$3] ; # P\n  %32 = phi i64* [%20, %$3] ; # Q\n  %33 = phi i8 [%22, %$3] ; # C\n; # (? (=0 (setq B (symByte P))) NO)\n; # (symByte P)\n  %34 = call i8 @symByte(i64* %31)\n; # (=0 (setq B (symByte P)))\n  %35 = icmp eq i8 %34, 0\n  br i1 %35, label %$9, label %$8\n$9:\n  %36 = phi i64 [%29, %$6] ; # Nm\n  %37 = phi i8 [%34, %$6] ; # B\n  %38 = phi i64* [%31, %$6] ; # P\n  %39 = phi i64* [%32, %$6] ; # Q\n  %40 = phi i8 [%33, %$6] ; # C\n  br label %$4\n$8:\n  %41 = phi i64 [%29, %$6] ; # Nm\n  %42 = phi i8 [%34, %$6] ; # B\n  %43 = phi i64* [%31, %$6] ; # P\n  %44 = phi i64* [%32, %$6] ; # Q\n  %45 = phi i8 [%33, %$6] ; # C\n  br label %$2\n$4:\n  %46 = phi i64 [%12, %$5], [%24, %$7], [%36, %$9] ; # Nm\n  %47 = phi i8 [%13, %$5], [%25, %$7], [%37, %$9] ; # B\n  %48 = phi i64* [%14, %$5], [%26, %$7], [%38, %$9] ; # P\n  %49 = phi i64* [%15, %$5], [%27, %$7], [%39, %$9] ; # Q\n  %50 = phi i8 [%16, %$5], [%28, %$7], [%40, %$9] ; # C\n  %51 = phi i1 [0, %$5], [1, %$7], [0, %$9] ; # ->\n  ret i1 %51\n}\n\ndefine i64 @subStr(i64, i64, i64) align 8 {\n$1:\n; # (cond ((nil? X) 0) ((== ZERO (setq X (xName X))) 0) (T (let (P (p...\n; # (nil? X)\n  %3 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # X\n  %5 = phi i64 [%1, %$1] ; # Y\n  %6 = phi i64 [%2, %$1] ; # N\n  br label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # X\n  %8 = phi i64 [%1, %$1] ; # Y\n  %9 = phi i64 [%2, %$1] ; # N\n; # (xName X)\n  %10 = call i64 @xName(i64 %7)\n; # (== ZERO (setq X (xName X)))\n  %11 = icmp eq i64 2, %10\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%10, %$3] ; # X\n  %13 = phi i64 [%8, %$3] ; # Y\n  %14 = phi i64 [%9, %$3] ; # N\n  br label %$2\n$5:\n  %15 = phi i64 [%10, %$3] ; # X\n  %16 = phi i64 [%8, %$3] ; # Y\n  %17 = phi i64 [%9, %$3] ; # N\n; # (let (P (push 0 (xName Y)) B T R 1) (while (gt0 (dec 'N)) (when (...\n; # (xName Y)\n  %18 = call i64 @xName(i64 %16)\n; # (push 0 (xName Y))\n  %19 = alloca i64, i64 2, align 16\n  store i64 0, i64* %19\n  %20 = getelementptr i64, i64* %19, i32 1\n  store i64 %18, i64* %20\n; # (while (gt0 (dec 'N)) (when (=0 (symByte P)) (ret -1)) (inc 'R))\n  br label %$7\n$7:\n  %21 = phi i64 [%15, %$5], [%40, %$11] ; # X\n  %22 = phi i64 [%16, %$5], [%41, %$11] ; # Y\n  %23 = phi i64 [%17, %$5], [%42, %$11] ; # N\n  %24 = phi i64* [%19, %$5], [%43, %$11] ; # P\n  %25 = phi i64 [1, %$5], [%45, %$11] ; # R\n; # (dec 'N)\n  %26 = sub i64 %23, 1\n; # (gt0 (dec 'N))\n  %27 = icmp sgt i64 %26, 0\n  br i1 %27, label %$8, label %$9\n$8:\n  %28 = phi i64 [%21, %$7] ; # X\n  %29 = phi i64 [%22, %$7] ; # Y\n  %30 = phi i64 [%26, %$7] ; # N\n  %31 = phi i64* [%24, %$7] ; # P\n  %32 = phi i64 [%25, %$7] ; # R\n; # (when (=0 (symByte P)) (ret -1))\n; # (symByte P)\n  %33 = call i8 @symByte(i64* %31)\n; # (=0 (symByte P))\n  %34 = icmp eq i8 %33, 0\n  br i1 %34, label %$10, label %$11\n$10:\n  %35 = phi i64 [%28, %$8] ; # X\n  %36 = phi i64 [%29, %$8] ; # Y\n  %37 = phi i64 [%30, %$8] ; # N\n  %38 = phi i64* [%31, %$8] ; # P\n  %39 = phi i64 [%32, %$8] ; # R\n; # (ret -1)\n  ret i64 -1\n$11:\n  %40 = phi i64 [%28, %$8] ; # X\n  %41 = phi i64 [%29, %$8] ; # Y\n  %42 = phi i64 [%30, %$8] ; # N\n  %43 = phi i64* [%31, %$8] ; # P\n  %44 = phi i64 [%32, %$8] ; # R\n; # (inc 'R)\n  %45 = add i64 %44, 1\n  br label %$7\n$9:\n  %46 = phi i64 [%21, %$7] ; # X\n  %47 = phi i64 [%22, %$7] ; # Y\n  %48 = phi i64 [%26, %$7] ; # N\n  %49 = phi i64* [%24, %$7] ; # P\n  %50 = phi i64 [%25, %$7] ; # R\n; # (loop (? (=0 (setq B (symByte P))) -1) (let (Cnt (val P) Nm (val ...\n  br label %$12\n$12:\n  %51 = phi i64 [%46, %$9], [%82, %$16] ; # X\n  %52 = phi i64 [%47, %$9], [%83, %$16] ; # Y\n  %53 = phi i64 [%48, %$9], [%84, %$16] ; # N\n  %54 = phi i64* [%49, %$9], [%85, %$16] ; # P\n  %55 = phi i64 [%50, %$9], [%91, %$16] ; # R\n; # (? (=0 (setq B (symByte P))) -1)\n; # (symByte P)\n  %56 = call i8 @symByte(i64* %54)\n; # (=0 (setq B (symByte P)))\n  %57 = icmp eq i8 %56, 0\n  br i1 %57, label %$15, label %$13\n$15:\n  %58 = phi i64 [%51, %$12] ; # X\n  %59 = phi i64 [%52, %$12] ; # Y\n  %60 = phi i64 [%53, %$12] ; # N\n  %61 = phi i64* [%54, %$12] ; # P\n  %62 = phi i8 [%56, %$12] ; # B\n  %63 = phi i64 [%55, %$12] ; # R\n  br label %$14\n$13:\n  %64 = phi i64 [%51, %$12] ; # X\n  %65 = phi i64 [%52, %$12] ; # Y\n  %66 = phi i64 [%53, %$12] ; # N\n  %67 = phi i64* [%54, %$12] ; # P\n  %68 = phi i8 [%56, %$12] ; # B\n  %69 = phi i64 [%55, %$12] ; # R\n; # (let (Cnt (val P) Nm (val 2 P)) (? (preStr X B P) R) (set P Cnt 2...\n; # (val P)\n  %70 = load i64, i64* %67\n; # (val 2 P)\n  %71 = getelementptr i64, i64* %67, i32 1\n  %72 = load i64, i64* %71\n; # (? (preStr X B P) R)\n; # (preStr X B P)\n  %73 = call i1 @preStr(i64 %64, i8 %68, i64* %67)\n  br i1 %73, label %$17, label %$16\n$17:\n  %74 = phi i64 [%64, %$13] ; # X\n  %75 = phi i64 [%65, %$13] ; # Y\n  %76 = phi i64 [%66, %$13] ; # N\n  %77 = phi i64* [%67, %$13] ; # P\n  %78 = phi i8 [%68, %$13] ; # B\n  %79 = phi i64 [%69, %$13] ; # R\n  %80 = phi i64 [%70, %$13] ; # Cnt\n  %81 = phi i64 [%72, %$13] ; # Nm\n  br label %$14\n$16:\n  %82 = phi i64 [%64, %$13] ; # X\n  %83 = phi i64 [%65, %$13] ; # Y\n  %84 = phi i64 [%66, %$13] ; # N\n  %85 = phi i64* [%67, %$13] ; # P\n  %86 = phi i8 [%68, %$13] ; # B\n  %87 = phi i64 [%69, %$13] ; # R\n  %88 = phi i64 [%70, %$13] ; # Cnt\n  %89 = phi i64 [%72, %$13] ; # Nm\n; # (set P Cnt 2 P Nm)\n  store i64 %88, i64* %85\n  %90 = getelementptr i64, i64* %85, i32 1\n  store i64 %89, i64* %90\n; # (inc 'R)\n  %91 = add i64 %87, 1\n  br label %$12\n$14:\n  %92 = phi i64 [%58, %$15], [%74, %$17] ; # X\n  %93 = phi i64 [%59, %$15], [%75, %$17] ; # Y\n  %94 = phi i64 [%60, %$15], [%76, %$17] ; # N\n  %95 = phi i64* [%61, %$15], [%77, %$17] ; # P\n  %96 = phi i8 [%62, %$15], [%78, %$17] ; # B\n  %97 = phi i64 [%63, %$15], [%79, %$17] ; # R\n  %98 = phi i64 [-1, %$15], [%79, %$17] ; # ->\n  br label %$2\n$2:\n  %99 = phi i64 [%4, %$4], [%12, %$6], [%92, %$14] ; # X\n  %100 = phi i64 [%5, %$4], [%13, %$6], [%93, %$14] ; # Y\n  %101 = phi i64 [%6, %$4], [%14, %$6], [%94, %$14] ; # N\n  %102 = phi i64 [0, %$4], [0, %$6], [%98, %$14] ; # ->\n  ret i64 %102\n}\n\ndefine i64 @_PreQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (evSym X)) Z (evSym (shift X))) (cond (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (save (evSym X))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (shift X)\n  %13 = inttoptr i64 %3 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n; # (evSym (shift X))\n  %16 = call i64 @evSym(i64 %15)\n; # (cond ((nil? Y) Z) ((== ZERO (setq Y (xName Y))) Z) (T (let P (pu...\n; # (nil? Y)\n  %17 = icmp eq i64 %4, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%0, %$1] ; # Exe\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = phi i64 [%4, %$1] ; # Y\n  %21 = phi i64 [%16, %$1] ; # Z\n  br label %$2\n$3:\n  %22 = phi i64 [%0, %$1] ; # Exe\n  %23 = phi i64 [%15, %$1] ; # X\n  %24 = phi i64 [%4, %$1] ; # Y\n  %25 = phi i64 [%16, %$1] ; # Z\n; # (xName Y)\n  %26 = call i64 @xName(i64 %24)\n; # (== ZERO (setq Y (xName Y)))\n  %27 = icmp eq i64 2, %26\n  br i1 %27, label %$6, label %$5\n$6:\n  %28 = phi i64 [%22, %$3] ; # Exe\n  %29 = phi i64 [%23, %$3] ; # X\n  %30 = phi i64 [%26, %$3] ; # Y\n  %31 = phi i64 [%25, %$3] ; # Z\n  br label %$2\n$5:\n  %32 = phi i64 [%22, %$3] ; # Exe\n  %33 = phi i64 [%23, %$3] ; # X\n  %34 = phi i64 [%26, %$3] ; # Y\n  %35 = phi i64 [%25, %$3] ; # Z\n; # (let P (push 0 (xName Z)) (cond ((=0 (symByte P)) $Nil) ((preStr ...\n; # (xName Z)\n  %36 = call i64 @xName(i64 %35)\n; # (push 0 (xName Z))\n  %37 = alloca i64, i64 2, align 16\n  store i64 0, i64* %37\n  %38 = getelementptr i64, i64* %37, i32 1\n  store i64 %36, i64* %38\n; # (cond ((=0 (symByte P)) $Nil) ((preStr Y @ P) Z) (T $Nil))\n; # (symByte P)\n  %39 = call i8 @symByte(i64* %37)\n; # (=0 (symByte P))\n  %40 = icmp eq i8 %39, 0\n  br i1 %40, label %$9, label %$8\n$9:\n  %41 = phi i64 [%32, %$5] ; # Exe\n  %42 = phi i64 [%33, %$5] ; # X\n  %43 = phi i64 [%34, %$5] ; # Y\n  %44 = phi i64 [%35, %$5] ; # Z\n  %45 = phi i64* [%37, %$5] ; # P\n  br label %$7\n$8:\n  %46 = phi i64 [%32, %$5] ; # Exe\n  %47 = phi i64 [%33, %$5] ; # X\n  %48 = phi i64 [%34, %$5] ; # Y\n  %49 = phi i64 [%35, %$5] ; # Z\n  %50 = phi i64* [%37, %$5] ; # P\n; # (preStr Y @ P)\n  %51 = call i1 @preStr(i64 %48, i8 %39, i64* %50)\n  br i1 %51, label %$11, label %$10\n$11:\n  %52 = phi i64 [%46, %$8] ; # Exe\n  %53 = phi i64 [%47, %$8] ; # X\n  %54 = phi i64 [%48, %$8] ; # Y\n  %55 = phi i64 [%49, %$8] ; # Z\n  %56 = phi i64* [%50, %$8] ; # P\n  br label %$7\n$10:\n  %57 = phi i64 [%46, %$8] ; # Exe\n  %58 = phi i64 [%47, %$8] ; # X\n  %59 = phi i64 [%48, %$8] ; # Y\n  %60 = phi i64 [%49, %$8] ; # Z\n  %61 = phi i64* [%50, %$8] ; # P\n  br label %$7\n$7:\n  %62 = phi i64 [%41, %$9], [%52, %$11], [%57, %$10] ; # Exe\n  %63 = phi i64 [%42, %$9], [%53, %$11], [%58, %$10] ; # X\n  %64 = phi i64 [%43, %$9], [%54, %$11], [%59, %$10] ; # Y\n  %65 = phi i64 [%44, %$9], [%55, %$11], [%60, %$10] ; # Z\n  %66 = phi i64* [%45, %$9], [%56, %$11], [%61, %$10] ; # P\n  %67 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%55, %$11], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  br label %$2\n$2:\n  %68 = phi i64 [%18, %$4], [%28, %$6], [%62, %$7] ; # Exe\n  %69 = phi i64 [%19, %$4], [%29, %$6], [%63, %$7] ; # X\n  %70 = phi i64 [%20, %$4], [%30, %$6], [%64, %$7] ; # Y\n  %71 = phi i64 [%21, %$4], [%31, %$6], [%65, %$7] ; # Z\n  %72 = phi i64 [%21, %$4], [%31, %$6], [%67, %$7] ; # ->\n; # (drop *Safe)\n  %73 = inttoptr i64 %8 to i64*\n  %74 = getelementptr i64, i64* %73, i32 1\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %75, i64* %76\n  ret i64 %72\n}\n\ndefine i64 @_SubQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (evSym X)) Z (evSym (shift X))) (if (lt...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (save (evSym X))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (shift X)\n  %13 = inttoptr i64 %3 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n; # (evSym (shift X))\n  %16 = call i64 @evSym(i64 %15)\n; # (if (lt0 (subStr Y Z (if (pair (shift X)) (evCnt Exe X) 1))) $Nil...\n; # (if (pair (shift X)) (evCnt Exe X) 1)\n; # (shift X)\n  %17 = inttoptr i64 %15 to i64*\n  %18 = getelementptr i64, i64* %17, i32 1\n  %19 = load i64, i64* %18\n; # (pair (shift X))\n  %20 = and i64 %19, 15\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$2, label %$3\n$2:\n  %22 = phi i64 [%0, %$1] ; # Exe\n  %23 = phi i64 [%19, %$1] ; # X\n  %24 = phi i64 [%4, %$1] ; # Y\n  %25 = phi i64 [%16, %$1] ; # Z\n; # (evCnt Exe X)\n  %26 = call i64 @evCnt(i64 %22, i64 %23)\n  br label %$4\n$3:\n  %27 = phi i64 [%0, %$1] ; # Exe\n  %28 = phi i64 [%19, %$1] ; # X\n  %29 = phi i64 [%4, %$1] ; # Y\n  %30 = phi i64 [%16, %$1] ; # Z\n  br label %$4\n$4:\n  %31 = phi i64 [%22, %$2], [%27, %$3] ; # Exe\n  %32 = phi i64 [%23, %$2], [%28, %$3] ; # X\n  %33 = phi i64 [%24, %$2], [%29, %$3] ; # Y\n  %34 = phi i64 [%25, %$2], [%30, %$3] ; # Z\n  %35 = phi i64 [%26, %$2], [1, %$3] ; # ->\n; # (subStr Y Z (if (pair (shift X)) (evCnt Exe X) 1))\n  %36 = call i64 @subStr(i64 %4, i64 %16, i64 %35)\n; # (lt0 (subStr Y Z (if (pair (shift X)) (evCnt Exe X) 1)))\n  %37 = icmp slt i64 %36, 0\n  br i1 %37, label %$5, label %$6\n$5:\n  %38 = phi i64 [%31, %$4] ; # Exe\n  %39 = phi i64 [%32, %$4] ; # X\n  %40 = phi i64 [%33, %$4] ; # Y\n  %41 = phi i64 [%34, %$4] ; # Z\n  br label %$7\n$6:\n  %42 = phi i64 [%31, %$4] ; # Exe\n  %43 = phi i64 [%32, %$4] ; # X\n  %44 = phi i64 [%33, %$4] ; # Y\n  %45 = phi i64 [%34, %$4] ; # Z\n; # (set $At2 (cnt @))\n; # (cnt @)\n  %46 = shl i64 %36, 4\n  %47 = or i64 %46, 2\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %47, i64* %48\n  br label %$7\n$7:\n  %49 = phi i64 [%38, %$5], [%42, %$6] ; # Exe\n  %50 = phi i64 [%39, %$5], [%43, %$6] ; # X\n  %51 = phi i64 [%40, %$5], [%44, %$6] ; # Y\n  %52 = phi i64 [%41, %$5], [%45, %$6] ; # Z\n  %53 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%45, %$6] ; # ->\n; # (drop *Safe)\n  %54 = inttoptr i64 %8 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %57\n  ret i64 %53\n}\n\ndefine i64 @_Val(i64) align 8 {\n$1:\n; # (let V (needVar Exe (eval (cadr Exe))) (when (and (sym? V) (sym? ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needVar Exe (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n; # (when (and (sym? V) (sym? (val (tail V)))) (dbFetch Exe V))\n; # (and (sym? V) (sym? (val (tail V))))\n; # (sym? V)\n  %25 = and i64 %23, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$9\n$10:\n  %27 = phi i64 [%0, %$8] ; # Exe\n  %28 = phi i64 [%23, %$8] ; # V\n; # (tail V)\n  %29 = add i64 %28, -8\n; # (val (tail V))\n  %30 = inttoptr i64 %29 to i64*\n  %31 = load i64, i64* %30\n; # (sym? (val (tail V)))\n  %32 = and i64 %31, 8\n  %33 = icmp ne i64 %32, 0\n  br label %$9\n$9:\n  %34 = phi i64 [%0, %$8], [%27, %$10] ; # Exe\n  %35 = phi i64 [%23, %$8], [%28, %$10] ; # V\n  %36 = phi i1 [0, %$8], [%33, %$10] ; # ->\n  br i1 %36, label %$11, label %$12\n$11:\n  %37 = phi i64 [%34, %$9] ; # Exe\n  %38 = phi i64 [%35, %$9] ; # V\n; # (dbFetch Exe V)\n  call void @dbFetch(i64 %37, i64 %38)\n  br label %$12\n$12:\n  %39 = phi i64 [%34, %$9], [%37, %$11] ; # Exe\n  %40 = phi i64 [%35, %$9], [%38, %$11] ; # V\n; # (val V)\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n  ret i64 %42\n}\n\ndefine i64 @_Set(i64) align 8 {\n$1:\n; # (save -ZERO (let X (cdr Exe) (loop (let Y (safe (needChkVar Exe (...\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %2 = load i64, i64* %1\n  %3 = alloca i64, i64 2, align 16\n  %4 = ptrtoint i64* %3 to i64\n  %5 = inttoptr i64 %4 to i64*\n  store i64 10, i64* %5\n  %6 = add i64 %4, 8\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %4, i64* %8\n; # (let X (cdr Exe) (loop (let Y (safe (needChkVar Exe (eval (++ X))...\n; # (cdr Exe)\n  %9 = inttoptr i64 %0 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (loop (let Y (safe (needChkVar Exe (eval (++ X)))) (when (and (sy...\n  br label %$2\n$2:\n  %12 = phi i64 [%0, %$1], [%93, %$23] ; # Exe\n  %13 = phi i64 [%11, %$1], [%94, %$23] ; # X\n; # (let Y (safe (needChkVar Exe (eval (++ X)))) (when (and (sym? Y) ...\n; # (++ X)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n  %17 = load i64, i64* %14\n; # (eval (++ X))\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$5, label %$4\n$5:\n  %20 = phi i64 [%17, %$2] ; # X\n  br label %$3\n$4:\n  %21 = phi i64 [%17, %$2] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$7, label %$6\n$7:\n  %24 = phi i64 [%21, %$4] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$3\n$6:\n  %27 = phi i64 [%21, %$4] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$3\n$3:\n  %29 = phi i64 [%20, %$5], [%24, %$7], [%27, %$6] ; # X\n  %30 = phi i64 [%20, %$5], [%26, %$7], [%28, %$6] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$8, label %$9\n$8:\n  %33 = phi i64 [%30, %$3] ; # X\n  %34 = phi i64 [%12, %$3] ; # Exe\n  call void @varErr(i64 %34, i64 %33)\n  unreachable\n$9:\n  %35 = phi i64 [%30, %$3] ; # X\n  %36 = phi i64 [%12, %$3] ; # Exe\n  %37 = icmp uge i64 %35, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %37, label %$11, label %$10\n$11:\n  %38 = phi i64 [%35, %$9] ; # X\n  %39 = phi i64 [%36, %$9] ; # Exe\n  %40 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %38\n  br label %$10\n$10:\n  %41 = phi i64 [%35, %$9], [%38, %$11] ; # X\n  %42 = phi i64 [%36, %$9], [%39, %$11] ; # Exe\n  %43 = phi i1 [0, %$9], [%40, %$11] ; # ->\n  br i1 %43, label %$12, label %$13\n$12:\n  %44 = phi i64 [%41, %$10] ; # X\n  %45 = phi i64 [%42, %$10] ; # Exe\n  call void @protErr(i64 %45, i64 %44)\n  unreachable\n$13:\n  %46 = phi i64 [%41, %$10] ; # X\n  %47 = phi i64 [%42, %$10] ; # Exe\n; # (safe (needChkVar Exe (eval (++ X))))\n  %48 = inttoptr i64 %4 to i64*\n  store i64 %35, i64* %48\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %49 = and i64 %35, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$14\n$15:\n  %51 = phi i64 [%12, %$13] ; # Exe\n  %52 = phi i64 [%16, %$13] ; # X\n  %53 = phi i64 [%35, %$13] ; # Y\n; # (tail Y)\n  %54 = add i64 %53, -8\n; # (val (tail Y))\n  %55 = inttoptr i64 %54 to i64*\n  %56 = load i64, i64* %55\n; # (sym? (val (tail Y)))\n  %57 = and i64 %56, 8\n  %58 = icmp ne i64 %57, 0\n  br label %$14\n$14:\n  %59 = phi i64 [%12, %$13], [%51, %$15] ; # Exe\n  %60 = phi i64 [%16, %$13], [%52, %$15] ; # X\n  %61 = phi i64 [%35, %$13], [%53, %$15] ; # Y\n  %62 = phi i1 [0, %$13], [%58, %$15] ; # ->\n  br i1 %62, label %$16, label %$17\n$16:\n  %63 = phi i64 [%59, %$14] ; # Exe\n  %64 = phi i64 [%60, %$14] ; # X\n  %65 = phi i64 [%61, %$14] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %63, i64 %65)\n  br label %$17\n$17:\n  %66 = phi i64 [%59, %$14], [%63, %$16] ; # Exe\n  %67 = phi i64 [%60, %$14], [%64, %$16] ; # X\n  %68 = phi i64 [%61, %$14], [%65, %$16] ; # Y\n; # (let Z (eval (++ X)) (set Y Z) (? (atom X) Z))\n; # (++ X)\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  %72 = load i64, i64* %69\n; # (eval (++ X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (set Y Z)\n  %86 = inttoptr i64 %68 to i64*\n  store i64 %85, i64* %86\n; # (? (atom X) Z)\n; # (atom X)\n  %87 = and i64 %71, 15\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$25, label %$23\n$25:\n  %89 = phi i64 [%66, %$18] ; # Exe\n  %90 = phi i64 [%71, %$18] ; # X\n  %91 = phi i64 [%68, %$18] ; # Y\n  %92 = phi i64 [%85, %$18] ; # Z\n  br label %$24\n$23:\n  %93 = phi i64 [%66, %$18] ; # Exe\n  %94 = phi i64 [%71, %$18] ; # X\n  %95 = phi i64 [%68, %$18] ; # Y\n  %96 = phi i64 [%85, %$18] ; # Z\n  br label %$2\n$24:\n  %97 = phi i64 [%89, %$25] ; # Exe\n  %98 = phi i64 [%90, %$25] ; # X\n  %99 = phi i64 [%92, %$25] ; # ->\n; # drop\n  %100 = inttoptr i64 %4 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %102, i64* %103\n  ret i64 %99\n}\n\ndefine i64 @_Setq(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (set (needChkVar Exe (++ X)) (eval ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (set (needChkVar Exe (++ X)) (eval (++ X))) (? (atom...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%50, %$14] ; # Exe\n  %5 = phi i64 [%3, %$1], [%51, %$14] ; # X\n; # (let Y (set (needChkVar Exe (++ X)) (eval (++ X))) (? (atom X) Y)...\n; # (set (needChkVar Exe (++ X)) (eval (++ X)))\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n; # (++ X)\n  %27 = inttoptr i64 %8 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n  %30 = load i64, i64* %27\n; # (eval (++ X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$11, label %$10\n$11:\n  %33 = phi i64 [%30, %$8] ; # X\n  br label %$9\n$10:\n  %34 = phi i64 [%30, %$8] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$13, label %$12\n$13:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$9\n$12:\n  %40 = phi i64 [%34, %$10] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$9\n$9:\n  %42 = phi i64 [%33, %$11], [%37, %$13], [%40, %$12] ; # X\n  %43 = phi i64 [%33, %$11], [%39, %$13], [%41, %$12] ; # ->\n  %44 = inttoptr i64 %14 to i64*\n  store i64 %43, i64* %44\n; # (? (atom X) Y)\n; # (atom X)\n  %45 = and i64 %29, 15\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$16, label %$14\n$16:\n  %47 = phi i64 [%4, %$9] ; # Exe\n  %48 = phi i64 [%29, %$9] ; # X\n  %49 = phi i64 [%43, %$9] ; # Y\n  br label %$15\n$14:\n  %50 = phi i64 [%4, %$9] ; # Exe\n  %51 = phi i64 [%29, %$9] ; # X\n  %52 = phi i64 [%43, %$9] ; # Y\n  br label %$2\n$15:\n  %53 = phi i64 [%47, %$16] ; # Exe\n  %54 = phi i64 [%48, %$16] ; # X\n  %55 = phi i64 [%49, %$16] ; # ->\n  ret i64 %55\n}\n\ndefine i64 @_Swap(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (let (Z (eval (car X)) V (val Y)) (set Y Z) V)\n; # (car X)\n  %66 = inttoptr i64 %64 to i64*\n  %67 = load i64, i64* %66\n; # (eval (car X))\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%67, %$16] ; # X\n  br label %$17\n$18:\n  %71 = phi i64 [%67, %$16] ; # X\n  %72 = and i64 %71, 8\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$21, label %$20\n$21:\n  %74 = phi i64 [%71, %$18] ; # X\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  br label %$17\n$20:\n  %77 = phi i64 [%71, %$18] ; # X\n  %78 = call i64 @evList(i64 %77)\n  br label %$17\n$17:\n  %79 = phi i64 [%70, %$19], [%74, %$21], [%77, %$20] ; # X\n  %80 = phi i64 [%70, %$19], [%76, %$21], [%78, %$20] ; # ->\n; # (val Y)\n  %81 = inttoptr i64 %65 to i64*\n  %82 = load i64, i64* %81\n; # (set Y Z)\n  %83 = inttoptr i64 %65 to i64*\n  store i64 %80, i64* %83\n; # (drop *Safe)\n  %84 = inttoptr i64 %41 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %87\n  ret i64 %82\n}\n\ndefine i64 @_Xchg(i64) align 8 {\n$1:\n; # (save -ZERO (let X (cdr Exe) (loop (let Y (safe (needChkVar Exe (...\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %2 = load i64, i64* %1\n  %3 = alloca i64, i64 2, align 16\n  %4 = ptrtoint i64* %3 to i64\n  %5 = inttoptr i64 %4 to i64*\n  store i64 10, i64* %5\n  %6 = add i64 %4, 8\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %4, i64* %8\n; # (let X (cdr Exe) (loop (let Y (safe (needChkVar Exe (eval (++ X))...\n; # (cdr Exe)\n  %9 = inttoptr i64 %0 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (loop (let Y (safe (needChkVar Exe (eval (++ X)))) (when (and (sy...\n  br label %$2\n$2:\n  %12 = phi i64 [%0, %$1], [%137, %$33] ; # Exe\n  %13 = phi i64 [%11, %$1], [%138, %$33] ; # X\n; # (let Y (safe (needChkVar Exe (eval (++ X)))) (when (and (sym? Y) ...\n; # (++ X)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n  %17 = load i64, i64* %14\n; # (eval (++ X))\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$5, label %$4\n$5:\n  %20 = phi i64 [%17, %$2] ; # X\n  br label %$3\n$4:\n  %21 = phi i64 [%17, %$2] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$7, label %$6\n$7:\n  %24 = phi i64 [%21, %$4] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$3\n$6:\n  %27 = phi i64 [%21, %$4] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$3\n$3:\n  %29 = phi i64 [%20, %$5], [%24, %$7], [%27, %$6] ; # X\n  %30 = phi i64 [%20, %$5], [%26, %$7], [%28, %$6] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$8, label %$9\n$8:\n  %33 = phi i64 [%30, %$3] ; # X\n  %34 = phi i64 [%12, %$3] ; # Exe\n  call void @varErr(i64 %34, i64 %33)\n  unreachable\n$9:\n  %35 = phi i64 [%30, %$3] ; # X\n  %36 = phi i64 [%12, %$3] ; # Exe\n  %37 = icmp uge i64 %35, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %37, label %$11, label %$10\n$11:\n  %38 = phi i64 [%35, %$9] ; # X\n  %39 = phi i64 [%36, %$9] ; # Exe\n  %40 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %38\n  br label %$10\n$10:\n  %41 = phi i64 [%35, %$9], [%38, %$11] ; # X\n  %42 = phi i64 [%36, %$9], [%39, %$11] ; # Exe\n  %43 = phi i1 [0, %$9], [%40, %$11] ; # ->\n  br i1 %43, label %$12, label %$13\n$12:\n  %44 = phi i64 [%41, %$10] ; # X\n  %45 = phi i64 [%42, %$10] ; # Exe\n  call void @protErr(i64 %45, i64 %44)\n  unreachable\n$13:\n  %46 = phi i64 [%41, %$10] ; # X\n  %47 = phi i64 [%42, %$10] ; # Exe\n; # (safe (needChkVar Exe (eval (++ X))))\n  %48 = inttoptr i64 %4 to i64*\n  store i64 %35, i64* %48\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %49 = and i64 %35, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$14\n$15:\n  %51 = phi i64 [%12, %$13] ; # Exe\n  %52 = phi i64 [%16, %$13] ; # X\n  %53 = phi i64 [%35, %$13] ; # Y\n; # (tail Y)\n  %54 = add i64 %53, -8\n; # (val (tail Y))\n  %55 = inttoptr i64 %54 to i64*\n  %56 = load i64, i64* %55\n; # (sym? (val (tail Y)))\n  %57 = and i64 %56, 8\n  %58 = icmp ne i64 %57, 0\n  br label %$14\n$14:\n  %59 = phi i64 [%12, %$13], [%51, %$15] ; # Exe\n  %60 = phi i64 [%16, %$13], [%52, %$15] ; # X\n  %61 = phi i64 [%35, %$13], [%53, %$15] ; # Y\n  %62 = phi i1 [0, %$13], [%58, %$15] ; # ->\n  br i1 %62, label %$16, label %$17\n$16:\n  %63 = phi i64 [%59, %$14] ; # Exe\n  %64 = phi i64 [%60, %$14] ; # X\n  %65 = phi i64 [%61, %$14] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %63, i64 %65)\n  br label %$17\n$17:\n  %66 = phi i64 [%59, %$14], [%63, %$16] ; # Exe\n  %67 = phi i64 [%60, %$14], [%64, %$16] ; # X\n  %68 = phi i64 [%61, %$14], [%65, %$16] ; # Y\n; # (let Z (needChkVar Exe (eval (++ X))) (when (and (sym? Z) (sym? (...\n; # (++ X)\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  %72 = load i64, i64* %69\n; # (eval (++ X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %86 = and i64 %85, 6\n  %87 = icmp ne i64 %86, 0\n  br i1 %87, label %$23, label %$24\n$23:\n  %88 = phi i64 [%85, %$18] ; # X\n  %89 = phi i64 [%66, %$18] ; # Exe\n  call void @varErr(i64 %89, i64 %88)\n  unreachable\n$24:\n  %90 = phi i64 [%85, %$18] ; # X\n  %91 = phi i64 [%66, %$18] ; # Exe\n  %92 = icmp uge i64 %90, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %92, label %$26, label %$25\n$26:\n  %93 = phi i64 [%90, %$24] ; # X\n  %94 = phi i64 [%91, %$24] ; # Exe\n  %95 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %93\n  br label %$25\n$25:\n  %96 = phi i64 [%90, %$24], [%93, %$26] ; # X\n  %97 = phi i64 [%91, %$24], [%94, %$26] ; # Exe\n  %98 = phi i1 [0, %$24], [%95, %$26] ; # ->\n  br i1 %98, label %$27, label %$28\n$27:\n  %99 = phi i64 [%96, %$25] ; # X\n  %100 = phi i64 [%97, %$25] ; # Exe\n  call void @protErr(i64 %100, i64 %99)\n  unreachable\n$28:\n  %101 = phi i64 [%96, %$25] ; # X\n  %102 = phi i64 [%97, %$25] ; # Exe\n; # (when (and (sym? Z) (sym? (val (tail Z)))) (dbTouch Exe Z))\n; # (and (sym? Z) (sym? (val (tail Z))))\n; # (sym? Z)\n  %103 = and i64 %90, 8\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$30, label %$29\n$30:\n  %105 = phi i64 [%66, %$28] ; # Exe\n  %106 = phi i64 [%71, %$28] ; # X\n  %107 = phi i64 [%68, %$28] ; # Y\n  %108 = phi i64 [%90, %$28] ; # Z\n; # (tail Z)\n  %109 = add i64 %108, -8\n; # (val (tail Z))\n  %110 = inttoptr i64 %109 to i64*\n  %111 = load i64, i64* %110\n; # (sym? (val (tail Z)))\n  %112 = and i64 %111, 8\n  %113 = icmp ne i64 %112, 0\n  br label %$29\n$29:\n  %114 = phi i64 [%66, %$28], [%105, %$30] ; # Exe\n  %115 = phi i64 [%71, %$28], [%106, %$30] ; # X\n  %116 = phi i64 [%68, %$28], [%107, %$30] ; # Y\n  %117 = phi i64 [%90, %$28], [%108, %$30] ; # Z\n  %118 = phi i1 [0, %$28], [%113, %$30] ; # ->\n  br i1 %118, label %$31, label %$32\n$31:\n  %119 = phi i64 [%114, %$29] ; # Exe\n  %120 = phi i64 [%115, %$29] ; # X\n  %121 = phi i64 [%116, %$29] ; # Y\n  %122 = phi i64 [%117, %$29] ; # Z\n; # (dbTouch Exe Z)\n  call void @dbTouch(i64 %119, i64 %122)\n  br label %$32\n$32:\n  %123 = phi i64 [%114, %$29], [%119, %$31] ; # Exe\n  %124 = phi i64 [%115, %$29], [%120, %$31] ; # X\n  %125 = phi i64 [%116, %$29], [%121, %$31] ; # Y\n  %126 = phi i64 [%117, %$29], [%122, %$31] ; # Z\n; # (xchg Y Z)\n  %127 = inttoptr i64 %125 to i64*\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 %126 to i64*\n  %130 = load i64, i64* %129\n  store i64 %130, i64* %127\n  store i64 %128, i64* %129\n; # (? (atom X) Z)\n; # (atom X)\n  %131 = and i64 %124, 15\n  %132 = icmp ne i64 %131, 0\n  br i1 %132, label %$35, label %$33\n$35:\n  %133 = phi i64 [%123, %$32] ; # Exe\n  %134 = phi i64 [%124, %$32] ; # X\n  %135 = phi i64 [%125, %$32] ; # Y\n  %136 = phi i64 [%128, %$32] ; # Z\n  br label %$34\n$33:\n  %137 = phi i64 [%123, %$32] ; # Exe\n  %138 = phi i64 [%124, %$32] ; # X\n  %139 = phi i64 [%125, %$32] ; # Y\n  %140 = phi i64 [%128, %$32] ; # Z\n  br label %$2\n$34:\n  %141 = phi i64 [%133, %$35] ; # Exe\n  %142 = phi i64 [%134, %$35] ; # X\n  %143 = phi i64 [%136, %$35] ; # ->\n; # drop\n  %144 = inttoptr i64 %4 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  %146 = load i64, i64* %145\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %146, i64* %147\n  ret i64 %143\n}\n\ndefine i64 @_On(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (set (needChkVar Exe (++ X)) $T) (? (atom ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (set (needChkVar Exe (++ X)) $T) (? (atom X) $T))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%32, %$9] ; # Exe\n  %5 = phi i64 [%3, %$1], [%33, %$9] ; # X\n; # (set (needChkVar Exe (++ X)) $T)\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n  %27 = inttoptr i64 %14 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %27\n; # (? (atom X) $T)\n; # (atom X)\n  %28 = and i64 %8, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$9\n$11:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  br label %$10\n$9:\n  %32 = phi i64 [%4, %$8] ; # Exe\n  %33 = phi i64 [%8, %$8] ; # X\n  br label %$2\n$10:\n  %34 = phi i64 [%30, %$11] ; # Exe\n  %35 = phi i64 [%31, %$11] ; # X\n  %36 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$11] ; # ->\n  ret i64 %36\n}\n\ndefine i64 @_Off(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (set (needChkVar Exe (++ X)) $Nil) (? (ato...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (set (needChkVar Exe (++ X)) $Nil) (? (atom X) $Nil))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%32, %$9] ; # Exe\n  %5 = phi i64 [%3, %$1], [%33, %$9] ; # X\n; # (set (needChkVar Exe (++ X)) $Nil)\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n  %27 = inttoptr i64 %14 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %27\n; # (? (atom X) $Nil)\n; # (atom X)\n  %28 = and i64 %8, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$9\n$11:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  br label %$10\n$9:\n  %32 = phi i64 [%4, %$8] ; # Exe\n  %33 = phi i64 [%8, %$8] ; # X\n  br label %$2\n$10:\n  %34 = phi i64 [%30, %$11] ; # Exe\n  %35 = phi i64 [%31, %$11] ; # X\n  %36 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11] ; # ->\n  ret i64 %36\n}\n\ndefine i64 @_OnOff(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let (Y (needChkVar Exe (++ X)) Z (if (nil...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let (Y (needChkVar Exe (++ X)) Z (if (nil? (val Y)) $T $Ni...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%47, %$12] ; # Exe\n  %5 = phi i64 [%3, %$1], [%48, %$12] ; # X\n; # (let (Y (needChkVar Exe (++ X)) Z (if (nil? (val Y)) $T $Nil)) (s...\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n; # (if (nil? (val Y)) $T $Nil)\n; # (val Y)\n  %27 = inttoptr i64 %14 to i64*\n  %28 = load i64, i64* %27\n; # (nil? (val Y))\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %29, label %$9, label %$10\n$9:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  %32 = phi i64 [%14, %$8] ; # Y\n  br label %$11\n$10:\n  %33 = phi i64 [%4, %$8] ; # Exe\n  %34 = phi i64 [%8, %$8] ; # X\n  %35 = phi i64 [%14, %$8] ; # Y\n  br label %$11\n$11:\n  %36 = phi i64 [%30, %$9], [%33, %$10] ; # Exe\n  %37 = phi i64 [%31, %$9], [%34, %$10] ; # X\n  %38 = phi i64 [%32, %$9], [%35, %$10] ; # Y\n  %39 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n; # (set Y Z)\n  %40 = inttoptr i64 %38 to i64*\n  store i64 %39, i64* %40\n; # (? (atom X) Z)\n; # (atom X)\n  %41 = and i64 %37, 15\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$14, label %$12\n$14:\n  %43 = phi i64 [%36, %$11] ; # Exe\n  %44 = phi i64 [%37, %$11] ; # X\n  %45 = phi i64 [%38, %$11] ; # Y\n  %46 = phi i64 [%39, %$11] ; # Z\n  br label %$13\n$12:\n  %47 = phi i64 [%36, %$11] ; # Exe\n  %48 = phi i64 [%37, %$11] ; # X\n  %49 = phi i64 [%38, %$11] ; # Y\n  %50 = phi i64 [%39, %$11] ; # Z\n  br label %$2\n$13:\n  %51 = phi i64 [%43, %$14] ; # Exe\n  %52 = phi i64 [%44, %$14] ; # X\n  %53 = phi i64 [%46, %$14] ; # ->\n  ret i64 %53\n}\n\ndefine i64 @_Zero(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (set (needChkVar Exe (++ X)) ZERO) (? (ato...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (set (needChkVar Exe (++ X)) ZERO) (? (atom X) ZERO))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%32, %$9] ; # Exe\n  %5 = phi i64 [%3, %$1], [%33, %$9] ; # X\n; # (set (needChkVar Exe (++ X)) ZERO)\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n  %27 = inttoptr i64 %14 to i64*\n  store i64 2, i64* %27\n; # (? (atom X) ZERO)\n; # (atom X)\n  %28 = and i64 %8, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$9\n$11:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  br label %$10\n$9:\n  %32 = phi i64 [%4, %$8] ; # Exe\n  %33 = phi i64 [%8, %$8] ; # X\n  br label %$2\n$10:\n  %34 = phi i64 [%30, %$11] ; # Exe\n  %35 = phi i64 [%31, %$11] ; # X\n  %36 = phi i64 [2, %$11] ; # ->\n  ret i64 %36\n}\n\ndefine i64 @_One(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (set (needChkVar Exe (++ X)) ONE) (? (atom...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (set (needChkVar Exe (++ X)) ONE) (? (atom X) ONE))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%32, %$9] ; # Exe\n  %5 = phi i64 [%3, %$1], [%33, %$9] ; # X\n; # (set (needChkVar Exe (++ X)) ONE)\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n  %27 = inttoptr i64 %14 to i64*\n  store i64 18, i64* %27\n; # (? (atom X) ONE)\n; # (atom X)\n  %28 = and i64 %8, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$9\n$11:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  br label %$10\n$9:\n  %32 = phi i64 [%4, %$8] ; # Exe\n  %33 = phi i64 [%8, %$8] ; # X\n  br label %$2\n$10:\n  %34 = phi i64 [%30, %$11] ; # Exe\n  %35 = phi i64 [%31, %$11] ; # X\n  %36 = phi i64 [18, %$11] ; # ->\n  ret i64 %36\n}\n\ndefine i64 @_Default(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (needChkVar Exe (++ X)) (when (nil?...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (needChkVar Exe (++ X)) (when (nil? (val Y)) (set Y ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%62, %$16] ; # Exe\n  %5 = phi i64 [%3, %$1], [%63, %$16] ; # X\n; # (let Y (needChkVar Exe (++ X)) (when (nil? (val Y)) (set Y (eval ...\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (needChkVar Exe (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$3, label %$4\n$3:\n  %12 = phi i64 [%9, %$2] ; # X\n  %13 = phi i64 [%4, %$2] ; # Exe\n  call void @varErr(i64 %13, i64 %12)\n  unreachable\n$4:\n  %14 = phi i64 [%9, %$2] ; # X\n  %15 = phi i64 [%4, %$2] ; # Exe\n  %16 = icmp uge i64 %14, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = phi i64 [%15, %$4] ; # Exe\n  %19 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %17\n  br label %$5\n$5:\n  %20 = phi i64 [%14, %$4], [%17, %$6] ; # X\n  %21 = phi i64 [%15, %$4], [%18, %$6] ; # Exe\n  %22 = phi i1 [0, %$4], [%19, %$6] ; # ->\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$5] ; # X\n  %24 = phi i64 [%21, %$5] ; # Exe\n  call void @protErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # Exe\n; # (when (nil? (val Y)) (set Y (eval (car X))))\n; # (val Y)\n  %27 = inttoptr i64 %14 to i64*\n  %28 = load i64, i64* %27\n; # (nil? (val Y))\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %29, label %$9, label %$10\n$9:\n  %30 = phi i64 [%4, %$8] ; # Exe\n  %31 = phi i64 [%8, %$8] ; # X\n  %32 = phi i64 [%14, %$8] ; # Y\n; # (set Y (eval (car X)))\n; # (car X)\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (eval (car X))\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$13, label %$12\n$13:\n  %37 = phi i64 [%34, %$9] ; # X\n  br label %$11\n$12:\n  %38 = phi i64 [%34, %$9] ; # X\n  %39 = and i64 %38, 8\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$15, label %$14\n$15:\n  %41 = phi i64 [%38, %$12] ; # X\n  %42 = inttoptr i64 %41 to i64*\n  %43 = load i64, i64* %42\n  br label %$11\n$14:\n  %44 = phi i64 [%38, %$12] ; # X\n  %45 = call i64 @evList(i64 %44)\n  br label %$11\n$11:\n  %46 = phi i64 [%37, %$13], [%41, %$15], [%44, %$14] ; # X\n  %47 = phi i64 [%37, %$13], [%43, %$15], [%45, %$14] ; # ->\n  %48 = inttoptr i64 %32 to i64*\n  store i64 %47, i64* %48\n  br label %$10\n$10:\n  %49 = phi i64 [%4, %$8], [%30, %$11] ; # Exe\n  %50 = phi i64 [%8, %$8], [%31, %$11] ; # X\n  %51 = phi i64 [%14, %$8], [%32, %$11] ; # Y\n; # (? (atom (shift X)) (val Y))\n; # (shift X)\n  %52 = inttoptr i64 %50 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n; # (atom (shift X))\n  %55 = and i64 %54, 15\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$18, label %$16\n$18:\n  %57 = phi i64 [%49, %$10] ; # Exe\n  %58 = phi i64 [%54, %$10] ; # X\n  %59 = phi i64 [%51, %$10] ; # Y\n; # (val Y)\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n  br label %$17\n$16:\n  %62 = phi i64 [%49, %$10] ; # Exe\n  %63 = phi i64 [%54, %$10] ; # X\n  %64 = phi i64 [%51, %$10] ; # Y\n  br label %$2\n$17:\n  %65 = phi i64 [%57, %$18] ; # Exe\n  %66 = phi i64 [%58, %$18] ; # X\n  %67 = phi i64 [%61, %$18] ; # ->\n  ret i64 %67\n}\n\ndefine i64 @_Push(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (loop (let Z (eval (++ X)) (set Y (cons Z (val Y))) (? (atom X) Z...\n  br label %$17\n$17:\n  %66 = phi i64 [%63, %$16], [%96, %$23] ; # Exe\n  %67 = phi i64 [%64, %$16], [%97, %$23] ; # X\n  %68 = phi i64 [%65, %$16], [%98, %$23] ; # Y\n; # (let Z (eval (++ X)) (set Y (cons Z (val Y))) (? (atom X) Z))\n; # (++ X)\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  %72 = load i64, i64* %69\n; # (eval (++ X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (set Y (cons Z (val Y)))\n; # (val Y)\n  %86 = inttoptr i64 %68 to i64*\n  %87 = load i64, i64* %86\n; # (cons Z (val Y))\n  %88 = call i64 @cons(i64 %85, i64 %87)\n  %89 = inttoptr i64 %68 to i64*\n  store i64 %88, i64* %89\n; # (? (atom X) Z)\n; # (atom X)\n  %90 = and i64 %71, 15\n  %91 = icmp ne i64 %90, 0\n  br i1 %91, label %$25, label %$23\n$25:\n  %92 = phi i64 [%66, %$18] ; # Exe\n  %93 = phi i64 [%71, %$18] ; # X\n  %94 = phi i64 [%68, %$18] ; # Y\n  %95 = phi i64 [%85, %$18] ; # Z\n  br label %$24\n$23:\n  %96 = phi i64 [%66, %$18] ; # Exe\n  %97 = phi i64 [%71, %$18] ; # X\n  %98 = phi i64 [%68, %$18] ; # Y\n  %99 = phi i64 [%85, %$18] ; # Z\n  br label %$17\n$24:\n  %100 = phi i64 [%92, %$25] ; # Exe\n  %101 = phi i64 [%93, %$25] ; # X\n  %102 = phi i64 [%94, %$25] ; # Y\n  %103 = phi i64 [%95, %$25] ; # ->\n; # (drop *Safe)\n  %104 = inttoptr i64 %41 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n  %107 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %106, i64* %107\n  ret i64 %103\n}\n\ndefine i64 @_Push1(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (loop (let (Z (eval (++ X)) V (val Y)) (unless (member Z V) (set ...\n  br label %$17\n$17:\n  %66 = phi i64 [%63, %$16], [%128, %$31] ; # Exe\n  %67 = phi i64 [%64, %$16], [%129, %$31] ; # X\n  %68 = phi i64 [%65, %$16], [%130, %$31] ; # Y\n; # (let (Z (eval (++ X)) V (val Y)) (unless (member Z V) (set Y (con...\n; # (++ X)\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  %72 = load i64, i64* %69\n; # (eval (++ X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (val Y)\n  %86 = inttoptr i64 %68 to i64*\n  %87 = load i64, i64* %86\n; # (unless (member Z V) (set Y (cons Z V)))\n; # (member Z V)\n  br label %$23\n$23:\n  %88 = phi i64 [%87, %$18], [%105, %$27] ; # L\n  %89 = phi i64 [%85, %$18], [%102, %$27] ; # X\n  %90 = and i64 %88, 15\n  %91 = icmp ne i64 %90, 0\n  br i1 %91, label %$26, label %$24\n$26:\n  %92 = phi i64 [%88, %$23] ; # L\n  %93 = phi i64 [%89, %$23] ; # X\n  br label %$25\n$24:\n  %94 = phi i64 [%88, %$23] ; # L\n  %95 = phi i64 [%89, %$23] ; # X\n  %96 = inttoptr i64 %94 to i64*\n  %97 = load i64, i64* %96\n  %98 = call i1 @equal(i64 %95, i64 %97)\n  br i1 %98, label %$28, label %$27\n$28:\n  %99 = phi i64 [%94, %$24] ; # L\n  %100 = phi i64 [%95, %$24] ; # X\n  br label %$25\n$27:\n  %101 = phi i64 [%94, %$24] ; # L\n  %102 = phi i64 [%95, %$24] ; # X\n  %103 = inttoptr i64 %101 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n  br label %$23\n$25:\n  %106 = phi i64 [%92, %$26], [%99, %$28] ; # L\n  %107 = phi i64 [%93, %$26], [%100, %$28] ; # X\n  %108 = phi i1 [0, %$26], [1, %$28] ; # ->\n  br i1 %108, label %$30, label %$29\n$29:\n  %109 = phi i64 [%66, %$25] ; # Exe\n  %110 = phi i64 [%71, %$25] ; # X\n  %111 = phi i64 [%68, %$25] ; # Y\n  %112 = phi i64 [%85, %$25] ; # Z\n  %113 = phi i64 [%87, %$25] ; # V\n; # (set Y (cons Z V))\n; # (cons Z V)\n  %114 = call i64 @cons(i64 %112, i64 %113)\n  %115 = inttoptr i64 %111 to i64*\n  store i64 %114, i64* %115\n  br label %$30\n$30:\n  %116 = phi i64 [%66, %$25], [%109, %$29] ; # Exe\n  %117 = phi i64 [%71, %$25], [%110, %$29] ; # X\n  %118 = phi i64 [%68, %$25], [%111, %$29] ; # Y\n  %119 = phi i64 [%85, %$25], [%112, %$29] ; # Z\n  %120 = phi i64 [%87, %$25], [%113, %$29] ; # V\n; # (? (atom X) Z)\n; # (atom X)\n  %121 = and i64 %117, 15\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$33, label %$31\n$33:\n  %123 = phi i64 [%116, %$30] ; # Exe\n  %124 = phi i64 [%117, %$30] ; # X\n  %125 = phi i64 [%118, %$30] ; # Y\n  %126 = phi i64 [%119, %$30] ; # Z\n  %127 = phi i64 [%120, %$30] ; # V\n  br label %$32\n$31:\n  %128 = phi i64 [%116, %$30] ; # Exe\n  %129 = phi i64 [%117, %$30] ; # X\n  %130 = phi i64 [%118, %$30] ; # Y\n  %131 = phi i64 [%119, %$30] ; # Z\n  %132 = phi i64 [%120, %$30] ; # V\n  br label %$17\n$32:\n  %133 = phi i64 [%123, %$33] ; # Exe\n  %134 = phi i64 [%124, %$33] ; # X\n  %135 = phi i64 [%125, %$33] ; # Y\n  %136 = phi i64 [%126, %$33] ; # ->\n; # (drop *Safe)\n  %137 = inttoptr i64 %41 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %139, i64* %140\n  ret i64 %136\n}\n\ndefine i64 @_Push1q(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (loop (let (Z (eval (++ X)) V (val Y)) (unless (memq Z V) (set Y ...\n  br label %$17\n$17:\n  %66 = phi i64 [%63, %$16], [%128, %$31] ; # Exe\n  %67 = phi i64 [%64, %$16], [%129, %$31] ; # X\n  %68 = phi i64 [%65, %$16], [%130, %$31] ; # Y\n; # (let (Z (eval (++ X)) V (val Y)) (unless (memq Z V) (set Y (cons ...\n; # (++ X)\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  %72 = load i64, i64* %69\n; # (eval (++ X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (val Y)\n  %86 = inttoptr i64 %68 to i64*\n  %87 = load i64, i64* %86\n; # (unless (memq Z V) (set Y (cons Z V)))\n; # (memq Z V)\n  br label %$23\n$23:\n  %88 = phi i64 [%87, %$18], [%105, %$27] ; # L\n  %89 = phi i64 [%85, %$18], [%102, %$27] ; # X\n  %90 = and i64 %88, 15\n  %91 = icmp ne i64 %90, 0\n  br i1 %91, label %$26, label %$24\n$26:\n  %92 = phi i64 [%88, %$23] ; # L\n  %93 = phi i64 [%89, %$23] ; # X\n  br label %$25\n$24:\n  %94 = phi i64 [%88, %$23] ; # L\n  %95 = phi i64 [%89, %$23] ; # X\n  %96 = inttoptr i64 %94 to i64*\n  %97 = load i64, i64* %96\n  %98 = icmp eq i64 %95, %97\n  br i1 %98, label %$28, label %$27\n$28:\n  %99 = phi i64 [%94, %$24] ; # L\n  %100 = phi i64 [%95, %$24] ; # X\n  br label %$25\n$27:\n  %101 = phi i64 [%94, %$24] ; # L\n  %102 = phi i64 [%95, %$24] ; # X\n  %103 = inttoptr i64 %101 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n  br label %$23\n$25:\n  %106 = phi i64 [%92, %$26], [%99, %$28] ; # L\n  %107 = phi i64 [%93, %$26], [%100, %$28] ; # X\n  %108 = phi i1 [0, %$26], [1, %$28] ; # ->\n  br i1 %108, label %$30, label %$29\n$29:\n  %109 = phi i64 [%66, %$25] ; # Exe\n  %110 = phi i64 [%71, %$25] ; # X\n  %111 = phi i64 [%68, %$25] ; # Y\n  %112 = phi i64 [%85, %$25] ; # Z\n  %113 = phi i64 [%87, %$25] ; # V\n; # (set Y (cons Z V))\n; # (cons Z V)\n  %114 = call i64 @cons(i64 %112, i64 %113)\n  %115 = inttoptr i64 %111 to i64*\n  store i64 %114, i64* %115\n  br label %$30\n$30:\n  %116 = phi i64 [%66, %$25], [%109, %$29] ; # Exe\n  %117 = phi i64 [%71, %$25], [%110, %$29] ; # X\n  %118 = phi i64 [%68, %$25], [%111, %$29] ; # Y\n  %119 = phi i64 [%85, %$25], [%112, %$29] ; # Z\n  %120 = phi i64 [%87, %$25], [%113, %$29] ; # V\n; # (? (atom X) Z)\n; # (atom X)\n  %121 = and i64 %117, 15\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$33, label %$31\n$33:\n  %123 = phi i64 [%116, %$30] ; # Exe\n  %124 = phi i64 [%117, %$30] ; # X\n  %125 = phi i64 [%118, %$30] ; # Y\n  %126 = phi i64 [%119, %$30] ; # Z\n  %127 = phi i64 [%120, %$30] ; # V\n  br label %$32\n$31:\n  %128 = phi i64 [%116, %$30] ; # Exe\n  %129 = phi i64 [%117, %$30] ; # X\n  %130 = phi i64 [%118, %$30] ; # Y\n  %131 = phi i64 [%119, %$30] ; # Z\n  %132 = phi i64 [%120, %$30] ; # V\n  br label %$17\n$32:\n  %133 = phi i64 [%123, %$33] ; # Exe\n  %134 = phi i64 [%124, %$33] ; # X\n  %135 = phi i64 [%125, %$33] ; # Y\n  %136 = phi i64 [%126, %$33] ; # ->\n; # (drop *Safe)\n  %137 = inttoptr i64 %41 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %139, i64* %140\n  ret i64 %136\n}\n\ndefine i64 @_Pop(i64) align 8 {\n$1:\n; # (let X (needChkVar Exe (eval (cadr Exe))) (when (and (sym? X) (sy...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needChkVar Exe (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = icmp uge i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %25, label %$10, label %$9\n$10:\n  %26 = phi i64 [%23, %$8] ; # X\n  %27 = phi i64 [%24, %$8] ; # Exe\n  %28 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %26\n  br label %$9\n$9:\n  %29 = phi i64 [%23, %$8], [%26, %$10] ; # X\n  %30 = phi i64 [%24, %$8], [%27, %$10] ; # Exe\n  %31 = phi i1 [0, %$8], [%28, %$10] ; # ->\n  br i1 %31, label %$11, label %$12\n$11:\n  %32 = phi i64 [%29, %$9] ; # X\n  %33 = phi i64 [%30, %$9] ; # Exe\n  call void @protErr(i64 %33, i64 %32)\n  unreachable\n$12:\n  %34 = phi i64 [%29, %$9] ; # X\n  %35 = phi i64 [%30, %$9] ; # Exe\n; # (when (and (sym? X) (sym? (val (tail X)))) (dbTouch Exe X))\n; # (and (sym? X) (sym? (val (tail X))))\n; # (sym? X)\n  %36 = and i64 %23, 8\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$14:\n  %38 = phi i64 [%0, %$12] ; # Exe\n  %39 = phi i64 [%23, %$12] ; # X\n; # (tail X)\n  %40 = add i64 %39, -8\n; # (val (tail X))\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n; # (sym? (val (tail X)))\n  %43 = and i64 %42, 8\n  %44 = icmp ne i64 %43, 0\n  br label %$13\n$13:\n  %45 = phi i64 [%0, %$12], [%38, %$14] ; # Exe\n  %46 = phi i64 [%23, %$12], [%39, %$14] ; # X\n  %47 = phi i1 [0, %$12], [%44, %$14] ; # ->\n  br i1 %47, label %$15, label %$16\n$15:\n  %48 = phi i64 [%45, %$13] ; # Exe\n  %49 = phi i64 [%46, %$13] ; # X\n; # (dbTouch Exe X)\n  call void @dbTouch(i64 %48, i64 %49)\n  br label %$16\n$16:\n  %50 = phi i64 [%45, %$13], [%48, %$15] ; # Exe\n  %51 = phi i64 [%46, %$13], [%49, %$15] ; # X\n; # (if (atom (val X)) @ (set X (cdr @)) (car @))\n; # (val X)\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (atom (val X))\n  %54 = and i64 %53, 15\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$17, label %$18\n$17:\n  %56 = phi i64 [%50, %$16] ; # Exe\n  %57 = phi i64 [%51, %$16] ; # X\n  br label %$19\n$18:\n  %58 = phi i64 [%50, %$16] ; # Exe\n  %59 = phi i64 [%51, %$16] ; # X\n; # (set X (cdr @))\n; # (cdr @)\n  %60 = inttoptr i64 %53 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  %63 = inttoptr i64 %59 to i64*\n  store i64 %62, i64* %63\n; # (car @)\n  %64 = inttoptr i64 %53 to i64*\n  %65 = load i64, i64* %64\n  br label %$19\n$19:\n  %66 = phi i64 [%56, %$17], [%58, %$18] ; # Exe\n  %67 = phi i64 [%57, %$17], [%59, %$18] ; # X\n  %68 = phi i64 [%53, %$17], [%65, %$18] ; # ->\n  ret i64 %68\n}\n\ndefine i64 @_Popq(i64) align 8 {\n$1:\n; # (let X (needChkVar Exe (cadr Exe)) (if (atom (val X)) @ (set X (c...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (needChkVar Exe (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$2, label %$3\n$2:\n  %8 = phi i64 [%5, %$1] ; # X\n  %9 = phi i64 [%0, %$1] ; # Exe\n  call void @varErr(i64 %9, i64 %8)\n  unreachable\n$3:\n  %10 = phi i64 [%5, %$1] ; # X\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = icmp uge i64 %10, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %12, label %$5, label %$4\n$5:\n  %13 = phi i64 [%10, %$3] ; # X\n  %14 = phi i64 [%11, %$3] ; # Exe\n  %15 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %13\n  br label %$4\n$4:\n  %16 = phi i64 [%10, %$3], [%13, %$5] ; # X\n  %17 = phi i64 [%11, %$3], [%14, %$5] ; # Exe\n  %18 = phi i1 [0, %$3], [%15, %$5] ; # ->\n  br i1 %18, label %$6, label %$7\n$6:\n  %19 = phi i64 [%16, %$4] ; # X\n  %20 = phi i64 [%17, %$4] ; # Exe\n  call void @protErr(i64 %20, i64 %19)\n  unreachable\n$7:\n  %21 = phi i64 [%16, %$4] ; # X\n  %22 = phi i64 [%17, %$4] ; # Exe\n; # (if (atom (val X)) @ (set X (cdr @)) (car @))\n; # (val X)\n  %23 = inttoptr i64 %10 to i64*\n  %24 = load i64, i64* %23\n; # (atom (val X))\n  %25 = and i64 %24, 15\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$8, label %$9\n$8:\n  %27 = phi i64 [%0, %$7] ; # Exe\n  %28 = phi i64 [%10, %$7] ; # X\n  br label %$10\n$9:\n  %29 = phi i64 [%0, %$7] ; # Exe\n  %30 = phi i64 [%10, %$7] ; # X\n; # (set X (cdr @))\n; # (cdr @)\n  %31 = inttoptr i64 %24 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %30 to i64*\n  store i64 %33, i64* %34\n; # (car @)\n  %35 = inttoptr i64 %24 to i64*\n  %36 = load i64, i64* %35\n  br label %$10\n$10:\n  %37 = phi i64 [%27, %$8], [%29, %$9] ; # Exe\n  %38 = phi i64 [%28, %$8], [%30, %$9] ; # X\n  %39 = phi i64 [%24, %$8], [%36, %$9] ; # ->\n  ret i64 %39\n}\n\ndefine i64 @_Shift(i64) align 8 {\n$1:\n; # (let X (needChkVar Exe (eval (cadr Exe))) (when (and (sym? X) (sy...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needChkVar Exe (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = icmp uge i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %25, label %$10, label %$9\n$10:\n  %26 = phi i64 [%23, %$8] ; # X\n  %27 = phi i64 [%24, %$8] ; # Exe\n  %28 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %26\n  br label %$9\n$9:\n  %29 = phi i64 [%23, %$8], [%26, %$10] ; # X\n  %30 = phi i64 [%24, %$8], [%27, %$10] ; # Exe\n  %31 = phi i1 [0, %$8], [%28, %$10] ; # ->\n  br i1 %31, label %$11, label %$12\n$11:\n  %32 = phi i64 [%29, %$9] ; # X\n  %33 = phi i64 [%30, %$9] ; # Exe\n  call void @protErr(i64 %33, i64 %32)\n  unreachable\n$12:\n  %34 = phi i64 [%29, %$9] ; # X\n  %35 = phi i64 [%30, %$9] ; # Exe\n; # (when (and (sym? X) (sym? (val (tail X)))) (dbTouch Exe X))\n; # (and (sym? X) (sym? (val (tail X))))\n; # (sym? X)\n  %36 = and i64 %23, 8\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$14:\n  %38 = phi i64 [%0, %$12] ; # Exe\n  %39 = phi i64 [%23, %$12] ; # X\n; # (tail X)\n  %40 = add i64 %39, -8\n; # (val (tail X))\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n; # (sym? (val (tail X)))\n  %43 = and i64 %42, 8\n  %44 = icmp ne i64 %43, 0\n  br label %$13\n$13:\n  %45 = phi i64 [%0, %$12], [%38, %$14] ; # Exe\n  %46 = phi i64 [%23, %$12], [%39, %$14] ; # X\n  %47 = phi i1 [0, %$12], [%44, %$14] ; # ->\n  br i1 %47, label %$15, label %$16\n$15:\n  %48 = phi i64 [%45, %$13] ; # Exe\n  %49 = phi i64 [%46, %$13] ; # X\n; # (dbTouch Exe X)\n  call void @dbTouch(i64 %48, i64 %49)\n  br label %$16\n$16:\n  %50 = phi i64 [%45, %$13], [%48, %$15] ; # Exe\n  %51 = phi i64 [%46, %$13], [%49, %$15] ; # X\n; # (set X (cdr (needLst Exe (val X))))\n; # (val X)\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (needLst Exe (val X))\n  %54 = and i64 %53, 15\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$17, label %$18\n$18:\n  %56 = phi i64 [%53, %$16] ; # X\n  %57 = phi i64 [%50, %$16] ; # Exe\n  %58 = icmp eq i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$17\n$17:\n  %59 = phi i64 [%53, %$16], [%56, %$18] ; # X\n  %60 = phi i64 [%50, %$16], [%57, %$18] ; # Exe\n  %61 = phi i1 [1, %$16], [%58, %$18] ; # ->\n  br i1 %61, label %$20, label %$19\n$19:\n  %62 = phi i64 [%59, %$17] ; # X\n  %63 = phi i64 [%60, %$17] ; # Exe\n  call void @lstErr(i64 %63, i64 %62)\n  unreachable\n$20:\n  %64 = phi i64 [%59, %$17] ; # X\n  %65 = phi i64 [%60, %$17] ; # Exe\n; # (cdr (needLst Exe (val X)))\n  %66 = inttoptr i64 %64 to i64*\n  %67 = getelementptr i64, i64* %66, i32 1\n  %68 = load i64, i64* %67\n  %69 = inttoptr i64 %51 to i64*\n  store i64 %68, i64* %69\n  ret i64 %68\n}\n\ndefine i64 @_Cut(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X)) (if (le0 N) $Nil (let Y (needC...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (if (le0 N) $Nil (let Y (needChkVar Exe (eval (cadr X))) (when (a...\n; # (le0 N)\n  %5 = icmp sle i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n  %8 = phi i64 [%4, %$1] ; # N\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n  %11 = phi i64 [%4, %$1] ; # N\n; # (let Y (needChkVar Exe (eval (cadr X))) (when (and (sym? Y) (sym?...\n; # (cadr X)\n  %12 = inttoptr i64 %10 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n; # (eval (cadr X))\n  %17 = and i64 %16, 6\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$7, label %$6\n$7:\n  %19 = phi i64 [%16, %$3] ; # X\n  br label %$5\n$6:\n  %20 = phi i64 [%16, %$3] ; # X\n  %21 = and i64 %20, 8\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%20, %$6] ; # X\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n  br label %$5\n$8:\n  %26 = phi i64 [%20, %$6] ; # X\n  %27 = call i64 @evList(i64 %26)\n  br label %$5\n$5:\n  %28 = phi i64 [%19, %$7], [%23, %$9], [%26, %$8] ; # X\n  %29 = phi i64 [%19, %$7], [%25, %$9], [%27, %$8] ; # ->\n; # (needChkVar Exe (eval (cadr X)))\n  %30 = and i64 %29, 6\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$10, label %$11\n$10:\n  %32 = phi i64 [%29, %$5] ; # X\n  %33 = phi i64 [%9, %$5] ; # Exe\n  call void @varErr(i64 %33, i64 %32)\n  unreachable\n$11:\n  %34 = phi i64 [%29, %$5] ; # X\n  %35 = phi i64 [%9, %$5] ; # Exe\n  %36 = icmp uge i64 %34, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %36, label %$13, label %$12\n$13:\n  %37 = phi i64 [%34, %$11] ; # X\n  %38 = phi i64 [%35, %$11] ; # Exe\n  %39 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %37\n  br label %$12\n$12:\n  %40 = phi i64 [%34, %$11], [%37, %$13] ; # X\n  %41 = phi i64 [%35, %$11], [%38, %$13] ; # Exe\n  %42 = phi i1 [0, %$11], [%39, %$13] ; # ->\n  br i1 %42, label %$14, label %$15\n$14:\n  %43 = phi i64 [%40, %$12] ; # X\n  %44 = phi i64 [%41, %$12] ; # Exe\n  call void @protErr(i64 %44, i64 %43)\n  unreachable\n$15:\n  %45 = phi i64 [%40, %$12] ; # X\n  %46 = phi i64 [%41, %$12] ; # Exe\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %47 = and i64 %34, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$17, label %$16\n$17:\n  %49 = phi i64 [%9, %$15] ; # Exe\n  %50 = phi i64 [%10, %$15] ; # X\n  %51 = phi i64 [%11, %$15] ; # N\n  %52 = phi i64 [%34, %$15] ; # Y\n; # (tail Y)\n  %53 = add i64 %52, -8\n; # (val (tail Y))\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n; # (sym? (val (tail Y)))\n  %56 = and i64 %55, 8\n  %57 = icmp ne i64 %56, 0\n  br label %$16\n$16:\n  %58 = phi i64 [%9, %$15], [%49, %$17] ; # Exe\n  %59 = phi i64 [%10, %$15], [%50, %$17] ; # X\n  %60 = phi i64 [%11, %$15], [%51, %$17] ; # N\n  %61 = phi i64 [%34, %$15], [%52, %$17] ; # Y\n  %62 = phi i1 [0, %$15], [%57, %$17] ; # ->\n  br i1 %62, label %$18, label %$19\n$18:\n  %63 = phi i64 [%58, %$16] ; # Exe\n  %64 = phi i64 [%59, %$16] ; # X\n  %65 = phi i64 [%60, %$16] ; # N\n  %66 = phi i64 [%61, %$16] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %63, i64 %66)\n  br label %$19\n$19:\n  %67 = phi i64 [%58, %$16], [%63, %$18] ; # Exe\n  %68 = phi i64 [%59, %$16], [%64, %$18] ; # X\n  %69 = phi i64 [%60, %$16], [%65, %$18] ; # N\n  %70 = phi i64 [%61, %$16], [%66, %$18] ; # Y\n; # (if (atom (val Y)) @ (let (V (save @) Z (cons (++ V) $Nil) R (sav...\n; # (val Y)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n; # (atom (val Y))\n  %73 = and i64 %72, 15\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$21\n$20:\n  %75 = phi i64 [%67, %$19] ; # Exe\n  %76 = phi i64 [%68, %$19] ; # X\n  %77 = phi i64 [%69, %$19] ; # N\n  %78 = phi i64 [%70, %$19] ; # Y\n  br label %$22\n$21:\n  %79 = phi i64 [%67, %$19] ; # Exe\n  %80 = phi i64 [%68, %$19] ; # X\n  %81 = phi i64 [%69, %$19] ; # N\n  %82 = phi i64 [%70, %$19] ; # Y\n; # (let (V (save @) Z (cons (++ V) $Nil) R (save Z)) (while (and (pa...\n; # (save @)\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %84 = load i64, i64* %83\n  %85 = alloca i64, i64 2, align 16\n  %86 = ptrtoint i64* %85 to i64\n  %87 = inttoptr i64 %86 to i64*\n  store i64 %72, i64* %87\n  %88 = add i64 %86, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 %84, i64* %89\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %90\n; # (++ V)\n  %91 = inttoptr i64 %72 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n  %94 = load i64, i64* %91\n; # (cons (++ V) $Nil)\n  %95 = call i64 @cons(i64 %94, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Z)\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %97 = load i64, i64* %96\n  %98 = alloca i64, i64 2, align 16\n  %99 = ptrtoint i64* %98 to i64\n  %100 = inttoptr i64 %99 to i64*\n  store i64 %95, i64* %100\n  %101 = add i64 %99, 8\n  %102 = inttoptr i64 %101 to i64*\n  store i64 %97, i64* %102\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %103\n; # (while (and (pair V) (dec 'N)) (setq Z (set 2 Z (cons (++ V) $Nil...\n  br label %$23\n$23:\n  %104 = phi i64 [%79, %$21], [%130, %$26] ; # Exe\n  %105 = phi i64 [%80, %$21], [%131, %$26] ; # X\n  %106 = phi i64 [%81, %$21], [%132, %$26] ; # N\n  %107 = phi i64 [%82, %$21], [%133, %$26] ; # Y\n  %108 = phi i64 [%93, %$21], [%139, %$26] ; # V\n  %109 = phi i64 [%95, %$21], [%141, %$26] ; # Z\n  %110 = phi i64 [%95, %$21], [%136, %$26] ; # R\n; # (and (pair V) (dec 'N))\n; # (pair V)\n  %111 = and i64 %108, 15\n  %112 = icmp eq i64 %111, 0\n  br i1 %112, label %$25, label %$24\n$25:\n  %113 = phi i64 [%104, %$23] ; # Exe\n  %114 = phi i64 [%105, %$23] ; # X\n  %115 = phi i64 [%106, %$23] ; # N\n  %116 = phi i64 [%107, %$23] ; # Y\n  %117 = phi i64 [%108, %$23] ; # V\n  %118 = phi i64 [%109, %$23] ; # Z\n  %119 = phi i64 [%110, %$23] ; # R\n; # (dec 'N)\n  %120 = sub i64 %115, 1\n  %121 = icmp ne i64 %120, 0\n  br label %$24\n$24:\n  %122 = phi i64 [%104, %$23], [%113, %$25] ; # Exe\n  %123 = phi i64 [%105, %$23], [%114, %$25] ; # X\n  %124 = phi i64 [%106, %$23], [%120, %$25] ; # N\n  %125 = phi i64 [%107, %$23], [%116, %$25] ; # Y\n  %126 = phi i64 [%108, %$23], [%117, %$25] ; # V\n  %127 = phi i64 [%109, %$23], [%118, %$25] ; # Z\n  %128 = phi i64 [%110, %$23], [%119, %$25] ; # R\n  %129 = phi i1 [0, %$23], [%121, %$25] ; # ->\n  br i1 %129, label %$26, label %$27\n$26:\n  %130 = phi i64 [%122, %$24] ; # Exe\n  %131 = phi i64 [%123, %$24] ; # X\n  %132 = phi i64 [%124, %$24] ; # N\n  %133 = phi i64 [%125, %$24] ; # Y\n  %134 = phi i64 [%126, %$24] ; # V\n  %135 = phi i64 [%127, %$24] ; # Z\n  %136 = phi i64 [%128, %$24] ; # R\n; # (set 2 Z (cons (++ V) $Nil))\n; # (++ V)\n  %137 = inttoptr i64 %134 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = load i64, i64* %137\n; # (cons (++ V) $Nil)\n  %141 = call i64 @cons(i64 %140, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %142 = inttoptr i64 %135 to i64*\n  %143 = getelementptr i64, i64* %142, i32 1\n  store i64 %141, i64* %143\n  br label %$23\n$27:\n  %144 = phi i64 [%122, %$24] ; # Exe\n  %145 = phi i64 [%123, %$24] ; # X\n  %146 = phi i64 [%124, %$24] ; # N\n  %147 = phi i64 [%125, %$24] ; # Y\n  %148 = phi i64 [%126, %$24] ; # V\n  %149 = phi i64 [%127, %$24] ; # Z\n  %150 = phi i64 [%128, %$24] ; # R\n; # (set Y V)\n  %151 = inttoptr i64 %147 to i64*\n  store i64 %148, i64* %151\n; # (drop *Safe)\n  %152 = inttoptr i64 %86 to i64*\n  %153 = getelementptr i64, i64* %152, i32 1\n  %154 = load i64, i64* %153\n  %155 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %154, i64* %155\n  br label %$22\n$22:\n  %156 = phi i64 [%75, %$20], [%144, %$27] ; # Exe\n  %157 = phi i64 [%76, %$20], [%145, %$27] ; # X\n  %158 = phi i64 [%77, %$20], [%146, %$27] ; # N\n  %159 = phi i64 [%78, %$20], [%147, %$27] ; # Y\n  %160 = phi i64 [%72, %$20], [%150, %$27] ; # ->\n  br label %$4\n$4:\n  %161 = phi i64 [%6, %$2], [%156, %$22] ; # Exe\n  %162 = phi i64 [%7, %$2], [%157, %$22] ; # X\n  %163 = phi i64 [%8, %$2], [%158, %$22] ; # N\n  %164 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%160, %$22] ; # ->\n  ret i64 %164\n}\n\ndefine i64 @_Del(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Var (save (needChkVar Ex...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$12, label %$13\n$12:\n  %48 = phi i64 [%45, %$7] ; # X\n  %49 = phi i64 [%0, %$7] ; # Exe\n  call void @varErr(i64 %49, i64 %48)\n  unreachable\n$13:\n  %50 = phi i64 [%45, %$7] ; # X\n  %51 = phi i64 [%0, %$7] ; # Exe\n  %52 = icmp uge i64 %50, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %52, label %$15, label %$14\n$15:\n  %53 = phi i64 [%50, %$13] ; # X\n  %54 = phi i64 [%51, %$13] ; # Exe\n  %55 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %53\n  br label %$14\n$14:\n  %56 = phi i64 [%50, %$13], [%53, %$15] ; # X\n  %57 = phi i64 [%51, %$13], [%54, %$15] ; # Exe\n  %58 = phi i1 [0, %$13], [%55, %$15] ; # ->\n  br i1 %58, label %$16, label %$17\n$16:\n  %59 = phi i64 [%56, %$14] ; # X\n  %60 = phi i64 [%57, %$14] ; # Exe\n  call void @protErr(i64 %60, i64 %59)\n  unreachable\n$17:\n  %61 = phi i64 [%56, %$14] ; # X\n  %62 = phi i64 [%57, %$14] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %64 = load i64, i64* %63\n  %65 = alloca i64, i64 2, align 16\n  %66 = ptrtoint i64* %65 to i64\n  %67 = inttoptr i64 %66 to i64*\n  store i64 %50, i64* %67\n  %68 = add i64 %66, 8\n  %69 = inttoptr i64 %68 to i64*\n  store i64 %64, i64* %69\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %66, i64* %70\n; # (car X)\n  %71 = inttoptr i64 %31 to i64*\n  %72 = load i64, i64* %71\n; # (eval (car X))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  br label %$18\n$19:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%76, %$19] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$18\n$21:\n  %82 = phi i64 [%76, %$19] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$18\n$18:\n  %84 = phi i64 [%75, %$20], [%79, %$22], [%82, %$21] ; # X\n  %85 = phi i64 [%75, %$20], [%81, %$22], [%83, %$21] ; # ->\n; # (nil? (eval (car X)))\n  %86 = icmp eq i64 %85, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (when (and (sym? Var) (sym? (val (tail Var)))) (dbTouch Exe Var))...\n; # (and (sym? Var) (sym? (val (tail Var))))\n; # (sym? Var)\n  %87 = and i64 %50, 8\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$24, label %$23\n$24:\n  %89 = phi i64 [%0, %$18] ; # Exe\n  %90 = phi i64 [%31, %$18] ; # X\n  %91 = phi i64 [%20, %$18] ; # Y\n  %92 = phi i64 [%50, %$18] ; # Var\n  %93 = phi i1 [%86, %$18] ; # Flg\n; # (tail Var)\n  %94 = add i64 %92, -8\n; # (val (tail Var))\n  %95 = inttoptr i64 %94 to i64*\n  %96 = load i64, i64* %95\n; # (sym? (val (tail Var)))\n  %97 = and i64 %96, 8\n  %98 = icmp ne i64 %97, 0\n  br label %$23\n$23:\n  %99 = phi i64 [%0, %$18], [%89, %$24] ; # Exe\n  %100 = phi i64 [%31, %$18], [%90, %$24] ; # X\n  %101 = phi i64 [%20, %$18], [%91, %$24] ; # Y\n  %102 = phi i64 [%50, %$18], [%92, %$24] ; # Var\n  %103 = phi i1 [%86, %$18], [%93, %$24] ; # Flg\n  %104 = phi i1 [0, %$18], [%98, %$24] ; # ->\n  br i1 %104, label %$25, label %$26\n$25:\n  %105 = phi i64 [%99, %$23] ; # Exe\n  %106 = phi i64 [%100, %$23] ; # X\n  %107 = phi i64 [%101, %$23] ; # Y\n  %108 = phi i64 [%102, %$23] ; # Var\n  %109 = phi i1 [%103, %$23] ; # Flg\n; # (dbTouch Exe Var)\n  call void @dbTouch(i64 %105, i64 %108)\n  br label %$26\n$26:\n  %110 = phi i64 [%99, %$23], [%105, %$25] ; # Exe\n  %111 = phi i64 [%100, %$23], [%106, %$25] ; # X\n  %112 = phi i64 [%101, %$23], [%107, %$25] ; # Y\n  %113 = phi i64 [%102, %$23], [%108, %$25] ; # Var\n  %114 = phi i1 [%103, %$23], [%109, %$25] ; # Flg\n; # (let V (val Var) (loop (? (atom V) V) (let Z (++ V) (? (not (equa...\n; # (val Var)\n  %115 = inttoptr i64 %113 to i64*\n  %116 = load i64, i64* %115\n; # (loop (? (atom V) V) (let Z (++ V) (? (not (equal Y Z)) (let (P (...\n  br label %$27\n$27:\n  %117 = phi i64 [%110, %$26], [%254, %$40] ; # Exe\n  %118 = phi i64 [%111, %$26], [%255, %$40] ; # X\n  %119 = phi i64 [%112, %$26], [%256, %$40] ; # Y\n  %120 = phi i64 [%113, %$26], [%257, %$40] ; # Var\n  %121 = phi i1 [%114, %$26], [%258, %$40] ; # Flg\n  %122 = phi i64 [%116, %$26], [%259, %$40] ; # V\n; # (? (atom V) V)\n; # (atom V)\n  %123 = and i64 %122, 15\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$30, label %$28\n$30:\n  %125 = phi i64 [%117, %$27] ; # Exe\n  %126 = phi i64 [%118, %$27] ; # X\n  %127 = phi i64 [%119, %$27] ; # Y\n  %128 = phi i64 [%120, %$27] ; # Var\n  %129 = phi i1 [%121, %$27] ; # Flg\n  %130 = phi i64 [%122, %$27] ; # V\n  br label %$29\n$28:\n  %131 = phi i64 [%117, %$27] ; # Exe\n  %132 = phi i64 [%118, %$27] ; # X\n  %133 = phi i64 [%119, %$27] ; # Y\n  %134 = phi i64 [%120, %$27] ; # Var\n  %135 = phi i1 [%121, %$27] ; # Flg\n  %136 = phi i64 [%122, %$27] ; # V\n; # (let Z (++ V) (? (not (equal Y Z)) (let (P (cons Z $Nil) R P) (sa...\n; # (++ V)\n  %137 = inttoptr i64 %136 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = load i64, i64* %137\n; # (? (not (equal Y Z)) (let (P (cons Z $Nil) R P) (save R (loop (? ...\n; # (equal Y Z)\n  %141 = call i1 @equal(i64 %133, i64 %140)\n; # (not (equal Y Z))\n  %142 = icmp eq i1 %141, 0\n  br i1 %142, label %$32, label %$31\n$32:\n  %143 = phi i64 [%131, %$28] ; # Exe\n  %144 = phi i64 [%132, %$28] ; # X\n  %145 = phi i64 [%133, %$28] ; # Y\n  %146 = phi i64 [%134, %$28] ; # Var\n  %147 = phi i1 [%135, %$28] ; # Flg\n  %148 = phi i64 [%139, %$28] ; # V\n  %149 = phi i64 [%140, %$28] ; # Z\n; # (let (P (cons Z $Nil) R P) (save R (loop (? (atom V)) (if (equal ...\n; # (cons Z $Nil)\n  %150 = call i64 @cons(i64 %149, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save R (loop (? (atom V)) (if (equal Y (setq Z (++ V))) (? Flg) ...\n  %151 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %152 = load i64, i64* %151\n  %153 = alloca i64, i64 2, align 16\n  %154 = ptrtoint i64* %153 to i64\n  %155 = inttoptr i64 %154 to i64*\n  store i64 %150, i64* %155\n  %156 = add i64 %154, 8\n  %157 = inttoptr i64 %156 to i64*\n  store i64 %152, i64* %157\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %154, i64* %158\n; # (loop (? (atom V)) (if (equal Y (setq Z (++ V))) (? Flg) (setq P ...\n  br label %$33\n$33:\n  %159 = phi i64 [%143, %$32], [%214, %$38] ; # Exe\n  %160 = phi i64 [%144, %$32], [%215, %$38] ; # X\n  %161 = phi i64 [%145, %$32], [%216, %$38] ; # Y\n  %162 = phi i64 [%146, %$32], [%217, %$38] ; # Var\n  %163 = phi i1 [%147, %$32], [%218, %$38] ; # Flg\n  %164 = phi i64 [%148, %$32], [%219, %$38] ; # V\n  %165 = phi i64 [%149, %$32], [%220, %$38] ; # Z\n  %166 = phi i64 [%150, %$32], [%221, %$38] ; # P\n  %167 = phi i64 [%150, %$32], [%222, %$38] ; # R\n; # (? (atom V))\n; # (atom V)\n  %168 = and i64 %164, 15\n  %169 = icmp ne i64 %168, 0\n  br i1 %169, label %$35, label %$34\n$34:\n  %170 = phi i64 [%159, %$33] ; # Exe\n  %171 = phi i64 [%160, %$33] ; # X\n  %172 = phi i64 [%161, %$33] ; # Y\n  %173 = phi i64 [%162, %$33] ; # Var\n  %174 = phi i1 [%163, %$33] ; # Flg\n  %175 = phi i64 [%164, %$33] ; # V\n  %176 = phi i64 [%165, %$33] ; # Z\n  %177 = phi i64 [%166, %$33] ; # P\n  %178 = phi i64 [%167, %$33] ; # R\n; # (if (equal Y (setq Z (++ V))) (? Flg) (setq P (set 2 P (cons Z $N...\n; # (++ V)\n  %179 = inttoptr i64 %175 to i64*\n  %180 = getelementptr i64, i64* %179, i32 1\n  %181 = load i64, i64* %180\n  %182 = load i64, i64* %179\n; # (equal Y (setq Z (++ V)))\n  %183 = call i1 @equal(i64 %172, i64 %182)\n  br i1 %183, label %$36, label %$37\n$36:\n  %184 = phi i64 [%170, %$34] ; # Exe\n  %185 = phi i64 [%171, %$34] ; # X\n  %186 = phi i64 [%172, %$34] ; # Y\n  %187 = phi i64 [%173, %$34] ; # Var\n  %188 = phi i1 [%174, %$34] ; # Flg\n  %189 = phi i64 [%181, %$34] ; # V\n  %190 = phi i64 [%182, %$34] ; # Z\n  %191 = phi i64 [%177, %$34] ; # P\n  %192 = phi i64 [%178, %$34] ; # R\n; # (? Flg)\n  br i1 %188, label %$35, label %$39\n$39:\n  %193 = phi i64 [%184, %$36] ; # Exe\n  %194 = phi i64 [%185, %$36] ; # X\n  %195 = phi i64 [%186, %$36] ; # Y\n  %196 = phi i64 [%187, %$36] ; # Var\n  %197 = phi i1 [%188, %$36] ; # Flg\n  %198 = phi i64 [%189, %$36] ; # V\n  %199 = phi i64 [%190, %$36] ; # Z\n  %200 = phi i64 [%191, %$36] ; # P\n  %201 = phi i64 [%192, %$36] ; # R\n  br label %$38\n$37:\n  %202 = phi i64 [%170, %$34] ; # Exe\n  %203 = phi i64 [%171, %$34] ; # X\n  %204 = phi i64 [%172, %$34] ; # Y\n  %205 = phi i64 [%173, %$34] ; # Var\n  %206 = phi i1 [%174, %$34] ; # Flg\n  %207 = phi i64 [%181, %$34] ; # V\n  %208 = phi i64 [%182, %$34] ; # Z\n  %209 = phi i64 [%177, %$34] ; # P\n  %210 = phi i64 [%178, %$34] ; # R\n; # (set 2 P (cons Z $Nil))\n; # (cons Z $Nil)\n  %211 = call i64 @cons(i64 %208, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %212 = inttoptr i64 %209 to i64*\n  %213 = getelementptr i64, i64* %212, i32 1\n  store i64 %211, i64* %213\n  br label %$38\n$38:\n  %214 = phi i64 [%193, %$39], [%202, %$37] ; # Exe\n  %215 = phi i64 [%194, %$39], [%203, %$37] ; # X\n  %216 = phi i64 [%195, %$39], [%204, %$37] ; # Y\n  %217 = phi i64 [%196, %$39], [%205, %$37] ; # Var\n  %218 = phi i1 [%197, %$39], [%206, %$37] ; # Flg\n  %219 = phi i64 [%198, %$39], [%207, %$37] ; # V\n  %220 = phi i64 [%199, %$39], [%208, %$37] ; # Z\n  %221 = phi i64 [%200, %$39], [%211, %$37] ; # P\n  %222 = phi i64 [%201, %$39], [%210, %$37] ; # R\n  br label %$33\n$35:\n  %223 = phi i64 [%159, %$33], [%184, %$36] ; # Exe\n  %224 = phi i64 [%160, %$33], [%185, %$36] ; # X\n  %225 = phi i64 [%161, %$33], [%186, %$36] ; # Y\n  %226 = phi i64 [%162, %$33], [%187, %$36] ; # Var\n  %227 = phi i1 [%163, %$33], [%188, %$36] ; # Flg\n  %228 = phi i64 [%164, %$33], [%189, %$36] ; # V\n  %229 = phi i64 [%165, %$33], [%190, %$36] ; # Z\n  %230 = phi i64 [%166, %$33], [%191, %$36] ; # P\n  %231 = phi i64 [%167, %$33], [%192, %$36] ; # R\n  %232 = phi i64 [0, %$33], [0, %$36] ; # ->\n; # drop\n  %233 = inttoptr i64 %154 to i64*\n  %234 = getelementptr i64, i64* %233, i32 1\n  %235 = load i64, i64* %234\n  %236 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %235, i64* %236\n; # (set 2 P V Var R)\n  %237 = inttoptr i64 %230 to i64*\n  %238 = getelementptr i64, i64* %237, i32 1\n  store i64 %228, i64* %238\n  %239 = inttoptr i64 %226 to i64*\n  store i64 %231, i64* %239\n  br label %$29\n$31:\n  %240 = phi i64 [%131, %$28] ; # Exe\n  %241 = phi i64 [%132, %$28] ; # X\n  %242 = phi i64 [%133, %$28] ; # Y\n  %243 = phi i64 [%134, %$28] ; # Var\n  %244 = phi i1 [%135, %$28] ; # Flg\n  %245 = phi i64 [%139, %$28] ; # V\n  %246 = phi i64 [%140, %$28] ; # Z\n; # (set Var V)\n  %247 = inttoptr i64 %243 to i64*\n  store i64 %245, i64* %247\n; # (? Flg V)\n  br i1 %244, label %$41, label %$40\n$41:\n  %248 = phi i64 [%240, %$31] ; # Exe\n  %249 = phi i64 [%241, %$31] ; # X\n  %250 = phi i64 [%242, %$31] ; # Y\n  %251 = phi i64 [%243, %$31] ; # Var\n  %252 = phi i1 [%244, %$31] ; # Flg\n  %253 = phi i64 [%245, %$31] ; # V\n  br label %$29\n$40:\n  %254 = phi i64 [%240, %$31] ; # Exe\n  %255 = phi i64 [%241, %$31] ; # X\n  %256 = phi i64 [%242, %$31] ; # Y\n  %257 = phi i64 [%243, %$31] ; # Var\n  %258 = phi i1 [%244, %$31] ; # Flg\n  %259 = phi i64 [%245, %$31] ; # V\n  br label %$27\n$29:\n  %260 = phi i64 [%125, %$30], [%223, %$35], [%248, %$41] ; # Exe\n  %261 = phi i64 [%126, %$30], [%224, %$35], [%249, %$41] ; # X\n  %262 = phi i64 [%127, %$30], [%225, %$35], [%250, %$41] ; # Y\n  %263 = phi i64 [%128, %$30], [%226, %$35], [%251, %$41] ; # Var\n  %264 = phi i1 [%129, %$30], [%227, %$35], [%252, %$41] ; # Flg\n  %265 = phi i64 [%130, %$30], [%228, %$35], [%253, %$41] ; # V\n  %266 = phi i64 [%130, %$30], [%231, %$35], [%253, %$41] ; # ->\n; # (drop *Safe)\n  %267 = inttoptr i64 %24 to i64*\n  %268 = getelementptr i64, i64* %267, i32 1\n  %269 = load i64, i64* %268\n  %270 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %269, i64* %270\n  ret i64 %266\n}\n\ndefine i64 @_Queue(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (let (Z (eval (car X)) L (cons Z $Nil) V (val Y)) (if (atom V) (s...\n; # (car X)\n  %66 = inttoptr i64 %64 to i64*\n  %67 = load i64, i64* %66\n; # (eval (car X))\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%67, %$16] ; # X\n  br label %$17\n$18:\n  %71 = phi i64 [%67, %$16] ; # X\n  %72 = and i64 %71, 8\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$21, label %$20\n$21:\n  %74 = phi i64 [%71, %$18] ; # X\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  br label %$17\n$20:\n  %77 = phi i64 [%71, %$18] ; # X\n  %78 = call i64 @evList(i64 %77)\n  br label %$17\n$17:\n  %79 = phi i64 [%70, %$19], [%74, %$21], [%77, %$20] ; # X\n  %80 = phi i64 [%70, %$19], [%76, %$21], [%78, %$20] ; # ->\n; # (cons Z $Nil)\n  %81 = call i64 @cons(i64 %80, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (val Y)\n  %82 = inttoptr i64 %65 to i64*\n  %83 = load i64, i64* %82\n; # (if (atom V) (set Y L) (while (pair (cdr V)) (shift V)) (set 2 V ...\n; # (atom V)\n  %84 = and i64 %83, 15\n  %85 = icmp ne i64 %84, 0\n  br i1 %85, label %$22, label %$23\n$22:\n  %86 = phi i64 [%63, %$17] ; # Exe\n  %87 = phi i64 [%64, %$17] ; # X\n  %88 = phi i64 [%65, %$17] ; # Y\n  %89 = phi i64 [%80, %$17] ; # Z\n  %90 = phi i64 [%81, %$17] ; # L\n  %91 = phi i64 [%83, %$17] ; # V\n; # (set Y L)\n  %92 = inttoptr i64 %88 to i64*\n  store i64 %90, i64* %92\n  br label %$24\n$23:\n  %93 = phi i64 [%63, %$17] ; # Exe\n  %94 = phi i64 [%64, %$17] ; # X\n  %95 = phi i64 [%65, %$17] ; # Y\n  %96 = phi i64 [%80, %$17] ; # Z\n  %97 = phi i64 [%81, %$17] ; # L\n  %98 = phi i64 [%83, %$17] ; # V\n; # (while (pair (cdr V)) (shift V))\n  br label %$25\n$25:\n  %99 = phi i64 [%93, %$23], [%110, %$26] ; # Exe\n  %100 = phi i64 [%94, %$23], [%111, %$26] ; # X\n  %101 = phi i64 [%95, %$23], [%112, %$26] ; # Y\n  %102 = phi i64 [%96, %$23], [%113, %$26] ; # Z\n  %103 = phi i64 [%97, %$23], [%114, %$26] ; # L\n  %104 = phi i64 [%98, %$23], [%118, %$26] ; # V\n; # (cdr V)\n  %105 = inttoptr i64 %104 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  %107 = load i64, i64* %106\n; # (pair (cdr V))\n  %108 = and i64 %107, 15\n  %109 = icmp eq i64 %108, 0\n  br i1 %109, label %$26, label %$27\n$26:\n  %110 = phi i64 [%99, %$25] ; # Exe\n  %111 = phi i64 [%100, %$25] ; # X\n  %112 = phi i64 [%101, %$25] ; # Y\n  %113 = phi i64 [%102, %$25] ; # Z\n  %114 = phi i64 [%103, %$25] ; # L\n  %115 = phi i64 [%104, %$25] ; # V\n; # (shift V)\n  %116 = inttoptr i64 %115 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n  br label %$25\n$27:\n  %119 = phi i64 [%99, %$25] ; # Exe\n  %120 = phi i64 [%100, %$25] ; # X\n  %121 = phi i64 [%101, %$25] ; # Y\n  %122 = phi i64 [%102, %$25] ; # Z\n  %123 = phi i64 [%103, %$25] ; # L\n  %124 = phi i64 [%104, %$25] ; # V\n; # (set 2 V L)\n  %125 = inttoptr i64 %124 to i64*\n  %126 = getelementptr i64, i64* %125, i32 1\n  store i64 %123, i64* %126\n  br label %$24\n$24:\n  %127 = phi i64 [%86, %$22], [%119, %$27] ; # Exe\n  %128 = phi i64 [%87, %$22], [%120, %$27] ; # X\n  %129 = phi i64 [%88, %$22], [%121, %$27] ; # Y\n  %130 = phi i64 [%89, %$22], [%122, %$27] ; # Z\n  %131 = phi i64 [%90, %$22], [%123, %$27] ; # L\n  %132 = phi i64 [%91, %$22], [%124, %$27] ; # V\n  %133 = phi i64 [%90, %$22], [%123, %$27] ; # ->\n; # (drop *Safe)\n  %134 = inttoptr i64 %41 to i64*\n  %135 = getelementptr i64, i64* %134, i32 1\n  %136 = load i64, i64* %135\n  %137 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %136, i64* %137\n  ret i64 %130\n}\n\ndefine i64 @_Fifo(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (let V (val Y) (cond ((pair X) (let E (eval (car X)) (if (pair V)...\n; # (val Y)\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (cond ((pair X) (let E (eval (car X)) (if (pair V) (setq V (set 2...\n; # (pair X)\n  %68 = and i64 %64, 15\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%63, %$16] ; # Exe\n  %71 = phi i64 [%64, %$16] ; # X\n  %72 = phi i64 [%65, %$16] ; # Y\n  %73 = phi i64 [%67, %$16] ; # V\n; # (let E (eval (car X)) (if (pair V) (setq V (set 2 V (cons E (cdr ...\n; # (car X)\n  %74 = inttoptr i64 %71 to i64*\n  %75 = load i64, i64* %74\n; # (eval (car X))\n  %76 = and i64 %75, 6\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$22, label %$21\n$22:\n  %78 = phi i64 [%75, %$19] ; # X\n  br label %$20\n$21:\n  %79 = phi i64 [%75, %$19] ; # X\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$24, label %$23\n$24:\n  %82 = phi i64 [%79, %$21] ; # X\n  %83 = inttoptr i64 %82 to i64*\n  %84 = load i64, i64* %83\n  br label %$20\n$23:\n  %85 = phi i64 [%79, %$21] ; # X\n  %86 = call i64 @evList(i64 %85)\n  br label %$20\n$20:\n  %87 = phi i64 [%78, %$22], [%82, %$24], [%85, %$23] ; # X\n  %88 = phi i64 [%78, %$22], [%84, %$24], [%86, %$23] ; # ->\n; # (if (pair V) (setq V (set 2 V (cons E (cdr V)))) (setq V (cons E ...\n; # (pair V)\n  %89 = and i64 %73, 15\n  %90 = icmp eq i64 %89, 0\n  br i1 %90, label %$25, label %$26\n$25:\n  %91 = phi i64 [%70, %$20] ; # Exe\n  %92 = phi i64 [%71, %$20] ; # X\n  %93 = phi i64 [%72, %$20] ; # Y\n  %94 = phi i64 [%73, %$20] ; # V\n  %95 = phi i64 [%88, %$20] ; # E\n; # (set 2 V (cons E (cdr V)))\n; # (cdr V)\n  %96 = inttoptr i64 %94 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  %98 = load i64, i64* %97\n; # (cons E (cdr V))\n  %99 = call i64 @cons(i64 %95, i64 %98)\n  %100 = inttoptr i64 %94 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  store i64 %99, i64* %101\n  br label %$27\n$26:\n  %102 = phi i64 [%70, %$20] ; # Exe\n  %103 = phi i64 [%71, %$20] ; # X\n  %104 = phi i64 [%72, %$20] ; # Y\n  %105 = phi i64 [%73, %$20] ; # V\n  %106 = phi i64 [%88, %$20] ; # E\n; # (cons E -ZERO)\n  %107 = call i64 @cons(i64 %106, i64 10)\n; # (set 2 V V)\n  %108 = inttoptr i64 %107 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %107, i64* %109\n  br label %$27\n$27:\n  %110 = phi i64 [%91, %$25], [%102, %$26] ; # Exe\n  %111 = phi i64 [%92, %$25], [%103, %$26] ; # X\n  %112 = phi i64 [%93, %$25], [%104, %$26] ; # Y\n  %113 = phi i64 [%99, %$25], [%107, %$26] ; # V\n  %114 = phi i64 [%95, %$25], [%106, %$26] ; # E\n  %115 = phi i64 [%99, %$25], [%107, %$26] ; # ->\n; # (while (pair (shift X)) (setq V (set 2 V (cons (setq E (eval (car...\n  br label %$28\n$28:\n  %116 = phi i64 [%110, %$27], [%126, %$31] ; # Exe\n  %117 = phi i64 [%111, %$27], [%127, %$31] ; # X\n  %118 = phi i64 [%112, %$27], [%128, %$31] ; # Y\n  %119 = phi i64 [%113, %$27], [%149, %$31] ; # V\n  %120 = phi i64 [%114, %$27], [%145, %$31] ; # E\n; # (shift X)\n  %121 = inttoptr i64 %117 to i64*\n  %122 = getelementptr i64, i64* %121, i32 1\n  %123 = load i64, i64* %122\n; # (pair (shift X))\n  %124 = and i64 %123, 15\n  %125 = icmp eq i64 %124, 0\n  br i1 %125, label %$29, label %$30\n$29:\n  %126 = phi i64 [%116, %$28] ; # Exe\n  %127 = phi i64 [%123, %$28] ; # X\n  %128 = phi i64 [%118, %$28] ; # Y\n  %129 = phi i64 [%119, %$28] ; # V\n  %130 = phi i64 [%120, %$28] ; # E\n; # (set 2 V (cons (setq E (eval (car X))) (cdr V)))\n; # (car X)\n  %131 = inttoptr i64 %127 to i64*\n  %132 = load i64, i64* %131\n; # (eval (car X))\n  %133 = and i64 %132, 6\n  %134 = icmp ne i64 %133, 0\n  br i1 %134, label %$33, label %$32\n$33:\n  %135 = phi i64 [%132, %$29] ; # X\n  br label %$31\n$32:\n  %136 = phi i64 [%132, %$29] ; # X\n  %137 = and i64 %136, 8\n  %138 = icmp ne i64 %137, 0\n  br i1 %138, label %$35, label %$34\n$35:\n  %139 = phi i64 [%136, %$32] ; # X\n  %140 = inttoptr i64 %139 to i64*\n  %141 = load i64, i64* %140\n  br label %$31\n$34:\n  %142 = phi i64 [%136, %$32] ; # X\n  %143 = call i64 @evList(i64 %142)\n  br label %$31\n$31:\n  %144 = phi i64 [%135, %$33], [%139, %$35], [%142, %$34] ; # X\n  %145 = phi i64 [%135, %$33], [%141, %$35], [%143, %$34] ; # ->\n; # (cdr V)\n  %146 = inttoptr i64 %129 to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  %148 = load i64, i64* %147\n; # (cons (setq E (eval (car X))) (cdr V))\n  %149 = call i64 @cons(i64 %145, i64 %148)\n  %150 = inttoptr i64 %129 to i64*\n  %151 = getelementptr i64, i64* %150, i32 1\n  store i64 %149, i64* %151\n  br label %$28\n$30:\n  %152 = phi i64 [%116, %$28] ; # Exe\n  %153 = phi i64 [%123, %$28] ; # X\n  %154 = phi i64 [%118, %$28] ; # Y\n  %155 = phi i64 [%119, %$28] ; # V\n  %156 = phi i64 [%120, %$28] ; # E\n; # (set Y V)\n  %157 = inttoptr i64 %154 to i64*\n  store i64 %155, i64* %157\n  br label %$17\n$18:\n  %158 = phi i64 [%63, %$16] ; # Exe\n  %159 = phi i64 [%64, %$16] ; # X\n  %160 = phi i64 [%65, %$16] ; # Y\n  %161 = phi i64 [%67, %$16] ; # V\n; # (atom V)\n  %162 = and i64 %161, 15\n  %163 = icmp ne i64 %162, 0\n  br i1 %163, label %$37, label %$36\n$37:\n  %164 = phi i64 [%158, %$18] ; # Exe\n  %165 = phi i64 [%159, %$18] ; # X\n  %166 = phi i64 [%160, %$18] ; # Y\n  %167 = phi i64 [%161, %$18] ; # V\n  br label %$17\n$36:\n  %168 = phi i64 [%158, %$18] ; # Exe\n  %169 = phi i64 [%159, %$18] ; # X\n  %170 = phi i64 [%160, %$18] ; # Y\n  %171 = phi i64 [%161, %$18] ; # V\n; # (cdr V)\n  %172 = inttoptr i64 %171 to i64*\n  %173 = getelementptr i64, i64* %172, i32 1\n  %174 = load i64, i64* %173\n; # (== (cdr V) V)\n  %175 = icmp eq i64 %174, %171\n  br i1 %175, label %$39, label %$38\n$39:\n  %176 = phi i64 [%168, %$36] ; # Exe\n  %177 = phi i64 [%169, %$36] ; # X\n  %178 = phi i64 [%170, %$36] ; # Y\n  %179 = phi i64 [%171, %$36] ; # V\n; # (set Y $Nil)\n  %180 = inttoptr i64 %178 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %180\n; # (car V)\n  %181 = inttoptr i64 %179 to i64*\n  %182 = load i64, i64* %181\n  br label %$17\n$38:\n  %183 = phi i64 [%168, %$36] ; # Exe\n  %184 = phi i64 [%169, %$36] ; # X\n  %185 = phi i64 [%170, %$36] ; # Y\n  %186 = phi i64 [%171, %$36] ; # V\n; # (set 2 V (cdr @))\n; # (cdr @)\n  %187 = inttoptr i64 %174 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n  %190 = inttoptr i64 %186 to i64*\n  %191 = getelementptr i64, i64* %190, i32 1\n  store i64 %189, i64* %191\n; # (car @)\n  %192 = inttoptr i64 %174 to i64*\n  %193 = load i64, i64* %192\n  br label %$17\n$17:\n  %194 = phi i64 [%152, %$30], [%164, %$37], [%176, %$39], [%183, %$38] ; # Exe\n  %195 = phi i64 [%153, %$30], [%165, %$37], [%177, %$39], [%184, %$38] ; # X\n  %196 = phi i64 [%154, %$30], [%166, %$37], [%178, %$39], [%185, %$38] ; # Y\n  %197 = phi i64 [%155, %$30], [%167, %$37], [%179, %$39], [%186, %$38] ; # V\n  %198 = phi i64 [%156, %$30], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$37], [%182, %$39], [%193, %$38] ; # ->\n; # (drop *Safe)\n  %199 = inttoptr i64 %41 to i64*\n  %200 = getelementptr i64, i64* %199, i32 1\n  %201 = load i64, i64* %200\n  %202 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %201, i64* %202\n  ret i64 %198\n}\n\ndefine i64 @_Rid(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (needChkVar Exe (eval (++ X))))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (when (and (sym? Y) (sym? (val (tail Y)))) (dbTouch Exe Y))\n; # (and (sym? Y) (sym? (val (tail Y))))\n; # (sym? Y)\n  %46 = and i64 %25, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = phi i64 [%6, %$12] ; # X\n  %50 = phi i64 [%25, %$12] ; # Y\n; # (tail Y)\n  %51 = add i64 %50, -8\n; # (val (tail Y))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Y)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br label %$13\n$13:\n  %56 = phi i64 [%0, %$12], [%48, %$14] ; # Exe\n  %57 = phi i64 [%6, %$12], [%49, %$14] ; # X\n  %58 = phi i64 [%25, %$12], [%50, %$14] ; # Y\n  %59 = phi i1 [0, %$12], [%55, %$14] ; # ->\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%56, %$13] ; # Exe\n  %61 = phi i64 [%57, %$13] ; # X\n  %62 = phi i64 [%58, %$13] ; # Y\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %60, i64 %62)\n  br label %$16\n$16:\n  %63 = phi i64 [%56, %$13], [%60, %$15] ; # Exe\n  %64 = phi i64 [%57, %$13], [%61, %$15] ; # X\n  %65 = phi i64 [%58, %$13], [%62, %$15] ; # Y\n; # (car X)\n  %66 = inttoptr i64 %64 to i64*\n  %67 = load i64, i64* %66\n; # (eval (car X))\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%67, %$16] ; # X\n  br label %$17\n$18:\n  %71 = phi i64 [%67, %$16] ; # X\n  %72 = and i64 %71, 8\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$21, label %$20\n$21:\n  %74 = phi i64 [%71, %$18] ; # X\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  br label %$17\n$20:\n  %77 = phi i64 [%71, %$18] ; # X\n  %78 = call i64 @evList(i64 %77)\n  br label %$17\n$17:\n  %79 = phi i64 [%70, %$19], [%74, %$21], [%77, %$20] ; # X\n  %80 = phi i64 [%70, %$19], [%76, %$21], [%78, %$20] ; # ->\n; # (let V (val Y) (cond ((pair V) (let (Z V L (cdr Z)) (loop (? (ato...\n; # (val Y)\n  %81 = inttoptr i64 %65 to i64*\n  %82 = load i64, i64* %81\n; # (cond ((pair V) (let (Z V L (cdr Z)) (loop (? (atom L) (when (equ...\n; # (pair V)\n  %83 = and i64 %82, 15\n  %84 = icmp eq i64 %83, 0\n  br i1 %84, label %$24, label %$23\n$24:\n  %85 = phi i64 [%63, %$17] ; # Exe\n  %86 = phi i64 [%80, %$17] ; # X\n  %87 = phi i64 [%65, %$17] ; # Y\n  %88 = phi i64 [%82, %$17] ; # V\n; # (let (Z V L (cdr Z)) (loop (? (atom L) (when (equal L X) (set 2 Z...\n; # (cdr Z)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n; # (loop (? (atom L) (when (equal L X) (set 2 Z $Nil)) (if (equal (c...\n  br label %$25\n$25:\n  %92 = phi i64 [%85, %$24], [%234, %$43] ; # Exe\n  %93 = phi i64 [%86, %$24], [%235, %$43] ; # X\n  %94 = phi i64 [%87, %$24], [%236, %$43] ; # Y\n  %95 = phi i64 [%88, %$24], [%237, %$43] ; # V\n  %96 = phi i64 [%88, %$24], [%238, %$43] ; # Z\n  %97 = phi i64 [%91, %$24], [%239, %$43] ; # L\n; # (? (atom L) (when (equal L X) (set 2 Z $Nil)) (if (equal (car V) ...\n; # (atom L)\n  %98 = and i64 %97, 15\n  %99 = icmp ne i64 %98, 0\n  br i1 %99, label %$28, label %$26\n$28:\n  %100 = phi i64 [%92, %$25] ; # Exe\n  %101 = phi i64 [%93, %$25] ; # X\n  %102 = phi i64 [%94, %$25] ; # Y\n  %103 = phi i64 [%95, %$25] ; # V\n  %104 = phi i64 [%96, %$25] ; # Z\n  %105 = phi i64 [%97, %$25] ; # L\n; # (when (equal L X) (set 2 Z $Nil))\n; # (equal L X)\n  %106 = call i1 @equal(i64 %105, i64 %101)\n  br i1 %106, label %$29, label %$30\n$29:\n  %107 = phi i64 [%100, %$28] ; # Exe\n  %108 = phi i64 [%101, %$28] ; # X\n  %109 = phi i64 [%102, %$28] ; # Y\n  %110 = phi i64 [%103, %$28] ; # V\n  %111 = phi i64 [%104, %$28] ; # Z\n  %112 = phi i64 [%105, %$28] ; # L\n; # (set 2 Z $Nil)\n  %113 = inttoptr i64 %111 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %114\n  br label %$30\n$30:\n  %115 = phi i64 [%100, %$28], [%107, %$29] ; # Exe\n  %116 = phi i64 [%101, %$28], [%108, %$29] ; # X\n  %117 = phi i64 [%102, %$28], [%109, %$29] ; # Y\n  %118 = phi i64 [%103, %$28], [%110, %$29] ; # V\n  %119 = phi i64 [%104, %$28], [%111, %$29] ; # Z\n  %120 = phi i64 [%105, %$28], [%112, %$29] ; # L\n; # (if (equal (car V) X) (set Y (cdr V)) V)\n; # (car V)\n  %121 = inttoptr i64 %118 to i64*\n  %122 = load i64, i64* %121\n; # (equal (car V) X)\n  %123 = call i1 @equal(i64 %122, i64 %116)\n  br i1 %123, label %$31, label %$32\n$31:\n  %124 = phi i64 [%115, %$30] ; # Exe\n  %125 = phi i64 [%116, %$30] ; # X\n  %126 = phi i64 [%117, %$30] ; # Y\n  %127 = phi i64 [%118, %$30] ; # V\n  %128 = phi i64 [%119, %$30] ; # Z\n  %129 = phi i64 [%120, %$30] ; # L\n; # (set Y (cdr V))\n; # (cdr V)\n  %130 = inttoptr i64 %127 to i64*\n  %131 = getelementptr i64, i64* %130, i32 1\n  %132 = load i64, i64* %131\n  %133 = inttoptr i64 %126 to i64*\n  store i64 %132, i64* %133\n  br label %$33\n$32:\n  %134 = phi i64 [%115, %$30] ; # Exe\n  %135 = phi i64 [%116, %$30] ; # X\n  %136 = phi i64 [%117, %$30] ; # Y\n  %137 = phi i64 [%118, %$30] ; # V\n  %138 = phi i64 [%119, %$30] ; # Z\n  %139 = phi i64 [%120, %$30] ; # L\n  br label %$33\n$33:\n  %140 = phi i64 [%124, %$31], [%134, %$32] ; # Exe\n  %141 = phi i64 [%125, %$31], [%135, %$32] ; # X\n  %142 = phi i64 [%126, %$31], [%136, %$32] ; # Y\n  %143 = phi i64 [%127, %$31], [%137, %$32] ; # V\n  %144 = phi i64 [%128, %$31], [%138, %$32] ; # Z\n  %145 = phi i64 [%129, %$31], [%139, %$32] ; # L\n  %146 = phi i64 [%132, %$31], [%137, %$32] ; # ->\n  br label %$27\n$26:\n  %147 = phi i64 [%92, %$25] ; # Exe\n  %148 = phi i64 [%93, %$25] ; # X\n  %149 = phi i64 [%94, %$25] ; # Y\n  %150 = phi i64 [%95, %$25] ; # V\n  %151 = phi i64 [%96, %$25] ; # Z\n  %152 = phi i64 [%97, %$25] ; # L\n; # (? (== L V) (nond ((equal (car L) X) V) ((== L Z) (set 2 Z (cdr L...\n; # (== L V)\n  %153 = icmp eq i64 %152, %150\n  br i1 %153, label %$35, label %$34\n$35:\n  %154 = phi i64 [%147, %$26] ; # Exe\n  %155 = phi i64 [%148, %$26] ; # X\n  %156 = phi i64 [%149, %$26] ; # Y\n  %157 = phi i64 [%150, %$26] ; # V\n  %158 = phi i64 [%151, %$26] ; # Z\n  %159 = phi i64 [%152, %$26] ; # L\n; # (nond ((equal (car L) X) V) ((== L Z) (set 2 Z (cdr L)) (set Y Z)...\n; # (car L)\n  %160 = inttoptr i64 %159 to i64*\n  %161 = load i64, i64* %160\n; # (equal (car L) X)\n  %162 = call i1 @equal(i64 %161, i64 %155)\n  br i1 %162, label %$37, label %$38\n$38:\n  %163 = phi i64 [%154, %$35] ; # Exe\n  %164 = phi i64 [%155, %$35] ; # X\n  %165 = phi i64 [%156, %$35] ; # Y\n  %166 = phi i64 [%157, %$35] ; # V\n  %167 = phi i64 [%158, %$35] ; # Z\n  %168 = phi i64 [%159, %$35] ; # L\n  br label %$36\n$37:\n  %169 = phi i64 [%154, %$35] ; # Exe\n  %170 = phi i64 [%155, %$35] ; # X\n  %171 = phi i64 [%156, %$35] ; # Y\n  %172 = phi i64 [%157, %$35] ; # V\n  %173 = phi i64 [%158, %$35] ; # Z\n  %174 = phi i64 [%159, %$35] ; # L\n; # (== L Z)\n  %175 = icmp eq i64 %174, %173\n  br i1 %175, label %$39, label %$40\n$40:\n  %176 = phi i64 [%169, %$37] ; # Exe\n  %177 = phi i64 [%170, %$37] ; # X\n  %178 = phi i64 [%171, %$37] ; # Y\n  %179 = phi i64 [%172, %$37] ; # V\n  %180 = phi i64 [%173, %$37] ; # Z\n  %181 = phi i64 [%174, %$37] ; # L\n; # (set 2 Z (cdr L))\n; # (cdr L)\n  %182 = inttoptr i64 %181 to i64*\n  %183 = getelementptr i64, i64* %182, i32 1\n  %184 = load i64, i64* %183\n  %185 = inttoptr i64 %180 to i64*\n  %186 = getelementptr i64, i64* %185, i32 1\n  store i64 %184, i64* %186\n; # (set Y Z)\n  %187 = inttoptr i64 %178 to i64*\n  store i64 %180, i64* %187\n  br label %$36\n$39:\n  %188 = phi i64 [%169, %$37] ; # Exe\n  %189 = phi i64 [%170, %$37] ; # X\n  %190 = phi i64 [%171, %$37] ; # Y\n  %191 = phi i64 [%172, %$37] ; # V\n  %192 = phi i64 [%173, %$37] ; # Z\n  %193 = phi i64 [%174, %$37] ; # L\n; # (set Y $Nil)\n  %194 = inttoptr i64 %190 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %194\n  br label %$36\n$36:\n  %195 = phi i64 [%163, %$38], [%176, %$40], [%188, %$39] ; # Exe\n  %196 = phi i64 [%164, %$38], [%177, %$40], [%189, %$39] ; # X\n  %197 = phi i64 [%165, %$38], [%178, %$40], [%190, %$39] ; # Y\n  %198 = phi i64 [%166, %$38], [%179, %$40], [%191, %$39] ; # V\n  %199 = phi i64 [%167, %$38], [%180, %$40], [%192, %$39] ; # Z\n  %200 = phi i64 [%168, %$38], [%181, %$40], [%193, %$39] ; # L\n  %201 = phi i64 [%166, %$38], [%180, %$40], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$39] ; # ->\n  br label %$27\n$34:\n  %202 = phi i64 [%147, %$26] ; # Exe\n  %203 = phi i64 [%148, %$26] ; # X\n  %204 = phi i64 [%149, %$26] ; # Y\n  %205 = phi i64 [%150, %$26] ; # V\n  %206 = phi i64 [%151, %$26] ; # Z\n  %207 = phi i64 [%152, %$26] ; # L\n; # (if (equal (car L) X) (set 2 Z (shift L)) (setq L (cdr (shift Z))...\n; # (car L)\n  %208 = inttoptr i64 %207 to i64*\n  %209 = load i64, i64* %208\n; # (equal (car L) X)\n  %210 = call i1 @equal(i64 %209, i64 %203)\n  br i1 %210, label %$41, label %$42\n$41:\n  %211 = phi i64 [%202, %$34] ; # Exe\n  %212 = phi i64 [%203, %$34] ; # X\n  %213 = phi i64 [%204, %$34] ; # Y\n  %214 = phi i64 [%205, %$34] ; # V\n  %215 = phi i64 [%206, %$34] ; # Z\n  %216 = phi i64 [%207, %$34] ; # L\n; # (set 2 Z (shift L))\n; # (shift L)\n  %217 = inttoptr i64 %216 to i64*\n  %218 = getelementptr i64, i64* %217, i32 1\n  %219 = load i64, i64* %218\n  %220 = inttoptr i64 %215 to i64*\n  %221 = getelementptr i64, i64* %220, i32 1\n  store i64 %219, i64* %221\n  br label %$43\n$42:\n  %222 = phi i64 [%202, %$34] ; # Exe\n  %223 = phi i64 [%203, %$34] ; # X\n  %224 = phi i64 [%204, %$34] ; # Y\n  %225 = phi i64 [%205, %$34] ; # V\n  %226 = phi i64 [%206, %$34] ; # Z\n  %227 = phi i64 [%207, %$34] ; # L\n; # (shift Z)\n  %228 = inttoptr i64 %226 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n; # (cdr (shift Z))\n  %231 = inttoptr i64 %230 to i64*\n  %232 = getelementptr i64, i64* %231, i32 1\n  %233 = load i64, i64* %232\n  br label %$43\n$43:\n  %234 = phi i64 [%211, %$41], [%222, %$42] ; # Exe\n  %235 = phi i64 [%212, %$41], [%223, %$42] ; # X\n  %236 = phi i64 [%213, %$41], [%224, %$42] ; # Y\n  %237 = phi i64 [%214, %$41], [%225, %$42] ; # V\n  %238 = phi i64 [%215, %$41], [%230, %$42] ; # Z\n  %239 = phi i64 [%219, %$41], [%233, %$42] ; # L\n  %240 = phi i64 [%219, %$41], [%233, %$42] ; # ->\n  br label %$25\n$27:\n  %241 = phi i64 [%140, %$33], [%195, %$36] ; # Exe\n  %242 = phi i64 [%141, %$33], [%196, %$36] ; # X\n  %243 = phi i64 [%142, %$33], [%197, %$36] ; # Y\n  %244 = phi i64 [%143, %$33], [%198, %$36] ; # V\n  %245 = phi i64 [%144, %$33], [%199, %$36] ; # Z\n  %246 = phi i64 [%145, %$33], [%200, %$36] ; # L\n  %247 = phi i64 [%146, %$33], [%201, %$36] ; # ->\n  br label %$22\n$23:\n  %248 = phi i64 [%63, %$17] ; # Exe\n  %249 = phi i64 [%80, %$17] ; # X\n  %250 = phi i64 [%65, %$17] ; # Y\n  %251 = phi i64 [%82, %$17] ; # V\n; # (equal V X)\n  %252 = call i1 @equal(i64 %251, i64 %249)\n  br i1 %252, label %$45, label %$44\n$45:\n  %253 = phi i64 [%248, %$23] ; # Exe\n  %254 = phi i64 [%249, %$23] ; # X\n  %255 = phi i64 [%250, %$23] ; # Y\n  %256 = phi i64 [%251, %$23] ; # V\n; # (set Y $Nil)\n  %257 = inttoptr i64 %255 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %257\n  br label %$22\n$44:\n  %258 = phi i64 [%248, %$23] ; # Exe\n  %259 = phi i64 [%249, %$23] ; # X\n  %260 = phi i64 [%250, %$23] ; # Y\n  %261 = phi i64 [%251, %$23] ; # V\n  br label %$22\n$22:\n  %262 = phi i64 [%241, %$27], [%253, %$45], [%258, %$44] ; # Exe\n  %263 = phi i64 [%242, %$27], [%254, %$45], [%259, %$44] ; # X\n  %264 = phi i64 [%243, %$27], [%255, %$45], [%260, %$44] ; # Y\n  %265 = phi i64 [%244, %$27], [%256, %$45], [%261, %$44] ; # V\n  %266 = phi i64 [%247, %$27], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$45], [%261, %$44] ; # ->\n; # (drop *Safe)\n  %267 = inttoptr i64 %41 to i64*\n  %268 = getelementptr i64, i64* %267, i32 1\n  %269 = load i64, i64* %268\n  %270 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %269, i64* %270\n  ret i64 %266\n}\n\ndefine i64 @_Enum(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Var (save (needChkVar Exe (eval (++ X)))) Arg (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (++ X))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %25, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (car X)\n  %46 = inttoptr i64 %6 to i64*\n  %47 = load i64, i64* %46\n; # (eval (car X))\n  %48 = and i64 %47, 6\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$15, label %$14\n$15:\n  %50 = phi i64 [%47, %$12] ; # X\n  br label %$13\n$14:\n  %51 = phi i64 [%47, %$12] ; # X\n  %52 = and i64 %51, 8\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$17, label %$16\n$17:\n  %54 = phi i64 [%51, %$14] ; # X\n  %55 = inttoptr i64 %54 to i64*\n  %56 = load i64, i64* %55\n  br label %$13\n$16:\n  %57 = phi i64 [%51, %$14] ; # X\n  %58 = call i64 @evList(i64 %57)\n  br label %$13\n$13:\n  %59 = phi i64 [%50, %$15], [%54, %$17], [%57, %$16] ; # X\n  %60 = phi i64 [%50, %$15], [%56, %$17], [%58, %$16] ; # ->\n; # (if (num? Arg) (loop (? (le0 (setq Cnt (xCnt Exe Arg))) $Nil) (le...\n; # (num? Arg)\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$18, label %$19\n$18:\n  %63 = phi i64 [%0, %$13] ; # Exe\n  %64 = phi i64 [%6, %$13] ; # X\n  %65 = phi i64 [%25, %$13] ; # Var\n  %66 = phi i64 [%60, %$13] ; # Arg\n  %67 = phi i64 [0, %$13] ; # Cnt\n; # (loop (? (le0 (setq Cnt (xCnt Exe Arg))) $Nil) (let P (val Var) (...\n  br label %$21\n$21:\n  %68 = phi i64 [%63, %$18], [%281, %$47] ; # Exe\n  %69 = phi i64 [%64, %$18], [%282, %$47] ; # X\n  %70 = phi i64 [%65, %$18], [%283, %$47] ; # Var\n  %71 = phi i64 [%66, %$18], [%300, %$47] ; # Arg\n  %72 = phi i64 [%67, %$18], [%285, %$47] ; # Cnt\n; # (? (le0 (setq Cnt (xCnt Exe Arg))) $Nil)\n; # (xCnt Exe Arg)\n  %73 = call i64 @xCnt(i64 %68, i64 %71)\n; # (le0 (setq Cnt (xCnt Exe Arg)))\n  %74 = icmp sle i64 %73, 0\n  br i1 %74, label %$24, label %$22\n$24:\n  %75 = phi i64 [%68, %$21] ; # Exe\n  %76 = phi i64 [%69, %$21] ; # X\n  %77 = phi i64 [%70, %$21] ; # Var\n  %78 = phi i64 [%71, %$21] ; # Arg\n  %79 = phi i64 [%73, %$21] ; # Cnt\n  br label %$23\n$22:\n  %80 = phi i64 [%68, %$21] ; # Exe\n  %81 = phi i64 [%69, %$21] ; # X\n  %82 = phi i64 [%70, %$21] ; # Var\n  %83 = phi i64 [%71, %$21] ; # Arg\n  %84 = phi i64 [%73, %$21] ; # Cnt\n; # (let P (val Var) (loop (let N (shr Cnt 1) (? (=0 N) (setq Var (if...\n; # (val Var)\n  %85 = inttoptr i64 %82 to i64*\n  %86 = load i64, i64* %85\n; # (loop (let N (shr Cnt 1) (? (=0 N) (setq Var (if (pair P) @ (set ...\n  br label %$25\n$25:\n  %87 = phi i64 [%80, %$22], [%256, %$34] ; # Exe\n  %88 = phi i64 [%81, %$22], [%257, %$34] ; # X\n  %89 = phi i64 [%82, %$22], [%258, %$34] ; # Var\n  %90 = phi i64 [%83, %$22], [%259, %$34] ; # Arg\n  %91 = phi i64 [%84, %$22], [%262, %$34] ; # Cnt\n  %92 = phi i64 [%86, %$22], [%261, %$34] ; # P\n; # (let N (shr Cnt 1) (? (=0 N) (setq Var (if (pair P) @ (set Var (c...\n; # (shr Cnt 1)\n  %93 = lshr i64 %91, 1\n; # (? (=0 N) (setq Var (if (pair P) @ (set Var (cons $Nil $Nil)))))\n; # (=0 N)\n  %94 = icmp eq i64 %93, 0\n  br i1 %94, label %$28, label %$26\n$28:\n  %95 = phi i64 [%87, %$25] ; # Exe\n  %96 = phi i64 [%88, %$25] ; # X\n  %97 = phi i64 [%89, %$25] ; # Var\n  %98 = phi i64 [%90, %$25] ; # Arg\n  %99 = phi i64 [%91, %$25] ; # Cnt\n  %100 = phi i64 [%92, %$25] ; # P\n  %101 = phi i64 [%93, %$25] ; # N\n; # (if (pair P) @ (set Var (cons $Nil $Nil)))\n; # (pair P)\n  %102 = and i64 %100, 15\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$29, label %$30\n$29:\n  %104 = phi i64 [%95, %$28] ; # Exe\n  %105 = phi i64 [%96, %$28] ; # X\n  %106 = phi i64 [%97, %$28] ; # Var\n  %107 = phi i64 [%98, %$28] ; # Arg\n  %108 = phi i64 [%99, %$28] ; # Cnt\n  %109 = phi i64 [%100, %$28] ; # P\n  %110 = phi i64 [%101, %$28] ; # N\n  br label %$31\n$30:\n  %111 = phi i64 [%95, %$28] ; # Exe\n  %112 = phi i64 [%96, %$28] ; # X\n  %113 = phi i64 [%97, %$28] ; # Var\n  %114 = phi i64 [%98, %$28] ; # Arg\n  %115 = phi i64 [%99, %$28] ; # Cnt\n  %116 = phi i64 [%100, %$28] ; # P\n  %117 = phi i64 [%101, %$28] ; # N\n; # (set Var (cons $Nil $Nil))\n; # (cons $Nil $Nil)\n  %118 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %119 = inttoptr i64 %113 to i64*\n  store i64 %118, i64* %119\n  br label %$31\n$31:\n  %120 = phi i64 [%104, %$29], [%111, %$30] ; # Exe\n  %121 = phi i64 [%105, %$29], [%112, %$30] ; # X\n  %122 = phi i64 [%106, %$29], [%113, %$30] ; # Var\n  %123 = phi i64 [%107, %$29], [%114, %$30] ; # Arg\n  %124 = phi i64 [%108, %$29], [%115, %$30] ; # Cnt\n  %125 = phi i64 [%109, %$29], [%116, %$30] ; # P\n  %126 = phi i64 [%110, %$29], [%117, %$30] ; # N\n  %127 = phi i64 [%100, %$29], [%118, %$30] ; # ->\n  br label %$27\n$26:\n  %128 = phi i64 [%87, %$25] ; # Exe\n  %129 = phi i64 [%88, %$25] ; # X\n  %130 = phi i64 [%89, %$25] ; # Var\n  %131 = phi i64 [%90, %$25] ; # Arg\n  %132 = phi i64 [%91, %$25] ; # Cnt\n  %133 = phi i64 [%92, %$25] ; # P\n  %134 = phi i64 [%93, %$25] ; # N\n; # (if (& Cnt 1) (cond ((atom P) (let Y (cons $Nil (setq P $Nil)) (s...\n; # (& Cnt 1)\n  %135 = and i64 %132, 1\n  %136 = icmp ne i64 %135, 0\n  br i1 %136, label %$32, label %$33\n$32:\n  %137 = phi i64 [%128, %$26] ; # Exe\n  %138 = phi i64 [%129, %$26] ; # X\n  %139 = phi i64 [%130, %$26] ; # Var\n  %140 = phi i64 [%131, %$26] ; # Arg\n  %141 = phi i64 [%132, %$26] ; # Cnt\n  %142 = phi i64 [%133, %$26] ; # P\n  %143 = phi i64 [%134, %$26] ; # N\n; # (cond ((atom P) (let Y (cons $Nil (setq P $Nil)) (set Var (cons $...\n; # (atom P)\n  %144 = and i64 %142, 15\n  %145 = icmp ne i64 %144, 0\n  br i1 %145, label %$37, label %$36\n$37:\n  %146 = phi i64 [%137, %$32] ; # Exe\n  %147 = phi i64 [%138, %$32] ; # X\n  %148 = phi i64 [%139, %$32] ; # Var\n  %149 = phi i64 [%140, %$32] ; # Arg\n  %150 = phi i64 [%141, %$32] ; # Cnt\n  %151 = phi i64 [%142, %$32] ; # P\n  %152 = phi i64 [%143, %$32] ; # N\n; # (let Y (cons $Nil (setq P $Nil)) (set Var (cons $Nil Y)) (setq Va...\n; # (cons $Nil (setq P $Nil))\n  %153 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (set Var (cons $Nil Y))\n; # (cons $Nil Y)\n  %154 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %153)\n  %155 = inttoptr i64 %148 to i64*\n  store i64 %154, i64* %155\n; # (ofs Y 1)\n  %156 = add i64 %153, 8\n  br label %$35\n$36:\n  %157 = phi i64 [%137, %$32] ; # Exe\n  %158 = phi i64 [%138, %$32] ; # X\n  %159 = phi i64 [%139, %$32] ; # Var\n  %160 = phi i64 [%140, %$32] ; # Arg\n  %161 = phi i64 [%141, %$32] ; # Cnt\n  %162 = phi i64 [%142, %$32] ; # P\n  %163 = phi i64 [%143, %$32] ; # N\n; # (cdr P)\n  %164 = inttoptr i64 %162 to i64*\n  %165 = getelementptr i64, i64* %164, i32 1\n  %166 = load i64, i64* %165\n; # (atom (cdr P))\n  %167 = and i64 %166, 15\n  %168 = icmp ne i64 %167, 0\n  br i1 %168, label %$39, label %$38\n$39:\n  %169 = phi i64 [%157, %$36] ; # Exe\n  %170 = phi i64 [%158, %$36] ; # X\n  %171 = phi i64 [%159, %$36] ; # Var\n  %172 = phi i64 [%160, %$36] ; # Arg\n  %173 = phi i64 [%161, %$36] ; # Cnt\n  %174 = phi i64 [%162, %$36] ; # P\n  %175 = phi i64 [%163, %$36] ; # N\n; # (set 2 P (cons $Nil (setq P $Nil)))\n; # (cons $Nil (setq P $Nil))\n  %176 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %177 = inttoptr i64 %174 to i64*\n  %178 = getelementptr i64, i64* %177, i32 1\n  store i64 %176, i64* %178\n; # (ofs (set 2 P (cons $Nil (setq P $Nil))) 1)\n  %179 = add i64 %176, 8\n  br label %$35\n$38:\n  %180 = phi i64 [%157, %$36] ; # Exe\n  %181 = phi i64 [%158, %$36] ; # X\n  %182 = phi i64 [%159, %$36] ; # Var\n  %183 = phi i64 [%160, %$36] ; # Arg\n  %184 = phi i64 [%161, %$36] ; # Cnt\n  %185 = phi i64 [%162, %$36] ; # P\n  %186 = phi i64 [%163, %$36] ; # N\n; # (ofs @ 1)\n  %187 = add i64 %166, 8\n; # (val (setq Var (ofs @ 1)))\n  %188 = inttoptr i64 %187 to i64*\n  %189 = load i64, i64* %188\n  br label %$35\n$35:\n  %190 = phi i64 [%146, %$37], [%169, %$39], [%180, %$38] ; # Exe\n  %191 = phi i64 [%147, %$37], [%170, %$39], [%181, %$38] ; # X\n  %192 = phi i64 [%156, %$37], [%179, %$39], [%187, %$38] ; # Var\n  %193 = phi i64 [%149, %$37], [%172, %$39], [%183, %$38] ; # Arg\n  %194 = phi i64 [%150, %$37], [%173, %$39], [%184, %$38] ; # Cnt\n  %195 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$37], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$39], [%189, %$38] ; # P\n  %196 = phi i64 [%152, %$37], [%175, %$39], [%186, %$38] ; # N\n  %197 = phi i64 [%156, %$37], [%179, %$39], [%189, %$38] ; # ->\n  br label %$34\n$33:\n  %198 = phi i64 [%128, %$26] ; # Exe\n  %199 = phi i64 [%129, %$26] ; # X\n  %200 = phi i64 [%130, %$26] ; # Var\n  %201 = phi i64 [%131, %$26] ; # Arg\n  %202 = phi i64 [%132, %$26] ; # Cnt\n  %203 = phi i64 [%133, %$26] ; # P\n  %204 = phi i64 [%134, %$26] ; # N\n; # (cond ((atom P) (let Y (cons (setq P $Nil) $Nil) (set Var (cons $...\n; # (atom P)\n  %205 = and i64 %203, 15\n  %206 = icmp ne i64 %205, 0\n  br i1 %206, label %$42, label %$41\n$42:\n  %207 = phi i64 [%198, %$33] ; # Exe\n  %208 = phi i64 [%199, %$33] ; # X\n  %209 = phi i64 [%200, %$33] ; # Var\n  %210 = phi i64 [%201, %$33] ; # Arg\n  %211 = phi i64 [%202, %$33] ; # Cnt\n  %212 = phi i64 [%203, %$33] ; # P\n  %213 = phi i64 [%204, %$33] ; # N\n; # (let Y (cons (setq P $Nil) $Nil) (set Var (cons $Nil Y)) (setq Va...\n; # (cons (setq P $Nil) $Nil)\n  %214 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (set Var (cons $Nil Y))\n; # (cons $Nil Y)\n  %215 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %214)\n  %216 = inttoptr i64 %209 to i64*\n  store i64 %215, i64* %216\n  br label %$40\n$41:\n  %217 = phi i64 [%198, %$33] ; # Exe\n  %218 = phi i64 [%199, %$33] ; # X\n  %219 = phi i64 [%200, %$33] ; # Var\n  %220 = phi i64 [%201, %$33] ; # Arg\n  %221 = phi i64 [%202, %$33] ; # Cnt\n  %222 = phi i64 [%203, %$33] ; # P\n  %223 = phi i64 [%204, %$33] ; # N\n; # (cdr P)\n  %224 = inttoptr i64 %222 to i64*\n  %225 = getelementptr i64, i64* %224, i32 1\n  %226 = load i64, i64* %225\n; # (atom (cdr P))\n  %227 = and i64 %226, 15\n  %228 = icmp ne i64 %227, 0\n  br i1 %228, label %$44, label %$43\n$44:\n  %229 = phi i64 [%217, %$41] ; # Exe\n  %230 = phi i64 [%218, %$41] ; # X\n  %231 = phi i64 [%219, %$41] ; # Var\n  %232 = phi i64 [%220, %$41] ; # Arg\n  %233 = phi i64 [%221, %$41] ; # Cnt\n  %234 = phi i64 [%222, %$41] ; # P\n  %235 = phi i64 [%223, %$41] ; # N\n; # (set 2 P (cons (setq P $Nil) $Nil))\n; # (cons (setq P $Nil) $Nil)\n  %236 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %237 = inttoptr i64 %234 to i64*\n  %238 = getelementptr i64, i64* %237, i32 1\n  store i64 %236, i64* %238\n  br label %$40\n$43:\n  %239 = phi i64 [%217, %$41] ; # Exe\n  %240 = phi i64 [%218, %$41] ; # X\n  %241 = phi i64 [%219, %$41] ; # Var\n  %242 = phi i64 [%220, %$41] ; # Arg\n  %243 = phi i64 [%221, %$41] ; # Cnt\n  %244 = phi i64 [%222, %$41] ; # P\n  %245 = phi i64 [%223, %$41] ; # N\n; # (val (setq Var @))\n  %246 = inttoptr i64 %226 to i64*\n  %247 = load i64, i64* %246\n  br label %$40\n$40:\n  %248 = phi i64 [%207, %$42], [%229, %$44], [%239, %$43] ; # Exe\n  %249 = phi i64 [%208, %$42], [%230, %$44], [%240, %$43] ; # X\n  %250 = phi i64 [%214, %$42], [%236, %$44], [%226, %$43] ; # Var\n  %251 = phi i64 [%210, %$42], [%232, %$44], [%242, %$43] ; # Arg\n  %252 = phi i64 [%211, %$42], [%233, %$44], [%243, %$43] ; # Cnt\n  %253 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$42], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$44], [%247, %$43] ; # P\n  %254 = phi i64 [%213, %$42], [%235, %$44], [%245, %$43] ; # N\n  %255 = phi i64 [%214, %$42], [%236, %$44], [%247, %$43] ; # ->\n  br label %$34\n$34:\n  %256 = phi i64 [%190, %$35], [%248, %$40] ; # Exe\n  %257 = phi i64 [%191, %$35], [%249, %$40] ; # X\n  %258 = phi i64 [%192, %$35], [%250, %$40] ; # Var\n  %259 = phi i64 [%193, %$35], [%251, %$40] ; # Arg\n  %260 = phi i64 [%194, %$35], [%252, %$40] ; # Cnt\n  %261 = phi i64 [%195, %$35], [%253, %$40] ; # P\n  %262 = phi i64 [%196, %$35], [%254, %$40] ; # N\n  %263 = phi i64 [%197, %$35], [%255, %$40] ; # ->\n  br label %$25\n$27:\n  %264 = phi i64 [%120, %$31] ; # Exe\n  %265 = phi i64 [%121, %$31] ; # X\n  %266 = phi i64 [%127, %$31] ; # Var\n  %267 = phi i64 [%123, %$31] ; # Arg\n  %268 = phi i64 [%124, %$31] ; # Cnt\n  %269 = phi i64 [%125, %$31] ; # P\n  %270 = phi i64 [%127, %$31] ; # ->\n; # (? (atom (shift X)) Var)\n; # (shift X)\n  %271 = inttoptr i64 %265 to i64*\n  %272 = getelementptr i64, i64* %271, i32 1\n  %273 = load i64, i64* %272\n; # (atom (shift X))\n  %274 = and i64 %273, 15\n  %275 = icmp ne i64 %274, 0\n  br i1 %275, label %$46, label %$45\n$46:\n  %276 = phi i64 [%264, %$27] ; # Exe\n  %277 = phi i64 [%273, %$27] ; # X\n  %278 = phi i64 [%266, %$27] ; # Var\n  %279 = phi i64 [%267, %$27] ; # Arg\n  %280 = phi i64 [%268, %$27] ; # Cnt\n  br label %$23\n$45:\n  %281 = phi i64 [%264, %$27] ; # Exe\n  %282 = phi i64 [%273, %$27] ; # X\n  %283 = phi i64 [%266, %$27] ; # Var\n  %284 = phi i64 [%267, %$27] ; # Arg\n  %285 = phi i64 [%268, %$27] ; # Cnt\n; # (car X)\n  %286 = inttoptr i64 %282 to i64*\n  %287 = load i64, i64* %286\n; # (eval (car X))\n  %288 = and i64 %287, 6\n  %289 = icmp ne i64 %288, 0\n  br i1 %289, label %$49, label %$48\n$49:\n  %290 = phi i64 [%287, %$45] ; # X\n  br label %$47\n$48:\n  %291 = phi i64 [%287, %$45] ; # X\n  %292 = and i64 %291, 8\n  %293 = icmp ne i64 %292, 0\n  br i1 %293, label %$51, label %$50\n$51:\n  %294 = phi i64 [%291, %$48] ; # X\n  %295 = inttoptr i64 %294 to i64*\n  %296 = load i64, i64* %295\n  br label %$47\n$50:\n  %297 = phi i64 [%291, %$48] ; # X\n  %298 = call i64 @evList(i64 %297)\n  br label %$47\n$47:\n  %299 = phi i64 [%290, %$49], [%294, %$51], [%297, %$50] ; # X\n  %300 = phi i64 [%290, %$49], [%296, %$51], [%298, %$50] ; # ->\n  br label %$21\n$23:\n  %301 = phi i64 [%75, %$24], [%276, %$46] ; # Exe\n  %302 = phi i64 [%76, %$24], [%277, %$46] ; # X\n  %303 = phi i64 [%77, %$24], [%278, %$46] ; # Var\n  %304 = phi i64 [%78, %$24], [%279, %$46] ; # Arg\n  %305 = phi i64 [%79, %$24], [%280, %$46] ; # Cnt\n  %306 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$24], [%278, %$46] ; # ->\n  br label %$20\n$19:\n  %307 = phi i64 [%0, %$13] ; # Exe\n  %308 = phi i64 [%6, %$13] ; # X\n  %309 = phi i64 [%25, %$13] ; # Var\n  %310 = phi i64 [%60, %$13] ; # Arg\n  %311 = phi i64 [0, %$13] ; # Cnt\n; # (let (Q (link (push NIL NIL)) Tos (link (push -ZERO NIL)) R (link...\n; # (push NIL NIL)\n  %312 = alloca i64, i64 2, align 16\n  %313 = ptrtoint i64* %312 to i64\n; # (link (push NIL NIL))\n  %314 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %315 = load i64, i64* %314\n  %316 = inttoptr i64 %313 to i64*\n  %317 = getelementptr i64, i64* %316, i32 1\n  store i64 %315, i64* %317\n  %318 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %313, i64* %318\n; # (push -ZERO NIL)\n  %319 = alloca i64, i64 2, align 16\n  %320 = ptrtoint i64* %319 to i64\n  %321 = inttoptr i64 %320 to i64*\n  store i64 10, i64* %321\n; # (link (push -ZERO NIL))\n  %322 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %323 = load i64, i64* %322\n  %324 = inttoptr i64 %320 to i64*\n  %325 = getelementptr i64, i64* %324, i32 1\n  store i64 %323, i64* %325\n  %326 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %320, i64* %326\n; # (push $Nil NIL)\n  %327 = alloca i64, i64 2, align 16\n  %328 = ptrtoint i64* %327 to i64\n  %329 = inttoptr i64 %328 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %329\n; # (link (push $Nil NIL))\n  %330 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %331 = load i64, i64* %330\n  %332 = inttoptr i64 %328 to i64*\n  %333 = getelementptr i64, i64* %332, i32 1\n  store i64 %331, i64* %333\n  %334 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %328, i64* %334\n; # (val Var)\n  %335 = inttoptr i64 %309 to i64*\n  %336 = load i64, i64* %335\n; # (loop (loop (let Y (cdr P) (? (atom (cdr Y))) (let Z P (setq P @)...\n  br label %$52\n$52:\n  %337 = phi i64 [%307, %$19], [%613, %$63] ; # Exe\n  %338 = phi i64 [%308, %$19], [%614, %$63] ; # X\n  %339 = phi i64 [%309, %$19], [%615, %$63] ; # Var\n  %340 = phi i64 [%310, %$19], [%616, %$63] ; # Arg\n  %341 = phi i64 [%311, %$19], [%617, %$63] ; # Cnt\n  %342 = phi i64 [%313, %$19], [%618, %$63] ; # Q\n  %343 = phi i64 [%320, %$19], [%619, %$63] ; # Tos\n  %344 = phi i64 [%328, %$19], [%620, %$63] ; # R\n  %345 = phi i64 [%336, %$19], [%621, %$63] ; # P\n  %346 = phi i64 [1, %$19], [%622, %$63] ; # M\n; # (loop (let Y (cdr P) (? (atom (cdr Y))) (let Z P (setq P @) (set ...\n  br label %$53\n$53:\n  %347 = phi i64 [%337, %$52], [%365, %$54] ; # Exe\n  %348 = phi i64 [%338, %$52], [%366, %$54] ; # X\n  %349 = phi i64 [%339, %$52], [%367, %$54] ; # Var\n  %350 = phi i64 [%340, %$52], [%368, %$54] ; # Arg\n  %351 = phi i64 [%341, %$52], [%381, %$54] ; # Cnt\n  %352 = phi i64 [%342, %$52], [%370, %$54] ; # Q\n  %353 = phi i64 [%343, %$52], [%371, %$54] ; # Tos\n  %354 = phi i64 [%344, %$52], [%372, %$54] ; # R\n  %355 = phi i64 [%345, %$52], [%362, %$54] ; # P\n  %356 = phi i64 [%346, %$52], [%382, %$54] ; # M\n; # (let Y (cdr P) (? (atom (cdr Y))) (let Z P (setq P @) (set 2 Y (v...\n; # (cdr P)\n  %357 = inttoptr i64 %355 to i64*\n  %358 = getelementptr i64, i64* %357, i32 1\n  %359 = load i64, i64* %358\n; # (? (atom (cdr Y)))\n; # (cdr Y)\n  %360 = inttoptr i64 %359 to i64*\n  %361 = getelementptr i64, i64* %360, i32 1\n  %362 = load i64, i64* %361\n; # (atom (cdr Y))\n  %363 = and i64 %362, 15\n  %364 = icmp ne i64 %363, 0\n  br i1 %364, label %$55, label %$54\n$54:\n  %365 = phi i64 [%347, %$53] ; # Exe\n  %366 = phi i64 [%348, %$53] ; # X\n  %367 = phi i64 [%349, %$53] ; # Var\n  %368 = phi i64 [%350, %$53] ; # Arg\n  %369 = phi i64 [%351, %$53] ; # Cnt\n  %370 = phi i64 [%352, %$53] ; # Q\n  %371 = phi i64 [%353, %$53] ; # Tos\n  %372 = phi i64 [%354, %$53] ; # R\n  %373 = phi i64 [%355, %$53] ; # P\n  %374 = phi i64 [%356, %$53] ; # M\n  %375 = phi i64 [%359, %$53] ; # Y\n; # (let Z P (setq P @) (set 2 Y (val Tos)) (set Tos Z))\n; # (set 2 Y (val Tos))\n; # (val Tos)\n  %376 = inttoptr i64 %371 to i64*\n  %377 = load i64, i64* %376\n  %378 = inttoptr i64 %375 to i64*\n  %379 = getelementptr i64, i64* %378, i32 1\n  store i64 %377, i64* %379\n; # (set Tos Z)\n  %380 = inttoptr i64 %371 to i64*\n  store i64 %373, i64* %380\n; # (| Cnt M)\n  %381 = or i64 %369, %374\n; # (shl M 1)\n  %382 = shl i64 %374, 1\n  br label %$53\n$55:\n  %383 = phi i64 [%347, %$53] ; # Exe\n  %384 = phi i64 [%348, %$53] ; # X\n  %385 = phi i64 [%349, %$53] ; # Var\n  %386 = phi i64 [%350, %$53] ; # Arg\n  %387 = phi i64 [%351, %$53] ; # Cnt\n  %388 = phi i64 [%352, %$53] ; # Q\n  %389 = phi i64 [%353, %$53] ; # Tos\n  %390 = phi i64 [%354, %$53] ; # R\n  %391 = phi i64 [%355, %$53] ; # P\n  %392 = phi i64 [%356, %$53] ; # M\n  %393 = phi i64 [0, %$53] ; # ->\n; # (set Q P)\n  %394 = inttoptr i64 %388 to i64*\n  store i64 %391, i64* %394\n; # (loop (unless (nil? (car P)) (set R (cons (if (nil? Arg) (cons (c...\n  br label %$56\n$56:\n  %395 = phi i64 [%383, %$55], [%602, %$69] ; # Exe\n  %396 = phi i64 [%384, %$55], [%603, %$69] ; # X\n  %397 = phi i64 [%385, %$55], [%604, %$69] ; # Var\n  %398 = phi i64 [%386, %$55], [%605, %$69] ; # Arg\n  %399 = phi i64 [%387, %$55], [%606, %$69] ; # Cnt\n  %400 = phi i64 [%388, %$55], [%607, %$69] ; # Q\n  %401 = phi i64 [%389, %$55], [%608, %$69] ; # Tos\n  %402 = phi i64 [%390, %$55], [%609, %$69] ; # R\n  %403 = phi i64 [%391, %$55], [%610, %$69] ; # P\n  %404 = phi i64 [%392, %$55], [%611, %$69] ; # M\n; # (unless (nil? (car P)) (set R (cons (if (nil? Arg) (cons (cnt (| ...\n; # (car P)\n  %405 = inttoptr i64 %403 to i64*\n  %406 = load i64, i64* %405\n; # (nil? (car P))\n  %407 = icmp eq i64 %406, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %407, label %$58, label %$57\n$57:\n  %408 = phi i64 [%395, %$56] ; # Exe\n  %409 = phi i64 [%396, %$56] ; # X\n  %410 = phi i64 [%397, %$56] ; # Var\n  %411 = phi i64 [%398, %$56] ; # Arg\n  %412 = phi i64 [%399, %$56] ; # Cnt\n  %413 = phi i64 [%400, %$56] ; # Q\n  %414 = phi i64 [%401, %$56] ; # Tos\n  %415 = phi i64 [%402, %$56] ; # R\n  %416 = phi i64 [%403, %$56] ; # P\n  %417 = phi i64 [%404, %$56] ; # M\n; # (set R (cons (if (nil? Arg) (cons (cnt (| Cnt M)) (car P)) (cons ...\n; # (if (nil? Arg) (cons (cnt (| Cnt M)) (car P)) (cons (car P) (cnt ...\n; # (nil? Arg)\n  %418 = icmp eq i64 %411, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %418, label %$59, label %$60\n$59:\n  %419 = phi i64 [%408, %$57] ; # Exe\n  %420 = phi i64 [%409, %$57] ; # X\n  %421 = phi i64 [%410, %$57] ; # Var\n  %422 = phi i64 [%411, %$57] ; # Arg\n  %423 = phi i64 [%412, %$57] ; # Cnt\n  %424 = phi i64 [%413, %$57] ; # Q\n  %425 = phi i64 [%414, %$57] ; # Tos\n  %426 = phi i64 [%415, %$57] ; # R\n  %427 = phi i64 [%416, %$57] ; # P\n  %428 = phi i64 [%417, %$57] ; # M\n; # (| Cnt M)\n  %429 = or i64 %423, %428\n; # (cnt (| Cnt M))\n  %430 = shl i64 %429, 4\n  %431 = or i64 %430, 2\n; # (car P)\n  %432 = inttoptr i64 %427 to i64*\n  %433 = load i64, i64* %432\n; # (cons (cnt (| Cnt M)) (car P))\n  %434 = call i64 @cons(i64 %431, i64 %433)\n  br label %$61\n$60:\n  %435 = phi i64 [%408, %$57] ; # Exe\n  %436 = phi i64 [%409, %$57] ; # X\n  %437 = phi i64 [%410, %$57] ; # Var\n  %438 = phi i64 [%411, %$57] ; # Arg\n  %439 = phi i64 [%412, %$57] ; # Cnt\n  %440 = phi i64 [%413, %$57] ; # Q\n  %441 = phi i64 [%414, %$57] ; # Tos\n  %442 = phi i64 [%415, %$57] ; # R\n  %443 = phi i64 [%416, %$57] ; # P\n  %444 = phi i64 [%417, %$57] ; # M\n; # (car P)\n  %445 = inttoptr i64 %443 to i64*\n  %446 = load i64, i64* %445\n; # (| Cnt M)\n  %447 = or i64 %439, %444\n; # (cnt (| Cnt M))\n  %448 = shl i64 %447, 4\n  %449 = or i64 %448, 2\n; # (cons (car P) (cnt (| Cnt M)))\n  %450 = call i64 @cons(i64 %446, i64 %449)\n  br label %$61\n$61:\n  %451 = phi i64 [%419, %$59], [%435, %$60] ; # Exe\n  %452 = phi i64 [%420, %$59], [%436, %$60] ; # X\n  %453 = phi i64 [%421, %$59], [%437, %$60] ; # Var\n  %454 = phi i64 [%422, %$59], [%438, %$60] ; # Arg\n  %455 = phi i64 [%423, %$59], [%439, %$60] ; # Cnt\n  %456 = phi i64 [%424, %$59], [%440, %$60] ; # Q\n  %457 = phi i64 [%425, %$59], [%441, %$60] ; # Tos\n  %458 = phi i64 [%426, %$59], [%442, %$60] ; # R\n  %459 = phi i64 [%427, %$59], [%443, %$60] ; # P\n  %460 = phi i64 [%428, %$59], [%444, %$60] ; # M\n  %461 = phi i64 [%434, %$59], [%450, %$60] ; # ->\n; # (val R)\n  %462 = inttoptr i64 %458 to i64*\n  %463 = load i64, i64* %462\n; # (cons (if (nil? Arg) (cons (cnt (| Cnt M)) (car P)) (cons (car P)...\n  %464 = call i64 @cons(i64 %461, i64 %463)\n  %465 = inttoptr i64 %415 to i64*\n  store i64 %464, i64* %465\n  br label %$58\n$58:\n  %466 = phi i64 [%395, %$56], [%451, %$61] ; # Exe\n  %467 = phi i64 [%396, %$56], [%452, %$61] ; # X\n  %468 = phi i64 [%397, %$56], [%453, %$61] ; # Var\n  %469 = phi i64 [%398, %$56], [%454, %$61] ; # Arg\n  %470 = phi i64 [%399, %$56], [%455, %$61] ; # Cnt\n  %471 = phi i64 [%400, %$56], [%456, %$61] ; # Q\n  %472 = phi i64 [%401, %$56], [%457, %$61] ; # Tos\n  %473 = phi i64 [%402, %$56], [%458, %$61] ; # R\n  %474 = phi i64 [%403, %$56], [%459, %$61] ; # P\n  %475 = phi i64 [%404, %$56], [%460, %$61] ; # M\n; # (let Y (cdr P) (? (pair (car Y)) (let Z P (setq P @) (set Y (val ...\n; # (cdr P)\n  %476 = inttoptr i64 %474 to i64*\n  %477 = getelementptr i64, i64* %476, i32 1\n  %478 = load i64, i64* %477\n; # (? (pair (car Y)) (let Z P (setq P @) (set Y (val Tos)) (set Tos ...\n; # (car Y)\n  %479 = inttoptr i64 %478 to i64*\n  %480 = load i64, i64* %479\n; # (pair (car Y))\n  %481 = and i64 %480, 15\n  %482 = icmp eq i64 %481, 0\n  br i1 %482, label %$64, label %$62\n$64:\n  %483 = phi i64 [%466, %$58] ; # Exe\n  %484 = phi i64 [%467, %$58] ; # X\n  %485 = phi i64 [%468, %$58] ; # Var\n  %486 = phi i64 [%469, %$58] ; # Arg\n  %487 = phi i64 [%470, %$58] ; # Cnt\n  %488 = phi i64 [%471, %$58] ; # Q\n  %489 = phi i64 [%472, %$58] ; # Tos\n  %490 = phi i64 [%473, %$58] ; # R\n  %491 = phi i64 [%474, %$58] ; # P\n  %492 = phi i64 [%475, %$58] ; # M\n  %493 = phi i64 [%478, %$58] ; # Y\n; # (let Z P (setq P @) (set Y (val Tos)) (set Tos (| Z 8)) (set Q P)...\n; # (set Y (val Tos))\n; # (val Tos)\n  %494 = inttoptr i64 %489 to i64*\n  %495 = load i64, i64* %494\n  %496 = inttoptr i64 %493 to i64*\n  store i64 %495, i64* %496\n; # (set Tos (| Z 8))\n; # (| Z 8)\n  %497 = or i64 %491, 8\n  %498 = inttoptr i64 %489 to i64*\n  store i64 %497, i64* %498\n; # (set Q P)\n  %499 = inttoptr i64 %488 to i64*\n  store i64 %480, i64* %499\n; # (shl M 1)\n  %500 = shl i64 %492, 1\n  br label %$63\n$62:\n  %501 = phi i64 [%466, %$58] ; # Exe\n  %502 = phi i64 [%467, %$58] ; # X\n  %503 = phi i64 [%468, %$58] ; # Var\n  %504 = phi i64 [%469, %$58] ; # Arg\n  %505 = phi i64 [%470, %$58] ; # Cnt\n  %506 = phi i64 [%471, %$58] ; # Q\n  %507 = phi i64 [%472, %$58] ; # Tos\n  %508 = phi i64 [%473, %$58] ; # R\n  %509 = phi i64 [%474, %$58] ; # P\n  %510 = phi i64 [%475, %$58] ; # M\n  %511 = phi i64 [%478, %$58] ; # Y\n; # (loop (let Y (val Tos) (when (== -ZERO Y) (ret (val R))) (? (=0 (...\n  br label %$65\n$65:\n  %512 = phi i64 [%501, %$62], [%579, %$68] ; # Exe\n  %513 = phi i64 [%502, %$62], [%580, %$68] ; # X\n  %514 = phi i64 [%503, %$62], [%581, %$68] ; # Var\n  %515 = phi i64 [%504, %$62], [%582, %$68] ; # Arg\n  %516 = phi i64 [%505, %$62], [%593, %$68] ; # Cnt\n  %517 = phi i64 [%506, %$62], [%584, %$68] ; # Q\n  %518 = phi i64 [%507, %$62], [%585, %$68] ; # Tos\n  %519 = phi i64 [%508, %$62], [%586, %$68] ; # R\n  %520 = phi i64 [%509, %$62], [%590, %$68] ; # P\n  %521 = phi i64 [%510, %$62], [%591, %$68] ; # M\n; # (let Y (val Tos) (when (== -ZERO Y) (ret (val R))) (? (=0 (& Y 8)...\n; # (val Tos)\n  %522 = inttoptr i64 %518 to i64*\n  %523 = load i64, i64* %522\n; # (when (== -ZERO Y) (ret (val R)))\n; # (== -ZERO Y)\n  %524 = icmp eq i64 10, %523\n  br i1 %524, label %$66, label %$67\n$66:\n  %525 = phi i64 [%512, %$65] ; # Exe\n  %526 = phi i64 [%513, %$65] ; # X\n  %527 = phi i64 [%514, %$65] ; # Var\n  %528 = phi i64 [%515, %$65] ; # Arg\n  %529 = phi i64 [%516, %$65] ; # Cnt\n  %530 = phi i64 [%517, %$65] ; # Q\n  %531 = phi i64 [%518, %$65] ; # Tos\n  %532 = phi i64 [%519, %$65] ; # R\n  %533 = phi i64 [%520, %$65] ; # P\n  %534 = phi i64 [%521, %$65] ; # M\n  %535 = phi i64 [%523, %$65] ; # Y\n; # (val R)\n  %536 = inttoptr i64 %532 to i64*\n  %537 = load i64, i64* %536\n; # (ret (val R))\n; # (drop *Safe)\n  %538 = inttoptr i64 %41 to i64*\n  %539 = getelementptr i64, i64* %538, i32 1\n  %540 = load i64, i64* %539\n  %541 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %540, i64* %541\n  ret i64 %537\n$67:\n  %542 = phi i64 [%512, %$65] ; # Exe\n  %543 = phi i64 [%513, %$65] ; # X\n  %544 = phi i64 [%514, %$65] ; # Var\n  %545 = phi i64 [%515, %$65] ; # Arg\n  %546 = phi i64 [%516, %$65] ; # Cnt\n  %547 = phi i64 [%517, %$65] ; # Q\n  %548 = phi i64 [%518, %$65] ; # Tos\n  %549 = phi i64 [%519, %$65] ; # R\n  %550 = phi i64 [%520, %$65] ; # P\n  %551 = phi i64 [%521, %$65] ; # M\n  %552 = phi i64 [%523, %$65] ; # Y\n; # (? (=0 (& Y 8)) (setq M (shr M 1) Cnt (& Cnt (x| M -1))) (let Z (...\n; # (& Y 8)\n  %553 = and i64 %552, 8\n; # (=0 (& Y 8))\n  %554 = icmp eq i64 %553, 0\n  br i1 %554, label %$70, label %$68\n$70:\n  %555 = phi i64 [%542, %$67] ; # Exe\n  %556 = phi i64 [%543, %$67] ; # X\n  %557 = phi i64 [%544, %$67] ; # Var\n  %558 = phi i64 [%545, %$67] ; # Arg\n  %559 = phi i64 [%546, %$67] ; # Cnt\n  %560 = phi i64 [%547, %$67] ; # Q\n  %561 = phi i64 [%548, %$67] ; # Tos\n  %562 = phi i64 [%549, %$67] ; # R\n  %563 = phi i64 [%550, %$67] ; # P\n  %564 = phi i64 [%551, %$67] ; # M\n  %565 = phi i64 [%552, %$67] ; # Y\n; # (shr M 1)\n  %566 = lshr i64 %564, 1\n; # (x| M -1)\n  %567 = xor i64 %566, -1\n; # (& Cnt (x| M -1))\n  %568 = and i64 %559, %567\n; # (let Z (cdr Y) (set Tos (cdr Z)) (set 2 Z P) (setq P Y) (set Q P)...\n; # (cdr Y)\n  %569 = inttoptr i64 %565 to i64*\n  %570 = getelementptr i64, i64* %569, i32 1\n  %571 = load i64, i64* %570\n; # (set Tos (cdr Z))\n; # (cdr Z)\n  %572 = inttoptr i64 %571 to i64*\n  %573 = getelementptr i64, i64* %572, i32 1\n  %574 = load i64, i64* %573\n  %575 = inttoptr i64 %561 to i64*\n  store i64 %574, i64* %575\n; # (set 2 Z P)\n  %576 = inttoptr i64 %571 to i64*\n  %577 = getelementptr i64, i64* %576, i32 1\n  store i64 %563, i64* %577\n; # (set Q P)\n  %578 = inttoptr i64 %560 to i64*\n  store i64 %565, i64* %578\n  br label %$69\n$68:\n  %579 = phi i64 [%542, %$67] ; # Exe\n  %580 = phi i64 [%543, %$67] ; # X\n  %581 = phi i64 [%544, %$67] ; # Var\n  %582 = phi i64 [%545, %$67] ; # Arg\n  %583 = phi i64 [%546, %$67] ; # Cnt\n  %584 = phi i64 [%547, %$67] ; # Q\n  %585 = phi i64 [%548, %$67] ; # Tos\n  %586 = phi i64 [%549, %$67] ; # R\n  %587 = phi i64 [%550, %$67] ; # P\n  %588 = phi i64 [%551, %$67] ; # M\n  %589 = phi i64 [%552, %$67] ; # Y\n; # (& Y -9)\n  %590 = and i64 %589, -9\n; # (shr M 1)\n  %591 = lshr i64 %588, 1\n; # (x| M -1)\n  %592 = xor i64 %591, -1\n; # (& Cnt (x| M -1))\n  %593 = and i64 %583, %592\n; # (let Z (cdr Y) (set Tos (car Z)) (set Z P) (setq P Y) (set Q P))\n; # (cdr Y)\n  %594 = inttoptr i64 %590 to i64*\n  %595 = getelementptr i64, i64* %594, i32 1\n  %596 = load i64, i64* %595\n; # (set Tos (car Z))\n; # (car Z)\n  %597 = inttoptr i64 %596 to i64*\n  %598 = load i64, i64* %597\n  %599 = inttoptr i64 %585 to i64*\n  store i64 %598, i64* %599\n; # (set Z P)\n  %600 = inttoptr i64 %596 to i64*\n  store i64 %587, i64* %600\n; # (set Q P)\n  %601 = inttoptr i64 %584 to i64*\n  store i64 %590, i64* %601\n  br label %$65\n$69:\n  %602 = phi i64 [%555, %$70] ; # Exe\n  %603 = phi i64 [%556, %$70] ; # X\n  %604 = phi i64 [%557, %$70] ; # Var\n  %605 = phi i64 [%558, %$70] ; # Arg\n  %606 = phi i64 [%568, %$70] ; # Cnt\n  %607 = phi i64 [%560, %$70] ; # Q\n  %608 = phi i64 [%561, %$70] ; # Tos\n  %609 = phi i64 [%562, %$70] ; # R\n  %610 = phi i64 [%565, %$70] ; # P\n  %611 = phi i64 [%566, %$70] ; # M\n  %612 = phi i64 [%565, %$70] ; # ->\n  br label %$56\n$63:\n  %613 = phi i64 [%483, %$64] ; # Exe\n  %614 = phi i64 [%484, %$64] ; # X\n  %615 = phi i64 [%485, %$64] ; # Var\n  %616 = phi i64 [%486, %$64] ; # Arg\n  %617 = phi i64 [%487, %$64] ; # Cnt\n  %618 = phi i64 [%488, %$64] ; # Q\n  %619 = phi i64 [%489, %$64] ; # Tos\n  %620 = phi i64 [%490, %$64] ; # R\n  %621 = phi i64 [%480, %$64] ; # P\n  %622 = phi i64 [%500, %$64] ; # M\n  %623 = phi i64 [%500, %$64] ; # ->\n  br label %$52\n$20:\n  %624 = phi i64 [%301, %$23] ; # Exe\n  %625 = phi i64 [%302, %$23] ; # X\n  %626 = phi i64 [%303, %$23] ; # Var\n  %627 = phi i64 [%304, %$23] ; # Arg\n  %628 = phi i64 [%305, %$23] ; # Cnt\n  %629 = phi i64 [%306, %$23] ; # ->\n; # (drop *Safe)\n  %630 = inttoptr i64 %41 to i64*\n  %631 = getelementptr i64, i64* %630, i32 1\n  %632 = load i64, i64* %631\n  %633 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %632, i64* %633\n  ret i64 %629\n}\n\ndefine i64 @_EnumQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) P (save (eval (++ X))) Cnt T) (loop (? (le0 (se...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (loop (? (le0 (setq Cnt (evCnt Exe X))) $Nil) (loop (let N (shr C...\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%112, %$19] ; # Exe\n  %30 = phi i64 [%6, %$2], [%113, %$19] ; # X\n  %31 = phi i64 [%20, %$2], [%117, %$19] ; # P\n; # (? (le0 (setq Cnt (evCnt Exe X))) $Nil)\n; # (evCnt Exe X)\n  %32 = call i64 @evCnt(i64 %29, i64 %30)\n; # (le0 (setq Cnt (evCnt Exe X)))\n  %33 = icmp sle i64 %32, 0\n  br i1 %33, label %$10, label %$8\n$10:\n  %34 = phi i64 [%29, %$7] ; # Exe\n  %35 = phi i64 [%30, %$7] ; # X\n  %36 = phi i64 [%31, %$7] ; # P\n  %37 = phi i64 [%32, %$7] ; # Cnt\n  br label %$9\n$8:\n  %38 = phi i64 [%29, %$7] ; # Exe\n  %39 = phi i64 [%30, %$7] ; # X\n  %40 = phi i64 [%31, %$7] ; # P\n  %41 = phi i64 [%32, %$7] ; # Cnt\n; # (loop (let N (shr Cnt 1) (? (=0 N)) (setq P (if (& Cnt 1) (cddr P...\n  br label %$11\n$11:\n  %42 = phi i64 [%38, %$8], [%93, %$17] ; # Exe\n  %43 = phi i64 [%39, %$8], [%94, %$17] ; # X\n  %44 = phi i64 [%40, %$8], [%95, %$17] ; # P\n  %45 = phi i64 [%41, %$8], [%97, %$17] ; # Cnt\n; # (let N (shr Cnt 1) (? (=0 N)) (setq P (if (& Cnt 1) (cddr P) (cad...\n; # (shr Cnt 1)\n  %46 = lshr i64 %45, 1\n; # (? (=0 N))\n; # (=0 N)\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$13, label %$12\n$12:\n  %48 = phi i64 [%42, %$11] ; # Exe\n  %49 = phi i64 [%43, %$11] ; # X\n  %50 = phi i64 [%44, %$11] ; # P\n  %51 = phi i64 [%45, %$11] ; # Cnt\n  %52 = phi i64 [%46, %$11] ; # N\n; # (if (& Cnt 1) (cddr P) (cadr P))\n; # (& Cnt 1)\n  %53 = and i64 %51, 1\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$14, label %$15\n$14:\n  %55 = phi i64 [%48, %$12] ; # Exe\n  %56 = phi i64 [%49, %$12] ; # X\n  %57 = phi i64 [%50, %$12] ; # P\n  %58 = phi i64 [%51, %$12] ; # Cnt\n  %59 = phi i64 [%52, %$12] ; # N\n; # (cddr P)\n  %60 = inttoptr i64 %57 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  %63 = inttoptr i64 %62 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  %65 = load i64, i64* %64\n  br label %$16\n$15:\n  %66 = phi i64 [%48, %$12] ; # Exe\n  %67 = phi i64 [%49, %$12] ; # X\n  %68 = phi i64 [%50, %$12] ; # P\n  %69 = phi i64 [%51, %$12] ; # Cnt\n  %70 = phi i64 [%52, %$12] ; # N\n; # (cadr P)\n  %71 = inttoptr i64 %68 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n  br label %$16\n$16:\n  %76 = phi i64 [%55, %$14], [%66, %$15] ; # Exe\n  %77 = phi i64 [%56, %$14], [%67, %$15] ; # X\n  %78 = phi i64 [%57, %$14], [%68, %$15] ; # P\n  %79 = phi i64 [%58, %$14], [%69, %$15] ; # Cnt\n  %80 = phi i64 [%59, %$14], [%70, %$15] ; # N\n  %81 = phi i64 [%65, %$14], [%75, %$15] ; # ->\n; # (? (atom P) (ret $Nil))\n; # (atom P)\n  %82 = and i64 %81, 15\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$18, label %$17\n$18:\n  %84 = phi i64 [%76, %$16] ; # Exe\n  %85 = phi i64 [%77, %$16] ; # X\n  %86 = phi i64 [%81, %$16] ; # P\n  %87 = phi i64 [%79, %$16] ; # Cnt\n  %88 = phi i64 [%80, %$16] ; # N\n; # (ret $Nil)\n; # (drop *Safe)\n  %89 = inttoptr i64 %24 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %91, i64* %92\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$17:\n  %93 = phi i64 [%76, %$16] ; # Exe\n  %94 = phi i64 [%77, %$16] ; # X\n  %95 = phi i64 [%81, %$16] ; # P\n  %96 = phi i64 [%79, %$16] ; # Cnt\n  %97 = phi i64 [%80, %$16] ; # N\n  br label %$11\n$13:\n  %98 = phi i64 [%42, %$11] ; # Exe\n  %99 = phi i64 [%43, %$11] ; # X\n  %100 = phi i64 [%44, %$11] ; # P\n  %101 = phi i64 [%45, %$11] ; # Cnt\n  %102 = phi i64 [0, %$11] ; # ->\n; # (? (atom (shift X)) P)\n; # (shift X)\n  %103 = inttoptr i64 %99 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (atom (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$20, label %$19\n$20:\n  %108 = phi i64 [%98, %$13] ; # Exe\n  %109 = phi i64 [%105, %$13] ; # X\n  %110 = phi i64 [%100, %$13] ; # P\n  %111 = phi i64 [%101, %$13] ; # Cnt\n  br label %$9\n$19:\n  %112 = phi i64 [%98, %$13] ; # Exe\n  %113 = phi i64 [%105, %$13] ; # X\n  %114 = phi i64 [%100, %$13] ; # P\n  %115 = phi i64 [%101, %$13] ; # Cnt\n; # (car P)\n  %116 = inttoptr i64 %114 to i64*\n  %117 = load i64, i64* %116\n  br label %$7\n$9:\n  %118 = phi i64 [%34, %$10], [%108, %$20] ; # Exe\n  %119 = phi i64 [%35, %$10], [%109, %$20] ; # X\n  %120 = phi i64 [%36, %$10], [%110, %$20] ; # P\n  %121 = phi i64 [%37, %$10], [%111, %$20] ; # Cnt\n  %122 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [%110, %$20] ; # ->\n; # (drop *Safe)\n  %123 = inttoptr i64 %24 to i64*\n  %124 = getelementptr i64, i64* %123, i32 1\n  %125 = load i64, i64* %124\n  %126 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %125, i64* %126\n  ret i64 %122\n}\n\ndefine i64 @idxPut(i64, i64, i64) align 8 {\n$1:\n; # (let X (val Var) (if (pair X) (loop (? (=0 (compare (car X) Key))...\n; # (val Var)\n  %3 = inttoptr i64 %0 to i64*\n  %4 = load i64, i64* %3\n; # (if (pair X) (loop (? (=0 (compare (car X) Key)) X) (let Y (cdr X...\n; # (pair X)\n  %5 = and i64 %4, 15\n  %6 = icmp eq i64 %5, 0\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i64 [%0, %$1] ; # Var\n  %8 = phi i64 [%1, %$1] ; # Key\n  %9 = phi i64 [%2, %$1] ; # Flg\n  %10 = phi i64 [%4, %$1] ; # X\n; # (loop (? (=0 (compare (car X) Key)) X) (let Y (cdr X) (cond ((lt0...\n  br label %$5\n$5:\n  %11 = phi i64 [%7, %$2], [%446, %$9] ; # Var\n  %12 = phi i64 [%8, %$2], [%447, %$9] ; # Key\n  %13 = phi i64 [%9, %$2], [%448, %$9] ; # Flg\n  %14 = phi i64 [%10, %$2], [%449, %$9] ; # X\n; # (? (=0 (compare (car X) Key)) X)\n; # (car X)\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n; # (compare (car X) Key)\n  %17 = call i64 @compare(i64 %16, i64 %12)\n; # (=0 (compare (car X) Key))\n  %18 = icmp eq i64 %17, 0\n  br i1 %18, label %$8, label %$6\n$8:\n  %19 = phi i64 [%11, %$5] ; # Var\n  %20 = phi i64 [%12, %$5] ; # Key\n  %21 = phi i64 [%13, %$5] ; # Flg\n  %22 = phi i64 [%14, %$5] ; # X\n  br label %$7\n$6:\n  %23 = phi i64 [%11, %$5] ; # Var\n  %24 = phi i64 [%12, %$5] ; # Key\n  %25 = phi i64 [%13, %$5] ; # Flg\n  %26 = phi i64 [%14, %$5] ; # X\n; # (let Y (cdr X) (cond ((lt0 @) (? (atom Y) (if (or (t? Flg) (chanc...\n; # (cdr X)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (cond ((lt0 @) (? (atom Y) (if (or (t? Flg) (chance 1)) (set 2 X ...\n; # (lt0 @)\n  %30 = icmp slt i64 %17, 0\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%23, %$6] ; # Var\n  %32 = phi i64 [%24, %$6] ; # Key\n  %33 = phi i64 [%25, %$6] ; # Flg\n  %34 = phi i64 [%26, %$6] ; # X\n  %35 = phi i64 [%29, %$6] ; # Y\n; # (? (atom Y) (if (or (t? Flg) (chance 1)) (set 2 X (cons $Nil (con...\n; # (atom Y)\n  %36 = and i64 %35, 15\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$13, label %$12\n$13:\n  %38 = phi i64 [%31, %$11] ; # Var\n  %39 = phi i64 [%32, %$11] ; # Key\n  %40 = phi i64 [%33, %$11] ; # Flg\n  %41 = phi i64 [%34, %$11] ; # X\n  %42 = phi i64 [%35, %$11] ; # Y\n; # (if (or (t? Flg) (chance 1)) (set 2 X (cons $Nil (cons Key $Nil))...\n; # (or (t? Flg) (chance 1))\n; # (t? Flg)\n  %43 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %43, label %$14, label %$15\n$15:\n  %44 = phi i64 [%38, %$13] ; # Var\n  %45 = phi i64 [%39, %$13] ; # Key\n  %46 = phi i64 [%40, %$13] ; # Flg\n  %47 = phi i64 [%41, %$13] ; # X\n  %48 = phi i64 [%42, %$13] ; # Y\n; # (chance 1)\n  %49 = call i1 @chance(i64 1)\n  br label %$14\n$14:\n  %50 = phi i64 [%38, %$13], [%44, %$15] ; # Var\n  %51 = phi i64 [%39, %$13], [%45, %$15] ; # Key\n  %52 = phi i64 [%40, %$13], [%46, %$15] ; # Flg\n  %53 = phi i64 [%41, %$13], [%47, %$15] ; # X\n  %54 = phi i64 [%42, %$13], [%48, %$15] ; # Y\n  %55 = phi i1 [1, %$13], [%49, %$15] ; # ->\n  br i1 %55, label %$16, label %$17\n$16:\n  %56 = phi i64 [%50, %$14] ; # Var\n  %57 = phi i64 [%51, %$14] ; # Key\n  %58 = phi i64 [%52, %$14] ; # Flg\n  %59 = phi i64 [%53, %$14] ; # X\n  %60 = phi i64 [%54, %$14] ; # Y\n; # (set 2 X (cons $Nil (cons Key $Nil)))\n; # (cons Key $Nil)\n  %61 = call i64 @cons(i64 %57, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons $Nil (cons Key $Nil))\n  %62 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %61)\n  %63 = inttoptr i64 %59 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  store i64 %62, i64* %64\n  br label %$18\n$17:\n  %65 = phi i64 [%50, %$14] ; # Var\n  %66 = phi i64 [%51, %$14] ; # Key\n  %67 = phi i64 [%52, %$14] ; # Flg\n  %68 = phi i64 [%53, %$14] ; # X\n  %69 = phi i64 [%54, %$14] ; # Y\n; # (set 2 X (cons (cons (car X) $Nil) $Nil))\n; # (car X)\n  %70 = inttoptr i64 %68 to i64*\n  %71 = load i64, i64* %70\n; # (cons (car X) $Nil)\n  %72 = call i64 @cons(i64 %71, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (cons (car X) $Nil) $Nil)\n  %73 = call i64 @cons(i64 %72, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %74 = inttoptr i64 %68 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  store i64 %73, i64* %75\n; # (set X Key)\n  %76 = inttoptr i64 %68 to i64*\n  store i64 %66, i64* %76\n  br label %$18\n$18:\n  %77 = phi i64 [%56, %$16], [%65, %$17] ; # Var\n  %78 = phi i64 [%57, %$16], [%66, %$17] ; # Key\n  %79 = phi i64 [%58, %$16], [%67, %$17] ; # Flg\n  %80 = phi i64 [%59, %$16], [%68, %$17] ; # X\n  %81 = phi i64 [%60, %$16], [%69, %$17] ; # Y\n  %82 = phi i64 [%62, %$16], [%66, %$17] ; # ->\n  br label %$7\n$12:\n  %83 = phi i64 [%31, %$11] ; # Var\n  %84 = phi i64 [%32, %$11] ; # Key\n  %85 = phi i64 [%33, %$11] ; # Flg\n  %86 = phi i64 [%34, %$11] ; # X\n  %87 = phi i64 [%35, %$11] ; # Y\n; # (? (atom (setq Y (cdr Y))) (if (or (t? Flg) (chance 1)) (set 2 (c...\n; # (cdr Y)\n  %88 = inttoptr i64 %87 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n; # (atom (setq Y (cdr Y)))\n  %91 = and i64 %90, 15\n  %92 = icmp ne i64 %91, 0\n  br i1 %92, label %$20, label %$19\n$20:\n  %93 = phi i64 [%83, %$12] ; # Var\n  %94 = phi i64 [%84, %$12] ; # Key\n  %95 = phi i64 [%85, %$12] ; # Flg\n  %96 = phi i64 [%86, %$12] ; # X\n  %97 = phi i64 [%90, %$12] ; # Y\n; # (if (or (t? Flg) (chance 1)) (set 2 (cdr X) (cons Key $Nil)) (set...\n; # (or (t? Flg) (chance 1))\n; # (t? Flg)\n  %98 = icmp eq i64 %95, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %98, label %$21, label %$22\n$22:\n  %99 = phi i64 [%93, %$20] ; # Var\n  %100 = phi i64 [%94, %$20] ; # Key\n  %101 = phi i64 [%95, %$20] ; # Flg\n  %102 = phi i64 [%96, %$20] ; # X\n  %103 = phi i64 [%97, %$20] ; # Y\n; # (chance 1)\n  %104 = call i1 @chance(i64 1)\n  br label %$21\n$21:\n  %105 = phi i64 [%93, %$20], [%99, %$22] ; # Var\n  %106 = phi i64 [%94, %$20], [%100, %$22] ; # Key\n  %107 = phi i64 [%95, %$20], [%101, %$22] ; # Flg\n  %108 = phi i64 [%96, %$20], [%102, %$22] ; # X\n  %109 = phi i64 [%97, %$20], [%103, %$22] ; # Y\n  %110 = phi i1 [1, %$20], [%104, %$22] ; # ->\n  br i1 %110, label %$23, label %$24\n$23:\n  %111 = phi i64 [%105, %$21] ; # Var\n  %112 = phi i64 [%106, %$21] ; # Key\n  %113 = phi i64 [%107, %$21] ; # Flg\n  %114 = phi i64 [%108, %$21] ; # X\n  %115 = phi i64 [%109, %$21] ; # Y\n; # (set 2 (cdr X) (cons Key $Nil))\n; # (cdr X)\n  %116 = inttoptr i64 %114 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n; # (cons Key $Nil)\n  %119 = call i64 @cons(i64 %112, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %120 = inttoptr i64 %118 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  store i64 %119, i64* %121\n  br label %$25\n$24:\n  %122 = phi i64 [%105, %$21] ; # Var\n  %123 = phi i64 [%106, %$21] ; # Key\n  %124 = phi i64 [%107, %$21] ; # Flg\n  %125 = phi i64 [%108, %$21] ; # X\n  %126 = phi i64 [%109, %$21] ; # Y\n; # (set (cdr X) (cons (car X) (cons (cadr X) $Nil)))\n; # (cdr X)\n  %127 = inttoptr i64 %125 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n; # (car X)\n  %130 = inttoptr i64 %125 to i64*\n  %131 = load i64, i64* %130\n; # (cadr X)\n  %132 = inttoptr i64 %125 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  %134 = load i64, i64* %133\n  %135 = inttoptr i64 %134 to i64*\n  %136 = load i64, i64* %135\n; # (cons (cadr X) $Nil)\n  %137 = call i64 @cons(i64 %136, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (car X) (cons (cadr X) $Nil))\n  %138 = call i64 @cons(i64 %131, i64 %137)\n  %139 = inttoptr i64 %129 to i64*\n  store i64 %138, i64* %139\n; # (set X Key)\n  %140 = inttoptr i64 %125 to i64*\n  store i64 %123, i64* %140\n  br label %$25\n$25:\n  %141 = phi i64 [%111, %$23], [%122, %$24] ; # Var\n  %142 = phi i64 [%112, %$23], [%123, %$24] ; # Key\n  %143 = phi i64 [%113, %$23], [%124, %$24] ; # Flg\n  %144 = phi i64 [%114, %$23], [%125, %$24] ; # X\n  %145 = phi i64 [%115, %$23], [%126, %$24] ; # Y\n  %146 = phi i64 [%119, %$23], [%123, %$24] ; # ->\n  br label %$7\n$19:\n  %147 = phi i64 [%83, %$12] ; # Var\n  %148 = phi i64 [%84, %$12] ; # Key\n  %149 = phi i64 [%85, %$12] ; # Flg\n  %150 = phi i64 [%86, %$12] ; # X\n  %151 = phi i64 [%90, %$12] ; # Y\n; # (if (or (t? Flg) (atom (cdr Y)) (gt0 (compare (car Y) Key)) (chan...\n; # (or (t? Flg) (atom (cdr Y)) (gt0 (compare (car Y) Key)) (chance (...\n; # (t? Flg)\n  %152 = icmp eq i64 %149, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %152, label %$26, label %$27\n$27:\n  %153 = phi i64 [%147, %$19] ; # Var\n  %154 = phi i64 [%148, %$19] ; # Key\n  %155 = phi i64 [%149, %$19] ; # Flg\n  %156 = phi i64 [%150, %$19] ; # X\n  %157 = phi i64 [%151, %$19] ; # Y\n; # (cdr Y)\n  %158 = inttoptr i64 %157 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n; # (atom (cdr Y))\n  %161 = and i64 %160, 15\n  %162 = icmp ne i64 %161, 0\n  br i1 %162, label %$26, label %$28\n$28:\n  %163 = phi i64 [%153, %$27] ; # Var\n  %164 = phi i64 [%154, %$27] ; # Key\n  %165 = phi i64 [%155, %$27] ; # Flg\n  %166 = phi i64 [%156, %$27] ; # X\n  %167 = phi i64 [%157, %$27] ; # Y\n; # (car Y)\n  %168 = inttoptr i64 %167 to i64*\n  %169 = load i64, i64* %168\n; # (compare (car Y) Key)\n  %170 = call i64 @compare(i64 %169, i64 %164)\n; # (gt0 (compare (car Y) Key))\n  %171 = icmp sgt i64 %170, 0\n  br i1 %171, label %$26, label %$29\n$29:\n  %172 = phi i64 [%163, %$28] ; # Var\n  %173 = phi i64 [%164, %$28] ; # Key\n  %174 = phi i64 [%165, %$28] ; # Flg\n  %175 = phi i64 [%166, %$28] ; # X\n  %176 = phi i64 [%167, %$28] ; # Y\n; # (chance (hex \"FFF\"))\n  %177 = call i1 @chance(i64 4095)\n  br label %$26\n$26:\n  %178 = phi i64 [%147, %$19], [%153, %$27], [%163, %$28], [%172, %$29] ; # Var\n  %179 = phi i64 [%148, %$19], [%154, %$27], [%164, %$28], [%173, %$29] ; # Key\n  %180 = phi i64 [%149, %$19], [%155, %$27], [%165, %$28], [%174, %$29] ; # Flg\n  %181 = phi i64 [%150, %$19], [%156, %$27], [%166, %$28], [%175, %$29] ; # X\n  %182 = phi i64 [%151, %$19], [%157, %$27], [%167, %$28], [%176, %$29] ; # Y\n  %183 = phi i1 [1, %$19], [1, %$27], [1, %$28], [%177, %$29] ; # ->\n  br i1 %183, label %$30, label %$31\n$30:\n  %184 = phi i64 [%178, %$26] ; # Var\n  %185 = phi i64 [%179, %$26] ; # Key\n  %186 = phi i64 [%180, %$26] ; # Flg\n  %187 = phi i64 [%181, %$26] ; # X\n  %188 = phi i64 [%182, %$26] ; # Y\n  br label %$32\n$31:\n  %189 = phi i64 [%178, %$26] ; # Var\n  %190 = phi i64 [%179, %$26] ; # Key\n  %191 = phi i64 [%180, %$26] ; # Flg\n  %192 = phi i64 [%181, %$26] ; # X\n  %193 = phi i64 [%182, %$26] ; # Y\n; # (xchg X Y)\n  %194 = inttoptr i64 %192 to i64*\n  %195 = load i64, i64* %194\n  %196 = inttoptr i64 %193 to i64*\n  %197 = load i64, i64* %196\n  store i64 %197, i64* %194\n  store i64 %195, i64* %196\n; # (set 2 (cdr X) (cddr Y) 2 (cdr Y) (cadr Y) (cdr Y) (cadr X) (cdr ...\n; # (cdr X)\n  %198 = inttoptr i64 %192 to i64*\n  %199 = getelementptr i64, i64* %198, i32 1\n  %200 = load i64, i64* %199\n; # (cddr Y)\n  %201 = inttoptr i64 %193 to i64*\n  %202 = getelementptr i64, i64* %201, i32 1\n  %203 = load i64, i64* %202\n  %204 = inttoptr i64 %203 to i64*\n  %205 = getelementptr i64, i64* %204, i32 1\n  %206 = load i64, i64* %205\n  %207 = inttoptr i64 %200 to i64*\n  %208 = getelementptr i64, i64* %207, i32 1\n  store i64 %206, i64* %208\n; # (cdr Y)\n  %209 = inttoptr i64 %193 to i64*\n  %210 = getelementptr i64, i64* %209, i32 1\n  %211 = load i64, i64* %210\n; # (cadr Y)\n  %212 = inttoptr i64 %193 to i64*\n  %213 = getelementptr i64, i64* %212, i32 1\n  %214 = load i64, i64* %213\n  %215 = inttoptr i64 %214 to i64*\n  %216 = load i64, i64* %215\n  %217 = inttoptr i64 %211 to i64*\n  %218 = getelementptr i64, i64* %217, i32 1\n  store i64 %216, i64* %218\n; # (cdr Y)\n  %219 = inttoptr i64 %193 to i64*\n  %220 = getelementptr i64, i64* %219, i32 1\n  %221 = load i64, i64* %220\n; # (cadr X)\n  %222 = inttoptr i64 %192 to i64*\n  %223 = getelementptr i64, i64* %222, i32 1\n  %224 = load i64, i64* %223\n  %225 = inttoptr i64 %224 to i64*\n  %226 = load i64, i64* %225\n  %227 = inttoptr i64 %221 to i64*\n  store i64 %226, i64* %227\n; # (cdr X)\n  %228 = inttoptr i64 %192 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n  %231 = inttoptr i64 %230 to i64*\n  store i64 %193, i64* %231\n  br label %$32\n$32:\n  %232 = phi i64 [%184, %$30], [%189, %$31] ; # Var\n  %233 = phi i64 [%185, %$30], [%190, %$31] ; # Key\n  %234 = phi i64 [%186, %$30], [%191, %$31] ; # Flg\n  %235 = phi i64 [%188, %$30], [%192, %$31] ; # X\n  %236 = phi i64 [%188, %$30], [%193, %$31] ; # Y\n  %237 = phi i64 [%188, %$30], [%193, %$31] ; # ->\n  br label %$9\n$10:\n  %238 = phi i64 [%23, %$6] ; # Var\n  %239 = phi i64 [%24, %$6] ; # Key\n  %240 = phi i64 [%25, %$6] ; # Flg\n  %241 = phi i64 [%26, %$6] ; # X\n  %242 = phi i64 [%29, %$6] ; # Y\n; # (? (atom Y) (if (or (t? Flg) (chance 1)) (set 2 X (cons (cons Key...\n; # (atom Y)\n  %243 = and i64 %242, 15\n  %244 = icmp ne i64 %243, 0\n  br i1 %244, label %$34, label %$33\n$34:\n  %245 = phi i64 [%238, %$10] ; # Var\n  %246 = phi i64 [%239, %$10] ; # Key\n  %247 = phi i64 [%240, %$10] ; # Flg\n  %248 = phi i64 [%241, %$10] ; # X\n  %249 = phi i64 [%242, %$10] ; # Y\n; # (if (or (t? Flg) (chance 1)) (set 2 X (cons (cons Key $Nil) $Nil)...\n; # (or (t? Flg) (chance 1))\n; # (t? Flg)\n  %250 = icmp eq i64 %247, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %250, label %$35, label %$36\n$36:\n  %251 = phi i64 [%245, %$34] ; # Var\n  %252 = phi i64 [%246, %$34] ; # Key\n  %253 = phi i64 [%247, %$34] ; # Flg\n  %254 = phi i64 [%248, %$34] ; # X\n  %255 = phi i64 [%249, %$34] ; # Y\n; # (chance 1)\n  %256 = call i1 @chance(i64 1)\n  br label %$35\n$35:\n  %257 = phi i64 [%245, %$34], [%251, %$36] ; # Var\n  %258 = phi i64 [%246, %$34], [%252, %$36] ; # Key\n  %259 = phi i64 [%247, %$34], [%253, %$36] ; # Flg\n  %260 = phi i64 [%248, %$34], [%254, %$36] ; # X\n  %261 = phi i64 [%249, %$34], [%255, %$36] ; # Y\n  %262 = phi i1 [1, %$34], [%256, %$36] ; # ->\n  br i1 %262, label %$37, label %$38\n$37:\n  %263 = phi i64 [%257, %$35] ; # Var\n  %264 = phi i64 [%258, %$35] ; # Key\n  %265 = phi i64 [%259, %$35] ; # Flg\n  %266 = phi i64 [%260, %$35] ; # X\n  %267 = phi i64 [%261, %$35] ; # Y\n; # (set 2 X (cons (cons Key $Nil) $Nil))\n; # (cons Key $Nil)\n  %268 = call i64 @cons(i64 %264, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (cons Key $Nil) $Nil)\n  %269 = call i64 @cons(i64 %268, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %270 = inttoptr i64 %266 to i64*\n  %271 = getelementptr i64, i64* %270, i32 1\n  store i64 %269, i64* %271\n  br label %$39\n$38:\n  %272 = phi i64 [%257, %$35] ; # Var\n  %273 = phi i64 [%258, %$35] ; # Key\n  %274 = phi i64 [%259, %$35] ; # Flg\n  %275 = phi i64 [%260, %$35] ; # X\n  %276 = phi i64 [%261, %$35] ; # Y\n; # (set 2 X (cons $Nil (cons (car X) $Nil)))\n; # (car X)\n  %277 = inttoptr i64 %275 to i64*\n  %278 = load i64, i64* %277\n; # (cons (car X) $Nil)\n  %279 = call i64 @cons(i64 %278, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons $Nil (cons (car X) $Nil))\n  %280 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %279)\n  %281 = inttoptr i64 %275 to i64*\n  %282 = getelementptr i64, i64* %281, i32 1\n  store i64 %280, i64* %282\n; # (set X Key)\n  %283 = inttoptr i64 %275 to i64*\n  store i64 %273, i64* %283\n  br label %$39\n$39:\n  %284 = phi i64 [%263, %$37], [%272, %$38] ; # Var\n  %285 = phi i64 [%264, %$37], [%273, %$38] ; # Key\n  %286 = phi i64 [%265, %$37], [%274, %$38] ; # Flg\n  %287 = phi i64 [%266, %$37], [%275, %$38] ; # X\n  %288 = phi i64 [%267, %$37], [%276, %$38] ; # Y\n  %289 = phi i64 [%269, %$37], [%273, %$38] ; # ->\n  br label %$7\n$33:\n  %290 = phi i64 [%238, %$10] ; # Var\n  %291 = phi i64 [%239, %$10] ; # Key\n  %292 = phi i64 [%240, %$10] ; # Flg\n  %293 = phi i64 [%241, %$10] ; # X\n  %294 = phi i64 [%242, %$10] ; # Y\n; # (? (atom (setq Y (car Y))) (if (or (t? Flg) (chance 1)) (set (cdr...\n; # (car Y)\n  %295 = inttoptr i64 %294 to i64*\n  %296 = load i64, i64* %295\n; # (atom (setq Y (car Y)))\n  %297 = and i64 %296, 15\n  %298 = icmp ne i64 %297, 0\n  br i1 %298, label %$41, label %$40\n$41:\n  %299 = phi i64 [%290, %$33] ; # Var\n  %300 = phi i64 [%291, %$33] ; # Key\n  %301 = phi i64 [%292, %$33] ; # Flg\n  %302 = phi i64 [%293, %$33] ; # X\n  %303 = phi i64 [%296, %$33] ; # Y\n; # (if (or (t? Flg) (chance 1)) (set (cdr X) (cons Key $Nil)) (set 2...\n; # (or (t? Flg) (chance 1))\n; # (t? Flg)\n  %304 = icmp eq i64 %301, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %304, label %$42, label %$43\n$43:\n  %305 = phi i64 [%299, %$41] ; # Var\n  %306 = phi i64 [%300, %$41] ; # Key\n  %307 = phi i64 [%301, %$41] ; # Flg\n  %308 = phi i64 [%302, %$41] ; # X\n  %309 = phi i64 [%303, %$41] ; # Y\n; # (chance 1)\n  %310 = call i1 @chance(i64 1)\n  br label %$42\n$42:\n  %311 = phi i64 [%299, %$41], [%305, %$43] ; # Var\n  %312 = phi i64 [%300, %$41], [%306, %$43] ; # Key\n  %313 = phi i64 [%301, %$41], [%307, %$43] ; # Flg\n  %314 = phi i64 [%302, %$41], [%308, %$43] ; # X\n  %315 = phi i64 [%303, %$41], [%309, %$43] ; # Y\n  %316 = phi i1 [1, %$41], [%310, %$43] ; # ->\n  br i1 %316, label %$44, label %$45\n$44:\n  %317 = phi i64 [%311, %$42] ; # Var\n  %318 = phi i64 [%312, %$42] ; # Key\n  %319 = phi i64 [%313, %$42] ; # Flg\n  %320 = phi i64 [%314, %$42] ; # X\n  %321 = phi i64 [%315, %$42] ; # Y\n; # (set (cdr X) (cons Key $Nil))\n; # (cdr X)\n  %322 = inttoptr i64 %320 to i64*\n  %323 = getelementptr i64, i64* %322, i32 1\n  %324 = load i64, i64* %323\n; # (cons Key $Nil)\n  %325 = call i64 @cons(i64 %318, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %326 = inttoptr i64 %324 to i64*\n  store i64 %325, i64* %326\n  br label %$46\n$45:\n  %327 = phi i64 [%311, %$42] ; # Var\n  %328 = phi i64 [%312, %$42] ; # Key\n  %329 = phi i64 [%313, %$42] ; # Flg\n  %330 = phi i64 [%314, %$42] ; # X\n  %331 = phi i64 [%315, %$42] ; # Y\n; # (set 2 (cdr X) (cons (car X) (cons $Nil (cddr X))))\n; # (cdr X)\n  %332 = inttoptr i64 %330 to i64*\n  %333 = getelementptr i64, i64* %332, i32 1\n  %334 = load i64, i64* %333\n; # (car X)\n  %335 = inttoptr i64 %330 to i64*\n  %336 = load i64, i64* %335\n; # (cddr X)\n  %337 = inttoptr i64 %330 to i64*\n  %338 = getelementptr i64, i64* %337, i32 1\n  %339 = load i64, i64* %338\n  %340 = inttoptr i64 %339 to i64*\n  %341 = getelementptr i64, i64* %340, i32 1\n  %342 = load i64, i64* %341\n; # (cons $Nil (cddr X))\n  %343 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %342)\n; # (cons (car X) (cons $Nil (cddr X)))\n  %344 = call i64 @cons(i64 %336, i64 %343)\n  %345 = inttoptr i64 %334 to i64*\n  %346 = getelementptr i64, i64* %345, i32 1\n  store i64 %344, i64* %346\n; # (set X Key)\n  %347 = inttoptr i64 %330 to i64*\n  store i64 %328, i64* %347\n  br label %$46\n$46:\n  %348 = phi i64 [%317, %$44], [%327, %$45] ; # Var\n  %349 = phi i64 [%318, %$44], [%328, %$45] ; # Key\n  %350 = phi i64 [%319, %$44], [%329, %$45] ; # Flg\n  %351 = phi i64 [%320, %$44], [%330, %$45] ; # X\n  %352 = phi i64 [%321, %$44], [%331, %$45] ; # Y\n  %353 = phi i64 [%325, %$44], [%328, %$45] ; # ->\n  br label %$7\n$40:\n  %354 = phi i64 [%290, %$33] ; # Var\n  %355 = phi i64 [%291, %$33] ; # Key\n  %356 = phi i64 [%292, %$33] ; # Flg\n  %357 = phi i64 [%293, %$33] ; # X\n  %358 = phi i64 [%296, %$33] ; # Y\n; # (if (or (t? Flg) (atom (cdr Y)) (lt0 (compare (car Y) Key)) (chan...\n; # (or (t? Flg) (atom (cdr Y)) (lt0 (compare (car Y) Key)) (chance (...\n; # (t? Flg)\n  %359 = icmp eq i64 %356, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %359, label %$47, label %$48\n$48:\n  %360 = phi i64 [%354, %$40] ; # Var\n  %361 = phi i64 [%355, %$40] ; # Key\n  %362 = phi i64 [%356, %$40] ; # Flg\n  %363 = phi i64 [%357, %$40] ; # X\n  %364 = phi i64 [%358, %$40] ; # Y\n; # (cdr Y)\n  %365 = inttoptr i64 %364 to i64*\n  %366 = getelementptr i64, i64* %365, i32 1\n  %367 = load i64, i64* %366\n; # (atom (cdr Y))\n  %368 = and i64 %367, 15\n  %369 = icmp ne i64 %368, 0\n  br i1 %369, label %$47, label %$49\n$49:\n  %370 = phi i64 [%360, %$48] ; # Var\n  %371 = phi i64 [%361, %$48] ; # Key\n  %372 = phi i64 [%362, %$48] ; # Flg\n  %373 = phi i64 [%363, %$48] ; # X\n  %374 = phi i64 [%364, %$48] ; # Y\n; # (car Y)\n  %375 = inttoptr i64 %374 to i64*\n  %376 = load i64, i64* %375\n; # (compare (car Y) Key)\n  %377 = call i64 @compare(i64 %376, i64 %371)\n; # (lt0 (compare (car Y) Key))\n  %378 = icmp slt i64 %377, 0\n  br i1 %378, label %$47, label %$50\n$50:\n  %379 = phi i64 [%370, %$49] ; # Var\n  %380 = phi i64 [%371, %$49] ; # Key\n  %381 = phi i64 [%372, %$49] ; # Flg\n  %382 = phi i64 [%373, %$49] ; # X\n  %383 = phi i64 [%374, %$49] ; # Y\n; # (chance (hex \"FFF\"))\n  %384 = call i1 @chance(i64 4095)\n  br label %$47\n$47:\n  %385 = phi i64 [%354, %$40], [%360, %$48], [%370, %$49], [%379, %$50] ; # Var\n  %386 = phi i64 [%355, %$40], [%361, %$48], [%371, %$49], [%380, %$50] ; # Key\n  %387 = phi i64 [%356, %$40], [%362, %$48], [%372, %$49], [%381, %$50] ; # Flg\n  %388 = phi i64 [%357, %$40], [%363, %$48], [%373, %$49], [%382, %$50] ; # X\n  %389 = phi i64 [%358, %$40], [%364, %$48], [%374, %$49], [%383, %$50] ; # Y\n  %390 = phi i1 [1, %$40], [1, %$48], [1, %$49], [%384, %$50] ; # ->\n  br i1 %390, label %$51, label %$52\n$51:\n  %391 = phi i64 [%385, %$47] ; # Var\n  %392 = phi i64 [%386, %$47] ; # Key\n  %393 = phi i64 [%387, %$47] ; # Flg\n  %394 = phi i64 [%388, %$47] ; # X\n  %395 = phi i64 [%389, %$47] ; # Y\n  br label %$53\n$52:\n  %396 = phi i64 [%385, %$47] ; # Var\n  %397 = phi i64 [%386, %$47] ; # Key\n  %398 = phi i64 [%387, %$47] ; # Flg\n  %399 = phi i64 [%388, %$47] ; # X\n  %400 = phi i64 [%389, %$47] ; # Y\n; # (xchg X Y)\n  %401 = inttoptr i64 %399 to i64*\n  %402 = load i64, i64* %401\n  %403 = inttoptr i64 %400 to i64*\n  %404 = load i64, i64* %403\n  store i64 %404, i64* %401\n  store i64 %402, i64* %403\n; # (set (cdr X) (cadr Y) (cdr Y) (cddr Y) 2 (cdr Y) (cddr X) 2 (cdr ...\n; # (cdr X)\n  %405 = inttoptr i64 %399 to i64*\n  %406 = getelementptr i64, i64* %405, i32 1\n  %407 = load i64, i64* %406\n; # (cadr Y)\n  %408 = inttoptr i64 %400 to i64*\n  %409 = getelementptr i64, i64* %408, i32 1\n  %410 = load i64, i64* %409\n  %411 = inttoptr i64 %410 to i64*\n  %412 = load i64, i64* %411\n  %413 = inttoptr i64 %407 to i64*\n  store i64 %412, i64* %413\n; # (cdr Y)\n  %414 = inttoptr i64 %400 to i64*\n  %415 = getelementptr i64, i64* %414, i32 1\n  %416 = load i64, i64* %415\n; # (cddr Y)\n  %417 = inttoptr i64 %400 to i64*\n  %418 = getelementptr i64, i64* %417, i32 1\n  %419 = load i64, i64* %418\n  %420 = inttoptr i64 %419 to i64*\n  %421 = getelementptr i64, i64* %420, i32 1\n  %422 = load i64, i64* %421\n  %423 = inttoptr i64 %416 to i64*\n  store i64 %422, i64* %423\n; # (cdr Y)\n  %424 = inttoptr i64 %400 to i64*\n  %425 = getelementptr i64, i64* %424, i32 1\n  %426 = load i64, i64* %425\n; # (cddr X)\n  %427 = inttoptr i64 %399 to i64*\n  %428 = getelementptr i64, i64* %427, i32 1\n  %429 = load i64, i64* %428\n  %430 = inttoptr i64 %429 to i64*\n  %431 = getelementptr i64, i64* %430, i32 1\n  %432 = load i64, i64* %431\n  %433 = inttoptr i64 %426 to i64*\n  %434 = getelementptr i64, i64* %433, i32 1\n  store i64 %432, i64* %434\n; # (cdr X)\n  %435 = inttoptr i64 %399 to i64*\n  %436 = getelementptr i64, i64* %435, i32 1\n  %437 = load i64, i64* %436\n  %438 = inttoptr i64 %437 to i64*\n  %439 = getelementptr i64, i64* %438, i32 1\n  store i64 %400, i64* %439\n  br label %$53\n$53:\n  %440 = phi i64 [%391, %$51], [%396, %$52] ; # Var\n  %441 = phi i64 [%392, %$51], [%397, %$52] ; # Key\n  %442 = phi i64 [%393, %$51], [%398, %$52] ; # Flg\n  %443 = phi i64 [%395, %$51], [%399, %$52] ; # X\n  %444 = phi i64 [%395, %$51], [%400, %$52] ; # Y\n  %445 = phi i64 [%395, %$51], [%400, %$52] ; # ->\n  br label %$9\n$9:\n  %446 = phi i64 [%232, %$32], [%440, %$53] ; # Var\n  %447 = phi i64 [%233, %$32], [%441, %$53] ; # Key\n  %448 = phi i64 [%234, %$32], [%442, %$53] ; # Flg\n  %449 = phi i64 [%235, %$32], [%443, %$53] ; # X\n  %450 = phi i64 [%236, %$32], [%444, %$53] ; # Y\n  %451 = phi i64 [%237, %$32], [%445, %$53] ; # ->\n  br label %$5\n$7:\n  %452 = phi i64 [%19, %$8], [%77, %$18], [%141, %$25], [%284, %$39], [%348, %$46] ; # Var\n  %453 = phi i64 [%20, %$8], [%78, %$18], [%142, %$25], [%285, %$39], [%349, %$46] ; # Key\n  %454 = phi i64 [%21, %$8], [%79, %$18], [%143, %$25], [%286, %$39], [%350, %$46] ; # Flg\n  %455 = phi i64 [%22, %$8], [%80, %$18], [%144, %$25], [%287, %$39], [%351, %$46] ; # X\n  %456 = phi i64 [%22, %$8], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$25], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$39], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$46] ; # ->\n  br label %$4\n$3:\n  %457 = phi i64 [%0, %$1] ; # Var\n  %458 = phi i64 [%1, %$1] ; # Key\n  %459 = phi i64 [%2, %$1] ; # Flg\n  %460 = phi i64 [%4, %$1] ; # X\n; # (set Var (cons Key $Nil))\n; # (cons Key $Nil)\n  %461 = call i64 @cons(i64 %458, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %462 = inttoptr i64 %457 to i64*\n  store i64 %461, i64* %462\n  br label %$4\n$4:\n  %463 = phi i64 [%452, %$7], [%457, %$3] ; # Var\n  %464 = phi i64 [%453, %$7], [%458, %$3] ; # Key\n  %465 = phi i64 [%454, %$7], [%459, %$3] ; # Flg\n  %466 = phi i64 [%455, %$7], [%460, %$3] ; # X\n  %467 = phi i64 [%456, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %467\n}\n\ndefine i64 @idxGet(i64, i64) align 8 {\n$1:\n; # (let X (val Var) (cond ((nil? Key) (while (pair (cadr X)) (setq X...\n; # (val Var)\n  %2 = inttoptr i64 %0 to i64*\n  %3 = load i64, i64* %2\n; # (cond ((nil? Key) (while (pair (cadr X)) (setq X @)) X) ((t? Key)...\n; # (nil? Key)\n  %4 = icmp eq i64 %1, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %4, label %$4, label %$3\n$4:\n  %5 = phi i64 [%0, %$1] ; # Var\n  %6 = phi i64 [%1, %$1] ; # Key\n  %7 = phi i64 [%3, %$1] ; # X\n; # (while (pair (cadr X)) (setq X @))\n  br label %$5\n$5:\n  %8 = phi i64 [%5, %$4], [%18, %$6] ; # Var\n  %9 = phi i64 [%6, %$4], [%19, %$6] ; # Key\n  %10 = phi i64 [%7, %$4], [%15, %$6] ; # X\n; # (cadr X)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (pair (cadr X))\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$6, label %$7\n$6:\n  %18 = phi i64 [%8, %$5] ; # Var\n  %19 = phi i64 [%9, %$5] ; # Key\n  %20 = phi i64 [%10, %$5] ; # X\n  br label %$5\n$7:\n  %21 = phi i64 [%8, %$5] ; # Var\n  %22 = phi i64 [%9, %$5] ; # Key\n  %23 = phi i64 [%10, %$5] ; # X\n  br label %$2\n$3:\n  %24 = phi i64 [%0, %$1] ; # Var\n  %25 = phi i64 [%1, %$1] ; # Key\n  %26 = phi i64 [%3, %$1] ; # X\n; # (t? Key)\n  %27 = icmp eq i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %27, label %$9, label %$8\n$9:\n  %28 = phi i64 [%24, %$3] ; # Var\n  %29 = phi i64 [%25, %$3] ; # Key\n  %30 = phi i64 [%26, %$3] ; # X\n; # (while (pair (cddr X)) (setq X @))\n  br label %$10\n$10:\n  %31 = phi i64 [%28, %$9], [%42, %$11] ; # Var\n  %32 = phi i64 [%29, %$9], [%43, %$11] ; # Key\n  %33 = phi i64 [%30, %$9], [%39, %$11] ; # X\n; # (cddr X)\n  %34 = inttoptr i64 %33 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n  %37 = inttoptr i64 %36 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n; # (pair (cddr X))\n  %40 = and i64 %39, 15\n  %41 = icmp eq i64 %40, 0\n  br i1 %41, label %$11, label %$12\n$11:\n  %42 = phi i64 [%31, %$10] ; # Var\n  %43 = phi i64 [%32, %$10] ; # Key\n  %44 = phi i64 [%33, %$10] ; # X\n  br label %$10\n$12:\n  %45 = phi i64 [%31, %$10] ; # Var\n  %46 = phi i64 [%32, %$10] ; # Key\n  %47 = phi i64 [%33, %$10] ; # X\n  br label %$2\n$8:\n  %48 = phi i64 [%24, %$3] ; # Var\n  %49 = phi i64 [%25, %$3] ; # Key\n  %50 = phi i64 [%26, %$3] ; # X\n; # (loop (? (atom X) $Nil) (? (=0 (compare (car X) Key)) X) (let Y (...\n  br label %$13\n$13:\n  %51 = phi i64 [%48, %$8], [%89, %$21] ; # Var\n  %52 = phi i64 [%49, %$8], [%90, %$21] ; # Key\n  %53 = phi i64 [%50, %$8], [%93, %$21] ; # X\n; # (? (atom X) $Nil)\n; # (atom X)\n  %54 = and i64 %53, 15\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$16, label %$14\n$16:\n  %56 = phi i64 [%51, %$13] ; # Var\n  %57 = phi i64 [%52, %$13] ; # Key\n  %58 = phi i64 [%53, %$13] ; # X\n  br label %$15\n$14:\n  %59 = phi i64 [%51, %$13] ; # Var\n  %60 = phi i64 [%52, %$13] ; # Key\n  %61 = phi i64 [%53, %$13] ; # X\n; # (? (=0 (compare (car X) Key)) X)\n; # (car X)\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (compare (car X) Key)\n  %64 = call i64 @compare(i64 %63, i64 %60)\n; # (=0 (compare (car X) Key))\n  %65 = icmp eq i64 %64, 0\n  br i1 %65, label %$18, label %$17\n$18:\n  %66 = phi i64 [%59, %$14] ; # Var\n  %67 = phi i64 [%60, %$14] ; # Key\n  %68 = phi i64 [%61, %$14] ; # X\n  br label %$15\n$17:\n  %69 = phi i64 [%59, %$14] ; # Var\n  %70 = phi i64 [%60, %$14] ; # Key\n  %71 = phi i64 [%61, %$14] ; # X\n; # (let Y (cdr X) (setq X (if (lt0 @) (cdr Y) (car Y))))\n; # (cdr X)\n  %72 = inttoptr i64 %71 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  %74 = load i64, i64* %73\n; # (if (lt0 @) (cdr Y) (car Y))\n; # (lt0 @)\n  %75 = icmp slt i64 %64, 0\n  br i1 %75, label %$19, label %$20\n$19:\n  %76 = phi i64 [%69, %$17] ; # Var\n  %77 = phi i64 [%70, %$17] ; # Key\n  %78 = phi i64 [%71, %$17] ; # X\n  %79 = phi i64 [%74, %$17] ; # Y\n; # (cdr Y)\n  %80 = inttoptr i64 %79 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  %82 = load i64, i64* %81\n  br label %$21\n$20:\n  %83 = phi i64 [%69, %$17] ; # Var\n  %84 = phi i64 [%70, %$17] ; # Key\n  %85 = phi i64 [%71, %$17] ; # X\n  %86 = phi i64 [%74, %$17] ; # Y\n; # (car Y)\n  %87 = inttoptr i64 %86 to i64*\n  %88 = load i64, i64* %87\n  br label %$21\n$21:\n  %89 = phi i64 [%76, %$19], [%83, %$20] ; # Var\n  %90 = phi i64 [%77, %$19], [%84, %$20] ; # Key\n  %91 = phi i64 [%78, %$19], [%85, %$20] ; # X\n  %92 = phi i64 [%79, %$19], [%86, %$20] ; # Y\n  %93 = phi i64 [%82, %$19], [%88, %$20] ; # ->\n  br label %$13\n$15:\n  %94 = phi i64 [%56, %$16], [%66, %$18] ; # Var\n  %95 = phi i64 [%57, %$16], [%67, %$18] ; # Key\n  %96 = phi i64 [%58, %$16], [%68, %$18] ; # X\n  %97 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16], [%68, %$18] ; # ->\n  br label %$2\n$2:\n  %98 = phi i64 [%21, %$7], [%45, %$12], [%94, %$15] ; # Var\n  %99 = phi i64 [%22, %$7], [%46, %$12], [%95, %$15] ; # Key\n  %100 = phi i64 [%23, %$7], [%47, %$12], [%96, %$15] ; # X\n  %101 = phi i64 [%23, %$7], [%47, %$12], [%97, %$15] ; # ->\n  ret i64 %101\n}\n\ndefine i64 @idxDel(i64, i64) align 8 {\n$1:\n; # (loop (let X (val Var) (? (atom X) $Nil) (let Y (cdr X) (let I (c...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%179, %$21] ; # Var\n  %3 = phi i64 [%1, %$1], [%180, %$21] ; # Key\n; # (let X (val Var) (? (atom X) $Nil) (let Y (cdr X) (let I (compare...\n; # (val Var)\n  %4 = inttoptr i64 %2 to i64*\n  %5 = load i64, i64* %4\n; # (? (atom X) $Nil)\n; # (atom X)\n  %6 = and i64 %5, 15\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$3\n$5:\n  %8 = phi i64 [%2, %$2] ; # Var\n  %9 = phi i64 [%3, %$2] ; # Key\n  %10 = phi i64 [%5, %$2] ; # X\n  br label %$4\n$3:\n  %11 = phi i64 [%2, %$2] ; # Var\n  %12 = phi i64 [%3, %$2] ; # Key\n  %13 = phi i64 [%5, %$2] ; # X\n; # (let Y (cdr X) (let I (compare (car X) Key) (? (=0 I) (cond ((ato...\n; # (cdr X)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n; # (let I (compare (car X) Key) (? (=0 I) (cond ((atom (car Y)) (set...\n; # (car X)\n  %17 = inttoptr i64 %13 to i64*\n  %18 = load i64, i64* %17\n; # (compare (car X) Key)\n  %19 = call i64 @compare(i64 %18, i64 %12)\n; # (? (=0 I) (cond ((atom (car Y)) (set Var (cdr Y))) ((atom (cdr Y)...\n; # (=0 I)\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$6\n$7:\n  %21 = phi i64 [%11, %$3] ; # Var\n  %22 = phi i64 [%12, %$3] ; # Key\n  %23 = phi i64 [%13, %$3] ; # X\n  %24 = phi i64 [%16, %$3] ; # Y\n  %25 = phi i64 [%19, %$3] ; # I\n; # (cond ((atom (car Y)) (set Var (cdr Y))) ((atom (cdr Y)) (set Var...\n; # (car Y)\n  %26 = inttoptr i64 %24 to i64*\n  %27 = load i64, i64* %26\n; # (atom (car Y))\n  %28 = and i64 %27, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$10, label %$9\n$10:\n  %30 = phi i64 [%21, %$7] ; # Var\n  %31 = phi i64 [%22, %$7] ; # Key\n  %32 = phi i64 [%23, %$7] ; # X\n  %33 = phi i64 [%24, %$7] ; # Y\n  %34 = phi i64 [%25, %$7] ; # I\n; # (set Var (cdr Y))\n; # (cdr Y)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n  %38 = inttoptr i64 %30 to i64*\n  store i64 %37, i64* %38\n  br label %$8\n$9:\n  %39 = phi i64 [%21, %$7] ; # Var\n  %40 = phi i64 [%22, %$7] ; # Key\n  %41 = phi i64 [%23, %$7] ; # X\n  %42 = phi i64 [%24, %$7] ; # Y\n  %43 = phi i64 [%25, %$7] ; # I\n; # (cdr Y)\n  %44 = inttoptr i64 %42 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n; # (atom (cdr Y))\n  %47 = and i64 %46, 15\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$12, label %$11\n$12:\n  %49 = phi i64 [%39, %$9] ; # Var\n  %50 = phi i64 [%40, %$9] ; # Key\n  %51 = phi i64 [%41, %$9] ; # X\n  %52 = phi i64 [%42, %$9] ; # Y\n  %53 = phi i64 [%43, %$9] ; # I\n; # (set Var (car Y))\n; # (car Y)\n  %54 = inttoptr i64 %52 to i64*\n  %55 = load i64, i64* %54\n  %56 = inttoptr i64 %49 to i64*\n  store i64 %55, i64* %56\n  br label %$8\n$11:\n  %57 = phi i64 [%39, %$9] ; # Var\n  %58 = phi i64 [%40, %$9] ; # Key\n  %59 = phi i64 [%41, %$9] ; # X\n  %60 = phi i64 [%42, %$9] ; # Y\n  %61 = phi i64 [%43, %$9] ; # I\n; # (let Z (cdr (setq Y (cdr Y))) (if (atom (car Z)) (set X (car Y) 2...\n; # (cdr Y)\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n; # (cdr (setq Y (cdr Y)))\n  %65 = inttoptr i64 %64 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n; # (if (atom (car Z)) (set X (car Y) 2 (cdr X) (cdr Z)) (let L (cdr ...\n; # (car Z)\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n; # (atom (car Z))\n  %70 = and i64 %69, 15\n  %71 = icmp ne i64 %70, 0\n  br i1 %71, label %$13, label %$14\n$13:\n  %72 = phi i64 [%57, %$11] ; # Var\n  %73 = phi i64 [%58, %$11] ; # Key\n  %74 = phi i64 [%59, %$11] ; # X\n  %75 = phi i64 [%64, %$11] ; # Y\n  %76 = phi i64 [%61, %$11] ; # I\n  %77 = phi i64 [%67, %$11] ; # Z\n; # (set X (car Y) 2 (cdr X) (cdr Z))\n; # (car Y)\n  %78 = inttoptr i64 %75 to i64*\n  %79 = load i64, i64* %78\n  %80 = inttoptr i64 %74 to i64*\n  store i64 %79, i64* %80\n; # (cdr X)\n  %81 = inttoptr i64 %74 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n; # (cdr Z)\n  %84 = inttoptr i64 %77 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 %83 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  store i64 %86, i64* %88\n  br label %$15\n$14:\n  %89 = phi i64 [%57, %$11] ; # Var\n  %90 = phi i64 [%58, %$11] ; # Key\n  %91 = phi i64 [%59, %$11] ; # X\n  %92 = phi i64 [%64, %$11] ; # Y\n  %93 = phi i64 [%61, %$11] ; # I\n  %94 = phi i64 [%67, %$11] ; # Z\n; # (let L (cdr (setq Z (car Z))) (loop (? (atom (car L))) (setq Y Z ...\n; # (car Z)\n  %95 = inttoptr i64 %94 to i64*\n  %96 = load i64, i64* %95\n; # (cdr (setq Z (car Z)))\n  %97 = inttoptr i64 %96 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  %99 = load i64, i64* %98\n; # (loop (? (atom (car L))) (setq Y Z Z (car L) L (cdr Z)))\n  br label %$16\n$16:\n  %100 = phi i64 [%89, %$14], [%111, %$17] ; # Var\n  %101 = phi i64 [%90, %$14], [%112, %$17] ; # Key\n  %102 = phi i64 [%91, %$14], [%113, %$17] ; # X\n  %103 = phi i64 [%92, %$14], [%116, %$17] ; # Y\n  %104 = phi i64 [%93, %$14], [%115, %$17] ; # I\n  %105 = phi i64 [%96, %$14], [%119, %$17] ; # Z\n  %106 = phi i64 [%99, %$14], [%122, %$17] ; # L\n; # (? (atom (car L)))\n; # (car L)\n  %107 = inttoptr i64 %106 to i64*\n  %108 = load i64, i64* %107\n; # (atom (car L))\n  %109 = and i64 %108, 15\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$18, label %$17\n$17:\n  %111 = phi i64 [%100, %$16] ; # Var\n  %112 = phi i64 [%101, %$16] ; # Key\n  %113 = phi i64 [%102, %$16] ; # X\n  %114 = phi i64 [%103, %$16] ; # Y\n  %115 = phi i64 [%104, %$16] ; # I\n  %116 = phi i64 [%105, %$16] ; # Z\n  %117 = phi i64 [%106, %$16] ; # L\n; # (car L)\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n; # (cdr Z)\n  %120 = inttoptr i64 %119 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  %122 = load i64, i64* %121\n  br label %$16\n$18:\n  %123 = phi i64 [%100, %$16] ; # Var\n  %124 = phi i64 [%101, %$16] ; # Key\n  %125 = phi i64 [%102, %$16] ; # X\n  %126 = phi i64 [%103, %$16] ; # Y\n  %127 = phi i64 [%104, %$16] ; # I\n  %128 = phi i64 [%105, %$16] ; # Z\n  %129 = phi i64 [%106, %$16] ; # L\n  %130 = phi i64 [0, %$16] ; # ->\n; # (set X (car Z) (cdr Y) (cdr L))\n; # (car Z)\n  %131 = inttoptr i64 %128 to i64*\n  %132 = load i64, i64* %131\n  %133 = inttoptr i64 %125 to i64*\n  store i64 %132, i64* %133\n; # (cdr Y)\n  %134 = inttoptr i64 %126 to i64*\n  %135 = getelementptr i64, i64* %134, i32 1\n  %136 = load i64, i64* %135\n; # (cdr L)\n  %137 = inttoptr i64 %129 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = inttoptr i64 %136 to i64*\n  store i64 %139, i64* %140\n  br label %$15\n$15:\n  %141 = phi i64 [%72, %$13], [%123, %$18] ; # Var\n  %142 = phi i64 [%73, %$13], [%124, %$18] ; # Key\n  %143 = phi i64 [%74, %$13], [%125, %$18] ; # X\n  %144 = phi i64 [%75, %$13], [%126, %$18] ; # Y\n  %145 = phi i64 [%76, %$13], [%127, %$18] ; # I\n  %146 = phi i64 [%77, %$13], [%128, %$18] ; # Z\n  %147 = phi i64 [%86, %$13], [%139, %$18] ; # ->\n  br label %$8\n$8:\n  %148 = phi i64 [%30, %$10], [%49, %$12], [%141, %$15] ; # Var\n  %149 = phi i64 [%31, %$10], [%50, %$12], [%142, %$15] ; # Key\n  %150 = phi i64 [%32, %$10], [%51, %$12], [%143, %$15] ; # X\n  %151 = phi i64 [%33, %$10], [%52, %$12], [%144, %$15] ; # Y\n  %152 = phi i64 [%34, %$10], [%53, %$12], [%145, %$15] ; # I\n  %153 = phi i64 [%37, %$10], [%55, %$12], [%147, %$15] ; # ->\n  br label %$4\n$6:\n  %154 = phi i64 [%11, %$3] ; # Var\n  %155 = phi i64 [%12, %$3] ; # Key\n  %156 = phi i64 [%13, %$3] ; # X\n  %157 = phi i64 [%16, %$3] ; # Y\n  %158 = phi i64 [%19, %$3] ; # I\n; # (? (atom Y) $Nil)\n; # (atom Y)\n  %159 = and i64 %157, 15\n  %160 = icmp ne i64 %159, 0\n  br i1 %160, label %$20, label %$19\n$20:\n  %161 = phi i64 [%154, %$6] ; # Var\n  %162 = phi i64 [%155, %$6] ; # Key\n  %163 = phi i64 [%156, %$6] ; # X\n  %164 = phi i64 [%157, %$6] ; # Y\n  %165 = phi i64 [%158, %$6] ; # I\n  br label %$4\n$19:\n  %166 = phi i64 [%154, %$6] ; # Var\n  %167 = phi i64 [%155, %$6] ; # Key\n  %168 = phi i64 [%156, %$6] ; # X\n  %169 = phi i64 [%157, %$6] ; # Y\n  %170 = phi i64 [%158, %$6] ; # I\n; # (and (lt0 I) (setq Var (ofs Var 1)))\n; # (lt0 I)\n  %171 = icmp slt i64 %170, 0\n  br i1 %171, label %$22, label %$21\n$22:\n  %172 = phi i64 [%169, %$19] ; # Var\n  %173 = phi i64 [%167, %$19] ; # Key\n  %174 = phi i64 [%168, %$19] ; # X\n  %175 = phi i64 [%169, %$19] ; # Y\n  %176 = phi i64 [%170, %$19] ; # I\n; # (ofs Var 1)\n  %177 = add i64 %172, 8\n  %178 = icmp ne i64 %177, 0\n  br label %$21\n$21:\n  %179 = phi i64 [%169, %$19], [%177, %$22] ; # Var\n  %180 = phi i64 [%167, %$19], [%173, %$22] ; # Key\n  %181 = phi i64 [%168, %$19], [%174, %$22] ; # X\n  %182 = phi i64 [%169, %$19], [%175, %$22] ; # Y\n  %183 = phi i64 [%170, %$19], [%176, %$22] ; # I\n  %184 = phi i1 [0, %$19], [%178, %$22] ; # ->\n  br label %$2\n$4:\n  %185 = phi i64 [%8, %$5], [%148, %$8], [%161, %$20] ; # Var\n  %186 = phi i64 [%9, %$5], [%149, %$8], [%162, %$20] ; # Key\n  %187 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%150, %$8], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$20] ; # ->\n  ret i64 %187\n}\n\ndefine i64 @_Idx(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Var (needChkVar Exe (eval (++ X)))) (if (atom X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needChkVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = icmp uge i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$8] ; # X\n  %29 = phi i64 [%26, %$8] ; # Exe\n  %30 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %28\n  br label %$9\n$9:\n  %31 = phi i64 [%25, %$8], [%28, %$10] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # Exe\n  %33 = phi i1 [0, %$8], [%30, %$10] ; # ->\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%31, %$9] ; # X\n  %35 = phi i64 [%32, %$9] ; # Exe\n  call void @protErr(i64 %35, i64 %34)\n  unreachable\n$12:\n  %36 = phi i64 [%31, %$9] ; # X\n  %37 = phi i64 [%32, %$9] ; # Exe\n; # (if (atom X) (consTree (val Var) $Nil) (save Var (let Key (save (...\n; # (atom X)\n  %38 = and i64 %6, 15\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$13, label %$14\n$13:\n  %40 = phi i64 [%0, %$12] ; # Exe\n  %41 = phi i64 [%6, %$12] ; # X\n  %42 = phi i64 [%25, %$12] ; # Var\n; # (val Var)\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (consTree (val Var) $Nil)\n  %45 = call i64 @consTree(i64 %44, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$15\n$14:\n  %46 = phi i64 [%0, %$12] ; # Exe\n  %47 = phi i64 [%6, %$12] ; # X\n  %48 = phi i64 [%25, %$12] ; # Var\n; # (save Var (let Key (save (eval (++ X))) (cond ((atom X) (idxGet V...\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %50 = load i64, i64* %49\n  %51 = alloca i64, i64 2, align 16\n  %52 = ptrtoint i64* %51 to i64\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = add i64 %52, 8\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %50, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %52, i64* %56\n; # (let Key (save (eval (++ X))) (cond ((atom X) (idxGet Var Key)) (...\n; # (++ X)\n  %57 = inttoptr i64 %47 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  %60 = load i64, i64* %57\n; # (eval (++ X))\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$18, label %$17\n$18:\n  %63 = phi i64 [%60, %$14] ; # X\n  br label %$16\n$17:\n  %64 = phi i64 [%60, %$14] ; # X\n  %65 = and i64 %64, 8\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$20, label %$19\n$20:\n  %67 = phi i64 [%64, %$17] ; # X\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n  br label %$16\n$19:\n  %70 = phi i64 [%64, %$17] ; # X\n  %71 = call i64 @evList(i64 %70)\n  br label %$16\n$16:\n  %72 = phi i64 [%63, %$18], [%67, %$20], [%70, %$19] ; # X\n  %73 = phi i64 [%63, %$18], [%69, %$20], [%71, %$19] ; # ->\n; # (save (eval (++ X)))\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %75 = load i64, i64* %74\n  %76 = alloca i64, i64 2, align 16\n  %77 = ptrtoint i64* %76 to i64\n  %78 = inttoptr i64 %77 to i64*\n  store i64 %73, i64* %78\n  %79 = add i64 %77, 8\n  %80 = inttoptr i64 %79 to i64*\n  store i64 %75, i64* %80\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %77, i64* %81\n; # (cond ((atom X) (idxGet Var Key)) ((nil? (eval (car X))) (idxDel ...\n; # (atom X)\n  %82 = and i64 %59, 15\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$23, label %$22\n$23:\n  %84 = phi i64 [%46, %$16] ; # Exe\n  %85 = phi i64 [%59, %$16] ; # X\n  %86 = phi i64 [%48, %$16] ; # Var\n  %87 = phi i64 [%73, %$16] ; # Key\n; # (idxGet Var Key)\n  %88 = call i64 @idxGet(i64 %86, i64 %87)\n  br label %$21\n$22:\n  %89 = phi i64 [%46, %$16] ; # Exe\n  %90 = phi i64 [%59, %$16] ; # X\n  %91 = phi i64 [%48, %$16] ; # Var\n  %92 = phi i64 [%73, %$16] ; # Key\n; # (car X)\n  %93 = inttoptr i64 %90 to i64*\n  %94 = load i64, i64* %93\n; # (eval (car X))\n  %95 = and i64 %94, 6\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$26, label %$25\n$26:\n  %97 = phi i64 [%94, %$22] ; # X\n  br label %$24\n$25:\n  %98 = phi i64 [%94, %$22] ; # X\n  %99 = and i64 %98, 8\n  %100 = icmp ne i64 %99, 0\n  br i1 %100, label %$28, label %$27\n$28:\n  %101 = phi i64 [%98, %$25] ; # X\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n  br label %$24\n$27:\n  %104 = phi i64 [%98, %$25] ; # X\n  %105 = call i64 @evList(i64 %104)\n  br label %$24\n$24:\n  %106 = phi i64 [%97, %$26], [%101, %$28], [%104, %$27] ; # X\n  %107 = phi i64 [%97, %$26], [%103, %$28], [%105, %$27] ; # ->\n; # (nil? (eval (car X)))\n  %108 = icmp eq i64 %107, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %108, label %$30, label %$29\n$30:\n  %109 = phi i64 [%89, %$24] ; # Exe\n  %110 = phi i64 [%90, %$24] ; # X\n  %111 = phi i64 [%91, %$24] ; # Var\n  %112 = phi i64 [%92, %$24] ; # Key\n; # (idxDel Var Key)\n  %113 = call i64 @idxDel(i64 %111, i64 %112)\n  br label %$21\n$29:\n  %114 = phi i64 [%89, %$24] ; # Exe\n  %115 = phi i64 [%90, %$24] ; # X\n  %116 = phi i64 [%91, %$24] ; # Var\n  %117 = phi i64 [%92, %$24] ; # Key\n; # (idxPut Var Key @)\n  %118 = call i64 @idxPut(i64 %116, i64 %117, i64 %107)\n  br label %$21\n$21:\n  %119 = phi i64 [%84, %$23], [%109, %$30], [%114, %$29] ; # Exe\n  %120 = phi i64 [%85, %$23], [%110, %$30], [%115, %$29] ; # X\n  %121 = phi i64 [%86, %$23], [%111, %$30], [%116, %$29] ; # Var\n  %122 = phi i64 [%87, %$23], [%112, %$30], [%117, %$29] ; # Key\n  %123 = phi i64 [%88, %$23], [%113, %$30], [%118, %$29] ; # ->\n; # drop\n  %124 = inttoptr i64 %52 to i64*\n  %125 = getelementptr i64, i64* %124, i32 1\n  %126 = load i64, i64* %125\n  %127 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %126, i64* %127\n  br label %$15\n$15:\n  %128 = phi i64 [%40, %$13], [%119, %$21] ; # Exe\n  %129 = phi i64 [%41, %$13], [%120, %$21] ; # X\n  %130 = phi i64 [%42, %$13], [%121, %$21] ; # Var\n  %131 = phi i64 [%45, %$13], [%123, %$21] ; # ->\n  ret i64 %131\n}\n\ndefine i64 @_Lup(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) P (save (eval (++ X)))) (if (atom P) P (let Key...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (if (atom P) P (let Key (eval (++ X)) (if (atom X) (loop (let Y (...\n; # (atom P)\n  %29 = and i64 %20, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i64 [%0, %$2] ; # Exe\n  %32 = phi i64 [%6, %$2] ; # X\n  %33 = phi i64 [%20, %$2] ; # P\n  br label %$9\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%6, %$2] ; # X\n  %36 = phi i64 [%20, %$2] ; # P\n; # (let Key (eval (++ X)) (if (atom X) (loop (let Y (car P) (cond ((...\n; # (++ X)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = load i64, i64* %37\n; # (eval (++ X))\n  %41 = and i64 %40, 6\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$12, label %$11\n$12:\n  %43 = phi i64 [%40, %$8] ; # X\n  br label %$10\n$11:\n  %44 = phi i64 [%40, %$8] ; # X\n  %45 = and i64 %44, 8\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$14, label %$13\n$14:\n  %47 = phi i64 [%44, %$11] ; # X\n  %48 = inttoptr i64 %47 to i64*\n  %49 = load i64, i64* %48\n  br label %$10\n$13:\n  %50 = phi i64 [%44, %$11] ; # X\n  %51 = call i64 @evList(i64 %50)\n  br label %$10\n$10:\n  %52 = phi i64 [%43, %$12], [%47, %$14], [%50, %$13] ; # X\n  %53 = phi i64 [%43, %$12], [%49, %$14], [%51, %$13] ; # ->\n; # (if (atom X) (loop (let Y (car P) (cond ((t? Y) (setq P (cadr P))...\n; # (atom X)\n  %54 = and i64 %39, 15\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$15, label %$16\n$15:\n  %56 = phi i64 [%34, %$10] ; # Exe\n  %57 = phi i64 [%39, %$10] ; # X\n  %58 = phi i64 [%36, %$10] ; # P\n  %59 = phi i64 [%53, %$10] ; # Key\n; # (loop (let Y (car P) (cond ((t? Y) (setq P (cadr P))) ((atom Y) (...\n  br label %$18\n$18:\n  %60 = phi i64 [%56, %$15], [%153, %$30] ; # Exe\n  %61 = phi i64 [%57, %$15], [%154, %$30] ; # X\n  %62 = phi i64 [%58, %$15], [%155, %$30] ; # P\n  %63 = phi i64 [%59, %$15], [%156, %$30] ; # Key\n; # (let Y (car P) (cond ((t? Y) (setq P (cadr P))) ((atom Y) (setq P...\n; # (car P)\n  %64 = inttoptr i64 %62 to i64*\n  %65 = load i64, i64* %64\n; # (cond ((t? Y) (setq P (cadr P))) ((atom Y) (setq P (cddr P))) (T ...\n; # (t? Y)\n  %66 = icmp eq i64 %65, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %66, label %$21, label %$20\n$21:\n  %67 = phi i64 [%60, %$18] ; # Exe\n  %68 = phi i64 [%61, %$18] ; # X\n  %69 = phi i64 [%62, %$18] ; # P\n  %70 = phi i64 [%63, %$18] ; # Key\n  %71 = phi i64 [%65, %$18] ; # Y\n; # (cadr P)\n  %72 = inttoptr i64 %69 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  %74 = load i64, i64* %73\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  br label %$19\n$20:\n  %77 = phi i64 [%60, %$18] ; # Exe\n  %78 = phi i64 [%61, %$18] ; # X\n  %79 = phi i64 [%62, %$18] ; # P\n  %80 = phi i64 [%63, %$18] ; # Key\n  %81 = phi i64 [%65, %$18] ; # Y\n; # (atom Y)\n  %82 = and i64 %81, 15\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$23, label %$22\n$23:\n  %84 = phi i64 [%77, %$20] ; # Exe\n  %85 = phi i64 [%78, %$20] ; # X\n  %86 = phi i64 [%79, %$20] ; # P\n  %87 = phi i64 [%80, %$20] ; # Key\n  %88 = phi i64 [%81, %$20] ; # Y\n; # (cddr P)\n  %89 = inttoptr i64 %86 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 %91 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  %94 = load i64, i64* %93\n  br label %$19\n$22:\n  %95 = phi i64 [%77, %$20] ; # Exe\n  %96 = phi i64 [%78, %$20] ; # X\n  %97 = phi i64 [%79, %$20] ; # P\n  %98 = phi i64 [%80, %$20] ; # Key\n  %99 = phi i64 [%81, %$20] ; # Y\n; # (? (=0 (compare (car Y) Key)) (car P))\n; # (car Y)\n  %100 = inttoptr i64 %99 to i64*\n  %101 = load i64, i64* %100\n; # (compare (car Y) Key)\n  %102 = call i64 @compare(i64 %101, i64 %98)\n; # (=0 (compare (car Y) Key))\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$26, label %$24\n$26:\n  %104 = phi i64 [%95, %$22] ; # Exe\n  %105 = phi i64 [%96, %$22] ; # X\n  %106 = phi i64 [%97, %$22] ; # P\n  %107 = phi i64 [%98, %$22] ; # Key\n  %108 = phi i64 [%99, %$22] ; # Y\n; # (car P)\n  %109 = inttoptr i64 %106 to i64*\n  %110 = load i64, i64* %109\n  br label %$25\n$24:\n  %111 = phi i64 [%95, %$22] ; # Exe\n  %112 = phi i64 [%96, %$22] ; # X\n  %113 = phi i64 [%97, %$22] ; # P\n  %114 = phi i64 [%98, %$22] ; # Key\n  %115 = phi i64 [%99, %$22] ; # Y\n; # (cdr P)\n  %116 = inttoptr i64 %113 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n; # (if (lt0 @) (cdr P) (car P))\n; # (lt0 @)\n  %119 = icmp slt i64 %102, 0\n  br i1 %119, label %$27, label %$28\n$27:\n  %120 = phi i64 [%111, %$24] ; # Exe\n  %121 = phi i64 [%112, %$24] ; # X\n  %122 = phi i64 [%118, %$24] ; # P\n  %123 = phi i64 [%114, %$24] ; # Key\n  %124 = phi i64 [%115, %$24] ; # Y\n; # (cdr P)\n  %125 = inttoptr i64 %122 to i64*\n  %126 = getelementptr i64, i64* %125, i32 1\n  %127 = load i64, i64* %126\n  br label %$29\n$28:\n  %128 = phi i64 [%111, %$24] ; # Exe\n  %129 = phi i64 [%112, %$24] ; # X\n  %130 = phi i64 [%118, %$24] ; # P\n  %131 = phi i64 [%114, %$24] ; # Key\n  %132 = phi i64 [%115, %$24] ; # Y\n; # (car P)\n  %133 = inttoptr i64 %130 to i64*\n  %134 = load i64, i64* %133\n  br label %$29\n$29:\n  %135 = phi i64 [%120, %$27], [%128, %$28] ; # Exe\n  %136 = phi i64 [%121, %$27], [%129, %$28] ; # X\n  %137 = phi i64 [%122, %$27], [%130, %$28] ; # P\n  %138 = phi i64 [%123, %$27], [%131, %$28] ; # Key\n  %139 = phi i64 [%124, %$27], [%132, %$28] ; # Y\n  %140 = phi i64 [%127, %$27], [%134, %$28] ; # ->\n  br label %$19\n$19:\n  %141 = phi i64 [%67, %$21], [%84, %$23], [%135, %$29] ; # Exe\n  %142 = phi i64 [%68, %$21], [%85, %$23], [%136, %$29] ; # X\n  %143 = phi i64 [%76, %$21], [%94, %$23], [%140, %$29] ; # P\n  %144 = phi i64 [%70, %$21], [%87, %$23], [%138, %$29] ; # Key\n  %145 = phi i64 [%71, %$21], [%88, %$23], [%139, %$29] ; # Y\n  %146 = phi i64 [%76, %$21], [%94, %$23], [%140, %$29] ; # ->\n; # (? (atom P) $Nil)\n; # (atom P)\n  %147 = and i64 %143, 15\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$31, label %$30\n$31:\n  %149 = phi i64 [%141, %$19] ; # Exe\n  %150 = phi i64 [%142, %$19] ; # X\n  %151 = phi i64 [%143, %$19] ; # P\n  %152 = phi i64 [%144, %$19] ; # Key\n  br label %$25\n$30:\n  %153 = phi i64 [%141, %$19] ; # Exe\n  %154 = phi i64 [%142, %$19] ; # X\n  %155 = phi i64 [%143, %$19] ; # P\n  %156 = phi i64 [%144, %$19] ; # Key\n  br label %$18\n$25:\n  %157 = phi i64 [%104, %$26], [%149, %$31] ; # Exe\n  %158 = phi i64 [%105, %$26], [%150, %$31] ; # X\n  %159 = phi i64 [%106, %$26], [%151, %$31] ; # P\n  %160 = phi i64 [%107, %$26], [%152, %$31] ; # Key\n  %161 = phi i64 [%110, %$26], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$31] ; # ->\n  br label %$17\n$16:\n  %162 = phi i64 [%34, %$10] ; # Exe\n  %163 = phi i64 [%39, %$10] ; # X\n  %164 = phi i64 [%36, %$10] ; # P\n  %165 = phi i64 [%53, %$10] ; # Key\n; # (save Key)\n  %166 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %167 = load i64, i64* %166\n  %168 = alloca i64, i64 2, align 16\n  %169 = ptrtoint i64* %168 to i64\n  %170 = inttoptr i64 %169 to i64*\n  store i64 %165, i64* %170\n  %171 = add i64 %169, 8\n  %172 = inttoptr i64 %171 to i64*\n  store i64 %167, i64* %172\n  %173 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %169, i64* %173\n; # (let (Key2 (save (eval (car X))) Q (link (push NIL NIL)) Tos (lin...\n; # (car X)\n  %174 = inttoptr i64 %163 to i64*\n  %175 = load i64, i64* %174\n; # (eval (car X))\n  %176 = and i64 %175, 6\n  %177 = icmp ne i64 %176, 0\n  br i1 %177, label %$34, label %$33\n$34:\n  %178 = phi i64 [%175, %$16] ; # X\n  br label %$32\n$33:\n  %179 = phi i64 [%175, %$16] ; # X\n  %180 = and i64 %179, 8\n  %181 = icmp ne i64 %180, 0\n  br i1 %181, label %$36, label %$35\n$36:\n  %182 = phi i64 [%179, %$33] ; # X\n  %183 = inttoptr i64 %182 to i64*\n  %184 = load i64, i64* %183\n  br label %$32\n$35:\n  %185 = phi i64 [%179, %$33] ; # X\n  %186 = call i64 @evList(i64 %185)\n  br label %$32\n$32:\n  %187 = phi i64 [%178, %$34], [%182, %$36], [%185, %$35] ; # X\n  %188 = phi i64 [%178, %$34], [%184, %$36], [%186, %$35] ; # ->\n; # (save (eval (car X)))\n  %189 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %190 = load i64, i64* %189\n  %191 = alloca i64, i64 2, align 16\n  %192 = ptrtoint i64* %191 to i64\n  %193 = inttoptr i64 %192 to i64*\n  store i64 %188, i64* %193\n  %194 = add i64 %192, 8\n  %195 = inttoptr i64 %194 to i64*\n  store i64 %190, i64* %195\n  %196 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %192, i64* %196\n; # (push NIL NIL)\n  %197 = alloca i64, i64 2, align 16\n  %198 = ptrtoint i64* %197 to i64\n; # (link (push NIL NIL))\n  %199 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %200 = load i64, i64* %199\n  %201 = inttoptr i64 %198 to i64*\n  %202 = getelementptr i64, i64* %201, i32 1\n  store i64 %200, i64* %202\n  %203 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %198, i64* %203\n; # (push -ZERO NIL)\n  %204 = alloca i64, i64 2, align 16\n  %205 = ptrtoint i64* %204 to i64\n  %206 = inttoptr i64 %205 to i64*\n  store i64 10, i64* %206\n; # (link (push -ZERO NIL))\n  %207 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %208 = load i64, i64* %207\n  %209 = inttoptr i64 %205 to i64*\n  %210 = getelementptr i64, i64* %209, i32 1\n  store i64 %208, i64* %210\n  %211 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %205, i64* %211\n; # (loop (loop (let Y (cdr (setq X (cdr P))) (? (atom Y)) (let Z (ca...\n  br label %$37\n$37:\n  %212 = phi i64 [%162, %$32], [%486, %$53] ; # Exe\n  %213 = phi i64 [%163, %$32], [%487, %$53] ; # X\n  %214 = phi i64 [%164, %$32], [%488, %$53] ; # P\n  %215 = phi i64 [%165, %$32], [%489, %$53] ; # Key\n  %216 = phi i64 [%188, %$32], [%490, %$53] ; # Key2\n  %217 = phi i64 [%198, %$32], [%491, %$53] ; # Q\n  %218 = phi i64 [%205, %$32], [%492, %$53] ; # Tos\n  %219 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$32], [%493, %$53] ; # R\n; # (loop (let Y (cdr (setq X (cdr P))) (? (atom Y)) (let Z (car P) (...\n  br label %$38\n$38:\n  %220 = phi i64 [%212, %$37], [%285, %$44] ; # Exe\n  %221 = phi i64 [%213, %$37], [%286, %$44] ; # X\n  %222 = phi i64 [%214, %$37], [%293, %$44] ; # P\n  %223 = phi i64 [%215, %$37], [%288, %$44] ; # Key\n  %224 = phi i64 [%216, %$37], [%289, %$44] ; # Key2\n  %225 = phi i64 [%217, %$37], [%290, %$44] ; # Q\n  %226 = phi i64 [%218, %$37], [%291, %$44] ; # Tos\n  %227 = phi i64 [%219, %$37], [%292, %$44] ; # R\n; # (let Y (cdr (setq X (cdr P))) (? (atom Y)) (let Z (car P) (? (t? ...\n; # (cdr P)\n  %228 = inttoptr i64 %222 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n; # (cdr (setq X (cdr P)))\n  %231 = inttoptr i64 %230 to i64*\n  %232 = getelementptr i64, i64* %231, i32 1\n  %233 = load i64, i64* %232\n; # (? (atom Y))\n; # (atom Y)\n  %234 = and i64 %233, 15\n  %235 = icmp ne i64 %234, 0\n  br i1 %235, label %$40, label %$39\n$39:\n  %236 = phi i64 [%220, %$38] ; # Exe\n  %237 = phi i64 [%230, %$38] ; # X\n  %238 = phi i64 [%222, %$38] ; # P\n  %239 = phi i64 [%223, %$38] ; # Key\n  %240 = phi i64 [%224, %$38] ; # Key2\n  %241 = phi i64 [%225, %$38] ; # Q\n  %242 = phi i64 [%226, %$38] ; # Tos\n  %243 = phi i64 [%227, %$38] ; # R\n  %244 = phi i64 [%233, %$38] ; # Y\n; # (let Z (car P) (? (t? Z)) (? (and (pair Z) (gt0 (compare (car Z) ...\n; # (car P)\n  %245 = inttoptr i64 %238 to i64*\n  %246 = load i64, i64* %245\n; # (? (t? Z))\n; # (t? Z)\n  %247 = icmp eq i64 %246, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %247, label %$40, label %$41\n$41:\n  %248 = phi i64 [%236, %$39] ; # Exe\n  %249 = phi i64 [%237, %$39] ; # X\n  %250 = phi i64 [%238, %$39] ; # P\n  %251 = phi i64 [%239, %$39] ; # Key\n  %252 = phi i64 [%240, %$39] ; # Key2\n  %253 = phi i64 [%241, %$39] ; # Q\n  %254 = phi i64 [%242, %$39] ; # Tos\n  %255 = phi i64 [%243, %$39] ; # R\n  %256 = phi i64 [%244, %$39] ; # Y\n  %257 = phi i64 [%246, %$39] ; # Z\n; # (? (and (pair Z) (gt0 (compare (car Z) Key2))))\n; # (and (pair Z) (gt0 (compare (car Z) Key2)))\n; # (pair Z)\n  %258 = and i64 %257, 15\n  %259 = icmp eq i64 %258, 0\n  br i1 %259, label %$43, label %$42\n$43:\n  %260 = phi i64 [%248, %$41] ; # Exe\n  %261 = phi i64 [%249, %$41] ; # X\n  %262 = phi i64 [%250, %$41] ; # P\n  %263 = phi i64 [%251, %$41] ; # Key\n  %264 = phi i64 [%252, %$41] ; # Key2\n  %265 = phi i64 [%253, %$41] ; # Q\n  %266 = phi i64 [%254, %$41] ; # Tos\n  %267 = phi i64 [%255, %$41] ; # R\n  %268 = phi i64 [%256, %$41] ; # Y\n  %269 = phi i64 [%257, %$41] ; # Z\n; # (car Z)\n  %270 = inttoptr i64 %269 to i64*\n  %271 = load i64, i64* %270\n; # (compare (car Z) Key2)\n  %272 = call i64 @compare(i64 %271, i64 %264)\n; # (gt0 (compare (car Z) Key2))\n  %273 = icmp sgt i64 %272, 0\n  br label %$42\n$42:\n  %274 = phi i64 [%248, %$41], [%260, %$43] ; # Exe\n  %275 = phi i64 [%249, %$41], [%261, %$43] ; # X\n  %276 = phi i64 [%250, %$41], [%262, %$43] ; # P\n  %277 = phi i64 [%251, %$41], [%263, %$43] ; # Key\n  %278 = phi i64 [%252, %$41], [%264, %$43] ; # Key2\n  %279 = phi i64 [%253, %$41], [%265, %$43] ; # Q\n  %280 = phi i64 [%254, %$41], [%266, %$43] ; # Tos\n  %281 = phi i64 [%255, %$41], [%267, %$43] ; # R\n  %282 = phi i64 [%256, %$41], [%268, %$43] ; # Y\n  %283 = phi i64 [%257, %$41], [%269, %$43] ; # Z\n  %284 = phi i1 [0, %$41], [%273, %$43] ; # ->\n  br i1 %284, label %$40, label %$44\n$44:\n  %285 = phi i64 [%274, %$42] ; # Exe\n  %286 = phi i64 [%275, %$42] ; # X\n  %287 = phi i64 [%276, %$42] ; # P\n  %288 = phi i64 [%277, %$42] ; # Key\n  %289 = phi i64 [%278, %$42] ; # Key2\n  %290 = phi i64 [%279, %$42] ; # Q\n  %291 = phi i64 [%280, %$42] ; # Tos\n  %292 = phi i64 [%281, %$42] ; # R\n  %293 = phi i64 [%282, %$42] ; # Y\n  %294 = phi i64 [%283, %$42] ; # Z\n; # (let Z P (setq P Y) (set 2 X (val Tos)) (set Tos Z))\n; # (set 2 X (val Tos))\n; # (val Tos)\n  %295 = inttoptr i64 %291 to i64*\n  %296 = load i64, i64* %295\n  %297 = inttoptr i64 %286 to i64*\n  %298 = getelementptr i64, i64* %297, i32 1\n  store i64 %296, i64* %298\n; # (set Tos Z)\n  %299 = inttoptr i64 %291 to i64*\n  store i64 %287, i64* %299\n  br label %$38\n$40:\n  %300 = phi i64 [%220, %$38], [%236, %$39], [%274, %$42] ; # Exe\n  %301 = phi i64 [%230, %$38], [%237, %$39], [%275, %$42] ; # X\n  %302 = phi i64 [%222, %$38], [%238, %$39], [%276, %$42] ; # P\n  %303 = phi i64 [%223, %$38], [%239, %$39], [%277, %$42] ; # Key\n  %304 = phi i64 [%224, %$38], [%240, %$39], [%278, %$42] ; # Key2\n  %305 = phi i64 [%225, %$38], [%241, %$39], [%279, %$42] ; # Q\n  %306 = phi i64 [%226, %$38], [%242, %$39], [%280, %$42] ; # Tos\n  %307 = phi i64 [%227, %$38], [%243, %$39], [%281, %$42] ; # R\n  %308 = phi i64 [0, %$38], [0, %$39], [0, %$42] ; # ->\n; # (set Q P)\n  %309 = inttoptr i64 %305 to i64*\n  store i64 %302, i64* %309\n; # (loop (when (and (pair (setq X (car P))) (ge0 (compare (car X) Ke...\n  br label %$45\n$45:\n  %310 = phi i64 [%300, %$40], [%477, %$59] ; # Exe\n  %311 = phi i64 [%301, %$40], [%478, %$59] ; # X\n  %312 = phi i64 [%302, %$40], [%479, %$59] ; # P\n  %313 = phi i64 [%303, %$40], [%480, %$59] ; # Key\n  %314 = phi i64 [%304, %$40], [%481, %$59] ; # Key2\n  %315 = phi i64 [%305, %$40], [%482, %$59] ; # Q\n  %316 = phi i64 [%306, %$40], [%483, %$59] ; # Tos\n  %317 = phi i64 [%307, %$40], [%484, %$59] ; # R\n; # (when (and (pair (setq X (car P))) (ge0 (compare (car X) Key))) (...\n; # (and (pair (setq X (car P))) (ge0 (compare (car X) Key)))\n; # (car P)\n  %318 = inttoptr i64 %312 to i64*\n  %319 = load i64, i64* %318\n; # (pair (setq X (car P)))\n  %320 = and i64 %319, 15\n  %321 = icmp eq i64 %320, 0\n  br i1 %321, label %$47, label %$46\n$47:\n  %322 = phi i64 [%310, %$45] ; # Exe\n  %323 = phi i64 [%319, %$45] ; # X\n  %324 = phi i64 [%312, %$45] ; # P\n  %325 = phi i64 [%313, %$45] ; # Key\n  %326 = phi i64 [%314, %$45] ; # Key2\n  %327 = phi i64 [%315, %$45] ; # Q\n  %328 = phi i64 [%316, %$45] ; # Tos\n  %329 = phi i64 [%317, %$45] ; # R\n; # (car X)\n  %330 = inttoptr i64 %323 to i64*\n  %331 = load i64, i64* %330\n; # (compare (car X) Key)\n  %332 = call i64 @compare(i64 %331, i64 %325)\n; # (ge0 (compare (car X) Key))\n  %333 = icmp sge i64 %332, 0\n  br label %$46\n$46:\n  %334 = phi i64 [%310, %$45], [%322, %$47] ; # Exe\n  %335 = phi i64 [%319, %$45], [%323, %$47] ; # X\n  %336 = phi i64 [%312, %$45], [%324, %$47] ; # P\n  %337 = phi i64 [%313, %$45], [%325, %$47] ; # Key\n  %338 = phi i64 [%314, %$45], [%326, %$47] ; # Key2\n  %339 = phi i64 [%315, %$45], [%327, %$47] ; # Q\n  %340 = phi i64 [%316, %$45], [%328, %$47] ; # Tos\n  %341 = phi i64 [%317, %$45], [%329, %$47] ; # R\n  %342 = phi i1 [0, %$45], [%333, %$47] ; # ->\n  br i1 %342, label %$48, label %$49\n$48:\n  %343 = phi i64 [%334, %$46] ; # Exe\n  %344 = phi i64 [%335, %$46] ; # X\n  %345 = phi i64 [%336, %$46] ; # P\n  %346 = phi i64 [%337, %$46] ; # Key\n  %347 = phi i64 [%338, %$46] ; # Key2\n  %348 = phi i64 [%339, %$46] ; # Q\n  %349 = phi i64 [%340, %$46] ; # Tos\n  %350 = phi i64 [%341, %$46] ; # R\n; # (when (le0 (compare (car X) Key2)) (setq R (cons X R)))\n; # (car X)\n  %351 = inttoptr i64 %344 to i64*\n  %352 = load i64, i64* %351\n; # (compare (car X) Key2)\n  %353 = call i64 @compare(i64 %352, i64 %347)\n; # (le0 (compare (car X) Key2))\n  %354 = icmp sle i64 %353, 0\n  br i1 %354, label %$50, label %$51\n$50:\n  %355 = phi i64 [%343, %$48] ; # Exe\n  %356 = phi i64 [%344, %$48] ; # X\n  %357 = phi i64 [%345, %$48] ; # P\n  %358 = phi i64 [%346, %$48] ; # Key\n  %359 = phi i64 [%347, %$48] ; # Key2\n  %360 = phi i64 [%348, %$48] ; # Q\n  %361 = phi i64 [%349, %$48] ; # Tos\n  %362 = phi i64 [%350, %$48] ; # R\n; # (cons X R)\n  %363 = call i64 @cons(i64 %356, i64 %362)\n  br label %$51\n$51:\n  %364 = phi i64 [%343, %$48], [%355, %$50] ; # Exe\n  %365 = phi i64 [%344, %$48], [%356, %$50] ; # X\n  %366 = phi i64 [%345, %$48], [%357, %$50] ; # P\n  %367 = phi i64 [%346, %$48], [%358, %$50] ; # Key\n  %368 = phi i64 [%347, %$48], [%359, %$50] ; # Key2\n  %369 = phi i64 [%348, %$48], [%360, %$50] ; # Q\n  %370 = phi i64 [%349, %$48], [%361, %$50] ; # Tos\n  %371 = phi i64 [%350, %$48], [%363, %$50] ; # R\n; # (? (pair (car (setq X (cdr P)))) (let Z P (setq P @) (set X (val ...\n; # (cdr P)\n  %372 = inttoptr i64 %366 to i64*\n  %373 = getelementptr i64, i64* %372, i32 1\n  %374 = load i64, i64* %373\n; # (car (setq X (cdr P)))\n  %375 = inttoptr i64 %374 to i64*\n  %376 = load i64, i64* %375\n; # (pair (car (setq X (cdr P))))\n  %377 = and i64 %376, 15\n  %378 = icmp eq i64 %377, 0\n  br i1 %378, label %$54, label %$52\n$54:\n  %379 = phi i64 [%364, %$51] ; # Exe\n  %380 = phi i64 [%374, %$51] ; # X\n  %381 = phi i64 [%366, %$51] ; # P\n  %382 = phi i64 [%367, %$51] ; # Key\n  %383 = phi i64 [%368, %$51] ; # Key2\n  %384 = phi i64 [%369, %$51] ; # Q\n  %385 = phi i64 [%370, %$51] ; # Tos\n  %386 = phi i64 [%371, %$51] ; # R\n; # (let Z P (setq P @) (set X (val Tos)) (set Tos (| Z 8)) (set Q P)...\n; # (set X (val Tos))\n; # (val Tos)\n  %387 = inttoptr i64 %385 to i64*\n  %388 = load i64, i64* %387\n  %389 = inttoptr i64 %380 to i64*\n  store i64 %388, i64* %389\n; # (set Tos (| Z 8))\n; # (| Z 8)\n  %390 = or i64 %381, 8\n  %391 = inttoptr i64 %385 to i64*\n  store i64 %390, i64* %391\n; # (set Q P)\n  %392 = inttoptr i64 %384 to i64*\n  store i64 %376, i64* %392\n  br label %$53\n$52:\n  %393 = phi i64 [%364, %$51] ; # Exe\n  %394 = phi i64 [%374, %$51] ; # X\n  %395 = phi i64 [%366, %$51] ; # P\n  %396 = phi i64 [%367, %$51] ; # Key\n  %397 = phi i64 [%368, %$51] ; # Key2\n  %398 = phi i64 [%369, %$51] ; # Q\n  %399 = phi i64 [%370, %$51] ; # Tos\n  %400 = phi i64 [%371, %$51] ; # R\n  br label %$49\n$49:\n  %401 = phi i64 [%334, %$46], [%393, %$52] ; # Exe\n  %402 = phi i64 [%335, %$46], [%394, %$52] ; # X\n  %403 = phi i64 [%336, %$46], [%395, %$52] ; # P\n  %404 = phi i64 [%337, %$46], [%396, %$52] ; # Key\n  %405 = phi i64 [%338, %$46], [%397, %$52] ; # Key2\n  %406 = phi i64 [%339, %$46], [%398, %$52] ; # Q\n  %407 = phi i64 [%340, %$46], [%399, %$52] ; # Tos\n  %408 = phi i64 [%341, %$46], [%400, %$52] ; # R\n; # (loop (when (== -ZERO (setq X (val Tos))) (ret R)) (? (=0 (& X 8)...\n  br label %$55\n$55:\n  %409 = phi i64 [%401, %$49], [%460, %$58] ; # Exe\n  %410 = phi i64 [%402, %$49], [%468, %$58] ; # X\n  %411 = phi i64 [%403, %$49], [%468, %$58] ; # P\n  %412 = phi i64 [%404, %$49], [%463, %$58] ; # Key\n  %413 = phi i64 [%405, %$49], [%464, %$58] ; # Key2\n  %414 = phi i64 [%406, %$49], [%465, %$58] ; # Q\n  %415 = phi i64 [%407, %$49], [%466, %$58] ; # Tos\n  %416 = phi i64 [%408, %$49], [%467, %$58] ; # R\n; # (when (== -ZERO (setq X (val Tos))) (ret R))\n; # (val Tos)\n  %417 = inttoptr i64 %415 to i64*\n  %418 = load i64, i64* %417\n; # (== -ZERO (setq X (val Tos)))\n  %419 = icmp eq i64 10, %418\n  br i1 %419, label %$56, label %$57\n$56:\n  %420 = phi i64 [%409, %$55] ; # Exe\n  %421 = phi i64 [%418, %$55] ; # X\n  %422 = phi i64 [%411, %$55] ; # P\n  %423 = phi i64 [%412, %$55] ; # Key\n  %424 = phi i64 [%413, %$55] ; # Key2\n  %425 = phi i64 [%414, %$55] ; # Q\n  %426 = phi i64 [%415, %$55] ; # Tos\n  %427 = phi i64 [%416, %$55] ; # R\n; # (ret R)\n; # (drop *Safe)\n  %428 = inttoptr i64 %24 to i64*\n  %429 = getelementptr i64, i64* %428, i32 1\n  %430 = load i64, i64* %429\n  %431 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %430, i64* %431\n  ret i64 %427\n$57:\n  %432 = phi i64 [%409, %$55] ; # Exe\n  %433 = phi i64 [%418, %$55] ; # X\n  %434 = phi i64 [%411, %$55] ; # P\n  %435 = phi i64 [%412, %$55] ; # Key\n  %436 = phi i64 [%413, %$55] ; # Key2\n  %437 = phi i64 [%414, %$55] ; # Q\n  %438 = phi i64 [%415, %$55] ; # Tos\n  %439 = phi i64 [%416, %$55] ; # R\n; # (? (=0 (& X 8)) (let Y (cdr X) (set Tos (cdr Y)) (set 2 Y P) (set...\n; # (& X 8)\n  %440 = and i64 %433, 8\n; # (=0 (& X 8))\n  %441 = icmp eq i64 %440, 0\n  br i1 %441, label %$60, label %$58\n$60:\n  %442 = phi i64 [%432, %$57] ; # Exe\n  %443 = phi i64 [%433, %$57] ; # X\n  %444 = phi i64 [%434, %$57] ; # P\n  %445 = phi i64 [%435, %$57] ; # Key\n  %446 = phi i64 [%436, %$57] ; # Key2\n  %447 = phi i64 [%437, %$57] ; # Q\n  %448 = phi i64 [%438, %$57] ; # Tos\n  %449 = phi i64 [%439, %$57] ; # R\n; # (let Y (cdr X) (set Tos (cdr Y)) (set 2 Y P) (setq P X) (set Q P)...\n; # (cdr X)\n  %450 = inttoptr i64 %443 to i64*\n  %451 = getelementptr i64, i64* %450, i32 1\n  %452 = load i64, i64* %451\n; # (set Tos (cdr Y))\n; # (cdr Y)\n  %453 = inttoptr i64 %452 to i64*\n  %454 = getelementptr i64, i64* %453, i32 1\n  %455 = load i64, i64* %454\n  %456 = inttoptr i64 %448 to i64*\n  store i64 %455, i64* %456\n; # (set 2 Y P)\n  %457 = inttoptr i64 %452 to i64*\n  %458 = getelementptr i64, i64* %457, i32 1\n  store i64 %444, i64* %458\n; # (set Q P)\n  %459 = inttoptr i64 %447 to i64*\n  store i64 %443, i64* %459\n  br label %$59\n$58:\n  %460 = phi i64 [%432, %$57] ; # Exe\n  %461 = phi i64 [%433, %$57] ; # X\n  %462 = phi i64 [%434, %$57] ; # P\n  %463 = phi i64 [%435, %$57] ; # Key\n  %464 = phi i64 [%436, %$57] ; # Key2\n  %465 = phi i64 [%437, %$57] ; # Q\n  %466 = phi i64 [%438, %$57] ; # Tos\n  %467 = phi i64 [%439, %$57] ; # R\n; # (& X -9)\n  %468 = and i64 %461, -9\n; # (let Y (cdr X) (set Tos (car Y)) (set Y P) (setq P X) (set Q P))\n; # (cdr X)\n  %469 = inttoptr i64 %468 to i64*\n  %470 = getelementptr i64, i64* %469, i32 1\n  %471 = load i64, i64* %470\n; # (set Tos (car Y))\n; # (car Y)\n  %472 = inttoptr i64 %471 to i64*\n  %473 = load i64, i64* %472\n  %474 = inttoptr i64 %466 to i64*\n  store i64 %473, i64* %474\n; # (set Y P)\n  %475 = inttoptr i64 %471 to i64*\n  store i64 %462, i64* %475\n; # (set Q P)\n  %476 = inttoptr i64 %465 to i64*\n  store i64 %468, i64* %476\n  br label %$55\n$59:\n  %477 = phi i64 [%442, %$60] ; # Exe\n  %478 = phi i64 [%443, %$60] ; # X\n  %479 = phi i64 [%443, %$60] ; # P\n  %480 = phi i64 [%445, %$60] ; # Key\n  %481 = phi i64 [%446, %$60] ; # Key2\n  %482 = phi i64 [%447, %$60] ; # Q\n  %483 = phi i64 [%448, %$60] ; # Tos\n  %484 = phi i64 [%449, %$60] ; # R\n  %485 = phi i64 [%443, %$60] ; # ->\n  br label %$45\n$53:\n  %486 = phi i64 [%379, %$54] ; # Exe\n  %487 = phi i64 [%380, %$54] ; # X\n  %488 = phi i64 [%376, %$54] ; # P\n  %489 = phi i64 [%382, %$54] ; # Key\n  %490 = phi i64 [%383, %$54] ; # Key2\n  %491 = phi i64 [%384, %$54] ; # Q\n  %492 = phi i64 [%385, %$54] ; # Tos\n  %493 = phi i64 [%386, %$54] ; # R\n  %494 = phi i64 [%376, %$54] ; # ->\n  br label %$37\n$17:\n  %495 = phi i64 [%157, %$25] ; # Exe\n  %496 = phi i64 [%158, %$25] ; # X\n  %497 = phi i64 [%159, %$25] ; # P\n  %498 = phi i64 [%160, %$25] ; # Key\n  %499 = phi i64 [%161, %$25] ; # ->\n  br label %$9\n$9:\n  %500 = phi i64 [%31, %$7], [%495, %$17] ; # Exe\n  %501 = phi i64 [%32, %$7], [%496, %$17] ; # X\n  %502 = phi i64 [%33, %$7], [%497, %$17] ; # P\n  %503 = phi i64 [%33, %$7], [%499, %$17] ; # ->\n; # (drop *Safe)\n  %504 = inttoptr i64 %24 to i64*\n  %505 = getelementptr i64, i64* %504, i32 1\n  %506 = load i64, i64* %505\n  %507 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %506, i64* %507\n  ret i64 %503\n}\n\ndefine void @put(i64, i64, i64) align 8 {\n$1:\n; # (let Tail (val (tail Sym)) (unless (num? Tail) (let (L (any (& Ta...\n; # (tail Sym)\n  %3 = add i64 %0, -8\n; # (val (tail Sym))\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (unless (num? Tail) (let (L (any (& Tail -9)) X (car L)) (if (ato...\n; # (num? Tail)\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$3, label %$2\n$2:\n  %8 = phi i64 [%0, %$1] ; # Sym\n  %9 = phi i64 [%1, %$1] ; # Key\n  %10 = phi i64 [%2, %$1] ; # Val\n  %11 = phi i64 [%5, %$1] ; # Tail\n; # (let (L (any (& Tail -9)) X (car L)) (if (atom X) (when (== Key X...\n; # (& Tail -9)\n  %12 = and i64 %11, -9\n; # (any (& Tail -9))\n; # (car L)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (if (atom X) (when (== Key X) (cond ((nil? Val) (shift L) (set (t...\n; # (atom X)\n  %15 = and i64 %14, 15\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$4, label %$5\n$4:\n  %17 = phi i64 [%8, %$2] ; # Sym\n  %18 = phi i64 [%9, %$2] ; # Key\n  %19 = phi i64 [%10, %$2] ; # Val\n  %20 = phi i64 [%11, %$2] ; # Tail\n  %21 = phi i64 [%12, %$2] ; # L\n  %22 = phi i64 [%14, %$2] ; # X\n; # (when (== Key X) (cond ((nil? Val) (shift L) (set (tail Sym) (if ...\n; # (== Key X)\n  %23 = icmp eq i64 %18, %22\n  br i1 %23, label %$7, label %$8\n$7:\n  %24 = phi i64 [%17, %$4] ; # Sym\n  %25 = phi i64 [%18, %$4] ; # Key\n  %26 = phi i64 [%19, %$4] ; # Val\n  %27 = phi i64 [%20, %$4] ; # Tail\n  %28 = phi i64 [%21, %$4] ; # L\n  %29 = phi i64 [%22, %$4] ; # X\n; # (cond ((nil? Val) (shift L) (set (tail Sym) (if (sym? Tail) (sym ...\n; # (nil? Val)\n  %30 = icmp eq i64 %26, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%24, %$7] ; # Sym\n  %32 = phi i64 [%25, %$7] ; # Key\n  %33 = phi i64 [%26, %$7] ; # Val\n  %34 = phi i64 [%27, %$7] ; # Tail\n  %35 = phi i64 [%28, %$7] ; # L\n  %36 = phi i64 [%29, %$7] ; # X\n; # (shift L)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n; # (set (tail Sym) (if (sym? Tail) (sym L) L))\n; # (tail Sym)\n  %40 = add i64 %31, -8\n; # (if (sym? Tail) (sym L) L)\n; # (sym? Tail)\n  %41 = and i64 %34, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$12, label %$13\n$12:\n  %43 = phi i64 [%31, %$11] ; # Sym\n  %44 = phi i64 [%32, %$11] ; # Key\n  %45 = phi i64 [%33, %$11] ; # Val\n  %46 = phi i64 [%34, %$11] ; # Tail\n  %47 = phi i64 [%39, %$11] ; # L\n  %48 = phi i64 [%36, %$11] ; # X\n; # (sym L)\n  %49 = or i64 %47, 8\n  br label %$14\n$13:\n  %50 = phi i64 [%31, %$11] ; # Sym\n  %51 = phi i64 [%32, %$11] ; # Key\n  %52 = phi i64 [%33, %$11] ; # Val\n  %53 = phi i64 [%34, %$11] ; # Tail\n  %54 = phi i64 [%39, %$11] ; # L\n  %55 = phi i64 [%36, %$11] ; # X\n  br label %$14\n$14:\n  %56 = phi i64 [%43, %$12], [%50, %$13] ; # Sym\n  %57 = phi i64 [%44, %$12], [%51, %$13] ; # Key\n  %58 = phi i64 [%45, %$12], [%52, %$13] ; # Val\n  %59 = phi i64 [%46, %$12], [%53, %$13] ; # Tail\n  %60 = phi i64 [%47, %$12], [%54, %$13] ; # L\n  %61 = phi i64 [%48, %$12], [%55, %$13] ; # X\n  %62 = phi i64 [%49, %$12], [%54, %$13] ; # ->\n  %63 = inttoptr i64 %40 to i64*\n  store i64 %62, i64* %63\n  br label %$9\n$10:\n  %64 = phi i64 [%24, %$7] ; # Sym\n  %65 = phi i64 [%25, %$7] ; # Key\n  %66 = phi i64 [%26, %$7] ; # Val\n  %67 = phi i64 [%27, %$7] ; # Tail\n  %68 = phi i64 [%28, %$7] ; # L\n  %69 = phi i64 [%29, %$7] ; # X\n; # (<> Val $T)\n  %70 = icmp ne i64 %66, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %70, label %$16, label %$15\n$16:\n  %71 = phi i64 [%64, %$10] ; # Sym\n  %72 = phi i64 [%65, %$10] ; # Key\n  %73 = phi i64 [%66, %$10] ; # Val\n  %74 = phi i64 [%67, %$10] ; # Tail\n  %75 = phi i64 [%68, %$10] ; # L\n  %76 = phi i64 [%69, %$10] ; # X\n; # (set L (cons Val Key))\n; # (cons Val Key)\n  %77 = call i64 @cons(i64 %73, i64 %72)\n  %78 = inttoptr i64 %75 to i64*\n  store i64 %77, i64* %78\n  br label %$9\n$15:\n  %79 = phi i64 [%64, %$10] ; # Sym\n  %80 = phi i64 [%65, %$10] ; # Key\n  %81 = phi i64 [%66, %$10] ; # Val\n  %82 = phi i64 [%67, %$10] ; # Tail\n  %83 = phi i64 [%68, %$10] ; # L\n  %84 = phi i64 [%69, %$10] ; # X\n  br label %$9\n$9:\n  %85 = phi i64 [%56, %$14], [%71, %$16], [%79, %$15] ; # Sym\n  %86 = phi i64 [%57, %$14], [%72, %$16], [%80, %$15] ; # Key\n  %87 = phi i64 [%58, %$14], [%73, %$16], [%81, %$15] ; # Val\n  %88 = phi i64 [%59, %$14], [%74, %$16], [%82, %$15] ; # Tail\n  %89 = phi i64 [%60, %$14], [%75, %$16], [%83, %$15] ; # L\n  %90 = phi i64 [%61, %$14], [%76, %$16], [%84, %$15] ; # X\n  %91 = phi i64 [%62, %$14], [%77, %$16], [0, %$15] ; # ->\n; # (ret)\n  ret void\n$8:\n  %92 = phi i64 [%17, %$4] ; # Sym\n  %93 = phi i64 [%18, %$4] ; # Key\n  %94 = phi i64 [%19, %$4] ; # Val\n  %95 = phi i64 [%20, %$4] ; # Tail\n  %96 = phi i64 [%21, %$4] ; # L\n  %97 = phi i64 [%22, %$4] ; # X\n  br label %$6\n$5:\n  %98 = phi i64 [%8, %$2] ; # Sym\n  %99 = phi i64 [%9, %$2] ; # Key\n  %100 = phi i64 [%10, %$2] ; # Val\n  %101 = phi i64 [%11, %$2] ; # Tail\n  %102 = phi i64 [%12, %$2] ; # L\n  %103 = phi i64 [%14, %$2] ; # X\n; # (when (== Key (cdr X)) (cond ((nil? Val) (shift L) (set (tail Sym...\n; # (cdr X)\n  %104 = inttoptr i64 %103 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n; # (== Key (cdr X))\n  %107 = icmp eq i64 %99, %106\n  br i1 %107, label %$17, label %$18\n$17:\n  %108 = phi i64 [%98, %$5] ; # Sym\n  %109 = phi i64 [%99, %$5] ; # Key\n  %110 = phi i64 [%100, %$5] ; # Val\n  %111 = phi i64 [%101, %$5] ; # Tail\n  %112 = phi i64 [%102, %$5] ; # L\n  %113 = phi i64 [%103, %$5] ; # X\n; # (cond ((nil? Val) (shift L) (set (tail Sym) (if (sym? Tail) (sym ...\n; # (nil? Val)\n  %114 = icmp eq i64 %110, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %114, label %$21, label %$20\n$21:\n  %115 = phi i64 [%108, %$17] ; # Sym\n  %116 = phi i64 [%109, %$17] ; # Key\n  %117 = phi i64 [%110, %$17] ; # Val\n  %118 = phi i64 [%111, %$17] ; # Tail\n  %119 = phi i64 [%112, %$17] ; # L\n  %120 = phi i64 [%113, %$17] ; # X\n; # (shift L)\n  %121 = inttoptr i64 %119 to i64*\n  %122 = getelementptr i64, i64* %121, i32 1\n  %123 = load i64, i64* %122\n; # (set (tail Sym) (if (sym? Tail) (sym L) L))\n; # (tail Sym)\n  %124 = add i64 %115, -8\n; # (if (sym? Tail) (sym L) L)\n; # (sym? Tail)\n  %125 = and i64 %118, 8\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$22, label %$23\n$22:\n  %127 = phi i64 [%115, %$21] ; # Sym\n  %128 = phi i64 [%116, %$21] ; # Key\n  %129 = phi i64 [%117, %$21] ; # Val\n  %130 = phi i64 [%118, %$21] ; # Tail\n  %131 = phi i64 [%123, %$21] ; # L\n  %132 = phi i64 [%120, %$21] ; # X\n; # (sym L)\n  %133 = or i64 %131, 8\n  br label %$24\n$23:\n  %134 = phi i64 [%115, %$21] ; # Sym\n  %135 = phi i64 [%116, %$21] ; # Key\n  %136 = phi i64 [%117, %$21] ; # Val\n  %137 = phi i64 [%118, %$21] ; # Tail\n  %138 = phi i64 [%123, %$21] ; # L\n  %139 = phi i64 [%120, %$21] ; # X\n  br label %$24\n$24:\n  %140 = phi i64 [%127, %$22], [%134, %$23] ; # Sym\n  %141 = phi i64 [%128, %$22], [%135, %$23] ; # Key\n  %142 = phi i64 [%129, %$22], [%136, %$23] ; # Val\n  %143 = phi i64 [%130, %$22], [%137, %$23] ; # Tail\n  %144 = phi i64 [%131, %$22], [%138, %$23] ; # L\n  %145 = phi i64 [%132, %$22], [%139, %$23] ; # X\n  %146 = phi i64 [%133, %$22], [%138, %$23] ; # ->\n  %147 = inttoptr i64 %124 to i64*\n  store i64 %146, i64* %147\n  br label %$19\n$20:\n  %148 = phi i64 [%108, %$17] ; # Sym\n  %149 = phi i64 [%109, %$17] ; # Key\n  %150 = phi i64 [%110, %$17] ; # Val\n  %151 = phi i64 [%111, %$17] ; # Tail\n  %152 = phi i64 [%112, %$17] ; # L\n  %153 = phi i64 [%113, %$17] ; # X\n; # (t? Val)\n  %154 = icmp eq i64 %150, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %154, label %$26, label %$25\n$26:\n  %155 = phi i64 [%148, %$20] ; # Sym\n  %156 = phi i64 [%149, %$20] ; # Key\n  %157 = phi i64 [%150, %$20] ; # Val\n  %158 = phi i64 [%151, %$20] ; # Tail\n  %159 = phi i64 [%152, %$20] ; # L\n  %160 = phi i64 [%153, %$20] ; # X\n; # (set L Key)\n  %161 = inttoptr i64 %159 to i64*\n  store i64 %156, i64* %161\n  br label %$19\n$25:\n  %162 = phi i64 [%148, %$20] ; # Sym\n  %163 = phi i64 [%149, %$20] ; # Key\n  %164 = phi i64 [%150, %$20] ; # Val\n  %165 = phi i64 [%151, %$20] ; # Tail\n  %166 = phi i64 [%152, %$20] ; # L\n  %167 = phi i64 [%153, %$20] ; # X\n; # (set X Val)\n  %168 = inttoptr i64 %167 to i64*\n  store i64 %164, i64* %168\n  br label %$19\n$19:\n  %169 = phi i64 [%140, %$24], [%155, %$26], [%162, %$25] ; # Sym\n  %170 = phi i64 [%141, %$24], [%156, %$26], [%163, %$25] ; # Key\n  %171 = phi i64 [%142, %$24], [%157, %$26], [%164, %$25] ; # Val\n  %172 = phi i64 [%143, %$24], [%158, %$26], [%165, %$25] ; # Tail\n  %173 = phi i64 [%144, %$24], [%159, %$26], [%166, %$25] ; # L\n  %174 = phi i64 [%145, %$24], [%160, %$26], [%167, %$25] ; # X\n  %175 = phi i64 [%146, %$24], [%156, %$26], [%164, %$25] ; # ->\n; # (ret)\n  ret void\n$18:\n  %176 = phi i64 [%98, %$5] ; # Sym\n  %177 = phi i64 [%99, %$5] ; # Key\n  %178 = phi i64 [%100, %$5] ; # Val\n  %179 = phi i64 [%101, %$5] ; # Tail\n  %180 = phi i64 [%102, %$5] ; # L\n  %181 = phi i64 [%103, %$5] ; # X\n  br label %$6\n$6:\n  %182 = phi i64 [%92, %$8], [%176, %$18] ; # Sym\n  %183 = phi i64 [%93, %$8], [%177, %$18] ; # Key\n  %184 = phi i64 [%94, %$8], [%178, %$18] ; # Val\n  %185 = phi i64 [%95, %$8], [%179, %$18] ; # Tail\n  %186 = phi i64 [%96, %$8], [%180, %$18] ; # L\n  %187 = phi i64 [%97, %$8], [%181, %$18] ; # X\n; # (while (pair (setq X (cdr L))) (let Y (car X) (if (atom Y) (when ...\n  br label %$27\n$27:\n  %188 = phi i64 [%182, %$6], [%428, %$32] ; # Sym\n  %189 = phi i64 [%183, %$6], [%429, %$32] ; # Key\n  %190 = phi i64 [%184, %$6], [%430, %$32] ; # Val\n  %191 = phi i64 [%185, %$6], [%431, %$32] ; # Tail\n  %192 = phi i64 [%186, %$6], [%433, %$32] ; # L\n  %193 = phi i64 [%187, %$6], [%433, %$32] ; # X\n; # (cdr L)\n  %194 = inttoptr i64 %192 to i64*\n  %195 = getelementptr i64, i64* %194, i32 1\n  %196 = load i64, i64* %195\n; # (pair (setq X (cdr L)))\n  %197 = and i64 %196, 15\n  %198 = icmp eq i64 %197, 0\n  br i1 %198, label %$28, label %$29\n$28:\n  %199 = phi i64 [%188, %$27] ; # Sym\n  %200 = phi i64 [%189, %$27] ; # Key\n  %201 = phi i64 [%190, %$27] ; # Val\n  %202 = phi i64 [%191, %$27] ; # Tail\n  %203 = phi i64 [%192, %$27] ; # L\n  %204 = phi i64 [%196, %$27] ; # X\n; # (let Y (car X) (if (atom Y) (when (== Key Y) (if (nil? Val) (set ...\n; # (car X)\n  %205 = inttoptr i64 %204 to i64*\n  %206 = load i64, i64* %205\n; # (if (atom Y) (when (== Key Y) (if (nil? Val) (set 2 L (cdr X)) (u...\n; # (atom Y)\n  %207 = and i64 %206, 15\n  %208 = icmp ne i64 %207, 0\n  br i1 %208, label %$30, label %$31\n$30:\n  %209 = phi i64 [%199, %$28] ; # Sym\n  %210 = phi i64 [%200, %$28] ; # Key\n  %211 = phi i64 [%201, %$28] ; # Val\n  %212 = phi i64 [%202, %$28] ; # Tail\n  %213 = phi i64 [%203, %$28] ; # L\n  %214 = phi i64 [%204, %$28] ; # X\n  %215 = phi i64 [%206, %$28] ; # Y\n; # (when (== Key Y) (if (nil? Val) (set 2 L (cdr X)) (unless (t? Val...\n; # (== Key Y)\n  %216 = icmp eq i64 %210, %215\n  br i1 %216, label %$33, label %$34\n$33:\n  %217 = phi i64 [%209, %$30] ; # Sym\n  %218 = phi i64 [%210, %$30] ; # Key\n  %219 = phi i64 [%211, %$30] ; # Val\n  %220 = phi i64 [%212, %$30] ; # Tail\n  %221 = phi i64 [%213, %$30] ; # L\n  %222 = phi i64 [%214, %$30] ; # X\n  %223 = phi i64 [%215, %$30] ; # Y\n; # (if (nil? Val) (set 2 L (cdr X)) (unless (t? Val) (set X (cons Va...\n; # (nil? Val)\n  %224 = icmp eq i64 %219, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %224, label %$35, label %$36\n$35:\n  %225 = phi i64 [%217, %$33] ; # Sym\n  %226 = phi i64 [%218, %$33] ; # Key\n  %227 = phi i64 [%219, %$33] ; # Val\n  %228 = phi i64 [%220, %$33] ; # Tail\n  %229 = phi i64 [%221, %$33] ; # L\n  %230 = phi i64 [%222, %$33] ; # X\n  %231 = phi i64 [%223, %$33] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %232 = inttoptr i64 %230 to i64*\n  %233 = getelementptr i64, i64* %232, i32 1\n  %234 = load i64, i64* %233\n  %235 = inttoptr i64 %229 to i64*\n  %236 = getelementptr i64, i64* %235, i32 1\n  store i64 %234, i64* %236\n  br label %$37\n$36:\n  %237 = phi i64 [%217, %$33] ; # Sym\n  %238 = phi i64 [%218, %$33] ; # Key\n  %239 = phi i64 [%219, %$33] ; # Val\n  %240 = phi i64 [%220, %$33] ; # Tail\n  %241 = phi i64 [%221, %$33] ; # L\n  %242 = phi i64 [%222, %$33] ; # X\n  %243 = phi i64 [%223, %$33] ; # Y\n; # (unless (t? Val) (set X (cons Val Key)))\n; # (t? Val)\n  %244 = icmp eq i64 %239, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %244, label %$39, label %$38\n$38:\n  %245 = phi i64 [%237, %$36] ; # Sym\n  %246 = phi i64 [%238, %$36] ; # Key\n  %247 = phi i64 [%239, %$36] ; # Val\n  %248 = phi i64 [%240, %$36] ; # Tail\n  %249 = phi i64 [%241, %$36] ; # L\n  %250 = phi i64 [%242, %$36] ; # X\n  %251 = phi i64 [%243, %$36] ; # Y\n; # (set X (cons Val Key))\n; # (cons Val Key)\n  %252 = call i64 @cons(i64 %247, i64 %246)\n  %253 = inttoptr i64 %250 to i64*\n  store i64 %252, i64* %253\n  br label %$39\n$39:\n  %254 = phi i64 [%237, %$36], [%245, %$38] ; # Sym\n  %255 = phi i64 [%238, %$36], [%246, %$38] ; # Key\n  %256 = phi i64 [%239, %$36], [%247, %$38] ; # Val\n  %257 = phi i64 [%240, %$36], [%248, %$38] ; # Tail\n  %258 = phi i64 [%241, %$36], [%249, %$38] ; # L\n  %259 = phi i64 [%242, %$36], [%250, %$38] ; # X\n  %260 = phi i64 [%243, %$36], [%251, %$38] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %261 = inttoptr i64 %259 to i64*\n  %262 = getelementptr i64, i64* %261, i32 1\n  %263 = load i64, i64* %262\n  %264 = inttoptr i64 %258 to i64*\n  %265 = getelementptr i64, i64* %264, i32 1\n  store i64 %263, i64* %265\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %266 = and i64 %257, 8\n  %267 = icmp ne i64 %266, 0\n  br i1 %267, label %$41, label %$40\n$40:\n  %268 = phi i64 [%254, %$39] ; # Sym\n  %269 = phi i64 [%255, %$39] ; # Key\n  %270 = phi i64 [%256, %$39] ; # Val\n  %271 = phi i64 [%257, %$39] ; # Tail\n  %272 = phi i64 [%258, %$39] ; # L\n  %273 = phi i64 [%259, %$39] ; # X\n  %274 = phi i64 [%260, %$39] ; # Y\n; # (set 2 X Tail)\n  %275 = inttoptr i64 %273 to i64*\n  %276 = getelementptr i64, i64* %275, i32 1\n  store i64 %271, i64* %276\n  br label %$42\n$41:\n  %277 = phi i64 [%254, %$39] ; # Sym\n  %278 = phi i64 [%255, %$39] ; # Key\n  %279 = phi i64 [%256, %$39] ; # Val\n  %280 = phi i64 [%257, %$39] ; # Tail\n  %281 = phi i64 [%258, %$39] ; # L\n  %282 = phi i64 [%259, %$39] ; # X\n  %283 = phi i64 [%260, %$39] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %284 = and i64 %280, -9\n  %285 = inttoptr i64 %282 to i64*\n  %286 = getelementptr i64, i64* %285, i32 1\n  store i64 %284, i64* %286\n; # (sym X)\n  %287 = or i64 %282, 8\n  br label %$42\n$42:\n  %288 = phi i64 [%268, %$40], [%277, %$41] ; # Sym\n  %289 = phi i64 [%269, %$40], [%278, %$41] ; # Key\n  %290 = phi i64 [%270, %$40], [%279, %$41] ; # Val\n  %291 = phi i64 [%271, %$40], [%280, %$41] ; # Tail\n  %292 = phi i64 [%272, %$40], [%281, %$41] ; # L\n  %293 = phi i64 [%273, %$40], [%287, %$41] ; # X\n  %294 = phi i64 [%274, %$40], [%283, %$41] ; # Y\n  %295 = phi i64 [%271, %$40], [%287, %$41] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %296 = add i64 %288, -8\n  %297 = inttoptr i64 %296 to i64*\n  store i64 %293, i64* %297\n  br label %$37\n$37:\n  %298 = phi i64 [%225, %$35], [%288, %$42] ; # Sym\n  %299 = phi i64 [%226, %$35], [%289, %$42] ; # Key\n  %300 = phi i64 [%227, %$35], [%290, %$42] ; # Val\n  %301 = phi i64 [%228, %$35], [%291, %$42] ; # Tail\n  %302 = phi i64 [%229, %$35], [%292, %$42] ; # L\n  %303 = phi i64 [%230, %$35], [%293, %$42] ; # X\n  %304 = phi i64 [%231, %$35], [%294, %$42] ; # Y\n  %305 = phi i64 [%234, %$35], [%293, %$42] ; # ->\n; # (ret)\n  ret void\n$34:\n  %306 = phi i64 [%209, %$30] ; # Sym\n  %307 = phi i64 [%210, %$30] ; # Key\n  %308 = phi i64 [%211, %$30] ; # Val\n  %309 = phi i64 [%212, %$30] ; # Tail\n  %310 = phi i64 [%213, %$30] ; # L\n  %311 = phi i64 [%214, %$30] ; # X\n  %312 = phi i64 [%215, %$30] ; # Y\n  br label %$32\n$31:\n  %313 = phi i64 [%199, %$28] ; # Sym\n  %314 = phi i64 [%200, %$28] ; # Key\n  %315 = phi i64 [%201, %$28] ; # Val\n  %316 = phi i64 [%202, %$28] ; # Tail\n  %317 = phi i64 [%203, %$28] ; # L\n  %318 = phi i64 [%204, %$28] ; # X\n  %319 = phi i64 [%206, %$28] ; # Y\n; # (when (== Key (cdr Y)) (if (nil? Val) (set 2 L (cdr X)) (if (t? V...\n; # (cdr Y)\n  %320 = inttoptr i64 %319 to i64*\n  %321 = getelementptr i64, i64* %320, i32 1\n  %322 = load i64, i64* %321\n; # (== Key (cdr Y))\n  %323 = icmp eq i64 %314, %322\n  br i1 %323, label %$43, label %$44\n$43:\n  %324 = phi i64 [%313, %$31] ; # Sym\n  %325 = phi i64 [%314, %$31] ; # Key\n  %326 = phi i64 [%315, %$31] ; # Val\n  %327 = phi i64 [%316, %$31] ; # Tail\n  %328 = phi i64 [%317, %$31] ; # L\n  %329 = phi i64 [%318, %$31] ; # X\n  %330 = phi i64 [%319, %$31] ; # Y\n; # (if (nil? Val) (set 2 L (cdr X)) (if (t? Val) (set X Key) (set Y ...\n; # (nil? Val)\n  %331 = icmp eq i64 %326, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %331, label %$45, label %$46\n$45:\n  %332 = phi i64 [%324, %$43] ; # Sym\n  %333 = phi i64 [%325, %$43] ; # Key\n  %334 = phi i64 [%326, %$43] ; # Val\n  %335 = phi i64 [%327, %$43] ; # Tail\n  %336 = phi i64 [%328, %$43] ; # L\n  %337 = phi i64 [%329, %$43] ; # X\n  %338 = phi i64 [%330, %$43] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %339 = inttoptr i64 %337 to i64*\n  %340 = getelementptr i64, i64* %339, i32 1\n  %341 = load i64, i64* %340\n  %342 = inttoptr i64 %336 to i64*\n  %343 = getelementptr i64, i64* %342, i32 1\n  store i64 %341, i64* %343\n  br label %$47\n$46:\n  %344 = phi i64 [%324, %$43] ; # Sym\n  %345 = phi i64 [%325, %$43] ; # Key\n  %346 = phi i64 [%326, %$43] ; # Val\n  %347 = phi i64 [%327, %$43] ; # Tail\n  %348 = phi i64 [%328, %$43] ; # L\n  %349 = phi i64 [%329, %$43] ; # X\n  %350 = phi i64 [%330, %$43] ; # Y\n; # (if (t? Val) (set X Key) (set Y Val))\n; # (t? Val)\n  %351 = icmp eq i64 %346, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %351, label %$48, label %$49\n$48:\n  %352 = phi i64 [%344, %$46] ; # Sym\n  %353 = phi i64 [%345, %$46] ; # Key\n  %354 = phi i64 [%346, %$46] ; # Val\n  %355 = phi i64 [%347, %$46] ; # Tail\n  %356 = phi i64 [%348, %$46] ; # L\n  %357 = phi i64 [%349, %$46] ; # X\n  %358 = phi i64 [%350, %$46] ; # Y\n; # (set X Key)\n  %359 = inttoptr i64 %357 to i64*\n  store i64 %353, i64* %359\n  br label %$50\n$49:\n  %360 = phi i64 [%344, %$46] ; # Sym\n  %361 = phi i64 [%345, %$46] ; # Key\n  %362 = phi i64 [%346, %$46] ; # Val\n  %363 = phi i64 [%347, %$46] ; # Tail\n  %364 = phi i64 [%348, %$46] ; # L\n  %365 = phi i64 [%349, %$46] ; # X\n  %366 = phi i64 [%350, %$46] ; # Y\n; # (set Y Val)\n  %367 = inttoptr i64 %366 to i64*\n  store i64 %362, i64* %367\n  br label %$50\n$50:\n  %368 = phi i64 [%352, %$48], [%360, %$49] ; # Sym\n  %369 = phi i64 [%353, %$48], [%361, %$49] ; # Key\n  %370 = phi i64 [%354, %$48], [%362, %$49] ; # Val\n  %371 = phi i64 [%355, %$48], [%363, %$49] ; # Tail\n  %372 = phi i64 [%356, %$48], [%364, %$49] ; # L\n  %373 = phi i64 [%357, %$48], [%365, %$49] ; # X\n  %374 = phi i64 [%358, %$48], [%366, %$49] ; # Y\n  %375 = phi i64 [%353, %$48], [%362, %$49] ; # ->\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %376 = inttoptr i64 %373 to i64*\n  %377 = getelementptr i64, i64* %376, i32 1\n  %378 = load i64, i64* %377\n  %379 = inttoptr i64 %372 to i64*\n  %380 = getelementptr i64, i64* %379, i32 1\n  store i64 %378, i64* %380\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %381 = and i64 %371, 8\n  %382 = icmp ne i64 %381, 0\n  br i1 %382, label %$52, label %$51\n$51:\n  %383 = phi i64 [%368, %$50] ; # Sym\n  %384 = phi i64 [%369, %$50] ; # Key\n  %385 = phi i64 [%370, %$50] ; # Val\n  %386 = phi i64 [%371, %$50] ; # Tail\n  %387 = phi i64 [%372, %$50] ; # L\n  %388 = phi i64 [%373, %$50] ; # X\n  %389 = phi i64 [%374, %$50] ; # Y\n; # (set 2 X Tail)\n  %390 = inttoptr i64 %388 to i64*\n  %391 = getelementptr i64, i64* %390, i32 1\n  store i64 %386, i64* %391\n  br label %$53\n$52:\n  %392 = phi i64 [%368, %$50] ; # Sym\n  %393 = phi i64 [%369, %$50] ; # Key\n  %394 = phi i64 [%370, %$50] ; # Val\n  %395 = phi i64 [%371, %$50] ; # Tail\n  %396 = phi i64 [%372, %$50] ; # L\n  %397 = phi i64 [%373, %$50] ; # X\n  %398 = phi i64 [%374, %$50] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %399 = and i64 %395, -9\n  %400 = inttoptr i64 %397 to i64*\n  %401 = getelementptr i64, i64* %400, i32 1\n  store i64 %399, i64* %401\n; # (sym X)\n  %402 = or i64 %397, 8\n  br label %$53\n$53:\n  %403 = phi i64 [%383, %$51], [%392, %$52] ; # Sym\n  %404 = phi i64 [%384, %$51], [%393, %$52] ; # Key\n  %405 = phi i64 [%385, %$51], [%394, %$52] ; # Val\n  %406 = phi i64 [%386, %$51], [%395, %$52] ; # Tail\n  %407 = phi i64 [%387, %$51], [%396, %$52] ; # L\n  %408 = phi i64 [%388, %$51], [%402, %$52] ; # X\n  %409 = phi i64 [%389, %$51], [%398, %$52] ; # Y\n  %410 = phi i64 [%386, %$51], [%402, %$52] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %411 = add i64 %403, -8\n  %412 = inttoptr i64 %411 to i64*\n  store i64 %408, i64* %412\n  br label %$47\n$47:\n  %413 = phi i64 [%332, %$45], [%403, %$53] ; # Sym\n  %414 = phi i64 [%333, %$45], [%404, %$53] ; # Key\n  %415 = phi i64 [%334, %$45], [%405, %$53] ; # Val\n  %416 = phi i64 [%335, %$45], [%406, %$53] ; # Tail\n  %417 = phi i64 [%336, %$45], [%407, %$53] ; # L\n  %418 = phi i64 [%337, %$45], [%408, %$53] ; # X\n  %419 = phi i64 [%338, %$45], [%409, %$53] ; # Y\n  %420 = phi i64 [%341, %$45], [%408, %$53] ; # ->\n; # (ret)\n  ret void\n$44:\n  %421 = phi i64 [%313, %$31] ; # Sym\n  %422 = phi i64 [%314, %$31] ; # Key\n  %423 = phi i64 [%315, %$31] ; # Val\n  %424 = phi i64 [%316, %$31] ; # Tail\n  %425 = phi i64 [%317, %$31] ; # L\n  %426 = phi i64 [%318, %$31] ; # X\n  %427 = phi i64 [%319, %$31] ; # Y\n  br label %$32\n$32:\n  %428 = phi i64 [%306, %$34], [%421, %$44] ; # Sym\n  %429 = phi i64 [%307, %$34], [%422, %$44] ; # Key\n  %430 = phi i64 [%308, %$34], [%423, %$44] ; # Val\n  %431 = phi i64 [%309, %$34], [%424, %$44] ; # Tail\n  %432 = phi i64 [%310, %$34], [%425, %$44] ; # L\n  %433 = phi i64 [%311, %$34], [%426, %$44] ; # X\n  %434 = phi i64 [%312, %$34], [%427, %$44] ; # Y\n  br label %$27\n$29:\n  %435 = phi i64 [%188, %$27] ; # Sym\n  %436 = phi i64 [%189, %$27] ; # Key\n  %437 = phi i64 [%190, %$27] ; # Val\n  %438 = phi i64 [%191, %$27] ; # Tail\n  %439 = phi i64 [%192, %$27] ; # L\n  %440 = phi i64 [%196, %$27] ; # X\n  br label %$3\n$3:\n  %441 = phi i64 [%0, %$1], [%435, %$29] ; # Sym\n  %442 = phi i64 [%1, %$1], [%436, %$29] ; # Key\n  %443 = phi i64 [%2, %$1], [%437, %$29] ; # Val\n  %444 = phi i64 [%5, %$1], [%438, %$29] ; # Tail\n; # (unless (nil? Val) (setq Val (if (t? Val) Key (cons Val Key))) (s...\n; # (nil? Val)\n  %445 = icmp eq i64 %443, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %445, label %$55, label %$54\n$54:\n  %446 = phi i64 [%441, %$3] ; # Sym\n  %447 = phi i64 [%442, %$3] ; # Key\n  %448 = phi i64 [%443, %$3] ; # Val\n  %449 = phi i64 [%444, %$3] ; # Tail\n; # (if (t? Val) Key (cons Val Key))\n; # (t? Val)\n  %450 = icmp eq i64 %448, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %450, label %$56, label %$57\n$56:\n  %451 = phi i64 [%446, %$54] ; # Sym\n  %452 = phi i64 [%447, %$54] ; # Key\n  %453 = phi i64 [%448, %$54] ; # Val\n  %454 = phi i64 [%449, %$54] ; # Tail\n  br label %$58\n$57:\n  %455 = phi i64 [%446, %$54] ; # Sym\n  %456 = phi i64 [%447, %$54] ; # Key\n  %457 = phi i64 [%448, %$54] ; # Val\n  %458 = phi i64 [%449, %$54] ; # Tail\n; # (cons Val Key)\n  %459 = call i64 @cons(i64 %457, i64 %456)\n  br label %$58\n$58:\n  %460 = phi i64 [%451, %$56], [%455, %$57] ; # Sym\n  %461 = phi i64 [%452, %$56], [%456, %$57] ; # Key\n  %462 = phi i64 [%453, %$56], [%457, %$57] ; # Val\n  %463 = phi i64 [%454, %$56], [%458, %$57] ; # Tail\n  %464 = phi i64 [%452, %$56], [%459, %$57] ; # ->\n; # (set (tail Sym) (if (sym? Tail) (sym (cons Val (& Tail -9))) (con...\n; # (tail Sym)\n  %465 = add i64 %460, -8\n; # (if (sym? Tail) (sym (cons Val (& Tail -9))) (cons Val Tail))\n; # (sym? Tail)\n  %466 = and i64 %463, 8\n  %467 = icmp ne i64 %466, 0\n  br i1 %467, label %$59, label %$60\n$59:\n  %468 = phi i64 [%460, %$58] ; # Sym\n  %469 = phi i64 [%461, %$58] ; # Key\n  %470 = phi i64 [%464, %$58] ; # Val\n  %471 = phi i64 [%463, %$58] ; # Tail\n; # (& Tail -9)\n  %472 = and i64 %471, -9\n; # (cons Val (& Tail -9))\n  %473 = call i64 @cons(i64 %470, i64 %472)\n; # (sym (cons Val (& Tail -9)))\n  %474 = or i64 %473, 8\n  br label %$61\n$60:\n  %475 = phi i64 [%460, %$58] ; # Sym\n  %476 = phi i64 [%461, %$58] ; # Key\n  %477 = phi i64 [%464, %$58] ; # Val\n  %478 = phi i64 [%463, %$58] ; # Tail\n; # (cons Val Tail)\n  %479 = call i64 @cons(i64 %477, i64 %478)\n  br label %$61\n$61:\n  %480 = phi i64 [%468, %$59], [%475, %$60] ; # Sym\n  %481 = phi i64 [%469, %$59], [%476, %$60] ; # Key\n  %482 = phi i64 [%470, %$59], [%477, %$60] ; # Val\n  %483 = phi i64 [%471, %$59], [%478, %$60] ; # Tail\n  %484 = phi i64 [%474, %$59], [%479, %$60] ; # ->\n  %485 = inttoptr i64 %465 to i64*\n  store i64 %484, i64* %485\n  br label %$55\n$55:\n  %486 = phi i64 [%441, %$3], [%480, %$61] ; # Sym\n  %487 = phi i64 [%442, %$3], [%481, %$61] ; # Key\n  %488 = phi i64 [%443, %$3], [%482, %$61] ; # Val\n  %489 = phi i64 [%444, %$3], [%483, %$61] ; # Tail\n  ret void\n}\n\ndefine void @putn(i64, i64, i64, i64) align 8 {\n$1:\n; # (nond ((num? Key) (loop (let X (car Lst) (? (and (pair X) (== Key...\n; # (num? Key)\n  %4 = and i64 %2, 6\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$3, label %$4\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%1, %$1] ; # Lst\n  %8 = phi i64 [%2, %$1] ; # Key\n  %9 = phi i64 [%3, %$1] ; # Val\n; # (loop (let X (car Lst) (? (and (pair X) (== Key (car X))) (set 2 ...\n  br label %$5\n$5:\n  %10 = phi i64 [%6, %$4], [%53, %$12] ; # Exe\n  %11 = phi i64 [%7, %$4], [%54, %$12] ; # Lst\n  %12 = phi i64 [%8, %$4], [%55, %$12] ; # Key\n  %13 = phi i64 [%9, %$4], [%56, %$12] ; # Val\n; # (let X (car Lst) (? (and (pair X) (== Key (car X))) (set 2 X Val)...\n; # (car Lst)\n  %14 = inttoptr i64 %11 to i64*\n  %15 = load i64, i64* %14\n; # (? (and (pair X) (== Key (car X))) (set 2 X Val))\n; # (and (pair X) (== Key (car X)))\n; # (pair X)\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$7, label %$6\n$7:\n  %18 = phi i64 [%10, %$5] ; # Exe\n  %19 = phi i64 [%11, %$5] ; # Lst\n  %20 = phi i64 [%12, %$5] ; # Key\n  %21 = phi i64 [%13, %$5] ; # Val\n  %22 = phi i64 [%15, %$5] ; # X\n; # (car X)\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n; # (== Key (car X))\n  %25 = icmp eq i64 %20, %24\n  br label %$6\n$6:\n  %26 = phi i64 [%10, %$5], [%18, %$7] ; # Exe\n  %27 = phi i64 [%11, %$5], [%19, %$7] ; # Lst\n  %28 = phi i64 [%12, %$5], [%20, %$7] ; # Key\n  %29 = phi i64 [%13, %$5], [%21, %$7] ; # Val\n  %30 = phi i64 [%15, %$5], [%22, %$7] ; # X\n  %31 = phi i1 [0, %$5], [%25, %$7] ; # ->\n  br i1 %31, label %$10, label %$8\n$10:\n  %32 = phi i64 [%26, %$6] ; # Exe\n  %33 = phi i64 [%27, %$6] ; # Lst\n  %34 = phi i64 [%28, %$6] ; # Key\n  %35 = phi i64 [%29, %$6] ; # Val\n  %36 = phi i64 [%30, %$6] ; # X\n; # (set 2 X Val)\n  %37 = inttoptr i64 %36 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  store i64 %35, i64* %38\n  br label %$9\n$8:\n  %39 = phi i64 [%26, %$6] ; # Exe\n  %40 = phi i64 [%27, %$6] ; # Lst\n  %41 = phi i64 [%28, %$6] ; # Key\n  %42 = phi i64 [%29, %$6] ; # Val\n  %43 = phi i64 [%30, %$6] ; # X\n; # (when (atom (shift Lst)) (itemErr Exe Key))\n; # (shift Lst)\n  %44 = inttoptr i64 %40 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n; # (atom (shift Lst))\n  %47 = and i64 %46, 15\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$11, label %$12\n$11:\n  %49 = phi i64 [%39, %$8] ; # Exe\n  %50 = phi i64 [%46, %$8] ; # Lst\n  %51 = phi i64 [%41, %$8] ; # Key\n  %52 = phi i64 [%42, %$8] ; # Val\n; # (itemErr Exe Key)\n  call void @itemErr(i64 %49, i64 %51)\n  unreachable\n$12:\n  %53 = phi i64 [%39, %$8] ; # Exe\n  %54 = phi i64 [%46, %$8] ; # Lst\n  %55 = phi i64 [%41, %$8] ; # Key\n  %56 = phi i64 [%42, %$8] ; # Val\n  br label %$5\n$9:\n  %57 = phi i64 [%32, %$10] ; # Exe\n  %58 = phi i64 [%33, %$10] ; # Lst\n  %59 = phi i64 [%34, %$10] ; # Key\n  %60 = phi i64 [%35, %$10] ; # Val\n  %61 = phi i64 [%35, %$10] ; # ->\n  br label %$2\n$3:\n  %62 = phi i64 [%0, %$1] ; # Exe\n  %63 = phi i64 [%1, %$1] ; # Lst\n  %64 = phi i64 [%2, %$1] ; # Key\n  %65 = phi i64 [%3, %$1] ; # Val\n; # (== ZERO Key)\n  %66 = icmp eq i64 2, %64\n  br i1 %66, label %$13, label %$14\n$14:\n  %67 = phi i64 [%62, %$3] ; # Exe\n  %68 = phi i64 [%63, %$3] ; # Lst\n  %69 = phi i64 [%64, %$3] ; # Key\n  %70 = phi i64 [%65, %$3] ; # Val\n; # (let Cnt (int Key) (while (dec 'Cnt) (when (atom (shift Lst)) (it...\n; # (int Key)\n  %71 = lshr i64 %69, 4\n; # (while (dec 'Cnt) (when (atom (shift Lst)) (itemErr Exe Key)))\n  br label %$15\n$15:\n  %72 = phi i64 [%67, %$14], [%94, %$19] ; # Exe\n  %73 = phi i64 [%68, %$14], [%95, %$19] ; # Lst\n  %74 = phi i64 [%69, %$14], [%96, %$19] ; # Key\n  %75 = phi i64 [%70, %$14], [%97, %$19] ; # Val\n  %76 = phi i64 [%71, %$14], [%98, %$19] ; # Cnt\n; # (dec 'Cnt)\n  %77 = sub i64 %76, 1\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$16, label %$17\n$16:\n  %79 = phi i64 [%72, %$15] ; # Exe\n  %80 = phi i64 [%73, %$15] ; # Lst\n  %81 = phi i64 [%74, %$15] ; # Key\n  %82 = phi i64 [%75, %$15] ; # Val\n  %83 = phi i64 [%77, %$15] ; # Cnt\n; # (when (atom (shift Lst)) (itemErr Exe Key))\n; # (shift Lst)\n  %84 = inttoptr i64 %80 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n; # (atom (shift Lst))\n  %87 = and i64 %86, 15\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$18, label %$19\n$18:\n  %89 = phi i64 [%79, %$16] ; # Exe\n  %90 = phi i64 [%86, %$16] ; # Lst\n  %91 = phi i64 [%81, %$16] ; # Key\n  %92 = phi i64 [%82, %$16] ; # Val\n  %93 = phi i64 [%83, %$16] ; # Cnt\n; # (itemErr Exe Key)\n  call void @itemErr(i64 %89, i64 %91)\n  unreachable\n$19:\n  %94 = phi i64 [%79, %$16] ; # Exe\n  %95 = phi i64 [%86, %$16] ; # Lst\n  %96 = phi i64 [%81, %$16] ; # Key\n  %97 = phi i64 [%82, %$16] ; # Val\n  %98 = phi i64 [%83, %$16] ; # Cnt\n  br label %$15\n$17:\n  %99 = phi i64 [%72, %$15] ; # Exe\n  %100 = phi i64 [%73, %$15] ; # Lst\n  %101 = phi i64 [%74, %$15] ; # Key\n  %102 = phi i64 [%75, %$15] ; # Val\n  %103 = phi i64 [%77, %$15] ; # Cnt\n; # (if (sign? Key) (set 2 Lst Val) (set Lst Val))\n; # (sign? Key)\n  %104 = and i64 %101, 8\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$20, label %$21\n$20:\n  %106 = phi i64 [%99, %$17] ; # Exe\n  %107 = phi i64 [%100, %$17] ; # Lst\n  %108 = phi i64 [%101, %$17] ; # Key\n  %109 = phi i64 [%102, %$17] ; # Val\n; # (set 2 Lst Val)\n  %110 = inttoptr i64 %107 to i64*\n  %111 = getelementptr i64, i64* %110, i32 1\n  store i64 %109, i64* %111\n  br label %$22\n$21:\n  %112 = phi i64 [%99, %$17] ; # Exe\n  %113 = phi i64 [%100, %$17] ; # Lst\n  %114 = phi i64 [%101, %$17] ; # Key\n  %115 = phi i64 [%102, %$17] ; # Val\n; # (set Lst Val)\n  %116 = inttoptr i64 %113 to i64*\n  store i64 %115, i64* %116\n  br label %$22\n$22:\n  %117 = phi i64 [%106, %$20], [%112, %$21] ; # Exe\n  %118 = phi i64 [%107, %$20], [%113, %$21] ; # Lst\n  %119 = phi i64 [%108, %$20], [%114, %$21] ; # Key\n  %120 = phi i64 [%109, %$20], [%115, %$21] ; # Val\n  %121 = phi i64 [%109, %$20], [%115, %$21] ; # ->\n  br label %$2\n$13:\n  %122 = phi i64 [%62, %$3] ; # Exe\n  %123 = phi i64 [%63, %$3] ; # Lst\n  %124 = phi i64 [%64, %$3] ; # Key\n  %125 = phi i64 [%65, %$3] ; # Val\n; # (argErr Exe Key)\n  call void @argErr(i64 %122, i64 %124)\n  unreachable\n$2:\n  %126 = phi i64 [%57, %$9], [%117, %$22] ; # Exe\n  %127 = phi i64 [%58, %$9], [%118, %$22] ; # Lst\n  %128 = phi i64 [%59, %$9], [%119, %$22] ; # Key\n  %129 = phi i64 [%60, %$9], [%120, %$22] ; # Val\n  %130 = phi i64 [%61, %$9], [%121, %$22] ; # ->\n  ret void\n}\n\ndefine i64 @get(i64, i64) align 8 {\n$1:\n; # (let Tail (val (tail Sym)) (unless (num? Tail) (let (L (any (& Ta...\n; # (tail Sym)\n  %2 = add i64 %0, -8\n; # (val (tail Sym))\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n; # (unless (num? Tail) (let (L (any (& Tail -9)) X (car L)) (if (ato...\n; # (num? Tail)\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Sym\n  %8 = phi i64 [%1, %$1] ; # Key\n  %9 = phi i64 [%4, %$1] ; # Tail\n; # (let (L (any (& Tail -9)) X (car L)) (if (atom X) (when (== Key X...\n; # (& Tail -9)\n  %10 = and i64 %9, -9\n; # (any (& Tail -9))\n; # (car L)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (if (atom X) (when (== Key X) (ret $T)) (when (== Key (cdr X)) (r...\n; # (atom X)\n  %13 = and i64 %12, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$4, label %$5\n$4:\n  %15 = phi i64 [%7, %$2] ; # Sym\n  %16 = phi i64 [%8, %$2] ; # Key\n  %17 = phi i64 [%9, %$2] ; # Tail\n  %18 = phi i64 [%10, %$2] ; # L\n  %19 = phi i64 [%12, %$2] ; # X\n; # (when (== Key X) (ret $T))\n; # (== Key X)\n  %20 = icmp eq i64 %16, %19\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%15, %$4] ; # Sym\n  %22 = phi i64 [%16, %$4] ; # Key\n  %23 = phi i64 [%17, %$4] ; # Tail\n  %24 = phi i64 [%18, %$4] ; # L\n  %25 = phi i64 [%19, %$4] ; # X\n; # (ret $T)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n$8:\n  %26 = phi i64 [%15, %$4] ; # Sym\n  %27 = phi i64 [%16, %$4] ; # Key\n  %28 = phi i64 [%17, %$4] ; # Tail\n  %29 = phi i64 [%18, %$4] ; # L\n  %30 = phi i64 [%19, %$4] ; # X\n  br label %$6\n$5:\n  %31 = phi i64 [%7, %$2] ; # Sym\n  %32 = phi i64 [%8, %$2] ; # Key\n  %33 = phi i64 [%9, %$2] ; # Tail\n  %34 = phi i64 [%10, %$2] ; # L\n  %35 = phi i64 [%12, %$2] ; # X\n; # (when (== Key (cdr X)) (ret (car X)))\n; # (cdr X)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n; # (== Key (cdr X))\n  %39 = icmp eq i64 %32, %38\n  br i1 %39, label %$9, label %$10\n$9:\n  %40 = phi i64 [%31, %$5] ; # Sym\n  %41 = phi i64 [%32, %$5] ; # Key\n  %42 = phi i64 [%33, %$5] ; # Tail\n  %43 = phi i64 [%34, %$5] ; # L\n  %44 = phi i64 [%35, %$5] ; # X\n; # (car X)\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n; # (ret (car X))\n  ret i64 %46\n$10:\n  %47 = phi i64 [%31, %$5] ; # Sym\n  %48 = phi i64 [%32, %$5] ; # Key\n  %49 = phi i64 [%33, %$5] ; # Tail\n  %50 = phi i64 [%34, %$5] ; # L\n  %51 = phi i64 [%35, %$5] ; # X\n  br label %$6\n$6:\n  %52 = phi i64 [%26, %$8], [%47, %$10] ; # Sym\n  %53 = phi i64 [%27, %$8], [%48, %$10] ; # Key\n  %54 = phi i64 [%28, %$8], [%49, %$10] ; # Tail\n  %55 = phi i64 [%29, %$8], [%50, %$10] ; # L\n  %56 = phi i64 [%30, %$8], [%51, %$10] ; # X\n; # (while (pair (setq X (cdr L))) (let Y (car X) (if (atom Y) (when ...\n  br label %$11\n$11:\n  %57 = phi i64 [%52, %$6], [%187, %$16] ; # Sym\n  %58 = phi i64 [%53, %$6], [%188, %$16] ; # Key\n  %59 = phi i64 [%54, %$6], [%189, %$16] ; # Tail\n  %60 = phi i64 [%55, %$6], [%191, %$16] ; # L\n  %61 = phi i64 [%56, %$6], [%191, %$16] ; # X\n; # (cdr L)\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n; # (pair (setq X (cdr L)))\n  %65 = and i64 %64, 15\n  %66 = icmp eq i64 %65, 0\n  br i1 %66, label %$12, label %$13\n$12:\n  %67 = phi i64 [%57, %$11] ; # Sym\n  %68 = phi i64 [%58, %$11] ; # Key\n  %69 = phi i64 [%59, %$11] ; # Tail\n  %70 = phi i64 [%60, %$11] ; # L\n  %71 = phi i64 [%64, %$11] ; # X\n; # (let Y (car X) (if (atom Y) (when (== Key Y) (set 2 L (cdr X)) (i...\n; # (car X)\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n; # (if (atom Y) (when (== Key Y) (set 2 L (cdr X)) (ifn (sym? Tail) ...\n; # (atom Y)\n  %74 = and i64 %73, 15\n  %75 = icmp ne i64 %74, 0\n  br i1 %75, label %$14, label %$15\n$14:\n  %76 = phi i64 [%67, %$12] ; # Sym\n  %77 = phi i64 [%68, %$12] ; # Key\n  %78 = phi i64 [%69, %$12] ; # Tail\n  %79 = phi i64 [%70, %$12] ; # L\n  %80 = phi i64 [%71, %$12] ; # X\n  %81 = phi i64 [%73, %$12] ; # Y\n; # (when (== Key Y) (set 2 L (cdr X)) (ifn (sym? Tail) (set 2 X Tail...\n; # (== Key Y)\n  %82 = icmp eq i64 %77, %81\n  br i1 %82, label %$17, label %$18\n$17:\n  %83 = phi i64 [%76, %$14] ; # Sym\n  %84 = phi i64 [%77, %$14] ; # Key\n  %85 = phi i64 [%78, %$14] ; # Tail\n  %86 = phi i64 [%79, %$14] ; # L\n  %87 = phi i64 [%80, %$14] ; # X\n  %88 = phi i64 [%81, %$14] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %89 = inttoptr i64 %87 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 %86 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  store i64 %91, i64* %93\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %94 = and i64 %85, 8\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$20, label %$19\n$19:\n  %96 = phi i64 [%83, %$17] ; # Sym\n  %97 = phi i64 [%84, %$17] ; # Key\n  %98 = phi i64 [%85, %$17] ; # Tail\n  %99 = phi i64 [%86, %$17] ; # L\n  %100 = phi i64 [%87, %$17] ; # X\n  %101 = phi i64 [%88, %$17] ; # Y\n; # (set 2 X Tail)\n  %102 = inttoptr i64 %100 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  store i64 %98, i64* %103\n  br label %$21\n$20:\n  %104 = phi i64 [%83, %$17] ; # Sym\n  %105 = phi i64 [%84, %$17] ; # Key\n  %106 = phi i64 [%85, %$17] ; # Tail\n  %107 = phi i64 [%86, %$17] ; # L\n  %108 = phi i64 [%87, %$17] ; # X\n  %109 = phi i64 [%88, %$17] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %110 = and i64 %106, -9\n  %111 = inttoptr i64 %108 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  store i64 %110, i64* %112\n; # (sym X)\n  %113 = or i64 %108, 8\n  br label %$21\n$21:\n  %114 = phi i64 [%96, %$19], [%104, %$20] ; # Sym\n  %115 = phi i64 [%97, %$19], [%105, %$20] ; # Key\n  %116 = phi i64 [%98, %$19], [%106, %$20] ; # Tail\n  %117 = phi i64 [%99, %$19], [%107, %$20] ; # L\n  %118 = phi i64 [%100, %$19], [%113, %$20] ; # X\n  %119 = phi i64 [%101, %$19], [%109, %$20] ; # Y\n  %120 = phi i64 [%98, %$19], [%113, %$20] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %121 = add i64 %114, -8\n  %122 = inttoptr i64 %121 to i64*\n  store i64 %118, i64* %122\n; # (ret $T)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n$18:\n  %123 = phi i64 [%76, %$14] ; # Sym\n  %124 = phi i64 [%77, %$14] ; # Key\n  %125 = phi i64 [%78, %$14] ; # Tail\n  %126 = phi i64 [%79, %$14] ; # L\n  %127 = phi i64 [%80, %$14] ; # X\n  %128 = phi i64 [%81, %$14] ; # Y\n  br label %$16\n$15:\n  %129 = phi i64 [%67, %$12] ; # Sym\n  %130 = phi i64 [%68, %$12] ; # Key\n  %131 = phi i64 [%69, %$12] ; # Tail\n  %132 = phi i64 [%70, %$12] ; # L\n  %133 = phi i64 [%71, %$12] ; # X\n  %134 = phi i64 [%73, %$12] ; # Y\n; # (when (== Key (cdr Y)) (set 2 L (cdr X)) (ifn (sym? Tail) (set 2 ...\n; # (cdr Y)\n  %135 = inttoptr i64 %134 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n; # (== Key (cdr Y))\n  %138 = icmp eq i64 %130, %137\n  br i1 %138, label %$22, label %$23\n$22:\n  %139 = phi i64 [%129, %$15] ; # Sym\n  %140 = phi i64 [%130, %$15] ; # Key\n  %141 = phi i64 [%131, %$15] ; # Tail\n  %142 = phi i64 [%132, %$15] ; # L\n  %143 = phi i64 [%133, %$15] ; # X\n  %144 = phi i64 [%134, %$15] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %145 = inttoptr i64 %143 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  %147 = load i64, i64* %146\n  %148 = inttoptr i64 %142 to i64*\n  %149 = getelementptr i64, i64* %148, i32 1\n  store i64 %147, i64* %149\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %150 = and i64 %141, 8\n  %151 = icmp ne i64 %150, 0\n  br i1 %151, label %$25, label %$24\n$24:\n  %152 = phi i64 [%139, %$22] ; # Sym\n  %153 = phi i64 [%140, %$22] ; # Key\n  %154 = phi i64 [%141, %$22] ; # Tail\n  %155 = phi i64 [%142, %$22] ; # L\n  %156 = phi i64 [%143, %$22] ; # X\n  %157 = phi i64 [%144, %$22] ; # Y\n; # (set 2 X Tail)\n  %158 = inttoptr i64 %156 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  store i64 %154, i64* %159\n  br label %$26\n$25:\n  %160 = phi i64 [%139, %$22] ; # Sym\n  %161 = phi i64 [%140, %$22] ; # Key\n  %162 = phi i64 [%141, %$22] ; # Tail\n  %163 = phi i64 [%142, %$22] ; # L\n  %164 = phi i64 [%143, %$22] ; # X\n  %165 = phi i64 [%144, %$22] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %166 = and i64 %162, -9\n  %167 = inttoptr i64 %164 to i64*\n  %168 = getelementptr i64, i64* %167, i32 1\n  store i64 %166, i64* %168\n; # (sym X)\n  %169 = or i64 %164, 8\n  br label %$26\n$26:\n  %170 = phi i64 [%152, %$24], [%160, %$25] ; # Sym\n  %171 = phi i64 [%153, %$24], [%161, %$25] ; # Key\n  %172 = phi i64 [%154, %$24], [%162, %$25] ; # Tail\n  %173 = phi i64 [%155, %$24], [%163, %$25] ; # L\n  %174 = phi i64 [%156, %$24], [%169, %$25] ; # X\n  %175 = phi i64 [%157, %$24], [%165, %$25] ; # Y\n  %176 = phi i64 [%154, %$24], [%169, %$25] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %177 = add i64 %170, -8\n  %178 = inttoptr i64 %177 to i64*\n  store i64 %174, i64* %178\n; # (car Y)\n  %179 = inttoptr i64 %175 to i64*\n  %180 = load i64, i64* %179\n; # (ret (car Y))\n  ret i64 %180\n$23:\n  %181 = phi i64 [%129, %$15] ; # Sym\n  %182 = phi i64 [%130, %$15] ; # Key\n  %183 = phi i64 [%131, %$15] ; # Tail\n  %184 = phi i64 [%132, %$15] ; # L\n  %185 = phi i64 [%133, %$15] ; # X\n  %186 = phi i64 [%134, %$15] ; # Y\n  br label %$16\n$16:\n  %187 = phi i64 [%123, %$18], [%181, %$23] ; # Sym\n  %188 = phi i64 [%124, %$18], [%182, %$23] ; # Key\n  %189 = phi i64 [%125, %$18], [%183, %$23] ; # Tail\n  %190 = phi i64 [%126, %$18], [%184, %$23] ; # L\n  %191 = phi i64 [%127, %$18], [%185, %$23] ; # X\n  %192 = phi i64 [%128, %$18], [%186, %$23] ; # Y\n  br label %$11\n$13:\n  %193 = phi i64 [%57, %$11] ; # Sym\n  %194 = phi i64 [%58, %$11] ; # Key\n  %195 = phi i64 [%59, %$11] ; # Tail\n  %196 = phi i64 [%60, %$11] ; # L\n  %197 = phi i64 [%64, %$11] ; # X\n  br label %$3\n$3:\n  %198 = phi i64 [%0, %$1], [%193, %$13] ; # Sym\n  %199 = phi i64 [%1, %$1], [%194, %$13] ; # Key\n  %200 = phi i64 [%4, %$1], [%195, %$13] ; # Tail\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @getn(i64, i64, i64) align 8 {\n$1:\n; # (when (num? X) (argErr Exe X))\n; # (num? X)\n  %3 = and i64 %1, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  %6 = phi i64 [%1, %$1] ; # X\n  %7 = phi i64 [%2, %$1] ; # Key\n; # (argErr Exe X)\n  call void @argErr(i64 %5, i64 %6)\n  unreachable\n$3:\n  %8 = phi i64 [%0, %$1] ; # Exe\n  %9 = phi i64 [%1, %$1] ; # X\n  %10 = phi i64 [%2, %$1] ; # Key\n; # (if (pair X) (nond ((num? Key) (loop (let Y (car X) (? (and (pair...\n; # (pair X)\n  %11 = and i64 %9, 15\n  %12 = icmp eq i64 %11, 0\n  br i1 %12, label %$4, label %$5\n$4:\n  %13 = phi i64 [%8, %$3] ; # Exe\n  %14 = phi i64 [%9, %$3] ; # X\n  %15 = phi i64 [%10, %$3] ; # Key\n; # (nond ((num? Key) (loop (let Y (car X) (? (and (pair Y) (== Key (...\n; # (num? Key)\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$8, label %$9\n$9:\n  %18 = phi i64 [%13, %$4] ; # Exe\n  %19 = phi i64 [%14, %$4] ; # X\n  %20 = phi i64 [%15, %$4] ; # Key\n; # (loop (let Y (car X) (? (and (pair Y) (== Key (car Y))) (cdr Y)))...\n  br label %$10\n$10:\n  %21 = phi i64 [%18, %$9], [%59, %$16] ; # Exe\n  %22 = phi i64 [%19, %$9], [%60, %$16] ; # X\n  %23 = phi i64 [%20, %$9], [%61, %$16] ; # Key\n; # (let Y (car X) (? (and (pair Y) (== Key (car Y))) (cdr Y)))\n; # (car X)\n  %24 = inttoptr i64 %22 to i64*\n  %25 = load i64, i64* %24\n; # (? (and (pair Y) (== Key (car Y))) (cdr Y))\n; # (and (pair Y) (== Key (car Y)))\n; # (pair Y)\n  %26 = and i64 %25, 15\n  %27 = icmp eq i64 %26, 0\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%21, %$10] ; # Exe\n  %29 = phi i64 [%22, %$10] ; # X\n  %30 = phi i64 [%23, %$10] ; # Key\n  %31 = phi i64 [%25, %$10] ; # Y\n; # (car Y)\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n; # (== Key (car Y))\n  %34 = icmp eq i64 %30, %33\n  br label %$11\n$11:\n  %35 = phi i64 [%21, %$10], [%28, %$12] ; # Exe\n  %36 = phi i64 [%22, %$10], [%29, %$12] ; # X\n  %37 = phi i64 [%23, %$10], [%30, %$12] ; # Key\n  %38 = phi i64 [%25, %$10], [%31, %$12] ; # Y\n  %39 = phi i1 [0, %$10], [%34, %$12] ; # ->\n  br i1 %39, label %$15, label %$13\n$15:\n  %40 = phi i64 [%35, %$11] ; # Exe\n  %41 = phi i64 [%36, %$11] ; # X\n  %42 = phi i64 [%37, %$11] ; # Key\n  %43 = phi i64 [%38, %$11] ; # Y\n; # (cdr Y)\n  %44 = inttoptr i64 %43 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n  br label %$14\n$13:\n  %47 = phi i64 [%35, %$11] ; # Exe\n  %48 = phi i64 [%36, %$11] ; # X\n  %49 = phi i64 [%37, %$11] ; # Key\n  %50 = phi i64 [%38, %$11] ; # Y\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %51 = inttoptr i64 %48 to i64*\n  %52 = getelementptr i64, i64* %51, i32 1\n  %53 = load i64, i64* %52\n; # (atom (shift X))\n  %54 = and i64 %53, 15\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$17, label %$16\n$17:\n  %56 = phi i64 [%47, %$13] ; # Exe\n  %57 = phi i64 [%53, %$13] ; # X\n  %58 = phi i64 [%49, %$13] ; # Key\n  br label %$14\n$16:\n  %59 = phi i64 [%47, %$13] ; # Exe\n  %60 = phi i64 [%53, %$13] ; # X\n  %61 = phi i64 [%49, %$13] ; # Key\n  br label %$10\n$14:\n  %62 = phi i64 [%40, %$15], [%56, %$17] ; # Exe\n  %63 = phi i64 [%41, %$15], [%57, %$17] ; # X\n  %64 = phi i64 [%42, %$15], [%58, %$17] ; # Key\n  %65 = phi i64 [%46, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n  br label %$7\n$8:\n  %66 = phi i64 [%13, %$4] ; # Exe\n  %67 = phi i64 [%14, %$4] ; # X\n  %68 = phi i64 [%15, %$4] ; # Key\n; # (== ZERO Key)\n  %69 = icmp eq i64 2, %68\n  br i1 %69, label %$18, label %$19\n$19:\n  %70 = phi i64 [%66, %$8] ; # Exe\n  %71 = phi i64 [%67, %$8] ; # X\n  %72 = phi i64 [%68, %$8] ; # Key\n; # (nth Key X)\n  %73 = lshr i64 %72, 4\n  br label %$20\n$20:\n  %74 = phi i64 [%71, %$19], [%84, %$21] ; # X\n  %75 = phi i64 [%72, %$19], [%80, %$21] ; # N\n  %76 = phi i64 [%73, %$19], [%81, %$21] ; # C\n  %77 = sub i64 %76, 1\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$21, label %$22\n$21:\n  %79 = phi i64 [%74, %$20] ; # X\n  %80 = phi i64 [%75, %$20] ; # N\n  %81 = phi i64 [%77, %$20] ; # C\n  %82 = inttoptr i64 %79 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  %84 = load i64, i64* %83\n  br label %$20\n$22:\n  %85 = phi i64 [%74, %$20] ; # X\n  %86 = phi i64 [%75, %$20] ; # N\n  %87 = phi i64 [%77, %$20] ; # C\n  %88 = and i64 %86, 8\n  %89 = icmp ne i64 %88, 0\n  br i1 %89, label %$23, label %$24\n$23:\n  %90 = phi i64 [%85, %$22] ; # X\n  %91 = phi i64 [%86, %$22] ; # N\n  %92 = phi i64 [%87, %$22] ; # C\n  %93 = inttoptr i64 %90 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  br label %$25\n$24:\n  %96 = phi i64 [%85, %$22] ; # X\n  %97 = phi i64 [%86, %$22] ; # N\n  %98 = phi i64 [%87, %$22] ; # C\n  %99 = inttoptr i64 %96 to i64*\n  %100 = load i64, i64* %99\n  br label %$25\n$25:\n  %101 = phi i64 [%90, %$23], [%96, %$24] ; # X\n  %102 = phi i64 [%91, %$23], [%97, %$24] ; # N\n  %103 = phi i64 [%92, %$23], [%98, %$24] ; # C\n  %104 = phi i64 [%95, %$23], [%100, %$24] ; # ->\n  br label %$7\n$18:\n  %105 = phi i64 [%66, %$8] ; # Exe\n  %106 = phi i64 [%67, %$8] ; # X\n  %107 = phi i64 [%68, %$8] ; # Key\n  br label %$7\n$7:\n  %108 = phi i64 [%62, %$14], [%70, %$25], [%105, %$18] ; # Exe\n  %109 = phi i64 [%63, %$14], [%71, %$25], [%106, %$18] ; # X\n  %110 = phi i64 [%64, %$14], [%72, %$25], [%107, %$18] ; # Key\n  %111 = phi i64 [%65, %$14], [%104, %$25], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18] ; # ->\n  br label %$6\n$5:\n  %112 = phi i64 [%8, %$3] ; # Exe\n  %113 = phi i64 [%9, %$3] ; # X\n  %114 = phi i64 [%10, %$3] ; # Key\n; # (when (sym? (val (tail X))) (dbFetch Exe X))\n; # (tail X)\n  %115 = add i64 %113, -8\n; # (val (tail X))\n  %116 = inttoptr i64 %115 to i64*\n  %117 = load i64, i64* %116\n; # (sym? (val (tail X)))\n  %118 = and i64 %117, 8\n  %119 = icmp ne i64 %118, 0\n  br i1 %119, label %$26, label %$27\n$26:\n  %120 = phi i64 [%112, %$5] ; # Exe\n  %121 = phi i64 [%113, %$5] ; # X\n  %122 = phi i64 [%114, %$5] ; # Key\n; # (dbFetch Exe X)\n  call void @dbFetch(i64 %120, i64 %121)\n  br label %$27\n$27:\n  %123 = phi i64 [%112, %$5], [%120, %$26] ; # Exe\n  %124 = phi i64 [%113, %$5], [%121, %$26] ; # X\n  %125 = phi i64 [%114, %$5], [%122, %$26] ; # Key\n; # (if (== Key ZERO) (val X) (tailcall (get X Key)))\n; # (== Key ZERO)\n  %126 = icmp eq i64 %125, 2\n  br i1 %126, label %$28, label %$29\n$28:\n  %127 = phi i64 [%123, %$27] ; # Exe\n  %128 = phi i64 [%124, %$27] ; # X\n  %129 = phi i64 [%125, %$27] ; # Key\n; # (val X)\n  %130 = inttoptr i64 %128 to i64*\n  %131 = load i64, i64* %130\n  br label %$30\n$29:\n  %132 = phi i64 [%123, %$27] ; # Exe\n  %133 = phi i64 [%124, %$27] ; # X\n  %134 = phi i64 [%125, %$27] ; # Key\n; # (get X Key)\n  %135 = tail call i64 @get(i64 %133, i64 %134)\n  br label %$30\n$30:\n  %136 = phi i64 [%127, %$28], [%132, %$29] ; # Exe\n  %137 = phi i64 [%128, %$28], [%133, %$29] ; # X\n  %138 = phi i64 [%129, %$28], [%134, %$29] ; # Key\n  %139 = phi i64 [%131, %$28], [%135, %$29] ; # ->\n  br label %$6\n$6:\n  %140 = phi i64 [%108, %$7], [%136, %$30] ; # Exe\n  %141 = phi i64 [%109, %$7], [%137, %$30] ; # X\n  %142 = phi i64 [%110, %$7], [%138, %$30] ; # Key\n  %143 = phi i64 [%111, %$7], [%139, %$30] ; # ->\n  ret i64 %143\n}\n\ndefine i64 @prop(i64, i64) align 8 {\n$1:\n; # (let Tail (val (tail Sym)) (unless (num? Tail) (let (L (any (& Ta...\n; # (tail Sym)\n  %2 = add i64 %0, -8\n; # (val (tail Sym))\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n; # (unless (num? Tail) (let (L (any (& Tail -9)) X (car L)) (if (ato...\n; # (num? Tail)\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Sym\n  %8 = phi i64 [%1, %$1] ; # Key\n  %9 = phi i64 [%4, %$1] ; # Tail\n; # (let (L (any (& Tail -9)) X (car L)) (if (atom X) (when (== Key X...\n; # (& Tail -9)\n  %10 = and i64 %9, -9\n; # (any (& Tail -9))\n; # (car L)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (if (atom X) (when (== Key X) (ret Key)) (when (== Key (cdr X)) (...\n; # (atom X)\n  %13 = and i64 %12, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$4, label %$5\n$4:\n  %15 = phi i64 [%7, %$2] ; # Sym\n  %16 = phi i64 [%8, %$2] ; # Key\n  %17 = phi i64 [%9, %$2] ; # Tail\n  %18 = phi i64 [%10, %$2] ; # L\n  %19 = phi i64 [%12, %$2] ; # X\n; # (when (== Key X) (ret Key))\n; # (== Key X)\n  %20 = icmp eq i64 %16, %19\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%15, %$4] ; # Sym\n  %22 = phi i64 [%16, %$4] ; # Key\n  %23 = phi i64 [%17, %$4] ; # Tail\n  %24 = phi i64 [%18, %$4] ; # L\n  %25 = phi i64 [%19, %$4] ; # X\n; # (ret Key)\n  ret i64 %22\n$8:\n  %26 = phi i64 [%15, %$4] ; # Sym\n  %27 = phi i64 [%16, %$4] ; # Key\n  %28 = phi i64 [%17, %$4] ; # Tail\n  %29 = phi i64 [%18, %$4] ; # L\n  %30 = phi i64 [%19, %$4] ; # X\n  br label %$6\n$5:\n  %31 = phi i64 [%7, %$2] ; # Sym\n  %32 = phi i64 [%8, %$2] ; # Key\n  %33 = phi i64 [%9, %$2] ; # Tail\n  %34 = phi i64 [%10, %$2] ; # L\n  %35 = phi i64 [%12, %$2] ; # X\n; # (when (== Key (cdr X)) (ret X))\n; # (cdr X)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n; # (== Key (cdr X))\n  %39 = icmp eq i64 %32, %38\n  br i1 %39, label %$9, label %$10\n$9:\n  %40 = phi i64 [%31, %$5] ; # Sym\n  %41 = phi i64 [%32, %$5] ; # Key\n  %42 = phi i64 [%33, %$5] ; # Tail\n  %43 = phi i64 [%34, %$5] ; # L\n  %44 = phi i64 [%35, %$5] ; # X\n; # (ret X)\n  ret i64 %44\n$10:\n  %45 = phi i64 [%31, %$5] ; # Sym\n  %46 = phi i64 [%32, %$5] ; # Key\n  %47 = phi i64 [%33, %$5] ; # Tail\n  %48 = phi i64 [%34, %$5] ; # L\n  %49 = phi i64 [%35, %$5] ; # X\n  br label %$6\n$6:\n  %50 = phi i64 [%26, %$8], [%45, %$10] ; # Sym\n  %51 = phi i64 [%27, %$8], [%46, %$10] ; # Key\n  %52 = phi i64 [%28, %$8], [%47, %$10] ; # Tail\n  %53 = phi i64 [%29, %$8], [%48, %$10] ; # L\n  %54 = phi i64 [%30, %$8], [%49, %$10] ; # X\n; # (while (pair (setq X (cdr L))) (let Y (car X) (if (atom Y) (when ...\n  br label %$11\n$11:\n  %55 = phi i64 [%50, %$6], [%183, %$16] ; # Sym\n  %56 = phi i64 [%51, %$6], [%184, %$16] ; # Key\n  %57 = phi i64 [%52, %$6], [%185, %$16] ; # Tail\n  %58 = phi i64 [%53, %$6], [%187, %$16] ; # L\n  %59 = phi i64 [%54, %$6], [%187, %$16] ; # X\n; # (cdr L)\n  %60 = inttoptr i64 %58 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n; # (pair (setq X (cdr L)))\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$12, label %$13\n$12:\n  %65 = phi i64 [%55, %$11] ; # Sym\n  %66 = phi i64 [%56, %$11] ; # Key\n  %67 = phi i64 [%57, %$11] ; # Tail\n  %68 = phi i64 [%58, %$11] ; # L\n  %69 = phi i64 [%62, %$11] ; # X\n; # (let Y (car X) (if (atom Y) (when (== Key Y) (set 2 L (cdr X)) (i...\n; # (car X)\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n; # (if (atom Y) (when (== Key Y) (set 2 L (cdr X)) (ifn (sym? Tail) ...\n; # (atom Y)\n  %72 = and i64 %71, 15\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$14, label %$15\n$14:\n  %74 = phi i64 [%65, %$12] ; # Sym\n  %75 = phi i64 [%66, %$12] ; # Key\n  %76 = phi i64 [%67, %$12] ; # Tail\n  %77 = phi i64 [%68, %$12] ; # L\n  %78 = phi i64 [%69, %$12] ; # X\n  %79 = phi i64 [%71, %$12] ; # Y\n; # (when (== Key Y) (set 2 L (cdr X)) (ifn (sym? Tail) (set 2 X Tail...\n; # (== Key Y)\n  %80 = icmp eq i64 %75, %79\n  br i1 %80, label %$17, label %$18\n$17:\n  %81 = phi i64 [%74, %$14] ; # Sym\n  %82 = phi i64 [%75, %$14] ; # Key\n  %83 = phi i64 [%76, %$14] ; # Tail\n  %84 = phi i64 [%77, %$14] ; # L\n  %85 = phi i64 [%78, %$14] ; # X\n  %86 = phi i64 [%79, %$14] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %87 = inttoptr i64 %85 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  %89 = load i64, i64* %88\n  %90 = inttoptr i64 %84 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  store i64 %89, i64* %91\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %92 = and i64 %83, 8\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$20, label %$19\n$19:\n  %94 = phi i64 [%81, %$17] ; # Sym\n  %95 = phi i64 [%82, %$17] ; # Key\n  %96 = phi i64 [%83, %$17] ; # Tail\n  %97 = phi i64 [%84, %$17] ; # L\n  %98 = phi i64 [%85, %$17] ; # X\n  %99 = phi i64 [%86, %$17] ; # Y\n; # (set 2 X Tail)\n  %100 = inttoptr i64 %98 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  store i64 %96, i64* %101\n  br label %$21\n$20:\n  %102 = phi i64 [%81, %$17] ; # Sym\n  %103 = phi i64 [%82, %$17] ; # Key\n  %104 = phi i64 [%83, %$17] ; # Tail\n  %105 = phi i64 [%84, %$17] ; # L\n  %106 = phi i64 [%85, %$17] ; # X\n  %107 = phi i64 [%86, %$17] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %108 = and i64 %104, -9\n  %109 = inttoptr i64 %106 to i64*\n  %110 = getelementptr i64, i64* %109, i32 1\n  store i64 %108, i64* %110\n; # (sym X)\n  %111 = or i64 %106, 8\n  br label %$21\n$21:\n  %112 = phi i64 [%94, %$19], [%102, %$20] ; # Sym\n  %113 = phi i64 [%95, %$19], [%103, %$20] ; # Key\n  %114 = phi i64 [%96, %$19], [%104, %$20] ; # Tail\n  %115 = phi i64 [%97, %$19], [%105, %$20] ; # L\n  %116 = phi i64 [%98, %$19], [%111, %$20] ; # X\n  %117 = phi i64 [%99, %$19], [%107, %$20] ; # Y\n  %118 = phi i64 [%96, %$19], [%111, %$20] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %119 = add i64 %112, -8\n  %120 = inttoptr i64 %119 to i64*\n  store i64 %116, i64* %120\n; # (ret Key)\n  ret i64 %113\n$18:\n  %121 = phi i64 [%74, %$14] ; # Sym\n  %122 = phi i64 [%75, %$14] ; # Key\n  %123 = phi i64 [%76, %$14] ; # Tail\n  %124 = phi i64 [%77, %$14] ; # L\n  %125 = phi i64 [%78, %$14] ; # X\n  %126 = phi i64 [%79, %$14] ; # Y\n  br label %$16\n$15:\n  %127 = phi i64 [%65, %$12] ; # Sym\n  %128 = phi i64 [%66, %$12] ; # Key\n  %129 = phi i64 [%67, %$12] ; # Tail\n  %130 = phi i64 [%68, %$12] ; # L\n  %131 = phi i64 [%69, %$12] ; # X\n  %132 = phi i64 [%71, %$12] ; # Y\n; # (when (== Key (cdr Y)) (set 2 L (cdr X)) (ifn (sym? Tail) (set 2 ...\n; # (cdr Y)\n  %133 = inttoptr i64 %132 to i64*\n  %134 = getelementptr i64, i64* %133, i32 1\n  %135 = load i64, i64* %134\n; # (== Key (cdr Y))\n  %136 = icmp eq i64 %128, %135\n  br i1 %136, label %$22, label %$23\n$22:\n  %137 = phi i64 [%127, %$15] ; # Sym\n  %138 = phi i64 [%128, %$15] ; # Key\n  %139 = phi i64 [%129, %$15] ; # Tail\n  %140 = phi i64 [%130, %$15] ; # L\n  %141 = phi i64 [%131, %$15] ; # X\n  %142 = phi i64 [%132, %$15] ; # Y\n; # (set 2 L (cdr X))\n; # (cdr X)\n  %143 = inttoptr i64 %141 to i64*\n  %144 = getelementptr i64, i64* %143, i32 1\n  %145 = load i64, i64* %144\n  %146 = inttoptr i64 %140 to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  store i64 %145, i64* %147\n; # (ifn (sym? Tail) (set 2 X Tail) (set 2 X (& Tail -9)) (setq X (sy...\n; # (sym? Tail)\n  %148 = and i64 %139, 8\n  %149 = icmp ne i64 %148, 0\n  br i1 %149, label %$25, label %$24\n$24:\n  %150 = phi i64 [%137, %$22] ; # Sym\n  %151 = phi i64 [%138, %$22] ; # Key\n  %152 = phi i64 [%139, %$22] ; # Tail\n  %153 = phi i64 [%140, %$22] ; # L\n  %154 = phi i64 [%141, %$22] ; # X\n  %155 = phi i64 [%142, %$22] ; # Y\n; # (set 2 X Tail)\n  %156 = inttoptr i64 %154 to i64*\n  %157 = getelementptr i64, i64* %156, i32 1\n  store i64 %152, i64* %157\n  br label %$26\n$25:\n  %158 = phi i64 [%137, %$22] ; # Sym\n  %159 = phi i64 [%138, %$22] ; # Key\n  %160 = phi i64 [%139, %$22] ; # Tail\n  %161 = phi i64 [%140, %$22] ; # L\n  %162 = phi i64 [%141, %$22] ; # X\n  %163 = phi i64 [%142, %$22] ; # Y\n; # (set 2 X (& Tail -9))\n; # (& Tail -9)\n  %164 = and i64 %160, -9\n  %165 = inttoptr i64 %162 to i64*\n  %166 = getelementptr i64, i64* %165, i32 1\n  store i64 %164, i64* %166\n; # (sym X)\n  %167 = or i64 %162, 8\n  br label %$26\n$26:\n  %168 = phi i64 [%150, %$24], [%158, %$25] ; # Sym\n  %169 = phi i64 [%151, %$24], [%159, %$25] ; # Key\n  %170 = phi i64 [%152, %$24], [%160, %$25] ; # Tail\n  %171 = phi i64 [%153, %$24], [%161, %$25] ; # L\n  %172 = phi i64 [%154, %$24], [%167, %$25] ; # X\n  %173 = phi i64 [%155, %$24], [%163, %$25] ; # Y\n  %174 = phi i64 [%152, %$24], [%167, %$25] ; # ->\n; # (set (tail Sym) X)\n; # (tail Sym)\n  %175 = add i64 %168, -8\n  %176 = inttoptr i64 %175 to i64*\n  store i64 %172, i64* %176\n; # (ret Y)\n  ret i64 %173\n$23:\n  %177 = phi i64 [%127, %$15] ; # Sym\n  %178 = phi i64 [%128, %$15] ; # Key\n  %179 = phi i64 [%129, %$15] ; # Tail\n  %180 = phi i64 [%130, %$15] ; # L\n  %181 = phi i64 [%131, %$15] ; # X\n  %182 = phi i64 [%132, %$15] ; # Y\n  br label %$16\n$16:\n  %183 = phi i64 [%121, %$18], [%177, %$23] ; # Sym\n  %184 = phi i64 [%122, %$18], [%178, %$23] ; # Key\n  %185 = phi i64 [%123, %$18], [%179, %$23] ; # Tail\n  %186 = phi i64 [%124, %$18], [%180, %$23] ; # L\n  %187 = phi i64 [%125, %$18], [%181, %$23] ; # X\n  %188 = phi i64 [%126, %$18], [%182, %$23] ; # Y\n  br label %$11\n$13:\n  %189 = phi i64 [%55, %$11] ; # Sym\n  %190 = phi i64 [%56, %$11] ; # Key\n  %191 = phi i64 [%57, %$11] ; # Tail\n  %192 = phi i64 [%58, %$11] ; # L\n  %193 = phi i64 [%62, %$11] ; # X\n  br label %$3\n$3:\n  %194 = phi i64 [%0, %$1], [%189, %$13] ; # Sym\n  %195 = phi i64 [%1, %$1], [%190, %$13] ; # Key\n  %196 = phi i64 [%4, %$1], [%191, %$13] ; # Tail\n; # (let R (cons $Nil Key) (set (tail Sym) (if (sym? Tail) (sym (cons...\n; # (cons $Nil Key)\n  %197 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %195)\n; # (set (tail Sym) (if (sym? Tail) (sym (cons R (& Tail -9))) (cons ...\n; # (tail Sym)\n  %198 = add i64 %194, -8\n; # (if (sym? Tail) (sym (cons R (& Tail -9))) (cons R Tail))\n; # (sym? Tail)\n  %199 = and i64 %196, 8\n  %200 = icmp ne i64 %199, 0\n  br i1 %200, label %$27, label %$28\n$27:\n  %201 = phi i64 [%194, %$3] ; # Sym\n  %202 = phi i64 [%195, %$3] ; # Key\n  %203 = phi i64 [%196, %$3] ; # Tail\n  %204 = phi i64 [%197, %$3] ; # R\n; # (& Tail -9)\n  %205 = and i64 %203, -9\n; # (cons R (& Tail -9))\n  %206 = call i64 @cons(i64 %204, i64 %205)\n; # (sym (cons R (& Tail -9)))\n  %207 = or i64 %206, 8\n  br label %$29\n$28:\n  %208 = phi i64 [%194, %$3] ; # Sym\n  %209 = phi i64 [%195, %$3] ; # Key\n  %210 = phi i64 [%196, %$3] ; # Tail\n  %211 = phi i64 [%197, %$3] ; # R\n; # (cons R Tail)\n  %212 = call i64 @cons(i64 %211, i64 %210)\n  br label %$29\n$29:\n  %213 = phi i64 [%201, %$27], [%208, %$28] ; # Sym\n  %214 = phi i64 [%202, %$27], [%209, %$28] ; # Key\n  %215 = phi i64 [%203, %$27], [%210, %$28] ; # Tail\n  %216 = phi i64 [%204, %$27], [%211, %$28] ; # R\n  %217 = phi i64 [%207, %$27], [%212, %$28] ; # ->\n  %218 = inttoptr i64 %198 to i64*\n  store i64 %217, i64* %218\n  ret i64 %216\n}\n\ndefine i64 @_Put(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Key T) (loop (setq Key (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (loop (setq Key (eval (++ X))) (? (atom (cdr X))) (setq Y (safe (...\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%54, %$13] ; # Exe\n  %30 = phi i64 [%6, %$2], [%55, %$13] ; # X\n  %31 = phi i64 [%20, %$2], [%58, %$13] ; # Y\n; # (++ X)\n  %32 = inttoptr i64 %30 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n  %35 = load i64, i64* %32\n; # (eval (++ X))\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$10, label %$9\n$10:\n  %38 = phi i64 [%35, %$7] ; # X\n  br label %$8\n$9:\n  %39 = phi i64 [%35, %$7] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$12, label %$11\n$12:\n  %42 = phi i64 [%39, %$9] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$8\n$11:\n  %45 = phi i64 [%39, %$9] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$8\n$8:\n  %47 = phi i64 [%38, %$10], [%42, %$12], [%45, %$11] ; # X\n  %48 = phi i64 [%38, %$10], [%44, %$12], [%46, %$11] ; # ->\n; # (? (atom (cdr X)))\n; # (cdr X)\n  %49 = inttoptr i64 %34 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n; # (atom (cdr X))\n  %52 = and i64 %51, 15\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$14, label %$13\n$13:\n  %54 = phi i64 [%29, %$8] ; # Exe\n  %55 = phi i64 [%34, %$8] ; # X\n  %56 = phi i64 [%31, %$8] ; # Y\n  %57 = phi i64 [%48, %$8] ; # Key\n; # (getn Exe Y Key)\n  %58 = call i64 @getn(i64 %54, i64 %56, i64 %57)\n; # (safe (getn Exe Y Key))\n  %59 = inttoptr i64 %24 to i64*\n  store i64 %58, i64* %59\n  br label %$7\n$14:\n  %60 = phi i64 [%29, %$8] ; # Exe\n  %61 = phi i64 [%34, %$8] ; # X\n  %62 = phi i64 [%31, %$8] ; # Y\n  %63 = phi i64 [%48, %$8] ; # Key\n  %64 = phi i64 [0, %$8] ; # ->\n; # (when (num? Y) (argErr Exe Y))\n; # (num? Y)\n  %65 = and i64 %62, 6\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$15, label %$16\n$15:\n  %67 = phi i64 [%60, %$14] ; # Exe\n  %68 = phi i64 [%61, %$14] ; # X\n  %69 = phi i64 [%62, %$14] ; # Y\n  %70 = phi i64 [%63, %$14] ; # Key\n; # (argErr Exe Y)\n  call void @argErr(i64 %67, i64 %69)\n  unreachable\n$16:\n  %71 = phi i64 [%60, %$14] ; # Exe\n  %72 = phi i64 [%61, %$14] ; # X\n  %73 = phi i64 [%62, %$14] ; # Y\n  %74 = phi i64 [%63, %$14] ; # Key\n; # (push Key NIL)\n  %75 = alloca i64, i64 2, align 16\n  %76 = ptrtoint i64* %75 to i64\n  %77 = inttoptr i64 %76 to i64*\n  store i64 %74, i64* %77\n; # (link (push Key NIL))\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %79 = load i64, i64* %78\n  %80 = inttoptr i64 %76 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  store i64 %79, i64* %81\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %76, i64* %82\n; # (let Val (eval (car X)) (if (pair Y) (putn Exe Y Key Val) (when (...\n; # (car X)\n  %83 = inttoptr i64 %72 to i64*\n  %84 = load i64, i64* %83\n; # (eval (car X))\n  %85 = and i64 %84, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$19, label %$18\n$19:\n  %87 = phi i64 [%84, %$16] ; # X\n  br label %$17\n$18:\n  %88 = phi i64 [%84, %$16] ; # X\n  %89 = and i64 %88, 8\n  %90 = icmp ne i64 %89, 0\n  br i1 %90, label %$21, label %$20\n$21:\n  %91 = phi i64 [%88, %$18] ; # X\n  %92 = inttoptr i64 %91 to i64*\n  %93 = load i64, i64* %92\n  br label %$17\n$20:\n  %94 = phi i64 [%88, %$18] ; # X\n  %95 = call i64 @evList(i64 %94)\n  br label %$17\n$17:\n  %96 = phi i64 [%87, %$19], [%91, %$21], [%94, %$20] ; # X\n  %97 = phi i64 [%87, %$19], [%93, %$21], [%95, %$20] ; # ->\n; # (if (pair Y) (putn Exe Y Key Val) (when (sym? (val (tail Y))) (if...\n; # (pair Y)\n  %98 = and i64 %73, 15\n  %99 = icmp eq i64 %98, 0\n  br i1 %99, label %$22, label %$23\n$22:\n  %100 = phi i64 [%71, %$17] ; # Exe\n  %101 = phi i64 [%72, %$17] ; # X\n  %102 = phi i64 [%73, %$17] ; # Y\n  %103 = phi i64 [%74, %$17] ; # Key\n  %104 = phi i64 [%97, %$17] ; # Val\n; # (putn Exe Y Key Val)\n  call void @putn(i64 %100, i64 %102, i64 %103, i64 %104)\n  br label %$24\n$23:\n  %105 = phi i64 [%71, %$17] ; # Exe\n  %106 = phi i64 [%72, %$17] ; # X\n  %107 = phi i64 [%73, %$17] ; # Y\n  %108 = phi i64 [%74, %$17] ; # Key\n  %109 = phi i64 [%97, %$17] ; # Val\n; # (when (sym? (val (tail Y))) (if (nil? Key) (dbFetch Exe Y) (dbTou...\n; # (tail Y)\n  %110 = add i64 %107, -8\n; # (val (tail Y))\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n; # (sym? (val (tail Y)))\n  %113 = and i64 %112, 8\n  %114 = icmp ne i64 %113, 0\n  br i1 %114, label %$25, label %$26\n$25:\n  %115 = phi i64 [%105, %$23] ; # Exe\n  %116 = phi i64 [%106, %$23] ; # X\n  %117 = phi i64 [%107, %$23] ; # Y\n  %118 = phi i64 [%108, %$23] ; # Key\n  %119 = phi i64 [%109, %$23] ; # Val\n; # (if (nil? Key) (dbFetch Exe Y) (dbTouch Exe Y))\n; # (nil? Key)\n  %120 = icmp eq i64 %118, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %120, label %$27, label %$28\n$27:\n  %121 = phi i64 [%115, %$25] ; # Exe\n  %122 = phi i64 [%116, %$25] ; # X\n  %123 = phi i64 [%117, %$25] ; # Y\n  %124 = phi i64 [%118, %$25] ; # Key\n  %125 = phi i64 [%119, %$25] ; # Val\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %121, i64 %123)\n  br label %$29\n$28:\n  %126 = phi i64 [%115, %$25] ; # Exe\n  %127 = phi i64 [%116, %$25] ; # X\n  %128 = phi i64 [%117, %$25] ; # Y\n  %129 = phi i64 [%118, %$25] ; # Key\n  %130 = phi i64 [%119, %$25] ; # Val\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %126, i64 %128)\n  br label %$29\n$29:\n  %131 = phi i64 [%121, %$27], [%126, %$28] ; # Exe\n  %132 = phi i64 [%122, %$27], [%127, %$28] ; # X\n  %133 = phi i64 [%123, %$27], [%128, %$28] ; # Y\n  %134 = phi i64 [%124, %$27], [%129, %$28] ; # Key\n  %135 = phi i64 [%125, %$27], [%130, %$28] ; # Val\n  br label %$26\n$26:\n  %136 = phi i64 [%105, %$23], [%131, %$29] ; # Exe\n  %137 = phi i64 [%106, %$23], [%132, %$29] ; # X\n  %138 = phi i64 [%107, %$23], [%133, %$29] ; # Y\n  %139 = phi i64 [%108, %$23], [%134, %$29] ; # Key\n  %140 = phi i64 [%109, %$23], [%135, %$29] ; # Val\n; # (if (== ZERO Key) (set (chkVar Exe Y) Val) (put Y Key Val))\n; # (== ZERO Key)\n  %141 = icmp eq i64 2, %139\n  br i1 %141, label %$30, label %$31\n$30:\n  %142 = phi i64 [%136, %$26] ; # Exe\n  %143 = phi i64 [%137, %$26] ; # X\n  %144 = phi i64 [%138, %$26] ; # Y\n  %145 = phi i64 [%139, %$26] ; # Key\n  %146 = phi i64 [%140, %$26] ; # Val\n; # (set (chkVar Exe Y) Val)\n; # (chkVar Exe Y)\n  %147 = icmp uge i64 %144, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %147, label %$34, label %$33\n$34:\n  %148 = phi i64 [%144, %$30] ; # X\n  %149 = phi i64 [%142, %$30] ; # Exe\n  %150 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %148\n  br label %$33\n$33:\n  %151 = phi i64 [%144, %$30], [%148, %$34] ; # X\n  %152 = phi i64 [%142, %$30], [%149, %$34] ; # Exe\n  %153 = phi i1 [0, %$30], [%150, %$34] ; # ->\n  br i1 %153, label %$35, label %$36\n$35:\n  %154 = phi i64 [%151, %$33] ; # X\n  %155 = phi i64 [%152, %$33] ; # Exe\n  call void @protErr(i64 %155, i64 %154)\n  unreachable\n$36:\n  %156 = phi i64 [%151, %$33] ; # X\n  %157 = phi i64 [%152, %$33] ; # Exe\n  %158 = inttoptr i64 %156 to i64*\n  store i64 %146, i64* %158\n  br label %$32\n$31:\n  %159 = phi i64 [%136, %$26] ; # Exe\n  %160 = phi i64 [%137, %$26] ; # X\n  %161 = phi i64 [%138, %$26] ; # Y\n  %162 = phi i64 [%139, %$26] ; # Key\n  %163 = phi i64 [%140, %$26] ; # Val\n; # (put Y Key Val)\n  call void @put(i64 %161, i64 %162, i64 %163)\n  br label %$32\n$32:\n  %164 = phi i64 [%142, %$36], [%159, %$31] ; # Exe\n  %165 = phi i64 [%143, %$36], [%160, %$31] ; # X\n  %166 = phi i64 [%144, %$36], [%161, %$31] ; # Y\n  %167 = phi i64 [%145, %$36], [%162, %$31] ; # Key\n  %168 = phi i64 [%146, %$36], [%163, %$31] ; # Val\n  br label %$24\n$24:\n  %169 = phi i64 [%100, %$22], [%164, %$32] ; # Exe\n  %170 = phi i64 [%101, %$22], [%165, %$32] ; # X\n  %171 = phi i64 [%102, %$22], [%166, %$32] ; # Y\n  %172 = phi i64 [%103, %$22], [%167, %$32] ; # Key\n  %173 = phi i64 [%104, %$22], [%168, %$32] ; # Val\n; # (drop *Safe)\n  %174 = inttoptr i64 %24 to i64*\n  %175 = getelementptr i64, i64* %174, i32 1\n  %176 = load i64, i64* %175\n  %177 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %176, i64* %177\n  ret i64 %173\n}\n\ndefine i64 @_Get(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (when (pair X) (save Y (loop (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (when (pair X) (save Y (loop (setq Y (getn Exe Y (eval (++ X)))) ...\n; # (pair X)\n  %21 = and i64 %6, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (save Y (loop (setq Y (getn Exe Y (eval (++ X)))) (? (atom X)) (s...\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (loop (setq Y (getn Exe Y (eval (++ X)))) (? (atom X)) (safe Y))\n  br label %$9\n$9:\n  %34 = phi i64 [%23, %$7], [%57, %$15] ; # Exe\n  %35 = phi i64 [%24, %$7], [%58, %$15] ; # X\n  %36 = phi i64 [%25, %$7], [%59, %$15] ; # Y\n; # (++ X)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = load i64, i64* %37\n; # (eval (++ X))\n  %41 = and i64 %40, 6\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$12, label %$11\n$12:\n  %43 = phi i64 [%40, %$9] ; # X\n  br label %$10\n$11:\n  %44 = phi i64 [%40, %$9] ; # X\n  %45 = and i64 %44, 8\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$14, label %$13\n$14:\n  %47 = phi i64 [%44, %$11] ; # X\n  %48 = inttoptr i64 %47 to i64*\n  %49 = load i64, i64* %48\n  br label %$10\n$13:\n  %50 = phi i64 [%44, %$11] ; # X\n  %51 = call i64 @evList(i64 %50)\n  br label %$10\n$10:\n  %52 = phi i64 [%43, %$12], [%47, %$14], [%50, %$13] ; # X\n  %53 = phi i64 [%43, %$12], [%49, %$14], [%51, %$13] ; # ->\n; # (getn Exe Y (eval (++ X)))\n  %54 = call i64 @getn(i64 %34, i64 %36, i64 %53)\n; # (? (atom X))\n; # (atom X)\n  %55 = and i64 %39, 15\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$16, label %$15\n$15:\n  %57 = phi i64 [%34, %$10] ; # Exe\n  %58 = phi i64 [%39, %$10] ; # X\n  %59 = phi i64 [%54, %$10] ; # Y\n; # (safe Y)\n  %60 = inttoptr i64 %29 to i64*\n  store i64 %59, i64* %60\n  br label %$9\n$16:\n  %61 = phi i64 [%34, %$10] ; # Exe\n  %62 = phi i64 [%39, %$10] ; # X\n  %63 = phi i64 [%54, %$10] ; # Y\n  %64 = phi i64 [0, %$10] ; # ->\n; # drop\n  %65 = inttoptr i64 %29 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %67, i64* %68\n  br label %$8\n$8:\n  %69 = phi i64 [%0, %$2], [%61, %$16] ; # Exe\n  %70 = phi i64 [%6, %$2], [%62, %$16] ; # X\n  %71 = phi i64 [%20, %$2], [%63, %$16] ; # Y\n  ret i64 %71\n}\n\ndefine i64 @_Prop(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Key T) (loop (setq Key (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (loop (setq Key (eval (++ X))) (? (atom X)) (setq Y (safe (getn E...\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%51, %$13] ; # Exe\n  %30 = phi i64 [%6, %$2], [%52, %$13] ; # X\n  %31 = phi i64 [%20, %$2], [%55, %$13] ; # Y\n; # (++ X)\n  %32 = inttoptr i64 %30 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n  %35 = load i64, i64* %32\n; # (eval (++ X))\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$10, label %$9\n$10:\n  %38 = phi i64 [%35, %$7] ; # X\n  br label %$8\n$9:\n  %39 = phi i64 [%35, %$7] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$12, label %$11\n$12:\n  %42 = phi i64 [%39, %$9] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$8\n$11:\n  %45 = phi i64 [%39, %$9] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$8\n$8:\n  %47 = phi i64 [%38, %$10], [%42, %$12], [%45, %$11] ; # X\n  %48 = phi i64 [%38, %$10], [%44, %$12], [%46, %$11] ; # ->\n; # (? (atom X))\n; # (atom X)\n  %49 = and i64 %34, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$14, label %$13\n$13:\n  %51 = phi i64 [%29, %$8] ; # Exe\n  %52 = phi i64 [%34, %$8] ; # X\n  %53 = phi i64 [%31, %$8] ; # Y\n  %54 = phi i64 [%48, %$8] ; # Key\n; # (getn Exe Y Key)\n  %55 = call i64 @getn(i64 %51, i64 %53, i64 %54)\n; # (safe (getn Exe Y Key))\n  %56 = inttoptr i64 %24 to i64*\n  store i64 %55, i64* %56\n  br label %$7\n$14:\n  %57 = phi i64 [%29, %$8] ; # Exe\n  %58 = phi i64 [%34, %$8] ; # X\n  %59 = phi i64 [%31, %$8] ; # Y\n  %60 = phi i64 [%48, %$8] ; # Key\n  %61 = phi i64 [0, %$8] ; # ->\n; # (needSymb Exe Y)\n  %62 = xor i64 %59, 8\n  %63 = and i64 %62, 14\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$16, label %$15\n$15:\n  %65 = phi i64 [%59, %$14] ; # X\n  %66 = phi i64 [%57, %$14] ; # Exe\n  call void @symErr(i64 %66, i64 %65)\n  unreachable\n$16:\n  %67 = phi i64 [%59, %$14] ; # X\n  %68 = phi i64 [%57, %$14] ; # Exe\n; # (push Key NIL)\n  %69 = alloca i64, i64 2, align 16\n  %70 = ptrtoint i64* %69 to i64\n  %71 = inttoptr i64 %70 to i64*\n  store i64 %60, i64* %71\n; # (link (push Key NIL))\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 %70 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  store i64 %73, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %70, i64* %76\n; # (when (sym? (val (tail Y))) (if (nil? Key) (dbFetch Exe Y) (dbTou...\n; # (tail Y)\n  %77 = add i64 %59, -8\n; # (val (tail Y))\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (sym? (val (tail Y)))\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$17, label %$18\n$17:\n  %82 = phi i64 [%57, %$16] ; # Exe\n  %83 = phi i64 [%58, %$16] ; # X\n  %84 = phi i64 [%59, %$16] ; # Y\n  %85 = phi i64 [%60, %$16] ; # Key\n; # (if (nil? Key) (dbFetch Exe Y) (dbTouch Exe Y))\n; # (nil? Key)\n  %86 = icmp eq i64 %85, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %86, label %$19, label %$20\n$19:\n  %87 = phi i64 [%82, %$17] ; # Exe\n  %88 = phi i64 [%83, %$17] ; # X\n  %89 = phi i64 [%84, %$17] ; # Y\n  %90 = phi i64 [%85, %$17] ; # Key\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %87, i64 %89)\n  br label %$21\n$20:\n  %91 = phi i64 [%82, %$17] ; # Exe\n  %92 = phi i64 [%83, %$17] ; # X\n  %93 = phi i64 [%84, %$17] ; # Y\n  %94 = phi i64 [%85, %$17] ; # Key\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %91, i64 %93)\n  br label %$21\n$21:\n  %95 = phi i64 [%87, %$19], [%91, %$20] ; # Exe\n  %96 = phi i64 [%88, %$19], [%92, %$20] ; # X\n  %97 = phi i64 [%89, %$19], [%93, %$20] ; # Y\n  %98 = phi i64 [%90, %$19], [%94, %$20] ; # Key\n  br label %$18\n$18:\n  %99 = phi i64 [%57, %$16], [%95, %$21] ; # Exe\n  %100 = phi i64 [%58, %$16], [%96, %$21] ; # X\n  %101 = phi i64 [%59, %$16], [%97, %$21] ; # Y\n  %102 = phi i64 [%60, %$16], [%98, %$21] ; # Key\n; # (prop Y Key)\n  %103 = call i64 @prop(i64 %101, i64 %102)\n; # (drop *Safe)\n  %104 = inttoptr i64 %24 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n  %107 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %106, i64* %107\n  ret i64 %103\n}\n\ndefine i64 @_Semicol(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (when (pair X) (save Y (loop (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (when (pair X) (save Y (loop (setq Y (getn Exe Y (++ X))) (? (ato...\n; # (pair X)\n  %21 = and i64 %6, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (save Y (loop (setq Y (getn Exe Y (++ X))) (? (atom X)) (safe Y))...\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (loop (setq Y (getn Exe Y (++ X))) (? (atom X)) (safe Y))\n  br label %$9\n$9:\n  %34 = phi i64 [%23, %$7], [%44, %$10] ; # Exe\n  %35 = phi i64 [%24, %$7], [%45, %$10] ; # X\n  %36 = phi i64 [%25, %$7], [%46, %$10] ; # Y\n; # (++ X)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = load i64, i64* %37\n; # (getn Exe Y (++ X))\n  %41 = call i64 @getn(i64 %34, i64 %36, i64 %40)\n; # (? (atom X))\n; # (atom X)\n  %42 = and i64 %39, 15\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$11, label %$10\n$10:\n  %44 = phi i64 [%34, %$9] ; # Exe\n  %45 = phi i64 [%39, %$9] ; # X\n  %46 = phi i64 [%41, %$9] ; # Y\n; # (safe Y)\n  %47 = inttoptr i64 %29 to i64*\n  store i64 %46, i64* %47\n  br label %$9\n$11:\n  %48 = phi i64 [%34, %$9] ; # Exe\n  %49 = phi i64 [%39, %$9] ; # X\n  %50 = phi i64 [%41, %$9] ; # Y\n  %51 = phi i64 [0, %$9] ; # ->\n; # drop\n  %52 = inttoptr i64 %29 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %54, i64* %55\n  br label %$8\n$8:\n  %56 = phi i64 [%0, %$2], [%48, %$11] ; # Exe\n  %57 = phi i64 [%6, %$2], [%49, %$11] ; # X\n  %58 = phi i64 [%20, %$2], [%50, %$11] ; # Y\n  ret i64 %58\n}\n\ndefine i64 @_SetCol(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (val $This) Key T) (loop (setq Key (++ X)) (?...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $This)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (loop (setq Key (++ X)) (? (atom (cdr X))) (setq Y (getn Exe Y Ke...\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%18, %$3] ; # Exe\n  %7 = phi i64 [%3, %$1], [%19, %$3] ; # X\n  %8 = phi i64 [%5, %$1], [%22, %$3] ; # Y\n; # (++ X)\n  %9 = inttoptr i64 %7 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = load i64, i64* %9\n; # (? (atom (cdr X)))\n; # (cdr X)\n  %13 = inttoptr i64 %11 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n; # (atom (cdr X))\n  %16 = and i64 %15, 15\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$3:\n  %18 = phi i64 [%6, %$2] ; # Exe\n  %19 = phi i64 [%11, %$2] ; # X\n  %20 = phi i64 [%8, %$2] ; # Y\n  %21 = phi i64 [%12, %$2] ; # Key\n; # (getn Exe Y Key)\n  %22 = call i64 @getn(i64 %18, i64 %20, i64 %21)\n  br label %$2\n$4:\n  %23 = phi i64 [%6, %$2] ; # Exe\n  %24 = phi i64 [%11, %$2] ; # X\n  %25 = phi i64 [%8, %$2] ; # Y\n  %26 = phi i64 [%12, %$2] ; # Key\n  %27 = phi i64 [0, %$2] ; # ->\n; # (when (num? Y) (argErr Exe Y))\n; # (num? Y)\n  %28 = and i64 %25, 6\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$5, label %$6\n$5:\n  %30 = phi i64 [%23, %$4] ; # Exe\n  %31 = phi i64 [%24, %$4] ; # X\n  %32 = phi i64 [%25, %$4] ; # Y\n  %33 = phi i64 [%26, %$4] ; # Key\n; # (argErr Exe Y)\n  call void @argErr(i64 %30, i64 %32)\n  unreachable\n$6:\n  %34 = phi i64 [%23, %$4] ; # Exe\n  %35 = phi i64 [%24, %$4] ; # X\n  %36 = phi i64 [%25, %$4] ; # Y\n  %37 = phi i64 [%26, %$4] ; # Key\n; # (let Val (eval (car X)) (if (pair Y) (putn Exe Y Key Val) (when (...\n; # (car X)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = load i64, i64* %38\n; # (eval (car X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$9, label %$8\n$9:\n  %42 = phi i64 [%39, %$6] ; # X\n  br label %$7\n$8:\n  %43 = phi i64 [%39, %$6] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$11, label %$10\n$11:\n  %46 = phi i64 [%43, %$8] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$7\n$10:\n  %49 = phi i64 [%43, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$7\n$7:\n  %51 = phi i64 [%42, %$9], [%46, %$11], [%49, %$10] ; # X\n  %52 = phi i64 [%42, %$9], [%48, %$11], [%50, %$10] ; # ->\n; # (if (pair Y) (putn Exe Y Key Val) (when (sym? (val (tail Y))) (if...\n; # (pair Y)\n  %53 = and i64 %36, 15\n  %54 = icmp eq i64 %53, 0\n  br i1 %54, label %$12, label %$13\n$12:\n  %55 = phi i64 [%34, %$7] ; # Exe\n  %56 = phi i64 [%35, %$7] ; # X\n  %57 = phi i64 [%36, %$7] ; # Y\n  %58 = phi i64 [%37, %$7] ; # Key\n  %59 = phi i64 [%52, %$7] ; # Val\n; # (putn Exe Y Key Val)\n  call void @putn(i64 %55, i64 %57, i64 %58, i64 %59)\n  br label %$14\n$13:\n  %60 = phi i64 [%34, %$7] ; # Exe\n  %61 = phi i64 [%35, %$7] ; # X\n  %62 = phi i64 [%36, %$7] ; # Y\n  %63 = phi i64 [%37, %$7] ; # Key\n  %64 = phi i64 [%52, %$7] ; # Val\n; # (when (sym? (val (tail Y))) (if (nil? Key) (dbFetch Exe Y) (dbTou...\n; # (tail Y)\n  %65 = add i64 %62, -8\n; # (val (tail Y))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (sym? (val (tail Y)))\n  %68 = and i64 %67, 8\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$15, label %$16\n$15:\n  %70 = phi i64 [%60, %$13] ; # Exe\n  %71 = phi i64 [%61, %$13] ; # X\n  %72 = phi i64 [%62, %$13] ; # Y\n  %73 = phi i64 [%63, %$13] ; # Key\n  %74 = phi i64 [%64, %$13] ; # Val\n; # (if (nil? Key) (dbFetch Exe Y) (dbTouch Exe Y))\n; # (nil? Key)\n  %75 = icmp eq i64 %73, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %75, label %$17, label %$18\n$17:\n  %76 = phi i64 [%70, %$15] ; # Exe\n  %77 = phi i64 [%71, %$15] ; # X\n  %78 = phi i64 [%72, %$15] ; # Y\n  %79 = phi i64 [%73, %$15] ; # Key\n  %80 = phi i64 [%74, %$15] ; # Val\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %76, i64 %78)\n  br label %$19\n$18:\n  %81 = phi i64 [%70, %$15] ; # Exe\n  %82 = phi i64 [%71, %$15] ; # X\n  %83 = phi i64 [%72, %$15] ; # Y\n  %84 = phi i64 [%73, %$15] ; # Key\n  %85 = phi i64 [%74, %$15] ; # Val\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %81, i64 %83)\n  br label %$19\n$19:\n  %86 = phi i64 [%76, %$17], [%81, %$18] ; # Exe\n  %87 = phi i64 [%77, %$17], [%82, %$18] ; # X\n  %88 = phi i64 [%78, %$17], [%83, %$18] ; # Y\n  %89 = phi i64 [%79, %$17], [%84, %$18] ; # Key\n  %90 = phi i64 [%80, %$17], [%85, %$18] ; # Val\n  br label %$16\n$16:\n  %91 = phi i64 [%60, %$13], [%86, %$19] ; # Exe\n  %92 = phi i64 [%61, %$13], [%87, %$19] ; # X\n  %93 = phi i64 [%62, %$13], [%88, %$19] ; # Y\n  %94 = phi i64 [%63, %$13], [%89, %$19] ; # Key\n  %95 = phi i64 [%64, %$13], [%90, %$19] ; # Val\n; # (if (== ZERO Key) (set (chkVar Exe Y) Val) (put Y Key Val))\n; # (== ZERO Key)\n  %96 = icmp eq i64 2, %94\n  br i1 %96, label %$20, label %$21\n$20:\n  %97 = phi i64 [%91, %$16] ; # Exe\n  %98 = phi i64 [%92, %$16] ; # X\n  %99 = phi i64 [%93, %$16] ; # Y\n  %100 = phi i64 [%94, %$16] ; # Key\n  %101 = phi i64 [%95, %$16] ; # Val\n; # (set (chkVar Exe Y) Val)\n; # (chkVar Exe Y)\n  %102 = icmp uge i64 %99, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %102, label %$24, label %$23\n$24:\n  %103 = phi i64 [%99, %$20] ; # X\n  %104 = phi i64 [%97, %$20] ; # Exe\n  %105 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %103\n  br label %$23\n$23:\n  %106 = phi i64 [%99, %$20], [%103, %$24] ; # X\n  %107 = phi i64 [%97, %$20], [%104, %$24] ; # Exe\n  %108 = phi i1 [0, %$20], [%105, %$24] ; # ->\n  br i1 %108, label %$25, label %$26\n$25:\n  %109 = phi i64 [%106, %$23] ; # X\n  %110 = phi i64 [%107, %$23] ; # Exe\n  call void @protErr(i64 %110, i64 %109)\n  unreachable\n$26:\n  %111 = phi i64 [%106, %$23] ; # X\n  %112 = phi i64 [%107, %$23] ; # Exe\n  %113 = inttoptr i64 %111 to i64*\n  store i64 %101, i64* %113\n  br label %$22\n$21:\n  %114 = phi i64 [%91, %$16] ; # Exe\n  %115 = phi i64 [%92, %$16] ; # X\n  %116 = phi i64 [%93, %$16] ; # Y\n  %117 = phi i64 [%94, %$16] ; # Key\n  %118 = phi i64 [%95, %$16] ; # Val\n; # (put Y Key Val)\n  call void @put(i64 %116, i64 %117, i64 %118)\n  br label %$22\n$22:\n  %119 = phi i64 [%97, %$26], [%114, %$21] ; # Exe\n  %120 = phi i64 [%98, %$26], [%115, %$21] ; # X\n  %121 = phi i64 [%99, %$26], [%116, %$21] ; # Y\n  %122 = phi i64 [%100, %$26], [%117, %$21] ; # Key\n  %123 = phi i64 [%101, %$26], [%118, %$21] ; # Val\n  br label %$14\n$14:\n  %124 = phi i64 [%55, %$12], [%119, %$22] ; # Exe\n  %125 = phi i64 [%56, %$12], [%120, %$22] ; # X\n  %126 = phi i64 [%57, %$12], [%121, %$22] ; # Y\n  %127 = phi i64 [%58, %$12], [%122, %$22] ; # Key\n  %128 = phi i64 [%59, %$12], [%123, %$22] ; # Val\n  ret i64 %128\n}\n\ndefine i64 @_Col(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (val $This)) (loop (setq Y (getn Exe Y (++ X)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $This)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (loop (setq Y (getn Exe Y (++ X))) (? (atom X) Y))\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%19, %$3] ; # Exe\n  %7 = phi i64 [%3, %$1], [%20, %$3] ; # X\n  %8 = phi i64 [%5, %$1], [%21, %$3] ; # Y\n; # (++ X)\n  %9 = inttoptr i64 %7 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = load i64, i64* %9\n; # (getn Exe Y (++ X))\n  %13 = call i64 @getn(i64 %6, i64 %8, i64 %12)\n; # (? (atom X) Y)\n; # (atom X)\n  %14 = and i64 %11, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i64 [%6, %$2] ; # Exe\n  %17 = phi i64 [%11, %$2] ; # X\n  %18 = phi i64 [%13, %$2] ; # Y\n  br label %$4\n$3:\n  %19 = phi i64 [%6, %$2] ; # Exe\n  %20 = phi i64 [%11, %$2] ; # X\n  %21 = phi i64 [%13, %$2] ; # Y\n  br label %$2\n$4:\n  %22 = phi i64 [%16, %$5] ; # Exe\n  %23 = phi i64 [%17, %$5] ; # X\n  %24 = phi i64 [%18, %$5] ; # Y\n  %25 = phi i64 [%18, %$5] ; # ->\n  ret i64 %25\n}\n\ndefine i64 @_PropCol(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (val $This) Key T) (loop (setq Key (++ X)) (?...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $This)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (loop (setq Key (++ X)) (? (atom X)) (setq Y (getn Exe Y Key)))\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%15, %$3] ; # Exe\n  %7 = phi i64 [%3, %$1], [%16, %$3] ; # X\n  %8 = phi i64 [%5, %$1], [%19, %$3] ; # Y\n; # (++ X)\n  %9 = inttoptr i64 %7 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = load i64, i64* %9\n; # (? (atom X))\n; # (atom X)\n  %13 = and i64 %11, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$4, label %$3\n$3:\n  %15 = phi i64 [%6, %$2] ; # Exe\n  %16 = phi i64 [%11, %$2] ; # X\n  %17 = phi i64 [%8, %$2] ; # Y\n  %18 = phi i64 [%12, %$2] ; # Key\n; # (getn Exe Y Key)\n  %19 = call i64 @getn(i64 %15, i64 %17, i64 %18)\n  br label %$2\n$4:\n  %20 = phi i64 [%6, %$2] ; # Exe\n  %21 = phi i64 [%11, %$2] ; # X\n  %22 = phi i64 [%8, %$2] ; # Y\n  %23 = phi i64 [%12, %$2] ; # Key\n  %24 = phi i64 [0, %$2] ; # ->\n; # (needSymb Exe Y)\n  %25 = xor i64 %22, 8\n  %26 = and i64 %25, 14\n  %27 = icmp eq i64 %26, 0\n  br i1 %27, label %$6, label %$5\n$5:\n  %28 = phi i64 [%22, %$4] ; # X\n  %29 = phi i64 [%20, %$4] ; # Exe\n  call void @symErr(i64 %29, i64 %28)\n  unreachable\n$6:\n  %30 = phi i64 [%22, %$4] ; # X\n  %31 = phi i64 [%20, %$4] ; # Exe\n; # (when (sym? (val (tail Y))) (if (nil? Key) (dbFetch Exe Y) (dbTou...\n; # (tail Y)\n  %32 = add i64 %22, -8\n; # (val (tail Y))\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n; # (sym? (val (tail Y)))\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$7, label %$8\n$7:\n  %37 = phi i64 [%20, %$6] ; # Exe\n  %38 = phi i64 [%21, %$6] ; # X\n  %39 = phi i64 [%22, %$6] ; # Y\n  %40 = phi i64 [%23, %$6] ; # Key\n; # (if (nil? Key) (dbFetch Exe Y) (dbTouch Exe Y))\n; # (nil? Key)\n  %41 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %41, label %$9, label %$10\n$9:\n  %42 = phi i64 [%37, %$7] ; # Exe\n  %43 = phi i64 [%38, %$7] ; # X\n  %44 = phi i64 [%39, %$7] ; # Y\n  %45 = phi i64 [%40, %$7] ; # Key\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %42, i64 %44)\n  br label %$11\n$10:\n  %46 = phi i64 [%37, %$7] ; # Exe\n  %47 = phi i64 [%38, %$7] ; # X\n  %48 = phi i64 [%39, %$7] ; # Y\n  %49 = phi i64 [%40, %$7] ; # Key\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %46, i64 %48)\n  br label %$11\n$11:\n  %50 = phi i64 [%42, %$9], [%46, %$10] ; # Exe\n  %51 = phi i64 [%43, %$9], [%47, %$10] ; # X\n  %52 = phi i64 [%44, %$9], [%48, %$10] ; # Y\n  %53 = phi i64 [%45, %$9], [%49, %$10] ; # Key\n  br label %$8\n$8:\n  %54 = phi i64 [%20, %$6], [%50, %$11] ; # Exe\n  %55 = phi i64 [%21, %$6], [%51, %$11] ; # X\n  %56 = phi i64 [%22, %$6], [%52, %$11] ; # Y\n  %57 = phi i64 [%23, %$6], [%53, %$11] ; # Key\n; # (prop Y Key)\n  %58 = call i64 @prop(i64 %56, i64 %57)\n  ret i64 %58\n}\n\ndefine i64 @_Putl(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z T) (loop (setq Z (eval...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (loop (setq Z (eval (++ X))) (? (atom X)) (setq Y (safe (getn Exe...\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%51, %$13] ; # Exe\n  %30 = phi i64 [%6, %$2], [%52, %$13] ; # X\n  %31 = phi i64 [%20, %$2], [%55, %$13] ; # Y\n; # (++ X)\n  %32 = inttoptr i64 %30 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n  %35 = load i64, i64* %32\n; # (eval (++ X))\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$10, label %$9\n$10:\n  %38 = phi i64 [%35, %$7] ; # X\n  br label %$8\n$9:\n  %39 = phi i64 [%35, %$7] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$12, label %$11\n$12:\n  %42 = phi i64 [%39, %$9] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$8\n$11:\n  %45 = phi i64 [%39, %$9] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$8\n$8:\n  %47 = phi i64 [%38, %$10], [%42, %$12], [%45, %$11] ; # X\n  %48 = phi i64 [%38, %$10], [%44, %$12], [%46, %$11] ; # ->\n; # (? (atom X))\n; # (atom X)\n  %49 = and i64 %34, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$14, label %$13\n$13:\n  %51 = phi i64 [%29, %$8] ; # Exe\n  %52 = phi i64 [%34, %$8] ; # X\n  %53 = phi i64 [%31, %$8] ; # Y\n  %54 = phi i64 [%48, %$8] ; # Z\n; # (getn Exe Y Z)\n  %55 = call i64 @getn(i64 %51, i64 %53, i64 %54)\n; # (safe (getn Exe Y Z))\n  %56 = inttoptr i64 %24 to i64*\n  store i64 %55, i64* %56\n  br label %$7\n$14:\n  %57 = phi i64 [%29, %$8] ; # Exe\n  %58 = phi i64 [%34, %$8] ; # X\n  %59 = phi i64 [%31, %$8] ; # Y\n  %60 = phi i64 [%48, %$8] ; # Z\n  %61 = phi i64 [0, %$8] ; # ->\n; # (let (R (save Z) Tail (val (tail (needSymb Exe Y)))) (when (sym? ...\n; # (save Z)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %63 = load i64, i64* %62\n  %64 = alloca i64, i64 2, align 16\n  %65 = ptrtoint i64* %64 to i64\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %60, i64* %66\n  %67 = add i64 %65, 8\n  %68 = inttoptr i64 %67 to i64*\n  store i64 %63, i64* %68\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %69\n; # (needSymb Exe Y)\n  %70 = xor i64 %59, 8\n  %71 = and i64 %70, 14\n  %72 = icmp eq i64 %71, 0\n  br i1 %72, label %$16, label %$15\n$15:\n  %73 = phi i64 [%59, %$14] ; # X\n  %74 = phi i64 [%57, %$14] ; # Exe\n  call void @symErr(i64 %74, i64 %73)\n  unreachable\n$16:\n  %75 = phi i64 [%59, %$14] ; # X\n  %76 = phi i64 [%57, %$14] ; # Exe\n; # (tail (needSymb Exe Y))\n  %77 = add i64 %75, -8\n; # (val (tail (needSymb Exe Y)))\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (when (sym? (setq X Tail)) (dbTouch Exe Y) (setq X (& (val (tail ...\n; # (sym? (setq X Tail))\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$17, label %$18\n$17:\n  %82 = phi i64 [%57, %$16] ; # Exe\n  %83 = phi i64 [%79, %$16] ; # X\n  %84 = phi i64 [%59, %$16] ; # Y\n  %85 = phi i64 [%60, %$16] ; # Z\n  %86 = phi i64 [%60, %$16] ; # R\n  %87 = phi i64 [%79, %$16] ; # Tail\n; # (dbTouch Exe Y)\n  call void @dbTouch(i64 %82, i64 %84)\n; # (tail Y)\n  %88 = add i64 %84, -8\n; # (val (tail Y))\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n; # (& (val (tail Y)) -9)\n  %91 = and i64 %90, -9\n  br label %$18\n$18:\n  %92 = phi i64 [%57, %$16], [%82, %$17] ; # Exe\n  %93 = phi i64 [%79, %$16], [%91, %$17] ; # X\n  %94 = phi i64 [%59, %$16], [%84, %$17] ; # Y\n  %95 = phi i64 [%60, %$16], [%85, %$17] ; # Z\n  %96 = phi i64 [%60, %$16], [%86, %$17] ; # R\n  %97 = phi i64 [%79, %$16], [%87, %$17] ; # Tail\n; # (until (num? X) (shift X))\n  br label %$19\n$19:\n  %98 = phi i64 [%92, %$18], [%106, %$20] ; # Exe\n  %99 = phi i64 [%93, %$18], [%114, %$20] ; # X\n  %100 = phi i64 [%94, %$18], [%108, %$20] ; # Y\n  %101 = phi i64 [%95, %$18], [%109, %$20] ; # Z\n  %102 = phi i64 [%96, %$18], [%110, %$20] ; # R\n  %103 = phi i64 [%97, %$18], [%111, %$20] ; # Tail\n; # (num? X)\n  %104 = and i64 %99, 6\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$21, label %$20\n$20:\n  %106 = phi i64 [%98, %$19] ; # Exe\n  %107 = phi i64 [%99, %$19] ; # X\n  %108 = phi i64 [%100, %$19] ; # Y\n  %109 = phi i64 [%101, %$19] ; # Z\n  %110 = phi i64 [%102, %$19] ; # R\n  %111 = phi i64 [%103, %$19] ; # Tail\n; # (shift X)\n  %112 = inttoptr i64 %107 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  %114 = load i64, i64* %113\n  br label %$19\n$21:\n  %115 = phi i64 [%98, %$19] ; # Exe\n  %116 = phi i64 [%99, %$19] ; # X\n  %117 = phi i64 [%100, %$19] ; # Y\n  %118 = phi i64 [%101, %$19] ; # Z\n  %119 = phi i64 [%102, %$19] ; # R\n  %120 = phi i64 [%103, %$19] ; # Tail\n; # (while (pair Z) (let P (++ Z) (if (atom P) (setq X (cons P X)) (u...\n  br label %$22\n$22:\n  %121 = phi i64 [%115, %$21], [%194, %$27] ; # Exe\n  %122 = phi i64 [%116, %$21], [%195, %$27] ; # X\n  %123 = phi i64 [%117, %$21], [%196, %$27] ; # Y\n  %124 = phi i64 [%118, %$21], [%197, %$27] ; # Z\n  %125 = phi i64 [%119, %$21], [%198, %$27] ; # R\n  %126 = phi i64 [%120, %$21], [%199, %$27] ; # Tail\n; # (pair Z)\n  %127 = and i64 %124, 15\n  %128 = icmp eq i64 %127, 0\n  br i1 %128, label %$23, label %$24\n$23:\n  %129 = phi i64 [%121, %$22] ; # Exe\n  %130 = phi i64 [%122, %$22] ; # X\n  %131 = phi i64 [%123, %$22] ; # Y\n  %132 = phi i64 [%124, %$22] ; # Z\n  %133 = phi i64 [%125, %$22] ; # R\n  %134 = phi i64 [%126, %$22] ; # Tail\n; # (let P (++ Z) (if (atom P) (setq X (cons P X)) (unless (nil? (car...\n; # (++ Z)\n  %135 = inttoptr i64 %132 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n  %138 = load i64, i64* %135\n; # (if (atom P) (setq X (cons P X)) (unless (nil? (car P)) (when (t?...\n; # (atom P)\n  %139 = and i64 %138, 15\n  %140 = icmp ne i64 %139, 0\n  br i1 %140, label %$25, label %$26\n$25:\n  %141 = phi i64 [%129, %$23] ; # Exe\n  %142 = phi i64 [%130, %$23] ; # X\n  %143 = phi i64 [%131, %$23] ; # Y\n  %144 = phi i64 [%137, %$23] ; # Z\n  %145 = phi i64 [%133, %$23] ; # R\n  %146 = phi i64 [%134, %$23] ; # Tail\n  %147 = phi i64 [%138, %$23] ; # P\n; # (cons P X)\n  %148 = call i64 @cons(i64 %147, i64 %142)\n  br label %$27\n$26:\n  %149 = phi i64 [%129, %$23] ; # Exe\n  %150 = phi i64 [%130, %$23] ; # X\n  %151 = phi i64 [%131, %$23] ; # Y\n  %152 = phi i64 [%137, %$23] ; # Z\n  %153 = phi i64 [%133, %$23] ; # R\n  %154 = phi i64 [%134, %$23] ; # Tail\n  %155 = phi i64 [%138, %$23] ; # P\n; # (unless (nil? (car P)) (when (t? (car P)) (setq P (cdr P))) (setq...\n; # (car P)\n  %156 = inttoptr i64 %155 to i64*\n  %157 = load i64, i64* %156\n; # (nil? (car P))\n  %158 = icmp eq i64 %157, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %158, label %$29, label %$28\n$28:\n  %159 = phi i64 [%149, %$26] ; # Exe\n  %160 = phi i64 [%150, %$26] ; # X\n  %161 = phi i64 [%151, %$26] ; # Y\n  %162 = phi i64 [%152, %$26] ; # Z\n  %163 = phi i64 [%153, %$26] ; # R\n  %164 = phi i64 [%154, %$26] ; # Tail\n  %165 = phi i64 [%155, %$26] ; # P\n; # (when (t? (car P)) (setq P (cdr P)))\n; # (car P)\n  %166 = inttoptr i64 %165 to i64*\n  %167 = load i64, i64* %166\n; # (t? (car P))\n  %168 = icmp eq i64 %167, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %168, label %$30, label %$31\n$30:\n  %169 = phi i64 [%159, %$28] ; # Exe\n  %170 = phi i64 [%160, %$28] ; # X\n  %171 = phi i64 [%161, %$28] ; # Y\n  %172 = phi i64 [%162, %$28] ; # Z\n  %173 = phi i64 [%163, %$28] ; # R\n  %174 = phi i64 [%164, %$28] ; # Tail\n  %175 = phi i64 [%165, %$28] ; # P\n; # (cdr P)\n  %176 = inttoptr i64 %175 to i64*\n  %177 = getelementptr i64, i64* %176, i32 1\n  %178 = load i64, i64* %177\n  br label %$31\n$31:\n  %179 = phi i64 [%159, %$28], [%169, %$30] ; # Exe\n  %180 = phi i64 [%160, %$28], [%170, %$30] ; # X\n  %181 = phi i64 [%161, %$28], [%171, %$30] ; # Y\n  %182 = phi i64 [%162, %$28], [%172, %$30] ; # Z\n  %183 = phi i64 [%163, %$28], [%173, %$30] ; # R\n  %184 = phi i64 [%164, %$28], [%174, %$30] ; # Tail\n  %185 = phi i64 [%165, %$28], [%178, %$30] ; # P\n; # (cons P X)\n  %186 = call i64 @cons(i64 %185, i64 %180)\n  br label %$29\n$29:\n  %187 = phi i64 [%149, %$26], [%179, %$31] ; # Exe\n  %188 = phi i64 [%150, %$26], [%186, %$31] ; # X\n  %189 = phi i64 [%151, %$26], [%181, %$31] ; # Y\n  %190 = phi i64 [%152, %$26], [%182, %$31] ; # Z\n  %191 = phi i64 [%153, %$26], [%183, %$31] ; # R\n  %192 = phi i64 [%154, %$26], [%184, %$31] ; # Tail\n  %193 = phi i64 [%155, %$26], [%185, %$31] ; # P\n  br label %$27\n$27:\n  %194 = phi i64 [%141, %$25], [%187, %$29] ; # Exe\n  %195 = phi i64 [%148, %$25], [%188, %$29] ; # X\n  %196 = phi i64 [%143, %$25], [%189, %$29] ; # Y\n  %197 = phi i64 [%144, %$25], [%190, %$29] ; # Z\n  %198 = phi i64 [%145, %$25], [%191, %$29] ; # R\n  %199 = phi i64 [%146, %$25], [%192, %$29] ; # Tail\n  %200 = phi i64 [%147, %$25], [%193, %$29] ; # P\n  br label %$22\n$24:\n  %201 = phi i64 [%121, %$22] ; # Exe\n  %202 = phi i64 [%122, %$22] ; # X\n  %203 = phi i64 [%123, %$22] ; # Y\n  %204 = phi i64 [%124, %$22] ; # Z\n  %205 = phi i64 [%125, %$22] ; # R\n  %206 = phi i64 [%126, %$22] ; # Tail\n; # (set (tail Y) (if (sym? Tail) (sym X) X))\n; # (tail Y)\n  %207 = add i64 %203, -8\n; # (if (sym? Tail) (sym X) X)\n; # (sym? Tail)\n  %208 = and i64 %206, 8\n  %209 = icmp ne i64 %208, 0\n  br i1 %209, label %$32, label %$33\n$32:\n  %210 = phi i64 [%201, %$24] ; # Exe\n  %211 = phi i64 [%202, %$24] ; # X\n  %212 = phi i64 [%203, %$24] ; # Y\n  %213 = phi i64 [%204, %$24] ; # Z\n  %214 = phi i64 [%205, %$24] ; # R\n  %215 = phi i64 [%206, %$24] ; # Tail\n; # (sym X)\n  %216 = or i64 %211, 8\n  br label %$34\n$33:\n  %217 = phi i64 [%201, %$24] ; # Exe\n  %218 = phi i64 [%202, %$24] ; # X\n  %219 = phi i64 [%203, %$24] ; # Y\n  %220 = phi i64 [%204, %$24] ; # Z\n  %221 = phi i64 [%205, %$24] ; # R\n  %222 = phi i64 [%206, %$24] ; # Tail\n  br label %$34\n$34:\n  %223 = phi i64 [%210, %$32], [%217, %$33] ; # Exe\n  %224 = phi i64 [%211, %$32], [%218, %$33] ; # X\n  %225 = phi i64 [%212, %$32], [%219, %$33] ; # Y\n  %226 = phi i64 [%213, %$32], [%220, %$33] ; # Z\n  %227 = phi i64 [%214, %$32], [%221, %$33] ; # R\n  %228 = phi i64 [%215, %$32], [%222, %$33] ; # Tail\n  %229 = phi i64 [%216, %$32], [%218, %$33] ; # ->\n  %230 = inttoptr i64 %207 to i64*\n  store i64 %229, i64* %230\n; # (drop *Safe)\n  %231 = inttoptr i64 %24 to i64*\n  %232 = getelementptr i64, i64* %231, i32 1\n  %233 = load i64, i64* %232\n  %234 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %233, i64* %234\n  ret i64 %227\n}\n\ndefine i64 @_Getl(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (while (pair (shift X)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (while (pair (shift X)) (setq Y (safe (getn Exe Y (eval (car X)))...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%35, %$10] ; # Exe\n  %28 = phi i64 [%3, %$2], [%36, %$10] ; # X\n  %29 = phi i64 [%18, %$2], [%53, %$10] ; # Y\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (pair (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp eq i64 %33, 0\n  br i1 %34, label %$8, label %$9\n$8:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n; # (car X)\n  %38 = inttoptr i64 %36 to i64*\n  %39 = load i64, i64* %38\n; # (eval (car X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$12, label %$11\n$12:\n  %42 = phi i64 [%39, %$8] ; # X\n  br label %$10\n$11:\n  %43 = phi i64 [%39, %$8] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$14, label %$13\n$14:\n  %46 = phi i64 [%43, %$11] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$10\n$13:\n  %49 = phi i64 [%43, %$11] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$10\n$10:\n  %51 = phi i64 [%42, %$12], [%46, %$14], [%49, %$13] ; # X\n  %52 = phi i64 [%42, %$12], [%48, %$14], [%50, %$13] ; # ->\n; # (getn Exe Y (eval (car X)))\n  %53 = call i64 @getn(i64 %35, i64 %37, i64 %52)\n; # (safe (getn Exe Y (eval (car X))))\n  %54 = inttoptr i64 %22 to i64*\n  store i64 %53, i64* %54\n  br label %$7\n$9:\n  %55 = phi i64 [%27, %$7] ; # Exe\n  %56 = phi i64 [%32, %$7] ; # X\n  %57 = phi i64 [%29, %$7] ; # Y\n; # (when (sym? (setq X (val (tail (needSymb Exe Y))))) (dbFetch Exe ...\n; # (needSymb Exe Y)\n  %58 = xor i64 %57, 8\n  %59 = and i64 %58, 14\n  %60 = icmp eq i64 %59, 0\n  br i1 %60, label %$16, label %$15\n$15:\n  %61 = phi i64 [%57, %$9] ; # X\n  %62 = phi i64 [%55, %$9] ; # Exe\n  call void @symErr(i64 %62, i64 %61)\n  unreachable\n$16:\n  %63 = phi i64 [%57, %$9] ; # X\n  %64 = phi i64 [%55, %$9] ; # Exe\n; # (tail (needSymb Exe Y))\n  %65 = add i64 %63, -8\n; # (val (tail (needSymb Exe Y)))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (sym? (setq X (val (tail (needSymb Exe Y)))))\n  %68 = and i64 %67, 8\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$17, label %$18\n$17:\n  %70 = phi i64 [%55, %$16] ; # Exe\n  %71 = phi i64 [%67, %$16] ; # X\n  %72 = phi i64 [%57, %$16] ; # Y\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %70, i64 %72)\n; # (tail Y)\n  %73 = add i64 %72, -8\n; # (val (tail Y))\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n; # (& (val (tail Y)) -9)\n  %76 = and i64 %75, -9\n  br label %$18\n$18:\n  %77 = phi i64 [%55, %$16], [%70, %$17] ; # Exe\n  %78 = phi i64 [%67, %$16], [%76, %$17] ; # X\n  %79 = phi i64 [%57, %$16], [%72, %$17] ; # Y\n; # (if (num? X) $Nil (let R (setq Y (cons (car X) $Nil)) (link (push...\n; # (num? X)\n  %80 = and i64 %78, 6\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$19, label %$20\n$19:\n  %82 = phi i64 [%77, %$18] ; # Exe\n  %83 = phi i64 [%78, %$18] ; # X\n  %84 = phi i64 [%79, %$18] ; # Y\n  br label %$21\n$20:\n  %85 = phi i64 [%77, %$18] ; # Exe\n  %86 = phi i64 [%78, %$18] ; # X\n  %87 = phi i64 [%79, %$18] ; # Y\n; # (let R (setq Y (cons (car X) $Nil)) (link (push R NIL)) (while (p...\n; # (car X)\n  %88 = inttoptr i64 %86 to i64*\n  %89 = load i64, i64* %88\n; # (cons (car X) $Nil)\n  %90 = call i64 @cons(i64 %89, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (push R NIL)\n  %91 = alloca i64, i64 2, align 16\n  %92 = ptrtoint i64* %91 to i64\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %90, i64* %93\n; # (link (push R NIL))\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %95 = load i64, i64* %94\n  %96 = inttoptr i64 %92 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  store i64 %95, i64* %97\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %92, i64* %98\n; # (while (pair (shift X)) (setq Y (set 2 Y (cons (car X) $Nil))))\n  br label %$22\n$22:\n  %99 = phi i64 [%85, %$20], [%108, %$23] ; # Exe\n  %100 = phi i64 [%86, %$20], [%109, %$23] ; # X\n  %101 = phi i64 [%90, %$20], [%114, %$23] ; # Y\n  %102 = phi i64 [%90, %$20], [%111, %$23] ; # R\n; # (shift X)\n  %103 = inttoptr i64 %100 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (pair (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp eq i64 %106, 0\n  br i1 %107, label %$23, label %$24\n$23:\n  %108 = phi i64 [%99, %$22] ; # Exe\n  %109 = phi i64 [%105, %$22] ; # X\n  %110 = phi i64 [%101, %$22] ; # Y\n  %111 = phi i64 [%102, %$22] ; # R\n; # (set 2 Y (cons (car X) $Nil))\n; # (car X)\n  %112 = inttoptr i64 %109 to i64*\n  %113 = load i64, i64* %112\n; # (cons (car X) $Nil)\n  %114 = call i64 @cons(i64 %113, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %115 = inttoptr i64 %110 to i64*\n  %116 = getelementptr i64, i64* %115, i32 1\n  store i64 %114, i64* %116\n  br label %$22\n$24:\n  %117 = phi i64 [%99, %$22] ; # Exe\n  %118 = phi i64 [%105, %$22] ; # X\n  %119 = phi i64 [%101, %$22] ; # Y\n  %120 = phi i64 [%102, %$22] ; # R\n  br label %$21\n$21:\n  %121 = phi i64 [%82, %$19], [%117, %$24] ; # Exe\n  %122 = phi i64 [%83, %$19], [%118, %$24] ; # X\n  %123 = phi i64 [%84, %$19], [%119, %$24] ; # Y\n  %124 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$19], [%120, %$24] ; # ->\n; # (drop *Safe)\n  %125 = inttoptr i64 %22 to i64*\n  %126 = getelementptr i64, i64* %125, i32 1\n  %127 = load i64, i64* %126\n  %128 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %127, i64* %128\n  ret i64 %124\n}\n\ndefine void @wipe(i64, i64) align 8 {\n$1:\n; # (let (Tail (val (tail (needSymb Exe X))) Nm (name (& Tail -9))) (...\n; # (needSymb Exe X)\n  %2 = xor i64 %1, 8\n  %3 = and i64 %2, 14\n  %4 = icmp eq i64 %3, 0\n  br i1 %4, label %$3, label %$2\n$2:\n  %5 = phi i64 [%1, %$1] ; # X\n  %6 = phi i64 [%0, %$1] ; # Exe\n  call void @symErr(i64 %6, i64 %5)\n  unreachable\n$3:\n  %7 = phi i64 [%1, %$1] ; # X\n  %8 = phi i64 [%0, %$1] ; # Exe\n; # (tail (needSymb Exe X))\n  %9 = add i64 %7, -8\n; # (val (tail (needSymb Exe X)))\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n; # (& Tail -9)\n  %12 = and i64 %11, -9\n; # (name (& Tail -9))\n  br label %$4\n$4:\n  %13 = phi i64 [%12, %$3], [%19, %$5] ; # Tail\n  %14 = and i64 %13, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$5:\n  %16 = phi i64 [%13, %$4] ; # Tail\n  %17 = inttoptr i64 %16 to i64*\n  %18 = getelementptr i64, i64* %17, i32 1\n  %19 = load i64, i64* %18\n  br label %$4\n$6:\n  %20 = phi i64 [%13, %$4] ; # Tail\n; # (ifn (sym? Tail) (set X $Nil (tail X) Nm) (setq Nm (add Nm Nm)) (...\n; # (sym? Tail)\n  %21 = and i64 %11, 8\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$8, label %$7\n$7:\n  %23 = phi i64 [%0, %$6] ; # Exe\n  %24 = phi i64 [%1, %$6] ; # X\n  %25 = phi i64 [%11, %$6] ; # Tail\n  %26 = phi i64 [%20, %$6] ; # Nm\n; # (set X $Nil (tail X) Nm)\n  %27 = inttoptr i64 %24 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %27\n; # (tail X)\n  %28 = add i64 %24, -8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %26, i64* %29\n  br label %$9\n$8:\n  %30 = phi i64 [%0, %$6] ; # Exe\n  %31 = phi i64 [%1, %$6] ; # X\n  %32 = phi i64 [%11, %$6] ; # Tail\n  %33 = phi i64 [%20, %$6] ; # Nm\n; # (add Nm Nm)\n  %34 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %33, i64 %33)\n  %35 = extractvalue {i64, i1} %34, 1\n  %36 = extractvalue {i64, i1} %34, 0\n; # (unless @@ (setq Nm (add Nm Nm)) (when @@ (set X $Nil (tail X) (s...\n  br i1 %35, label %$11, label %$10\n$10:\n  %37 = phi i64 [%30, %$8] ; # Exe\n  %38 = phi i64 [%31, %$8] ; # X\n  %39 = phi i64 [%32, %$8] ; # Tail\n  %40 = phi i64 [%36, %$8] ; # Nm\n; # (add Nm Nm)\n  %41 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %40, i64 %40)\n  %42 = extractvalue {i64, i1} %41, 1\n  %43 = extractvalue {i64, i1} %41, 0\n; # (when @@ (set X $Nil (tail X) (sym (shr Nm 2))))\n  br i1 %42, label %$12, label %$13\n$12:\n  %44 = phi i64 [%37, %$10] ; # Exe\n  %45 = phi i64 [%38, %$10] ; # X\n  %46 = phi i64 [%39, %$10] ; # Tail\n  %47 = phi i64 [%43, %$10] ; # Nm\n; # (set X $Nil (tail X) (sym (shr Nm 2)))\n  %48 = inttoptr i64 %45 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %48\n; # (tail X)\n  %49 = add i64 %45, -8\n; # (shr Nm 2)\n  %50 = lshr i64 %47, 2\n; # (sym (shr Nm 2))\n  %51 = or i64 %50, 8\n  %52 = inttoptr i64 %49 to i64*\n  store i64 %51, i64* %52\n  br label %$13\n$13:\n  %53 = phi i64 [%37, %$10], [%44, %$12] ; # Exe\n  %54 = phi i64 [%38, %$10], [%45, %$12] ; # X\n  %55 = phi i64 [%39, %$10], [%46, %$12] ; # Tail\n  %56 = phi i64 [%43, %$10], [%47, %$12] ; # Nm\n  br label %$11\n$11:\n  %57 = phi i64 [%30, %$8], [%53, %$13] ; # Exe\n  %58 = phi i64 [%31, %$8], [%54, %$13] ; # X\n  %59 = phi i64 [%32, %$8], [%55, %$13] ; # Tail\n  %60 = phi i64 [%36, %$8], [%56, %$13] ; # Nm\n  br label %$9\n$9:\n  %61 = phi i64 [%23, %$7], [%57, %$11] ; # Exe\n  %62 = phi i64 [%24, %$7], [%58, %$11] ; # X\n  %63 = phi i64 [%25, %$7], [%59, %$11] ; # Tail\n  %64 = phi i64 [%26, %$7], [%60, %$11] ; # Nm\n  ret void\n}\n\ndefine i64 @_Wipe(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (unless (nil? X) (if (atom X) (wipe Exe ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (unless (nil? X) (if (atom X) (wipe Exe X) (let Y X (loop (wipe E...\n; # (nil? X)\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$8, label %$7\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%18, %$2] ; # X\n; # (if (atom X) (wipe Exe X) (let Y X (loop (wipe Exe (++ Y)) (? (at...\n; # (atom X)\n  %22 = and i64 %21, 15\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$9, label %$10\n$9:\n  %24 = phi i64 [%20, %$7] ; # Exe\n  %25 = phi i64 [%21, %$7] ; # X\n; # (wipe Exe X)\n  call void @wipe(i64 %24, i64 %25)\n  br label %$11\n$10:\n  %26 = phi i64 [%20, %$7] ; # Exe\n  %27 = phi i64 [%21, %$7] ; # X\n; # (let Y X (loop (wipe Exe (++ Y)) (? (atom Y))))\n; # (loop (wipe Exe (++ Y)) (? (atom Y)))\n  br label %$12\n$12:\n  %28 = phi i64 [%26, %$10], [%37, %$13] ; # Exe\n  %29 = phi i64 [%27, %$10], [%38, %$13] ; # X\n  %30 = phi i64 [%27, %$10], [%39, %$13] ; # Y\n; # (++ Y)\n  %31 = inttoptr i64 %30 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = load i64, i64* %31\n; # (wipe Exe (++ Y))\n  call void @wipe(i64 %28, i64 %34)\n; # (? (atom Y))\n; # (atom Y)\n  %35 = and i64 %33, 15\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$14, label %$13\n$13:\n  %37 = phi i64 [%28, %$12] ; # Exe\n  %38 = phi i64 [%29, %$12] ; # X\n  %39 = phi i64 [%33, %$12] ; # Y\n  br label %$12\n$14:\n  %40 = phi i64 [%28, %$12] ; # Exe\n  %41 = phi i64 [%29, %$12] ; # X\n  %42 = phi i64 [%33, %$12] ; # Y\n  %43 = phi i64 [0, %$12] ; # ->\n  br label %$11\n$11:\n  %44 = phi i64 [%24, %$9], [%40, %$14] ; # Exe\n  %45 = phi i64 [%25, %$9], [%41, %$14] ; # X\n  br label %$8\n$8:\n  %46 = phi i64 [%0, %$2], [%44, %$11] ; # Exe\n  %47 = phi i64 [%18, %$2], [%45, %$11] ; # X\n  ret i64 %47\n}\n\ndefine i64 @meta(i64, i64) align 8 {\n$1:\n; # (loop (? (atom X) $Nil) (let Y (car X) (when (symb? Y) (? (not (n...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%61, %$7] ; # X\n  %3 = phi i64 [%1, %$1], [%57, %$7] ; # Key\n; # (? (atom X) $Nil)\n; # (atom X)\n  %4 = and i64 %2, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$5, label %$3\n$5:\n  %6 = phi i64 [%2, %$2] ; # X\n  %7 = phi i64 [%3, %$2] ; # Key\n  br label %$4\n$3:\n  %8 = phi i64 [%2, %$2] ; # X\n  %9 = phi i64 [%3, %$2] ; # Key\n; # (let Y (car X) (when (symb? Y) (? (not (nil? (if (== Key ZERO) (v...\n; # (car X)\n  %10 = inttoptr i64 %8 to i64*\n  %11 = load i64, i64* %10\n; # (when (symb? Y) (? (not (nil? (if (== Key ZERO) (val Y) (get Y Ke...\n; # (symb? Y)\n  %12 = xor i64 %11, 8\n  %13 = and i64 %12, 14\n  %14 = icmp eq i64 %13, 0\n  br i1 %14, label %$6, label %$7\n$6:\n  %15 = phi i64 [%8, %$3] ; # X\n  %16 = phi i64 [%9, %$3] ; # Key\n  %17 = phi i64 [%11, %$3] ; # Y\n; # (? (not (nil? (if (== Key ZERO) (val Y) (get Y Key)))) @)\n; # (if (== Key ZERO) (val Y) (get Y Key))\n; # (== Key ZERO)\n  %18 = icmp eq i64 %16, 2\n  br i1 %18, label %$8, label %$9\n$8:\n  %19 = phi i64 [%15, %$6] ; # X\n  %20 = phi i64 [%16, %$6] ; # Key\n  %21 = phi i64 [%17, %$6] ; # Y\n; # (val Y)\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$10\n$9:\n  %24 = phi i64 [%15, %$6] ; # X\n  %25 = phi i64 [%16, %$6] ; # Key\n  %26 = phi i64 [%17, %$6] ; # Y\n; # (get Y Key)\n  %27 = call i64 @get(i64 %26, i64 %25)\n  br label %$10\n$10:\n  %28 = phi i64 [%19, %$8], [%24, %$9] ; # X\n  %29 = phi i64 [%20, %$8], [%25, %$9] ; # Key\n  %30 = phi i64 [%21, %$8], [%26, %$9] ; # Y\n  %31 = phi i64 [%23, %$8], [%27, %$9] ; # ->\n; # (nil? (if (== Key ZERO) (val Y) (get Y Key)))\n  %32 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (if (== Key ZERO) (val Y) (get Y Key))))\n  %33 = icmp eq i1 %32, 0\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%28, %$10] ; # X\n  %35 = phi i64 [%29, %$10] ; # Key\n  %36 = phi i64 [%30, %$10] ; # Y\n  br label %$4\n$11:\n  %37 = phi i64 [%28, %$10] ; # X\n  %38 = phi i64 [%29, %$10] ; # Key\n  %39 = phi i64 [%30, %$10] ; # Y\n; # (stkChk 0)\n  %40 = load i8*, i8** @$StkLimit\n  %41 = call i8* @llvm.stacksave()\n  %42 = icmp ugt i8* %40, %41\n  br i1 %42, label %$13, label %$14\n$13:\n  %43 = phi i64 [0, %$11] ; # Exe\n  call void @stkErr(i64 %43)\n  unreachable\n$14:\n  %44 = phi i64 [0, %$11] ; # Exe\n; # (? (not (nil? (meta (car Y) Key))) @)\n; # (car Y)\n  %45 = inttoptr i64 %39 to i64*\n  %46 = load i64, i64* %45\n; # (meta (car Y) Key)\n  %47 = call i64 @meta(i64 %46, i64 %38)\n; # (nil? (meta (car Y) Key))\n  %48 = icmp eq i64 %47, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (meta (car Y) Key)))\n  %49 = icmp eq i1 %48, 0\n  br i1 %49, label %$16, label %$15\n$16:\n  %50 = phi i64 [%37, %$14] ; # X\n  %51 = phi i64 [%38, %$14] ; # Key\n  %52 = phi i64 [%39, %$14] ; # Y\n  br label %$4\n$15:\n  %53 = phi i64 [%37, %$14] ; # X\n  %54 = phi i64 [%38, %$14] ; # Key\n  %55 = phi i64 [%39, %$14] ; # Y\n  br label %$7\n$7:\n  %56 = phi i64 [%8, %$3], [%53, %$15] ; # X\n  %57 = phi i64 [%9, %$3], [%54, %$15] ; # Key\n  %58 = phi i64 [%11, %$3], [%55, %$15] ; # Y\n; # (shift X)\n  %59 = inttoptr i64 %56 to i64*\n  %60 = getelementptr i64, i64* %59, i32 1\n  %61 = load i64, i64* %60\n  br label %$2\n$4:\n  %62 = phi i64 [%6, %$5], [%34, %$12], [%50, %$16] ; # X\n  %63 = phi i64 [%7, %$5], [%35, %$12], [%51, %$16] ; # Key\n  %64 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%31, %$12], [%47, %$16] ; # ->\n  ret i64 %64\n}\n\ndefine i64 @_Meta(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X)))) (when (num? Y) (argErr ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (when (num? Y) (argErr Exe Y))\n; # (num? Y)\n  %29 = and i64 %20, 6\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i64 [%0, %$2] ; # Exe\n  %32 = phi i64 [%6, %$2] ; # X\n  %33 = phi i64 [%20, %$2] ; # Y\n; # (argErr Exe Y)\n  call void @argErr(i64 %31, i64 %33)\n  unreachable\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%6, %$2] ; # X\n  %36 = phi i64 [%20, %$2] ; # Y\n; # (when (sym? Y) (when (sym? (val (tail Y))) (dbFetch Exe Y)) (setq...\n; # (sym? Y)\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$9, label %$10\n$9:\n  %39 = phi i64 [%34, %$8] ; # Exe\n  %40 = phi i64 [%35, %$8] ; # X\n  %41 = phi i64 [%36, %$8] ; # Y\n; # (when (sym? (val (tail Y))) (dbFetch Exe Y))\n; # (tail Y)\n  %42 = add i64 %41, -8\n; # (val (tail Y))\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (sym? (val (tail Y)))\n  %45 = and i64 %44, 8\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$11, label %$12\n$11:\n  %47 = phi i64 [%39, %$9] ; # Exe\n  %48 = phi i64 [%40, %$9] ; # X\n  %49 = phi i64 [%41, %$9] ; # Y\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %47, i64 %49)\n  br label %$12\n$12:\n  %50 = phi i64 [%39, %$9], [%47, %$11] ; # Exe\n  %51 = phi i64 [%40, %$9], [%48, %$11] ; # X\n  %52 = phi i64 [%41, %$9], [%49, %$11] ; # Y\n; # (val Y)\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$10\n$10:\n  %55 = phi i64 [%34, %$8], [%50, %$12] ; # Exe\n  %56 = phi i64 [%35, %$8], [%51, %$12] ; # X\n  %57 = phi i64 [%36, %$8], [%54, %$12] ; # Y\n; # (car X)\n  %58 = inttoptr i64 %56 to i64*\n  %59 = load i64, i64* %58\n; # (eval (car X))\n  %60 = and i64 %59, 6\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$15, label %$14\n$15:\n  %62 = phi i64 [%59, %$10] ; # X\n  br label %$13\n$14:\n  %63 = phi i64 [%59, %$10] ; # X\n  %64 = and i64 %63, 8\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$17, label %$16\n$17:\n  %66 = phi i64 [%63, %$14] ; # X\n  %67 = inttoptr i64 %66 to i64*\n  %68 = load i64, i64* %67\n  br label %$13\n$16:\n  %69 = phi i64 [%63, %$14] ; # X\n  %70 = call i64 @evList(i64 %69)\n  br label %$13\n$13:\n  %71 = phi i64 [%62, %$15], [%66, %$17], [%69, %$16] ; # X\n  %72 = phi i64 [%62, %$15], [%68, %$17], [%70, %$16] ; # ->\n; # (meta Y (eval (car X)))\n  %73 = call i64 @meta(i64 %57, i64 %72)\n; # (while (pair (shift X)) (safe Y) (setq Y (getn Exe Y (eval (car X...\n  br label %$18\n$18:\n  %74 = phi i64 [%55, %$13], [%82, %$21] ; # Exe\n  %75 = phi i64 [%56, %$13], [%83, %$21] ; # X\n  %76 = phi i64 [%73, %$13], [%101, %$21] ; # Y\n; # (shift X)\n  %77 = inttoptr i64 %75 to i64*\n  %78 = getelementptr i64, i64* %77, i32 1\n  %79 = load i64, i64* %78\n; # (pair (shift X))\n  %80 = and i64 %79, 15\n  %81 = icmp eq i64 %80, 0\n  br i1 %81, label %$19, label %$20\n$19:\n  %82 = phi i64 [%74, %$18] ; # Exe\n  %83 = phi i64 [%79, %$18] ; # X\n  %84 = phi i64 [%76, %$18] ; # Y\n; # (safe Y)\n  %85 = inttoptr i64 %24 to i64*\n  store i64 %84, i64* %85\n; # (car X)\n  %86 = inttoptr i64 %83 to i64*\n  %87 = load i64, i64* %86\n; # (eval (car X))\n  %88 = and i64 %87, 6\n  %89 = icmp ne i64 %88, 0\n  br i1 %89, label %$23, label %$22\n$23:\n  %90 = phi i64 [%87, %$19] ; # X\n  br label %$21\n$22:\n  %91 = phi i64 [%87, %$19] ; # X\n  %92 = and i64 %91, 8\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$25, label %$24\n$25:\n  %94 = phi i64 [%91, %$22] ; # X\n  %95 = inttoptr i64 %94 to i64*\n  %96 = load i64, i64* %95\n  br label %$21\n$24:\n  %97 = phi i64 [%91, %$22] ; # X\n  %98 = call i64 @evList(i64 %97)\n  br label %$21\n$21:\n  %99 = phi i64 [%90, %$23], [%94, %$25], [%97, %$24] ; # X\n  %100 = phi i64 [%90, %$23], [%96, %$25], [%98, %$24] ; # ->\n; # (getn Exe Y (eval (car X)))\n  %101 = call i64 @getn(i64 %82, i64 %84, i64 %100)\n  br label %$18\n$20:\n  %102 = phi i64 [%74, %$18] ; # Exe\n  %103 = phi i64 [%79, %$18] ; # X\n  %104 = phi i64 [%76, %$18] ; # Y\n; # (drop *Safe)\n  %105 = inttoptr i64 %24 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  %107 = load i64, i64* %106\n  %108 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %107, i64* %108\n  ret i64 %104\n}\n\ndefine i64 @_LowQ(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (and (symb? X) (isLowc (firstChar X)...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (and (symb? X) (isLowc (firstChar X))) X $Nil)\n; # (and (symb? X) (isLowc (firstChar X)))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n; # (firstChar X)\n  %24 = call i32 @firstChar(i64 %23)\n; # (isLowc (firstChar X))\n  %25 = call i1 @isLowc(i32 %24)\n  br label %$7\n$7:\n  %26 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %27 = phi i64 [%18, %$2], [%23, %$8] ; # X\n  %28 = phi i1 [0, %$2], [%25, %$8] ; # ->\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$7] ; # Exe\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$10:\n  %31 = phi i64 [%26, %$7] ; # Exe\n  %32 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$11:\n  %33 = phi i64 [%29, %$9], [%31, %$10] ; # Exe\n  %34 = phi i64 [%30, %$9], [%32, %$10] ; # X\n  %35 = phi i64 [%30, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %35\n}\n\ndefine i64 @_UppQ(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (and (symb? X) (isUppc (firstChar X)...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (and (symb? X) (isUppc (firstChar X))) X $Nil)\n; # (and (symb? X) (isUppc (firstChar X)))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n; # (firstChar X)\n  %24 = call i32 @firstChar(i64 %23)\n; # (isUppc (firstChar X))\n  %25 = call i1 @isUppc(i32 %24)\n  br label %$7\n$7:\n  %26 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %27 = phi i64 [%18, %$2], [%23, %$8] ; # X\n  %28 = phi i1 [0, %$2], [%25, %$8] ; # ->\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$7] ; # Exe\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$10:\n  %31 = phi i64 [%26, %$7] ; # Exe\n  %32 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$11:\n  %33 = phi i64 [%29, %$9], [%31, %$10] ; # Exe\n  %34 = phi i64 [%30, %$9], [%32, %$10] ; # X\n  %35 = phi i64 [%30, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %35\n}\n\ndefine i64 @_Lowc(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (or (not (symb? X)) (nil? X)) X (let...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (or (not (symb? X)) (nil? X)) X (let (P (push 0 (xName X) NIL...\n; # (or (not (symb? X)) (nil? X))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n; # (not (symb? X))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$7, label %$8\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n; # (nil? X)\n  %25 = icmp eq i64 %24, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %26 = phi i64 [%0, %$2], [%23, %$8] ; # Exe\n  %27 = phi i64 [%18, %$2], [%24, %$8] ; # X\n  %28 = phi i1 [1, %$2], [%25, %$8] ; # ->\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$7] ; # Exe\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$10:\n  %31 = phi i64 [%26, %$7] ; # Exe\n  %32 = phi i64 [%27, %$7] ; # X\n; # (let (P (push 0 (xName X) NIL) Q (link (ofs P 1) T) R (push 4 NIL...\n; # (xName X)\n  %33 = call i64 @xName(i64 %32)\n; # (push 0 (xName X) NIL)\n  %34 = alloca i64, i64 3, align 16\n  store i64 0, i64* %34\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n; # (ofs P 1)\n  %36 = getelementptr i64, i64* %34, i32 1\n; # (link (ofs P 1) T)\n  %37 = ptrtoint i64* %36 to i64\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = inttoptr i64 %37 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  store i64 %39, i64* %41\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %37, i64* %42\n; # (push 4 NIL ZERO NIL)\n  %43 = alloca i64, i64 4, align 16\n  store i64 4, i64* %43\n  %44 = getelementptr i64, i64* %43, i32 2\n  store i64 2, i64* %44\n; # (ofs R 2)\n  %45 = getelementptr i64, i64* %43, i32 2\n; # (link (ofs R 2))\n  %46 = ptrtoint i64* %45 to i64\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 %46 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  store i64 %48, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %46, i64* %51\n; # (while (setq C (symChar P)) (charSym (toLowerCase C) R))\n  br label %$12\n$12:\n  %52 = phi i64 [%31, %$10], [%59, %$13] ; # Exe\n  %53 = phi i64 [%32, %$10], [%60, %$13] ; # X\n  %54 = phi i64* [%34, %$10], [%61, %$13] ; # P\n  %55 = phi i64 [%37, %$10], [%62, %$13] ; # Q\n  %56 = phi i64* [%43, %$10], [%63, %$13] ; # R\n; # (symChar P)\n  %57 = call i32 @symChar(i64* %54)\n  %58 = icmp ne i32 %57, 0\n  br i1 %58, label %$13, label %$14\n$13:\n  %59 = phi i64 [%52, %$12] ; # Exe\n  %60 = phi i64 [%53, %$12] ; # X\n  %61 = phi i64* [%54, %$12] ; # P\n  %62 = phi i64 [%55, %$12] ; # Q\n  %63 = phi i64* [%56, %$12] ; # R\n  %64 = phi i32 [%57, %$12] ; # C\n; # (toLowerCase C)\n  %65 = call i32 @toLowerCase(i32 %64)\n; # (charSym (toLowerCase C) R)\n  call void @charSym(i32 %65, i64* %63)\n  br label %$12\n$14:\n  %66 = phi i64 [%52, %$12] ; # Exe\n  %67 = phi i64 [%53, %$12] ; # X\n  %68 = phi i64* [%54, %$12] ; # P\n  %69 = phi i64 [%55, %$12] ; # Q\n  %70 = phi i64* [%56, %$12] ; # R\n  %71 = phi i32 [%57, %$12] ; # C\n; # (val 3 R)\n  %72 = getelementptr i64, i64* %70, i32 2\n  %73 = load i64, i64* %72\n; # (consStr (val 3 R))\n  %74 = call i64 @consStr(i64 %73)\n; # (drop *Safe)\n  %75 = inttoptr i64 %37 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  %77 = load i64, i64* %76\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %77, i64* %78\n  br label %$11\n$11:\n  %79 = phi i64 [%29, %$9], [%66, %$14] ; # Exe\n  %80 = phi i64 [%30, %$9], [%67, %$14] ; # X\n  %81 = phi i64 [%30, %$9], [%74, %$14] ; # ->\n  ret i64 %81\n}\n\ndefine i64 @_Uppc(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (or (not (symb? X)) (nil? X)) X (let...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (or (not (symb? X)) (nil? X)) X (let (P (push 0 (xName X) NIL...\n; # (or (not (symb? X)) (nil? X))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n; # (not (symb? X))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$7, label %$8\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n; # (nil? X)\n  %25 = icmp eq i64 %24, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %26 = phi i64 [%0, %$2], [%23, %$8] ; # Exe\n  %27 = phi i64 [%18, %$2], [%24, %$8] ; # X\n  %28 = phi i1 [1, %$2], [%25, %$8] ; # ->\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$7] ; # Exe\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$11\n$10:\n  %31 = phi i64 [%26, %$7] ; # Exe\n  %32 = phi i64 [%27, %$7] ; # X\n; # (let (P (push 0 (xName X) NIL) Q (link (ofs P 1) T) R (push 4 NIL...\n; # (xName X)\n  %33 = call i64 @xName(i64 %32)\n; # (push 0 (xName X) NIL)\n  %34 = alloca i64, i64 3, align 16\n  store i64 0, i64* %34\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n; # (ofs P 1)\n  %36 = getelementptr i64, i64* %34, i32 1\n; # (link (ofs P 1) T)\n  %37 = ptrtoint i64* %36 to i64\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = inttoptr i64 %37 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  store i64 %39, i64* %41\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %37, i64* %42\n; # (push 4 NIL ZERO NIL)\n  %43 = alloca i64, i64 4, align 16\n  store i64 4, i64* %43\n  %44 = getelementptr i64, i64* %43, i32 2\n  store i64 2, i64* %44\n; # (ofs R 2)\n  %45 = getelementptr i64, i64* %43, i32 2\n; # (link (ofs R 2))\n  %46 = ptrtoint i64* %45 to i64\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 %46 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  store i64 %48, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %46, i64* %51\n; # (while (setq C (symChar P)) (ifn (== C (char \"ß\")) (charSym (toUp...\n  br label %$12\n$12:\n  %52 = phi i64 [%31, %$10], [%79, %$17] ; # Exe\n  %53 = phi i64 [%32, %$10], [%80, %$17] ; # X\n  %54 = phi i64* [%34, %$10], [%81, %$17] ; # P\n  %55 = phi i64 [%37, %$10], [%82, %$17] ; # Q\n  %56 = phi i64* [%43, %$10], [%83, %$17] ; # R\n; # (symChar P)\n  %57 = call i32 @symChar(i64* %54)\n  %58 = icmp ne i32 %57, 0\n  br i1 %58, label %$13, label %$14\n$13:\n  %59 = phi i64 [%52, %$12] ; # Exe\n  %60 = phi i64 [%53, %$12] ; # X\n  %61 = phi i64* [%54, %$12] ; # P\n  %62 = phi i64 [%55, %$12] ; # Q\n  %63 = phi i64* [%56, %$12] ; # R\n  %64 = phi i32 [%57, %$12] ; # C\n; # (ifn (== C (char \"ß\")) (charSym (toUpperCase C) R) (charSym (char...\n; # (== C (char \"ß\"))\n  %65 = icmp eq i32 %64, 223\n  br i1 %65, label %$16, label %$15\n$15:\n  %66 = phi i64 [%59, %$13] ; # Exe\n  %67 = phi i64 [%60, %$13] ; # X\n  %68 = phi i64* [%61, %$13] ; # P\n  %69 = phi i64 [%62, %$13] ; # Q\n  %70 = phi i64* [%63, %$13] ; # R\n  %71 = phi i32 [%64, %$13] ; # C\n; # (toUpperCase C)\n  %72 = call i32 @toUpperCase(i32 %71)\n; # (charSym (toUpperCase C) R)\n  call void @charSym(i32 %72, i64* %70)\n  br label %$17\n$16:\n  %73 = phi i64 [%59, %$13] ; # Exe\n  %74 = phi i64 [%60, %$13] ; # X\n  %75 = phi i64* [%61, %$13] ; # P\n  %76 = phi i64 [%62, %$13] ; # Q\n  %77 = phi i64* [%63, %$13] ; # R\n  %78 = phi i32 [%64, %$13] ; # C\n; # (charSym (char \"S\") R)\n  call void @charSym(i32 83, i64* %77)\n; # (charSym (char \"S\") R)\n  call void @charSym(i32 83, i64* %77)\n  br label %$17\n$17:\n  %79 = phi i64 [%66, %$15], [%73, %$16] ; # Exe\n  %80 = phi i64 [%67, %$15], [%74, %$16] ; # X\n  %81 = phi i64* [%68, %$15], [%75, %$16] ; # P\n  %82 = phi i64 [%69, %$15], [%76, %$16] ; # Q\n  %83 = phi i64* [%70, %$15], [%77, %$16] ; # R\n  %84 = phi i32 [%71, %$15], [%78, %$16] ; # C\n  br label %$12\n$14:\n  %85 = phi i64 [%52, %$12] ; # Exe\n  %86 = phi i64 [%53, %$12] ; # X\n  %87 = phi i64* [%54, %$12] ; # P\n  %88 = phi i64 [%55, %$12] ; # Q\n  %89 = phi i64* [%56, %$12] ; # R\n  %90 = phi i32 [%57, %$12] ; # C\n; # (val 3 R)\n  %91 = getelementptr i64, i64* %89, i32 2\n  %92 = load i64, i64* %91\n; # (consStr (val 3 R))\n  %93 = call i64 @consStr(i64 %92)\n; # (drop *Safe)\n  %94 = inttoptr i64 %37 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %96, i64* %97\n  br label %$11\n$11:\n  %98 = phi i64 [%29, %$9], [%85, %$14] ; # Exe\n  %99 = phi i64 [%30, %$9], [%86, %$14] ; # X\n  %100 = phi i64 [%30, %$9], [%93, %$14] ; # ->\n  ret i64 %100\n}\n\ndefine i64 @_Fold(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (if (or (not (symb? Y)) (nil? ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (if (or (not (symb? Y)) (nil? Y)) Y (let (N (if (atom X) 0 (evCnt...\n; # (or (not (symb? Y)) (nil? Y))\n; # (symb? Y)\n  %21 = xor i64 %20, 8\n  %22 = and i64 %21, 14\n  %23 = icmp eq i64 %22, 0\n; # (not (symb? Y))\n  %24 = icmp eq i1 %23, 0\n  br i1 %24, label %$7, label %$8\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i64 [%20, %$2] ; # Y\n; # (nil? Y)\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%25, %$8] ; # Exe\n  %30 = phi i64 [%6, %$2], [%26, %$8] ; # X\n  %31 = phi i64 [%20, %$2], [%27, %$8] ; # Y\n  %32 = phi i1 [1, %$2], [%28, %$8] ; # ->\n  br i1 %32, label %$9, label %$10\n$9:\n  %33 = phi i64 [%29, %$7] ; # Exe\n  %34 = phi i64 [%30, %$7] ; # X\n  %35 = phi i64 [%31, %$7] ; # Y\n  br label %$11\n$10:\n  %36 = phi i64 [%29, %$7] ; # Exe\n  %37 = phi i64 [%30, %$7] ; # X\n  %38 = phi i64 [%31, %$7] ; # Y\n; # (let (N (if (atom X) 0 (evCnt Exe X)) P (push 0 (xName Y) NIL) Q ...\n; # (if (atom X) 0 (evCnt Exe X))\n; # (atom X)\n  %39 = and i64 %37, 15\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$12, label %$13\n$12:\n  %41 = phi i64 [%36, %$10] ; # Exe\n  %42 = phi i64 [%37, %$10] ; # X\n  %43 = phi i64 [%38, %$10] ; # Y\n  br label %$14\n$13:\n  %44 = phi i64 [%36, %$10] ; # Exe\n  %45 = phi i64 [%37, %$10] ; # X\n  %46 = phi i64 [%38, %$10] ; # Y\n; # (evCnt Exe X)\n  %47 = call i64 @evCnt(i64 %44, i64 %45)\n  br label %$14\n$14:\n  %48 = phi i64 [%41, %$12], [%44, %$13] ; # Exe\n  %49 = phi i64 [%42, %$12], [%45, %$13] ; # X\n  %50 = phi i64 [%43, %$12], [%46, %$13] ; # Y\n  %51 = phi i64 [0, %$12], [%47, %$13] ; # ->\n; # (xName Y)\n  %52 = call i64 @xName(i64 %50)\n; # (push 0 (xName Y) NIL)\n  %53 = alloca i64, i64 3, align 16\n  store i64 0, i64* %53\n  %54 = getelementptr i64, i64* %53, i32 1\n  store i64 %52, i64* %54\n; # (ofs P 1)\n  %55 = getelementptr i64, i64* %53, i32 1\n; # (link (ofs P 1) T)\n  %56 = ptrtoint i64* %55 to i64\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %58 = load i64, i64* %57\n  %59 = inttoptr i64 %56 to i64*\n  %60 = getelementptr i64, i64* %59, i32 1\n  store i64 %58, i64* %60\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %61\n; # (push 4 NIL ZERO NIL)\n  %62 = alloca i64, i64 4, align 16\n  store i64 4, i64* %62\n  %63 = getelementptr i64, i64* %62, i32 2\n  store i64 2, i64* %63\n; # (ofs R 2)\n  %64 = getelementptr i64, i64* %62, i32 2\n; # (link (ofs R 2))\n  %65 = ptrtoint i64* %64 to i64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  store i64 %67, i64* %69\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %70\n; # (while (setq C (symChar P)) (when (isLetterOrDigit C) (charSym (t...\n  br label %$15\n$15:\n  %71 = phi i64 [%48, %$14], [%108, %$19] ; # Exe\n  %72 = phi i64 [%49, %$14], [%109, %$19] ; # X\n  %73 = phi i64 [%50, %$14], [%110, %$19] ; # Y\n  %74 = phi i64 [%51, %$14], [%111, %$19] ; # N\n  %75 = phi i64* [%53, %$14], [%112, %$19] ; # P\n  %76 = phi i64 [%56, %$14], [%113, %$19] ; # Q\n  %77 = phi i64* [%62, %$14], [%114, %$19] ; # R\n; # (symChar P)\n  %78 = call i32 @symChar(i64* %75)\n  %79 = icmp ne i32 %78, 0\n  br i1 %79, label %$16, label %$17\n$16:\n  %80 = phi i64 [%71, %$15] ; # Exe\n  %81 = phi i64 [%72, %$15] ; # X\n  %82 = phi i64 [%73, %$15] ; # Y\n  %83 = phi i64 [%74, %$15] ; # N\n  %84 = phi i64* [%75, %$15] ; # P\n  %85 = phi i64 [%76, %$15] ; # Q\n  %86 = phi i64* [%77, %$15] ; # R\n  %87 = phi i32 [%78, %$15] ; # C\n; # (when (isLetterOrDigit C) (charSym (toLowerCase C) R) (? (=0 (dec...\n; # (isLetterOrDigit C)\n  %88 = call i1 @isLetterOrDigit(i32 %87)\n  br i1 %88, label %$18, label %$19\n$18:\n  %89 = phi i64 [%80, %$16] ; # Exe\n  %90 = phi i64 [%81, %$16] ; # X\n  %91 = phi i64 [%82, %$16] ; # Y\n  %92 = phi i64 [%83, %$16] ; # N\n  %93 = phi i64* [%84, %$16] ; # P\n  %94 = phi i64 [%85, %$16] ; # Q\n  %95 = phi i64* [%86, %$16] ; # R\n  %96 = phi i32 [%87, %$16] ; # C\n; # (toLowerCase C)\n  %97 = call i32 @toLowerCase(i32 %96)\n; # (charSym (toLowerCase C) R)\n  call void @charSym(i32 %97, i64* %95)\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %98 = sub i64 %92, 1\n; # (=0 (dec 'N))\n  %99 = icmp eq i64 %98, 0\n  br i1 %99, label %$17, label %$20\n$20:\n  %100 = phi i64 [%89, %$18] ; # Exe\n  %101 = phi i64 [%90, %$18] ; # X\n  %102 = phi i64 [%91, %$18] ; # Y\n  %103 = phi i64 [%98, %$18] ; # N\n  %104 = phi i64* [%93, %$18] ; # P\n  %105 = phi i64 [%94, %$18] ; # Q\n  %106 = phi i64* [%95, %$18] ; # R\n  %107 = phi i32 [%96, %$18] ; # C\n  br label %$19\n$19:\n  %108 = phi i64 [%80, %$16], [%100, %$20] ; # Exe\n  %109 = phi i64 [%81, %$16], [%101, %$20] ; # X\n  %110 = phi i64 [%82, %$16], [%102, %$20] ; # Y\n  %111 = phi i64 [%83, %$16], [%103, %$20] ; # N\n  %112 = phi i64* [%84, %$16], [%104, %$20] ; # P\n  %113 = phi i64 [%85, %$16], [%105, %$20] ; # Q\n  %114 = phi i64* [%86, %$16], [%106, %$20] ; # R\n  %115 = phi i32 [%87, %$16], [%107, %$20] ; # C\n  br label %$15\n$17:\n  %116 = phi i64 [%71, %$15], [%89, %$18] ; # Exe\n  %117 = phi i64 [%72, %$15], [%90, %$18] ; # X\n  %118 = phi i64 [%73, %$15], [%91, %$18] ; # Y\n  %119 = phi i64 [%74, %$15], [%98, %$18] ; # N\n  %120 = phi i64* [%75, %$15], [%93, %$18] ; # P\n  %121 = phi i64 [%76, %$15], [%94, %$18] ; # Q\n  %122 = phi i64* [%77, %$15], [%95, %$18] ; # R\n  %123 = phi i32 [%78, %$15], [%96, %$18] ; # C\n; # (val 3 R)\n  %124 = getelementptr i64, i64* %122, i32 2\n  %125 = load i64, i64* %124\n; # (consStr (val 3 R))\n  %126 = call i64 @consStr(i64 %125)\n; # (drop *Safe)\n  %127 = inttoptr i64 %56 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n  %130 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %129, i64* %130\n  br label %$11\n$11:\n  %131 = phi i64 [%33, %$9], [%116, %$17] ; # Exe\n  %132 = phi i64 [%34, %$9], [%117, %$17] ; # X\n  %133 = phi i64 [%35, %$9], [%118, %$17] ; # Y\n  %134 = phi i64 [%35, %$9], [%126, %$17] ; # ->\n  ret i64 %134\n}\n\ndefine i8* @dirString(i64, i8*) align 8 {\n$1:\n; # (let S (pathString Nm P) (if (val P) P ($ \".\")))\n; # (pathString Nm P)\n  %2 = call i8* @pathString(i64 %0, i8* %1)\n; # (if (val P) P ($ \".\"))\n; # (val P)\n  %3 = load i8, i8* %1\n  %4 = icmp ne i8 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Nm\n  %6 = phi i8* [%1, %$1] ; # P\n  %7 = phi i8* [%2, %$1] ; # S\n  br label %$4\n$3:\n  %8 = phi i64 [%0, %$1] ; # Nm\n  %9 = phi i8* [%1, %$1] ; # P\n  %10 = phi i8* [%2, %$1] ; # S\n  br label %$4\n$4:\n  %11 = phi i64 [%5, %$2], [%8, %$3] ; # Nm\n  %12 = phi i8* [%6, %$2], [%9, %$3] ; # P\n  %13 = phi i8* [%7, %$2], [%10, %$3] ; # S\n  %14 = phi i8* [%6, %$2], [bitcast ([2 x i8]* @$28 to i8*), %$3] ; # ->\n  ret i8* %14\n}\n\ndefine i1 @equal(i64, i64) align 8 {\n$1:\n; # (cond ((== X Y) YES) ((cnt? X) NO) ((big? X) (if (cnt? Y) NO (whe...\n; # (== X Y)\n  %2 = icmp eq i64 %0, %1\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n  %4 = phi i64 [%1, %$1] ; # Y\n  br label %$2\n$3:\n  %5 = phi i64 [%0, %$1] ; # X\n  %6 = phi i64 [%1, %$1] ; # Y\n; # (cnt? X)\n  %7 = and i64 %5, 2\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$6, label %$5\n$6:\n  %9 = phi i64 [%5, %$3] ; # X\n  %10 = phi i64 [%6, %$3] ; # Y\n  br label %$2\n$5:\n  %11 = phi i64 [%5, %$3] ; # X\n  %12 = phi i64 [%6, %$3] ; # Y\n; # (big? X)\n  %13 = and i64 %11, 4\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$8, label %$7\n$8:\n  %15 = phi i64 [%11, %$5] ; # X\n  %16 = phi i64 [%12, %$5] ; # Y\n; # (if (cnt? Y) NO (when (sign? X) (unless (sign? Y) (ret NO)) (setq...\n; # (cnt? Y)\n  %17 = and i64 %16, 2\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$9, label %$10\n$9:\n  %19 = phi i64 [%15, %$8] ; # X\n  %20 = phi i64 [%16, %$8] ; # Y\n  br label %$11\n$10:\n  %21 = phi i64 [%15, %$8] ; # X\n  %22 = phi i64 [%16, %$8] ; # Y\n; # (when (sign? X) (unless (sign? Y) (ret NO)) (setq X (pos X) Y (po...\n; # (sign? X)\n  %23 = and i64 %21, 8\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$12, label %$13\n$12:\n  %25 = phi i64 [%21, %$10] ; # X\n  %26 = phi i64 [%22, %$10] ; # Y\n; # (unless (sign? Y) (ret NO))\n; # (sign? Y)\n  %27 = and i64 %26, 8\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$15, label %$14\n$14:\n  %29 = phi i64 [%25, %$12] ; # X\n  %30 = phi i64 [%26, %$12] ; # Y\n; # (ret NO)\n  ret i1 0\n$15:\n  %31 = phi i64 [%25, %$12] ; # X\n  %32 = phi i64 [%26, %$12] ; # Y\n; # (pos X)\n  %33 = and i64 %31, -9\n; # (pos Y)\n  %34 = and i64 %32, -9\n  br label %$13\n$13:\n  %35 = phi i64 [%21, %$10], [%33, %$15] ; # X\n  %36 = phi i64 [%22, %$10], [%34, %$15] ; # Y\n; # (equalBig X Y)\n  br label %$16\n$16:\n  %37 = phi i64 [%36, %$13], [%71, %$24] ; # Y\n  %38 = phi i64 [%35, %$13], [%72, %$24] ; # X\n  %39 = add i64 %38, -4\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  %42 = add i64 %37, -4\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  %45 = icmp ne i64 %41, %44\n  br i1 %45, label %$19, label %$17\n$19:\n  %46 = phi i64 [%37, %$16] ; # Y\n  %47 = phi i64 [%38, %$16] ; # X\n  br label %$18\n$17:\n  %48 = phi i64 [%37, %$16] ; # Y\n  %49 = phi i64 [%38, %$16] ; # X\n  %50 = add i64 %49, 4\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n  %53 = add i64 %48, 4\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  %56 = icmp eq i64 %52, %55\n  br i1 %56, label %$21, label %$20\n$21:\n  %57 = phi i64 [%55, %$17] ; # Y\n  %58 = phi i64 [%52, %$17] ; # X\n  br label %$18\n$20:\n  %59 = phi i64 [%55, %$17] ; # Y\n  %60 = phi i64 [%52, %$17] ; # X\n  %61 = and i64 %60, 2\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$23, label %$22\n$23:\n  %63 = phi i64 [%59, %$20] ; # Y\n  %64 = phi i64 [%60, %$20] ; # X\n  br label %$18\n$22:\n  %65 = phi i64 [%59, %$20] ; # Y\n  %66 = phi i64 [%60, %$20] ; # X\n  %67 = and i64 %65, 2\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$25, label %$24\n$25:\n  %69 = phi i64 [%65, %$22] ; # Y\n  %70 = phi i64 [%66, %$22] ; # X\n  br label %$18\n$24:\n  %71 = phi i64 [%65, %$22] ; # Y\n  %72 = phi i64 [%66, %$22] ; # X\n  br label %$16\n$18:\n  %73 = phi i64 [%46, %$19], [%57, %$21], [%63, %$23], [%69, %$25] ; # Y\n  %74 = phi i64 [%47, %$19], [%58, %$21], [%64, %$23], [%70, %$25] ; # X\n  %75 = phi i1 [0, %$19], [1, %$21], [0, %$23], [0, %$25] ; # ->\n  br label %$11\n$11:\n  %76 = phi i64 [%19, %$9], [%35, %$18] ; # X\n  %77 = phi i64 [%20, %$9], [%36, %$18] ; # Y\n  %78 = phi i1 [0, %$9], [%75, %$18] ; # ->\n  br label %$2\n$7:\n  %79 = phi i64 [%11, %$5] ; # X\n  %80 = phi i64 [%12, %$5] ; # Y\n; # (sym? X)\n  %81 = and i64 %79, 8\n  %82 = icmp ne i64 %81, 0\n  br i1 %82, label %$27, label %$26\n$27:\n  %83 = phi i64 [%79, %$7] ; # X\n  %84 = phi i64 [%80, %$7] ; # Y\n; # (cond ((num? Y) NO) ((pair Y) NO) ((sym? (val (tail X))) NO) ((==...\n; # (num? Y)\n  %85 = and i64 %84, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$30, label %$29\n$30:\n  %87 = phi i64 [%83, %$27] ; # X\n  %88 = phi i64 [%84, %$27] ; # Y\n  br label %$28\n$29:\n  %89 = phi i64 [%83, %$27] ; # X\n  %90 = phi i64 [%84, %$27] ; # Y\n; # (pair Y)\n  %91 = and i64 %90, 15\n  %92 = icmp eq i64 %91, 0\n  br i1 %92, label %$32, label %$31\n$32:\n  %93 = phi i64 [%89, %$29] ; # X\n  %94 = phi i64 [%90, %$29] ; # Y\n  br label %$28\n$31:\n  %95 = phi i64 [%89, %$29] ; # X\n  %96 = phi i64 [%90, %$29] ; # Y\n; # (tail X)\n  %97 = add i64 %95, -8\n; # (val (tail X))\n  %98 = inttoptr i64 %97 to i64*\n  %99 = load i64, i64* %98\n; # (sym? (val (tail X)))\n  %100 = and i64 %99, 8\n  %101 = icmp ne i64 %100, 0\n  br i1 %101, label %$34, label %$33\n$34:\n  %102 = phi i64 [%95, %$31] ; # X\n  %103 = phi i64 [%96, %$31] ; # Y\n  br label %$28\n$33:\n  %104 = phi i64 [%95, %$31] ; # X\n  %105 = phi i64 [%96, %$31] ; # Y\n; # (name @)\n  br label %$35\n$35:\n  %106 = phi i64 [%99, %$33], [%112, %$36] ; # Tail\n  %107 = and i64 %106, 6\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$37, label %$36\n$36:\n  %109 = phi i64 [%106, %$35] ; # Tail\n  %110 = inttoptr i64 %109 to i64*\n  %111 = getelementptr i64, i64* %110, i32 1\n  %112 = load i64, i64* %111\n  br label %$35\n$37:\n  %113 = phi i64 [%106, %$35] ; # Tail\n; # (== ZERO (setq X (name @)))\n  %114 = icmp eq i64 2, %113\n  br i1 %114, label %$39, label %$38\n$39:\n  %115 = phi i64 [%113, %$37] ; # X\n  %116 = phi i64 [%105, %$37] ; # Y\n  br label %$28\n$38:\n  %117 = phi i64 [%113, %$37] ; # X\n  %118 = phi i64 [%105, %$37] ; # Y\n; # (tail Y)\n  %119 = add i64 %118, -8\n; # (val (tail Y))\n  %120 = inttoptr i64 %119 to i64*\n  %121 = load i64, i64* %120\n; # (sym? (val (tail Y)))\n  %122 = and i64 %121, 8\n  %123 = icmp ne i64 %122, 0\n  br i1 %123, label %$41, label %$40\n$41:\n  %124 = phi i64 [%117, %$38] ; # X\n  %125 = phi i64 [%118, %$38] ; # Y\n  br label %$28\n$40:\n  %126 = phi i64 [%117, %$38] ; # X\n  %127 = phi i64 [%118, %$38] ; # Y\n; # (name @)\n  br label %$42\n$42:\n  %128 = phi i64 [%121, %$40], [%134, %$43] ; # Tail\n  %129 = and i64 %128, 6\n  %130 = icmp ne i64 %129, 0\n  br i1 %130, label %$44, label %$43\n$43:\n  %131 = phi i64 [%128, %$42] ; # Tail\n  %132 = inttoptr i64 %131 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  %134 = load i64, i64* %133\n  br label %$42\n$44:\n  %135 = phi i64 [%128, %$42] ; # Tail\n; # (== ZERO (setq Y (name @)))\n  %136 = icmp eq i64 2, %135\n  br i1 %136, label %$46, label %$45\n$46:\n  %137 = phi i64 [%126, %$44] ; # X\n  %138 = phi i64 [%135, %$44] ; # Y\n  br label %$28\n$45:\n  %139 = phi i64 [%126, %$44] ; # X\n  %140 = phi i64 [%135, %$44] ; # Y\n; # (== X Y)\n  %141 = icmp eq i64 %139, %140\n  br i1 %141, label %$48, label %$47\n$48:\n  %142 = phi i64 [%139, %$45] ; # X\n  %143 = phi i64 [%140, %$45] ; # Y\n  br label %$28\n$47:\n  %144 = phi i64 [%139, %$45] ; # X\n  %145 = phi i64 [%140, %$45] ; # Y\n; # (cnt? X)\n  %146 = and i64 %144, 2\n  %147 = icmp ne i64 %146, 0\n  br i1 %147, label %$50, label %$49\n$50:\n  %148 = phi i64 [%144, %$47] ; # X\n  %149 = phi i64 [%145, %$47] ; # Y\n  br label %$28\n$49:\n  %150 = phi i64 [%144, %$47] ; # X\n  %151 = phi i64 [%145, %$47] ; # Y\n; # (cnt? Y)\n  %152 = and i64 %151, 2\n  %153 = icmp ne i64 %152, 0\n  br i1 %153, label %$52, label %$51\n$52:\n  %154 = phi i64 [%150, %$49] ; # X\n  %155 = phi i64 [%151, %$49] ; # Y\n  br label %$28\n$51:\n  %156 = phi i64 [%150, %$49] ; # X\n  %157 = phi i64 [%151, %$49] ; # Y\n; # (equalBig X Y)\n  br label %$53\n$53:\n  %158 = phi i64 [%157, %$51], [%192, %$61] ; # Y\n  %159 = phi i64 [%156, %$51], [%193, %$61] ; # X\n  %160 = add i64 %159, -4\n  %161 = inttoptr i64 %160 to i64*\n  %162 = load i64, i64* %161\n  %163 = add i64 %158, -4\n  %164 = inttoptr i64 %163 to i64*\n  %165 = load i64, i64* %164\n  %166 = icmp ne i64 %162, %165\n  br i1 %166, label %$56, label %$54\n$56:\n  %167 = phi i64 [%158, %$53] ; # Y\n  %168 = phi i64 [%159, %$53] ; # X\n  br label %$55\n$54:\n  %169 = phi i64 [%158, %$53] ; # Y\n  %170 = phi i64 [%159, %$53] ; # X\n  %171 = add i64 %170, 4\n  %172 = inttoptr i64 %171 to i64*\n  %173 = load i64, i64* %172\n  %174 = add i64 %169, 4\n  %175 = inttoptr i64 %174 to i64*\n  %176 = load i64, i64* %175\n  %177 = icmp eq i64 %173, %176\n  br i1 %177, label %$58, label %$57\n$58:\n  %178 = phi i64 [%176, %$54] ; # Y\n  %179 = phi i64 [%173, %$54] ; # X\n  br label %$55\n$57:\n  %180 = phi i64 [%176, %$54] ; # Y\n  %181 = phi i64 [%173, %$54] ; # X\n  %182 = and i64 %181, 2\n  %183 = icmp ne i64 %182, 0\n  br i1 %183, label %$60, label %$59\n$60:\n  %184 = phi i64 [%180, %$57] ; # Y\n  %185 = phi i64 [%181, %$57] ; # X\n  br label %$55\n$59:\n  %186 = phi i64 [%180, %$57] ; # Y\n  %187 = phi i64 [%181, %$57] ; # X\n  %188 = and i64 %186, 2\n  %189 = icmp ne i64 %188, 0\n  br i1 %189, label %$62, label %$61\n$62:\n  %190 = phi i64 [%186, %$59] ; # Y\n  %191 = phi i64 [%187, %$59] ; # X\n  br label %$55\n$61:\n  %192 = phi i64 [%186, %$59] ; # Y\n  %193 = phi i64 [%187, %$59] ; # X\n  br label %$53\n$55:\n  %194 = phi i64 [%167, %$56], [%178, %$58], [%184, %$60], [%190, %$62] ; # Y\n  %195 = phi i64 [%168, %$56], [%179, %$58], [%185, %$60], [%191, %$62] ; # X\n  %196 = phi i1 [0, %$56], [1, %$58], [0, %$60], [0, %$62] ; # ->\n  br label %$28\n$28:\n  %197 = phi i64 [%87, %$30], [%93, %$32], [%102, %$34], [%115, %$39], [%124, %$41], [%137, %$46], [%142, %$48], [%148, %$50], [%154, %$52], [%156, %$55] ; # X\n  %198 = phi i64 [%88, %$30], [%94, %$32], [%103, %$34], [%116, %$39], [%125, %$41], [%138, %$46], [%143, %$48], [%149, %$50], [%155, %$52], [%157, %$55] ; # Y\n  %199 = phi i1 [0, %$30], [0, %$32], [0, %$34], [0, %$39], [0, %$41], [0, %$46], [1, %$48], [0, %$50], [0, %$52], [%196, %$55] ; # ->\n  br label %$2\n$26:\n  %200 = phi i64 [%79, %$7] ; # X\n  %201 = phi i64 [%80, %$7] ; # Y\n; # (atom Y)\n  %202 = and i64 %201, 15\n  %203 = icmp ne i64 %202, 0\n  br i1 %203, label %$64, label %$63\n$64:\n  %204 = phi i64 [%200, %$26] ; # X\n  %205 = phi i64 [%201, %$26] ; # Y\n  br label %$2\n$63:\n  %206 = phi i64 [%200, %$26] ; # X\n  %207 = phi i64 [%201, %$26] ; # Y\n; # (stkChk 0)\n  %208 = load i8*, i8** @$StkLimit\n  %209 = call i8* @llvm.stacksave()\n  %210 = icmp ugt i8* %208, %209\n  br i1 %210, label %$65, label %$66\n$65:\n  %211 = phi i64 [0, %$63] ; # Exe\n  call void @stkErr(i64 %211)\n  unreachable\n$66:\n  %212 = phi i64 [0, %$63] ; # Exe\n; # (let (A X B Y) (prog1 (loop (? (not (equal (car X) (& (car Y) -2)...\n; # (prog1 (loop (? (not (equal (car X) (& (car Y) -2))) NO) (? (atom...\n; # (loop (? (not (equal (car X) (& (car Y) -2))) NO) (? (atom (cdr X...\n  br label %$67\n$67:\n  %213 = phi i64 [%206, %$66], [%375, %$75] ; # X\n  %214 = phi i64 [%207, %$66], [%376, %$75] ; # Y\n  %215 = phi i64 [%206, %$66], [%377, %$75] ; # A\n  %216 = phi i64 [%207, %$66], [%378, %$75] ; # B\n; # (? (not (equal (car X) (& (car Y) -2))) NO)\n; # (car X)\n  %217 = inttoptr i64 %213 to i64*\n  %218 = load i64, i64* %217\n; # (car Y)\n  %219 = inttoptr i64 %214 to i64*\n  %220 = load i64, i64* %219\n; # (& (car Y) -2)\n  %221 = and i64 %220, -2\n; # (equal (car X) (& (car Y) -2))\n  %222 = call i1 @equal(i64 %218, i64 %221)\n; # (not (equal (car X) (& (car Y) -2)))\n  %223 = icmp eq i1 %222, 0\n  br i1 %223, label %$70, label %$68\n$70:\n  %224 = phi i64 [%213, %$67] ; # X\n  %225 = phi i64 [%214, %$67] ; # Y\n  %226 = phi i64 [%215, %$67] ; # A\n  %227 = phi i64 [%216, %$67] ; # B\n  br label %$69\n$68:\n  %228 = phi i64 [%213, %$67] ; # X\n  %229 = phi i64 [%214, %$67] ; # Y\n  %230 = phi i64 [%215, %$67] ; # A\n  %231 = phi i64 [%216, %$67] ; # B\n; # (? (atom (cdr X)) (equal (cdr X) (cdr Y)))\n; # (cdr X)\n  %232 = inttoptr i64 %228 to i64*\n  %233 = getelementptr i64, i64* %232, i32 1\n  %234 = load i64, i64* %233\n; # (atom (cdr X))\n  %235 = and i64 %234, 15\n  %236 = icmp ne i64 %235, 0\n  br i1 %236, label %$72, label %$71\n$72:\n  %237 = phi i64 [%228, %$68] ; # X\n  %238 = phi i64 [%229, %$68] ; # Y\n  %239 = phi i64 [%230, %$68] ; # A\n  %240 = phi i64 [%231, %$68] ; # B\n; # (cdr X)\n  %241 = inttoptr i64 %237 to i64*\n  %242 = getelementptr i64, i64* %241, i32 1\n  %243 = load i64, i64* %242\n; # (cdr Y)\n  %244 = inttoptr i64 %238 to i64*\n  %245 = getelementptr i64, i64* %244, i32 1\n  %246 = load i64, i64* %245\n; # (equal (cdr X) (cdr Y))\n  %247 = call i1 @equal(i64 %243, i64 %246)\n  br label %$69\n$71:\n  %248 = phi i64 [%228, %$68] ; # X\n  %249 = phi i64 [%229, %$68] ; # Y\n  %250 = phi i64 [%230, %$68] ; # A\n  %251 = phi i64 [%231, %$68] ; # B\n; # (? (atom (cdr Y)) NO)\n; # (cdr Y)\n  %252 = inttoptr i64 %249 to i64*\n  %253 = getelementptr i64, i64* %252, i32 1\n  %254 = load i64, i64* %253\n; # (atom (cdr Y))\n  %255 = and i64 %254, 15\n  %256 = icmp ne i64 %255, 0\n  br i1 %256, label %$74, label %$73\n$74:\n  %257 = phi i64 [%248, %$71] ; # X\n  %258 = phi i64 [%249, %$71] ; # Y\n  %259 = phi i64 [%250, %$71] ; # A\n  %260 = phi i64 [%251, %$71] ; # B\n  br label %$69\n$73:\n  %261 = phi i64 [%248, %$71] ; # X\n  %262 = phi i64 [%249, %$71] ; # Y\n  %263 = phi i64 [%250, %$71] ; # A\n  %264 = phi i64 [%251, %$71] ; # B\n; # (set X (| (val X) 1))\n; # (val X)\n  %265 = inttoptr i64 %261 to i64*\n  %266 = load i64, i64* %265\n; # (| (val X) 1)\n  %267 = or i64 %266, 1\n  %268 = inttoptr i64 %261 to i64*\n  store i64 %267, i64* %268\n; # (shift X)\n  %269 = inttoptr i64 %261 to i64*\n  %270 = getelementptr i64, i64* %269, i32 1\n  %271 = load i64, i64* %270\n; # (shift Y)\n  %272 = inttoptr i64 %262 to i64*\n  %273 = getelementptr i64, i64* %272, i32 1\n  %274 = load i64, i64* %273\n; # (? (& (val X) 1) (prog1 (loop (? (== A X) (if (== B Y) (loop (shi...\n; # (val X)\n  %275 = inttoptr i64 %271 to i64*\n  %276 = load i64, i64* %275\n; # (& (val X) 1)\n  %277 = and i64 %276, 1\n  %278 = icmp ne i64 %277, 0\n  br i1 %278, label %$76, label %$75\n$76:\n  %279 = phi i64 [%271, %$73] ; # X\n  %280 = phi i64 [%274, %$73] ; # Y\n  %281 = phi i64 [%263, %$73] ; # A\n  %282 = phi i64 [%264, %$73] ; # B\n; # (prog1 (loop (? (== A X) (if (== B Y) (loop (shift A) (? (== (shi...\n; # (loop (? (== A X) (if (== B Y) (loop (shift A) (? (== (shift B) Y...\n  br label %$77\n$77:\n  %283 = phi i64 [%279, %$76], [%349, %$90] ; # X\n  %284 = phi i64 [%280, %$76], [%350, %$90] ; # Y\n  %285 = phi i64 [%281, %$76], [%359, %$90] ; # A\n  %286 = phi i64 [%282, %$76], [%362, %$90] ; # B\n; # (? (== A X) (if (== B Y) (loop (shift A) (? (== (shift B) Y) (== ...\n; # (== A X)\n  %287 = icmp eq i64 %285, %283\n  br i1 %287, label %$80, label %$78\n$80:\n  %288 = phi i64 [%283, %$77] ; # X\n  %289 = phi i64 [%284, %$77] ; # Y\n  %290 = phi i64 [%285, %$77] ; # A\n  %291 = phi i64 [%286, %$77] ; # B\n; # (if (== B Y) (loop (shift A) (? (== (shift B) Y) (== A X)) (? (==...\n; # (== B Y)\n  %292 = icmp eq i64 %291, %289\n  br i1 %292, label %$81, label %$82\n$81:\n  %293 = phi i64 [%288, %$80] ; # X\n  %294 = phi i64 [%289, %$80] ; # Y\n  %295 = phi i64 [%290, %$80] ; # A\n  %296 = phi i64 [%291, %$80] ; # B\n; # (loop (shift A) (? (== (shift B) Y) (== A X)) (? (== A X) YES))\n  br label %$84\n$84:\n  %297 = phi i64 [%293, %$81], [%322, %$88] ; # X\n  %298 = phi i64 [%294, %$81], [%323, %$88] ; # Y\n  %299 = phi i64 [%295, %$81], [%324, %$88] ; # A\n  %300 = phi i64 [%296, %$81], [%325, %$88] ; # B\n; # (shift A)\n  %301 = inttoptr i64 %299 to i64*\n  %302 = getelementptr i64, i64* %301, i32 1\n  %303 = load i64, i64* %302\n; # (? (== (shift B) Y) (== A X))\n; # (shift B)\n  %304 = inttoptr i64 %300 to i64*\n  %305 = getelementptr i64, i64* %304, i32 1\n  %306 = load i64, i64* %305\n; # (== (shift B) Y)\n  %307 = icmp eq i64 %306, %298\n  br i1 %307, label %$87, label %$85\n$87:\n  %308 = phi i64 [%297, %$84] ; # X\n  %309 = phi i64 [%298, %$84] ; # Y\n  %310 = phi i64 [%303, %$84] ; # A\n  %311 = phi i64 [%306, %$84] ; # B\n; # (== A X)\n  %312 = icmp eq i64 %310, %308\n  br label %$86\n$85:\n  %313 = phi i64 [%297, %$84] ; # X\n  %314 = phi i64 [%298, %$84] ; # Y\n  %315 = phi i64 [%303, %$84] ; # A\n  %316 = phi i64 [%306, %$84] ; # B\n; # (? (== A X) YES)\n; # (== A X)\n  %317 = icmp eq i64 %315, %313\n  br i1 %317, label %$89, label %$88\n$89:\n  %318 = phi i64 [%313, %$85] ; # X\n  %319 = phi i64 [%314, %$85] ; # Y\n  %320 = phi i64 [%315, %$85] ; # A\n  %321 = phi i64 [%316, %$85] ; # B\n  br label %$86\n$88:\n  %322 = phi i64 [%313, %$85] ; # X\n  %323 = phi i64 [%314, %$85] ; # Y\n  %324 = phi i64 [%315, %$85] ; # A\n  %325 = phi i64 [%316, %$85] ; # B\n  br label %$84\n$86:\n  %326 = phi i64 [%308, %$87], [%318, %$89] ; # X\n  %327 = phi i64 [%309, %$87], [%319, %$89] ; # Y\n  %328 = phi i64 [%310, %$87], [%320, %$89] ; # A\n  %329 = phi i64 [%311, %$87], [%321, %$89] ; # B\n  %330 = phi i1 [%312, %$87], [1, %$89] ; # ->\n  br label %$83\n$82:\n  %331 = phi i64 [%288, %$80] ; # X\n  %332 = phi i64 [%289, %$80] ; # Y\n  %333 = phi i64 [%290, %$80] ; # A\n  %334 = phi i64 [%291, %$80] ; # B\n  br label %$83\n$83:\n  %335 = phi i64 [%326, %$86], [%331, %$82] ; # X\n  %336 = phi i64 [%327, %$86], [%332, %$82] ; # Y\n  %337 = phi i64 [%328, %$86], [%333, %$82] ; # A\n  %338 = phi i64 [%329, %$86], [%334, %$82] ; # B\n  %339 = phi i1 [%330, %$86], [0, %$82] ; # ->\n  br label %$79\n$78:\n  %340 = phi i64 [%283, %$77] ; # X\n  %341 = phi i64 [%284, %$77] ; # Y\n  %342 = phi i64 [%285, %$77] ; # A\n  %343 = phi i64 [%286, %$77] ; # B\n; # (? (== B Y) NO)\n; # (== B Y)\n  %344 = icmp eq i64 %343, %341\n  br i1 %344, label %$91, label %$90\n$91:\n  %345 = phi i64 [%340, %$78] ; # X\n  %346 = phi i64 [%341, %$78] ; # Y\n  %347 = phi i64 [%342, %$78] ; # A\n  %348 = phi i64 [%343, %$78] ; # B\n  br label %$79\n$90:\n  %349 = phi i64 [%340, %$78] ; # X\n  %350 = phi i64 [%341, %$78] ; # Y\n  %351 = phi i64 [%342, %$78] ; # A\n  %352 = phi i64 [%343, %$78] ; # B\n; # (set A (& (val A) -2))\n; # (val A)\n  %353 = inttoptr i64 %351 to i64*\n  %354 = load i64, i64* %353\n; # (& (val A) -2)\n  %355 = and i64 %354, -2\n  %356 = inttoptr i64 %351 to i64*\n  store i64 %355, i64* %356\n; # (shift A)\n  %357 = inttoptr i64 %351 to i64*\n  %358 = getelementptr i64, i64* %357, i32 1\n  %359 = load i64, i64* %358\n; # (shift B)\n  %360 = inttoptr i64 %352 to i64*\n  %361 = getelementptr i64, i64* %360, i32 1\n  %362 = load i64, i64* %361\n  br label %$77\n$79:\n  %363 = phi i64 [%335, %$83], [%345, %$91] ; # X\n  %364 = phi i64 [%336, %$83], [%346, %$91] ; # Y\n  %365 = phi i64 [%337, %$83], [%347, %$91] ; # A\n  %366 = phi i64 [%338, %$83], [%348, %$91] ; # B\n  %367 = phi i1 [%339, %$83], [0, %$91] ; # ->\n; # (set A (& (val A) -2))\n; # (val A)\n  %368 = inttoptr i64 %365 to i64*\n  %369 = load i64, i64* %368\n; # (& (val A) -2)\n  %370 = and i64 %369, -2\n  %371 = inttoptr i64 %365 to i64*\n  store i64 %370, i64* %371\n; # (shift A)\n  %372 = inttoptr i64 %365 to i64*\n  %373 = getelementptr i64, i64* %372, i32 1\n  %374 = load i64, i64* %373\n  br label %$69\n$75:\n  %375 = phi i64 [%271, %$73] ; # X\n  %376 = phi i64 [%274, %$73] ; # Y\n  %377 = phi i64 [%263, %$73] ; # A\n  %378 = phi i64 [%264, %$73] ; # B\n  br label %$67\n$69:\n  %379 = phi i64 [%224, %$70], [%237, %$72], [%257, %$74], [%363, %$79] ; # X\n  %380 = phi i64 [%225, %$70], [%238, %$72], [%258, %$74], [%364, %$79] ; # Y\n  %381 = phi i64 [%226, %$70], [%239, %$72], [%259, %$74], [%374, %$79] ; # A\n  %382 = phi i64 [%227, %$70], [%240, %$72], [%260, %$74], [%366, %$79] ; # B\n  %383 = phi i1 [0, %$70], [%247, %$72], [0, %$74], [%367, %$79] ; # ->\n; # (until (== A X) (set A (& (val A) -2)) (shift A))\n  br label %$92\n$92:\n  %384 = phi i64 [%379, %$69], [%389, %$93] ; # X\n  %385 = phi i64 [%380, %$69], [%390, %$93] ; # Y\n  %386 = phi i64 [%381, %$69], [%399, %$93] ; # A\n  %387 = phi i64 [%382, %$69], [%392, %$93] ; # B\n; # (== A X)\n  %388 = icmp eq i64 %386, %384\n  br i1 %388, label %$94, label %$93\n$93:\n  %389 = phi i64 [%384, %$92] ; # X\n  %390 = phi i64 [%385, %$92] ; # Y\n  %391 = phi i64 [%386, %$92] ; # A\n  %392 = phi i64 [%387, %$92] ; # B\n; # (set A (& (val A) -2))\n; # (val A)\n  %393 = inttoptr i64 %391 to i64*\n  %394 = load i64, i64* %393\n; # (& (val A) -2)\n  %395 = and i64 %394, -2\n  %396 = inttoptr i64 %391 to i64*\n  store i64 %395, i64* %396\n; # (shift A)\n  %397 = inttoptr i64 %391 to i64*\n  %398 = getelementptr i64, i64* %397, i32 1\n  %399 = load i64, i64* %398\n  br label %$92\n$94:\n  %400 = phi i64 [%384, %$92] ; # X\n  %401 = phi i64 [%385, %$92] ; # Y\n  %402 = phi i64 [%386, %$92] ; # A\n  %403 = phi i64 [%387, %$92] ; # B\n  br label %$2\n$2:\n  %404 = phi i64 [%3, %$4], [%9, %$6], [%76, %$11], [%197, %$28], [%204, %$64], [%400, %$94] ; # X\n  %405 = phi i64 [%4, %$4], [%10, %$6], [%77, %$11], [%198, %$28], [%205, %$64], [%401, %$94] ; # Y\n  %406 = phi i1 [1, %$4], [0, %$6], [%78, %$11], [%199, %$28], [0, %$64], [%383, %$94] ; # ->\n  ret i1 %406\n}\n\ndefine i64 @compare(i64, i64) align 8 {\n$1:\n; # (cond ((== X Y) 0) ((nil? X) -1) ((t? X) 1) ((num? X) (cond ((num...\n; # (== X Y)\n  %2 = icmp eq i64 %0, %1\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n  %4 = phi i64 [%1, %$1] ; # Y\n  br label %$2\n$3:\n  %5 = phi i64 [%0, %$1] ; # X\n  %6 = phi i64 [%1, %$1] ; # Y\n; # (nil? X)\n  %7 = icmp eq i64 %5, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %7, label %$6, label %$5\n$6:\n  %8 = phi i64 [%5, %$3] ; # X\n  %9 = phi i64 [%6, %$3] ; # Y\n  br label %$2\n$5:\n  %10 = phi i64 [%5, %$3] ; # X\n  %11 = phi i64 [%6, %$3] ; # Y\n; # (t? X)\n  %12 = icmp eq i64 %10, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %12, label %$8, label %$7\n$8:\n  %13 = phi i64 [%10, %$5] ; # X\n  %14 = phi i64 [%11, %$5] ; # Y\n  br label %$2\n$7:\n  %15 = phi i64 [%10, %$5] ; # X\n  %16 = phi i64 [%11, %$5] ; # Y\n; # (num? X)\n  %17 = and i64 %15, 6\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$10, label %$9\n$10:\n  %19 = phi i64 [%15, %$7] ; # X\n  %20 = phi i64 [%16, %$7] ; # Y\n; # (cond ((num? Y) (cmpNum X Y)) ((nil? Y) 1) (T -1))\n; # (num? Y)\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$13, label %$12\n$13:\n  %23 = phi i64 [%19, %$10] ; # X\n  %24 = phi i64 [%20, %$10] ; # Y\n; # (cmpNum X Y)\n  %25 = call i64 @cmpNum(i64 %23, i64 %24)\n  br label %$11\n$12:\n  %26 = phi i64 [%19, %$10] ; # X\n  %27 = phi i64 [%20, %$10] ; # Y\n; # (nil? Y)\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %28, label %$15, label %$14\n$15:\n  %29 = phi i64 [%26, %$12] ; # X\n  %30 = phi i64 [%27, %$12] ; # Y\n  br label %$11\n$14:\n  %31 = phi i64 [%26, %$12] ; # X\n  %32 = phi i64 [%27, %$12] ; # Y\n  br label %$11\n$11:\n  %33 = phi i64 [%23, %$13], [%29, %$15], [%31, %$14] ; # X\n  %34 = phi i64 [%24, %$13], [%30, %$15], [%32, %$14] ; # Y\n  %35 = phi i64 [%25, %$13], [1, %$15], [-1, %$14] ; # ->\n  br label %$2\n$9:\n  %36 = phi i64 [%15, %$7] ; # X\n  %37 = phi i64 [%16, %$7] ; # Y\n; # (sym? X)\n  %38 = and i64 %36, 8\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$17, label %$16\n$17:\n  %40 = phi i64 [%36, %$9] ; # X\n  %41 = phi i64 [%37, %$9] ; # Y\n; # (cond ((or (num? Y) (nil? Y)) 1) ((or (pair Y) (t? Y)) -1) (T (le...\n; # (or (num? Y) (nil? Y))\n; # (num? Y)\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$19, label %$20\n$20:\n  %44 = phi i64 [%40, %$17] ; # X\n  %45 = phi i64 [%41, %$17] ; # Y\n; # (nil? Y)\n  %46 = icmp eq i64 %45, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$19\n$19:\n  %47 = phi i64 [%40, %$17], [%44, %$20] ; # X\n  %48 = phi i64 [%41, %$17], [%45, %$20] ; # Y\n  %49 = phi i1 [1, %$17], [%46, %$20] ; # ->\n  br i1 %49, label %$22, label %$21\n$22:\n  %50 = phi i64 [%47, %$19] ; # X\n  %51 = phi i64 [%48, %$19] ; # Y\n  br label %$18\n$21:\n  %52 = phi i64 [%47, %$19] ; # X\n  %53 = phi i64 [%48, %$19] ; # Y\n; # (or (pair Y) (t? Y))\n; # (pair Y)\n  %54 = and i64 %53, 15\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$23, label %$24\n$24:\n  %56 = phi i64 [%52, %$21] ; # X\n  %57 = phi i64 [%53, %$21] ; # Y\n; # (t? Y)\n  %58 = icmp eq i64 %57, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br label %$23\n$23:\n  %59 = phi i64 [%52, %$21], [%56, %$24] ; # X\n  %60 = phi i64 [%53, %$21], [%57, %$24] ; # Y\n  %61 = phi i1 [1, %$21], [%58, %$24] ; # ->\n  br i1 %61, label %$26, label %$25\n$26:\n  %62 = phi i64 [%59, %$23] ; # X\n  %63 = phi i64 [%60, %$23] ; # Y\n  br label %$18\n$25:\n  %64 = phi i64 [%59, %$23] ; # X\n  %65 = phi i64 [%60, %$23] ; # Y\n; # (let (NmX (name (& (val (tail X)) -9)) NmY (name (& (val (tail Y)...\n; # (tail X)\n  %66 = add i64 %64, -8\n; # (val (tail X))\n  %67 = inttoptr i64 %66 to i64*\n  %68 = load i64, i64* %67\n; # (& (val (tail X)) -9)\n  %69 = and i64 %68, -9\n; # (name (& (val (tail X)) -9))\n  br label %$27\n$27:\n  %70 = phi i64 [%69, %$25], [%76, %$28] ; # Tail\n  %71 = and i64 %70, 6\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$29, label %$28\n$28:\n  %73 = phi i64 [%70, %$27] ; # Tail\n  %74 = inttoptr i64 %73 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  br label %$27\n$29:\n  %77 = phi i64 [%70, %$27] ; # Tail\n; # (tail Y)\n  %78 = add i64 %65, -8\n; # (val (tail Y))\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n; # (& (val (tail Y)) -9)\n  %81 = and i64 %80, -9\n; # (name (& (val (tail Y)) -9))\n  br label %$30\n$30:\n  %82 = phi i64 [%81, %$29], [%88, %$31] ; # Tail\n  %83 = and i64 %82, 6\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$32, label %$31\n$31:\n  %85 = phi i64 [%82, %$30] ; # Tail\n  %86 = inttoptr i64 %85 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n  br label %$30\n$32:\n  %89 = phi i64 [%82, %$30] ; # Tail\n; # (cond ((== ZERO NmX) (nond ((== ZERO NmY) -1) ((> X Y) -1) (NIL 1...\n; # (== ZERO NmX)\n  %90 = icmp eq i64 2, %77\n  br i1 %90, label %$35, label %$34\n$35:\n  %91 = phi i64 [%64, %$32] ; # X\n  %92 = phi i64 [%65, %$32] ; # Y\n  %93 = phi i64 [%77, %$32] ; # NmX\n  %94 = phi i64 [%89, %$32] ; # NmY\n; # (nond ((== ZERO NmY) -1) ((> X Y) -1) (NIL 1))\n; # (== ZERO NmY)\n  %95 = icmp eq i64 2, %94\n  br i1 %95, label %$37, label %$38\n$38:\n  %96 = phi i64 [%91, %$35] ; # X\n  %97 = phi i64 [%92, %$35] ; # Y\n  %98 = phi i64 [%93, %$35] ; # NmX\n  %99 = phi i64 [%94, %$35] ; # NmY\n  br label %$36\n$37:\n  %100 = phi i64 [%91, %$35] ; # X\n  %101 = phi i64 [%92, %$35] ; # Y\n  %102 = phi i64 [%93, %$35] ; # NmX\n  %103 = phi i64 [%94, %$35] ; # NmY\n; # (> X Y)\n  %104 = icmp ugt i64 %100, %101\n  br i1 %104, label %$39, label %$40\n$40:\n  %105 = phi i64 [%100, %$37] ; # X\n  %106 = phi i64 [%101, %$37] ; # Y\n  %107 = phi i64 [%102, %$37] ; # NmX\n  %108 = phi i64 [%103, %$37] ; # NmY\n  br label %$36\n$39:\n  %109 = phi i64 [%100, %$37] ; # X\n  %110 = phi i64 [%101, %$37] ; # Y\n  %111 = phi i64 [%102, %$37] ; # NmX\n  %112 = phi i64 [%103, %$37] ; # NmY\n  br label %$36\n$36:\n  %113 = phi i64 [%96, %$38], [%105, %$40], [%109, %$39] ; # X\n  %114 = phi i64 [%97, %$38], [%106, %$40], [%110, %$39] ; # Y\n  %115 = phi i64 [%98, %$38], [%107, %$40], [%111, %$39] ; # NmX\n  %116 = phi i64 [%99, %$38], [%108, %$40], [%112, %$39] ; # NmY\n  %117 = phi i64 [-1, %$38], [-1, %$40], [1, %$39] ; # ->\n  br label %$33\n$34:\n  %118 = phi i64 [%64, %$32] ; # X\n  %119 = phi i64 [%65, %$32] ; # Y\n  %120 = phi i64 [%77, %$32] ; # NmX\n  %121 = phi i64 [%89, %$32] ; # NmY\n; # (== ZERO NmY)\n  %122 = icmp eq i64 2, %121\n  br i1 %122, label %$42, label %$41\n$42:\n  %123 = phi i64 [%118, %$34] ; # X\n  %124 = phi i64 [%119, %$34] ; # Y\n  %125 = phi i64 [%120, %$34] ; # NmX\n  %126 = phi i64 [%121, %$34] ; # NmY\n  br label %$33\n$41:\n  %127 = phi i64 [%118, %$34] ; # X\n  %128 = phi i64 [%119, %$34] ; # Y\n  %129 = phi i64 [%120, %$34] ; # NmX\n  %130 = phi i64 [%121, %$34] ; # NmY\n; # (loop (let (A (if (cnt? NmX) (prog1 (shr (shl (name NmX) 2) 6) (s...\n  br label %$43\n$43:\n  %131 = phi i64 [%127, %$41], [%330, %$63] ; # X\n  %132 = phi i64 [%128, %$41], [%331, %$63] ; # Y\n  %133 = phi i64 [%129, %$41], [%332, %$63] ; # NmX\n  %134 = phi i64 [%130, %$41], [%333, %$63] ; # NmY\n; # (let (A (if (cnt? NmX) (prog1 (shr (shl (name NmX) 2) 6) (setq Nm...\n; # (if (cnt? NmX) (prog1 (shr (shl (name NmX) 2) 6) (setq NmX 0)) (p...\n; # (cnt? NmX)\n  %135 = and i64 %133, 2\n  %136 = icmp ne i64 %135, 0\n  br i1 %136, label %$44, label %$45\n$44:\n  %137 = phi i64 [%131, %$43] ; # X\n  %138 = phi i64 [%132, %$43] ; # Y\n  %139 = phi i64 [%133, %$43] ; # NmX\n  %140 = phi i64 [%134, %$43] ; # NmY\n; # (prog1 (shr (shl (name NmX) 2) 6) (setq NmX 0))\n; # (name NmX)\n  br label %$47\n$47:\n  %141 = phi i64 [%139, %$44], [%147, %$48] ; # Tail\n  %142 = and i64 %141, 6\n  %143 = icmp ne i64 %142, 0\n  br i1 %143, label %$49, label %$48\n$48:\n  %144 = phi i64 [%141, %$47] ; # Tail\n  %145 = inttoptr i64 %144 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  %147 = load i64, i64* %146\n  br label %$47\n$49:\n  %148 = phi i64 [%141, %$47] ; # Tail\n; # (shl (name NmX) 2)\n  %149 = shl i64 %148, 2\n; # (shr (shl (name NmX) 2) 6)\n  %150 = lshr i64 %149, 6\n  br label %$46\n$45:\n  %151 = phi i64 [%131, %$43] ; # X\n  %152 = phi i64 [%132, %$43] ; # Y\n  %153 = phi i64 [%133, %$43] ; # NmX\n  %154 = phi i64 [%134, %$43] ; # NmY\n; # (prog1 (val (dig NmX)) (setq NmX (val (big NmX))))\n; # (dig NmX)\n  %155 = add i64 %153, -4\n; # (val (dig NmX))\n  %156 = inttoptr i64 %155 to i64*\n  %157 = load i64, i64* %156\n; # (big NmX)\n  %158 = add i64 %153, 4\n; # (val (big NmX))\n  %159 = inttoptr i64 %158 to i64*\n  %160 = load i64, i64* %159\n  br label %$46\n$46:\n  %161 = phi i64 [%137, %$49], [%151, %$45] ; # X\n  %162 = phi i64 [%138, %$49], [%152, %$45] ; # Y\n  %163 = phi i64 [0, %$49], [%160, %$45] ; # NmX\n  %164 = phi i64 [%140, %$49], [%154, %$45] ; # NmY\n  %165 = phi i64 [%150, %$49], [%157, %$45] ; # ->\n; # (if (cnt? NmY) (prog1 (shr (shl (name NmY) 2) 6) (setq NmY 0)) (p...\n; # (cnt? NmY)\n  %166 = and i64 %164, 2\n  %167 = icmp ne i64 %166, 0\n  br i1 %167, label %$50, label %$51\n$50:\n  %168 = phi i64 [%161, %$46] ; # X\n  %169 = phi i64 [%162, %$46] ; # Y\n  %170 = phi i64 [%163, %$46] ; # NmX\n  %171 = phi i64 [%164, %$46] ; # NmY\n  %172 = phi i64 [%165, %$46] ; # A\n; # (prog1 (shr (shl (name NmY) 2) 6) (setq NmY 0))\n; # (name NmY)\n  br label %$53\n$53:\n  %173 = phi i64 [%171, %$50], [%179, %$54] ; # Tail\n  %174 = and i64 %173, 6\n  %175 = icmp ne i64 %174, 0\n  br i1 %175, label %$55, label %$54\n$54:\n  %176 = phi i64 [%173, %$53] ; # Tail\n  %177 = inttoptr i64 %176 to i64*\n  %178 = getelementptr i64, i64* %177, i32 1\n  %179 = load i64, i64* %178\n  br label %$53\n$55:\n  %180 = phi i64 [%173, %$53] ; # Tail\n; # (shl (name NmY) 2)\n  %181 = shl i64 %180, 2\n; # (shr (shl (name NmY) 2) 6)\n  %182 = lshr i64 %181, 6\n  br label %$52\n$51:\n  %183 = phi i64 [%161, %$46] ; # X\n  %184 = phi i64 [%162, %$46] ; # Y\n  %185 = phi i64 [%163, %$46] ; # NmX\n  %186 = phi i64 [%164, %$46] ; # NmY\n  %187 = phi i64 [%165, %$46] ; # A\n; # (prog1 (val (dig NmY)) (setq NmY (val (big NmY))))\n; # (dig NmY)\n  %188 = add i64 %186, -4\n; # (val (dig NmY))\n  %189 = inttoptr i64 %188 to i64*\n  %190 = load i64, i64* %189\n; # (big NmY)\n  %191 = add i64 %186, 4\n; # (val (big NmY))\n  %192 = inttoptr i64 %191 to i64*\n  %193 = load i64, i64* %192\n  br label %$52\n$52:\n  %194 = phi i64 [%168, %$55], [%183, %$51] ; # X\n  %195 = phi i64 [%169, %$55], [%184, %$51] ; # Y\n  %196 = phi i64 [%170, %$55], [%185, %$51] ; # NmX\n  %197 = phi i64 [0, %$55], [%193, %$51] ; # NmY\n  %198 = phi i64 [%172, %$55], [%187, %$51] ; # A\n  %199 = phi i64 [%182, %$55], [%190, %$51] ; # ->\n; # (loop (when (- (& A 255) (& B 255)) (ret (if (gt0 @) 1 -1))) (? (...\n  br label %$56\n$56:\n  %200 = phi i64 [%194, %$52], [%324, %$75] ; # X\n  %201 = phi i64 [%195, %$52], [%325, %$75] ; # Y\n  %202 = phi i64 [%196, %$52], [%326, %$75] ; # NmX\n  %203 = phi i64 [%197, %$52], [%327, %$75] ; # NmY\n  %204 = phi i64 [%198, %$52], [%328, %$75] ; # A\n  %205 = phi i64 [%199, %$52], [%329, %$75] ; # B\n; # (when (- (& A 255) (& B 255)) (ret (if (gt0 @) 1 -1)))\n; # (& A 255)\n  %206 = and i64 %204, 255\n; # (& B 255)\n  %207 = and i64 %205, 255\n; # (- (& A 255) (& B 255))\n  %208 = sub i64 %206, %207\n  %209 = icmp ne i64 %208, 0\n  br i1 %209, label %$57, label %$58\n$57:\n  %210 = phi i64 [%200, %$56] ; # X\n  %211 = phi i64 [%201, %$56] ; # Y\n  %212 = phi i64 [%202, %$56] ; # NmX\n  %213 = phi i64 [%203, %$56] ; # NmY\n  %214 = phi i64 [%204, %$56] ; # A\n  %215 = phi i64 [%205, %$56] ; # B\n; # (if (gt0 @) 1 -1)\n; # (gt0 @)\n  %216 = icmp sgt i64 %208, 0\n  br i1 %216, label %$59, label %$60\n$59:\n  %217 = phi i64 [%210, %$57] ; # X\n  %218 = phi i64 [%211, %$57] ; # Y\n  %219 = phi i64 [%212, %$57] ; # NmX\n  %220 = phi i64 [%213, %$57] ; # NmY\n  %221 = phi i64 [%214, %$57] ; # A\n  %222 = phi i64 [%215, %$57] ; # B\n  br label %$61\n$60:\n  %223 = phi i64 [%210, %$57] ; # X\n  %224 = phi i64 [%211, %$57] ; # Y\n  %225 = phi i64 [%212, %$57] ; # NmX\n  %226 = phi i64 [%213, %$57] ; # NmY\n  %227 = phi i64 [%214, %$57] ; # A\n  %228 = phi i64 [%215, %$57] ; # B\n  br label %$61\n$61:\n  %229 = phi i64 [%217, %$59], [%223, %$60] ; # X\n  %230 = phi i64 [%218, %$59], [%224, %$60] ; # Y\n  %231 = phi i64 [%219, %$59], [%225, %$60] ; # NmX\n  %232 = phi i64 [%220, %$59], [%226, %$60] ; # NmY\n  %233 = phi i64 [%221, %$59], [%227, %$60] ; # A\n  %234 = phi i64 [%222, %$59], [%228, %$60] ; # B\n  %235 = phi i64 [1, %$59], [-1, %$60] ; # ->\n; # (ret (if (gt0 @) 1 -1))\n  ret i64 %235\n$58:\n  %236 = phi i64 [%200, %$56] ; # X\n  %237 = phi i64 [%201, %$56] ; # Y\n  %238 = phi i64 [%202, %$56] ; # NmX\n  %239 = phi i64 [%203, %$56] ; # NmY\n  %240 = phi i64 [%204, %$56] ; # A\n  %241 = phi i64 [%205, %$56] ; # B\n; # (? (=0 (setq A (shr A 8))) (when (setq B (shr B 8)) (ret -1)) (un...\n; # (shr A 8)\n  %242 = lshr i64 %240, 8\n; # (=0 (setq A (shr A 8)))\n  %243 = icmp eq i64 %242, 0\n  br i1 %243, label %$64, label %$62\n$64:\n  %244 = phi i64 [%236, %$58] ; # X\n  %245 = phi i64 [%237, %$58] ; # Y\n  %246 = phi i64 [%238, %$58] ; # NmX\n  %247 = phi i64 [%239, %$58] ; # NmY\n  %248 = phi i64 [%242, %$58] ; # A\n  %249 = phi i64 [%241, %$58] ; # B\n; # (when (setq B (shr B 8)) (ret -1))\n; # (shr B 8)\n  %250 = lshr i64 %249, 8\n  %251 = icmp ne i64 %250, 0\n  br i1 %251, label %$65, label %$66\n$65:\n  %252 = phi i64 [%244, %$64] ; # X\n  %253 = phi i64 [%245, %$64] ; # Y\n  %254 = phi i64 [%246, %$64] ; # NmX\n  %255 = phi i64 [%247, %$64] ; # NmY\n  %256 = phi i64 [%248, %$64] ; # A\n  %257 = phi i64 [%250, %$64] ; # B\n; # (ret -1)\n  ret i64 -1\n$66:\n  %258 = phi i64 [%244, %$64] ; # X\n  %259 = phi i64 [%245, %$64] ; # Y\n  %260 = phi i64 [%246, %$64] ; # NmX\n  %261 = phi i64 [%247, %$64] ; # NmY\n  %262 = phi i64 [%248, %$64] ; # A\n  %263 = phi i64 [%250, %$64] ; # B\n; # (unless NmX (ret (if NmY -1 0)))\n  %264 = icmp ne i64 %260, 0\n  br i1 %264, label %$68, label %$67\n$67:\n  %265 = phi i64 [%258, %$66] ; # X\n  %266 = phi i64 [%259, %$66] ; # Y\n  %267 = phi i64 [%260, %$66] ; # NmX\n  %268 = phi i64 [%261, %$66] ; # NmY\n  %269 = phi i64 [%262, %$66] ; # A\n  %270 = phi i64 [%263, %$66] ; # B\n; # (if NmY -1 0)\n  %271 = icmp ne i64 %268, 0\n  br i1 %271, label %$69, label %$70\n$69:\n  %272 = phi i64 [%265, %$67] ; # X\n  %273 = phi i64 [%266, %$67] ; # Y\n  %274 = phi i64 [%267, %$67] ; # NmX\n  %275 = phi i64 [%268, %$67] ; # NmY\n  %276 = phi i64 [%269, %$67] ; # A\n  %277 = phi i64 [%270, %$67] ; # B\n  br label %$71\n$70:\n  %278 = phi i64 [%265, %$67] ; # X\n  %279 = phi i64 [%266, %$67] ; # Y\n  %280 = phi i64 [%267, %$67] ; # NmX\n  %281 = phi i64 [%268, %$67] ; # NmY\n  %282 = phi i64 [%269, %$67] ; # A\n  %283 = phi i64 [%270, %$67] ; # B\n  br label %$71\n$71:\n  %284 = phi i64 [%272, %$69], [%278, %$70] ; # X\n  %285 = phi i64 [%273, %$69], [%279, %$70] ; # Y\n  %286 = phi i64 [%274, %$69], [%280, %$70] ; # NmX\n  %287 = phi i64 [%275, %$69], [%281, %$70] ; # NmY\n  %288 = phi i64 [%276, %$69], [%282, %$70] ; # A\n  %289 = phi i64 [%277, %$69], [%283, %$70] ; # B\n  %290 = phi i64 [-1, %$69], [0, %$70] ; # ->\n; # (ret (if NmY -1 0))\n  ret i64 %290\n$68:\n  %291 = phi i64 [%258, %$66] ; # X\n  %292 = phi i64 [%259, %$66] ; # Y\n  %293 = phi i64 [%260, %$66] ; # NmX\n  %294 = phi i64 [%261, %$66] ; # NmY\n  %295 = phi i64 [%262, %$66] ; # A\n  %296 = phi i64 [%263, %$66] ; # B\n; # (unless NmY (ret 1))\n  %297 = icmp ne i64 %294, 0\n  br i1 %297, label %$73, label %$72\n$72:\n  %298 = phi i64 [%291, %$68] ; # X\n  %299 = phi i64 [%292, %$68] ; # Y\n  %300 = phi i64 [%293, %$68] ; # NmX\n  %301 = phi i64 [%294, %$68] ; # NmY\n  %302 = phi i64 [%295, %$68] ; # A\n  %303 = phi i64 [%296, %$68] ; # B\n; # (ret 1)\n  ret i64 1\n$73:\n  %304 = phi i64 [%291, %$68] ; # X\n  %305 = phi i64 [%292, %$68] ; # Y\n  %306 = phi i64 [%293, %$68] ; # NmX\n  %307 = phi i64 [%294, %$68] ; # NmY\n  %308 = phi i64 [%295, %$68] ; # A\n  %309 = phi i64 [%296, %$68] ; # B\n  br label %$63\n$62:\n  %310 = phi i64 [%236, %$58] ; # X\n  %311 = phi i64 [%237, %$58] ; # Y\n  %312 = phi i64 [%238, %$58] ; # NmX\n  %313 = phi i64 [%239, %$58] ; # NmY\n  %314 = phi i64 [%242, %$58] ; # A\n  %315 = phi i64 [%241, %$58] ; # B\n; # (unless (setq B (shr B 8)) (ret 1))\n; # (shr B 8)\n  %316 = lshr i64 %315, 8\n  %317 = icmp ne i64 %316, 0\n  br i1 %317, label %$75, label %$74\n$74:\n  %318 = phi i64 [%310, %$62] ; # X\n  %319 = phi i64 [%311, %$62] ; # Y\n  %320 = phi i64 [%312, %$62] ; # NmX\n  %321 = phi i64 [%313, %$62] ; # NmY\n  %322 = phi i64 [%314, %$62] ; # A\n  %323 = phi i64 [%316, %$62] ; # B\n; # (ret 1)\n  ret i64 1\n$75:\n  %324 = phi i64 [%310, %$62] ; # X\n  %325 = phi i64 [%311, %$62] ; # Y\n  %326 = phi i64 [%312, %$62] ; # NmX\n  %327 = phi i64 [%313, %$62] ; # NmY\n  %328 = phi i64 [%314, %$62] ; # A\n  %329 = phi i64 [%316, %$62] ; # B\n  br label %$56\n$63:\n  %330 = phi i64 [%304, %$73] ; # X\n  %331 = phi i64 [%305, %$73] ; # Y\n  %332 = phi i64 [%306, %$73] ; # NmX\n  %333 = phi i64 [%307, %$73] ; # NmY\n  %334 = phi i64 [%308, %$73] ; # A\n  %335 = phi i64 [%309, %$73] ; # B\n  br label %$43\n$33:\n  %336 = phi i64 [%113, %$36], [%123, %$42] ; # X\n  %337 = phi i64 [%114, %$36], [%124, %$42] ; # Y\n  %338 = phi i64 [%115, %$36], [%125, %$42] ; # NmX\n  %339 = phi i64 [%116, %$36], [%126, %$42] ; # NmY\n  %340 = phi i64 [%117, %$36], [1, %$42] ; # ->\n  br label %$18\n$18:\n  %341 = phi i64 [%50, %$22], [%62, %$26], [%336, %$33] ; # X\n  %342 = phi i64 [%51, %$22], [%63, %$26], [%337, %$33] ; # Y\n  %343 = phi i64 [1, %$22], [-1, %$26], [%340, %$33] ; # ->\n  br label %$2\n$16:\n  %344 = phi i64 [%36, %$9] ; # X\n  %345 = phi i64 [%37, %$9] ; # Y\n; # (atom Y)\n  %346 = and i64 %345, 15\n  %347 = icmp ne i64 %346, 0\n  br i1 %347, label %$77, label %$76\n$77:\n  %348 = phi i64 [%344, %$16] ; # X\n  %349 = phi i64 [%345, %$16] ; # Y\n; # (if (t? Y) -1 1)\n; # (t? Y)\n  %350 = icmp eq i64 %349, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %350, label %$78, label %$79\n$78:\n  %351 = phi i64 [%348, %$77] ; # X\n  %352 = phi i64 [%349, %$77] ; # Y\n  br label %$80\n$79:\n  %353 = phi i64 [%348, %$77] ; # X\n  %354 = phi i64 [%349, %$77] ; # Y\n  br label %$80\n$80:\n  %355 = phi i64 [%351, %$78], [%353, %$79] ; # X\n  %356 = phi i64 [%352, %$78], [%354, %$79] ; # Y\n  %357 = phi i64 [-1, %$78], [1, %$79] ; # ->\n  br label %$2\n$76:\n  %358 = phi i64 [%344, %$16] ; # X\n  %359 = phi i64 [%345, %$16] ; # Y\n; # (stkChk 0)\n  %360 = load i8*, i8** @$StkLimit\n  %361 = call i8* @llvm.stacksave()\n  %362 = icmp ugt i8* %360, %361\n  br i1 %362, label %$81, label %$82\n$81:\n  %363 = phi i64 [0, %$76] ; # Exe\n  call void @stkErr(i64 %363)\n  unreachable\n$82:\n  %364 = phi i64 [0, %$76] ; # Exe\n; # (let (A X B Y) (loop (? (compare (car X) (car Y)) @) (? (atom (sh...\n; # (loop (? (compare (car X) (car Y)) @) (? (atom (shift X)) (compar...\n  br label %$83\n$83:\n  %365 = phi i64 [%358, %$82], [%455, %$102] ; # X\n  %366 = phi i64 [%359, %$82], [%456, %$102] ; # Y\n  %367 = phi i64 [%358, %$82], [%457, %$102] ; # A\n  %368 = phi i64 [%359, %$82], [%458, %$102] ; # B\n; # (? (compare (car X) (car Y)) @)\n; # (car X)\n  %369 = inttoptr i64 %365 to i64*\n  %370 = load i64, i64* %369\n; # (car Y)\n  %371 = inttoptr i64 %366 to i64*\n  %372 = load i64, i64* %371\n; # (compare (car X) (car Y))\n  %373 = call i64 @compare(i64 %370, i64 %372)\n  %374 = icmp ne i64 %373, 0\n  br i1 %374, label %$86, label %$84\n$86:\n  %375 = phi i64 [%365, %$83] ; # X\n  %376 = phi i64 [%366, %$83] ; # Y\n  %377 = phi i64 [%367, %$83] ; # A\n  %378 = phi i64 [%368, %$83] ; # B\n  br label %$85\n$84:\n  %379 = phi i64 [%365, %$83] ; # X\n  %380 = phi i64 [%366, %$83] ; # Y\n  %381 = phi i64 [%367, %$83] ; # A\n  %382 = phi i64 [%368, %$83] ; # B\n; # (? (atom (shift X)) (compare X (cdr Y)))\n; # (shift X)\n  %383 = inttoptr i64 %379 to i64*\n  %384 = getelementptr i64, i64* %383, i32 1\n  %385 = load i64, i64* %384\n; # (atom (shift X))\n  %386 = and i64 %385, 15\n  %387 = icmp ne i64 %386, 0\n  br i1 %387, label %$88, label %$87\n$88:\n  %388 = phi i64 [%385, %$84] ; # X\n  %389 = phi i64 [%380, %$84] ; # Y\n  %390 = phi i64 [%381, %$84] ; # A\n  %391 = phi i64 [%382, %$84] ; # B\n; # (cdr Y)\n  %392 = inttoptr i64 %389 to i64*\n  %393 = getelementptr i64, i64* %392, i32 1\n  %394 = load i64, i64* %393\n; # (compare X (cdr Y))\n  %395 = call i64 @compare(i64 %388, i64 %394)\n  br label %$85\n$87:\n  %396 = phi i64 [%385, %$84] ; # X\n  %397 = phi i64 [%380, %$84] ; # Y\n  %398 = phi i64 [%381, %$84] ; # A\n  %399 = phi i64 [%382, %$84] ; # B\n; # (? (atom (shift Y)) (if (t? Y) -1 1))\n; # (shift Y)\n  %400 = inttoptr i64 %397 to i64*\n  %401 = getelementptr i64, i64* %400, i32 1\n  %402 = load i64, i64* %401\n; # (atom (shift Y))\n  %403 = and i64 %402, 15\n  %404 = icmp ne i64 %403, 0\n  br i1 %404, label %$90, label %$89\n$90:\n  %405 = phi i64 [%396, %$87] ; # X\n  %406 = phi i64 [%402, %$87] ; # Y\n  %407 = phi i64 [%398, %$87] ; # A\n  %408 = phi i64 [%399, %$87] ; # B\n; # (if (t? Y) -1 1)\n; # (t? Y)\n  %409 = icmp eq i64 %406, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %409, label %$91, label %$92\n$91:\n  %410 = phi i64 [%405, %$90] ; # X\n  %411 = phi i64 [%406, %$90] ; # Y\n  %412 = phi i64 [%407, %$90] ; # A\n  %413 = phi i64 [%408, %$90] ; # B\n  br label %$93\n$92:\n  %414 = phi i64 [%405, %$90] ; # X\n  %415 = phi i64 [%406, %$90] ; # Y\n  %416 = phi i64 [%407, %$90] ; # A\n  %417 = phi i64 [%408, %$90] ; # B\n  br label %$93\n$93:\n  %418 = phi i64 [%410, %$91], [%414, %$92] ; # X\n  %419 = phi i64 [%411, %$91], [%415, %$92] ; # Y\n  %420 = phi i64 [%412, %$91], [%416, %$92] ; # A\n  %421 = phi i64 [%413, %$91], [%417, %$92] ; # B\n  %422 = phi i64 [-1, %$91], [1, %$92] ; # ->\n  br label %$85\n$89:\n  %423 = phi i64 [%396, %$87] ; # X\n  %424 = phi i64 [%402, %$87] ; # Y\n  %425 = phi i64 [%398, %$87] ; # A\n  %426 = phi i64 [%399, %$87] ; # B\n; # (? (== X A) (if (== Y B) 0 -1))\n; # (== X A)\n  %427 = icmp eq i64 %423, %425\n  br i1 %427, label %$95, label %$94\n$95:\n  %428 = phi i64 [%423, %$89] ; # X\n  %429 = phi i64 [%424, %$89] ; # Y\n  %430 = phi i64 [%425, %$89] ; # A\n  %431 = phi i64 [%426, %$89] ; # B\n; # (if (== Y B) 0 -1)\n; # (== Y B)\n  %432 = icmp eq i64 %429, %431\n  br i1 %432, label %$96, label %$97\n$96:\n  %433 = phi i64 [%428, %$95] ; # X\n  %434 = phi i64 [%429, %$95] ; # Y\n  %435 = phi i64 [%430, %$95] ; # A\n  %436 = phi i64 [%431, %$95] ; # B\n  br label %$98\n$97:\n  %437 = phi i64 [%428, %$95] ; # X\n  %438 = phi i64 [%429, %$95] ; # Y\n  %439 = phi i64 [%430, %$95] ; # A\n  %440 = phi i64 [%431, %$95] ; # B\n  br label %$98\n$98:\n  %441 = phi i64 [%433, %$96], [%437, %$97] ; # X\n  %442 = phi i64 [%434, %$96], [%438, %$97] ; # Y\n  %443 = phi i64 [%435, %$96], [%439, %$97] ; # A\n  %444 = phi i64 [%436, %$96], [%440, %$97] ; # B\n  %445 = phi i64 [0, %$96], [-1, %$97] ; # ->\n  br label %$85\n$94:\n  %446 = phi i64 [%423, %$89] ; # X\n  %447 = phi i64 [%424, %$89] ; # Y\n  %448 = phi i64 [%425, %$89] ; # A\n  %449 = phi i64 [%426, %$89] ; # B\n; # (? (== Y B) 1)\n; # (== Y B)\n  %450 = icmp eq i64 %447, %449\n  br i1 %450, label %$100, label %$99\n$100:\n  %451 = phi i64 [%446, %$94] ; # X\n  %452 = phi i64 [%447, %$94] ; # Y\n  %453 = phi i64 [%448, %$94] ; # A\n  %454 = phi i64 [%449, %$94] ; # B\n  br label %$85\n$99:\n  %455 = phi i64 [%446, %$94] ; # X\n  %456 = phi i64 [%447, %$94] ; # Y\n  %457 = phi i64 [%448, %$94] ; # A\n  %458 = phi i64 [%449, %$94] ; # B\n; # (sigChk 0)\n  %459 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %460 = icmp ne i32 %459, 0\n  br i1 %460, label %$101, label %$102\n$101:\n  %461 = phi i64 [0, %$99] ; # Exe\n  call void @sighandler(i64 %461)\n  br label %$102\n$102:\n  %462 = phi i64 [0, %$99], [%461, %$101] ; # Exe\n  br label %$83\n$85:\n  %463 = phi i64 [%375, %$86], [%388, %$88], [%418, %$93], [%441, %$98], [%451, %$100] ; # X\n  %464 = phi i64 [%376, %$86], [%389, %$88], [%419, %$93], [%442, %$98], [%452, %$100] ; # Y\n  %465 = phi i64 [%377, %$86], [%390, %$88], [%420, %$93], [%443, %$98], [%453, %$100] ; # A\n  %466 = phi i64 [%378, %$86], [%391, %$88], [%421, %$93], [%444, %$98], [%454, %$100] ; # B\n  %467 = phi i64 [%373, %$86], [%395, %$88], [%422, %$93], [%445, %$98], [1, %$100] ; # ->\n  br label %$2\n$2:\n  %468 = phi i64 [%3, %$4], [%8, %$6], [%13, %$8], [%33, %$11], [%341, %$18], [%355, %$80], [%463, %$85] ; # X\n  %469 = phi i64 [%4, %$4], [%9, %$6], [%14, %$8], [%34, %$11], [%342, %$18], [%356, %$80], [%464, %$85] ; # Y\n  %470 = phi i64 [0, %$4], [-1, %$6], [1, %$8], [%35, %$11], [%343, %$18], [%357, %$80], [%467, %$85] ; # ->\n  ret i64 %470\n}\n\ndefine void @undefined(i64, i64) align 8 {\n$1:\n; # (err Exe Fun ($ \"Undefined\") null)\n  call void @err(i64 %1, i64 %0, i8* bitcast ([10 x i8]* @$29 to i8*), i8* null)\n  unreachable\n}\n\ndefine i64 @evExpr(i64, i64) align 8 {\n$1:\n; # (stkChk Exe)\n  %2 = load i8*, i8** @$StkLimit\n  %3 = call i8* @llvm.stacksave()\n  %4 = icmp ugt i8* %2, %3\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  call void @stkErr(i64 %5)\n  unreachable\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n; # (let (X (cdr Lst) Y (car Exe) P (set $Bind (push (val $At) $At (v...\n; # (cdr Lst)\n  %7 = inttoptr i64 %1 to i64*\n  %8 = getelementptr i64, i64* %7, i32 1\n  %9 = load i64, i64* %8\n; # (car Exe)\n  %10 = inttoptr i64 %0 to i64*\n  %11 = load i64, i64* %10\n; # (set $Bind (push (val $At) $At (val $Bind) Lst))\n; # (val $At)\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %13 = load i64, i64* %12\n; # (val $Bind)\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %15 = load i64, i64* %14\n; # (push (val $At) $At (val $Bind) Lst)\n  %16 = alloca i64, i64 4, align 16\n  %17 = ptrtoint i64* %16 to i64\n  %18 = inttoptr i64 %17 to i64*\n  store i64 %13, i64* %18\n  %19 = add i64 %17, 8\n  %20 = inttoptr i64 %19 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), i64* %20\n  %21 = add i64 %17, 16\n  %22 = inttoptr i64 %21 to i64*\n  store i64 %15, i64* %22\n  %23 = add i64 %17, 24\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %1, i64* %24\n  %25 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %17, i64* %25\n; # (while (pair Y) (let (V (eval (++ X)) Z (++ Y)) (if (atom Z) (set...\n  br label %$4\n$4:\n  %26 = phi i64 [%0, %$3], [%221, %$14] ; # Exe\n  %27 = phi i64 [%1, %$3], [%222, %$14] ; # Lst\n  %28 = phi i64 [%9, %$3], [%223, %$14] ; # X\n  %29 = phi i64 [%11, %$3], [%224, %$14] ; # Y\n  %30 = phi i64 [%17, %$3], [%225, %$14] ; # P\n; # (pair Y)\n  %31 = and i64 %29, 15\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$5, label %$6\n$5:\n  %33 = phi i64 [%26, %$4] ; # Exe\n  %34 = phi i64 [%27, %$4] ; # Lst\n  %35 = phi i64 [%28, %$4] ; # X\n  %36 = phi i64 [%29, %$4] ; # Y\n  %37 = phi i64 [%30, %$4] ; # P\n; # (let (V (eval (++ X)) Z (++ Y)) (if (atom Z) (set $Bind (setq P (...\n; # (++ X)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n  %41 = load i64, i64* %38\n; # (eval (++ X))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$9, label %$8\n$9:\n  %44 = phi i64 [%41, %$5] ; # X\n  br label %$7\n$8:\n  %45 = phi i64 [%41, %$5] ; # X\n  %46 = and i64 %45, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$11, label %$10\n$11:\n  %48 = phi i64 [%45, %$8] ; # X\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n  br label %$7\n$10:\n  %51 = phi i64 [%45, %$8] ; # X\n  %52 = call i64 @evList(i64 %51)\n  br label %$7\n$7:\n  %53 = phi i64 [%44, %$9], [%48, %$11], [%51, %$10] ; # X\n  %54 = phi i64 [%44, %$9], [%50, %$11], [%52, %$10] ; # ->\n; # (++ Y)\n  %55 = inttoptr i64 %36 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n  %58 = load i64, i64* %55\n; # (if (atom Z) (set $Bind (setq P (push V (needChkVar Exe Z) P))) (...\n; # (atom Z)\n  %59 = and i64 %58, 15\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$12, label %$13\n$12:\n  %61 = phi i64 [%33, %$7] ; # Exe\n  %62 = phi i64 [%34, %$7] ; # Lst\n  %63 = phi i64 [%40, %$7] ; # X\n  %64 = phi i64 [%57, %$7] ; # Y\n  %65 = phi i64 [%37, %$7] ; # P\n  %66 = phi i64 [%54, %$7] ; # V\n  %67 = phi i64 [%58, %$7] ; # Z\n; # (set $Bind (setq P (push V (needChkVar Exe Z) P)))\n; # (needChkVar Exe Z)\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$15, label %$16\n$15:\n  %70 = phi i64 [%67, %$12] ; # X\n  %71 = phi i64 [%61, %$12] ; # Exe\n  call void @varErr(i64 %71, i64 %70)\n  unreachable\n$16:\n  %72 = phi i64 [%67, %$12] ; # X\n  %73 = phi i64 [%61, %$12] ; # Exe\n  %74 = icmp uge i64 %72, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %74, label %$18, label %$17\n$18:\n  %75 = phi i64 [%72, %$16] ; # X\n  %76 = phi i64 [%73, %$16] ; # Exe\n  %77 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %75\n  br label %$17\n$17:\n  %78 = phi i64 [%72, %$16], [%75, %$18] ; # X\n  %79 = phi i64 [%73, %$16], [%76, %$18] ; # Exe\n  %80 = phi i1 [0, %$16], [%77, %$18] ; # ->\n  br i1 %80, label %$19, label %$20\n$19:\n  %81 = phi i64 [%78, %$17] ; # X\n  %82 = phi i64 [%79, %$17] ; # Exe\n  call void @protErr(i64 %82, i64 %81)\n  unreachable\n$20:\n  %83 = phi i64 [%78, %$17] ; # X\n  %84 = phi i64 [%79, %$17] ; # Exe\n; # (push V (needChkVar Exe Z) P)\n  %85 = alloca i64, i64 3, align 16\n  %86 = ptrtoint i64* %85 to i64\n  %87 = inttoptr i64 %86 to i64*\n  store i64 %66, i64* %87\n  %88 = add i64 %86, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 %72, i64* %89\n  %90 = add i64 %86, 16\n  %91 = inttoptr i64 %90 to i64*\n  store i64 %65, i64* %91\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %86, i64* %92\n  br label %$14\n$13:\n  %93 = phi i64 [%33, %$7] ; # Exe\n  %94 = phi i64 [%34, %$7] ; # Lst\n  %95 = phi i64 [%40, %$7] ; # X\n  %96 = phi i64 [%57, %$7] ; # Y\n  %97 = phi i64 [%37, %$7] ; # P\n  %98 = phi i64 [%54, %$7] ; # V\n  %99 = phi i64 [%58, %$7] ; # Z\n; # (loop (set $Bind (setq P (push (if (pair V) (++ V) $Nil) (needChk...\n  br label %$21\n$21:\n  %100 = phi i64 [%93, %$13], [%166, %$31] ; # Exe\n  %101 = phi i64 [%94, %$13], [%167, %$31] ; # Lst\n  %102 = phi i64 [%95, %$13], [%168, %$31] ; # X\n  %103 = phi i64 [%96, %$13], [%169, %$31] ; # Y\n  %104 = phi i64 [%97, %$13], [%170, %$31] ; # P\n  %105 = phi i64 [%98, %$13], [%171, %$31] ; # V\n  %106 = phi i64 [%99, %$13], [%172, %$31] ; # Z\n; # (set $Bind (setq P (push (if (pair V) (++ V) $Nil) (needChkVar Ex...\n; # (if (pair V) (++ V) $Nil)\n; # (pair V)\n  %107 = and i64 %105, 15\n  %108 = icmp eq i64 %107, 0\n  br i1 %108, label %$22, label %$23\n$22:\n  %109 = phi i64 [%100, %$21] ; # Exe\n  %110 = phi i64 [%101, %$21] ; # Lst\n  %111 = phi i64 [%102, %$21] ; # X\n  %112 = phi i64 [%103, %$21] ; # Y\n  %113 = phi i64 [%104, %$21] ; # P\n  %114 = phi i64 [%105, %$21] ; # V\n  %115 = phi i64 [%106, %$21] ; # Z\n; # (++ V)\n  %116 = inttoptr i64 %114 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n  %119 = load i64, i64* %116\n  br label %$24\n$23:\n  %120 = phi i64 [%100, %$21] ; # Exe\n  %121 = phi i64 [%101, %$21] ; # Lst\n  %122 = phi i64 [%102, %$21] ; # X\n  %123 = phi i64 [%103, %$21] ; # Y\n  %124 = phi i64 [%104, %$21] ; # P\n  %125 = phi i64 [%105, %$21] ; # V\n  %126 = phi i64 [%106, %$21] ; # Z\n  br label %$24\n$24:\n  %127 = phi i64 [%109, %$22], [%120, %$23] ; # Exe\n  %128 = phi i64 [%110, %$22], [%121, %$23] ; # Lst\n  %129 = phi i64 [%111, %$22], [%122, %$23] ; # X\n  %130 = phi i64 [%112, %$22], [%123, %$23] ; # Y\n  %131 = phi i64 [%113, %$22], [%124, %$23] ; # P\n  %132 = phi i64 [%118, %$22], [%125, %$23] ; # V\n  %133 = phi i64 [%115, %$22], [%126, %$23] ; # Z\n  %134 = phi i64 [%119, %$22], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$23] ; # ->\n; # (++ Z)\n  %135 = inttoptr i64 %133 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n  %138 = load i64, i64* %135\n; # (needChkVar Exe (++ Z))\n  %139 = and i64 %138, 6\n  %140 = icmp ne i64 %139, 0\n  br i1 %140, label %$25, label %$26\n$25:\n  %141 = phi i64 [%138, %$24] ; # X\n  %142 = phi i64 [%127, %$24] ; # Exe\n  call void @varErr(i64 %142, i64 %141)\n  unreachable\n$26:\n  %143 = phi i64 [%138, %$24] ; # X\n  %144 = phi i64 [%127, %$24] ; # Exe\n  %145 = icmp uge i64 %143, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %145, label %$28, label %$27\n$28:\n  %146 = phi i64 [%143, %$26] ; # X\n  %147 = phi i64 [%144, %$26] ; # Exe\n  %148 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %146\n  br label %$27\n$27:\n  %149 = phi i64 [%143, %$26], [%146, %$28] ; # X\n  %150 = phi i64 [%144, %$26], [%147, %$28] ; # Exe\n  %151 = phi i1 [0, %$26], [%148, %$28] ; # ->\n  br i1 %151, label %$29, label %$30\n$29:\n  %152 = phi i64 [%149, %$27] ; # X\n  %153 = phi i64 [%150, %$27] ; # Exe\n  call void @protErr(i64 %153, i64 %152)\n  unreachable\n$30:\n  %154 = phi i64 [%149, %$27] ; # X\n  %155 = phi i64 [%150, %$27] ; # Exe\n; # (push (if (pair V) (++ V) $Nil) (needChkVar Exe (++ Z)) P)\n  %156 = alloca i64, i64 3, align 16\n  %157 = ptrtoint i64* %156 to i64\n  %158 = inttoptr i64 %157 to i64*\n  store i64 %134, i64* %158\n  %159 = add i64 %157, 8\n  %160 = inttoptr i64 %159 to i64*\n  store i64 %143, i64* %160\n  %161 = add i64 %157, 16\n  %162 = inttoptr i64 %161 to i64*\n  store i64 %131, i64* %162\n  %163 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %157, i64* %163\n; # (? (atom Z))\n; # (atom Z)\n  %164 = and i64 %137, 15\n  %165 = icmp ne i64 %164, 0\n  br i1 %165, label %$32, label %$31\n$31:\n  %166 = phi i64 [%127, %$30] ; # Exe\n  %167 = phi i64 [%128, %$30] ; # Lst\n  %168 = phi i64 [%129, %$30] ; # X\n  %169 = phi i64 [%130, %$30] ; # Y\n  %170 = phi i64 [%157, %$30] ; # P\n  %171 = phi i64 [%132, %$30] ; # V\n  %172 = phi i64 [%137, %$30] ; # Z\n  br label %$21\n$32:\n  %173 = phi i64 [%127, %$30] ; # Exe\n  %174 = phi i64 [%128, %$30] ; # Lst\n  %175 = phi i64 [%129, %$30] ; # X\n  %176 = phi i64 [%130, %$30] ; # Y\n  %177 = phi i64 [%157, %$30] ; # P\n  %178 = phi i64 [%132, %$30] ; # V\n  %179 = phi i64 [%137, %$30] ; # Z\n  %180 = phi i64 [0, %$30] ; # ->\n; # (unless (nil? Z) (set $Bind (setq P (push V (needChkVar Exe Z) P)...\n; # (nil? Z)\n  %181 = icmp eq i64 %179, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %181, label %$34, label %$33\n$33:\n  %182 = phi i64 [%173, %$32] ; # Exe\n  %183 = phi i64 [%174, %$32] ; # Lst\n  %184 = phi i64 [%175, %$32] ; # X\n  %185 = phi i64 [%176, %$32] ; # Y\n  %186 = phi i64 [%177, %$32] ; # P\n  %187 = phi i64 [%178, %$32] ; # V\n  %188 = phi i64 [%179, %$32] ; # Z\n; # (set $Bind (setq P (push V (needChkVar Exe Z) P)))\n; # (needChkVar Exe Z)\n  %189 = and i64 %188, 6\n  %190 = icmp ne i64 %189, 0\n  br i1 %190, label %$35, label %$36\n$35:\n  %191 = phi i64 [%188, %$33] ; # X\n  %192 = phi i64 [%182, %$33] ; # Exe\n  call void @varErr(i64 %192, i64 %191)\n  unreachable\n$36:\n  %193 = phi i64 [%188, %$33] ; # X\n  %194 = phi i64 [%182, %$33] ; # Exe\n  %195 = icmp uge i64 %193, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %195, label %$38, label %$37\n$38:\n  %196 = phi i64 [%193, %$36] ; # X\n  %197 = phi i64 [%194, %$36] ; # Exe\n  %198 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %196\n  br label %$37\n$37:\n  %199 = phi i64 [%193, %$36], [%196, %$38] ; # X\n  %200 = phi i64 [%194, %$36], [%197, %$38] ; # Exe\n  %201 = phi i1 [0, %$36], [%198, %$38] ; # ->\n  br i1 %201, label %$39, label %$40\n$39:\n  %202 = phi i64 [%199, %$37] ; # X\n  %203 = phi i64 [%200, %$37] ; # Exe\n  call void @protErr(i64 %203, i64 %202)\n  unreachable\n$40:\n  %204 = phi i64 [%199, %$37] ; # X\n  %205 = phi i64 [%200, %$37] ; # Exe\n; # (push V (needChkVar Exe Z) P)\n  %206 = alloca i64, i64 3, align 16\n  %207 = ptrtoint i64* %206 to i64\n  %208 = inttoptr i64 %207 to i64*\n  store i64 %187, i64* %208\n  %209 = add i64 %207, 8\n  %210 = inttoptr i64 %209 to i64*\n  store i64 %193, i64* %210\n  %211 = add i64 %207, 16\n  %212 = inttoptr i64 %211 to i64*\n  store i64 %186, i64* %212\n  %213 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %207, i64* %213\n  br label %$34\n$34:\n  %214 = phi i64 [%173, %$32], [%182, %$40] ; # Exe\n  %215 = phi i64 [%174, %$32], [%183, %$40] ; # Lst\n  %216 = phi i64 [%175, %$32], [%184, %$40] ; # X\n  %217 = phi i64 [%176, %$32], [%185, %$40] ; # Y\n  %218 = phi i64 [%177, %$32], [%207, %$40] ; # P\n  %219 = phi i64 [%178, %$32], [%187, %$40] ; # V\n  %220 = phi i64 [%179, %$32], [%188, %$40] ; # Z\n  br label %$14\n$14:\n  %221 = phi i64 [%61, %$20], [%214, %$34] ; # Exe\n  %222 = phi i64 [%62, %$20], [%215, %$34] ; # Lst\n  %223 = phi i64 [%63, %$20], [%216, %$34] ; # X\n  %224 = phi i64 [%64, %$20], [%217, %$34] ; # Y\n  %225 = phi i64 [%86, %$20], [%218, %$34] ; # P\n  %226 = phi i64 [%66, %$20], [%219, %$34] ; # V\n  %227 = phi i64 [%67, %$20], [%220, %$34] ; # Z\n  br label %$4\n$6:\n  %228 = phi i64 [%26, %$4] ; # Exe\n  %229 = phi i64 [%27, %$4] ; # Lst\n  %230 = phi i64 [%28, %$4] ; # X\n  %231 = phi i64 [%29, %$4] ; # Y\n  %232 = phi i64 [%30, %$4] ; # P\n; # (prog1 (if (== Y $At) (if (pair X) (let (L (push NIL (eval (car X...\n; # (if (== Y $At) (if (pair X) (let (L (push NIL (eval (car X)) NIL)...\n; # (== Y $At)\n  %233 = icmp eq i64 %231, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %233, label %$41, label %$42\n$41:\n  %234 = phi i64 [%228, %$6] ; # Exe\n  %235 = phi i64 [%229, %$6] ; # Lst\n  %236 = phi i64 [%230, %$6] ; # X\n  %237 = phi i64 [%231, %$6] ; # Y\n  %238 = phi i64 [%232, %$6] ; # P\n; # (if (pair X) (let (L (push NIL (eval (car X)) NIL) Q L) (link (of...\n; # (pair X)\n  %239 = and i64 %236, 15\n  %240 = icmp eq i64 %239, 0\n  br i1 %240, label %$44, label %$45\n$44:\n  %241 = phi i64 [%234, %$41] ; # Exe\n  %242 = phi i64 [%235, %$41] ; # Lst\n  %243 = phi i64 [%236, %$41] ; # X\n  %244 = phi i64 [%237, %$41] ; # Y\n  %245 = phi i64 [%238, %$41] ; # P\n; # (let (L (push NIL (eval (car X)) NIL) Q L) (link (ofs L 1)) (whil...\n; # (car X)\n  %246 = inttoptr i64 %243 to i64*\n  %247 = load i64, i64* %246\n; # (eval (car X))\n  %248 = and i64 %247, 6\n  %249 = icmp ne i64 %248, 0\n  br i1 %249, label %$49, label %$48\n$49:\n  %250 = phi i64 [%247, %$44] ; # X\n  br label %$47\n$48:\n  %251 = phi i64 [%247, %$44] ; # X\n  %252 = and i64 %251, 8\n  %253 = icmp ne i64 %252, 0\n  br i1 %253, label %$51, label %$50\n$51:\n  %254 = phi i64 [%251, %$48] ; # X\n  %255 = inttoptr i64 %254 to i64*\n  %256 = load i64, i64* %255\n  br label %$47\n$50:\n  %257 = phi i64 [%251, %$48] ; # X\n  %258 = call i64 @evList(i64 %257)\n  br label %$47\n$47:\n  %259 = phi i64 [%250, %$49], [%254, %$51], [%257, %$50] ; # X\n  %260 = phi i64 [%250, %$49], [%256, %$51], [%258, %$50] ; # ->\n; # (push NIL (eval (car X)) NIL)\n  %261 = alloca i64, i64 3, align 16\n  %262 = ptrtoint i64* %261 to i64\n  %263 = add i64 %262, 8\n  %264 = inttoptr i64 %263 to i64*\n  store i64 %260, i64* %264\n; # (ofs L 1)\n  %265 = add i64 %262, 8\n; # (link (ofs L 1))\n  %266 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %267 = load i64, i64* %266\n  %268 = inttoptr i64 %265 to i64*\n  %269 = getelementptr i64, i64* %268, i32 1\n  store i64 %267, i64* %269\n  %270 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %265, i64* %270\n; # (while (pair (shift X)) (setq L (set L (push NIL (eval (car X)) N...\n  br label %$52\n$52:\n  %271 = phi i64 [%241, %$47], [%283, %$55] ; # Exe\n  %272 = phi i64 [%242, %$47], [%284, %$55] ; # Lst\n  %273 = phi i64 [%243, %$47], [%285, %$55] ; # X\n  %274 = phi i64 [%244, %$47], [%286, %$55] ; # Y\n  %275 = phi i64 [%245, %$47], [%287, %$55] ; # P\n  %276 = phi i64 [%262, %$47], [%306, %$55] ; # L\n  %277 = phi i64 [%262, %$47], [%289, %$55] ; # Q\n; # (shift X)\n  %278 = inttoptr i64 %273 to i64*\n  %279 = getelementptr i64, i64* %278, i32 1\n  %280 = load i64, i64* %279\n; # (pair (shift X))\n  %281 = and i64 %280, 15\n  %282 = icmp eq i64 %281, 0\n  br i1 %282, label %$53, label %$54\n$53:\n  %283 = phi i64 [%271, %$52] ; # Exe\n  %284 = phi i64 [%272, %$52] ; # Lst\n  %285 = phi i64 [%280, %$52] ; # X\n  %286 = phi i64 [%274, %$52] ; # Y\n  %287 = phi i64 [%275, %$52] ; # P\n  %288 = phi i64 [%276, %$52] ; # L\n  %289 = phi i64 [%277, %$52] ; # Q\n; # (set L (push NIL (eval (car X)) NIL))\n; # (car X)\n  %290 = inttoptr i64 %285 to i64*\n  %291 = load i64, i64* %290\n; # (eval (car X))\n  %292 = and i64 %291, 6\n  %293 = icmp ne i64 %292, 0\n  br i1 %293, label %$57, label %$56\n$57:\n  %294 = phi i64 [%291, %$53] ; # X\n  br label %$55\n$56:\n  %295 = phi i64 [%291, %$53] ; # X\n  %296 = and i64 %295, 8\n  %297 = icmp ne i64 %296, 0\n  br i1 %297, label %$59, label %$58\n$59:\n  %298 = phi i64 [%295, %$56] ; # X\n  %299 = inttoptr i64 %298 to i64*\n  %300 = load i64, i64* %299\n  br label %$55\n$58:\n  %301 = phi i64 [%295, %$56] ; # X\n  %302 = call i64 @evList(i64 %301)\n  br label %$55\n$55:\n  %303 = phi i64 [%294, %$57], [%298, %$59], [%301, %$58] ; # X\n  %304 = phi i64 [%294, %$57], [%300, %$59], [%302, %$58] ; # ->\n; # (push NIL (eval (car X)) NIL)\n  %305 = alloca i64, i64 3, align 16\n  %306 = ptrtoint i64* %305 to i64\n  %307 = add i64 %306, 8\n  %308 = inttoptr i64 %307 to i64*\n  store i64 %304, i64* %308\n  %309 = inttoptr i64 %288 to i64*\n  store i64 %306, i64* %309\n; # (ofs L 1)\n  %310 = add i64 %306, 8\n; # (link (ofs L 1))\n  %311 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %312 = load i64, i64* %311\n  %313 = inttoptr i64 %310 to i64*\n  %314 = getelementptr i64, i64* %313, i32 1\n  store i64 %312, i64* %314\n  %315 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %310, i64* %315\n  br label %$52\n$54:\n  %316 = phi i64 [%271, %$52] ; # Exe\n  %317 = phi i64 [%272, %$52] ; # Lst\n  %318 = phi i64 [%280, %$52] ; # X\n  %319 = phi i64 [%274, %$52] ; # Y\n  %320 = phi i64 [%275, %$52] ; # P\n  %321 = phi i64 [%276, %$52] ; # L\n  %322 = phi i64 [%277, %$52] ; # Q\n; # (let Next (val $Next) (set L $Nil $Next Q) (loop (let Sym (val 2 ...\n; # (val $Next)\n  %323 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %324 = load i64, i64* %323\n; # (set L $Nil $Next Q)\n  %325 = inttoptr i64 %321 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %325\n  %326 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %322, i64* %326\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$60\n$60:\n  %327 = phi i64 [%316, %$54], [%343, %$61] ; # Exe\n  %328 = phi i64 [%317, %$54], [%344, %$61] ; # Lst\n  %329 = phi i64 [%318, %$54], [%345, %$61] ; # X\n  %330 = phi i64 [%319, %$54], [%346, %$61] ; # Y\n  %331 = phi i64 [%320, %$54], [%354, %$61] ; # P\n  %332 = phi i64 [%321, %$54], [%348, %$61] ; # L\n  %333 = phi i64 [%322, %$54], [%349, %$61] ; # Q\n  %334 = phi i64 [%324, %$54], [%350, %$61] ; # Next\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %335 = inttoptr i64 %331 to i64*\n  %336 = getelementptr i64, i64* %335, i32 1\n  %337 = load i64, i64* %336\n; # (xchg Sym P)\n  %338 = inttoptr i64 %337 to i64*\n  %339 = load i64, i64* %338\n  %340 = inttoptr i64 %331 to i64*\n  %341 = load i64, i64* %340\n  store i64 %341, i64* %338\n  store i64 %339, i64* %340\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %342 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %337\n  br i1 %342, label %$62, label %$61\n$61:\n  %343 = phi i64 [%327, %$60] ; # Exe\n  %344 = phi i64 [%328, %$60] ; # Lst\n  %345 = phi i64 [%329, %$60] ; # X\n  %346 = phi i64 [%330, %$60] ; # Y\n  %347 = phi i64 [%331, %$60] ; # P\n  %348 = phi i64 [%332, %$60] ; # L\n  %349 = phi i64 [%333, %$60] ; # Q\n  %350 = phi i64 [%334, %$60] ; # Next\n  %351 = phi i64 [%337, %$60] ; # Sym\n; # (val 3 P)\n  %352 = inttoptr i64 %347 to i64*\n  %353 = getelementptr i64, i64* %352, i32 2\n  %354 = load i64, i64* %353\n  br label %$60\n$62:\n  %355 = phi i64 [%327, %$60] ; # Exe\n  %356 = phi i64 [%328, %$60] ; # Lst\n  %357 = phi i64 [%329, %$60] ; # X\n  %358 = phi i64 [%330, %$60] ; # Y\n  %359 = phi i64 [%331, %$60] ; # P\n  %360 = phi i64 [%332, %$60] ; # L\n  %361 = phi i64 [%333, %$60] ; # Q\n  %362 = phi i64 [%334, %$60] ; # Next\n  %363 = phi i64 [0, %$60] ; # ->\n; # (prog1 (run (cdr Exe)) (set $Next Next) (drop (ofs Q 1)))\n; # (cdr Exe)\n  %364 = inttoptr i64 %355 to i64*\n  %365 = getelementptr i64, i64* %364, i32 1\n  %366 = load i64, i64* %365\n; # (run (cdr Exe))\n  br label %$63\n$63:\n  %367 = phi i64 [%366, %$62], [%397, %$72] ; # Prg\n  %368 = inttoptr i64 %367 to i64*\n  %369 = getelementptr i64, i64* %368, i32 1\n  %370 = load i64, i64* %369\n  %371 = load i64, i64* %368\n  %372 = and i64 %370, 15\n  %373 = icmp ne i64 %372, 0\n  br i1 %373, label %$66, label %$64\n$66:\n  %374 = phi i64 [%370, %$63] ; # Prg\n  %375 = phi i64 [%371, %$63] ; # X\n  %376 = and i64 %375, 6\n  %377 = icmp ne i64 %376, 0\n  br i1 %377, label %$69, label %$68\n$69:\n  %378 = phi i64 [%375, %$66] ; # X\n  br label %$67\n$68:\n  %379 = phi i64 [%375, %$66] ; # X\n  %380 = and i64 %379, 8\n  %381 = icmp ne i64 %380, 0\n  br i1 %381, label %$71, label %$70\n$71:\n  %382 = phi i64 [%379, %$68] ; # X\n  %383 = inttoptr i64 %382 to i64*\n  %384 = load i64, i64* %383\n  br label %$67\n$70:\n  %385 = phi i64 [%379, %$68] ; # X\n  %386 = call i64 @evList(i64 %385)\n  br label %$67\n$67:\n  %387 = phi i64 [%378, %$69], [%382, %$71], [%385, %$70] ; # X\n  %388 = phi i64 [%378, %$69], [%384, %$71], [%386, %$70] ; # ->\n  br label %$65\n$64:\n  %389 = phi i64 [%370, %$63] ; # Prg\n  %390 = phi i64 [%371, %$63] ; # X\n  %391 = and i64 %390, 15\n  %392 = icmp eq i64 %391, 0\n  br i1 %392, label %$73, label %$72\n$73:\n  %393 = phi i64 [%389, %$64] ; # Prg\n  %394 = phi i64 [%390, %$64] ; # X\n  %395 = call i64 @evList(i64 %394)\n  %396 = icmp ne i64 %395, 0\n  br label %$72\n$72:\n  %397 = phi i64 [%389, %$64], [%393, %$73] ; # Prg\n  %398 = phi i64 [%390, %$64], [%394, %$73] ; # X\n  %399 = phi i1 [0, %$64], [%396, %$73] ; # ->\n  br label %$63\n$65:\n  %400 = phi i64 [%374, %$67] ; # Prg\n  %401 = phi i64 [%388, %$67] ; # ->\n; # (set $Next Next)\n  %402 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %362, i64* %402\n; # (ofs Q 1)\n  %403 = add i64 %361, 8\n; # (drop (ofs Q 1))\n  %404 = inttoptr i64 %403 to i64*\n  %405 = getelementptr i64, i64* %404, i32 1\n  %406 = load i64, i64* %405\n  %407 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %406, i64* %407\n  br label %$46\n$45:\n  %408 = phi i64 [%234, %$41] ; # Exe\n  %409 = phi i64 [%235, %$41] ; # Lst\n  %410 = phi i64 [%236, %$41] ; # X\n  %411 = phi i64 [%237, %$41] ; # Y\n  %412 = phi i64 [%238, %$41] ; # P\n; # (let Next (val $Next) (set $Next $Nil) (loop (let Sym (val 2 P) (...\n; # (val $Next)\n  %413 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %414 = load i64, i64* %413\n; # (set $Next $Nil)\n  %415 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %415\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$74\n$74:\n  %416 = phi i64 [%408, %$45], [%430, %$75] ; # Exe\n  %417 = phi i64 [%409, %$45], [%431, %$75] ; # Lst\n  %418 = phi i64 [%410, %$45], [%432, %$75] ; # X\n  %419 = phi i64 [%411, %$45], [%433, %$75] ; # Y\n  %420 = phi i64 [%412, %$45], [%439, %$75] ; # P\n  %421 = phi i64 [%414, %$45], [%435, %$75] ; # Next\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %422 = inttoptr i64 %420 to i64*\n  %423 = getelementptr i64, i64* %422, i32 1\n  %424 = load i64, i64* %423\n; # (xchg Sym P)\n  %425 = inttoptr i64 %424 to i64*\n  %426 = load i64, i64* %425\n  %427 = inttoptr i64 %420 to i64*\n  %428 = load i64, i64* %427\n  store i64 %428, i64* %425\n  store i64 %426, i64* %427\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %429 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %424\n  br i1 %429, label %$76, label %$75\n$75:\n  %430 = phi i64 [%416, %$74] ; # Exe\n  %431 = phi i64 [%417, %$74] ; # Lst\n  %432 = phi i64 [%418, %$74] ; # X\n  %433 = phi i64 [%419, %$74] ; # Y\n  %434 = phi i64 [%420, %$74] ; # P\n  %435 = phi i64 [%421, %$74] ; # Next\n  %436 = phi i64 [%424, %$74] ; # Sym\n; # (val 3 P)\n  %437 = inttoptr i64 %434 to i64*\n  %438 = getelementptr i64, i64* %437, i32 2\n  %439 = load i64, i64* %438\n  br label %$74\n$76:\n  %440 = phi i64 [%416, %$74] ; # Exe\n  %441 = phi i64 [%417, %$74] ; # Lst\n  %442 = phi i64 [%418, %$74] ; # X\n  %443 = phi i64 [%419, %$74] ; # Y\n  %444 = phi i64 [%420, %$74] ; # P\n  %445 = phi i64 [%421, %$74] ; # Next\n  %446 = phi i64 [0, %$74] ; # ->\n; # (prog1 (run (cdr Exe)) (set $Next Next))\n; # (cdr Exe)\n  %447 = inttoptr i64 %440 to i64*\n  %448 = getelementptr i64, i64* %447, i32 1\n  %449 = load i64, i64* %448\n; # (run (cdr Exe))\n  br label %$77\n$77:\n  %450 = phi i64 [%449, %$76], [%480, %$86] ; # Prg\n  %451 = inttoptr i64 %450 to i64*\n  %452 = getelementptr i64, i64* %451, i32 1\n  %453 = load i64, i64* %452\n  %454 = load i64, i64* %451\n  %455 = and i64 %453, 15\n  %456 = icmp ne i64 %455, 0\n  br i1 %456, label %$80, label %$78\n$80:\n  %457 = phi i64 [%453, %$77] ; # Prg\n  %458 = phi i64 [%454, %$77] ; # X\n  %459 = and i64 %458, 6\n  %460 = icmp ne i64 %459, 0\n  br i1 %460, label %$83, label %$82\n$83:\n  %461 = phi i64 [%458, %$80] ; # X\n  br label %$81\n$82:\n  %462 = phi i64 [%458, %$80] ; # X\n  %463 = and i64 %462, 8\n  %464 = icmp ne i64 %463, 0\n  br i1 %464, label %$85, label %$84\n$85:\n  %465 = phi i64 [%462, %$82] ; # X\n  %466 = inttoptr i64 %465 to i64*\n  %467 = load i64, i64* %466\n  br label %$81\n$84:\n  %468 = phi i64 [%462, %$82] ; # X\n  %469 = call i64 @evList(i64 %468)\n  br label %$81\n$81:\n  %470 = phi i64 [%461, %$83], [%465, %$85], [%468, %$84] ; # X\n  %471 = phi i64 [%461, %$83], [%467, %$85], [%469, %$84] ; # ->\n  br label %$79\n$78:\n  %472 = phi i64 [%453, %$77] ; # Prg\n  %473 = phi i64 [%454, %$77] ; # X\n  %474 = and i64 %473, 15\n  %475 = icmp eq i64 %474, 0\n  br i1 %475, label %$87, label %$86\n$87:\n  %476 = phi i64 [%472, %$78] ; # Prg\n  %477 = phi i64 [%473, %$78] ; # X\n  %478 = call i64 @evList(i64 %477)\n  %479 = icmp ne i64 %478, 0\n  br label %$86\n$86:\n  %480 = phi i64 [%472, %$78], [%476, %$87] ; # Prg\n  %481 = phi i64 [%473, %$78], [%477, %$87] ; # X\n  %482 = phi i1 [0, %$78], [%479, %$87] ; # ->\n  br label %$77\n$79:\n  %483 = phi i64 [%457, %$81] ; # Prg\n  %484 = phi i64 [%471, %$81] ; # ->\n; # (set $Next Next)\n  %485 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %445, i64* %485\n  br label %$46\n$46:\n  %486 = phi i64 [%355, %$65], [%440, %$79] ; # Exe\n  %487 = phi i64 [%356, %$65], [%441, %$79] ; # Lst\n  %488 = phi i64 [%357, %$65], [%442, %$79] ; # X\n  %489 = phi i64 [%358, %$65], [%443, %$79] ; # Y\n  %490 = phi i64 [%359, %$65], [%444, %$79] ; # P\n  %491 = phi i64 [%401, %$65], [%484, %$79] ; # ->\n  br label %$43\n$42:\n  %492 = phi i64 [%228, %$6] ; # Exe\n  %493 = phi i64 [%229, %$6] ; # Lst\n  %494 = phi i64 [%230, %$6] ; # X\n  %495 = phi i64 [%231, %$6] ; # Y\n  %496 = phi i64 [%232, %$6] ; # P\n; # (unless (nil? Y) (needChkVar Exe Y) (set $Bind (push (val Y) Y P)...\n; # (nil? Y)\n  %497 = icmp eq i64 %495, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %497, label %$89, label %$88\n$88:\n  %498 = phi i64 [%492, %$42] ; # Exe\n  %499 = phi i64 [%493, %$42] ; # Lst\n  %500 = phi i64 [%494, %$42] ; # X\n  %501 = phi i64 [%495, %$42] ; # Y\n  %502 = phi i64 [%496, %$42] ; # P\n; # (needChkVar Exe Y)\n  %503 = and i64 %501, 6\n  %504 = icmp ne i64 %503, 0\n  br i1 %504, label %$90, label %$91\n$90:\n  %505 = phi i64 [%501, %$88] ; # X\n  %506 = phi i64 [%498, %$88] ; # Exe\n  call void @varErr(i64 %506, i64 %505)\n  unreachable\n$91:\n  %507 = phi i64 [%501, %$88] ; # X\n  %508 = phi i64 [%498, %$88] ; # Exe\n  %509 = icmp uge i64 %507, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %509, label %$93, label %$92\n$93:\n  %510 = phi i64 [%507, %$91] ; # X\n  %511 = phi i64 [%508, %$91] ; # Exe\n  %512 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %510\n  br label %$92\n$92:\n  %513 = phi i64 [%507, %$91], [%510, %$93] ; # X\n  %514 = phi i64 [%508, %$91], [%511, %$93] ; # Exe\n  %515 = phi i1 [0, %$91], [%512, %$93] ; # ->\n  br i1 %515, label %$94, label %$95\n$94:\n  %516 = phi i64 [%513, %$92] ; # X\n  %517 = phi i64 [%514, %$92] ; # Exe\n  call void @protErr(i64 %517, i64 %516)\n  unreachable\n$95:\n  %518 = phi i64 [%513, %$92] ; # X\n  %519 = phi i64 [%514, %$92] ; # Exe\n; # (set $Bind (push (val Y) Y P) Y X)\n; # (val Y)\n  %520 = inttoptr i64 %501 to i64*\n  %521 = load i64, i64* %520\n; # (push (val Y) Y P)\n  %522 = alloca i64, i64 3, align 16\n  %523 = ptrtoint i64* %522 to i64\n  %524 = inttoptr i64 %523 to i64*\n  store i64 %521, i64* %524\n  %525 = add i64 %523, 8\n  %526 = inttoptr i64 %525 to i64*\n  store i64 %501, i64* %526\n  %527 = add i64 %523, 16\n  %528 = inttoptr i64 %527 to i64*\n  store i64 %502, i64* %528\n  %529 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %523, i64* %529\n  %530 = inttoptr i64 %501 to i64*\n  store i64 %500, i64* %530\n  br label %$89\n$89:\n  %531 = phi i64 [%492, %$42], [%498, %$95] ; # Exe\n  %532 = phi i64 [%493, %$42], [%499, %$95] ; # Lst\n  %533 = phi i64 [%494, %$42], [%500, %$95] ; # X\n  %534 = phi i64 [%495, %$42], [%501, %$95] ; # Y\n  %535 = phi i64 [%496, %$42], [%502, %$95] ; # P\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$96\n$96:\n  %536 = phi i64 [%531, %$89], [%549, %$97] ; # Exe\n  %537 = phi i64 [%532, %$89], [%550, %$97] ; # Lst\n  %538 = phi i64 [%533, %$89], [%551, %$97] ; # X\n  %539 = phi i64 [%534, %$89], [%552, %$97] ; # Y\n  %540 = phi i64 [%535, %$89], [%557, %$97] ; # P\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %541 = inttoptr i64 %540 to i64*\n  %542 = getelementptr i64, i64* %541, i32 1\n  %543 = load i64, i64* %542\n; # (xchg Sym P)\n  %544 = inttoptr i64 %543 to i64*\n  %545 = load i64, i64* %544\n  %546 = inttoptr i64 %540 to i64*\n  %547 = load i64, i64* %546\n  store i64 %547, i64* %544\n  store i64 %545, i64* %546\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %548 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %543\n  br i1 %548, label %$98, label %$97\n$97:\n  %549 = phi i64 [%536, %$96] ; # Exe\n  %550 = phi i64 [%537, %$96] ; # Lst\n  %551 = phi i64 [%538, %$96] ; # X\n  %552 = phi i64 [%539, %$96] ; # Y\n  %553 = phi i64 [%540, %$96] ; # P\n  %554 = phi i64 [%543, %$96] ; # Sym\n; # (val 3 P)\n  %555 = inttoptr i64 %553 to i64*\n  %556 = getelementptr i64, i64* %555, i32 2\n  %557 = load i64, i64* %556\n  br label %$96\n$98:\n  %558 = phi i64 [%536, %$96] ; # Exe\n  %559 = phi i64 [%537, %$96] ; # Lst\n  %560 = phi i64 [%538, %$96] ; # X\n  %561 = phi i64 [%539, %$96] ; # Y\n  %562 = phi i64 [%540, %$96] ; # P\n  %563 = phi i64 [0, %$96] ; # ->\n; # (cdr Exe)\n  %564 = inttoptr i64 %558 to i64*\n  %565 = getelementptr i64, i64* %564, i32 1\n  %566 = load i64, i64* %565\n; # (run (cdr Exe))\n  br label %$99\n$99:\n  %567 = phi i64 [%566, %$98], [%597, %$108] ; # Prg\n  %568 = inttoptr i64 %567 to i64*\n  %569 = getelementptr i64, i64* %568, i32 1\n  %570 = load i64, i64* %569\n  %571 = load i64, i64* %568\n  %572 = and i64 %570, 15\n  %573 = icmp ne i64 %572, 0\n  br i1 %573, label %$102, label %$100\n$102:\n  %574 = phi i64 [%570, %$99] ; # Prg\n  %575 = phi i64 [%571, %$99] ; # X\n  %576 = and i64 %575, 6\n  %577 = icmp ne i64 %576, 0\n  br i1 %577, label %$105, label %$104\n$105:\n  %578 = phi i64 [%575, %$102] ; # X\n  br label %$103\n$104:\n  %579 = phi i64 [%575, %$102] ; # X\n  %580 = and i64 %579, 8\n  %581 = icmp ne i64 %580, 0\n  br i1 %581, label %$107, label %$106\n$107:\n  %582 = phi i64 [%579, %$104] ; # X\n  %583 = inttoptr i64 %582 to i64*\n  %584 = load i64, i64* %583\n  br label %$103\n$106:\n  %585 = phi i64 [%579, %$104] ; # X\n  %586 = call i64 @evList(i64 %585)\n  br label %$103\n$103:\n  %587 = phi i64 [%578, %$105], [%582, %$107], [%585, %$106] ; # X\n  %588 = phi i64 [%578, %$105], [%584, %$107], [%586, %$106] ; # ->\n  br label %$101\n$100:\n  %589 = phi i64 [%570, %$99] ; # Prg\n  %590 = phi i64 [%571, %$99] ; # X\n  %591 = and i64 %590, 15\n  %592 = icmp eq i64 %591, 0\n  br i1 %592, label %$109, label %$108\n$109:\n  %593 = phi i64 [%589, %$100] ; # Prg\n  %594 = phi i64 [%590, %$100] ; # X\n  %595 = call i64 @evList(i64 %594)\n  %596 = icmp ne i64 %595, 0\n  br label %$108\n$108:\n  %597 = phi i64 [%589, %$100], [%593, %$109] ; # Prg\n  %598 = phi i64 [%590, %$100], [%594, %$109] ; # X\n  %599 = phi i1 [0, %$100], [%596, %$109] ; # ->\n  br label %$99\n$101:\n  %600 = phi i64 [%574, %$103] ; # Prg\n  %601 = phi i64 [%588, %$103] ; # ->\n  br label %$43\n$43:\n  %602 = phi i64 [%486, %$46], [%558, %$101] ; # Exe\n  %603 = phi i64 [%487, %$46], [%559, %$101] ; # Lst\n  %604 = phi i64 [%488, %$46], [%560, %$101] ; # X\n  %605 = phi i64 [%489, %$46], [%561, %$101] ; # Y\n  %606 = phi i64 [%490, %$46], [%562, %$101] ; # P\n  %607 = phi i64 [%491, %$46], [%601, %$101] ; # ->\n; # (val $Bind)\n  %608 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %609 = load i64, i64* %608\n; # (loop (let Sym (val 2 P) (set Sym (val P)) (? (== $At Sym)) (setq...\n  br label %$110\n$110:\n  %610 = phi i64 [%602, %$43], [%622, %$111] ; # Exe\n  %611 = phi i64 [%603, %$43], [%623, %$111] ; # Lst\n  %612 = phi i64 [%604, %$43], [%624, %$111] ; # X\n  %613 = phi i64 [%605, %$43], [%625, %$111] ; # Y\n  %614 = phi i64 [%609, %$43], [%630, %$111] ; # P\n; # (let Sym (val 2 P) (set Sym (val P)) (? (== $At Sym)) (setq P (va...\n; # (val 2 P)\n  %615 = inttoptr i64 %614 to i64*\n  %616 = getelementptr i64, i64* %615, i32 1\n  %617 = load i64, i64* %616\n; # (set Sym (val P))\n; # (val P)\n  %618 = inttoptr i64 %614 to i64*\n  %619 = load i64, i64* %618\n  %620 = inttoptr i64 %617 to i64*\n  store i64 %619, i64* %620\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %621 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %617\n  br i1 %621, label %$112, label %$111\n$111:\n  %622 = phi i64 [%610, %$110] ; # Exe\n  %623 = phi i64 [%611, %$110] ; # Lst\n  %624 = phi i64 [%612, %$110] ; # X\n  %625 = phi i64 [%613, %$110] ; # Y\n  %626 = phi i64 [%614, %$110] ; # P\n  %627 = phi i64 [%617, %$110] ; # Sym\n; # (val 3 P)\n  %628 = inttoptr i64 %626 to i64*\n  %629 = getelementptr i64, i64* %628, i32 2\n  %630 = load i64, i64* %629\n  br label %$110\n$112:\n  %631 = phi i64 [%610, %$110] ; # Exe\n  %632 = phi i64 [%611, %$110] ; # Lst\n  %633 = phi i64 [%612, %$110] ; # X\n  %634 = phi i64 [%613, %$110] ; # Y\n  %635 = phi i64 [%614, %$110] ; # P\n  %636 = phi i64 [0, %$110] ; # ->\n; # (set $Bind (val 3 P))\n; # (val 3 P)\n  %637 = inttoptr i64 %635 to i64*\n  %638 = getelementptr i64, i64* %637, i32 2\n  %639 = load i64, i64* %638\n  %640 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %639, i64* %640\n  ret i64 %607\n}\n\ndefine i64 @evList(i64) align 8 {\n$1:\n; # (let Fun (car Exe) (cond ((num? Fun) Exe) ((sym? Fun) (loop (sigC...\n; # (car Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = load i64, i64* %1\n; # (cond ((num? Fun) Exe) ((sym? Fun) (loop (sigChk Exe) (let V (val...\n; # (num? Fun)\n  %3 = and i64 %2, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$4, label %$3\n$4:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  %6 = phi i64 [%2, %$1] ; # Fun\n  br label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%2, %$1] ; # Fun\n; # (sym? Fun)\n  %9 = and i64 %8, 8\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$6, label %$5\n$6:\n  %11 = phi i64 [%7, %$3] ; # Exe\n  %12 = phi i64 [%8, %$3] ; # Fun\n; # (loop (sigChk Exe) (let V (val Fun) (? (num? V) (subr V Exe Fun))...\n  br label %$7\n$7:\n  %13 = phi i64 [%11, %$6], [%63, %$15] ; # Exe\n  %14 = phi i64 [%12, %$6], [%65, %$15] ; # Fun\n; # (sigChk Exe)\n  %15 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %16 = icmp ne i32 %15, 0\n  br i1 %16, label %$8, label %$9\n$8:\n  %17 = phi i64 [%13, %$7] ; # Exe\n  call void @sighandler(i64 %17)\n  br label %$9\n$9:\n  %18 = phi i64 [%13, %$7], [%17, %$8] ; # Exe\n; # (let V (val Fun) (? (num? V) (subr V Exe Fun)) (? (pair V) (evExp...\n; # (val Fun)\n  %19 = inttoptr i64 %14 to i64*\n  %20 = load i64, i64* %19\n; # (? (num? V) (subr V Exe Fun))\n; # (num? V)\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$12, label %$10\n$12:\n  %23 = phi i64 [%13, %$9] ; # Exe\n  %24 = phi i64 [%14, %$9] ; # Fun\n  %25 = phi i64 [%20, %$9] ; # V\n; # (subr V Exe Fun)\n  %26 = and i64 %25, -3\n  %27 = inttoptr i64 %26 to i64(i64,i64)*\n  %28 = call i64 %27(i64 %23,i64 %24)\n  br label %$11\n$10:\n  %29 = phi i64 [%13, %$9] ; # Exe\n  %30 = phi i64 [%14, %$9] ; # Fun\n  %31 = phi i64 [%20, %$9] ; # V\n; # (? (pair V) (evExpr V Exe))\n; # (pair V)\n  %32 = and i64 %31, 15\n  %33 = icmp eq i64 %32, 0\n  br i1 %33, label %$14, label %$13\n$14:\n  %34 = phi i64 [%29, %$10] ; # Exe\n  %35 = phi i64 [%30, %$10] ; # Fun\n  %36 = phi i64 [%31, %$10] ; # V\n; # (evExpr V Exe)\n  %37 = call i64 @evExpr(i64 %36, i64 %34)\n  br label %$11\n$13:\n  %38 = phi i64 [%29, %$10] ; # Exe\n  %39 = phi i64 [%30, %$10] ; # Fun\n  %40 = phi i64 [%31, %$10] ; # V\n; # (? (== V (val V)) (if (sharedLib Fun) (subr (val Fun) Exe Fun) (u...\n; # (val V)\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n; # (== V (val V))\n  %43 = icmp eq i64 %40, %42\n  br i1 %43, label %$16, label %$15\n$16:\n  %44 = phi i64 [%38, %$13] ; # Exe\n  %45 = phi i64 [%39, %$13] ; # Fun\n  %46 = phi i64 [%40, %$13] ; # V\n; # (if (sharedLib Fun) (subr (val Fun) Exe Fun) (undefined Fun Exe))...\n; # (sharedLib Fun)\n  %47 = call i1 @sharedLib(i64 %45)\n  br i1 %47, label %$17, label %$18\n$17:\n  %48 = phi i64 [%44, %$16] ; # Exe\n  %49 = phi i64 [%45, %$16] ; # Fun\n  %50 = phi i64 [%46, %$16] ; # V\n; # (val Fun)\n  %51 = inttoptr i64 %49 to i64*\n  %52 = load i64, i64* %51\n; # (subr (val Fun) Exe Fun)\n  %53 = and i64 %52, -3\n  %54 = inttoptr i64 %53 to i64(i64,i64)*\n  %55 = call i64 %54(i64 %48,i64 %49)\n  br label %$19\n$18:\n  %56 = phi i64 [%44, %$16] ; # Exe\n  %57 = phi i64 [%45, %$16] ; # Fun\n  %58 = phi i64 [%46, %$16] ; # V\n; # (undefined Fun Exe)\n  call void @undefined(i64 %57, i64 %56)\n  unreachable\n$19:\n  %59 = phi i64 [%48, %$17] ; # Exe\n  %60 = phi i64 [%49, %$17] ; # Fun\n  %61 = phi i64 [%50, %$17] ; # V\n  %62 = phi i64 [%55, %$17] ; # ->\n  br label %$11\n$15:\n  %63 = phi i64 [%38, %$13] ; # Exe\n  %64 = phi i64 [%39, %$13] ; # Fun\n  %65 = phi i64 [%40, %$13] ; # V\n  br label %$7\n$11:\n  %66 = phi i64 [%23, %$12], [%34, %$14], [%59, %$19] ; # Exe\n  %67 = phi i64 [%24, %$12], [%35, %$14], [%60, %$19] ; # Fun\n  %68 = phi i64 [%28, %$12], [%37, %$14], [%62, %$19] ; # ->\n  br label %$2\n$5:\n  %69 = phi i64 [%7, %$3] ; # Exe\n  %70 = phi i64 [%8, %$3] ; # Fun\n; # (stkChk Exe)\n  %71 = load i8*, i8** @$StkLimit\n  %72 = call i8* @llvm.stacksave()\n  %73 = icmp ugt i8* %71, %72\n  br i1 %73, label %$20, label %$21\n$20:\n  %74 = phi i64 [%69, %$5] ; # Exe\n  call void @stkErr(i64 %74)\n  unreachable\n$21:\n  %75 = phi i64 [%69, %$5] ; # Exe\n; # (let F (save (evList Fun)) (loop (sigChk Exe) (? (num? F) (subr F...\n; # (evList Fun)\n  %76 = call i64 @evList(i64 %70)\n; # (save (evList Fun))\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %78 = load i64, i64* %77\n  %79 = alloca i64, i64 2, align 16\n  %80 = ptrtoint i64* %79 to i64\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %76, i64* %81\n  %82 = add i64 %80, 8\n  %83 = inttoptr i64 %82 to i64*\n  store i64 %78, i64* %83\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %84\n; # (loop (sigChk Exe) (? (num? F) (subr F Exe Fun)) (? (pair F) (evE...\n  br label %$22\n$22:\n  %85 = phi i64 [%69, %$21], [%140, %$30] ; # Exe\n  %86 = phi i64 [%70, %$21], [%142, %$30] ; # Fun\n  %87 = phi i64 [%76, %$21], [%143, %$30] ; # F\n; # (sigChk Exe)\n  %88 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %89 = icmp ne i32 %88, 0\n  br i1 %89, label %$23, label %$24\n$23:\n  %90 = phi i64 [%85, %$22] ; # Exe\n  call void @sighandler(i64 %90)\n  br label %$24\n$24:\n  %91 = phi i64 [%85, %$22], [%90, %$23] ; # Exe\n; # (? (num? F) (subr F Exe Fun))\n; # (num? F)\n  %92 = and i64 %87, 6\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$27, label %$25\n$27:\n  %94 = phi i64 [%85, %$24] ; # Exe\n  %95 = phi i64 [%86, %$24] ; # Fun\n  %96 = phi i64 [%87, %$24] ; # F\n; # (subr F Exe Fun)\n  %97 = and i64 %96, -3\n  %98 = inttoptr i64 %97 to i64(i64,i64)*\n  %99 = call i64 %98(i64 %94,i64 %95)\n  br label %$26\n$25:\n  %100 = phi i64 [%85, %$24] ; # Exe\n  %101 = phi i64 [%86, %$24] ; # Fun\n  %102 = phi i64 [%87, %$24] ; # F\n; # (? (pair F) (evExpr F Exe))\n; # (pair F)\n  %103 = and i64 %102, 15\n  %104 = icmp eq i64 %103, 0\n  br i1 %104, label %$29, label %$28\n$29:\n  %105 = phi i64 [%100, %$25] ; # Exe\n  %106 = phi i64 [%101, %$25] ; # Fun\n  %107 = phi i64 [%102, %$25] ; # F\n; # (evExpr F Exe)\n  %108 = call i64 @evExpr(i64 %107, i64 %105)\n  br label %$26\n$28:\n  %109 = phi i64 [%100, %$25] ; # Exe\n  %110 = phi i64 [%101, %$25] ; # Fun\n  %111 = phi i64 [%102, %$25] ; # F\n; # (let V (val F) (? (== V (val V)) (if (sharedLib F) (subr (val F) ...\n; # (val F)\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n; # (? (== V (val V)) (if (sharedLib F) (subr (val F) Exe F) (undefin...\n; # (val V)\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n; # (== V (val V))\n  %116 = icmp eq i64 %113, %115\n  br i1 %116, label %$31, label %$30\n$31:\n  %117 = phi i64 [%109, %$28] ; # Exe\n  %118 = phi i64 [%110, %$28] ; # Fun\n  %119 = phi i64 [%111, %$28] ; # F\n  %120 = phi i64 [%113, %$28] ; # V\n; # (if (sharedLib F) (subr (val F) Exe F) (undefined F Exe))\n; # (sharedLib F)\n  %121 = call i1 @sharedLib(i64 %119)\n  br i1 %121, label %$32, label %$33\n$32:\n  %122 = phi i64 [%117, %$31] ; # Exe\n  %123 = phi i64 [%118, %$31] ; # Fun\n  %124 = phi i64 [%119, %$31] ; # F\n  %125 = phi i64 [%120, %$31] ; # V\n; # (val F)\n  %126 = inttoptr i64 %124 to i64*\n  %127 = load i64, i64* %126\n; # (subr (val F) Exe F)\n  %128 = and i64 %127, -3\n  %129 = inttoptr i64 %128 to i64(i64,i64)*\n  %130 = call i64 %129(i64 %122,i64 %124)\n  br label %$34\n$33:\n  %131 = phi i64 [%117, %$31] ; # Exe\n  %132 = phi i64 [%118, %$31] ; # Fun\n  %133 = phi i64 [%119, %$31] ; # F\n  %134 = phi i64 [%120, %$31] ; # V\n; # (undefined F Exe)\n  call void @undefined(i64 %133, i64 %131)\n  unreachable\n$34:\n  %135 = phi i64 [%122, %$32] ; # Exe\n  %136 = phi i64 [%123, %$32] ; # Fun\n  %137 = phi i64 [%124, %$32] ; # F\n  %138 = phi i64 [%125, %$32] ; # V\n  %139 = phi i64 [%130, %$32] ; # ->\n  br label %$26\n$30:\n  %140 = phi i64 [%109, %$28] ; # Exe\n  %141 = phi i64 [%110, %$28] ; # Fun\n  %142 = phi i64 [%111, %$28] ; # F\n  %143 = phi i64 [%113, %$28] ; # V\n  br label %$22\n$26:\n  %144 = phi i64 [%94, %$27], [%105, %$29], [%135, %$34] ; # Exe\n  %145 = phi i64 [%95, %$27], [%106, %$29], [%136, %$34] ; # Fun\n  %146 = phi i64 [%96, %$27], [%107, %$29], [%137, %$34] ; # F\n  %147 = phi i64 [%99, %$27], [%108, %$29], [%139, %$34] ; # ->\n; # (drop *Safe)\n  %148 = inttoptr i64 %80 to i64*\n  %149 = getelementptr i64, i64* %148, i32 1\n  %150 = load i64, i64* %149\n  %151 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %150, i64* %151\n  br label %$2\n$2:\n  %152 = phi i64 [%5, %$4], [%66, %$11], [%144, %$26] ; # Exe\n  %153 = phi i64 [%6, %$4], [%67, %$11], [%145, %$26] ; # Fun\n  %154 = phi i64 [%5, %$4], [%68, %$11], [%147, %$26] ; # ->\n  ret i64 %154\n}\n\ndefine void @openErr(i64, i64) align 8 {\n$1:\n; # (strErrno)\n  %2 = call i8* @strErrno()\n; # (err Exe X ($ \"Open error: %s\") (strErrno))\n  call void @err(i64 %0, i64 %1, i8* bitcast ([15 x i8]* @$30 to i8*), i8* %2)\n  unreachable\n}\n\ndefine void @closeErr() align 8 {\n$1:\n; # (strErrno)\n  %0 = call i8* @strErrno()\n; # (err 0 0 ($ \"Close error: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([16 x i8]* @$31 to i8*), i8* %0)\n  unreachable\n}\n\ndefine void @pipeErr(i64) align 8 {\n$1:\n; # (strErrno)\n  %1 = call i8* @strErrno()\n; # (err Exe 0 ($ \"Pipe error: %s\") (strErrno))\n  call void @err(i64 %0, i64 0, i8* bitcast ([15 x i8]* @$32 to i8*), i8* %1)\n  unreachable\n}\n\ndefine void @sizeErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Size overflow\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([14 x i8]* @$33 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @eofErr() align 8 {\n$1:\n; # (err 0 0 ($ \"EOF Overrun\") null)\n  call void @err(i64 0, i64 0, i8* bitcast ([12 x i8]* @$34 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @badInput() align 8 {\n$1:\n; # (let S (b8 2) (set S (i8 (val $Chr))) (set 2 S 0) (err 0 0 ($ \"Ba...\n; # (b8 2)\n  %0 = alloca i8, i64 2\n; # (set S (i8 (val $Chr)))\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (i8 (val $Chr))\n  %2 = trunc i32 %1 to i8\n  store i8 %2, i8* %0\n; # (set 2 S 0)\n  %3 = getelementptr i8, i8* %0, i32 1\n  store i8 0, i8* %3\n; # (err 0 0 ($ \"Bad input '%s'\") S)\n  call void @err(i64 0, i64 0, i8* bitcast ([15 x i8]* @$35 to i8*), i8* %0)\n  unreachable\n}\n\ndefine void @badFd(i64, i64) align 8 {\n$1:\n; # (err Exe Fd ($ \"Bad FD\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([7 x i8]* @$36 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @writeErr(i8*) align 8 {\n$1:\n; # (strErrno)\n  %1 = call i8* @strErrno()\n; # (err 0 0 Fmt (strErrno))\n  call void @err(i64 0, i64 0, i8* %0, i8* %1)\n  unreachable\n}\n\ndefine void @selectErr(i64) align 8 {\n$1:\n; # (strErrno)\n  %1 = call i8* @strErrno()\n; # (err Exe 0 ($ \"Select error: %s\") (strErrno))\n  call void @err(i64 %0, i64 0, i8* bitcast ([17 x i8]* @$37 to i8*), i8* %1)\n  unreachable\n}\n\ndefine void @closeOnExec(i64, i32) align 8 {\n$1:\n; # (when (lt0 (fcntlCloExec Fd)) (err Exe 0 ($ \"SETFD %s\") (strErrno...\n; # (fcntlCloExec Fd)\n  %2 = call i32 @fcntlCloExec(i32 %1)\n; # (lt0 (fcntlCloExec Fd))\n  %3 = icmp slt i32 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  %5 = phi i32 [%1, %$1] ; # Fd\n; # (strErrno)\n  %6 = call i8* @strErrno()\n; # (err Exe 0 ($ \"SETFD %s\") (strErrno))\n  call void @err(i64 %4, i64 0, i8* bitcast ([9 x i8]* @$38 to i8*), i8* %6)\n  unreachable\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i32 [%1, %$1] ; # Fd\n  ret void\n}\n\ndefine void @rdLockWait(i32, i64) align 8 {\n$1:\n; # (while (lt0 (rdLock Fd 0 Len YES)) (unless (== (gErrno) EINTR) (l...\n  br label %$2\n$2:\n  %2 = phi i32 [%0, %$1], [%12, %$6] ; # Fd\n  %3 = phi i64 [%1, %$1], [%13, %$6] ; # Len\n; # (rdLock Fd 0 Len YES)\n  %4 = call i32 @rdLock(i32 %2, i64 0, i64 %3, i1 1)\n; # (lt0 (rdLock Fd 0 Len YES))\n  %5 = icmp slt i32 %4, 0\n  br i1 %5, label %$3, label %$4\n$3:\n  %6 = phi i32 [%2, %$2] ; # Fd\n  %7 = phi i64 [%3, %$2] ; # Len\n; # (unless (== (gErrno) EINTR) (lockErr))\n; # (gErrno)\n  %8 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %9 = icmp eq i32 %8, 2\n  br i1 %9, label %$6, label %$5\n$5:\n  %10 = phi i32 [%6, %$3] ; # Fd\n  %11 = phi i64 [%7, %$3] ; # Len\n; # (lockErr)\n  call void @lockErr()\n  unreachable\n$6:\n  %12 = phi i32 [%6, %$3] ; # Fd\n  %13 = phi i64 [%7, %$3] ; # Len\n  br label %$2\n$4:\n  %14 = phi i32 [%2, %$2] ; # Fd\n  %15 = phi i64 [%3, %$2] ; # Len\n  ret void\n}\n\ndefine void @wrLockWait(i32, i64) align 8 {\n$1:\n; # (while (lt0 (wrLock Fd 0 Len YES)) (unless (== (gErrno) EINTR) (l...\n  br label %$2\n$2:\n  %2 = phi i32 [%0, %$1], [%12, %$6] ; # Fd\n  %3 = phi i64 [%1, %$1], [%13, %$6] ; # Len\n; # (wrLock Fd 0 Len YES)\n  %4 = call i32 @wrLock(i32 %2, i64 0, i64 %3, i1 1)\n; # (lt0 (wrLock Fd 0 Len YES))\n  %5 = icmp slt i32 %4, 0\n  br i1 %5, label %$3, label %$4\n$3:\n  %6 = phi i32 [%2, %$2] ; # Fd\n  %7 = phi i64 [%3, %$2] ; # Len\n; # (unless (== (gErrno) EINTR) (lockErr))\n; # (gErrno)\n  %8 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %9 = icmp eq i32 %8, 2\n  br i1 %9, label %$6, label %$5\n$5:\n  %10 = phi i32 [%6, %$3] ; # Fd\n  %11 = phi i64 [%7, %$3] ; # Len\n; # (lockErr)\n  call void @lockErr()\n  unreachable\n$6:\n  %12 = phi i32 [%6, %$3] ; # Fd\n  %13 = phi i64 [%7, %$3] ; # Len\n  br label %$2\n$4:\n  %14 = phi i32 [%2, %$2] ; # Fd\n  %15 = phi i64 [%3, %$2] ; # Len\n  ret void\n}\n\ndefine i8* @initInFile(i32, i8*) align 8 {\n$1:\n; # (let I (val $InFDs) (when (>= Fd I) (let P (set $InFiles (i8** (a...\n; # (val $InFDs)\n  %2 = load i32, i32* @$InFDs\n; # (when (>= Fd I) (let P (set $InFiles (i8** (alloc (i8* (val $InFi...\n; # (>= Fd I)\n  %3 = icmp sge i32 %0, %2\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i32 [%0, %$1] ; # Fd\n  %5 = phi i8* [%1, %$1] ; # Nm\n  %6 = phi i32 [%2, %$1] ; # I\n; # (let P (set $InFiles (i8** (alloc (i8* (val $InFiles)) (* 8 (i64 ...\n; # (set $InFiles (i8** (alloc (i8* (val $InFiles)) (* 8 (i64 (set $I...\n; # (val $InFiles)\n  %7 = load i8**, i8*** @$InFiles\n; # (i8* (val $InFiles))\n  %8 = bitcast i8** %7 to i8*\n; # (set $InFDs (+ Fd 1))\n; # (+ Fd 1)\n  %9 = add i32 %4, 1\n  store i32 %9, i32* @$InFDs\n; # (i64 (set $InFDs (+ Fd 1)))\n  %10 = sext i32 %9 to i64\n; # (* 8 (i64 (set $InFDs (+ Fd 1))))\n  %11 = mul i64 8, %10\n; # (alloc (i8* (val $InFiles)) (* 8 (i64 (set $InFDs (+ Fd 1)))))\n  %12 = call i8* @alloc(i8* %8, i64 %11)\n; # (i8** (alloc (i8* (val $InFiles)) (* 8 (i64 (set $InFDs (+ Fd 1))...\n  %13 = bitcast i8* %12 to i8**\n  store i8** %13, i8*** @$InFiles\n; # (loop (set (ofs P I) null) (? (== I Fd)) (inc 'I))\n  br label %$4\n$4:\n  %14 = phi i32 [%4, %$2], [%20, %$5] ; # Fd\n  %15 = phi i8* [%5, %$2], [%21, %$5] ; # Nm\n  %16 = phi i32 [%6, %$2], [%24, %$5] ; # I\n  %17 = phi i8** [%13, %$2], [%23, %$5] ; # P\n; # (set (ofs P I) null)\n; # (ofs P I)\n  %18 = getelementptr i8*, i8** %17, i32 %16\n  store i8* null, i8** %18\n; # (? (== I Fd))\n; # (== I Fd)\n  %19 = icmp eq i32 %16, %14\n  br i1 %19, label %$6, label %$5\n$5:\n  %20 = phi i32 [%14, %$4] ; # Fd\n  %21 = phi i8* [%15, %$4] ; # Nm\n  %22 = phi i32 [%16, %$4] ; # I\n  %23 = phi i8** [%17, %$4] ; # P\n; # (inc 'I)\n  %24 = add i32 %22, 1\n  br label %$4\n$6:\n  %25 = phi i32 [%14, %$4] ; # Fd\n  %26 = phi i8* [%15, %$4] ; # Nm\n  %27 = phi i32 [%16, %$4] ; # I\n  %28 = phi i8** [%17, %$4] ; # P\n  %29 = phi i64 [0, %$4] ; # ->\n  br label %$3\n$3:\n  %30 = phi i32 [%0, %$1], [%25, %$6] ; # Fd\n  %31 = phi i8* [%1, %$1], [%26, %$6] ; # Nm\n  %32 = phi i32 [%2, %$1], [%27, %$6] ; # I\n; # (let In: (inFile (let P (ofs (val $InFiles) Fd) (if (val P) @ (se...\n; # (let P (ofs (val $InFiles) Fd) (if (val P) @ (set P (alloc null (...\n; # (val $InFiles)\n  %33 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %34 = getelementptr i8*, i8** %33, i32 %30\n; # (if (val P) @ (set P (alloc null (inFile T))))\n; # (val P)\n  %35 = load i8*, i8** %34\n  %36 = icmp ne i8* %35, null\n  br i1 %36, label %$7, label %$8\n$7:\n  %37 = phi i32 [%30, %$3] ; # Fd\n  %38 = phi i8* [%31, %$3] ; # Nm\n  %39 = phi i8** [%34, %$3] ; # P\n  br label %$9\n$8:\n  %40 = phi i32 [%30, %$3] ; # Fd\n  %41 = phi i8* [%31, %$3] ; # Nm\n  %42 = phi i8** [%34, %$3] ; # P\n; # (set P (alloc null (inFile T)))\n; # (alloc null (inFile T))\n  %43 = call i8* @alloc(i8* null, i64 4129)\n  store i8* %43, i8** %42\n  br label %$9\n$9:\n  %44 = phi i32 [%37, %$7], [%40, %$8] ; # Fd\n  %45 = phi i8* [%38, %$7], [%41, %$8] ; # Nm\n  %46 = phi i8** [%39, %$7], [%42, %$8] ; # P\n  %47 = phi i8* [%35, %$7], [%43, %$8] ; # ->\n; # (In: name Nm)\n  %48 = bitcast i8* %47 to i8**\n  store i8* %45, i8** %48\n; # (In: tty (n0 (isatty (In: fd Fd))))\n  %49 = getelementptr i8, i8* %47, i32 4128\n  %50 = bitcast i8* %49 to i1*\n  %51 = getelementptr i8, i8* %47, i32 8\n  %52 = bitcast i8* %51 to i32*\n  store i32 %44, i32* %52\n  %53 = call i32 @isatty(i32 %44)\n  %54 = icmp ne i32 %53, 0\n  store i1 %54, i1* %50\n; # (In: chr 0)\n  %55 = getelementptr i8, i8* %47, i32 12\n  %56 = bitcast i8* %55 to i32*\n  store i32 0, i32* %56\n; # (In: line (In: src 1))\n  %57 = getelementptr i8, i8* %47, i32 16\n  %58 = bitcast i8* %57 to i32*\n  %59 = getelementptr i8, i8* %47, i32 20\n  %60 = bitcast i8* %59 to i32*\n  store i32 1, i32* %60\n  store i32 1, i32* %58\n; # (In: ix (In: cnt 0))\n  %61 = getelementptr i8, i8* %47, i32 24\n  %62 = bitcast i8* %61 to i32*\n  %63 = getelementptr i8, i8* %47, i32 28\n  %64 = bitcast i8* %63 to i32*\n  store i32 0, i32* %64\n  store i32 0, i32* %62\n; # (In:)\n  ret i8* %47\n}\n\ndefine i8* @initOutFile(i32) align 8 {\n$1:\n; # (let I (val $OutFDs) (when (>= Fd I) (let P (set $OutFiles (i8** ...\n; # (val $OutFDs)\n  %1 = load i32, i32* @$OutFDs\n; # (when (>= Fd I) (let P (set $OutFiles (i8** (alloc (i8* (val $Out...\n; # (>= Fd I)\n  %2 = icmp sge i32 %0, %1\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # Fd\n  %4 = phi i32 [%1, %$1] ; # I\n; # (let P (set $OutFiles (i8** (alloc (i8* (val $OutFiles)) (* 8 (i6...\n; # (set $OutFiles (i8** (alloc (i8* (val $OutFiles)) (* 8 (i64 (set ...\n; # (val $OutFiles)\n  %5 = load i8**, i8*** @$OutFiles\n; # (i8* (val $OutFiles))\n  %6 = bitcast i8** %5 to i8*\n; # (set $OutFDs (+ Fd 1))\n; # (+ Fd 1)\n  %7 = add i32 %3, 1\n  store i32 %7, i32* @$OutFDs\n; # (i64 (set $OutFDs (+ Fd 1)))\n  %8 = sext i32 %7 to i64\n; # (* 8 (i64 (set $OutFDs (+ Fd 1))))\n  %9 = mul i64 8, %8\n; # (alloc (i8* (val $OutFiles)) (* 8 (i64 (set $OutFDs (+ Fd 1)))))\n  %10 = call i8* @alloc(i8* %6, i64 %9)\n; # (i8** (alloc (i8* (val $OutFiles)) (* 8 (i64 (set $OutFDs (+ Fd 1...\n  %11 = bitcast i8* %10 to i8**\n  store i8** %11, i8*** @$OutFiles\n; # (loop (set (ofs P I) null) (? (== I Fd)) (inc 'I))\n  br label %$4\n$4:\n  %12 = phi i32 [%3, %$2], [%17, %$5] ; # Fd\n  %13 = phi i32 [%4, %$2], [%20, %$5] ; # I\n  %14 = phi i8** [%11, %$2], [%19, %$5] ; # P\n; # (set (ofs P I) null)\n; # (ofs P I)\n  %15 = getelementptr i8*, i8** %14, i32 %13\n  store i8* null, i8** %15\n; # (? (== I Fd))\n; # (== I Fd)\n  %16 = icmp eq i32 %13, %12\n  br i1 %16, label %$6, label %$5\n$5:\n  %17 = phi i32 [%12, %$4] ; # Fd\n  %18 = phi i32 [%13, %$4] ; # I\n  %19 = phi i8** [%14, %$4] ; # P\n; # (inc 'I)\n  %20 = add i32 %18, 1\n  br label %$4\n$6:\n  %21 = phi i32 [%12, %$4] ; # Fd\n  %22 = phi i32 [%13, %$4] ; # I\n  %23 = phi i8** [%14, %$4] ; # P\n  %24 = phi i64 [0, %$4] ; # ->\n  br label %$3\n$3:\n  %25 = phi i32 [%0, %$1], [%21, %$6] ; # Fd\n  %26 = phi i32 [%1, %$1], [%22, %$6] ; # I\n; # (let Out: (outFile (let P (ofs (val $OutFiles) Fd) (if (val P) @ ...\n; # (let P (ofs (val $OutFiles) Fd) (if (val P) @ (set P (alloc null ...\n; # (val $OutFiles)\n  %27 = load i8**, i8*** @$OutFiles\n; # (ofs (val $OutFiles) Fd)\n  %28 = getelementptr i8*, i8** %27, i32 %25\n; # (if (val P) @ (set P (alloc null (outFile T))))\n; # (val P)\n  %29 = load i8*, i8** %28\n  %30 = icmp ne i8* %29, null\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i32 [%25, %$3] ; # Fd\n  %32 = phi i8** [%28, %$3] ; # P\n  br label %$9\n$8:\n  %33 = phi i32 [%25, %$3] ; # Fd\n  %34 = phi i8** [%28, %$3] ; # P\n; # (set P (alloc null (outFile T)))\n; # (alloc null (outFile T))\n  %35 = call i8* @alloc(i8* null, i64 4105)\n  store i8* %35, i8** %34\n  br label %$9\n$9:\n  %36 = phi i32 [%31, %$7], [%33, %$8] ; # Fd\n  %37 = phi i8** [%32, %$7], [%34, %$8] ; # P\n  %38 = phi i8* [%29, %$7], [%35, %$8] ; # ->\n; # (Out: tty (n0 (isatty (Out: fd Fd))))\n  %39 = getelementptr i8, i8* %38, i32 4104\n  %40 = bitcast i8* %39 to i1*\n  %41 = bitcast i8* %38 to i32*\n  store i32 %36, i32* %41\n  %42 = call i32 @isatty(i32 %36)\n  %43 = icmp ne i32 %42, 0\n  store i1 %43, i1* %40\n; # (Out: ix 0)\n  %44 = getelementptr i8, i8* %38, i32 4\n  %45 = bitcast i8* %44 to i32*\n  store i32 0, i32* %45\n; # (Out:)\n  ret i8* %38\n}\n\ndefine void @closeInFile(i32) align 8 {\n$1:\n; # (when (> (val $InFDs) Fd) (let P (ofs (val $InFiles) Fd) (when (v...\n; # (val $InFDs)\n  %1 = load i32, i32* @$InFDs\n; # (> (val $InFDs) Fd)\n  %2 = icmp sgt i32 %1, %0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # Fd\n; # (let P (ofs (val $InFiles) Fd) (when (val P) (let In: (inFile @) ...\n; # (val $InFiles)\n  %4 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %5 = getelementptr i8*, i8** %4, i32 %3\n; # (when (val P) (let In: (inFile @) (free (In: name)) (In: name nul...\n; # (val P)\n  %6 = load i8*, i8** %5\n  %7 = icmp ne i8* %6, null\n  br i1 %7, label %$4, label %$5\n$4:\n  %8 = phi i32 [%3, %$2] ; # Fd\n  %9 = phi i8** [%5, %$2] ; # P\n; # (let In: (inFile @) (free (In: name)) (In: name null) (In: fd -1)...\n; # (In: name)\n  %10 = bitcast i8* %6 to i8**\n  %11 = load i8*, i8** %10\n; # (free (In: name))\n  call void @free(i8* %11)\n; # (In: name null)\n  %12 = bitcast i8* %6 to i8**\n  store i8* null, i8** %12\n; # (In: fd -1)\n  %13 = getelementptr i8, i8* %6, i32 8\n  %14 = bitcast i8* %13 to i32*\n  store i32 -1, i32* %14\n  br label %$5\n$5:\n  %15 = phi i32 [%3, %$2], [%8, %$4] ; # Fd\n  %16 = phi i8** [%5, %$2], [%9, %$4] ; # P\n  br label %$3\n$3:\n  %17 = phi i32 [%0, %$1], [%15, %$5] ; # Fd\n  ret void\n}\n\ndefine void @closeOutFile(i32) align 8 {\n$1:\n; # (when (> (val $OutFDs) Fd) (let P (ofs (val $OutFiles) Fd) (when ...\n; # (val $OutFDs)\n  %1 = load i32, i32* @$OutFDs\n; # (> (val $OutFDs) Fd)\n  %2 = icmp sgt i32 %1, %0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # Fd\n; # (let P (ofs (val $OutFiles) Fd) (when (val P) ((outFile @) fd -1)...\n; # (val $OutFiles)\n  %4 = load i8**, i8*** @$OutFiles\n; # (ofs (val $OutFiles) Fd)\n  %5 = getelementptr i8*, i8** %4, i32 %3\n; # (when (val P) ((outFile @) fd -1))\n; # (val P)\n  %6 = load i8*, i8** %5\n  %7 = icmp ne i8* %6, null\n  br i1 %7, label %$4, label %$5\n$4:\n  %8 = phi i32 [%3, %$2] ; # Fd\n  %9 = phi i8** [%5, %$2] ; # P\n; # ((outFile @) fd -1)\n  %10 = bitcast i8* %6 to i32*\n  store i32 -1, i32* %10\n  br label %$5\n$5:\n  %11 = phi i32 [%3, %$2], [%8, %$4] ; # Fd\n  %12 = phi i8** [%5, %$2], [%9, %$4] ; # P\n  br label %$3\n$3:\n  %13 = phi i32 [%0, %$1], [%11, %$5] ; # Fd\n  ret void\n}\n\ndefine i32 @slow(i8*) align 8 {\n$1:\n; # (let In: (inFile In) (In: ix 0) (loop (? (ge0 (i32 (read (In: fd)...\n; # (In: ix 0)\n  %1 = getelementptr i8, i8* %0, i32 24\n  %2 = bitcast i8* %1 to i32*\n  store i32 0, i32* %2\n; # (loop (? (ge0 (i32 (read (In: fd) (In: (buf)) BUFSIZ))) (In: cnt ...\n  br label %$2\n$2:\n  %3 = phi i8* [%0, %$1], [%20, %$9] ; # In\n; # (? (ge0 (i32 (read (In: fd) (In: (buf)) BUFSIZ))) (In: cnt @))\n; # (In: fd)\n  %4 = getelementptr i8, i8* %0, i32 8\n  %5 = bitcast i8* %4 to i32*\n  %6 = load i32, i32* %5\n; # (In: (buf))\n  %7 = getelementptr i8, i8* %0, i32 32\n; # (read (In: fd) (In: (buf)) BUFSIZ)\n  %8 = call i64 @read(i32 %6, i8* %7, i64 4096)\n; # (i32 (read (In: fd) (In: (buf)) BUFSIZ))\n  %9 = trunc i64 %8 to i32\n; # (ge0 (i32 (read (In: fd) (In: (buf)) BUFSIZ)))\n  %10 = icmp sge i32 %9, 0\n  br i1 %10, label %$5, label %$3\n$5:\n  %11 = phi i8* [%3, %$2] ; # In\n; # (In: cnt @)\n  %12 = getelementptr i8, i8* %0, i32 28\n  %13 = bitcast i8* %12 to i32*\n  store i32 %9, i32* %13\n  br label %$4\n$3:\n  %14 = phi i8* [%3, %$2] ; # In\n; # (? (<> (gErrno) EINTR) (In: cnt 0))\n; # (gErrno)\n  %15 = call i32 @gErrno()\n; # (<> (gErrno) EINTR)\n  %16 = icmp ne i32 %15, 2\n  br i1 %16, label %$7, label %$6\n$7:\n  %17 = phi i8* [%14, %$3] ; # In\n; # (In: cnt 0)\n  %18 = getelementptr i8, i8* %0, i32 28\n  %19 = bitcast i8* %18 to i32*\n  store i32 0, i32* %19\n  br label %$4\n$6:\n  %20 = phi i8* [%14, %$3] ; # In\n; # (sigChk 0)\n  %21 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %22 = icmp ne i32 %21, 0\n  br i1 %22, label %$8, label %$9\n$8:\n  %23 = phi i64 [0, %$6] ; # Exe\n  call void @sighandler(i64 %23)\n  br label %$9\n$9:\n  %24 = phi i64 [0, %$6], [%23, %$8] ; # Exe\n  br label %$2\n$4:\n  %25 = phi i8* [%11, %$5], [%17, %$7] ; # In\n  %26 = phi i32 [%9, %$5], [0, %$7] ; # ->\n  ret i32 %26\n}\n\ndefine i32 @slowNb(i8*) align 8 {\n$1:\n; # (let In: (inFile In) (loop (let (Flg (nonBlocking (In: fd)) N (i3...\n; # (loop (let (Flg (nonBlocking (In: fd)) N (i32 (read (In: fd) (In:...\n  br label %$2\n$2:\n  %1 = phi i8* [%0, %$1], [%47, %$13] ; # In\n; # (let (Flg (nonBlocking (In: fd)) N (i32 (read (In: fd) (In: (buf)...\n; # (In: fd)\n  %2 = getelementptr i8, i8* %0, i32 8\n  %3 = bitcast i8* %2 to i32*\n  %4 = load i32, i32* %3\n; # (nonBlocking (In: fd))\n  %5 = call i32 @nonBlocking(i32 %4)\n; # (In: fd)\n  %6 = getelementptr i8, i8* %0, i32 8\n  %7 = bitcast i8* %6 to i32*\n  %8 = load i32, i32* %7\n; # (In: (buf))\n  %9 = getelementptr i8, i8* %0, i32 32\n; # (read (In: fd) (In: (buf)) BUFSIZ)\n  %10 = call i64 @read(i32 %8, i8* %9, i64 4096)\n; # (i32 (read (In: fd) (In: (buf)) BUFSIZ))\n  %11 = trunc i64 %10 to i32\n; # (In: fd)\n  %12 = getelementptr i8, i8* %0, i32 8\n  %13 = bitcast i8* %12 to i32*\n  %14 = load i32, i32* %13\n; # (fcntlSetFl (In: fd) Flg)\n  call void @fcntlSetFl(i32 %14, i32 %5)\n; # (? (gt0 N) (In: ix 0) (In: cnt N))\n; # (gt0 N)\n  %15 = icmp sgt i32 %11, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i8* [%1, %$2] ; # In\n  %17 = phi i32 [%5, %$2] ; # Flg\n  %18 = phi i32 [%11, %$2] ; # N\n; # (In: ix 0)\n  %19 = getelementptr i8, i8* %0, i32 24\n  %20 = bitcast i8* %19 to i32*\n  store i32 0, i32* %20\n; # (In: cnt N)\n  %21 = getelementptr i8, i8* %0, i32 28\n  %22 = bitcast i8* %21 to i32*\n  store i32 %18, i32* %22\n  br label %$4\n$3:\n  %23 = phi i8* [%1, %$2] ; # In\n  %24 = phi i32 [%5, %$2] ; # Flg\n  %25 = phi i32 [%11, %$2] ; # N\n; # (? (=0 N) (In: ix (In: cnt -1)) 0)\n; # (=0 N)\n  %26 = icmp eq i32 %25, 0\n  br i1 %26, label %$7, label %$6\n$7:\n  %27 = phi i8* [%23, %$3] ; # In\n  %28 = phi i32 [%24, %$3] ; # Flg\n  %29 = phi i32 [%25, %$3] ; # N\n; # (In: ix (In: cnt -1))\n  %30 = getelementptr i8, i8* %0, i32 24\n  %31 = bitcast i8* %30 to i32*\n  %32 = getelementptr i8, i8* %0, i32 28\n  %33 = bitcast i8* %32 to i32*\n  store i32 -1, i32* %33\n  store i32 -1, i32* %31\n  br label %$4\n$6:\n  %34 = phi i8* [%23, %$3] ; # In\n  %35 = phi i32 [%24, %$3] ; # Flg\n  %36 = phi i32 [%25, %$3] ; # N\n; # (? (== (gErrno) EAGAIN) -1)\n; # (gErrno)\n  %37 = call i32 @gErrno()\n; # (== (gErrno) EAGAIN)\n  %38 = icmp eq i32 %37, 4\n  br i1 %38, label %$9, label %$8\n$9:\n  %39 = phi i8* [%34, %$6] ; # In\n  br label %$4\n$8:\n  %40 = phi i8* [%34, %$6] ; # In\n; # (? (<> @ EINTR) (In: ix (In: cnt 0)))\n; # (<> @ EINTR)\n  %41 = icmp ne i32 %37, 2\n  br i1 %41, label %$11, label %$10\n$11:\n  %42 = phi i8* [%40, %$8] ; # In\n; # (In: ix (In: cnt 0))\n  %43 = getelementptr i8, i8* %0, i32 24\n  %44 = bitcast i8* %43 to i32*\n  %45 = getelementptr i8, i8* %0, i32 28\n  %46 = bitcast i8* %45 to i32*\n  store i32 0, i32* %46\n  store i32 0, i32* %44\n  br label %$4\n$10:\n  %47 = phi i8* [%40, %$8] ; # In\n; # (sigChk 0)\n  %48 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %49 = icmp ne i32 %48, 0\n  br i1 %49, label %$12, label %$13\n$12:\n  %50 = phi i64 [0, %$10] ; # Exe\n  call void @sighandler(i64 %50)\n  br label %$13\n$13:\n  %51 = phi i64 [0, %$10], [%50, %$12] ; # Exe\n  br label %$2\n$4:\n  %52 = phi i8* [%16, %$5], [%27, %$7], [%39, %$9], [%42, %$11] ; # In\n  %53 = phi i32 [%18, %$5], [0, %$7], [-1, %$9], [0, %$11] ; # ->\n  ret i32 %53\n}\n\ndefine i1 @rdBytes(i32, i8*, i32) align 8 {\n$1:\n; # (loop (loop (? (gt0 (i32 (read Fd P (i64 Cnt)))) (inc 'P @) (dec ...\n  br label %$2\n$2:\n  %3 = phi i32 [%0, %$1], [%49, %$13] ; # Fd\n  %4 = phi i8* [%1, %$1], [%50, %$13] ; # P\n  %5 = phi i32 [%2, %$1], [%51, %$13] ; # Cnt\n; # (loop (? (gt0 (i32 (read Fd P (i64 Cnt)))) (inc 'P @) (dec 'Cnt @...\n  br label %$3\n$3:\n  %6 = phi i32 [%3, %$2], [%34, %$12] ; # Fd\n  %7 = phi i8* [%4, %$2], [%35, %$12] ; # P\n  %8 = phi i32 [%5, %$2], [%36, %$12] ; # Cnt\n; # (? (gt0 (i32 (read Fd P (i64 Cnt)))) (inc 'P @) (dec 'Cnt @))\n; # (i64 Cnt)\n  %9 = sext i32 %8 to i64\n; # (read Fd P (i64 Cnt))\n  %10 = call i64 @read(i32 %6, i8* %7, i64 %9)\n; # (i32 (read Fd P (i64 Cnt)))\n  %11 = trunc i64 %10 to i32\n; # (gt0 (i32 (read Fd P (i64 Cnt))))\n  %12 = icmp sgt i32 %11, 0\n  br i1 %12, label %$6, label %$4\n$6:\n  %13 = phi i32 [%6, %$3] ; # Fd\n  %14 = phi i8* [%7, %$3] ; # P\n  %15 = phi i32 [%8, %$3] ; # Cnt\n; # (inc 'P @)\n  %16 = getelementptr i8, i8* %14, i32 %11\n; # (dec 'Cnt @)\n  %17 = sub i32 %15, %11\n  br label %$5\n$4:\n  %18 = phi i32 [%6, %$3] ; # Fd\n  %19 = phi i8* [%7, %$3] ; # P\n  %20 = phi i32 [%8, %$3] ; # Cnt\n; # (unless (and @ (== (gErrno) EINTR)) (ret NO))\n; # (and @ (== (gErrno) EINTR))\n  %21 = icmp ne i32 %11, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i32 [%18, %$4] ; # Fd\n  %23 = phi i8* [%19, %$4] ; # P\n  %24 = phi i32 [%20, %$4] ; # Cnt\n; # (gErrno)\n  %25 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %26 = icmp eq i32 %25, 2\n  br label %$7\n$7:\n  %27 = phi i32 [%18, %$4], [%22, %$8] ; # Fd\n  %28 = phi i8* [%19, %$4], [%23, %$8] ; # P\n  %29 = phi i32 [%20, %$4], [%24, %$8] ; # Cnt\n  %30 = phi i1 [0, %$4], [%26, %$8] ; # ->\n  br i1 %30, label %$10, label %$9\n$9:\n  %31 = phi i32 [%27, %$7] ; # Fd\n  %32 = phi i8* [%28, %$7] ; # P\n  %33 = phi i32 [%29, %$7] ; # Cnt\n; # (ret NO)\n  ret i1 0\n$10:\n  %34 = phi i32 [%27, %$7] ; # Fd\n  %35 = phi i8* [%28, %$7] ; # P\n  %36 = phi i32 [%29, %$7] ; # Cnt\n; # (sigChk 0)\n  %37 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %38 = icmp ne i32 %37, 0\n  br i1 %38, label %$11, label %$12\n$11:\n  %39 = phi i64 [0, %$10] ; # Exe\n  call void @sighandler(i64 %39)\n  br label %$12\n$12:\n  %40 = phi i64 [0, %$10], [%39, %$11] ; # Exe\n  br label %$3\n$5:\n  %41 = phi i32 [%13, %$6] ; # Fd\n  %42 = phi i8* [%16, %$6] ; # P\n  %43 = phi i32 [%17, %$6] ; # Cnt\n  %44 = phi i32 [%17, %$6] ; # ->\n; # (? (=0 Cnt) YES)\n; # (=0 Cnt)\n  %45 = icmp eq i32 %43, 0\n  br i1 %45, label %$15, label %$13\n$15:\n  %46 = phi i32 [%41, %$5] ; # Fd\n  %47 = phi i8* [%42, %$5] ; # P\n  %48 = phi i32 [%43, %$5] ; # Cnt\n  br label %$14\n$13:\n  %49 = phi i32 [%41, %$5] ; # Fd\n  %50 = phi i8* [%42, %$5] ; # P\n  %51 = phi i32 [%43, %$5] ; # Cnt\n  br label %$2\n$14:\n  %52 = phi i32 [%46, %$15] ; # Fd\n  %53 = phi i8* [%47, %$15] ; # P\n  %54 = phi i32 [%48, %$15] ; # Cnt\n  %55 = phi i1 [1, %$15] ; # ->\n  ret i1 %55\n}\n\ndefine i64 @rdBytesNb(i32, i8*, i32) align 8 {\n$1:\n; # (loop (let (Flg (nonBlocking Fd) N (i32 (read Fd P (i64 Cnt)))) (...\n  br label %$2\n$2:\n  %3 = phi i32 [%0, %$1], [%109, %$25] ; # Fd\n  %4 = phi i8* [%1, %$1], [%110, %$25] ; # P\n  %5 = phi i32 [%2, %$1], [%111, %$25] ; # Cnt\n; # (let (Flg (nonBlocking Fd) N (i32 (read Fd P (i64 Cnt)))) (fcntlS...\n; # (nonBlocking Fd)\n  %6 = call i32 @nonBlocking(i32 %3)\n; # (i64 Cnt)\n  %7 = sext i32 %5 to i64\n; # (read Fd P (i64 Cnt))\n  %8 = call i64 @read(i32 %3, i8* %4, i64 %7)\n; # (i32 (read Fd P (i64 Cnt)))\n  %9 = trunc i64 %8 to i32\n; # (fcntlSetFl Fd Flg)\n  call void @fcntlSetFl(i32 %3, i32 %6)\n; # (when (gt0 N) (loop (unless (dec 'Cnt N) (ret 1)) (inc 'P N) (whi...\n; # (gt0 N)\n  %10 = icmp sgt i32 %9, 0\n  br i1 %10, label %$3, label %$4\n$3:\n  %11 = phi i32 [%3, %$2] ; # Fd\n  %12 = phi i8* [%4, %$2] ; # P\n  %13 = phi i32 [%5, %$2] ; # Cnt\n  %14 = phi i32 [%6, %$2] ; # Flg\n  %15 = phi i32 [%9, %$2] ; # N\n; # (loop (unless (dec 'Cnt N) (ret 1)) (inc 'P N) (while (le0 (setq ...\n  br label %$5\n$5:\n  %16 = phi i32 [%11, %$3], [%76, %$10] ; # Fd\n  %17 = phi i8* [%12, %$3], [%77, %$10] ; # P\n  %18 = phi i32 [%13, %$3], [%78, %$10] ; # Cnt\n  %19 = phi i32 [%14, %$3], [%79, %$10] ; # Flg\n  %20 = phi i32 [%15, %$3], [%80, %$10] ; # N\n; # (unless (dec 'Cnt N) (ret 1))\n; # (dec 'Cnt N)\n  %21 = sub i32 %18, %20\n  %22 = icmp ne i32 %21, 0\n  br i1 %22, label %$7, label %$6\n$6:\n  %23 = phi i32 [%16, %$5] ; # Fd\n  %24 = phi i8* [%17, %$5] ; # P\n  %25 = phi i32 [%21, %$5] ; # Cnt\n  %26 = phi i32 [%19, %$5] ; # Flg\n  %27 = phi i32 [%20, %$5] ; # N\n; # (ret 1)\n  ret i64 1\n$7:\n  %28 = phi i32 [%16, %$5] ; # Fd\n  %29 = phi i8* [%17, %$5] ; # P\n  %30 = phi i32 [%21, %$5] ; # Cnt\n  %31 = phi i32 [%19, %$5] ; # Flg\n  %32 = phi i32 [%20, %$5] ; # N\n; # (inc 'P N)\n  %33 = getelementptr i8, i8* %29, i32 %32\n; # (while (le0 (setq N (i32 (read Fd P (i64 Cnt))))) (unless (and N ...\n  br label %$8\n$8:\n  %34 = phi i32 [%28, %$7], [%67, %$16] ; # Fd\n  %35 = phi i8* [%33, %$7], [%68, %$16] ; # P\n  %36 = phi i32 [%30, %$7], [%69, %$16] ; # Cnt\n  %37 = phi i32 [%31, %$7], [%70, %$16] ; # Flg\n  %38 = phi i32 [%32, %$7], [%71, %$16] ; # N\n; # (i64 Cnt)\n  %39 = sext i32 %36 to i64\n; # (read Fd P (i64 Cnt))\n  %40 = call i64 @read(i32 %34, i8* %35, i64 %39)\n; # (i32 (read Fd P (i64 Cnt)))\n  %41 = trunc i64 %40 to i32\n; # (le0 (setq N (i32 (read Fd P (i64 Cnt)))))\n  %42 = icmp sle i32 %41, 0\n  br i1 %42, label %$9, label %$10\n$9:\n  %43 = phi i32 [%34, %$8] ; # Fd\n  %44 = phi i8* [%35, %$8] ; # P\n  %45 = phi i32 [%36, %$8] ; # Cnt\n  %46 = phi i32 [%37, %$8] ; # Flg\n  %47 = phi i32 [%41, %$8] ; # N\n; # (unless (and N (== (gErrno) EINTR)) (ret 0))\n; # (and N (== (gErrno) EINTR))\n  %48 = icmp ne i32 %47, 0\n  br i1 %48, label %$12, label %$11\n$12:\n  %49 = phi i32 [%43, %$9] ; # Fd\n  %50 = phi i8* [%44, %$9] ; # P\n  %51 = phi i32 [%45, %$9] ; # Cnt\n  %52 = phi i32 [%46, %$9] ; # Flg\n  %53 = phi i32 [%47, %$9] ; # N\n; # (gErrno)\n  %54 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %55 = icmp eq i32 %54, 2\n  br label %$11\n$11:\n  %56 = phi i32 [%43, %$9], [%49, %$12] ; # Fd\n  %57 = phi i8* [%44, %$9], [%50, %$12] ; # P\n  %58 = phi i32 [%45, %$9], [%51, %$12] ; # Cnt\n  %59 = phi i32 [%46, %$9], [%52, %$12] ; # Flg\n  %60 = phi i32 [%47, %$9], [%53, %$12] ; # N\n  %61 = phi i1 [0, %$9], [%55, %$12] ; # ->\n  br i1 %61, label %$14, label %$13\n$13:\n  %62 = phi i32 [%56, %$11] ; # Fd\n  %63 = phi i8* [%57, %$11] ; # P\n  %64 = phi i32 [%58, %$11] ; # Cnt\n  %65 = phi i32 [%59, %$11] ; # Flg\n  %66 = phi i32 [%60, %$11] ; # N\n; # (ret 0)\n  ret i64 0\n$14:\n  %67 = phi i32 [%56, %$11] ; # Fd\n  %68 = phi i8* [%57, %$11] ; # P\n  %69 = phi i32 [%58, %$11] ; # Cnt\n  %70 = phi i32 [%59, %$11] ; # Flg\n  %71 = phi i32 [%60, %$11] ; # N\n; # (sigChk 0)\n  %72 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %73 = icmp ne i32 %72, 0\n  br i1 %73, label %$15, label %$16\n$15:\n  %74 = phi i64 [0, %$14] ; # Exe\n  call void @sighandler(i64 %74)\n  br label %$16\n$16:\n  %75 = phi i64 [0, %$14], [%74, %$15] ; # Exe\n  br label %$8\n$10:\n  %76 = phi i32 [%34, %$8] ; # Fd\n  %77 = phi i8* [%35, %$8] ; # P\n  %78 = phi i32 [%36, %$8] ; # Cnt\n  %79 = phi i32 [%37, %$8] ; # Flg\n  %80 = phi i32 [%41, %$8] ; # N\n  br label %$5\n$4:\n  %81 = phi i32 [%3, %$2] ; # Fd\n  %82 = phi i8* [%4, %$2] ; # P\n  %83 = phi i32 [%5, %$2] ; # Cnt\n  %84 = phi i32 [%6, %$2] ; # Flg\n  %85 = phi i32 [%9, %$2] ; # N\n; # (? (=0 N) 0)\n; # (=0 N)\n  %86 = icmp eq i32 %85, 0\n  br i1 %86, label %$19, label %$17\n$19:\n  %87 = phi i32 [%81, %$4] ; # Fd\n  %88 = phi i8* [%82, %$4] ; # P\n  %89 = phi i32 [%83, %$4] ; # Cnt\n  %90 = phi i32 [%84, %$4] ; # Flg\n  %91 = phi i32 [%85, %$4] ; # N\n  br label %$18\n$17:\n  %92 = phi i32 [%81, %$4] ; # Fd\n  %93 = phi i8* [%82, %$4] ; # P\n  %94 = phi i32 [%83, %$4] ; # Cnt\n  %95 = phi i32 [%84, %$4] ; # Flg\n  %96 = phi i32 [%85, %$4] ; # N\n; # (? (== (gErrno) EAGAIN) -1)\n; # (gErrno)\n  %97 = call i32 @gErrno()\n; # (== (gErrno) EAGAIN)\n  %98 = icmp eq i32 %97, 4\n  br i1 %98, label %$21, label %$20\n$21:\n  %99 = phi i32 [%92, %$17] ; # Fd\n  %100 = phi i8* [%93, %$17] ; # P\n  %101 = phi i32 [%94, %$17] ; # Cnt\n  br label %$18\n$20:\n  %102 = phi i32 [%92, %$17] ; # Fd\n  %103 = phi i8* [%93, %$17] ; # P\n  %104 = phi i32 [%94, %$17] ; # Cnt\n; # (? (<> @ EINTR) 0)\n; # (<> @ EINTR)\n  %105 = icmp ne i32 %97, 2\n  br i1 %105, label %$23, label %$22\n$23:\n  %106 = phi i32 [%102, %$20] ; # Fd\n  %107 = phi i8* [%103, %$20] ; # P\n  %108 = phi i32 [%104, %$20] ; # Cnt\n  br label %$18\n$22:\n  %109 = phi i32 [%102, %$20] ; # Fd\n  %110 = phi i8* [%103, %$20] ; # P\n  %111 = phi i32 [%104, %$20] ; # Cnt\n; # (sigChk 0)\n  %112 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %113 = icmp ne i32 %112, 0\n  br i1 %113, label %$24, label %$25\n$24:\n  %114 = phi i64 [0, %$22] ; # Exe\n  call void @sighandler(i64 %114)\n  br label %$25\n$25:\n  %115 = phi i64 [0, %$22], [%114, %$24] ; # Exe\n  br label %$2\n$18:\n  %116 = phi i32 [%87, %$19], [%99, %$21], [%106, %$23] ; # Fd\n  %117 = phi i8* [%88, %$19], [%100, %$21], [%107, %$23] ; # P\n  %118 = phi i32 [%89, %$19], [%101, %$21], [%108, %$23] ; # Cnt\n  %119 = phi i64 [0, %$19], [-1, %$21], [0, %$23] ; # ->\n  ret i64 %119\n}\n\ndefine i1 @wrBytes(i32, i8*, i32) align 8 {\n$1:\n; # (loop (? (lt0 Fd) NO) (let N (i32 (write Fd P (i64 Cnt))) (if (lt...\n  br label %$2\n$2:\n  %3 = phi i32 [%0, %$1], [%96, %$8] ; # Fd\n  %4 = phi i8* [%1, %$1], [%97, %$8] ; # P\n  %5 = phi i32 [%2, %$1], [%98, %$8] ; # Cnt\n; # (? (lt0 Fd) NO)\n; # (lt0 Fd)\n  %6 = icmp slt i32 %3, 0\n  br i1 %6, label %$5, label %$3\n$5:\n  %7 = phi i32 [%3, %$2] ; # Fd\n  %8 = phi i8* [%4, %$2] ; # P\n  %9 = phi i32 [%5, %$2] ; # Cnt\n  br label %$4\n$3:\n  %10 = phi i32 [%3, %$2] ; # Fd\n  %11 = phi i8* [%4, %$2] ; # P\n  %12 = phi i32 [%5, %$2] ; # Cnt\n; # (let N (i32 (write Fd P (i64 Cnt))) (if (lt0 N) (let E (gErrno) (...\n; # (i64 Cnt)\n  %13 = sext i32 %12 to i64\n; # (write Fd P (i64 Cnt))\n  %14 = call i64 @write(i32 %10, i8* %11, i64 %13)\n; # (i32 (write Fd P (i64 Cnt)))\n  %15 = trunc i64 %14 to i32\n; # (if (lt0 N) (let E (gErrno) (? (== E EBADF) NO) (? (== E EPIPE) N...\n; # (lt0 N)\n  %16 = icmp slt i32 %15, 0\n  br i1 %16, label %$6, label %$7\n$6:\n  %17 = phi i32 [%10, %$3] ; # Fd\n  %18 = phi i8* [%11, %$3] ; # P\n  %19 = phi i32 [%12, %$3] ; # Cnt\n  %20 = phi i32 [%15, %$3] ; # N\n; # (let E (gErrno) (? (== E EBADF) NO) (? (== E EPIPE) NO) (? (== E ...\n; # (gErrno)\n  %21 = call i32 @gErrno()\n; # (? (== E EBADF) NO)\n; # (== E EBADF)\n  %22 = icmp eq i32 %21, 3\n  br i1 %22, label %$10, label %$9\n$10:\n  %23 = phi i32 [%17, %$6] ; # Fd\n  %24 = phi i8* [%18, %$6] ; # P\n  %25 = phi i32 [%19, %$6] ; # Cnt\n  %26 = phi i32 [%20, %$6] ; # N\n  %27 = phi i32 [%21, %$6] ; # E\n  br label %$4\n$9:\n  %28 = phi i32 [%17, %$6] ; # Fd\n  %29 = phi i8* [%18, %$6] ; # P\n  %30 = phi i32 [%19, %$6] ; # Cnt\n  %31 = phi i32 [%20, %$6] ; # N\n  %32 = phi i32 [%21, %$6] ; # E\n; # (? (== E EPIPE) NO)\n; # (== E EPIPE)\n  %33 = icmp eq i32 %32, 6\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i32 [%28, %$9] ; # Fd\n  %35 = phi i8* [%29, %$9] ; # P\n  %36 = phi i32 [%30, %$9] ; # Cnt\n  %37 = phi i32 [%31, %$9] ; # N\n  %38 = phi i32 [%32, %$9] ; # E\n  br label %$4\n$11:\n  %39 = phi i32 [%28, %$9] ; # Fd\n  %40 = phi i8* [%29, %$9] ; # P\n  %41 = phi i32 [%30, %$9] ; # Cnt\n  %42 = phi i32 [%31, %$9] ; # N\n  %43 = phi i32 [%32, %$9] ; # E\n; # (? (== E ECONNRESET) NO)\n; # (== E ECONNRESET)\n  %44 = icmp eq i32 %43, 7\n  br i1 %44, label %$14, label %$13\n$14:\n  %45 = phi i32 [%39, %$11] ; # Fd\n  %46 = phi i8* [%40, %$11] ; # P\n  %47 = phi i32 [%41, %$11] ; # Cnt\n  %48 = phi i32 [%42, %$11] ; # N\n  %49 = phi i32 [%43, %$11] ; # E\n  br label %$4\n$13:\n  %50 = phi i32 [%39, %$11] ; # Fd\n  %51 = phi i8* [%40, %$11] ; # P\n  %52 = phi i32 [%41, %$11] ; # Cnt\n  %53 = phi i32 [%42, %$11] ; # N\n  %54 = phi i32 [%43, %$11] ; # E\n; # (unless (== E EINTR) (when (== Fd 2) (bye 2)) (writeErr ($ \"bytes...\n; # (== E EINTR)\n  %55 = icmp eq i32 %54, 2\n  br i1 %55, label %$16, label %$15\n$15:\n  %56 = phi i32 [%50, %$13] ; # Fd\n  %57 = phi i8* [%51, %$13] ; # P\n  %58 = phi i32 [%52, %$13] ; # Cnt\n  %59 = phi i32 [%53, %$13] ; # N\n  %60 = phi i32 [%54, %$13] ; # E\n; # (when (== Fd 2) (bye 2))\n; # (== Fd 2)\n  %61 = icmp eq i32 %56, 2\n  br i1 %61, label %$17, label %$18\n$17:\n  %62 = phi i32 [%56, %$15] ; # Fd\n  %63 = phi i8* [%57, %$15] ; # P\n  %64 = phi i32 [%58, %$15] ; # Cnt\n  %65 = phi i32 [%59, %$15] ; # N\n  %66 = phi i32 [%60, %$15] ; # E\n; # (bye 2)\n  call void @bye(i32 2)\n  unreachable\n$18:\n  %67 = phi i32 [%56, %$15] ; # Fd\n  %68 = phi i8* [%57, %$15] ; # P\n  %69 = phi i32 [%58, %$15] ; # Cnt\n  %70 = phi i32 [%59, %$15] ; # N\n  %71 = phi i32 [%60, %$15] ; # E\n; # (writeErr ($ \"bytes write: %s\"))\n  call void @writeErr(i8* bitcast ([16 x i8]* @$39 to i8*))\n  unreachable\n$16:\n  %72 = phi i32 [%50, %$13] ; # Fd\n  %73 = phi i8* [%51, %$13] ; # P\n  %74 = phi i32 [%52, %$13] ; # Cnt\n  %75 = phi i32 [%53, %$13] ; # N\n  %76 = phi i32 [%54, %$13] ; # E\n; # (sigChk 0)\n  %77 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %78 = icmp ne i32 %77, 0\n  br i1 %78, label %$19, label %$20\n$19:\n  %79 = phi i64 [0, %$16] ; # Exe\n  call void @sighandler(i64 %79)\n  br label %$20\n$20:\n  %80 = phi i64 [0, %$16], [%79, %$19] ; # Exe\n  br label %$8\n$7:\n  %81 = phi i32 [%10, %$3] ; # Fd\n  %82 = phi i8* [%11, %$3] ; # P\n  %83 = phi i32 [%12, %$3] ; # Cnt\n  %84 = phi i32 [%15, %$3] ; # N\n; # (? (=0 (dec 'Cnt N)) YES)\n; # (dec 'Cnt N)\n  %85 = sub i32 %83, %84\n; # (=0 (dec 'Cnt N))\n  %86 = icmp eq i32 %85, 0\n  br i1 %86, label %$22, label %$21\n$22:\n  %87 = phi i32 [%81, %$7] ; # Fd\n  %88 = phi i8* [%82, %$7] ; # P\n  %89 = phi i32 [%85, %$7] ; # Cnt\n  %90 = phi i32 [%84, %$7] ; # N\n  br label %$4\n$21:\n  %91 = phi i32 [%81, %$7] ; # Fd\n  %92 = phi i8* [%82, %$7] ; # P\n  %93 = phi i32 [%85, %$7] ; # Cnt\n  %94 = phi i32 [%84, %$7] ; # N\n; # (inc 'P N)\n  %95 = getelementptr i8, i8* %92, i32 %94\n  br label %$8\n$8:\n  %96 = phi i32 [%72, %$20], [%91, %$21] ; # Fd\n  %97 = phi i8* [%73, %$20], [%95, %$21] ; # P\n  %98 = phi i32 [%74, %$20], [%93, %$21] ; # Cnt\n  %99 = phi i32 [%75, %$20], [%94, %$21] ; # N\n  br label %$2\n$4:\n  %100 = phi i32 [%7, %$5], [%23, %$10], [%34, %$12], [%45, %$14], [%87, %$22] ; # Fd\n  %101 = phi i8* [%8, %$5], [%24, %$10], [%35, %$12], [%46, %$14], [%88, %$22] ; # P\n  %102 = phi i32 [%9, %$5], [%25, %$10], [%36, %$12], [%47, %$14], [%89, %$22] ; # Cnt\n  %103 = phi i1 [0, %$5], [0, %$10], [0, %$12], [0, %$14], [1, %$22] ; # ->\n  ret i1 %103\n}\n\ndefine void @clsChild(i8*) align 8 {\n$1:\n; # (let Cld: (child Cld) (when (== (Cld: pid) (val $Talking)) (set $...\n; # (when (== (Cld: pid) (val $Talking)) (set $Talking 0))\n; # (Cld: pid)\n  %1 = getelementptr i8, i8* %0, i32 16\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (val $Talking)\n  %4 = load i32, i32* @$Talking\n; # (== (Cld: pid) (val $Talking))\n  %5 = icmp eq i32 %3, %4\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i8* [%0, %$1] ; # Cld\n; # (set $Talking 0)\n  store i32 0, i32* @$Talking\n  br label %$3\n$3:\n  %7 = phi i8* [%0, %$1], [%6, %$2] ; # Cld\n; # (Cld: pid 0)\n  %8 = getelementptr i8, i8* %0, i32 16\n  %9 = bitcast i8* %8 to i32*\n  store i32 0, i32* %9\n; # (Cld: hear)\n  %10 = getelementptr i8, i8* %0, i32 20\n  %11 = bitcast i8* %10 to i32*\n  %12 = load i32, i32* %11\n; # (close (Cld: hear))\n  %13 = call i32 @close(i32 %12)\n; # (Cld: tell)\n  %14 = getelementptr i8, i8* %0, i32 24\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n; # (close (Cld: tell))\n  %17 = call i32 @close(i32 %16)\n; # (Cld: buf)\n  %18 = bitcast i8* %0 to i8**\n  %19 = load i8*, i8** %18\n; # (free (Cld: buf))\n  call void @free(i8* %19)\n  ret void\n}\n\ndefine void @wrChild(i8*, i8*, i32) align 8 {\n$1:\n; # (let (Cld: (child Cld) C (Cld: cnt)) (unless C (loop (let N (i32 ...\n; # (Cld: cnt)\n  %3 = getelementptr i8, i8* %0, i32 12\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (unless C (loop (let N (i32 (write (Cld: tell) P (i64 Cnt))) (if ...\n  %6 = icmp ne i32 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i8* [%0, %$1] ; # Cld\n  %8 = phi i8* [%1, %$1] ; # P\n  %9 = phi i32 [%2, %$1] ; # Cnt\n  %10 = phi i32 [%5, %$1] ; # C\n; # (loop (let N (i32 (write (Cld: tell) P (i64 Cnt))) (if (lt0 N) (l...\n  br label %$4\n$4:\n  %11 = phi i8* [%7, %$2], [%93, %$7] ; # Cld\n  %12 = phi i8* [%8, %$2], [%94, %$7] ; # P\n  %13 = phi i32 [%9, %$2], [%95, %$7] ; # Cnt\n  %14 = phi i32 [%10, %$2], [%96, %$7] ; # C\n; # (let N (i32 (write (Cld: tell) P (i64 Cnt))) (if (lt0 N) (let E (...\n; # (Cld: tell)\n  %15 = getelementptr i8, i8* %0, i32 24\n  %16 = bitcast i8* %15 to i32*\n  %17 = load i32, i32* %16\n; # (i64 Cnt)\n  %18 = sext i32 %13 to i64\n; # (write (Cld: tell) P (i64 Cnt))\n  %19 = call i64 @write(i32 %17, i8* %12, i64 %18)\n; # (i32 (write (Cld: tell) P (i64 Cnt)))\n  %20 = trunc i64 %19 to i32\n; # (if (lt0 N) (let E (gErrno) (? (== E EAGAIN)) (when (or (== E EPI...\n; # (lt0 N)\n  %21 = icmp slt i32 %20, 0\n  br i1 %21, label %$5, label %$6\n$5:\n  %22 = phi i8* [%11, %$4] ; # Cld\n  %23 = phi i8* [%12, %$4] ; # P\n  %24 = phi i32 [%13, %$4] ; # Cnt\n  %25 = phi i32 [%14, %$4] ; # C\n  %26 = phi i32 [%20, %$4] ; # N\n; # (let E (gErrno) (? (== E EAGAIN)) (when (or (== E EPIPE) (== E EC...\n; # (gErrno)\n  %27 = call i32 @gErrno()\n; # (? (== E EAGAIN))\n; # (== E EAGAIN)\n  %28 = icmp eq i32 %27, 4\n  br i1 %28, label %$9, label %$8\n$8:\n  %29 = phi i8* [%22, %$5] ; # Cld\n  %30 = phi i8* [%23, %$5] ; # P\n  %31 = phi i32 [%24, %$5] ; # Cnt\n  %32 = phi i32 [%25, %$5] ; # C\n  %33 = phi i32 [%26, %$5] ; # N\n  %34 = phi i32 [%27, %$5] ; # E\n; # (when (or (== E EPIPE) (== E ECONNRESET)) (clsChild Cld) (ret))\n; # (or (== E EPIPE) (== E ECONNRESET))\n; # (== E EPIPE)\n  %35 = icmp eq i32 %34, 6\n  br i1 %35, label %$10, label %$11\n$11:\n  %36 = phi i8* [%29, %$8] ; # Cld\n  %37 = phi i8* [%30, %$8] ; # P\n  %38 = phi i32 [%31, %$8] ; # Cnt\n  %39 = phi i32 [%32, %$8] ; # C\n  %40 = phi i32 [%33, %$8] ; # N\n  %41 = phi i32 [%34, %$8] ; # E\n; # (== E ECONNRESET)\n  %42 = icmp eq i32 %41, 7\n  br label %$10\n$10:\n  %43 = phi i8* [%29, %$8], [%36, %$11] ; # Cld\n  %44 = phi i8* [%30, %$8], [%37, %$11] ; # P\n  %45 = phi i32 [%31, %$8], [%38, %$11] ; # Cnt\n  %46 = phi i32 [%32, %$8], [%39, %$11] ; # C\n  %47 = phi i32 [%33, %$8], [%40, %$11] ; # N\n  %48 = phi i32 [%34, %$8], [%41, %$11] ; # E\n  %49 = phi i1 [1, %$8], [%42, %$11] ; # ->\n  br i1 %49, label %$12, label %$13\n$12:\n  %50 = phi i8* [%43, %$10] ; # Cld\n  %51 = phi i8* [%44, %$10] ; # P\n  %52 = phi i32 [%45, %$10] ; # Cnt\n  %53 = phi i32 [%46, %$10] ; # C\n  %54 = phi i32 [%47, %$10] ; # N\n  %55 = phi i32 [%48, %$10] ; # E\n; # (clsChild Cld)\n  call void @clsChild(i8* %50)\n; # (ret)\n  ret void\n$13:\n  %56 = phi i8* [%43, %$10] ; # Cld\n  %57 = phi i8* [%44, %$10] ; # P\n  %58 = phi i32 [%45, %$10] ; # Cnt\n  %59 = phi i32 [%46, %$10] ; # C\n  %60 = phi i32 [%47, %$10] ; # N\n  %61 = phi i32 [%48, %$10] ; # E\n; # (unless (== E EINTR) (writeErr ($ \"child write: %s\")))\n; # (== E EINTR)\n  %62 = icmp eq i32 %61, 2\n  br i1 %62, label %$15, label %$14\n$14:\n  %63 = phi i8* [%56, %$13] ; # Cld\n  %64 = phi i8* [%57, %$13] ; # P\n  %65 = phi i32 [%58, %$13] ; # Cnt\n  %66 = phi i32 [%59, %$13] ; # C\n  %67 = phi i32 [%60, %$13] ; # N\n  %68 = phi i32 [%61, %$13] ; # E\n; # (writeErr ($ \"child write: %s\"))\n  call void @writeErr(i8* bitcast ([16 x i8]* @$40 to i8*))\n  unreachable\n$15:\n  %69 = phi i8* [%56, %$13] ; # Cld\n  %70 = phi i8* [%57, %$13] ; # P\n  %71 = phi i32 [%58, %$13] ; # Cnt\n  %72 = phi i32 [%59, %$13] ; # C\n  %73 = phi i32 [%60, %$13] ; # N\n  %74 = phi i32 [%61, %$13] ; # E\n  br label %$7\n$6:\n  %75 = phi i8* [%11, %$4] ; # Cld\n  %76 = phi i8* [%12, %$4] ; # P\n  %77 = phi i32 [%13, %$4] ; # Cnt\n  %78 = phi i32 [%14, %$4] ; # C\n  %79 = phi i32 [%20, %$4] ; # N\n; # (unless (dec 'Cnt N) (ret))\n; # (dec 'Cnt N)\n  %80 = sub i32 %77, %79\n  %81 = icmp ne i32 %80, 0\n  br i1 %81, label %$17, label %$16\n$16:\n  %82 = phi i8* [%75, %$6] ; # Cld\n  %83 = phi i8* [%76, %$6] ; # P\n  %84 = phi i32 [%80, %$6] ; # Cnt\n  %85 = phi i32 [%78, %$6] ; # C\n  %86 = phi i32 [%79, %$6] ; # N\n; # (ret)\n  ret void\n$17:\n  %87 = phi i8* [%75, %$6] ; # Cld\n  %88 = phi i8* [%76, %$6] ; # P\n  %89 = phi i32 [%80, %$6] ; # Cnt\n  %90 = phi i32 [%78, %$6] ; # C\n  %91 = phi i32 [%79, %$6] ; # N\n; # (inc 'P N)\n  %92 = getelementptr i8, i8* %88, i32 %91\n  br label %$7\n$7:\n  %93 = phi i8* [%69, %$15], [%87, %$17] ; # Cld\n  %94 = phi i8* [%70, %$15], [%92, %$17] ; # P\n  %95 = phi i32 [%71, %$15], [%89, %$17] ; # Cnt\n  %96 = phi i32 [%72, %$15], [%90, %$17] ; # C\n  %97 = phi i32 [%73, %$15], [%91, %$17] ; # N\n  br label %$4\n$9:\n  %98 = phi i8* [%22, %$5] ; # Cld\n  %99 = phi i8* [%23, %$5] ; # P\n  %100 = phi i32 [%24, %$5] ; # Cnt\n  %101 = phi i32 [%25, %$5] ; # C\n  %102 = phi i64 [0, %$5] ; # ->\n  br label %$3\n$3:\n  %103 = phi i8* [%0, %$1], [%98, %$9] ; # Cld\n  %104 = phi i8* [%1, %$1], [%99, %$9] ; # P\n  %105 = phi i32 [%2, %$1], [%100, %$9] ; # Cnt\n  %106 = phi i32 [%5, %$1], [%101, %$9] ; # C\n; # (let Siz (+ C Cnt 4) (when (> Siz (hex \"3FFFFFFF\")) (sizeErr 0)) ...\n; # (+ C Cnt 4)\n  %107 = add i32 %106, %105\n  %108 = add i32 %107, 4\n; # (when (> Siz (hex \"3FFFFFFF\")) (sizeErr 0))\n; # (> Siz (hex \"3FFFFFFF\"))\n  %109 = icmp sgt i32 %108, 1073741823\n  br i1 %109, label %$18, label %$19\n$18:\n  %110 = phi i8* [%103, %$3] ; # Cld\n  %111 = phi i8* [%104, %$3] ; # P\n  %112 = phi i32 [%105, %$3] ; # Cnt\n  %113 = phi i32 [%106, %$3] ; # C\n  %114 = phi i32 [%108, %$3] ; # Siz\n; # (sizeErr 0)\n  call void @sizeErr(i64 0)\n  unreachable\n$19:\n  %115 = phi i8* [%103, %$3] ; # Cld\n  %116 = phi i8* [%104, %$3] ; # P\n  %117 = phi i32 [%105, %$3] ; # Cnt\n  %118 = phi i32 [%106, %$3] ; # C\n  %119 = phi i32 [%108, %$3] ; # Siz\n; # (let Q (ofs (Cld: buf (alloc (Cld: buf) (i64 Siz))) C) (set (i32*...\n; # (Cld: buf (alloc (Cld: buf) (i64 Siz)))\n  %120 = bitcast i8* %0 to i8**\n  %121 = bitcast i8* %0 to i8**\n  %122 = load i8*, i8** %121\n  %123 = sext i32 %119 to i64\n  %124 = call i8* @alloc(i8* %122, i64 %123)\n  store i8* %124, i8** %120\n; # (ofs (Cld: buf (alloc (Cld: buf) (i64 Siz))) C)\n  %125 = getelementptr i8, i8* %124, i32 %118\n; # (set (i32* Q) Cnt)\n; # (i32* Q)\n  %126 = bitcast i8* %125 to i32*\n  store i32 %117, i32* %126\n; # (ofs Q 4)\n  %127 = getelementptr i8, i8* %125, i32 4\n; # (i64 Cnt)\n  %128 = sext i32 %117 to i64\n; # (memcpy (ofs Q 4) P (i64 Cnt))\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %127, i8* %116, i64 %128, i1 0)\n; # (Cld: cnt Siz)\n  %129 = getelementptr i8, i8* %0, i32 12\n  %130 = bitcast i8* %129 to i32*\n  store i32 %119, i32* %130\n  ret void\n}\n\ndefine i1 @flush(i8*) align 8 {\n$1:\n; # (ifn Out YES (let Out: (outFile Out) (ifn (Out: ix) YES (Out: ix ...\n  %1 = icmp ne i8* %0, null\n  br i1 %1, label %$3, label %$2\n$2:\n  %2 = phi i8* [%0, %$1] ; # Out\n  br label %$4\n$3:\n  %3 = phi i8* [%0, %$1] ; # Out\n; # (let Out: (outFile Out) (ifn (Out: ix) YES (Out: ix 0) (wrBytes (...\n; # (ifn (Out: ix) YES (Out: ix 0) (wrBytes (Out: fd) (Out: (buf)) @)...\n; # (Out: ix)\n  %4 = getelementptr i8, i8* %3, i32 4\n  %5 = bitcast i8* %4 to i32*\n  %6 = load i32, i32* %5\n  %7 = icmp ne i32 %6, 0\n  br i1 %7, label %$6, label %$5\n$5:\n  %8 = phi i8* [%3, %$3] ; # Out\n  br label %$7\n$6:\n  %9 = phi i8* [%3, %$3] ; # Out\n; # (Out: ix 0)\n  %10 = getelementptr i8, i8* %3, i32 4\n  %11 = bitcast i8* %10 to i32*\n  store i32 0, i32* %11\n; # (Out: fd)\n  %12 = bitcast i8* %3 to i32*\n  %13 = load i32, i32* %12\n; # (Out: (buf))\n  %14 = getelementptr i8, i8* %3, i32 8\n; # (wrBytes (Out: fd) (Out: (buf)) @)\n  %15 = call i1 @wrBytes(i32 %13, i8* %14, i32 %6)\n  br label %$7\n$7:\n  %16 = phi i8* [%8, %$5], [%9, %$6] ; # Out\n  %17 = phi i1 [1, %$5], [%15, %$6] ; # ->\n  br label %$4\n$4:\n  %18 = phi i8* [%2, %$2], [%16, %$7] ; # Out\n  %19 = phi i1 [1, %$2], [%17, %$7] ; # ->\n  ret i1 %19\n}\n\ndefine void @flushAll() align 8 {\n$1:\n; # (let (A (val $OutFiles) N (val $OutFDs) I (i32 0)) (while (> N I)...\n; # (val $OutFiles)\n  %0 = load i8**, i8*** @$OutFiles\n; # (val $OutFDs)\n  %1 = load i32, i32* @$OutFDs\n; # (i32 0)\n; # (while (> N I) (flush (val (ofs A I))) (inc 'I))\n  br label %$2\n$2:\n  %2 = phi i8** [%0, %$1], [%6, %$3] ; # A\n  %3 = phi i32 [%1, %$1], [%7, %$3] ; # N\n  %4 = phi i32 [0, %$1], [%12, %$3] ; # I\n; # (> N I)\n  %5 = icmp sgt i32 %3, %4\n  br i1 %5, label %$3, label %$4\n$3:\n  %6 = phi i8** [%2, %$2] ; # A\n  %7 = phi i32 [%3, %$2] ; # N\n  %8 = phi i32 [%4, %$2] ; # I\n; # (ofs A I)\n  %9 = getelementptr i8*, i8** %6, i32 %8\n; # (val (ofs A I))\n  %10 = load i8*, i8** %9\n; # (flush (val (ofs A I)))\n  %11 = call i1 @flush(i8* %10)\n; # (inc 'I)\n  %12 = add i32 %8, 1\n  br label %$2\n$4:\n  %13 = phi i8** [%2, %$2] ; # A\n  %14 = phi i32 [%3, %$2] ; # N\n  %15 = phi i32 [%4, %$2] ; # I\n  ret void\n}\n\ndefine i32 @stdinByte() align 8 {\n$1:\n; # (let In: (inFile (val (val $InFiles))) (cond ((and (ge0 (In: fd))...\n; # (val $InFiles)\n  %0 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %1 = load i8*, i8** %0\n; # (cond ((and (ge0 (In: fd)) (or (<> (In: ix) (In: cnt)) (and (ge0 ...\n; # (and (ge0 (In: fd)) (or (<> (In: ix) (In: cnt)) (and (ge0 @) (slo...\n; # (In: fd)\n  %2 = getelementptr i8, i8* %1, i32 8\n  %3 = bitcast i8* %2 to i32*\n  %4 = load i32, i32* %3\n; # (ge0 (In: fd))\n  %5 = icmp sge i32 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n; # (or (<> (In: ix) (In: cnt)) (and (ge0 @) (slow (In:))))\n; # (In: ix)\n  %6 = getelementptr i8, i8* %1, i32 24\n  %7 = bitcast i8* %6 to i32*\n  %8 = load i32, i32* %7\n; # (In: cnt)\n  %9 = getelementptr i8, i8* %1, i32 28\n  %10 = bitcast i8* %9 to i32*\n  %11 = load i32, i32* %10\n; # (<> (In: ix) (In: cnt))\n  %12 = icmp ne i32 %8, %11\n  br i1 %12, label %$5, label %$6\n$6:\n; # (and (ge0 @) (slow (In:)))\n; # (ge0 @)\n  %13 = icmp sge i32 %8, 0\n  br i1 %13, label %$8, label %$7\n$8:\n; # (In:)\n; # (slow (In:))\n  %14 = call i32 @slow(i8* %1)\n  %15 = icmp ne i32 %14, 0\n  br label %$7\n$7:\n  %16 = phi i1 [0, %$6], [%15, %$8] ; # ->\n  br label %$5\n$5:\n  %17 = phi i1 [1, %$4], [%16, %$7] ; # ->\n  br label %$3\n$3:\n  %18 = phi i1 [0, %$1], [%17, %$5] ; # ->\n  br i1 %18, label %$10, label %$9\n$10:\n; # (let I (In: ix) (In: ix (+ I 1)) (i32 (val (ofs (In: (buf)) I))))...\n; # (In: ix)\n  %19 = getelementptr i8, i8* %1, i32 24\n  %20 = bitcast i8* %19 to i32*\n  %21 = load i32, i32* %20\n; # (In: ix (+ I 1))\n  %22 = getelementptr i8, i8* %1, i32 24\n  %23 = bitcast i8* %22 to i32*\n  %24 = add i32 %21, 1\n  store i32 %24, i32* %23\n; # (In: (buf))\n  %25 = getelementptr i8, i8* %1, i32 32\n; # (ofs (In: (buf)) I)\n  %26 = getelementptr i8, i8* %25, i32 %21\n; # (val (ofs (In: (buf)) I))\n  %27 = load i8, i8* %26\n; # (i32 (val (ofs (In: (buf)) I)))\n  %28 = zext i8 %27 to i32\n  br label %$2\n$9:\n; # (In: tty)\n  %29 = getelementptr i8, i8* %1, i32 4128\n  %30 = bitcast i8* %29 to i1*\n  %31 = load i1, i1* %30\n  br i1 %31, label %$12, label %$11\n$12:\n; # (bye 0)\n  call void @bye(i32 0)\n  unreachable\n$11:\n  br label %$2\n$2:\n  %32 = phi i32 [%28, %$10], [-1, %$11] ; # ->\n  ret i32 %32\n}\n\ndefine i32 @getBinary() align 8 {\n$1:\n; # (let (In: (inFile (val $InFile)) I (In: ix)) (when (== I (In: cnt...\n; # (val $InFile)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (In: ix)\n  %1 = getelementptr i8, i8* %0, i32 24\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (when (== I (In: cnt)) (when (or (lt0 I) (=0 (slow (In:)))) (ret ...\n; # (In: cnt)\n  %4 = getelementptr i8, i8* %0, i32 28\n  %5 = bitcast i8* %4 to i32*\n  %6 = load i32, i32* %5\n; # (== I (In: cnt))\n  %7 = icmp eq i32 %3, %6\n  br i1 %7, label %$2, label %$3\n$2:\n  %8 = phi i32 [%3, %$1] ; # I\n; # (when (or (lt0 I) (=0 (slow (In:)))) (ret -1))\n; # (or (lt0 I) (=0 (slow (In:))))\n; # (lt0 I)\n  %9 = icmp slt i32 %8, 0\n  br i1 %9, label %$4, label %$5\n$5:\n  %10 = phi i32 [%8, %$2] ; # I\n; # (In:)\n; # (slow (In:))\n  %11 = call i32 @slow(i8* %0)\n; # (=0 (slow (In:)))\n  %12 = icmp eq i32 %11, 0\n  br label %$4\n$4:\n  %13 = phi i32 [%8, %$2], [%10, %$5] ; # I\n  %14 = phi i1 [1, %$2], [%12, %$5] ; # ->\n  br i1 %14, label %$6, label %$7\n$6:\n  %15 = phi i32 [%13, %$4] ; # I\n; # (ret -1)\n  ret i32 -1\n$7:\n  %16 = phi i32 [%13, %$4] ; # I\n  br label %$3\n$3:\n  %17 = phi i32 [%3, %$1], [0, %$7] ; # I\n; # (In: ix (+ I 1))\n  %18 = getelementptr i8, i8* %0, i32 24\n  %19 = bitcast i8* %18 to i32*\n  %20 = add i32 %17, 1\n  store i32 %20, i32* %19\n; # (In: (buf))\n  %21 = getelementptr i8, i8* %0, i32 32\n; # (ofs (In: (buf)) I)\n  %22 = getelementptr i8, i8* %21, i32 %17\n; # (val (ofs (In: (buf)) I))\n  %23 = load i8, i8* %22\n; # (i32 (val (ofs (In: (buf)) I)))\n  %24 = zext i8 %23 to i32\n  ret i32 %24\n}\n\ndefine i64 @binRead() align 8 {\n$1:\n; # (case (call $GetBin) (NIX $Nil) (BEG (ifn (binRead) 0 (let (X (co...\n; # (call $GetBin)\n  %0 = load i32()*, i32()** @$GetBin\n  %1 = call i32 %0()\n  switch i32 %1, label %$2 [\n    i32 0, label %$4\n    i32 1, label %$5\n    i32 2, label %$6\n    i32 3, label %$7\n  ]\n$4:\n  br label %$3\n$5:\n; # (ifn (binRead) 0 (let (X (cons @ $Nil) R (save X)) (loop (? (=0 (...\n; # (binRead)\n  %2 = call i64 @binRead()\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$9, label %$8\n$8:\n  br label %$10\n$9:\n; # (let (X (cons @ $Nil) R (save X)) (loop (? (=0 (binRead)) @) (? (...\n; # (cons @ $Nil)\n  %4 = call i64 @cons(i64 %2, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save X)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (loop (? (=0 (binRead)) @) (? (== @ END) R) (? (== @ -ZERO) (ifn ...\n  br label %$11\n$11:\n  %13 = phi i64 [%4, %$9], [%50, %$17] ; # X\n  %14 = phi i64 [%4, %$9], [%49, %$17] ; # R\n; # (? (=0 (binRead)) @)\n; # (binRead)\n  %15 = call i64 @binRead()\n; # (=0 (binRead))\n  %16 = icmp eq i64 %15, 0\n  br i1 %16, label %$14, label %$12\n$14:\n  %17 = phi i64 [%13, %$11] ; # X\n  %18 = phi i64 [%14, %$11] ; # R\n  br label %$13\n$12:\n  %19 = phi i64 [%13, %$11] ; # X\n  %20 = phi i64 [%14, %$11] ; # R\n; # (? (== @ END) R)\n; # (== @ END)\n  %21 = icmp eq i64 %15, 3\n  br i1 %21, label %$16, label %$15\n$16:\n  %22 = phi i64 [%19, %$12] ; # X\n  %23 = phi i64 [%20, %$12] ; # R\n  br label %$13\n$15:\n  %24 = phi i64 [%19, %$12] ; # X\n  %25 = phi i64 [%20, %$12] ; # R\n; # (? (== @ -ZERO) (ifn (binRead) 0 (set 2 X (if (== @ END) R @)) R)...\n; # (== @ -ZERO)\n  %26 = icmp eq i64 %15, 10\n  br i1 %26, label %$18, label %$17\n$18:\n  %27 = phi i64 [%24, %$15] ; # X\n  %28 = phi i64 [%25, %$15] ; # R\n; # (ifn (binRead) 0 (set 2 X (if (== @ END) R @)) R)\n; # (binRead)\n  %29 = call i64 @binRead()\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$20, label %$19\n$19:\n  %31 = phi i64 [%27, %$18] ; # X\n  %32 = phi i64 [%28, %$18] ; # R\n  br label %$21\n$20:\n  %33 = phi i64 [%27, %$18] ; # X\n  %34 = phi i64 [%28, %$18] ; # R\n; # (set 2 X (if (== @ END) R @))\n; # (if (== @ END) R @)\n; # (== @ END)\n  %35 = icmp eq i64 %29, 3\n  br i1 %35, label %$22, label %$23\n$22:\n  %36 = phi i64 [%33, %$20] ; # X\n  %37 = phi i64 [%34, %$20] ; # R\n  br label %$24\n$23:\n  %38 = phi i64 [%33, %$20] ; # X\n  %39 = phi i64 [%34, %$20] ; # R\n  br label %$24\n$24:\n  %40 = phi i64 [%36, %$22], [%38, %$23] ; # X\n  %41 = phi i64 [%37, %$22], [%39, %$23] ; # R\n  %42 = phi i64 [%37, %$22], [%29, %$23] ; # ->\n  %43 = inttoptr i64 %33 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  store i64 %42, i64* %44\n  br label %$21\n$21:\n  %45 = phi i64 [%31, %$19], [%40, %$24] ; # X\n  %46 = phi i64 [%32, %$19], [%41, %$24] ; # R\n  %47 = phi i64 [0, %$19], [%41, %$24] ; # ->\n  br label %$13\n$17:\n  %48 = phi i64 [%24, %$15] ; # X\n  %49 = phi i64 [%25, %$15] ; # R\n; # (set 2 X (cons @ $Nil))\n; # (cons @ $Nil)\n  %50 = call i64 @cons(i64 %15, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %51 = inttoptr i64 %48 to i64*\n  %52 = getelementptr i64, i64* %51, i32 1\n  store i64 %50, i64* %52\n  br label %$11\n$13:\n  %53 = phi i64 [%17, %$14], [%22, %$16], [%45, %$21] ; # X\n  %54 = phi i64 [%18, %$14], [%23, %$16], [%46, %$21] ; # R\n  %55 = phi i64 [%15, %$14], [%23, %$16], [%47, %$21] ; # ->\n; # (drop *Safe)\n  %56 = inttoptr i64 %8 to i64*\n  %57 = getelementptr i64, i64* %56, i32 1\n  %58 = load i64, i64* %57\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %58, i64* %59\n  br label %$10\n$10:\n  %60 = phi i64 [0, %$8], [%55, %$13] ; # ->\n  br label %$3\n$6:\n  br label %$3\n$7:\n; # (i64 @)\n  %61 = sext i32 %1 to i64\n  br label %$3\n$2:\n; # (if (lt0 @) 0 (let (Tag (& @ 3) Cnt (shr @ 2) P (i64* (push NIL N...\n; # (lt0 @)\n  %62 = icmp slt i32 %1, 0\n  br i1 %62, label %$25, label %$26\n$25:\n  br label %$27\n$26:\n; # (let (Tag (& @ 3) Cnt (shr @ 2) P (i64* (push NIL NIL ZERO NIL)) ...\n; # (& @ 3)\n  %63 = and i32 %1, 3\n; # (shr @ 2)\n  %64 = lshr i32 %1, 2\n; # (push NIL NIL ZERO NIL)\n  %65 = alloca i64, i64 4, align 16\n  %66 = ptrtoint i64* %65 to i64\n  %67 = add i64 %66, 16\n  %68 = inttoptr i64 %67 to i64*\n  store i64 2, i64* %68\n; # (i64* (push NIL NIL ZERO NIL))\n  %69 = inttoptr i64 %66 to i64*\n; # (ofs P 2)\n  %70 = getelementptr i64, i64* %69, i32 2\n; # (link (ofs P 2))\n  %71 = ptrtoint i64* %70 to i64\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 %71 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  store i64 %73, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %71, i64* %76\n; # (cond ((== Tag NUMBER) (set P 3) (when (== Cnt 63) (loop (loop (w...\n; # (== Tag NUMBER)\n  %77 = icmp eq i32 %63, 0\n  br i1 %77, label %$30, label %$29\n$30:\n  %78 = phi i32 [%63, %$26] ; # Tag\n  %79 = phi i32 [%64, %$26] ; # Cnt\n  %80 = phi i64* [%69, %$26] ; # P\n  %81 = phi i64 [%71, %$26] ; # Q\n; # (set P 3)\n  store i64 3, i64* %80\n; # (when (== Cnt 63) (loop (loop (when (lt0 (call $GetBin)) (: 1 (dr...\n; # (== Cnt 63)\n  %82 = icmp eq i32 %79, 63\n  br i1 %82, label %$31, label %$32\n$31:\n  %83 = phi i32 [%78, %$30] ; # Tag\n  %84 = phi i32 [%79, %$30] ; # Cnt\n  %85 = phi i64* [%80, %$30] ; # P\n  %86 = phi i64 [%81, %$30] ; # Q\n; # (loop (loop (when (lt0 (call $GetBin)) (: 1 (drop Q) (ret 0))) (b...\n  br label %$33\n$33:\n  %87 = phi i32 [%83, %$31], [%138, %$41] ; # Tag\n  %88 = phi i32 [%84, %$31], [%139, %$41] ; # Cnt\n  %89 = phi i64* [%85, %$31], [%140, %$41] ; # P\n  %90 = phi i64 [%86, %$31], [%141, %$41] ; # Q\n; # (loop (when (lt0 (call $GetBin)) (: 1 (drop Q) (ret 0))) (byteNum...\n  br label %$34\n$34:\n  %91 = phi i32 [%87, %$33], [%117, %$37] ; # Tag\n  %92 = phi i32 [%88, %$33], [%118, %$37] ; # Cnt\n  %93 = phi i64* [%89, %$33], [%119, %$37] ; # P\n  %94 = phi i64 [%90, %$33], [%120, %$37] ; # Q\n; # (when (lt0 (call $GetBin)) (: 1 (drop Q) (ret 0)))\n; # (call $GetBin)\n  %95 = load i32()*, i32()** @$GetBin\n  %96 = call i32 %95()\n; # (lt0 (call $GetBin))\n  %97 = icmp slt i32 %96, 0\n  br i1 %97, label %$35, label %$36\n$35:\n  %98 = phi i32 [%91, %$34] ; # Tag\n  %99 = phi i32 [%92, %$34] ; # Cnt\n  %100 = phi i64* [%93, %$34] ; # P\n  %101 = phi i64 [%94, %$34] ; # Q\n; # (: 1 (drop Q) (ret 0))\n  br label %$-1\n$-1:\n  %102 = phi i32 [%98, %$35], [%129, %$39], [%167, %$46], [%239, %$57], [%262, %$61], [%300, %$68] ; # Tag\n  %103 = phi i32 [%99, %$35], [%130, %$39], [%168, %$46], [%240, %$57], [%263, %$61], [%301, %$68] ; # Cnt\n  %104 = phi i64* [%100, %$35], [%131, %$39], [%169, %$46], [%241, %$57], [%264, %$61], [%302, %$68] ; # P\n  %105 = phi i64 [%101, %$35], [%132, %$39], [%170, %$46], [%242, %$57], [%265, %$61], [%303, %$68] ; # Q\n; # (drop Q)\n  %106 = inttoptr i64 %105 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n  %109 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %108, i64* %109\n; # (ret 0)\n  ret i64 0\n$36:\n  %110 = phi i32 [%91, %$34] ; # Tag\n  %111 = phi i32 [%92, %$34] ; # Cnt\n  %112 = phi i64* [%93, %$34] ; # P\n  %113 = phi i64 [%94, %$34] ; # Q\n; # (i8 @)\n  %114 = trunc i32 %96 to i8\n; # (byteNum (i8 @) P)\n  call void @byteNum(i8 %114, i64* %112)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %115 = sub i32 %111, 1\n; # (=0 (dec 'Cnt))\n  %116 = icmp eq i32 %115, 0\n  br i1 %116, label %$38, label %$37\n$37:\n  %117 = phi i32 [%110, %$36] ; # Tag\n  %118 = phi i32 [%115, %$36] ; # Cnt\n  %119 = phi i64* [%112, %$36] ; # P\n  %120 = phi i64 [%113, %$36] ; # Q\n  br label %$34\n$38:\n  %121 = phi i32 [%110, %$36] ; # Tag\n  %122 = phi i32 [%115, %$36] ; # Cnt\n  %123 = phi i64* [%112, %$36] ; # P\n  %124 = phi i64 [%113, %$36] ; # Q\n  %125 = phi i64 [0, %$36] ; # ->\n; # (when (lt0 (setq Cnt (call $GetBin))) (goto 1))\n; # (call $GetBin)\n  %126 = load i32()*, i32()** @$GetBin\n  %127 = call i32 %126()\n; # (lt0 (setq Cnt (call $GetBin)))\n  %128 = icmp slt i32 %127, 0\n  br i1 %128, label %$39, label %$40\n$39:\n  %129 = phi i32 [%121, %$38] ; # Tag\n  %130 = phi i32 [%127, %$38] ; # Cnt\n  %131 = phi i64* [%123, %$38] ; # P\n  %132 = phi i64 [%124, %$38] ; # Q\n; # (goto 1)\n  br label %$-1\n$40:\n  %133 = phi i32 [%121, %$38] ; # Tag\n  %134 = phi i32 [%127, %$38] ; # Cnt\n  %135 = phi i64* [%123, %$38] ; # P\n  %136 = phi i64 [%124, %$38] ; # Q\n; # (? (<> Cnt 255))\n; # (<> Cnt 255)\n  %137 = icmp ne i32 %134, 255\n  br i1 %137, label %$42, label %$41\n$41:\n  %138 = phi i32 [%133, %$40] ; # Tag\n  %139 = phi i32 [%134, %$40] ; # Cnt\n  %140 = phi i64* [%135, %$40] ; # P\n  %141 = phi i64 [%136, %$40] ; # Q\n  br label %$33\n$42:\n  %142 = phi i32 [%133, %$40] ; # Tag\n  %143 = phi i32 [%134, %$40] ; # Cnt\n  %144 = phi i64* [%135, %$40] ; # P\n  %145 = phi i64 [%136, %$40] ; # Q\n  %146 = phi i64 [0, %$40] ; # ->\n; # (unless Cnt (goto 2))\n  %147 = icmp ne i32 %143, 0\n  br i1 %147, label %$44, label %$43\n$43:\n  %148 = phi i32 [%142, %$42] ; # Tag\n  %149 = phi i32 [%143, %$42] ; # Cnt\n  %150 = phi i64* [%144, %$42] ; # P\n  %151 = phi i64 [%145, %$42] ; # Q\n; # (goto 2)\n  br label %$-2\n$44:\n  %152 = phi i32 [%142, %$42] ; # Tag\n  %153 = phi i32 [%143, %$42] ; # Cnt\n  %154 = phi i64* [%144, %$42] ; # P\n  %155 = phi i64 [%145, %$42] ; # Q\n  br label %$32\n$32:\n  %156 = phi i32 [%78, %$30], [%152, %$44] ; # Tag\n  %157 = phi i32 [%79, %$30], [%153, %$44] ; # Cnt\n  %158 = phi i64* [%80, %$30], [%154, %$44] ; # P\n  %159 = phi i64 [%81, %$30], [%155, %$44] ; # Q\n; # (loop (when (lt0 (call $GetBin)) (goto 1)) (byteNum (i8 @) P) (? ...\n  br label %$45\n$45:\n  %160 = phi i32 [%156, %$32], [%178, %$48] ; # Tag\n  %161 = phi i32 [%157, %$32], [%179, %$48] ; # Cnt\n  %162 = phi i64* [%158, %$32], [%180, %$48] ; # P\n  %163 = phi i64 [%159, %$32], [%181, %$48] ; # Q\n; # (when (lt0 (call $GetBin)) (goto 1))\n; # (call $GetBin)\n  %164 = load i32()*, i32()** @$GetBin\n  %165 = call i32 %164()\n; # (lt0 (call $GetBin))\n  %166 = icmp slt i32 %165, 0\n  br i1 %166, label %$46, label %$47\n$46:\n  %167 = phi i32 [%160, %$45] ; # Tag\n  %168 = phi i32 [%161, %$45] ; # Cnt\n  %169 = phi i64* [%162, %$45] ; # P\n  %170 = phi i64 [%163, %$45] ; # Q\n; # (goto 1)\n  br label %$-1\n$47:\n  %171 = phi i32 [%160, %$45] ; # Tag\n  %172 = phi i32 [%161, %$45] ; # Cnt\n  %173 = phi i64* [%162, %$45] ; # P\n  %174 = phi i64 [%163, %$45] ; # Q\n; # (i8 @)\n  %175 = trunc i32 %165 to i8\n; # (byteNum (i8 @) P)\n  call void @byteNum(i8 %175, i64* %173)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %176 = sub i32 %172, 1\n; # (=0 (dec 'Cnt))\n  %177 = icmp eq i32 %176, 0\n  br i1 %177, label %$49, label %$48\n$48:\n  %178 = phi i32 [%171, %$47] ; # Tag\n  %179 = phi i32 [%176, %$47] ; # Cnt\n  %180 = phi i64* [%173, %$47] ; # P\n  %181 = phi i64 [%174, %$47] ; # Q\n  br label %$45\n$49:\n  %182 = phi i32 [%171, %$47] ; # Tag\n  %183 = phi i32 [%176, %$47] ; # Cnt\n  %184 = phi i64* [%173, %$47] ; # P\n  %185 = phi i64 [%174, %$47] ; # Q\n  %186 = phi i64 [0, %$47] ; # ->\n; # (: 2 (drop Q (if (cnt? (val Q)) @ (let S (& (val (dig @)) 1) (| (...\n  br label %$-2\n$-2:\n  %187 = phi i32 [%148, %$43], [%182, %$49] ; # Tag\n  %188 = phi i32 [%149, %$43], [%183, %$49] ; # Cnt\n  %189 = phi i64* [%150, %$43], [%184, %$49] ; # P\n  %190 = phi i64 [%151, %$43], [%185, %$49] ; # Q\n; # (drop Q (if (cnt? (val Q)) @ (let S (& (val (dig @)) 1) (| (half ...\n; # (if (cnt? (val Q)) @ (let S (& (val (dig @)) 1) (| (half @) (shl ...\n; # (val Q)\n  %191 = inttoptr i64 %190 to i64*\n  %192 = load i64, i64* %191\n; # (cnt? (val Q))\n  %193 = and i64 %192, 2\n  %194 = icmp ne i64 %193, 0\n  br i1 %194, label %$50, label %$51\n$50:\n  %195 = phi i32 [%187, %$-2] ; # Tag\n  %196 = phi i32 [%188, %$-2] ; # Cnt\n  %197 = phi i64* [%189, %$-2] ; # P\n  %198 = phi i64 [%190, %$-2] ; # Q\n  br label %$52\n$51:\n  %199 = phi i32 [%187, %$-2] ; # Tag\n  %200 = phi i32 [%188, %$-2] ; # Cnt\n  %201 = phi i64* [%189, %$-2] ; # P\n  %202 = phi i64 [%190, %$-2] ; # Q\n; # (let S (& (val (dig @)) 1) (| (half @) (shl S 3)))\n; # (dig @)\n  %203 = add i64 %192, -4\n; # (val (dig @))\n  %204 = inttoptr i64 %203 to i64*\n  %205 = load i64, i64* %204\n; # (& (val (dig @)) 1)\n  %206 = and i64 %205, 1\n; # (half @)\n  %207 = call i64 @half(i64 %192)\n; # (shl S 3)\n  %208 = shl i64 %206, 3\n; # (| (half @) (shl S 3))\n  %209 = or i64 %207, %208\n  br label %$52\n$52:\n  %210 = phi i32 [%195, %$50], [%199, %$51] ; # Tag\n  %211 = phi i32 [%196, %$50], [%200, %$51] ; # Cnt\n  %212 = phi i64* [%197, %$50], [%201, %$51] ; # P\n  %213 = phi i64 [%198, %$50], [%202, %$51] ; # Q\n  %214 = phi i64 [%192, %$50], [%209, %$51] ; # ->\n  %215 = inttoptr i64 %190 to i64*\n  %216 = getelementptr i64, i64* %215, i32 1\n  %217 = load i64, i64* %216\n  %218 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %217, i64* %218\n  br label %$28\n$29:\n  %219 = phi i32 [%63, %$26] ; # Tag\n  %220 = phi i32 [%64, %$26] ; # Cnt\n  %221 = phi i64* [%69, %$26] ; # P\n  %222 = phi i64 [%71, %$26] ; # Q\n; # (set P 4)\n  store i64 4, i64* %221\n; # (when (== Cnt 63) (loop (loop (when (lt0 (call $GetBin)) (goto 1)...\n; # (== Cnt 63)\n  %223 = icmp eq i32 %220, 63\n  br i1 %223, label %$53, label %$54\n$53:\n  %224 = phi i32 [%219, %$29] ; # Tag\n  %225 = phi i32 [%220, %$29] ; # Cnt\n  %226 = phi i64* [%221, %$29] ; # P\n  %227 = phi i64 [%222, %$29] ; # Q\n; # (loop (loop (when (lt0 (call $GetBin)) (goto 1)) (byteSym (i8 @) ...\n  br label %$55\n$55:\n  %228 = phi i32 [%224, %$53], [%271, %$63] ; # Tag\n  %229 = phi i32 [%225, %$53], [%272, %$63] ; # Cnt\n  %230 = phi i64* [%226, %$53], [%273, %$63] ; # P\n  %231 = phi i64 [%227, %$53], [%274, %$63] ; # Q\n; # (loop (when (lt0 (call $GetBin)) (goto 1)) (byteSym (i8 @) P) (? ...\n  br label %$56\n$56:\n  %232 = phi i32 [%228, %$55], [%250, %$59] ; # Tag\n  %233 = phi i32 [%229, %$55], [%251, %$59] ; # Cnt\n  %234 = phi i64* [%230, %$55], [%252, %$59] ; # P\n  %235 = phi i64 [%231, %$55], [%253, %$59] ; # Q\n; # (when (lt0 (call $GetBin)) (goto 1))\n; # (call $GetBin)\n  %236 = load i32()*, i32()** @$GetBin\n  %237 = call i32 %236()\n; # (lt0 (call $GetBin))\n  %238 = icmp slt i32 %237, 0\n  br i1 %238, label %$57, label %$58\n$57:\n  %239 = phi i32 [%232, %$56] ; # Tag\n  %240 = phi i32 [%233, %$56] ; # Cnt\n  %241 = phi i64* [%234, %$56] ; # P\n  %242 = phi i64 [%235, %$56] ; # Q\n; # (goto 1)\n  br label %$-1\n$58:\n  %243 = phi i32 [%232, %$56] ; # Tag\n  %244 = phi i32 [%233, %$56] ; # Cnt\n  %245 = phi i64* [%234, %$56] ; # P\n  %246 = phi i64 [%235, %$56] ; # Q\n; # (i8 @)\n  %247 = trunc i32 %237 to i8\n; # (byteSym (i8 @) P)\n  call void @byteSym(i8 %247, i64* %245)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %248 = sub i32 %244, 1\n; # (=0 (dec 'Cnt))\n  %249 = icmp eq i32 %248, 0\n  br i1 %249, label %$60, label %$59\n$59:\n  %250 = phi i32 [%243, %$58] ; # Tag\n  %251 = phi i32 [%248, %$58] ; # Cnt\n  %252 = phi i64* [%245, %$58] ; # P\n  %253 = phi i64 [%246, %$58] ; # Q\n  br label %$56\n$60:\n  %254 = phi i32 [%243, %$58] ; # Tag\n  %255 = phi i32 [%248, %$58] ; # Cnt\n  %256 = phi i64* [%245, %$58] ; # P\n  %257 = phi i64 [%246, %$58] ; # Q\n  %258 = phi i64 [0, %$58] ; # ->\n; # (when (lt0 (setq Cnt (call $GetBin))) (goto 1))\n; # (call $GetBin)\n  %259 = load i32()*, i32()** @$GetBin\n  %260 = call i32 %259()\n; # (lt0 (setq Cnt (call $GetBin)))\n  %261 = icmp slt i32 %260, 0\n  br i1 %261, label %$61, label %$62\n$61:\n  %262 = phi i32 [%254, %$60] ; # Tag\n  %263 = phi i32 [%260, %$60] ; # Cnt\n  %264 = phi i64* [%256, %$60] ; # P\n  %265 = phi i64 [%257, %$60] ; # Q\n; # (goto 1)\n  br label %$-1\n$62:\n  %266 = phi i32 [%254, %$60] ; # Tag\n  %267 = phi i32 [%260, %$60] ; # Cnt\n  %268 = phi i64* [%256, %$60] ; # P\n  %269 = phi i64 [%257, %$60] ; # Q\n; # (? (<> Cnt 255))\n; # (<> Cnt 255)\n  %270 = icmp ne i32 %267, 255\n  br i1 %270, label %$64, label %$63\n$63:\n  %271 = phi i32 [%266, %$62] ; # Tag\n  %272 = phi i32 [%267, %$62] ; # Cnt\n  %273 = phi i64* [%268, %$62] ; # P\n  %274 = phi i64 [%269, %$62] ; # Q\n  br label %$55\n$64:\n  %275 = phi i32 [%266, %$62] ; # Tag\n  %276 = phi i32 [%267, %$62] ; # Cnt\n  %277 = phi i64* [%268, %$62] ; # P\n  %278 = phi i64 [%269, %$62] ; # Q\n  %279 = phi i64 [0, %$62] ; # ->\n; # (unless Cnt (goto 3))\n  %280 = icmp ne i32 %276, 0\n  br i1 %280, label %$66, label %$65\n$65:\n  %281 = phi i32 [%275, %$64] ; # Tag\n  %282 = phi i32 [%276, %$64] ; # Cnt\n  %283 = phi i64* [%277, %$64] ; # P\n  %284 = phi i64 [%278, %$64] ; # Q\n; # (goto 3)\n  br label %$-3\n$66:\n  %285 = phi i32 [%275, %$64] ; # Tag\n  %286 = phi i32 [%276, %$64] ; # Cnt\n  %287 = phi i64* [%277, %$64] ; # P\n  %288 = phi i64 [%278, %$64] ; # Q\n  br label %$54\n$54:\n  %289 = phi i32 [%219, %$29], [%285, %$66] ; # Tag\n  %290 = phi i32 [%220, %$29], [%286, %$66] ; # Cnt\n  %291 = phi i64* [%221, %$29], [%287, %$66] ; # P\n  %292 = phi i64 [%222, %$29], [%288, %$66] ; # Q\n; # (loop (when (lt0 (call $GetBin)) (goto 1)) (byteSym (i8 @) P) (? ...\n  br label %$67\n$67:\n  %293 = phi i32 [%289, %$54], [%311, %$70] ; # Tag\n  %294 = phi i32 [%290, %$54], [%312, %$70] ; # Cnt\n  %295 = phi i64* [%291, %$54], [%313, %$70] ; # P\n  %296 = phi i64 [%292, %$54], [%314, %$70] ; # Q\n; # (when (lt0 (call $GetBin)) (goto 1))\n; # (call $GetBin)\n  %297 = load i32()*, i32()** @$GetBin\n  %298 = call i32 %297()\n; # (lt0 (call $GetBin))\n  %299 = icmp slt i32 %298, 0\n  br i1 %299, label %$68, label %$69\n$68:\n  %300 = phi i32 [%293, %$67] ; # Tag\n  %301 = phi i32 [%294, %$67] ; # Cnt\n  %302 = phi i64* [%295, %$67] ; # P\n  %303 = phi i64 [%296, %$67] ; # Q\n; # (goto 1)\n  br label %$-1\n$69:\n  %304 = phi i32 [%293, %$67] ; # Tag\n  %305 = phi i32 [%294, %$67] ; # Cnt\n  %306 = phi i64* [%295, %$67] ; # P\n  %307 = phi i64 [%296, %$67] ; # Q\n; # (i8 @)\n  %308 = trunc i32 %298 to i8\n; # (byteSym (i8 @) P)\n  call void @byteSym(i8 %308, i64* %306)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %309 = sub i32 %305, 1\n; # (=0 (dec 'Cnt))\n  %310 = icmp eq i32 %309, 0\n  br i1 %310, label %$71, label %$70\n$70:\n  %311 = phi i32 [%304, %$69] ; # Tag\n  %312 = phi i32 [%309, %$69] ; # Cnt\n  %313 = phi i64* [%306, %$69] ; # P\n  %314 = phi i64 [%307, %$69] ; # Q\n  br label %$67\n$71:\n  %315 = phi i32 [%304, %$69] ; # Tag\n  %316 = phi i32 [%309, %$69] ; # Cnt\n  %317 = phi i64* [%306, %$69] ; # P\n  %318 = phi i64 [%307, %$69] ; # Q\n  %319 = phi i64 [0, %$69] ; # ->\n; # (: 3 (drop Q (let Nm (val Q) (case Tag (TRANSIENT (consStr Nm)) (...\n  br label %$-3\n$-3:\n  %320 = phi i32 [%281, %$65], [%315, %$71] ; # Tag\n  %321 = phi i32 [%282, %$65], [%316, %$71] ; # Cnt\n  %322 = phi i64* [%283, %$65], [%317, %$71] ; # P\n  %323 = phi i64 [%284, %$65], [%318, %$71] ; # Q\n; # (drop Q (let Nm (val Q) (case Tag (TRANSIENT (consStr Nm)) (INTER...\n; # (let Nm (val Q) (case Tag (TRANSIENT (consStr Nm)) (INTERN (reque...\n; # (val Q)\n  %324 = inttoptr i64 %323 to i64*\n  %325 = load i64, i64* %324\n; # (case Tag (TRANSIENT (consStr Nm)) (INTERN (requestSym Nm)) (T (w...\n  switch i32 %320, label %$72 [\n    i32 2, label %$74\n    i32 1, label %$75\n  ]\n$74:\n  %326 = phi i32 [%320, %$-3] ; # Tag\n  %327 = phi i32 [%321, %$-3] ; # Cnt\n  %328 = phi i64* [%322, %$-3] ; # P\n  %329 = phi i64 [%323, %$-3] ; # Q\n  %330 = phi i64 [%325, %$-3] ; # Nm\n; # (consStr Nm)\n  %331 = call i64 @consStr(i64 %330)\n  br label %$73\n$75:\n  %332 = phi i32 [%320, %$-3] ; # Tag\n  %333 = phi i32 [%321, %$-3] ; # Cnt\n  %334 = phi i64* [%322, %$-3] ; # P\n  %335 = phi i64 [%323, %$-3] ; # Q\n  %336 = phi i64 [%325, %$-3] ; # Nm\n; # (requestSym Nm)\n  %337 = call i64 @requestSym(i64 %336)\n  br label %$73\n$72:\n  %338 = phi i32 [%320, %$-3] ; # Tag\n  %339 = phi i32 [%321, %$-3] ; # Cnt\n  %340 = phi i64* [%322, %$-3] ; # P\n  %341 = phi i64 [%323, %$-3] ; # Q\n  %342 = phi i64 [%325, %$-3] ; # Nm\n; # (when (val $Extn) (let N (shl (& (i64 (+ (objFile Nm) @)) (hex \"F...\n; # (val $Extn)\n  %343 = load i32, i32* @$Extn\n  %344 = icmp ne i32 %343, 0\n  br i1 %344, label %$76, label %$77\n$76:\n  %345 = phi i32 [%338, %$72] ; # Tag\n  %346 = phi i32 [%339, %$72] ; # Cnt\n  %347 = phi i64* [%340, %$72] ; # P\n  %348 = phi i64 [%341, %$72] ; # Q\n  %349 = phi i64 [%342, %$72] ; # Nm\n; # (let N (shl (& (i64 (+ (objFile Nm) @)) (hex \"FFFF\")) 24) (setq N...\n; # (objFile Nm)\n  %350 = call i32 @objFile(i64 %349)\n; # (+ (objFile Nm) @)\n  %351 = add i32 %350, %343\n; # (i64 (+ (objFile Nm) @))\n  %352 = sext i32 %351 to i64\n; # (& (i64 (+ (objFile Nm) @)) (hex \"FFFF\"))\n  %353 = and i64 %352, 65535\n; # (shl (& (i64 (+ (objFile Nm) @)) (hex \"FFFF\")) 24)\n  %354 = shl i64 %353, 24\n; # (& Nm (hex \"FFF00FFF00FFFFFF\"))\n  %355 = and i64 %349, 18442258061990035455\n; # (shl N 12)\n  %356 = shl i64 %354, 12\n; # (| N (shl N 12))\n  %357 = or i64 %354, %356\n; # (& (| N (shl N 12)) (hex \"000FF000FF000000\"))\n  %358 = and i64 %357, 4486011719516160\n; # (| (& Nm (hex \"FFF00FFF00FFFFFF\")) (& (| N (shl N 12)) (hex \"000F...\n  %359 = or i64 %355, %358\n  br label %$77\n$77:\n  %360 = phi i32 [%338, %$72], [%345, %$76] ; # Tag\n  %361 = phi i32 [%339, %$72], [%346, %$76] ; # Cnt\n  %362 = phi i64* [%340, %$72], [%347, %$76] ; # P\n  %363 = phi i64 [%341, %$72], [%348, %$76] ; # Q\n  %364 = phi i64 [%342, %$72], [%359, %$76] ; # Nm\n; # (extern Nm)\n  %365 = call i64 @extern(i64 %364)\n  br label %$73\n$73:\n  %366 = phi i32 [%326, %$74], [%332, %$75], [%360, %$77] ; # Tag\n  %367 = phi i32 [%327, %$74], [%333, %$75], [%361, %$77] ; # Cnt\n  %368 = phi i64* [%328, %$74], [%334, %$75], [%362, %$77] ; # P\n  %369 = phi i64 [%329, %$74], [%335, %$75], [%363, %$77] ; # Q\n  %370 = phi i64 [%330, %$74], [%336, %$75], [%364, %$77] ; # Nm\n  %371 = phi i64 [%331, %$74], [%337, %$75], [%365, %$77] ; # ->\n  %372 = inttoptr i64 %323 to i64*\n  %373 = getelementptr i64, i64* %372, i32 1\n  %374 = load i64, i64* %373\n  %375 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %374, i64* %375\n  br label %$28\n$28:\n  %376 = phi i32 [%210, %$52], [%366, %$73] ; # Tag\n  %377 = phi i32 [%211, %$52], [%367, %$73] ; # Cnt\n  %378 = phi i64* [%212, %$52], [%368, %$73] ; # P\n  %379 = phi i64 [%213, %$52], [%369, %$73] ; # Q\n  %380 = phi i64 [%214, %$52], [%371, %$73] ; # ->\n  br label %$27\n$27:\n  %381 = phi i64 [0, %$25], [%380, %$28] ; # ->\n  br label %$3\n$3:\n  %382 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [%60, %$10], [10, %$6], [%61, %$7], [%381, %$27] ; # ->\n  ret i64 %382\n}\n\ndefine void @prCnt(i8, i64) align 8 {\n$1:\n; # (let N Num (while (setq N (shr N 8)) (inc 'Tag 4)))\n; # (while (setq N (shr N 8)) (inc 'Tag 4))\n  br label %$2\n$2:\n  %2 = phi i8 [%0, %$1], [%10, %$3] ; # Tag\n  %3 = phi i64 [%1, %$1], [%8, %$3] ; # Num\n  %4 = phi i64 [%1, %$1], [%9, %$3] ; # N\n; # (shr N 8)\n  %5 = lshr i64 %4, 8\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$4\n$3:\n  %7 = phi i8 [%2, %$2] ; # Tag\n  %8 = phi i64 [%3, %$2] ; # Num\n  %9 = phi i64 [%5, %$2] ; # N\n; # (inc 'Tag 4)\n  %10 = add i8 %7, 4\n  br label %$2\n$4:\n  %11 = phi i8 [%2, %$2] ; # Tag\n  %12 = phi i64 [%3, %$2] ; # Num\n  %13 = phi i64 [%5, %$2] ; # N\n; # (call $PutBin Tag)\n  %14 = load void(i8)*, void(i8)** @$PutBin\n  call void %14(i8 %11)\n; # (loop (call $PutBin (i8 Num)) (? (=0 (setq Num (shr Num 8)))))\n  br label %$5\n$5:\n  %15 = phi i8 [%11, %$4], [%21, %$6] ; # Tag\n  %16 = phi i64 [%12, %$4], [%22, %$6] ; # Num\n; # (i8 Num)\n  %17 = trunc i64 %16 to i8\n; # (call $PutBin (i8 Num))\n  %18 = load void(i8)*, void(i8)** @$PutBin\n  call void %18(i8 %17)\n; # (? (=0 (setq Num (shr Num 8))))\n; # (shr Num 8)\n  %19 = lshr i64 %16, 8\n; # (=0 (setq Num (shr Num 8)))\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$6\n$6:\n  %21 = phi i8 [%15, %$5] ; # Tag\n  %22 = phi i64 [%19, %$5] ; # Num\n  br label %$5\n$7:\n  %23 = phi i8 [%15, %$5] ; # Tag\n  %24 = phi i64 [%19, %$5] ; # Num\n  %25 = phi i64 [0, %$5] ; # ->\n  ret void\n}\n\ndefine void @binPrint(i64) align 8 {\n$1:\n; # (cond ((cnt? X) (tailcall (prCnt (+ NUMBER 4) (shr X 3)))) ((big?...\n; # (cnt? X)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n; # (+ NUMBER 4)\n; # (shr X 3)\n  %4 = lshr i64 %3, 3\n; # (prCnt (+ NUMBER 4) (shr X 3))\n  tail call void @prCnt(i8 4, i64 %4)\n  br label %$2\n$3:\n  %5 = phi i64 [%0, %$1] ; # X\n; # (big? X)\n  %6 = and i64 %5, 4\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$6, label %$5\n$6:\n  %8 = phi i64 [%5, %$3] ; # X\n; # (let (Y (pos X) Z Y N 8) (loop (let C (val (dig Z)) (? (cnt? (set...\n; # (pos X)\n  %9 = and i64 %8, -9\n; # (loop (let C (val (dig Z)) (? (cnt? (setq Z (val (big Z)))) (setq...\n  br label %$7\n$7:\n  %10 = phi i64 [%8, %$6], [%39, %$8] ; # X\n  %11 = phi i64 [%9, %$6], [%40, %$8] ; # Y\n  %12 = phi i64 [%9, %$6], [%41, %$8] ; # Z\n  %13 = phi i64 [8, %$6], [%44, %$8] ; # N\n; # (let C (val (dig Z)) (? (cnt? (setq Z (val (big Z)))) (setq Z (in...\n; # (dig Z)\n  %14 = add i64 %12, -4\n; # (val (dig Z))\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n; # (? (cnt? (setq Z (val (big Z)))) (setq Z (int Z) C (add C C) Z (a...\n; # (big Z)\n  %17 = add i64 %12, 4\n; # (val (big Z))\n  %18 = inttoptr i64 %17 to i64*\n  %19 = load i64, i64* %18\n; # (cnt? (setq Z (val (big Z))))\n  %20 = and i64 %19, 2\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$10, label %$8\n$10:\n  %22 = phi i64 [%10, %$7] ; # X\n  %23 = phi i64 [%11, %$7] ; # Y\n  %24 = phi i64 [%19, %$7] ; # Z\n  %25 = phi i64 [%13, %$7] ; # N\n  %26 = phi i64 [%16, %$7] ; # C\n; # (int Z)\n  %27 = lshr i64 %24, 4\n; # (add C C)\n  %28 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %26, i64 %26)\n  %29 = extractvalue {i64, i1} %28, 1\n  %30 = extractvalue {i64, i1} %28, 0\n; # (add Z Z @@)\n  %31 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %27, i64 %27)\n  %32 = extractvalue {i64, i1} %31, 1\n  %33 = extractvalue {i64, i1} %31, 0\n  %34 = zext i1 %29 to i64\n  %35 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %33, i64 %34)\n  %36 = extractvalue {i64, i1} %35, 1\n  %37 = or i1 %32, %36\n  %38 = extractvalue {i64, i1} %35, 0\n  br label %$9\n$8:\n  %39 = phi i64 [%10, %$7] ; # X\n  %40 = phi i64 [%11, %$7] ; # Y\n  %41 = phi i64 [%19, %$7] ; # Z\n  %42 = phi i64 [%13, %$7] ; # N\n  %43 = phi i64 [%16, %$7] ; # C\n; # (inc 'N 8)\n  %44 = add i64 %42, 8\n  br label %$7\n$9:\n  %45 = phi i64 [%22, %$10] ; # X\n  %46 = phi i64 [%23, %$10] ; # Y\n  %47 = phi i64 [%38, %$10] ; # Z\n  %48 = phi i64 [%25, %$10] ; # N\n  %49 = phi i64 [%38, %$10] ; # ->\n; # (when Z (loop (inc 'N) (? (=0 (setq Z (shr Z 8))))))\n  %50 = icmp ne i64 %47, 0\n  br i1 %50, label %$11, label %$12\n$11:\n  %51 = phi i64 [%45, %$9] ; # X\n  %52 = phi i64 [%46, %$9] ; # Y\n  %53 = phi i64 [%47, %$9] ; # Z\n  %54 = phi i64 [%48, %$9] ; # N\n; # (loop (inc 'N) (? (=0 (setq Z (shr Z 8)))))\n  br label %$13\n$13:\n  %55 = phi i64 [%51, %$11], [%62, %$14] ; # X\n  %56 = phi i64 [%52, %$11], [%63, %$14] ; # Y\n  %57 = phi i64 [%53, %$11], [%64, %$14] ; # Z\n  %58 = phi i64 [%54, %$11], [%65, %$14] ; # N\n; # (inc 'N)\n  %59 = add i64 %58, 1\n; # (? (=0 (setq Z (shr Z 8))))\n; # (shr Z 8)\n  %60 = lshr i64 %57, 8\n; # (=0 (setq Z (shr Z 8)))\n  %61 = icmp eq i64 %60, 0\n  br i1 %61, label %$15, label %$14\n$14:\n  %62 = phi i64 [%55, %$13] ; # X\n  %63 = phi i64 [%56, %$13] ; # Y\n  %64 = phi i64 [%60, %$13] ; # Z\n  %65 = phi i64 [%59, %$13] ; # N\n  br label %$13\n$15:\n  %66 = phi i64 [%55, %$13] ; # X\n  %67 = phi i64 [%56, %$13] ; # Y\n  %68 = phi i64 [%60, %$13] ; # Z\n  %69 = phi i64 [%59, %$13] ; # N\n  %70 = phi i64 [0, %$13] ; # ->\n  br label %$12\n$12:\n  %71 = phi i64 [%45, %$9], [%66, %$15] ; # X\n  %72 = phi i64 [%46, %$9], [%67, %$15] ; # Y\n  %73 = phi i64 [%47, %$9], [%68, %$15] ; # Z\n  %74 = phi i64 [%48, %$9], [%69, %$15] ; # N\n; # (let (M (- N 63) D (val (dig Y))) (when (ge0 M) (setq N 63)) (set...\n; # (- N 63)\n  %75 = sub i64 %74, 63\n; # (dig Y)\n  %76 = add i64 %72, -4\n; # (val (dig Y))\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n; # (when (ge0 M) (setq N 63))\n; # (ge0 M)\n  %79 = icmp sge i64 %75, 0\n  br i1 %79, label %$16, label %$17\n$16:\n  %80 = phi i64 [%71, %$12] ; # X\n  %81 = phi i64 [%72, %$12] ; # Y\n  %82 = phi i64 [%73, %$12] ; # Z\n  %83 = phi i64 [%74, %$12] ; # N\n  %84 = phi i64 [%75, %$12] ; # M\n  %85 = phi i64 [%78, %$12] ; # D\n  br label %$17\n$17:\n  %86 = phi i64 [%71, %$12], [%80, %$16] ; # X\n  %87 = phi i64 [%72, %$12], [%81, %$16] ; # Y\n  %88 = phi i64 [%73, %$12], [%82, %$16] ; # Z\n  %89 = phi i64 [%74, %$12], [63, %$16] ; # N\n  %90 = phi i64 [%75, %$12], [%84, %$16] ; # M\n  %91 = phi i64 [%78, %$12], [%85, %$16] ; # D\n; # (big Y)\n  %92 = add i64 %87, 4\n; # (val (big Y))\n  %93 = inttoptr i64 %92 to i64*\n  %94 = load i64, i64* %93\n; # (shr X X 4)\n  %95 = call i64 @llvm.fshr.i64(i64 %86, i64 %86, i64 4)\n; # (add X X)\n  %96 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %95, i64 %95)\n  %97 = extractvalue {i64, i1} %96, 1\n  %98 = extractvalue {i64, i1} %96, 0\n; # (add D D @@)\n  %99 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %91, i64 %91)\n  %100 = extractvalue {i64, i1} %99, 1\n  %101 = extractvalue {i64, i1} %99, 0\n  %102 = zext i1 %97 to i64\n  %103 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %101, i64 %102)\n  %104 = extractvalue {i64, i1} %103, 1\n  %105 = or i1 %100, %104\n  %106 = extractvalue {i64, i1} %103, 0\n; # (shl N 2)\n  %107 = shl i64 %89, 2\n; # (i8 (shl N 2))\n  %108 = trunc i64 %107 to i8\n; # (call $PutBin (i8 (shl N 2)))\n  %109 = load void(i8)*, void(i8)** @$PutBin\n  call void %109(i8 %108)\n; # (let (S @@ C 8) (loop (loop (call $PutBin (i8 D)) (if (dec 'C) (s...\n; # (loop (loop (call $PutBin (i8 D)) (if (dec 'C) (setq D (shr D 8))...\n  br label %$18\n$18:\n  %110 = phi i64 [%95, %$17], [%253, %$33] ; # X\n  %111 = phi i64 [%94, %$17], [%254, %$33] ; # Y\n  %112 = phi i64 [%88, %$17], [%255, %$33] ; # Z\n  %113 = phi i64 [%89, %$17], [%256, %$33] ; # N\n  %114 = phi i64 [%90, %$17], [%257, %$33] ; # M\n  %115 = phi i64 [%106, %$17], [%258, %$33] ; # D\n  %116 = phi i1 [%105, %$17], [%259, %$33] ; # S\n  %117 = phi i64 [8, %$17], [%260, %$33] ; # C\n; # (loop (call $PutBin (i8 D)) (if (dec 'C) (setq D (shr D 8)) (setq...\n  br label %$19\n$19:\n  %118 = phi i64 [%110, %$18], [%199, %$26] ; # X\n  %119 = phi i64 [%111, %$18], [%200, %$26] ; # Y\n  %120 = phi i64 [%112, %$18], [%201, %$26] ; # Z\n  %121 = phi i64 [%113, %$18], [%202, %$26] ; # N\n  %122 = phi i64 [%114, %$18], [%203, %$26] ; # M\n  %123 = phi i64 [%115, %$18], [%204, %$26] ; # D\n  %124 = phi i1 [%116, %$18], [%205, %$26] ; # S\n  %125 = phi i64 [%117, %$18], [%206, %$26] ; # C\n; # (i8 D)\n  %126 = trunc i64 %123 to i8\n; # (call $PutBin (i8 D))\n  %127 = load void(i8)*, void(i8)** @$PutBin\n  call void %127(i8 %126)\n; # (if (dec 'C) (setq D (shr D 8)) (setq C 8) (if (cnt? Y) (setq D (...\n; # (dec 'C)\n  %128 = sub i64 %125, 1\n  %129 = icmp ne i64 %128, 0\n  br i1 %129, label %$20, label %$21\n$20:\n  %130 = phi i64 [%118, %$19] ; # X\n  %131 = phi i64 [%119, %$19] ; # Y\n  %132 = phi i64 [%120, %$19] ; # Z\n  %133 = phi i64 [%121, %$19] ; # N\n  %134 = phi i64 [%122, %$19] ; # M\n  %135 = phi i64 [%123, %$19] ; # D\n  %136 = phi i1 [%124, %$19] ; # S\n  %137 = phi i64 [%128, %$19] ; # C\n; # (shr D 8)\n  %138 = lshr i64 %135, 8\n  br label %$22\n$21:\n  %139 = phi i64 [%118, %$19] ; # X\n  %140 = phi i64 [%119, %$19] ; # Y\n  %141 = phi i64 [%120, %$19] ; # Z\n  %142 = phi i64 [%121, %$19] ; # N\n  %143 = phi i64 [%122, %$19] ; # M\n  %144 = phi i64 [%123, %$19] ; # D\n  %145 = phi i1 [%124, %$19] ; # S\n  %146 = phi i64 [%128, %$19] ; # C\n; # (if (cnt? Y) (setq D (int Y)) (setq D (val (dig Y)) Y (val (big Y...\n; # (cnt? Y)\n  %147 = and i64 %140, 2\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$23, label %$24\n$23:\n  %149 = phi i64 [%139, %$21] ; # X\n  %150 = phi i64 [%140, %$21] ; # Y\n  %151 = phi i64 [%141, %$21] ; # Z\n  %152 = phi i64 [%142, %$21] ; # N\n  %153 = phi i64 [%143, %$21] ; # M\n  %154 = phi i64 [%144, %$21] ; # D\n  %155 = phi i1 [%145, %$21] ; # S\n  %156 = phi i64 [8, %$21] ; # C\n; # (int Y)\n  %157 = lshr i64 %150, 4\n  br label %$25\n$24:\n  %158 = phi i64 [%139, %$21] ; # X\n  %159 = phi i64 [%140, %$21] ; # Y\n  %160 = phi i64 [%141, %$21] ; # Z\n  %161 = phi i64 [%142, %$21] ; # N\n  %162 = phi i64 [%143, %$21] ; # M\n  %163 = phi i64 [%144, %$21] ; # D\n  %164 = phi i1 [%145, %$21] ; # S\n  %165 = phi i64 [8, %$21] ; # C\n; # (dig Y)\n  %166 = add i64 %159, -4\n; # (val (dig Y))\n  %167 = inttoptr i64 %166 to i64*\n  %168 = load i64, i64* %167\n; # (big Y)\n  %169 = add i64 %159, 4\n; # (val (big Y))\n  %170 = inttoptr i64 %169 to i64*\n  %171 = load i64, i64* %170\n  br label %$25\n$25:\n  %172 = phi i64 [%149, %$23], [%158, %$24] ; # X\n  %173 = phi i64 [%150, %$23], [%171, %$24] ; # Y\n  %174 = phi i64 [%151, %$23], [%160, %$24] ; # Z\n  %175 = phi i64 [%152, %$23], [%161, %$24] ; # N\n  %176 = phi i64 [%153, %$23], [%162, %$24] ; # M\n  %177 = phi i64 [%157, %$23], [%168, %$24] ; # D\n  %178 = phi i1 [%155, %$23], [%164, %$24] ; # S\n  %179 = phi i64 [%156, %$23], [%165, %$24] ; # C\n  %180 = phi i64 [%157, %$23], [%171, %$24] ; # ->\n; # (add D D S)\n  %181 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %177, i64 %177)\n  %182 = extractvalue {i64, i1} %181, 1\n  %183 = extractvalue {i64, i1} %181, 0\n  %184 = zext i1 %178 to i64\n  %185 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %183, i64 %184)\n  %186 = extractvalue {i64, i1} %185, 1\n  %187 = or i1 %182, %186\n  %188 = extractvalue {i64, i1} %185, 0\n  br label %$22\n$22:\n  %189 = phi i64 [%130, %$20], [%172, %$25] ; # X\n  %190 = phi i64 [%131, %$20], [%173, %$25] ; # Y\n  %191 = phi i64 [%132, %$20], [%174, %$25] ; # Z\n  %192 = phi i64 [%133, %$20], [%175, %$25] ; # N\n  %193 = phi i64 [%134, %$20], [%176, %$25] ; # M\n  %194 = phi i64 [%138, %$20], [%188, %$25] ; # D\n  %195 = phi i1 [%136, %$20], [%187, %$25] ; # S\n  %196 = phi i64 [%137, %$20], [%179, %$25] ; # C\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %197 = sub i64 %192, 1\n; # (=0 (dec 'N))\n  %198 = icmp eq i64 %197, 0\n  br i1 %198, label %$27, label %$26\n$26:\n  %199 = phi i64 [%189, %$22] ; # X\n  %200 = phi i64 [%190, %$22] ; # Y\n  %201 = phi i64 [%191, %$22] ; # Z\n  %202 = phi i64 [%197, %$22] ; # N\n  %203 = phi i64 [%193, %$22] ; # M\n  %204 = phi i64 [%194, %$22] ; # D\n  %205 = phi i1 [%195, %$22] ; # S\n  %206 = phi i64 [%196, %$22] ; # C\n  br label %$19\n$27:\n  %207 = phi i64 [%189, %$22] ; # X\n  %208 = phi i64 [%190, %$22] ; # Y\n  %209 = phi i64 [%191, %$22] ; # Z\n  %210 = phi i64 [%197, %$22] ; # N\n  %211 = phi i64 [%193, %$22] ; # M\n  %212 = phi i64 [%194, %$22] ; # D\n  %213 = phi i1 [%195, %$22] ; # S\n  %214 = phi i64 [%196, %$22] ; # C\n  %215 = phi i64 [0, %$22] ; # ->\n; # (? (lt0 M))\n; # (lt0 M)\n  %216 = icmp slt i64 %211, 0\n  br i1 %216, label %$29, label %$28\n$28:\n  %217 = phi i64 [%207, %$27] ; # X\n  %218 = phi i64 [%208, %$27] ; # Y\n  %219 = phi i64 [%209, %$27] ; # Z\n  %220 = phi i64 [%210, %$27] ; # N\n  %221 = phi i64 [%211, %$27] ; # M\n  %222 = phi i64 [%212, %$27] ; # D\n  %223 = phi i1 [%213, %$27] ; # S\n  %224 = phi i64 [%214, %$27] ; # C\n; # (? (=0 M) (call $PutBin 0))\n; # (=0 M)\n  %225 = icmp eq i64 %221, 0\n  br i1 %225, label %$31, label %$30\n$31:\n  %226 = phi i64 [%217, %$28] ; # X\n  %227 = phi i64 [%218, %$28] ; # Y\n  %228 = phi i64 [%219, %$28] ; # Z\n  %229 = phi i64 [%220, %$28] ; # N\n  %230 = phi i64 [%221, %$28] ; # M\n  %231 = phi i64 [%222, %$28] ; # D\n  %232 = phi i1 [%223, %$28] ; # S\n  %233 = phi i64 [%224, %$28] ; # C\n; # (call $PutBin 0)\n  %234 = load void(i8)*, void(i8)** @$PutBin\n  call void %234(i8 0)\n  br label %$29\n$30:\n  %235 = phi i64 [%217, %$28] ; # X\n  %236 = phi i64 [%218, %$28] ; # Y\n  %237 = phi i64 [%219, %$28] ; # Z\n  %238 = phi i64 [%220, %$28] ; # N\n  %239 = phi i64 [%221, %$28] ; # M\n  %240 = phi i64 [%222, %$28] ; # D\n  %241 = phi i1 [%223, %$28] ; # S\n  %242 = phi i64 [%224, %$28] ; # C\n; # (when (ge0 (setq M (- (setq N M) 255))) (setq N 255))\n; # (- (setq N M) 255)\n  %243 = sub i64 %239, 255\n; # (ge0 (setq M (- (setq N M) 255)))\n  %244 = icmp sge i64 %243, 0\n  br i1 %244, label %$32, label %$33\n$32:\n  %245 = phi i64 [%235, %$30] ; # X\n  %246 = phi i64 [%236, %$30] ; # Y\n  %247 = phi i64 [%237, %$30] ; # Z\n  %248 = phi i64 [%239, %$30] ; # N\n  %249 = phi i64 [%243, %$30] ; # M\n  %250 = phi i64 [%240, %$30] ; # D\n  %251 = phi i1 [%241, %$30] ; # S\n  %252 = phi i64 [%242, %$30] ; # C\n  br label %$33\n$33:\n  %253 = phi i64 [%235, %$30], [%245, %$32] ; # X\n  %254 = phi i64 [%236, %$30], [%246, %$32] ; # Y\n  %255 = phi i64 [%237, %$30], [%247, %$32] ; # Z\n  %256 = phi i64 [%239, %$30], [255, %$32] ; # N\n  %257 = phi i64 [%243, %$30], [%249, %$32] ; # M\n  %258 = phi i64 [%240, %$30], [%250, %$32] ; # D\n  %259 = phi i1 [%241, %$30], [%251, %$32] ; # S\n  %260 = phi i64 [%242, %$30], [%252, %$32] ; # C\n; # (i8 N)\n  %261 = trunc i64 %256 to i8\n; # (call $PutBin (i8 N))\n  %262 = load void(i8)*, void(i8)** @$PutBin\n  call void %262(i8 %261)\n  br label %$18\n$29:\n  %263 = phi i64 [%207, %$27], [%226, %$31] ; # X\n  %264 = phi i64 [%208, %$27], [%227, %$31] ; # Y\n  %265 = phi i64 [%209, %$27], [%228, %$31] ; # Z\n  %266 = phi i64 [%210, %$27], [%229, %$31] ; # N\n  %267 = phi i64 [%211, %$27], [%230, %$31] ; # M\n  %268 = phi i64 [%212, %$27], [%231, %$31] ; # D\n  %269 = phi i1 [%213, %$27], [%232, %$31] ; # S\n  %270 = phi i64 [%214, %$27], [%233, %$31] ; # C\n  br label %$2\n$5:\n  %271 = phi i64 [%5, %$3] ; # X\n; # (nil? X)\n  %272 = icmp eq i64 %271, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %272, label %$35, label %$34\n$35:\n  %273 = phi i64 [%271, %$5] ; # X\n; # (call $PutBin NIX)\n  %274 = load void(i8)*, void(i8)** @$PutBin\n  call void %274(i8 0)\n  br label %$2\n$34:\n  %275 = phi i64 [%271, %$5] ; # X\n; # (pair X)\n  %276 = and i64 %275, 15\n  %277 = icmp eq i64 %276, 0\n  br i1 %277, label %$37, label %$36\n$37:\n  %278 = phi i64 [%275, %$34] ; # X\n; # (call $PutBin BEG)\n  %279 = load void(i8)*, void(i8)** @$PutBin\n  call void %279(i8 1)\n; # (let (P (circ X) Z X) (loop (binPrint (car X)) (? (nil? (shift X)...\n; # (circ X)\n  %280 = call i64 @circ(i64 %278)\n; # (loop (binPrint (car X)) (? (nil? (shift X)) (call $PutBin END)) ...\n  br label %$38\n$38:\n  %281 = phi i64 [%278, %$37], [%321, %$47] ; # X\n  %282 = phi i64 [%280, %$37], [%322, %$47] ; # P\n  %283 = phi i64 [%278, %$37], [%323, %$47] ; # Z\n; # (car X)\n  %284 = inttoptr i64 %281 to i64*\n  %285 = load i64, i64* %284\n; # (binPrint (car X))\n  call void @binPrint(i64 %285)\n; # (? (nil? (shift X)) (call $PutBin END))\n; # (shift X)\n  %286 = inttoptr i64 %281 to i64*\n  %287 = getelementptr i64, i64* %286, i32 1\n  %288 = load i64, i64* %287\n; # (nil? (shift X))\n  %289 = icmp eq i64 %288, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %289, label %$41, label %$39\n$41:\n  %290 = phi i64 [%288, %$38] ; # X\n  %291 = phi i64 [%282, %$38] ; # P\n  %292 = phi i64 [%283, %$38] ; # Z\n; # (call $PutBin END)\n  %293 = load void(i8)*, void(i8)** @$PutBin\n  call void %293(i8 3)\n  br label %$40\n$39:\n  %294 = phi i64 [%288, %$38] ; # X\n  %295 = phi i64 [%282, %$38] ; # P\n  %296 = phi i64 [%283, %$38] ; # Z\n; # (? (atom X) (call $PutBin DOT) (binPrint X))\n; # (atom X)\n  %297 = and i64 %294, 15\n  %298 = icmp ne i64 %297, 0\n  br i1 %298, label %$43, label %$42\n$43:\n  %299 = phi i64 [%294, %$39] ; # X\n  %300 = phi i64 [%295, %$39] ; # P\n  %301 = phi i64 [%296, %$39] ; # Z\n; # (call $PutBin DOT)\n  %302 = load void(i8)*, void(i8)** @$PutBin\n  call void %302(i8 2)\n; # (binPrint X)\n  call void @binPrint(i64 %299)\n  br label %$40\n$42:\n  %303 = phi i64 [%294, %$39] ; # X\n  %304 = phi i64 [%295, %$39] ; # P\n  %305 = phi i64 [%296, %$39] ; # Z\n; # (? (== Z X) (call $PutBin DOT) (call $PutBin END))\n; # (== Z X)\n  %306 = icmp eq i64 %305, %303\n  br i1 %306, label %$45, label %$44\n$45:\n  %307 = phi i64 [%303, %$42] ; # X\n  %308 = phi i64 [%304, %$42] ; # P\n  %309 = phi i64 [%305, %$42] ; # Z\n; # (call $PutBin DOT)\n  %310 = load void(i8)*, void(i8)** @$PutBin\n  call void %310(i8 2)\n; # (call $PutBin END)\n  %311 = load void(i8)*, void(i8)** @$PutBin\n  call void %311(i8 3)\n  br label %$40\n$44:\n  %312 = phi i64 [%303, %$42] ; # X\n  %313 = phi i64 [%304, %$42] ; # P\n  %314 = phi i64 [%305, %$42] ; # Z\n; # (when (== P X) (call $PutBin DOT) (call $PutBin BEG) (setq Z P))\n; # (== P X)\n  %315 = icmp eq i64 %313, %312\n  br i1 %315, label %$46, label %$47\n$46:\n  %316 = phi i64 [%312, %$44] ; # X\n  %317 = phi i64 [%313, %$44] ; # P\n  %318 = phi i64 [%314, %$44] ; # Z\n; # (call $PutBin DOT)\n  %319 = load void(i8)*, void(i8)** @$PutBin\n  call void %319(i8 2)\n; # (call $PutBin BEG)\n  %320 = load void(i8)*, void(i8)** @$PutBin\n  call void %320(i8 1)\n  br label %$47\n$47:\n  %321 = phi i64 [%312, %$44], [%316, %$46] ; # X\n  %322 = phi i64 [%313, %$44], [%317, %$46] ; # P\n  %323 = phi i64 [%314, %$44], [%317, %$46] ; # Z\n  br label %$38\n$40:\n  %324 = phi i64 [%290, %$41], [%299, %$43], [%307, %$45] ; # X\n  %325 = phi i64 [%291, %$41], [%300, %$43], [%308, %$45] ; # P\n  %326 = phi i64 [%292, %$41], [%301, %$43], [%309, %$45] ; # Z\n  br label %$2\n$36:\n  %327 = phi i64 [%275, %$34] ; # X\n; # (tail X)\n  %328 = add i64 %327, -8\n; # (val (tail X))\n  %329 = inttoptr i64 %328 to i64*\n  %330 = load i64, i64* %329\n; # (sym? (val (tail X)))\n  %331 = and i64 %330, 8\n  %332 = icmp ne i64 %331, 0\n  br i1 %332, label %$49, label %$48\n$49:\n  %333 = phi i64 [%327, %$36] ; # X\n; # (let Nm (name (& @ -9)) (when (val $Extn) (let N (shl (& (i64 (- ...\n; # (& @ -9)\n  %334 = and i64 %330, -9\n; # (name (& @ -9))\n  br label %$50\n$50:\n  %335 = phi i64 [%334, %$49], [%341, %$51] ; # Tail\n  %336 = and i64 %335, 6\n  %337 = icmp ne i64 %336, 0\n  br i1 %337, label %$52, label %$51\n$51:\n  %338 = phi i64 [%335, %$50] ; # Tail\n  %339 = inttoptr i64 %338 to i64*\n  %340 = getelementptr i64, i64* %339, i32 1\n  %341 = load i64, i64* %340\n  br label %$50\n$52:\n  %342 = phi i64 [%335, %$50] ; # Tail\n; # (when (val $Extn) (let N (shl (& (i64 (- (objFile Nm) @)) (hex \"F...\n; # (val $Extn)\n  %343 = load i32, i32* @$Extn\n  %344 = icmp ne i32 %343, 0\n  br i1 %344, label %$53, label %$54\n$53:\n  %345 = phi i64 [%333, %$52] ; # X\n  %346 = phi i64 [%342, %$52] ; # Nm\n; # (let N (shl (& (i64 (- (objFile Nm) @)) (hex \"FFFF\")) 24) (setq N...\n; # (objFile Nm)\n  %347 = call i32 @objFile(i64 %346)\n; # (- (objFile Nm) @)\n  %348 = sub i32 %347, %343\n; # (i64 (- (objFile Nm) @))\n  %349 = sext i32 %348 to i64\n; # (& (i64 (- (objFile Nm) @)) (hex \"FFFF\"))\n  %350 = and i64 %349, 65535\n; # (shl (& (i64 (- (objFile Nm) @)) (hex \"FFFF\")) 24)\n  %351 = shl i64 %350, 24\n; # (& Nm (hex \"FFF00FFF00FFFFFF\"))\n  %352 = and i64 %346, 18442258061990035455\n; # (shl N 12)\n  %353 = shl i64 %351, 12\n; # (| N (shl N 12))\n  %354 = or i64 %351, %353\n; # (& (| N (shl N 12)) (hex \"000FF000FF000000\"))\n  %355 = and i64 %354, 4486011719516160\n; # (| (& Nm (hex \"FFF00FFF00FFFFFF\")) (& (| N (shl N 12)) (hex \"000F...\n  %356 = or i64 %352, %355\n  br label %$54\n$54:\n  %357 = phi i64 [%333, %$52], [%345, %$53] ; # X\n  %358 = phi i64 [%342, %$52], [%356, %$53] ; # Nm\n; # (+ EXTERN 4)\n; # (shl Nm 2)\n  %359 = shl i64 %358, 2\n; # (shr (shl Nm 2) 6)\n  %360 = lshr i64 %359, 6\n; # (prCnt (+ EXTERN 4) (shr (shl Nm 2) 6))\n  tail call void @prCnt(i8 7, i64 %360)\n  br label %$2\n$48:\n  %361 = phi i64 [%327, %$36] ; # X\n; # (name @)\n  br label %$55\n$55:\n  %362 = phi i64 [%330, %$48], [%368, %$56] ; # Tail\n  %363 = and i64 %362, 6\n  %364 = icmp ne i64 %363, 0\n  br i1 %364, label %$57, label %$56\n$56:\n  %365 = phi i64 [%362, %$55] ; # Tail\n  %366 = inttoptr i64 %365 to i64*\n  %367 = getelementptr i64, i64* %366, i32 1\n  %368 = load i64, i64* %367\n  br label %$55\n$57:\n  %369 = phi i64 [%362, %$55] ; # Tail\n; # (== (name @) ZERO)\n  %370 = icmp eq i64 %369, 2\n  br i1 %370, label %$59, label %$58\n$59:\n  %371 = phi i64 [%361, %$57] ; # X\n; # (call $PutBin NIX)\n  %372 = load void(i8)*, void(i8)** @$PutBin\n  call void %372(i8 0)\n  br label %$2\n$58:\n  %373 = phi i64 [%361, %$57] ; # X\n; # (let (Nm @ Tag (if (findSym X Nm (val $Intern)) (i8 INTERN) (i8 T...\n; # (if (findSym X Nm (val $Intern)) (i8 INTERN) (i8 TRANSIENT))\n; # (val $Intern)\n  %374 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %375 = load i64, i64* %374\n; # (findSym X Nm (val $Intern))\n  %376 = call i1 @findSym(i64 %373, i64 %369, i64 %375)\n  br i1 %376, label %$60, label %$61\n$60:\n  %377 = phi i64 [%373, %$58] ; # X\n  %378 = phi i64 [%369, %$58] ; # Nm\n; # (i8 INTERN)\n  br label %$62\n$61:\n  %379 = phi i64 [%373, %$58] ; # X\n  %380 = phi i64 [%369, %$58] ; # Nm\n; # (i8 TRANSIENT)\n  br label %$62\n$62:\n  %381 = phi i64 [%377, %$60], [%379, %$61] ; # X\n  %382 = phi i64 [%378, %$60], [%380, %$61] ; # Nm\n  %383 = phi i8 [1, %$60], [2, %$61] ; # ->\n; # (if (cnt? Nm) (prCnt (+ Tag 4) (int Nm)) (let (Y Nm N 8) (while (...\n; # (cnt? Nm)\n  %384 = and i64 %382, 2\n  %385 = icmp ne i64 %384, 0\n  br i1 %385, label %$63, label %$64\n$63:\n  %386 = phi i64 [%381, %$62] ; # X\n  %387 = phi i64 [%382, %$62] ; # Nm\n  %388 = phi i8 [%383, %$62] ; # Tag\n; # (+ Tag 4)\n  %389 = add i8 %388, 4\n; # (int Nm)\n  %390 = lshr i64 %387, 4\n; # (prCnt (+ Tag 4) (int Nm))\n  call void @prCnt(i8 %389, i64 %390)\n  br label %$65\n$64:\n  %391 = phi i64 [%381, %$62] ; # X\n  %392 = phi i64 [%382, %$62] ; # Nm\n  %393 = phi i8 [%383, %$62] ; # Tag\n; # (let (Y Nm N 8) (while (big? (setq Y (val (big Y)))) (inc 'N 8)) ...\n; # (while (big? (setq Y (val (big Y)))) (inc 'N 8))\n  br label %$66\n$66:\n  %394 = phi i64 [%391, %$64], [%404, %$67] ; # X\n  %395 = phi i64 [%392, %$64], [%405, %$67] ; # Nm\n  %396 = phi i8 [%393, %$64], [%406, %$67] ; # Tag\n  %397 = phi i64 [%392, %$64], [%407, %$67] ; # Y\n  %398 = phi i64 [8, %$64], [%409, %$67] ; # N\n; # (big Y)\n  %399 = add i64 %397, 4\n; # (val (big Y))\n  %400 = inttoptr i64 %399 to i64*\n  %401 = load i64, i64* %400\n; # (big? (setq Y (val (big Y))))\n  %402 = and i64 %401, 4\n  %403 = icmp ne i64 %402, 0\n  br i1 %403, label %$67, label %$68\n$67:\n  %404 = phi i64 [%394, %$66] ; # X\n  %405 = phi i64 [%395, %$66] ; # Nm\n  %406 = phi i8 [%396, %$66] ; # Tag\n  %407 = phi i64 [%401, %$66] ; # Y\n  %408 = phi i64 [%398, %$66] ; # N\n; # (inc 'N 8)\n  %409 = add i64 %408, 8\n  br label %$66\n$68:\n  %410 = phi i64 [%394, %$66] ; # X\n  %411 = phi i64 [%395, %$66] ; # Nm\n  %412 = phi i8 [%396, %$66] ; # Tag\n  %413 = phi i64 [%401, %$66] ; # Y\n  %414 = phi i64 [%398, %$66] ; # N\n; # (int Y)\n  %415 = lshr i64 %413, 4\n; # (while Y (inc 'N) (setq Y (shr Y 8)))\n  br label %$69\n$69:\n  %416 = phi i64 [%410, %$68], [%422, %$70] ; # X\n  %417 = phi i64 [%411, %$68], [%423, %$70] ; # Nm\n  %418 = phi i8 [%412, %$68], [%424, %$70] ; # Tag\n  %419 = phi i64 [%415, %$68], [%428, %$70] ; # Y\n  %420 = phi i64 [%414, %$68], [%427, %$70] ; # N\n  %421 = icmp ne i64 %419, 0\n  br i1 %421, label %$70, label %$71\n$70:\n  %422 = phi i64 [%416, %$69] ; # X\n  %423 = phi i64 [%417, %$69] ; # Nm\n  %424 = phi i8 [%418, %$69] ; # Tag\n  %425 = phi i64 [%419, %$69] ; # Y\n  %426 = phi i64 [%420, %$69] ; # N\n; # (inc 'N)\n  %427 = add i64 %426, 1\n; # (shr Y 8)\n  %428 = lshr i64 %425, 8\n  br label %$69\n$71:\n  %429 = phi i64 [%416, %$69] ; # X\n  %430 = phi i64 [%417, %$69] ; # Nm\n  %431 = phi i8 [%418, %$69] ; # Tag\n  %432 = phi i64 [%419, %$69] ; # Y\n  %433 = phi i64 [%420, %$69] ; # N\n; # (let (P (push 0 Nm) M (- N 63) C 8) (when (ge0 M) (setq N 63)) (c...\n; # (push 0 Nm)\n  %434 = alloca i64, i64 2, align 16\n  store i64 0, i64* %434\n  %435 = getelementptr i64, i64* %434, i32 1\n  store i64 %430, i64* %435\n; # (- N 63)\n  %436 = sub i64 %433, 63\n; # (when (ge0 M) (setq N 63))\n; # (ge0 M)\n  %437 = icmp sge i64 %436, 0\n  br i1 %437, label %$72, label %$73\n$72:\n  %438 = phi i64 [%429, %$71] ; # X\n  %439 = phi i64 [%430, %$71] ; # Nm\n  %440 = phi i8 [%431, %$71] ; # Tag\n  %441 = phi i64 [%432, %$71] ; # Y\n  %442 = phi i64 [%433, %$71] ; # N\n  %443 = phi i64* [%434, %$71] ; # P\n  %444 = phi i64 [%436, %$71] ; # M\n  %445 = phi i64 [8, %$71] ; # C\n  br label %$73\n$73:\n  %446 = phi i64 [%429, %$71], [%438, %$72] ; # X\n  %447 = phi i64 [%430, %$71], [%439, %$72] ; # Nm\n  %448 = phi i8 [%431, %$71], [%440, %$72] ; # Tag\n  %449 = phi i64 [%432, %$71], [%441, %$72] ; # Y\n  %450 = phi i64 [%433, %$71], [63, %$72] ; # N\n  %451 = phi i64* [%434, %$71], [%443, %$72] ; # P\n  %452 = phi i64 [%436, %$71], [%444, %$72] ; # M\n  %453 = phi i64 [8, %$71], [%445, %$72] ; # C\n; # (shl N 2)\n  %454 = shl i64 %450, 2\n; # (i8 (shl N 2))\n  %455 = trunc i64 %454 to i8\n; # (+ Tag (i8 (shl N 2)))\n  %456 = add i8 %448, %455\n; # (call $PutBin (+ Tag (i8 (shl N 2))))\n  %457 = load void(i8)*, void(i8)** @$PutBin\n  call void %457(i8 %456)\n; # (loop (loop (call $PutBin (symByte P)) (? (=0 (dec 'N)))) (? (lt0...\n  br label %$74\n$74:\n  %458 = phi i64 [%446, %$73], [%532, %$83] ; # X\n  %459 = phi i64 [%447, %$73], [%533, %$83] ; # Nm\n  %460 = phi i8 [%448, %$73], [%534, %$83] ; # Tag\n  %461 = phi i64 [%449, %$73], [%535, %$83] ; # Y\n  %462 = phi i64 [%450, %$73], [%536, %$83] ; # N\n  %463 = phi i64* [%451, %$73], [%537, %$83] ; # P\n  %464 = phi i64 [%452, %$73], [%538, %$83] ; # M\n  %465 = phi i64 [%453, %$73], [%539, %$83] ; # C\n; # (loop (call $PutBin (symByte P)) (? (=0 (dec 'N))))\n  br label %$75\n$75:\n  %466 = phi i64 [%458, %$74], [%478, %$76] ; # X\n  %467 = phi i64 [%459, %$74], [%479, %$76] ; # Nm\n  %468 = phi i8 [%460, %$74], [%480, %$76] ; # Tag\n  %469 = phi i64 [%461, %$74], [%481, %$76] ; # Y\n  %470 = phi i64 [%462, %$74], [%482, %$76] ; # N\n  %471 = phi i64* [%463, %$74], [%483, %$76] ; # P\n  %472 = phi i64 [%464, %$74], [%484, %$76] ; # M\n  %473 = phi i64 [%465, %$74], [%485, %$76] ; # C\n; # (symByte P)\n  %474 = call i8 @symByte(i64* %471)\n; # (call $PutBin (symByte P))\n  %475 = load void(i8)*, void(i8)** @$PutBin\n  call void %475(i8 %474)\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %476 = sub i64 %470, 1\n; # (=0 (dec 'N))\n  %477 = icmp eq i64 %476, 0\n  br i1 %477, label %$77, label %$76\n$76:\n  %478 = phi i64 [%466, %$75] ; # X\n  %479 = phi i64 [%467, %$75] ; # Nm\n  %480 = phi i8 [%468, %$75] ; # Tag\n  %481 = phi i64 [%469, %$75] ; # Y\n  %482 = phi i64 [%476, %$75] ; # N\n  %483 = phi i64* [%471, %$75] ; # P\n  %484 = phi i64 [%472, %$75] ; # M\n  %485 = phi i64 [%473, %$75] ; # C\n  br label %$75\n$77:\n  %486 = phi i64 [%466, %$75] ; # X\n  %487 = phi i64 [%467, %$75] ; # Nm\n  %488 = phi i8 [%468, %$75] ; # Tag\n  %489 = phi i64 [%469, %$75] ; # Y\n  %490 = phi i64 [%476, %$75] ; # N\n  %491 = phi i64* [%471, %$75] ; # P\n  %492 = phi i64 [%472, %$75] ; # M\n  %493 = phi i64 [%473, %$75] ; # C\n  %494 = phi i64 [0, %$75] ; # ->\n; # (? (lt0 M))\n; # (lt0 M)\n  %495 = icmp slt i64 %492, 0\n  br i1 %495, label %$79, label %$78\n$78:\n  %496 = phi i64 [%486, %$77] ; # X\n  %497 = phi i64 [%487, %$77] ; # Nm\n  %498 = phi i8 [%488, %$77] ; # Tag\n  %499 = phi i64 [%489, %$77] ; # Y\n  %500 = phi i64 [%490, %$77] ; # N\n  %501 = phi i64* [%491, %$77] ; # P\n  %502 = phi i64 [%492, %$77] ; # M\n  %503 = phi i64 [%493, %$77] ; # C\n; # (? (=0 M) (call $PutBin 0))\n; # (=0 M)\n  %504 = icmp eq i64 %502, 0\n  br i1 %504, label %$81, label %$80\n$81:\n  %505 = phi i64 [%496, %$78] ; # X\n  %506 = phi i64 [%497, %$78] ; # Nm\n  %507 = phi i8 [%498, %$78] ; # Tag\n  %508 = phi i64 [%499, %$78] ; # Y\n  %509 = phi i64 [%500, %$78] ; # N\n  %510 = phi i64* [%501, %$78] ; # P\n  %511 = phi i64 [%502, %$78] ; # M\n  %512 = phi i64 [%503, %$78] ; # C\n; # (call $PutBin 0)\n  %513 = load void(i8)*, void(i8)** @$PutBin\n  call void %513(i8 0)\n  br label %$79\n$80:\n  %514 = phi i64 [%496, %$78] ; # X\n  %515 = phi i64 [%497, %$78] ; # Nm\n  %516 = phi i8 [%498, %$78] ; # Tag\n  %517 = phi i64 [%499, %$78] ; # Y\n  %518 = phi i64 [%500, %$78] ; # N\n  %519 = phi i64* [%501, %$78] ; # P\n  %520 = phi i64 [%502, %$78] ; # M\n  %521 = phi i64 [%503, %$78] ; # C\n; # (when (ge0 (setq M (- (setq N M) 255))) (setq N 255))\n; # (- (setq N M) 255)\n  %522 = sub i64 %520, 255\n; # (ge0 (setq M (- (setq N M) 255)))\n  %523 = icmp sge i64 %522, 0\n  br i1 %523, label %$82, label %$83\n$82:\n  %524 = phi i64 [%514, %$80] ; # X\n  %525 = phi i64 [%515, %$80] ; # Nm\n  %526 = phi i8 [%516, %$80] ; # Tag\n  %527 = phi i64 [%517, %$80] ; # Y\n  %528 = phi i64 [%520, %$80] ; # N\n  %529 = phi i64* [%519, %$80] ; # P\n  %530 = phi i64 [%522, %$80] ; # M\n  %531 = phi i64 [%521, %$80] ; # C\n  br label %$83\n$83:\n  %532 = phi i64 [%514, %$80], [%524, %$82] ; # X\n  %533 = phi i64 [%515, %$80], [%525, %$82] ; # Nm\n  %534 = phi i8 [%516, %$80], [%526, %$82] ; # Tag\n  %535 = phi i64 [%517, %$80], [%527, %$82] ; # Y\n  %536 = phi i64 [%520, %$80], [255, %$82] ; # N\n  %537 = phi i64* [%519, %$80], [%529, %$82] ; # P\n  %538 = phi i64 [%522, %$80], [%530, %$82] ; # M\n  %539 = phi i64 [%521, %$80], [%531, %$82] ; # C\n; # (i8 N)\n  %540 = trunc i64 %536 to i8\n; # (call $PutBin (i8 N))\n  %541 = load void(i8)*, void(i8)** @$PutBin\n  call void %541(i8 %540)\n  br label %$74\n$79:\n  %542 = phi i64 [%486, %$77], [%505, %$81] ; # X\n  %543 = phi i64 [%487, %$77], [%506, %$81] ; # Nm\n  %544 = phi i8 [%488, %$77], [%507, %$81] ; # Tag\n  %545 = phi i64 [%489, %$77], [%508, %$81] ; # Y\n  %546 = phi i64 [%490, %$77], [%509, %$81] ; # N\n  %547 = phi i64* [%491, %$77], [%510, %$81] ; # P\n  %548 = phi i64 [%492, %$77], [%511, %$81] ; # M\n  %549 = phi i64 [%493, %$77], [%512, %$81] ; # C\n  br label %$65\n$65:\n  %550 = phi i64 [%386, %$63], [%542, %$79] ; # X\n  %551 = phi i64 [%387, %$63], [%543, %$79] ; # Nm\n  %552 = phi i8 [%388, %$63], [%544, %$79] ; # Tag\n  br label %$2\n$2:\n  %553 = phi i64 [%3, %$4], [%263, %$29], [%273, %$35], [%324, %$40], [%357, %$54], [%371, %$59], [%550, %$65] ; # X\n  ret void\n}\n\ndefine void @pr(i64) align 8 {\n$1:\n; # (set $PutBin (fun (void i8) _putStdout))\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** @$PutBin\n; # (binPrint X)\n  tail call void @binPrint(i64 %0)\n  ret void\n}\n\ndefine void @putTell(i8) align 8 {\n$1:\n; # (let P (val $Ptr) (set P B) (when (== (set $Ptr (inc P)) (val $En...\n; # (val $Ptr)\n  %1 = load i8*, i8** @$Ptr\n; # (set P B)\n  store i8 %0, i8* %1\n; # (when (== (set $Ptr (inc P)) (val $End)) (err 0 0 ($ \"Tell PIPE_B...\n; # (set $Ptr (inc P))\n; # (inc P)\n  %2 = getelementptr i8, i8* %1, i32 1\n  store i8* %2, i8** @$Ptr\n; # (val $End)\n  %3 = load i8*, i8** @$End\n; # (== (set $Ptr (inc P)) (val $End))\n  %4 = icmp eq i8* %2, %3\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i8 [%0, %$1] ; # B\n  %6 = phi i8* [%1, %$1] ; # P\n; # (err 0 0 ($ \"Tell PIPE_BUF\") null)\n  call void @err(i64 0, i64 0, i8* bitcast ([14 x i8]* @$41 to i8*), i8* null)\n  unreachable\n$3:\n  %7 = phi i8 [%0, %$1] ; # B\n  %8 = phi i8* [%1, %$1] ; # P\n  ret void\n}\n\ndefine void @prTell(i64) align 8 {\n$1:\n; # (set $PutBin (fun (void i8) putTell) $Extn 0)\n; # (fun (void i8) putTell)\n  store void(i8)* @putTell, void(i8)** @$PutBin\n  store i32 0, i32* @$Extn\n; # (binPrint X)\n  tail call void @binPrint(i64 %0)\n  ret void\n}\n\ndefine void @tellBeg(i8*) align 8 {\n$1:\n; # (set $TellBuf P $End (ofs P (dec (val PipeBufSize))) (inc 'P 8) B...\n  store i8* %0, i8** @$TellBuf\n; # (val PipeBufSize)\n  %1 = load i32, i32* @PipeBufSize\n; # (dec (val PipeBufSize))\n  %2 = sub i32 %1, 1\n; # (ofs P (dec (val PipeBufSize)))\n  %3 = getelementptr i8, i8* %0, i32 %2\n  store i8* %3, i8** @$End\n; # (inc 'P 8)\n  %4 = getelementptr i8, i8* %0, i32 8\n  store i8 1, i8* %4\n; # (inc P)\n  %5 = getelementptr i8, i8* %4, i32 1\n  store i8* %5, i8** @$Ptr\n  ret void\n}\n\ndefine void @tellEnd(i32) align 8 {\n$1:\n; # (let (P (val $Ptr) Q (val $TellBuf)) (set P END) (inc 'P) (let (D...\n; # (val $Ptr)\n  %1 = load i8*, i8** @$Ptr\n; # (val $TellBuf)\n  %2 = load i8*, i8** @$TellBuf\n; # (set P END)\n  store i8 3, i8* %1\n; # (inc 'P)\n  %3 = getelementptr i8, i8* %1, i32 1\n; # (let (D (i32 (- P Q)) N (- D 8)) (set (i32* Q) Pid (inc (i32* Q))...\n; # (- P Q)\n  %4 = ptrtoint i8* %3 to i64\n  %5 = ptrtoint i8* %2 to i64\n  %6 = sub i64 %4, %5\n; # (i32 (- P Q))\n  %7 = trunc i64 %6 to i32\n; # (- D 8)\n  %8 = sub i32 %7, 8\n; # (set (i32* Q) Pid (inc (i32* Q)) N)\n; # (i32* Q)\n  %9 = bitcast i8* %2 to i32*\n  store i32 %0, i32* %9\n; # (i32* Q)\n  %10 = bitcast i8* %2 to i32*\n; # (inc (i32* Q))\n  %11 = getelementptr i32, i32* %10, i32 1\n  store i32 %8, i32* %11\n; # (when (val $Tell) (let Fd @ (unless (wrBytes Fd Q D) (close Fd) (...\n; # (val $Tell)\n  %12 = load i32, i32* @$Tell\n  %13 = icmp ne i32 %12, 0\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i32 [%0, %$1] ; # Pid\n  %15 = phi i8* [%3, %$1] ; # P\n  %16 = phi i8* [%2, %$1] ; # Q\n  %17 = phi i32 [%7, %$1] ; # D\n  %18 = phi i32 [%8, %$1] ; # N\n; # (let Fd @ (unless (wrBytes Fd Q D) (close Fd) (set $Tell 0)))\n; # (unless (wrBytes Fd Q D) (close Fd) (set $Tell 0))\n; # (wrBytes Fd Q D)\n  %19 = call i1 @wrBytes(i32 %12, i8* %16, i32 %17)\n  br i1 %19, label %$5, label %$4\n$4:\n  %20 = phi i32 [%14, %$2] ; # Pid\n  %21 = phi i8* [%15, %$2] ; # P\n  %22 = phi i8* [%16, %$2] ; # Q\n  %23 = phi i32 [%17, %$2] ; # D\n  %24 = phi i32 [%18, %$2] ; # N\n  %25 = phi i32 [%12, %$2] ; # Fd\n; # (close Fd)\n  %26 = call i32 @close(i32 %25)\n; # (set $Tell 0)\n  store i32 0, i32* @$Tell\n  br label %$5\n$5:\n  %27 = phi i32 [%14, %$2], [%20, %$4] ; # Pid\n  %28 = phi i8* [%15, %$2], [%21, %$4] ; # P\n  %29 = phi i8* [%16, %$2], [%22, %$4] ; # Q\n  %30 = phi i32 [%17, %$2], [%23, %$4] ; # D\n  %31 = phi i32 [%18, %$2], [%24, %$4] ; # N\n  %32 = phi i32 [%12, %$2], [%25, %$4] ; # Fd\n  br label %$3\n$3:\n  %33 = phi i32 [%0, %$1], [%27, %$5] ; # Pid\n  %34 = phi i8* [%3, %$1], [%28, %$5] ; # P\n  %35 = phi i8* [%2, %$1], [%29, %$5] ; # Q\n  %36 = phi i32 [%7, %$1], [%30, %$5] ; # D\n  %37 = phi i32 [%8, %$1], [%31, %$5] ; # N\n; # (let (Cld (val $Child) <Cld (ofs Cld (* (val $Children) (child T)...\n; # (val $Child)\n  %38 = load i8*, i8** @$Child\n; # (val $Children)\n  %39 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %40 = mul i32 %39, 32\n; # (ofs Cld (* (val $Children) (child T)))\n  %41 = getelementptr i8, i8* %38, i32 %40\n; # (inc 'Q 8)\n  %42 = getelementptr i8, i8* %35, i32 8\n; # (until (== Cld <Cld) (let Cld: (child Cld) (when (and (Cld: pid) ...\n  br label %$6\n$6:\n  %43 = phi i32 [%33, %$3], [%104, %$14] ; # Pid\n  %44 = phi i8* [%34, %$3], [%105, %$14] ; # P\n  %45 = phi i8* [%42, %$3], [%106, %$14] ; # Q\n  %46 = phi i32 [%36, %$3], [%107, %$14] ; # D\n  %47 = phi i32 [%37, %$3], [%108, %$14] ; # N\n  %48 = phi i8* [%38, %$3], [%111, %$14] ; # Cld\n  %49 = phi i8* [%41, %$3], [%110, %$14] ; # <Cld\n; # (== Cld <Cld)\n  %50 = icmp eq i8* %48, %49\n  br i1 %50, label %$8, label %$7\n$7:\n  %51 = phi i32 [%43, %$6] ; # Pid\n  %52 = phi i8* [%44, %$6] ; # P\n  %53 = phi i8* [%45, %$6] ; # Q\n  %54 = phi i32 [%46, %$6] ; # D\n  %55 = phi i32 [%47, %$6] ; # N\n  %56 = phi i8* [%48, %$6] ; # Cld\n  %57 = phi i8* [%49, %$6] ; # <Cld\n; # (let Cld: (child Cld) (when (and (Cld: pid) (or (lt0 Pid) (== Pid...\n; # (when (and (Cld: pid) (or (lt0 Pid) (== Pid (Cld: pid)))) (wrChil...\n; # (and (Cld: pid) (or (lt0 Pid) (== Pid (Cld: pid))))\n; # (Cld: pid)\n  %58 = getelementptr i8, i8* %56, i32 16\n  %59 = bitcast i8* %58 to i32*\n  %60 = load i32, i32* %59\n  %61 = icmp ne i32 %60, 0\n  br i1 %61, label %$10, label %$9\n$10:\n  %62 = phi i32 [%51, %$7] ; # Pid\n  %63 = phi i8* [%52, %$7] ; # P\n  %64 = phi i8* [%53, %$7] ; # Q\n  %65 = phi i32 [%54, %$7] ; # D\n  %66 = phi i32 [%55, %$7] ; # N\n  %67 = phi i8* [%56, %$7] ; # Cld\n  %68 = phi i8* [%57, %$7] ; # <Cld\n; # (or (lt0 Pid) (== Pid (Cld: pid)))\n; # (lt0 Pid)\n  %69 = icmp slt i32 %62, 0\n  br i1 %69, label %$11, label %$12\n$12:\n  %70 = phi i32 [%62, %$10] ; # Pid\n  %71 = phi i8* [%63, %$10] ; # P\n  %72 = phi i8* [%64, %$10] ; # Q\n  %73 = phi i32 [%65, %$10] ; # D\n  %74 = phi i32 [%66, %$10] ; # N\n  %75 = phi i8* [%67, %$10] ; # Cld\n  %76 = phi i8* [%68, %$10] ; # <Cld\n; # (Cld: pid)\n  %77 = getelementptr i8, i8* %56, i32 16\n  %78 = bitcast i8* %77 to i32*\n  %79 = load i32, i32* %78\n; # (== Pid (Cld: pid))\n  %80 = icmp eq i32 %70, %79\n  br label %$11\n$11:\n  %81 = phi i32 [%62, %$10], [%70, %$12] ; # Pid\n  %82 = phi i8* [%63, %$10], [%71, %$12] ; # P\n  %83 = phi i8* [%64, %$10], [%72, %$12] ; # Q\n  %84 = phi i32 [%65, %$10], [%73, %$12] ; # D\n  %85 = phi i32 [%66, %$10], [%74, %$12] ; # N\n  %86 = phi i8* [%67, %$10], [%75, %$12] ; # Cld\n  %87 = phi i8* [%68, %$10], [%76, %$12] ; # <Cld\n  %88 = phi i1 [1, %$10], [%80, %$12] ; # ->\n  br label %$9\n$9:\n  %89 = phi i32 [%51, %$7], [%81, %$11] ; # Pid\n  %90 = phi i8* [%52, %$7], [%82, %$11] ; # P\n  %91 = phi i8* [%53, %$7], [%83, %$11] ; # Q\n  %92 = phi i32 [%54, %$7], [%84, %$11] ; # D\n  %93 = phi i32 [%55, %$7], [%85, %$11] ; # N\n  %94 = phi i8* [%56, %$7], [%86, %$11] ; # Cld\n  %95 = phi i8* [%57, %$7], [%87, %$11] ; # <Cld\n  %96 = phi i1 [0, %$7], [%88, %$11] ; # ->\n  br i1 %96, label %$13, label %$14\n$13:\n  %97 = phi i32 [%89, %$9] ; # Pid\n  %98 = phi i8* [%90, %$9] ; # P\n  %99 = phi i8* [%91, %$9] ; # Q\n  %100 = phi i32 [%92, %$9] ; # D\n  %101 = phi i32 [%93, %$9] ; # N\n  %102 = phi i8* [%94, %$9] ; # Cld\n  %103 = phi i8* [%95, %$9] ; # <Cld\n; # (wrChild Cld Q N)\n  call void @wrChild(i8* %102, i8* %99, i32 %101)\n  br label %$14\n$14:\n  %104 = phi i32 [%89, %$9], [%97, %$13] ; # Pid\n  %105 = phi i8* [%90, %$9], [%98, %$13] ; # P\n  %106 = phi i8* [%91, %$9], [%99, %$13] ; # Q\n  %107 = phi i32 [%92, %$9], [%100, %$13] ; # D\n  %108 = phi i32 [%93, %$9], [%101, %$13] ; # N\n  %109 = phi i8* [%94, %$9], [%102, %$13] ; # Cld\n  %110 = phi i8* [%95, %$9], [%103, %$13] ; # <Cld\n; # (ofs Cld (child T))\n  %111 = getelementptr i8, i8* %109, i32 32\n  br label %$6\n$8:\n  %112 = phi i32 [%43, %$6] ; # Pid\n  %113 = phi i8* [%44, %$6] ; # P\n  %114 = phi i8* [%45, %$6] ; # Q\n  %115 = phi i32 [%46, %$6] ; # D\n  %116 = phi i32 [%47, %$6] ; # N\n  %117 = phi i8* [%48, %$6] ; # Cld\n  %118 = phi i8* [%49, %$6] ; # <Cld\n  ret void\n}\n\ndefine void @unsync() align 8 {\n$1:\n; # (when (val $Tell) (let Fd @ (unless (wrBytes Fd (i8* (push -1)) 8...\n; # (val $Tell)\n  %0 = load i32, i32* @$Tell\n  %1 = icmp ne i32 %0, 0\n  br i1 %1, label %$2, label %$3\n$2:\n; # (let Fd @ (unless (wrBytes Fd (i8* (push -1)) 8) (close Fd) (set ...\n; # (unless (wrBytes Fd (i8* (push -1)) 8) (close Fd) (set $Tell 0))\n; # (push -1)\n  %2 = alloca i64, i64 1\n  store i64 -1, i64* %2\n; # (i8* (push -1))\n  %3 = bitcast i64* %2 to i8*\n; # (wrBytes Fd (i8* (push -1)) 8)\n  %4 = call i1 @wrBytes(i32 %0, i8* %3, i32 8)\n  br i1 %4, label %$5, label %$4\n$4:\n  %5 = phi i32 [%0, %$2] ; # Fd\n; # (close Fd)\n  %6 = call i32 @close(i32 %5)\n; # (set $Tell 0)\n  store i32 0, i32* @$Tell\n  br label %$5\n$5:\n  %7 = phi i32 [%0, %$2], [%5, %$4] ; # Fd\n  br label %$3\n$3:\n; # (set $Sync NO)\n  store i1 0, i1* @$Sync\n  ret void\n}\n\ndefine void @waitFile(i32) align 8 {\n$1:\n; # (let Res (b32 1) (while (lt0 (waitpid Pid Res 0)) (unless (== (gE...\n; # (b32 1)\n  %1 = alloca i32, i64 1\n; # (while (lt0 (waitpid Pid Res 0)) (unless (== (gErrno) EINTR) (clo...\n  br label %$2\n$2:\n  %2 = phi i32 [%0, %$1], [%12, %$8] ; # Pid\n  %3 = phi i32* [%1, %$1], [%13, %$8] ; # Res\n; # (waitpid Pid Res 0)\n  %4 = call i32 @waitpid(i32 %2, i32* %3, i32 0)\n; # (lt0 (waitpid Pid Res 0))\n  %5 = icmp slt i32 %4, 0\n  br i1 %5, label %$3, label %$4\n$3:\n  %6 = phi i32 [%2, %$2] ; # Pid\n  %7 = phi i32* [%3, %$2] ; # Res\n; # (unless (== (gErrno) EINTR) (closeErr))\n; # (gErrno)\n  %8 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %9 = icmp eq i32 %8, 2\n  br i1 %9, label %$6, label %$5\n$5:\n  %10 = phi i32 [%6, %$3] ; # Pid\n  %11 = phi i32* [%7, %$3] ; # Res\n; # (closeErr)\n  call void @closeErr()\n  unreachable\n$6:\n  %12 = phi i32 [%6, %$3] ; # Pid\n  %13 = phi i32* [%7, %$3] ; # Res\n; # (sigChk 0)\n  %14 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %15 = icmp ne i32 %14, 0\n  br i1 %15, label %$7, label %$8\n$7:\n  %16 = phi i64 [0, %$6] ; # Exe\n  call void @sighandler(i64 %16)\n  br label %$8\n$8:\n  %17 = phi i64 [0, %$6], [%16, %$7] ; # Exe\n  br label %$2\n$4:\n  %18 = phi i32 [%2, %$2] ; # Pid\n  %19 = phi i32* [%3, %$2] ; # Res\n; # (set $At2 (cnt (i64 (val Res))))\n; # (val Res)\n  %20 = load i32, i32* %19\n; # (i64 (val Res))\n  %21 = sext i32 %20 to i64\n; # (cnt (i64 (val Res)))\n  %22 = shl i64 %21, 4\n  %23 = or i64 %22, 2\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %23, i64* %24\n  ret void\n}\n\ndefine i32 @currFd(i64) align 8 {\n$1:\n; # (let (In: (ioFrame (val $InFrames)) Out: (ioFrame (val $OutFrames...\n; # (val $InFrames)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (val $OutFrames)\n  %2 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (nond ((or (In: file) (Out: file)) (err Exe 0 ($ \"No current fd\")...\n; # (or (In: file) (Out: file))\n; # (In: file)\n  %3 = getelementptr i8, i8* %1, i32 8\n  %4 = bitcast i8* %3 to i8**\n  %5 = load i8*, i8** %4\n  %6 = icmp ne i8* %5, null\n  br i1 %6, label %$3, label %$4\n$4:\n  %7 = phi i64 [%0, %$1] ; # Exe\n; # (Out: file)\n  %8 = getelementptr i8, i8* %2, i32 8\n  %9 = bitcast i8* %8 to i8**\n  %10 = load i8*, i8** %9\n  %11 = icmp ne i8* %10, null\n  br label %$3\n$3:\n  %12 = phi i64 [%0, %$1], [%7, %$4] ; # Exe\n  %13 = phi i1 [1, %$1], [%11, %$4] ; # ->\n  br i1 %13, label %$5, label %$6\n$6:\n  %14 = phi i64 [%12, %$3] ; # Exe\n; # (err Exe 0 ($ \"No current fd\") null)\n  call void @err(i64 %14, i64 0, i8* bitcast ([14 x i8]* @$42 to i8*), i8* null)\n  unreachable\n$5:\n  %15 = phi i64 [%12, %$3] ; # Exe\n; # (Out: file)\n  %16 = getelementptr i8, i8* %2, i32 8\n  %17 = bitcast i8* %16 to i8**\n  %18 = load i8*, i8** %17\n  %19 = icmp ne i8* %18, null\n  br i1 %19, label %$7, label %$8\n$8:\n  %20 = phi i64 [%15, %$5] ; # Exe\n; # (In: file)\n  %21 = getelementptr i8, i8* %1, i32 8\n  %22 = bitcast i8* %21 to i8**\n  %23 = load i8*, i8** %22\n; # ((inFile (In: file)) fd)\n  %24 = getelementptr i8, i8* %23, i32 8\n  %25 = bitcast i8* %24 to i32*\n  %26 = load i32, i32* %25\n  br label %$2\n$7:\n  %27 = phi i64 [%15, %$5] ; # Exe\n; # (In: file)\n  %28 = getelementptr i8, i8* %1, i32 8\n  %29 = bitcast i8* %28 to i8**\n  %30 = load i8*, i8** %29\n  %31 = icmp ne i8* %30, null\n  br i1 %31, label %$9, label %$10\n$10:\n  %32 = phi i64 [%27, %$7] ; # Exe\n; # (Out: file)\n  %33 = getelementptr i8, i8* %2, i32 8\n  %34 = bitcast i8* %33 to i8**\n  %35 = load i8*, i8** %34\n; # ((outFile (Out: file)) fd)\n  %36 = bitcast i8* %35 to i32*\n  %37 = load i32, i32* %36\n  br label %$2\n$9:\n  %38 = phi i64 [%27, %$7] ; # Exe\n; # (if (if (> (In:) (stack)) (> (Out:) (In:)) (> (In:) (Out:))) ((in...\n; # (if (> (In:) (stack)) (> (Out:) (In:)) (> (In:) (Out:)))\n; # (In:)\n; # (stack)\n  %39 = call i8* @llvm.stacksave()\n; # (> (In:) (stack))\n  %40 = icmp ugt i8* %1, %39\n  br i1 %40, label %$11, label %$12\n$11:\n  %41 = phi i64 [%38, %$9] ; # Exe\n; # (Out:)\n; # (In:)\n; # (> (Out:) (In:))\n  %42 = icmp ugt i8* %2, %1\n  br label %$13\n$12:\n  %43 = phi i64 [%38, %$9] ; # Exe\n; # (In:)\n; # (Out:)\n; # (> (In:) (Out:))\n  %44 = icmp ugt i8* %1, %2\n  br label %$13\n$13:\n  %45 = phi i64 [%41, %$11], [%43, %$12] ; # Exe\n  %46 = phi i1 [%42, %$11], [%44, %$12] ; # ->\n  br i1 %46, label %$14, label %$15\n$14:\n  %47 = phi i64 [%45, %$13] ; # Exe\n; # (In: file)\n  %48 = getelementptr i8, i8* %1, i32 8\n  %49 = bitcast i8* %48 to i8**\n  %50 = load i8*, i8** %49\n; # ((inFile (In: file)) fd)\n  %51 = getelementptr i8, i8* %50, i32 8\n  %52 = bitcast i8* %51 to i32*\n  %53 = load i32, i32* %52\n  br label %$16\n$15:\n  %54 = phi i64 [%45, %$13] ; # Exe\n; # (Out: file)\n  %55 = getelementptr i8, i8* %2, i32 8\n  %56 = bitcast i8* %55 to i8**\n  %57 = load i8*, i8** %56\n; # ((outFile (Out: file)) fd)\n  %58 = bitcast i8* %57 to i32*\n  %59 = load i32, i32* %58\n  br label %$16\n$16:\n  %60 = phi i64 [%47, %$14], [%54, %$15] ; # Exe\n  %61 = phi i32 [%53, %$14], [%59, %$15] ; # ->\n  br label %$2\n$2:\n  %62 = phi i64 [%20, %$8], [%32, %$10], [%60, %$16] ; # Exe\n  %63 = phi i32 [%26, %$8], [%37, %$10], [%61, %$16] ; # ->\n  ret i32 %63\n}\n\ndefine i32 @getIn() align 8 {\n$1:\n; # (set $Chr (cond ((val $InChar) (set $InChar (shr @ 8)) (i32 (i8 @...\n; # (cond ((val $InChar) (set $InChar (shr @ 8)) (i32 (i8 @))) ((nil?...\n; # (val $InChar)\n  %0 = load i64, i64* @$InChar\n  %1 = icmp ne i64 %0, 0\n  br i1 %1, label %$4, label %$3\n$4:\n; # (set $InChar (shr @ 8))\n; # (shr @ 8)\n  %2 = lshr i64 %0, 8\n  store i64 %2, i64* @$InChar\n; # (i8 @)\n  %3 = trunc i64 %0 to i8\n; # (i32 (i8 @))\n  %4 = zext i8 %3 to i32\n  br label %$2\n$3:\n; # (let (Iox: (ioxFrame (val $InFrames)) At (save (val $At))) (prog2...\n; # (val $InFrames)\n  %5 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (val $At)\n  %6 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %7 = load i64, i64* %6\n; # (save (val $At))\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  %10 = alloca i64, i64 2, align 16\n  %11 = ptrtoint i64* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 %7, i64* %12\n  %13 = add i64 %11, 8\n  %14 = inttoptr i64 %13 to i64*\n  store i64 %9, i64* %14\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %11, i64* %15\n; # (prog2 (set $Chr (Iox: chr) (i8** $Get) (Iox: fun) $InFrames (Iox...\n; # (set $Chr (Iox: chr) (i8** $Get) (Iox: fun) $InFrames (Iox: link)...\n; # (Iox: chr)\n  %16 = getelementptr i8, i8* %5, i32 32\n  %17 = bitcast i8* %16 to i32*\n  %18 = load i32, i32* %17\n  store i32 %18, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (i8** $Get)\n  %19 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n; # (Iox: fun)\n  %20 = getelementptr i8, i8* %5, i32 16\n  %21 = bitcast i8* %20 to i8**\n  %22 = load i8*, i8** %21\n  store i8* %22, i8** %19\n; # (Iox: link)\n  %23 = bitcast i8* %5 to i8**\n  %24 = load i8*, i8** %23\n  store i8* %24, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (Iox: exe)\n  %25 = getelementptr i8, i8* %5, i32 24\n  %26 = ptrtoint i8* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (eval (Iox: exe))\n  %29 = and i64 %28, 6\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$7, label %$6\n$7:\n  %31 = phi i64 [%28, %$3] ; # X\n  br label %$5\n$6:\n  %32 = phi i64 [%28, %$3] ; # X\n  %33 = and i64 %32, 8\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$6] ; # X\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n  br label %$5\n$8:\n  %38 = phi i64 [%32, %$6] ; # X\n  %39 = call i64 @evList(i64 %38)\n  br label %$5\n$5:\n  %40 = phi i64 [%31, %$7], [%35, %$9], [%38, %$8] ; # X\n  %41 = phi i64 [%31, %$7], [%37, %$9], [%39, %$8] ; # ->\n; # (set $InFrames (Iox:) $Get (fun (i32) getIn) $At At)\n; # (Iox:)\n  store i8* %5, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (fun (i32) getIn)\n  store i32()* @getIn, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %7, i64* %42\n; # (Iox: chr (val $Chr))\n  %43 = getelementptr i8, i8* %5, i32 32\n  %44 = bitcast i8* %43 to i32*\n  %45 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  store i32 %45, i32* %44\n; # (drop *Safe)\n  %46 = inttoptr i64 %11 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %48, i64* %49\n; # (nil? (let (Iox: (ioxFrame (val $InFrames)) At (save (val $At))) ...\n  %50 = icmp eq i64 %41, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %50, label %$11, label %$10\n$11:\n  br label %$2\n$10:\n; # (sym? @)\n  %51 = and i64 %41, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$13, label %$12\n$13:\n; # (let (S @ V (val (tail @))) (if (or (sym? V) (not (cnt? (setq V (...\n; # (tail @)\n  %53 = add i64 %41, -8\n; # (val (tail @))\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n; # (if (or (sym? V) (not (cnt? (setq V (name V))))) (charErr 0 S) (l...\n; # (or (sym? V) (not (cnt? (setq V (name V)))))\n; # (sym? V)\n  %56 = and i64 %55, 8\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$15\n$15:\n  %58 = phi i64 [%41, %$13] ; # S\n  %59 = phi i64 [%55, %$13] ; # V\n; # (name V)\n  br label %$16\n$16:\n  %60 = phi i64 [%59, %$15], [%66, %$17] ; # Tail\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$18, label %$17\n$17:\n  %63 = phi i64 [%60, %$16] ; # Tail\n  %64 = inttoptr i64 %63 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n  br label %$16\n$18:\n  %67 = phi i64 [%60, %$16] ; # Tail\n; # (cnt? (setq V (name V)))\n  %68 = and i64 %67, 2\n  %69 = icmp ne i64 %68, 0\n; # (not (cnt? (setq V (name V))))\n  %70 = icmp eq i1 %69, 0\n  br label %$14\n$14:\n  %71 = phi i64 [%41, %$13], [%58, %$18] ; # S\n  %72 = phi i64 [%55, %$13], [%67, %$18] ; # V\n  %73 = phi i1 [1, %$13], [%70, %$18] ; # ->\n  br i1 %73, label %$19, label %$20\n$19:\n  %74 = phi i64 [%71, %$14] ; # S\n  %75 = phi i64 [%72, %$14] ; # V\n; # (charErr 0 S)\n  call void @charErr(i64 0, i64 %74)\n  unreachable\n$20:\n  %76 = phi i64 [%71, %$14] ; # S\n  %77 = phi i64 [%72, %$14] ; # V\n; # (let C (int V) (set $InChar (shr C 8)) (i32 (i8 C)))\n; # (int V)\n  %78 = lshr i64 %77, 4\n; # (set $InChar (shr C 8))\n; # (shr C 8)\n  %79 = lshr i64 %78, 8\n  store i64 %79, i64* @$InChar\n; # (i8 C)\n  %80 = trunc i64 %78 to i8\n; # (i32 (i8 C))\n  %81 = zext i8 %80 to i32\n  br label %$21\n$21:\n  %82 = phi i64 [%76, %$20] ; # S\n  %83 = phi i64 [%77, %$20] ; # V\n  %84 = phi i32 [%81, %$20] ; # ->\n  br label %$2\n$12:\n; # (symErr 0 @)\n  call void @symErr(i64 0, i64 %41)\n  unreachable\n$2:\n  %85 = phi i32 [%4, %$4], [-1, %$11], [%84, %$21] ; # ->\n  store i32 %85, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  ret i32 %85\n}\n\ndefine void @put1(i8*, i32, i32) align 8 {\n$1:\n; # (let (Iox: (ioxFrame Iox) At (save (val $At)) At2 (save (val $At2...\n; # (val $At)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (save (val $At))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (val $At2)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  %14 = load i64, i64* %13\n; # (save (val $At2))\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %16 = load i64, i64* %15\n  %17 = alloca i64, i64 2, align 16\n  %18 = ptrtoint i64* %17 to i64\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %14, i64* %19\n  %20 = add i64 %18, 8\n  %21 = inttoptr i64 %20 to i64*\n  store i64 %16, i64* %21\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %18, i64* %22\n; # (val $At3)\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 488) to i64) to i64*\n  %24 = load i64, i64* %23\n; # (save (val $At3))\n  %25 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %26 = load i64, i64* %25\n  %27 = alloca i64, i64 2, align 16\n  %28 = ptrtoint i64* %27 to i64\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = add i64 %28, 8\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %26, i64* %31\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %28, i64* %32\n; # (set (i8** $Put) (Iox: fun) $OutFrames (Iox: link) $At2 (consStr ...\n; # (i8** $Put)\n  %33 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (Iox: fun)\n  %34 = getelementptr i8, i8* %0, i32 16\n  %35 = bitcast i8* %34 to i8**\n  %36 = load i8*, i8** %35\n  store i8* %36, i8** %33\n; # (Iox: link)\n  %37 = bitcast i8* %0 to i8**\n  %38 = load i8*, i8** %37\n  store i8* %38, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (i64 C)\n  %39 = sext i32 %1 to i64\n; # (cnt (i64 C))\n  %40 = shl i64 %39, 4\n  %41 = or i64 %40, 2\n; # (consStr (cnt (i64 C)))\n  %42 = call i64 @consStr(i64 %41)\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %42, i64* %43\n; # (if D (consStr (cnt (i64 @))) $Nil)\n  %44 = icmp ne i32 %2, 0\n  br i1 %44, label %$2, label %$3\n$2:\n  %45 = phi i8* [%0, %$1] ; # Iox\n  %46 = phi i32 [%1, %$1] ; # C\n  %47 = phi i32 [%2, %$1] ; # D\n  %48 = phi i64 [%4, %$1] ; # At\n  %49 = phi i64 [%14, %$1] ; # At2\n  %50 = phi i64 [%24, %$1] ; # At3\n; # (i64 @)\n  %51 = sext i32 %2 to i64\n; # (cnt (i64 @))\n  %52 = shl i64 %51, 4\n  %53 = or i64 %52, 2\n; # (consStr (cnt (i64 @)))\n  %54 = call i64 @consStr(i64 %53)\n  br label %$4\n$3:\n  %55 = phi i8* [%0, %$1] ; # Iox\n  %56 = phi i32 [%1, %$1] ; # C\n  %57 = phi i32 [%2, %$1] ; # D\n  %58 = phi i64 [%4, %$1] ; # At\n  %59 = phi i64 [%14, %$1] ; # At2\n  %60 = phi i64 [%24, %$1] ; # At3\n  br label %$4\n$4:\n  %61 = phi i8* [%45, %$2], [%55, %$3] ; # Iox\n  %62 = phi i32 [%46, %$2], [%56, %$3] ; # C\n  %63 = phi i32 [%47, %$2], [%57, %$3] ; # D\n  %64 = phi i64 [%48, %$2], [%58, %$3] ; # At\n  %65 = phi i64 [%49, %$2], [%59, %$3] ; # At2\n  %66 = phi i64 [%50, %$2], [%60, %$3] ; # At3\n  %67 = phi i64 [%54, %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  %68 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 488) to i64) to i64*\n  store i64 %67, i64* %68\n; # (Iox: exe)\n  %69 = getelementptr i8, i8* %0, i32 24\n  %70 = ptrtoint i8* %69 to i64\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n; # (eval (Iox: exe))\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$7, label %$6\n$7:\n  %75 = phi i64 [%72, %$4] ; # X\n  br label %$5\n$6:\n  %76 = phi i64 [%72, %$4] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$9, label %$8\n$9:\n  %79 = phi i64 [%76, %$6] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$5\n$8:\n  %82 = phi i64 [%76, %$6] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$5\n$5:\n  %84 = phi i64 [%75, %$7], [%79, %$9], [%82, %$8] ; # X\n  %85 = phi i64 [%75, %$7], [%81, %$9], [%83, %$8] ; # ->\n; # (set $OutFrames (Iox:) $Put (fun (void i8) putOut) $At3 At3 $At2 ...\n; # (Iox:)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (fun (void i8) putOut)\n  store void(i8)* @putOut, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 488) to i64) to i64*\n  store i64 %66, i64* %86\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %65, i64* %87\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %64, i64* %88\n; # (drop *Safe)\n  %89 = inttoptr i64 %8 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %91, i64* %92\n  ret void\n}\n\ndefine void @putOut(i8) align 8 {\n$1:\n; # (nond ((& B (hex \"80\")) (set $OutChar (i64 B))) ((& B (hex \"40\"))...\n; # (& B (hex \"80\"))\n  %1 = and i8 %0, 128\n  %2 = icmp ne i8 %1, 0\n  br i1 %2, label %$3, label %$4\n$4:\n  %3 = phi i8 [%0, %$1] ; # B\n; # (set $OutChar (i64 B))\n; # (i64 B)\n  %4 = zext i8 %3 to i64\n  store i64 %4, i64* @$OutChar\n  br label %$2\n$3:\n  %5 = phi i8 [%0, %$1] ; # B\n; # (& B (hex \"40\"))\n  %6 = and i8 %5, 64\n  %7 = icmp ne i8 %6, 0\n  br i1 %7, label %$5, label %$6\n$6:\n  %8 = phi i8 [%5, %$3] ; # B\n; # (set $OutChar (| (val $OutChar) (shl (i64 B) (set $IoIx (+ (val $...\n; # (val $OutChar)\n  %9 = load i64, i64* @$OutChar\n; # (i64 B)\n  %10 = zext i8 %8 to i64\n; # (set $IoIx (+ (val $IoIx) 8))\n; # (val $IoIx)\n  %11 = load i64, i64* @$IoIx\n; # (+ (val $IoIx) 8)\n  %12 = add i64 %11, 8\n  store i64 %12, i64* @$IoIx\n; # (shl (i64 B) (set $IoIx (+ (val $IoIx) 8)))\n  %13 = shl i64 %10, %12\n; # (| (val $OutChar) (shl (i64 B) (set $IoIx (+ (val $IoIx) 8))))\n  %14 = or i64 %9, %13\n  store i64 %14, i64* @$OutChar\n; # (when (set $IoCnt (dec (val $IoCnt))) (ret))\n; # (set $IoCnt (dec (val $IoCnt)))\n; # (val $IoCnt)\n  %15 = load i32, i32* @$IoCnt\n; # (dec (val $IoCnt))\n  %16 = sub i32 %15, 1\n  store i32 %16, i32* @$IoCnt\n  %17 = icmp ne i32 %16, 0\n  br i1 %17, label %$7, label %$8\n$7:\n  %18 = phi i8 [%8, %$6] ; # B\n; # (ret)\n  ret void\n$8:\n  %19 = phi i8 [%8, %$6] ; # B\n  br label %$2\n$5:\n  %20 = phi i8 [%5, %$3] ; # B\n; # (& B (hex \"20\"))\n  %21 = and i8 %20, 32\n  %22 = icmp ne i8 %21, 0\n  br i1 %22, label %$9, label %$10\n$10:\n  %23 = phi i8 [%20, %$5] ; # B\n; # (set $IoCnt 1 $IoIx 0 $OutChar (i64 B))\n  store i32 1, i32* @$IoCnt\n  store i64 0, i64* @$IoIx\n; # (i64 B)\n  %24 = zext i8 %23 to i64\n  store i64 %24, i64* @$OutChar\n; # (ret)\n  ret void\n$9:\n  %25 = phi i8 [%20, %$5] ; # B\n; # (& B (hex \"10\"))\n  %26 = and i8 %25, 16\n  %27 = icmp ne i8 %26, 0\n  br i1 %27, label %$11, label %$12\n$12:\n  %28 = phi i8 [%25, %$9] ; # B\n; # (set $IoCnt 2 $IoIx 0 $OutChar (i64 B))\n  store i32 2, i32* @$IoCnt\n  store i64 0, i64* @$IoIx\n; # (i64 B)\n  %29 = zext i8 %28 to i64\n  store i64 %29, i64* @$OutChar\n; # (ret)\n  ret void\n$11:\n  %30 = phi i8 [%25, %$9] ; # B\n; # (set $IoCnt 3 $IoIx 0 $OutChar (i64 B))\n  store i32 3, i32* @$IoCnt\n  store i64 0, i64* @$IoIx\n; # (i64 B)\n  %31 = zext i8 %30 to i64\n  store i64 %31, i64* @$OutChar\n; # (ret)\n  ret void\n$2:\n  %32 = phi i8 [%3, %$4], [%19, %$8] ; # B\n; # (let (Iox: (ioxFrame (val $OutFrames)) C (i32 (val $OutChar))) (w...\n; # (val $OutFrames)\n  %33 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (val $OutChar)\n  %34 = load i64, i64* @$OutChar\n; # (i32 (val $OutChar))\n  %35 = trunc i64 %34 to i32\n; # (when (Iox: chr) (put1 (Iox:) @ C))\n; # (Iox: chr)\n  %36 = getelementptr i8, i8* %33, i32 32\n  %37 = bitcast i8* %36 to i32*\n  %38 = load i32, i32* %37\n  %39 = icmp ne i32 %38, 0\n  br i1 %39, label %$13, label %$14\n$13:\n  %40 = phi i8 [%32, %$2] ; # B\n  %41 = phi i32 [%35, %$2] ; # C\n; # (Iox:)\n; # (put1 (Iox:) @ C)\n  call void @put1(i8* %33, i32 %38, i32 %41)\n  br label %$14\n$14:\n  %42 = phi i8 [%32, %$2], [%40, %$13] ; # B\n  %43 = phi i32 [%35, %$2], [%41, %$13] ; # C\n; # (Iox: chr C)\n  %44 = getelementptr i8, i8* %33, i32 32\n  %45 = bitcast i8* %44 to i32*\n  store i32 %43, i32* %45\n  ret void\n}\n\ndefine void @pushInFile(i8*, i8*, i32) align 8 {\n$1:\n; # (let Io: (ioFrame Io) (Io: link (val $InFrames)) (when (val $InFi...\n; # (Io: link (val $InFrames))\n  %3 = bitcast i8* %0 to i8**\n  %4 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n  store i8* %4, i8** %3\n; # (when (val $InFile) ((inFile @) chr (val $Chr)))\n; # (val $InFile)\n  %5 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n  %6 = icmp ne i8* %5, null\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i8* [%0, %$1] ; # Io\n  %8 = phi i8* [%1, %$1] ; # In\n  %9 = phi i32 [%2, %$1] ; # Pid\n; # ((inFile @) chr (val $Chr))\n  %10 = getelementptr i8, i8* %5, i32 12\n  %11 = bitcast i8* %10 to i32*\n  %12 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  store i32 %12, i32* %11\n  br label %$3\n$3:\n  %13 = phi i8* [%0, %$1], [%7, %$2] ; # Io\n  %14 = phi i8* [%1, %$1], [%8, %$2] ; # In\n  %15 = phi i32 [%2, %$1], [%9, %$2] ; # Pid\n; # (set $Chr ((inFile (Io: file (set $InFile In))) chr))\n; # (Io: file (set $InFile In))\n  %16 = getelementptr i8, i8* %0, i32 8\n  %17 = bitcast i8* %16 to i8**\n  store i8* %14, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n  store i8* %14, i8** %17\n; # ((inFile (Io: file (set $InFile In))) chr)\n  %18 = getelementptr i8, i8* %14, i32 12\n  %19 = bitcast i8* %18 to i32*\n  %20 = load i32, i32* %19\n  store i32 %20, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (Io: fun (val (i8** $Get)))\n  %21 = getelementptr i8, i8* %0, i32 16\n  %22 = bitcast i8* %21 to i8**\n  %23 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n  %24 = load i8*, i8** %23\n  store i8* %24, i8** %22\n; # (Io: pid Pid)\n  %25 = getelementptr i8, i8* %0, i32 24\n  %26 = bitcast i8* %25 to i32*\n  store i32 %15, i32* %26\n; # (set $InFrames (Io:) $Get (fun (i32) _getStdin))\n; # (Io:)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (fun (i32) _getStdin)\n  store i32()* @_getStdin, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  ret void\n}\n\ndefine void @pushOutFile(i8*, i8*, i32) align 8 {\n$1:\n; # (let Io: (ioFrame Io) (Io: link (val $OutFrames)) (Io: file (set ...\n; # (Io: link (val $OutFrames))\n  %3 = bitcast i8* %0 to i8**\n  %4 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n  store i8* %4, i8** %3\n; # (Io: file (set $OutFile Out))\n  %5 = getelementptr i8, i8* %0, i32 8\n  %6 = bitcast i8* %5 to i8**\n  store i8* %1, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  store i8* %1, i8** %6\n; # (Io: fun (val (i8** $Put)))\n  %7 = getelementptr i8, i8* %0, i32 16\n  %8 = bitcast i8* %7 to i8**\n  %9 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  %10 = load i8*, i8** %9\n  store i8* %10, i8** %8\n; # (Io: pid Pid)\n  %11 = getelementptr i8, i8* %0, i32 24\n  %12 = bitcast i8* %11 to i32*\n  store i32 %2, i32* %12\n; # (set $OutFrames (Io:) $Put (fun (void i8) _putStdout))\n; # (Io:)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  ret void\n}\n\ndefine void @pushErrFile(i8*) align 8 {\n$1:\n; # ((ctFrame Ct) link (val $ErrFrames))\n  %1 = bitcast i8* %0 to i8**\n  %2 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  store i8* %2, i8** %1\n; # (set $ErrFrames Ct)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  ret void\n}\n\ndefine void @pushCtlFile(i8*) align 8 {\n$1:\n; # ((ctFrame Ct) link (val $CtlFrames))\n  %1 = bitcast i8* %0 to i8**\n  %2 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  store i8* %2, i8** %1\n; # (set $CtlFrames Ct)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  ret void\n}\n\ndefine void @popInFiles() align 8 {\n$1:\n; # (let Io: (ioFrame (val $InFrames)) (when (Io: file) (let In: (inF...\n; # (val $InFrames)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (when (Io: file) (let In: (inFile @) (when (ge0 (In: fd)) (ifn (I...\n; # (Io: file)\n  %1 = getelementptr i8, i8* %0, i32 8\n  %2 = bitcast i8* %1 to i8**\n  %3 = load i8*, i8** %2\n  %4 = icmp ne i8* %3, null\n  br i1 %4, label %$2, label %$3\n$2:\n; # (let In: (inFile @) (when (ge0 (In: fd)) (ifn (Io: pid) (In: chr ...\n; # (when (ge0 (In: fd)) (ifn (Io: pid) (In: chr (val $Chr)) (close (...\n; # (In: fd)\n  %5 = getelementptr i8, i8* %3, i32 8\n  %6 = bitcast i8* %5 to i32*\n  %7 = load i32, i32* %6\n; # (ge0 (In: fd))\n  %8 = icmp sge i32 %7, 0\n  br i1 %8, label %$4, label %$5\n$4:\n; # (ifn (Io: pid) (In: chr (val $Chr)) (close (In: fd)) (closeInFile...\n; # (Io: pid)\n  %9 = getelementptr i8, i8* %0, i32 24\n  %10 = bitcast i8* %9 to i32*\n  %11 = load i32, i32* %10\n  %12 = icmp ne i32 %11, 0\n  br i1 %12, label %$7, label %$6\n$6:\n; # (In: chr (val $Chr))\n  %13 = getelementptr i8, i8* %3, i32 12\n  %14 = bitcast i8* %13 to i32*\n  %15 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  store i32 %15, i32* %14\n  br label %$8\n$7:\n; # (In: fd)\n  %16 = getelementptr i8, i8* %3, i32 8\n  %17 = bitcast i8* %16 to i32*\n  %18 = load i32, i32* %17\n; # (close (In: fd))\n  %19 = call i32 @close(i32 %18)\n; # (In: fd)\n  %20 = getelementptr i8, i8* %3, i32 8\n  %21 = bitcast i8* %20 to i32*\n  %22 = load i32, i32* %21\n; # (closeInFile (In: fd))\n  call void @closeInFile(i32 %22)\n; # (when (> (Io: pid) 1) (waitFile @))\n; # (Io: pid)\n  %23 = getelementptr i8, i8* %0, i32 24\n  %24 = bitcast i8* %23 to i32*\n  %25 = load i32, i32* %24\n; # (> (Io: pid) 1)\n  %26 = icmp sgt i32 %25, 1\n  br i1 %26, label %$9, label %$10\n$9:\n; # (waitFile @)\n  call void @waitFile(i32 %25)\n  br label %$10\n$10:\n  br label %$8\n$8:\n  br label %$5\n$5:\n  br label %$3\n$3:\n; # (set (i8** $Get) (Io: fun))\n; # (i8** $Get)\n  %27 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n; # (Io: fun)\n  %28 = getelementptr i8, i8* %0, i32 16\n  %29 = bitcast i8* %28 to i8**\n  %30 = load i8*, i8** %29\n  store i8* %30, i8** %27\n; # (set $InFrames (Io: link))\n; # (Io: link)\n  %31 = bitcast i8* %0 to i8**\n  %32 = load i8*, i8** %31\n  store i8* %32, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (set $Chr (if (Io: file) ((inFile (set $InFile @)) chr) ((ioxFram...\n; # (if (Io: file) ((inFile (set $InFile @)) chr) ((ioxFrame (Io:)) c...\n; # (Io: file)\n  %33 = getelementptr i8, i8* %32, i32 8\n  %34 = bitcast i8* %33 to i8**\n  %35 = load i8*, i8** %34\n  %36 = icmp ne i8* %35, null\n  br i1 %36, label %$11, label %$12\n$11:\n; # (set $InFile @)\n  store i8* %35, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # ((inFile (set $InFile @)) chr)\n  %37 = getelementptr i8, i8* %35, i32 12\n  %38 = bitcast i8* %37 to i32*\n  %39 = load i32, i32* %38\n  br label %$13\n$12:\n; # (Io:)\n; # ((ioxFrame (Io:)) chr)\n  %40 = getelementptr i8, i8* %32, i32 32\n  %41 = bitcast i8* %40 to i32*\n  %42 = load i32, i32* %41\n  br label %$13\n$13:\n  %43 = phi i32 [%39, %$11], [%42, %$12] ; # ->\n  store i32 %43, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  ret void\n}\n\ndefine void @popOutFiles() align 8 {\n$1:\n; # (let Io: (ioFrame (val $OutFrames)) (cond ((Io: file) (let Out: (...\n; # (val $OutFrames)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (cond ((Io: file) (let Out: (outFile @) (flush (val $OutFile)) (w...\n; # (Io: file)\n  %1 = getelementptr i8, i8* %0, i32 8\n  %2 = bitcast i8* %1 to i8**\n  %3 = load i8*, i8** %2\n  %4 = icmp ne i8* %3, null\n  br i1 %4, label %$4, label %$3\n$4:\n; # (let Out: (outFile @) (flush (val $OutFile)) (when (ge0 (Out: fd)...\n; # (val $OutFile)\n  %5 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (flush (val $OutFile))\n  %6 = call i1 @flush(i8* %5)\n; # (when (ge0 (Out: fd)) (when (Io: pid) (close (Out: fd)) (closeOut...\n; # (Out: fd)\n  %7 = bitcast i8* %3 to i32*\n  %8 = load i32, i32* %7\n; # (ge0 (Out: fd))\n  %9 = icmp sge i32 %8, 0\n  br i1 %9, label %$5, label %$6\n$5:\n; # (when (Io: pid) (close (Out: fd)) (closeOutFile (Out: fd)) (when ...\n; # (Io: pid)\n  %10 = getelementptr i8, i8* %0, i32 24\n  %11 = bitcast i8* %10 to i32*\n  %12 = load i32, i32* %11\n  %13 = icmp ne i32 %12, 0\n  br i1 %13, label %$7, label %$8\n$7:\n; # (Out: fd)\n  %14 = bitcast i8* %3 to i32*\n  %15 = load i32, i32* %14\n; # (close (Out: fd))\n  %16 = call i32 @close(i32 %15)\n; # (Out: fd)\n  %17 = bitcast i8* %3 to i32*\n  %18 = load i32, i32* %17\n; # (closeOutFile (Out: fd))\n  call void @closeOutFile(i32 %18)\n; # (when (> (Io: pid) 1) (waitFile @))\n; # (Io: pid)\n  %19 = getelementptr i8, i8* %0, i32 24\n  %20 = bitcast i8* %19 to i32*\n  %21 = load i32, i32* %20\n; # (> (Io: pid) 1)\n  %22 = icmp sgt i32 %21, 1\n  br i1 %22, label %$9, label %$10\n$9:\n; # (waitFile @)\n  call void @waitFile(i32 %21)\n  br label %$10\n$10:\n  br label %$8\n$8:\n  br label %$6\n$6:\n  br label %$2\n$3:\n; # (Io:)\n; # ((ioxFrame (Io:)) chr)\n  %23 = getelementptr i8, i8* %0, i32 32\n  %24 = bitcast i8* %23 to i32*\n  %25 = load i32, i32* %24\n  %26 = icmp ne i32 %25, 0\n  br i1 %26, label %$12, label %$11\n$12:\n; # (Io:)\n; # (put1 (Io:) @ 0)\n  call void @put1(i8* %0, i32 %25, i32 0)\n  br label %$2\n$11:\n  br label %$2\n$2:\n; # (set (i8** $Put) (Io: fun))\n; # (i8** $Put)\n  %27 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (Io: fun)\n  %28 = getelementptr i8, i8* %0, i32 16\n  %29 = bitcast i8* %28 to i8**\n  %30 = load i8*, i8** %29\n  store i8* %30, i8** %27\n; # (set $OutFrames (Io: link))\n; # (Io: link)\n  %31 = bitcast i8* %0 to i8**\n  %32 = load i8*, i8** %31\n  store i8* %32, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (when (Io: file) (set $OutFile @))\n; # (Io: file)\n  %33 = getelementptr i8, i8* %32, i32 8\n  %34 = bitcast i8* %33 to i8**\n  %35 = load i8*, i8** %34\n  %36 = icmp ne i8* %35, null\n  br i1 %36, label %$13, label %$14\n$13:\n; # (set $OutFile @)\n  store i8* %35, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  br label %$14\n$14:\n  ret void\n}\n\ndefine void @popErrFiles() align 8 {\n$1:\n; # (let Ct: (ctFrame (val $ErrFrames)) (dup2 (Ct: fd) 2) (close (Ct:...\n; # (val $ErrFrames)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n; # (Ct: fd)\n  %1 = getelementptr i8, i8* %0, i32 8\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (dup2 (Ct: fd) 2)\n  %4 = call i32 @dup2(i32 %3, i32 2)\n; # (Ct: fd)\n  %5 = getelementptr i8, i8* %0, i32 8\n  %6 = bitcast i8* %5 to i32*\n  %7 = load i32, i32* %6\n; # (close (Ct: fd))\n  %8 = call i32 @close(i32 %7)\n; # (set $ErrFrames (Ct: link))\n; # (Ct: link)\n  %9 = bitcast i8* %0 to i8**\n  %10 = load i8*, i8** %9\n  store i8* %10, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  ret void\n}\n\ndefine void @popCtlFiles() align 8 {\n$1:\n; # (let Ct: (ctFrame (val $CtlFrames)) (if (ge0 (Ct: fd)) (close @) ...\n; # (val $CtlFrames)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n; # (if (ge0 (Ct: fd)) (close @) (unLock (currFd 0) 0 0))\n; # (Ct: fd)\n  %1 = getelementptr i8, i8* %0, i32 8\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (ge0 (Ct: fd))\n  %4 = icmp sge i32 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n; # (close @)\n  %5 = call i32 @close(i32 %3)\n  br label %$4\n$3:\n; # (currFd 0)\n  %6 = call i32 @currFd(i64 0)\n; # (unLock (currFd 0) 0 0)\n  %7 = call i32 @unLock(i32 %6, i64 0, i64 0)\n  br label %$4\n$4:\n  %8 = phi i32 [%5, %$2], [%7, %$3] ; # ->\n; # (set $CtlFrames (Ct: link))\n; # (Ct: link)\n  %9 = bitcast i8* %0 to i8**\n  %10 = load i8*, i8** %9\n  store i8* %10, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  ret void\n}\n\ndefine i64 @_Path(i64) align 8 {\n$1:\n; # (let Nm (xName (evSym (cdr Exe))) (mkStr (pathString Nm (b8 (path...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym (cdr Exe))\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym (cdr Exe)))\n  %5 = call i64 @xName(i64 %4)\n; # (pathSize Nm)\n  %6 = call i64 @pathSize(i64 %5)\n; # (b8 (pathSize Nm))\n  %7 = alloca i8, i64 %6\n; # (pathString Nm (b8 (pathSize Nm)))\n  %8 = call i8* @pathString(i64 %5, i8* %7)\n; # (mkStr (pathString Nm (b8 (pathSize Nm))))\n  %9 = call i64 @mkStr(i8* %8)\n  ret i64 %9\n}\n\ndefine i64* @pollfd(i32) align 8 {\n$1:\n; # (let I (val $Nfds) (when (>= Fd I) (let P (set $Poll (i64* (alloc...\n; # (val $Nfds)\n  %1 = load i32, i32* @$Nfds\n; # (when (>= Fd I) (let P (set $Poll (i64* (alloc (i8* (val $Poll)) ...\n; # (>= Fd I)\n  %2 = icmp sge i32 %0, %1\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # Fd\n  %4 = phi i32 [%1, %$1] ; # I\n; # (let P (set $Poll (i64* (alloc (i8* (val $Poll)) (* 8 (i64 (set $...\n; # (set $Poll (i64* (alloc (i8* (val $Poll)) (* 8 (i64 (set $Nfds (+...\n; # (val $Poll)\n  %5 = load i64*, i64** @$Poll\n; # (i8* (val $Poll))\n  %6 = bitcast i64* %5 to i8*\n; # (set $Nfds (+ Fd 1))\n; # (+ Fd 1)\n  %7 = add i32 %3, 1\n  store i32 %7, i32* @$Nfds\n; # (i64 (set $Nfds (+ Fd 1)))\n  %8 = sext i32 %7 to i64\n; # (* 8 (i64 (set $Nfds (+ Fd 1))))\n  %9 = mul i64 8, %8\n; # (alloc (i8* (val $Poll)) (* 8 (i64 (set $Nfds (+ Fd 1)))))\n  %10 = call i8* @alloc(i8* %6, i64 %9)\n; # (i64* (alloc (i8* (val $Poll)) (* 8 (i64 (set $Nfds (+ Fd 1))))))...\n  %11 = bitcast i8* %10 to i64*\n  store i64* %11, i64** @$Poll\n; # (loop (pollIgn (ofs P I)) (? (== I Fd)) (inc 'I))\n  br label %$4\n$4:\n  %12 = phi i32 [%3, %$2], [%17, %$5] ; # Fd\n  %13 = phi i32 [%4, %$2], [%20, %$5] ; # I\n  %14 = phi i64* [%11, %$2], [%19, %$5] ; # P\n; # (ofs P I)\n  %15 = getelementptr i64, i64* %14, i32 %13\n; # (pollIgn (ofs P I))\n  call void @pollIgn(i64* %15)\n; # (? (== I Fd))\n; # (== I Fd)\n  %16 = icmp eq i32 %13, %12\n  br i1 %16, label %$6, label %$5\n$5:\n  %17 = phi i32 [%12, %$4] ; # Fd\n  %18 = phi i32 [%13, %$4] ; # I\n  %19 = phi i64* [%14, %$4] ; # P\n; # (inc 'I)\n  %20 = add i32 %18, 1\n  br label %$4\n$6:\n  %21 = phi i32 [%12, %$4] ; # Fd\n  %22 = phi i32 [%13, %$4] ; # I\n  %23 = phi i64* [%14, %$4] ; # P\n  %24 = phi i64 [0, %$4] ; # ->\n  br label %$3\n$3:\n  %25 = phi i32 [%0, %$1], [%21, %$6] ; # Fd\n  %26 = phi i32 [%1, %$1], [%22, %$6] ; # I\n; # (val $Poll)\n  %27 = load i64*, i64** @$Poll\n; # (ofs (val $Poll) Fd)\n  %28 = getelementptr i64, i64* %27, i32 %25\n  ret i64* %28\n}\n\ndefine i1 @hasData(i32) align 8 {\n$1:\n; # (and (> (val $InFDs) Fd) (val (ofs (val $InFiles) Fd)) (let In: (...\n; # (val $InFDs)\n  %1 = load i32, i32* @$InFDs\n; # (> (val $InFDs) Fd)\n  %2 = icmp sgt i32 %1, %0\n  br i1 %2, label %$3, label %$2\n$3:\n  %3 = phi i32 [%0, %$1] ; # Fd\n; # (val $InFiles)\n  %4 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %5 = getelementptr i8*, i8** %4, i32 %3\n; # (val (ofs (val $InFiles) Fd))\n  %6 = load i8*, i8** %5\n  %7 = icmp ne i8* %6, null\n  br i1 %7, label %$4, label %$2\n$4:\n  %8 = phi i32 [%3, %$3] ; # Fd\n; # (let In: (inFile @) (and (ge0 (In: fd)) (> (In: cnt) (In: ix))))\n; # (and (ge0 (In: fd)) (> (In: cnt) (In: ix)))\n; # (In: fd)\n  %9 = getelementptr i8, i8* %6, i32 8\n  %10 = bitcast i8* %9 to i32*\n  %11 = load i32, i32* %10\n; # (ge0 (In: fd))\n  %12 = icmp sge i32 %11, 0\n  br i1 %12, label %$6, label %$5\n$6:\n  %13 = phi i32 [%8, %$4] ; # Fd\n; # (In: cnt)\n  %14 = getelementptr i8, i8* %6, i32 28\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n; # (In: ix)\n  %17 = getelementptr i8, i8* %6, i32 24\n  %18 = bitcast i8* %17 to i32*\n  %19 = load i32, i32* %18\n; # (> (In: cnt) (In: ix))\n  %20 = icmp sgt i32 %16, %19\n  br label %$5\n$5:\n  %21 = phi i32 [%8, %$4], [%13, %$6] ; # Fd\n  %22 = phi i1 [0, %$4], [%20, %$6] ; # ->\n  br label %$2\n$2:\n  %23 = phi i32 [%0, %$1], [%3, %$3], [%21, %$5] ; # Fd\n  %24 = phi i1 [0, %$1], [0, %$3], [%22, %$5] ; # ->\n  ret i1 %24\n}\n\ndefine i1 @inReady(i32, i1) align 8 {\n$1:\n; # (let P (pollfd Fd) (cond ((>= Fd (val $InFDs)) (readyIn P)) ((=0 ...\n; # (pollfd Fd)\n  %2 = call i64* @pollfd(i32 %0)\n; # (cond ((>= Fd (val $InFDs)) (readyIn P)) ((=0 (val (ofs (val $InF...\n; # (val $InFDs)\n  %3 = load i32, i32* @$InFDs\n; # (>= Fd (val $InFDs))\n  %4 = icmp sge i32 %0, %3\n  br i1 %4, label %$4, label %$3\n$4:\n  %5 = phi i32 [%0, %$1] ; # Fd\n  %6 = phi i1 [%1, %$1] ; # Flg\n  %7 = phi i64* [%2, %$1] ; # P\n; # (readyIn P)\n  %8 = call i1 @readyIn(i64* %7)\n  br label %$2\n$3:\n  %9 = phi i32 [%0, %$1] ; # Fd\n  %10 = phi i1 [%1, %$1] ; # Flg\n  %11 = phi i64* [%2, %$1] ; # P\n; # (val $InFiles)\n  %12 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %13 = getelementptr i8*, i8** %12, i32 %9\n; # (val (ofs (val $InFiles) Fd))\n  %14 = load i8*, i8** %13\n; # (=0 (val (ofs (val $InFiles) Fd)))\n  %15 = icmp eq i8* %14, null\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i32 [%9, %$3] ; # Fd\n  %17 = phi i1 [%10, %$3] ; # Flg\n  %18 = phi i64* [%11, %$3] ; # P\n; # (readyIn P)\n  %19 = call i1 @readyIn(i64* %18)\n  br label %$2\n$5:\n  %20 = phi i32 [%9, %$3] ; # Fd\n  %21 = phi i1 [%10, %$3] ; # Flg\n  %22 = phi i64* [%11, %$3] ; # P\n; # (let In: (inFile @) (if (lt0 (In: fd)) (readyIn P) (or (> (In: cn...\n; # (if (lt0 (In: fd)) (readyIn P) (or (> (In: cnt) (In: ix)) (and (r...\n; # (In: fd)\n  %23 = getelementptr i8, i8* %14, i32 8\n  %24 = bitcast i8* %23 to i32*\n  %25 = load i32, i32* %24\n; # (lt0 (In: fd))\n  %26 = icmp slt i32 %25, 0\n  br i1 %26, label %$7, label %$8\n$7:\n  %27 = phi i32 [%20, %$5] ; # Fd\n  %28 = phi i1 [%21, %$5] ; # Flg\n  %29 = phi i64* [%22, %$5] ; # P\n; # (readyIn P)\n  %30 = call i1 @readyIn(i64* %29)\n  br label %$9\n$8:\n  %31 = phi i32 [%20, %$5] ; # Fd\n  %32 = phi i1 [%21, %$5] ; # Flg\n  %33 = phi i64* [%22, %$5] ; # P\n; # (or (> (In: cnt) (In: ix)) (and (readyIn P) (or Flg (ge0 (slowNb ...\n; # (In: cnt)\n  %34 = getelementptr i8, i8* %14, i32 28\n  %35 = bitcast i8* %34 to i32*\n  %36 = load i32, i32* %35\n; # (In: ix)\n  %37 = getelementptr i8, i8* %14, i32 24\n  %38 = bitcast i8* %37 to i32*\n  %39 = load i32, i32* %38\n; # (> (In: cnt) (In: ix))\n  %40 = icmp sgt i32 %36, %39\n  br i1 %40, label %$10, label %$11\n$11:\n  %41 = phi i32 [%31, %$8] ; # Fd\n  %42 = phi i1 [%32, %$8] ; # Flg\n  %43 = phi i64* [%33, %$8] ; # P\n; # (and (readyIn P) (or Flg (ge0 (slowNb (In:)))))\n; # (readyIn P)\n  %44 = call i1 @readyIn(i64* %43)\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i32 [%41, %$11] ; # Fd\n  %46 = phi i1 [%42, %$11] ; # Flg\n  %47 = phi i64* [%43, %$11] ; # P\n; # (or Flg (ge0 (slowNb (In:))))\n  br i1 %46, label %$14, label %$15\n$15:\n  %48 = phi i32 [%45, %$13] ; # Fd\n  %49 = phi i1 [%46, %$13] ; # Flg\n  %50 = phi i64* [%47, %$13] ; # P\n; # (In:)\n; # (slowNb (In:))\n  %51 = call i32 @slowNb(i8* %14)\n; # (ge0 (slowNb (In:)))\n  %52 = icmp sge i32 %51, 0\n  br label %$14\n$14:\n  %53 = phi i32 [%45, %$13], [%48, %$15] ; # Fd\n  %54 = phi i1 [%46, %$13], [%49, %$15] ; # Flg\n  %55 = phi i64* [%47, %$13], [%50, %$15] ; # P\n  %56 = phi i1 [1, %$13], [%52, %$15] ; # ->\n  br label %$12\n$12:\n  %57 = phi i32 [%41, %$11], [%53, %$14] ; # Fd\n  %58 = phi i1 [%42, %$11], [%54, %$14] ; # Flg\n  %59 = phi i64* [%43, %$11], [%55, %$14] ; # P\n  %60 = phi i1 [0, %$11], [%56, %$14] ; # ->\n  br label %$10\n$10:\n  %61 = phi i32 [%31, %$8], [%57, %$12] ; # Fd\n  %62 = phi i1 [%32, %$8], [%58, %$12] ; # Flg\n  %63 = phi i64* [%33, %$8], [%59, %$12] ; # P\n  %64 = phi i1 [1, %$8], [%60, %$12] ; # ->\n  br label %$9\n$9:\n  %65 = phi i32 [%27, %$7], [%61, %$10] ; # Fd\n  %66 = phi i1 [%28, %$7], [%62, %$10] ; # Flg\n  %67 = phi i64* [%29, %$7], [%63, %$10] ; # P\n  %68 = phi i1 [%30, %$7], [%64, %$10] ; # ->\n  br label %$2\n$2:\n  %69 = phi i32 [%5, %$4], [%16, %$6], [%65, %$9] ; # Fd\n  %70 = phi i1 [%6, %$4], [%17, %$6], [%66, %$9] ; # Flg\n  %71 = phi i64* [%7, %$4], [%18, %$6], [%67, %$9] ; # P\n  %72 = phi i1 [%8, %$4], [%19, %$6], [%68, %$9] ; # ->\n  ret i1 %72\n}\n\ndefine i32 @getBlk() align 8 {\n$1:\n; # (let P (val $BlkPtr) (set $BlkPtr (inc P)) (i32 (val P)))\n; # (val $BlkPtr)\n  %0 = load i8*, i8** @$BlkPtr\n; # (set $BlkPtr (inc P))\n; # (inc P)\n  %1 = getelementptr i8, i8* %0, i32 1\n  store i8* %1, i8** @$BlkPtr\n; # (val P)\n  %2 = load i8, i8* %0\n; # (i32 (val P))\n  %3 = zext i8 %2 to i32\n  ret i32 %3\n}\n\ndefine i64 @waitFd(i64, i32, i64) align 8 {\n$1:\n; # (let (Run (save (val $Run)) At (save (val $At)) Buf (b8 (val Pipe...\n; # (val $Run)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (save (val $Run))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (val $At)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %14 = load i64, i64* %13\n; # (save (val $At))\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %16 = load i64, i64* %15\n  %17 = alloca i64, i64 2, align 16\n  %18 = ptrtoint i64* %17 to i64\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %14, i64* %19\n  %20 = add i64 %18, 8\n  %21 = inttoptr i64 %20 to i64*\n  store i64 %16, i64* %21\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %18, i64* %22\n; # (val PipeBufSize)\n  %23 = load i32, i32* @PipeBufSize\n; # (b8 (val PipeBufSize))\n  %24 = alloca i8, i32 %23\n; # (b32 2)\n  %25 = alloca i32, i64 2\n; # (getMsec)\n  %26 = call i64 @getMsec()\n; # (stkChk Exe)\n  %27 = load i8*, i8** @$StkLimit\n  %28 = call i8* @llvm.stacksave()\n  %29 = icmp ugt i8* %27, %28\n  br i1 %29, label %$2, label %$3\n$2:\n  %30 = phi i64 [%0, %$1] ; # Exe\n  call void @stkErr(i64 %30)\n  unreachable\n$3:\n  %31 = phi i64 [%0, %$1] ; # Exe\n; # (loop (let Dly Ms (when (ge0 Fd) (if (hasData Fd) (setq Dly 0) (p...\n  br label %$4\n$4:\n  %32 = phi i64 [%0, %$3], [%1771, %$140] ; # Exe\n  %33 = phi i32 [%1, %$3], [%1772, %$140] ; # Fd\n  %34 = phi i64 [%2, %$3], [%1773, %$140] ; # Ms\n  %35 = phi i64 [%4, %$3], [%1780, %$140] ; # Run\n  %36 = phi i64 [%14, %$3], [%1775, %$140] ; # At\n  %37 = phi i8* [%24, %$3], [%1776, %$140] ; # Buf\n  %38 = phi i32* [%25, %$3], [%1777, %$140] ; # Pn\n  %39 = phi i64 [%26, %$3], [%1778, %$140] ; # Tim\n; # (let Dly Ms (when (ge0 Fd) (if (hasData Fd) (setq Dly 0) (pollIn ...\n; # (when (ge0 Fd) (if (hasData Fd) (setq Dly 0) (pollIn Fd (pollfd F...\n; # (ge0 Fd)\n  %40 = icmp sge i32 %33, 0\n  br i1 %40, label %$5, label %$6\n$5:\n  %41 = phi i64 [%32, %$4] ; # Exe\n  %42 = phi i32 [%33, %$4] ; # Fd\n  %43 = phi i64 [%34, %$4] ; # Ms\n  %44 = phi i64 [%35, %$4] ; # Run\n  %45 = phi i64 [%36, %$4] ; # At\n  %46 = phi i8* [%37, %$4] ; # Buf\n  %47 = phi i32* [%38, %$4] ; # Pn\n  %48 = phi i64 [%39, %$4] ; # Tim\n  %49 = phi i64 [%34, %$4] ; # Dly\n; # (if (hasData Fd) (setq Dly 0) (pollIn Fd (pollfd Fd)))\n; # (hasData Fd)\n  %50 = call i1 @hasData(i32 %42)\n  br i1 %50, label %$7, label %$8\n$7:\n  %51 = phi i64 [%41, %$5] ; # Exe\n  %52 = phi i32 [%42, %$5] ; # Fd\n  %53 = phi i64 [%43, %$5] ; # Ms\n  %54 = phi i64 [%44, %$5] ; # Run\n  %55 = phi i64 [%45, %$5] ; # At\n  %56 = phi i8* [%46, %$5] ; # Buf\n  %57 = phi i32* [%47, %$5] ; # Pn\n  %58 = phi i64 [%48, %$5] ; # Tim\n  %59 = phi i64 [%49, %$5] ; # Dly\n  br label %$9\n$8:\n  %60 = phi i64 [%41, %$5] ; # Exe\n  %61 = phi i32 [%42, %$5] ; # Fd\n  %62 = phi i64 [%43, %$5] ; # Ms\n  %63 = phi i64 [%44, %$5] ; # Run\n  %64 = phi i64 [%45, %$5] ; # At\n  %65 = phi i8* [%46, %$5] ; # Buf\n  %66 = phi i32* [%47, %$5] ; # Pn\n  %67 = phi i64 [%48, %$5] ; # Tim\n  %68 = phi i64 [%49, %$5] ; # Dly\n; # (pollfd Fd)\n  %69 = call i64* @pollfd(i32 %61)\n; # (pollIn Fd (pollfd Fd))\n  call void @pollIn(i32 %61, i64* %69)\n  br label %$9\n$9:\n  %70 = phi i64 [%51, %$7], [%60, %$8] ; # Exe\n  %71 = phi i32 [%52, %$7], [%61, %$8] ; # Fd\n  %72 = phi i64 [%53, %$7], [%62, %$8] ; # Ms\n  %73 = phi i64 [%54, %$7], [%63, %$8] ; # Run\n  %74 = phi i64 [%55, %$7], [%64, %$8] ; # At\n  %75 = phi i8* [%56, %$7], [%65, %$8] ; # Buf\n  %76 = phi i32* [%57, %$7], [%66, %$8] ; # Pn\n  %77 = phi i64 [%58, %$7], [%67, %$8] ; # Tim\n  %78 = phi i64 [0, %$7], [%68, %$8] ; # Dly\n  br label %$6\n$6:\n  %79 = phi i64 [%32, %$4], [%70, %$9] ; # Exe\n  %80 = phi i32 [%33, %$4], [%71, %$9] ; # Fd\n  %81 = phi i64 [%34, %$4], [%72, %$9] ; # Ms\n  %82 = phi i64 [%35, %$4], [%73, %$9] ; # Run\n  %83 = phi i64 [%36, %$4], [%74, %$9] ; # At\n  %84 = phi i8* [%37, %$4], [%75, %$9] ; # Buf\n  %85 = phi i32* [%38, %$4], [%76, %$9] ; # Pn\n  %86 = phi i64 [%39, %$4], [%77, %$9] ; # Tim\n  %87 = phi i64 [%34, %$4], [%78, %$9] ; # Dly\n; # (let R Run (while (pair R) (let X (++ R) (cond ((sign? (car X)) (...\n; # (while (pair R) (let X (++ R) (cond ((sign? (car X)) (let N (int ...\n  br label %$10\n$10:\n  %88 = phi i64 [%79, %$6], [%234, %$13] ; # Exe\n  %89 = phi i32 [%80, %$6], [%235, %$13] ; # Fd\n  %90 = phi i64 [%81, %$6], [%236, %$13] ; # Ms\n  %91 = phi i64 [%82, %$6], [%237, %$13] ; # Run\n  %92 = phi i64 [%83, %$6], [%238, %$13] ; # At\n  %93 = phi i8* [%84, %$6], [%239, %$13] ; # Buf\n  %94 = phi i32* [%85, %$6], [%240, %$13] ; # Pn\n  %95 = phi i64 [%86, %$6], [%241, %$13] ; # Tim\n  %96 = phi i64 [%87, %$6], [%242, %$13] ; # Dly\n  %97 = phi i64 [%82, %$6], [%243, %$13] ; # R\n; # (pair R)\n  %98 = and i64 %97, 15\n  %99 = icmp eq i64 %98, 0\n  br i1 %99, label %$11, label %$12\n$11:\n  %100 = phi i64 [%88, %$10] ; # Exe\n  %101 = phi i32 [%89, %$10] ; # Fd\n  %102 = phi i64 [%90, %$10] ; # Ms\n  %103 = phi i64 [%91, %$10] ; # Run\n  %104 = phi i64 [%92, %$10] ; # At\n  %105 = phi i8* [%93, %$10] ; # Buf\n  %106 = phi i32* [%94, %$10] ; # Pn\n  %107 = phi i64 [%95, %$10] ; # Tim\n  %108 = phi i64 [%96, %$10] ; # Dly\n  %109 = phi i64 [%97, %$10] ; # R\n; # (let X (++ R) (cond ((sign? (car X)) (let N (int (cadr X)) (when ...\n; # (++ R)\n  %110 = inttoptr i64 %109 to i64*\n  %111 = getelementptr i64, i64* %110, i32 1\n  %112 = load i64, i64* %111\n  %113 = load i64, i64* %110\n; # (cond ((sign? (car X)) (let N (int (cadr X)) (when (> Dly N) (set...\n; # (car X)\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n; # (sign? (car X))\n  %116 = and i64 %115, 8\n  %117 = icmp ne i64 %116, 0\n  br i1 %117, label %$15, label %$14\n$15:\n  %118 = phi i64 [%100, %$11] ; # Exe\n  %119 = phi i32 [%101, %$11] ; # Fd\n  %120 = phi i64 [%102, %$11] ; # Ms\n  %121 = phi i64 [%103, %$11] ; # Run\n  %122 = phi i64 [%104, %$11] ; # At\n  %123 = phi i8* [%105, %$11] ; # Buf\n  %124 = phi i32* [%106, %$11] ; # Pn\n  %125 = phi i64 [%107, %$11] ; # Tim\n  %126 = phi i64 [%108, %$11] ; # Dly\n  %127 = phi i64 [%112, %$11] ; # R\n  %128 = phi i64 [%113, %$11] ; # X\n; # (let N (int (cadr X)) (when (> Dly N) (setq Dly N)))\n; # (cadr X)\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n; # (int (cadr X))\n  %134 = lshr i64 %133, 4\n; # (when (> Dly N) (setq Dly N))\n; # (> Dly N)\n  %135 = icmp ugt i64 %126, %134\n  br i1 %135, label %$16, label %$17\n$16:\n  %136 = phi i64 [%118, %$15] ; # Exe\n  %137 = phi i32 [%119, %$15] ; # Fd\n  %138 = phi i64 [%120, %$15] ; # Ms\n  %139 = phi i64 [%121, %$15] ; # Run\n  %140 = phi i64 [%122, %$15] ; # At\n  %141 = phi i8* [%123, %$15] ; # Buf\n  %142 = phi i32* [%124, %$15] ; # Pn\n  %143 = phi i64 [%125, %$15] ; # Tim\n  %144 = phi i64 [%126, %$15] ; # Dly\n  %145 = phi i64 [%127, %$15] ; # R\n  %146 = phi i64 [%128, %$15] ; # X\n  %147 = phi i64 [%134, %$15] ; # N\n  br label %$17\n$17:\n  %148 = phi i64 [%118, %$15], [%136, %$16] ; # Exe\n  %149 = phi i32 [%119, %$15], [%137, %$16] ; # Fd\n  %150 = phi i64 [%120, %$15], [%138, %$16] ; # Ms\n  %151 = phi i64 [%121, %$15], [%139, %$16] ; # Run\n  %152 = phi i64 [%122, %$15], [%140, %$16] ; # At\n  %153 = phi i8* [%123, %$15], [%141, %$16] ; # Buf\n  %154 = phi i32* [%124, %$15], [%142, %$16] ; # Pn\n  %155 = phi i64 [%125, %$15], [%143, %$16] ; # Tim\n  %156 = phi i64 [%126, %$15], [%147, %$16] ; # Dly\n  %157 = phi i64 [%127, %$15], [%145, %$16] ; # R\n  %158 = phi i64 [%128, %$15], [%146, %$16] ; # X\n  %159 = phi i64 [%134, %$15], [%147, %$16] ; # N\n  br label %$13\n$14:\n  %160 = phi i64 [%100, %$11] ; # Exe\n  %161 = phi i32 [%101, %$11] ; # Fd\n  %162 = phi i64 [%102, %$11] ; # Ms\n  %163 = phi i64 [%103, %$11] ; # Run\n  %164 = phi i64 [%104, %$11] ; # At\n  %165 = phi i8* [%105, %$11] ; # Buf\n  %166 = phi i32* [%106, %$11] ; # Pn\n  %167 = phi i64 [%107, %$11] ; # Tim\n  %168 = phi i64 [%108, %$11] ; # Dly\n  %169 = phi i64 [%112, %$11] ; # R\n  %170 = phi i64 [%113, %$11] ; # X\n; # (int @)\n  %171 = lshr i64 %115, 4\n; # (i32 (int @))\n  %172 = trunc i64 %171 to i32\n; # (<> (i32 (int @)) Fd)\n  %173 = icmp ne i32 %172, %161\n  br i1 %173, label %$19, label %$18\n$19:\n  %174 = phi i64 [%160, %$14] ; # Exe\n  %175 = phi i32 [%161, %$14] ; # Fd\n  %176 = phi i64 [%162, %$14] ; # Ms\n  %177 = phi i64 [%163, %$14] ; # Run\n  %178 = phi i64 [%164, %$14] ; # At\n  %179 = phi i8* [%165, %$14] ; # Buf\n  %180 = phi i32* [%166, %$14] ; # Pn\n  %181 = phi i64 [%167, %$14] ; # Tim\n  %182 = phi i64 [%168, %$14] ; # Dly\n  %183 = phi i64 [%169, %$14] ; # R\n  %184 = phi i64 [%170, %$14] ; # X\n; # (let N @ (if (hasData N) (setq Dly 0) (pollIn N (pollfd N))))\n; # (if (hasData N) (setq Dly 0) (pollIn N (pollfd N)))\n; # (hasData N)\n  %185 = call i1 @hasData(i32 %172)\n  br i1 %185, label %$20, label %$21\n$20:\n  %186 = phi i64 [%174, %$19] ; # Exe\n  %187 = phi i32 [%175, %$19] ; # Fd\n  %188 = phi i64 [%176, %$19] ; # Ms\n  %189 = phi i64 [%177, %$19] ; # Run\n  %190 = phi i64 [%178, %$19] ; # At\n  %191 = phi i8* [%179, %$19] ; # Buf\n  %192 = phi i32* [%180, %$19] ; # Pn\n  %193 = phi i64 [%181, %$19] ; # Tim\n  %194 = phi i64 [%182, %$19] ; # Dly\n  %195 = phi i64 [%183, %$19] ; # R\n  %196 = phi i64 [%184, %$19] ; # X\n  %197 = phi i32 [%172, %$19] ; # N\n  br label %$22\n$21:\n  %198 = phi i64 [%174, %$19] ; # Exe\n  %199 = phi i32 [%175, %$19] ; # Fd\n  %200 = phi i64 [%176, %$19] ; # Ms\n  %201 = phi i64 [%177, %$19] ; # Run\n  %202 = phi i64 [%178, %$19] ; # At\n  %203 = phi i8* [%179, %$19] ; # Buf\n  %204 = phi i32* [%180, %$19] ; # Pn\n  %205 = phi i64 [%181, %$19] ; # Tim\n  %206 = phi i64 [%182, %$19] ; # Dly\n  %207 = phi i64 [%183, %$19] ; # R\n  %208 = phi i64 [%184, %$19] ; # X\n  %209 = phi i32 [%172, %$19] ; # N\n; # (pollfd N)\n  %210 = call i64* @pollfd(i32 %209)\n; # (pollIn N (pollfd N))\n  call void @pollIn(i32 %209, i64* %210)\n  br label %$22\n$22:\n  %211 = phi i64 [%186, %$20], [%198, %$21] ; # Exe\n  %212 = phi i32 [%187, %$20], [%199, %$21] ; # Fd\n  %213 = phi i64 [%188, %$20], [%200, %$21] ; # Ms\n  %214 = phi i64 [%189, %$20], [%201, %$21] ; # Run\n  %215 = phi i64 [%190, %$20], [%202, %$21] ; # At\n  %216 = phi i8* [%191, %$20], [%203, %$21] ; # Buf\n  %217 = phi i32* [%192, %$20], [%204, %$21] ; # Pn\n  %218 = phi i64 [%193, %$20], [%205, %$21] ; # Tim\n  %219 = phi i64 [0, %$20], [%206, %$21] ; # Dly\n  %220 = phi i64 [%195, %$20], [%207, %$21] ; # R\n  %221 = phi i64 [%196, %$20], [%208, %$21] ; # X\n  %222 = phi i32 [%197, %$20], [%209, %$21] ; # N\n  br label %$13\n$18:\n  %223 = phi i64 [%160, %$14] ; # Exe\n  %224 = phi i32 [%161, %$14] ; # Fd\n  %225 = phi i64 [%162, %$14] ; # Ms\n  %226 = phi i64 [%163, %$14] ; # Run\n  %227 = phi i64 [%164, %$14] ; # At\n  %228 = phi i8* [%165, %$14] ; # Buf\n  %229 = phi i32* [%166, %$14] ; # Pn\n  %230 = phi i64 [%167, %$14] ; # Tim\n  %231 = phi i64 [%168, %$14] ; # Dly\n  %232 = phi i64 [%169, %$14] ; # R\n  %233 = phi i64 [%170, %$14] ; # X\n  br label %$13\n$13:\n  %234 = phi i64 [%148, %$17], [%211, %$22], [%223, %$18] ; # Exe\n  %235 = phi i32 [%149, %$17], [%212, %$22], [%224, %$18] ; # Fd\n  %236 = phi i64 [%150, %$17], [%213, %$22], [%225, %$18] ; # Ms\n  %237 = phi i64 [%151, %$17], [%214, %$22], [%226, %$18] ; # Run\n  %238 = phi i64 [%152, %$17], [%215, %$22], [%227, %$18] ; # At\n  %239 = phi i8* [%153, %$17], [%216, %$22], [%228, %$18] ; # Buf\n  %240 = phi i32* [%154, %$17], [%217, %$22], [%229, %$18] ; # Pn\n  %241 = phi i64 [%155, %$17], [%218, %$22], [%230, %$18] ; # Tim\n  %242 = phi i64 [%156, %$17], [%219, %$22], [%231, %$18] ; # Dly\n  %243 = phi i64 [%157, %$17], [%220, %$22], [%232, %$18] ; # R\n  %244 = phi i64 [%158, %$17], [%221, %$22], [%233, %$18] ; # X\n  br label %$10\n$12:\n  %245 = phi i64 [%88, %$10] ; # Exe\n  %246 = phi i32 [%89, %$10] ; # Fd\n  %247 = phi i64 [%90, %$10] ; # Ms\n  %248 = phi i64 [%91, %$10] ; # Run\n  %249 = phi i64 [%92, %$10] ; # At\n  %250 = phi i8* [%93, %$10] ; # Buf\n  %251 = phi i32* [%94, %$10] ; # Pn\n  %252 = phi i64 [%95, %$10] ; # Tim\n  %253 = phi i64 [%96, %$10] ; # Dly\n  %254 = phi i64 [%97, %$10] ; # R\n; # (when (and (val $Hear) (<> @ Fd)) (let N @ (if (hasData N) (setq ...\n; # (and (val $Hear) (<> @ Fd))\n; # (val $Hear)\n  %255 = load i32, i32* @$Hear\n  %256 = icmp ne i32 %255, 0\n  br i1 %256, label %$24, label %$23\n$24:\n  %257 = phi i64 [%245, %$12] ; # Exe\n  %258 = phi i32 [%246, %$12] ; # Fd\n  %259 = phi i64 [%247, %$12] ; # Ms\n  %260 = phi i64 [%248, %$12] ; # Run\n  %261 = phi i64 [%249, %$12] ; # At\n  %262 = phi i8* [%250, %$12] ; # Buf\n  %263 = phi i32* [%251, %$12] ; # Pn\n  %264 = phi i64 [%252, %$12] ; # Tim\n  %265 = phi i64 [%253, %$12] ; # Dly\n; # (<> @ Fd)\n  %266 = icmp ne i32 %255, %258\n  br label %$23\n$23:\n  %267 = phi i64 [%245, %$12], [%257, %$24] ; # Exe\n  %268 = phi i32 [%246, %$12], [%258, %$24] ; # Fd\n  %269 = phi i64 [%247, %$12], [%259, %$24] ; # Ms\n  %270 = phi i64 [%248, %$12], [%260, %$24] ; # Run\n  %271 = phi i64 [%249, %$12], [%261, %$24] ; # At\n  %272 = phi i8* [%250, %$12], [%262, %$24] ; # Buf\n  %273 = phi i32* [%251, %$12], [%263, %$24] ; # Pn\n  %274 = phi i64 [%252, %$12], [%264, %$24] ; # Tim\n  %275 = phi i64 [%253, %$12], [%265, %$24] ; # Dly\n  %276 = phi i1 [0, %$12], [%266, %$24] ; # ->\n  br i1 %276, label %$25, label %$26\n$25:\n  %277 = phi i64 [%267, %$23] ; # Exe\n  %278 = phi i32 [%268, %$23] ; # Fd\n  %279 = phi i64 [%269, %$23] ; # Ms\n  %280 = phi i64 [%270, %$23] ; # Run\n  %281 = phi i64 [%271, %$23] ; # At\n  %282 = phi i8* [%272, %$23] ; # Buf\n  %283 = phi i32* [%273, %$23] ; # Pn\n  %284 = phi i64 [%274, %$23] ; # Tim\n  %285 = phi i64 [%275, %$23] ; # Dly\n; # (let N @ (if (hasData N) (setq Dly 0) (pollIn N (pollfd N))))\n; # (if (hasData N) (setq Dly 0) (pollIn N (pollfd N)))\n; # (hasData N)\n  %286 = call i1 @hasData(i32 %255)\n  br i1 %286, label %$27, label %$28\n$27:\n  %287 = phi i64 [%277, %$25] ; # Exe\n  %288 = phi i32 [%278, %$25] ; # Fd\n  %289 = phi i64 [%279, %$25] ; # Ms\n  %290 = phi i64 [%280, %$25] ; # Run\n  %291 = phi i64 [%281, %$25] ; # At\n  %292 = phi i8* [%282, %$25] ; # Buf\n  %293 = phi i32* [%283, %$25] ; # Pn\n  %294 = phi i64 [%284, %$25] ; # Tim\n  %295 = phi i64 [%285, %$25] ; # Dly\n  %296 = phi i32 [%255, %$25] ; # N\n  br label %$29\n$28:\n  %297 = phi i64 [%277, %$25] ; # Exe\n  %298 = phi i32 [%278, %$25] ; # Fd\n  %299 = phi i64 [%279, %$25] ; # Ms\n  %300 = phi i64 [%280, %$25] ; # Run\n  %301 = phi i64 [%281, %$25] ; # At\n  %302 = phi i8* [%282, %$25] ; # Buf\n  %303 = phi i32* [%283, %$25] ; # Pn\n  %304 = phi i64 [%284, %$25] ; # Tim\n  %305 = phi i64 [%285, %$25] ; # Dly\n  %306 = phi i32 [%255, %$25] ; # N\n; # (pollfd N)\n  %307 = call i64* @pollfd(i32 %306)\n; # (pollIn N (pollfd N))\n  call void @pollIn(i32 %306, i64* %307)\n  br label %$29\n$29:\n  %308 = phi i64 [%287, %$27], [%297, %$28] ; # Exe\n  %309 = phi i32 [%288, %$27], [%298, %$28] ; # Fd\n  %310 = phi i64 [%289, %$27], [%299, %$28] ; # Ms\n  %311 = phi i64 [%290, %$27], [%300, %$28] ; # Run\n  %312 = phi i64 [%291, %$27], [%301, %$28] ; # At\n  %313 = phi i8* [%292, %$27], [%302, %$28] ; # Buf\n  %314 = phi i32* [%293, %$27], [%303, %$28] ; # Pn\n  %315 = phi i64 [%294, %$27], [%304, %$28] ; # Tim\n  %316 = phi i64 [0, %$27], [%305, %$28] ; # Dly\n  %317 = phi i32 [%296, %$27], [%306, %$28] ; # N\n  br label %$26\n$26:\n  %318 = phi i64 [%267, %$23], [%308, %$29] ; # Exe\n  %319 = phi i32 [%268, %$23], [%309, %$29] ; # Fd\n  %320 = phi i64 [%269, %$23], [%310, %$29] ; # Ms\n  %321 = phi i64 [%270, %$23], [%311, %$29] ; # Run\n  %322 = phi i64 [%271, %$23], [%312, %$29] ; # At\n  %323 = phi i8* [%272, %$23], [%313, %$29] ; # Buf\n  %324 = phi i32* [%273, %$23], [%314, %$29] ; # Pn\n  %325 = phi i64 [%274, %$23], [%315, %$29] ; # Tim\n  %326 = phi i64 [%275, %$23], [%316, %$29] ; # Dly\n; # (when (val $Spkr) (pollIn @ (pollfd @)) (let (Cld (val $Child) <C...\n; # (val $Spkr)\n  %327 = load i32, i32* @$Spkr\n  %328 = icmp ne i32 %327, 0\n  br i1 %328, label %$30, label %$31\n$30:\n  %329 = phi i64 [%318, %$26] ; # Exe\n  %330 = phi i32 [%319, %$26] ; # Fd\n  %331 = phi i64 [%320, %$26] ; # Ms\n  %332 = phi i64 [%321, %$26] ; # Run\n  %333 = phi i64 [%322, %$26] ; # At\n  %334 = phi i8* [%323, %$26] ; # Buf\n  %335 = phi i32* [%324, %$26] ; # Pn\n  %336 = phi i64 [%325, %$26] ; # Tim\n  %337 = phi i64 [%326, %$26] ; # Dly\n; # (pollfd @)\n  %338 = call i64* @pollfd(i32 %327)\n; # (pollIn @ (pollfd @))\n  call void @pollIn(i32 %327, i64* %338)\n; # (let (Cld (val $Child) <Cld (ofs Cld (* (val $Children) (child T)...\n; # (val $Child)\n  %339 = load i8*, i8** @$Child\n; # (val $Children)\n  %340 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %341 = mul i32 %340, 32\n; # (ofs Cld (* (val $Children) (child T)))\n  %342 = getelementptr i8, i8* %339, i32 %341\n; # (until (== Cld <Cld) (let Cld: (child Cld) (when (Cld: pid) (poll...\n  br label %$32\n$32:\n  %343 = phi i64 [%329, %$30], [%421, %$36] ; # Exe\n  %344 = phi i32 [%330, %$30], [%422, %$36] ; # Fd\n  %345 = phi i64 [%331, %$30], [%423, %$36] ; # Ms\n  %346 = phi i64 [%332, %$30], [%424, %$36] ; # Run\n  %347 = phi i64 [%333, %$30], [%425, %$36] ; # At\n  %348 = phi i8* [%334, %$30], [%426, %$36] ; # Buf\n  %349 = phi i32* [%335, %$30], [%427, %$36] ; # Pn\n  %350 = phi i64 [%336, %$30], [%428, %$36] ; # Tim\n  %351 = phi i64 [%337, %$30], [%429, %$36] ; # Dly\n  %352 = phi i8* [%339, %$30], [%432, %$36] ; # Cld\n  %353 = phi i8* [%342, %$30], [%431, %$36] ; # <Cld\n; # (== Cld <Cld)\n  %354 = icmp eq i8* %352, %353\n  br i1 %354, label %$34, label %$33\n$33:\n  %355 = phi i64 [%343, %$32] ; # Exe\n  %356 = phi i32 [%344, %$32] ; # Fd\n  %357 = phi i64 [%345, %$32] ; # Ms\n  %358 = phi i64 [%346, %$32] ; # Run\n  %359 = phi i64 [%347, %$32] ; # At\n  %360 = phi i8* [%348, %$32] ; # Buf\n  %361 = phi i32* [%349, %$32] ; # Pn\n  %362 = phi i64 [%350, %$32] ; # Tim\n  %363 = phi i64 [%351, %$32] ; # Dly\n  %364 = phi i8* [%352, %$32] ; # Cld\n  %365 = phi i8* [%353, %$32] ; # <Cld\n; # (let Cld: (child Cld) (when (Cld: pid) (pollIn (Cld: hear) (pollf...\n; # (when (Cld: pid) (pollIn (Cld: hear) (pollfd (Cld: hear))) (when ...\n; # (Cld: pid)\n  %366 = getelementptr i8, i8* %364, i32 16\n  %367 = bitcast i8* %366 to i32*\n  %368 = load i32, i32* %367\n  %369 = icmp ne i32 %368, 0\n  br i1 %369, label %$35, label %$36\n$35:\n  %370 = phi i64 [%355, %$33] ; # Exe\n  %371 = phi i32 [%356, %$33] ; # Fd\n  %372 = phi i64 [%357, %$33] ; # Ms\n  %373 = phi i64 [%358, %$33] ; # Run\n  %374 = phi i64 [%359, %$33] ; # At\n  %375 = phi i8* [%360, %$33] ; # Buf\n  %376 = phi i32* [%361, %$33] ; # Pn\n  %377 = phi i64 [%362, %$33] ; # Tim\n  %378 = phi i64 [%363, %$33] ; # Dly\n  %379 = phi i8* [%364, %$33] ; # Cld\n  %380 = phi i8* [%365, %$33] ; # <Cld\n; # (Cld: hear)\n  %381 = getelementptr i8, i8* %364, i32 20\n  %382 = bitcast i8* %381 to i32*\n  %383 = load i32, i32* %382\n; # (Cld: hear)\n  %384 = getelementptr i8, i8* %364, i32 20\n  %385 = bitcast i8* %384 to i32*\n  %386 = load i32, i32* %385\n; # (pollfd (Cld: hear))\n  %387 = call i64* @pollfd(i32 %386)\n; # (pollIn (Cld: hear) (pollfd (Cld: hear)))\n  call void @pollIn(i32 %383, i64* %387)\n; # (when (Cld: cnt) (pollOut (Cld: tell) (pollfd (Cld: tell))))\n; # (Cld: cnt)\n  %388 = getelementptr i8, i8* %364, i32 12\n  %389 = bitcast i8* %388 to i32*\n  %390 = load i32, i32* %389\n  %391 = icmp ne i32 %390, 0\n  br i1 %391, label %$37, label %$38\n$37:\n  %392 = phi i64 [%370, %$35] ; # Exe\n  %393 = phi i32 [%371, %$35] ; # Fd\n  %394 = phi i64 [%372, %$35] ; # Ms\n  %395 = phi i64 [%373, %$35] ; # Run\n  %396 = phi i64 [%374, %$35] ; # At\n  %397 = phi i8* [%375, %$35] ; # Buf\n  %398 = phi i32* [%376, %$35] ; # Pn\n  %399 = phi i64 [%377, %$35] ; # Tim\n  %400 = phi i64 [%378, %$35] ; # Dly\n  %401 = phi i8* [%379, %$35] ; # Cld\n  %402 = phi i8* [%380, %$35] ; # <Cld\n; # (Cld: tell)\n  %403 = getelementptr i8, i8* %364, i32 24\n  %404 = bitcast i8* %403 to i32*\n  %405 = load i32, i32* %404\n; # (Cld: tell)\n  %406 = getelementptr i8, i8* %364, i32 24\n  %407 = bitcast i8* %406 to i32*\n  %408 = load i32, i32* %407\n; # (pollfd (Cld: tell))\n  %409 = call i64* @pollfd(i32 %408)\n; # (pollOut (Cld: tell) (pollfd (Cld: tell)))\n  call void @pollOut(i32 %405, i64* %409)\n  br label %$38\n$38:\n  %410 = phi i64 [%370, %$35], [%392, %$37] ; # Exe\n  %411 = phi i32 [%371, %$35], [%393, %$37] ; # Fd\n  %412 = phi i64 [%372, %$35], [%394, %$37] ; # Ms\n  %413 = phi i64 [%373, %$35], [%395, %$37] ; # Run\n  %414 = phi i64 [%374, %$35], [%396, %$37] ; # At\n  %415 = phi i8* [%375, %$35], [%397, %$37] ; # Buf\n  %416 = phi i32* [%376, %$35], [%398, %$37] ; # Pn\n  %417 = phi i64 [%377, %$35], [%399, %$37] ; # Tim\n  %418 = phi i64 [%378, %$35], [%400, %$37] ; # Dly\n  %419 = phi i8* [%379, %$35], [%401, %$37] ; # Cld\n  %420 = phi i8* [%380, %$35], [%402, %$37] ; # <Cld\n  br label %$36\n$36:\n  %421 = phi i64 [%355, %$33], [%410, %$38] ; # Exe\n  %422 = phi i32 [%356, %$33], [%411, %$38] ; # Fd\n  %423 = phi i64 [%357, %$33], [%412, %$38] ; # Ms\n  %424 = phi i64 [%358, %$33], [%413, %$38] ; # Run\n  %425 = phi i64 [%359, %$33], [%414, %$38] ; # At\n  %426 = phi i8* [%360, %$33], [%415, %$38] ; # Buf\n  %427 = phi i32* [%361, %$33], [%416, %$38] ; # Pn\n  %428 = phi i64 [%362, %$33], [%417, %$38] ; # Tim\n  %429 = phi i64 [%363, %$33], [%418, %$38] ; # Dly\n  %430 = phi i8* [%364, %$33], [%419, %$38] ; # Cld\n  %431 = phi i8* [%365, %$33], [%420, %$38] ; # <Cld\n; # (ofs Cld (child T))\n  %432 = getelementptr i8, i8* %430, i32 32\n  br label %$32\n$34:\n  %433 = phi i64 [%343, %$32] ; # Exe\n  %434 = phi i32 [%344, %$32] ; # Fd\n  %435 = phi i64 [%345, %$32] ; # Ms\n  %436 = phi i64 [%346, %$32] ; # Run\n  %437 = phi i64 [%347, %$32] ; # At\n  %438 = phi i8* [%348, %$32] ; # Buf\n  %439 = phi i32* [%349, %$32] ; # Pn\n  %440 = phi i64 [%350, %$32] ; # Tim\n  %441 = phi i64 [%351, %$32] ; # Dly\n  %442 = phi i8* [%352, %$32] ; # Cld\n  %443 = phi i8* [%353, %$32] ; # <Cld\n  br label %$31\n$31:\n  %444 = phi i64 [%318, %$26], [%433, %$34] ; # Exe\n  %445 = phi i32 [%319, %$26], [%434, %$34] ; # Fd\n  %446 = phi i64 [%320, %$26], [%435, %$34] ; # Ms\n  %447 = phi i64 [%321, %$26], [%436, %$34] ; # Run\n  %448 = phi i64 [%322, %$26], [%437, %$34] ; # At\n  %449 = phi i8* [%323, %$26], [%438, %$34] ; # Buf\n  %450 = phi i32* [%324, %$26], [%439, %$34] ; # Pn\n  %451 = phi i64 [%325, %$26], [%440, %$34] ; # Tim\n  %452 = phi i64 [%326, %$26], [%441, %$34] ; # Dly\n; # (while (lt0 (gPoll (val $Poll) (val $Nfds) Dly)) (unless (== (gEr...\n  br label %$39\n$39:\n  %453 = phi i64 [%444, %$31], [%487, %$45] ; # Exe\n  %454 = phi i32 [%445, %$31], [%488, %$45] ; # Fd\n  %455 = phi i64 [%446, %$31], [%489, %$45] ; # Ms\n  %456 = phi i64 [%447, %$31], [%490, %$45] ; # Run\n  %457 = phi i64 [%448, %$31], [%491, %$45] ; # At\n  %458 = phi i8* [%449, %$31], [%492, %$45] ; # Buf\n  %459 = phi i32* [%450, %$31], [%493, %$45] ; # Pn\n  %460 = phi i64 [%451, %$31], [%494, %$45] ; # Tim\n  %461 = phi i64 [%452, %$31], [%495, %$45] ; # Dly\n; # (val $Poll)\n  %462 = load i64*, i64** @$Poll\n; # (val $Nfds)\n  %463 = load i32, i32* @$Nfds\n; # (gPoll (val $Poll) (val $Nfds) Dly)\n  %464 = call i32 @gPoll(i64* %462, i32 %463, i64 %461)\n; # (lt0 (gPoll (val $Poll) (val $Nfds) Dly))\n  %465 = icmp slt i32 %464, 0\n  br i1 %465, label %$40, label %$41\n$40:\n  %466 = phi i64 [%453, %$39] ; # Exe\n  %467 = phi i32 [%454, %$39] ; # Fd\n  %468 = phi i64 [%455, %$39] ; # Ms\n  %469 = phi i64 [%456, %$39] ; # Run\n  %470 = phi i64 [%457, %$39] ; # At\n  %471 = phi i8* [%458, %$39] ; # Buf\n  %472 = phi i32* [%459, %$39] ; # Pn\n  %473 = phi i64 [%460, %$39] ; # Tim\n  %474 = phi i64 [%461, %$39] ; # Dly\n; # (unless (== (gErrno) EINTR) (set $Run $Nil) (selectErr Exe))\n; # (gErrno)\n  %475 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %476 = icmp eq i32 %475, 2\n  br i1 %476, label %$43, label %$42\n$42:\n  %477 = phi i64 [%466, %$40] ; # Exe\n  %478 = phi i32 [%467, %$40] ; # Fd\n  %479 = phi i64 [%468, %$40] ; # Ms\n  %480 = phi i64 [%469, %$40] ; # Run\n  %481 = phi i64 [%470, %$40] ; # At\n  %482 = phi i8* [%471, %$40] ; # Buf\n  %483 = phi i32* [%472, %$40] ; # Pn\n  %484 = phi i64 [%473, %$40] ; # Tim\n  %485 = phi i64 [%474, %$40] ; # Dly\n; # (set $Run $Nil)\n  %486 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %486\n; # (selectErr Exe)\n  call void @selectErr(i64 %477)\n  unreachable\n$43:\n  %487 = phi i64 [%466, %$40] ; # Exe\n  %488 = phi i32 [%467, %$40] ; # Fd\n  %489 = phi i64 [%468, %$40] ; # Ms\n  %490 = phi i64 [%469, %$40] ; # Run\n  %491 = phi i64 [%470, %$40] ; # At\n  %492 = phi i8* [%471, %$40] ; # Buf\n  %493 = phi i32* [%472, %$40] ; # Pn\n  %494 = phi i64 [%473, %$40] ; # Tim\n  %495 = phi i64 [%474, %$40] ; # Dly\n; # (sigChk Exe)\n  %496 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %497 = icmp ne i32 %496, 0\n  br i1 %497, label %$44, label %$45\n$44:\n  %498 = phi i64 [%487, %$43] ; # Exe\n  call void @sighandler(i64 %498)\n  br label %$45\n$45:\n  %499 = phi i64 [%487, %$43], [%498, %$44] ; # Exe\n  br label %$39\n$41:\n  %500 = phi i64 [%453, %$39] ; # Exe\n  %501 = phi i32 [%454, %$39] ; # Fd\n  %502 = phi i64 [%455, %$39] ; # Ms\n  %503 = phi i64 [%456, %$39] ; # Run\n  %504 = phi i64 [%457, %$39] ; # At\n  %505 = phi i8* [%458, %$39] ; # Buf\n  %506 = phi i32* [%459, %$39] ; # Pn\n  %507 = phi i64 [%460, %$39] ; # Tim\n  %508 = phi i64 [%461, %$39] ; # Dly\n; # (let (Now (getMsec) Dif (- Now Tim)) (when (val $Spkr) (set $Prot...\n; # (getMsec)\n  %509 = call i64 @getMsec()\n; # (- Now Tim)\n  %510 = sub i64 %509, %507\n; # (when (val $Spkr) (set $Protect (inc (val $Protect))) (let (Cld (...\n; # (val $Spkr)\n  %511 = load i32, i32* @$Spkr\n  %512 = icmp ne i32 %511, 0\n  br i1 %512, label %$46, label %$47\n$46:\n  %513 = phi i64 [%500, %$41] ; # Exe\n  %514 = phi i32 [%501, %$41] ; # Fd\n  %515 = phi i64 [%502, %$41] ; # Ms\n  %516 = phi i64 [%503, %$41] ; # Run\n  %517 = phi i64 [%504, %$41] ; # At\n  %518 = phi i8* [%505, %$41] ; # Buf\n  %519 = phi i32* [%506, %$41] ; # Pn\n  %520 = phi i64 [%507, %$41] ; # Tim\n  %521 = phi i64 [%509, %$41] ; # Now\n  %522 = phi i64 [%510, %$41] ; # Dif\n; # (set $Protect (inc (val $Protect)))\n; # (val $Protect)\n  %523 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (inc (val $Protect))\n  %524 = add i32 %523, 1\n  store i32 %524, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (let (Cld (val $Child) <Cld (ofs Cld (* (val $Children) (child T)...\n; # (val $Child)\n  %525 = load i8*, i8** @$Child\n; # (val $Children)\n  %526 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %527 = mul i32 %526, 32\n; # (ofs Cld (* (val $Children) (child T)))\n  %528 = getelementptr i8, i8* %525, i32 %527\n; # (until (== Cld <Cld) (let Cld: (child Cld) (when (Cld: pid) (when...\n  br label %$48\n$48:\n  %529 = phi i64 [%513, %$46], [%1193, %$-1] ; # Exe\n  %530 = phi i32 [%514, %$46], [%1194, %$-1] ; # Fd\n  %531 = phi i64 [%515, %$46], [%1195, %$-1] ; # Ms\n  %532 = phi i64 [%516, %$46], [%1196, %$-1] ; # Run\n  %533 = phi i64 [%517, %$46], [%1197, %$-1] ; # At\n  %534 = phi i8* [%518, %$46], [%1198, %$-1] ; # Buf\n  %535 = phi i32* [%519, %$46], [%1199, %$-1] ; # Pn\n  %536 = phi i64 [%520, %$46], [%1200, %$-1] ; # Tim\n  %537 = phi i64 [%521, %$46], [%1201, %$-1] ; # Now\n  %538 = phi i64 [%522, %$46], [%1202, %$-1] ; # Dif\n  %539 = phi i8* [%525, %$46], [%1205, %$-1] ; # Cld\n  %540 = phi i8* [%528, %$46], [%1204, %$-1] ; # <Cld\n; # (== Cld <Cld)\n  %541 = icmp eq i8* %539, %540\n  br i1 %541, label %$50, label %$49\n$49:\n  %542 = phi i64 [%529, %$48] ; # Exe\n  %543 = phi i32 [%530, %$48] ; # Fd\n  %544 = phi i64 [%531, %$48] ; # Ms\n  %545 = phi i64 [%532, %$48] ; # Run\n  %546 = phi i64 [%533, %$48] ; # At\n  %547 = phi i8* [%534, %$48] ; # Buf\n  %548 = phi i32* [%535, %$48] ; # Pn\n  %549 = phi i64 [%536, %$48] ; # Tim\n  %550 = phi i64 [%537, %$48] ; # Now\n  %551 = phi i64 [%538, %$48] ; # Dif\n  %552 = phi i8* [%539, %$48] ; # Cld\n  %553 = phi i8* [%540, %$48] ; # <Cld\n; # (let Cld: (child Cld) (when (Cld: pid) (when (readyIn (pollfd (Cl...\n; # (when (Cld: pid) (when (readyIn (pollfd (Cld: hear))) (cond ((=0 ...\n; # (Cld: pid)\n  %554 = getelementptr i8, i8* %552, i32 16\n  %555 = bitcast i8* %554 to i32*\n  %556 = load i32, i32* %555\n  %557 = icmp ne i32 %556, 0\n  br i1 %557, label %$51, label %$52\n$51:\n  %558 = phi i64 [%542, %$49] ; # Exe\n  %559 = phi i32 [%543, %$49] ; # Fd\n  %560 = phi i64 [%544, %$49] ; # Ms\n  %561 = phi i64 [%545, %$49] ; # Run\n  %562 = phi i64 [%546, %$49] ; # At\n  %563 = phi i8* [%547, %$49] ; # Buf\n  %564 = phi i32* [%548, %$49] ; # Pn\n  %565 = phi i64 [%549, %$49] ; # Tim\n  %566 = phi i64 [%550, %$49] ; # Now\n  %567 = phi i64 [%551, %$49] ; # Dif\n  %568 = phi i8* [%552, %$49] ; # Cld\n  %569 = phi i8* [%553, %$49] ; # <Cld\n; # (when (readyIn (pollfd (Cld: hear))) (cond ((=0 (rdBytesNb (Cld: ...\n; # (Cld: hear)\n  %570 = getelementptr i8, i8* %552, i32 20\n  %571 = bitcast i8* %570 to i32*\n  %572 = load i32, i32* %571\n; # (pollfd (Cld: hear))\n  %573 = call i64* @pollfd(i32 %572)\n; # (readyIn (pollfd (Cld: hear)))\n  %574 = call i1 @readyIn(i64* %573)\n  br i1 %574, label %$53, label %$54\n$53:\n  %575 = phi i64 [%558, %$51] ; # Exe\n  %576 = phi i32 [%559, %$51] ; # Fd\n  %577 = phi i64 [%560, %$51] ; # Ms\n  %578 = phi i64 [%561, %$51] ; # Run\n  %579 = phi i64 [%562, %$51] ; # At\n  %580 = phi i8* [%563, %$51] ; # Buf\n  %581 = phi i32* [%564, %$51] ; # Pn\n  %582 = phi i64 [%565, %$51] ; # Tim\n  %583 = phi i64 [%566, %$51] ; # Now\n  %584 = phi i64 [%567, %$51] ; # Dif\n  %585 = phi i8* [%568, %$51] ; # Cld\n  %586 = phi i8* [%569, %$51] ; # <Cld\n; # (cond ((=0 (rdBytesNb (Cld: hear) (i8* Pn) (* 2 4))) (clsChild Cl...\n; # (Cld: hear)\n  %587 = getelementptr i8, i8* %552, i32 20\n  %588 = bitcast i8* %587 to i32*\n  %589 = load i32, i32* %588\n; # (i8* Pn)\n  %590 = bitcast i32* %581 to i8*\n; # (* 2 4)\n; # (rdBytesNb (Cld: hear) (i8* Pn) (* 2 4))\n  %591 = call i64 @rdBytesNb(i32 %589, i8* %590, i32 8)\n; # (=0 (rdBytesNb (Cld: hear) (i8* Pn) (* 2 4)))\n  %592 = icmp eq i64 %591, 0\n  br i1 %592, label %$57, label %$56\n$57:\n  %593 = phi i64 [%575, %$53] ; # Exe\n  %594 = phi i32 [%576, %$53] ; # Fd\n  %595 = phi i64 [%577, %$53] ; # Ms\n  %596 = phi i64 [%578, %$53] ; # Run\n  %597 = phi i64 [%579, %$53] ; # At\n  %598 = phi i8* [%580, %$53] ; # Buf\n  %599 = phi i32* [%581, %$53] ; # Pn\n  %600 = phi i64 [%582, %$53] ; # Tim\n  %601 = phi i64 [%583, %$53] ; # Now\n  %602 = phi i64 [%584, %$53] ; # Dif\n  %603 = phi i8* [%585, %$53] ; # Cld\n  %604 = phi i8* [%586, %$53] ; # <Cld\n; # (clsChild Cld)\n  call void @clsChild(i8* %603)\n; # (goto 1)\n  br label %$-1\n$56:\n  %605 = phi i64 [%575, %$53] ; # Exe\n  %606 = phi i32 [%576, %$53] ; # Fd\n  %607 = phi i64 [%577, %$53] ; # Ms\n  %608 = phi i64 [%578, %$53] ; # Run\n  %609 = phi i64 [%579, %$53] ; # At\n  %610 = phi i8* [%580, %$53] ; # Buf\n  %611 = phi i32* [%581, %$53] ; # Pn\n  %612 = phi i64 [%582, %$53] ; # Tim\n  %613 = phi i64 [%583, %$53] ; # Now\n  %614 = phi i64 [%584, %$53] ; # Dif\n  %615 = phi i8* [%585, %$53] ; # Cld\n  %616 = phi i8* [%586, %$53] ; # <Cld\n; # (gt0 @)\n  %617 = icmp sgt i64 %591, 0\n  br i1 %617, label %$59, label %$58\n$59:\n  %618 = phi i64 [%605, %$56] ; # Exe\n  %619 = phi i32 [%606, %$56] ; # Fd\n  %620 = phi i64 [%607, %$56] ; # Ms\n  %621 = phi i64 [%608, %$56] ; # Run\n  %622 = phi i64 [%609, %$56] ; # At\n  %623 = phi i8* [%610, %$56] ; # Buf\n  %624 = phi i32* [%611, %$56] ; # Pn\n  %625 = phi i64 [%612, %$56] ; # Tim\n  %626 = phi i64 [%613, %$56] ; # Now\n  %627 = phi i64 [%614, %$56] ; # Dif\n  %628 = phi i8* [%615, %$56] ; # Cld\n  %629 = phi i8* [%616, %$56] ; # <Cld\n; # (cond ((lt0 (val (i64* Pn))) (when (== (Cld: pid) (val $Talking))...\n; # (i64* Pn)\n  %630 = bitcast i32* %624 to i64*\n; # (val (i64* Pn))\n  %631 = load i64, i64* %630\n; # (lt0 (val (i64* Pn)))\n  %632 = icmp slt i64 %631, 0\n  br i1 %632, label %$62, label %$61\n$62:\n  %633 = phi i64 [%618, %$59] ; # Exe\n  %634 = phi i32 [%619, %$59] ; # Fd\n  %635 = phi i64 [%620, %$59] ; # Ms\n  %636 = phi i64 [%621, %$59] ; # Run\n  %637 = phi i64 [%622, %$59] ; # At\n  %638 = phi i8* [%623, %$59] ; # Buf\n  %639 = phi i32* [%624, %$59] ; # Pn\n  %640 = phi i64 [%625, %$59] ; # Tim\n  %641 = phi i64 [%626, %$59] ; # Now\n  %642 = phi i64 [%627, %$59] ; # Dif\n  %643 = phi i8* [%628, %$59] ; # Cld\n  %644 = phi i8* [%629, %$59] ; # <Cld\n; # (when (== (Cld: pid) (val $Talking)) (set $Talking 0))\n; # (Cld: pid)\n  %645 = getelementptr i8, i8* %552, i32 16\n  %646 = bitcast i8* %645 to i32*\n  %647 = load i32, i32* %646\n; # (val $Talking)\n  %648 = load i32, i32* @$Talking\n; # (== (Cld: pid) (val $Talking))\n  %649 = icmp eq i32 %647, %648\n  br i1 %649, label %$63, label %$64\n$63:\n  %650 = phi i64 [%633, %$62] ; # Exe\n  %651 = phi i32 [%634, %$62] ; # Fd\n  %652 = phi i64 [%635, %$62] ; # Ms\n  %653 = phi i64 [%636, %$62] ; # Run\n  %654 = phi i64 [%637, %$62] ; # At\n  %655 = phi i8* [%638, %$62] ; # Buf\n  %656 = phi i32* [%639, %$62] ; # Pn\n  %657 = phi i64 [%640, %$62] ; # Tim\n  %658 = phi i64 [%641, %$62] ; # Now\n  %659 = phi i64 [%642, %$62] ; # Dif\n  %660 = phi i8* [%643, %$62] ; # Cld\n  %661 = phi i8* [%644, %$62] ; # <Cld\n; # (set $Talking 0)\n  store i32 0, i32* @$Talking\n  br label %$64\n$64:\n  %662 = phi i64 [%633, %$62], [%650, %$63] ; # Exe\n  %663 = phi i32 [%634, %$62], [%651, %$63] ; # Fd\n  %664 = phi i64 [%635, %$62], [%652, %$63] ; # Ms\n  %665 = phi i64 [%636, %$62], [%653, %$63] ; # Run\n  %666 = phi i64 [%637, %$62], [%654, %$63] ; # At\n  %667 = phi i8* [%638, %$62], [%655, %$63] ; # Buf\n  %668 = phi i32* [%639, %$62], [%656, %$63] ; # Pn\n  %669 = phi i64 [%640, %$62], [%657, %$63] ; # Tim\n  %670 = phi i64 [%641, %$62], [%658, %$63] ; # Now\n  %671 = phi i64 [%642, %$62], [%659, %$63] ; # Dif\n  %672 = phi i8* [%643, %$62], [%660, %$63] ; # Cld\n  %673 = phi i8* [%644, %$62], [%661, %$63] ; # <Cld\n  br label %$60\n$61:\n  %674 = phi i64 [%618, %$59] ; # Exe\n  %675 = phi i32 [%619, %$59] ; # Fd\n  %676 = phi i64 [%620, %$59] ; # Ms\n  %677 = phi i64 [%621, %$59] ; # Run\n  %678 = phi i64 [%622, %$59] ; # At\n  %679 = phi i8* [%623, %$59] ; # Buf\n  %680 = phi i32* [%624, %$59] ; # Pn\n  %681 = phi i64 [%625, %$59] ; # Tim\n  %682 = phi i64 [%626, %$59] ; # Now\n  %683 = phi i64 [%627, %$59] ; # Dif\n  %684 = phi i8* [%628, %$59] ; # Cld\n  %685 = phi i8* [%629, %$59] ; # <Cld\n; # (val 2 Pn)\n  %686 = getelementptr i32, i32* %680, i32 1\n  %687 = load i32, i32* %686\n; # (val PipeBufSize)\n  %688 = load i32, i32* @PipeBufSize\n; # (> (val 2 Pn) (val PipeBufSize))\n  %689 = icmp sgt i32 %687, %688\n  br i1 %689, label %$66, label %$65\n$66:\n  %690 = phi i64 [%674, %$61] ; # Exe\n  %691 = phi i32 [%675, %$61] ; # Fd\n  %692 = phi i64 [%676, %$61] ; # Ms\n  %693 = phi i64 [%677, %$61] ; # Run\n  %694 = phi i64 [%678, %$61] ; # At\n  %695 = phi i8* [%679, %$61] ; # Buf\n  %696 = phi i32* [%680, %$61] ; # Pn\n  %697 = phi i64 [%681, %$61] ; # Tim\n  %698 = phi i64 [%682, %$61] ; # Now\n  %699 = phi i64 [%683, %$61] ; # Dif\n  %700 = phi i8* [%684, %$61] ; # Cld\n  %701 = phi i8* [%685, %$61] ; # <Cld\n; # (sizeErr Exe)\n  call void @sizeErr(i64 %690)\n  unreachable\n$65:\n  %702 = phi i64 [%674, %$61] ; # Exe\n  %703 = phi i32 [%675, %$61] ; # Fd\n  %704 = phi i64 [%676, %$61] ; # Ms\n  %705 = phi i64 [%677, %$61] ; # Run\n  %706 = phi i64 [%678, %$61] ; # At\n  %707 = phi i8* [%679, %$61] ; # Buf\n  %708 = phi i32* [%680, %$61] ; # Pn\n  %709 = phi i64 [%681, %$61] ; # Tim\n  %710 = phi i64 [%682, %$61] ; # Now\n  %711 = phi i64 [%683, %$61] ; # Dif\n  %712 = phi i8* [%684, %$61] ; # Cld\n  %713 = phi i8* [%685, %$61] ; # <Cld\n; # (Cld: hear)\n  %714 = getelementptr i8, i8* %552, i32 20\n  %715 = bitcast i8* %714 to i32*\n  %716 = load i32, i32* %715\n; # (rdBytes (Cld: hear) Buf @)\n  %717 = call i1 @rdBytes(i32 %716, i8* %707, i32 %687)\n  br i1 %717, label %$68, label %$67\n$68:\n  %718 = phi i64 [%702, %$65] ; # Exe\n  %719 = phi i32 [%703, %$65] ; # Fd\n  %720 = phi i64 [%704, %$65] ; # Ms\n  %721 = phi i64 [%705, %$65] ; # Run\n  %722 = phi i64 [%706, %$65] ; # At\n  %723 = phi i8* [%707, %$65] ; # Buf\n  %724 = phi i32* [%708, %$65] ; # Pn\n  %725 = phi i64 [%709, %$65] ; # Tim\n  %726 = phi i64 [%710, %$65] ; # Now\n  %727 = phi i64 [%711, %$65] ; # Dif\n  %728 = phi i8* [%712, %$65] ; # Cld\n  %729 = phi i8* [%713, %$65] ; # <Cld\n; # (ifn (=0 (val Pn)) (let (Cld2 (val $Child) <Cld2 (ofs Cld2 (* (va...\n; # (val Pn)\n  %730 = load i32, i32* %724\n; # (=0 (val Pn))\n  %731 = icmp eq i32 %730, 0\n  br i1 %731, label %$70, label %$69\n$69:\n  %732 = phi i64 [%718, %$68] ; # Exe\n  %733 = phi i32 [%719, %$68] ; # Fd\n  %734 = phi i64 [%720, %$68] ; # Ms\n  %735 = phi i64 [%721, %$68] ; # Run\n  %736 = phi i64 [%722, %$68] ; # At\n  %737 = phi i8* [%723, %$68] ; # Buf\n  %738 = phi i32* [%724, %$68] ; # Pn\n  %739 = phi i64 [%725, %$68] ; # Tim\n  %740 = phi i64 [%726, %$68] ; # Now\n  %741 = phi i64 [%727, %$68] ; # Dif\n  %742 = phi i8* [%728, %$68] ; # Cld\n  %743 = phi i8* [%729, %$68] ; # <Cld\n; # (let (Cld2 (val $Child) <Cld2 (ofs Cld2 (* (val $Children) (child...\n; # (val $Child)\n  %744 = load i8*, i8** @$Child\n; # (val $Children)\n  %745 = load i32, i32* @$Children\n; # (* (val $Children) (child T))\n  %746 = mul i32 %745, 32\n; # (ofs Cld2 (* (val $Children) (child T)))\n  %747 = getelementptr i8, i8* %744, i32 %746\n; # (until (== Cld2 <Cld2) (let Cld2: (child Cld2) (when (and (<> Cld...\n  br label %$72\n$72:\n  %748 = phi i64 [%732, %$69], [%876, %$81] ; # Exe\n  %749 = phi i32 [%733, %$69], [%877, %$81] ; # Fd\n  %750 = phi i64 [%734, %$69], [%878, %$81] ; # Ms\n  %751 = phi i64 [%735, %$69], [%879, %$81] ; # Run\n  %752 = phi i64 [%736, %$69], [%880, %$81] ; # At\n  %753 = phi i8* [%737, %$69], [%881, %$81] ; # Buf\n  %754 = phi i32* [%738, %$69], [%882, %$81] ; # Pn\n  %755 = phi i64 [%739, %$69], [%883, %$81] ; # Tim\n  %756 = phi i64 [%740, %$69], [%884, %$81] ; # Now\n  %757 = phi i64 [%741, %$69], [%885, %$81] ; # Dif\n  %758 = phi i8* [%742, %$69], [%886, %$81] ; # Cld\n  %759 = phi i8* [%743, %$69], [%887, %$81] ; # <Cld\n  %760 = phi i8* [%744, %$69], [%890, %$81] ; # Cld2\n  %761 = phi i8* [%747, %$69], [%889, %$81] ; # <Cld2\n; # (== Cld2 <Cld2)\n  %762 = icmp eq i8* %760, %761\n  br i1 %762, label %$74, label %$73\n$73:\n  %763 = phi i64 [%748, %$72] ; # Exe\n  %764 = phi i32 [%749, %$72] ; # Fd\n  %765 = phi i64 [%750, %$72] ; # Ms\n  %766 = phi i64 [%751, %$72] ; # Run\n  %767 = phi i64 [%752, %$72] ; # At\n  %768 = phi i8* [%753, %$72] ; # Buf\n  %769 = phi i32* [%754, %$72] ; # Pn\n  %770 = phi i64 [%755, %$72] ; # Tim\n  %771 = phi i64 [%756, %$72] ; # Now\n  %772 = phi i64 [%757, %$72] ; # Dif\n  %773 = phi i8* [%758, %$72] ; # Cld\n  %774 = phi i8* [%759, %$72] ; # <Cld\n  %775 = phi i8* [%760, %$72] ; # Cld2\n  %776 = phi i8* [%761, %$72] ; # <Cld2\n; # (let Cld2: (child Cld2) (when (and (<> Cld Cld2) (Cld2: pid) (or ...\n; # (when (and (<> Cld Cld2) (Cld2: pid) (or (lt0 (val Pn)) (== @ (Cl...\n; # (and (<> Cld Cld2) (Cld2: pid) (or (lt0 (val Pn)) (== @ (Cld2: pi...\n; # (<> Cld Cld2)\n  %777 = icmp ne i8* %773, %775\n  br i1 %777, label %$76, label %$75\n$76:\n  %778 = phi i64 [%763, %$73] ; # Exe\n  %779 = phi i32 [%764, %$73] ; # Fd\n  %780 = phi i64 [%765, %$73] ; # Ms\n  %781 = phi i64 [%766, %$73] ; # Run\n  %782 = phi i64 [%767, %$73] ; # At\n  %783 = phi i8* [%768, %$73] ; # Buf\n  %784 = phi i32* [%769, %$73] ; # Pn\n  %785 = phi i64 [%770, %$73] ; # Tim\n  %786 = phi i64 [%771, %$73] ; # Now\n  %787 = phi i64 [%772, %$73] ; # Dif\n  %788 = phi i8* [%773, %$73] ; # Cld\n  %789 = phi i8* [%774, %$73] ; # <Cld\n  %790 = phi i8* [%775, %$73] ; # Cld2\n  %791 = phi i8* [%776, %$73] ; # <Cld2\n; # (Cld2: pid)\n  %792 = getelementptr i8, i8* %775, i32 16\n  %793 = bitcast i8* %792 to i32*\n  %794 = load i32, i32* %793\n  %795 = icmp ne i32 %794, 0\n  br i1 %795, label %$77, label %$75\n$77:\n  %796 = phi i64 [%778, %$76] ; # Exe\n  %797 = phi i32 [%779, %$76] ; # Fd\n  %798 = phi i64 [%780, %$76] ; # Ms\n  %799 = phi i64 [%781, %$76] ; # Run\n  %800 = phi i64 [%782, %$76] ; # At\n  %801 = phi i8* [%783, %$76] ; # Buf\n  %802 = phi i32* [%784, %$76] ; # Pn\n  %803 = phi i64 [%785, %$76] ; # Tim\n  %804 = phi i64 [%786, %$76] ; # Now\n  %805 = phi i64 [%787, %$76] ; # Dif\n  %806 = phi i8* [%788, %$76] ; # Cld\n  %807 = phi i8* [%789, %$76] ; # <Cld\n  %808 = phi i8* [%790, %$76] ; # Cld2\n  %809 = phi i8* [%791, %$76] ; # <Cld2\n; # (or (lt0 (val Pn)) (== @ (Cld2: pid)))\n; # (val Pn)\n  %810 = load i32, i32* %802\n; # (lt0 (val Pn))\n  %811 = icmp slt i32 %810, 0\n  br i1 %811, label %$78, label %$79\n$79:\n  %812 = phi i64 [%796, %$77] ; # Exe\n  %813 = phi i32 [%797, %$77] ; # Fd\n  %814 = phi i64 [%798, %$77] ; # Ms\n  %815 = phi i64 [%799, %$77] ; # Run\n  %816 = phi i64 [%800, %$77] ; # At\n  %817 = phi i8* [%801, %$77] ; # Buf\n  %818 = phi i32* [%802, %$77] ; # Pn\n  %819 = phi i64 [%803, %$77] ; # Tim\n  %820 = phi i64 [%804, %$77] ; # Now\n  %821 = phi i64 [%805, %$77] ; # Dif\n  %822 = phi i8* [%806, %$77] ; # Cld\n  %823 = phi i8* [%807, %$77] ; # <Cld\n  %824 = phi i8* [%808, %$77] ; # Cld2\n  %825 = phi i8* [%809, %$77] ; # <Cld2\n; # (Cld2: pid)\n  %826 = getelementptr i8, i8* %775, i32 16\n  %827 = bitcast i8* %826 to i32*\n  %828 = load i32, i32* %827\n; # (== @ (Cld2: pid))\n  %829 = icmp eq i32 %810, %828\n  br label %$78\n$78:\n  %830 = phi i64 [%796, %$77], [%812, %$79] ; # Exe\n  %831 = phi i32 [%797, %$77], [%813, %$79] ; # Fd\n  %832 = phi i64 [%798, %$77], [%814, %$79] ; # Ms\n  %833 = phi i64 [%799, %$77], [%815, %$79] ; # Run\n  %834 = phi i64 [%800, %$77], [%816, %$79] ; # At\n  %835 = phi i8* [%801, %$77], [%817, %$79] ; # Buf\n  %836 = phi i32* [%802, %$77], [%818, %$79] ; # Pn\n  %837 = phi i64 [%803, %$77], [%819, %$79] ; # Tim\n  %838 = phi i64 [%804, %$77], [%820, %$79] ; # Now\n  %839 = phi i64 [%805, %$77], [%821, %$79] ; # Dif\n  %840 = phi i8* [%806, %$77], [%822, %$79] ; # Cld\n  %841 = phi i8* [%807, %$77], [%823, %$79] ; # <Cld\n  %842 = phi i8* [%808, %$77], [%824, %$79] ; # Cld2\n  %843 = phi i8* [%809, %$77], [%825, %$79] ; # <Cld2\n  %844 = phi i1 [1, %$77], [%829, %$79] ; # ->\n  br label %$75\n$75:\n  %845 = phi i64 [%763, %$73], [%778, %$76], [%830, %$78] ; # Exe\n  %846 = phi i32 [%764, %$73], [%779, %$76], [%831, %$78] ; # Fd\n  %847 = phi i64 [%765, %$73], [%780, %$76], [%832, %$78] ; # Ms\n  %848 = phi i64 [%766, %$73], [%781, %$76], [%833, %$78] ; # Run\n  %849 = phi i64 [%767, %$73], [%782, %$76], [%834, %$78] ; # At\n  %850 = phi i8* [%768, %$73], [%783, %$76], [%835, %$78] ; # Buf\n  %851 = phi i32* [%769, %$73], [%784, %$76], [%836, %$78] ; # Pn\n  %852 = phi i64 [%770, %$73], [%785, %$76], [%837, %$78] ; # Tim\n  %853 = phi i64 [%771, %$73], [%786, %$76], [%838, %$78] ; # Now\n  %854 = phi i64 [%772, %$73], [%787, %$76], [%839, %$78] ; # Dif\n  %855 = phi i8* [%773, %$73], [%788, %$76], [%840, %$78] ; # Cld\n  %856 = phi i8* [%774, %$73], [%789, %$76], [%841, %$78] ; # <Cld\n  %857 = phi i8* [%775, %$73], [%790, %$76], [%842, %$78] ; # Cld2\n  %858 = phi i8* [%776, %$73], [%791, %$76], [%843, %$78] ; # <Cld2\n  %859 = phi i1 [0, %$73], [0, %$76], [%844, %$78] ; # ->\n  br i1 %859, label %$80, label %$81\n$80:\n  %860 = phi i64 [%845, %$75] ; # Exe\n  %861 = phi i32 [%846, %$75] ; # Fd\n  %862 = phi i64 [%847, %$75] ; # Ms\n  %863 = phi i64 [%848, %$75] ; # Run\n  %864 = phi i64 [%849, %$75] ; # At\n  %865 = phi i8* [%850, %$75] ; # Buf\n  %866 = phi i32* [%851, %$75] ; # Pn\n  %867 = phi i64 [%852, %$75] ; # Tim\n  %868 = phi i64 [%853, %$75] ; # Now\n  %869 = phi i64 [%854, %$75] ; # Dif\n  %870 = phi i8* [%855, %$75] ; # Cld\n  %871 = phi i8* [%856, %$75] ; # <Cld\n  %872 = phi i8* [%857, %$75] ; # Cld2\n  %873 = phi i8* [%858, %$75] ; # <Cld2\n; # (val 2 Pn)\n  %874 = getelementptr i32, i32* %866, i32 1\n  %875 = load i32, i32* %874\n; # (wrChild Cld2 Buf (val 2 Pn))\n  call void @wrChild(i8* %872, i8* %865, i32 %875)\n  br label %$81\n$81:\n  %876 = phi i64 [%845, %$75], [%860, %$80] ; # Exe\n  %877 = phi i32 [%846, %$75], [%861, %$80] ; # Fd\n  %878 = phi i64 [%847, %$75], [%862, %$80] ; # Ms\n  %879 = phi i64 [%848, %$75], [%863, %$80] ; # Run\n  %880 = phi i64 [%849, %$75], [%864, %$80] ; # At\n  %881 = phi i8* [%850, %$75], [%865, %$80] ; # Buf\n  %882 = phi i32* [%851, %$75], [%866, %$80] ; # Pn\n  %883 = phi i64 [%852, %$75], [%867, %$80] ; # Tim\n  %884 = phi i64 [%853, %$75], [%868, %$80] ; # Now\n  %885 = phi i64 [%854, %$75], [%869, %$80] ; # Dif\n  %886 = phi i8* [%855, %$75], [%870, %$80] ; # Cld\n  %887 = phi i8* [%856, %$75], [%871, %$80] ; # <Cld\n  %888 = phi i8* [%857, %$75], [%872, %$80] ; # Cld2\n  %889 = phi i8* [%858, %$75], [%873, %$80] ; # <Cld2\n; # (ofs Cld2 (child T))\n  %890 = getelementptr i8, i8* %888, i32 32\n  br label %$72\n$74:\n  %891 = phi i64 [%748, %$72] ; # Exe\n  %892 = phi i32 [%749, %$72] ; # Fd\n  %893 = phi i64 [%750, %$72] ; # Ms\n  %894 = phi i64 [%751, %$72] ; # Run\n  %895 = phi i64 [%752, %$72] ; # At\n  %896 = phi i8* [%753, %$72] ; # Buf\n  %897 = phi i32* [%754, %$72] ; # Pn\n  %898 = phi i64 [%755, %$72] ; # Tim\n  %899 = phi i64 [%756, %$72] ; # Now\n  %900 = phi i64 [%757, %$72] ; # Dif\n  %901 = phi i8* [%758, %$72] ; # Cld\n  %902 = phi i8* [%759, %$72] ; # <Cld\n  %903 = phi i8* [%760, %$72] ; # Cld2\n  %904 = phi i8* [%761, %$72] ; # <Cld2\n  br label %$71\n$70:\n  %905 = phi i64 [%718, %$68] ; # Exe\n  %906 = phi i32 [%719, %$68] ; # Fd\n  %907 = phi i64 [%720, %$68] ; # Ms\n  %908 = phi i64 [%721, %$68] ; # Run\n  %909 = phi i64 [%722, %$68] ; # At\n  %910 = phi i8* [%723, %$68] ; # Buf\n  %911 = phi i32* [%724, %$68] ; # Pn\n  %912 = phi i64 [%725, %$68] ; # Tim\n  %913 = phi i64 [%726, %$68] ; # Now\n  %914 = phi i64 [%727, %$68] ; # Dif\n  %915 = phi i8* [%728, %$68] ; # Cld\n  %916 = phi i8* [%729, %$68] ; # <Cld\n; # (set $BlkPtr Buf $GetBin (fun (i32) getBlk) $Extn 0)\n  store i8* %910, i8** @$BlkPtr\n; # (fun (i32) getBlk)\n  store i32()* @getBlk, i32()** @$GetBin\n  store i32 0, i32* @$Extn\n; # (let E (binRead) (save E (evList E)))\n; # (binRead)\n  %917 = call i64 @binRead()\n; # (save E (evList E))\n  %918 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %919 = load i64, i64* %918\n  %920 = alloca i64, i64 2, align 16\n  %921 = ptrtoint i64* %920 to i64\n  %922 = inttoptr i64 %921 to i64*\n  store i64 %917, i64* %922\n  %923 = add i64 %921, 8\n  %924 = inttoptr i64 %923 to i64*\n  store i64 %919, i64* %924\n  %925 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %921, i64* %925\n; # (evList E)\n  %926 = call i64 @evList(i64 %917)\n; # drop\n  %927 = inttoptr i64 %921 to i64*\n  %928 = getelementptr i64, i64* %927, i32 1\n  %929 = load i64, i64* %928\n  %930 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %929, i64* %930\n  br label %$71\n$71:\n  %931 = phi i64 [%891, %$74], [%905, %$70] ; # Exe\n  %932 = phi i32 [%892, %$74], [%906, %$70] ; # Fd\n  %933 = phi i64 [%893, %$74], [%907, %$70] ; # Ms\n  %934 = phi i64 [%894, %$74], [%908, %$70] ; # Run\n  %935 = phi i64 [%895, %$74], [%909, %$70] ; # At\n  %936 = phi i8* [%896, %$74], [%910, %$70] ; # Buf\n  %937 = phi i32* [%897, %$74], [%911, %$70] ; # Pn\n  %938 = phi i64 [%898, %$74], [%912, %$70] ; # Tim\n  %939 = phi i64 [%899, %$74], [%913, %$70] ; # Now\n  %940 = phi i64 [%900, %$74], [%914, %$70] ; # Dif\n  %941 = phi i8* [%901, %$74], [%915, %$70] ; # Cld\n  %942 = phi i8* [%902, %$74], [%916, %$70] ; # <Cld\n  br label %$60\n$67:\n  %943 = phi i64 [%702, %$65] ; # Exe\n  %944 = phi i32 [%703, %$65] ; # Fd\n  %945 = phi i64 [%704, %$65] ; # Ms\n  %946 = phi i64 [%705, %$65] ; # Run\n  %947 = phi i64 [%706, %$65] ; # At\n  %948 = phi i8* [%707, %$65] ; # Buf\n  %949 = phi i32* [%708, %$65] ; # Pn\n  %950 = phi i64 [%709, %$65] ; # Tim\n  %951 = phi i64 [%710, %$65] ; # Now\n  %952 = phi i64 [%711, %$65] ; # Dif\n  %953 = phi i8* [%712, %$65] ; # Cld\n  %954 = phi i8* [%713, %$65] ; # <Cld\n; # (clsChild Cld)\n  call void @clsChild(i8* %953)\n; # (goto 1)\n  br label %$-1\n$60:\n  %955 = phi i64 [%662, %$64], [%931, %$71] ; # Exe\n  %956 = phi i32 [%663, %$64], [%932, %$71] ; # Fd\n  %957 = phi i64 [%664, %$64], [%933, %$71] ; # Ms\n  %958 = phi i64 [%665, %$64], [%934, %$71] ; # Run\n  %959 = phi i64 [%666, %$64], [%935, %$71] ; # At\n  %960 = phi i8* [%667, %$64], [%936, %$71] ; # Buf\n  %961 = phi i32* [%668, %$64], [%937, %$71] ; # Pn\n  %962 = phi i64 [%669, %$64], [%938, %$71] ; # Tim\n  %963 = phi i64 [%670, %$64], [%939, %$71] ; # Now\n  %964 = phi i64 [%671, %$64], [%940, %$71] ; # Dif\n  %965 = phi i8* [%672, %$64], [%941, %$71] ; # Cld\n  %966 = phi i8* [%673, %$64], [%942, %$71] ; # <Cld\n  br label %$55\n$58:\n  %967 = phi i64 [%605, %$56] ; # Exe\n  %968 = phi i32 [%606, %$56] ; # Fd\n  %969 = phi i64 [%607, %$56] ; # Ms\n  %970 = phi i64 [%608, %$56] ; # Run\n  %971 = phi i64 [%609, %$56] ; # At\n  %972 = phi i8* [%610, %$56] ; # Buf\n  %973 = phi i32* [%611, %$56] ; # Pn\n  %974 = phi i64 [%612, %$56] ; # Tim\n  %975 = phi i64 [%613, %$56] ; # Now\n  %976 = phi i64 [%614, %$56] ; # Dif\n  %977 = phi i8* [%615, %$56] ; # Cld\n  %978 = phi i8* [%616, %$56] ; # <Cld\n  br label %$55\n$55:\n  %979 = phi i64 [%955, %$60], [%967, %$58] ; # Exe\n  %980 = phi i32 [%956, %$60], [%968, %$58] ; # Fd\n  %981 = phi i64 [%957, %$60], [%969, %$58] ; # Ms\n  %982 = phi i64 [%958, %$60], [%970, %$58] ; # Run\n  %983 = phi i64 [%959, %$60], [%971, %$58] ; # At\n  %984 = phi i8* [%960, %$60], [%972, %$58] ; # Buf\n  %985 = phi i32* [%961, %$60], [%973, %$58] ; # Pn\n  %986 = phi i64 [%962, %$60], [%974, %$58] ; # Tim\n  %987 = phi i64 [%963, %$60], [%975, %$58] ; # Now\n  %988 = phi i64 [%964, %$60], [%976, %$58] ; # Dif\n  %989 = phi i8* [%965, %$60], [%977, %$58] ; # Cld\n  %990 = phi i8* [%966, %$60], [%978, %$58] ; # <Cld\n  br label %$54\n$54:\n  %991 = phi i64 [%558, %$51], [%979, %$55] ; # Exe\n  %992 = phi i32 [%559, %$51], [%980, %$55] ; # Fd\n  %993 = phi i64 [%560, %$51], [%981, %$55] ; # Ms\n  %994 = phi i64 [%561, %$51], [%982, %$55] ; # Run\n  %995 = phi i64 [%562, %$51], [%983, %$55] ; # At\n  %996 = phi i8* [%563, %$51], [%984, %$55] ; # Buf\n  %997 = phi i32* [%564, %$51], [%985, %$55] ; # Pn\n  %998 = phi i64 [%565, %$51], [%986, %$55] ; # Tim\n  %999 = phi i64 [%566, %$51], [%987, %$55] ; # Now\n  %1000 = phi i64 [%567, %$51], [%988, %$55] ; # Dif\n  %1001 = phi i8* [%568, %$51], [%989, %$55] ; # Cld\n  %1002 = phi i8* [%569, %$51], [%990, %$55] ; # <Cld\n; # (when (readyOut (pollfd (Cld: tell))) (let (P (ofs (Cld: buf) (Cl...\n; # (Cld: tell)\n  %1003 = getelementptr i8, i8* %552, i32 24\n  %1004 = bitcast i8* %1003 to i32*\n  %1005 = load i32, i32* %1004\n; # (pollfd (Cld: tell))\n  %1006 = call i64* @pollfd(i32 %1005)\n; # (readyOut (pollfd (Cld: tell)))\n  %1007 = call i1 @readyOut(i64* %1006)\n  br i1 %1007, label %$82, label %$83\n$82:\n  %1008 = phi i64 [%991, %$54] ; # Exe\n  %1009 = phi i32 [%992, %$54] ; # Fd\n  %1010 = phi i64 [%993, %$54] ; # Ms\n  %1011 = phi i64 [%994, %$54] ; # Run\n  %1012 = phi i64 [%995, %$54] ; # At\n  %1013 = phi i8* [%996, %$54] ; # Buf\n  %1014 = phi i32* [%997, %$54] ; # Pn\n  %1015 = phi i64 [%998, %$54] ; # Tim\n  %1016 = phi i64 [%999, %$54] ; # Now\n  %1017 = phi i64 [%1000, %$54] ; # Dif\n  %1018 = phi i8* [%1001, %$54] ; # Cld\n  %1019 = phi i8* [%1002, %$54] ; # <Cld\n; # (let (P (ofs (Cld: buf) (Cld: ofs)) N (val (i32* P))) (ifn (wrByt...\n; # (Cld: buf)\n  %1020 = bitcast i8* %552 to i8**\n  %1021 = load i8*, i8** %1020\n; # (Cld: ofs)\n  %1022 = getelementptr i8, i8* %552, i32 8\n  %1023 = bitcast i8* %1022 to i32*\n  %1024 = load i32, i32* %1023\n; # (ofs (Cld: buf) (Cld: ofs))\n  %1025 = getelementptr i8, i8* %1021, i32 %1024\n; # (i32* P)\n  %1026 = bitcast i8* %1025 to i32*\n; # (val (i32* P))\n  %1027 = load i32, i32* %1026\n; # (ifn (wrBytes (Cld: tell) (ofs P 4) N) (clsChild Cld) (setq N (Cl...\n; # (Cld: tell)\n  %1028 = getelementptr i8, i8* %552, i32 24\n  %1029 = bitcast i8* %1028 to i32*\n  %1030 = load i32, i32* %1029\n; # (ofs P 4)\n  %1031 = getelementptr i8, i8* %1025, i32 4\n; # (wrBytes (Cld: tell) (ofs P 4) N)\n  %1032 = call i1 @wrBytes(i32 %1030, i8* %1031, i32 %1027)\n  br i1 %1032, label %$85, label %$84\n$84:\n  %1033 = phi i64 [%1008, %$82] ; # Exe\n  %1034 = phi i32 [%1009, %$82] ; # Fd\n  %1035 = phi i64 [%1010, %$82] ; # Ms\n  %1036 = phi i64 [%1011, %$82] ; # Run\n  %1037 = phi i64 [%1012, %$82] ; # At\n  %1038 = phi i8* [%1013, %$82] ; # Buf\n  %1039 = phi i32* [%1014, %$82] ; # Pn\n  %1040 = phi i64 [%1015, %$82] ; # Tim\n  %1041 = phi i64 [%1016, %$82] ; # Now\n  %1042 = phi i64 [%1017, %$82] ; # Dif\n  %1043 = phi i8* [%1018, %$82] ; # Cld\n  %1044 = phi i8* [%1019, %$82] ; # <Cld\n  %1045 = phi i8* [%1025, %$82] ; # P\n  %1046 = phi i32 [%1027, %$82] ; # N\n; # (clsChild Cld)\n  call void @clsChild(i8* %1043)\n  br label %$86\n$85:\n  %1047 = phi i64 [%1008, %$82] ; # Exe\n  %1048 = phi i32 [%1009, %$82] ; # Fd\n  %1049 = phi i64 [%1010, %$82] ; # Ms\n  %1050 = phi i64 [%1011, %$82] ; # Run\n  %1051 = phi i64 [%1012, %$82] ; # At\n  %1052 = phi i8* [%1013, %$82] ; # Buf\n  %1053 = phi i32* [%1014, %$82] ; # Pn\n  %1054 = phi i64 [%1015, %$82] ; # Tim\n  %1055 = phi i64 [%1016, %$82] ; # Now\n  %1056 = phi i64 [%1017, %$82] ; # Dif\n  %1057 = phi i8* [%1018, %$82] ; # Cld\n  %1058 = phi i8* [%1019, %$82] ; # <Cld\n  %1059 = phi i8* [%1025, %$82] ; # P\n  %1060 = phi i32 [%1027, %$82] ; # N\n; # (Cld: ofs (+ (Cld: ofs) N 4))\n  %1061 = getelementptr i8, i8* %552, i32 8\n  %1062 = bitcast i8* %1061 to i32*\n  %1063 = getelementptr i8, i8* %552, i32 8\n  %1064 = bitcast i8* %1063 to i32*\n  %1065 = load i32, i32* %1064\n  %1066 = add i32 %1065, %1060\n  %1067 = add i32 %1066, 4\n  store i32 %1067, i32* %1062\n; # (when (>= (* 2 N) (Cld: cnt)) (when (Cld: cnt (- (Cld: cnt) N)) (...\n; # (* 2 N)\n  %1068 = mul i32 2, %1067\n; # (Cld: cnt)\n  %1069 = getelementptr i8, i8* %552, i32 12\n  %1070 = bitcast i8* %1069 to i32*\n  %1071 = load i32, i32* %1070\n; # (>= (* 2 N) (Cld: cnt))\n  %1072 = icmp sge i32 %1068, %1071\n  br i1 %1072, label %$87, label %$88\n$87:\n  %1073 = phi i64 [%1047, %$85] ; # Exe\n  %1074 = phi i32 [%1048, %$85] ; # Fd\n  %1075 = phi i64 [%1049, %$85] ; # Ms\n  %1076 = phi i64 [%1050, %$85] ; # Run\n  %1077 = phi i64 [%1051, %$85] ; # At\n  %1078 = phi i8* [%1052, %$85] ; # Buf\n  %1079 = phi i32* [%1053, %$85] ; # Pn\n  %1080 = phi i64 [%1054, %$85] ; # Tim\n  %1081 = phi i64 [%1055, %$85] ; # Now\n  %1082 = phi i64 [%1056, %$85] ; # Dif\n  %1083 = phi i8* [%1057, %$85] ; # Cld\n  %1084 = phi i8* [%1058, %$85] ; # <Cld\n  %1085 = phi i8* [%1059, %$85] ; # P\n  %1086 = phi i32 [%1067, %$85] ; # N\n; # (when (Cld: cnt (- (Cld: cnt) N)) (memcpy (Cld: buf) (ofs (Cld: b...\n; # (Cld: cnt (- (Cld: cnt) N))\n  %1087 = getelementptr i8, i8* %552, i32 12\n  %1088 = bitcast i8* %1087 to i32*\n  %1089 = getelementptr i8, i8* %552, i32 12\n  %1090 = bitcast i8* %1089 to i32*\n  %1091 = load i32, i32* %1090\n  %1092 = sub i32 %1091, %1086\n  store i32 %1092, i32* %1088\n  %1093 = icmp ne i32 %1092, 0\n  br i1 %1093, label %$89, label %$90\n$89:\n  %1094 = phi i64 [%1073, %$87] ; # Exe\n  %1095 = phi i32 [%1074, %$87] ; # Fd\n  %1096 = phi i64 [%1075, %$87] ; # Ms\n  %1097 = phi i64 [%1076, %$87] ; # Run\n  %1098 = phi i64 [%1077, %$87] ; # At\n  %1099 = phi i8* [%1078, %$87] ; # Buf\n  %1100 = phi i32* [%1079, %$87] ; # Pn\n  %1101 = phi i64 [%1080, %$87] ; # Tim\n  %1102 = phi i64 [%1081, %$87] ; # Now\n  %1103 = phi i64 [%1082, %$87] ; # Dif\n  %1104 = phi i8* [%1083, %$87] ; # Cld\n  %1105 = phi i8* [%1084, %$87] ; # <Cld\n  %1106 = phi i8* [%1085, %$87] ; # P\n  %1107 = phi i32 [%1086, %$87] ; # N\n; # (Cld: buf)\n  %1108 = bitcast i8* %552 to i8**\n  %1109 = load i8*, i8** %1108\n; # (Cld: buf)\n  %1110 = bitcast i8* %552 to i8**\n  %1111 = load i8*, i8** %1110\n; # (ofs (Cld: buf) N)\n  %1112 = getelementptr i8, i8* %1111, i32 %1107\n; # (Cld: cnt)\n  %1113 = getelementptr i8, i8* %552, i32 12\n  %1114 = bitcast i8* %1113 to i32*\n  %1115 = load i32, i32* %1114\n; # (i64 (Cld: cnt))\n  %1116 = sext i32 %1115 to i64\n; # (memcpy (Cld: buf) (ofs (Cld: buf) N) (i64 (Cld: cnt)))\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %1109, i8* %1112, i64 %1116, i1 0)\n; # (Cld: buf (alloc (Cld: buf) (i64 (Cld: cnt))))\n  %1117 = bitcast i8* %552 to i8**\n  %1118 = bitcast i8* %552 to i8**\n  %1119 = load i8*, i8** %1118\n  %1120 = getelementptr i8, i8* %552, i32 12\n  %1121 = bitcast i8* %1120 to i32*\n  %1122 = load i32, i32* %1121\n  %1123 = sext i32 %1122 to i64\n  %1124 = call i8* @alloc(i8* %1119, i64 %1123)\n  store i8* %1124, i8** %1117\n  br label %$90\n$90:\n  %1125 = phi i64 [%1073, %$87], [%1094, %$89] ; # Exe\n  %1126 = phi i32 [%1074, %$87], [%1095, %$89] ; # Fd\n  %1127 = phi i64 [%1075, %$87], [%1096, %$89] ; # Ms\n  %1128 = phi i64 [%1076, %$87], [%1097, %$89] ; # Run\n  %1129 = phi i64 [%1077, %$87], [%1098, %$89] ; # At\n  %1130 = phi i8* [%1078, %$87], [%1099, %$89] ; # Buf\n  %1131 = phi i32* [%1079, %$87], [%1100, %$89] ; # Pn\n  %1132 = phi i64 [%1080, %$87], [%1101, %$89] ; # Tim\n  %1133 = phi i64 [%1081, %$87], [%1102, %$89] ; # Now\n  %1134 = phi i64 [%1082, %$87], [%1103, %$89] ; # Dif\n  %1135 = phi i8* [%1083, %$87], [%1104, %$89] ; # Cld\n  %1136 = phi i8* [%1084, %$87], [%1105, %$89] ; # <Cld\n  %1137 = phi i8* [%1085, %$87], [%1106, %$89] ; # P\n  %1138 = phi i32 [%1086, %$87], [%1107, %$89] ; # N\n; # (Cld: ofs 0)\n  %1139 = getelementptr i8, i8* %552, i32 8\n  %1140 = bitcast i8* %1139 to i32*\n  store i32 0, i32* %1140\n  br label %$88\n$88:\n  %1141 = phi i64 [%1047, %$85], [%1125, %$90] ; # Exe\n  %1142 = phi i32 [%1048, %$85], [%1126, %$90] ; # Fd\n  %1143 = phi i64 [%1049, %$85], [%1127, %$90] ; # Ms\n  %1144 = phi i64 [%1050, %$85], [%1128, %$90] ; # Run\n  %1145 = phi i64 [%1051, %$85], [%1129, %$90] ; # At\n  %1146 = phi i8* [%1052, %$85], [%1130, %$90] ; # Buf\n  %1147 = phi i32* [%1053, %$85], [%1131, %$90] ; # Pn\n  %1148 = phi i64 [%1054, %$85], [%1132, %$90] ; # Tim\n  %1149 = phi i64 [%1055, %$85], [%1133, %$90] ; # Now\n  %1150 = phi i64 [%1056, %$85], [%1134, %$90] ; # Dif\n  %1151 = phi i8* [%1057, %$85], [%1135, %$90] ; # Cld\n  %1152 = phi i8* [%1058, %$85], [%1136, %$90] ; # <Cld\n  %1153 = phi i8* [%1059, %$85], [%1137, %$90] ; # P\n  %1154 = phi i32 [%1067, %$85], [%1138, %$90] ; # N\n  br label %$86\n$86:\n  %1155 = phi i64 [%1033, %$84], [%1141, %$88] ; # Exe\n  %1156 = phi i32 [%1034, %$84], [%1142, %$88] ; # Fd\n  %1157 = phi i64 [%1035, %$84], [%1143, %$88] ; # Ms\n  %1158 = phi i64 [%1036, %$84], [%1144, %$88] ; # Run\n  %1159 = phi i64 [%1037, %$84], [%1145, %$88] ; # At\n  %1160 = phi i8* [%1038, %$84], [%1146, %$88] ; # Buf\n  %1161 = phi i32* [%1039, %$84], [%1147, %$88] ; # Pn\n  %1162 = phi i64 [%1040, %$84], [%1148, %$88] ; # Tim\n  %1163 = phi i64 [%1041, %$84], [%1149, %$88] ; # Now\n  %1164 = phi i64 [%1042, %$84], [%1150, %$88] ; # Dif\n  %1165 = phi i8* [%1043, %$84], [%1151, %$88] ; # Cld\n  %1166 = phi i8* [%1044, %$84], [%1152, %$88] ; # <Cld\n  %1167 = phi i8* [%1045, %$84], [%1153, %$88] ; # P\n  %1168 = phi i32 [%1046, %$84], [%1154, %$88] ; # N\n  br label %$83\n$83:\n  %1169 = phi i64 [%991, %$54], [%1155, %$86] ; # Exe\n  %1170 = phi i32 [%992, %$54], [%1156, %$86] ; # Fd\n  %1171 = phi i64 [%993, %$54], [%1157, %$86] ; # Ms\n  %1172 = phi i64 [%994, %$54], [%1158, %$86] ; # Run\n  %1173 = phi i64 [%995, %$54], [%1159, %$86] ; # At\n  %1174 = phi i8* [%996, %$54], [%1160, %$86] ; # Buf\n  %1175 = phi i32* [%997, %$54], [%1161, %$86] ; # Pn\n  %1176 = phi i64 [%998, %$54], [%1162, %$86] ; # Tim\n  %1177 = phi i64 [%999, %$54], [%1163, %$86] ; # Now\n  %1178 = phi i64 [%1000, %$54], [%1164, %$86] ; # Dif\n  %1179 = phi i8* [%1001, %$54], [%1165, %$86] ; # Cld\n  %1180 = phi i8* [%1002, %$54], [%1166, %$86] ; # <Cld\n  br label %$52\n$52:\n  %1181 = phi i64 [%542, %$49], [%1169, %$83] ; # Exe\n  %1182 = phi i32 [%543, %$49], [%1170, %$83] ; # Fd\n  %1183 = phi i64 [%544, %$49], [%1171, %$83] ; # Ms\n  %1184 = phi i64 [%545, %$49], [%1172, %$83] ; # Run\n  %1185 = phi i64 [%546, %$49], [%1173, %$83] ; # At\n  %1186 = phi i8* [%547, %$49], [%1174, %$83] ; # Buf\n  %1187 = phi i32* [%548, %$49], [%1175, %$83] ; # Pn\n  %1188 = phi i64 [%549, %$49], [%1176, %$83] ; # Tim\n  %1189 = phi i64 [%550, %$49], [%1177, %$83] ; # Now\n  %1190 = phi i64 [%551, %$49], [%1178, %$83] ; # Dif\n  %1191 = phi i8* [%552, %$49], [%1179, %$83] ; # Cld\n  %1192 = phi i8* [%553, %$49], [%1180, %$83] ; # <Cld\n; # (: 1 (setq Cld (ofs Cld (child T))))\n  br label %$-1\n$-1:\n  %1193 = phi i64 [%593, %$57], [%943, %$67], [%1181, %$52] ; # Exe\n  %1194 = phi i32 [%594, %$57], [%944, %$67], [%1182, %$52] ; # Fd\n  %1195 = phi i64 [%595, %$57], [%945, %$67], [%1183, %$52] ; # Ms\n  %1196 = phi i64 [%596, %$57], [%946, %$67], [%1184, %$52] ; # Run\n  %1197 = phi i64 [%597, %$57], [%947, %$67], [%1185, %$52] ; # At\n  %1198 = phi i8* [%598, %$57], [%948, %$67], [%1186, %$52] ; # Buf\n  %1199 = phi i32* [%599, %$57], [%949, %$67], [%1187, %$52] ; # Pn\n  %1200 = phi i64 [%600, %$57], [%950, %$67], [%1188, %$52] ; # Tim\n  %1201 = phi i64 [%601, %$57], [%951, %$67], [%1189, %$52] ; # Now\n  %1202 = phi i64 [%602, %$57], [%952, %$67], [%1190, %$52] ; # Dif\n  %1203 = phi i8* [%603, %$57], [%953, %$67], [%1191, %$52] ; # Cld\n  %1204 = phi i8* [%604, %$57], [%954, %$67], [%1192, %$52] ; # <Cld\n; # (ofs Cld (child T))\n  %1205 = getelementptr i8, i8* %1203, i32 32\n  br label %$48\n$50:\n  %1206 = phi i64 [%529, %$48] ; # Exe\n  %1207 = phi i32 [%530, %$48] ; # Fd\n  %1208 = phi i64 [%531, %$48] ; # Ms\n  %1209 = phi i64 [%532, %$48] ; # Run\n  %1210 = phi i64 [%533, %$48] ; # At\n  %1211 = phi i8* [%534, %$48] ; # Buf\n  %1212 = phi i32* [%535, %$48] ; # Pn\n  %1213 = phi i64 [%536, %$48] ; # Tim\n  %1214 = phi i64 [%537, %$48] ; # Now\n  %1215 = phi i64 [%538, %$48] ; # Dif\n  %1216 = phi i8* [%539, %$48] ; # Cld\n  %1217 = phi i8* [%540, %$48] ; # <Cld\n; # (when (and (=0 (val $Talking)) (readyIn (pollfd (val $Spkr))) (gt...\n; # (and (=0 (val $Talking)) (readyIn (pollfd (val $Spkr))) (gt0 (rdB...\n; # (val $Talking)\n  %1218 = load i32, i32* @$Talking\n; # (=0 (val $Talking))\n  %1219 = icmp eq i32 %1218, 0\n  br i1 %1219, label %$92, label %$91\n$92:\n  %1220 = phi i64 [%1206, %$50] ; # Exe\n  %1221 = phi i32 [%1207, %$50] ; # Fd\n  %1222 = phi i64 [%1208, %$50] ; # Ms\n  %1223 = phi i64 [%1209, %$50] ; # Run\n  %1224 = phi i64 [%1210, %$50] ; # At\n  %1225 = phi i8* [%1211, %$50] ; # Buf\n  %1226 = phi i32* [%1212, %$50] ; # Pn\n  %1227 = phi i64 [%1213, %$50] ; # Tim\n  %1228 = phi i64 [%1214, %$50] ; # Now\n  %1229 = phi i64 [%1215, %$50] ; # Dif\n; # (val $Spkr)\n  %1230 = load i32, i32* @$Spkr\n; # (pollfd (val $Spkr))\n  %1231 = call i64* @pollfd(i32 %1230)\n; # (readyIn (pollfd (val $Spkr)))\n  %1232 = call i1 @readyIn(i64* %1231)\n  br i1 %1232, label %$93, label %$91\n$93:\n  %1233 = phi i64 [%1220, %$92] ; # Exe\n  %1234 = phi i32 [%1221, %$92] ; # Fd\n  %1235 = phi i64 [%1222, %$92] ; # Ms\n  %1236 = phi i64 [%1223, %$92] ; # Run\n  %1237 = phi i64 [%1224, %$92] ; # At\n  %1238 = phi i8* [%1225, %$92] ; # Buf\n  %1239 = phi i32* [%1226, %$92] ; # Pn\n  %1240 = phi i64 [%1227, %$92] ; # Tim\n  %1241 = phi i64 [%1228, %$92] ; # Now\n  %1242 = phi i64 [%1229, %$92] ; # Dif\n; # (val $Spkr)\n  %1243 = load i32, i32* @$Spkr\n; # (i8* Pn)\n  %1244 = bitcast i32* %1239 to i8*\n; # (rdBytesNb (val $Spkr) (i8* Pn) 4)\n  %1245 = call i64 @rdBytesNb(i32 %1243, i8* %1244, i32 4)\n; # (gt0 (rdBytesNb (val $Spkr) (i8* Pn) 4))\n  %1246 = icmp sgt i64 %1245, 0\n  br label %$91\n$91:\n  %1247 = phi i64 [%1206, %$50], [%1220, %$92], [%1233, %$93] ; # Exe\n  %1248 = phi i32 [%1207, %$50], [%1221, %$92], [%1234, %$93] ; # Fd\n  %1249 = phi i64 [%1208, %$50], [%1222, %$92], [%1235, %$93] ; # Ms\n  %1250 = phi i64 [%1209, %$50], [%1223, %$92], [%1236, %$93] ; # Run\n  %1251 = phi i64 [%1210, %$50], [%1224, %$92], [%1237, %$93] ; # At\n  %1252 = phi i8* [%1211, %$50], [%1225, %$92], [%1238, %$93] ; # Buf\n  %1253 = phi i32* [%1212, %$50], [%1226, %$92], [%1239, %$93] ; # Pn\n  %1254 = phi i64 [%1213, %$50], [%1227, %$92], [%1240, %$93] ; # Tim\n  %1255 = phi i64 [%1214, %$50], [%1228, %$92], [%1241, %$93] ; # Now\n  %1256 = phi i64 [%1215, %$50], [%1229, %$92], [%1242, %$93] ; # Dif\n  %1257 = phi i1 [0, %$50], [0, %$92], [%1246, %$93] ; # ->\n  br i1 %1257, label %$94, label %$95\n$94:\n  %1258 = phi i64 [%1247, %$91] ; # Exe\n  %1259 = phi i32 [%1248, %$91] ; # Fd\n  %1260 = phi i64 [%1249, %$91] ; # Ms\n  %1261 = phi i64 [%1250, %$91] ; # Run\n  %1262 = phi i64 [%1251, %$91] ; # At\n  %1263 = phi i8* [%1252, %$91] ; # Buf\n  %1264 = phi i32* [%1253, %$91] ; # Pn\n  %1265 = phi i64 [%1254, %$91] ; # Tim\n  %1266 = phi i64 [%1255, %$91] ; # Now\n  %1267 = phi i64 [%1256, %$91] ; # Dif\n; # (let Cld (ofs (val $Child) (* (val Pn) (child T))) (when ((child ...\n; # (val $Child)\n  %1268 = load i8*, i8** @$Child\n; # (val Pn)\n  %1269 = load i32, i32* %1264\n; # (* (val Pn) (child T))\n  %1270 = mul i32 %1269, 32\n; # (ofs (val $Child) (* (val Pn) (child T)))\n  %1271 = getelementptr i8, i8* %1268, i32 %1270\n; # (when ((child Cld) pid) (set $Talking @) (wrChild Cld $TBuf 2))\n; # ((child Cld) pid)\n  %1272 = getelementptr i8, i8* %1271, i32 16\n  %1273 = bitcast i8* %1272 to i32*\n  %1274 = load i32, i32* %1273\n  %1275 = icmp ne i32 %1274, 0\n  br i1 %1275, label %$96, label %$97\n$96:\n  %1276 = phi i64 [%1258, %$94] ; # Exe\n  %1277 = phi i32 [%1259, %$94] ; # Fd\n  %1278 = phi i64 [%1260, %$94] ; # Ms\n  %1279 = phi i64 [%1261, %$94] ; # Run\n  %1280 = phi i64 [%1262, %$94] ; # At\n  %1281 = phi i8* [%1263, %$94] ; # Buf\n  %1282 = phi i32* [%1264, %$94] ; # Pn\n  %1283 = phi i64 [%1265, %$94] ; # Tim\n  %1284 = phi i64 [%1266, %$94] ; # Now\n  %1285 = phi i64 [%1267, %$94] ; # Dif\n  %1286 = phi i8* [%1271, %$94] ; # Cld\n; # (set $Talking @)\n  store i32 %1274, i32* @$Talking\n; # (wrChild Cld $TBuf 2)\n  call void @wrChild(i8* %1286, i8* bitcast ([2 x i8]* @$TBuf to i8*), i32 2)\n  br label %$97\n$97:\n  %1287 = phi i64 [%1258, %$94], [%1276, %$96] ; # Exe\n  %1288 = phi i32 [%1259, %$94], [%1277, %$96] ; # Fd\n  %1289 = phi i64 [%1260, %$94], [%1278, %$96] ; # Ms\n  %1290 = phi i64 [%1261, %$94], [%1279, %$96] ; # Run\n  %1291 = phi i64 [%1262, %$94], [%1280, %$96] ; # At\n  %1292 = phi i8* [%1263, %$94], [%1281, %$96] ; # Buf\n  %1293 = phi i32* [%1264, %$94], [%1282, %$96] ; # Pn\n  %1294 = phi i64 [%1265, %$94], [%1283, %$96] ; # Tim\n  %1295 = phi i64 [%1266, %$94], [%1284, %$96] ; # Now\n  %1296 = phi i64 [%1267, %$94], [%1285, %$96] ; # Dif\n  %1297 = phi i8* [%1271, %$94], [%1286, %$96] ; # Cld\n  br label %$95\n$95:\n  %1298 = phi i64 [%1247, %$91], [%1287, %$97] ; # Exe\n  %1299 = phi i32 [%1248, %$91], [%1288, %$97] ; # Fd\n  %1300 = phi i64 [%1249, %$91], [%1289, %$97] ; # Ms\n  %1301 = phi i64 [%1250, %$91], [%1290, %$97] ; # Run\n  %1302 = phi i64 [%1251, %$91], [%1291, %$97] ; # At\n  %1303 = phi i8* [%1252, %$91], [%1292, %$97] ; # Buf\n  %1304 = phi i32* [%1253, %$91], [%1293, %$97] ; # Pn\n  %1305 = phi i64 [%1254, %$91], [%1294, %$97] ; # Tim\n  %1306 = phi i64 [%1255, %$91], [%1295, %$97] ; # Now\n  %1307 = phi i64 [%1256, %$91], [%1296, %$97] ; # Dif\n; # (set $Protect (dec (val $Protect)))\n; # (val $Protect)\n  %1308 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (dec (val $Protect))\n  %1309 = sub i32 %1308, 1\n  store i32 %1309, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  br label %$47\n$47:\n  %1310 = phi i64 [%500, %$41], [%1298, %$95] ; # Exe\n  %1311 = phi i32 [%501, %$41], [%1299, %$95] ; # Fd\n  %1312 = phi i64 [%502, %$41], [%1300, %$95] ; # Ms\n  %1313 = phi i64 [%503, %$41], [%1301, %$95] ; # Run\n  %1314 = phi i64 [%504, %$41], [%1302, %$95] ; # At\n  %1315 = phi i8* [%505, %$41], [%1303, %$95] ; # Buf\n  %1316 = phi i32* [%506, %$41], [%1304, %$95] ; # Pn\n  %1317 = phi i64 [%507, %$41], [%1305, %$95] ; # Tim\n  %1318 = phi i64 [%509, %$41], [%1306, %$95] ; # Now\n  %1319 = phi i64 [%510, %$41], [%1307, %$95] ; # Dif\n; # (let N (val $Hear) (when (and N (<> N Fd) (inReady N NO)) (let In...\n; # (val $Hear)\n  %1320 = load i32, i32* @$Hear\n; # (when (and N (<> N Fd) (inReady N NO)) (let In (val $InFile) (set...\n; # (and N (<> N Fd) (inReady N NO))\n  %1321 = icmp ne i32 %1320, 0\n  br i1 %1321, label %$99, label %$98\n$99:\n  %1322 = phi i64 [%1310, %$47] ; # Exe\n  %1323 = phi i32 [%1311, %$47] ; # Fd\n  %1324 = phi i64 [%1312, %$47] ; # Ms\n  %1325 = phi i64 [%1313, %$47] ; # Run\n  %1326 = phi i64 [%1314, %$47] ; # At\n  %1327 = phi i8* [%1315, %$47] ; # Buf\n  %1328 = phi i32* [%1316, %$47] ; # Pn\n  %1329 = phi i64 [%1317, %$47] ; # Tim\n  %1330 = phi i64 [%1318, %$47] ; # Now\n  %1331 = phi i64 [%1319, %$47] ; # Dif\n  %1332 = phi i32 [%1320, %$47] ; # N\n; # (<> N Fd)\n  %1333 = icmp ne i32 %1332, %1323\n  br i1 %1333, label %$100, label %$98\n$100:\n  %1334 = phi i64 [%1322, %$99] ; # Exe\n  %1335 = phi i32 [%1323, %$99] ; # Fd\n  %1336 = phi i64 [%1324, %$99] ; # Ms\n  %1337 = phi i64 [%1325, %$99] ; # Run\n  %1338 = phi i64 [%1326, %$99] ; # At\n  %1339 = phi i8* [%1327, %$99] ; # Buf\n  %1340 = phi i32* [%1328, %$99] ; # Pn\n  %1341 = phi i64 [%1329, %$99] ; # Tim\n  %1342 = phi i64 [%1330, %$99] ; # Now\n  %1343 = phi i64 [%1331, %$99] ; # Dif\n  %1344 = phi i32 [%1332, %$99] ; # N\n; # (inReady N NO)\n  %1345 = call i1 @inReady(i32 %1344, i1 0)\n  br label %$98\n$98:\n  %1346 = phi i64 [%1310, %$47], [%1322, %$99], [%1334, %$100] ; # Exe\n  %1347 = phi i32 [%1311, %$47], [%1323, %$99], [%1335, %$100] ; # Fd\n  %1348 = phi i64 [%1312, %$47], [%1324, %$99], [%1336, %$100] ; # Ms\n  %1349 = phi i64 [%1313, %$47], [%1325, %$99], [%1337, %$100] ; # Run\n  %1350 = phi i64 [%1314, %$47], [%1326, %$99], [%1338, %$100] ; # At\n  %1351 = phi i8* [%1315, %$47], [%1327, %$99], [%1339, %$100] ; # Buf\n  %1352 = phi i32* [%1316, %$47], [%1328, %$99], [%1340, %$100] ; # Pn\n  %1353 = phi i64 [%1317, %$47], [%1329, %$99], [%1341, %$100] ; # Tim\n  %1354 = phi i64 [%1318, %$47], [%1330, %$99], [%1342, %$100] ; # Now\n  %1355 = phi i64 [%1319, %$47], [%1331, %$99], [%1343, %$100] ; # Dif\n  %1356 = phi i32 [%1320, %$47], [%1332, %$99], [%1344, %$100] ; # N\n  %1357 = phi i1 [0, %$47], [0, %$99], [%1345, %$100] ; # ->\n  br i1 %1357, label %$101, label %$102\n$101:\n  %1358 = phi i64 [%1346, %$98] ; # Exe\n  %1359 = phi i32 [%1347, %$98] ; # Fd\n  %1360 = phi i64 [%1348, %$98] ; # Ms\n  %1361 = phi i64 [%1349, %$98] ; # Run\n  %1362 = phi i64 [%1350, %$98] ; # At\n  %1363 = phi i8* [%1351, %$98] ; # Buf\n  %1364 = phi i32* [%1352, %$98] ; # Pn\n  %1365 = phi i64 [%1353, %$98] ; # Tim\n  %1366 = phi i64 [%1354, %$98] ; # Now\n  %1367 = phi i64 [%1355, %$98] ; # Dif\n  %1368 = phi i32 [%1356, %$98] ; # N\n; # (let In (val $InFile) (set $InFile (val (ofs (val $InFiles) (val ...\n; # (val $InFile)\n  %1369 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (set $InFile (val (ofs (val $InFiles) (val $Hear))) $GetBin (fun ...\n; # (val $InFiles)\n  %1370 = load i8**, i8*** @$InFiles\n; # (val $Hear)\n  %1371 = load i32, i32* @$Hear\n; # (ofs (val $InFiles) (val $Hear))\n  %1372 = getelementptr i8*, i8** %1370, i32 %1371\n; # (val (ofs (val $InFiles) (val $Hear)))\n  %1373 = load i8*, i8** %1372\n  store i8* %1373, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (fun (i32) getBinary)\n  store i32()* @getBinary, i32()** @$GetBin\n  store i32 0, i32* @$Extn\n; # (let E (binRead) (cond ((=0 E) (close N) (closeInFile N) (closeOu...\n; # (binRead)\n  %1374 = call i64 @binRead()\n; # (cond ((=0 E) (close N) (closeInFile N) (closeOutFile N) (set $He...\n; # (=0 E)\n  %1375 = icmp eq i64 %1374, 0\n  br i1 %1375, label %$105, label %$104\n$105:\n  %1376 = phi i64 [%1358, %$101] ; # Exe\n  %1377 = phi i32 [%1359, %$101] ; # Fd\n  %1378 = phi i64 [%1360, %$101] ; # Ms\n  %1379 = phi i64 [%1361, %$101] ; # Run\n  %1380 = phi i64 [%1362, %$101] ; # At\n  %1381 = phi i8* [%1363, %$101] ; # Buf\n  %1382 = phi i32* [%1364, %$101] ; # Pn\n  %1383 = phi i64 [%1365, %$101] ; # Tim\n  %1384 = phi i64 [%1366, %$101] ; # Now\n  %1385 = phi i64 [%1367, %$101] ; # Dif\n  %1386 = phi i32 [%1368, %$101] ; # N\n  %1387 = phi i8* [%1369, %$101] ; # In\n  %1388 = phi i64 [%1374, %$101] ; # E\n; # (close N)\n  %1389 = call i32 @close(i32 %1386)\n; # (closeInFile N)\n  call void @closeInFile(i32 %1386)\n; # (closeOutFile N)\n  call void @closeOutFile(i32 %1386)\n; # (set $Hear 0)\n  store i32 0, i32* @$Hear\n  br label %$103\n$104:\n  %1390 = phi i64 [%1358, %$101] ; # Exe\n  %1391 = phi i32 [%1359, %$101] ; # Fd\n  %1392 = phi i64 [%1360, %$101] ; # Ms\n  %1393 = phi i64 [%1361, %$101] ; # Run\n  %1394 = phi i64 [%1362, %$101] ; # At\n  %1395 = phi i8* [%1363, %$101] ; # Buf\n  %1396 = phi i32* [%1364, %$101] ; # Pn\n  %1397 = phi i64 [%1365, %$101] ; # Tim\n  %1398 = phi i64 [%1366, %$101] ; # Now\n  %1399 = phi i64 [%1367, %$101] ; # Dif\n  %1400 = phi i32 [%1368, %$101] ; # N\n  %1401 = phi i8* [%1369, %$101] ; # In\n  %1402 = phi i64 [%1374, %$101] ; # E\n; # (t? E)\n  %1403 = icmp eq i64 %1402, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %1403, label %$107, label %$106\n$107:\n  %1404 = phi i64 [%1390, %$104] ; # Exe\n  %1405 = phi i32 [%1391, %$104] ; # Fd\n  %1406 = phi i64 [%1392, %$104] ; # Ms\n  %1407 = phi i64 [%1393, %$104] ; # Run\n  %1408 = phi i64 [%1394, %$104] ; # At\n  %1409 = phi i8* [%1395, %$104] ; # Buf\n  %1410 = phi i32* [%1396, %$104] ; # Pn\n  %1411 = phi i64 [%1397, %$104] ; # Tim\n  %1412 = phi i64 [%1398, %$104] ; # Now\n  %1413 = phi i64 [%1399, %$104] ; # Dif\n  %1414 = phi i32 [%1400, %$104] ; # N\n  %1415 = phi i8* [%1401, %$104] ; # In\n  %1416 = phi i64 [%1402, %$104] ; # E\n; # (set $Sync YES)\n  store i1 1, i1* @$Sync\n  br label %$103\n$106:\n  %1417 = phi i64 [%1390, %$104] ; # Exe\n  %1418 = phi i32 [%1391, %$104] ; # Fd\n  %1419 = phi i64 [%1392, %$104] ; # Ms\n  %1420 = phi i64 [%1393, %$104] ; # Run\n  %1421 = phi i64 [%1394, %$104] ; # At\n  %1422 = phi i8* [%1395, %$104] ; # Buf\n  %1423 = phi i32* [%1396, %$104] ; # Pn\n  %1424 = phi i64 [%1397, %$104] ; # Tim\n  %1425 = phi i64 [%1398, %$104] ; # Now\n  %1426 = phi i64 [%1399, %$104] ; # Dif\n  %1427 = phi i32 [%1400, %$104] ; # N\n  %1428 = phi i8* [%1401, %$104] ; # In\n  %1429 = phi i64 [%1402, %$104] ; # E\n; # (save E (evList E))\n  %1430 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %1431 = load i64, i64* %1430\n  %1432 = alloca i64, i64 2, align 16\n  %1433 = ptrtoint i64* %1432 to i64\n  %1434 = inttoptr i64 %1433 to i64*\n  store i64 %1429, i64* %1434\n  %1435 = add i64 %1433, 8\n  %1436 = inttoptr i64 %1435 to i64*\n  store i64 %1431, i64* %1436\n  %1437 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1433, i64* %1437\n; # (evList E)\n  %1438 = call i64 @evList(i64 %1429)\n; # drop\n  %1439 = inttoptr i64 %1433 to i64*\n  %1440 = getelementptr i64, i64* %1439, i32 1\n  %1441 = load i64, i64* %1440\n  %1442 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1441, i64* %1442\n  br label %$103\n$103:\n  %1443 = phi i64 [%1376, %$105], [%1404, %$107], [%1417, %$106] ; # Exe\n  %1444 = phi i32 [%1377, %$105], [%1405, %$107], [%1418, %$106] ; # Fd\n  %1445 = phi i64 [%1378, %$105], [%1406, %$107], [%1419, %$106] ; # Ms\n  %1446 = phi i64 [%1379, %$105], [%1407, %$107], [%1420, %$106] ; # Run\n  %1447 = phi i64 [%1380, %$105], [%1408, %$107], [%1421, %$106] ; # At\n  %1448 = phi i8* [%1381, %$105], [%1409, %$107], [%1422, %$106] ; # Buf\n  %1449 = phi i32* [%1382, %$105], [%1410, %$107], [%1423, %$106] ; # Pn\n  %1450 = phi i64 [%1383, %$105], [%1411, %$107], [%1424, %$106] ; # Tim\n  %1451 = phi i64 [%1384, %$105], [%1412, %$107], [%1425, %$106] ; # Now\n  %1452 = phi i64 [%1385, %$105], [%1413, %$107], [%1426, %$106] ; # Dif\n  %1453 = phi i32 [%1386, %$105], [%1414, %$107], [%1427, %$106] ; # N\n  %1454 = phi i8* [%1387, %$105], [%1415, %$107], [%1428, %$106] ; # In\n  %1455 = phi i64 [%1388, %$105], [%1416, %$107], [%1429, %$106] ; # E\n; # (set $InFile In)\n  store i8* %1454, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n  br label %$102\n$102:\n  %1456 = phi i64 [%1346, %$98], [%1443, %$103] ; # Exe\n  %1457 = phi i32 [%1347, %$98], [%1444, %$103] ; # Fd\n  %1458 = phi i64 [%1348, %$98], [%1445, %$103] ; # Ms\n  %1459 = phi i64 [%1349, %$98], [%1446, %$103] ; # Run\n  %1460 = phi i64 [%1350, %$98], [%1447, %$103] ; # At\n  %1461 = phi i8* [%1351, %$98], [%1448, %$103] ; # Buf\n  %1462 = phi i32* [%1352, %$98], [%1449, %$103] ; # Pn\n  %1463 = phi i64 [%1353, %$98], [%1450, %$103] ; # Tim\n  %1464 = phi i64 [%1354, %$98], [%1451, %$103] ; # Now\n  %1465 = phi i64 [%1355, %$98], [%1452, %$103] ; # Dif\n  %1466 = phi i32 [%1356, %$98], [%1453, %$103] ; # N\n; # (let R Run (while (pair R) (let X (++ R) (cond ((sign? (car X)) (...\n; # (while (pair R) (let X (++ R) (cond ((sign? (car X)) (let Y (cdr ...\n  br label %$108\n$108:\n  %1467 = phi i64 [%1456, %$102], [%1671, %$111] ; # Exe\n  %1468 = phi i32 [%1457, %$102], [%1672, %$111] ; # Fd\n  %1469 = phi i64 [%1458, %$102], [%1673, %$111] ; # Ms\n  %1470 = phi i64 [%1459, %$102], [%1674, %$111] ; # Run\n  %1471 = phi i64 [%1460, %$102], [%1675, %$111] ; # At\n  %1472 = phi i8* [%1461, %$102], [%1676, %$111] ; # Buf\n  %1473 = phi i32* [%1462, %$102], [%1677, %$111] ; # Pn\n  %1474 = phi i64 [%1463, %$102], [%1678, %$111] ; # Tim\n  %1475 = phi i64 [%1464, %$102], [%1679, %$111] ; # Now\n  %1476 = phi i64 [%1465, %$102], [%1680, %$111] ; # Dif\n  %1477 = phi i64 [%1459, %$102], [%1681, %$111] ; # R\n; # (pair R)\n  %1478 = and i64 %1477, 15\n  %1479 = icmp eq i64 %1478, 0\n  br i1 %1479, label %$109, label %$110\n$109:\n  %1480 = phi i64 [%1467, %$108] ; # Exe\n  %1481 = phi i32 [%1468, %$108] ; # Fd\n  %1482 = phi i64 [%1469, %$108] ; # Ms\n  %1483 = phi i64 [%1470, %$108] ; # Run\n  %1484 = phi i64 [%1471, %$108] ; # At\n  %1485 = phi i8* [%1472, %$108] ; # Buf\n  %1486 = phi i32* [%1473, %$108] ; # Pn\n  %1487 = phi i64 [%1474, %$108] ; # Tim\n  %1488 = phi i64 [%1475, %$108] ; # Now\n  %1489 = phi i64 [%1476, %$108] ; # Dif\n  %1490 = phi i64 [%1477, %$108] ; # R\n; # (let X (++ R) (cond ((sign? (car X)) (let Y (cdr X) (if (gt0 (- (...\n; # (++ R)\n  %1491 = inttoptr i64 %1490 to i64*\n  %1492 = getelementptr i64, i64* %1491, i32 1\n  %1493 = load i64, i64* %1492\n  %1494 = load i64, i64* %1491\n; # (cond ((sign? (car X)) (let Y (cdr X) (if (gt0 (- (int (car Y)) D...\n; # (car X)\n  %1495 = inttoptr i64 %1494 to i64*\n  %1496 = load i64, i64* %1495\n; # (sign? (car X))\n  %1497 = and i64 %1496, 8\n  %1498 = icmp ne i64 %1497, 0\n  br i1 %1498, label %$113, label %$112\n$113:\n  %1499 = phi i64 [%1480, %$109] ; # Exe\n  %1500 = phi i32 [%1481, %$109] ; # Fd\n  %1501 = phi i64 [%1482, %$109] ; # Ms\n  %1502 = phi i64 [%1483, %$109] ; # Run\n  %1503 = phi i64 [%1484, %$109] ; # At\n  %1504 = phi i8* [%1485, %$109] ; # Buf\n  %1505 = phi i32* [%1486, %$109] ; # Pn\n  %1506 = phi i64 [%1487, %$109] ; # Tim\n  %1507 = phi i64 [%1488, %$109] ; # Now\n  %1508 = phi i64 [%1489, %$109] ; # Dif\n  %1509 = phi i64 [%1493, %$109] ; # R\n  %1510 = phi i64 [%1494, %$109] ; # X\n; # (let Y (cdr X) (if (gt0 (- (int (car Y)) Dif)) (set Y (sign (cnt ...\n; # (cdr X)\n  %1511 = inttoptr i64 %1510 to i64*\n  %1512 = getelementptr i64, i64* %1511, i32 1\n  %1513 = load i64, i64* %1512\n; # (if (gt0 (- (int (car Y)) Dif)) (set Y (sign (cnt @))) (let V (ca...\n; # (car Y)\n  %1514 = inttoptr i64 %1513 to i64*\n  %1515 = load i64, i64* %1514\n; # (int (car Y))\n  %1516 = lshr i64 %1515, 4\n; # (- (int (car Y)) Dif)\n  %1517 = sub i64 %1516, %1508\n; # (gt0 (- (int (car Y)) Dif))\n  %1518 = icmp sgt i64 %1517, 0\n  br i1 %1518, label %$114, label %$115\n$114:\n  %1519 = phi i64 [%1499, %$113] ; # Exe\n  %1520 = phi i32 [%1500, %$113] ; # Fd\n  %1521 = phi i64 [%1501, %$113] ; # Ms\n  %1522 = phi i64 [%1502, %$113] ; # Run\n  %1523 = phi i64 [%1503, %$113] ; # At\n  %1524 = phi i8* [%1504, %$113] ; # Buf\n  %1525 = phi i32* [%1505, %$113] ; # Pn\n  %1526 = phi i64 [%1506, %$113] ; # Tim\n  %1527 = phi i64 [%1507, %$113] ; # Now\n  %1528 = phi i64 [%1508, %$113] ; # Dif\n  %1529 = phi i64 [%1509, %$113] ; # R\n  %1530 = phi i64 [%1510, %$113] ; # X\n  %1531 = phi i64 [%1513, %$113] ; # Y\n; # (set Y (sign (cnt @)))\n; # (cnt @)\n  %1532 = shl i64 %1517, 4\n  %1533 = or i64 %1532, 2\n; # (sign (cnt @))\n  %1534 = or i64 %1533, 8\n  %1535 = inttoptr i64 %1531 to i64*\n  store i64 %1534, i64* %1535\n  br label %$116\n$115:\n  %1536 = phi i64 [%1499, %$113] ; # Exe\n  %1537 = phi i32 [%1500, %$113] ; # Fd\n  %1538 = phi i64 [%1501, %$113] ; # Ms\n  %1539 = phi i64 [%1502, %$113] ; # Run\n  %1540 = phi i64 [%1503, %$113] ; # At\n  %1541 = phi i8* [%1504, %$113] ; # Buf\n  %1542 = phi i32* [%1505, %$113] ; # Pn\n  %1543 = phi i64 [%1506, %$113] ; # Tim\n  %1544 = phi i64 [%1507, %$113] ; # Now\n  %1545 = phi i64 [%1508, %$113] ; # Dif\n  %1546 = phi i64 [%1509, %$113] ; # R\n  %1547 = phi i64 [%1510, %$113] ; # X\n  %1548 = phi i64 [%1513, %$113] ; # Y\n; # (let V (car X) (set Y (pos V) $At V) (exec (cdr Y)))\n; # (car X)\n  %1549 = inttoptr i64 %1547 to i64*\n  %1550 = load i64, i64* %1549\n; # (set Y (pos V) $At V)\n; # (pos V)\n  %1551 = and i64 %1550, -9\n  %1552 = inttoptr i64 %1548 to i64*\n  store i64 %1551, i64* %1552\n  %1553 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %1550, i64* %1553\n; # (cdr Y)\n  %1554 = inttoptr i64 %1548 to i64*\n  %1555 = getelementptr i64, i64* %1554, i32 1\n  %1556 = load i64, i64* %1555\n; # (exec (cdr Y))\n  br label %$117\n$117:\n  %1557 = phi i64 [%1556, %$115], [%1569, %$120] ; # Prg\n  %1558 = inttoptr i64 %1557 to i64*\n  %1559 = getelementptr i64, i64* %1558, i32 1\n  %1560 = load i64, i64* %1559\n  %1561 = load i64, i64* %1558\n  %1562 = and i64 %1561, 15\n  %1563 = icmp eq i64 %1562, 0\n  br i1 %1563, label %$118, label %$119\n$118:\n  %1564 = phi i64 [%1560, %$117] ; # Prg\n  %1565 = call i64 @evList(i64 %1561)\n  br label %$119\n$119:\n  %1566 = phi i64 [%1560, %$117], [%1564, %$118] ; # Prg\n  %1567 = and i64 %1566, 15\n  %1568 = icmp ne i64 %1567, 0\n  br i1 %1568, label %$121, label %$120\n$120:\n  %1569 = phi i64 [%1566, %$119] ; # Prg\n  br label %$117\n$121:\n  %1570 = phi i64 [%1566, %$119] ; # Prg\n  %1571 = phi i64 [0, %$119] ; # ->\n  br label %$116\n$116:\n  %1572 = phi i64 [%1519, %$114], [%1536, %$121] ; # Exe\n  %1573 = phi i32 [%1520, %$114], [%1537, %$121] ; # Fd\n  %1574 = phi i64 [%1521, %$114], [%1538, %$121] ; # Ms\n  %1575 = phi i64 [%1522, %$114], [%1539, %$121] ; # Run\n  %1576 = phi i64 [%1523, %$114], [%1540, %$121] ; # At\n  %1577 = phi i8* [%1524, %$114], [%1541, %$121] ; # Buf\n  %1578 = phi i32* [%1525, %$114], [%1542, %$121] ; # Pn\n  %1579 = phi i64 [%1526, %$114], [%1543, %$121] ; # Tim\n  %1580 = phi i64 [%1527, %$114], [%1544, %$121] ; # Now\n  %1581 = phi i64 [%1528, %$114], [%1545, %$121] ; # Dif\n  %1582 = phi i64 [%1529, %$114], [%1546, %$121] ; # R\n  %1583 = phi i64 [%1530, %$114], [%1547, %$121] ; # X\n  %1584 = phi i64 [%1531, %$114], [%1548, %$121] ; # Y\n  %1585 = phi i64 [%1534, %$114], [%1571, %$121] ; # ->\n  br label %$111\n$112:\n  %1586 = phi i64 [%1480, %$109] ; # Exe\n  %1587 = phi i32 [%1481, %$109] ; # Fd\n  %1588 = phi i64 [%1482, %$109] ; # Ms\n  %1589 = phi i64 [%1483, %$109] ; # Run\n  %1590 = phi i64 [%1484, %$109] ; # At\n  %1591 = phi i8* [%1485, %$109] ; # Buf\n  %1592 = phi i32* [%1486, %$109] ; # Pn\n  %1593 = phi i64 [%1487, %$109] ; # Tim\n  %1594 = phi i64 [%1488, %$109] ; # Now\n  %1595 = phi i64 [%1489, %$109] ; # Dif\n  %1596 = phi i64 [%1493, %$109] ; # R\n  %1597 = phi i64 [%1494, %$109] ; # X\n; # (int @)\n  %1598 = lshr i64 %1496, 4\n; # (i32 (int @))\n  %1599 = trunc i64 %1598 to i32\n; # (<> (i32 (int @)) Fd)\n  %1600 = icmp ne i32 %1599, %1587\n  br i1 %1600, label %$123, label %$122\n$123:\n  %1601 = phi i64 [%1586, %$112] ; # Exe\n  %1602 = phi i32 [%1587, %$112] ; # Fd\n  %1603 = phi i64 [%1588, %$112] ; # Ms\n  %1604 = phi i64 [%1589, %$112] ; # Run\n  %1605 = phi i64 [%1590, %$112] ; # At\n  %1606 = phi i8* [%1591, %$112] ; # Buf\n  %1607 = phi i32* [%1592, %$112] ; # Pn\n  %1608 = phi i64 [%1593, %$112] ; # Tim\n  %1609 = phi i64 [%1594, %$112] ; # Now\n  %1610 = phi i64 [%1595, %$112] ; # Dif\n  %1611 = phi i64 [%1596, %$112] ; # R\n  %1612 = phi i64 [%1597, %$112] ; # X\n; # (when (inReady @ NO) (set $At (car X)) (exec (cdr X)))\n; # (inReady @ NO)\n  %1613 = call i1 @inReady(i32 %1599, i1 0)\n  br i1 %1613, label %$124, label %$125\n$124:\n  %1614 = phi i64 [%1601, %$123] ; # Exe\n  %1615 = phi i32 [%1602, %$123] ; # Fd\n  %1616 = phi i64 [%1603, %$123] ; # Ms\n  %1617 = phi i64 [%1604, %$123] ; # Run\n  %1618 = phi i64 [%1605, %$123] ; # At\n  %1619 = phi i8* [%1606, %$123] ; # Buf\n  %1620 = phi i32* [%1607, %$123] ; # Pn\n  %1621 = phi i64 [%1608, %$123] ; # Tim\n  %1622 = phi i64 [%1609, %$123] ; # Now\n  %1623 = phi i64 [%1610, %$123] ; # Dif\n  %1624 = phi i64 [%1611, %$123] ; # R\n  %1625 = phi i64 [%1612, %$123] ; # X\n; # (set $At (car X))\n; # (car X)\n  %1626 = inttoptr i64 %1625 to i64*\n  %1627 = load i64, i64* %1626\n  %1628 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %1627, i64* %1628\n; # (cdr X)\n  %1629 = inttoptr i64 %1625 to i64*\n  %1630 = getelementptr i64, i64* %1629, i32 1\n  %1631 = load i64, i64* %1630\n; # (exec (cdr X))\n  br label %$126\n$126:\n  %1632 = phi i64 [%1631, %$124], [%1644, %$129] ; # Prg\n  %1633 = inttoptr i64 %1632 to i64*\n  %1634 = getelementptr i64, i64* %1633, i32 1\n  %1635 = load i64, i64* %1634\n  %1636 = load i64, i64* %1633\n  %1637 = and i64 %1636, 15\n  %1638 = icmp eq i64 %1637, 0\n  br i1 %1638, label %$127, label %$128\n$127:\n  %1639 = phi i64 [%1635, %$126] ; # Prg\n  %1640 = call i64 @evList(i64 %1636)\n  br label %$128\n$128:\n  %1641 = phi i64 [%1635, %$126], [%1639, %$127] ; # Prg\n  %1642 = and i64 %1641, 15\n  %1643 = icmp ne i64 %1642, 0\n  br i1 %1643, label %$130, label %$129\n$129:\n  %1644 = phi i64 [%1641, %$128] ; # Prg\n  br label %$126\n$130:\n  %1645 = phi i64 [%1641, %$128] ; # Prg\n  %1646 = phi i64 [0, %$128] ; # ->\n  br label %$125\n$125:\n  %1647 = phi i64 [%1601, %$123], [%1614, %$130] ; # Exe\n  %1648 = phi i32 [%1602, %$123], [%1615, %$130] ; # Fd\n  %1649 = phi i64 [%1603, %$123], [%1616, %$130] ; # Ms\n  %1650 = phi i64 [%1604, %$123], [%1617, %$130] ; # Run\n  %1651 = phi i64 [%1605, %$123], [%1618, %$130] ; # At\n  %1652 = phi i8* [%1606, %$123], [%1619, %$130] ; # Buf\n  %1653 = phi i32* [%1607, %$123], [%1620, %$130] ; # Pn\n  %1654 = phi i64 [%1608, %$123], [%1621, %$130] ; # Tim\n  %1655 = phi i64 [%1609, %$123], [%1622, %$130] ; # Now\n  %1656 = phi i64 [%1610, %$123], [%1623, %$130] ; # Dif\n  %1657 = phi i64 [%1611, %$123], [%1624, %$130] ; # R\n  %1658 = phi i64 [%1612, %$123], [%1625, %$130] ; # X\n  br label %$111\n$122:\n  %1659 = phi i64 [%1586, %$112] ; # Exe\n  %1660 = phi i32 [%1587, %$112] ; # Fd\n  %1661 = phi i64 [%1588, %$112] ; # Ms\n  %1662 = phi i64 [%1589, %$112] ; # Run\n  %1663 = phi i64 [%1590, %$112] ; # At\n  %1664 = phi i8* [%1591, %$112] ; # Buf\n  %1665 = phi i32* [%1592, %$112] ; # Pn\n  %1666 = phi i64 [%1593, %$112] ; # Tim\n  %1667 = phi i64 [%1594, %$112] ; # Now\n  %1668 = phi i64 [%1595, %$112] ; # Dif\n  %1669 = phi i64 [%1596, %$112] ; # R\n  %1670 = phi i64 [%1597, %$112] ; # X\n  br label %$111\n$111:\n  %1671 = phi i64 [%1572, %$116], [%1647, %$125], [%1659, %$122] ; # Exe\n  %1672 = phi i32 [%1573, %$116], [%1648, %$125], [%1660, %$122] ; # Fd\n  %1673 = phi i64 [%1574, %$116], [%1649, %$125], [%1661, %$122] ; # Ms\n  %1674 = phi i64 [%1575, %$116], [%1650, %$125], [%1662, %$122] ; # Run\n  %1675 = phi i64 [%1576, %$116], [%1651, %$125], [%1663, %$122] ; # At\n  %1676 = phi i8* [%1577, %$116], [%1652, %$125], [%1664, %$122] ; # Buf\n  %1677 = phi i32* [%1578, %$116], [%1653, %$125], [%1665, %$122] ; # Pn\n  %1678 = phi i64 [%1579, %$116], [%1654, %$125], [%1666, %$122] ; # Tim\n  %1679 = phi i64 [%1580, %$116], [%1655, %$125], [%1667, %$122] ; # Now\n  %1680 = phi i64 [%1581, %$116], [%1656, %$125], [%1668, %$122] ; # Dif\n  %1681 = phi i64 [%1582, %$116], [%1657, %$125], [%1669, %$122] ; # R\n  %1682 = phi i64 [%1583, %$116], [%1658, %$125], [%1670, %$122] ; # X\n  br label %$108\n$110:\n  %1683 = phi i64 [%1467, %$108] ; # Exe\n  %1684 = phi i32 [%1468, %$108] ; # Fd\n  %1685 = phi i64 [%1469, %$108] ; # Ms\n  %1686 = phi i64 [%1470, %$108] ; # Run\n  %1687 = phi i64 [%1471, %$108] ; # At\n  %1688 = phi i8* [%1472, %$108] ; # Buf\n  %1689 = phi i32* [%1473, %$108] ; # Pn\n  %1690 = phi i64 [%1474, %$108] ; # Tim\n  %1691 = phi i64 [%1475, %$108] ; # Now\n  %1692 = phi i64 [%1476, %$108] ; # Dif\n  %1693 = phi i64 [%1477, %$108] ; # R\n; # (and (gt0 Ms) (<> Ms 292MY) (lt0 (dec 'Ms Dif)) (setq Ms 0))\n; # (gt0 Ms)\n  %1694 = icmp sgt i64 %1685, 0\n  br i1 %1694, label %$132, label %$131\n$132:\n  %1695 = phi i64 [%1683, %$110] ; # Exe\n  %1696 = phi i32 [%1684, %$110] ; # Fd\n  %1697 = phi i64 [%1685, %$110] ; # Ms\n  %1698 = phi i64 [%1686, %$110] ; # Run\n  %1699 = phi i64 [%1687, %$110] ; # At\n  %1700 = phi i8* [%1688, %$110] ; # Buf\n  %1701 = phi i32* [%1689, %$110] ; # Pn\n  %1702 = phi i64 [%1690, %$110] ; # Tim\n  %1703 = phi i64 [%1691, %$110] ; # Now\n  %1704 = phi i64 [%1692, %$110] ; # Dif\n; # (<> Ms 292MY)\n  %1705 = icmp ne i64 %1697, 9223372036854775807\n  br i1 %1705, label %$133, label %$131\n$133:\n  %1706 = phi i64 [%1695, %$132] ; # Exe\n  %1707 = phi i32 [%1696, %$132] ; # Fd\n  %1708 = phi i64 [%1697, %$132] ; # Ms\n  %1709 = phi i64 [%1698, %$132] ; # Run\n  %1710 = phi i64 [%1699, %$132] ; # At\n  %1711 = phi i8* [%1700, %$132] ; # Buf\n  %1712 = phi i32* [%1701, %$132] ; # Pn\n  %1713 = phi i64 [%1702, %$132] ; # Tim\n  %1714 = phi i64 [%1703, %$132] ; # Now\n  %1715 = phi i64 [%1704, %$132] ; # Dif\n; # (dec 'Ms Dif)\n  %1716 = sub i64 %1708, %1715\n; # (lt0 (dec 'Ms Dif))\n  %1717 = icmp slt i64 %1716, 0\n  br i1 %1717, label %$134, label %$131\n$134:\n  %1718 = phi i64 [%1706, %$133] ; # Exe\n  %1719 = phi i32 [%1707, %$133] ; # Fd\n  %1720 = phi i64 [%1716, %$133] ; # Ms\n  %1721 = phi i64 [%1709, %$133] ; # Run\n  %1722 = phi i64 [%1710, %$133] ; # At\n  %1723 = phi i8* [%1711, %$133] ; # Buf\n  %1724 = phi i32* [%1712, %$133] ; # Pn\n  %1725 = phi i64 [%1713, %$133] ; # Tim\n  %1726 = phi i64 [%1714, %$133] ; # Now\n  %1727 = phi i64 [%1715, %$133] ; # Dif\n  br label %$131\n$131:\n  %1728 = phi i64 [%1683, %$110], [%1695, %$132], [%1706, %$133], [%1718, %$134] ; # Exe\n  %1729 = phi i32 [%1684, %$110], [%1696, %$132], [%1707, %$133], [%1719, %$134] ; # Fd\n  %1730 = phi i64 [%1685, %$110], [%1697, %$132], [%1716, %$133], [0, %$134] ; # Ms\n  %1731 = phi i64 [%1686, %$110], [%1698, %$132], [%1709, %$133], [%1721, %$134] ; # Run\n  %1732 = phi i64 [%1687, %$110], [%1699, %$132], [%1710, %$133], [%1722, %$134] ; # At\n  %1733 = phi i8* [%1688, %$110], [%1700, %$132], [%1711, %$133], [%1723, %$134] ; # Buf\n  %1734 = phi i32* [%1689, %$110], [%1701, %$132], [%1712, %$133], [%1724, %$134] ; # Pn\n  %1735 = phi i64 [%1690, %$110], [%1702, %$132], [%1713, %$133], [%1725, %$134] ; # Tim\n  %1736 = phi i64 [%1691, %$110], [%1703, %$132], [%1714, %$133], [%1726, %$134] ; # Now\n  %1737 = phi i64 [%1692, %$110], [%1704, %$132], [%1715, %$133], [%1727, %$134] ; # Dif\n  %1738 = phi i1 [0, %$110], [0, %$132], [0, %$133], [0, %$134] ; # ->\n; # (sigChk Exe)\n  %1739 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %1740 = icmp ne i32 %1739, 0\n  br i1 %1740, label %$135, label %$136\n$135:\n  %1741 = phi i64 [%1728, %$131] ; # Exe\n  call void @sighandler(i64 %1741)\n  br label %$136\n$136:\n  %1742 = phi i64 [%1728, %$131], [%1741, %$135] ; # Exe\n; # (? (or (=0 Ms) (lt0 Fd) (inReady Fd YES)))\n; # (or (=0 Ms) (lt0 Fd) (inReady Fd YES))\n; # (=0 Ms)\n  %1743 = icmp eq i64 %1730, 0\n  br i1 %1743, label %$137, label %$138\n$138:\n  %1744 = phi i64 [%1728, %$136] ; # Exe\n  %1745 = phi i32 [%1729, %$136] ; # Fd\n  %1746 = phi i64 [%1730, %$136] ; # Ms\n  %1747 = phi i64 [%1731, %$136] ; # Run\n  %1748 = phi i64 [%1732, %$136] ; # At\n  %1749 = phi i8* [%1733, %$136] ; # Buf\n  %1750 = phi i32* [%1734, %$136] ; # Pn\n  %1751 = phi i64 [%1736, %$136] ; # Tim\n; # (lt0 Fd)\n  %1752 = icmp slt i32 %1745, 0\n  br i1 %1752, label %$137, label %$139\n$139:\n  %1753 = phi i64 [%1744, %$138] ; # Exe\n  %1754 = phi i32 [%1745, %$138] ; # Fd\n  %1755 = phi i64 [%1746, %$138] ; # Ms\n  %1756 = phi i64 [%1747, %$138] ; # Run\n  %1757 = phi i64 [%1748, %$138] ; # At\n  %1758 = phi i8* [%1749, %$138] ; # Buf\n  %1759 = phi i32* [%1750, %$138] ; # Pn\n  %1760 = phi i64 [%1751, %$138] ; # Tim\n; # (inReady Fd YES)\n  %1761 = call i1 @inReady(i32 %1754, i1 1)\n  br label %$137\n$137:\n  %1762 = phi i64 [%1728, %$136], [%1744, %$138], [%1753, %$139] ; # Exe\n  %1763 = phi i32 [%1729, %$136], [%1745, %$138], [%1754, %$139] ; # Fd\n  %1764 = phi i64 [%1730, %$136], [%1746, %$138], [%1755, %$139] ; # Ms\n  %1765 = phi i64 [%1731, %$136], [%1747, %$138], [%1756, %$139] ; # Run\n  %1766 = phi i64 [%1732, %$136], [%1748, %$138], [%1757, %$139] ; # At\n  %1767 = phi i8* [%1733, %$136], [%1749, %$138], [%1758, %$139] ; # Buf\n  %1768 = phi i32* [%1734, %$136], [%1750, %$138], [%1759, %$139] ; # Pn\n  %1769 = phi i64 [%1736, %$136], [%1751, %$138], [%1760, %$139] ; # Tim\n  %1770 = phi i1 [1, %$136], [1, %$138], [%1761, %$139] ; # ->\n  br i1 %1770, label %$141, label %$140\n$140:\n  %1771 = phi i64 [%1762, %$137] ; # Exe\n  %1772 = phi i32 [%1763, %$137] ; # Fd\n  %1773 = phi i64 [%1764, %$137] ; # Ms\n  %1774 = phi i64 [%1765, %$137] ; # Run\n  %1775 = phi i64 [%1766, %$137] ; # At\n  %1776 = phi i8* [%1767, %$137] ; # Buf\n  %1777 = phi i32* [%1768, %$137] ; # Pn\n  %1778 = phi i64 [%1769, %$137] ; # Tim\n; # (val $Run)\n  %1779 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  %1780 = load i64, i64* %1779\n; # (safe (val $Run))\n  %1781 = inttoptr i64 %8 to i64*\n  store i64 %1780, i64* %1781\n  br label %$4\n$141:\n  %1782 = phi i64 [%1762, %$137] ; # Exe\n  %1783 = phi i32 [%1763, %$137] ; # Fd\n  %1784 = phi i64 [%1764, %$137] ; # Ms\n  %1785 = phi i64 [%1765, %$137] ; # Run\n  %1786 = phi i64 [%1766, %$137] ; # At\n  %1787 = phi i8* [%1767, %$137] ; # Buf\n  %1788 = phi i32* [%1768, %$137] ; # Pn\n  %1789 = phi i64 [%1769, %$137] ; # Tim\n  %1790 = phi i64 [0, %$137] ; # ->\n; # (set $At At)\n  %1791 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %1786, i64* %1791\n; # (drop *Safe)\n  %1792 = inttoptr i64 %8 to i64*\n  %1793 = getelementptr i64, i64* %1792, i32 1\n  %1794 = load i64, i64* %1793\n  %1795 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1794, i64* %1795\n  ret i64 %1784\n}\n\ndefine i64 @_Wait(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (if (nil? (eval (++ X))) 292MY (xCnt Exe @)))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) 292MY (xCnt Exe @))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  br label %$9\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%6, %$2] ; # X\n; # (xCnt Exe @)\n  %26 = call i64 @xCnt(i64 %24, i64 %20)\n  br label %$9\n$9:\n  %27 = phi i64 [%22, %$7], [%24, %$8] ; # Exe\n  %28 = phi i64 [%23, %$7], [%25, %$8] ; # X\n  %29 = phi i64 [9223372036854775807, %$7], [%26, %$8] ; # ->\n; # (if (t? (car X)) (let Fd (evCnt Exe (cdr X)) (if (waitFd Exe (i32...\n; # (car X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = load i64, i64* %30\n; # (t? (car X))\n  %32 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %32, label %$10, label %$11\n$10:\n  %33 = phi i64 [%27, %$9] ; # Exe\n  %34 = phi i64 [%28, %$9] ; # X\n  %35 = phi i64 [%29, %$9] ; # N\n; # (let Fd (evCnt Exe (cdr X)) (if (waitFd Exe (i32 Fd) N) (cnt Fd) ...\n; # (cdr X)\n  %36 = inttoptr i64 %34 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n; # (evCnt Exe (cdr X))\n  %39 = call i64 @evCnt(i64 %33, i64 %38)\n; # (if (waitFd Exe (i32 Fd) N) (cnt Fd) $Nil)\n; # (i32 Fd)\n  %40 = trunc i64 %39 to i32\n; # (waitFd Exe (i32 Fd) N)\n  %41 = call i64 @waitFd(i64 %33, i32 %40, i64 %35)\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$13, label %$14\n$13:\n  %43 = phi i64 [%33, %$10] ; # Exe\n  %44 = phi i64 [%34, %$10] ; # X\n  %45 = phi i64 [%35, %$10] ; # N\n  %46 = phi i64 [%39, %$10] ; # Fd\n; # (cnt Fd)\n  %47 = shl i64 %46, 4\n  %48 = or i64 %47, 2\n  br label %$15\n$14:\n  %49 = phi i64 [%33, %$10] ; # Exe\n  %50 = phi i64 [%34, %$10] ; # X\n  %51 = phi i64 [%35, %$10] ; # N\n  %52 = phi i64 [%39, %$10] ; # Fd\n  br label %$15\n$15:\n  %53 = phi i64 [%43, %$13], [%49, %$14] ; # Exe\n  %54 = phi i64 [%44, %$13], [%50, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$14] ; # N\n  %56 = phi i64 [%46, %$13], [%52, %$14] ; # Fd\n  %57 = phi i64 [%48, %$13], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14] ; # ->\n  br label %$12\n$11:\n  %58 = phi i64 [%27, %$9] ; # Exe\n  %59 = phi i64 [%28, %$9] ; # X\n  %60 = phi i64 [%29, %$9] ; # N\n; # (loop (? (not (nil? (run X))) @) (? (=0 (waitFd Exe -1 N)) (run X...\n  br label %$16\n$16:\n  %61 = phi i64 [%58, %$11], [%147, %$31] ; # Exe\n  %62 = phi i64 [%59, %$11], [%148, %$31] ; # X\n  %63 = phi i64 [%60, %$11], [%107, %$31] ; # N\n; # (? (not (nil? (run X))) @)\n; # (run X)\n  br label %$17\n$17:\n  %64 = phi i64 [%62, %$16], [%94, %$26] ; # Prg\n  %65 = inttoptr i64 %64 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  %68 = load i64, i64* %65\n  %69 = and i64 %67, 15\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$18\n$20:\n  %71 = phi i64 [%67, %$17] ; # Prg\n  %72 = phi i64 [%68, %$17] ; # X\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$23, label %$22\n$23:\n  %75 = phi i64 [%72, %$20] ; # X\n  br label %$21\n$22:\n  %76 = phi i64 [%72, %$20] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$25, label %$24\n$25:\n  %79 = phi i64 [%76, %$22] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$21\n$24:\n  %82 = phi i64 [%76, %$22] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$21\n$21:\n  %84 = phi i64 [%75, %$23], [%79, %$25], [%82, %$24] ; # X\n  %85 = phi i64 [%75, %$23], [%81, %$25], [%83, %$24] ; # ->\n  br label %$19\n$18:\n  %86 = phi i64 [%67, %$17] ; # Prg\n  %87 = phi i64 [%68, %$17] ; # X\n  %88 = and i64 %87, 15\n  %89 = icmp eq i64 %88, 0\n  br i1 %89, label %$27, label %$26\n$27:\n  %90 = phi i64 [%86, %$18] ; # Prg\n  %91 = phi i64 [%87, %$18] ; # X\n  %92 = call i64 @evList(i64 %91)\n  %93 = icmp ne i64 %92, 0\n  br label %$26\n$26:\n  %94 = phi i64 [%86, %$18], [%90, %$27] ; # Prg\n  %95 = phi i64 [%87, %$18], [%91, %$27] ; # X\n  %96 = phi i1 [0, %$18], [%93, %$27] ; # ->\n  br label %$17\n$19:\n  %97 = phi i64 [%71, %$21] ; # Prg\n  %98 = phi i64 [%85, %$21] ; # ->\n; # (nil? (run X))\n  %99 = icmp eq i64 %98, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (run X)))\n  %100 = icmp eq i1 %99, 0\n  br i1 %100, label %$30, label %$28\n$30:\n  %101 = phi i64 [%61, %$19] ; # Exe\n  %102 = phi i64 [%62, %$19] ; # X\n  %103 = phi i64 [%63, %$19] ; # N\n  br label %$29\n$28:\n  %104 = phi i64 [%61, %$19] ; # Exe\n  %105 = phi i64 [%62, %$19] ; # X\n  %106 = phi i64 [%63, %$19] ; # N\n; # (? (=0 (waitFd Exe -1 N)) (run X))\n; # (waitFd Exe -1 N)\n  %107 = call i64 @waitFd(i64 %104, i32 -1, i64 %106)\n; # (=0 (waitFd Exe -1 N))\n  %108 = icmp eq i64 %107, 0\n  br i1 %108, label %$32, label %$31\n$32:\n  %109 = phi i64 [%104, %$28] ; # Exe\n  %110 = phi i64 [%105, %$28] ; # X\n  %111 = phi i64 [%106, %$28] ; # N\n; # (run X)\n  br label %$33\n$33:\n  %112 = phi i64 [%110, %$32], [%142, %$42] ; # Prg\n  %113 = inttoptr i64 %112 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n  %116 = load i64, i64* %113\n  %117 = and i64 %115, 15\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$36, label %$34\n$36:\n  %119 = phi i64 [%115, %$33] ; # Prg\n  %120 = phi i64 [%116, %$33] ; # X\n  %121 = and i64 %120, 6\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$39, label %$38\n$39:\n  %123 = phi i64 [%120, %$36] ; # X\n  br label %$37\n$38:\n  %124 = phi i64 [%120, %$36] ; # X\n  %125 = and i64 %124, 8\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$41, label %$40\n$41:\n  %127 = phi i64 [%124, %$38] ; # X\n  %128 = inttoptr i64 %127 to i64*\n  %129 = load i64, i64* %128\n  br label %$37\n$40:\n  %130 = phi i64 [%124, %$38] ; # X\n  %131 = call i64 @evList(i64 %130)\n  br label %$37\n$37:\n  %132 = phi i64 [%123, %$39], [%127, %$41], [%130, %$40] ; # X\n  %133 = phi i64 [%123, %$39], [%129, %$41], [%131, %$40] ; # ->\n  br label %$35\n$34:\n  %134 = phi i64 [%115, %$33] ; # Prg\n  %135 = phi i64 [%116, %$33] ; # X\n  %136 = and i64 %135, 15\n  %137 = icmp eq i64 %136, 0\n  br i1 %137, label %$43, label %$42\n$43:\n  %138 = phi i64 [%134, %$34] ; # Prg\n  %139 = phi i64 [%135, %$34] ; # X\n  %140 = call i64 @evList(i64 %139)\n  %141 = icmp ne i64 %140, 0\n  br label %$42\n$42:\n  %142 = phi i64 [%134, %$34], [%138, %$43] ; # Prg\n  %143 = phi i64 [%135, %$34], [%139, %$43] ; # X\n  %144 = phi i1 [0, %$34], [%141, %$43] ; # ->\n  br label %$33\n$35:\n  %145 = phi i64 [%119, %$37] ; # Prg\n  %146 = phi i64 [%133, %$37] ; # ->\n  br label %$29\n$31:\n  %147 = phi i64 [%104, %$28] ; # Exe\n  %148 = phi i64 [%105, %$28] ; # X\n  %149 = phi i64 [%106, %$28] ; # N\n  br label %$16\n$29:\n  %150 = phi i64 [%101, %$30], [%109, %$35] ; # Exe\n  %151 = phi i64 [%102, %$30], [%110, %$35] ; # X\n  %152 = phi i64 [%103, %$30], [%111, %$35] ; # N\n  %153 = phi i64 [%98, %$30], [%146, %$35] ; # ->\n  br label %$12\n$12:\n  %154 = phi i64 [%53, %$15], [%150, %$29] ; # Exe\n  %155 = phi i64 [%54, %$15], [%151, %$29] ; # X\n  %156 = phi i64 [%55, %$15], [%152, %$29] ; # N\n  %157 = phi i64 [%57, %$15], [%153, %$29] ; # ->\n  ret i64 %157\n}\n\ndefine i64 @_Sync(i64) align 8 {\n$1:\n; # (cond ((or (=0 (val $Mic)) (=0 (val $Hear))) $Nil) ((val $Sync) $...\n; # (or (=0 (val $Mic)) (=0 (val $Hear)))\n; # (val $Mic)\n  %1 = load i32, i32* @$Mic\n; # (=0 (val $Mic))\n  %2 = icmp eq i32 %1, 0\n  br i1 %2, label %$3, label %$4\n$4:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (val $Hear)\n  %4 = load i32, i32* @$Hear\n; # (=0 (val $Hear))\n  %5 = icmp eq i32 %4, 0\n  br label %$3\n$3:\n  %6 = phi i64 [%0, %$1], [%3, %$4] ; # Exe\n  %7 = phi i1 [1, %$1], [%5, %$4] ; # ->\n  br i1 %7, label %$6, label %$5\n$6:\n  %8 = phi i64 [%6, %$3] ; # Exe\n  br label %$2\n$5:\n  %9 = phi i64 [%6, %$3] ; # Exe\n; # (val $Sync)\n  %10 = load i1, i1* @$Sync\n  br i1 %10, label %$8, label %$7\n$8:\n  %11 = phi i64 [%9, %$5] ; # Exe\n  br label %$2\n$7:\n  %12 = phi i64 [%9, %$5] ; # Exe\n; # (let (Mic (val $Mic) P (i8* $Slot) Cnt 4) (loop (let N (write Mic...\n; # (val $Mic)\n  %13 = load i32, i32* @$Mic\n; # (i8* $Slot)\n  %14 = bitcast i32* @$Slot to i8*\n; # (loop (let N (write Mic P Cnt) (cond ((ge0 N) (? (=0 (dec 'Cnt N)...\n  br label %$9\n$9:\n  %15 = phi i64 [%12, %$7], [%55, %$10] ; # Exe\n  %16 = phi i32 [%13, %$7], [%56, %$10] ; # Mic\n  %17 = phi i8* [%14, %$7], [%57, %$10] ; # P\n  %18 = phi i64 [4, %$7], [%58, %$10] ; # Cnt\n; # (let N (write Mic P Cnt) (cond ((ge0 N) (? (=0 (dec 'Cnt N))) (se...\n; # (write Mic P Cnt)\n  %19 = call i64 @write(i32 %16, i8* %17, i64 %18)\n; # (cond ((ge0 N) (? (=0 (dec 'Cnt N))) (setq P (ofs P N))) ((== (gE...\n; # (ge0 N)\n  %20 = icmp sge i64 %19, 0\n  br i1 %20, label %$12, label %$11\n$12:\n  %21 = phi i64 [%15, %$9] ; # Exe\n  %22 = phi i32 [%16, %$9] ; # Mic\n  %23 = phi i8* [%17, %$9] ; # P\n  %24 = phi i64 [%18, %$9] ; # Cnt\n  %25 = phi i64 [%19, %$9] ; # N\n; # (? (=0 (dec 'Cnt N)))\n; # (dec 'Cnt N)\n  %26 = sub i64 %24, %25\n; # (=0 (dec 'Cnt N))\n  %27 = icmp eq i64 %26, 0\n  br i1 %27, label %$14, label %$13\n$13:\n  %28 = phi i64 [%21, %$12] ; # Exe\n  %29 = phi i32 [%22, %$12] ; # Mic\n  %30 = phi i8* [%23, %$12] ; # P\n  %31 = phi i64 [%26, %$12] ; # Cnt\n  %32 = phi i64 [%25, %$12] ; # N\n; # (ofs P N)\n  %33 = getelementptr i8, i8* %30, i64 %32\n  br label %$10\n$11:\n  %34 = phi i64 [%15, %$9] ; # Exe\n  %35 = phi i32 [%16, %$9] ; # Mic\n  %36 = phi i8* [%17, %$9] ; # P\n  %37 = phi i64 [%18, %$9] ; # Cnt\n  %38 = phi i64 [%19, %$9] ; # N\n; # (gErrno)\n  %39 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %40 = icmp eq i32 %39, 2\n  br i1 %40, label %$16, label %$15\n$16:\n  %41 = phi i64 [%34, %$11] ; # Exe\n  %42 = phi i32 [%35, %$11] ; # Mic\n  %43 = phi i8* [%36, %$11] ; # P\n  %44 = phi i64 [%37, %$11] ; # Cnt\n  %45 = phi i64 [%38, %$11] ; # N\n; # (sigChk Exe)\n  %46 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %47 = icmp ne i32 %46, 0\n  br i1 %47, label %$17, label %$18\n$17:\n  %48 = phi i64 [%41, %$16] ; # Exe\n  call void @sighandler(i64 %48)\n  br label %$18\n$18:\n  %49 = phi i64 [%41, %$16], [%48, %$17] ; # Exe\n  br label %$10\n$15:\n  %50 = phi i64 [%34, %$11] ; # Exe\n  %51 = phi i32 [%35, %$11] ; # Mic\n  %52 = phi i8* [%36, %$11] ; # P\n  %53 = phi i64 [%37, %$11] ; # Cnt\n  %54 = phi i64 [%38, %$11] ; # N\n; # (writeErr ($ \"sync write: %s\"))\n  call void @writeErr(i8* bitcast ([15 x i8]* @$43 to i8*))\n  unreachable\n$10:\n  %55 = phi i64 [%28, %$13], [%41, %$18] ; # Exe\n  %56 = phi i32 [%29, %$13], [%42, %$18] ; # Mic\n  %57 = phi i8* [%33, %$13], [%43, %$18] ; # P\n  %58 = phi i64 [%31, %$13], [%44, %$18] ; # Cnt\n  %59 = phi i64 [%32, %$13], [%45, %$18] ; # N\n  br label %$9\n$14:\n  %60 = phi i64 [%21, %$12] ; # Exe\n  %61 = phi i32 [%22, %$12] ; # Mic\n  %62 = phi i8* [%23, %$12] ; # P\n  %63 = phi i64 [%26, %$12] ; # Cnt\n  %64 = phi i64 [0, %$12] ; # ->\n; # (set $Sync NO)\n  store i1 0, i1* @$Sync\n; # (loop (waitFd Exe -1 292MY) (? (val $Sync)))\n  br label %$19\n$19:\n  %65 = phi i64 [%60, %$14], [%68, %$20] ; # Exe\n; # (waitFd Exe -1 292MY)\n  %66 = call i64 @waitFd(i64 %65, i32 -1, i64 9223372036854775807)\n; # (? (val $Sync))\n; # (val $Sync)\n  %67 = load i1, i1* @$Sync\n  br i1 %67, label %$21, label %$20\n$20:\n  %68 = phi i64 [%65, %$19] ; # Exe\n  br label %$19\n$21:\n  %69 = phi i64 [%65, %$19] ; # Exe\n  %70 = phi i64 [0, %$19] ; # ->\n  br label %$2\n$2:\n  %71 = phi i64 [%8, %$6], [%11, %$8], [%69, %$21] ; # Exe\n  %72 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$8], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$21] ; # ->\n  ret i64 %72\n}\n\ndefine i64 @_Hear(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) Fd (i32 (xCnt Exe X))) (when (or (lt0 F...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (xCnt Exe X)\n  %19 = call i64 @xCnt(i64 %0, i64 %18)\n; # (i32 (xCnt Exe X))\n  %20 = trunc i64 %19 to i32\n; # (when (or (lt0 Fd) (>= Fd (val $InFDs)) (=0 (val (ofs (val $InFil...\n; # (or (lt0 Fd) (>= Fd (val $InFDs)) (=0 (val (ofs (val $InFiles) Fd...\n; # (lt0 Fd)\n  %21 = icmp slt i32 %20, 0\n  br i1 %21, label %$7, label %$8\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i32 [%20, %$2] ; # Fd\n; # (val $InFDs)\n  %25 = load i32, i32* @$InFDs\n; # (>= Fd (val $InFDs))\n  %26 = icmp sge i32 %24, %25\n  br i1 %26, label %$7, label %$9\n$9:\n  %27 = phi i64 [%22, %$8] ; # Exe\n  %28 = phi i64 [%23, %$8] ; # X\n  %29 = phi i32 [%24, %$8] ; # Fd\n; # (val $InFiles)\n  %30 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %31 = getelementptr i8*, i8** %30, i32 %29\n; # (val (ofs (val $InFiles) Fd))\n  %32 = load i8*, i8** %31\n; # (=0 (val (ofs (val $InFiles) Fd)))\n  %33 = icmp eq i8* %32, null\n  br i1 %33, label %$7, label %$10\n$10:\n  %34 = phi i64 [%27, %$9] ; # Exe\n  %35 = phi i64 [%28, %$9] ; # X\n  %36 = phi i32 [%29, %$9] ; # Fd\n; # ((inFile @) fd)\n  %37 = getelementptr i8, i8* %32, i32 8\n  %38 = bitcast i8* %37 to i32*\n  %39 = load i32, i32* %38\n; # (lt0 ((inFile @) fd))\n  %40 = icmp slt i32 %39, 0\n  br label %$7\n$7:\n  %41 = phi i64 [%0, %$2], [%22, %$8], [%27, %$9], [%34, %$10] ; # Exe\n  %42 = phi i64 [%18, %$2], [%23, %$8], [%28, %$9], [%35, %$10] ; # X\n  %43 = phi i32 [%20, %$2], [%24, %$8], [%29, %$9], [%36, %$10] ; # Fd\n  %44 = phi i1 [1, %$2], [1, %$8], [1, %$9], [%40, %$10] ; # ->\n  br i1 %44, label %$11, label %$12\n$11:\n  %45 = phi i64 [%41, %$7] ; # Exe\n  %46 = phi i64 [%42, %$7] ; # X\n  %47 = phi i32 [%43, %$7] ; # Fd\n; # (badFd Exe X)\n  call void @badFd(i64 %45, i64 %46)\n  unreachable\n$12:\n  %48 = phi i64 [%41, %$7] ; # Exe\n  %49 = phi i64 [%42, %$7] ; # X\n  %50 = phi i32 [%43, %$7] ; # Fd\n; # (when (val $Hear) (close @) (closeInFile @) (closeOutFile @))\n; # (val $Hear)\n  %51 = load i32, i32* @$Hear\n  %52 = icmp ne i32 %51, 0\n  br i1 %52, label %$13, label %$14\n$13:\n  %53 = phi i64 [%48, %$12] ; # Exe\n  %54 = phi i64 [%49, %$12] ; # X\n  %55 = phi i32 [%50, %$12] ; # Fd\n; # (close @)\n  %56 = call i32 @close(i32 %51)\n; # (closeInFile @)\n  call void @closeInFile(i32 %51)\n; # (closeOutFile @)\n  call void @closeOutFile(i32 %51)\n  br label %$14\n$14:\n  %57 = phi i64 [%48, %$12], [%53, %$13] ; # Exe\n  %58 = phi i64 [%49, %$12], [%54, %$13] ; # X\n  %59 = phi i32 [%50, %$12], [%55, %$13] ; # Fd\n; # (set $Hear Fd)\n  store i32 %59, i32* @$Hear\n  ret i64 %58\n}\n\ndefine i64 @_Tell(i64) align 8 {\n$1:\n; # (cond ((and (=0 (val $Tell)) (=0 (val $Children))) $Nil) ((atom (...\n; # (and (=0 (val $Tell)) (=0 (val $Children)))\n; # (val $Tell)\n  %1 = load i32, i32* @$Tell\n; # (=0 (val $Tell))\n  %2 = icmp eq i32 %1, 0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (val $Children)\n  %4 = load i32, i32* @$Children\n; # (=0 (val $Children))\n  %5 = icmp eq i32 %4, 0\n  br label %$3\n$3:\n  %6 = phi i64 [%0, %$1], [%3, %$4] ; # Exe\n  %7 = phi i1 [0, %$1], [%5, %$4] ; # ->\n  br i1 %7, label %$6, label %$5\n$6:\n  %8 = phi i64 [%6, %$3] ; # Exe\n  br label %$2\n$5:\n  %9 = phi i64 [%6, %$3] ; # Exe\n; # (cdr Exe)\n  %10 = inttoptr i64 %9 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n; # (atom (cdr Exe))\n  %13 = and i64 %12, 15\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$8, label %$7\n$8:\n  %15 = phi i64 [%9, %$5] ; # Exe\n; # (unsync)\n  call void @unsync()\n  br label %$2\n$7:\n  %16 = phi i64 [%9, %$5] ; # Exe\n; # (let (X @ Y (eval (car X)) Pid (i32 -1)) (when (cnt? Y) (setq Pid...\n; # (car X)\n  %17 = inttoptr i64 %12 to i64*\n  %18 = load i64, i64* %17\n; # (eval (car X))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$11, label %$10\n$11:\n  %21 = phi i64 [%18, %$7] ; # X\n  br label %$9\n$10:\n  %22 = phi i64 [%18, %$7] ; # X\n  %23 = and i64 %22, 8\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$13, label %$12\n$13:\n  %25 = phi i64 [%22, %$10] ; # X\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n  br label %$9\n$12:\n  %28 = phi i64 [%22, %$10] ; # X\n  %29 = call i64 @evList(i64 %28)\n  br label %$9\n$9:\n  %30 = phi i64 [%21, %$11], [%25, %$13], [%28, %$12] ; # X\n  %31 = phi i64 [%21, %$11], [%27, %$13], [%29, %$12] ; # ->\n; # (i32 -1)\n; # (when (cnt? Y) (setq Pid (i32 (int @)) Y (eval (car (shift X)))))...\n; # (cnt? Y)\n  %32 = and i64 %31, 2\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$14, label %$15\n$14:\n  %34 = phi i64 [%16, %$9] ; # Exe\n  %35 = phi i64 [%12, %$9] ; # X\n  %36 = phi i64 [%31, %$9] ; # Y\n  %37 = phi i32 [-1, %$9] ; # Pid\n; # (int @)\n  %38 = lshr i64 %31, 4\n; # (i32 (int @))\n  %39 = trunc i64 %38 to i32\n; # (shift X)\n  %40 = inttoptr i64 %35 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (car (shift X))\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (eval (car (shift X)))\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$18, label %$17\n$18:\n  %47 = phi i64 [%44, %$14] ; # X\n  br label %$16\n$17:\n  %48 = phi i64 [%44, %$14] ; # X\n  %49 = and i64 %48, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$20, label %$19\n$20:\n  %51 = phi i64 [%48, %$17] ; # X\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n  br label %$16\n$19:\n  %54 = phi i64 [%48, %$17] ; # X\n  %55 = call i64 @evList(i64 %54)\n  br label %$16\n$16:\n  %56 = phi i64 [%47, %$18], [%51, %$20], [%54, %$19] ; # X\n  %57 = phi i64 [%47, %$18], [%53, %$20], [%55, %$19] ; # ->\n  br label %$15\n$15:\n  %58 = phi i64 [%16, %$9], [%34, %$16] ; # Exe\n  %59 = phi i64 [%12, %$9], [%42, %$16] ; # X\n  %60 = phi i64 [%31, %$9], [%57, %$16] ; # Y\n  %61 = phi i32 [-1, %$9], [%39, %$16] ; # Pid\n; # (let (TellBuf (val $TellBuf) Ptr (val $Ptr) End (val $End)) (tell...\n; # (val $TellBuf)\n  %62 = load i8*, i8** @$TellBuf\n; # (val $Ptr)\n  %63 = load i8*, i8** @$Ptr\n; # (val $End)\n  %64 = load i8*, i8** @$End\n; # (val PipeBufSize)\n  %65 = load i32, i32* @PipeBufSize\n; # (b8 (val PipeBufSize))\n  %66 = alloca i8, i32 %65\n; # (tellBeg (b8 (val PipeBufSize)))\n  call void @tellBeg(i8* %66)\n; # (stkChk Exe)\n  %67 = load i8*, i8** @$StkLimit\n  %68 = call i8* @llvm.stacksave()\n  %69 = icmp ugt i8* %67, %68\n  br i1 %69, label %$21, label %$22\n$21:\n  %70 = phi i64 [%58, %$15] ; # Exe\n  call void @stkErr(i64 %70)\n  unreachable\n$22:\n  %71 = phi i64 [%58, %$15] ; # Exe\n; # (loop (prTell Y) (? (atom (shift X))) (setq Y (eval (car X))))\n  br label %$23\n$23:\n  %72 = phi i64 [%58, %$22], [%84, %$26] ; # Exe\n  %73 = phi i64 [%59, %$22], [%85, %$26] ; # X\n  %74 = phi i64 [%60, %$22], [%105, %$26] ; # Y\n  %75 = phi i32 [%61, %$22], [%87, %$26] ; # Pid\n  %76 = phi i8* [%62, %$22], [%88, %$26] ; # TellBuf\n  %77 = phi i8* [%63, %$22], [%89, %$26] ; # Ptr\n  %78 = phi i8* [%64, %$22], [%90, %$26] ; # End\n; # (prTell Y)\n  call void @prTell(i64 %74)\n; # (? (atom (shift X)))\n; # (shift X)\n  %79 = inttoptr i64 %73 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (atom (shift X))\n  %82 = and i64 %81, 15\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$25, label %$24\n$24:\n  %84 = phi i64 [%72, %$23] ; # Exe\n  %85 = phi i64 [%81, %$23] ; # X\n  %86 = phi i64 [%74, %$23] ; # Y\n  %87 = phi i32 [%75, %$23] ; # Pid\n  %88 = phi i8* [%76, %$23] ; # TellBuf\n  %89 = phi i8* [%77, %$23] ; # Ptr\n  %90 = phi i8* [%78, %$23] ; # End\n; # (car X)\n  %91 = inttoptr i64 %85 to i64*\n  %92 = load i64, i64* %91\n; # (eval (car X))\n  %93 = and i64 %92, 6\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$28, label %$27\n$28:\n  %95 = phi i64 [%92, %$24] ; # X\n  br label %$26\n$27:\n  %96 = phi i64 [%92, %$24] ; # X\n  %97 = and i64 %96, 8\n  %98 = icmp ne i64 %97, 0\n  br i1 %98, label %$30, label %$29\n$30:\n  %99 = phi i64 [%96, %$27] ; # X\n  %100 = inttoptr i64 %99 to i64*\n  %101 = load i64, i64* %100\n  br label %$26\n$29:\n  %102 = phi i64 [%96, %$27] ; # X\n  %103 = call i64 @evList(i64 %102)\n  br label %$26\n$26:\n  %104 = phi i64 [%95, %$28], [%99, %$30], [%102, %$29] ; # X\n  %105 = phi i64 [%95, %$28], [%101, %$30], [%103, %$29] ; # ->\n  br label %$23\n$25:\n  %106 = phi i64 [%72, %$23] ; # Exe\n  %107 = phi i64 [%81, %$23] ; # X\n  %108 = phi i64 [%74, %$23] ; # Y\n  %109 = phi i32 [%75, %$23] ; # Pid\n  %110 = phi i8* [%76, %$23] ; # TellBuf\n  %111 = phi i8* [%77, %$23] ; # Ptr\n  %112 = phi i8* [%78, %$23] ; # End\n  %113 = phi i64 [0, %$23] ; # ->\n; # (tellEnd Pid)\n  call void @tellEnd(i32 %109)\n; # (set $TellBuf TellBuf $Ptr Ptr $End End)\n  store i8* %110, i8** @$TellBuf\n  store i8* %111, i8** @$Ptr\n  store i8* %112, i8** @$End\n  br label %$2\n$2:\n  %114 = phi i64 [%8, %$6], [%15, %$8], [%106, %$25] ; # Exe\n  %115 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8], [%108, %$25] ; # ->\n  ret i64 %115\n}\n\ndefine i64 @_Poll(i64) align 8 {\n$1:\n; # (let (C (eval (cadr Exe)) Fd (i32 (xCnt Exe C))) (when (or (lt0 F...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (xCnt Exe C)\n  %19 = call i64 @xCnt(i64 %0, i64 %18)\n; # (i32 (xCnt Exe C))\n  %20 = trunc i64 %19 to i32\n; # (when (or (lt0 Fd) (>= Fd (val $InFDs))) (badFd Exe C))\n; # (or (lt0 Fd) (>= Fd (val $InFDs)))\n; # (lt0 Fd)\n  %21 = icmp slt i32 %20, 0\n  br i1 %21, label %$7, label %$8\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # C\n  %24 = phi i32 [%20, %$2] ; # Fd\n; # (val $InFDs)\n  %25 = load i32, i32* @$InFDs\n; # (>= Fd (val $InFDs))\n  %26 = icmp sge i32 %24, %25\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %28 = phi i64 [%18, %$2], [%23, %$8] ; # C\n  %29 = phi i32 [%20, %$2], [%24, %$8] ; # Fd\n  %30 = phi i1 [1, %$2], [%26, %$8] ; # ->\n  br i1 %30, label %$9, label %$10\n$9:\n  %31 = phi i64 [%27, %$7] ; # Exe\n  %32 = phi i64 [%28, %$7] ; # C\n  %33 = phi i32 [%29, %$7] ; # Fd\n; # (badFd Exe C)\n  call void @badFd(i64 %31, i64 %32)\n  unreachable\n$10:\n  %34 = phi i64 [%27, %$7] ; # Exe\n  %35 = phi i64 [%28, %$7] ; # C\n  %36 = phi i32 [%29, %$7] ; # Fd\n; # (let In: (inFile (val (ofs (val $InFiles) Fd))) (ifn (and (In:) (...\n; # (val $InFiles)\n  %37 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) Fd)\n  %38 = getelementptr i8*, i8** %37, i32 %36\n; # (val (ofs (val $InFiles) Fd))\n  %39 = load i8*, i8** %38\n; # (ifn (and (In:) (ge0 (In: fd))) $Nil (let Poll (b64 1) (pollIn Fd...\n; # (and (In:) (ge0 (In: fd)))\n; # (In:)\n  %40 = icmp ne i8* %39, null\n  br i1 %40, label %$12, label %$11\n$12:\n  %41 = phi i64 [%34, %$10] ; # Exe\n  %42 = phi i64 [%35, %$10] ; # C\n  %43 = phi i32 [%36, %$10] ; # Fd\n; # (In: fd)\n  %44 = getelementptr i8, i8* %39, i32 8\n  %45 = bitcast i8* %44 to i32*\n  %46 = load i32, i32* %45\n; # (ge0 (In: fd))\n  %47 = icmp sge i32 %46, 0\n  br label %$11\n$11:\n  %48 = phi i64 [%34, %$10], [%41, %$12] ; # Exe\n  %49 = phi i64 [%35, %$10], [%42, %$12] ; # C\n  %50 = phi i32 [%36, %$10], [%43, %$12] ; # Fd\n  %51 = phi i1 [0, %$10], [%47, %$12] ; # ->\n  br i1 %51, label %$14, label %$13\n$13:\n  %52 = phi i64 [%48, %$11] ; # Exe\n  %53 = phi i64 [%49, %$11] ; # C\n  %54 = phi i32 [%50, %$11] ; # Fd\n  br label %$15\n$14:\n  %55 = phi i64 [%48, %$11] ; # Exe\n  %56 = phi i64 [%49, %$11] ; # C\n  %57 = phi i32 [%50, %$11] ; # Fd\n; # (let Poll (b64 1) (pollIn Fd Poll) (loop (? (> (In: cnt) (In: ix)...\n; # (b64 1)\n  %58 = alloca i64, i64 1\n; # (pollIn Fd Poll)\n  call void @pollIn(i32 %57, i64* %58)\n; # (loop (? (> (In: cnt) (In: ix)) C) (while (lt0 (gPoll Poll 1 0)) ...\n  br label %$16\n$16:\n  %59 = phi i64 [%55, %$14], [%118, %$27] ; # Exe\n  %60 = phi i64 [%56, %$14], [%119, %$27] ; # C\n  %61 = phi i32 [%57, %$14], [%120, %$27] ; # Fd\n  %62 = phi i64* [%58, %$14], [%121, %$27] ; # Poll\n; # (? (> (In: cnt) (In: ix)) C)\n; # (In: cnt)\n  %63 = getelementptr i8, i8* %39, i32 28\n  %64 = bitcast i8* %63 to i32*\n  %65 = load i32, i32* %64\n; # (In: ix)\n  %66 = getelementptr i8, i8* %39, i32 24\n  %67 = bitcast i8* %66 to i32*\n  %68 = load i32, i32* %67\n; # (> (In: cnt) (In: ix))\n  %69 = icmp sgt i32 %65, %68\n  br i1 %69, label %$19, label %$17\n$19:\n  %70 = phi i64 [%59, %$16] ; # Exe\n  %71 = phi i64 [%60, %$16] ; # C\n  %72 = phi i32 [%61, %$16] ; # Fd\n  %73 = phi i64* [%62, %$16] ; # Poll\n  br label %$18\n$17:\n  %74 = phi i64 [%59, %$16] ; # Exe\n  %75 = phi i64 [%60, %$16] ; # C\n  %76 = phi i32 [%61, %$16] ; # Fd\n  %77 = phi i64* [%62, %$16] ; # Poll\n; # (while (lt0 (gPoll Poll 1 0)) (unless (== (gErrno) EINTR) (select...\n  br label %$20\n$20:\n  %78 = phi i64 [%74, %$17], [%94, %$24] ; # Exe\n  %79 = phi i64 [%75, %$17], [%95, %$24] ; # C\n  %80 = phi i32 [%76, %$17], [%96, %$24] ; # Fd\n  %81 = phi i64* [%77, %$17], [%97, %$24] ; # Poll\n; # (gPoll Poll 1 0)\n  %82 = call i32 @gPoll(i64* %81, i32 1, i64 0)\n; # (lt0 (gPoll Poll 1 0))\n  %83 = icmp slt i32 %82, 0\n  br i1 %83, label %$21, label %$22\n$21:\n  %84 = phi i64 [%78, %$20] ; # Exe\n  %85 = phi i64 [%79, %$20] ; # C\n  %86 = phi i32 [%80, %$20] ; # Fd\n  %87 = phi i64* [%81, %$20] ; # Poll\n; # (unless (== (gErrno) EINTR) (selectErr Exe))\n; # (gErrno)\n  %88 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %89 = icmp eq i32 %88, 2\n  br i1 %89, label %$24, label %$23\n$23:\n  %90 = phi i64 [%84, %$21] ; # Exe\n  %91 = phi i64 [%85, %$21] ; # C\n  %92 = phi i32 [%86, %$21] ; # Fd\n  %93 = phi i64* [%87, %$21] ; # Poll\n; # (selectErr Exe)\n  call void @selectErr(i64 %90)\n  unreachable\n$24:\n  %94 = phi i64 [%84, %$21] ; # Exe\n  %95 = phi i64 [%85, %$21] ; # C\n  %96 = phi i32 [%86, %$21] ; # Fd\n  %97 = phi i64* [%87, %$21] ; # Poll\n  br label %$20\n$22:\n  %98 = phi i64 [%78, %$20] ; # Exe\n  %99 = phi i64 [%79, %$20] ; # C\n  %100 = phi i32 [%80, %$20] ; # Fd\n  %101 = phi i64* [%81, %$20] ; # Poll\n; # (? (not (readyIn Poll)) $Nil)\n; # (readyIn Poll)\n  %102 = call i1 @readyIn(i64* %101)\n; # (not (readyIn Poll))\n  %103 = icmp eq i1 %102, 0\n  br i1 %103, label %$26, label %$25\n$26:\n  %104 = phi i64 [%98, %$22] ; # Exe\n  %105 = phi i64 [%99, %$22] ; # C\n  %106 = phi i32 [%100, %$22] ; # Fd\n  %107 = phi i64* [%101, %$22] ; # Poll\n  br label %$18\n$25:\n  %108 = phi i64 [%98, %$22] ; # Exe\n  %109 = phi i64 [%99, %$22] ; # C\n  %110 = phi i32 [%100, %$22] ; # Fd\n  %111 = phi i64* [%101, %$22] ; # Poll\n; # (? (ge0 (slowNb (In:))) C)\n; # (In:)\n; # (slowNb (In:))\n  %112 = call i32 @slowNb(i8* %39)\n; # (ge0 (slowNb (In:)))\n  %113 = icmp sge i32 %112, 0\n  br i1 %113, label %$28, label %$27\n$28:\n  %114 = phi i64 [%108, %$25] ; # Exe\n  %115 = phi i64 [%109, %$25] ; # C\n  %116 = phi i32 [%110, %$25] ; # Fd\n  %117 = phi i64* [%111, %$25] ; # Poll\n  br label %$18\n$27:\n  %118 = phi i64 [%108, %$25] ; # Exe\n  %119 = phi i64 [%109, %$25] ; # C\n  %120 = phi i32 [%110, %$25] ; # Fd\n  %121 = phi i64* [%111, %$25] ; # Poll\n  br label %$16\n$18:\n  %122 = phi i64 [%70, %$19], [%104, %$26], [%114, %$28] ; # Exe\n  %123 = phi i64 [%71, %$19], [%105, %$26], [%115, %$28] ; # C\n  %124 = phi i32 [%72, %$19], [%106, %$26], [%116, %$28] ; # Fd\n  %125 = phi i64* [%73, %$19], [%107, %$26], [%117, %$28] ; # Poll\n  %126 = phi i64 [%71, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$26], [%115, %$28] ; # ->\n  br label %$15\n$15:\n  %127 = phi i64 [%52, %$13], [%122, %$18] ; # Exe\n  %128 = phi i64 [%53, %$13], [%123, %$18] ; # C\n  %129 = phi i32 [%54, %$13], [%124, %$18] ; # Fd\n  %130 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%126, %$18] ; # ->\n  ret i64 %130\n}\n\ndefine void @rdOpen(i64, i64, i8*) align 8 {\n$1:\n; # (cond ((nil? X) (pushInFile Io (val (val $InFiles)) 0)) ((num? X)...\n; # (nil? X)\n  %3 = icmp eq i64 %1, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  %5 = phi i64 [%1, %$1] ; # X\n  %6 = phi i8* [%2, %$1] ; # Io\n; # (val $InFiles)\n  %7 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %8 = load i8*, i8** %7\n; # (pushInFile Io (val (val $InFiles)) 0)\n  call void @pushInFile(i8* %6, i8* %8, i32 0)\n  br label %$2\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%1, %$1] ; # X\n  %11 = phi i8* [%2, %$1] ; # Io\n; # (num? X)\n  %12 = and i64 %10, 6\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%9, %$3] ; # Exe\n  %15 = phi i64 [%10, %$3] ; # X\n  %16 = phi i8* [%11, %$3] ; # Io\n; # (let N (i32 (int X)) (pushInFile Io (cond ((sign? X) (let In (val...\n; # (int X)\n  %17 = lshr i64 %15, 4\n; # (i32 (int X))\n  %18 = trunc i64 %17 to i32\n; # (cond ((sign? X) (let In (val $InFrames) (loop (unless (setq In (...\n; # (sign? X)\n  %19 = and i64 %15, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%14, %$6] ; # Exe\n  %22 = phi i64 [%15, %$6] ; # X\n  %23 = phi i8* [%16, %$6] ; # Io\n  %24 = phi i32 [%18, %$6] ; # N\n; # (let In (val $InFrames) (loop (unless (setq In ((ioFrame In) link...\n; # (val $InFrames)\n  %25 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (loop (unless (setq In ((ioFrame In) link)) (badFd Exe X)) (? (=0...\n  br label %$10\n$10:\n  %26 = phi i64 [%21, %$9], [%46, %$13] ; # Exe\n  %27 = phi i64 [%22, %$9], [%47, %$13] ; # X\n  %28 = phi i8* [%23, %$9], [%48, %$13] ; # Io\n  %29 = phi i32 [%24, %$9], [%49, %$13] ; # N\n  %30 = phi i8* [%25, %$9], [%50, %$13] ; # In\n; # (unless (setq In ((ioFrame In) link)) (badFd Exe X))\n; # ((ioFrame In) link)\n  %31 = bitcast i8* %30 to i8**\n  %32 = load i8*, i8** %31\n  %33 = icmp ne i8* %32, null\n  br i1 %33, label %$12, label %$11\n$11:\n  %34 = phi i64 [%26, %$10] ; # Exe\n  %35 = phi i64 [%27, %$10] ; # X\n  %36 = phi i8* [%28, %$10] ; # Io\n  %37 = phi i32 [%29, %$10] ; # N\n  %38 = phi i8* [%32, %$10] ; # In\n; # (badFd Exe X)\n  call void @badFd(i64 %34, i64 %35)\n  unreachable\n$12:\n  %39 = phi i64 [%26, %$10] ; # Exe\n  %40 = phi i64 [%27, %$10] ; # X\n  %41 = phi i8* [%28, %$10] ; # Io\n  %42 = phi i32 [%29, %$10] ; # N\n  %43 = phi i8* [%32, %$10] ; # In\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %44 = sub i32 %42, 1\n; # (=0 (dec 'N))\n  %45 = icmp eq i32 %44, 0\n  br i1 %45, label %$14, label %$13\n$13:\n  %46 = phi i64 [%39, %$12] ; # Exe\n  %47 = phi i64 [%40, %$12] ; # X\n  %48 = phi i8* [%41, %$12] ; # Io\n  %49 = phi i32 [%44, %$12] ; # N\n  %50 = phi i8* [%43, %$12] ; # In\n  br label %$10\n$14:\n  %51 = phi i64 [%39, %$12] ; # Exe\n  %52 = phi i64 [%40, %$12] ; # X\n  %53 = phi i8* [%41, %$12] ; # Io\n  %54 = phi i32 [%44, %$12] ; # N\n  %55 = phi i8* [%43, %$12] ; # In\n  %56 = phi i64 [0, %$12] ; # ->\n; # ((ioFrame In) file)\n  %57 = getelementptr i8, i8* %55, i32 8\n  %58 = bitcast i8* %57 to i8**\n  %59 = load i8*, i8** %58\n  br label %$7\n$8:\n  %60 = phi i64 [%14, %$6] ; # Exe\n  %61 = phi i64 [%15, %$6] ; # X\n  %62 = phi i8* [%16, %$6] ; # Io\n  %63 = phi i32 [%18, %$6] ; # N\n; # (val $InFDs)\n  %64 = load i32, i32* @$InFDs\n; # (>= N (val $InFDs))\n  %65 = icmp sge i32 %63, %64\n  br i1 %65, label %$16, label %$15\n$16:\n  %66 = phi i64 [%60, %$8] ; # Exe\n  %67 = phi i64 [%61, %$8] ; # X\n  %68 = phi i8* [%62, %$8] ; # Io\n  %69 = phi i32 [%63, %$8] ; # N\n; # (badFd Exe X)\n  call void @badFd(i64 %66, i64 %67)\n  unreachable\n$15:\n  %70 = phi i64 [%60, %$8] ; # Exe\n  %71 = phi i64 [%61, %$8] ; # X\n  %72 = phi i8* [%62, %$8] ; # Io\n  %73 = phi i32 [%63, %$8] ; # N\n; # (val $InFiles)\n  %74 = load i8**, i8*** @$InFiles\n; # (ofs (val $InFiles) N)\n  %75 = getelementptr i8*, i8** %74, i32 %73\n; # (val (ofs (val $InFiles) N))\n  %76 = load i8*, i8** %75\n; # (=0 (val (ofs (val $InFiles) N)))\n  %77 = icmp eq i8* %76, null\n  br i1 %77, label %$18, label %$17\n$18:\n  %78 = phi i64 [%70, %$15] ; # Exe\n  %79 = phi i64 [%71, %$15] ; # X\n  %80 = phi i8* [%72, %$15] ; # Io\n  %81 = phi i32 [%73, %$15] ; # N\n; # (badFd Exe X)\n  call void @badFd(i64 %78, i64 %79)\n  unreachable\n$17:\n  %82 = phi i64 [%70, %$15] ; # Exe\n  %83 = phi i64 [%71, %$15] ; # X\n  %84 = phi i8* [%72, %$15] ; # Io\n  %85 = phi i32 [%73, %$15] ; # N\n  br label %$7\n$7:\n  %86 = phi i64 [%51, %$14], [%82, %$17] ; # Exe\n  %87 = phi i64 [%52, %$14], [%83, %$17] ; # X\n  %88 = phi i8* [%53, %$14], [%84, %$17] ; # Io\n  %89 = phi i32 [%54, %$14], [%85, %$17] ; # N\n  %90 = phi i8* [%59, %$14], [%76, %$17] ; # ->\n; # (pushInFile Io (cond ((sign? X) (let In (val $InFrames) (loop (un...\n  call void @pushInFile(i8* %16, i8* %90, i32 0)\n  br label %$2\n$5:\n  %91 = phi i64 [%9, %$3] ; # Exe\n  %92 = phi i64 [%10, %$3] ; # X\n  %93 = phi i8* [%11, %$3] ; # Io\n; # (sym? X)\n  %94 = and i64 %92, 8\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$20, label %$19\n$20:\n  %96 = phi i64 [%91, %$5] ; # Exe\n  %97 = phi i64 [%92, %$5] ; # X\n  %98 = phi i8* [%93, %$5] ; # Io\n; # (let (Nm (xName X) S (pathString Nm (b8 (pathSize Nm))) Fd T) (wh...\n; # (xName X)\n  %99 = call i64 @xName(i64 %97)\n; # (pathSize Nm)\n  %100 = call i64 @pathSize(i64 %99)\n; # (b8 (pathSize Nm))\n  %101 = alloca i8, i64 %100\n; # (pathString Nm (b8 (pathSize Nm)))\n  %102 = call i8* @pathString(i64 %99, i8* %101)\n; # (while (lt0 (setq Fd (openRd S))) (unless (== (gErrno) EINTR) (op...\n  br label %$21\n$21:\n  %103 = phi i64 [%96, %$20], [%124, %$27] ; # Exe\n  %104 = phi i64 [%97, %$20], [%125, %$27] ; # X\n  %105 = phi i8* [%98, %$20], [%126, %$27] ; # Io\n  %106 = phi i64 [%99, %$20], [%127, %$27] ; # Nm\n  %107 = phi i8* [%102, %$20], [%128, %$27] ; # S\n; # (openRd S)\n  %108 = call i32 @openRd(i8* %107)\n; # (lt0 (setq Fd (openRd S)))\n  %109 = icmp slt i32 %108, 0\n  br i1 %109, label %$22, label %$23\n$22:\n  %110 = phi i64 [%103, %$21] ; # Exe\n  %111 = phi i64 [%104, %$21] ; # X\n  %112 = phi i8* [%105, %$21] ; # Io\n  %113 = phi i64 [%106, %$21] ; # Nm\n  %114 = phi i8* [%107, %$21] ; # S\n  %115 = phi i32 [%108, %$21] ; # Fd\n; # (unless (== (gErrno) EINTR) (openErr Exe X))\n; # (gErrno)\n  %116 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %117 = icmp eq i32 %116, 2\n  br i1 %117, label %$25, label %$24\n$24:\n  %118 = phi i64 [%110, %$22] ; # Exe\n  %119 = phi i64 [%111, %$22] ; # X\n  %120 = phi i8* [%112, %$22] ; # Io\n  %121 = phi i64 [%113, %$22] ; # Nm\n  %122 = phi i8* [%114, %$22] ; # S\n  %123 = phi i32 [%115, %$22] ; # Fd\n; # (openErr Exe X)\n  call void @openErr(i64 %118, i64 %119)\n  unreachable\n$25:\n  %124 = phi i64 [%110, %$22] ; # Exe\n  %125 = phi i64 [%111, %$22] ; # X\n  %126 = phi i8* [%112, %$22] ; # Io\n  %127 = phi i64 [%113, %$22] ; # Nm\n  %128 = phi i8* [%114, %$22] ; # S\n  %129 = phi i32 [%115, %$22] ; # Fd\n; # (sigChk Exe)\n  %130 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %131 = icmp ne i32 %130, 0\n  br i1 %131, label %$26, label %$27\n$26:\n  %132 = phi i64 [%124, %$25] ; # Exe\n  call void @sighandler(i64 %132)\n  br label %$27\n$27:\n  %133 = phi i64 [%124, %$25], [%132, %$26] ; # Exe\n  br label %$21\n$23:\n  %134 = phi i64 [%103, %$21] ; # Exe\n  %135 = phi i64 [%104, %$21] ; # X\n  %136 = phi i8* [%105, %$21] ; # Io\n  %137 = phi i64 [%106, %$21] ; # Nm\n  %138 = phi i8* [%107, %$21] ; # S\n  %139 = phi i32 [%108, %$21] ; # Fd\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %134, i32 %139)\n; # (strdup S)\n  %140 = call i8* @strdup(i8* %138)\n; # (initInFile Fd (strdup S))\n  %141 = call i8* @initInFile(i32 %139, i8* %140)\n; # (pushInFile Io (initInFile Fd (strdup S)) 1)\n  call void @pushInFile(i8* %136, i8* %141, i32 1)\n  br label %$2\n$19:\n  %142 = phi i64 [%91, %$5] ; # Exe\n  %143 = phi i64 [%92, %$5] ; # X\n  %144 = phi i8* [%93, %$5] ; # Io\n; # (let (Pfd (b32 2) Av (b8* (inc (length X))) Cmd (xName (xSym (car...\n; # (b32 2)\n  %145 = alloca i32, i64 2\n; # (length X)\n  br label %$28\n$28:\n  %146 = phi i64 [%143, %$19], [%155, %$29] ; # X\n  %147 = phi i64 [0, %$19], [%152, %$29] ; # N\n  %148 = and i64 %146, 15\n  %149 = icmp eq i64 %148, 0\n  br i1 %149, label %$29, label %$30\n$29:\n  %150 = phi i64 [%146, %$28] ; # X\n  %151 = phi i64 [%147, %$28] ; # N\n  %152 = add i64 %151, 1\n  %153 = inttoptr i64 %150 to i64*\n  %154 = getelementptr i64, i64* %153, i32 1\n  %155 = load i64, i64* %154\n  br label %$28\n$30:\n  %156 = phi i64 [%146, %$28] ; # X\n  %157 = phi i64 [%147, %$28] ; # N\n; # (inc (length X))\n  %158 = add i64 %157, 1\n; # (b8* (inc (length X)))\n  %159 = alloca i8*, i64 %158\n; # (car X)\n  %160 = inttoptr i64 %143 to i64*\n  %161 = load i64, i64* %160\n; # (xSym (car X))\n  %162 = call i64 @xSym(i64 %161)\n; # (xName (xSym (car X)))\n  %163 = call i64 @xName(i64 %162)\n; # (when (lt0 (pipe Pfd)) (pipeErr Exe))\n; # (pipe Pfd)\n  %164 = call i32 @pipe(i32* %145)\n; # (lt0 (pipe Pfd))\n  %165 = icmp slt i32 %164, 0\n  br i1 %165, label %$31, label %$32\n$31:\n  %166 = phi i64 [%142, %$30] ; # Exe\n  %167 = phi i64 [%143, %$30] ; # X\n  %168 = phi i8* [%144, %$30] ; # Io\n  %169 = phi i32* [%145, %$30] ; # Pfd\n  %170 = phi i8** [%159, %$30] ; # Av\n  %171 = phi i64 [%163, %$30] ; # Cmd\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %166)\n  unreachable\n$32:\n  %172 = phi i64 [%142, %$30] ; # Exe\n  %173 = phi i64 [%143, %$30] ; # X\n  %174 = phi i8* [%144, %$30] ; # Io\n  %175 = phi i32* [%145, %$30] ; # Pfd\n  %176 = phi i8** [%159, %$30] ; # Av\n  %177 = phi i64 [%163, %$30] ; # Cmd\n; # (set Av (pathString Cmd (b8 (pathSize Cmd))))\n; # (pathSize Cmd)\n  %178 = call i64 @pathSize(i64 %177)\n; # (b8 (pathSize Cmd))\n  %179 = alloca i8, i64 %178\n; # (pathString Cmd (b8 (pathSize Cmd)))\n  %180 = call i8* @pathString(i64 %177, i8* %179)\n  store i8* %180, i8** %176\n; # (let A Av (while (pair (shift X)) (let Nm (xName (xSym (car X))) ...\n; # (while (pair (shift X)) (let Nm (xName (xSym (car X))) (set (inc ...\n  br label %$33\n$33:\n  %181 = phi i64 [%172, %$32], [%193, %$34] ; # Exe\n  %182 = phi i64 [%173, %$32], [%194, %$34] ; # X\n  %183 = phi i8* [%174, %$32], [%195, %$34] ; # Io\n  %184 = phi i32* [%175, %$32], [%196, %$34] ; # Pfd\n  %185 = phi i8** [%176, %$32], [%197, %$34] ; # Av\n  %186 = phi i64 [%177, %$32], [%198, %$34] ; # Cmd\n  %187 = phi i8** [%176, %$32], [%204, %$34] ; # A\n; # (shift X)\n  %188 = inttoptr i64 %182 to i64*\n  %189 = getelementptr i64, i64* %188, i32 1\n  %190 = load i64, i64* %189\n; # (pair (shift X))\n  %191 = and i64 %190, 15\n  %192 = icmp eq i64 %191, 0\n  br i1 %192, label %$34, label %$35\n$34:\n  %193 = phi i64 [%181, %$33] ; # Exe\n  %194 = phi i64 [%190, %$33] ; # X\n  %195 = phi i8* [%183, %$33] ; # Io\n  %196 = phi i32* [%184, %$33] ; # Pfd\n  %197 = phi i8** [%185, %$33] ; # Av\n  %198 = phi i64 [%186, %$33] ; # Cmd\n  %199 = phi i8** [%187, %$33] ; # A\n; # (let Nm (xName (xSym (car X))) (set (inc 'A) (bufString Nm (b8 (b...\n; # (car X)\n  %200 = inttoptr i64 %194 to i64*\n  %201 = load i64, i64* %200\n; # (xSym (car X))\n  %202 = call i64 @xSym(i64 %201)\n; # (xName (xSym (car X)))\n  %203 = call i64 @xName(i64 %202)\n; # (set (inc 'A) (bufString Nm (b8 (bufSize Nm))))\n; # (inc 'A)\n  %204 = getelementptr i8*, i8** %199, i32 1\n; # (bufSize Nm)\n  %205 = call i64 @bufSize(i64 %203)\n; # (b8 (bufSize Nm))\n  %206 = alloca i8, i64 %205\n; # (bufString Nm (b8 (bufSize Nm)))\n  %207 = call i8* @bufString(i64 %203, i8* %206)\n  store i8* %207, i8** %204\n  br label %$33\n$35:\n  %208 = phi i64 [%181, %$33] ; # Exe\n  %209 = phi i64 [%190, %$33] ; # X\n  %210 = phi i8* [%183, %$33] ; # Io\n  %211 = phi i32* [%184, %$33] ; # Pfd\n  %212 = phi i8** [%185, %$33] ; # Av\n  %213 = phi i64 [%186, %$33] ; # Cmd\n  %214 = phi i8** [%187, %$33] ; # A\n; # (set (inc 'A) null)\n; # (inc 'A)\n  %215 = getelementptr i8*, i8** %214, i32 1\n  store i8* null, i8** %215\n; # (cond ((lt0 (fork)) (forkErr Exe)) ((=0 @) (setpgid 0 0) (close (...\n; # (fork)\n  %216 = call i32 @fork()\n; # (lt0 (fork))\n  %217 = icmp slt i32 %216, 0\n  br i1 %217, label %$38, label %$37\n$38:\n  %218 = phi i64 [%208, %$35] ; # Exe\n  %219 = phi i64 [%209, %$35] ; # X\n  %220 = phi i8* [%210, %$35] ; # Io\n  %221 = phi i32* [%211, %$35] ; # Pfd\n  %222 = phi i8** [%212, %$35] ; # Av\n  %223 = phi i64 [%213, %$35] ; # Cmd\n; # (forkErr Exe)\n  call void @forkErr(i64 %218)\n  unreachable\n$37:\n  %224 = phi i64 [%208, %$35] ; # Exe\n  %225 = phi i64 [%209, %$35] ; # X\n  %226 = phi i8* [%210, %$35] ; # Io\n  %227 = phi i32* [%211, %$35] ; # Pfd\n  %228 = phi i8** [%212, %$35] ; # Av\n  %229 = phi i64 [%213, %$35] ; # Cmd\n; # (=0 @)\n  %230 = icmp eq i32 %216, 0\n  br i1 %230, label %$40, label %$39\n$40:\n  %231 = phi i64 [%224, %$37] ; # Exe\n  %232 = phi i64 [%225, %$37] ; # X\n  %233 = phi i8* [%226, %$37] ; # Io\n  %234 = phi i32* [%227, %$37] ; # Pfd\n  %235 = phi i8** [%228, %$37] ; # Av\n  %236 = phi i64 [%229, %$37] ; # Cmd\n; # (setpgid 0 0)\n  %237 = call i32 @setpgid(i32 0, i32 0)\n; # (val Pfd)\n  %238 = load i32, i32* %234\n; # (close (val Pfd))\n  %239 = call i32 @close(i32 %238)\n; # (unless (== (val 2 Pfd) 1) (dup2 @ 1) (close @))\n; # (val 2 Pfd)\n  %240 = getelementptr i32, i32* %234, i32 1\n  %241 = load i32, i32* %240\n; # (== (val 2 Pfd) 1)\n  %242 = icmp eq i32 %241, 1\n  br i1 %242, label %$42, label %$41\n$41:\n  %243 = phi i64 [%231, %$40] ; # Exe\n  %244 = phi i64 [%232, %$40] ; # X\n  %245 = phi i8* [%233, %$40] ; # Io\n  %246 = phi i32* [%234, %$40] ; # Pfd\n  %247 = phi i8** [%235, %$40] ; # Av\n  %248 = phi i64 [%236, %$40] ; # Cmd\n; # (dup2 @ 1)\n  %249 = call i32 @dup2(i32 %241, i32 1)\n; # (close @)\n  %250 = call i32 @close(i32 %241)\n  br label %$42\n$42:\n  %251 = phi i64 [%231, %$40], [%243, %$41] ; # Exe\n  %252 = phi i64 [%232, %$40], [%244, %$41] ; # X\n  %253 = phi i8* [%233, %$40], [%245, %$41] ; # Io\n  %254 = phi i32* [%234, %$40], [%246, %$41] ; # Pfd\n  %255 = phi i8** [%235, %$40], [%247, %$41] ; # Av\n  %256 = phi i64 [%236, %$40], [%248, %$41] ; # Cmd\n; # (val SIGPIPE Sig)\n  %257 = getelementptr i32, i32* @Sig, i32 4\n  %258 = load i32, i32* %257\n; # (val SigDfl)\n  %259 = load i8*, i8** @SigDfl\n; # (signal (val SIGPIPE Sig) (val SigDfl))\n  %260 = call i8* @signal(i32 %258, i8* %259)\n; # (val Av)\n  %261 = load i8*, i8** %255\n; # (execvp (val Av) Av)\n  %262 = call i32 @execvp(i8* %261, i8** %255)\n; # (val Av)\n  %263 = load i8*, i8** %255\n; # (execErr (val Av))\n  call void @execErr(i8* %263)\n  unreachable\n$39:\n  %264 = phi i64 [%224, %$37] ; # Exe\n  %265 = phi i64 [%225, %$37] ; # X\n  %266 = phi i8* [%226, %$37] ; # Io\n  %267 = phi i32* [%227, %$37] ; # Pfd\n  %268 = phi i8** [%228, %$37] ; # Av\n  %269 = phi i64 [%229, %$37] ; # Cmd\n  br label %$36\n$36:\n  %270 = phi i64 [%264, %$39] ; # Exe\n  %271 = phi i64 [%265, %$39] ; # X\n  %272 = phi i8* [%266, %$39] ; # Io\n  %273 = phi i32* [%267, %$39] ; # Pfd\n  %274 = phi i8** [%268, %$39] ; # Av\n  %275 = phi i64 [%269, %$39] ; # Cmd\n  %276 = phi i64 [0, %$39] ; # ->\n; # (let (Pid @ Fd (val Pfd)) (setpgid Pid 0) (close (val 2 Pfd)) (cl...\n; # (val Pfd)\n  %277 = load i32, i32* %273\n; # (setpgid Pid 0)\n  %278 = call i32 @setpgid(i32 %216, i32 0)\n; # (val 2 Pfd)\n  %279 = getelementptr i32, i32* %273, i32 1\n  %280 = load i32, i32* %279\n; # (close (val 2 Pfd))\n  %281 = call i32 @close(i32 %280)\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %270, i32 %277)\n; # (initInFile Fd null)\n  %282 = call i8* @initInFile(i32 %277, i8* null)\n; # (pushInFile Io (initInFile Fd null) Pid)\n  call void @pushInFile(i8* %272, i8* %282, i32 %216)\n  br label %$2\n$2:\n  %283 = phi i64 [%4, %$4], [%86, %$7], [%134, %$23], [%270, %$36] ; # Exe\n  %284 = phi i64 [%5, %$4], [%87, %$7], [%135, %$23], [%271, %$36] ; # X\n  %285 = phi i8* [%6, %$4], [%88, %$7], [%136, %$23], [%272, %$36] ; # Io\n  ret void\n}\n\ndefine void @wrOpen(i64, i64, i8*) align 8 {\n$1:\n; # (cond ((nil? X) (pushOutFile Io (val 2 (val $OutFiles)) 0)) ((num...\n; # (nil? X)\n  %3 = icmp eq i64 %1, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  %5 = phi i64 [%1, %$1] ; # X\n  %6 = phi i8* [%2, %$1] ; # Io\n; # (val $OutFiles)\n  %7 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %8 = getelementptr i8*, i8** %7, i32 1\n  %9 = load i8*, i8** %8\n; # (pushOutFile Io (val 2 (val $OutFiles)) 0)\n  call void @pushOutFile(i8* %6, i8* %9, i32 0)\n  br label %$2\n$3:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%1, %$1] ; # X\n  %12 = phi i8* [%2, %$1] ; # Io\n; # (num? X)\n  %13 = and i64 %11, 6\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$6, label %$5\n$6:\n  %15 = phi i64 [%10, %$3] ; # Exe\n  %16 = phi i64 [%11, %$3] ; # X\n  %17 = phi i8* [%12, %$3] ; # Io\n; # (let N (i32 (int X)) (pushOutFile Io (cond ((sign? X) (let Out (v...\n; # (int X)\n  %18 = lshr i64 %16, 4\n; # (i32 (int X))\n  %19 = trunc i64 %18 to i32\n; # (cond ((sign? X) (let Out (val $OutFrames) (loop (unless (setq Ou...\n; # (sign? X)\n  %20 = and i64 %16, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%15, %$6] ; # Exe\n  %23 = phi i64 [%16, %$6] ; # X\n  %24 = phi i8* [%17, %$6] ; # Io\n  %25 = phi i32 [%19, %$6] ; # N\n; # (let Out (val $OutFrames) (loop (unless (setq Out ((ioFrame Out) ...\n; # (val $OutFrames)\n  %26 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (loop (unless (setq Out ((ioFrame Out) link)) (badFd Exe X)) (? (...\n  br label %$10\n$10:\n  %27 = phi i64 [%22, %$9], [%47, %$13] ; # Exe\n  %28 = phi i64 [%23, %$9], [%48, %$13] ; # X\n  %29 = phi i8* [%24, %$9], [%49, %$13] ; # Io\n  %30 = phi i32 [%25, %$9], [%50, %$13] ; # N\n  %31 = phi i8* [%26, %$9], [%51, %$13] ; # Out\n; # (unless (setq Out ((ioFrame Out) link)) (badFd Exe X))\n; # ((ioFrame Out) link)\n  %32 = bitcast i8* %31 to i8**\n  %33 = load i8*, i8** %32\n  %34 = icmp ne i8* %33, null\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%27, %$10] ; # Exe\n  %36 = phi i64 [%28, %$10] ; # X\n  %37 = phi i8* [%29, %$10] ; # Io\n  %38 = phi i32 [%30, %$10] ; # N\n  %39 = phi i8* [%33, %$10] ; # Out\n; # (badFd Exe X)\n  call void @badFd(i64 %35, i64 %36)\n  unreachable\n$12:\n  %40 = phi i64 [%27, %$10] ; # Exe\n  %41 = phi i64 [%28, %$10] ; # X\n  %42 = phi i8* [%29, %$10] ; # Io\n  %43 = phi i32 [%30, %$10] ; # N\n  %44 = phi i8* [%33, %$10] ; # Out\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %45 = sub i32 %43, 1\n; # (=0 (dec 'N))\n  %46 = icmp eq i32 %45, 0\n  br i1 %46, label %$14, label %$13\n$13:\n  %47 = phi i64 [%40, %$12] ; # Exe\n  %48 = phi i64 [%41, %$12] ; # X\n  %49 = phi i8* [%42, %$12] ; # Io\n  %50 = phi i32 [%45, %$12] ; # N\n  %51 = phi i8* [%44, %$12] ; # Out\n  br label %$10\n$14:\n  %52 = phi i64 [%40, %$12] ; # Exe\n  %53 = phi i64 [%41, %$12] ; # X\n  %54 = phi i8* [%42, %$12] ; # Io\n  %55 = phi i32 [%45, %$12] ; # N\n  %56 = phi i8* [%44, %$12] ; # Out\n  %57 = phi i64 [0, %$12] ; # ->\n; # ((ioFrame Out) file)\n  %58 = getelementptr i8, i8* %56, i32 8\n  %59 = bitcast i8* %58 to i8**\n  %60 = load i8*, i8** %59\n  br label %$7\n$8:\n  %61 = phi i64 [%15, %$6] ; # Exe\n  %62 = phi i64 [%16, %$6] ; # X\n  %63 = phi i8* [%17, %$6] ; # Io\n  %64 = phi i32 [%19, %$6] ; # N\n; # (val $OutFDs)\n  %65 = load i32, i32* @$OutFDs\n; # (>= N (val $OutFDs))\n  %66 = icmp sge i32 %64, %65\n  br i1 %66, label %$16, label %$15\n$16:\n  %67 = phi i64 [%61, %$8] ; # Exe\n  %68 = phi i64 [%62, %$8] ; # X\n  %69 = phi i8* [%63, %$8] ; # Io\n  %70 = phi i32 [%64, %$8] ; # N\n; # (badFd Exe X)\n  call void @badFd(i64 %67, i64 %68)\n  unreachable\n$15:\n  %71 = phi i64 [%61, %$8] ; # Exe\n  %72 = phi i64 [%62, %$8] ; # X\n  %73 = phi i8* [%63, %$8] ; # Io\n  %74 = phi i32 [%64, %$8] ; # N\n; # (val $OutFiles)\n  %75 = load i8**, i8*** @$OutFiles\n; # (ofs (val $OutFiles) N)\n  %76 = getelementptr i8*, i8** %75, i32 %74\n; # (val (ofs (val $OutFiles) N))\n  %77 = load i8*, i8** %76\n; # (=0 (val (ofs (val $OutFiles) N)))\n  %78 = icmp eq i8* %77, null\n  br i1 %78, label %$18, label %$17\n$18:\n  %79 = phi i64 [%71, %$15] ; # Exe\n  %80 = phi i64 [%72, %$15] ; # X\n  %81 = phi i8* [%73, %$15] ; # Io\n  %82 = phi i32 [%74, %$15] ; # N\n; # (badFd Exe X)\n  call void @badFd(i64 %79, i64 %80)\n  unreachable\n$17:\n  %83 = phi i64 [%71, %$15] ; # Exe\n  %84 = phi i64 [%72, %$15] ; # X\n  %85 = phi i8* [%73, %$15] ; # Io\n  %86 = phi i32 [%74, %$15] ; # N\n  br label %$7\n$7:\n  %87 = phi i64 [%52, %$14], [%83, %$17] ; # Exe\n  %88 = phi i64 [%53, %$14], [%84, %$17] ; # X\n  %89 = phi i8* [%54, %$14], [%85, %$17] ; # Io\n  %90 = phi i32 [%55, %$14], [%86, %$17] ; # N\n  %91 = phi i8* [%60, %$14], [%77, %$17] ; # ->\n; # (pushOutFile Io (cond ((sign? X) (let Out (val $OutFrames) (loop ...\n  call void @pushOutFile(i8* %17, i8* %91, i32 0)\n  br label %$2\n$5:\n  %92 = phi i64 [%10, %$3] ; # Exe\n  %93 = phi i64 [%11, %$3] ; # X\n  %94 = phi i8* [%12, %$3] ; # Io\n; # (sym? X)\n  %95 = and i64 %93, 8\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$20, label %$19\n$20:\n  %97 = phi i64 [%92, %$5] ; # Exe\n  %98 = phi i64 [%93, %$5] ; # X\n  %99 = phi i8* [%94, %$5] ; # Io\n; # (let (Nm (xName X) S (pathString Nm (b8 (pathSize Nm))) Flg (== (...\n; # (xName X)\n  %100 = call i64 @xName(i64 %98)\n; # (pathSize Nm)\n  %101 = call i64 @pathSize(i64 %100)\n; # (b8 (pathSize Nm))\n  %102 = alloca i8, i64 %101\n; # (pathString Nm (b8 (pathSize Nm)))\n  %103 = call i8* @pathString(i64 %100, i8* %102)\n; # (val S)\n  %104 = load i8, i8* %103\n; # (== (val S) (char \"+\"))\n  %105 = icmp eq i8 %104, 43\n; # (when Flg (setq S (ofs S 1)))\n  br i1 %105, label %$21, label %$22\n$21:\n  %106 = phi i64 [%97, %$20] ; # Exe\n  %107 = phi i64 [%98, %$20] ; # X\n  %108 = phi i8* [%99, %$20] ; # Io\n  %109 = phi i64 [%100, %$20] ; # Nm\n  %110 = phi i8* [%103, %$20] ; # S\n  %111 = phi i1 [%105, %$20] ; # Flg\n; # (ofs S 1)\n  %112 = getelementptr i8, i8* %110, i32 1\n  br label %$22\n$22:\n  %113 = phi i64 [%97, %$20], [%106, %$21] ; # Exe\n  %114 = phi i64 [%98, %$20], [%107, %$21] ; # X\n  %115 = phi i8* [%99, %$20], [%108, %$21] ; # Io\n  %116 = phi i64 [%100, %$20], [%109, %$21] ; # Nm\n  %117 = phi i8* [%103, %$20], [%112, %$21] ; # S\n  %118 = phi i1 [%105, %$20], [%111, %$21] ; # Flg\n; # (while (lt0 (setq Fd (if Flg (openRdWrAppend S) (openWr S)))) (un...\n  br label %$23\n$23:\n  %119 = phi i64 [%113, %$22], [%163, %$32] ; # Exe\n  %120 = phi i64 [%114, %$22], [%164, %$32] ; # X\n  %121 = phi i8* [%115, %$22], [%165, %$32] ; # Io\n  %122 = phi i64 [%116, %$22], [%166, %$32] ; # Nm\n  %123 = phi i8* [%117, %$22], [%167, %$32] ; # S\n  %124 = phi i1 [%118, %$22], [%168, %$32] ; # Flg\n; # (if Flg (openRdWrAppend S) (openWr S))\n  br i1 %124, label %$24, label %$25\n$24:\n  %125 = phi i64 [%119, %$23] ; # Exe\n  %126 = phi i64 [%120, %$23] ; # X\n  %127 = phi i8* [%121, %$23] ; # Io\n  %128 = phi i64 [%122, %$23] ; # Nm\n  %129 = phi i8* [%123, %$23] ; # S\n  %130 = phi i1 [%124, %$23] ; # Flg\n; # (openRdWrAppend S)\n  %131 = call i32 @openRdWrAppend(i8* %129)\n  br label %$26\n$25:\n  %132 = phi i64 [%119, %$23] ; # Exe\n  %133 = phi i64 [%120, %$23] ; # X\n  %134 = phi i8* [%121, %$23] ; # Io\n  %135 = phi i64 [%122, %$23] ; # Nm\n  %136 = phi i8* [%123, %$23] ; # S\n  %137 = phi i1 [%124, %$23] ; # Flg\n; # (openWr S)\n  %138 = call i32 @openWr(i8* %136)\n  br label %$26\n$26:\n  %139 = phi i64 [%125, %$24], [%132, %$25] ; # Exe\n  %140 = phi i64 [%126, %$24], [%133, %$25] ; # X\n  %141 = phi i8* [%127, %$24], [%134, %$25] ; # Io\n  %142 = phi i64 [%128, %$24], [%135, %$25] ; # Nm\n  %143 = phi i8* [%129, %$24], [%136, %$25] ; # S\n  %144 = phi i1 [%130, %$24], [%137, %$25] ; # Flg\n  %145 = phi i32 [%131, %$24], [%138, %$25] ; # ->\n; # (lt0 (setq Fd (if Flg (openRdWrAppend S) (openWr S))))\n  %146 = icmp slt i32 %145, 0\n  br i1 %146, label %$27, label %$28\n$27:\n  %147 = phi i64 [%139, %$26] ; # Exe\n  %148 = phi i64 [%140, %$26] ; # X\n  %149 = phi i8* [%141, %$26] ; # Io\n  %150 = phi i64 [%142, %$26] ; # Nm\n  %151 = phi i8* [%143, %$26] ; # S\n  %152 = phi i1 [%144, %$26] ; # Flg\n  %153 = phi i32 [%145, %$26] ; # Fd\n; # (unless (== (gErrno) EINTR) (openErr Exe X))\n; # (gErrno)\n  %154 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %155 = icmp eq i32 %154, 2\n  br i1 %155, label %$30, label %$29\n$29:\n  %156 = phi i64 [%147, %$27] ; # Exe\n  %157 = phi i64 [%148, %$27] ; # X\n  %158 = phi i8* [%149, %$27] ; # Io\n  %159 = phi i64 [%150, %$27] ; # Nm\n  %160 = phi i8* [%151, %$27] ; # S\n  %161 = phi i1 [%152, %$27] ; # Flg\n  %162 = phi i32 [%153, %$27] ; # Fd\n; # (openErr Exe X)\n  call void @openErr(i64 %156, i64 %157)\n  unreachable\n$30:\n  %163 = phi i64 [%147, %$27] ; # Exe\n  %164 = phi i64 [%148, %$27] ; # X\n  %165 = phi i8* [%149, %$27] ; # Io\n  %166 = phi i64 [%150, %$27] ; # Nm\n  %167 = phi i8* [%151, %$27] ; # S\n  %168 = phi i1 [%152, %$27] ; # Flg\n  %169 = phi i32 [%153, %$27] ; # Fd\n; # (sigChk Exe)\n  %170 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %171 = icmp ne i32 %170, 0\n  br i1 %171, label %$31, label %$32\n$31:\n  %172 = phi i64 [%163, %$30] ; # Exe\n  call void @sighandler(i64 %172)\n  br label %$32\n$32:\n  %173 = phi i64 [%163, %$30], [%172, %$31] ; # Exe\n  br label %$23\n$28:\n  %174 = phi i64 [%139, %$26] ; # Exe\n  %175 = phi i64 [%140, %$26] ; # X\n  %176 = phi i8* [%141, %$26] ; # Io\n  %177 = phi i64 [%142, %$26] ; # Nm\n  %178 = phi i8* [%143, %$26] ; # S\n  %179 = phi i1 [%144, %$26] ; # Flg\n  %180 = phi i32 [%145, %$26] ; # Fd\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %174, i32 %180)\n; # (initOutFile Fd)\n  %181 = call i8* @initOutFile(i32 %180)\n; # (pushOutFile Io (initOutFile Fd) 1)\n  call void @pushOutFile(i8* %176, i8* %181, i32 1)\n  br label %$2\n$19:\n  %182 = phi i64 [%92, %$5] ; # Exe\n  %183 = phi i64 [%93, %$5] ; # X\n  %184 = phi i8* [%94, %$5] ; # Io\n; # (let (Pfd (b32 2) Av (b8* (inc (length X))) Cmd (xName (xSym (car...\n; # (b32 2)\n  %185 = alloca i32, i64 2\n; # (length X)\n  br label %$33\n$33:\n  %186 = phi i64 [%183, %$19], [%195, %$34] ; # X\n  %187 = phi i64 [0, %$19], [%192, %$34] ; # N\n  %188 = and i64 %186, 15\n  %189 = icmp eq i64 %188, 0\n  br i1 %189, label %$34, label %$35\n$34:\n  %190 = phi i64 [%186, %$33] ; # X\n  %191 = phi i64 [%187, %$33] ; # N\n  %192 = add i64 %191, 1\n  %193 = inttoptr i64 %190 to i64*\n  %194 = getelementptr i64, i64* %193, i32 1\n  %195 = load i64, i64* %194\n  br label %$33\n$35:\n  %196 = phi i64 [%186, %$33] ; # X\n  %197 = phi i64 [%187, %$33] ; # N\n; # (inc (length X))\n  %198 = add i64 %197, 1\n; # (b8* (inc (length X)))\n  %199 = alloca i8*, i64 %198\n; # (car X)\n  %200 = inttoptr i64 %183 to i64*\n  %201 = load i64, i64* %200\n; # (xSym (car X))\n  %202 = call i64 @xSym(i64 %201)\n; # (xName (xSym (car X)))\n  %203 = call i64 @xName(i64 %202)\n; # (when (lt0 (pipe Pfd)) (pipeErr Exe))\n; # (pipe Pfd)\n  %204 = call i32 @pipe(i32* %185)\n; # (lt0 (pipe Pfd))\n  %205 = icmp slt i32 %204, 0\n  br i1 %205, label %$36, label %$37\n$36:\n  %206 = phi i64 [%182, %$35] ; # Exe\n  %207 = phi i64 [%183, %$35] ; # X\n  %208 = phi i8* [%184, %$35] ; # Io\n  %209 = phi i32* [%185, %$35] ; # Pfd\n  %210 = phi i8** [%199, %$35] ; # Av\n  %211 = phi i64 [%203, %$35] ; # Cmd\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %206)\n  unreachable\n$37:\n  %212 = phi i64 [%182, %$35] ; # Exe\n  %213 = phi i64 [%183, %$35] ; # X\n  %214 = phi i8* [%184, %$35] ; # Io\n  %215 = phi i32* [%185, %$35] ; # Pfd\n  %216 = phi i8** [%199, %$35] ; # Av\n  %217 = phi i64 [%203, %$35] ; # Cmd\n; # (set Av (pathString Cmd (b8 (pathSize Cmd))))\n; # (pathSize Cmd)\n  %218 = call i64 @pathSize(i64 %217)\n; # (b8 (pathSize Cmd))\n  %219 = alloca i8, i64 %218\n; # (pathString Cmd (b8 (pathSize Cmd)))\n  %220 = call i8* @pathString(i64 %217, i8* %219)\n  store i8* %220, i8** %216\n; # (let A Av (while (pair (shift X)) (let Nm (xName (xSym (car X))) ...\n; # (while (pair (shift X)) (let Nm (xName (xSym (car X))) (set (inc ...\n  br label %$38\n$38:\n  %221 = phi i64 [%212, %$37], [%233, %$39] ; # Exe\n  %222 = phi i64 [%213, %$37], [%234, %$39] ; # X\n  %223 = phi i8* [%214, %$37], [%235, %$39] ; # Io\n  %224 = phi i32* [%215, %$37], [%236, %$39] ; # Pfd\n  %225 = phi i8** [%216, %$37], [%237, %$39] ; # Av\n  %226 = phi i64 [%217, %$37], [%238, %$39] ; # Cmd\n  %227 = phi i8** [%216, %$37], [%244, %$39] ; # A\n; # (shift X)\n  %228 = inttoptr i64 %222 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n; # (pair (shift X))\n  %231 = and i64 %230, 15\n  %232 = icmp eq i64 %231, 0\n  br i1 %232, label %$39, label %$40\n$39:\n  %233 = phi i64 [%221, %$38] ; # Exe\n  %234 = phi i64 [%230, %$38] ; # X\n  %235 = phi i8* [%223, %$38] ; # Io\n  %236 = phi i32* [%224, %$38] ; # Pfd\n  %237 = phi i8** [%225, %$38] ; # Av\n  %238 = phi i64 [%226, %$38] ; # Cmd\n  %239 = phi i8** [%227, %$38] ; # A\n; # (let Nm (xName (xSym (car X))) (set (inc 'A) (bufString Nm (b8 (b...\n; # (car X)\n  %240 = inttoptr i64 %234 to i64*\n  %241 = load i64, i64* %240\n; # (xSym (car X))\n  %242 = call i64 @xSym(i64 %241)\n; # (xName (xSym (car X)))\n  %243 = call i64 @xName(i64 %242)\n; # (set (inc 'A) (bufString Nm (b8 (bufSize Nm))))\n; # (inc 'A)\n  %244 = getelementptr i8*, i8** %239, i32 1\n; # (bufSize Nm)\n  %245 = call i64 @bufSize(i64 %243)\n; # (b8 (bufSize Nm))\n  %246 = alloca i8, i64 %245\n; # (bufString Nm (b8 (bufSize Nm)))\n  %247 = call i8* @bufString(i64 %243, i8* %246)\n  store i8* %247, i8** %244\n  br label %$38\n$40:\n  %248 = phi i64 [%221, %$38] ; # Exe\n  %249 = phi i64 [%230, %$38] ; # X\n  %250 = phi i8* [%223, %$38] ; # Io\n  %251 = phi i32* [%224, %$38] ; # Pfd\n  %252 = phi i8** [%225, %$38] ; # Av\n  %253 = phi i64 [%226, %$38] ; # Cmd\n  %254 = phi i8** [%227, %$38] ; # A\n; # (set (inc 'A) null)\n; # (inc 'A)\n  %255 = getelementptr i8*, i8** %254, i32 1\n  store i8* null, i8** %255\n; # (cond ((lt0 (fork)) (forkErr Exe)) ((=0 @) (setpgid 0 0) (close (...\n; # (fork)\n  %256 = call i32 @fork()\n; # (lt0 (fork))\n  %257 = icmp slt i32 %256, 0\n  br i1 %257, label %$43, label %$42\n$43:\n  %258 = phi i64 [%248, %$40] ; # Exe\n  %259 = phi i64 [%249, %$40] ; # X\n  %260 = phi i8* [%250, %$40] ; # Io\n  %261 = phi i32* [%251, %$40] ; # Pfd\n  %262 = phi i8** [%252, %$40] ; # Av\n  %263 = phi i64 [%253, %$40] ; # Cmd\n; # (forkErr Exe)\n  call void @forkErr(i64 %258)\n  unreachable\n$42:\n  %264 = phi i64 [%248, %$40] ; # Exe\n  %265 = phi i64 [%249, %$40] ; # X\n  %266 = phi i8* [%250, %$40] ; # Io\n  %267 = phi i32* [%251, %$40] ; # Pfd\n  %268 = phi i8** [%252, %$40] ; # Av\n  %269 = phi i64 [%253, %$40] ; # Cmd\n; # (=0 @)\n  %270 = icmp eq i32 %256, 0\n  br i1 %270, label %$45, label %$44\n$45:\n  %271 = phi i64 [%264, %$42] ; # Exe\n  %272 = phi i64 [%265, %$42] ; # X\n  %273 = phi i8* [%266, %$42] ; # Io\n  %274 = phi i32* [%267, %$42] ; # Pfd\n  %275 = phi i8** [%268, %$42] ; # Av\n  %276 = phi i64 [%269, %$42] ; # Cmd\n; # (setpgid 0 0)\n  %277 = call i32 @setpgid(i32 0, i32 0)\n; # (val 2 Pfd)\n  %278 = getelementptr i32, i32* %274, i32 1\n  %279 = load i32, i32* %278\n; # (close (val 2 Pfd))\n  %280 = call i32 @close(i32 %279)\n; # (when (val Pfd) (dup2 @ 0) (close @))\n; # (val Pfd)\n  %281 = load i32, i32* %274\n  %282 = icmp ne i32 %281, 0\n  br i1 %282, label %$46, label %$47\n$46:\n  %283 = phi i64 [%271, %$45] ; # Exe\n  %284 = phi i64 [%272, %$45] ; # X\n  %285 = phi i8* [%273, %$45] ; # Io\n  %286 = phi i32* [%274, %$45] ; # Pfd\n  %287 = phi i8** [%275, %$45] ; # Av\n  %288 = phi i64 [%276, %$45] ; # Cmd\n; # (dup2 @ 0)\n  %289 = call i32 @dup2(i32 %281, i32 0)\n; # (close @)\n  %290 = call i32 @close(i32 %281)\n  br label %$47\n$47:\n  %291 = phi i64 [%271, %$45], [%283, %$46] ; # Exe\n  %292 = phi i64 [%272, %$45], [%284, %$46] ; # X\n  %293 = phi i8* [%273, %$45], [%285, %$46] ; # Io\n  %294 = phi i32* [%274, %$45], [%286, %$46] ; # Pfd\n  %295 = phi i8** [%275, %$45], [%287, %$46] ; # Av\n  %296 = phi i64 [%276, %$45], [%288, %$46] ; # Cmd\n; # (val Av)\n  %297 = load i8*, i8** %295\n; # (execvp (val Av) Av)\n  %298 = call i32 @execvp(i8* %297, i8** %295)\n; # (val Av)\n  %299 = load i8*, i8** %295\n; # (execErr (val Av))\n  call void @execErr(i8* %299)\n  unreachable\n$44:\n  %300 = phi i64 [%264, %$42] ; # Exe\n  %301 = phi i64 [%265, %$42] ; # X\n  %302 = phi i8* [%266, %$42] ; # Io\n  %303 = phi i32* [%267, %$42] ; # Pfd\n  %304 = phi i8** [%268, %$42] ; # Av\n  %305 = phi i64 [%269, %$42] ; # Cmd\n  br label %$41\n$41:\n  %306 = phi i64 [%300, %$44] ; # Exe\n  %307 = phi i64 [%301, %$44] ; # X\n  %308 = phi i8* [%302, %$44] ; # Io\n  %309 = phi i32* [%303, %$44] ; # Pfd\n  %310 = phi i8** [%304, %$44] ; # Av\n  %311 = phi i64 [%305, %$44] ; # Cmd\n  %312 = phi i64 [0, %$44] ; # ->\n; # (let (Pid @ Fd (val 2 Pfd)) (setpgid Pid 0) (close (val Pfd)) (cl...\n; # (val 2 Pfd)\n  %313 = getelementptr i32, i32* %309, i32 1\n  %314 = load i32, i32* %313\n; # (setpgid Pid 0)\n  %315 = call i32 @setpgid(i32 %256, i32 0)\n; # (val Pfd)\n  %316 = load i32, i32* %309\n; # (close (val Pfd))\n  %317 = call i32 @close(i32 %316)\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %306, i32 %314)\n; # (initOutFile Fd)\n  %318 = call i8* @initOutFile(i32 %314)\n; # (pushOutFile Io (initOutFile Fd) Pid)\n  call void @pushOutFile(i8* %308, i8* %318, i32 %256)\n  br label %$2\n$2:\n  %319 = phi i64 [%4, %$4], [%87, %$7], [%174, %$28], [%306, %$41] ; # Exe\n  %320 = phi i64 [%5, %$4], [%88, %$7], [%175, %$28], [%307, %$41] ; # X\n  %321 = phi i8* [%6, %$4], [%89, %$7], [%176, %$28], [%308, %$41] ; # Io\n  ret void\n}\n\ndefine void @erOpen(i64, i64, i8*) align 8 {\n$1:\n; # (let Ct: (ctFrame Ct) (Ct: fd (dup 2)) (let Fd (if (nil? (needSym...\n; # (Ct: fd (dup 2))\n  %3 = getelementptr i8, i8* %2, i32 8\n  %4 = bitcast i8* %3 to i32*\n  %5 = call i32 @dup(i32 2)\n  store i32 %5, i32* %4\n; # (let Fd (if (nil? (needSymb Exe X)) (dup ((outFile (val $OutFile)...\n; # (if (nil? (needSymb Exe X)) (dup ((outFile (val $OutFile)) fd)) (...\n; # (needSymb Exe X)\n  %6 = xor i64 %1, 8\n  %7 = and i64 %6, 14\n  %8 = icmp eq i64 %7, 0\n  br i1 %8, label %$3, label %$2\n$2:\n  %9 = phi i64 [%1, %$1] ; # X\n  %10 = phi i64 [%0, %$1] ; # Exe\n  call void @symErr(i64 %10, i64 %9)\n  unreachable\n$3:\n  %11 = phi i64 [%1, %$1] ; # X\n  %12 = phi i64 [%0, %$1] ; # Exe\n; # (nil? (needSymb Exe X))\n  %13 = icmp eq i64 %11, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %13, label %$4, label %$5\n$4:\n  %14 = phi i64 [%0, %$3] ; # Exe\n  %15 = phi i64 [%1, %$3] ; # X\n  %16 = phi i8* [%2, %$3] ; # Ct\n; # (val $OutFile)\n  %17 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # ((outFile (val $OutFile)) fd)\n  %18 = bitcast i8* %17 to i32*\n  %19 = load i32, i32* %18\n; # (dup ((outFile (val $OutFile)) fd))\n  %20 = call i32 @dup(i32 %19)\n  br label %$6\n$5:\n  %21 = phi i64 [%0, %$3] ; # Exe\n  %22 = phi i64 [%1, %$3] ; # X\n  %23 = phi i8* [%2, %$3] ; # Ct\n; # (let (Nm (xName X) S (pathString Nm (b8 (pathSize Nm))) Flg (== (...\n; # (xName X)\n  %24 = call i64 @xName(i64 %22)\n; # (pathSize Nm)\n  %25 = call i64 @pathSize(i64 %24)\n; # (b8 (pathSize Nm))\n  %26 = alloca i8, i64 %25\n; # (pathString Nm (b8 (pathSize Nm)))\n  %27 = call i8* @pathString(i64 %24, i8* %26)\n; # (val S)\n  %28 = load i8, i8* %27\n; # (== (val S) (char \"+\"))\n  %29 = icmp eq i8 %28, 43\n; # (when Flg (setq S (ofs S 1)))\n  br i1 %29, label %$7, label %$8\n$7:\n  %30 = phi i64 [%21, %$5] ; # Exe\n  %31 = phi i64 [%22, %$5] ; # X\n  %32 = phi i8* [%23, %$5] ; # Ct\n  %33 = phi i64 [%24, %$5] ; # Nm\n  %34 = phi i8* [%27, %$5] ; # S\n  %35 = phi i1 [%29, %$5] ; # Flg\n; # (ofs S 1)\n  %36 = getelementptr i8, i8* %34, i32 1\n  br label %$8\n$8:\n  %37 = phi i64 [%21, %$5], [%30, %$7] ; # Exe\n  %38 = phi i64 [%22, %$5], [%31, %$7] ; # X\n  %39 = phi i8* [%23, %$5], [%32, %$7] ; # Ct\n  %40 = phi i64 [%24, %$5], [%33, %$7] ; # Nm\n  %41 = phi i8* [%27, %$5], [%36, %$7] ; # S\n  %42 = phi i1 [%29, %$5], [%35, %$7] ; # Flg\n; # (while (lt0 (if Flg (openWrAppend S) (openWr S))) (unless (== (gE...\n  br label %$9\n$9:\n  %43 = phi i64 [%37, %$8], [%85, %$18] ; # Exe\n  %44 = phi i64 [%38, %$8], [%86, %$18] ; # X\n  %45 = phi i8* [%39, %$8], [%87, %$18] ; # Ct\n  %46 = phi i64 [%40, %$8], [%88, %$18] ; # Nm\n  %47 = phi i8* [%41, %$8], [%89, %$18] ; # S\n  %48 = phi i1 [%42, %$8], [%90, %$18] ; # Flg\n; # (if Flg (openWrAppend S) (openWr S))\n  br i1 %48, label %$10, label %$11\n$10:\n  %49 = phi i64 [%43, %$9] ; # Exe\n  %50 = phi i64 [%44, %$9] ; # X\n  %51 = phi i8* [%45, %$9] ; # Ct\n  %52 = phi i64 [%46, %$9] ; # Nm\n  %53 = phi i8* [%47, %$9] ; # S\n  %54 = phi i1 [%48, %$9] ; # Flg\n; # (openWrAppend S)\n  %55 = call i32 @openWrAppend(i8* %53)\n  br label %$12\n$11:\n  %56 = phi i64 [%43, %$9] ; # Exe\n  %57 = phi i64 [%44, %$9] ; # X\n  %58 = phi i8* [%45, %$9] ; # Ct\n  %59 = phi i64 [%46, %$9] ; # Nm\n  %60 = phi i8* [%47, %$9] ; # S\n  %61 = phi i1 [%48, %$9] ; # Flg\n; # (openWr S)\n  %62 = call i32 @openWr(i8* %60)\n  br label %$12\n$12:\n  %63 = phi i64 [%49, %$10], [%56, %$11] ; # Exe\n  %64 = phi i64 [%50, %$10], [%57, %$11] ; # X\n  %65 = phi i8* [%51, %$10], [%58, %$11] ; # Ct\n  %66 = phi i64 [%52, %$10], [%59, %$11] ; # Nm\n  %67 = phi i8* [%53, %$10], [%60, %$11] ; # S\n  %68 = phi i1 [%54, %$10], [%61, %$11] ; # Flg\n  %69 = phi i32 [%55, %$10], [%62, %$11] ; # ->\n; # (lt0 (if Flg (openWrAppend S) (openWr S)))\n  %70 = icmp slt i32 %69, 0\n  br i1 %70, label %$13, label %$14\n$13:\n  %71 = phi i64 [%63, %$12] ; # Exe\n  %72 = phi i64 [%64, %$12] ; # X\n  %73 = phi i8* [%65, %$12] ; # Ct\n  %74 = phi i64 [%66, %$12] ; # Nm\n  %75 = phi i8* [%67, %$12] ; # S\n  %76 = phi i1 [%68, %$12] ; # Flg\n; # (unless (== (gErrno) EINTR) (openErr Exe X))\n; # (gErrno)\n  %77 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %78 = icmp eq i32 %77, 2\n  br i1 %78, label %$16, label %$15\n$15:\n  %79 = phi i64 [%71, %$13] ; # Exe\n  %80 = phi i64 [%72, %$13] ; # X\n  %81 = phi i8* [%73, %$13] ; # Ct\n  %82 = phi i64 [%74, %$13] ; # Nm\n  %83 = phi i8* [%75, %$13] ; # S\n  %84 = phi i1 [%76, %$13] ; # Flg\n; # (openErr Exe X)\n  call void @openErr(i64 %79, i64 %80)\n  unreachable\n$16:\n  %85 = phi i64 [%71, %$13] ; # Exe\n  %86 = phi i64 [%72, %$13] ; # X\n  %87 = phi i8* [%73, %$13] ; # Ct\n  %88 = phi i64 [%74, %$13] ; # Nm\n  %89 = phi i8* [%75, %$13] ; # S\n  %90 = phi i1 [%76, %$13] ; # Flg\n; # (sigChk Exe)\n  %91 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %92 = icmp ne i32 %91, 0\n  br i1 %92, label %$17, label %$18\n$17:\n  %93 = phi i64 [%85, %$16] ; # Exe\n  call void @sighandler(i64 %93)\n  br label %$18\n$18:\n  %94 = phi i64 [%85, %$16], [%93, %$17] ; # Exe\n  br label %$9\n$14:\n  %95 = phi i64 [%63, %$12] ; # Exe\n  %96 = phi i64 [%64, %$12] ; # X\n  %97 = phi i8* [%65, %$12] ; # Ct\n  %98 = phi i64 [%66, %$12] ; # Nm\n  %99 = phi i8* [%67, %$12] ; # S\n  %100 = phi i1 [%68, %$12] ; # Flg\n; # (closeOnExec Exe @)\n  call void @closeOnExec(i64 %95, i32 %69)\n  br label %$6\n$6:\n  %101 = phi i64 [%14, %$4], [%95, %$14] ; # Exe\n  %102 = phi i64 [%15, %$4], [%96, %$14] ; # X\n  %103 = phi i8* [%16, %$4], [%97, %$14] ; # Ct\n  %104 = phi i32 [%20, %$4], [%69, %$14] ; # ->\n; # (dup2 Fd 2)\n  %105 = call i32 @dup2(i32 %104, i32 2)\n; # (close Fd)\n  %106 = call i32 @close(i32 %104)\n; # (pushErrFile Ct)\n  call void @pushErrFile(i8* %103)\n  ret void\n}\n\ndefine void @ctOpen(i64, i64, i8*) align 8 {\n$1:\n; # (let Ct: (ctFrame Ct) (cond ((nil? (needSymb Exe X)) (Ct: fd -1) ...\n; # (cond ((nil? (needSymb Exe X)) (Ct: fd -1) (rdLockWait (currFd Ex...\n; # (needSymb Exe X)\n  %3 = xor i64 %1, 8\n  %4 = and i64 %3, 14\n  %5 = icmp eq i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$3:\n  %6 = phi i64 [%1, %$1] ; # X\n  %7 = phi i64 [%0, %$1] ; # Exe\n  call void @symErr(i64 %7, i64 %6)\n  unreachable\n$4:\n  %8 = phi i64 [%1, %$1] ; # X\n  %9 = phi i64 [%0, %$1] ; # Exe\n; # (nil? (needSymb Exe X))\n  %10 = icmp eq i64 %8, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %10, label %$6, label %$5\n$6:\n  %11 = phi i64 [%0, %$4] ; # Exe\n  %12 = phi i64 [%1, %$4] ; # X\n  %13 = phi i8* [%2, %$4] ; # Ct\n; # (Ct: fd -1)\n  %14 = getelementptr i8, i8* %2, i32 8\n  %15 = bitcast i8* %14 to i32*\n  store i32 -1, i32* %15\n; # (currFd Exe)\n  %16 = call i32 @currFd(i64 %11)\n; # (rdLockWait (currFd Exe) 0)\n  call void @rdLockWait(i32 %16, i64 0)\n  br label %$2\n$5:\n  %17 = phi i64 [%0, %$4] ; # Exe\n  %18 = phi i64 [%1, %$4] ; # X\n  %19 = phi i8* [%2, %$4] ; # Ct\n; # (t? X)\n  %20 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %20, label %$8, label %$7\n$8:\n  %21 = phi i64 [%17, %$5] ; # Exe\n  %22 = phi i64 [%18, %$5] ; # X\n  %23 = phi i8* [%19, %$5] ; # Ct\n; # (Ct: fd -1)\n  %24 = getelementptr i8, i8* %2, i32 8\n  %25 = bitcast i8* %24 to i32*\n  store i32 -1, i32* %25\n; # (currFd Exe)\n  %26 = call i32 @currFd(i64 %21)\n; # (wrLockWait (currFd Exe) 0)\n  call void @wrLockWait(i32 %26, i64 0)\n  br label %$2\n$7:\n  %27 = phi i64 [%17, %$5] ; # Exe\n  %28 = phi i64 [%18, %$5] ; # X\n  %29 = phi i8* [%19, %$5] ; # Ct\n; # (let (Nm (xName X) S (pathString Nm (b8 (pathSize Nm))) Flg (== (...\n; # (xName X)\n  %30 = call i64 @xName(i64 %28)\n; # (pathSize Nm)\n  %31 = call i64 @pathSize(i64 %30)\n; # (b8 (pathSize Nm))\n  %32 = alloca i8, i64 %31\n; # (pathString Nm (b8 (pathSize Nm)))\n  %33 = call i8* @pathString(i64 %30, i8* %32)\n; # (val S)\n  %34 = load i8, i8* %33\n; # (== (val S) (char \"+\"))\n  %35 = icmp eq i8 %34, 43\n; # (when Flg (setq S (ofs S 1)))\n  br i1 %35, label %$9, label %$10\n$9:\n  %36 = phi i64 [%27, %$7] ; # Exe\n  %37 = phi i64 [%28, %$7] ; # X\n  %38 = phi i8* [%29, %$7] ; # Ct\n  %39 = phi i64 [%30, %$7] ; # Nm\n  %40 = phi i8* [%33, %$7] ; # S\n  %41 = phi i1 [%35, %$7] ; # Flg\n; # (ofs S 1)\n  %42 = getelementptr i8, i8* %40, i32 1\n  br label %$10\n$10:\n  %43 = phi i64 [%27, %$7], [%36, %$9] ; # Exe\n  %44 = phi i64 [%28, %$7], [%37, %$9] ; # X\n  %45 = phi i8* [%29, %$7], [%38, %$9] ; # Ct\n  %46 = phi i64 [%30, %$7], [%39, %$9] ; # Nm\n  %47 = phi i8* [%33, %$7], [%42, %$9] ; # S\n  %48 = phi i1 [%35, %$7], [%41, %$9] ; # Flg\n; # (while (lt0 (openRdWrCreate S)) (unless (== (gErrno) EINTR) (open...\n  br label %$11\n$11:\n  %49 = phi i64 [%43, %$10], [%71, %$17] ; # Exe\n  %50 = phi i64 [%44, %$10], [%72, %$17] ; # X\n  %51 = phi i8* [%45, %$10], [%73, %$17] ; # Ct\n  %52 = phi i64 [%46, %$10], [%74, %$17] ; # Nm\n  %53 = phi i8* [%47, %$10], [%75, %$17] ; # S\n  %54 = phi i1 [%48, %$10], [%76, %$17] ; # Flg\n; # (openRdWrCreate S)\n  %55 = call i32 @openRdWrCreate(i8* %53)\n; # (lt0 (openRdWrCreate S))\n  %56 = icmp slt i32 %55, 0\n  br i1 %56, label %$12, label %$13\n$12:\n  %57 = phi i64 [%49, %$11] ; # Exe\n  %58 = phi i64 [%50, %$11] ; # X\n  %59 = phi i8* [%51, %$11] ; # Ct\n  %60 = phi i64 [%52, %$11] ; # Nm\n  %61 = phi i8* [%53, %$11] ; # S\n  %62 = phi i1 [%54, %$11] ; # Flg\n; # (unless (== (gErrno) EINTR) (openErr Exe X))\n; # (gErrno)\n  %63 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %64 = icmp eq i32 %63, 2\n  br i1 %64, label %$15, label %$14\n$14:\n  %65 = phi i64 [%57, %$12] ; # Exe\n  %66 = phi i64 [%58, %$12] ; # X\n  %67 = phi i8* [%59, %$12] ; # Ct\n  %68 = phi i64 [%60, %$12] ; # Nm\n  %69 = phi i8* [%61, %$12] ; # S\n  %70 = phi i1 [%62, %$12] ; # Flg\n; # (openErr Exe X)\n  call void @openErr(i64 %65, i64 %66)\n  unreachable\n$15:\n  %71 = phi i64 [%57, %$12] ; # Exe\n  %72 = phi i64 [%58, %$12] ; # X\n  %73 = phi i8* [%59, %$12] ; # Ct\n  %74 = phi i64 [%60, %$12] ; # Nm\n  %75 = phi i8* [%61, %$12] ; # S\n  %76 = phi i1 [%62, %$12] ; # Flg\n; # (sigChk Exe)\n  %77 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %78 = icmp ne i32 %77, 0\n  br i1 %78, label %$16, label %$17\n$16:\n  %79 = phi i64 [%71, %$15] ; # Exe\n  call void @sighandler(i64 %79)\n  br label %$17\n$17:\n  %80 = phi i64 [%71, %$15], [%79, %$16] ; # Exe\n  br label %$11\n$13:\n  %81 = phi i64 [%49, %$11] ; # Exe\n  %82 = phi i64 [%50, %$11] ; # X\n  %83 = phi i8* [%51, %$11] ; # Ct\n  %84 = phi i64 [%52, %$11] ; # Nm\n  %85 = phi i8* [%53, %$11] ; # S\n  %86 = phi i1 [%54, %$11] ; # Flg\n; # (let Fd (Ct: fd @) (if Flg (rdLockWait Fd 0) (wrLockWait Fd 0)) (...\n; # (Ct: fd @)\n  %87 = getelementptr i8, i8* %2, i32 8\n  %88 = bitcast i8* %87 to i32*\n  store i32 %55, i32* %88\n; # (if Flg (rdLockWait Fd 0) (wrLockWait Fd 0))\n  br i1 %86, label %$18, label %$19\n$18:\n  %89 = phi i64 [%81, %$13] ; # Exe\n  %90 = phi i64 [%82, %$13] ; # X\n  %91 = phi i8* [%83, %$13] ; # Ct\n  %92 = phi i64 [%84, %$13] ; # Nm\n  %93 = phi i8* [%85, %$13] ; # S\n  %94 = phi i1 [%86, %$13] ; # Flg\n  %95 = phi i32 [%55, %$13] ; # Fd\n; # (rdLockWait Fd 0)\n  call void @rdLockWait(i32 %95, i64 0)\n  br label %$20\n$19:\n  %96 = phi i64 [%81, %$13] ; # Exe\n  %97 = phi i64 [%82, %$13] ; # X\n  %98 = phi i8* [%83, %$13] ; # Ct\n  %99 = phi i64 [%84, %$13] ; # Nm\n  %100 = phi i8* [%85, %$13] ; # S\n  %101 = phi i1 [%86, %$13] ; # Flg\n  %102 = phi i32 [%55, %$13] ; # Fd\n; # (wrLockWait Fd 0)\n  call void @wrLockWait(i32 %102, i64 0)\n  br label %$20\n$20:\n  %103 = phi i64 [%89, %$18], [%96, %$19] ; # Exe\n  %104 = phi i64 [%90, %$18], [%97, %$19] ; # X\n  %105 = phi i8* [%91, %$18], [%98, %$19] ; # Ct\n  %106 = phi i64 [%92, %$18], [%99, %$19] ; # Nm\n  %107 = phi i8* [%93, %$18], [%100, %$19] ; # S\n  %108 = phi i1 [%94, %$18], [%101, %$19] ; # Flg\n  %109 = phi i32 [%95, %$18], [%102, %$19] ; # Fd\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %103, i32 %109)\n  br label %$2\n$2:\n  %110 = phi i64 [%11, %$6], [%21, %$8], [%103, %$20] ; # Exe\n  %111 = phi i64 [%12, %$6], [%22, %$8], [%104, %$20] ; # X\n  %112 = phi i8* [%13, %$6], [%23, %$8], [%105, %$20] ; # Ct\n; # (pushCtlFile Ct)\n  call void @pushCtlFile(i8* %112)\n  ret void\n}\n\ndefine i32 @rlGetc(i8*) align 8 {\n$1:\n; # (if (waitFd 0 0 292MY) (stdinByte) -1)\n; # (waitFd 0 0 292MY)\n  %1 = call i64 @waitFd(i64 0, i32 0, i64 9223372036854775807)\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i8* [%0, %$1] ; # F\n; # (stdinByte)\n  %4 = call i32 @stdinByte()\n  br label %$4\n$3:\n  %5 = phi i8* [%0, %$1] ; # F\n  br label %$4\n$4:\n  %6 = phi i8* [%3, %$2], [%5, %$3] ; # F\n  %7 = phi i32 [%4, %$2], [-1, %$3] ; # ->\n  ret i32 %7\n}\n\ndefine i32 @rlAvail() align 8 {\n$1:\n; # (waitFd 0 0 60)\n  %0 = call i64 @waitFd(i64 0, i32 0, i64 60)\n; # (i32 (waitFd 0 0 60))\n  %1 = trunc i64 %0 to i32\n  ret i32 %1\n}\n\ndefine i32 @_getStdin() align 8 {\n$1:\n; # (let In: (inFile (val $InFile)) (set $Chr (cond ((lt0 (In: fd)) -...\n; # (val $InFile)\n  %0 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (set $Chr (cond ((lt0 (In: fd)) -1) ((or (In: fd) (not (In: tty))...\n; # (cond ((lt0 (In: fd)) -1) ((or (In: fd) (not (In: tty))) (if (and...\n; # (In: fd)\n  %1 = getelementptr i8, i8* %0, i32 8\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (lt0 (In: fd))\n  %4 = icmp slt i32 %3, 0\n  br i1 %4, label %$4, label %$3\n$4:\n  br label %$2\n$3:\n; # (or (In: fd) (not (In: tty)))\n; # (In: fd)\n  %5 = getelementptr i8, i8* %0, i32 8\n  %6 = bitcast i8* %5 to i32*\n  %7 = load i32, i32* %6\n  %8 = icmp ne i32 %7, 0\n  br i1 %8, label %$5, label %$6\n$6:\n; # (In: tty)\n  %9 = getelementptr i8, i8* %0, i32 4128\n  %10 = bitcast i8* %9 to i1*\n  %11 = load i1, i1* %10\n; # (not (In: tty))\n  %12 = icmp eq i1 %11, 0\n  br label %$5\n$5:\n  %13 = phi i1 [1, %$3], [%12, %$6] ; # ->\n  br i1 %13, label %$8, label %$7\n$8:\n; # (if (and (== (In: ix) (In: cnt)) (or (lt0 (In: ix)) (=0 (slow (In...\n; # (and (== (In: ix) (In: cnt)) (or (lt0 (In: ix)) (=0 (slow (In:)))...\n; # (In: ix)\n  %14 = getelementptr i8, i8* %0, i32 24\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n; # (In: cnt)\n  %17 = getelementptr i8, i8* %0, i32 28\n  %18 = bitcast i8* %17 to i32*\n  %19 = load i32, i32* %18\n; # (== (In: ix) (In: cnt))\n  %20 = icmp eq i32 %16, %19\n  br i1 %20, label %$10, label %$9\n$10:\n; # (or (lt0 (In: ix)) (=0 (slow (In:))))\n; # (In: ix)\n  %21 = getelementptr i8, i8* %0, i32 24\n  %22 = bitcast i8* %21 to i32*\n  %23 = load i32, i32* %22\n; # (lt0 (In: ix))\n  %24 = icmp slt i32 %23, 0\n  br i1 %24, label %$11, label %$12\n$12:\n; # (In:)\n; # (slow (In:))\n  %25 = call i32 @slow(i8* %0)\n; # (=0 (slow (In:)))\n  %26 = icmp eq i32 %25, 0\n  br label %$11\n$11:\n  %27 = phi i1 [1, %$10], [%26, %$12] ; # ->\n  br label %$9\n$9:\n  %28 = phi i1 [0, %$8], [%27, %$11] ; # ->\n  br i1 %28, label %$13, label %$14\n$13:\n  br label %$15\n$14:\n; # (let I (In: ix) (prog1 (i32 (val (ofs (In: (buf)) I))) (when (== ...\n; # (In: ix)\n  %29 = getelementptr i8, i8* %0, i32 24\n  %30 = bitcast i8* %29 to i32*\n  %31 = load i32, i32* %30\n; # (prog1 (i32 (val (ofs (In: (buf)) I))) (when (== @ (char \"^J\")) (...\n; # (In: (buf))\n  %32 = getelementptr i8, i8* %0, i32 32\n; # (ofs (In: (buf)) I)\n  %33 = getelementptr i8, i8* %32, i32 %31\n; # (val (ofs (In: (buf)) I))\n  %34 = load i8, i8* %33\n; # (i32 (val (ofs (In: (buf)) I)))\n  %35 = zext i8 %34 to i32\n; # (when (== @ (char \"^J\")) (In: line (+ (In: line) 1)))\n; # (== @ (char \"^J\"))\n  %36 = icmp eq i32 %35, 10\n  br i1 %36, label %$16, label %$17\n$16:\n  %37 = phi i32 [%31, %$14] ; # I\n; # (In: line (+ (In: line) 1))\n  %38 = getelementptr i8, i8* %0, i32 16\n  %39 = bitcast i8* %38 to i32*\n  %40 = getelementptr i8, i8* %0, i32 16\n  %41 = bitcast i8* %40 to i32*\n  %42 = load i32, i32* %41\n  %43 = add i32 %42, 1\n  store i32 %43, i32* %39\n  br label %$17\n$17:\n  %44 = phi i32 [%31, %$14], [%37, %$16] ; # I\n; # (In: ix (+ I 1))\n  %45 = getelementptr i8, i8* %0, i32 24\n  %46 = bitcast i8* %45 to i32*\n  %47 = add i32 %44, 1\n  store i32 %47, i32* %46\n  br label %$15\n$15:\n  %48 = phi i32 [-1, %$13], [%35, %$17] ; # ->\n  br label %$2\n$7:\n; # (let P (val $LinePtr) (unless P (when (val $LineBuf) (free @) (se...\n; # (val $LinePtr)\n  %49 = load i8*, i8** @$LinePtr\n; # (unless P (when (val $LineBuf) (free @) (set $LineBuf null)) (flu...\n  %50 = icmp ne i8* %49, null\n  br i1 %50, label %$19, label %$18\n$18:\n  %51 = phi i8* [%49, %$7] ; # P\n; # (when (val $LineBuf) (free @) (set $LineBuf null))\n; # (val $LineBuf)\n  %52 = load i8*, i8** @$LineBuf\n  %53 = icmp ne i8* %52, null\n  br i1 %53, label %$20, label %$21\n$20:\n  %54 = phi i8* [%51, %$18] ; # P\n; # (free @)\n  call void @free(i8* %52)\n; # (set $LineBuf null)\n  store i8* null, i8** @$LineBuf\n  br label %$21\n$21:\n  %55 = phi i8* [%51, %$18], [%54, %$20] ; # P\n; # (flushAll)\n  call void @flushAll()\n; # (unless (setq P (set $LineBuf (gReadline (val $LinePrmt)))) (wrnl...\n; # (set $LineBuf (gReadline (val $LinePrmt)))\n; # (val $LinePrmt)\n  %56 = load i8*, i8** @$LinePrmt\n; # (gReadline (val $LinePrmt))\n  %57 = call i8* @gReadline(i8* %56)\n  store i8* %57, i8** @$LineBuf\n  %58 = icmp ne i8* %57, null\n  br i1 %58, label %$23, label %$22\n$22:\n  %59 = phi i8* [%57, %$21] ; # P\n; # (wrnl)\n  %60 = call i64 @wrnl()\n; # (when (or (val $Bind) (== (val $LinePrmt) (val $ContPrmt))) (err ...\n; # (or (val $Bind) (== (val $LinePrmt) (val $ContPrmt)))\n; # (val $Bind)\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %62 = load i64, i64* %61\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$24, label %$25\n$25:\n  %64 = phi i8* [%59, %$22] ; # P\n; # (val $LinePrmt)\n  %65 = load i8*, i8** @$LinePrmt\n; # (val $ContPrmt)\n  %66 = load i8*, i8** @$ContPrmt\n; # (== (val $LinePrmt) (val $ContPrmt))\n  %67 = icmp eq i8* %65, %66\n  br label %$24\n$24:\n  %68 = phi i8* [%59, %$22], [%64, %$25] ; # P\n  %69 = phi i1 [1, %$22], [%67, %$25] ; # ->\n  br i1 %69, label %$26, label %$27\n$26:\n  %70 = phi i8* [%68, %$24] ; # P\n; # (err 0 0 $Empty null)\n  call void @err(i64 0, i64 0, i8* bitcast ([1 x i8]* @$Empty to i8*), i8* null)\n  unreachable\n$27:\n  %71 = phi i8* [%68, %$24] ; # P\n; # (bye 0)\n  call void @bye(i32 0)\n  unreachable\n$23:\n  %72 = phi i8* [%57, %$21] ; # P\n; # (set $LinePrmt (val $ContPrmt))\n; # (val $ContPrmt)\n  %73 = load i8*, i8** @$ContPrmt\n  store i8* %73, i8** @$LinePrmt\n; # (unless (or (=0 (val P)) (== @ 32) (and (== @ (char \".\")) (=0 (va...\n; # (or (=0 (val P)) (== @ 32) (and (== @ (char \".\")) (=0 (val (inc P...\n; # (val P)\n  %74 = load i8, i8* %72\n; # (=0 (val P))\n  %75 = icmp eq i8 %74, 0\n  br i1 %75, label %$28, label %$29\n$29:\n  %76 = phi i8* [%72, %$23] ; # P\n; # (== @ 32)\n  %77 = icmp eq i8 %74, 32\n  br i1 %77, label %$28, label %$30\n$30:\n  %78 = phi i8* [%76, %$29] ; # P\n; # (and (== @ (char \".\")) (=0 (val (inc P))))\n; # (== @ (char \".\"))\n  %79 = icmp eq i8 %74, 46\n  br i1 %79, label %$32, label %$31\n$32:\n  %80 = phi i8* [%78, %$30] ; # P\n; # (inc P)\n  %81 = getelementptr i8, i8* %80, i32 1\n; # (val (inc P))\n  %82 = load i8, i8* %81\n; # (=0 (val (inc P)))\n  %83 = icmp eq i8 %82, 0\n  br label %$31\n$31:\n  %84 = phi i8* [%78, %$30], [%80, %$32] ; # P\n  %85 = phi i1 [0, %$30], [%83, %$32] ; # ->\n  br i1 %85, label %$28, label %$33\n$33:\n  %86 = phi i8* [%84, %$31] ; # P\n; # (and (currentLine) (=0 (strcmp @ P)))\n; # (currentLine)\n  %87 = call i8* @currentLine()\n  %88 = icmp ne i8* %87, null\n  br i1 %88, label %$35, label %$34\n$35:\n  %89 = phi i8* [%86, %$33] ; # P\n; # (strcmp @ P)\n  %90 = call i32 @strcmp(i8* %87, i8* %89)\n; # (=0 (strcmp @ P))\n  %91 = icmp eq i32 %90, 0\n  br label %$34\n$34:\n  %92 = phi i8* [%86, %$33], [%89, %$35] ; # P\n  %93 = phi i1 [0, %$33], [%91, %$35] ; # ->\n  br label %$28\n$28:\n  %94 = phi i8* [%72, %$23], [%76, %$29], [%84, %$31], [%92, %$34] ; # P\n  %95 = phi i1 [1, %$23], [1, %$29], [1, %$31], [%93, %$34] ; # ->\n  br i1 %95, label %$37, label %$36\n$36:\n  %96 = phi i8* [%94, %$28] ; # P\n; # (add_history P)\n  call void @add_history(i8* %96)\n  br label %$37\n$37:\n  %97 = phi i8* [%94, %$28], [%96, %$36] ; # P\n  br label %$19\n$19:\n  %98 = phi i8* [%49, %$7], [%97, %$37] ; # P\n; # (nond ((val P) (set $LinePtr null) (char \"^J\")) (NIL (set $LinePt...\n; # (val P)\n  %99 = load i8, i8* %98\n  %100 = icmp ne i8 %99, 0\n  br i1 %100, label %$39, label %$40\n$40:\n  %101 = phi i8* [%98, %$19] ; # P\n; # (set $LinePtr null)\n  store i8* null, i8** @$LinePtr\n  br label %$38\n$39:\n  %102 = phi i8* [%98, %$19] ; # P\n; # (set $LinePtr (inc P))\n; # (inc P)\n  %103 = getelementptr i8, i8* %102, i32 1\n  store i8* %103, i8** @$LinePtr\n; # (i32 @)\n  %104 = zext i8 %99 to i32\n  br label %$38\n$38:\n  %105 = phi i8* [%101, %$40], [%102, %$39] ; # P\n  %106 = phi i32 [10, %$40], [%104, %$39] ; # ->\n  br label %$2\n$2:\n  %107 = phi i32 [-1, %$4], [%48, %$15], [%106, %$38] ; # ->\n  store i32 %107, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  ret i32 %107\n}\n\ndefine i32 @getChar(i32) align 8 {\n$1:\n; # (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)) (T (let B (ifn...\n; # (>= 127 C)\n  %1 = icmp sge i32 127, %0\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i32 [%0, %$1] ; # C\n  br label %$2\n$3:\n  %3 = phi i32 [%0, %$1] ; # C\n; # (== C (hex \"FF\"))\n  %4 = icmp eq i32 %3, 255\n  br i1 %4, label %$6, label %$5\n$6:\n  %5 = phi i32 [%3, %$3] ; # C\n; # (i32 TOP)\n  br label %$2\n$5:\n  %6 = phi i32 [%3, %$3] ; # C\n; # (let B (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (let A (ifn (& C (h...\n; # (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (let A (ifn (& C (hex \"10\"...\n; # (& C (hex \"20\"))\n  %7 = and i32 %6, 32\n  %8 = icmp ne i32 %7, 0\n  br i1 %8, label %$8, label %$7\n$7:\n  %9 = phi i32 [%6, %$5] ; # C\n; # (& C (hex \"1F\"))\n  %10 = and i32 %9, 31\n  br label %$9\n$8:\n  %11 = phi i32 [%6, %$5] ; # C\n; # (let A (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C 7) 6) ...\n; # (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C 7) 6) (& (cal...\n; # (& C (hex \"10\"))\n  %12 = and i32 %11, 16\n  %13 = icmp ne i32 %12, 0\n  br i1 %13, label %$11, label %$10\n$10:\n  %14 = phi i32 [%11, %$8] ; # C\n; # (& C (hex \"0F\"))\n  %15 = and i32 %14, 15\n  br label %$12\n$11:\n  %16 = phi i32 [%11, %$8] ; # C\n; # (& C 7)\n  %17 = and i32 %16, 7\n; # (shl (& C 7) 6)\n  %18 = shl i32 %17, 6\n; # (call $Get)\n  %19 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %20 = call i32 %19()\n; # (& (call $Get) (hex \"3F\"))\n  %21 = and i32 %20, 63\n; # (| (shl (& C 7) 6) (& (call $Get) (hex \"3F\")))\n  %22 = or i32 %18, %21\n  br label %$12\n$12:\n  %23 = phi i32 [%14, %$10], [%16, %$11] ; # C\n  %24 = phi i32 [%15, %$10], [%22, %$11] ; # ->\n; # (shl A 6)\n  %25 = shl i32 %24, 6\n; # (call $Get)\n  %26 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %27 = call i32 %26()\n; # (& (call $Get) (hex \"3F\"))\n  %28 = and i32 %27, 63\n; # (| (shl A 6) (& (call $Get) (hex \"3F\")))\n  %29 = or i32 %25, %28\n  br label %$9\n$9:\n  %30 = phi i32 [%9, %$7], [%23, %$12] ; # C\n  %31 = phi i32 [%10, %$7], [%29, %$12] ; # ->\n; # (shl B 6)\n  %32 = shl i32 %31, 6\n; # (call $Get)\n  %33 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %34 = call i32 %33()\n; # (& (call $Get) (hex \"3F\"))\n  %35 = and i32 %34, 63\n; # (| (shl B 6) (& (call $Get) (hex \"3F\")))\n  %36 = or i32 %32, %35\n  br label %$2\n$2:\n  %37 = phi i32 [%2, %$4], [%5, %$6], [%30, %$9] ; # C\n  %38 = phi i32 [%2, %$4], [1114112, %$6], [%36, %$9] ; # ->\n  ret i32 %38\n}\n\ndefine i32 @skipc(i32) align 8 {\n$1:\n; # (let Chr (val $Chr) (loop (while (>= 32 Chr) (when (lt0 (setq Chr...\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (loop (while (>= 32 Chr) (when (lt0 (setq Chr (call $Get))) (ret ...\n  br label %$2\n$2:\n  %2 = phi i32 [%0, %$1], [%35, %$12] ; # C\n  %3 = phi i32 [%1, %$1], [%38, %$12] ; # Chr\n; # (while (>= 32 Chr) (when (lt0 (setq Chr (call $Get))) (ret Chr)))...\n  br label %$3\n$3:\n  %4 = phi i32 [%2, %$2], [%14, %$7] ; # C\n  %5 = phi i32 [%3, %$2], [%15, %$7] ; # Chr\n; # (>= 32 Chr)\n  %6 = icmp sge i32 32, %5\n  br i1 %6, label %$4, label %$5\n$4:\n  %7 = phi i32 [%4, %$3] ; # C\n  %8 = phi i32 [%5, %$3] ; # Chr\n; # (when (lt0 (setq Chr (call $Get))) (ret Chr))\n; # (call $Get)\n  %9 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %10 = call i32 %9()\n; # (lt0 (setq Chr (call $Get)))\n  %11 = icmp slt i32 %10, 0\n  br i1 %11, label %$6, label %$7\n$6:\n  %12 = phi i32 [%7, %$4] ; # C\n  %13 = phi i32 [%10, %$4] ; # Chr\n; # (ret Chr)\n  ret i32 %13\n$7:\n  %14 = phi i32 [%7, %$4] ; # C\n  %15 = phi i32 [%10, %$4] ; # Chr\n  br label %$3\n$5:\n  %16 = phi i32 [%4, %$3] ; # C\n  %17 = phi i32 [%5, %$3] ; # Chr\n; # (unless (== Chr C) (ret Chr))\n; # (== Chr C)\n  %18 = icmp eq i32 %17, %16\n  br i1 %18, label %$9, label %$8\n$8:\n  %19 = phi i32 [%16, %$5] ; # C\n  %20 = phi i32 [%17, %$5] ; # Chr\n; # (ret Chr)\n  ret i32 %20\n$9:\n  %21 = phi i32 [%16, %$5] ; # C\n  %22 = phi i32 [%17, %$5] ; # Chr\n; # (until (== (setq Chr (call $Get)) (char \"^J\")) (when (lt0 Chr) (r...\n  br label %$10\n$10:\n  %23 = phi i32 [%21, %$9], [%33, %$14] ; # C\n  %24 = phi i32 [%22, %$9], [%34, %$14] ; # Chr\n; # (call $Get)\n  %25 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %26 = call i32 %25()\n; # (== (setq Chr (call $Get)) (char \"^J\"))\n  %27 = icmp eq i32 %26, 10\n  br i1 %27, label %$12, label %$11\n$11:\n  %28 = phi i32 [%23, %$10] ; # C\n  %29 = phi i32 [%26, %$10] ; # Chr\n; # (when (lt0 Chr) (ret Chr))\n; # (lt0 Chr)\n  %30 = icmp slt i32 %29, 0\n  br i1 %30, label %$13, label %$14\n$13:\n  %31 = phi i32 [%28, %$11] ; # C\n  %32 = phi i32 [%29, %$11] ; # Chr\n; # (ret Chr)\n  ret i32 %32\n$14:\n  %33 = phi i32 [%28, %$11] ; # C\n  %34 = phi i32 [%29, %$11] ; # Chr\n  br label %$10\n$12:\n  %35 = phi i32 [%23, %$10] ; # C\n  %36 = phi i32 [%26, %$10] ; # Chr\n; # (call $Get)\n  %37 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %38 = call i32 %37()\n  br label %$2\n}\n\ndefine void @comment() align 8 {\n$1:\n; # (let Chr (call $Get) (if (== Chr (char \"{\")) (let N 0 (loop (? (l...\n; # (call $Get)\n  %0 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %1 = call i32 %0()\n; # (if (== Chr (char \"{\")) (let N 0 (loop (? (lt0 (setq Chr (call $G...\n; # (== Chr (char \"{\"))\n  %2 = icmp eq i32 %1, 123\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%1, %$1] ; # Chr\n; # (let N 0 (loop (? (lt0 (setq Chr (call $Get)))) (if (and (== Chr ...\n; # (loop (? (lt0 (setq Chr (call $Get)))) (if (and (== Chr (char \"#\"...\n  br label %$5\n$5:\n  %4 = phi i32 [%3, %$2], [%40, %$12] ; # Chr\n  %5 = phi i64 [0, %$2], [%41, %$12] ; # N\n; # (? (lt0 (setq Chr (call $Get))))\n; # (call $Get)\n  %6 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %7 = call i32 %6()\n; # (lt0 (setq Chr (call $Get)))\n  %8 = icmp slt i32 %7, 0\n  br i1 %8, label %$7, label %$6\n$6:\n  %9 = phi i32 [%7, %$5] ; # Chr\n  %10 = phi i64 [%5, %$5] ; # N\n; # (if (and (== Chr (char \"#\")) (== (setq Chr (call $Get)) (char \"{\"...\n; # (and (== Chr (char \"#\")) (== (setq Chr (call $Get)) (char \"{\")))\n; # (== Chr (char \"#\"))\n  %11 = icmp eq i32 %9, 35\n  br i1 %11, label %$9, label %$8\n$9:\n  %12 = phi i32 [%9, %$6] ; # Chr\n  %13 = phi i64 [%10, %$6] ; # N\n; # (call $Get)\n  %14 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %15 = call i32 %14()\n; # (== (setq Chr (call $Get)) (char \"{\"))\n  %16 = icmp eq i32 %15, 123\n  br label %$8\n$8:\n  %17 = phi i32 [%9, %$6], [%15, %$9] ; # Chr\n  %18 = phi i64 [%10, %$6], [%13, %$9] ; # N\n  %19 = phi i1 [0, %$6], [%16, %$9] ; # ->\n  br i1 %19, label %$10, label %$11\n$10:\n  %20 = phi i32 [%17, %$8] ; # Chr\n  %21 = phi i64 [%18, %$8] ; # N\n; # (inc 'N)\n  %22 = add i64 %21, 1\n  br label %$12\n$11:\n  %23 = phi i32 [%17, %$8] ; # Chr\n  %24 = phi i64 [%18, %$8] ; # N\n; # (? (and (== Chr (char \"}\")) (== (setq Chr (call $Get)) (char \"#\")...\n; # (and (== Chr (char \"}\")) (== (setq Chr (call $Get)) (char \"#\")) (...\n; # (== Chr (char \"}\"))\n  %25 = icmp eq i32 %23, 125\n  br i1 %25, label %$14, label %$13\n$14:\n  %26 = phi i32 [%23, %$11] ; # Chr\n  %27 = phi i64 [%24, %$11] ; # N\n; # (call $Get)\n  %28 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %29 = call i32 %28()\n; # (== (setq Chr (call $Get)) (char \"#\"))\n  %30 = icmp eq i32 %29, 35\n  br i1 %30, label %$15, label %$13\n$15:\n  %31 = phi i32 [%29, %$14] ; # Chr\n  %32 = phi i64 [%27, %$14] ; # N\n; # (dec 'N)\n  %33 = sub i64 %32, 1\n; # (lt0 (dec 'N))\n  %34 = icmp slt i64 %33, 0\n  br label %$13\n$13:\n  %35 = phi i32 [%23, %$11], [%29, %$14], [%31, %$15] ; # Chr\n  %36 = phi i64 [%24, %$11], [%27, %$14], [%33, %$15] ; # N\n  %37 = phi i1 [0, %$11], [0, %$14], [%34, %$15] ; # ->\n  br i1 %37, label %$7, label %$16\n$16:\n  %38 = phi i32 [%35, %$13] ; # Chr\n  %39 = phi i64 [%36, %$13] ; # N\n  br label %$12\n$12:\n  %40 = phi i32 [%20, %$10], [%38, %$16] ; # Chr\n  %41 = phi i64 [%22, %$10], [%39, %$16] ; # N\n  br label %$5\n$7:\n  %42 = phi i32 [%7, %$5], [%35, %$13] ; # Chr\n  %43 = phi i64 [%5, %$5], [%36, %$13] ; # N\n  %44 = phi i64 [0, %$5], [0, %$13] ; # ->\n  br label %$4\n$3:\n  %45 = phi i32 [%1, %$1] ; # Chr\n; # (until (== Chr (char \"^J\")) (? (lt0 Chr)) (setq Chr (call $Get)))...\n  br label %$17\n$17:\n  %46 = phi i32 [%45, %$3], [%52, %$20] ; # Chr\n; # (== Chr (char \"^J\"))\n  %47 = icmp eq i32 %46, 10\n  br i1 %47, label %$19, label %$18\n$18:\n  %48 = phi i32 [%46, %$17] ; # Chr\n; # (? (lt0 Chr))\n; # (lt0 Chr)\n  %49 = icmp slt i32 %48, 0\n  br i1 %49, label %$19, label %$20\n$20:\n  %50 = phi i32 [%48, %$18] ; # Chr\n; # (call $Get)\n  %51 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %52 = call i32 %51()\n  br label %$17\n$19:\n  %53 = phi i32 [%46, %$17], [%48, %$18] ; # Chr\n  br label %$4\n$4:\n  %54 = phi i32 [%42, %$7], [%53, %$19] ; # Chr\n; # (call $Get)\n  %55 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %56 = call i32 %55()\n  ret void\n}\n\ndefine i32 @skip() align 8 {\n$1:\n; # (loop (let Chr (val $Chr) (when (lt0 Chr) (ret Chr)) (while (>= (...\n  br label %$2\n$2:\n; # (let Chr (val $Chr) (when (lt0 Chr) (ret Chr)) (while (>= (char \"...\n; # (val $Chr)\n  %0 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (when (lt0 Chr) (ret Chr))\n; # (lt0 Chr)\n  %1 = icmp slt i32 %0, 0\n  br i1 %1, label %$3, label %$4\n$3:\n  %2 = phi i32 [%0, %$2] ; # Chr\n; # (ret Chr)\n  ret i32 %2\n$4:\n  %3 = phi i32 [%0, %$2] ; # Chr\n; # (while (>= (char \" \") Chr) (when (lt0 (setq Chr (call $Get))) (re...\n  br label %$5\n$5:\n  %4 = phi i32 [%3, %$4], [%11, %$9] ; # Chr\n; # (>= (char \" \") Chr)\n  %5 = icmp sge i32 32, %4\n  br i1 %5, label %$6, label %$7\n$6:\n  %6 = phi i32 [%4, %$5] ; # Chr\n; # (when (lt0 (setq Chr (call $Get))) (ret Chr))\n; # (call $Get)\n  %7 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %8 = call i32 %7()\n; # (lt0 (setq Chr (call $Get)))\n  %9 = icmp slt i32 %8, 0\n  br i1 %9, label %$8, label %$9\n$8:\n  %10 = phi i32 [%8, %$6] ; # Chr\n; # (ret Chr)\n  ret i32 %10\n$9:\n  %11 = phi i32 [%8, %$6] ; # Chr\n  br label %$5\n$7:\n  %12 = phi i32 [%4, %$5] ; # Chr\n; # (unless (== Chr (char \"#\")) (ret Chr))\n; # (== Chr (char \"#\"))\n  %13 = icmp eq i32 %12, 35\n  br i1 %13, label %$11, label %$10\n$10:\n  %14 = phi i32 [%12, %$7] ; # Chr\n; # (ret Chr)\n  ret i32 %14\n$11:\n  %15 = phi i32 [%12, %$7] ; # Chr\n; # (comment)\n  call void @comment()\n  br label %$2\n}\n\ndefine i32 @uniChr(i32) align 8 {\n$1:\n; # (when (and (>= Chr (char \"0\")) (>= (char \"9\") Chr)) (dec 'Chr (ch...\n; # (and (>= Chr (char \"0\")) (>= (char \"9\") Chr))\n; # (>= Chr (char \"0\"))\n  %1 = icmp sge i32 %0, 48\n  br i1 %1, label %$3, label %$2\n$3:\n  %2 = phi i32 [%0, %$1] ; # Chr\n; # (>= (char \"9\") Chr)\n  %3 = icmp sge i32 57, %2\n  br label %$2\n$2:\n  %4 = phi i32 [%0, %$1], [%2, %$3] ; # Chr\n  %5 = phi i1 [0, %$1], [%3, %$3] ; # ->\n  br i1 %5, label %$4, label %$5\n$4:\n  %6 = phi i32 [%4, %$2] ; # Chr\n; # (dec 'Chr (char \"0\"))\n  %7 = sub i32 %6, 48\n; # (until (== (call $Get) (char \"\\\\\")) (unless (and (>= (val $Chr) (...\n  br label %$6\n$6:\n  %8 = phi i32 [%7, %$4], [%25, %$12] ; # Chr\n; # (call $Get)\n  %9 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %10 = call i32 %9()\n; # (== (call $Get) (char \"\\\\\"))\n  %11 = icmp eq i32 %10, 92\n  br i1 %11, label %$8, label %$7\n$7:\n  %12 = phi i32 [%8, %$6] ; # Chr\n; # (unless (and (>= (val $Chr) (char \"0\")) (>= (char \"9\") (val $Chr)...\n; # (and (>= (val $Chr) (char \"0\")) (>= (char \"9\") (val $Chr)))\n; # (val $Chr)\n  %13 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (>= (val $Chr) (char \"0\"))\n  %14 = icmp sge i32 %13, 48\n  br i1 %14, label %$10, label %$9\n$10:\n  %15 = phi i32 [%12, %$7] ; # Chr\n; # (val $Chr)\n  %16 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (>= (char \"9\") (val $Chr))\n  %17 = icmp sge i32 57, %16\n  br label %$9\n$9:\n  %18 = phi i32 [%12, %$7], [%15, %$10] ; # Chr\n  %19 = phi i1 [0, %$7], [%17, %$10] ; # ->\n  br i1 %19, label %$12, label %$11\n$11:\n  %20 = phi i32 [%18, %$9] ; # Chr\n; # (badInput)\n  call void @badInput()\n  unreachable\n$12:\n  %21 = phi i32 [%18, %$9] ; # Chr\n; # (* Chr 10)\n  %22 = mul i32 %21, 10\n; # (val $Chr)\n  %23 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (- (val $Chr) (char \"0\"))\n  %24 = sub i32 %23, 48\n; # (+ (* Chr 10) (- (val $Chr) (char \"0\")))\n  %25 = add i32 %22, %24\n  br label %$6\n$8:\n  %26 = phi i32 [%8, %$6] ; # Chr\n  br label %$5\n$5:\n  %27 = phi i32 [%4, %$2], [%26, %$8] ; # Chr\n  ret i32 %27\n}\n\ndefine i1 @testEsc(i32) align 8 {\n$1:\n; # (loop (? (lt0 Chr) NO) (? (== Chr (char \"\\^\")) (when (== (setq Ch...\n  br label %$2\n$2:\n  %1 = phi i32 [%0, %$1], [%46, %$28] ; # Chr\n; # (? (lt0 Chr) NO)\n; # (lt0 Chr)\n  %2 = icmp slt i32 %1, 0\n  br i1 %2, label %$5, label %$3\n$5:\n  %3 = phi i32 [%1, %$2] ; # Chr\n  br label %$4\n$3:\n  %4 = phi i32 [%1, %$2] ; # Chr\n; # (? (== Chr (char \"\\^\")) (when (== (setq Chr (call $Get)) (char \"@...\n; # (== Chr (char \"\\^\"))\n  %5 = icmp eq i32 %4, 94\n  br i1 %5, label %$7, label %$6\n$7:\n  %6 = phi i32 [%4, %$3] ; # Chr\n; # (when (== (setq Chr (call $Get)) (char \"@\")) (badInput))\n; # (call $Get)\n  %7 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %8 = call i32 %7()\n; # (== (setq Chr (call $Get)) (char \"@\"))\n  %9 = icmp eq i32 %8, 64\n  br i1 %9, label %$8, label %$9\n$8:\n  %10 = phi i32 [%8, %$7] ; # Chr\n; # (badInput)\n  call void @badInput()\n  unreachable\n$9:\n  %11 = phi i32 [%8, %$7] ; # Chr\n; # (set $Chr (if (== Chr (char \"?\")) 127 (& Chr (hex \"1F\"))))\n; # (if (== Chr (char \"?\")) 127 (& Chr (hex \"1F\")))\n; # (== Chr (char \"?\"))\n  %12 = icmp eq i32 %11, 63\n  br i1 %12, label %$10, label %$11\n$10:\n  %13 = phi i32 [%11, %$9] ; # Chr\n  br label %$12\n$11:\n  %14 = phi i32 [%11, %$9] ; # Chr\n; # (& Chr (hex \"1F\"))\n  %15 = and i32 %14, 31\n  br label %$12\n$12:\n  %16 = phi i32 [%13, %$10], [%14, %$11] ; # Chr\n  %17 = phi i32 [127, %$10], [%15, %$11] ; # ->\n  store i32 %17, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$4\n$6:\n  %18 = phi i32 [%4, %$3] ; # Chr\n; # (? (<> Chr (char \"\\\\\")) (set $Chr (getChar Chr)) YES)\n; # (<> Chr (char \"\\\\\"))\n  %19 = icmp ne i32 %18, 92\n  br i1 %19, label %$14, label %$13\n$14:\n  %20 = phi i32 [%18, %$6] ; # Chr\n; # (set $Chr (getChar Chr))\n; # (getChar Chr)\n  %21 = call i32 @getChar(i32 %20)\n  store i32 %21, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$4\n$13:\n  %22 = phi i32 [%18, %$6] ; # Chr\n; # (? (<> (char \"^J\") (setq Chr (call $Get))) (case Chr ((char \"b\") ...\n; # (call $Get)\n  %23 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %24 = call i32 %23()\n; # (<> (char \"^J\") (setq Chr (call $Get)))\n  %25 = icmp ne i32 10, %24\n  br i1 %25, label %$16, label %$15\n$16:\n  %26 = phi i32 [%24, %$13] ; # Chr\n; # (case Chr ((char \"b\") (set $Chr (char \"^H\"))) ((char \"e\") (set $C...\n  switch i32 %26, label %$17 [\n    i32 98, label %$19\n    i32 101, label %$20\n    i32 110, label %$21\n    i32 114, label %$22\n    i32 116, label %$23\n  ]\n$19:\n  %27 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (char \"^H\"))\n  store i32 8, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$20:\n  %28 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (char \"^[\"))\n  store i32 27, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$21:\n  %29 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (char \"^J\"))\n  store i32 10, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$22:\n  %30 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (char \"^M\"))\n  store i32 13, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$23:\n  %31 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (char \"^I\"))\n  store i32 9, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$17:\n  %32 = phi i32 [%26, %$16] ; # Chr\n; # (set $Chr (uniChr Chr))\n; # (uniChr Chr)\n  %33 = call i32 @uniChr(i32 %32)\n  store i32 %33, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$18\n$18:\n  %34 = phi i32 [%27, %$19], [%28, %$20], [%29, %$21], [%30, %$22], [%31, %$23], [%32, %$17] ; # Chr\n  %35 = phi i32 [8, %$19], [27, %$20], [10, %$21], [13, %$22], [9, %$23], [%33, %$17] ; # ->\n  br label %$4\n$15:\n  %36 = phi i32 [%24, %$13] ; # Chr\n; # (loop (setq Chr (call $Get)) (? (and (<> Chr (char \" \")) (<> Chr ...\n  br label %$24\n$24:\n  %37 = phi i32 [%36, %$15], [%45, %$27] ; # Chr\n; # (call $Get)\n  %38 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %39 = call i32 %38()\n; # (? (and (<> Chr (char \" \")) (<> Chr (char \"^I\"))))\n; # (and (<> Chr (char \" \")) (<> Chr (char \"^I\")))\n; # (<> Chr (char \" \"))\n  %40 = icmp ne i32 %39, 32\n  br i1 %40, label %$26, label %$25\n$26:\n  %41 = phi i32 [%39, %$24] ; # Chr\n; # (<> Chr (char \"^I\"))\n  %42 = icmp ne i32 %41, 9\n  br label %$25\n$25:\n  %43 = phi i32 [%39, %$24], [%41, %$26] ; # Chr\n  %44 = phi i1 [0, %$24], [%42, %$26] ; # ->\n  br i1 %44, label %$28, label %$27\n$27:\n  %45 = phi i32 [%43, %$25] ; # Chr\n  br label %$24\n$28:\n  %46 = phi i32 [%43, %$25] ; # Chr\n  %47 = phi i64 [0, %$25] ; # ->\n  br label %$2\n$4:\n  %48 = phi i32 [%3, %$5], [%16, %$12], [%20, %$14], [%34, %$18] ; # Chr\n  %49 = phi i1 [0, %$5], [1, %$12], [1, %$14], [1, %$18] ; # ->\n  ret i1 %49\n}\n\ndefine i64 @anonymous(i64) align 8 {\n$1:\n; # (let P (push 0 Nm) (unless (== (symByte P) (char \"$\")) (ret 0)) (...\n; # (push 0 Nm)\n  %1 = alloca i64, i64 2, align 16\n  store i64 0, i64* %1\n  %2 = getelementptr i64, i64* %1, i32 1\n  store i64 %0, i64* %2\n; # (unless (== (symByte P) (char \"$\")) (ret 0))\n; # (symByte P)\n  %3 = call i8 @symByte(i64* %1)\n; # (== (symByte P) (char \"$\"))\n  %4 = icmp eq i8 %3, 36\n  br i1 %4, label %$3, label %$2\n$2:\n  %5 = phi i64 [%0, %$1] ; # Nm\n  %6 = phi i64* [%1, %$1] ; # P\n; # (ret 0)\n  ret i64 0\n$3:\n  %7 = phi i64 [%0, %$1] ; # Nm\n  %8 = phi i64* [%1, %$1] ; # P\n; # (let B (- (symByte P) (char \"0\")) (unless (>= 7 B) (ret 0)) (let ...\n; # (symByte P)\n  %9 = call i8 @symByte(i64* %8)\n; # (- (symByte P) (char \"0\"))\n  %10 = sub i8 %9, 48\n; # (unless (>= 7 B) (ret 0))\n; # (>= 7 B)\n  %11 = icmp uge i8 7, %10\n  br i1 %11, label %$5, label %$4\n$4:\n  %12 = phi i64 [%7, %$3] ; # Nm\n  %13 = phi i64* [%8, %$3] ; # P\n  %14 = phi i8 [%10, %$3] ; # B\n; # (ret 0)\n  ret i64 0\n$5:\n  %15 = phi i64 [%7, %$3] ; # Nm\n  %16 = phi i64* [%8, %$3] ; # P\n  %17 = phi i8 [%10, %$3] ; # B\n; # (let N (i64 B) (loop (? (=0 (symByte P)) (sym (shl N 4))) (? (> (...\n; # (i64 B)\n  %18 = zext i8 %17 to i64\n; # (loop (? (=0 (symByte P)) (sym (shl N 4))) (? (> (- @ (char \"0\"))...\n  br label %$6\n$6:\n  %19 = phi i64 [%15, %$5], [%41, %$10] ; # Nm\n  %20 = phi i64* [%16, %$5], [%42, %$10] ; # P\n  %21 = phi i8 [%17, %$5], [%43, %$10] ; # B\n  %22 = phi i64 [%18, %$5], [%47, %$10] ; # N\n; # (? (=0 (symByte P)) (sym (shl N 4)))\n; # (symByte P)\n  %23 = call i8 @symByte(i64* %20)\n; # (=0 (symByte P))\n  %24 = icmp eq i8 %23, 0\n  br i1 %24, label %$9, label %$7\n$9:\n  %25 = phi i64 [%19, %$6] ; # Nm\n  %26 = phi i64* [%20, %$6] ; # P\n  %27 = phi i8 [%21, %$6] ; # B\n  %28 = phi i64 [%22, %$6] ; # N\n; # (shl N 4)\n  %29 = shl i64 %28, 4\n; # (sym (shl N 4))\n  %30 = or i64 %29, 8\n  br label %$8\n$7:\n  %31 = phi i64 [%19, %$6] ; # Nm\n  %32 = phi i64* [%20, %$6] ; # P\n  %33 = phi i8 [%21, %$6] ; # B\n  %34 = phi i64 [%22, %$6] ; # N\n; # (? (> (- @ (char \"0\")) 7) 0)\n; # (- @ (char \"0\"))\n  %35 = sub i8 %23, 48\n; # (> (- @ (char \"0\")) 7)\n  %36 = icmp ugt i8 %35, 7\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%31, %$7] ; # Nm\n  %38 = phi i64* [%32, %$7] ; # P\n  %39 = phi i8 [%33, %$7] ; # B\n  %40 = phi i64 [%34, %$7] ; # N\n  br label %$8\n$10:\n  %41 = phi i64 [%31, %$7] ; # Nm\n  %42 = phi i64* [%32, %$7] ; # P\n  %43 = phi i8 [%33, %$7] ; # B\n  %44 = phi i64 [%34, %$7] ; # N\n; # (i64 @)\n  %45 = zext i8 %35 to i64\n; # (shl N 3)\n  %46 = shl i64 %44, 3\n; # (| (i64 @) (shl N 3))\n  %47 = or i64 %45, %46\n  br label %$6\n$8:\n  %48 = phi i64 [%25, %$9], [%37, %$11] ; # Nm\n  %49 = phi i64* [%26, %$9], [%38, %$11] ; # P\n  %50 = phi i8 [%27, %$9], [%39, %$11] ; # B\n  %51 = phi i64 [%28, %$9], [%40, %$11] ; # N\n  %52 = phi i64 [%30, %$9], [0, %$11] ; # ->\n  ret i64 %52\n}\n\ndefine i64 @rdAtom(i32) align 8 {\n$1:\n; # (let (Int (save (val $Intern)) P (push 4 NIL ZERO NIL) C (val $Ch...\n; # (val $Intern)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (save (val $Intern))\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (push 4 NIL ZERO NIL)\n  %11 = alloca i64, i64 4, align 16\n  store i64 4, i64* %11\n  %12 = getelementptr i64, i64* %11, i32 2\n  store i64 2, i64* %12\n; # (val $Chr)\n  %13 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (when (and (== Chr (char \"%\")) (== C (char \"~\"))) (when (nil? (cd...\n; # (and (== Chr (char \"%\")) (== C (char \"~\")))\n; # (== Chr (char \"%\"))\n  %14 = icmp eq i32 %0, 37\n  br i1 %14, label %$3, label %$2\n$3:\n  %15 = phi i32 [%0, %$1] ; # Chr\n  %16 = phi i64 [%2, %$1] ; # Int\n  %17 = phi i64* [%11, %$1] ; # P\n  %18 = phi i32 [%13, %$1] ; # C\n; # (== C (char \"~\"))\n  %19 = icmp eq i32 %18, 126\n  br label %$2\n$2:\n  %20 = phi i32 [%0, %$1], [%15, %$3] ; # Chr\n  %21 = phi i64 [%2, %$1], [%16, %$3] ; # Int\n  %22 = phi i64* [%11, %$1], [%17, %$3] ; # P\n  %23 = phi i32 [%13, %$1], [%18, %$3] ; # C\n  %24 = phi i1 [0, %$1], [%19, %$3] ; # ->\n  br i1 %24, label %$4, label %$5\n$4:\n  %25 = phi i32 [%20, %$2] ; # Chr\n  %26 = phi i64 [%21, %$2] ; # Int\n  %27 = phi i64* [%22, %$2] ; # P\n  %28 = phi i32 [%23, %$2] ; # C\n; # (when (nil? (cdr Int)) (symNspErr 0 $rem))\n; # (cdr Int)\n  %29 = inttoptr i64 %26 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n; # (nil? (cdr Int))\n  %32 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %32, label %$6, label %$7\n$6:\n  %33 = phi i32 [%25, %$4] ; # Chr\n  %34 = phi i64 [%26, %$4] ; # Int\n  %35 = phi i64* [%27, %$4] ; # P\n  %36 = phi i32 [%28, %$4] ; # C\n; # (symNspErr 0 $rem)\n  call void @symNspErr(i64 0, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 1064) to i64))\n  unreachable\n$7:\n  %37 = phi i32 [%25, %$4] ; # Chr\n  %38 = phi i64 [%26, %$4] ; # Int\n  %39 = phi i64* [%27, %$4] ; # P\n  %40 = phi i32 [%28, %$4] ; # C\n; # (set $Intern @)\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %41\n; # (call $Get)\n  %42 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %43 = call i32 %42()\n; # (call $Get)\n  %44 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %45 = call i32 %44()\n  br label %$5\n$5:\n  %46 = phi i32 [%20, %$2], [%43, %$7] ; # Chr\n  %47 = phi i64 [%21, %$2], [%38, %$7] ; # Int\n  %48 = phi i64* [%22, %$2], [%39, %$7] ; # P\n  %49 = phi i32 [%23, %$2], [%45, %$7] ; # C\n; # (ofs P 2)\n  %50 = getelementptr i64, i64* %48, i32 2\n; # (link (ofs P 2))\n  %51 = ptrtoint i64* %50 to i64\n  %52 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %53 = load i64, i64* %52\n  %54 = inttoptr i64 %51 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  store i64 %53, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %51, i64* %56\n; # (i8 Chr)\n  %57 = trunc i32 %46 to i8\n; # (byteSym (i8 Chr) P)\n  call void @byteSym(i8 %57, i64* %48)\n; # (while (ge0 Chr) (if (== Chr (char \"~\")) (let S (requestSym (val ...\n  br label %$8\n$8:\n  %58 = phi i32 [%49, %$5], [%123, %$13] ; # Chr\n  %59 = phi i64 [%47, %$5], [%119, %$13] ; # Int\n  %60 = phi i64* [%48, %$5], [%120, %$13] ; # P\n  %61 = phi i32 [%49, %$5], [%121, %$13] ; # C\n; # (ge0 Chr)\n  %62 = icmp sge i32 %58, 0\n  br i1 %62, label %$9, label %$10\n$9:\n  %63 = phi i32 [%58, %$8] ; # Chr\n  %64 = phi i64 [%59, %$8] ; # Int\n  %65 = phi i64* [%60, %$8] ; # P\n  %66 = phi i32 [%61, %$8] ; # C\n; # (if (== Chr (char \"~\")) (let S (requestSym (val 3 P)) (needNsp 0 ...\n; # (== Chr (char \"~\"))\n  %67 = icmp eq i32 %63, 126\n  br i1 %67, label %$11, label %$12\n$11:\n  %68 = phi i32 [%63, %$9] ; # Chr\n  %69 = phi i64 [%64, %$9] ; # Int\n  %70 = phi i64* [%65, %$9] ; # P\n  %71 = phi i32 [%66, %$9] ; # C\n; # (let S (requestSym (val 3 P)) (needNsp 0 S) (set (set $Intern (an...\n; # (val 3 P)\n  %72 = getelementptr i64, i64* %70, i32 2\n  %73 = load i64, i64* %72\n; # (requestSym (val 3 P))\n  %74 = call i64 @requestSym(i64 %73)\n; # (needNsp 0 S)\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  %77 = and i64 %76, 15\n  %78 = icmp eq i64 %77, 0\n  br i1 %78, label %$15, label %$14\n$15:\n  %79 = phi i64 [%74, %$11] ; # X\n  %80 = phi i64 [0, %$11] ; # Exe\n  %81 = inttoptr i64 %76 to i64*\n  %82 = load i64, i64* %81\n  %83 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 40) to i64), %82\n  br label %$14\n$14:\n  %84 = phi i64 [%74, %$11], [%79, %$15] ; # X\n  %85 = phi i64 [0, %$11], [%80, %$15] ; # Exe\n  %86 = phi i1 [0, %$11], [%83, %$15] ; # ->\n  br i1 %86, label %$17, label %$16\n$16:\n  %87 = phi i64 [%84, %$14] ; # X\n  %88 = phi i64 [%85, %$14] ; # Exe\n  call void @symNspErr(i64 %88, i64 %87)\n  unreachable\n$17:\n  %89 = phi i64 [%84, %$14] ; # X\n  %90 = phi i64 [%85, %$14] ; # Exe\n; # (set (set $Intern (any $Cell)) S)\n; # (set $Intern (any $Cell))\n; # (any $Cell)\n  %91 = ptrtoint i64* bitcast ([2 x i64]* @$Cell to i64*) to i64\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %91, i64* %92\n  %93 = inttoptr i64 %91 to i64*\n  store i64 %74, i64* %93\n; # (set P 4 3 P ZERO)\n  store i64 4, i64* %70\n  %94 = getelementptr i64, i64* %70, i32 2\n  store i64 2, i64* %94\n  br label %$13\n$12:\n  %95 = phi i32 [%63, %$9] ; # Chr\n  %96 = phi i64 [%64, %$9] ; # Int\n  %97 = phi i64* [%65, %$9] ; # P\n  %98 = phi i32 [%66, %$9] ; # C\n; # (? (strchr $Delim Chr))\n; # (strchr $Delim Chr)\n  %99 = call i8* @strchr(i8* bitcast ([16 x i8]* @$Delim to i8*), i32 %95)\n  %100 = icmp ne i8* %99, null\n  br i1 %100, label %$10, label %$18\n$18:\n  %101 = phi i32 [%95, %$12] ; # Chr\n  %102 = phi i64 [%96, %$12] ; # Int\n  %103 = phi i64* [%97, %$12] ; # P\n  %104 = phi i32 [%98, %$12] ; # C\n; # (when (== Chr (char \"\\\\\")) (setq Chr (uniChr (call $Get))))\n; # (== Chr (char \"\\\\\"))\n  %105 = icmp eq i32 %101, 92\n  br i1 %105, label %$19, label %$20\n$19:\n  %106 = phi i32 [%101, %$18] ; # Chr\n  %107 = phi i64 [%102, %$18] ; # Int\n  %108 = phi i64* [%103, %$18] ; # P\n  %109 = phi i32 [%104, %$18] ; # C\n; # (call $Get)\n  %110 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %111 = call i32 %110()\n; # (uniChr (call $Get))\n  %112 = call i32 @uniChr(i32 %111)\n  br label %$20\n$20:\n  %113 = phi i32 [%101, %$18], [%112, %$19] ; # Chr\n  %114 = phi i64 [%102, %$18], [%107, %$19] ; # Int\n  %115 = phi i64* [%103, %$18], [%108, %$19] ; # P\n  %116 = phi i32 [%104, %$18], [%109, %$19] ; # C\n; # (i8 Chr)\n  %117 = trunc i32 %113 to i8\n; # (byteSym (i8 Chr) P)\n  call void @byteSym(i8 %117, i64* %115)\n  br label %$13\n$13:\n  %118 = phi i32 [%68, %$17], [%113, %$20] ; # Chr\n  %119 = phi i64 [%69, %$17], [%114, %$20] ; # Int\n  %120 = phi i64* [%70, %$17], [%115, %$20] ; # P\n  %121 = phi i32 [%71, %$17], [%116, %$20] ; # C\n; # (call $Get)\n  %122 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %123 = call i32 %122()\n  br label %$8\n$10:\n  %124 = phi i32 [%58, %$8], [%95, %$12] ; # Chr\n  %125 = phi i64 [%59, %$8], [%96, %$12] ; # Int\n  %126 = phi i64* [%60, %$8], [%97, %$12] ; # P\n  %127 = phi i32 [%61, %$8], [%98, %$12] ; # C\n; # (prog1 (let (Nm (val 3 P) L (val $Intern)) (cond ((== Nm ZERO) (b...\n; # (let (Nm (val 3 P) L (val $Intern)) (cond ((== Nm ZERO) (badInput...\n; # (val 3 P)\n  %128 = getelementptr i64, i64* %126, i32 2\n  %129 = load i64, i64* %128\n; # (val $Intern)\n  %130 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %131 = load i64, i64* %130\n; # (cond ((== Nm ZERO) (badInput)) ((== L (any $Cell)) (intern 0 $Ni...\n; # (== Nm ZERO)\n  %132 = icmp eq i64 %129, 2\n  br i1 %132, label %$23, label %$22\n$23:\n  %133 = phi i32 [%124, %$10] ; # Chr\n  %134 = phi i64 [%125, %$10] ; # Int\n  %135 = phi i64* [%126, %$10] ; # P\n  %136 = phi i32 [%127, %$10] ; # C\n  %137 = phi i64 [%129, %$10] ; # Nm\n  %138 = phi i64 [%131, %$10] ; # L\n; # (badInput)\n  call void @badInput()\n  unreachable\n$22:\n  %139 = phi i32 [%124, %$10] ; # Chr\n  %140 = phi i64 [%125, %$10] ; # Int\n  %141 = phi i64* [%126, %$10] ; # P\n  %142 = phi i32 [%127, %$10] ; # C\n  %143 = phi i64 [%129, %$10] ; # Nm\n  %144 = phi i64 [%131, %$10] ; # L\n; # (any $Cell)\n  %145 = ptrtoint i64* bitcast ([2 x i64]* @$Cell to i64*) to i64\n; # (== L (any $Cell))\n  %146 = icmp eq i64 %144, %145\n  br i1 %146, label %$25, label %$24\n$25:\n  %147 = phi i32 [%139, %$22] ; # Chr\n  %148 = phi i64 [%140, %$22] ; # Int\n  %149 = phi i64* [%141, %$22] ; # P\n  %150 = phi i32 [%142, %$22] ; # C\n  %151 = phi i64 [%143, %$22] ; # Nm\n  %152 = phi i64 [%144, %$22] ; # L\n; # (car @)\n  %153 = inttoptr i64 %144 to i64*\n  %154 = load i64, i64* %153\n; # (cdar (car @))\n  %155 = inttoptr i64 %154 to i64*\n  %156 = load i64, i64* %155\n  %157 = inttoptr i64 %156 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n; # (intern 0 $Nil Nm (cdar (car @)) $Nil NO)\n  %160 = call i64 @intern(i64 0, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %151, i64 %159, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i1 0)\n  br label %$21\n$24:\n  %161 = phi i32 [%139, %$22] ; # Chr\n  %162 = phi i64 [%140, %$22] ; # Int\n  %163 = phi i64* [%141, %$22] ; # P\n  %164 = phi i32 [%142, %$22] ; # C\n  %165 = phi i64 [%143, %$22] ; # Nm\n  %166 = phi i64 [%144, %$22] ; # L\n; # (val $Scl)\n  %167 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 568) to i64) to i64*\n  %168 = load i64, i64* %167\n; # (int (val $Scl))\n  %169 = lshr i64 %168, 4\n; # (symToNum Nm (int (val $Scl)) (char \".\") 0)\n  %170 = call i64 @symToNum(i64 %165, i64 %169, i8 46, i8 0)\n  %171 = icmp ne i64 %170, 0\n  br i1 %171, label %$27, label %$26\n$27:\n  %172 = phi i32 [%161, %$24] ; # Chr\n  %173 = phi i64 [%162, %$24] ; # Int\n  %174 = phi i64* [%163, %$24] ; # P\n  %175 = phi i32 [%164, %$24] ; # C\n  %176 = phi i64 [%165, %$24] ; # Nm\n  %177 = phi i64 [%166, %$24] ; # L\n  br label %$21\n$26:\n  %178 = phi i32 [%161, %$24] ; # Chr\n  %179 = phi i64 [%162, %$24] ; # Int\n  %180 = phi i64* [%163, %$24] ; # P\n  %181 = phi i32 [%164, %$24] ; # C\n  %182 = phi i64 [%165, %$24] ; # Nm\n  %183 = phi i64 [%166, %$24] ; # L\n; # (anonymous Nm)\n  %184 = call i64 @anonymous(i64 %182)\n  %185 = icmp ne i64 %184, 0\n  br i1 %185, label %$29, label %$28\n$29:\n  %186 = phi i32 [%178, %$26] ; # Chr\n  %187 = phi i64 [%179, %$26] ; # Int\n  %188 = phi i64* [%180, %$26] ; # P\n  %189 = phi i32 [%181, %$26] ; # C\n  %190 = phi i64 [%182, %$26] ; # Nm\n  %191 = phi i64 [%183, %$26] ; # L\n  br label %$21\n$28:\n  %192 = phi i32 [%178, %$26] ; # Chr\n  %193 = phi i64 [%179, %$26] ; # Int\n  %194 = phi i64* [%180, %$26] ; # P\n  %195 = phi i32 [%181, %$26] ; # C\n  %196 = phi i64 [%182, %$26] ; # Nm\n  %197 = phi i64 [%183, %$26] ; # L\n; # (and (== (car L) $priv) (nil? (cdr L)))\n; # (car L)\n  %198 = inttoptr i64 %197 to i64*\n  %199 = load i64, i64* %198\n; # (== (car L) $priv)\n  %200 = icmp eq i64 %199, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 152) to i64)\n  br i1 %200, label %$31, label %$30\n$31:\n  %201 = phi i32 [%192, %$28] ; # Chr\n  %202 = phi i64 [%193, %$28] ; # Int\n  %203 = phi i64* [%194, %$28] ; # P\n  %204 = phi i32 [%195, %$28] ; # C\n  %205 = phi i64 [%196, %$28] ; # Nm\n  %206 = phi i64 [%197, %$28] ; # L\n; # (cdr L)\n  %207 = inttoptr i64 %206 to i64*\n  %208 = getelementptr i64, i64* %207, i32 1\n  %209 = load i64, i64* %208\n; # (nil? (cdr L))\n  %210 = icmp eq i64 %209, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$30\n$30:\n  %211 = phi i32 [%192, %$28], [%201, %$31] ; # Chr\n  %212 = phi i64 [%193, %$28], [%202, %$31] ; # Int\n  %213 = phi i64* [%194, %$28], [%203, %$31] ; # P\n  %214 = phi i32 [%195, %$28], [%204, %$31] ; # C\n  %215 = phi i64 [%196, %$28], [%205, %$31] ; # Nm\n  %216 = phi i64 [%197, %$28], [%206, %$31] ; # L\n  %217 = phi i1 [0, %$28], [%210, %$31] ; # ->\n  br i1 %217, label %$33, label %$32\n$33:\n  %218 = phi i32 [%211, %$30] ; # Chr\n  %219 = phi i64 [%212, %$30] ; # Int\n  %220 = phi i64* [%213, %$30] ; # P\n  %221 = phi i32 [%214, %$30] ; # C\n  %222 = phi i64 [%215, %$30] ; # Nm\n  %223 = phi i64 [%216, %$30] ; # L\n; # (consSym Nm $Nil)\n  %224 = call i64 @consSym(i64 %222, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (intern (consSym Nm $Nil) 0 Nm $PrivT $Nil YES)\n  %225 = call i64 @intern(i64 %224, i64 0, i64 %222, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i1 1)\n  br label %$21\n$32:\n  %226 = phi i32 [%211, %$30] ; # Chr\n  %227 = phi i64 [%212, %$30] ; # Int\n  %228 = phi i64* [%213, %$30] ; # P\n  %229 = phi i32 [%214, %$30] ; # C\n  %230 = phi i64 [%215, %$30] ; # Nm\n  %231 = phi i64 [%216, %$30] ; # L\n; # (requestSym Nm)\n  %232 = call i64 @requestSym(i64 %230)\n  br label %$21\n$21:\n  %233 = phi i32 [%147, %$25], [%172, %$27], [%186, %$29], [%218, %$33], [%226, %$32] ; # Chr\n  %234 = phi i64 [%148, %$25], [%173, %$27], [%187, %$29], [%219, %$33], [%227, %$32] ; # Int\n  %235 = phi i64* [%149, %$25], [%174, %$27], [%188, %$29], [%220, %$33], [%228, %$32] ; # P\n  %236 = phi i32 [%150, %$25], [%175, %$27], [%189, %$29], [%221, %$33], [%229, %$32] ; # C\n  %237 = phi i64 [%151, %$25], [%176, %$27], [%190, %$29], [%222, %$33], [%230, %$32] ; # Nm\n  %238 = phi i64 [%152, %$25], [%177, %$27], [%191, %$29], [%223, %$33], [%231, %$32] ; # L\n  %239 = phi i64 [%160, %$25], [%170, %$27], [%184, %$29], [%225, %$33], [%232, %$32] ; # ->\n; # (set $Intern Int)\n  %240 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %234, i64* %240\n; # (drop *Safe)\n  %241 = inttoptr i64 %6 to i64*\n  %242 = getelementptr i64, i64* %241, i32 1\n  %243 = load i64, i64* %242\n  %244 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %243, i64* %244\n  ret i64 %239\n}\n\ndefine void @rdl(i64, i64) align 8 {\n$1:\n; # (loop (? (== (skip) (char \")\")) (call $Get)) (? (== @ (char \"]\"))...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%144, %$7] ; # R\n  %3 = phi i64 [%1, %$1], [%145, %$7] ; # P\n; # (? (== (skip) (char \")\")) (call $Get))\n; # (skip)\n  %4 = call i32 @skip()\n; # (== (skip) (char \")\"))\n  %5 = icmp eq i32 %4, 41\n  br i1 %5, label %$5, label %$3\n$5:\n  %6 = phi i64 [%2, %$2] ; # R\n  %7 = phi i64 [%3, %$2] ; # P\n; # (call $Get)\n  %8 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %9 = call i32 %8()\n  br label %$4\n$3:\n  %10 = phi i64 [%2, %$2] ; # R\n  %11 = phi i64 [%3, %$2] ; # P\n; # (? (== @ (char \"]\")))\n; # (== @ (char \"]\"))\n  %12 = icmp eq i32 %4, 93\n  br i1 %12, label %$4, label %$6\n$6:\n  %13 = phi i64 [%10, %$3] ; # R\n  %14 = phi i64 [%11, %$3] ; # P\n; # (cond ((== @ (char \".\")) (? (strchr $Delim (call $Get)) (setq P (...\n; # (== @ (char \".\"))\n  %15 = icmp eq i32 %4, 46\n  br i1 %15, label %$9, label %$8\n$9:\n  %16 = phi i64 [%13, %$6] ; # R\n  %17 = phi i64 [%14, %$6] ; # P\n; # (? (strchr $Delim (call $Get)) (setq P (set 2 P (if (or (== (skip...\n; # (call $Get)\n  %18 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %19 = call i32 %18()\n; # (strchr $Delim (call $Get))\n  %20 = call i8* @strchr(i8* bitcast ([16 x i8]* @$Delim to i8*), i32 %19)\n  %21 = icmp ne i8* %20, null\n  br i1 %21, label %$11, label %$10\n$11:\n  %22 = phi i64 [%16, %$9] ; # R\n  %23 = phi i64 [%17, %$9] ; # P\n; # (set 2 P (if (or (== (skip) (char \")\")) (== @ (char \"]\"))) R (rea...\n; # (if (or (== (skip) (char \")\")) (== @ (char \"]\"))) R (read0 NO))\n; # (or (== (skip) (char \")\")) (== @ (char \"]\")))\n; # (skip)\n  %24 = call i32 @skip()\n; # (== (skip) (char \")\"))\n  %25 = icmp eq i32 %24, 41\n  br i1 %25, label %$12, label %$13\n$13:\n  %26 = phi i64 [%22, %$11] ; # R\n  %27 = phi i64 [%23, %$11] ; # P\n; # (== @ (char \"]\"))\n  %28 = icmp eq i32 %24, 93\n  br label %$12\n$12:\n  %29 = phi i64 [%22, %$11], [%26, %$13] ; # R\n  %30 = phi i64 [%23, %$11], [%27, %$13] ; # P\n  %31 = phi i1 [1, %$11], [%28, %$13] ; # ->\n  br i1 %31, label %$14, label %$15\n$14:\n  %32 = phi i64 [%29, %$12] ; # R\n  %33 = phi i64 [%30, %$12] ; # P\n  br label %$16\n$15:\n  %34 = phi i64 [%29, %$12] ; # R\n  %35 = phi i64 [%30, %$12] ; # P\n; # (read0 NO)\n  %36 = call i64 @read0(i1 0)\n  br label %$16\n$16:\n  %37 = phi i64 [%32, %$14], [%34, %$15] ; # R\n  %38 = phi i64 [%33, %$14], [%35, %$15] ; # P\n  %39 = phi i64 [%32, %$14], [%36, %$15] ; # ->\n  %40 = inttoptr i64 %23 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  store i64 %39, i64* %41\n; # (cond ((== (skip) (char \")\")) (call $Get)) ((<> (val $Chr) (char ...\n; # (skip)\n  %42 = call i32 @skip()\n; # (== (skip) (char \")\"))\n  %43 = icmp eq i32 %42, 41\n  br i1 %43, label %$19, label %$18\n$19:\n  %44 = phi i64 [%37, %$16] ; # R\n  %45 = phi i64 [%39, %$16] ; # P\n; # (call $Get)\n  %46 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %47 = call i32 %46()\n  br label %$17\n$18:\n  %48 = phi i64 [%37, %$16] ; # R\n  %49 = phi i64 [%39, %$16] ; # P\n; # (val $Chr)\n  %50 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (<> (val $Chr) (char \"]\"))\n  %51 = icmp ne i32 %50, 93\n  br i1 %51, label %$21, label %$20\n$21:\n  %52 = phi i64 [%48, %$18] ; # R\n  %53 = phi i64 [%49, %$18] ; # P\n; # (err 0 P ($ \"Bad dotted pair\") null)\n  call void @err(i64 0, i64 %53, i8* bitcast ([16 x i8]* @$44 to i8*), i8* null)\n  unreachable\n$20:\n  %54 = phi i64 [%48, %$18] ; # R\n  %55 = phi i64 [%49, %$18] ; # P\n  br label %$17\n$17:\n  %56 = phi i64 [%44, %$19], [%54, %$20] ; # R\n  %57 = phi i64 [%45, %$19], [%55, %$20] ; # P\n  %58 = phi i32 [%47, %$19], [0, %$20] ; # ->\n  br label %$4\n$10:\n  %59 = phi i64 [%16, %$9] ; # R\n  %60 = phi i64 [%17, %$9] ; # P\n; # (set 2 P (cons (rdAtom (char \".\")) $Nil))\n; # (rdAtom (char \".\"))\n  %61 = call i64 @rdAtom(i32 46)\n; # (cons (rdAtom (char \".\")) $Nil)\n  %62 = call i64 @cons(i64 %61, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %63 = inttoptr i64 %60 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  store i64 %62, i64* %64\n  br label %$7\n$8:\n  %65 = phi i64 [%13, %$6] ; # R\n  %66 = phi i64 [%14, %$6] ; # P\n; # (== @ (char \"~\"))\n  %67 = icmp eq i32 %4, 126\n  br i1 %67, label %$23, label %$22\n$23:\n  %68 = phi i64 [%65, %$8] ; # R\n  %69 = phi i64 [%66, %$8] ; # P\n; # (call $Get)\n  %70 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %71 = call i32 %70()\n; # (let (X (save (read0 NO)) R (eval X)) (cond ((nil? R)) ((atom R) ...\n; # (read0 NO)\n  %72 = call i64 @read0(i1 0)\n; # (save (read0 NO))\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %74 = load i64, i64* %73\n  %75 = alloca i64, i64 2, align 16\n  %76 = ptrtoint i64* %75 to i64\n  %77 = inttoptr i64 %76 to i64*\n  store i64 %72, i64* %77\n  %78 = add i64 %76, 8\n  %79 = inttoptr i64 %78 to i64*\n  store i64 %74, i64* %79\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %76, i64* %80\n; # (eval X)\n  %81 = and i64 %72, 6\n  %82 = icmp ne i64 %81, 0\n  br i1 %82, label %$26, label %$25\n$26:\n  %83 = phi i64 [%72, %$23] ; # X\n  br label %$24\n$25:\n  %84 = phi i64 [%72, %$23] ; # X\n  %85 = and i64 %84, 8\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$28, label %$27\n$28:\n  %87 = phi i64 [%84, %$25] ; # X\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n  br label %$24\n$27:\n  %90 = phi i64 [%84, %$25] ; # X\n  %91 = call i64 @evList(i64 %90)\n  br label %$24\n$24:\n  %92 = phi i64 [%83, %$26], [%87, %$28], [%90, %$27] ; # X\n  %93 = phi i64 [%83, %$26], [%89, %$28], [%91, %$27] ; # ->\n; # (cond ((nil? R)) ((atom R) (set 2 P (cons R $Nil)) (shift P)) (T ...\n; # (nil? R)\n  %94 = icmp eq i64 %93, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %94, label %$29, label %$30\n$30:\n  %95 = phi i64 [%69, %$24] ; # P\n  %96 = phi i64 [%72, %$24] ; # X\n  %97 = phi i64 [%93, %$24] ; # R\n; # (atom R)\n  %98 = and i64 %97, 15\n  %99 = icmp ne i64 %98, 0\n  br i1 %99, label %$32, label %$31\n$32:\n  %100 = phi i64 [%95, %$30] ; # P\n  %101 = phi i64 [%96, %$30] ; # X\n  %102 = phi i64 [%97, %$30] ; # R\n; # (set 2 P (cons R $Nil))\n; # (cons R $Nil)\n  %103 = call i64 @cons(i64 %102, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %104 = inttoptr i64 %100 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  store i64 %103, i64* %105\n; # (shift P)\n  %106 = inttoptr i64 %100 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n  br label %$29\n$31:\n  %109 = phi i64 [%95, %$30] ; # P\n  %110 = phi i64 [%96, %$30] ; # X\n  %111 = phi i64 [%97, %$30] ; # R\n; # (set 2 P R)\n  %112 = inttoptr i64 %109 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  store i64 %111, i64* %113\n; # (while (pair (cdr P)) (shift P))\n  br label %$33\n$33:\n  %114 = phi i64 [%109, %$31], [%127, %$34] ; # P\n  %115 = phi i64 [%110, %$31], [%123, %$34] ; # X\n  %116 = phi i64 [%111, %$31], [%124, %$34] ; # R\n; # (cdr P)\n  %117 = inttoptr i64 %114 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (pair (cdr P))\n  %120 = and i64 %119, 15\n  %121 = icmp eq i64 %120, 0\n  br i1 %121, label %$34, label %$35\n$34:\n  %122 = phi i64 [%114, %$33] ; # P\n  %123 = phi i64 [%115, %$33] ; # X\n  %124 = phi i64 [%116, %$33] ; # R\n; # (shift P)\n  %125 = inttoptr i64 %122 to i64*\n  %126 = getelementptr i64, i64* %125, i32 1\n  %127 = load i64, i64* %126\n  br label %$33\n$35:\n  %128 = phi i64 [%114, %$33] ; # P\n  %129 = phi i64 [%115, %$33] ; # X\n  %130 = phi i64 [%116, %$33] ; # R\n  br label %$29\n$29:\n  %131 = phi i64 [%69, %$24], [%108, %$32], [%128, %$35] ; # P\n  %132 = phi i64 [%72, %$24], [%101, %$32], [%129, %$35] ; # X\n  %133 = phi i64 [%93, %$24], [%102, %$32], [%130, %$35] ; # R\n; # (drop *Safe)\n  %134 = inttoptr i64 %76 to i64*\n  %135 = getelementptr i64, i64* %134, i32 1\n  %136 = load i64, i64* %135\n  %137 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %136, i64* %137\n  br label %$7\n$22:\n  %138 = phi i64 [%65, %$8] ; # R\n  %139 = phi i64 [%66, %$8] ; # P\n; # (set 2 P (cons (read0 NO) $Nil))\n; # (read0 NO)\n  %140 = call i64 @read0(i1 0)\n; # (cons (read0 NO) $Nil)\n  %141 = call i64 @cons(i64 %140, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %142 = inttoptr i64 %139 to i64*\n  %143 = getelementptr i64, i64* %142, i32 1\n  store i64 %141, i64* %143\n  br label %$7\n$7:\n  %144 = phi i64 [%59, %$10], [%68, %$29], [%138, %$22] ; # R\n  %145 = phi i64 [%62, %$10], [%131, %$29], [%141, %$22] ; # P\n  %146 = phi i64 [%62, %$10], [%133, %$29], [%141, %$22] ; # ->\n  br label %$2\n$4:\n  %147 = phi i64 [%6, %$5], [%10, %$3], [%56, %$17] ; # R\n  %148 = phi i64 [%7, %$5], [%11, %$3], [%57, %$17] ; # P\n  ret void\n}\n\ndefine i64 @rdList() align 8 {\n$1:\n; # (stkChk 0)\n  %0 = load i8*, i8** @$StkLimit\n  %1 = call i8* @llvm.stacksave()\n  %2 = icmp ugt i8* %0, %1\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [0, %$1] ; # Exe\n  call void @stkErr(i64 %3)\n  unreachable\n$3:\n  %4 = phi i64 [0, %$1] ; # Exe\n; # (call $Get)\n  %5 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %6 = call i32 %5()\n; # (save -ZERO)\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %8 = load i64, i64* %7\n  %9 = alloca i64, i64 2, align 16\n  %10 = ptrtoint i64* %9 to i64\n  %11 = inttoptr i64 %10 to i64*\n  store i64 10, i64* %11\n  %12 = add i64 %10, 8\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %10, i64* %14\n; # (loop (? (== (skip) (char \")\")) (call $Get) $Nil) (? (== @ (char ...\n  br label %$4\n$4:\n; # (? (== (skip) (char \")\")) (call $Get) $Nil)\n; # (skip)\n  %15 = call i32 @skip()\n; # (== (skip) (char \")\"))\n  %16 = icmp eq i32 %15, 41\n  br i1 %16, label %$7, label %$5\n$7:\n; # (call $Get)\n  %17 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %18 = call i32 %17()\n  br label %$6\n$5:\n; # (? (== @ (char \"]\")) $Nil)\n; # (== @ (char \"]\"))\n  %19 = icmp eq i32 %15, 93\n  br i1 %19, label %$9, label %$8\n$9:\n  br label %$6\n$8:\n; # (? (<> @ (char \"~\")) (let R (safe (cons (read0 NO) $Nil)) (rdl R ...\n; # (<> @ (char \"~\"))\n  %20 = icmp ne i32 %15, 126\n  br i1 %20, label %$11, label %$10\n$11:\n; # (let R (safe (cons (read0 NO) $Nil)) (rdl R R) R)\n; # (read0 NO)\n  %21 = call i64 @read0(i1 0)\n; # (cons (read0 NO) $Nil)\n  %22 = call i64 @cons(i64 %21, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (safe (cons (read0 NO) $Nil))\n  %23 = inttoptr i64 %10 to i64*\n  store i64 %22, i64* %23\n; # (rdl R R)\n  call void @rdl(i64 %22, i64 %22)\n  br label %$6\n$10:\n; # (call $Get)\n  %24 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %25 = call i32 %24()\n; # (let (X (safe (read0 NO)) R (eval X)) (? (not (nil? R)) (if (atom...\n; # (read0 NO)\n  %26 = call i64 @read0(i1 0)\n; # (safe (read0 NO))\n  %27 = inttoptr i64 %10 to i64*\n  store i64 %26, i64* %27\n; # (eval X)\n  %28 = and i64 %26, 6\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$14, label %$13\n$14:\n  %30 = phi i64 [%26, %$10] ; # X\n  br label %$12\n$13:\n  %31 = phi i64 [%26, %$10] ; # X\n  %32 = and i64 %31, 8\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$16, label %$15\n$16:\n  %34 = phi i64 [%31, %$13] ; # X\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n  br label %$12\n$15:\n  %37 = phi i64 [%31, %$13] ; # X\n  %38 = call i64 @evList(i64 %37)\n  br label %$12\n$12:\n  %39 = phi i64 [%30, %$14], [%34, %$16], [%37, %$15] ; # X\n  %40 = phi i64 [%30, %$14], [%36, %$16], [%38, %$15] ; # ->\n; # (? (not (nil? R)) (if (atom (safe R)) (rdl (safe (setq R (cons R ...\n; # (nil? R)\n  %41 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? R))\n  %42 = icmp eq i1 %41, 0\n  br i1 %42, label %$18, label %$17\n$18:\n  %43 = phi i64 [%26, %$12] ; # X\n  %44 = phi i64 [%40, %$12] ; # R\n; # (if (atom (safe R)) (rdl (safe (setq R (cons R $Nil))) R) (let L ...\n; # (safe R)\n  %45 = inttoptr i64 %10 to i64*\n  store i64 %44, i64* %45\n; # (atom (safe R))\n  %46 = and i64 %44, 15\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$19, label %$20\n$19:\n  %48 = phi i64 [%43, %$18] ; # X\n  %49 = phi i64 [%44, %$18] ; # R\n; # (cons R $Nil)\n  %50 = call i64 @cons(i64 %49, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (safe (setq R (cons R $Nil)))\n  %51 = inttoptr i64 %10 to i64*\n  store i64 %50, i64* %51\n; # (rdl (safe (setq R (cons R $Nil))) R)\n  call void @rdl(i64 %50, i64 %50)\n  br label %$21\n$20:\n  %52 = phi i64 [%43, %$18] ; # X\n  %53 = phi i64 [%44, %$18] ; # R\n; # (let L R (while (pair (cdr L)) (setq L @)) (rdl R L))\n; # (while (pair (cdr L)) (setq L @))\n  br label %$22\n$22:\n  %54 = phi i64 [%52, %$20], [%62, %$23] ; # X\n  %55 = phi i64 [%53, %$20], [%63, %$23] ; # R\n  %56 = phi i64 [%53, %$20], [%59, %$23] ; # L\n; # (cdr L)\n  %57 = inttoptr i64 %56 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n; # (pair (cdr L))\n  %60 = and i64 %59, 15\n  %61 = icmp eq i64 %60, 0\n  br i1 %61, label %$23, label %$24\n$23:\n  %62 = phi i64 [%54, %$22] ; # X\n  %63 = phi i64 [%55, %$22] ; # R\n  %64 = phi i64 [%56, %$22] ; # L\n  br label %$22\n$24:\n  %65 = phi i64 [%54, %$22] ; # X\n  %66 = phi i64 [%55, %$22] ; # R\n  %67 = phi i64 [%56, %$22] ; # L\n; # (rdl R L)\n  call void @rdl(i64 %66, i64 %67)\n  br label %$21\n$21:\n  %68 = phi i64 [%48, %$19], [%65, %$24] ; # X\n  %69 = phi i64 [%50, %$19], [%66, %$24] ; # R\n  br label %$6\n$17:\n  %70 = phi i64 [%26, %$12] ; # X\n  %71 = phi i64 [%40, %$12] ; # R\n  br label %$4\n$6:\n  %72 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%22, %$11], [%69, %$21] ; # ->\n; # (drop *Safe)\n  %73 = inttoptr i64 %10 to i64*\n  %74 = getelementptr i64, i64* %73, i32 1\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %75, i64* %76\n  ret i64 %72\n}\n\ndefine i64 @read0(i1) align 8 {\n$1:\n; # (let C (skip) (when Top (let In: (inFile (val $InFile)) (In: src ...\n; # (skip)\n  %1 = call i32 @skip()\n; # (when Top (let In: (inFile (val $InFile)) (In: src (In: line))))\n  br i1 %0, label %$2, label %$3\n$2:\n  %2 = phi i1 [%0, %$1] ; # Top\n  %3 = phi i32 [%1, %$1] ; # C\n; # (let In: (inFile (val $InFile)) (In: src (In: line)))\n; # (val $InFile)\n  %4 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (In: src (In: line))\n  %5 = getelementptr i8, i8* %4, i32 20\n  %6 = bitcast i8* %5 to i32*\n  %7 = getelementptr i8, i8* %4, i32 16\n  %8 = bitcast i8* %7 to i32*\n  %9 = load i32, i32* %8\n  store i32 %9, i32* %6\n  br label %$3\n$3:\n  %10 = phi i1 [%0, %$1], [%2, %$2] ; # Top\n  %11 = phi i32 [%1, %$1], [%3, %$2] ; # C\n; # (cond ((lt0 C) (unless Top (eofErr)) $Nil) ((== C (char \"(\")) (pr...\n; # (lt0 C)\n  %12 = icmp slt i32 %11, 0\n  br i1 %12, label %$6, label %$5\n$6:\n  %13 = phi i1 [%10, %$3] ; # Top\n  %14 = phi i32 [%11, %$3] ; # C\n; # (unless Top (eofErr))\n  br i1 %13, label %$8, label %$7\n$7:\n  %15 = phi i1 [%13, %$6] ; # Top\n  %16 = phi i32 [%14, %$6] ; # C\n; # (eofErr)\n  call void @eofErr()\n  unreachable\n$8:\n  %17 = phi i1 [%13, %$6] ; # Top\n  %18 = phi i32 [%14, %$6] ; # C\n  br label %$4\n$5:\n  %19 = phi i1 [%10, %$3] ; # Top\n  %20 = phi i32 [%11, %$3] ; # C\n; # (== C (char \"(\"))\n  %21 = icmp eq i32 %20, 40\n  br i1 %21, label %$10, label %$9\n$10:\n  %22 = phi i1 [%19, %$5] ; # Top\n  %23 = phi i32 [%20, %$5] ; # C\n; # (prog1 (rdList) (and Top (== (val $Chr) (char \"]\")) (call $Get)))...\n; # (rdList)\n  %24 = call i64 @rdList()\n; # (and Top (== (val $Chr) (char \"]\")) (call $Get))\n  br i1 %22, label %$12, label %$11\n$12:\n  %25 = phi i1 [%22, %$10] ; # Top\n  %26 = phi i32 [%23, %$10] ; # C\n; # (val $Chr)\n  %27 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== (val $Chr) (char \"]\"))\n  %28 = icmp eq i32 %27, 93\n  br i1 %28, label %$13, label %$11\n$13:\n  %29 = phi i1 [%25, %$12] ; # Top\n  %30 = phi i32 [%26, %$12] ; # C\n; # (call $Get)\n  %31 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %32 = call i32 %31()\n  %33 = icmp ne i32 %32, 0\n  br label %$11\n$11:\n  %34 = phi i1 [%22, %$10], [%25, %$12], [%29, %$13] ; # Top\n  %35 = phi i32 [%23, %$10], [%26, %$12], [%30, %$13] ; # C\n  %36 = phi i1 [0, %$10], [0, %$12], [%33, %$13] ; # ->\n  br label %$4\n$9:\n  %37 = phi i1 [%19, %$5] ; # Top\n  %38 = phi i32 [%20, %$5] ; # C\n; # (== C (char \"[\"))\n  %39 = icmp eq i32 %38, 91\n  br i1 %39, label %$15, label %$14\n$15:\n  %40 = phi i1 [%37, %$9] ; # Top\n  %41 = phi i32 [%38, %$9] ; # C\n; # (let X (rdList) (unless (== (val $Chr) (char \"]\")) (err 0 X ($ \"S...\n; # (rdList)\n  %42 = call i64 @rdList()\n; # (unless (== (val $Chr) (char \"]\")) (err 0 X ($ \"Super parentheses...\n; # (val $Chr)\n  %43 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== (val $Chr) (char \"]\"))\n  %44 = icmp eq i32 %43, 93\n  br i1 %44, label %$17, label %$16\n$16:\n  %45 = phi i1 [%40, %$15] ; # Top\n  %46 = phi i32 [%41, %$15] ; # C\n  %47 = phi i64 [%42, %$15] ; # X\n; # (err 0 X ($ \"Super parentheses mismatch\") null)\n  call void @err(i64 0, i64 %47, i8* bitcast ([27 x i8]* @$45 to i8*), i8* null)\n  unreachable\n$17:\n  %48 = phi i1 [%40, %$15] ; # Top\n  %49 = phi i32 [%41, %$15] ; # C\n  %50 = phi i64 [%42, %$15] ; # X\n; # (call $Get)\n  %51 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %52 = call i32 %51()\n  br label %$4\n$14:\n  %53 = phi i1 [%37, %$9] ; # Top\n  %54 = phi i32 [%38, %$9] ; # C\n; # (== C (char \"'\"))\n  %55 = icmp eq i32 %54, 39\n  br i1 %55, label %$19, label %$18\n$19:\n  %56 = phi i1 [%53, %$14] ; # Top\n  %57 = phi i32 [%54, %$14] ; # C\n; # (call $Get)\n  %58 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %59 = call i32 %58()\n; # (read0 Top)\n  %60 = call i64 @read0(i1 %56)\n; # (cons $Quote (read0 Top))\n  %61 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 264) to i64), i64 %60)\n  br label %$4\n$18:\n  %62 = phi i1 [%53, %$14] ; # Top\n  %63 = phi i32 [%54, %$14] ; # C\n; # (== C (char \",\"))\n  %64 = icmp eq i32 %63, 44\n  br i1 %64, label %$21, label %$20\n$21:\n  %65 = phi i1 [%62, %$18] ; # Top\n  %66 = phi i32 [%63, %$18] ; # C\n; # (call $Get)\n  %67 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %68 = call i32 %67()\n; # (let (Tr1 (save (val $Transient)) Tr2 (save (val 2 $Transient))) ...\n; # (val $Transient)\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %70 = load i64, i64* %69\n; # (save (val $Transient))\n  %71 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %72 = load i64, i64* %71\n  %73 = alloca i64, i64 2, align 16\n  %74 = ptrtoint i64* %73 to i64\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = add i64 %74, 8\n  %77 = inttoptr i64 %76 to i64*\n  store i64 %72, i64* %77\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %74, i64* %78\n; # (val 2 $Transient)\n  %79 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (save (val 2 $Transient))\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %83 = load i64, i64* %82\n  %84 = alloca i64, i64 2, align 16\n  %85 = ptrtoint i64* %84 to i64\n  %86 = inttoptr i64 %85 to i64*\n  store i64 %81, i64* %86\n  %87 = add i64 %85, 8\n  %88 = inttoptr i64 %87 to i64*\n  store i64 %83, i64* %88\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %85, i64* %89\n; # (set $Transient (set 2 $Transient $Nil))\n; # (set 2 $Transient $Nil)\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %91\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %92\n; # (prog1 (let X (read0 Top) (if (t? (val $Uni)) X (save X (if (pair...\n; # (let X (read0 Top) (if (t? (val $Uni)) X (save X (if (pair (idxPu...\n; # (read0 Top)\n  %93 = call i64 @read0(i1 %65)\n; # (if (t? (val $Uni)) X (save X (if (pair (idxPut $Uni X $T)) (car ...\n; # (val $Uni)\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 792) to i64) to i64*\n  %95 = load i64, i64* %94\n; # (t? (val $Uni))\n  %96 = icmp eq i64 %95, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %96, label %$22, label %$23\n$22:\n  %97 = phi i1 [%65, %$21] ; # Top\n  %98 = phi i32 [%66, %$21] ; # C\n  %99 = phi i64 [%70, %$21] ; # Tr1\n  %100 = phi i64 [%81, %$21] ; # Tr2\n  %101 = phi i64 [%93, %$21] ; # X\n  br label %$24\n$23:\n  %102 = phi i1 [%65, %$21] ; # Top\n  %103 = phi i32 [%66, %$21] ; # C\n  %104 = phi i64 [%70, %$21] ; # Tr1\n  %105 = phi i64 [%81, %$21] ; # Tr2\n  %106 = phi i64 [%93, %$21] ; # X\n; # (save X (if (pair (idxPut $Uni X $T)) (car @) X))\n  %107 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %108 = load i64, i64* %107\n  %109 = alloca i64, i64 2, align 16\n  %110 = ptrtoint i64* %109 to i64\n  %111 = inttoptr i64 %110 to i64*\n  store i64 %106, i64* %111\n  %112 = add i64 %110, 8\n  %113 = inttoptr i64 %112 to i64*\n  store i64 %108, i64* %113\n  %114 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %114\n; # (if (pair (idxPut $Uni X $T)) (car @) X)\n; # (idxPut $Uni X $T)\n  %115 = call i64 @idxPut(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 792) to i64), i64 %106, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64))\n; # (pair (idxPut $Uni X $T))\n  %116 = and i64 %115, 15\n  %117 = icmp eq i64 %116, 0\n  br i1 %117, label %$25, label %$26\n$25:\n  %118 = phi i1 [%102, %$23] ; # Top\n  %119 = phi i32 [%103, %$23] ; # C\n  %120 = phi i64 [%104, %$23] ; # Tr1\n  %121 = phi i64 [%105, %$23] ; # Tr2\n  %122 = phi i64 [%106, %$23] ; # X\n; # (car @)\n  %123 = inttoptr i64 %115 to i64*\n  %124 = load i64, i64* %123\n  br label %$27\n$26:\n  %125 = phi i1 [%102, %$23] ; # Top\n  %126 = phi i32 [%103, %$23] ; # C\n  %127 = phi i64 [%104, %$23] ; # Tr1\n  %128 = phi i64 [%105, %$23] ; # Tr2\n  %129 = phi i64 [%106, %$23] ; # X\n  br label %$27\n$27:\n  %130 = phi i1 [%118, %$25], [%125, %$26] ; # Top\n  %131 = phi i32 [%119, %$25], [%126, %$26] ; # C\n  %132 = phi i64 [%120, %$25], [%127, %$26] ; # Tr1\n  %133 = phi i64 [%121, %$25], [%128, %$26] ; # Tr2\n  %134 = phi i64 [%122, %$25], [%129, %$26] ; # X\n  %135 = phi i64 [%124, %$25], [%129, %$26] ; # ->\n; # drop\n  %136 = inttoptr i64 %110 to i64*\n  %137 = getelementptr i64, i64* %136, i32 1\n  %138 = load i64, i64* %137\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %138, i64* %139\n  br label %$24\n$24:\n  %140 = phi i1 [%97, %$22], [%130, %$27] ; # Top\n  %141 = phi i32 [%98, %$22], [%131, %$27] ; # C\n  %142 = phi i64 [%99, %$22], [%132, %$27] ; # Tr1\n  %143 = phi i64 [%100, %$22], [%133, %$27] ; # Tr2\n  %144 = phi i64 [%101, %$22], [%134, %$27] ; # X\n  %145 = phi i64 [%101, %$22], [%135, %$27] ; # ->\n; # (set 2 $Transient Tr2)\n  %146 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  store i64 %143, i64* %147\n; # (set $Transient Tr1)\n  %148 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 %142, i64* %148\n; # (drop *Safe)\n  %149 = inttoptr i64 %74 to i64*\n  %150 = getelementptr i64, i64* %149, i32 1\n  %151 = load i64, i64* %150\n  %152 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %151, i64* %152\n  br label %$4\n$20:\n  %153 = phi i1 [%62, %$18] ; # Top\n  %154 = phi i32 [%63, %$18] ; # C\n; # (== C (char \"`\"))\n  %155 = icmp eq i32 %154, 96\n  br i1 %155, label %$29, label %$28\n$29:\n  %156 = phi i1 [%153, %$20] ; # Top\n  %157 = phi i32 [%154, %$20] ; # C\n; # (call $Get)\n  %158 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %159 = call i32 %158()\n; # (let E (read0 Top) (save E (eval E)))\n; # (read0 Top)\n  %160 = call i64 @read0(i1 %156)\n; # (save E (eval E))\n  %161 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %162 = load i64, i64* %161\n  %163 = alloca i64, i64 2, align 16\n  %164 = ptrtoint i64* %163 to i64\n  %165 = inttoptr i64 %164 to i64*\n  store i64 %160, i64* %165\n  %166 = add i64 %164, 8\n  %167 = inttoptr i64 %166 to i64*\n  store i64 %162, i64* %167\n  %168 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %164, i64* %168\n; # (eval E)\n  %169 = and i64 %160, 6\n  %170 = icmp ne i64 %169, 0\n  br i1 %170, label %$32, label %$31\n$32:\n  %171 = phi i64 [%160, %$29] ; # X\n  br label %$30\n$31:\n  %172 = phi i64 [%160, %$29] ; # X\n  %173 = and i64 %172, 8\n  %174 = icmp ne i64 %173, 0\n  br i1 %174, label %$34, label %$33\n$34:\n  %175 = phi i64 [%172, %$31] ; # X\n  %176 = inttoptr i64 %175 to i64*\n  %177 = load i64, i64* %176\n  br label %$30\n$33:\n  %178 = phi i64 [%172, %$31] ; # X\n  %179 = call i64 @evList(i64 %178)\n  br label %$30\n$30:\n  %180 = phi i64 [%171, %$32], [%175, %$34], [%178, %$33] ; # X\n  %181 = phi i64 [%171, %$32], [%177, %$34], [%179, %$33] ; # ->\n; # drop\n  %182 = inttoptr i64 %164 to i64*\n  %183 = getelementptr i64, i64* %182, i32 1\n  %184 = load i64, i64* %183\n  %185 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %184, i64* %185\n  br label %$4\n$28:\n  %186 = phi i1 [%153, %$20] ; # Top\n  %187 = phi i32 [%154, %$20] ; # C\n; # (== C (char \"\\\"\"))\n  %188 = icmp eq i32 %187, 34\n  br i1 %188, label %$36, label %$35\n$36:\n  %189 = phi i1 [%186, %$28] ; # Top\n  %190 = phi i32 [%187, %$28] ; # C\n; # (if (== (setq C (call $Get)) (char \"\\\"\")) (prog (call $Get) $Nil)...\n; # (call $Get)\n  %191 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %192 = call i32 %191()\n; # (== (setq C (call $Get)) (char \"\\\"\"))\n  %193 = icmp eq i32 %192, 34\n  br i1 %193, label %$37, label %$38\n$37:\n  %194 = phi i1 [%189, %$36] ; # Top\n  %195 = phi i32 [%192, %$36] ; # C\n; # (call $Get)\n  %196 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %197 = call i32 %196()\n  br label %$39\n$38:\n  %198 = phi i1 [%189, %$36] ; # Top\n  %199 = phi i32 [%192, %$36] ; # C\n; # (unless (testEsc C) (eofErr))\n; # (testEsc C)\n  %200 = call i1 @testEsc(i32 %199)\n  br i1 %200, label %$41, label %$40\n$40:\n  %201 = phi i1 [%198, %$38] ; # Top\n  %202 = phi i32 [%199, %$38] ; # C\n; # (eofErr)\n  call void @eofErr()\n  unreachable\n$41:\n  %203 = phi i1 [%198, %$38] ; # Top\n  %204 = phi i32 [%199, %$38] ; # C\n; # (let (P (push 4 NIL ZERO NIL) Q (link (ofs P 2))) (loop (charSym ...\n; # (push 4 NIL ZERO NIL)\n  %205 = alloca i64, i64 4, align 16\n  store i64 4, i64* %205\n  %206 = getelementptr i64, i64* %205, i32 2\n  store i64 2, i64* %206\n; # (ofs P 2)\n  %207 = getelementptr i64, i64* %205, i32 2\n; # (link (ofs P 2))\n  %208 = ptrtoint i64* %207 to i64\n  %209 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %210 = load i64, i64* %209\n  %211 = inttoptr i64 %208 to i64*\n  %212 = getelementptr i64, i64* %211, i32 1\n  store i64 %210, i64* %212\n  %213 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %208, i64* %213\n; # (loop (charSym (val $Chr) P) (? (== (setq C (call $Get)) (char \"\\...\n  br label %$42\n$42:\n  %214 = phi i1 [%203, %$41], [%231, %$46] ; # Top\n  %215 = phi i32 [%204, %$41], [%232, %$46] ; # C\n  %216 = phi i64* [%205, %$41], [%233, %$46] ; # P\n  %217 = phi i64 [%208, %$41], [%234, %$46] ; # Q\n; # (val $Chr)\n  %218 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (charSym (val $Chr) P)\n  call void @charSym(i32 %218, i64* %216)\n; # (? (== (setq C (call $Get)) (char \"\\\"\")))\n; # (call $Get)\n  %219 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %220 = call i32 %219()\n; # (== (setq C (call $Get)) (char \"\\\"\"))\n  %221 = icmp eq i32 %220, 34\n  br i1 %221, label %$44, label %$43\n$43:\n  %222 = phi i1 [%214, %$42] ; # Top\n  %223 = phi i32 [%220, %$42] ; # C\n  %224 = phi i64* [%216, %$42] ; # P\n  %225 = phi i64 [%217, %$42] ; # Q\n; # (unless (testEsc C) (eofErr))\n; # (testEsc C)\n  %226 = call i1 @testEsc(i32 %223)\n  br i1 %226, label %$46, label %$45\n$45:\n  %227 = phi i1 [%222, %$43] ; # Top\n  %228 = phi i32 [%223, %$43] ; # C\n  %229 = phi i64* [%224, %$43] ; # P\n  %230 = phi i64 [%225, %$43] ; # Q\n; # (eofErr)\n  call void @eofErr()\n  unreachable\n$46:\n  %231 = phi i1 [%222, %$43] ; # Top\n  %232 = phi i32 [%223, %$43] ; # C\n  %233 = phi i64* [%224, %$43] ; # P\n  %234 = phi i64 [%225, %$43] ; # Q\n  br label %$42\n$44:\n  %235 = phi i1 [%214, %$42] ; # Top\n  %236 = phi i32 [%220, %$42] ; # C\n  %237 = phi i64* [%216, %$42] ; # P\n  %238 = phi i64 [%217, %$42] ; # Q\n  %239 = phi i64 [0, %$42] ; # ->\n; # (call $Get)\n  %240 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %241 = call i32 %240()\n; # (drop Q (intern 0 0 (val Q) $Transient $Nil NO))\n; # (val Q)\n  %242 = inttoptr i64 %238 to i64*\n  %243 = load i64, i64* %242\n; # (intern 0 0 (val Q) $Transient $Nil NO)\n  %244 = call i64 @intern(i64 0, i64 0, i64 %243, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i1 0)\n  %245 = inttoptr i64 %238 to i64*\n  %246 = getelementptr i64, i64* %245, i32 1\n  %247 = load i64, i64* %246\n  %248 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %247, i64* %248\n  br label %$39\n$39:\n  %249 = phi i1 [%194, %$37], [%235, %$44] ; # Top\n  %250 = phi i32 [%195, %$37], [%236, %$44] ; # C\n  %251 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$37], [%244, %$44] ; # ->\n  br label %$4\n$35:\n  %252 = phi i1 [%186, %$28] ; # Top\n  %253 = phi i32 [%187, %$28] ; # C\n; # (== C (char \"{\"))\n  %254 = icmp eq i32 %253, 123\n  br i1 %254, label %$48, label %$47\n$48:\n  %255 = phi i1 [%252, %$35] ; # Top\n  %256 = phi i32 [%253, %$35] ; # C\n; # (prog1 (if (== (setq C (call $Get)) (char \"}\")) (consSym ZERO $Ni...\n; # (if (== (setq C (call $Get)) (char \"}\")) (consSym ZERO $Nil) (let...\n; # (call $Get)\n  %257 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %258 = call i32 %257()\n; # (== (setq C (call $Get)) (char \"}\"))\n  %259 = icmp eq i32 %258, 125\n  br i1 %259, label %$49, label %$50\n$49:\n  %260 = phi i1 [%255, %$48] ; # Top\n  %261 = phi i32 [%258, %$48] ; # C\n; # (consSym ZERO $Nil)\n  %262 = call i64 @consSym(i64 2, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$51\n$50:\n  %263 = phi i1 [%255, %$48] ; # Top\n  %264 = phi i32 [%258, %$48] ; # C\n; # (let F (i32 0) (while (>= C (char \"@\")) (when (> C (char \"O\")) (b...\n; # (i32 0)\n; # (while (>= C (char \"@\")) (when (> C (char \"O\")) (badInput)) (setq...\n  br label %$52\n$52:\n  %265 = phi i1 [%263, %$50], [%276, %$56] ; # Top\n  %266 = phi i32 [%264, %$50], [%283, %$56] ; # C\n  %267 = phi i32 [0, %$50], [%281, %$56] ; # F\n; # (>= C (char \"@\"))\n  %268 = icmp sge i32 %266, 64\n  br i1 %268, label %$53, label %$54\n$53:\n  %269 = phi i1 [%265, %$52] ; # Top\n  %270 = phi i32 [%266, %$52] ; # C\n  %271 = phi i32 [%267, %$52] ; # F\n; # (when (> C (char \"O\")) (badInput))\n; # (> C (char \"O\"))\n  %272 = icmp sgt i32 %270, 79\n  br i1 %272, label %$55, label %$56\n$55:\n  %273 = phi i1 [%269, %$53] ; # Top\n  %274 = phi i32 [%270, %$53] ; # C\n  %275 = phi i32 [%271, %$53] ; # F\n; # (badInput)\n  call void @badInput()\n  unreachable\n$56:\n  %276 = phi i1 [%269, %$53] ; # Top\n  %277 = phi i32 [%270, %$53] ; # C\n  %278 = phi i32 [%271, %$53] ; # F\n; # (shl F 4)\n  %279 = shl i32 %278, 4\n; # (- C (char \"@\"))\n  %280 = sub i32 %277, 64\n; # (| (shl F 4) (- C (char \"@\")))\n  %281 = or i32 %279, %280\n; # (call $Get)\n  %282 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %283 = call i32 %282()\n  br label %$52\n$54:\n  %284 = phi i1 [%265, %$52] ; # Top\n  %285 = phi i32 [%266, %$52] ; # C\n  %286 = phi i32 [%267, %$52] ; # F\n; # (let N 0 (loop (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) ...\n; # (loop (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) (badInput...\n  br label %$57\n$57:\n  %287 = phi i1 [%284, %$54], [%317, %$62] ; # Top\n  %288 = phi i32 [%285, %$54], [%318, %$62] ; # C\n  %289 = phi i32 [%286, %$54], [%319, %$62] ; # F\n  %290 = phi i64 [0, %$54], [%320, %$62] ; # N\n; # (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) (badInput))\n; # (and (>= C (char \"0\")) (>= (char \"7\") C))\n; # (>= C (char \"0\"))\n  %291 = icmp sge i32 %288, 48\n  br i1 %291, label %$59, label %$58\n$59:\n  %292 = phi i1 [%287, %$57] ; # Top\n  %293 = phi i32 [%288, %$57] ; # C\n  %294 = phi i32 [%289, %$57] ; # F\n  %295 = phi i64 [%290, %$57] ; # N\n; # (>= (char \"7\") C)\n  %296 = icmp sge i32 55, %293\n  br label %$58\n$58:\n  %297 = phi i1 [%287, %$57], [%292, %$59] ; # Top\n  %298 = phi i32 [%288, %$57], [%293, %$59] ; # C\n  %299 = phi i32 [%289, %$57], [%294, %$59] ; # F\n  %300 = phi i64 [%290, %$57], [%295, %$59] ; # N\n  %301 = phi i1 [0, %$57], [%296, %$59] ; # ->\n  br i1 %301, label %$61, label %$60\n$60:\n  %302 = phi i1 [%297, %$58] ; # Top\n  %303 = phi i32 [%298, %$58] ; # C\n  %304 = phi i32 [%299, %$58] ; # F\n  %305 = phi i64 [%300, %$58] ; # N\n; # (badInput)\n  call void @badInput()\n  unreachable\n$61:\n  %306 = phi i1 [%297, %$58] ; # Top\n  %307 = phi i32 [%298, %$58] ; # C\n  %308 = phi i32 [%299, %$58] ; # F\n  %309 = phi i64 [%300, %$58] ; # N\n; # (shl N 3)\n  %310 = shl i64 %309, 3\n; # (- C (char \"0\"))\n  %311 = sub i32 %307, 48\n; # (i64 (- C (char \"0\")))\n  %312 = sext i32 %311 to i64\n; # (| (shl N 3) (i64 (- C (char \"0\"))))\n  %313 = or i64 %310, %312\n; # (? (== (setq C (call $Get)) (char \"}\")))\n; # (call $Get)\n  %314 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %315 = call i32 %314()\n; # (== (setq C (call $Get)) (char \"}\"))\n  %316 = icmp eq i32 %315, 125\n  br i1 %316, label %$63, label %$62\n$62:\n  %317 = phi i1 [%306, %$61] ; # Top\n  %318 = phi i32 [%315, %$61] ; # C\n  %319 = phi i32 [%308, %$61] ; # F\n  %320 = phi i64 [%313, %$61] ; # N\n  br label %$57\n$63:\n  %321 = phi i1 [%306, %$61] ; # Top\n  %322 = phi i32 [%315, %$61] ; # C\n  %323 = phi i32 [%308, %$61] ; # F\n  %324 = phi i64 [%313, %$61] ; # N\n  %325 = phi i64 [0, %$61] ; # ->\n; # (extNm F N)\n  %326 = call i64 @extNm(i32 %323, i64 %324)\n; # (extern (extNm F N))\n  %327 = call i64 @extern(i64 %326)\n  br label %$51\n$51:\n  %328 = phi i1 [%260, %$49], [%321, %$63] ; # Top\n  %329 = phi i32 [%261, %$49], [%322, %$63] ; # C\n  %330 = phi i64 [%262, %$49], [%327, %$63] ; # ->\n; # (call $Get)\n  %331 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %332 = call i32 %331()\n  br label %$4\n$47:\n  %333 = phi i1 [%252, %$35] ; # Top\n  %334 = phi i32 [%253, %$35] ; # C\n; # (or (== C (char \")\")) (== C (char \"]\")) (== C (char \"~\")))\n; # (== C (char \")\"))\n  %335 = icmp eq i32 %334, 41\n  br i1 %335, label %$64, label %$65\n$65:\n  %336 = phi i1 [%333, %$47] ; # Top\n  %337 = phi i32 [%334, %$47] ; # C\n; # (== C (char \"]\"))\n  %338 = icmp eq i32 %337, 93\n  br i1 %338, label %$64, label %$66\n$66:\n  %339 = phi i1 [%336, %$65] ; # Top\n  %340 = phi i32 [%337, %$65] ; # C\n; # (== C (char \"~\"))\n  %341 = icmp eq i32 %340, 126\n  br label %$64\n$64:\n  %342 = phi i1 [%333, %$47], [%336, %$65], [%339, %$66] ; # Top\n  %343 = phi i32 [%334, %$47], [%337, %$65], [%340, %$66] ; # C\n  %344 = phi i1 [1, %$47], [1, %$65], [%341, %$66] ; # ->\n  br i1 %344, label %$68, label %$67\n$68:\n  %345 = phi i1 [%342, %$64] ; # Top\n  %346 = phi i32 [%343, %$64] ; # C\n; # (badInput)\n  call void @badInput()\n  unreachable\n$67:\n  %347 = phi i1 [%342, %$64] ; # Top\n  %348 = phi i32 [%343, %$64] ; # C\n; # (when (== C (char \"\\\\\")) (call $Get))\n; # (== C (char \"\\\\\"))\n  %349 = icmp eq i32 %348, 92\n  br i1 %349, label %$69, label %$70\n$69:\n  %350 = phi i1 [%347, %$67] ; # Top\n  %351 = phi i32 [%348, %$67] ; # C\n; # (call $Get)\n  %352 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %353 = call i32 %352()\n  br label %$70\n$70:\n  %354 = phi i1 [%347, %$67], [%350, %$69] ; # Top\n  %355 = phi i32 [%348, %$67], [%351, %$69] ; # C\n; # (val $Chr)\n  %356 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (call $Get)\n  %357 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %358 = call i32 %357()\n; # (rdAtom C)\n  %359 = call i64 @rdAtom(i32 %356)\n  br label %$4\n$4:\n  %360 = phi i1 [%17, %$8], [%34, %$11], [%48, %$17], [%56, %$19], [%140, %$24], [%156, %$30], [%249, %$39], [%328, %$51], [%354, %$70] ; # Top\n  %361 = phi i32 [%18, %$8], [%35, %$11], [%49, %$17], [%57, %$19], [%141, %$24], [%157, %$30], [%250, %$39], [%329, %$51], [%356, %$70] ; # C\n  %362 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8], [%24, %$11], [%50, %$17], [%61, %$19], [%145, %$24], [%181, %$30], [%251, %$39], [%330, %$51], [%359, %$70] ; # ->\n  ret i64 %362\n}\n\ndefine i64 @read1(i32) align 8 {\n$1:\n; # (unless (val $Chr) (call $Get))\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$3, label %$2\n$2:\n  %3 = phi i32 [%0, %$1] ; # End\n; # (call $Get)\n  %4 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %5 = call i32 %4()\n  br label %$3\n$3:\n  %6 = phi i32 [%0, %$1], [%3, %$2] ; # End\n; # (if (== End (val $Chr)) $Nil (read0 YES))\n; # (val $Chr)\n  %7 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== End (val $Chr))\n  %8 = icmp eq i32 %6, %7\n  br i1 %8, label %$4, label %$5\n$4:\n  %9 = phi i32 [%6, %$3] ; # End\n  br label %$6\n$5:\n  %10 = phi i32 [%6, %$3] ; # End\n; # (read0 YES)\n  %11 = call i64 @read0(i1 1)\n  br label %$6\n$6:\n  %12 = phi i32 [%9, %$4], [%10, %$5] ; # End\n  %13 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [%11, %$5] ; # ->\n  ret i64 %13\n}\n\ndefine i64 @token(i64, i32) align 8 {\n$1:\n; # (let C (if (val $Chr) @ (call $Get)) (cond ((lt0 (skipc Cmt)) 0) ...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %2 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %3 = icmp ne i32 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Set\n  %5 = phi i32 [%1, %$1] ; # Cmt\n  br label %$4\n$3:\n  %6 = phi i64 [%0, %$1] ; # Set\n  %7 = phi i32 [%1, %$1] ; # Cmt\n; # (call $Get)\n  %8 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %9 = call i32 %8()\n  br label %$4\n$4:\n  %10 = phi i64 [%4, %$2], [%6, %$3] ; # Set\n  %11 = phi i32 [%5, %$2], [%7, %$3] ; # Cmt\n  %12 = phi i32 [%2, %$2], [%9, %$3] ; # ->\n; # (cond ((lt0 (skipc Cmt)) 0) ((== (setq C @) (char \"\\\"\")) (cond ((...\n; # (skipc Cmt)\n  %13 = call i32 @skipc(i32 %11)\n; # (lt0 (skipc Cmt))\n  %14 = icmp slt i32 %13, 0\n  br i1 %14, label %$7, label %$6\n$7:\n  %15 = phi i64 [%10, %$4] ; # Set\n  %16 = phi i32 [%11, %$4] ; # Cmt\n  %17 = phi i32 [%12, %$4] ; # C\n  br label %$5\n$6:\n  %18 = phi i64 [%10, %$4] ; # Set\n  %19 = phi i32 [%11, %$4] ; # Cmt\n  %20 = phi i32 [%12, %$4] ; # C\n; # (== (setq C @) (char \"\\\"\"))\n  %21 = icmp eq i32 %13, 34\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%18, %$6] ; # Set\n  %23 = phi i32 [%19, %$6] ; # Cmt\n  %24 = phi i32 [%13, %$6] ; # C\n; # (cond ((== (setq C (call $Get)) (char \"\\\"\")) (call $Get) $Nil) ((...\n; # (call $Get)\n  %25 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %26 = call i32 %25()\n; # (== (setq C (call $Get)) (char \"\\\"\"))\n  %27 = icmp eq i32 %26, 34\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%22, %$9] ; # Set\n  %29 = phi i32 [%23, %$9] ; # Cmt\n  %30 = phi i32 [%26, %$9] ; # C\n; # (call $Get)\n  %31 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %32 = call i32 %31()\n  br label %$10\n$11:\n  %33 = phi i64 [%22, %$9] ; # Set\n  %34 = phi i32 [%23, %$9] ; # Cmt\n  %35 = phi i32 [%26, %$9] ; # C\n; # (testEsc C)\n  %36 = call i1 @testEsc(i32 %35)\n; # (not (testEsc C))\n  %37 = icmp eq i1 %36, 0\n  br i1 %37, label %$14, label %$13\n$14:\n  %38 = phi i64 [%33, %$11] ; # Set\n  %39 = phi i32 [%34, %$11] ; # Cmt\n  %40 = phi i32 [%35, %$11] ; # C\n  br label %$10\n$13:\n  %41 = phi i64 [%33, %$11] ; # Set\n  %42 = phi i32 [%34, %$11] ; # Cmt\n  %43 = phi i32 [%35, %$11] ; # C\n; # (let (Y (cons (mkChar (val $Chr)) $Nil) R (save Y)) (loop (? (== ...\n; # (val $Chr)\n  %44 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (mkChar (val $Chr))\n  %45 = call i64 @mkChar(i32 %44)\n; # (cons (mkChar (val $Chr)) $Nil)\n  %46 = call i64 @cons(i64 %45, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = alloca i64, i64 2, align 16\n  %50 = ptrtoint i64* %49 to i64\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %46, i64* %51\n  %52 = add i64 %50, 8\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %50, i64* %54\n; # (loop (? (== (setq C (call $Get)) (char \"\\\"\")) (call $Get)) (? (n...\n  br label %$15\n$15:\n  %55 = phi i64 [%41, %$13], [%77, %$19] ; # Set\n  %56 = phi i32 [%42, %$13], [%78, %$19] ; # Cmt\n  %57 = phi i32 [%43, %$13], [%79, %$19] ; # C\n  %58 = phi i64 [%46, %$13], [%84, %$19] ; # Y\n  %59 = phi i64 [%46, %$13], [%81, %$19] ; # R\n; # (? (== (setq C (call $Get)) (char \"\\\"\")) (call $Get))\n; # (call $Get)\n  %60 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %61 = call i32 %60()\n; # (== (setq C (call $Get)) (char \"\\\"\"))\n  %62 = icmp eq i32 %61, 34\n  br i1 %62, label %$18, label %$16\n$18:\n  %63 = phi i64 [%55, %$15] ; # Set\n  %64 = phi i32 [%56, %$15] ; # Cmt\n  %65 = phi i32 [%61, %$15] ; # C\n  %66 = phi i64 [%58, %$15] ; # Y\n  %67 = phi i64 [%59, %$15] ; # R\n; # (call $Get)\n  %68 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %69 = call i32 %68()\n  br label %$17\n$16:\n  %70 = phi i64 [%55, %$15] ; # Set\n  %71 = phi i32 [%56, %$15] ; # Cmt\n  %72 = phi i32 [%61, %$15] ; # C\n  %73 = phi i64 [%58, %$15] ; # Y\n  %74 = phi i64 [%59, %$15] ; # R\n; # (? (not (testEsc C)))\n; # (testEsc C)\n  %75 = call i1 @testEsc(i32 %72)\n; # (not (testEsc C))\n  %76 = icmp eq i1 %75, 0\n  br i1 %76, label %$17, label %$19\n$19:\n  %77 = phi i64 [%70, %$16] ; # Set\n  %78 = phi i32 [%71, %$16] ; # Cmt\n  %79 = phi i32 [%72, %$16] ; # C\n  %80 = phi i64 [%73, %$16] ; # Y\n  %81 = phi i64 [%74, %$16] ; # R\n; # (set 2 Y (cons (mkChar (val $Chr)) $Nil))\n; # (val $Chr)\n  %82 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (mkChar (val $Chr))\n  %83 = call i64 @mkChar(i32 %82)\n; # (cons (mkChar (val $Chr)) $Nil)\n  %84 = call i64 @cons(i64 %83, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %85 = inttoptr i64 %80 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  store i64 %84, i64* %86\n  br label %$15\n$17:\n  %87 = phi i64 [%63, %$18], [%70, %$16] ; # Set\n  %88 = phi i32 [%64, %$18], [%71, %$16] ; # Cmt\n  %89 = phi i32 [%65, %$18], [%72, %$16] ; # C\n  %90 = phi i64 [%66, %$18], [%73, %$16] ; # Y\n  %91 = phi i64 [%67, %$18], [%74, %$16] ; # R\n  %92 = phi i32 [%69, %$18], [0, %$16] ; # ->\n; # (drop *Safe)\n  %93 = inttoptr i64 %50 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %95, i64* %96\n  br label %$10\n$10:\n  %97 = phi i64 [%28, %$12], [%38, %$14], [%87, %$17] ; # Set\n  %98 = phi i32 [%29, %$12], [%39, %$14], [%88, %$17] ; # Cmt\n  %99 = phi i32 [%30, %$12], [%40, %$14], [%89, %$17] ; # C\n  %100 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14], [%91, %$17] ; # ->\n  br label %$5\n$8:\n  %101 = phi i64 [%18, %$6] ; # Set\n  %102 = phi i32 [%19, %$6] ; # Cmt\n  %103 = phi i32 [%13, %$6] ; # C\n; # (and (>= (char \"9\") C) (>= C (char \"0\")))\n; # (>= (char \"9\") C)\n  %104 = icmp sge i32 57, %103\n  br i1 %104, label %$21, label %$20\n$21:\n  %105 = phi i64 [%101, %$8] ; # Set\n  %106 = phi i32 [%102, %$8] ; # Cmt\n  %107 = phi i32 [%103, %$8] ; # C\n; # (>= C (char \"0\"))\n  %108 = icmp sge i32 %107, 48\n  br label %$20\n$20:\n  %109 = phi i64 [%101, %$8], [%105, %$21] ; # Set\n  %110 = phi i32 [%102, %$8], [%106, %$21] ; # Cmt\n  %111 = phi i32 [%103, %$8], [%107, %$21] ; # C\n  %112 = phi i1 [0, %$8], [%108, %$21] ; # ->\n  br i1 %112, label %$23, label %$22\n$23:\n  %113 = phi i64 [%109, %$20] ; # Set\n  %114 = phi i32 [%110, %$20] ; # Cmt\n  %115 = phi i32 [%111, %$20] ; # C\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (loop (byteSym (i...\n; # (push 4 NIL ZERO NIL)\n  %116 = alloca i64, i64 4, align 16\n  store i64 4, i64* %116\n  %117 = getelementptr i64, i64* %116, i32 2\n  store i64 2, i64* %117\n; # (ofs P 2)\n  %118 = getelementptr i64, i64* %116, i32 2\n; # (link (ofs P 2) T)\n  %119 = ptrtoint i64* %118 to i64\n  %120 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %121 = load i64, i64* %120\n  %122 = inttoptr i64 %119 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  store i64 %121, i64* %123\n  %124 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %119, i64* %124\n; # (loop (byteSym (i8 C) P) (? (and (<> (setq C (call $Get)) (char \"...\n  br label %$24\n$24:\n  %125 = phi i64 [%113, %$23], [%153, %$29] ; # Set\n  %126 = phi i32 [%114, %$23], [%154, %$29] ; # Cmt\n  %127 = phi i32 [%115, %$23], [%155, %$29] ; # C\n  %128 = phi i64* [%116, %$23], [%156, %$29] ; # P\n; # (i8 C)\n  %129 = trunc i32 %127 to i8\n; # (byteSym (i8 C) P)\n  call void @byteSym(i8 %129, i64* %128)\n; # (? (and (<> (setq C (call $Get)) (char \".\")) (or (> (char \"0\") C)...\n; # (and (<> (setq C (call $Get)) (char \".\")) (or (> (char \"0\") C) (>...\n; # (call $Get)\n  %130 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %131 = call i32 %130()\n; # (<> (setq C (call $Get)) (char \".\"))\n  %132 = icmp ne i32 %131, 46\n  br i1 %132, label %$26, label %$25\n$26:\n  %133 = phi i64 [%125, %$24] ; # Set\n  %134 = phi i32 [%126, %$24] ; # Cmt\n  %135 = phi i32 [%131, %$24] ; # C\n  %136 = phi i64* [%128, %$24] ; # P\n; # (or (> (char \"0\") C) (> C (char \"9\")))\n; # (> (char \"0\") C)\n  %137 = icmp sgt i32 48, %135\n  br i1 %137, label %$27, label %$28\n$28:\n  %138 = phi i64 [%133, %$26] ; # Set\n  %139 = phi i32 [%134, %$26] ; # Cmt\n  %140 = phi i32 [%135, %$26] ; # C\n  %141 = phi i64* [%136, %$26] ; # P\n; # (> C (char \"9\"))\n  %142 = icmp sgt i32 %140, 57\n  br label %$27\n$27:\n  %143 = phi i64 [%133, %$26], [%138, %$28] ; # Set\n  %144 = phi i32 [%134, %$26], [%139, %$28] ; # Cmt\n  %145 = phi i32 [%135, %$26], [%140, %$28] ; # C\n  %146 = phi i64* [%136, %$26], [%141, %$28] ; # P\n  %147 = phi i1 [1, %$26], [%142, %$28] ; # ->\n  br label %$25\n$25:\n  %148 = phi i64 [%125, %$24], [%143, %$27] ; # Set\n  %149 = phi i32 [%126, %$24], [%144, %$27] ; # Cmt\n  %150 = phi i32 [%131, %$24], [%145, %$27] ; # C\n  %151 = phi i64* [%128, %$24], [%146, %$27] ; # P\n  %152 = phi i1 [0, %$24], [%147, %$27] ; # ->\n  br i1 %152, label %$30, label %$29\n$29:\n  %153 = phi i64 [%148, %$25] ; # Set\n  %154 = phi i32 [%149, %$25] ; # Cmt\n  %155 = phi i32 [%150, %$25] ; # C\n  %156 = phi i64* [%151, %$25] ; # P\n  br label %$24\n$30:\n  %157 = phi i64 [%148, %$25] ; # Set\n  %158 = phi i32 [%149, %$25] ; # Cmt\n  %159 = phi i32 [%150, %$25] ; # C\n  %160 = phi i64* [%151, %$25] ; # P\n  %161 = phi i64 [0, %$25] ; # ->\n; # (val 3 P)\n  %162 = getelementptr i64, i64* %160, i32 2\n  %163 = load i64, i64* %162\n; # (val $Scl)\n  %164 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 568) to i64) to i64*\n  %165 = load i64, i64* %164\n; # (int (val $Scl))\n  %166 = lshr i64 %165, 4\n; # (symToNum (val 3 P) (int (val $Scl)) (char \".\") 0)\n  %167 = call i64 @symToNum(i64 %163, i64 %166, i8 46, i8 0)\n; # (drop *Safe)\n  %168 = inttoptr i64 %119 to i64*\n  %169 = getelementptr i64, i64* %168, i32 1\n  %170 = load i64, i64* %169\n  %171 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %170, i64* %171\n  br label %$5\n$22:\n  %172 = phi i64 [%109, %$20] ; # Set\n  %173 = phi i32 [%110, %$20] ; # Cmt\n  %174 = phi i32 [%111, %$20] ; # C\n; # (let (Nm (xName Set) S (bufString Nm (b8 (bufSize Nm)))) (if (or ...\n; # (xName Set)\n  %175 = call i64 @xName(i64 %172)\n; # (bufSize Nm)\n  %176 = call i64 @bufSize(i64 %175)\n; # (b8 (bufSize Nm))\n  %177 = alloca i8, i64 %176\n; # (bufString Nm (b8 (bufSize Nm)))\n  %178 = call i8* @bufString(i64 %175, i8* %177)\n; # (if (or (== C (char \"+\")) (== C (char \"-\")) (noToken C S)) (prog1...\n; # (or (== C (char \"+\")) (== C (char \"-\")) (noToken C S))\n; # (== C (char \"+\"))\n  %179 = icmp eq i32 %174, 43\n  br i1 %179, label %$31, label %$32\n$32:\n  %180 = phi i64 [%172, %$22] ; # Set\n  %181 = phi i32 [%173, %$22] ; # Cmt\n  %182 = phi i32 [%174, %$22] ; # C\n  %183 = phi i64 [%175, %$22] ; # Nm\n  %184 = phi i8* [%178, %$22] ; # S\n; # (== C (char \"-\"))\n  %185 = icmp eq i32 %182, 45\n  br i1 %185, label %$31, label %$33\n$33:\n  %186 = phi i64 [%180, %$32] ; # Set\n  %187 = phi i32 [%181, %$32] ; # Cmt\n  %188 = phi i32 [%182, %$32] ; # C\n  %189 = phi i64 [%183, %$32] ; # Nm\n  %190 = phi i8* [%184, %$32] ; # S\n; # (noToken C S)\n  %191 = icmp eq i32 %188, 92\n  br i1 %191, label %$34, label %$35\n$35:\n  %192 = phi i8* [%190, %$33] ; # Set\n  %193 = phi i32 [%188, %$33] ; # C\n  %194 = icmp sge i32 122, %193\n  br i1 %194, label %$37, label %$36\n$37:\n  %195 = phi i8* [%192, %$35] ; # Set\n  %196 = phi i32 [%193, %$35] ; # C\n  %197 = icmp sge i32 %196, 97\n  br label %$36\n$36:\n  %198 = phi i8* [%192, %$35], [%195, %$37] ; # Set\n  %199 = phi i32 [%193, %$35], [%196, %$37] ; # C\n  %200 = phi i1 [0, %$35], [%197, %$37] ; # ->\n  br i1 %200, label %$34, label %$38\n$38:\n  %201 = phi i8* [%198, %$36] ; # Set\n  %202 = phi i32 [%199, %$36] ; # C\n  %203 = icmp sge i32 90, %202\n  br i1 %203, label %$40, label %$39\n$40:\n  %204 = phi i8* [%201, %$38] ; # Set\n  %205 = phi i32 [%202, %$38] ; # C\n  %206 = icmp sge i32 %205, 65\n  br label %$39\n$39:\n  %207 = phi i8* [%201, %$38], [%204, %$40] ; # Set\n  %208 = phi i32 [%202, %$38], [%205, %$40] ; # C\n  %209 = phi i1 [0, %$38], [%206, %$40] ; # ->\n  br i1 %209, label %$34, label %$41\n$41:\n  %210 = phi i8* [%207, %$39] ; # Set\n  %211 = phi i32 [%208, %$39] ; # C\n  %212 = call i8* @strchr(i8* %210, i32 %211)\n  %213 = icmp ne i8* %212, null\n  br label %$34\n$34:\n  %214 = phi i8* [%190, %$33], [%198, %$36], [%207, %$39], [%210, %$41] ; # Set\n  %215 = phi i32 [%188, %$33], [%199, %$36], [%208, %$39], [%211, %$41] ; # C\n  %216 = phi i1 [1, %$33], [1, %$36], [1, %$39], [%213, %$41] ; # ->\n  %217 = icmp eq i1 %216, 0\n  br label %$31\n$31:\n  %218 = phi i64 [%172, %$22], [%180, %$32], [%186, %$34] ; # Set\n  %219 = phi i32 [%173, %$22], [%181, %$32], [%187, %$34] ; # Cmt\n  %220 = phi i32 [%174, %$22], [%182, %$32], [%188, %$34] ; # C\n  %221 = phi i64 [%175, %$22], [%183, %$32], [%189, %$34] ; # Nm\n  %222 = phi i8* [%178, %$22], [%184, %$32], [%190, %$34] ; # S\n  %223 = phi i1 [1, %$22], [1, %$32], [%217, %$34] ; # ->\n  br i1 %223, label %$42, label %$43\n$42:\n  %224 = phi i64 [%218, %$31] ; # Set\n  %225 = phi i32 [%219, %$31] ; # Cmt\n  %226 = phi i32 [%220, %$31] ; # C\n  %227 = phi i64 [%221, %$31] ; # Nm\n  %228 = phi i8* [%222, %$31] ; # S\n; # (prog1 (mkChar (getChar C)) (call $Get))\n; # (getChar C)\n  %229 = call i32 @getChar(i32 %226)\n; # (mkChar (getChar C))\n  %230 = call i64 @mkChar(i32 %229)\n; # (call $Get)\n  %231 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %232 = call i32 %231()\n  br label %$44\n$43:\n  %233 = phi i64 [%218, %$31] ; # Set\n  %234 = phi i32 [%219, %$31] ; # Cmt\n  %235 = phi i32 [%220, %$31] ; # C\n  %236 = phi i64 [%221, %$31] ; # Nm\n  %237 = phi i8* [%222, %$31] ; # S\n; # (when (== C (char \"\\\\\")) (call $Get))\n; # (== C (char \"\\\\\"))\n  %238 = icmp eq i32 %235, 92\n  br i1 %238, label %$45, label %$46\n$45:\n  %239 = phi i64 [%233, %$43] ; # Set\n  %240 = phi i32 [%234, %$43] ; # Cmt\n  %241 = phi i32 [%235, %$43] ; # C\n  %242 = phi i64 [%236, %$43] ; # Nm\n  %243 = phi i8* [%237, %$43] ; # S\n; # (call $Get)\n  %244 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %245 = call i32 %244()\n  br label %$46\n$46:\n  %246 = phi i64 [%233, %$43], [%239, %$45] ; # Set\n  %247 = phi i32 [%234, %$43], [%240, %$45] ; # Cmt\n  %248 = phi i32 [%235, %$43], [%241, %$45] ; # C\n  %249 = phi i64 [%236, %$43], [%242, %$45] ; # Nm\n  %250 = phi i8* [%237, %$43], [%243, %$45] ; # S\n; # (let P (push 4 NIL ZERO NIL) (link (ofs P 2) T) (loop (byteSym (i...\n; # (push 4 NIL ZERO NIL)\n  %251 = alloca i64, i64 4, align 16\n  store i64 4, i64* %251\n  %252 = getelementptr i64, i64* %251, i32 2\n  store i64 2, i64* %252\n; # (ofs P 2)\n  %253 = getelementptr i64, i64* %251, i32 2\n; # (link (ofs P 2) T)\n  %254 = ptrtoint i64* %253 to i64\n  %255 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %256 = load i64, i64* %255\n  %257 = inttoptr i64 %254 to i64*\n  %258 = getelementptr i64, i64* %257, i32 1\n  store i64 %256, i64* %258\n  %259 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %254, i64* %259\n; # (loop (byteSym (i8 C) P) (? (and (noToken (setq C (call $Get)) S)...\n  br label %$47\n$47:\n  %260 = phi i64 [%246, %$46], [%339, %$63] ; # Set\n  %261 = phi i32 [%247, %$46], [%340, %$63] ; # Cmt\n  %262 = phi i32 [%248, %$46], [%341, %$63] ; # C\n  %263 = phi i64 [%249, %$46], [%342, %$63] ; # Nm\n  %264 = phi i8* [%250, %$46], [%343, %$63] ; # S\n  %265 = phi i64* [%251, %$46], [%344, %$63] ; # P\n; # (i8 C)\n  %266 = trunc i32 %262 to i8\n; # (byteSym (i8 C) P)\n  call void @byteSym(i8 %266, i64* %265)\n; # (? (and (noToken (setq C (call $Get)) S) (or (> (char \"0\") C) (> ...\n; # (and (noToken (setq C (call $Get)) S) (or (> (char \"0\") C) (> C (...\n; # (call $Get)\n  %267 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %268 = call i32 %267()\n; # (noToken (setq C (call $Get)) S)\n  %269 = icmp eq i32 %268, 92\n  br i1 %269, label %$49, label %$50\n$50:\n  %270 = phi i8* [%264, %$47] ; # Set\n  %271 = phi i32 [%268, %$47] ; # C\n  %272 = icmp sge i32 122, %271\n  br i1 %272, label %$52, label %$51\n$52:\n  %273 = phi i8* [%270, %$50] ; # Set\n  %274 = phi i32 [%271, %$50] ; # C\n  %275 = icmp sge i32 %274, 97\n  br label %$51\n$51:\n  %276 = phi i8* [%270, %$50], [%273, %$52] ; # Set\n  %277 = phi i32 [%271, %$50], [%274, %$52] ; # C\n  %278 = phi i1 [0, %$50], [%275, %$52] ; # ->\n  br i1 %278, label %$49, label %$53\n$53:\n  %279 = phi i8* [%276, %$51] ; # Set\n  %280 = phi i32 [%277, %$51] ; # C\n  %281 = icmp sge i32 90, %280\n  br i1 %281, label %$55, label %$54\n$55:\n  %282 = phi i8* [%279, %$53] ; # Set\n  %283 = phi i32 [%280, %$53] ; # C\n  %284 = icmp sge i32 %283, 65\n  br label %$54\n$54:\n  %285 = phi i8* [%279, %$53], [%282, %$55] ; # Set\n  %286 = phi i32 [%280, %$53], [%283, %$55] ; # C\n  %287 = phi i1 [0, %$53], [%284, %$55] ; # ->\n  br i1 %287, label %$49, label %$56\n$56:\n  %288 = phi i8* [%285, %$54] ; # Set\n  %289 = phi i32 [%286, %$54] ; # C\n  %290 = call i8* @strchr(i8* %288, i32 %289)\n  %291 = icmp ne i8* %290, null\n  br label %$49\n$49:\n  %292 = phi i8* [%264, %$47], [%276, %$51], [%285, %$54], [%288, %$56] ; # Set\n  %293 = phi i32 [%268, %$47], [%277, %$51], [%286, %$54], [%289, %$56] ; # C\n  %294 = phi i1 [1, %$47], [1, %$51], [1, %$54], [%291, %$56] ; # ->\n  %295 = icmp eq i1 %294, 0\n  br i1 %295, label %$57, label %$48\n$57:\n  %296 = phi i64 [%260, %$49] ; # Set\n  %297 = phi i32 [%261, %$49] ; # Cmt\n  %298 = phi i32 [%268, %$49] ; # C\n  %299 = phi i64 [%263, %$49] ; # Nm\n  %300 = phi i8* [%264, %$49] ; # S\n  %301 = phi i64* [%265, %$49] ; # P\n; # (or (> (char \"0\") C) (> C (char \"9\")))\n; # (> (char \"0\") C)\n  %302 = icmp sgt i32 48, %298\n  br i1 %302, label %$58, label %$59\n$59:\n  %303 = phi i64 [%296, %$57] ; # Set\n  %304 = phi i32 [%297, %$57] ; # Cmt\n  %305 = phi i32 [%298, %$57] ; # C\n  %306 = phi i64 [%299, %$57] ; # Nm\n  %307 = phi i8* [%300, %$57] ; # S\n  %308 = phi i64* [%301, %$57] ; # P\n; # (> C (char \"9\"))\n  %309 = icmp sgt i32 %305, 57\n  br label %$58\n$58:\n  %310 = phi i64 [%296, %$57], [%303, %$59] ; # Set\n  %311 = phi i32 [%297, %$57], [%304, %$59] ; # Cmt\n  %312 = phi i32 [%298, %$57], [%305, %$59] ; # C\n  %313 = phi i64 [%299, %$57], [%306, %$59] ; # Nm\n  %314 = phi i8* [%300, %$57], [%307, %$59] ; # S\n  %315 = phi i64* [%301, %$57], [%308, %$59] ; # P\n  %316 = phi i1 [1, %$57], [%309, %$59] ; # ->\n  br label %$48\n$48:\n  %317 = phi i64 [%260, %$49], [%310, %$58] ; # Set\n  %318 = phi i32 [%261, %$49], [%311, %$58] ; # Cmt\n  %319 = phi i32 [%268, %$49], [%312, %$58] ; # C\n  %320 = phi i64 [%263, %$49], [%313, %$58] ; # Nm\n  %321 = phi i8* [%264, %$49], [%314, %$58] ; # S\n  %322 = phi i64* [%265, %$49], [%315, %$58] ; # P\n  %323 = phi i1 [0, %$49], [%316, %$58] ; # ->\n  br i1 %323, label %$61, label %$60\n$60:\n  %324 = phi i64 [%317, %$48] ; # Set\n  %325 = phi i32 [%318, %$48] ; # Cmt\n  %326 = phi i32 [%319, %$48] ; # C\n  %327 = phi i64 [%320, %$48] ; # Nm\n  %328 = phi i8* [%321, %$48] ; # S\n  %329 = phi i64* [%322, %$48] ; # P\n; # (when (== C (char \"\\\\\")) (call $Get))\n; # (== C (char \"\\\\\"))\n  %330 = icmp eq i32 %326, 92\n  br i1 %330, label %$62, label %$63\n$62:\n  %331 = phi i64 [%324, %$60] ; # Set\n  %332 = phi i32 [%325, %$60] ; # Cmt\n  %333 = phi i32 [%326, %$60] ; # C\n  %334 = phi i64 [%327, %$60] ; # Nm\n  %335 = phi i8* [%328, %$60] ; # S\n  %336 = phi i64* [%329, %$60] ; # P\n; # (call $Get)\n  %337 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %338 = call i32 %337()\n  br label %$63\n$63:\n  %339 = phi i64 [%324, %$60], [%331, %$62] ; # Set\n  %340 = phi i32 [%325, %$60], [%332, %$62] ; # Cmt\n  %341 = phi i32 [%326, %$60], [%333, %$62] ; # C\n  %342 = phi i64 [%327, %$60], [%334, %$62] ; # Nm\n  %343 = phi i8* [%328, %$60], [%335, %$62] ; # S\n  %344 = phi i64* [%329, %$60], [%336, %$62] ; # P\n  br label %$47\n$61:\n  %345 = phi i64 [%317, %$48] ; # Set\n  %346 = phi i32 [%318, %$48] ; # Cmt\n  %347 = phi i32 [%319, %$48] ; # C\n  %348 = phi i64 [%320, %$48] ; # Nm\n  %349 = phi i8* [%321, %$48] ; # S\n  %350 = phi i64* [%322, %$48] ; # P\n  %351 = phi i64 [0, %$48] ; # ->\n; # (val 3 P)\n  %352 = getelementptr i64, i64* %350, i32 2\n  %353 = load i64, i64* %352\n; # (requestSym (val 3 P))\n  %354 = call i64 @requestSym(i64 %353)\n; # (drop *Safe)\n  %355 = inttoptr i64 %254 to i64*\n  %356 = getelementptr i64, i64* %355, i32 1\n  %357 = load i64, i64* %356\n  %358 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %357, i64* %358\n  br label %$44\n$44:\n  %359 = phi i64 [%224, %$42], [%345, %$61] ; # Set\n  %360 = phi i32 [%225, %$42], [%346, %$61] ; # Cmt\n  %361 = phi i32 [%226, %$42], [%347, %$61] ; # C\n  %362 = phi i64 [%227, %$42], [%348, %$61] ; # Nm\n  %363 = phi i8* [%228, %$42], [%349, %$61] ; # S\n  %364 = phi i64 [%230, %$42], [%354, %$61] ; # ->\n  br label %$5\n$5:\n  %365 = phi i64 [%15, %$7], [%97, %$10], [%157, %$30], [%359, %$44] ; # Set\n  %366 = phi i32 [%16, %$7], [%98, %$10], [%158, %$30], [%360, %$44] ; # Cmt\n  %367 = phi i32 [%17, %$7], [%99, %$10], [%159, %$30], [%361, %$44] ; # C\n  %368 = phi i64 [0, %$7], [%100, %$10], [%167, %$30], [%364, %$44] ; # ->\n  ret i64 %368\n}\n\ndefine i64 @_Read(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (prog1 (if (atom X) (read1 0) (let Y (save (need...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (prog1 (if (atom X) (read1 0) (let Y (save (needSymb Exe (eval (+...\n; # (if (atom X) (read1 0) (let Y (save (needSymb Exe (eval (++ X))))...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (read1 0)\n  %8 = call i64 @read1(i32 0)\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n; # (let Y (save (needSymb Exe (eval (++ X)))) (if (token Y (firstCha...\n; # (++ X)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  %14 = load i64, i64* %11\n; # (eval (++ X))\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$7, label %$6\n$7:\n  %17 = phi i64 [%14, %$3] ; # X\n  br label %$5\n$6:\n  %18 = phi i64 [%14, %$3] ; # X\n  %19 = and i64 %18, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%18, %$6] ; # X\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$5\n$8:\n  %24 = phi i64 [%18, %$6] ; # X\n  %25 = call i64 @evList(i64 %24)\n  br label %$5\n$5:\n  %26 = phi i64 [%17, %$7], [%21, %$9], [%24, %$8] ; # X\n  %27 = phi i64 [%17, %$7], [%23, %$9], [%25, %$8] ; # ->\n; # (needSymb Exe (eval (++ X)))\n  %28 = xor i64 %27, 8\n  %29 = and i64 %28, 14\n  %30 = icmp eq i64 %29, 0\n  br i1 %30, label %$11, label %$10\n$10:\n  %31 = phi i64 [%27, %$5] ; # X\n  %32 = phi i64 [%9, %$5] ; # Exe\n  call void @symErr(i64 %32, i64 %31)\n  unreachable\n$11:\n  %33 = phi i64 [%27, %$5] ; # X\n  %34 = phi i64 [%9, %$5] ; # Exe\n; # (save (needSymb Exe (eval (++ X))))\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %36 = load i64, i64* %35\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n  %39 = inttoptr i64 %38 to i64*\n  store i64 %33, i64* %39\n  %40 = add i64 %38, 8\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %36, i64* %41\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %38, i64* %42\n; # (if (token Y (firstChar (needSymb Exe (eval (car X))))) @ $Nil)\n; # (car X)\n  %43 = inttoptr i64 %13 to i64*\n  %44 = load i64, i64* %43\n; # (eval (car X))\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$14, label %$13\n$14:\n  %47 = phi i64 [%44, %$11] ; # X\n  br label %$12\n$13:\n  %48 = phi i64 [%44, %$11] ; # X\n  %49 = and i64 %48, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$16, label %$15\n$16:\n  %51 = phi i64 [%48, %$13] ; # X\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n  br label %$12\n$15:\n  %54 = phi i64 [%48, %$13] ; # X\n  %55 = call i64 @evList(i64 %54)\n  br label %$12\n$12:\n  %56 = phi i64 [%47, %$14], [%51, %$16], [%54, %$15] ; # X\n  %57 = phi i64 [%47, %$14], [%53, %$16], [%55, %$15] ; # ->\n; # (needSymb Exe (eval (car X)))\n  %58 = xor i64 %57, 8\n  %59 = and i64 %58, 14\n  %60 = icmp eq i64 %59, 0\n  br i1 %60, label %$18, label %$17\n$17:\n  %61 = phi i64 [%57, %$12] ; # X\n  %62 = phi i64 [%9, %$12] ; # Exe\n  call void @symErr(i64 %62, i64 %61)\n  unreachable\n$18:\n  %63 = phi i64 [%57, %$12] ; # X\n  %64 = phi i64 [%9, %$12] ; # Exe\n; # (firstChar (needSymb Exe (eval (car X))))\n  %65 = call i32 @firstChar(i64 %63)\n; # (token Y (firstChar (needSymb Exe (eval (car X)))))\n  %66 = call i64 @token(i64 %33, i32 %65)\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$19, label %$20\n$19:\n  %68 = phi i64 [%9, %$18] ; # Exe\n  %69 = phi i64 [%13, %$18] ; # X\n  %70 = phi i64 [%33, %$18] ; # Y\n  br label %$21\n$20:\n  %71 = phi i64 [%9, %$18] ; # Exe\n  %72 = phi i64 [%13, %$18] ; # X\n  %73 = phi i64 [%33, %$18] ; # Y\n  br label %$21\n$21:\n  %74 = phi i64 [%68, %$19], [%71, %$20] ; # Exe\n  %75 = phi i64 [%69, %$19], [%72, %$20] ; # X\n  %76 = phi i64 [%70, %$19], [%73, %$20] ; # Y\n  %77 = phi i64 [%66, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$20] ; # ->\n; # (drop *Safe)\n  %78 = inttoptr i64 %38 to i64*\n  %79 = getelementptr i64, i64* %78, i32 1\n  %80 = load i64, i64* %79\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %81\n  br label %$4\n$4:\n  %82 = phi i64 [%6, %$2], [%74, %$21] ; # Exe\n  %83 = phi i64 [%7, %$2], [%75, %$21] ; # X\n  %84 = phi i64 [%8, %$2], [%77, %$21] ; # ->\n; # (and (== (val $Chr) (char \"^J\")) (== (val $InFile) (val (val $InF...\n; # (val $Chr)\n  %85 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== (val $Chr) (char \"^J\"))\n  %86 = icmp eq i32 %85, 10\n  br i1 %86, label %$23, label %$22\n$23:\n  %87 = phi i64 [%82, %$4] ; # Exe\n  %88 = phi i64 [%83, %$4] ; # X\n; # (val $InFile)\n  %89 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (val $InFiles)\n  %90 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %91 = load i8*, i8** %90\n; # (== (val $InFile) (val (val $InFiles)))\n  %92 = icmp eq i8* %89, %91\n  br i1 %92, label %$24, label %$22\n$24:\n  %93 = phi i64 [%87, %$23] ; # Exe\n  %94 = phi i64 [%88, %$23] ; # X\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %95 = icmp ne i32 0, 0\n  br label %$22\n$22:\n  %96 = phi i64 [%82, %$4], [%87, %$23], [%93, %$24] ; # Exe\n  %97 = phi i64 [%83, %$4], [%88, %$23], [%94, %$24] ; # X\n  %98 = phi i1 [0, %$4], [0, %$23], [%95, %$24] ; # ->\n  ret i64 %84\n}\n\ndefine i64 @_Key(i64) align 8 {\n$1:\n; # (flushAll)\n  call void @flushAll()\n; # (let (X (cdr Exe) Cnt (if (nil? (eval (++ X))) 292MY (xCnt Exe @)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) 292MY (xCnt Exe @))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  br label %$9\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%6, %$2] ; # X\n; # (xCnt Exe @)\n  %26 = call i64 @xCnt(i64 %24, i64 %20)\n  br label %$9\n$9:\n  %27 = phi i64 [%22, %$7], [%24, %$8] ; # Exe\n  %28 = phi i64 [%23, %$7], [%25, %$8] ; # X\n  %29 = phi i64 [9223372036854775807, %$7], [%26, %$8] ; # ->\n; # (if (nil? (eval (car X))) -ZERO (needChkVar Exe @))\n; # (car X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = load i64, i64* %30\n; # (eval (car X))\n  %32 = and i64 %31, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%31, %$9] ; # X\n  br label %$10\n$11:\n  %35 = phi i64 [%31, %$9] ; # X\n  %36 = and i64 %35, 8\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$14:\n  %38 = phi i64 [%35, %$11] ; # X\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n  br label %$10\n$13:\n  %41 = phi i64 [%35, %$11] ; # X\n  %42 = call i64 @evList(i64 %41)\n  br label %$10\n$10:\n  %43 = phi i64 [%34, %$12], [%38, %$14], [%41, %$13] ; # X\n  %44 = phi i64 [%34, %$12], [%40, %$14], [%42, %$13] ; # ->\n; # (nil? (eval (car X)))\n  %45 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %45, label %$15, label %$16\n$15:\n  %46 = phi i64 [%27, %$10] ; # Exe\n  %47 = phi i64 [%28, %$10] ; # X\n  %48 = phi i64 [%29, %$10] ; # Cnt\n  br label %$17\n$16:\n  %49 = phi i64 [%27, %$10] ; # Exe\n  %50 = phi i64 [%28, %$10] ; # X\n  %51 = phi i64 [%29, %$10] ; # Cnt\n; # (needChkVar Exe @)\n  %52 = and i64 %44, 6\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$18, label %$19\n$18:\n  %54 = phi i64 [%44, %$16] ; # X\n  %55 = phi i64 [%49, %$16] ; # Exe\n  call void @varErr(i64 %55, i64 %54)\n  unreachable\n$19:\n  %56 = phi i64 [%44, %$16] ; # X\n  %57 = phi i64 [%49, %$16] ; # Exe\n  %58 = icmp uge i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %58, label %$21, label %$20\n$21:\n  %59 = phi i64 [%56, %$19] ; # X\n  %60 = phi i64 [%57, %$19] ; # Exe\n  %61 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %59\n  br label %$20\n$20:\n  %62 = phi i64 [%56, %$19], [%59, %$21] ; # X\n  %63 = phi i64 [%57, %$19], [%60, %$21] ; # Exe\n  %64 = phi i1 [0, %$19], [%61, %$21] ; # ->\n  br i1 %64, label %$22, label %$23\n$22:\n  %65 = phi i64 [%62, %$20] ; # X\n  %66 = phi i64 [%63, %$20] ; # Exe\n  call void @protErr(i64 %66, i64 %65)\n  unreachable\n$23:\n  %67 = phi i64 [%62, %$20] ; # X\n  %68 = phi i64 [%63, %$20] ; # Exe\n  br label %$17\n$17:\n  %69 = phi i64 [%46, %$15], [%49, %$23] ; # Exe\n  %70 = phi i64 [%47, %$15], [%50, %$23] ; # X\n  %71 = phi i64 [%48, %$15], [%51, %$23] ; # Cnt\n  %72 = phi i64 [10, %$15], [%56, %$23] ; # ->\n; # (save (if (nil? (eval (car X))) -ZERO (needChkVar Exe @)))\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %74 = load i64, i64* %73\n  %75 = alloca i64, i64 2, align 16\n  %76 = ptrtoint i64* %75 to i64\n  %77 = inttoptr i64 %76 to i64*\n  store i64 %72, i64* %77\n  %78 = add i64 %76, 8\n  %79 = inttoptr i64 %78 to i64*\n  store i64 %74, i64* %79\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %76, i64* %80\n; # (val Termio)\n  %81 = load i8*, i8** @Termio\n; # (prog2 (setRaw) (if (waitFd Exe 0 Cnt) (let (Ms @ C (stdinByte)) ...\n; # (setRaw)\n  call void @setRaw()\n; # (if (waitFd Exe 0 Cnt) (let (Ms @ C (stdinByte)) (unless (== Var ...\n; # (waitFd Exe 0 Cnt)\n  %82 = call i64 @waitFd(i64 %69, i32 0, i64 %71)\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$24, label %$25\n$24:\n  %84 = phi i64 [%69, %$17] ; # Exe\n  %85 = phi i64 [%70, %$17] ; # X\n  %86 = phi i64 [%71, %$17] ; # Cnt\n  %87 = phi i64 [%72, %$17] ; # Var\n  %88 = phi i8* [%81, %$17] ; # Raw\n; # (let (Ms @ C (stdinByte)) (unless (== Var -ZERO) (set Var (cnt Ms...\n; # (stdinByte)\n  %89 = call i32 @stdinByte()\n; # (unless (== Var -ZERO) (set Var (cnt Ms)))\n; # (== Var -ZERO)\n  %90 = icmp eq i64 %87, 10\n  br i1 %90, label %$28, label %$27\n$27:\n  %91 = phi i64 [%84, %$24] ; # Exe\n  %92 = phi i64 [%85, %$24] ; # X\n  %93 = phi i64 [%86, %$24] ; # Cnt\n  %94 = phi i64 [%87, %$24] ; # Var\n  %95 = phi i8* [%88, %$24] ; # Raw\n  %96 = phi i64 [%82, %$24] ; # Ms\n  %97 = phi i32 [%89, %$24] ; # C\n; # (set Var (cnt Ms))\n; # (cnt Ms)\n  %98 = shl i64 %96, 4\n  %99 = or i64 %98, 2\n  %100 = inttoptr i64 %94 to i64*\n  store i64 %99, i64* %100\n  br label %$28\n$28:\n  %101 = phi i64 [%84, %$24], [%91, %$27] ; # Exe\n  %102 = phi i64 [%85, %$24], [%92, %$27] ; # X\n  %103 = phi i64 [%86, %$24], [%93, %$27] ; # Cnt\n  %104 = phi i64 [%87, %$24], [%94, %$27] ; # Var\n  %105 = phi i8* [%88, %$24], [%95, %$27] ; # Raw\n  %106 = phi i64 [%82, %$24], [%96, %$27] ; # Ms\n  %107 = phi i32 [%89, %$24], [%97, %$27] ; # C\n; # (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)) (T (let B (ifn...\n; # (>= 127 C)\n  %108 = icmp sge i32 127, %107\n  br i1 %108, label %$31, label %$30\n$31:\n  %109 = phi i64 [%101, %$28] ; # Exe\n  %110 = phi i64 [%102, %$28] ; # X\n  %111 = phi i64 [%103, %$28] ; # Cnt\n  %112 = phi i64 [%104, %$28] ; # Var\n  %113 = phi i8* [%105, %$28] ; # Raw\n  %114 = phi i64 [%106, %$28] ; # Ms\n  %115 = phi i32 [%107, %$28] ; # C\n  br label %$29\n$30:\n  %116 = phi i64 [%101, %$28] ; # Exe\n  %117 = phi i64 [%102, %$28] ; # X\n  %118 = phi i64 [%103, %$28] ; # Cnt\n  %119 = phi i64 [%104, %$28] ; # Var\n  %120 = phi i8* [%105, %$28] ; # Raw\n  %121 = phi i64 [%106, %$28] ; # Ms\n  %122 = phi i32 [%107, %$28] ; # C\n; # (== C (hex \"FF\"))\n  %123 = icmp eq i32 %122, 255\n  br i1 %123, label %$33, label %$32\n$33:\n  %124 = phi i64 [%116, %$30] ; # Exe\n  %125 = phi i64 [%117, %$30] ; # X\n  %126 = phi i64 [%118, %$30] ; # Cnt\n  %127 = phi i64 [%119, %$30] ; # Var\n  %128 = phi i8* [%120, %$30] ; # Raw\n  %129 = phi i64 [%121, %$30] ; # Ms\n  %130 = phi i32 [%122, %$30] ; # C\n; # (i32 TOP)\n  br label %$29\n$32:\n  %131 = phi i64 [%116, %$30] ; # Exe\n  %132 = phi i64 [%117, %$30] ; # X\n  %133 = phi i64 [%118, %$30] ; # Cnt\n  %134 = phi i64 [%119, %$30] ; # Var\n  %135 = phi i8* [%120, %$30] ; # Raw\n  %136 = phi i64 [%121, %$30] ; # Ms\n  %137 = phi i32 [%122, %$30] ; # C\n; # (let B (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (let A (ifn (& C (h...\n; # (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (let A (ifn (& C (hex \"10\"...\n; # (& C (hex \"20\"))\n  %138 = and i32 %137, 32\n  %139 = icmp ne i32 %138, 0\n  br i1 %139, label %$35, label %$34\n$34:\n  %140 = phi i64 [%131, %$32] ; # Exe\n  %141 = phi i64 [%132, %$32] ; # X\n  %142 = phi i64 [%133, %$32] ; # Cnt\n  %143 = phi i64 [%134, %$32] ; # Var\n  %144 = phi i8* [%135, %$32] ; # Raw\n  %145 = phi i64 [%136, %$32] ; # Ms\n  %146 = phi i32 [%137, %$32] ; # C\n; # (& C (hex \"1F\"))\n  %147 = and i32 %146, 31\n  br label %$36\n$35:\n  %148 = phi i64 [%131, %$32] ; # Exe\n  %149 = phi i64 [%132, %$32] ; # X\n  %150 = phi i64 [%133, %$32] ; # Cnt\n  %151 = phi i64 [%134, %$32] ; # Var\n  %152 = phi i8* [%135, %$32] ; # Raw\n  %153 = phi i64 [%136, %$32] ; # Ms\n  %154 = phi i32 [%137, %$32] ; # C\n; # (let A (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C 7) 6) ...\n; # (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C 7) 6) (& (std...\n; # (& C (hex \"10\"))\n  %155 = and i32 %154, 16\n  %156 = icmp ne i32 %155, 0\n  br i1 %156, label %$38, label %$37\n$37:\n  %157 = phi i64 [%148, %$35] ; # Exe\n  %158 = phi i64 [%149, %$35] ; # X\n  %159 = phi i64 [%150, %$35] ; # Cnt\n  %160 = phi i64 [%151, %$35] ; # Var\n  %161 = phi i8* [%152, %$35] ; # Raw\n  %162 = phi i64 [%153, %$35] ; # Ms\n  %163 = phi i32 [%154, %$35] ; # C\n; # (& C (hex \"0F\"))\n  %164 = and i32 %163, 15\n  br label %$39\n$38:\n  %165 = phi i64 [%148, %$35] ; # Exe\n  %166 = phi i64 [%149, %$35] ; # X\n  %167 = phi i64 [%150, %$35] ; # Cnt\n  %168 = phi i64 [%151, %$35] ; # Var\n  %169 = phi i8* [%152, %$35] ; # Raw\n  %170 = phi i64 [%153, %$35] ; # Ms\n  %171 = phi i32 [%154, %$35] ; # C\n; # (& C 7)\n  %172 = and i32 %171, 7\n; # (shl (& C 7) 6)\n  %173 = shl i32 %172, 6\n; # (stdinByte)\n  %174 = call i32 @stdinByte()\n; # (& (stdinByte) (hex \"3F\"))\n  %175 = and i32 %174, 63\n; # (| (shl (& C 7) 6) (& (stdinByte) (hex \"3F\")))\n  %176 = or i32 %173, %175\n  br label %$39\n$39:\n  %177 = phi i64 [%157, %$37], [%165, %$38] ; # Exe\n  %178 = phi i64 [%158, %$37], [%166, %$38] ; # X\n  %179 = phi i64 [%159, %$37], [%167, %$38] ; # Cnt\n  %180 = phi i64 [%160, %$37], [%168, %$38] ; # Var\n  %181 = phi i8* [%161, %$37], [%169, %$38] ; # Raw\n  %182 = phi i64 [%162, %$37], [%170, %$38] ; # Ms\n  %183 = phi i32 [%163, %$37], [%171, %$38] ; # C\n  %184 = phi i32 [%164, %$37], [%176, %$38] ; # ->\n; # (shl A 6)\n  %185 = shl i32 %184, 6\n; # (stdinByte)\n  %186 = call i32 @stdinByte()\n; # (& (stdinByte) (hex \"3F\"))\n  %187 = and i32 %186, 63\n; # (| (shl A 6) (& (stdinByte) (hex \"3F\")))\n  %188 = or i32 %185, %187\n  br label %$36\n$36:\n  %189 = phi i64 [%140, %$34], [%177, %$39] ; # Exe\n  %190 = phi i64 [%141, %$34], [%178, %$39] ; # X\n  %191 = phi i64 [%142, %$34], [%179, %$39] ; # Cnt\n  %192 = phi i64 [%143, %$34], [%180, %$39] ; # Var\n  %193 = phi i8* [%144, %$34], [%181, %$39] ; # Raw\n  %194 = phi i64 [%145, %$34], [%182, %$39] ; # Ms\n  %195 = phi i32 [%146, %$34], [%183, %$39] ; # C\n  %196 = phi i32 [%147, %$34], [%188, %$39] ; # ->\n; # (shl B 6)\n  %197 = shl i32 %196, 6\n; # (stdinByte)\n  %198 = call i32 @stdinByte()\n; # (& (stdinByte) (hex \"3F\"))\n  %199 = and i32 %198, 63\n; # (| (shl B 6) (& (stdinByte) (hex \"3F\")))\n  %200 = or i32 %197, %199\n  br label %$29\n$29:\n  %201 = phi i64 [%109, %$31], [%124, %$33], [%189, %$36] ; # Exe\n  %202 = phi i64 [%110, %$31], [%125, %$33], [%190, %$36] ; # X\n  %203 = phi i64 [%111, %$31], [%126, %$33], [%191, %$36] ; # Cnt\n  %204 = phi i64 [%112, %$31], [%127, %$33], [%192, %$36] ; # Var\n  %205 = phi i8* [%113, %$31], [%128, %$33], [%193, %$36] ; # Raw\n  %206 = phi i64 [%114, %$31], [%129, %$33], [%194, %$36] ; # Ms\n  %207 = phi i32 [%115, %$31], [%130, %$33], [%195, %$36] ; # C\n  %208 = phi i32 [%115, %$31], [1114112, %$33], [%200, %$36] ; # ->\n; # (mkChar (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)) (T (le...\n  %209 = call i64 @mkChar(i32 %208)\n  br label %$26\n$25:\n  %210 = phi i64 [%69, %$17] ; # Exe\n  %211 = phi i64 [%70, %$17] ; # X\n  %212 = phi i64 [%71, %$17] ; # Cnt\n  %213 = phi i64 [%72, %$17] ; # Var\n  %214 = phi i8* [%81, %$17] ; # Raw\n  br label %$26\n$26:\n  %215 = phi i64 [%201, %$29], [%210, %$25] ; # Exe\n  %216 = phi i64 [%202, %$29], [%211, %$25] ; # X\n  %217 = phi i64 [%203, %$29], [%212, %$25] ; # Cnt\n  %218 = phi i64 [%204, %$29], [%213, %$25] ; # Var\n  %219 = phi i8* [%205, %$29], [%214, %$25] ; # Raw\n  %220 = phi i64 [%209, %$29], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$25] ; # ->\n; # (unless Raw (setCooked))\n  %221 = icmp ne i8* %219, null\n  br i1 %221, label %$41, label %$40\n$40:\n  %222 = phi i64 [%215, %$26] ; # Exe\n  %223 = phi i64 [%216, %$26] ; # X\n  %224 = phi i64 [%217, %$26] ; # Cnt\n  %225 = phi i64 [%218, %$26] ; # Var\n  %226 = phi i8* [%219, %$26] ; # Raw\n; # (setCooked)\n  call void @setCooked()\n  br label %$41\n$41:\n  %227 = phi i64 [%215, %$26], [%222, %$40] ; # Exe\n  %228 = phi i64 [%216, %$26], [%223, %$40] ; # X\n  %229 = phi i64 [%217, %$26], [%224, %$40] ; # Cnt\n  %230 = phi i64 [%218, %$26], [%225, %$40] ; # Var\n  %231 = phi i8* [%219, %$26], [%226, %$40] ; # Raw\n; # (drop *Safe)\n  %232 = inttoptr i64 %76 to i64*\n  %233 = getelementptr i64, i64* %232, i32 1\n  %234 = load i64, i64* %233\n  %235 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %234, i64* %235\n  ret i64 %220\n}\n\ndefine i64 @_Peek(i64) align 8 {\n$1:\n; # (let C (if (val $Chr) @ (call $Get)) (if (lt0 C) $Nil (mkChar C))...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # Exe\n; # (call $Get)\n  %5 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %6 = call i32 %5()\n  br label %$4\n$4:\n  %7 = phi i64 [%3, %$2], [%4, %$3] ; # Exe\n  %8 = phi i32 [%1, %$2], [%6, %$3] ; # ->\n; # (if (lt0 C) $Nil (mkChar C))\n; # (lt0 C)\n  %9 = icmp slt i32 %8, 0\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i64 [%7, %$4] ; # Exe\n  %11 = phi i32 [%8, %$4] ; # C\n  br label %$7\n$6:\n  %12 = phi i64 [%7, %$4] ; # Exe\n  %13 = phi i32 [%8, %$4] ; # C\n; # (mkChar C)\n  %14 = call i64 @mkChar(i32 %13)\n  br label %$7\n$7:\n  %15 = phi i64 [%10, %$5], [%12, %$6] ; # Exe\n  %16 = phi i32 [%11, %$5], [%13, %$6] ; # C\n  %17 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%14, %$6] ; # ->\n  ret i64 %17\n}\n\ndefine i64 @_Char(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((atom X) (let Chr (if (val $Chr) @ (call ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((atom X) (let Chr (if (val $Chr) @ (call $Get)) (prog1 (if...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (let Chr (if (val $Chr) @ (call $Get)) (prog1 (if (lt0 Chr) $Nil ...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %8 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %9 = icmp ne i32 %8, 0\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i64 [%6, %$4] ; # Exe\n  %11 = phi i64 [%7, %$4] ; # X\n  br label %$7\n$6:\n  %12 = phi i64 [%6, %$4] ; # Exe\n  %13 = phi i64 [%7, %$4] ; # X\n; # (call $Get)\n  %14 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %15 = call i32 %14()\n  br label %$7\n$7:\n  %16 = phi i64 [%10, %$5], [%12, %$6] ; # Exe\n  %17 = phi i64 [%11, %$5], [%13, %$6] ; # X\n  %18 = phi i32 [%8, %$5], [%15, %$6] ; # ->\n; # (prog1 (if (lt0 Chr) $Nil (mkChar (getChar Chr))) (call $Get))\n; # (if (lt0 Chr) $Nil (mkChar (getChar Chr)))\n; # (lt0 Chr)\n  %19 = icmp slt i32 %18, 0\n  br i1 %19, label %$8, label %$9\n$8:\n  %20 = phi i64 [%16, %$7] ; # Exe\n  %21 = phi i64 [%17, %$7] ; # X\n  %22 = phi i32 [%18, %$7] ; # Chr\n  br label %$10\n$9:\n  %23 = phi i64 [%16, %$7] ; # Exe\n  %24 = phi i64 [%17, %$7] ; # X\n  %25 = phi i32 [%18, %$7] ; # Chr\n; # (getChar Chr)\n  %26 = call i32 @getChar(i32 %25)\n; # (mkChar (getChar Chr))\n  %27 = call i64 @mkChar(i32 %26)\n  br label %$10\n$10:\n  %28 = phi i64 [%20, %$8], [%23, %$9] ; # Exe\n  %29 = phi i64 [%21, %$8], [%24, %$9] ; # X\n  %30 = phi i32 [%22, %$8], [%25, %$9] ; # Chr\n  %31 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8], [%27, %$9] ; # ->\n; # (call $Get)\n  %32 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %33 = call i32 %32()\n  br label %$2\n$3:\n  %34 = phi i64 [%0, %$1] ; # Exe\n  %35 = phi i64 [%3, %$1] ; # X\n; # (car X)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (eval (car X))\n  %38 = and i64 %37, 6\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$13, label %$12\n$13:\n  %40 = phi i64 [%37, %$3] ; # X\n  br label %$11\n$12:\n  %41 = phi i64 [%37, %$3] ; # X\n  %42 = and i64 %41, 8\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$15, label %$14\n$15:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n  br label %$11\n$14:\n  %47 = phi i64 [%41, %$12] ; # X\n  %48 = call i64 @evList(i64 %47)\n  br label %$11\n$11:\n  %49 = phi i64 [%40, %$13], [%44, %$15], [%47, %$14] ; # X\n  %50 = phi i64 [%40, %$13], [%46, %$15], [%48, %$14] ; # ->\n; # (cnt? (eval (car X)))\n  %51 = and i64 %50, 2\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$17, label %$16\n$17:\n  %53 = phi i64 [%34, %$11] ; # Exe\n  %54 = phi i64 [%35, %$11] ; # X\n; # (if (int @) (mkChar (i32 @)) $Nil)\n; # (int @)\n  %55 = lshr i64 %50, 4\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$18, label %$19\n$18:\n  %57 = phi i64 [%53, %$17] ; # Exe\n  %58 = phi i64 [%54, %$17] ; # X\n; # (i32 @)\n  %59 = trunc i64 %55 to i32\n; # (mkChar (i32 @))\n  %60 = call i64 @mkChar(i32 %59)\n  br label %$20\n$19:\n  %61 = phi i64 [%53, %$17] ; # Exe\n  %62 = phi i64 [%54, %$17] ; # X\n  br label %$20\n$20:\n  %63 = phi i64 [%57, %$18], [%61, %$19] ; # Exe\n  %64 = phi i64 [%58, %$18], [%62, %$19] ; # X\n  %65 = phi i64 [%60, %$18], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$19] ; # ->\n  br label %$2\n$16:\n  %66 = phi i64 [%34, %$11] ; # Exe\n  %67 = phi i64 [%35, %$11] ; # X\n; # (t? @)\n  %68 = icmp eq i64 %50, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %68, label %$22, label %$21\n$22:\n  %69 = phi i64 [%66, %$16] ; # Exe\n  %70 = phi i64 [%67, %$16] ; # X\n; # (mkChar TOP)\n  %71 = call i64 @mkChar(i32 1114112)\n  br label %$2\n$21:\n  %72 = phi i64 [%66, %$16] ; # Exe\n  %73 = phi i64 [%67, %$16] ; # X\n; # (symb? @)\n  %74 = xor i64 %50, 8\n  %75 = and i64 %74, 14\n  %76 = icmp eq i64 %75, 0\n  br i1 %76, label %$24, label %$23\n$24:\n  %77 = phi i64 [%72, %$21] ; # Exe\n  %78 = phi i64 [%73, %$21] ; # X\n; # (firstChar @)\n  %79 = call i32 @firstChar(i64 %50)\n; # (i64 (firstChar @))\n  %80 = sext i32 %79 to i64\n; # (cnt (i64 (firstChar @)))\n  %81 = shl i64 %80, 4\n  %82 = or i64 %81, 2\n  br label %$2\n$23:\n  %83 = phi i64 [%72, %$21] ; # Exe\n  %84 = phi i64 [%73, %$21] ; # X\n; # (atomErr Exe @)\n  call void @atomErr(i64 %83, i64 %50)\n  unreachable\n$2:\n  %85 = phi i64 [%28, %$10], [%63, %$20], [%69, %$22], [%77, %$24] ; # Exe\n  %86 = phi i64 [%29, %$10], [%64, %$20], [%70, %$22], [%78, %$24] ; # X\n  %87 = phi i64 [%31, %$10], [%65, %$20], [%71, %$22], [%82, %$24] ; # ->\n  ret i64 %87\n}\n\ndefine i64 @_Skip(i64) align 8 {\n$1:\n; # (if (lt0 (skipc (firstChar (evSym (cdr Exe))))) $Nil (mkChar @))\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym (cdr Exe))\n  %4 = call i64 @evSym(i64 %3)\n; # (firstChar (evSym (cdr Exe)))\n  %5 = call i32 @firstChar(i64 %4)\n; # (skipc (firstChar (evSym (cdr Exe))))\n  %6 = call i32 @skipc(i32 %5)\n; # (lt0 (skipc (firstChar (evSym (cdr Exe)))))\n  %7 = icmp slt i32 %6, 0\n  br i1 %7, label %$2, label %$3\n$2:\n  %8 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n; # (mkChar @)\n  %10 = call i64 @mkChar(i32 %6)\n  br label %$4\n$4:\n  %11 = phi i64 [%8, %$2], [%9, %$3] ; # Exe\n  %12 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%10, %$3] ; # ->\n  ret i64 %12\n}\n\ndefine i64 @_Eol(i64) align 8 {\n$1:\n; # (let C (if (val $Chr) @ (call $Get)) (if (or (le0 C) (== C (char ...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # Exe\n; # (call $Get)\n  %5 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %6 = call i32 %5()\n  br label %$4\n$4:\n  %7 = phi i64 [%3, %$2], [%4, %$3] ; # Exe\n  %8 = phi i32 [%1, %$2], [%6, %$3] ; # ->\n; # (if (or (le0 C) (== C (char \"^J\"))) $T $Nil)\n; # (or (le0 C) (== C (char \"^J\")))\n; # (le0 C)\n  %9 = icmp sle i32 %8, 0\n  br i1 %9, label %$5, label %$6\n$6:\n  %10 = phi i64 [%7, %$4] ; # Exe\n  %11 = phi i32 [%8, %$4] ; # C\n; # (== C (char \"^J\"))\n  %12 = icmp eq i32 %11, 10\n  br label %$5\n$5:\n  %13 = phi i64 [%7, %$4], [%10, %$6] ; # Exe\n  %14 = phi i32 [%8, %$4], [%11, %$6] ; # C\n  %15 = phi i1 [1, %$4], [%12, %$6] ; # ->\n  br i1 %15, label %$7, label %$8\n$7:\n  %16 = phi i64 [%13, %$5] ; # Exe\n  %17 = phi i32 [%14, %$5] ; # C\n  br label %$9\n$8:\n  %18 = phi i64 [%13, %$5] ; # Exe\n  %19 = phi i32 [%14, %$5] ; # C\n  br label %$9\n$9:\n  %20 = phi i64 [%16, %$7], [%18, %$8] ; # Exe\n  %21 = phi i32 [%17, %$7], [%19, %$8] ; # C\n  %22 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %22\n}\n\ndefine i64 @_Eof(i64) align 8 {\n$1:\n; # (nond ((nil? (eval (cadr Exe))) (set $Chr -1) $T) ((=0 (val $Chr)...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$8, label %$9\n$9:\n  %20 = phi i64 [%0, %$3] ; # Exe\n; # (set $Chr -1)\n  store i32 -1, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$2\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (val $Chr)\n  %22 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (=0 (val $Chr))\n  %23 = icmp eq i32 %22, 0\n  br i1 %23, label %$10, label %$11\n$11:\n  %24 = phi i64 [%21, %$8] ; # Exe\n; # (if (lt0 @) $T $Nil)\n; # (lt0 @)\n  %25 = icmp slt i32 %22, 0\n  br i1 %25, label %$12, label %$13\n$12:\n  %26 = phi i64 [%24, %$11] ; # Exe\n  br label %$14\n$13:\n  %27 = phi i64 [%24, %$11] ; # Exe\n  br label %$14\n$14:\n  %28 = phi i64 [%26, %$12], [%27, %$13] ; # Exe\n  %29 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13] ; # ->\n  br label %$2\n$10:\n  %30 = phi i64 [%21, %$8] ; # Exe\n; # (if (lt0 (call $Get)) $T $Nil)\n; # (call $Get)\n  %31 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %32 = call i32 %31()\n; # (lt0 (call $Get))\n  %33 = icmp slt i32 %32, 0\n  br i1 %33, label %$15, label %$16\n$15:\n  %34 = phi i64 [%30, %$10] ; # Exe\n  br label %$17\n$16:\n  %35 = phi i64 [%30, %$10] ; # Exe\n  br label %$17\n$17:\n  %36 = phi i64 [%34, %$15], [%35, %$16] ; # Exe\n  %37 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16] ; # ->\n  br label %$2\n$2:\n  %38 = phi i64 [%20, %$9], [%28, %$14], [%36, %$17] ; # Exe\n  %39 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$9], [%29, %$14], [%37, %$17] ; # ->\n  ret i64 %39\n}\n\ndefine i64 @_From(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N 1 Y (evSym X) Nm (xName Y) L (link (push Y NI...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName Y)\n  %5 = call i64 @xName(i64 %4)\n; # (bufSize Nm)\n  %6 = call i64 @bufSize(i64 %5)\n; # (b8 (bufSize Nm))\n  %7 = alloca i8, i64 %6\n; # (bufString Nm (b8 (bufSize Nm)))\n  %8 = call i8* @bufString(i64 %5, i8* %7)\n; # (any (bufString Nm (b8 (bufSize Nm))))\n  %9 = ptrtoint i8* %8 to i64\n; # (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm)))))\n  %10 = alloca i64, i64 4, align 16\n  %11 = ptrtoint i64* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 %4, i64* %12\n  %13 = add i64 %11, 16\n  %14 = inttoptr i64 %13 to i64*\n  store i64 0, i64* %14\n  %15 = add i64 %11, 24\n  %16 = inttoptr i64 %15 to i64*\n  store i64 %9, i64* %16\n; # (link (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm))))))\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %18 = load i64, i64* %17\n  %19 = inttoptr i64 %11 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  store i64 %18, i64* %20\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %11, i64* %21\n; # (while (pair (shift X)) (setq Y (evSym X) Nm (xName Y) L (link (p...\n  br label %$2\n$2:\n  %22 = phi i64 [%0, %$1], [%34, %$3] ; # Exe\n  %23 = phi i64 [%3, %$1], [%35, %$3] ; # X\n  %24 = phi i64 [1, %$1], [%59, %$3] ; # N\n  %25 = phi i64 [%4, %$1], [%41, %$3] ; # Y\n  %26 = phi i64 [%5, %$1], [%42, %$3] ; # Nm\n  %27 = phi i64 [%11, %$1], [%48, %$3] ; # L\n  %28 = phi i64 [%11, %$1], [%40, %$3] ; # P\n; # (shift X)\n  %29 = inttoptr i64 %23 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n; # (pair (shift X))\n  %32 = and i64 %31, 15\n  %33 = icmp eq i64 %32, 0\n  br i1 %33, label %$3, label %$4\n$3:\n  %34 = phi i64 [%22, %$2] ; # Exe\n  %35 = phi i64 [%31, %$2] ; # X\n  %36 = phi i64 [%24, %$2] ; # N\n  %37 = phi i64 [%25, %$2] ; # Y\n  %38 = phi i64 [%26, %$2] ; # Nm\n  %39 = phi i64 [%27, %$2] ; # L\n  %40 = phi i64 [%28, %$2] ; # P\n; # (evSym X)\n  %41 = call i64 @evSym(i64 %35)\n; # (xName Y)\n  %42 = call i64 @xName(i64 %41)\n; # (bufSize Nm)\n  %43 = call i64 @bufSize(i64 %42)\n; # (b8 (bufSize Nm))\n  %44 = alloca i8, i64 %43\n; # (bufString Nm (b8 (bufSize Nm)))\n  %45 = call i8* @bufString(i64 %42, i8* %44)\n; # (any (bufString Nm (b8 (bufSize Nm))))\n  %46 = ptrtoint i8* %45 to i64\n; # (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm)))))\n  %47 = alloca i64, i64 4, align 16\n  %48 = ptrtoint i64* %47 to i64\n  %49 = inttoptr i64 %48 to i64*\n  store i64 %41, i64* %49\n  %50 = add i64 %48, 16\n  %51 = inttoptr i64 %50 to i64*\n  store i64 0, i64* %51\n  %52 = add i64 %48, 24\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %46, i64* %53\n; # (link (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm))))))\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %55 = load i64, i64* %54\n  %56 = inttoptr i64 %48 to i64*\n  %57 = getelementptr i64, i64* %56, i32 1\n  store i64 %55, i64* %57\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %48, i64* %58\n; # (inc 'N)\n  %59 = add i64 %36, 1\n  br label %$2\n$4:\n  %60 = phi i64 [%22, %$2] ; # Exe\n  %61 = phi i64 [%31, %$2] ; # X\n  %62 = phi i64 [%24, %$2] ; # N\n  %63 = phi i64 [%25, %$2] ; # Y\n  %64 = phi i64 [%26, %$2] ; # Nm\n  %65 = phi i64 [%27, %$2] ; # L\n  %66 = phi i64 [%28, %$2] ; # P\n; # (unless (val $Chr) (call $Get))\n; # (val $Chr)\n  %67 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %68 = icmp ne i32 %67, 0\n  br i1 %68, label %$6, label %$5\n$5:\n  %69 = phi i64 [%60, %$4] ; # Exe\n  %70 = phi i64 [%61, %$4] ; # X\n  %71 = phi i64 [%62, %$4] ; # N\n  %72 = phi i64 [%63, %$4] ; # Y\n  %73 = phi i64 [%64, %$4] ; # Nm\n  %74 = phi i64 [%65, %$4] ; # L\n  %75 = phi i64 [%66, %$4] ; # P\n; # (call $Get)\n  %76 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %77 = call i32 %76()\n  br label %$6\n$6:\n  %78 = phi i64 [%60, %$4], [%69, %$5] ; # Exe\n  %79 = phi i64 [%61, %$4], [%70, %$5] ; # X\n  %80 = phi i64 [%62, %$4], [%71, %$5] ; # N\n  %81 = phi i64 [%63, %$4], [%72, %$5] ; # Y\n  %82 = phi i64 [%64, %$4], [%73, %$5] ; # Nm\n  %83 = phi i64 [%65, %$4], [%74, %$5] ; # L\n  %84 = phi i64 [%66, %$4], [%75, %$5] ; # P\n; # (while (ge0 (val $Chr)) (let (B (i8 @) Q (i64* L) I N) (loop (loo...\n  br label %$7\n$7:\n  %85 = phi i64 [%78, %$6], [%276, %$22] ; # Exe\n  %86 = phi i64 [%79, %$6], [%277, %$22] ; # X\n  %87 = phi i64 [%80, %$6], [%278, %$22] ; # N\n  %88 = phi i64 [%81, %$6], [%279, %$22] ; # Y\n  %89 = phi i64 [%82, %$6], [%280, %$22] ; # Nm\n  %90 = phi i64 [%83, %$6], [%281, %$22] ; # L\n  %91 = phi i64 [%84, %$6], [%282, %$22] ; # P\n; # (val $Chr)\n  %92 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (ge0 (val $Chr))\n  %93 = icmp sge i32 %92, 0\n  br i1 %93, label %$8, label %$9\n$8:\n  %94 = phi i64 [%85, %$7] ; # Exe\n  %95 = phi i64 [%86, %$7] ; # X\n  %96 = phi i64 [%87, %$7] ; # N\n  %97 = phi i64 [%88, %$7] ; # Y\n  %98 = phi i64 [%89, %$7] ; # Nm\n  %99 = phi i64 [%90, %$7] ; # L\n  %100 = phi i64 [%91, %$7] ; # P\n; # (let (B (i8 @) Q (i64* L) I N) (loop (loop (let S (ofs (i8* (val ...\n; # (i8 @)\n  %101 = trunc i32 %92 to i8\n; # (i64* L)\n  %102 = inttoptr i64 %99 to i64*\n; # (loop (loop (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (v...\n  br label %$10\n$10:\n  %103 = phi i64 [%94, %$8], [%263, %$21] ; # Exe\n  %104 = phi i64 [%95, %$8], [%264, %$21] ; # X\n  %105 = phi i64 [%96, %$8], [%265, %$21] ; # N\n  %106 = phi i64 [%97, %$8], [%266, %$21] ; # Y\n  %107 = phi i64 [%98, %$8], [%267, %$21] ; # Nm\n  %108 = phi i64 [%99, %$8], [%268, %$21] ; # L\n  %109 = phi i64 [%100, %$8], [%269, %$21] ; # P\n  %110 = phi i8 [%101, %$8], [%270, %$21] ; # B\n  %111 = phi i64* [%102, %$8], [%275, %$21] ; # Q\n  %112 = phi i64 [%96, %$8], [%272, %$21] ; # I\n; # (loop (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (val S))...\n  br label %$11\n$11:\n  %113 = phi i64 [%103, %$10], [%239, %$19] ; # Exe\n  %114 = phi i64 [%104, %$10], [%240, %$19] ; # X\n  %115 = phi i64 [%105, %$10], [%241, %$19] ; # N\n  %116 = phi i64 [%106, %$10], [%242, %$19] ; # Y\n  %117 = phi i64 [%107, %$10], [%243, %$19] ; # Nm\n  %118 = phi i64 [%108, %$10], [%244, %$19] ; # L\n  %119 = phi i64 [%109, %$10], [%245, %$19] ; # P\n  %120 = phi i8 [%110, %$10], [%246, %$19] ; # B\n  %121 = phi i64* [%111, %$10], [%247, %$19] ; # Q\n  %122 = phi i64 [%112, %$10], [%248, %$19] ; # I\n; # (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (val S)) (set ...\n; # (val 4 Q)\n  %123 = getelementptr i64, i64* %121, i32 3\n  %124 = load i64, i64* %123\n; # (i8* (val 4 Q))\n  %125 = inttoptr i64 %124 to i8*\n; # (val 3 Q)\n  %126 = getelementptr i64, i64* %121, i32 2\n  %127 = load i64, i64* %126\n; # (ofs (i8* (val 4 Q)) (val 3 Q))\n  %128 = getelementptr i8, i8* %125, i64 %127\n; # (when (== B (val S)) (set 3 Q (inc (val 3 Q))) (? (val 2 S)) (cal...\n; # (val S)\n  %129 = load i8, i8* %128\n; # (== B (val S))\n  %130 = icmp eq i8 %120, %129\n  br i1 %130, label %$12, label %$13\n$12:\n  %131 = phi i64 [%113, %$11] ; # Exe\n  %132 = phi i64 [%114, %$11] ; # X\n  %133 = phi i64 [%115, %$11] ; # N\n  %134 = phi i64 [%116, %$11] ; # Y\n  %135 = phi i64 [%117, %$11] ; # Nm\n  %136 = phi i64 [%118, %$11] ; # L\n  %137 = phi i64 [%119, %$11] ; # P\n  %138 = phi i8 [%120, %$11] ; # B\n  %139 = phi i64* [%121, %$11] ; # Q\n  %140 = phi i64 [%122, %$11] ; # I\n  %141 = phi i8* [%128, %$11] ; # S\n; # (set 3 Q (inc (val 3 Q)))\n; # (val 3 Q)\n  %142 = getelementptr i64, i64* %139, i32 2\n  %143 = load i64, i64* %142\n; # (inc (val 3 Q))\n  %144 = add i64 %143, 1\n  %145 = getelementptr i64, i64* %139, i32 2\n  store i64 %144, i64* %145\n; # (? (val 2 S))\n; # (val 2 S)\n  %146 = getelementptr i8, i8* %141, i32 1\n  %147 = load i8, i8* %146\n  %148 = icmp ne i8 %147, 0\n  br i1 %148, label %$15, label %$14\n$14:\n  %149 = phi i64 [%131, %$12] ; # Exe\n  %150 = phi i64 [%132, %$12] ; # X\n  %151 = phi i64 [%133, %$12] ; # N\n  %152 = phi i64 [%134, %$12] ; # Y\n  %153 = phi i64 [%135, %$12] ; # Nm\n  %154 = phi i64 [%136, %$12] ; # L\n  %155 = phi i64 [%137, %$12] ; # P\n  %156 = phi i8 [%138, %$12] ; # B\n  %157 = phi i64* [%139, %$12] ; # Q\n  %158 = phi i64 [%140, %$12] ; # I\n  %159 = phi i8* [%141, %$12] ; # S\n; # (call $Get)\n  %160 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %161 = call i32 %160()\n; # (drop P)\n  %162 = inttoptr i64 %155 to i64*\n  %163 = getelementptr i64, i64* %162, i32 1\n  %164 = load i64, i64* %163\n  %165 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %164, i64* %165\n; # (val Q)\n  %166 = load i64, i64* %157\n; # (ret (val Q))\n  ret i64 %166\n$13:\n  %167 = phi i64 [%113, %$11] ; # Exe\n  %168 = phi i64 [%114, %$11] ; # X\n  %169 = phi i64 [%115, %$11] ; # N\n  %170 = phi i64 [%116, %$11] ; # Y\n  %171 = phi i64 [%117, %$11] ; # Nm\n  %172 = phi i64 [%118, %$11] ; # L\n  %173 = phi i64 [%119, %$11] ; # P\n  %174 = phi i8 [%120, %$11] ; # B\n  %175 = phi i64* [%121, %$11] ; # Q\n  %176 = phi i64 [%122, %$11] ; # I\n  %177 = phi i8* [%128, %$11] ; # S\n; # (? (=0 (val 3 Q)))\n; # (val 3 Q)\n  %178 = getelementptr i64, i64* %175, i32 2\n  %179 = load i64, i64* %178\n; # (=0 (val 3 Q))\n  %180 = icmp eq i64 %179, 0\n  br i1 %180, label %$15, label %$16\n$16:\n  %181 = phi i64 [%167, %$13] ; # Exe\n  %182 = phi i64 [%168, %$13] ; # X\n  %183 = phi i64 [%169, %$13] ; # N\n  %184 = phi i64 [%170, %$13] ; # Y\n  %185 = phi i64 [%171, %$13] ; # Nm\n  %186 = phi i64 [%172, %$13] ; # L\n  %187 = phi i64 [%173, %$13] ; # P\n  %188 = phi i8 [%174, %$13] ; # B\n  %189 = phi i64* [%175, %$13] ; # Q\n  %190 = phi i64 [%176, %$13] ; # I\n; # (let S (ofs (i8* (val 4 Q)) 1) (while (set 3 Q (dec (val 3 Q))) (...\n; # (val 4 Q)\n  %191 = getelementptr i64, i64* %189, i32 3\n  %192 = load i64, i64* %191\n; # (i8* (val 4 Q))\n  %193 = inttoptr i64 %192 to i8*\n; # (ofs (i8* (val 4 Q)) 1)\n  %194 = getelementptr i8, i8* %193, i32 1\n; # (while (set 3 Q (dec (val 3 Q))) (? (=0 (memcmp (i8* (val 4 Q)) S...\n  br label %$17\n$17:\n  %195 = phi i64 [%181, %$16], [%227, %$20] ; # Exe\n  %196 = phi i64 [%182, %$16], [%228, %$20] ; # X\n  %197 = phi i64 [%183, %$16], [%229, %$20] ; # N\n  %198 = phi i64 [%184, %$16], [%230, %$20] ; # Y\n  %199 = phi i64 [%185, %$16], [%231, %$20] ; # Nm\n  %200 = phi i64 [%186, %$16], [%232, %$20] ; # L\n  %201 = phi i64 [%187, %$16], [%233, %$20] ; # P\n  %202 = phi i8 [%188, %$16], [%234, %$20] ; # B\n  %203 = phi i64* [%189, %$16], [%235, %$20] ; # Q\n  %204 = phi i64 [%190, %$16], [%236, %$20] ; # I\n  %205 = phi i8* [%194, %$16], [%238, %$20] ; # S\n; # (set 3 Q (dec (val 3 Q)))\n; # (val 3 Q)\n  %206 = getelementptr i64, i64* %203, i32 2\n  %207 = load i64, i64* %206\n; # (dec (val 3 Q))\n  %208 = sub i64 %207, 1\n  %209 = getelementptr i64, i64* %203, i32 2\n  store i64 %208, i64* %209\n  %210 = icmp ne i64 %208, 0\n  br i1 %210, label %$18, label %$19\n$18:\n  %211 = phi i64 [%195, %$17] ; # Exe\n  %212 = phi i64 [%196, %$17] ; # X\n  %213 = phi i64 [%197, %$17] ; # N\n  %214 = phi i64 [%198, %$17] ; # Y\n  %215 = phi i64 [%199, %$17] ; # Nm\n  %216 = phi i64 [%200, %$17] ; # L\n  %217 = phi i64 [%201, %$17] ; # P\n  %218 = phi i8 [%202, %$17] ; # B\n  %219 = phi i64* [%203, %$17] ; # Q\n  %220 = phi i64 [%204, %$17] ; # I\n  %221 = phi i8* [%205, %$17] ; # S\n; # (? (=0 (memcmp (i8* (val 4 Q)) S @)))\n; # (val 4 Q)\n  %222 = getelementptr i64, i64* %219, i32 3\n  %223 = load i64, i64* %222\n; # (i8* (val 4 Q))\n  %224 = inttoptr i64 %223 to i8*\n; # (memcmp (i8* (val 4 Q)) S @)\n  %225 = call i32 @memcmp(i8* %224, i8* %221, i64 %208)\n; # (=0 (memcmp (i8* (val 4 Q)) S @))\n  %226 = icmp eq i32 %225, 0\n  br i1 %226, label %$19, label %$20\n$20:\n  %227 = phi i64 [%211, %$18] ; # Exe\n  %228 = phi i64 [%212, %$18] ; # X\n  %229 = phi i64 [%213, %$18] ; # N\n  %230 = phi i64 [%214, %$18] ; # Y\n  %231 = phi i64 [%215, %$18] ; # Nm\n  %232 = phi i64 [%216, %$18] ; # L\n  %233 = phi i64 [%217, %$18] ; # P\n  %234 = phi i8 [%218, %$18] ; # B\n  %235 = phi i64* [%219, %$18] ; # Q\n  %236 = phi i64 [%220, %$18] ; # I\n  %237 = phi i8* [%221, %$18] ; # S\n; # (inc 'S)\n  %238 = getelementptr i8, i8* %237, i32 1\n  br label %$17\n$19:\n  %239 = phi i64 [%195, %$17], [%211, %$18] ; # Exe\n  %240 = phi i64 [%196, %$17], [%212, %$18] ; # X\n  %241 = phi i64 [%197, %$17], [%213, %$18] ; # N\n  %242 = phi i64 [%198, %$17], [%214, %$18] ; # Y\n  %243 = phi i64 [%199, %$17], [%215, %$18] ; # Nm\n  %244 = phi i64 [%200, %$17], [%216, %$18] ; # L\n  %245 = phi i64 [%201, %$17], [%217, %$18] ; # P\n  %246 = phi i8 [%202, %$17], [%218, %$18] ; # B\n  %247 = phi i64* [%203, %$17], [%219, %$18] ; # Q\n  %248 = phi i64 [%204, %$17], [%220, %$18] ; # I\n  %249 = phi i8* [%205, %$17], [%221, %$18] ; # S\n  br label %$11\n$15:\n  %250 = phi i64 [%131, %$12], [%167, %$13] ; # Exe\n  %251 = phi i64 [%132, %$12], [%168, %$13] ; # X\n  %252 = phi i64 [%133, %$12], [%169, %$13] ; # N\n  %253 = phi i64 [%134, %$12], [%170, %$13] ; # Y\n  %254 = phi i64 [%135, %$12], [%171, %$13] ; # Nm\n  %255 = phi i64 [%136, %$12], [%172, %$13] ; # L\n  %256 = phi i64 [%137, %$12], [%173, %$13] ; # P\n  %257 = phi i8 [%138, %$12], [%174, %$13] ; # B\n  %258 = phi i64* [%139, %$12], [%175, %$13] ; # Q\n  %259 = phi i64 [%140, %$12], [%176, %$13] ; # I\n  %260 = phi i64 [0, %$12], [0, %$13] ; # ->\n; # (? (=0 (dec 'I)))\n; # (dec 'I)\n  %261 = sub i64 %259, 1\n; # (=0 (dec 'I))\n  %262 = icmp eq i64 %261, 0\n  br i1 %262, label %$22, label %$21\n$21:\n  %263 = phi i64 [%250, %$15] ; # Exe\n  %264 = phi i64 [%251, %$15] ; # X\n  %265 = phi i64 [%252, %$15] ; # N\n  %266 = phi i64 [%253, %$15] ; # Y\n  %267 = phi i64 [%254, %$15] ; # Nm\n  %268 = phi i64 [%255, %$15] ; # L\n  %269 = phi i64 [%256, %$15] ; # P\n  %270 = phi i8 [%257, %$15] ; # B\n  %271 = phi i64* [%258, %$15] ; # Q\n  %272 = phi i64 [%261, %$15] ; # I\n; # (val 2 Q)\n  %273 = getelementptr i64, i64* %271, i32 1\n  %274 = load i64, i64* %273\n; # (i64* (val 2 Q))\n  %275 = inttoptr i64 %274 to i64*\n  br label %$10\n$22:\n  %276 = phi i64 [%250, %$15] ; # Exe\n  %277 = phi i64 [%251, %$15] ; # X\n  %278 = phi i64 [%252, %$15] ; # N\n  %279 = phi i64 [%253, %$15] ; # Y\n  %280 = phi i64 [%254, %$15] ; # Nm\n  %281 = phi i64 [%255, %$15] ; # L\n  %282 = phi i64 [%256, %$15] ; # P\n  %283 = phi i8 [%257, %$15] ; # B\n  %284 = phi i64* [%258, %$15] ; # Q\n  %285 = phi i64 [%261, %$15] ; # I\n  %286 = phi i64 [0, %$15] ; # ->\n; # (call $Get)\n  %287 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %288 = call i32 %287()\n  br label %$7\n$9:\n  %289 = phi i64 [%85, %$7] ; # Exe\n  %290 = phi i64 [%86, %$7] ; # X\n  %291 = phi i64 [%87, %$7] ; # N\n  %292 = phi i64 [%88, %$7] ; # Y\n  %293 = phi i64 [%89, %$7] ; # Nm\n  %294 = phi i64 [%90, %$7] ; # L\n  %295 = phi i64 [%91, %$7] ; # P\n; # (drop P)\n  %296 = inttoptr i64 %295 to i64*\n  %297 = getelementptr i64, i64* %296, i32 1\n  %298 = load i64, i64* %297\n  %299 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %298, i64* %299\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_Till(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (evSym X)) S (bufString Nm (b8 (bufSi...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (bufSize Nm)\n  %6 = call i64 @bufSize(i64 %5)\n; # (b8 (bufSize Nm))\n  %7 = alloca i8, i64 %6\n; # (bufString Nm (b8 (bufSize Nm)))\n  %8 = call i8* @bufString(i64 %5, i8* %7)\n; # (let C (if (val $Chr) @ (call $Get)) (cond ((or (lt0 C) (strchr S...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %9 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %10 = icmp ne i32 %9, 0\n  br i1 %10, label %$2, label %$3\n$2:\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = phi i64 [%3, %$1] ; # X\n  %13 = phi i64 [%5, %$1] ; # Nm\n  %14 = phi i8* [%8, %$1] ; # S\n  br label %$4\n$3:\n  %15 = phi i64 [%0, %$1] ; # Exe\n  %16 = phi i64 [%3, %$1] ; # X\n  %17 = phi i64 [%5, %$1] ; # Nm\n  %18 = phi i8* [%8, %$1] ; # S\n; # (call $Get)\n  %19 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %20 = call i32 %19()\n  br label %$4\n$4:\n  %21 = phi i64 [%11, %$2], [%15, %$3] ; # Exe\n  %22 = phi i64 [%12, %$2], [%16, %$3] ; # X\n  %23 = phi i64 [%13, %$2], [%17, %$3] ; # Nm\n  %24 = phi i8* [%14, %$2], [%18, %$3] ; # S\n  %25 = phi i32 [%9, %$2], [%20, %$3] ; # ->\n; # (cond ((or (lt0 C) (strchr S C)) $Nil) ((nil? (eval (cadr X))) (l...\n; # (or (lt0 C) (strchr S C))\n; # (lt0 C)\n  %26 = icmp slt i32 %25, 0\n  br i1 %26, label %$6, label %$7\n$7:\n  %27 = phi i64 [%21, %$4] ; # Exe\n  %28 = phi i64 [%22, %$4] ; # X\n  %29 = phi i64 [%23, %$4] ; # Nm\n  %30 = phi i8* [%24, %$4] ; # S\n  %31 = phi i32 [%25, %$4] ; # C\n; # (strchr S C)\n  %32 = call i8* @strchr(i8* %30, i32 %31)\n  %33 = icmp ne i8* %32, null\n  br label %$6\n$6:\n  %34 = phi i64 [%21, %$4], [%27, %$7] ; # Exe\n  %35 = phi i64 [%22, %$4], [%28, %$7] ; # X\n  %36 = phi i64 [%23, %$4], [%29, %$7] ; # Nm\n  %37 = phi i8* [%24, %$4], [%30, %$7] ; # S\n  %38 = phi i32 [%25, %$4], [%31, %$7] ; # C\n  %39 = phi i1 [1, %$4], [%33, %$7] ; # ->\n  br i1 %39, label %$9, label %$8\n$9:\n  %40 = phi i64 [%34, %$6] ; # Exe\n  %41 = phi i64 [%35, %$6] ; # X\n  %42 = phi i64 [%36, %$6] ; # Nm\n  %43 = phi i8* [%37, %$6] ; # S\n  %44 = phi i32 [%38, %$6] ; # C\n  br label %$5\n$8:\n  %45 = phi i64 [%34, %$6] ; # Exe\n  %46 = phi i64 [%35, %$6] ; # X\n  %47 = phi i64 [%36, %$6] ; # Nm\n  %48 = phi i8* [%37, %$6] ; # S\n  %49 = phi i32 [%38, %$6] ; # C\n; # (cadr X)\n  %50 = inttoptr i64 %46 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n; # (eval (cadr X))\n  %55 = and i64 %54, 6\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$12, label %$11\n$12:\n  %57 = phi i64 [%54, %$8] ; # X\n  br label %$10\n$11:\n  %58 = phi i64 [%54, %$8] ; # X\n  %59 = and i64 %58, 8\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$14, label %$13\n$14:\n  %61 = phi i64 [%58, %$11] ; # X\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n  br label %$10\n$13:\n  %64 = phi i64 [%58, %$11] ; # X\n  %65 = call i64 @evList(i64 %64)\n  br label %$10\n$10:\n  %66 = phi i64 [%57, %$12], [%61, %$14], [%64, %$13] ; # X\n  %67 = phi i64 [%57, %$12], [%63, %$14], [%65, %$13] ; # ->\n; # (nil? (eval (cadr X)))\n  %68 = icmp eq i64 %67, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %68, label %$16, label %$15\n$16:\n  %69 = phi i64 [%45, %$10] ; # Exe\n  %70 = phi i64 [%46, %$10] ; # X\n  %71 = phi i64 [%47, %$10] ; # Nm\n  %72 = phi i8* [%48, %$10] ; # S\n  %73 = phi i32 [%49, %$10] ; # C\n; # (let (Y (cons (mkChar (getChar C)) $Nil) R (save Y)) (until (or (...\n; # (getChar C)\n  %74 = call i32 @getChar(i32 %73)\n; # (mkChar (getChar C))\n  %75 = call i64 @mkChar(i32 %74)\n; # (cons (mkChar (getChar C)) $Nil)\n  %76 = call i64 @cons(i64 %75, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %78 = load i64, i64* %77\n  %79 = alloca i64, i64 2, align 16\n  %80 = ptrtoint i64* %79 to i64\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %76, i64* %81\n  %82 = add i64 %80, 8\n  %83 = inttoptr i64 %82 to i64*\n  store i64 %78, i64* %83\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %84\n; # (until (or (le0 (setq C (call $Get))) (strchr S C)) (setq Y (set ...\n  br label %$17\n$17:\n  %85 = phi i64 [%69, %$16], [%112, %$20] ; # Exe\n  %86 = phi i64 [%70, %$16], [%113, %$20] ; # X\n  %87 = phi i64 [%71, %$16], [%114, %$20] ; # Nm\n  %88 = phi i8* [%72, %$16], [%115, %$20] ; # S\n  %89 = phi i32 [%73, %$16], [%116, %$20] ; # C\n  %90 = phi i64 [%76, %$16], [%121, %$20] ; # Y\n  %91 = phi i64 [%76, %$16], [%118, %$20] ; # R\n; # (or (le0 (setq C (call $Get))) (strchr S C))\n; # (call $Get)\n  %92 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %93 = call i32 %92()\n; # (le0 (setq C (call $Get)))\n  %94 = icmp sle i32 %93, 0\n  br i1 %94, label %$18, label %$19\n$19:\n  %95 = phi i64 [%85, %$17] ; # Exe\n  %96 = phi i64 [%86, %$17] ; # X\n  %97 = phi i64 [%87, %$17] ; # Nm\n  %98 = phi i8* [%88, %$17] ; # S\n  %99 = phi i32 [%93, %$17] ; # C\n  %100 = phi i64 [%90, %$17] ; # Y\n  %101 = phi i64 [%91, %$17] ; # R\n; # (strchr S C)\n  %102 = call i8* @strchr(i8* %98, i32 %99)\n  %103 = icmp ne i8* %102, null\n  br label %$18\n$18:\n  %104 = phi i64 [%85, %$17], [%95, %$19] ; # Exe\n  %105 = phi i64 [%86, %$17], [%96, %$19] ; # X\n  %106 = phi i64 [%87, %$17], [%97, %$19] ; # Nm\n  %107 = phi i8* [%88, %$17], [%98, %$19] ; # S\n  %108 = phi i32 [%93, %$17], [%99, %$19] ; # C\n  %109 = phi i64 [%90, %$17], [%100, %$19] ; # Y\n  %110 = phi i64 [%91, %$17], [%101, %$19] ; # R\n  %111 = phi i1 [1, %$17], [%103, %$19] ; # ->\n  br i1 %111, label %$21, label %$20\n$20:\n  %112 = phi i64 [%104, %$18] ; # Exe\n  %113 = phi i64 [%105, %$18] ; # X\n  %114 = phi i64 [%106, %$18] ; # Nm\n  %115 = phi i8* [%107, %$18] ; # S\n  %116 = phi i32 [%108, %$18] ; # C\n  %117 = phi i64 [%109, %$18] ; # Y\n  %118 = phi i64 [%110, %$18] ; # R\n; # (set 2 Y (cons (mkChar (getChar C)) $Nil))\n; # (getChar C)\n  %119 = call i32 @getChar(i32 %116)\n; # (mkChar (getChar C))\n  %120 = call i64 @mkChar(i32 %119)\n; # (cons (mkChar (getChar C)) $Nil)\n  %121 = call i64 @cons(i64 %120, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %122 = inttoptr i64 %117 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  store i64 %121, i64* %123\n  br label %$17\n$21:\n  %124 = phi i64 [%104, %$18] ; # Exe\n  %125 = phi i64 [%105, %$18] ; # X\n  %126 = phi i64 [%106, %$18] ; # Nm\n  %127 = phi i8* [%107, %$18] ; # S\n  %128 = phi i32 [%108, %$18] ; # C\n  %129 = phi i64 [%109, %$18] ; # Y\n  %130 = phi i64 [%110, %$18] ; # R\n; # (drop *Safe)\n  %131 = inttoptr i64 %80 to i64*\n  %132 = getelementptr i64, i64* %131, i32 1\n  %133 = load i64, i64* %132\n  %134 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %133, i64* %134\n  br label %$5\n$15:\n  %135 = phi i64 [%45, %$10] ; # Exe\n  %136 = phi i64 [%46, %$10] ; # X\n  %137 = phi i64 [%47, %$10] ; # Nm\n  %138 = phi i8* [%48, %$10] ; # S\n  %139 = phi i32 [%49, %$10] ; # C\n; # (let (P (push 4 NIL ZERO NIL) Q (link (ofs P 2))) (loop (charSym ...\n; # (push 4 NIL ZERO NIL)\n  %140 = alloca i64, i64 4, align 16\n  store i64 4, i64* %140\n  %141 = getelementptr i64, i64* %140, i32 2\n  store i64 2, i64* %141\n; # (ofs P 2)\n  %142 = getelementptr i64, i64* %140, i32 2\n; # (link (ofs P 2))\n  %143 = ptrtoint i64* %142 to i64\n  %144 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %145 = load i64, i64* %144\n  %146 = inttoptr i64 %143 to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  store i64 %145, i64* %147\n  %148 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %143, i64* %148\n; # (loop (charSym (getChar C) P) (? (le0 (setq C (call $Get)))) (? (...\n  br label %$22\n$22:\n  %149 = phi i64 [%135, %$15], [%169, %$25] ; # Exe\n  %150 = phi i64 [%136, %$15], [%170, %$25] ; # X\n  %151 = phi i64 [%137, %$15], [%171, %$25] ; # Nm\n  %152 = phi i8* [%138, %$15], [%172, %$25] ; # S\n  %153 = phi i32 [%139, %$15], [%173, %$25] ; # C\n  %154 = phi i64* [%140, %$15], [%174, %$25] ; # P\n  %155 = phi i64 [%143, %$15], [%175, %$25] ; # Q\n; # (getChar C)\n  %156 = call i32 @getChar(i32 %153)\n; # (charSym (getChar C) P)\n  call void @charSym(i32 %156, i64* %154)\n; # (? (le0 (setq C (call $Get))))\n; # (call $Get)\n  %157 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %158 = call i32 %157()\n; # (le0 (setq C (call $Get)))\n  %159 = icmp sle i32 %158, 0\n  br i1 %159, label %$24, label %$23\n$23:\n  %160 = phi i64 [%149, %$22] ; # Exe\n  %161 = phi i64 [%150, %$22] ; # X\n  %162 = phi i64 [%151, %$22] ; # Nm\n  %163 = phi i8* [%152, %$22] ; # S\n  %164 = phi i32 [%158, %$22] ; # C\n  %165 = phi i64* [%154, %$22] ; # P\n  %166 = phi i64 [%155, %$22] ; # Q\n; # (? (strchr S C))\n; # (strchr S C)\n  %167 = call i8* @strchr(i8* %163, i32 %164)\n  %168 = icmp ne i8* %167, null\n  br i1 %168, label %$24, label %$25\n$25:\n  %169 = phi i64 [%160, %$23] ; # Exe\n  %170 = phi i64 [%161, %$23] ; # X\n  %171 = phi i64 [%162, %$23] ; # Nm\n  %172 = phi i8* [%163, %$23] ; # S\n  %173 = phi i32 [%164, %$23] ; # C\n  %174 = phi i64* [%165, %$23] ; # P\n  %175 = phi i64 [%166, %$23] ; # Q\n  br label %$22\n$24:\n  %176 = phi i64 [%149, %$22], [%160, %$23] ; # Exe\n  %177 = phi i64 [%150, %$22], [%161, %$23] ; # X\n  %178 = phi i64 [%151, %$22], [%162, %$23] ; # Nm\n  %179 = phi i8* [%152, %$22], [%163, %$23] ; # S\n  %180 = phi i32 [%158, %$22], [%164, %$23] ; # C\n  %181 = phi i64* [%154, %$22], [%165, %$23] ; # P\n  %182 = phi i64 [%155, %$22], [%166, %$23] ; # Q\n  %183 = phi i64 [0, %$22], [0, %$23] ; # ->\n; # (drop Q (consStr (val 3 P)))\n; # (val 3 P)\n  %184 = getelementptr i64, i64* %181, i32 2\n  %185 = load i64, i64* %184\n; # (consStr (val 3 P))\n  %186 = call i64 @consStr(i64 %185)\n  %187 = inttoptr i64 %182 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n  %190 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %189, i64* %190\n  br label %$5\n$5:\n  %191 = phi i64 [%40, %$9], [%124, %$21], [%176, %$24] ; # Exe\n  %192 = phi i64 [%41, %$9], [%125, %$21], [%177, %$24] ; # X\n  %193 = phi i64 [%42, %$9], [%126, %$21], [%178, %$24] ; # Nm\n  %194 = phi i8* [%43, %$9], [%127, %$21], [%179, %$24] ; # S\n  %195 = phi i32 [%44, %$9], [%128, %$21], [%180, %$24] ; # C\n  %196 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%130, %$21], [%186, %$24] ; # ->\n  ret i64 %196\n}\n\ndefine i1 @eol(i32) align 8 {\n$1:\n; # (cond ((lt0 C) YES) ((== C (char \"^J\")) (set $Chr 0) YES) ((== C ...\n; # (lt0 C)\n  %1 = icmp slt i32 %0, 0\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i32 [%0, %$1] ; # C\n  br label %$2\n$3:\n  %3 = phi i32 [%0, %$1] ; # C\n; # (== C (char \"^J\"))\n  %4 = icmp eq i32 %3, 10\n  br i1 %4, label %$6, label %$5\n$6:\n  %5 = phi i32 [%3, %$3] ; # C\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$2\n$5:\n  %6 = phi i32 [%3, %$3] ; # C\n; # (== C (char \"^M\"))\n  %7 = icmp eq i32 %6, 13\n  br i1 %7, label %$8, label %$7\n$8:\n  %8 = phi i32 [%6, %$5] ; # C\n; # (when (== (call $Get) (char \"^J\")) (set $Chr 0))\n; # (call $Get)\n  %9 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %10 = call i32 %9()\n; # (== (call $Get) (char \"^J\"))\n  %11 = icmp eq i32 %10, 10\n  br i1 %11, label %$9, label %$10\n$9:\n  %12 = phi i32 [%8, %$8] ; # C\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$10\n$10:\n  %13 = phi i32 [%8, %$8], [%12, %$9] ; # C\n  br label %$2\n$7:\n  %14 = phi i32 [%6, %$5] ; # C\n  br label %$2\n$2:\n  %15 = phi i32 [%2, %$4], [%5, %$6], [%13, %$10], [%14, %$7] ; # C\n  %16 = phi i1 [1, %$4], [1, %$6], [1, %$10], [0, %$7] ; # ->\n  ret i1 %16\n}\n\ndefine i64 @_Line(i64) align 8 {\n$1:\n; # (let C (if (val $Chr) @ (call $Get)) (if (eol C) $Nil (let X (cdr...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %1 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # Exe\n; # (call $Get)\n  %5 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %6 = call i32 %5()\n  br label %$4\n$4:\n  %7 = phi i64 [%3, %$2], [%4, %$3] ; # Exe\n  %8 = phi i32 [%1, %$2], [%6, %$3] ; # ->\n; # (if (eol C) $Nil (let X (cdr Exe) (cond ((nil? (eval (++ X))) (le...\n; # (eol C)\n  %9 = call i1 @eol(i32 %8)\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i64 [%7, %$4] ; # Exe\n  %11 = phi i32 [%8, %$4] ; # C\n  br label %$7\n$6:\n  %12 = phi i64 [%7, %$4] ; # Exe\n  %13 = phi i32 [%8, %$4] ; # C\n; # (let X (cdr Exe) (cond ((nil? (eval (++ X))) (let (Y (cons (mkCha...\n; # (cdr Exe)\n  %14 = inttoptr i64 %12 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n; # (cond ((nil? (eval (++ X))) (let (Y (cons (mkChar (getChar C)) $N...\n; # (++ X)\n  %17 = inttoptr i64 %16 to i64*\n  %18 = getelementptr i64, i64* %17, i32 1\n  %19 = load i64, i64* %18\n  %20 = load i64, i64* %17\n; # (eval (++ X))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$11, label %$10\n$11:\n  %23 = phi i64 [%20, %$6] ; # X\n  br label %$9\n$10:\n  %24 = phi i64 [%20, %$6] ; # X\n  %25 = and i64 %24, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$13, label %$12\n$13:\n  %27 = phi i64 [%24, %$10] ; # X\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$9\n$12:\n  %30 = phi i64 [%24, %$10] ; # X\n  %31 = call i64 @evList(i64 %30)\n  br label %$9\n$9:\n  %32 = phi i64 [%23, %$11], [%27, %$13], [%30, %$12] ; # X\n  %33 = phi i64 [%23, %$11], [%29, %$13], [%31, %$12] ; # ->\n; # (nil? (eval (++ X)))\n  %34 = icmp eq i64 %33, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %34, label %$15, label %$14\n$15:\n  %35 = phi i64 [%12, %$9] ; # Exe\n  %36 = phi i32 [%13, %$9] ; # C\n  %37 = phi i64 [%19, %$9] ; # X\n; # (let (Y (cons (mkChar (getChar C)) $Nil) R (save Y)) (when (pair ...\n; # (getChar C)\n  %38 = call i32 @getChar(i32 %36)\n; # (mkChar (getChar C))\n  %39 = call i64 @mkChar(i32 %38)\n; # (cons (mkChar (getChar C)) $Nil)\n  %40 = call i64 @cons(i64 %39, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %42 = load i64, i64* %41\n  %43 = alloca i64, i64 2, align 16\n  %44 = ptrtoint i64* %43 to i64\n  %45 = inttoptr i64 %44 to i64*\n  store i64 %40, i64* %45\n  %46 = add i64 %44, 8\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %42, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %44, i64* %48\n; # (when (pair X) (let Z (set Y (cons (car Y) $Nil)) (loop (let N (e...\n; # (pair X)\n  %49 = and i64 %37, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$16, label %$17\n$16:\n  %51 = phi i64 [%35, %$15] ; # Exe\n  %52 = phi i32 [%36, %$15] ; # C\n  %53 = phi i64 [%37, %$15] ; # X\n  %54 = phi i64 [%40, %$15] ; # Y\n  %55 = phi i64 [%40, %$15] ; # R\n; # (let Z (set Y (cons (car Y) $Nil)) (loop (let N (evCnt Exe X) (wh...\n; # (set Y (cons (car Y) $Nil))\n; # (car Y)\n  %56 = inttoptr i64 %54 to i64*\n  %57 = load i64, i64* %56\n; # (cons (car Y) $Nil)\n  %58 = call i64 @cons(i64 %57, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %59 = inttoptr i64 %54 to i64*\n  store i64 %58, i64* %59\n; # (loop (let N (evCnt Exe X) (while (gt0 (dec 'N)) (when (eol (setq...\n  br label %$18\n$18:\n  %60 = phi i64 [%51, %$16], [%140, %$27] ; # Exe\n  %61 = phi i32 [%52, %$16], [%141, %$27] ; # C\n  %62 = phi i64 [%53, %$16], [%142, %$27] ; # X\n  %63 = phi i64 [%54, %$16], [%149, %$27] ; # Y\n  %64 = phi i64 [%55, %$16], [%144, %$27] ; # R\n  %65 = phi i64 [%58, %$16], [%148, %$27] ; # Z\n; # (let N (evCnt Exe X) (while (gt0 (dec 'N)) (when (eol (setq C (ca...\n; # (evCnt Exe X)\n  %66 = call i64 @evCnt(i64 %60, i64 %62)\n; # (while (gt0 (dec 'N)) (when (eol (setq C (call $Get))) (ret R)) (...\n  br label %$19\n$19:\n  %67 = phi i64 [%60, %$18], [%97, %$23] ; # Exe\n  %68 = phi i32 [%61, %$18], [%98, %$23] ; # C\n  %69 = phi i64 [%62, %$18], [%99, %$23] ; # X\n  %70 = phi i64 [%63, %$18], [%100, %$23] ; # Y\n  %71 = phi i64 [%64, %$18], [%101, %$23] ; # R\n  %72 = phi i64 [%65, %$18], [%106, %$23] ; # Z\n  %73 = phi i64 [%66, %$18], [%103, %$23] ; # N\n; # (dec 'N)\n  %74 = sub i64 %73, 1\n; # (gt0 (dec 'N))\n  %75 = icmp sgt i64 %74, 0\n  br i1 %75, label %$20, label %$21\n$20:\n  %76 = phi i64 [%67, %$19] ; # Exe\n  %77 = phi i32 [%68, %$19] ; # C\n  %78 = phi i64 [%69, %$19] ; # X\n  %79 = phi i64 [%70, %$19] ; # Y\n  %80 = phi i64 [%71, %$19] ; # R\n  %81 = phi i64 [%72, %$19] ; # Z\n  %82 = phi i64 [%74, %$19] ; # N\n; # (when (eol (setq C (call $Get))) (ret R))\n; # (call $Get)\n  %83 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %84 = call i32 %83()\n; # (eol (setq C (call $Get)))\n  %85 = call i1 @eol(i32 %84)\n  br i1 %85, label %$22, label %$23\n$22:\n  %86 = phi i64 [%76, %$20] ; # Exe\n  %87 = phi i32 [%84, %$20] ; # C\n  %88 = phi i64 [%78, %$20] ; # X\n  %89 = phi i64 [%79, %$20] ; # Y\n  %90 = phi i64 [%80, %$20] ; # R\n  %91 = phi i64 [%81, %$20] ; # Z\n  %92 = phi i64 [%82, %$20] ; # N\n; # (ret R)\n; # (drop *Safe)\n  %93 = inttoptr i64 %44 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %95, i64* %96\n  ret i64 %90\n$23:\n  %97 = phi i64 [%76, %$20] ; # Exe\n  %98 = phi i32 [%84, %$20] ; # C\n  %99 = phi i64 [%78, %$20] ; # X\n  %100 = phi i64 [%79, %$20] ; # Y\n  %101 = phi i64 [%80, %$20] ; # R\n  %102 = phi i64 [%81, %$20] ; # Z\n  %103 = phi i64 [%82, %$20] ; # N\n; # (set 2 Z (cons (mkChar (getChar C)) $Nil))\n; # (getChar C)\n  %104 = call i32 @getChar(i32 %98)\n; # (mkChar (getChar C))\n  %105 = call i64 @mkChar(i32 %104)\n; # (cons (mkChar (getChar C)) $Nil)\n  %106 = call i64 @cons(i64 %105, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %107 = inttoptr i64 %102 to i64*\n  %108 = getelementptr i64, i64* %107, i32 1\n  store i64 %106, i64* %108\n  br label %$19\n$21:\n  %109 = phi i64 [%67, %$19] ; # Exe\n  %110 = phi i32 [%68, %$19] ; # C\n  %111 = phi i64 [%69, %$19] ; # X\n  %112 = phi i64 [%70, %$19] ; # Y\n  %113 = phi i64 [%71, %$19] ; # R\n  %114 = phi i64 [%72, %$19] ; # Z\n  %115 = phi i64 [%74, %$19] ; # N\n; # (? (atom (shift X)))\n; # (shift X)\n  %116 = inttoptr i64 %111 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n; # (atom (shift X))\n  %119 = and i64 %118, 15\n  %120 = icmp ne i64 %119, 0\n  br i1 %120, label %$25, label %$24\n$24:\n  %121 = phi i64 [%109, %$21] ; # Exe\n  %122 = phi i32 [%110, %$21] ; # C\n  %123 = phi i64 [%118, %$21] ; # X\n  %124 = phi i64 [%112, %$21] ; # Y\n  %125 = phi i64 [%113, %$21] ; # R\n  %126 = phi i64 [%114, %$21] ; # Z\n; # (when (eol (setq C (call $Get))) (ret R))\n; # (call $Get)\n  %127 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %128 = call i32 %127()\n; # (eol (setq C (call $Get)))\n  %129 = call i1 @eol(i32 %128)\n  br i1 %129, label %$26, label %$27\n$26:\n  %130 = phi i64 [%121, %$24] ; # Exe\n  %131 = phi i32 [%128, %$24] ; # C\n  %132 = phi i64 [%123, %$24] ; # X\n  %133 = phi i64 [%124, %$24] ; # Y\n  %134 = phi i64 [%125, %$24] ; # R\n  %135 = phi i64 [%126, %$24] ; # Z\n; # (ret R)\n; # (drop *Safe)\n  %136 = inttoptr i64 %44 to i64*\n  %137 = getelementptr i64, i64* %136, i32 1\n  %138 = load i64, i64* %137\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %138, i64* %139\n  ret i64 %134\n$27:\n  %140 = phi i64 [%121, %$24] ; # Exe\n  %141 = phi i32 [%128, %$24] ; # C\n  %142 = phi i64 [%123, %$24] ; # X\n  %143 = phi i64 [%124, %$24] ; # Y\n  %144 = phi i64 [%125, %$24] ; # R\n  %145 = phi i64 [%126, %$24] ; # Z\n; # (set 2 Y (cons (setq Z (cons (mkChar (getChar C)) $Nil)) $Nil))\n; # (getChar C)\n  %146 = call i32 @getChar(i32 %141)\n; # (mkChar (getChar C))\n  %147 = call i64 @mkChar(i32 %146)\n; # (cons (mkChar (getChar C)) $Nil)\n  %148 = call i64 @cons(i64 %147, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (setq Z (cons (mkChar (getChar C)) $Nil)) $Nil)\n  %149 = call i64 @cons(i64 %148, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %150 = inttoptr i64 %143 to i64*\n  %151 = getelementptr i64, i64* %150, i32 1\n  store i64 %149, i64* %151\n  br label %$18\n$25:\n  %152 = phi i64 [%109, %$21] ; # Exe\n  %153 = phi i32 [%110, %$21] ; # C\n  %154 = phi i64 [%118, %$21] ; # X\n  %155 = phi i64 [%112, %$21] ; # Y\n  %156 = phi i64 [%113, %$21] ; # R\n  %157 = phi i64 [%114, %$21] ; # Z\n  %158 = phi i64 [0, %$21] ; # ->\n  br label %$17\n$17:\n  %159 = phi i64 [%35, %$15], [%152, %$25] ; # Exe\n  %160 = phi i32 [%36, %$15], [%153, %$25] ; # C\n  %161 = phi i64 [%37, %$15], [%154, %$25] ; # X\n  %162 = phi i64 [%40, %$15], [%155, %$25] ; # Y\n  %163 = phi i64 [%40, %$15], [%156, %$25] ; # R\n; # (until (eol (setq C (call $Get))) (setq Y (set 2 Y (cons (mkChar ...\n  br label %$28\n$28:\n  %164 = phi i64 [%159, %$17], [%172, %$29] ; # Exe\n  %165 = phi i32 [%160, %$17], [%173, %$29] ; # C\n  %166 = phi i64 [%161, %$17], [%174, %$29] ; # X\n  %167 = phi i64 [%162, %$17], [%179, %$29] ; # Y\n  %168 = phi i64 [%163, %$17], [%176, %$29] ; # R\n; # (call $Get)\n  %169 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %170 = call i32 %169()\n; # (eol (setq C (call $Get)))\n  %171 = call i1 @eol(i32 %170)\n  br i1 %171, label %$30, label %$29\n$29:\n  %172 = phi i64 [%164, %$28] ; # Exe\n  %173 = phi i32 [%170, %$28] ; # C\n  %174 = phi i64 [%166, %$28] ; # X\n  %175 = phi i64 [%167, %$28] ; # Y\n  %176 = phi i64 [%168, %$28] ; # R\n; # (set 2 Y (cons (mkChar (getChar C)) $Nil))\n; # (getChar C)\n  %177 = call i32 @getChar(i32 %173)\n; # (mkChar (getChar C))\n  %178 = call i64 @mkChar(i32 %177)\n; # (cons (mkChar (getChar C)) $Nil)\n  %179 = call i64 @cons(i64 %178, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %180 = inttoptr i64 %175 to i64*\n  %181 = getelementptr i64, i64* %180, i32 1\n  store i64 %179, i64* %181\n  br label %$28\n$30:\n  %182 = phi i64 [%164, %$28] ; # Exe\n  %183 = phi i32 [%170, %$28] ; # C\n  %184 = phi i64 [%166, %$28] ; # X\n  %185 = phi i64 [%167, %$28] ; # Y\n  %186 = phi i64 [%168, %$28] ; # R\n; # (drop *Safe)\n  %187 = inttoptr i64 %44 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n  %190 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %189, i64* %190\n  br label %$8\n$14:\n  %191 = phi i64 [%12, %$9] ; # Exe\n  %192 = phi i32 [%13, %$9] ; # C\n  %193 = phi i64 [%19, %$9] ; # X\n; # (atom X)\n  %194 = and i64 %193, 15\n  %195 = icmp ne i64 %194, 0\n  br i1 %195, label %$32, label %$31\n$32:\n  %196 = phi i64 [%191, %$14] ; # Exe\n  %197 = phi i32 [%192, %$14] ; # C\n  %198 = phi i64 [%193, %$14] ; # X\n; # (let (P (push 4 NIL ZERO NIL) Q (link (ofs P 2))) (loop (charSym ...\n; # (push 4 NIL ZERO NIL)\n  %199 = alloca i64, i64 4, align 16\n  store i64 4, i64* %199\n  %200 = getelementptr i64, i64* %199, i32 2\n  store i64 2, i64* %200\n; # (ofs P 2)\n  %201 = getelementptr i64, i64* %199, i32 2\n; # (link (ofs P 2))\n  %202 = ptrtoint i64* %201 to i64\n  %203 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %204 = load i64, i64* %203\n  %205 = inttoptr i64 %202 to i64*\n  %206 = getelementptr i64, i64* %205, i32 1\n  store i64 %204, i64* %206\n  %207 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %202, i64* %207\n; # (loop (charSym (getChar C) P) (? (eol (setq C (call $Get)))))\n  br label %$33\n$33:\n  %208 = phi i64 [%196, %$32], [%217, %$34] ; # Exe\n  %209 = phi i32 [%197, %$32], [%218, %$34] ; # C\n  %210 = phi i64 [%198, %$32], [%219, %$34] ; # X\n  %211 = phi i64* [%199, %$32], [%220, %$34] ; # P\n  %212 = phi i64 [%202, %$32], [%221, %$34] ; # Q\n; # (getChar C)\n  %213 = call i32 @getChar(i32 %209)\n; # (charSym (getChar C) P)\n  call void @charSym(i32 %213, i64* %211)\n; # (? (eol (setq C (call $Get))))\n; # (call $Get)\n  %214 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %215 = call i32 %214()\n; # (eol (setq C (call $Get)))\n  %216 = call i1 @eol(i32 %215)\n  br i1 %216, label %$35, label %$34\n$34:\n  %217 = phi i64 [%208, %$33] ; # Exe\n  %218 = phi i32 [%215, %$33] ; # C\n  %219 = phi i64 [%210, %$33] ; # X\n  %220 = phi i64* [%211, %$33] ; # P\n  %221 = phi i64 [%212, %$33] ; # Q\n  br label %$33\n$35:\n  %222 = phi i64 [%208, %$33] ; # Exe\n  %223 = phi i32 [%215, %$33] ; # C\n  %224 = phi i64 [%210, %$33] ; # X\n  %225 = phi i64* [%211, %$33] ; # P\n  %226 = phi i64 [%212, %$33] ; # Q\n  %227 = phi i64 [0, %$33] ; # ->\n; # (drop Q (consStr (val 3 P)))\n; # (val 3 P)\n  %228 = getelementptr i64, i64* %225, i32 2\n  %229 = load i64, i64* %228\n; # (consStr (val 3 P))\n  %230 = call i64 @consStr(i64 %229)\n  %231 = inttoptr i64 %226 to i64*\n  %232 = getelementptr i64, i64* %231, i32 1\n  %233 = load i64, i64* %232\n  %234 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %233, i64* %234\n  br label %$8\n$31:\n  %235 = phi i64 [%191, %$14] ; # Exe\n  %236 = phi i32 [%192, %$14] ; # C\n  %237 = phi i64 [%193, %$14] ; # X\n; # (let (N (evCnt Exe X) P (push 4 NIL ZERO NIL) Q (link (ofs P 2) T...\n; # (evCnt Exe X)\n  %238 = call i64 @evCnt(i64 %235, i64 %237)\n; # (push 4 NIL ZERO NIL)\n  %239 = alloca i64, i64 4, align 16\n  store i64 4, i64* %239\n  %240 = getelementptr i64, i64* %239, i32 2\n  store i64 2, i64* %240\n; # (ofs P 2)\n  %241 = getelementptr i64, i64* %239, i32 2\n; # (link (ofs P 2) T)\n  %242 = ptrtoint i64* %241 to i64\n  %243 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %244 = load i64, i64* %243\n  %245 = inttoptr i64 %242 to i64*\n  %246 = getelementptr i64, i64* %245, i32 1\n  store i64 %244, i64* %246\n  %247 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %242, i64* %247\n; # (loop (charSym (getChar C) P) (when (eol (setq C (call $Get))) (r...\n  br label %$36\n$36:\n  %248 = phi i64 [%235, %$31], [%280, %$39] ; # Exe\n  %249 = phi i32 [%236, %$31], [%281, %$39] ; # C\n  %250 = phi i64 [%237, %$31], [%282, %$39] ; # X\n  %251 = phi i64 [%238, %$31], [%283, %$39] ; # N\n  %252 = phi i64* [%239, %$31], [%284, %$39] ; # P\n  %253 = phi i64 [%242, %$31], [%285, %$39] ; # Q\n; # (getChar C)\n  %254 = call i32 @getChar(i32 %249)\n; # (charSym (getChar C) P)\n  call void @charSym(i32 %254, i64* %252)\n; # (when (eol (setq C (call $Get))) (ret (cons (consStr (val Q)) $Ni...\n; # (call $Get)\n  %255 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %256 = call i32 %255()\n; # (eol (setq C (call $Get)))\n  %257 = call i1 @eol(i32 %256)\n  br i1 %257, label %$37, label %$38\n$37:\n  %258 = phi i64 [%248, %$36] ; # Exe\n  %259 = phi i32 [%256, %$36] ; # C\n  %260 = phi i64 [%250, %$36] ; # X\n  %261 = phi i64 [%251, %$36] ; # N\n  %262 = phi i64* [%252, %$36] ; # P\n  %263 = phi i64 [%253, %$36] ; # Q\n; # (val Q)\n  %264 = inttoptr i64 %263 to i64*\n  %265 = load i64, i64* %264\n; # (consStr (val Q))\n  %266 = call i64 @consStr(i64 %265)\n; # (cons (consStr (val Q)) $Nil)\n  %267 = call i64 @cons(i64 %266, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (ret (cons (consStr (val Q)) $Nil))\n; # (drop *Safe)\n  %268 = inttoptr i64 %242 to i64*\n  %269 = getelementptr i64, i64* %268, i32 1\n  %270 = load i64, i64* %269\n  %271 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %270, i64* %271\n  ret i64 %267\n$38:\n  %272 = phi i64 [%248, %$36] ; # Exe\n  %273 = phi i32 [%256, %$36] ; # C\n  %274 = phi i64 [%250, %$36] ; # X\n  %275 = phi i64 [%251, %$36] ; # N\n  %276 = phi i64* [%252, %$36] ; # P\n  %277 = phi i64 [%253, %$36] ; # Q\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %278 = sub i64 %275, 1\n; # (=0 (dec 'N))\n  %279 = icmp eq i64 %278, 0\n  br i1 %279, label %$40, label %$39\n$39:\n  %280 = phi i64 [%272, %$38] ; # Exe\n  %281 = phi i32 [%273, %$38] ; # C\n  %282 = phi i64 [%274, %$38] ; # X\n  %283 = phi i64 [%278, %$38] ; # N\n  %284 = phi i64* [%276, %$38] ; # P\n  %285 = phi i64 [%277, %$38] ; # Q\n  br label %$36\n$40:\n  %286 = phi i64 [%272, %$38] ; # Exe\n  %287 = phi i32 [%273, %$38] ; # C\n  %288 = phi i64 [%274, %$38] ; # X\n  %289 = phi i64 [%278, %$38] ; # N\n  %290 = phi i64* [%276, %$38] ; # P\n  %291 = phi i64 [%277, %$38] ; # Q\n  %292 = phi i64 [0, %$38] ; # ->\n; # (let (Y (cons (consStr (val Q)) $Nil) R (save Y)) (while (pair (s...\n; # (val Q)\n  %293 = inttoptr i64 %291 to i64*\n  %294 = load i64, i64* %293\n; # (consStr (val Q))\n  %295 = call i64 @consStr(i64 %294)\n; # (cons (consStr (val Q)) $Nil)\n  %296 = call i64 @cons(i64 %295, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %297 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %298 = load i64, i64* %297\n  %299 = alloca i64, i64 2, align 16\n  %300 = ptrtoint i64* %299 to i64\n  %301 = inttoptr i64 %300 to i64*\n  store i64 %296, i64* %301\n  %302 = add i64 %300, 8\n  %303 = inttoptr i64 %302 to i64*\n  store i64 %298, i64* %303\n  %304 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %300, i64* %304\n; # (while (pair (shift X)) (setq N (evCnt Exe X)) (set P 4 3 P ZERO)...\n  br label %$41\n$41:\n  %305 = phi i64 [%286, %$40], [%376, %$48] ; # Exe\n  %306 = phi i32 [%287, %$40], [%377, %$48] ; # C\n  %307 = phi i64 [%288, %$40], [%378, %$48] ; # X\n  %308 = phi i64 [%289, %$40], [%379, %$48] ; # N\n  %309 = phi i64* [%290, %$40], [%380, %$48] ; # P\n  %310 = phi i64 [%291, %$40], [%381, %$48] ; # Q\n  %311 = phi i64 [%296, %$40], [%388, %$48] ; # Y\n  %312 = phi i64 [%296, %$40], [%383, %$48] ; # R\n; # (shift X)\n  %313 = inttoptr i64 %307 to i64*\n  %314 = getelementptr i64, i64* %313, i32 1\n  %315 = load i64, i64* %314\n; # (pair (shift X))\n  %316 = and i64 %315, 15\n  %317 = icmp eq i64 %316, 0\n  br i1 %317, label %$42, label %$43\n$42:\n  %318 = phi i64 [%305, %$41] ; # Exe\n  %319 = phi i32 [%306, %$41] ; # C\n  %320 = phi i64 [%315, %$41] ; # X\n  %321 = phi i64 [%308, %$41] ; # N\n  %322 = phi i64* [%309, %$41] ; # P\n  %323 = phi i64 [%310, %$41] ; # Q\n  %324 = phi i64 [%311, %$41] ; # Y\n  %325 = phi i64 [%312, %$41] ; # R\n; # (evCnt Exe X)\n  %326 = call i64 @evCnt(i64 %318, i64 %320)\n; # (set P 4 3 P ZERO)\n  store i64 4, i64* %322\n  %327 = getelementptr i64, i64* %322, i32 2\n  store i64 2, i64* %327\n; # (loop (charSym (getChar C) P) (when (eol (setq C (call $Get))) (s...\n  br label %$44\n$44:\n  %328 = phi i64 [%318, %$42], [%368, %$47] ; # Exe\n  %329 = phi i32 [%319, %$42], [%369, %$47] ; # C\n  %330 = phi i64 [%320, %$42], [%370, %$47] ; # X\n  %331 = phi i64 [%326, %$42], [%371, %$47] ; # N\n  %332 = phi i64* [%322, %$42], [%372, %$47] ; # P\n  %333 = phi i64 [%323, %$42], [%373, %$47] ; # Q\n  %334 = phi i64 [%324, %$42], [%374, %$47] ; # Y\n  %335 = phi i64 [%325, %$42], [%375, %$47] ; # R\n; # (getChar C)\n  %336 = call i32 @getChar(i32 %329)\n; # (charSym (getChar C) P)\n  call void @charSym(i32 %336, i64* %332)\n; # (when (eol (setq C (call $Get))) (set 2 Y (cons (consStr (val Q))...\n; # (call $Get)\n  %337 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %338 = call i32 %337()\n; # (eol (setq C (call $Get)))\n  %339 = call i1 @eol(i32 %338)\n  br i1 %339, label %$45, label %$46\n$45:\n  %340 = phi i64 [%328, %$44] ; # Exe\n  %341 = phi i32 [%338, %$44] ; # C\n  %342 = phi i64 [%330, %$44] ; # X\n  %343 = phi i64 [%331, %$44] ; # N\n  %344 = phi i64* [%332, %$44] ; # P\n  %345 = phi i64 [%333, %$44] ; # Q\n  %346 = phi i64 [%334, %$44] ; # Y\n  %347 = phi i64 [%335, %$44] ; # R\n; # (set 2 Y (cons (consStr (val Q)) $Nil))\n; # (val Q)\n  %348 = inttoptr i64 %345 to i64*\n  %349 = load i64, i64* %348\n; # (consStr (val Q))\n  %350 = call i64 @consStr(i64 %349)\n; # (cons (consStr (val Q)) $Nil)\n  %351 = call i64 @cons(i64 %350, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %352 = inttoptr i64 %346 to i64*\n  %353 = getelementptr i64, i64* %352, i32 1\n  store i64 %351, i64* %353\n; # (ret R)\n; # (drop *Safe)\n  %354 = inttoptr i64 %242 to i64*\n  %355 = getelementptr i64, i64* %354, i32 1\n  %356 = load i64, i64* %355\n  %357 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %356, i64* %357\n  ret i64 %347\n$46:\n  %358 = phi i64 [%328, %$44] ; # Exe\n  %359 = phi i32 [%338, %$44] ; # C\n  %360 = phi i64 [%330, %$44] ; # X\n  %361 = phi i64 [%331, %$44] ; # N\n  %362 = phi i64* [%332, %$44] ; # P\n  %363 = phi i64 [%333, %$44] ; # Q\n  %364 = phi i64 [%334, %$44] ; # Y\n  %365 = phi i64 [%335, %$44] ; # R\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %366 = sub i64 %361, 1\n; # (=0 (dec 'N))\n  %367 = icmp eq i64 %366, 0\n  br i1 %367, label %$48, label %$47\n$47:\n  %368 = phi i64 [%358, %$46] ; # Exe\n  %369 = phi i32 [%359, %$46] ; # C\n  %370 = phi i64 [%360, %$46] ; # X\n  %371 = phi i64 [%366, %$46] ; # N\n  %372 = phi i64* [%362, %$46] ; # P\n  %373 = phi i64 [%363, %$46] ; # Q\n  %374 = phi i64 [%364, %$46] ; # Y\n  %375 = phi i64 [%365, %$46] ; # R\n  br label %$44\n$48:\n  %376 = phi i64 [%358, %$46] ; # Exe\n  %377 = phi i32 [%359, %$46] ; # C\n  %378 = phi i64 [%360, %$46] ; # X\n  %379 = phi i64 [%366, %$46] ; # N\n  %380 = phi i64* [%362, %$46] ; # P\n  %381 = phi i64 [%363, %$46] ; # Q\n  %382 = phi i64 [%364, %$46] ; # Y\n  %383 = phi i64 [%365, %$46] ; # R\n  %384 = phi i64 [0, %$46] ; # ->\n; # (set 2 Y (cons (consStr (val Q)) $Nil))\n; # (val Q)\n  %385 = inttoptr i64 %381 to i64*\n  %386 = load i64, i64* %385\n; # (consStr (val Q))\n  %387 = call i64 @consStr(i64 %386)\n; # (cons (consStr (val Q)) $Nil)\n  %388 = call i64 @cons(i64 %387, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %389 = inttoptr i64 %382 to i64*\n  %390 = getelementptr i64, i64* %389, i32 1\n  store i64 %388, i64* %390\n  br label %$41\n$43:\n  %391 = phi i64 [%305, %$41] ; # Exe\n  %392 = phi i32 [%306, %$41] ; # C\n  %393 = phi i64 [%315, %$41] ; # X\n  %394 = phi i64 [%308, %$41] ; # N\n  %395 = phi i64* [%309, %$41] ; # P\n  %396 = phi i64 [%310, %$41] ; # Q\n  %397 = phi i64 [%311, %$41] ; # Y\n  %398 = phi i64 [%312, %$41] ; # R\n; # (loop (setq Y (set 2 Y (cons (mkChar (getChar C)) $Nil))) (? (eol...\n  br label %$49\n$49:\n  %399 = phi i64 [%391, %$43], [%415, %$50] ; # Exe\n  %400 = phi i32 [%392, %$43], [%416, %$50] ; # C\n  %401 = phi i64 [%393, %$43], [%417, %$50] ; # X\n  %402 = phi i64 [%394, %$43], [%418, %$50] ; # N\n  %403 = phi i64* [%395, %$43], [%419, %$50] ; # P\n  %404 = phi i64 [%396, %$43], [%420, %$50] ; # Q\n  %405 = phi i64 [%397, %$43], [%421, %$50] ; # Y\n  %406 = phi i64 [%398, %$43], [%422, %$50] ; # R\n; # (set 2 Y (cons (mkChar (getChar C)) $Nil))\n; # (getChar C)\n  %407 = call i32 @getChar(i32 %400)\n; # (mkChar (getChar C))\n  %408 = call i64 @mkChar(i32 %407)\n; # (cons (mkChar (getChar C)) $Nil)\n  %409 = call i64 @cons(i64 %408, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %410 = inttoptr i64 %405 to i64*\n  %411 = getelementptr i64, i64* %410, i32 1\n  store i64 %409, i64* %411\n; # (? (eol (setq C (call $Get))))\n; # (call $Get)\n  %412 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %413 = call i32 %412()\n; # (eol (setq C (call $Get)))\n  %414 = call i1 @eol(i32 %413)\n  br i1 %414, label %$51, label %$50\n$50:\n  %415 = phi i64 [%399, %$49] ; # Exe\n  %416 = phi i32 [%413, %$49] ; # C\n  %417 = phi i64 [%401, %$49] ; # X\n  %418 = phi i64 [%402, %$49] ; # N\n  %419 = phi i64* [%403, %$49] ; # P\n  %420 = phi i64 [%404, %$49] ; # Q\n  %421 = phi i64 [%409, %$49] ; # Y\n  %422 = phi i64 [%406, %$49] ; # R\n  br label %$49\n$51:\n  %423 = phi i64 [%399, %$49] ; # Exe\n  %424 = phi i32 [%413, %$49] ; # C\n  %425 = phi i64 [%401, %$49] ; # X\n  %426 = phi i64 [%402, %$49] ; # N\n  %427 = phi i64* [%403, %$49] ; # P\n  %428 = phi i64 [%404, %$49] ; # Q\n  %429 = phi i64 [%409, %$49] ; # Y\n  %430 = phi i64 [%406, %$49] ; # R\n  %431 = phi i64 [0, %$49] ; # ->\n; # (drop *Safe)\n  %432 = inttoptr i64 %242 to i64*\n  %433 = getelementptr i64, i64* %432, i32 1\n  %434 = load i64, i64* %433\n  %435 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %434, i64* %435\n  br label %$8\n$8:\n  %436 = phi i64 [%182, %$30], [%222, %$35], [%423, %$51] ; # Exe\n  %437 = phi i32 [%183, %$30], [%223, %$35], [%424, %$51] ; # C\n  %438 = phi i64 [%184, %$30], [%224, %$35], [%425, %$51] ; # X\n  %439 = phi i64 [%186, %$30], [%230, %$35], [%430, %$51] ; # ->\n  br label %$7\n$7:\n  %440 = phi i64 [%10, %$5], [%436, %$8] ; # Exe\n  %441 = phi i32 [%11, %$5], [%437, %$8] ; # C\n  %442 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%439, %$8] ; # ->\n  ret i64 %442\n}\n\ndefine i64 @_In(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (rdOpen Exe (eval (++ X)) (b8+ (ioFrame T))) (pr...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (b8+ (ioFrame T))\n  %21 = alloca i8, i64 28, align 8\n; # (rdOpen Exe (eval (++ X)) (b8+ (ioFrame T)))\n  call void @rdOpen(i64 %0, i64 %20, i8* %21)\n; # (prog1 (run X) (popInFiles))\n; # (run X)\n  br label %$7\n$7:\n  %22 = phi i64 [%6, %$2], [%52, %$16] ; # Prg\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  %26 = load i64, i64* %23\n  %27 = and i64 %25, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$10, label %$8\n$10:\n  %29 = phi i64 [%25, %$7] ; # Prg\n  %30 = phi i64 [%26, %$7] ; # X\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$13, label %$12\n$13:\n  %33 = phi i64 [%30, %$10] ; # X\n  br label %$11\n$12:\n  %34 = phi i64 [%30, %$10] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$15, label %$14\n$15:\n  %37 = phi i64 [%34, %$12] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$11\n$14:\n  %40 = phi i64 [%34, %$12] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$11\n$11:\n  %42 = phi i64 [%33, %$13], [%37, %$15], [%40, %$14] ; # X\n  %43 = phi i64 [%33, %$13], [%39, %$15], [%41, %$14] ; # ->\n  br label %$9\n$8:\n  %44 = phi i64 [%25, %$7] ; # Prg\n  %45 = phi i64 [%26, %$7] ; # X\n  %46 = and i64 %45, 15\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$17, label %$16\n$17:\n  %48 = phi i64 [%44, %$8] ; # Prg\n  %49 = phi i64 [%45, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  %51 = icmp ne i64 %50, 0\n  br label %$16\n$16:\n  %52 = phi i64 [%44, %$8], [%48, %$17] ; # Prg\n  %53 = phi i64 [%45, %$8], [%49, %$17] ; # X\n  %54 = phi i1 [0, %$8], [%51, %$17] ; # ->\n  br label %$7\n$9:\n  %55 = phi i64 [%29, %$11] ; # Prg\n  %56 = phi i64 [%43, %$11] ; # ->\n; # (popInFiles)\n  call void @popInFiles()\n  ret i64 %56\n}\n\ndefine i64 @_Out(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (wrOpen Exe (eval (++ X)) (b8+ (ioFrame T))) (pr...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (b8+ (ioFrame T))\n  %21 = alloca i8, i64 28, align 8\n; # (wrOpen Exe (eval (++ X)) (b8+ (ioFrame T)))\n  call void @wrOpen(i64 %0, i64 %20, i8* %21)\n; # (prog1 (run X) (popOutFiles))\n; # (run X)\n  br label %$7\n$7:\n  %22 = phi i64 [%6, %$2], [%52, %$16] ; # Prg\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  %26 = load i64, i64* %23\n  %27 = and i64 %25, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$10, label %$8\n$10:\n  %29 = phi i64 [%25, %$7] ; # Prg\n  %30 = phi i64 [%26, %$7] ; # X\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$13, label %$12\n$13:\n  %33 = phi i64 [%30, %$10] ; # X\n  br label %$11\n$12:\n  %34 = phi i64 [%30, %$10] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$15, label %$14\n$15:\n  %37 = phi i64 [%34, %$12] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$11\n$14:\n  %40 = phi i64 [%34, %$12] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$11\n$11:\n  %42 = phi i64 [%33, %$13], [%37, %$15], [%40, %$14] ; # X\n  %43 = phi i64 [%33, %$13], [%39, %$15], [%41, %$14] ; # ->\n  br label %$9\n$8:\n  %44 = phi i64 [%25, %$7] ; # Prg\n  %45 = phi i64 [%26, %$7] ; # X\n  %46 = and i64 %45, 15\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$17, label %$16\n$17:\n  %48 = phi i64 [%44, %$8] ; # Prg\n  %49 = phi i64 [%45, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  %51 = icmp ne i64 %50, 0\n  br label %$16\n$16:\n  %52 = phi i64 [%44, %$8], [%48, %$17] ; # Prg\n  %53 = phi i64 [%45, %$8], [%49, %$17] ; # X\n  %54 = phi i1 [0, %$8], [%51, %$17] ; # ->\n  br label %$7\n$9:\n  %55 = phi i64 [%29, %$11] ; # Prg\n  %56 = phi i64 [%43, %$11] ; # ->\n; # (popOutFiles)\n  call void @popOutFiles()\n  ret i64 %56\n}\n\ndefine i64 @_Err(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (erOpen Exe (eval (++ X)) (b8+ (ctFrame T))) (pr...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (b8+ (ctFrame T))\n  %21 = alloca i8, i64 12, align 8\n; # (erOpen Exe (eval (++ X)) (b8+ (ctFrame T)))\n  call void @erOpen(i64 %0, i64 %20, i8* %21)\n; # (prog1 (run X) (popErrFiles))\n; # (run X)\n  br label %$7\n$7:\n  %22 = phi i64 [%6, %$2], [%52, %$16] ; # Prg\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  %26 = load i64, i64* %23\n  %27 = and i64 %25, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$10, label %$8\n$10:\n  %29 = phi i64 [%25, %$7] ; # Prg\n  %30 = phi i64 [%26, %$7] ; # X\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$13, label %$12\n$13:\n  %33 = phi i64 [%30, %$10] ; # X\n  br label %$11\n$12:\n  %34 = phi i64 [%30, %$10] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$15, label %$14\n$15:\n  %37 = phi i64 [%34, %$12] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$11\n$14:\n  %40 = phi i64 [%34, %$12] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$11\n$11:\n  %42 = phi i64 [%33, %$13], [%37, %$15], [%40, %$14] ; # X\n  %43 = phi i64 [%33, %$13], [%39, %$15], [%41, %$14] ; # ->\n  br label %$9\n$8:\n  %44 = phi i64 [%25, %$7] ; # Prg\n  %45 = phi i64 [%26, %$7] ; # X\n  %46 = and i64 %45, 15\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$17, label %$16\n$17:\n  %48 = phi i64 [%44, %$8] ; # Prg\n  %49 = phi i64 [%45, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  %51 = icmp ne i64 %50, 0\n  br label %$16\n$16:\n  %52 = phi i64 [%44, %$8], [%48, %$17] ; # Prg\n  %53 = phi i64 [%45, %$8], [%49, %$17] ; # X\n  %54 = phi i1 [0, %$8], [%51, %$17] ; # ->\n  br label %$7\n$9:\n  %55 = phi i64 [%29, %$11] ; # Prg\n  %56 = phi i64 [%43, %$11] ; # ->\n; # (popErrFiles)\n  call void @popErrFiles()\n  ret i64 %56\n}\n\ndefine i64 @_Ctl(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (ctOpen Exe (eval (++ X)) (b8+ (ctFrame T))) (pr...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (b8+ (ctFrame T))\n  %21 = alloca i8, i64 12, align 8\n; # (ctOpen Exe (eval (++ X)) (b8+ (ctFrame T)))\n  call void @ctOpen(i64 %0, i64 %20, i8* %21)\n; # (prog1 (run X) (popCtlFiles))\n; # (run X)\n  br label %$7\n$7:\n  %22 = phi i64 [%6, %$2], [%52, %$16] ; # Prg\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  %26 = load i64, i64* %23\n  %27 = and i64 %25, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$10, label %$8\n$10:\n  %29 = phi i64 [%25, %$7] ; # Prg\n  %30 = phi i64 [%26, %$7] ; # X\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$13, label %$12\n$13:\n  %33 = phi i64 [%30, %$10] ; # X\n  br label %$11\n$12:\n  %34 = phi i64 [%30, %$10] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$15, label %$14\n$15:\n  %37 = phi i64 [%34, %$12] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$11\n$14:\n  %40 = phi i64 [%34, %$12] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$11\n$11:\n  %42 = phi i64 [%33, %$13], [%37, %$15], [%40, %$14] ; # X\n  %43 = phi i64 [%33, %$13], [%39, %$15], [%41, %$14] ; # ->\n  br label %$9\n$8:\n  %44 = phi i64 [%25, %$7] ; # Prg\n  %45 = phi i64 [%26, %$7] ; # X\n  %46 = and i64 %45, 15\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$17, label %$16\n$17:\n  %48 = phi i64 [%44, %$8] ; # Prg\n  %49 = phi i64 [%45, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  %51 = icmp ne i64 %50, 0\n  br label %$16\n$16:\n  %52 = phi i64 [%44, %$8], [%48, %$17] ; # Prg\n  %53 = phi i64 [%45, %$8], [%49, %$17] ; # X\n  %54 = phi i1 [0, %$8], [%51, %$17] ; # ->\n  br label %$7\n$9:\n  %55 = phi i64 [%29, %$11] ; # Prg\n  %56 = phi i64 [%43, %$11] ; # ->\n; # (popCtlFiles)\n  call void @popCtlFiles()\n  ret i64 %56\n}\n\ndefine void @pushInput(i8*, i64) align 8 {\n$1:\n; # (let Iox: (ioxFrame Iox) (Iox: link (val $InFrames)) (Iox: file n...\n; # (Iox: link (val $InFrames))\n  %2 = bitcast i8* %0 to i8**\n  %3 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n  store i8* %3, i8** %2\n; # (Iox: file null)\n  %4 = getelementptr i8, i8* %0, i32 8\n  %5 = bitcast i8* %4 to i8**\n  store i8* null, i8** %5\n; # (Iox: fun (val (i8** $Get)))\n  %6 = getelementptr i8, i8* %0, i32 16\n  %7 = bitcast i8* %6 to i8**\n  %8 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n  %9 = load i8*, i8** %8\n  store i8* %9, i8** %7\n; # (Iox: exe Exe)\n  %10 = getelementptr i8, i8* %0, i32 24\n  %11 = ptrtoint i8* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 %1, i64* %12\n; # (Iox: chr (val $Chr))\n  %13 = getelementptr i8, i8* %0, i32 32\n  %14 = bitcast i8* %13 to i32*\n  %15 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  store i32 %15, i32* %14\n; # (set $InFrames (Iox:) $Get (fun (i32) getIn) $InChar 0 $Chr 0)\n; # (Iox:)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (fun (i32) getIn)\n  store i32()* @getIn, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  store i64 0, i64* @$InChar\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  ret void\n}\n\ndefine void @pushOutput(i8*, i64) align 8 {\n$1:\n; # (let Iox: (ioxFrame Iox) (Iox: link (val $OutFrames)) (Iox: file ...\n; # (Iox: link (val $OutFrames))\n  %2 = bitcast i8* %0 to i8**\n  %3 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n  store i8* %3, i8** %2\n; # (Iox: file null)\n  %4 = getelementptr i8, i8* %0, i32 8\n  %5 = bitcast i8* %4 to i8**\n  store i8* null, i8** %5\n; # (Iox: fun (val (i8** $Put)))\n  %6 = getelementptr i8, i8* %0, i32 16\n  %7 = bitcast i8* %6 to i8**\n  %8 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  %9 = load i8*, i8** %8\n  store i8* %9, i8** %7\n; # (Iox: exe Exe)\n  %10 = getelementptr i8, i8* %0, i32 24\n  %11 = ptrtoint i8* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 %1, i64* %12\n; # (Iox: chr 0)\n  %13 = getelementptr i8, i8* %0, i32 32\n  %14 = bitcast i8* %13 to i32*\n  store i32 0, i32* %14\n; # (set $OutFrames (Iox:) $Put (fun (void i8) putOut))\n; # (Iox:)\n  store i8* %0, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (fun (void i8) putOut)\n  store void(i8)* @putOut, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  ret void\n}\n\ndefine i64 @_Input(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (pushInput (b8+ (ioxFrame T)) (++ X)) (prog1 (ru...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (b8+ (ioxFrame T))\n  %4 = alloca i8, i64 36, align 8\n; # (++ X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = load i64, i64* %5\n; # (pushInput (b8+ (ioxFrame T)) (++ X))\n  call void @pushInput(i8* %4, i64 %8)\n; # (prog1 (run X) (popInFiles))\n; # (run X)\n  br label %$2\n$2:\n  %9 = phi i64 [%7, %$1], [%39, %$11] ; # Prg\n  %10 = inttoptr i64 %9 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n  %13 = load i64, i64* %10\n  %14 = and i64 %12, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i64 [%12, %$2] ; # Prg\n  %17 = phi i64 [%13, %$2] ; # X\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$8, label %$7\n$8:\n  %20 = phi i64 [%17, %$5] ; # X\n  br label %$6\n$7:\n  %21 = phi i64 [%17, %$5] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$10, label %$9\n$10:\n  %24 = phi i64 [%21, %$7] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$6\n$9:\n  %27 = phi i64 [%21, %$7] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$6\n$6:\n  %29 = phi i64 [%20, %$8], [%24, %$10], [%27, %$9] ; # X\n  %30 = phi i64 [%20, %$8], [%26, %$10], [%28, %$9] ; # ->\n  br label %$4\n$3:\n  %31 = phi i64 [%12, %$2] ; # Prg\n  %32 = phi i64 [%13, %$2] ; # X\n  %33 = and i64 %32, 15\n  %34 = icmp eq i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%31, %$3] ; # Prg\n  %36 = phi i64 [%32, %$3] ; # X\n  %37 = call i64 @evList(i64 %36)\n  %38 = icmp ne i64 %37, 0\n  br label %$11\n$11:\n  %39 = phi i64 [%31, %$3], [%35, %$12] ; # Prg\n  %40 = phi i64 [%32, %$3], [%36, %$12] ; # X\n  %41 = phi i1 [0, %$3], [%38, %$12] ; # ->\n  br label %$2\n$4:\n  %42 = phi i64 [%16, %$6] ; # Prg\n  %43 = phi i64 [%30, %$6] ; # ->\n; # (popInFiles)\n  call void @popInFiles()\n  ret i64 %43\n}\n\ndefine i64 @_Output(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (pushOutput (b8+ (ioxFrame T)) (++ X)) (prog1 (r...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (b8+ (ioxFrame T))\n  %4 = alloca i8, i64 36, align 8\n; # (++ X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = load i64, i64* %5\n; # (pushOutput (b8+ (ioxFrame T)) (++ X))\n  call void @pushOutput(i8* %4, i64 %8)\n; # (prog1 (run X) (popOutFiles))\n; # (run X)\n  br label %$2\n$2:\n  %9 = phi i64 [%7, %$1], [%39, %$11] ; # Prg\n  %10 = inttoptr i64 %9 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n  %13 = load i64, i64* %10\n  %14 = and i64 %12, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i64 [%12, %$2] ; # Prg\n  %17 = phi i64 [%13, %$2] ; # X\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$8, label %$7\n$8:\n  %20 = phi i64 [%17, %$5] ; # X\n  br label %$6\n$7:\n  %21 = phi i64 [%17, %$5] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$10, label %$9\n$10:\n  %24 = phi i64 [%21, %$7] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$6\n$9:\n  %27 = phi i64 [%21, %$7] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$6\n$6:\n  %29 = phi i64 [%20, %$8], [%24, %$10], [%27, %$9] ; # X\n  %30 = phi i64 [%20, %$8], [%26, %$10], [%28, %$9] ; # ->\n  br label %$4\n$3:\n  %31 = phi i64 [%12, %$2] ; # Prg\n  %32 = phi i64 [%13, %$2] ; # X\n  %33 = and i64 %32, 15\n  %34 = icmp eq i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%31, %$3] ; # Prg\n  %36 = phi i64 [%32, %$3] ; # X\n  %37 = call i64 @evList(i64 %36)\n  %38 = icmp ne i64 %37, 0\n  br label %$11\n$11:\n  %39 = phi i64 [%31, %$3], [%35, %$12] ; # Prg\n  %40 = phi i64 [%32, %$3], [%36, %$12] ; # X\n  %41 = phi i1 [0, %$3], [%38, %$12] ; # ->\n  br label %$2\n$4:\n  %42 = phi i64 [%16, %$6] ; # Prg\n  %43 = phi i64 [%30, %$6] ; # ->\n; # (popOutFiles)\n  call void @popOutFiles()\n  ret i64 %43\n}\n\ndefine i64 @_Fd(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) Fd (currFd Exe)) (unless (nil? X) (dup2...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (currFd Exe)\n  %19 = call i32 @currFd(i64 %0)\n; # (unless (nil? X) (dup2 Fd (i32 (xCnt Exe X))))\n; # (nil? X)\n  %20 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %20, label %$8, label %$7\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n  %23 = phi i32 [%19, %$2] ; # Fd\n; # (xCnt Exe X)\n  %24 = call i64 @xCnt(i64 %21, i64 %22)\n; # (i32 (xCnt Exe X))\n  %25 = trunc i64 %24 to i32\n; # (dup2 Fd (i32 (xCnt Exe X)))\n  %26 = call i32 @dup2(i32 %23, i32 %25)\n  br label %$8\n$8:\n  %27 = phi i64 [%0, %$2], [%21, %$7] ; # Exe\n  %28 = phi i64 [%18, %$2], [%22, %$7] ; # X\n  %29 = phi i32 [%19, %$2], [%23, %$7] ; # Fd\n; # (i64 Fd)\n  %30 = sext i32 %29 to i64\n; # (cnt (i64 Fd))\n  %31 = shl i64 %30, 4\n  %32 = or i64 %31, 2\n  ret i64 %32\n}\n\ndefine i32 @forkLisp(i64) align 8 {\n$1:\n; # (flushAll)\n  call void @flushAll()\n; # (unless (val $Spkr) (when (lt0 (pipe $SpMiPipe)) (pipeErr Exe)) (...\n; # (val $Spkr)\n  %1 = load i32, i32* @$Spkr\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$3, label %$2\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (when (lt0 (pipe $SpMiPipe)) (pipeErr Exe))\n; # (pipe $SpMiPipe)\n  %4 = call i32 @pipe(i32* bitcast ([2 x i32]* @$SpMiPipe to i32*))\n; # (lt0 (pipe $SpMiPipe))\n  %5 = icmp slt i32 %4, 0\n  br i1 %5, label %$4, label %$5\n$4:\n  %6 = phi i64 [%3, %$2] ; # Exe\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %6)\n  unreachable\n$5:\n  %7 = phi i64 [%3, %$2] ; # Exe\n; # (set $Spkr (val $SpMiPipe))\n; # (val $SpMiPipe)\n  %8 = load i32, i32* bitcast ([2 x i32]* @$SpMiPipe to i32*)\n  store i32 %8, i32* @$Spkr\n; # (closeOnExec Exe (set $Spkr (val $SpMiPipe)))\n  call void @closeOnExec(i64 %7, i32 %8)\n; # (val 2 $SpMiPipe)\n  %9 = getelementptr i32, i32* bitcast ([2 x i32]* @$SpMiPipe to i32*), i32 1\n  %10 = load i32, i32* %9\n; # (closeOnExec Exe (val 2 $SpMiPipe))\n  call void @closeOnExec(i64 %7, i32 %10)\n  br label %$3\n$3:\n  %11 = phi i64 [%0, %$1], [%7, %$5] ; # Exe\n; # (let (Hear (b32 2) Tell (b32 2)) (when (or (lt0 (pipe Hear)) (lt0...\n; # (b32 2)\n  %12 = alloca i32, i64 2\n; # (b32 2)\n  %13 = alloca i32, i64 2\n; # (when (or (lt0 (pipe Hear)) (lt0 (pipe Tell))) (pipeErr Exe))\n; # (or (lt0 (pipe Hear)) (lt0 (pipe Tell)))\n; # (pipe Hear)\n  %14 = call i32 @pipe(i32* %12)\n; # (lt0 (pipe Hear))\n  %15 = icmp slt i32 %14, 0\n  br i1 %15, label %$6, label %$7\n$7:\n  %16 = phi i64 [%11, %$3] ; # Exe\n  %17 = phi i32* [%12, %$3] ; # Hear\n  %18 = phi i32* [%13, %$3] ; # Tell\n; # (pipe Tell)\n  %19 = call i32 @pipe(i32* %18)\n; # (lt0 (pipe Tell))\n  %20 = icmp slt i32 %19, 0\n  br label %$6\n$6:\n  %21 = phi i64 [%11, %$3], [%16, %$7] ; # Exe\n  %22 = phi i32* [%12, %$3], [%17, %$7] ; # Hear\n  %23 = phi i32* [%13, %$3], [%18, %$7] ; # Tell\n  %24 = phi i1 [1, %$3], [%20, %$7] ; # ->\n  br i1 %24, label %$8, label %$9\n$8:\n  %25 = phi i64 [%21, %$6] ; # Exe\n  %26 = phi i32* [%22, %$6] ; # Hear\n  %27 = phi i32* [%23, %$6] ; # Tell\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %25)\n  unreachable\n$9:\n  %28 = phi i64 [%21, %$6] ; # Exe\n  %29 = phi i32* [%22, %$6] ; # Hear\n  %30 = phi i32* [%23, %$6] ; # Tell\n; # (val Hear)\n  %31 = load i32, i32* %29\n; # (closeOnExec Exe (val Hear))\n  call void @closeOnExec(i64 %28, i32 %31)\n; # (val 2 Hear)\n  %32 = getelementptr i32, i32* %29, i32 1\n  %33 = load i32, i32* %32\n; # (closeOnExec Exe (val 2 Hear))\n  call void @closeOnExec(i64 %28, i32 %33)\n; # (val Tell)\n  %34 = load i32, i32* %30\n; # (closeOnExec Exe (val Tell))\n  call void @closeOnExec(i64 %28, i32 %34)\n; # (val 2 Tell)\n  %35 = getelementptr i32, i32* %30, i32 1\n  %36 = load i32, i32* %35\n; # (closeOnExec Exe (val 2 Tell))\n  call void @closeOnExec(i64 %28, i32 %36)\n; # (let (I (i32 0) N (val $Children)) (let Cld (val $Child) (while (...\n; # (i32 0)\n; # (val $Children)\n  %37 = load i32, i32* @$Children\n; # (let Cld (val $Child) (while (> N I) (? (=0 ((child Cld) pid))) (...\n; # (val $Child)\n  %38 = load i8*, i8** @$Child\n; # (while (> N I) (? (=0 ((child Cld) pid))) (inc 'I) (setq Cld (ofs...\n  br label %$10\n$10:\n  %39 = phi i64 [%28, %$9], [%56, %$13] ; # Exe\n  %40 = phi i32* [%29, %$9], [%57, %$13] ; # Hear\n  %41 = phi i32* [%30, %$9], [%58, %$13] ; # Tell\n  %42 = phi i32 [0, %$9], [%62, %$13] ; # I\n  %43 = phi i32 [%37, %$9], [%60, %$13] ; # N\n  %44 = phi i8* [%38, %$9], [%63, %$13] ; # Cld\n; # (> N I)\n  %45 = icmp sgt i32 %43, %42\n  br i1 %45, label %$11, label %$12\n$11:\n  %46 = phi i64 [%39, %$10] ; # Exe\n  %47 = phi i32* [%40, %$10] ; # Hear\n  %48 = phi i32* [%41, %$10] ; # Tell\n  %49 = phi i32 [%42, %$10] ; # I\n  %50 = phi i32 [%43, %$10] ; # N\n  %51 = phi i8* [%44, %$10] ; # Cld\n; # (? (=0 ((child Cld) pid)))\n; # ((child Cld) pid)\n  %52 = getelementptr i8, i8* %51, i32 16\n  %53 = bitcast i8* %52 to i32*\n  %54 = load i32, i32* %53\n; # (=0 ((child Cld) pid))\n  %55 = icmp eq i32 %54, 0\n  br i1 %55, label %$12, label %$13\n$13:\n  %56 = phi i64 [%46, %$11] ; # Exe\n  %57 = phi i32* [%47, %$11] ; # Hear\n  %58 = phi i32* [%48, %$11] ; # Tell\n  %59 = phi i32 [%49, %$11] ; # I\n  %60 = phi i32 [%50, %$11] ; # N\n  %61 = phi i8* [%51, %$11] ; # Cld\n; # (inc 'I)\n  %62 = add i32 %59, 1\n; # (ofs Cld (child T))\n  %63 = getelementptr i8, i8* %61, i32 32\n  br label %$10\n$12:\n  %64 = phi i64 [%39, %$10], [%46, %$11] ; # Exe\n  %65 = phi i32* [%40, %$10], [%47, %$11] ; # Hear\n  %66 = phi i32* [%41, %$10], [%48, %$11] ; # Tell\n  %67 = phi i32 [%42, %$10], [%49, %$11] ; # I\n  %68 = phi i32 [%43, %$10], [%50, %$11] ; # N\n  %69 = phi i8* [%44, %$10], [%51, %$11] ; # Cld\n; # (cond ((lt0 (fork)) (forkErr Exe)) ((=0 @) (set $Slot I $Spkr 0 $...\n; # (fork)\n  %70 = call i32 @fork()\n; # (lt0 (fork))\n  %71 = icmp slt i32 %70, 0\n  br i1 %71, label %$16, label %$15\n$16:\n  %72 = phi i64 [%64, %$12] ; # Exe\n  %73 = phi i32* [%65, %$12] ; # Hear\n  %74 = phi i32* [%66, %$12] ; # Tell\n  %75 = phi i32 [%67, %$12] ; # I\n  %76 = phi i32 [%68, %$12] ; # N\n; # (forkErr Exe)\n  call void @forkErr(i64 %72)\n  unreachable\n$15:\n  %77 = phi i64 [%64, %$12] ; # Exe\n  %78 = phi i32* [%65, %$12] ; # Hear\n  %79 = phi i32* [%66, %$12] ; # Tell\n  %80 = phi i32 [%67, %$12] ; # I\n  %81 = phi i32 [%68, %$12] ; # N\n; # (=0 @)\n  %82 = icmp eq i32 %70, 0\n  br i1 %82, label %$18, label %$17\n$18:\n  %83 = phi i64 [%77, %$15] ; # Exe\n  %84 = phi i32* [%78, %$15] ; # Hear\n  %85 = phi i32* [%79, %$15] ; # Tell\n  %86 = phi i32 [%80, %$15] ; # I\n  %87 = phi i32 [%81, %$15] ; # N\n; # (set $Slot I $Spkr 0 $Mic (val 2 $SpMiPipe))\n  store i32 %86, i32* @$Slot\n  store i32 0, i32* @$Spkr\n; # (val 2 $SpMiPipe)\n  %88 = getelementptr i32, i32* bitcast ([2 x i32]* @$SpMiPipe to i32*), i32 1\n  %89 = load i32, i32* %88\n  store i32 %89, i32* @$Mic\n; # (val 2 Hear)\n  %90 = getelementptr i32, i32* %84, i32 1\n  %91 = load i32, i32* %90\n; # (close (val 2 Hear))\n  %92 = call i32 @close(i32 %91)\n; # (val Tell)\n  %93 = load i32, i32* %85\n; # (close (val Tell))\n  %94 = call i32 @close(i32 %93)\n; # (val $SpMiPipe)\n  %95 = load i32, i32* bitcast ([2 x i32]* @$SpMiPipe to i32*)\n; # (close (val $SpMiPipe))\n  %96 = call i32 @close(i32 %95)\n; # (when (val $Hear) (close @) (closeInFile @) (closeOutFile @))\n; # (val $Hear)\n  %97 = load i32, i32* @$Hear\n  %98 = icmp ne i32 %97, 0\n  br i1 %98, label %$19, label %$20\n$19:\n  %99 = phi i64 [%83, %$18] ; # Exe\n  %100 = phi i32* [%84, %$18] ; # Hear\n  %101 = phi i32* [%85, %$18] ; # Tell\n  %102 = phi i32 [%86, %$18] ; # I\n  %103 = phi i32 [%87, %$18] ; # N\n; # (close @)\n  %104 = call i32 @close(i32 %97)\n; # (closeInFile @)\n  call void @closeInFile(i32 %97)\n; # (closeOutFile @)\n  call void @closeOutFile(i32 %97)\n  br label %$20\n$20:\n  %105 = phi i64 [%83, %$18], [%99, %$19] ; # Exe\n  %106 = phi i32* [%84, %$18], [%100, %$19] ; # Hear\n  %107 = phi i32* [%85, %$18], [%101, %$19] ; # Tell\n  %108 = phi i32 [%86, %$18], [%102, %$19] ; # I\n  %109 = phi i32 [%87, %$18], [%103, %$19] ; # N\n; # (set $Hear (val Hear))\n; # (val Hear)\n  %110 = load i32, i32* %106\n  store i32 %110, i32* @$Hear\n; # (initInFile (set $Hear (val Hear)) null)\n  %111 = call i8* @initInFile(i32 %110, i8* null)\n; # (when (val $Tell) (close @))\n; # (val $Tell)\n  %112 = load i32, i32* @$Tell\n  %113 = icmp ne i32 %112, 0\n  br i1 %113, label %$21, label %$22\n$21:\n  %114 = phi i64 [%105, %$20] ; # Exe\n  %115 = phi i32* [%106, %$20] ; # Hear\n  %116 = phi i32* [%107, %$20] ; # Tell\n  %117 = phi i32 [%108, %$20] ; # I\n  %118 = phi i32 [%109, %$20] ; # N\n; # (close @)\n  %119 = call i32 @close(i32 %112)\n  br label %$22\n$22:\n  %120 = phi i64 [%105, %$20], [%114, %$21] ; # Exe\n  %121 = phi i32* [%106, %$20], [%115, %$21] ; # Hear\n  %122 = phi i32* [%107, %$20], [%116, %$21] ; # Tell\n  %123 = phi i32 [%108, %$20], [%117, %$21] ; # I\n  %124 = phi i32 [%109, %$20], [%118, %$21] ; # N\n; # (set $Tell (val 2 Tell))\n; # (val 2 Tell)\n  %125 = getelementptr i32, i32* %122, i32 1\n  %126 = load i32, i32* %125\n  store i32 %126, i32* @$Tell\n; # (set $Nfds 0)\n  store i32 0, i32* @$Nfds\n; # (val $Poll)\n  %127 = load i64*, i64** @$Poll\n; # (i8* (val $Poll))\n  %128 = bitcast i64* %127 to i8*\n; # (free (i8* (val $Poll)))\n  call void @free(i8* %128)\n; # (set $Poll (i64* null))\n; # (i64* null)\n  %129 = inttoptr i64 0 to i64*\n  store i64* %129, i64** @$Poll\n; # (let Cld (val $Child) (while (ge0 (dec 'N)) (let Cld: (child Cld)...\n; # (val $Child)\n  %130 = load i8*, i8** @$Child\n; # (while (ge0 (dec 'N)) (let Cld: (child Cld) (when (Cld: pid) (fre...\n  br label %$23\n$23:\n  %131 = phi i64 [%120, %$22], [%165, %$27] ; # Exe\n  %132 = phi i32* [%121, %$22], [%166, %$27] ; # Hear\n  %133 = phi i32* [%122, %$22], [%167, %$27] ; # Tell\n  %134 = phi i32 [%123, %$22], [%168, %$27] ; # I\n  %135 = phi i32 [%124, %$22], [%169, %$27] ; # N\n  %136 = phi i8* [%130, %$22], [%171, %$27] ; # Cld\n; # (dec 'N)\n  %137 = sub i32 %135, 1\n; # (ge0 (dec 'N))\n  %138 = icmp sge i32 %137, 0\n  br i1 %138, label %$24, label %$25\n$24:\n  %139 = phi i64 [%131, %$23] ; # Exe\n  %140 = phi i32* [%132, %$23] ; # Hear\n  %141 = phi i32* [%133, %$23] ; # Tell\n  %142 = phi i32 [%134, %$23] ; # I\n  %143 = phi i32 [%137, %$23] ; # N\n  %144 = phi i8* [%136, %$23] ; # Cld\n; # (let Cld: (child Cld) (when (Cld: pid) (free (Cld: buf)) (close (...\n; # (when (Cld: pid) (free (Cld: buf)) (close (Cld: hear)) (close (Cl...\n; # (Cld: pid)\n  %145 = getelementptr i8, i8* %144, i32 16\n  %146 = bitcast i8* %145 to i32*\n  %147 = load i32, i32* %146\n  %148 = icmp ne i32 %147, 0\n  br i1 %148, label %$26, label %$27\n$26:\n  %149 = phi i64 [%139, %$24] ; # Exe\n  %150 = phi i32* [%140, %$24] ; # Hear\n  %151 = phi i32* [%141, %$24] ; # Tell\n  %152 = phi i32 [%142, %$24] ; # I\n  %153 = phi i32 [%143, %$24] ; # N\n  %154 = phi i8* [%144, %$24] ; # Cld\n; # (Cld: buf)\n  %155 = bitcast i8* %144 to i8**\n  %156 = load i8*, i8** %155\n; # (free (Cld: buf))\n  call void @free(i8* %156)\n; # (Cld: hear)\n  %157 = getelementptr i8, i8* %144, i32 20\n  %158 = bitcast i8* %157 to i32*\n  %159 = load i32, i32* %158\n; # (close (Cld: hear))\n  %160 = call i32 @close(i32 %159)\n; # (Cld: tell)\n  %161 = getelementptr i8, i8* %144, i32 24\n  %162 = bitcast i8* %161 to i32*\n  %163 = load i32, i32* %162\n; # (close (Cld: tell))\n  %164 = call i32 @close(i32 %163)\n  br label %$27\n$27:\n  %165 = phi i64 [%139, %$24], [%149, %$26] ; # Exe\n  %166 = phi i32* [%140, %$24], [%150, %$26] ; # Hear\n  %167 = phi i32* [%141, %$24], [%151, %$26] ; # Tell\n  %168 = phi i32 [%142, %$24], [%152, %$26] ; # I\n  %169 = phi i32 [%143, %$24], [%153, %$26] ; # N\n  %170 = phi i8* [%144, %$24], [%154, %$26] ; # Cld\n; # (ofs Cld (child T))\n  %171 = getelementptr i8, i8* %170, i32 32\n  br label %$23\n$25:\n  %172 = phi i64 [%131, %$23] ; # Exe\n  %173 = phi i32* [%132, %$23] ; # Hear\n  %174 = phi i32* [%133, %$23] ; # Tell\n  %175 = phi i32 [%134, %$23] ; # I\n  %176 = phi i32 [%137, %$23] ; # N\n  %177 = phi i8* [%136, %$23] ; # Cld\n; # (set $Children 0)\n  store i32 0, i32* @$Children\n; # (val $Child)\n  %178 = load i8*, i8** @$Child\n; # (free (val $Child))\n  call void @free(i8* %178)\n; # (set $Child null)\n  store i8* null, i8** @$Child\n; # (let In (val $InFrames) (while In (let In: (ioFrame In) (when (In...\n; # (val $InFrames)\n  %179 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (while In (let In: (ioFrame In) (when (In: file) (In: pid 0)) (se...\n  br label %$28\n$28:\n  %180 = phi i64 [%172, %$25], [%205, %$32] ; # Exe\n  %181 = phi i32* [%173, %$25], [%206, %$32] ; # Hear\n  %182 = phi i32* [%174, %$25], [%207, %$32] ; # Tell\n  %183 = phi i32 [%175, %$25], [%208, %$32] ; # I\n  %184 = phi i32 [%176, %$25], [%209, %$32] ; # N\n  %185 = phi i8* [%179, %$25], [%212, %$32] ; # In\n  %186 = icmp ne i8* %185, null\n  br i1 %186, label %$29, label %$30\n$29:\n  %187 = phi i64 [%180, %$28] ; # Exe\n  %188 = phi i32* [%181, %$28] ; # Hear\n  %189 = phi i32* [%182, %$28] ; # Tell\n  %190 = phi i32 [%183, %$28] ; # I\n  %191 = phi i32 [%184, %$28] ; # N\n  %192 = phi i8* [%185, %$28] ; # In\n; # (let In: (ioFrame In) (when (In: file) (In: pid 0)) (setq In (In:...\n; # (when (In: file) (In: pid 0))\n; # (In: file)\n  %193 = getelementptr i8, i8* %192, i32 8\n  %194 = bitcast i8* %193 to i8**\n  %195 = load i8*, i8** %194\n  %196 = icmp ne i8* %195, null\n  br i1 %196, label %$31, label %$32\n$31:\n  %197 = phi i64 [%187, %$29] ; # Exe\n  %198 = phi i32* [%188, %$29] ; # Hear\n  %199 = phi i32* [%189, %$29] ; # Tell\n  %200 = phi i32 [%190, %$29] ; # I\n  %201 = phi i32 [%191, %$29] ; # N\n  %202 = phi i8* [%192, %$29] ; # In\n; # (In: pid 0)\n  %203 = getelementptr i8, i8* %192, i32 24\n  %204 = bitcast i8* %203 to i32*\n  store i32 0, i32* %204\n  br label %$32\n$32:\n  %205 = phi i64 [%187, %$29], [%197, %$31] ; # Exe\n  %206 = phi i32* [%188, %$29], [%198, %$31] ; # Hear\n  %207 = phi i32* [%189, %$29], [%199, %$31] ; # Tell\n  %208 = phi i32 [%190, %$29], [%200, %$31] ; # I\n  %209 = phi i32 [%191, %$29], [%201, %$31] ; # N\n  %210 = phi i8* [%192, %$29], [%202, %$31] ; # In\n; # (In: link)\n  %211 = bitcast i8* %192 to i8**\n  %212 = load i8*, i8** %211\n  br label %$28\n$30:\n  %213 = phi i64 [%180, %$28] ; # Exe\n  %214 = phi i32* [%181, %$28] ; # Hear\n  %215 = phi i32* [%182, %$28] ; # Tell\n  %216 = phi i32 [%183, %$28] ; # I\n  %217 = phi i32 [%184, %$28] ; # N\n  %218 = phi i8* [%185, %$28] ; # In\n; # (let Out (val $OutFrames) (while Out (let Out: (ioFrame Out) (whe...\n; # (val $OutFrames)\n  %219 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (while Out (let Out: (ioFrame Out) (when (Out: file) (Out: pid 0)...\n  br label %$33\n$33:\n  %220 = phi i64 [%213, %$30], [%245, %$37] ; # Exe\n  %221 = phi i32* [%214, %$30], [%246, %$37] ; # Hear\n  %222 = phi i32* [%215, %$30], [%247, %$37] ; # Tell\n  %223 = phi i32 [%216, %$30], [%248, %$37] ; # I\n  %224 = phi i32 [%217, %$30], [%249, %$37] ; # N\n  %225 = phi i8* [%219, %$30], [%252, %$37] ; # Out\n  %226 = icmp ne i8* %225, null\n  br i1 %226, label %$34, label %$35\n$34:\n  %227 = phi i64 [%220, %$33] ; # Exe\n  %228 = phi i32* [%221, %$33] ; # Hear\n  %229 = phi i32* [%222, %$33] ; # Tell\n  %230 = phi i32 [%223, %$33] ; # I\n  %231 = phi i32 [%224, %$33] ; # N\n  %232 = phi i8* [%225, %$33] ; # Out\n; # (let Out: (ioFrame Out) (when (Out: file) (Out: pid 0)) (setq Out...\n; # (when (Out: file) (Out: pid 0))\n; # (Out: file)\n  %233 = getelementptr i8, i8* %232, i32 8\n  %234 = bitcast i8* %233 to i8**\n  %235 = load i8*, i8** %234\n  %236 = icmp ne i8* %235, null\n  br i1 %236, label %$36, label %$37\n$36:\n  %237 = phi i64 [%227, %$34] ; # Exe\n  %238 = phi i32* [%228, %$34] ; # Hear\n  %239 = phi i32* [%229, %$34] ; # Tell\n  %240 = phi i32 [%230, %$34] ; # I\n  %241 = phi i32 [%231, %$34] ; # N\n  %242 = phi i8* [%232, %$34] ; # Out\n; # (Out: pid 0)\n  %243 = getelementptr i8, i8* %232, i32 24\n  %244 = bitcast i8* %243 to i32*\n  store i32 0, i32* %244\n  br label %$37\n$37:\n  %245 = phi i64 [%227, %$34], [%237, %$36] ; # Exe\n  %246 = phi i32* [%228, %$34], [%238, %$36] ; # Hear\n  %247 = phi i32* [%229, %$34], [%239, %$36] ; # Tell\n  %248 = phi i32 [%230, %$34], [%240, %$36] ; # I\n  %249 = phi i32 [%231, %$34], [%241, %$36] ; # N\n  %250 = phi i8* [%232, %$34], [%242, %$36] ; # Out\n; # (Out: link)\n  %251 = bitcast i8* %232 to i8**\n  %252 = load i8*, i8** %251\n  br label %$33\n$35:\n  %253 = phi i64 [%220, %$33] ; # Exe\n  %254 = phi i32* [%221, %$33] ; # Hear\n  %255 = phi i32* [%222, %$33] ; # Tell\n  %256 = phi i32 [%223, %$33] ; # I\n  %257 = phi i32 [%224, %$33] ; # N\n  %258 = phi i8* [%225, %$33] ; # Out\n; # (let Ca (val $Catch) (while Ca (let Ca: (caFrame Ca) (Ca: fin ZER...\n; # (val $Catch)\n  %259 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (while Ca (let Ca: (caFrame Ca) (Ca: fin ZERO) (setq Ca (Ca: link...\n  br label %$38\n$38:\n  %260 = phi i64 [%253, %$35], [%267, %$39] ; # Exe\n  %261 = phi i32* [%254, %$35], [%268, %$39] ; # Hear\n  %262 = phi i32* [%255, %$35], [%269, %$39] ; # Tell\n  %263 = phi i32 [%256, %$35], [%270, %$39] ; # I\n  %264 = phi i32 [%257, %$35], [%271, %$39] ; # N\n  %265 = phi i8* [%259, %$35], [%277, %$39] ; # Ca\n  %266 = icmp ne i8* %265, null\n  br i1 %266, label %$39, label %$40\n$39:\n  %267 = phi i64 [%260, %$38] ; # Exe\n  %268 = phi i32* [%261, %$38] ; # Hear\n  %269 = phi i32* [%262, %$38] ; # Tell\n  %270 = phi i32 [%263, %$38] ; # I\n  %271 = phi i32 [%264, %$38] ; # N\n  %272 = phi i8* [%265, %$38] ; # Ca\n; # (let Ca: (caFrame Ca) (Ca: fin ZERO) (setq Ca (Ca: link)))\n; # (Ca: fin ZERO)\n  %273 = getelementptr i8, i8* %272, i32 16\n  %274 = ptrtoint i8* %273 to i64\n  %275 = inttoptr i64 %274 to i64*\n  store i64 2, i64* %275\n; # (Ca: link)\n  %276 = bitcast i8* %272 to i8**\n  %277 = load i8*, i8** %276\n  br label %$38\n$40:\n  %278 = phi i64 [%260, %$38] ; # Exe\n  %279 = phi i32* [%261, %$38] ; # Hear\n  %280 = phi i32* [%262, %$38] ; # Tell\n  %281 = phi i32 [%263, %$38] ; # I\n  %282 = phi i32 [%264, %$38] ; # N\n  %283 = phi i8* [%265, %$38] ; # Ca\n; # (let R (val $Run) (while (pair R) (let X (++ R) (unless (sign? (c...\n; # (val $Run)\n  %284 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  %285 = load i64, i64* %284\n; # (while (pair R) (let X (++ R) (unless (sign? (car X)) (let Fd (i3...\n  br label %$41\n$41:\n  %286 = phi i64 [%278, %$40], [%318, %$45] ; # Exe\n  %287 = phi i32* [%279, %$40], [%319, %$45] ; # Hear\n  %288 = phi i32* [%280, %$40], [%320, %$45] ; # Tell\n  %289 = phi i32 [%281, %$40], [%321, %$45] ; # I\n  %290 = phi i32 [%282, %$40], [%322, %$45] ; # N\n  %291 = phi i64 [%285, %$40], [%323, %$45] ; # R\n; # (pair R)\n  %292 = and i64 %291, 15\n  %293 = icmp eq i64 %292, 0\n  br i1 %293, label %$42, label %$43\n$42:\n  %294 = phi i64 [%286, %$41] ; # Exe\n  %295 = phi i32* [%287, %$41] ; # Hear\n  %296 = phi i32* [%288, %$41] ; # Tell\n  %297 = phi i32 [%289, %$41] ; # I\n  %298 = phi i32 [%290, %$41] ; # N\n  %299 = phi i64 [%291, %$41] ; # R\n; # (let X (++ R) (unless (sign? (car X)) (let Fd (i32 (int @)) (clos...\n; # (++ R)\n  %300 = inttoptr i64 %299 to i64*\n  %301 = getelementptr i64, i64* %300, i32 1\n  %302 = load i64, i64* %301\n  %303 = load i64, i64* %300\n; # (unless (sign? (car X)) (let Fd (i32 (int @)) (close Fd) (closeIn...\n; # (car X)\n  %304 = inttoptr i64 %303 to i64*\n  %305 = load i64, i64* %304\n; # (sign? (car X))\n  %306 = and i64 %305, 8\n  %307 = icmp ne i64 %306, 0\n  br i1 %307, label %$45, label %$44\n$44:\n  %308 = phi i64 [%294, %$42] ; # Exe\n  %309 = phi i32* [%295, %$42] ; # Hear\n  %310 = phi i32* [%296, %$42] ; # Tell\n  %311 = phi i32 [%297, %$42] ; # I\n  %312 = phi i32 [%298, %$42] ; # N\n  %313 = phi i64 [%302, %$42] ; # R\n  %314 = phi i64 [%303, %$42] ; # X\n; # (let Fd (i32 (int @)) (close Fd) (closeInFile Fd) (closeOutFile F...\n; # (int @)\n  %315 = lshr i64 %305, 4\n; # (i32 (int @))\n  %316 = trunc i64 %315 to i32\n; # (close Fd)\n  %317 = call i32 @close(i32 %316)\n; # (closeInFile Fd)\n  call void @closeInFile(i32 %316)\n; # (closeOutFile Fd)\n  call void @closeOutFile(i32 %316)\n  br label %$45\n$45:\n  %318 = phi i64 [%294, %$42], [%308, %$44] ; # Exe\n  %319 = phi i32* [%295, %$42], [%309, %$44] ; # Hear\n  %320 = phi i32* [%296, %$42], [%310, %$44] ; # Tell\n  %321 = phi i32 [%297, %$42], [%311, %$44] ; # I\n  %322 = phi i32 [%298, %$42], [%312, %$44] ; # N\n  %323 = phi i64 [%302, %$42], [%313, %$44] ; # R\n  %324 = phi i64 [%303, %$42], [%314, %$44] ; # X\n  br label %$41\n$43:\n  %325 = phi i64 [%286, %$41] ; # Exe\n  %326 = phi i32* [%287, %$41] ; # Hear\n  %327 = phi i32* [%288, %$41] ; # Tell\n  %328 = phi i32 [%289, %$41] ; # I\n  %329 = phi i32 [%290, %$41] ; # N\n  %330 = phi i64 [%291, %$41] ; # R\n; # (set $Bye $Nil)\n  %331 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 824) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %331\n; # (set $Run $Nil)\n  %332 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %332\n; # (val Termio)\n  %333 = load i8*, i8** @Termio\n; # (free (val Termio))\n  call void @free(i8* %333)\n; # (set Termio null)\n  store i8* null, i8** @Termio\n; # (set $PRepl (val $Repl) $PPid (val $Pid))\n; # (val $Repl)\n  %334 = load i1, i1* @$Repl\n  store i1 %334, i1* @$PRepl\n; # (val $Pid)\n  %335 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 200) to i64) to i64*\n  %336 = load i64, i64* %335\n  %337 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 216) to i64) to i64*\n  store i64 %336, i64* %337\n; # (set $Pid (cnt (i64 (getpid))))\n; # (getpid)\n  %338 = call i32 @getpid()\n; # (i64 (getpid))\n  %339 = sext i32 %338 to i64\n; # (cnt (i64 (getpid)))\n  %340 = shl i64 %339, 4\n  %341 = or i64 %340, 2\n  %342 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 200) to i64) to i64*\n  store i64 %341, i64* %342\n; # (val $Fork)\n  %343 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 808) to i64) to i64*\n  %344 = load i64, i64* %343\n; # (execAt (val $Fork))\n  %345 = call i64 @execAt(i64 %344)\n; # (set $Fork $Nil)\n  %346 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 808) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %346\n  br label %$14\n$17:\n  %347 = phi i64 [%77, %$15] ; # Exe\n  %348 = phi i32* [%78, %$15] ; # Hear\n  %349 = phi i32* [%79, %$15] ; # Tell\n  %350 = phi i32 [%80, %$15] ; # I\n  %351 = phi i32 [%81, %$15] ; # N\n; # (let Pid @ (when (== I N) (set $Children (inc 'N 8)) (let P (set ...\n; # (when (== I N) (set $Children (inc 'N 8)) (let P (set $Child (all...\n; # (== I N)\n  %352 = icmp eq i32 %350, %351\n  br i1 %352, label %$46, label %$47\n$46:\n  %353 = phi i64 [%347, %$17] ; # Exe\n  %354 = phi i32* [%348, %$17] ; # Hear\n  %355 = phi i32* [%349, %$17] ; # Tell\n  %356 = phi i32 [%350, %$17] ; # I\n  %357 = phi i32 [%351, %$17] ; # N\n  %358 = phi i32 [%70, %$17] ; # Pid\n; # (set $Children (inc 'N 8))\n; # (inc 'N 8)\n  %359 = add i32 %357, 8\n  store i32 %359, i32* @$Children\n; # (let P (set $Child (alloc (val $Child) (i64 (* N (child T))))) (l...\n; # (set $Child (alloc (val $Child) (i64 (* N (child T)))))\n; # (val $Child)\n  %360 = load i8*, i8** @$Child\n; # (* N (child T))\n  %361 = mul i32 %359, 32\n; # (i64 (* N (child T)))\n  %362 = sext i32 %361 to i64\n; # (alloc (val $Child) (i64 (* N (child T))))\n  %363 = call i8* @alloc(i8* %360, i64 %362)\n  store i8* %363, i8** @$Child\n; # (let Cld (ofs P (* I (child T))) (loop ((child Cld) pid 0) (? (==...\n; # (* I (child T))\n  %364 = mul i32 %356, 32\n; # (ofs P (* I (child T)))\n  %365 = getelementptr i8, i8* %363, i32 %364\n; # (loop ((child Cld) pid 0) (? (== I (dec 'N))) (setq Cld (ofs Cld ...\n  br label %$48\n$48:\n  %366 = phi i64 [%353, %$46], [%378, %$49] ; # Exe\n  %367 = phi i32* [%354, %$46], [%379, %$49] ; # Hear\n  %368 = phi i32* [%355, %$46], [%380, %$49] ; # Tell\n  %369 = phi i32 [%356, %$46], [%381, %$49] ; # I\n  %370 = phi i32 [%359, %$46], [%382, %$49] ; # N\n  %371 = phi i32 [%358, %$46], [%383, %$49] ; # Pid\n  %372 = phi i8* [%363, %$46], [%384, %$49] ; # P\n  %373 = phi i8* [%365, %$46], [%386, %$49] ; # Cld\n; # ((child Cld) pid 0)\n  %374 = getelementptr i8, i8* %373, i32 16\n  %375 = bitcast i8* %374 to i32*\n  store i32 0, i32* %375\n; # (? (== I (dec 'N)))\n; # (dec 'N)\n  %376 = sub i32 %370, 1\n; # (== I (dec 'N))\n  %377 = icmp eq i32 %369, %376\n  br i1 %377, label %$50, label %$49\n$49:\n  %378 = phi i64 [%366, %$48] ; # Exe\n  %379 = phi i32* [%367, %$48] ; # Hear\n  %380 = phi i32* [%368, %$48] ; # Tell\n  %381 = phi i32 [%369, %$48] ; # I\n  %382 = phi i32 [%376, %$48] ; # N\n  %383 = phi i32 [%371, %$48] ; # Pid\n  %384 = phi i8* [%372, %$48] ; # P\n  %385 = phi i8* [%373, %$48] ; # Cld\n; # (ofs Cld (child T))\n  %386 = getelementptr i8, i8* %385, i32 32\n  br label %$48\n$50:\n  %387 = phi i64 [%366, %$48] ; # Exe\n  %388 = phi i32* [%367, %$48] ; # Hear\n  %389 = phi i32* [%368, %$48] ; # Tell\n  %390 = phi i32 [%369, %$48] ; # I\n  %391 = phi i32 [%376, %$48] ; # N\n  %392 = phi i32 [%371, %$48] ; # Pid\n  %393 = phi i8* [%372, %$48] ; # P\n  %394 = phi i8* [%373, %$48] ; # Cld\n  %395 = phi i64 [0, %$48] ; # ->\n  br label %$47\n$47:\n  %396 = phi i64 [%347, %$17], [%387, %$50] ; # Exe\n  %397 = phi i32* [%348, %$17], [%388, %$50] ; # Hear\n  %398 = phi i32* [%349, %$17], [%389, %$50] ; # Tell\n  %399 = phi i32 [%350, %$17], [%390, %$50] ; # I\n  %400 = phi i32 [%351, %$17], [%391, %$50] ; # N\n  %401 = phi i32 [%70, %$17], [%392, %$50] ; # Pid\n; # (val Hear)\n  %402 = load i32, i32* %397\n; # (close (val Hear))\n  %403 = call i32 @close(i32 %402)\n; # (val 2 Tell)\n  %404 = getelementptr i32, i32* %398, i32 1\n  %405 = load i32, i32* %404\n; # (close (val 2 Tell))\n  %406 = call i32 @close(i32 %405)\n; # (let Cld: (child (ofs (val $Child) (* I (child T)))) (Cld: buf nu...\n; # (val $Child)\n  %407 = load i8*, i8** @$Child\n; # (* I (child T))\n  %408 = mul i32 %399, 32\n; # (ofs (val $Child) (* I (child T)))\n  %409 = getelementptr i8, i8* %407, i32 %408\n; # (Cld: buf null)\n  %410 = bitcast i8* %409 to i8**\n  store i8* null, i8** %410\n; # (Cld: ofs (Cld: cnt 0))\n  %411 = getelementptr i8, i8* %409, i32 8\n  %412 = bitcast i8* %411 to i32*\n  %413 = getelementptr i8, i8* %409, i32 12\n  %414 = bitcast i8* %413 to i32*\n  store i32 0, i32* %414\n  store i32 0, i32* %412\n; # (Cld: pid Pid)\n  %415 = getelementptr i8, i8* %409, i32 16\n  %416 = bitcast i8* %415 to i32*\n  store i32 %401, i32* %416\n; # (Cld: hear (val Tell))\n  %417 = getelementptr i8, i8* %409, i32 20\n  %418 = bitcast i8* %417 to i32*\n  %419 = load i32, i32* %398\n  store i32 %419, i32* %418\n; # (Cld: tell (val 2 Hear))\n  %420 = getelementptr i8, i8* %409, i32 24\n  %421 = bitcast i8* %420 to i32*\n  %422 = getelementptr i32, i32* %397, i32 1\n  %423 = load i32, i32* %422\n  store i32 %423, i32* %421\n; # (nonBlocking (Cld: tell (val 2 Hear)))\n  %424 = call i32 @nonBlocking(i32 %423)\n  br label %$14\n$14:\n  %425 = phi i64 [%325, %$43], [%396, %$47] ; # Exe\n  %426 = phi i32* [%326, %$43], [%397, %$47] ; # Hear\n  %427 = phi i32* [%327, %$43], [%398, %$47] ; # Tell\n  %428 = phi i32 [%328, %$43], [%399, %$47] ; # I\n  %429 = phi i32 [%329, %$43], [%400, %$47] ; # N\n  %430 = phi i32 [0, %$43], [%401, %$47] ; # ->\n  ret i32 %430\n}\n\ndefine i64 @_Pipe(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (++ X) Pfd (b32 2) Io: (ioFrame (b8+ (ioFrame...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (b32 2)\n  %8 = alloca i32, i64 2\n; # (b8+ (ioFrame T))\n  %9 = alloca i8, i64 28, align 8\n; # (when (lt0 (if (pair X) (pipe Pfd) (socketPair Pfd))) (pipeErr Ex...\n; # (if (pair X) (pipe Pfd) (socketPair Pfd))\n; # (pair X)\n  %10 = and i64 %6, 15\n  %11 = icmp eq i64 %10, 0\n  br i1 %11, label %$2, label %$3\n$2:\n  %12 = phi i64 [%0, %$1] ; # Exe\n  %13 = phi i64 [%6, %$1] ; # X\n  %14 = phi i64 [%7, %$1] ; # E\n  %15 = phi i32* [%8, %$1] ; # Pfd\n; # (pipe Pfd)\n  %16 = call i32 @pipe(i32* %15)\n  br label %$4\n$3:\n  %17 = phi i64 [%0, %$1] ; # Exe\n  %18 = phi i64 [%6, %$1] ; # X\n  %19 = phi i64 [%7, %$1] ; # E\n  %20 = phi i32* [%8, %$1] ; # Pfd\n; # (socketPair Pfd)\n  %21 = call i32 @socketPair(i32* %20)\n  br label %$4\n$4:\n  %22 = phi i64 [%12, %$2], [%17, %$3] ; # Exe\n  %23 = phi i64 [%13, %$2], [%18, %$3] ; # X\n  %24 = phi i64 [%14, %$2], [%19, %$3] ; # E\n  %25 = phi i32* [%15, %$2], [%20, %$3] ; # Pfd\n  %26 = phi i32 [%16, %$2], [%21, %$3] ; # ->\n; # (lt0 (if (pair X) (pipe Pfd) (socketPair Pfd)))\n  %27 = icmp slt i32 %26, 0\n  br i1 %27, label %$5, label %$6\n$5:\n  %28 = phi i64 [%22, %$4] ; # Exe\n  %29 = phi i64 [%23, %$4] ; # X\n  %30 = phi i64 [%24, %$4] ; # E\n  %31 = phi i32* [%25, %$4] ; # Pfd\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %28)\n  unreachable\n$6:\n  %32 = phi i64 [%22, %$4] ; # Exe\n  %33 = phi i64 [%23, %$4] ; # X\n  %34 = phi i64 [%24, %$4] ; # E\n  %35 = phi i32* [%25, %$4] ; # Pfd\n; # (when (< (val 2 Pfd) 2) (pipeErr Exe))\n; # (val 2 Pfd)\n  %36 = getelementptr i32, i32* %35, i32 1\n  %37 = load i32, i32* %36\n; # (< (val 2 Pfd) 2)\n  %38 = icmp slt i32 %37, 2\n  br i1 %38, label %$7, label %$8\n$7:\n  %39 = phi i64 [%32, %$6] ; # Exe\n  %40 = phi i64 [%33, %$6] ; # X\n  %41 = phi i64 [%34, %$6] ; # E\n  %42 = phi i32* [%35, %$6] ; # Pfd\n; # (pipeErr Exe)\n  call void @pipeErr(i64 %39)\n  unreachable\n$8:\n  %43 = phi i64 [%32, %$6] ; # Exe\n  %44 = phi i64 [%33, %$6] ; # X\n  %45 = phi i64 [%34, %$6] ; # E\n  %46 = phi i32* [%35, %$6] ; # Pfd\n; # (if (forkLisp Exe) (let Pid @ (close (val 2 Pfd)) (let Fd (val Pf...\n; # (forkLisp Exe)\n  %47 = call i32 @forkLisp(i64 %43)\n  %48 = icmp ne i32 %47, 0\n  br i1 %48, label %$9, label %$10\n$9:\n  %49 = phi i64 [%43, %$8] ; # Exe\n  %50 = phi i64 [%44, %$8] ; # X\n  %51 = phi i64 [%45, %$8] ; # E\n  %52 = phi i32* [%46, %$8] ; # Pfd\n; # (let Pid @ (close (val 2 Pfd)) (let Fd (val Pfd) (closeOnExec Exe...\n; # (val 2 Pfd)\n  %53 = getelementptr i32, i32* %52, i32 1\n  %54 = load i32, i32* %53\n; # (close (val 2 Pfd))\n  %55 = call i32 @close(i32 %54)\n; # (let Fd (val Pfd) (closeOnExec Exe Fd) (cond ((atom X) (initInFil...\n; # (val Pfd)\n  %56 = load i32, i32* %52\n; # (closeOnExec Exe Fd)\n  call void @closeOnExec(i64 %49, i32 %56)\n; # (cond ((atom X) (initInFile Fd null) (initOutFile Fd) (cnt (i64 F...\n; # (atom X)\n  %57 = and i64 %50, 15\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$14, label %$13\n$14:\n  %59 = phi i64 [%49, %$9] ; # Exe\n  %60 = phi i64 [%50, %$9] ; # X\n  %61 = phi i64 [%51, %$9] ; # E\n  %62 = phi i32* [%52, %$9] ; # Pfd\n  %63 = phi i32 [%47, %$9] ; # Pid\n  %64 = phi i32 [%56, %$9] ; # Fd\n; # (initInFile Fd null)\n  %65 = call i8* @initInFile(i32 %64, i8* null)\n; # (initOutFile Fd)\n  %66 = call i8* @initOutFile(i32 %64)\n; # (i64 Fd)\n  %67 = sext i32 %64 to i64\n; # (cnt (i64 Fd))\n  %68 = shl i64 %67, 4\n  %69 = or i64 %68, 2\n  br label %$12\n$13:\n  %70 = phi i64 [%49, %$9] ; # Exe\n  %71 = phi i64 [%50, %$9] ; # X\n  %72 = phi i64 [%51, %$9] ; # E\n  %73 = phi i32* [%52, %$9] ; # Pfd\n  %74 = phi i32 [%47, %$9] ; # Pid\n  %75 = phi i32 [%56, %$9] ; # Fd\n; # (setpgid Pid 0)\n  %76 = call i32 @setpgid(i32 %74, i32 0)\n; # (Io:)\n; # (initInFile Fd null)\n  %77 = call i8* @initInFile(i32 %75, i8* null)\n; # (pushInFile (Io:) (initInFile Fd null) Pid)\n  call void @pushInFile(i8* %9, i8* %77, i32 %74)\n; # (prog1 (run X) (popInFiles))\n; # (run X)\n  br label %$15\n$15:\n  %78 = phi i64 [%71, %$13], [%108, %$24] ; # Prg\n  %79 = inttoptr i64 %78 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  %82 = load i64, i64* %79\n  %83 = and i64 %81, 15\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$18, label %$16\n$18:\n  %85 = phi i64 [%81, %$15] ; # Prg\n  %86 = phi i64 [%82, %$15] ; # X\n  %87 = and i64 %86, 6\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$21, label %$20\n$21:\n  %89 = phi i64 [%86, %$18] ; # X\n  br label %$19\n$20:\n  %90 = phi i64 [%86, %$18] ; # X\n  %91 = and i64 %90, 8\n  %92 = icmp ne i64 %91, 0\n  br i1 %92, label %$23, label %$22\n$23:\n  %93 = phi i64 [%90, %$20] ; # X\n  %94 = inttoptr i64 %93 to i64*\n  %95 = load i64, i64* %94\n  br label %$19\n$22:\n  %96 = phi i64 [%90, %$20] ; # X\n  %97 = call i64 @evList(i64 %96)\n  br label %$19\n$19:\n  %98 = phi i64 [%89, %$21], [%93, %$23], [%96, %$22] ; # X\n  %99 = phi i64 [%89, %$21], [%95, %$23], [%97, %$22] ; # ->\n  br label %$17\n$16:\n  %100 = phi i64 [%81, %$15] ; # Prg\n  %101 = phi i64 [%82, %$15] ; # X\n  %102 = and i64 %101, 15\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$25, label %$24\n$25:\n  %104 = phi i64 [%100, %$16] ; # Prg\n  %105 = phi i64 [%101, %$16] ; # X\n  %106 = call i64 @evList(i64 %105)\n  %107 = icmp ne i64 %106, 0\n  br label %$24\n$24:\n  %108 = phi i64 [%100, %$16], [%104, %$25] ; # Prg\n  %109 = phi i64 [%101, %$16], [%105, %$25] ; # X\n  %110 = phi i1 [0, %$16], [%107, %$25] ; # ->\n  br label %$15\n$17:\n  %111 = phi i64 [%85, %$19] ; # Prg\n  %112 = phi i64 [%99, %$19] ; # ->\n; # (popInFiles)\n  call void @popInFiles()\n  br label %$12\n$12:\n  %113 = phi i64 [%59, %$14], [%70, %$17] ; # Exe\n  %114 = phi i64 [%60, %$14], [%71, %$17] ; # X\n  %115 = phi i64 [%61, %$14], [%72, %$17] ; # E\n  %116 = phi i32* [%62, %$14], [%73, %$17] ; # Pfd\n  %117 = phi i32 [%63, %$14], [%74, %$17] ; # Pid\n  %118 = phi i32 [%64, %$14], [%75, %$17] ; # Fd\n  %119 = phi i64 [%69, %$14], [%112, %$17] ; # ->\n  br label %$11\n$10:\n  %120 = phi i64 [%43, %$8] ; # Exe\n  %121 = phi i64 [%44, %$8] ; # X\n  %122 = phi i64 [%45, %$8] ; # E\n  %123 = phi i32* [%46, %$8] ; # Pfd\n; # (val Pfd)\n  %124 = load i32, i32* %123\n; # (close (val Pfd))\n  %125 = call i32 @close(i32 %124)\n; # (let Fd (val 2 Pfd) (if (pair X) (setpgid 0 0) (dup2 Fd 0) ((inFi...\n; # (val 2 Pfd)\n  %126 = getelementptr i32, i32* %123, i32 1\n  %127 = load i32, i32* %126\n; # (if (pair X) (setpgid 0 0) (dup2 Fd 0) ((inFile (val (val $InFile...\n; # (pair X)\n  %128 = and i64 %121, 15\n  %129 = icmp eq i64 %128, 0\n  br i1 %129, label %$26, label %$27\n$26:\n  %130 = phi i64 [%120, %$10] ; # Exe\n  %131 = phi i64 [%121, %$10] ; # X\n  %132 = phi i64 [%122, %$10] ; # E\n  %133 = phi i32* [%123, %$10] ; # Pfd\n  %134 = phi i32 [%127, %$10] ; # Fd\n; # (setpgid 0 0)\n  %135 = call i32 @setpgid(i32 0, i32 0)\n  br label %$28\n$27:\n  %136 = phi i64 [%120, %$10] ; # Exe\n  %137 = phi i64 [%121, %$10] ; # X\n  %138 = phi i64 [%122, %$10] ; # E\n  %139 = phi i32* [%123, %$10] ; # Pfd\n  %140 = phi i32 [%127, %$10] ; # Fd\n; # (dup2 Fd 0)\n  %141 = call i32 @dup2(i32 %140, i32 0)\n; # (val $InFiles)\n  %142 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %143 = load i8*, i8** %142\n; # ((inFile (val (val $InFiles))) tty NO)\n  %144 = getelementptr i8, i8* %143, i32 4128\n  %145 = bitcast i8* %144 to i1*\n  store i1 0, i1* %145\n  br label %$28\n$28:\n  %146 = phi i64 [%130, %$26], [%136, %$27] ; # Exe\n  %147 = phi i64 [%131, %$26], [%137, %$27] ; # X\n  %148 = phi i64 [%132, %$26], [%138, %$27] ; # E\n  %149 = phi i32* [%133, %$26], [%139, %$27] ; # Pfd\n  %150 = phi i32 [%134, %$26], [%140, %$27] ; # Fd\n; # (dup2 Fd 1)\n  %151 = call i32 @dup2(i32 %150, i32 1)\n; # (close Fd)\n  %152 = call i32 @close(i32 %150)\n; # (val SIGPIPE Sig)\n  %153 = getelementptr i32, i32* @Sig, i32 4\n  %154 = load i32, i32* %153\n; # (val SigDfl)\n  %155 = load i8*, i8** @SigDfl\n; # (signal (val SIGPIPE Sig) (val SigDfl))\n  %156 = call i8* @signal(i32 %154, i8* %155)\n; # (val $OutFile)\n  %157 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # ((outFile (val $OutFile)) tty NO)\n  %158 = getelementptr i8, i8* %157, i32 4104\n  %159 = bitcast i8* %158 to i1*\n  store i1 0, i1* %159\n; # (Io:)\n; # (val $OutFiles)\n  %160 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %161 = getelementptr i8*, i8** %160, i32 1\n  %162 = load i8*, i8** %161\n; # (pushOutFile (Io:) (val 2 (val $OutFiles)) 0)\n  call void @pushOutFile(i8* %9, i8* %162, i32 0)\n; # (set $LinePtr null)\n  store i8* null, i8** @$LinePtr\n; # (when (pair E) (evList E))\n; # (pair E)\n  %163 = and i64 %148, 15\n  %164 = icmp eq i64 %163, 0\n  br i1 %164, label %$29, label %$30\n$29:\n  %165 = phi i64 [%146, %$28] ; # Exe\n  %166 = phi i64 [%147, %$28] ; # X\n  %167 = phi i64 [%148, %$28] ; # E\n  %168 = phi i32* [%149, %$28] ; # Pfd\n; # (evList E)\n  %169 = call i64 @evList(i64 %167)\n  br label %$30\n$30:\n  %170 = phi i64 [%146, %$28], [%165, %$29] ; # Exe\n  %171 = phi i64 [%147, %$28], [%166, %$29] ; # X\n  %172 = phi i64 [%148, %$28], [%167, %$29] ; # E\n  %173 = phi i32* [%149, %$28], [%168, %$29] ; # Pfd\n; # (bye 0)\n  call void @bye(i32 0)\n  unreachable\n$11:\n  %174 = phi i64 [%113, %$12] ; # Exe\n  %175 = phi i64 [%114, %$12] ; # X\n  %176 = phi i64 [%115, %$12] ; # E\n  %177 = phi i32* [%116, %$12] ; # Pfd\n  %178 = phi i64 [%119, %$12] ; # ->\n  ret i64 %178\n}\n\ndefine i64 @_Open(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (evSym X)) S (pathString Nm (b8 (path...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (pathSize Nm)\n  %6 = call i64 @pathSize(i64 %5)\n; # (b8 (pathSize Nm))\n  %7 = alloca i8, i64 %6\n; # (pathString Nm (b8 (pathSize Nm)))\n  %8 = call i8* @pathString(i64 %5, i8* %7)\n; # (cadr X)\n  %9 = inttoptr i64 %3 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n; # (eval (cadr X))\n  %14 = and i64 %13, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$4, label %$3\n$4:\n  %16 = phi i64 [%13, %$1] ; # X\n  br label %$2\n$3:\n  %17 = phi i64 [%13, %$1] ; # X\n  %18 = and i64 %17, 8\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$6, label %$5\n$6:\n  %20 = phi i64 [%17, %$3] ; # X\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n  br label %$2\n$5:\n  %23 = phi i64 [%17, %$3] ; # X\n  %24 = call i64 @evList(i64 %23)\n  br label %$2\n$2:\n  %25 = phi i64 [%16, %$4], [%20, %$6], [%23, %$5] ; # X\n  %26 = phi i64 [%16, %$4], [%22, %$6], [%24, %$5] ; # ->\n; # (nil? (eval (cadr X)))\n  %27 = icmp eq i64 %26, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (loop (? (ge0 (if Flg (openRdWrCreate S) (openRd S))) (closeOnExe...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$2], [%75, %$17] ; # Exe\n  %29 = phi i64 [%3, %$2], [%76, %$17] ; # X\n  %30 = phi i64 [%5, %$2], [%77, %$17] ; # Nm\n  %31 = phi i8* [%8, %$2], [%78, %$17] ; # S\n  %32 = phi i1 [%27, %$2], [%79, %$17] ; # Flg\n; # (? (ge0 (if Flg (openRdWrCreate S) (openRd S))) (closeOnExec Exe ...\n; # (if Flg (openRdWrCreate S) (openRd S))\n  br i1 %32, label %$8, label %$9\n$8:\n  %33 = phi i64 [%28, %$7] ; # Exe\n  %34 = phi i64 [%29, %$7] ; # X\n  %35 = phi i64 [%30, %$7] ; # Nm\n  %36 = phi i8* [%31, %$7] ; # S\n  %37 = phi i1 [%32, %$7] ; # Flg\n; # (openRdWrCreate S)\n  %38 = call i32 @openRdWrCreate(i8* %36)\n  br label %$10\n$9:\n  %39 = phi i64 [%28, %$7] ; # Exe\n  %40 = phi i64 [%29, %$7] ; # X\n  %41 = phi i64 [%30, %$7] ; # Nm\n  %42 = phi i8* [%31, %$7] ; # S\n  %43 = phi i1 [%32, %$7] ; # Flg\n; # (openRd S)\n  %44 = call i32 @openRd(i8* %42)\n  br label %$10\n$10:\n  %45 = phi i64 [%33, %$8], [%39, %$9] ; # Exe\n  %46 = phi i64 [%34, %$8], [%40, %$9] ; # X\n  %47 = phi i64 [%35, %$8], [%41, %$9] ; # Nm\n  %48 = phi i8* [%36, %$8], [%42, %$9] ; # S\n  %49 = phi i1 [%37, %$8], [%43, %$9] ; # Flg\n  %50 = phi i32 [%38, %$8], [%44, %$9] ; # ->\n; # (ge0 (if Flg (openRdWrCreate S) (openRd S)))\n  %51 = icmp sge i32 %50, 0\n  br i1 %51, label %$13, label %$11\n$13:\n  %52 = phi i64 [%45, %$10] ; # Exe\n  %53 = phi i64 [%46, %$10] ; # X\n  %54 = phi i64 [%47, %$10] ; # Nm\n  %55 = phi i8* [%48, %$10] ; # S\n  %56 = phi i1 [%49, %$10] ; # Flg\n; # (closeOnExec Exe @)\n  call void @closeOnExec(i64 %52, i32 %50)\n; # (strdup S)\n  %57 = call i8* @strdup(i8* %55)\n; # (initInFile @ (strdup S))\n  %58 = call i8* @initInFile(i32 %50, i8* %57)\n; # (initOutFile @)\n  %59 = call i8* @initOutFile(i32 %50)\n; # (i64 @)\n  %60 = sext i32 %50 to i64\n; # (cnt (i64 @))\n  %61 = shl i64 %60, 4\n  %62 = or i64 %61, 2\n  br label %$12\n$11:\n  %63 = phi i64 [%45, %$10] ; # Exe\n  %64 = phi i64 [%46, %$10] ; # X\n  %65 = phi i64 [%47, %$10] ; # Nm\n  %66 = phi i8* [%48, %$10] ; # S\n  %67 = phi i1 [%49, %$10] ; # Flg\n; # (? (<> (gErrno) EINTR) $Nil)\n; # (gErrno)\n  %68 = call i32 @gErrno()\n; # (<> (gErrno) EINTR)\n  %69 = icmp ne i32 %68, 2\n  br i1 %69, label %$15, label %$14\n$15:\n  %70 = phi i64 [%63, %$11] ; # Exe\n  %71 = phi i64 [%64, %$11] ; # X\n  %72 = phi i64 [%65, %$11] ; # Nm\n  %73 = phi i8* [%66, %$11] ; # S\n  %74 = phi i1 [%67, %$11] ; # Flg\n  br label %$12\n$14:\n  %75 = phi i64 [%63, %$11] ; # Exe\n  %76 = phi i64 [%64, %$11] ; # X\n  %77 = phi i64 [%65, %$11] ; # Nm\n  %78 = phi i8* [%66, %$11] ; # S\n  %79 = phi i1 [%67, %$11] ; # Flg\n; # (sigChk Exe)\n  %80 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %81 = icmp ne i32 %80, 0\n  br i1 %81, label %$16, label %$17\n$16:\n  %82 = phi i64 [%75, %$14] ; # Exe\n  call void @sighandler(i64 %82)\n  br label %$17\n$17:\n  %83 = phi i64 [%75, %$14], [%82, %$16] ; # Exe\n  br label %$7\n$12:\n  %84 = phi i64 [%52, %$13], [%70, %$15] ; # Exe\n  %85 = phi i64 [%53, %$13], [%71, %$15] ; # X\n  %86 = phi i64 [%54, %$13], [%72, %$15] ; # Nm\n  %87 = phi i8* [%55, %$13], [%73, %$15] ; # S\n  %88 = phi i1 [%56, %$13], [%74, %$15] ; # Flg\n  %89 = phi i64 [%62, %$13], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15] ; # ->\n  ret i64 %89\n}\n\ndefine i64 @_Close(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) Fd (i32 (xCnt Exe X))) (loop (? (=0 (cl...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (xCnt Exe X)\n  %19 = call i64 @xCnt(i64 %0, i64 %18)\n; # (i32 (xCnt Exe X))\n  %20 = trunc i64 %19 to i32\n; # (loop (? (=0 (close Fd)) (closeInFile Fd) (closeOutFile Fd) X) (?...\n  br label %$7\n$7:\n  %21 = phi i64 [%0, %$2], [%37, %$14] ; # Exe\n  %22 = phi i64 [%18, %$2], [%38, %$14] ; # X\n  %23 = phi i32 [%20, %$2], [%39, %$14] ; # Fd\n; # (? (=0 (close Fd)) (closeInFile Fd) (closeOutFile Fd) X)\n; # (close Fd)\n  %24 = call i32 @close(i32 %23)\n; # (=0 (close Fd))\n  %25 = icmp eq i32 %24, 0\n  br i1 %25, label %$10, label %$8\n$10:\n  %26 = phi i64 [%21, %$7] ; # Exe\n  %27 = phi i64 [%22, %$7] ; # X\n  %28 = phi i32 [%23, %$7] ; # Fd\n; # (closeInFile Fd)\n  call void @closeInFile(i32 %28)\n; # (closeOutFile Fd)\n  call void @closeOutFile(i32 %28)\n  br label %$9\n$8:\n  %29 = phi i64 [%21, %$7] ; # Exe\n  %30 = phi i64 [%22, %$7] ; # X\n  %31 = phi i32 [%23, %$7] ; # Fd\n; # (? (<> (gErrno) EINTR) $Nil)\n; # (gErrno)\n  %32 = call i32 @gErrno()\n; # (<> (gErrno) EINTR)\n  %33 = icmp ne i32 %32, 2\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%29, %$8] ; # Exe\n  %35 = phi i64 [%30, %$8] ; # X\n  %36 = phi i32 [%31, %$8] ; # Fd\n  br label %$9\n$11:\n  %37 = phi i64 [%29, %$8] ; # Exe\n  %38 = phi i64 [%30, %$8] ; # X\n  %39 = phi i32 [%31, %$8] ; # Fd\n; # (sigChk Exe)\n  %40 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %41 = icmp ne i32 %40, 0\n  br i1 %41, label %$13, label %$14\n$13:\n  %42 = phi i64 [%37, %$11] ; # Exe\n  call void @sighandler(i64 %42)\n  br label %$14\n$14:\n  %43 = phi i64 [%37, %$11], [%42, %$13] ; # Exe\n  br label %$7\n$9:\n  %44 = phi i64 [%26, %$10], [%34, %$12] ; # Exe\n  %45 = phi i64 [%27, %$10], [%35, %$12] ; # X\n  %46 = phi i32 [%28, %$10], [%36, %$12] ; # Fd\n  %47 = phi i64 [%27, %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # ->\n  ret i64 %47\n}\n\ndefine i64 @_Echo(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((and (nil? Y) (atom X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((and (nil? Y) (atom X)) (let C (if (val $Chr) @ (call $Get...\n; # (and (nil? Y) (atom X))\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # Y\n; # (atom X)\n  %25 = and i64 %23, 15\n  %26 = icmp ne i64 %25, 0\n  br label %$8\n$8:\n  %27 = phi i64 [%0, %$2], [%22, %$9] ; # Exe\n  %28 = phi i64 [%6, %$2], [%23, %$9] ; # X\n  %29 = phi i64 [%20, %$2], [%24, %$9] ; # Y\n  %30 = phi i1 [0, %$2], [%26, %$9] ; # ->\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%27, %$8] ; # Exe\n  %32 = phi i64 [%28, %$8] ; # X\n  %33 = phi i64 [%29, %$8] ; # Y\n; # (let C (if (val $Chr) @ (call $Get)) (until (lt0 C) (call $Put (i...\n; # (if (val $Chr) @ (call $Get))\n; # (val $Chr)\n  %34 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %35 = icmp ne i32 %34, 0\n  br i1 %35, label %$12, label %$13\n$12:\n  %36 = phi i64 [%31, %$11] ; # Exe\n  %37 = phi i64 [%32, %$11] ; # X\n  %38 = phi i64 [%33, %$11] ; # Y\n  br label %$14\n$13:\n  %39 = phi i64 [%31, %$11] ; # Exe\n  %40 = phi i64 [%32, %$11] ; # X\n  %41 = phi i64 [%33, %$11] ; # Y\n; # (call $Get)\n  %42 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %43 = call i32 %42()\n  br label %$14\n$14:\n  %44 = phi i64 [%36, %$12], [%39, %$13] ; # Exe\n  %45 = phi i64 [%37, %$12], [%40, %$13] ; # X\n  %46 = phi i64 [%38, %$12], [%41, %$13] ; # Y\n  %47 = phi i32 [%34, %$12], [%43, %$13] ; # ->\n; # (until (lt0 C) (call $Put (i8 C)) (setq C (call $Get)))\n  br label %$15\n$15:\n  %48 = phi i64 [%44, %$14], [%53, %$16] ; # Exe\n  %49 = phi i64 [%45, %$14], [%54, %$16] ; # X\n  %50 = phi i64 [%46, %$14], [%55, %$16] ; # Y\n  %51 = phi i32 [%47, %$14], [%60, %$16] ; # C\n; # (lt0 C)\n  %52 = icmp slt i32 %51, 0\n  br i1 %52, label %$17, label %$16\n$16:\n  %53 = phi i64 [%48, %$15] ; # Exe\n  %54 = phi i64 [%49, %$15] ; # X\n  %55 = phi i64 [%50, %$15] ; # Y\n  %56 = phi i32 [%51, %$15] ; # C\n; # (i8 C)\n  %57 = trunc i32 %56 to i8\n; # (call $Put (i8 C))\n  %58 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %58(i8 %57)\n; # (call $Get)\n  %59 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %60 = call i32 %59()\n  br label %$15\n$17:\n  %61 = phi i64 [%48, %$15] ; # Exe\n  %62 = phi i64 [%49, %$15] ; # X\n  %63 = phi i64 [%50, %$15] ; # Y\n  %64 = phi i32 [%51, %$15] ; # C\n  br label %$7\n$10:\n  %65 = phi i64 [%27, %$8] ; # Exe\n  %66 = phi i64 [%28, %$8] ; # X\n  %67 = phi i64 [%29, %$8] ; # Y\n; # (num? Y)\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%65, %$10] ; # Exe\n  %71 = phi i64 [%66, %$10] ; # X\n  %72 = phi i64 [%67, %$10] ; # Y\n; # (let N (xCnt Exe Y) (when (pair X) (let C (evCnt Exe X) (while (g...\n; # (xCnt Exe Y)\n  %73 = call i64 @xCnt(i64 %70, i64 %72)\n; # (when (pair X) (let C (evCnt Exe X) (while (ge0 (dec 'N)) (when (...\n; # (pair X)\n  %74 = and i64 %71, 15\n  %75 = icmp eq i64 %74, 0\n  br i1 %75, label %$20, label %$21\n$20:\n  %76 = phi i64 [%70, %$19] ; # Exe\n  %77 = phi i64 [%71, %$19] ; # X\n  %78 = phi i64 [%72, %$19] ; # Y\n  %79 = phi i64 [%73, %$19] ; # N\n; # (let C (evCnt Exe X) (while (ge0 (dec 'N)) (when (lt0 (call $Get)...\n; # (evCnt Exe X)\n  %80 = call i64 @evCnt(i64 %76, i64 %77)\n; # (while (ge0 (dec 'N)) (when (lt0 (call $Get)) (ret $Nil)))\n  br label %$22\n$22:\n  %81 = phi i64 [%76, %$20], [%101, %$26] ; # Exe\n  %82 = phi i64 [%77, %$20], [%102, %$26] ; # X\n  %83 = phi i64 [%78, %$20], [%103, %$26] ; # Y\n  %84 = phi i64 [%79, %$20], [%104, %$26] ; # N\n  %85 = phi i64 [%80, %$20], [%105, %$26] ; # C\n; # (dec 'N)\n  %86 = sub i64 %84, 1\n; # (ge0 (dec 'N))\n  %87 = icmp sge i64 %86, 0\n  br i1 %87, label %$23, label %$24\n$23:\n  %88 = phi i64 [%81, %$22] ; # Exe\n  %89 = phi i64 [%82, %$22] ; # X\n  %90 = phi i64 [%83, %$22] ; # Y\n  %91 = phi i64 [%86, %$22] ; # N\n  %92 = phi i64 [%85, %$22] ; # C\n; # (when (lt0 (call $Get)) (ret $Nil))\n; # (call $Get)\n  %93 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %94 = call i32 %93()\n; # (lt0 (call $Get))\n  %95 = icmp slt i32 %94, 0\n  br i1 %95, label %$25, label %$26\n$25:\n  %96 = phi i64 [%88, %$23] ; # Exe\n  %97 = phi i64 [%89, %$23] ; # X\n  %98 = phi i64 [%90, %$23] ; # Y\n  %99 = phi i64 [%91, %$23] ; # N\n  %100 = phi i64 [%92, %$23] ; # C\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$26:\n  %101 = phi i64 [%88, %$23] ; # Exe\n  %102 = phi i64 [%89, %$23] ; # X\n  %103 = phi i64 [%90, %$23] ; # Y\n  %104 = phi i64 [%91, %$23] ; # N\n  %105 = phi i64 [%92, %$23] ; # C\n  br label %$22\n$24:\n  %106 = phi i64 [%81, %$22] ; # Exe\n  %107 = phi i64 [%82, %$22] ; # X\n  %108 = phi i64 [%83, %$22] ; # Y\n  %109 = phi i64 [%86, %$22] ; # N\n  %110 = phi i64 [%85, %$22] ; # C\n  br label %$21\n$21:\n  %111 = phi i64 [%70, %$19], [%106, %$24] ; # Exe\n  %112 = phi i64 [%71, %$19], [%107, %$24] ; # X\n  %113 = phi i64 [%72, %$19], [%108, %$24] ; # Y\n  %114 = phi i64 [%73, %$19], [%110, %$24] ; # N\n; # (while (ge0 (dec 'N)) (when (lt0 (call $Get)) (ret $Nil)) (call $...\n  br label %$27\n$27:\n  %115 = phi i64 [%111, %$21], [%132, %$31] ; # Exe\n  %116 = phi i64 [%112, %$21], [%133, %$31] ; # X\n  %117 = phi i64 [%113, %$21], [%134, %$31] ; # Y\n  %118 = phi i64 [%114, %$21], [%135, %$31] ; # N\n; # (dec 'N)\n  %119 = sub i64 %118, 1\n; # (ge0 (dec 'N))\n  %120 = icmp sge i64 %119, 0\n  br i1 %120, label %$28, label %$29\n$28:\n  %121 = phi i64 [%115, %$27] ; # Exe\n  %122 = phi i64 [%116, %$27] ; # X\n  %123 = phi i64 [%117, %$27] ; # Y\n  %124 = phi i64 [%119, %$27] ; # N\n; # (when (lt0 (call $Get)) (ret $Nil))\n; # (call $Get)\n  %125 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %126 = call i32 %125()\n; # (lt0 (call $Get))\n  %127 = icmp slt i32 %126, 0\n  br i1 %127, label %$30, label %$31\n$30:\n  %128 = phi i64 [%121, %$28] ; # Exe\n  %129 = phi i64 [%122, %$28] ; # X\n  %130 = phi i64 [%123, %$28] ; # Y\n  %131 = phi i64 [%124, %$28] ; # N\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$31:\n  %132 = phi i64 [%121, %$28] ; # Exe\n  %133 = phi i64 [%122, %$28] ; # X\n  %134 = phi i64 [%123, %$28] ; # Y\n  %135 = phi i64 [%124, %$28] ; # N\n; # (i8 @)\n  %136 = trunc i32 %126 to i8\n; # (call $Put (i8 @))\n  %137 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %137(i8 %136)\n  br label %$27\n$29:\n  %138 = phi i64 [%115, %$27] ; # Exe\n  %139 = phi i64 [%116, %$27] ; # X\n  %140 = phi i64 [%117, %$27] ; # Y\n  %141 = phi i64 [%119, %$27] ; # N\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$7\n$18:\n  %142 = phi i64 [%65, %$10] ; # Exe\n  %143 = phi i64 [%66, %$10] ; # X\n  %144 = phi i64 [%67, %$10] ; # Y\n; # (pair Y)\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$33, label %$32\n$33:\n  %147 = phi i64 [%142, %$18] ; # Exe\n  %148 = phi i64 [%143, %$18] ; # X\n  %149 = phi i64 [%144, %$18] ; # Y\n; # (argErr Exe Y)\n  call void @argErr(i64 %147, i64 %149)\n  unreachable\n$32:\n  %150 = phi i64 [%142, %$18] ; # Exe\n  %151 = phi i64 [%143, %$18] ; # X\n  %152 = phi i64 [%144, %$18] ; # Y\n; # (let (M (i64* null) N 1 Nm (xName Y) L (link (push Y NIL 0 (any (...\n; # (i64* null)\n  %153 = inttoptr i64 0 to i64*\n; # (xName Y)\n  %154 = call i64 @xName(i64 %152)\n; # (bufSize Nm)\n  %155 = call i64 @bufSize(i64 %154)\n; # (b8 (bufSize Nm))\n  %156 = alloca i8, i64 %155\n; # (bufString Nm (b8 (bufSize Nm)))\n  %157 = call i8* @bufString(i64 %154, i8* %156)\n; # (any (bufString Nm (b8 (bufSize Nm))))\n  %158 = ptrtoint i8* %157 to i64\n; # (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm)))))\n  %159 = alloca i64, i64 4, align 16\n  %160 = ptrtoint i64* %159 to i64\n  %161 = inttoptr i64 %160 to i64*\n  store i64 %152, i64* %161\n  %162 = add i64 %160, 16\n  %163 = inttoptr i64 %162 to i64*\n  store i64 0, i64* %163\n  %164 = add i64 %160, 24\n  %165 = inttoptr i64 %164 to i64*\n  store i64 %158, i64* %165\n; # (link (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm))))))\n  %166 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %167 = load i64, i64* %166\n  %168 = inttoptr i64 %160 to i64*\n  %169 = getelementptr i64, i64* %168, i32 1\n  store i64 %167, i64* %169\n  %170 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %160, i64* %170\n; # (while (pair X) (setq Y (evSym (++ X)) Nm (xName Y) L (link (push...\n  br label %$34\n$34:\n  %171 = phi i64 [%150, %$32], [%181, %$35] ; # Exe\n  %172 = phi i64 [%151, %$32], [%191, %$35] ; # X\n  %173 = phi i64 [%152, %$32], [%193, %$35] ; # Y\n  %174 = phi i64* [%153, %$32], [%184, %$35] ; # M\n  %175 = phi i64 [1, %$32], [%211, %$35] ; # N\n  %176 = phi i64 [%154, %$32], [%194, %$35] ; # Nm\n  %177 = phi i64 [%160, %$32], [%200, %$35] ; # L\n  %178 = phi i64 [%160, %$32], [%188, %$35] ; # P\n; # (pair X)\n  %179 = and i64 %172, 15\n  %180 = icmp eq i64 %179, 0\n  br i1 %180, label %$35, label %$36\n$35:\n  %181 = phi i64 [%171, %$34] ; # Exe\n  %182 = phi i64 [%172, %$34] ; # X\n  %183 = phi i64 [%173, %$34] ; # Y\n  %184 = phi i64* [%174, %$34] ; # M\n  %185 = phi i64 [%175, %$34] ; # N\n  %186 = phi i64 [%176, %$34] ; # Nm\n  %187 = phi i64 [%177, %$34] ; # L\n  %188 = phi i64 [%178, %$34] ; # P\n; # (++ X)\n  %189 = inttoptr i64 %182 to i64*\n  %190 = getelementptr i64, i64* %189, i32 1\n  %191 = load i64, i64* %190\n  %192 = load i64, i64* %189\n; # (evSym (++ X))\n  %193 = call i64 @evSym(i64 %192)\n; # (xName Y)\n  %194 = call i64 @xName(i64 %193)\n; # (bufSize Nm)\n  %195 = call i64 @bufSize(i64 %194)\n; # (b8 (bufSize Nm))\n  %196 = alloca i8, i64 %195\n; # (bufString Nm (b8 (bufSize Nm)))\n  %197 = call i8* @bufString(i64 %194, i8* %196)\n; # (any (bufString Nm (b8 (bufSize Nm))))\n  %198 = ptrtoint i8* %197 to i64\n; # (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm)))))\n  %199 = alloca i64, i64 4, align 16\n  %200 = ptrtoint i64* %199 to i64\n  %201 = inttoptr i64 %200 to i64*\n  store i64 %193, i64* %201\n  %202 = add i64 %200, 16\n  %203 = inttoptr i64 %202 to i64*\n  store i64 0, i64* %203\n  %204 = add i64 %200, 24\n  %205 = inttoptr i64 %204 to i64*\n  store i64 %198, i64* %205\n; # (link (push Y NIL 0 (any (bufString Nm (b8 (bufSize Nm))))))\n  %206 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %207 = load i64, i64* %206\n  %208 = inttoptr i64 %200 to i64*\n  %209 = getelementptr i64, i64* %208, i32 1\n  store i64 %207, i64* %209\n  %210 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %200, i64* %210\n; # (inc 'N)\n  %211 = add i64 %185, 1\n  br label %$34\n$36:\n  %212 = phi i64 [%171, %$34] ; # Exe\n  %213 = phi i64 [%172, %$34] ; # X\n  %214 = phi i64 [%173, %$34] ; # Y\n  %215 = phi i64* [%174, %$34] ; # M\n  %216 = phi i64 [%175, %$34] ; # N\n  %217 = phi i64 [%176, %$34] ; # Nm\n  %218 = phi i64 [%177, %$34] ; # L\n  %219 = phi i64 [%178, %$34] ; # P\n; # (unless (val $Chr) (call $Get))\n; # (val $Chr)\n  %220 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %221 = icmp ne i32 %220, 0\n  br i1 %221, label %$38, label %$37\n$37:\n  %222 = phi i64 [%212, %$36] ; # Exe\n  %223 = phi i64 [%213, %$36] ; # X\n  %224 = phi i64 [%214, %$36] ; # Y\n  %225 = phi i64* [%215, %$36] ; # M\n  %226 = phi i64 [%216, %$36] ; # N\n  %227 = phi i64 [%217, %$36] ; # Nm\n  %228 = phi i64 [%218, %$36] ; # L\n  %229 = phi i64 [%219, %$36] ; # P\n; # (call $Get)\n  %230 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %231 = call i32 %230()\n  br label %$38\n$38:\n  %232 = phi i64 [%212, %$36], [%222, %$37] ; # Exe\n  %233 = phi i64 [%213, %$36], [%223, %$37] ; # X\n  %234 = phi i64 [%214, %$36], [%224, %$37] ; # Y\n  %235 = phi i64* [%215, %$36], [%225, %$37] ; # M\n  %236 = phi i64 [%216, %$36], [%226, %$37] ; # N\n  %237 = phi i64 [%217, %$36], [%227, %$37] ; # Nm\n  %238 = phi i64 [%218, %$36], [%228, %$37] ; # L\n  %239 = phi i64 [%219, %$36], [%229, %$37] ; # P\n; # (while (ge0 (val $Chr)) (let (B (i8 @) Q (i64* L) I N OutM M OutC...\n  br label %$39\n$39:\n  %240 = phi i64 [%232, %$38], [%1048, %$79] ; # Exe\n  %241 = phi i64 [%233, %$38], [%1049, %$79] ; # X\n  %242 = phi i64 [%234, %$38], [%1050, %$79] ; # Y\n  %243 = phi i64* [%235, %$38], [%1051, %$79] ; # M\n  %244 = phi i64 [%236, %$38], [%1052, %$79] ; # N\n  %245 = phi i64 [%237, %$38], [%1053, %$79] ; # Nm\n  %246 = phi i64 [%238, %$38], [%1054, %$79] ; # L\n  %247 = phi i64 [%239, %$38], [%1055, %$79] ; # P\n; # (val $Chr)\n  %248 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (ge0 (val $Chr))\n  %249 = icmp sge i32 %248, 0\n  br i1 %249, label %$40, label %$41\n$40:\n  %250 = phi i64 [%240, %$39] ; # Exe\n  %251 = phi i64 [%241, %$39] ; # X\n  %252 = phi i64 [%242, %$39] ; # Y\n  %253 = phi i64* [%243, %$39] ; # M\n  %254 = phi i64 [%244, %$39] ; # N\n  %255 = phi i64 [%245, %$39] ; # Nm\n  %256 = phi i64 [%246, %$39] ; # L\n  %257 = phi i64 [%247, %$39] ; # P\n; # (let (B (i8 @) Q (i64* L) I N OutM M OutC (if M (val 3 M) 0)) (lo...\n; # (i8 @)\n  %258 = trunc i32 %248 to i8\n; # (i64* L)\n  %259 = inttoptr i64 %256 to i64*\n; # (if M (val 3 M) 0)\n  %260 = icmp ne i64* %253, null\n  br i1 %260, label %$42, label %$43\n$42:\n  %261 = phi i64 [%250, %$40] ; # Exe\n  %262 = phi i64 [%251, %$40] ; # X\n  %263 = phi i64 [%252, %$40] ; # Y\n  %264 = phi i64* [%253, %$40] ; # M\n  %265 = phi i64 [%254, %$40] ; # N\n  %266 = phi i64 [%255, %$40] ; # Nm\n  %267 = phi i64 [%256, %$40] ; # L\n  %268 = phi i64 [%257, %$40] ; # P\n  %269 = phi i8 [%258, %$40] ; # B\n  %270 = phi i64* [%259, %$40] ; # Q\n  %271 = phi i64 [%254, %$40] ; # I\n  %272 = phi i64* [%253, %$40] ; # OutM\n; # (val 3 M)\n  %273 = getelementptr i64, i64* %264, i32 2\n  %274 = load i64, i64* %273\n  br label %$44\n$43:\n  %275 = phi i64 [%250, %$40] ; # Exe\n  %276 = phi i64 [%251, %$40] ; # X\n  %277 = phi i64 [%252, %$40] ; # Y\n  %278 = phi i64* [%253, %$40] ; # M\n  %279 = phi i64 [%254, %$40] ; # N\n  %280 = phi i64 [%255, %$40] ; # Nm\n  %281 = phi i64 [%256, %$40] ; # L\n  %282 = phi i64 [%257, %$40] ; # P\n  %283 = phi i8 [%258, %$40] ; # B\n  %284 = phi i64* [%259, %$40] ; # Q\n  %285 = phi i64 [%254, %$40] ; # I\n  %286 = phi i64* [%253, %$40] ; # OutM\n  br label %$44\n$44:\n  %287 = phi i64 [%261, %$42], [%275, %$43] ; # Exe\n  %288 = phi i64 [%262, %$42], [%276, %$43] ; # X\n  %289 = phi i64 [%263, %$42], [%277, %$43] ; # Y\n  %290 = phi i64* [%264, %$42], [%278, %$43] ; # M\n  %291 = phi i64 [%265, %$42], [%279, %$43] ; # N\n  %292 = phi i64 [%266, %$42], [%280, %$43] ; # Nm\n  %293 = phi i64 [%267, %$42], [%281, %$43] ; # L\n  %294 = phi i64 [%268, %$42], [%282, %$43] ; # P\n  %295 = phi i8 [%269, %$42], [%283, %$43] ; # B\n  %296 = phi i64* [%270, %$42], [%284, %$43] ; # Q\n  %297 = phi i64 [%271, %$42], [%285, %$43] ; # I\n  %298 = phi i64* [%272, %$42], [%286, %$43] ; # OutM\n  %299 = phi i64 [%274, %$42], [0, %$43] ; # ->\n; # (loop (loop (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (v...\n  br label %$45\n$45:\n  %300 = phi i64 [%287, %$44], [%829, %$77] ; # Exe\n  %301 = phi i64 [%288, %$44], [%830, %$77] ; # X\n  %302 = phi i64 [%289, %$44], [%831, %$77] ; # Y\n  %303 = phi i64* [%290, %$44], [%832, %$77] ; # M\n  %304 = phi i64 [%291, %$44], [%833, %$77] ; # N\n  %305 = phi i64 [%292, %$44], [%834, %$77] ; # Nm\n  %306 = phi i64 [%293, %$44], [%835, %$77] ; # L\n  %307 = phi i64 [%294, %$44], [%836, %$77] ; # P\n  %308 = phi i8 [%295, %$44], [%837, %$77] ; # B\n  %309 = phi i64* [%296, %$44], [%844, %$77] ; # Q\n  %310 = phi i64 [%297, %$44], [%839, %$77] ; # I\n  %311 = phi i64* [%298, %$44], [%840, %$77] ; # OutM\n  %312 = phi i64 [%299, %$44], [%841, %$77] ; # OutC\n; # (loop (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (val S))...\n  br label %$46\n$46:\n  %313 = phi i64 [%300, %$45], [%801, %$67] ; # Exe\n  %314 = phi i64 [%301, %$45], [%802, %$67] ; # X\n  %315 = phi i64 [%302, %$45], [%803, %$67] ; # Y\n  %316 = phi i64* [%303, %$45], [%804, %$67] ; # M\n  %317 = phi i64 [%304, %$45], [%805, %$67] ; # N\n  %318 = phi i64 [%305, %$45], [%806, %$67] ; # Nm\n  %319 = phi i64 [%306, %$45], [%807, %$67] ; # L\n  %320 = phi i64 [%307, %$45], [%808, %$67] ; # P\n  %321 = phi i8 [%308, %$45], [%809, %$67] ; # B\n  %322 = phi i64* [%309, %$45], [%810, %$67] ; # Q\n  %323 = phi i64 [%310, %$45], [%811, %$67] ; # I\n  %324 = phi i64* [%311, %$45], [%812, %$67] ; # OutM\n  %325 = phi i64 [%312, %$45], [%813, %$67] ; # OutC\n; # (let S (ofs (i8* (val 4 Q)) (val 3 Q)) (when (== B (val S)) (set ...\n; # (val 4 Q)\n  %326 = getelementptr i64, i64* %322, i32 3\n  %327 = load i64, i64* %326\n; # (i8* (val 4 Q))\n  %328 = inttoptr i64 %327 to i8*\n; # (val 3 Q)\n  %329 = getelementptr i64, i64* %322, i32 2\n  %330 = load i64, i64* %329\n; # (ofs (i8* (val 4 Q)) (val 3 Q))\n  %331 = getelementptr i8, i8* %328, i64 %330\n; # (when (== B (val S)) (set 3 Q (inc (val 3 Q))) (? (val 2 S) (unle...\n; # (val S)\n  %332 = load i8, i8* %331\n; # (== B (val S))\n  %333 = icmp eq i8 %321, %332\n  br i1 %333, label %$47, label %$48\n$47:\n  %334 = phi i64 [%313, %$46] ; # Exe\n  %335 = phi i64 [%314, %$46] ; # X\n  %336 = phi i64 [%315, %$46] ; # Y\n  %337 = phi i64* [%316, %$46] ; # M\n  %338 = phi i64 [%317, %$46] ; # N\n  %339 = phi i64 [%318, %$46] ; # Nm\n  %340 = phi i64 [%319, %$46] ; # L\n  %341 = phi i64 [%320, %$46] ; # P\n  %342 = phi i8 [%321, %$46] ; # B\n  %343 = phi i64* [%322, %$46] ; # Q\n  %344 = phi i64 [%323, %$46] ; # I\n  %345 = phi i64* [%324, %$46] ; # OutM\n  %346 = phi i64 [%325, %$46] ; # OutC\n  %347 = phi i8* [%331, %$46] ; # S\n; # (set 3 Q (inc (val 3 Q)))\n; # (val 3 Q)\n  %348 = getelementptr i64, i64* %343, i32 2\n  %349 = load i64, i64* %348\n; # (inc (val 3 Q))\n  %350 = add i64 %349, 1\n  %351 = getelementptr i64, i64* %343, i32 2\n  store i64 %350, i64* %351\n; # (? (val 2 S) (unless (and M (>= (val 3 M) (val 3 Q))) (setq M Q))...\n; # (val 2 S)\n  %352 = getelementptr i8, i8* %347, i32 1\n  %353 = load i8, i8* %352\n  %354 = icmp ne i8 %353, 0\n  br i1 %354, label %$51, label %$49\n$51:\n  %355 = phi i64 [%334, %$47] ; # Exe\n  %356 = phi i64 [%335, %$47] ; # X\n  %357 = phi i64 [%336, %$47] ; # Y\n  %358 = phi i64* [%337, %$47] ; # M\n  %359 = phi i64 [%338, %$47] ; # N\n  %360 = phi i64 [%339, %$47] ; # Nm\n  %361 = phi i64 [%340, %$47] ; # L\n  %362 = phi i64 [%341, %$47] ; # P\n  %363 = phi i8 [%342, %$47] ; # B\n  %364 = phi i64* [%343, %$47] ; # Q\n  %365 = phi i64 [%344, %$47] ; # I\n  %366 = phi i64* [%345, %$47] ; # OutM\n  %367 = phi i64 [%346, %$47] ; # OutC\n  %368 = phi i8* [%347, %$47] ; # S\n; # (unless (and M (>= (val 3 M) (val 3 Q))) (setq M Q))\n; # (and M (>= (val 3 M) (val 3 Q)))\n  %369 = icmp ne i64* %358, null\n  br i1 %369, label %$53, label %$52\n$53:\n  %370 = phi i64 [%355, %$51] ; # Exe\n  %371 = phi i64 [%356, %$51] ; # X\n  %372 = phi i64 [%357, %$51] ; # Y\n  %373 = phi i64* [%358, %$51] ; # M\n  %374 = phi i64 [%359, %$51] ; # N\n  %375 = phi i64 [%360, %$51] ; # Nm\n  %376 = phi i64 [%361, %$51] ; # L\n  %377 = phi i64 [%362, %$51] ; # P\n  %378 = phi i8 [%363, %$51] ; # B\n  %379 = phi i64* [%364, %$51] ; # Q\n  %380 = phi i64 [%365, %$51] ; # I\n  %381 = phi i64* [%366, %$51] ; # OutM\n  %382 = phi i64 [%367, %$51] ; # OutC\n  %383 = phi i8* [%368, %$51] ; # S\n; # (val 3 M)\n  %384 = getelementptr i64, i64* %373, i32 2\n  %385 = load i64, i64* %384\n; # (val 3 Q)\n  %386 = getelementptr i64, i64* %379, i32 2\n  %387 = load i64, i64* %386\n; # (>= (val 3 M) (val 3 Q))\n  %388 = icmp uge i64 %385, %387\n  br label %$52\n$52:\n  %389 = phi i64 [%355, %$51], [%370, %$53] ; # Exe\n  %390 = phi i64 [%356, %$51], [%371, %$53] ; # X\n  %391 = phi i64 [%357, %$51], [%372, %$53] ; # Y\n  %392 = phi i64* [%358, %$51], [%373, %$53] ; # M\n  %393 = phi i64 [%359, %$51], [%374, %$53] ; # N\n  %394 = phi i64 [%360, %$51], [%375, %$53] ; # Nm\n  %395 = phi i64 [%361, %$51], [%376, %$53] ; # L\n  %396 = phi i64 [%362, %$51], [%377, %$53] ; # P\n  %397 = phi i8 [%363, %$51], [%378, %$53] ; # B\n  %398 = phi i64* [%364, %$51], [%379, %$53] ; # Q\n  %399 = phi i64 [%365, %$51], [%380, %$53] ; # I\n  %400 = phi i64* [%366, %$51], [%381, %$53] ; # OutM\n  %401 = phi i64 [%367, %$51], [%382, %$53] ; # OutC\n  %402 = phi i8* [%368, %$51], [%383, %$53] ; # S\n  %403 = phi i1 [0, %$51], [%388, %$53] ; # ->\n  br i1 %403, label %$55, label %$54\n$54:\n  %404 = phi i64 [%389, %$52] ; # Exe\n  %405 = phi i64 [%390, %$52] ; # X\n  %406 = phi i64 [%391, %$52] ; # Y\n  %407 = phi i64* [%392, %$52] ; # M\n  %408 = phi i64 [%393, %$52] ; # N\n  %409 = phi i64 [%394, %$52] ; # Nm\n  %410 = phi i64 [%395, %$52] ; # L\n  %411 = phi i64 [%396, %$52] ; # P\n  %412 = phi i8 [%397, %$52] ; # B\n  %413 = phi i64* [%398, %$52] ; # Q\n  %414 = phi i64 [%399, %$52] ; # I\n  %415 = phi i64* [%400, %$52] ; # OutM\n  %416 = phi i64 [%401, %$52] ; # OutC\n  %417 = phi i8* [%402, %$52] ; # S\n  br label %$55\n$55:\n  %418 = phi i64 [%389, %$52], [%404, %$54] ; # Exe\n  %419 = phi i64 [%390, %$52], [%405, %$54] ; # X\n  %420 = phi i64 [%391, %$52], [%406, %$54] ; # Y\n  %421 = phi i64* [%392, %$52], [%413, %$54] ; # M\n  %422 = phi i64 [%393, %$52], [%408, %$54] ; # N\n  %423 = phi i64 [%394, %$52], [%409, %$54] ; # Nm\n  %424 = phi i64 [%395, %$52], [%410, %$54] ; # L\n  %425 = phi i64 [%396, %$52], [%411, %$54] ; # P\n  %426 = phi i8 [%397, %$52], [%412, %$54] ; # B\n  %427 = phi i64* [%398, %$52], [%413, %$54] ; # Q\n  %428 = phi i64 [%399, %$52], [%414, %$54] ; # I\n  %429 = phi i64* [%400, %$52], [%415, %$54] ; # OutM\n  %430 = phi i64 [%401, %$52], [%416, %$54] ; # OutC\n  %431 = phi i8* [%402, %$52], [%417, %$54] ; # S\n  br label %$50\n$49:\n  %432 = phi i64 [%334, %$47] ; # Exe\n  %433 = phi i64 [%335, %$47] ; # X\n  %434 = phi i64 [%336, %$47] ; # Y\n  %435 = phi i64* [%337, %$47] ; # M\n  %436 = phi i64 [%338, %$47] ; # N\n  %437 = phi i64 [%339, %$47] ; # Nm\n  %438 = phi i64 [%340, %$47] ; # L\n  %439 = phi i64 [%341, %$47] ; # P\n  %440 = phi i8 [%342, %$47] ; # B\n  %441 = phi i64* [%343, %$47] ; # Q\n  %442 = phi i64 [%344, %$47] ; # I\n  %443 = phi i64* [%345, %$47] ; # OutM\n  %444 = phi i64 [%346, %$47] ; # OutC\n  %445 = phi i8* [%347, %$47] ; # S\n; # (when OutM (setq S (i8* (val 4 OutM))) (dec 'OutC (val 3 Q)) (unt...\n  %446 = icmp ne i64* %443, null\n  br i1 %446, label %$56, label %$57\n$56:\n  %447 = phi i64 [%432, %$49] ; # Exe\n  %448 = phi i64 [%433, %$49] ; # X\n  %449 = phi i64 [%434, %$49] ; # Y\n  %450 = phi i64* [%435, %$49] ; # M\n  %451 = phi i64 [%436, %$49] ; # N\n  %452 = phi i64 [%437, %$49] ; # Nm\n  %453 = phi i64 [%438, %$49] ; # L\n  %454 = phi i64 [%439, %$49] ; # P\n  %455 = phi i8 [%440, %$49] ; # B\n  %456 = phi i64* [%441, %$49] ; # Q\n  %457 = phi i64 [%442, %$49] ; # I\n  %458 = phi i64* [%443, %$49] ; # OutM\n  %459 = phi i64 [%444, %$49] ; # OutC\n  %460 = phi i8* [%445, %$49] ; # S\n; # (val 4 OutM)\n  %461 = getelementptr i64, i64* %458, i32 3\n  %462 = load i64, i64* %461\n; # (i8* (val 4 OutM))\n  %463 = inttoptr i64 %462 to i8*\n; # (val 3 Q)\n  %464 = getelementptr i64, i64* %456, i32 2\n  %465 = load i64, i64* %464\n; # (dec 'OutC (val 3 Q))\n  %466 = sub i64 %459, %465\n; # (until (lt0 OutC) (call $Put (val S)) (inc 'S) (dec 'OutC))\n  br label %$58\n$58:\n  %467 = phi i64 [%447, %$56], [%482, %$59] ; # Exe\n  %468 = phi i64 [%448, %$56], [%483, %$59] ; # X\n  %469 = phi i64 [%449, %$56], [%484, %$59] ; # Y\n  %470 = phi i64* [%450, %$56], [%485, %$59] ; # M\n  %471 = phi i64 [%451, %$56], [%486, %$59] ; # N\n  %472 = phi i64 [%452, %$56], [%487, %$59] ; # Nm\n  %473 = phi i64 [%453, %$56], [%488, %$59] ; # L\n  %474 = phi i64 [%454, %$56], [%489, %$59] ; # P\n  %475 = phi i8 [%455, %$56], [%490, %$59] ; # B\n  %476 = phi i64* [%456, %$56], [%491, %$59] ; # Q\n  %477 = phi i64 [%457, %$56], [%492, %$59] ; # I\n  %478 = phi i64* [%458, %$56], [%493, %$59] ; # OutM\n  %479 = phi i64 [%466, %$56], [%499, %$59] ; # OutC\n  %480 = phi i8* [%463, %$56], [%498, %$59] ; # S\n; # (lt0 OutC)\n  %481 = icmp slt i64 %479, 0\n  br i1 %481, label %$60, label %$59\n$59:\n  %482 = phi i64 [%467, %$58] ; # Exe\n  %483 = phi i64 [%468, %$58] ; # X\n  %484 = phi i64 [%469, %$58] ; # Y\n  %485 = phi i64* [%470, %$58] ; # M\n  %486 = phi i64 [%471, %$58] ; # N\n  %487 = phi i64 [%472, %$58] ; # Nm\n  %488 = phi i64 [%473, %$58] ; # L\n  %489 = phi i64 [%474, %$58] ; # P\n  %490 = phi i8 [%475, %$58] ; # B\n  %491 = phi i64* [%476, %$58] ; # Q\n  %492 = phi i64 [%477, %$58] ; # I\n  %493 = phi i64* [%478, %$58] ; # OutM\n  %494 = phi i64 [%479, %$58] ; # OutC\n  %495 = phi i8* [%480, %$58] ; # S\n; # (val S)\n  %496 = load i8, i8* %495\n; # (call $Put (val S))\n  %497 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %497(i8 %496)\n; # (inc 'S)\n  %498 = getelementptr i8, i8* %495, i32 1\n; # (dec 'OutC)\n  %499 = sub i64 %494, 1\n  br label %$58\n$60:\n  %500 = phi i64 [%467, %$58] ; # Exe\n  %501 = phi i64 [%468, %$58] ; # X\n  %502 = phi i64 [%469, %$58] ; # Y\n  %503 = phi i64* [%470, %$58] ; # M\n  %504 = phi i64 [%471, %$58] ; # N\n  %505 = phi i64 [%472, %$58] ; # Nm\n  %506 = phi i64 [%473, %$58] ; # L\n  %507 = phi i64 [%474, %$58] ; # P\n  %508 = phi i8 [%475, %$58] ; # B\n  %509 = phi i64* [%476, %$58] ; # Q\n  %510 = phi i64 [%477, %$58] ; # I\n  %511 = phi i64* [%478, %$58] ; # OutM\n  %512 = phi i64 [%479, %$58] ; # OutC\n  %513 = phi i8* [%480, %$58] ; # S\n  br label %$57\n$57:\n  %514 = phi i64 [%432, %$49], [%500, %$60] ; # Exe\n  %515 = phi i64 [%433, %$49], [%501, %$60] ; # X\n  %516 = phi i64 [%434, %$49], [%502, %$60] ; # Y\n  %517 = phi i64* [%435, %$49], [%503, %$60] ; # M\n  %518 = phi i64 [%436, %$49], [%504, %$60] ; # N\n  %519 = phi i64 [%437, %$49], [%505, %$60] ; # Nm\n  %520 = phi i64 [%438, %$49], [%506, %$60] ; # L\n  %521 = phi i64 [%439, %$49], [%507, %$60] ; # P\n  %522 = phi i8 [%440, %$49], [%508, %$60] ; # B\n  %523 = phi i64* [%441, %$49], [%509, %$60] ; # Q\n  %524 = phi i64 [%442, %$49], [%510, %$60] ; # I\n  %525 = phi i64* [%443, %$49], [%511, %$60] ; # OutM\n  %526 = phi i64 [%444, %$49], [%512, %$60] ; # OutC\n  %527 = phi i8* [%445, %$49], [%513, %$60] ; # S\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (drop P)\n  %528 = inttoptr i64 %521 to i64*\n  %529 = getelementptr i64, i64* %528, i32 1\n  %530 = load i64, i64* %529\n  %531 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %530, i64* %531\n; # (val Q)\n  %532 = load i64, i64* %523\n; # (ret (val Q))\n  ret i64 %532\n$48:\n  %533 = phi i64 [%313, %$46] ; # Exe\n  %534 = phi i64 [%314, %$46] ; # X\n  %535 = phi i64 [%315, %$46] ; # Y\n  %536 = phi i64* [%316, %$46] ; # M\n  %537 = phi i64 [%317, %$46] ; # N\n  %538 = phi i64 [%318, %$46] ; # Nm\n  %539 = phi i64 [%319, %$46] ; # L\n  %540 = phi i64 [%320, %$46] ; # P\n  %541 = phi i8 [%321, %$46] ; # B\n  %542 = phi i64* [%322, %$46] ; # Q\n  %543 = phi i64 [%323, %$46] ; # I\n  %544 = phi i64* [%324, %$46] ; # OutM\n  %545 = phi i64 [%325, %$46] ; # OutC\n  %546 = phi i8* [%331, %$46] ; # S\n; # (? (=0 (val 3 Q)))\n; # (val 3 Q)\n  %547 = getelementptr i64, i64* %542, i32 2\n  %548 = load i64, i64* %547\n; # (=0 (val 3 Q))\n  %549 = icmp eq i64 %548, 0\n  br i1 %549, label %$50, label %$61\n$61:\n  %550 = phi i64 [%533, %$48] ; # Exe\n  %551 = phi i64 [%534, %$48] ; # X\n  %552 = phi i64 [%535, %$48] ; # Y\n  %553 = phi i64* [%536, %$48] ; # M\n  %554 = phi i64 [%537, %$48] ; # N\n  %555 = phi i64 [%538, %$48] ; # Nm\n  %556 = phi i64 [%539, %$48] ; # L\n  %557 = phi i64 [%540, %$48] ; # P\n  %558 = phi i8 [%541, %$48] ; # B\n  %559 = phi i64* [%542, %$48] ; # Q\n  %560 = phi i64 [%543, %$48] ; # I\n  %561 = phi i64* [%544, %$48] ; # OutM\n  %562 = phi i64 [%545, %$48] ; # OutC\n; # (let S (ofs (i8* (val 4 Q)) 1) (while (set 3 Q (dec (val 3 Q))) (...\n; # (val 4 Q)\n  %563 = getelementptr i64, i64* %559, i32 3\n  %564 = load i64, i64* %563\n; # (i8* (val 4 Q))\n  %565 = inttoptr i64 %564 to i8*\n; # (ofs (i8* (val 4 Q)) 1)\n  %566 = getelementptr i8, i8* %565, i32 1\n; # (while (set 3 Q (dec (val 3 Q))) (? (=0 (memcmp (i8* (val 4 Q)) S...\n  br label %$62\n$62:\n  %567 = phi i64 [%550, %$61], [%605, %$65] ; # Exe\n  %568 = phi i64 [%551, %$61], [%606, %$65] ; # X\n  %569 = phi i64 [%552, %$61], [%607, %$65] ; # Y\n  %570 = phi i64* [%553, %$61], [%608, %$65] ; # M\n  %571 = phi i64 [%554, %$61], [%609, %$65] ; # N\n  %572 = phi i64 [%555, %$61], [%610, %$65] ; # Nm\n  %573 = phi i64 [%556, %$61], [%611, %$65] ; # L\n  %574 = phi i64 [%557, %$61], [%612, %$65] ; # P\n  %575 = phi i8 [%558, %$61], [%613, %$65] ; # B\n  %576 = phi i64* [%559, %$61], [%614, %$65] ; # Q\n  %577 = phi i64 [%560, %$61], [%615, %$65] ; # I\n  %578 = phi i64* [%561, %$61], [%616, %$65] ; # OutM\n  %579 = phi i64 [%562, %$61], [%617, %$65] ; # OutC\n  %580 = phi i8* [%566, %$61], [%619, %$65] ; # S\n; # (set 3 Q (dec (val 3 Q)))\n; # (val 3 Q)\n  %581 = getelementptr i64, i64* %576, i32 2\n  %582 = load i64, i64* %581\n; # (dec (val 3 Q))\n  %583 = sub i64 %582, 1\n  %584 = getelementptr i64, i64* %576, i32 2\n  store i64 %583, i64* %584\n  %585 = icmp ne i64 %583, 0\n  br i1 %585, label %$63, label %$64\n$63:\n  %586 = phi i64 [%567, %$62] ; # Exe\n  %587 = phi i64 [%568, %$62] ; # X\n  %588 = phi i64 [%569, %$62] ; # Y\n  %589 = phi i64* [%570, %$62] ; # M\n  %590 = phi i64 [%571, %$62] ; # N\n  %591 = phi i64 [%572, %$62] ; # Nm\n  %592 = phi i64 [%573, %$62] ; # L\n  %593 = phi i64 [%574, %$62] ; # P\n  %594 = phi i8 [%575, %$62] ; # B\n  %595 = phi i64* [%576, %$62] ; # Q\n  %596 = phi i64 [%577, %$62] ; # I\n  %597 = phi i64* [%578, %$62] ; # OutM\n  %598 = phi i64 [%579, %$62] ; # OutC\n  %599 = phi i8* [%580, %$62] ; # S\n; # (? (=0 (memcmp (i8* (val 4 Q)) S @)))\n; # (val 4 Q)\n  %600 = getelementptr i64, i64* %595, i32 3\n  %601 = load i64, i64* %600\n; # (i8* (val 4 Q))\n  %602 = inttoptr i64 %601 to i8*\n; # (memcmp (i8* (val 4 Q)) S @)\n  %603 = call i32 @memcmp(i8* %602, i8* %599, i64 %583)\n; # (=0 (memcmp (i8* (val 4 Q)) S @))\n  %604 = icmp eq i32 %603, 0\n  br i1 %604, label %$64, label %$65\n$65:\n  %605 = phi i64 [%586, %$63] ; # Exe\n  %606 = phi i64 [%587, %$63] ; # X\n  %607 = phi i64 [%588, %$63] ; # Y\n  %608 = phi i64* [%589, %$63] ; # M\n  %609 = phi i64 [%590, %$63] ; # N\n  %610 = phi i64 [%591, %$63] ; # Nm\n  %611 = phi i64 [%592, %$63] ; # L\n  %612 = phi i64 [%593, %$63] ; # P\n  %613 = phi i8 [%594, %$63] ; # B\n  %614 = phi i64* [%595, %$63] ; # Q\n  %615 = phi i64 [%596, %$63] ; # I\n  %616 = phi i64* [%597, %$63] ; # OutM\n  %617 = phi i64 [%598, %$63] ; # OutC\n  %618 = phi i8* [%599, %$63] ; # S\n; # (inc 'S)\n  %619 = getelementptr i8, i8* %618, i32 1\n  br label %$62\n$64:\n  %620 = phi i64 [%567, %$62], [%586, %$63] ; # Exe\n  %621 = phi i64 [%568, %$62], [%587, %$63] ; # X\n  %622 = phi i64 [%569, %$62], [%588, %$63] ; # Y\n  %623 = phi i64* [%570, %$62], [%589, %$63] ; # M\n  %624 = phi i64 [%571, %$62], [%590, %$63] ; # N\n  %625 = phi i64 [%572, %$62], [%591, %$63] ; # Nm\n  %626 = phi i64 [%573, %$62], [%592, %$63] ; # L\n  %627 = phi i64 [%574, %$62], [%593, %$63] ; # P\n  %628 = phi i8 [%575, %$62], [%594, %$63] ; # B\n  %629 = phi i64* [%576, %$62], [%595, %$63] ; # Q\n  %630 = phi i64 [%577, %$62], [%596, %$63] ; # I\n  %631 = phi i64* [%578, %$62], [%597, %$63] ; # OutM\n  %632 = phi i64 [%579, %$62], [%598, %$63] ; # OutC\n  %633 = phi i8* [%580, %$62], [%599, %$63] ; # S\n; # (when (== Q M) (setq M (i64* null)) (let (Z (i64* L) J N) (loop (...\n; # (== Q M)\n  %634 = icmp eq i64* %629, %623\n  br i1 %634, label %$66, label %$67\n$66:\n  %635 = phi i64 [%620, %$64] ; # Exe\n  %636 = phi i64 [%621, %$64] ; # X\n  %637 = phi i64 [%622, %$64] ; # Y\n  %638 = phi i64* [%623, %$64] ; # M\n  %639 = phi i64 [%624, %$64] ; # N\n  %640 = phi i64 [%625, %$64] ; # Nm\n  %641 = phi i64 [%626, %$64] ; # L\n  %642 = phi i64 [%627, %$64] ; # P\n  %643 = phi i8 [%628, %$64] ; # B\n  %644 = phi i64* [%629, %$64] ; # Q\n  %645 = phi i64 [%630, %$64] ; # I\n  %646 = phi i64* [%631, %$64] ; # OutM\n  %647 = phi i64 [%632, %$64] ; # OutC\n; # (i64* null)\n  %648 = inttoptr i64 0 to i64*\n; # (let (Z (i64* L) J N) (loop (when (val 3 Z) (unless (and M (>= (v...\n; # (i64* L)\n  %649 = inttoptr i64 %641 to i64*\n; # (loop (when (val 3 Z) (unless (and M (>= (val 3 M) (val 3 Z))) (s...\n  br label %$68\n$68:\n  %650 = phi i64 [%635, %$66], [%767, %$75] ; # Exe\n  %651 = phi i64 [%636, %$66], [%768, %$75] ; # X\n  %652 = phi i64 [%637, %$66], [%769, %$75] ; # Y\n  %653 = phi i64* [%648, %$66], [%770, %$75] ; # M\n  %654 = phi i64 [%639, %$66], [%771, %$75] ; # N\n  %655 = phi i64 [%640, %$66], [%772, %$75] ; # Nm\n  %656 = phi i64 [%641, %$66], [%773, %$75] ; # L\n  %657 = phi i64 [%642, %$66], [%774, %$75] ; # P\n  %658 = phi i8 [%643, %$66], [%775, %$75] ; # B\n  %659 = phi i64* [%644, %$66], [%776, %$75] ; # Q\n  %660 = phi i64 [%645, %$66], [%777, %$75] ; # I\n  %661 = phi i64* [%646, %$66], [%778, %$75] ; # OutM\n  %662 = phi i64 [%647, %$66], [%779, %$75] ; # OutC\n  %663 = phi i64* [%649, %$66], [%784, %$75] ; # Z\n  %664 = phi i64 [%639, %$66], [%781, %$75] ; # J\n; # (when (val 3 Z) (unless (and M (>= (val 3 M) (val 3 Z))) (setq M ...\n; # (val 3 Z)\n  %665 = getelementptr i64, i64* %663, i32 2\n  %666 = load i64, i64* %665\n  %667 = icmp ne i64 %666, 0\n  br i1 %667, label %$69, label %$70\n$69:\n  %668 = phi i64 [%650, %$68] ; # Exe\n  %669 = phi i64 [%651, %$68] ; # X\n  %670 = phi i64 [%652, %$68] ; # Y\n  %671 = phi i64* [%653, %$68] ; # M\n  %672 = phi i64 [%654, %$68] ; # N\n  %673 = phi i64 [%655, %$68] ; # Nm\n  %674 = phi i64 [%656, %$68] ; # L\n  %675 = phi i64 [%657, %$68] ; # P\n  %676 = phi i8 [%658, %$68] ; # B\n  %677 = phi i64* [%659, %$68] ; # Q\n  %678 = phi i64 [%660, %$68] ; # I\n  %679 = phi i64* [%661, %$68] ; # OutM\n  %680 = phi i64 [%662, %$68] ; # OutC\n  %681 = phi i64* [%663, %$68] ; # Z\n  %682 = phi i64 [%664, %$68] ; # J\n; # (unless (and M (>= (val 3 M) (val 3 Z))) (setq M Z))\n; # (and M (>= (val 3 M) (val 3 Z)))\n  %683 = icmp ne i64* %671, null\n  br i1 %683, label %$72, label %$71\n$72:\n  %684 = phi i64 [%668, %$69] ; # Exe\n  %685 = phi i64 [%669, %$69] ; # X\n  %686 = phi i64 [%670, %$69] ; # Y\n  %687 = phi i64* [%671, %$69] ; # M\n  %688 = phi i64 [%672, %$69] ; # N\n  %689 = phi i64 [%673, %$69] ; # Nm\n  %690 = phi i64 [%674, %$69] ; # L\n  %691 = phi i64 [%675, %$69] ; # P\n  %692 = phi i8 [%676, %$69] ; # B\n  %693 = phi i64* [%677, %$69] ; # Q\n  %694 = phi i64 [%678, %$69] ; # I\n  %695 = phi i64* [%679, %$69] ; # OutM\n  %696 = phi i64 [%680, %$69] ; # OutC\n  %697 = phi i64* [%681, %$69] ; # Z\n  %698 = phi i64 [%682, %$69] ; # J\n; # (val 3 M)\n  %699 = getelementptr i64, i64* %687, i32 2\n  %700 = load i64, i64* %699\n; # (val 3 Z)\n  %701 = getelementptr i64, i64* %697, i32 2\n  %702 = load i64, i64* %701\n; # (>= (val 3 M) (val 3 Z))\n  %703 = icmp uge i64 %700, %702\n  br label %$71\n$71:\n  %704 = phi i64 [%668, %$69], [%684, %$72] ; # Exe\n  %705 = phi i64 [%669, %$69], [%685, %$72] ; # X\n  %706 = phi i64 [%670, %$69], [%686, %$72] ; # Y\n  %707 = phi i64* [%671, %$69], [%687, %$72] ; # M\n  %708 = phi i64 [%672, %$69], [%688, %$72] ; # N\n  %709 = phi i64 [%673, %$69], [%689, %$72] ; # Nm\n  %710 = phi i64 [%674, %$69], [%690, %$72] ; # L\n  %711 = phi i64 [%675, %$69], [%691, %$72] ; # P\n  %712 = phi i8 [%676, %$69], [%692, %$72] ; # B\n  %713 = phi i64* [%677, %$69], [%693, %$72] ; # Q\n  %714 = phi i64 [%678, %$69], [%694, %$72] ; # I\n  %715 = phi i64* [%679, %$69], [%695, %$72] ; # OutM\n  %716 = phi i64 [%680, %$69], [%696, %$72] ; # OutC\n  %717 = phi i64* [%681, %$69], [%697, %$72] ; # Z\n  %718 = phi i64 [%682, %$69], [%698, %$72] ; # J\n  %719 = phi i1 [0, %$69], [%703, %$72] ; # ->\n  br i1 %719, label %$74, label %$73\n$73:\n  %720 = phi i64 [%704, %$71] ; # Exe\n  %721 = phi i64 [%705, %$71] ; # X\n  %722 = phi i64 [%706, %$71] ; # Y\n  %723 = phi i64* [%707, %$71] ; # M\n  %724 = phi i64 [%708, %$71] ; # N\n  %725 = phi i64 [%709, %$71] ; # Nm\n  %726 = phi i64 [%710, %$71] ; # L\n  %727 = phi i64 [%711, %$71] ; # P\n  %728 = phi i8 [%712, %$71] ; # B\n  %729 = phi i64* [%713, %$71] ; # Q\n  %730 = phi i64 [%714, %$71] ; # I\n  %731 = phi i64* [%715, %$71] ; # OutM\n  %732 = phi i64 [%716, %$71] ; # OutC\n  %733 = phi i64* [%717, %$71] ; # Z\n  %734 = phi i64 [%718, %$71] ; # J\n  br label %$74\n$74:\n  %735 = phi i64 [%704, %$71], [%720, %$73] ; # Exe\n  %736 = phi i64 [%705, %$71], [%721, %$73] ; # X\n  %737 = phi i64 [%706, %$71], [%722, %$73] ; # Y\n  %738 = phi i64* [%707, %$71], [%733, %$73] ; # M\n  %739 = phi i64 [%708, %$71], [%724, %$73] ; # N\n  %740 = phi i64 [%709, %$71], [%725, %$73] ; # Nm\n  %741 = phi i64 [%710, %$71], [%726, %$73] ; # L\n  %742 = phi i64 [%711, %$71], [%727, %$73] ; # P\n  %743 = phi i8 [%712, %$71], [%728, %$73] ; # B\n  %744 = phi i64* [%713, %$71], [%729, %$73] ; # Q\n  %745 = phi i64 [%714, %$71], [%730, %$73] ; # I\n  %746 = phi i64* [%715, %$71], [%731, %$73] ; # OutM\n  %747 = phi i64 [%716, %$71], [%732, %$73] ; # OutC\n  %748 = phi i64* [%717, %$71], [%733, %$73] ; # Z\n  %749 = phi i64 [%718, %$71], [%734, %$73] ; # J\n  br label %$70\n$70:\n  %750 = phi i64 [%650, %$68], [%735, %$74] ; # Exe\n  %751 = phi i64 [%651, %$68], [%736, %$74] ; # X\n  %752 = phi i64 [%652, %$68], [%737, %$74] ; # Y\n  %753 = phi i64* [%653, %$68], [%738, %$74] ; # M\n  %754 = phi i64 [%654, %$68], [%739, %$74] ; # N\n  %755 = phi i64 [%655, %$68], [%740, %$74] ; # Nm\n  %756 = phi i64 [%656, %$68], [%741, %$74] ; # L\n  %757 = phi i64 [%657, %$68], [%742, %$74] ; # P\n  %758 = phi i8 [%658, %$68], [%743, %$74] ; # B\n  %759 = phi i64* [%659, %$68], [%744, %$74] ; # Q\n  %760 = phi i64 [%660, %$68], [%745, %$74] ; # I\n  %761 = phi i64* [%661, %$68], [%746, %$74] ; # OutM\n  %762 = phi i64 [%662, %$68], [%747, %$74] ; # OutC\n  %763 = phi i64* [%663, %$68], [%748, %$74] ; # Z\n  %764 = phi i64 [%664, %$68], [%749, %$74] ; # J\n; # (? (=0 (dec 'J)))\n; # (dec 'J)\n  %765 = sub i64 %764, 1\n; # (=0 (dec 'J))\n  %766 = icmp eq i64 %765, 0\n  br i1 %766, label %$76, label %$75\n$75:\n  %767 = phi i64 [%750, %$70] ; # Exe\n  %768 = phi i64 [%751, %$70] ; # X\n  %769 = phi i64 [%752, %$70] ; # Y\n  %770 = phi i64* [%753, %$70] ; # M\n  %771 = phi i64 [%754, %$70] ; # N\n  %772 = phi i64 [%755, %$70] ; # Nm\n  %773 = phi i64 [%756, %$70] ; # L\n  %774 = phi i64 [%757, %$70] ; # P\n  %775 = phi i8 [%758, %$70] ; # B\n  %776 = phi i64* [%759, %$70] ; # Q\n  %777 = phi i64 [%760, %$70] ; # I\n  %778 = phi i64* [%761, %$70] ; # OutM\n  %779 = phi i64 [%762, %$70] ; # OutC\n  %780 = phi i64* [%763, %$70] ; # Z\n  %781 = phi i64 [%765, %$70] ; # J\n; # (val 2 Z)\n  %782 = getelementptr i64, i64* %780, i32 1\n  %783 = load i64, i64* %782\n; # (i64* (val 2 Z))\n  %784 = inttoptr i64 %783 to i64*\n  br label %$68\n$76:\n  %785 = phi i64 [%750, %$70] ; # Exe\n  %786 = phi i64 [%751, %$70] ; # X\n  %787 = phi i64 [%752, %$70] ; # Y\n  %788 = phi i64* [%753, %$70] ; # M\n  %789 = phi i64 [%754, %$70] ; # N\n  %790 = phi i64 [%755, %$70] ; # Nm\n  %791 = phi i64 [%756, %$70] ; # L\n  %792 = phi i64 [%757, %$70] ; # P\n  %793 = phi i8 [%758, %$70] ; # B\n  %794 = phi i64* [%759, %$70] ; # Q\n  %795 = phi i64 [%760, %$70] ; # I\n  %796 = phi i64* [%761, %$70] ; # OutM\n  %797 = phi i64 [%762, %$70] ; # OutC\n  %798 = phi i64* [%763, %$70] ; # Z\n  %799 = phi i64 [%765, %$70] ; # J\n  %800 = phi i64 [0, %$70] ; # ->\n  br label %$67\n$67:\n  %801 = phi i64 [%620, %$64], [%785, %$76] ; # Exe\n  %802 = phi i64 [%621, %$64], [%786, %$76] ; # X\n  %803 = phi i64 [%622, %$64], [%787, %$76] ; # Y\n  %804 = phi i64* [%623, %$64], [%788, %$76] ; # M\n  %805 = phi i64 [%624, %$64], [%789, %$76] ; # N\n  %806 = phi i64 [%625, %$64], [%790, %$76] ; # Nm\n  %807 = phi i64 [%626, %$64], [%791, %$76] ; # L\n  %808 = phi i64 [%627, %$64], [%792, %$76] ; # P\n  %809 = phi i8 [%628, %$64], [%793, %$76] ; # B\n  %810 = phi i64* [%629, %$64], [%794, %$76] ; # Q\n  %811 = phi i64 [%630, %$64], [%795, %$76] ; # I\n  %812 = phi i64* [%631, %$64], [%796, %$76] ; # OutM\n  %813 = phi i64 [%632, %$64], [%797, %$76] ; # OutC\n  br label %$46\n$50:\n  %814 = phi i64 [%418, %$55], [%533, %$48] ; # Exe\n  %815 = phi i64 [%419, %$55], [%534, %$48] ; # X\n  %816 = phi i64 [%420, %$55], [%535, %$48] ; # Y\n  %817 = phi i64* [%421, %$55], [%536, %$48] ; # M\n  %818 = phi i64 [%422, %$55], [%537, %$48] ; # N\n  %819 = phi i64 [%423, %$55], [%538, %$48] ; # Nm\n  %820 = phi i64 [%424, %$55], [%539, %$48] ; # L\n  %821 = phi i64 [%425, %$55], [%540, %$48] ; # P\n  %822 = phi i8 [%426, %$55], [%541, %$48] ; # B\n  %823 = phi i64* [%427, %$55], [%542, %$48] ; # Q\n  %824 = phi i64 [%428, %$55], [%543, %$48] ; # I\n  %825 = phi i64* [%429, %$55], [%544, %$48] ; # OutM\n  %826 = phi i64 [%430, %$55], [%545, %$48] ; # OutC\n; # (? (=0 (dec 'I)))\n; # (dec 'I)\n  %827 = sub i64 %824, 1\n; # (=0 (dec 'I))\n  %828 = icmp eq i64 %827, 0\n  br i1 %828, label %$78, label %$77\n$77:\n  %829 = phi i64 [%814, %$50] ; # Exe\n  %830 = phi i64 [%815, %$50] ; # X\n  %831 = phi i64 [%816, %$50] ; # Y\n  %832 = phi i64* [%817, %$50] ; # M\n  %833 = phi i64 [%818, %$50] ; # N\n  %834 = phi i64 [%819, %$50] ; # Nm\n  %835 = phi i64 [%820, %$50] ; # L\n  %836 = phi i64 [%821, %$50] ; # P\n  %837 = phi i8 [%822, %$50] ; # B\n  %838 = phi i64* [%823, %$50] ; # Q\n  %839 = phi i64 [%827, %$50] ; # I\n  %840 = phi i64* [%825, %$50] ; # OutM\n  %841 = phi i64 [%826, %$50] ; # OutC\n; # (val 2 Q)\n  %842 = getelementptr i64, i64* %838, i32 1\n  %843 = load i64, i64* %842\n; # (i64* (val 2 Q))\n  %844 = inttoptr i64 %843 to i64*\n  br label %$45\n$78:\n  %845 = phi i64 [%814, %$50] ; # Exe\n  %846 = phi i64 [%815, %$50] ; # X\n  %847 = phi i64 [%816, %$50] ; # Y\n  %848 = phi i64* [%817, %$50] ; # M\n  %849 = phi i64 [%818, %$50] ; # N\n  %850 = phi i64 [%819, %$50] ; # Nm\n  %851 = phi i64 [%820, %$50] ; # L\n  %852 = phi i64 [%821, %$50] ; # P\n  %853 = phi i8 [%822, %$50] ; # B\n  %854 = phi i64* [%823, %$50] ; # Q\n  %855 = phi i64 [%827, %$50] ; # I\n  %856 = phi i64* [%825, %$50] ; # OutM\n  %857 = phi i64 [%826, %$50] ; # OutC\n  %858 = phi i64 [0, %$50] ; # ->\n; # (cond ((=0 M) (when OutM (let (S (i8* (val 4 OutM)) C OutC) (loop...\n; # (=0 M)\n  %859 = icmp eq i64* %848, null\n  br i1 %859, label %$81, label %$80\n$81:\n  %860 = phi i64 [%845, %$78] ; # Exe\n  %861 = phi i64 [%846, %$78] ; # X\n  %862 = phi i64 [%847, %$78] ; # Y\n  %863 = phi i64* [%848, %$78] ; # M\n  %864 = phi i64 [%849, %$78] ; # N\n  %865 = phi i64 [%850, %$78] ; # Nm\n  %866 = phi i64 [%851, %$78] ; # L\n  %867 = phi i64 [%852, %$78] ; # P\n  %868 = phi i8 [%853, %$78] ; # B\n  %869 = phi i64* [%854, %$78] ; # Q\n  %870 = phi i64 [%855, %$78] ; # I\n  %871 = phi i64* [%856, %$78] ; # OutM\n  %872 = phi i64 [%857, %$78] ; # OutC\n; # (when OutM (let (S (i8* (val 4 OutM)) C OutC) (loop (call $Put (v...\n  %873 = icmp ne i64* %871, null\n  br i1 %873, label %$82, label %$83\n$82:\n  %874 = phi i64 [%860, %$81] ; # Exe\n  %875 = phi i64 [%861, %$81] ; # X\n  %876 = phi i64 [%862, %$81] ; # Y\n  %877 = phi i64* [%863, %$81] ; # M\n  %878 = phi i64 [%864, %$81] ; # N\n  %879 = phi i64 [%865, %$81] ; # Nm\n  %880 = phi i64 [%866, %$81] ; # L\n  %881 = phi i64 [%867, %$81] ; # P\n  %882 = phi i8 [%868, %$81] ; # B\n  %883 = phi i64* [%869, %$81] ; # Q\n  %884 = phi i64 [%870, %$81] ; # I\n  %885 = phi i64* [%871, %$81] ; # OutM\n  %886 = phi i64 [%872, %$81] ; # OutC\n; # (let (S (i8* (val 4 OutM)) C OutC) (loop (call $Put (val S)) (inc...\n; # (val 4 OutM)\n  %887 = getelementptr i64, i64* %885, i32 3\n  %888 = load i64, i64* %887\n; # (i8* (val 4 OutM))\n  %889 = inttoptr i64 %888 to i8*\n; # (loop (call $Put (val S)) (inc 'S) (? (=0 (dec 'C))))\n  br label %$84\n$84:\n  %890 = phi i64 [%874, %$82], [%910, %$85] ; # Exe\n  %891 = phi i64 [%875, %$82], [%911, %$85] ; # X\n  %892 = phi i64 [%876, %$82], [%912, %$85] ; # Y\n  %893 = phi i64* [%877, %$82], [%913, %$85] ; # M\n  %894 = phi i64 [%878, %$82], [%914, %$85] ; # N\n  %895 = phi i64 [%879, %$82], [%915, %$85] ; # Nm\n  %896 = phi i64 [%880, %$82], [%916, %$85] ; # L\n  %897 = phi i64 [%881, %$82], [%917, %$85] ; # P\n  %898 = phi i8 [%882, %$82], [%918, %$85] ; # B\n  %899 = phi i64* [%883, %$82], [%919, %$85] ; # Q\n  %900 = phi i64 [%884, %$82], [%920, %$85] ; # I\n  %901 = phi i64* [%885, %$82], [%921, %$85] ; # OutM\n  %902 = phi i64 [%886, %$82], [%922, %$85] ; # OutC\n  %903 = phi i8* [%889, %$82], [%923, %$85] ; # S\n  %904 = phi i64 [%886, %$82], [%924, %$85] ; # C\n; # (val S)\n  %905 = load i8, i8* %903\n; # (call $Put (val S))\n  %906 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %906(i8 %905)\n; # (inc 'S)\n  %907 = getelementptr i8, i8* %903, i32 1\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %908 = sub i64 %904, 1\n; # (=0 (dec 'C))\n  %909 = icmp eq i64 %908, 0\n  br i1 %909, label %$86, label %$85\n$85:\n  %910 = phi i64 [%890, %$84] ; # Exe\n  %911 = phi i64 [%891, %$84] ; # X\n  %912 = phi i64 [%892, %$84] ; # Y\n  %913 = phi i64* [%893, %$84] ; # M\n  %914 = phi i64 [%894, %$84] ; # N\n  %915 = phi i64 [%895, %$84] ; # Nm\n  %916 = phi i64 [%896, %$84] ; # L\n  %917 = phi i64 [%897, %$84] ; # P\n  %918 = phi i8 [%898, %$84] ; # B\n  %919 = phi i64* [%899, %$84] ; # Q\n  %920 = phi i64 [%900, %$84] ; # I\n  %921 = phi i64* [%901, %$84] ; # OutM\n  %922 = phi i64 [%902, %$84] ; # OutC\n  %923 = phi i8* [%907, %$84] ; # S\n  %924 = phi i64 [%908, %$84] ; # C\n  br label %$84\n$86:\n  %925 = phi i64 [%890, %$84] ; # Exe\n  %926 = phi i64 [%891, %$84] ; # X\n  %927 = phi i64 [%892, %$84] ; # Y\n  %928 = phi i64* [%893, %$84] ; # M\n  %929 = phi i64 [%894, %$84] ; # N\n  %930 = phi i64 [%895, %$84] ; # Nm\n  %931 = phi i64 [%896, %$84] ; # L\n  %932 = phi i64 [%897, %$84] ; # P\n  %933 = phi i8 [%898, %$84] ; # B\n  %934 = phi i64* [%899, %$84] ; # Q\n  %935 = phi i64 [%900, %$84] ; # I\n  %936 = phi i64* [%901, %$84] ; # OutM\n  %937 = phi i64 [%902, %$84] ; # OutC\n  %938 = phi i8* [%907, %$84] ; # S\n  %939 = phi i64 [%908, %$84] ; # C\n  %940 = phi i64 [0, %$84] ; # ->\n  br label %$83\n$83:\n  %941 = phi i64 [%860, %$81], [%925, %$86] ; # Exe\n  %942 = phi i64 [%861, %$81], [%926, %$86] ; # X\n  %943 = phi i64 [%862, %$81], [%927, %$86] ; # Y\n  %944 = phi i64* [%863, %$81], [%928, %$86] ; # M\n  %945 = phi i64 [%864, %$81], [%929, %$86] ; # N\n  %946 = phi i64 [%865, %$81], [%930, %$86] ; # Nm\n  %947 = phi i64 [%866, %$81], [%931, %$86] ; # L\n  %948 = phi i64 [%867, %$81], [%932, %$86] ; # P\n  %949 = phi i8 [%868, %$81], [%933, %$86] ; # B\n  %950 = phi i64* [%869, %$81], [%934, %$86] ; # Q\n  %951 = phi i64 [%870, %$81], [%935, %$86] ; # I\n  %952 = phi i64* [%871, %$81], [%936, %$86] ; # OutM\n  %953 = phi i64 [%872, %$81], [%937, %$86] ; # OutC\n; # (call $Put B)\n  %954 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %954(i8 %949)\n  br label %$79\n$80:\n  %955 = phi i64 [%845, %$78] ; # Exe\n  %956 = phi i64 [%846, %$78] ; # X\n  %957 = phi i64 [%847, %$78] ; # Y\n  %958 = phi i64* [%848, %$78] ; # M\n  %959 = phi i64 [%849, %$78] ; # N\n  %960 = phi i64 [%850, %$78] ; # Nm\n  %961 = phi i64 [%851, %$78] ; # L\n  %962 = phi i64 [%852, %$78] ; # P\n  %963 = phi i8 [%853, %$78] ; # B\n  %964 = phi i64* [%854, %$78] ; # Q\n  %965 = phi i64 [%855, %$78] ; # I\n  %966 = phi i64* [%856, %$78] ; # OutM\n  %967 = phi i64 [%857, %$78] ; # OutC\n  %968 = icmp ne i64* %966, null\n  br i1 %968, label %$88, label %$87\n$88:\n  %969 = phi i64 [%955, %$80] ; # Exe\n  %970 = phi i64 [%956, %$80] ; # X\n  %971 = phi i64 [%957, %$80] ; # Y\n  %972 = phi i64* [%958, %$80] ; # M\n  %973 = phi i64 [%959, %$80] ; # N\n  %974 = phi i64 [%960, %$80] ; # Nm\n  %975 = phi i64 [%961, %$80] ; # L\n  %976 = phi i64 [%962, %$80] ; # P\n  %977 = phi i8 [%963, %$80] ; # B\n  %978 = phi i64* [%964, %$80] ; # Q\n  %979 = phi i64 [%965, %$80] ; # I\n  %980 = phi i64* [%966, %$80] ; # OutM\n  %981 = phi i64 [%967, %$80] ; # OutC\n; # (let S (i8* (val 4 OutM)) (dec 'OutC (val 3 M)) (until (lt0 OutC)...\n; # (val 4 OutM)\n  %982 = getelementptr i64, i64* %980, i32 3\n  %983 = load i64, i64* %982\n; # (i8* (val 4 OutM))\n  %984 = inttoptr i64 %983 to i8*\n; # (val 3 M)\n  %985 = getelementptr i64, i64* %972, i32 2\n  %986 = load i64, i64* %985\n; # (dec 'OutC (val 3 M))\n  %987 = sub i64 %981, %986\n; # (until (lt0 OutC) (call $Put (val S)) (inc 'S) (dec 'OutC))\n  br label %$89\n$89:\n  %988 = phi i64 [%969, %$88], [%1003, %$90] ; # Exe\n  %989 = phi i64 [%970, %$88], [%1004, %$90] ; # X\n  %990 = phi i64 [%971, %$88], [%1005, %$90] ; # Y\n  %991 = phi i64* [%972, %$88], [%1006, %$90] ; # M\n  %992 = phi i64 [%973, %$88], [%1007, %$90] ; # N\n  %993 = phi i64 [%974, %$88], [%1008, %$90] ; # Nm\n  %994 = phi i64 [%975, %$88], [%1009, %$90] ; # L\n  %995 = phi i64 [%976, %$88], [%1010, %$90] ; # P\n  %996 = phi i8 [%977, %$88], [%1011, %$90] ; # B\n  %997 = phi i64* [%978, %$88], [%1012, %$90] ; # Q\n  %998 = phi i64 [%979, %$88], [%1013, %$90] ; # I\n  %999 = phi i64* [%980, %$88], [%1014, %$90] ; # OutM\n  %1000 = phi i64 [%987, %$88], [%1020, %$90] ; # OutC\n  %1001 = phi i8* [%984, %$88], [%1019, %$90] ; # S\n; # (lt0 OutC)\n  %1002 = icmp slt i64 %1000, 0\n  br i1 %1002, label %$91, label %$90\n$90:\n  %1003 = phi i64 [%988, %$89] ; # Exe\n  %1004 = phi i64 [%989, %$89] ; # X\n  %1005 = phi i64 [%990, %$89] ; # Y\n  %1006 = phi i64* [%991, %$89] ; # M\n  %1007 = phi i64 [%992, %$89] ; # N\n  %1008 = phi i64 [%993, %$89] ; # Nm\n  %1009 = phi i64 [%994, %$89] ; # L\n  %1010 = phi i64 [%995, %$89] ; # P\n  %1011 = phi i8 [%996, %$89] ; # B\n  %1012 = phi i64* [%997, %$89] ; # Q\n  %1013 = phi i64 [%998, %$89] ; # I\n  %1014 = phi i64* [%999, %$89] ; # OutM\n  %1015 = phi i64 [%1000, %$89] ; # OutC\n  %1016 = phi i8* [%1001, %$89] ; # S\n; # (val S)\n  %1017 = load i8, i8* %1016\n; # (call $Put (val S))\n  %1018 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1018(i8 %1017)\n; # (inc 'S)\n  %1019 = getelementptr i8, i8* %1016, i32 1\n; # (dec 'OutC)\n  %1020 = sub i64 %1015, 1\n  br label %$89\n$91:\n  %1021 = phi i64 [%988, %$89] ; # Exe\n  %1022 = phi i64 [%989, %$89] ; # X\n  %1023 = phi i64 [%990, %$89] ; # Y\n  %1024 = phi i64* [%991, %$89] ; # M\n  %1025 = phi i64 [%992, %$89] ; # N\n  %1026 = phi i64 [%993, %$89] ; # Nm\n  %1027 = phi i64 [%994, %$89] ; # L\n  %1028 = phi i64 [%995, %$89] ; # P\n  %1029 = phi i8 [%996, %$89] ; # B\n  %1030 = phi i64* [%997, %$89] ; # Q\n  %1031 = phi i64 [%998, %$89] ; # I\n  %1032 = phi i64* [%999, %$89] ; # OutM\n  %1033 = phi i64 [%1000, %$89] ; # OutC\n  %1034 = phi i8* [%1001, %$89] ; # S\n  br label %$79\n$87:\n  %1035 = phi i64 [%955, %$80] ; # Exe\n  %1036 = phi i64 [%956, %$80] ; # X\n  %1037 = phi i64 [%957, %$80] ; # Y\n  %1038 = phi i64* [%958, %$80] ; # M\n  %1039 = phi i64 [%959, %$80] ; # N\n  %1040 = phi i64 [%960, %$80] ; # Nm\n  %1041 = phi i64 [%961, %$80] ; # L\n  %1042 = phi i64 [%962, %$80] ; # P\n  %1043 = phi i8 [%963, %$80] ; # B\n  %1044 = phi i64* [%964, %$80] ; # Q\n  %1045 = phi i64 [%965, %$80] ; # I\n  %1046 = phi i64* [%966, %$80] ; # OutM\n  %1047 = phi i64 [%967, %$80] ; # OutC\n  br label %$79\n$79:\n  %1048 = phi i64 [%941, %$83], [%1021, %$91], [%1035, %$87] ; # Exe\n  %1049 = phi i64 [%942, %$83], [%1022, %$91], [%1036, %$87] ; # X\n  %1050 = phi i64 [%943, %$83], [%1023, %$91], [%1037, %$87] ; # Y\n  %1051 = phi i64* [%944, %$83], [%1024, %$91], [%1038, %$87] ; # M\n  %1052 = phi i64 [%945, %$83], [%1025, %$91], [%1039, %$87] ; # N\n  %1053 = phi i64 [%946, %$83], [%1026, %$91], [%1040, %$87] ; # Nm\n  %1054 = phi i64 [%947, %$83], [%1027, %$91], [%1041, %$87] ; # L\n  %1055 = phi i64 [%948, %$83], [%1028, %$91], [%1042, %$87] ; # P\n  %1056 = phi i8 [%949, %$83], [%1029, %$91], [%1043, %$87] ; # B\n  %1057 = phi i64* [%950, %$83], [%1030, %$91], [%1044, %$87] ; # Q\n  %1058 = phi i64 [%951, %$83], [%1031, %$91], [%1045, %$87] ; # I\n  %1059 = phi i64* [%952, %$83], [%1032, %$91], [%1046, %$87] ; # OutM\n  %1060 = phi i64 [%953, %$83], [%1033, %$91], [%1047, %$87] ; # OutC\n; # (call $Get)\n  %1061 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %1062 = call i32 %1061()\n  br label %$39\n$41:\n  %1063 = phi i64 [%240, %$39] ; # Exe\n  %1064 = phi i64 [%241, %$39] ; # X\n  %1065 = phi i64 [%242, %$39] ; # Y\n  %1066 = phi i64* [%243, %$39] ; # M\n  %1067 = phi i64 [%244, %$39] ; # N\n  %1068 = phi i64 [%245, %$39] ; # Nm\n  %1069 = phi i64 [%246, %$39] ; # L\n  %1070 = phi i64 [%247, %$39] ; # P\n; # (drop P)\n  %1071 = inttoptr i64 %1070 to i64*\n  %1072 = getelementptr i64, i64* %1071, i32 1\n  %1073 = load i64, i64* %1072\n  %1074 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1073, i64* %1074\n  br label %$7\n$7:\n  %1075 = phi i64 [%61, %$17], [%138, %$29], [%1063, %$41] ; # Exe\n  %1076 = phi i64 [%62, %$17], [%139, %$29], [%1064, %$41] ; # X\n  %1077 = phi i64 [%63, %$17], [%140, %$29], [%1065, %$41] ; # Y\n  %1078 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$17], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$29], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$41] ; # ->\n  ret i64 %1078\n}\n\ndefine void @_putStdout(i8) align 8 {\n$1:\n; # (let Out: (outFile (val $OutFile)) (when (Out:) (let I (Out: ix) ...\n; # (val $OutFile)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (when (Out:) (let I (Out: ix) (when (== I BUFSIZ) (Out: ix (setq ...\n; # (Out:)\n  %2 = icmp ne i8* %1, null\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i8 [%0, %$1] ; # B\n; # (let I (Out: ix) (when (== I BUFSIZ) (Out: ix (setq I 0)) (wrByte...\n; # (Out: ix)\n  %4 = getelementptr i8, i8* %1, i32 4\n  %5 = bitcast i8* %4 to i32*\n  %6 = load i32, i32* %5\n; # (when (== I BUFSIZ) (Out: ix (setq I 0)) (wrBytes (Out: fd) (Out:...\n; # (== I BUFSIZ)\n  %7 = icmp eq i32 %6, 4096\n  br i1 %7, label %$4, label %$5\n$4:\n  %8 = phi i8 [%3, %$2] ; # B\n  %9 = phi i32 [%6, %$2] ; # I\n; # (Out: ix (setq I 0))\n  %10 = getelementptr i8, i8* %1, i32 4\n  %11 = bitcast i8* %10 to i32*\n  store i32 0, i32* %11\n; # (Out: fd)\n  %12 = bitcast i8* %1 to i32*\n  %13 = load i32, i32* %12\n; # (Out: (buf))\n  %14 = getelementptr i8, i8* %1, i32 8\n; # (wrBytes (Out: fd) (Out: (buf)) BUFSIZ)\n  %15 = call i1 @wrBytes(i32 %13, i8* %14, i32 4096)\n  br label %$5\n$5:\n  %16 = phi i8 [%3, %$2], [%8, %$4] ; # B\n  %17 = phi i32 [%6, %$2], [0, %$4] ; # I\n; # (set (ofs (Out: (buf)) I) B)\n; # (Out: (buf))\n  %18 = getelementptr i8, i8* %1, i32 8\n; # (ofs (Out: (buf)) I)\n  %19 = getelementptr i8, i8* %18, i32 %17\n  store i8 %16, i8* %19\n; # (Out: ix (inc 'I))\n  %20 = getelementptr i8, i8* %1, i32 4\n  %21 = bitcast i8* %20 to i32*\n  %22 = add i32 %17, 1\n  store i32 %22, i32* %21\n; # (when (and (== B (char \"^J\")) (Out: tty)) (Out: ix 0) (wrBytes (O...\n; # (and (== B (char \"^J\")) (Out: tty))\n; # (== B (char \"^J\"))\n  %23 = icmp eq i8 %16, 10\n  br i1 %23, label %$7, label %$6\n$7:\n  %24 = phi i8 [%16, %$5] ; # B\n  %25 = phi i32 [%22, %$5] ; # I\n; # (Out: tty)\n  %26 = getelementptr i8, i8* %1, i32 4104\n  %27 = bitcast i8* %26 to i1*\n  %28 = load i1, i1* %27\n  br label %$6\n$6:\n  %29 = phi i8 [%16, %$5], [%24, %$7] ; # B\n  %30 = phi i32 [%22, %$5], [%25, %$7] ; # I\n  %31 = phi i1 [0, %$5], [%28, %$7] ; # ->\n  br i1 %31, label %$8, label %$9\n$8:\n  %32 = phi i8 [%29, %$6] ; # B\n  %33 = phi i32 [%30, %$6] ; # I\n; # (Out: ix 0)\n  %34 = getelementptr i8, i8* %1, i32 4\n  %35 = bitcast i8* %34 to i32*\n  store i32 0, i32* %35\n; # (Out: fd)\n  %36 = bitcast i8* %1 to i32*\n  %37 = load i32, i32* %36\n; # (Out: (buf))\n  %38 = getelementptr i8, i8* %1, i32 8\n; # (wrBytes (Out: fd) (Out: (buf)) I)\n  %39 = call i1 @wrBytes(i32 %37, i8* %38, i32 %33)\n  br label %$9\n$9:\n  %40 = phi i8 [%29, %$6], [%32, %$8] ; # B\n  %41 = phi i32 [%30, %$6], [%33, %$8] ; # I\n  br label %$3\n$3:\n  %42 = phi i8 [%0, %$1], [%40, %$9] ; # B\n  ret void\n}\n\ndefine void @newline() align 8 {\n$1:\n; # (call $Put (char \"^J\"))\n  %0 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %0(i8 10)\n  ret void\n}\n\ndefine void @space() align 8 {\n$1:\n; # (call $Put (char \" \"))\n  %0 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %0(i8 32)\n  ret void\n}\n\ndefine void @outWord(i64) align 8 {\n$1:\n; # (when (> N 9) (outWord (/ N 10)) (setq N (% N 10)))\n; # (> N 9)\n  %1 = icmp ugt i64 %0, 9\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i64 [%0, %$1] ; # N\n; # (/ N 10)\n  %3 = udiv i64 %2, 10\n; # (outWord (/ N 10))\n  call void @outWord(i64 %3)\n; # (% N 10)\n  %4 = urem i64 %2, 10\n  br label %$3\n$3:\n  %5 = phi i64 [%0, %$1], [%4, %$2] ; # N\n; # (i8 N)\n  %6 = trunc i64 %5 to i8\n; # (+ (i8 N) (char \"0\"))\n  %7 = add i8 %6, 48\n; # (call $Put (+ (i8 N) (char \"0\")))\n  %8 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %8(i8 %7)\n  ret void\n}\n\ndefine void @outNum(i64) align 8 {\n$1:\n; # (when (sign? X) (call $Put (char \"-\")))\n; # (sign? X)\n  %1 = and i64 %0, 8\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # X\n; # (call $Put (char \"-\"))\n  %4 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %4(i8 45)\n  br label %$3\n$3:\n  %5 = phi i64 [%0, %$1], [%3, %$2] ; # X\n; # (i64 X)\n; # (shr (i64 X) 4)\n  %6 = lshr i64 %5, 4\n; # (outWord (shr (i64 X) 4))\n  call void @outWord(i64 %6)\n  ret void\n}\n\ndefine void @outOct(i64) align 8 {\n$1:\n; # (when (> N 7) (outOct (shr N 3)) (setq N (& N 7)))\n; # (> N 7)\n  %1 = icmp ugt i64 %0, 7\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i64 [%0, %$1] ; # N\n; # (shr N 3)\n  %3 = lshr i64 %2, 3\n; # (outOct (shr N 3))\n  call void @outOct(i64 %3)\n; # (& N 7)\n  %4 = and i64 %2, 7\n  br label %$3\n$3:\n  %5 = phi i64 [%0, %$1], [%4, %$2] ; # N\n; # (i8 N)\n  %6 = trunc i64 %5 to i8\n; # (+ (i8 N) (char \"0\"))\n  %7 = add i8 %6, 48\n; # (call $Put (+ (i8 N) (char \"0\")))\n  %8 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %8(i8 %7)\n  ret void\n}\n\ndefine void @outAo(i32) align 8 {\n$1:\n; # (when (> N 15) (outAo (shr N 4)) (setq N (& N 15)))\n; # (> N 15)\n  %1 = icmp sgt i32 %0, 15\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i32 [%0, %$1] ; # N\n; # (shr N 4)\n  %3 = lshr i32 %2, 4\n; # (outAo (shr N 4))\n  call void @outAo(i32 %3)\n; # (& N 15)\n  %4 = and i32 %2, 15\n  br label %$3\n$3:\n  %5 = phi i32 [%0, %$1], [%4, %$2] ; # N\n; # (i8 N)\n  %6 = trunc i32 %5 to i8\n; # (+ (i8 N) (char \"@\"))\n  %7 = add i8 %6, 64\n; # (call $Put (+ (i8 N) (char \"@\")))\n  %8 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %8(i8 %7)\n  ret void\n}\n\ndefine i8* @bufAo(i8*, i32) align 8 {\n$1:\n; # (when (> N 15) (setq P (bufAo P (shr N 4)) N (& N 15)))\n; # (> N 15)\n  %2 = icmp sgt i32 %1, 15\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i8* [%0, %$1] ; # P\n  %4 = phi i32 [%1, %$1] ; # N\n; # (shr N 4)\n  %5 = lshr i32 %4, 4\n; # (bufAo P (shr N 4))\n  %6 = call i8* @bufAo(i8* %3, i32 %5)\n; # (& N 15)\n  %7 = and i32 %4, 15\n  br label %$3\n$3:\n  %8 = phi i8* [%0, %$1], [%6, %$2] ; # P\n  %9 = phi i32 [%1, %$1], [%7, %$2] ; # N\n; # (set P (+ (i8 N) (char \"@\")))\n; # (i8 N)\n  %10 = trunc i32 %9 to i8\n; # (+ (i8 N) (char \"@\"))\n  %11 = add i8 %10, 64\n  store i8 %11, i8* %8\n; # (inc P)\n  %12 = getelementptr i8, i8* %8, i32 1\n  ret i8* %12\n}\n\ndefine void @prExt(i64) align 8 {\n$1:\n; # (when (objFile Nm) (outAo @))\n; # (objFile Nm)\n  %1 = call i32 @objFile(i64 %0)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Nm\n; # (outAo @)\n  call void @outAo(i32 %1)\n  br label %$3\n$3:\n  %4 = phi i64 [%0, %$1], [%3, %$2] ; # Nm\n; # (objId Nm)\n  %5 = call i64 @objId(i64 %4)\n; # (outOct (objId Nm))\n  call void @outOct(i64 %5)\n  ret void\n}\n\ndefine void @outString(i8*) align 8 {\n$1:\n; # (while (val S) (call $Put @) (inc 'S))\n  br label %$2\n$2:\n  %1 = phi i8* [%0, %$1], [%6, %$3] ; # S\n; # (val S)\n  %2 = load i8, i8* %1\n  %3 = icmp ne i8 %2, 0\n  br i1 %3, label %$3, label %$4\n$3:\n  %4 = phi i8* [%1, %$2] ; # S\n; # (call $Put @)\n  %5 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %5(i8 %2)\n; # (inc 'S)\n  %6 = getelementptr i8, i8* %4, i32 1\n  br label %$2\n$4:\n  %7 = phi i8* [%1, %$2] ; # S\n  ret void\n}\n\ndefine void @prName(i64) align 8 {\n$1:\n; # (let P (push 0 Nm) (while (symByte P) (call $Put @)))\n; # (push 0 Nm)\n  %1 = alloca i64, i64 2, align 16\n  store i64 0, i64* %1\n  %2 = getelementptr i64, i64* %1, i32 1\n  store i64 %0, i64* %2\n; # (while (symByte P) (call $Put @))\n  br label %$2\n$2:\n  %3 = phi i64 [%0, %$1], [%7, %$3] ; # Nm\n  %4 = phi i64* [%1, %$1], [%8, %$3] ; # P\n; # (symByte P)\n  %5 = call i8 @symByte(i64* %4)\n  %6 = icmp ne i8 %5, 0\n  br i1 %6, label %$3, label %$4\n$3:\n  %7 = phi i64 [%3, %$2] ; # Nm\n  %8 = phi i64* [%4, %$2] ; # P\n; # (call $Put @)\n  %9 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %9(i8 %5)\n  br label %$2\n$4:\n  %10 = phi i64 [%3, %$2] ; # Nm\n  %11 = phi i64* [%4, %$2] ; # P\n  ret void\n}\n\ndefine void @prSym(i64) align 8 {\n$1:\n; # (tail Sym)\n  %1 = add i64 %0, -8\n; # (val (tail Sym))\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (name (val (tail Sym)))\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%10, %$3] ; # Tail\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$4, label %$3\n$3:\n  %7 = phi i64 [%4, %$2] ; # Tail\n  %8 = inttoptr i64 %7 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  %10 = load i64, i64* %9\n  br label %$2\n$4:\n  %11 = phi i64 [%4, %$2] ; # Tail\n; # (prName (name (val (tail Sym))))\n  call void @prName(i64 %11)\n  ret void\n}\n\ndefine void @printName(i64) align 8 {\n$1:\n; # (ifn (== Nm (hex \"2E2\")) (let (P (push 0 Nm) B (symByte P)) (when...\n; # (== Nm (hex \"2E2\"))\n  %1 = icmp eq i64 %0, 738\n  br i1 %1, label %$3, label %$2\n$2:\n  %2 = phi i64 [%0, %$1] ; # Nm\n; # (let (P (push 0 Nm) B (symByte P)) (when (== B (char \"#\")) (call ...\n; # (push 0 Nm)\n  %3 = alloca i64, i64 2, align 16\n  store i64 0, i64* %3\n  %4 = getelementptr i64, i64* %3, i32 1\n  store i64 %2, i64* %4\n; # (symByte P)\n  %5 = call i8 @symByte(i64* %3)\n; # (when (== B (char \"#\")) (call $Put (char \"\\\\\")))\n; # (== B (char \"#\"))\n  %6 = icmp eq i8 %5, 35\n  br i1 %6, label %$5, label %$6\n$5:\n  %7 = phi i64 [%2, %$2] ; # Nm\n  %8 = phi i64* [%3, %$2] ; # P\n  %9 = phi i8 [%5, %$2] ; # B\n; # (call $Put (char \"\\\\\"))\n  %10 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %10(i8 92)\n  br label %$6\n$6:\n  %11 = phi i64 [%2, %$2], [%7, %$5] ; # Nm\n  %12 = phi i64* [%3, %$2], [%8, %$5] ; # P\n  %13 = phi i8 [%5, %$2], [%9, %$5] ; # B\n; # (loop (if (or (== B 127) (> 32 B)) (prog (call $Put (char \"\\\\\")) ...\n  br label %$7\n$7:\n  %14 = phi i64 [%11, %$6], [%59, %$17] ; # Nm\n  %15 = phi i64* [%12, %$6], [%60, %$17] ; # P\n  %16 = phi i8 [%13, %$6], [%61, %$17] ; # B\n; # (if (or (== B 127) (> 32 B)) (prog (call $Put (char \"\\\\\")) (outWo...\n; # (or (== B 127) (> 32 B))\n; # (== B 127)\n  %17 = icmp eq i8 %16, 127\n  br i1 %17, label %$8, label %$9\n$9:\n  %18 = phi i64 [%14, %$7] ; # Nm\n  %19 = phi i64* [%15, %$7] ; # P\n  %20 = phi i8 [%16, %$7] ; # B\n; # (> 32 B)\n  %21 = icmp ugt i8 32, %20\n  br label %$8\n$8:\n  %22 = phi i64 [%14, %$7], [%18, %$9] ; # Nm\n  %23 = phi i64* [%15, %$7], [%19, %$9] ; # P\n  %24 = phi i8 [%16, %$7], [%20, %$9] ; # B\n  %25 = phi i1 [1, %$7], [%21, %$9] ; # ->\n  br i1 %25, label %$10, label %$11\n$10:\n  %26 = phi i64 [%22, %$8] ; # Nm\n  %27 = phi i64* [%23, %$8] ; # P\n  %28 = phi i8 [%24, %$8] ; # B\n; # (call $Put (char \"\\\\\"))\n  %29 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %29(i8 92)\n; # (i64 B)\n  %30 = zext i8 %28 to i64\n; # (outWord (i64 B))\n  call void @outWord(i64 %30)\n; # (call $Put (char \"\\\\\"))\n  %31 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %31(i8 92)\n  br label %$12\n$11:\n  %32 = phi i64 [%22, %$8] ; # Nm\n  %33 = phi i64* [%23, %$8] ; # P\n  %34 = phi i8 [%24, %$8] ; # B\n; # (when (or (== B (char \"\\\\\")) (strchr $Delim (i32 B))) (call $Put ...\n; # (or (== B (char \"\\\\\")) (strchr $Delim (i32 B)))\n; # (== B (char \"\\\\\"))\n  %35 = icmp eq i8 %34, 92\n  br i1 %35, label %$13, label %$14\n$14:\n  %36 = phi i64 [%32, %$11] ; # Nm\n  %37 = phi i64* [%33, %$11] ; # P\n  %38 = phi i8 [%34, %$11] ; # B\n; # (i32 B)\n  %39 = zext i8 %38 to i32\n; # (strchr $Delim (i32 B))\n  %40 = call i8* @strchr(i8* bitcast ([16 x i8]* @$Delim to i8*), i32 %39)\n  %41 = icmp ne i8* %40, null\n  br label %$13\n$13:\n  %42 = phi i64 [%32, %$11], [%36, %$14] ; # Nm\n  %43 = phi i64* [%33, %$11], [%37, %$14] ; # P\n  %44 = phi i8 [%34, %$11], [%38, %$14] ; # B\n  %45 = phi i1 [1, %$11], [%41, %$14] ; # ->\n  br i1 %45, label %$15, label %$16\n$15:\n  %46 = phi i64 [%42, %$13] ; # Nm\n  %47 = phi i64* [%43, %$13] ; # P\n  %48 = phi i8 [%44, %$13] ; # B\n; # (call $Put (char \"\\\\\"))\n  %49 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %49(i8 92)\n  br label %$16\n$16:\n  %50 = phi i64 [%42, %$13], [%46, %$15] ; # Nm\n  %51 = phi i64* [%43, %$13], [%47, %$15] ; # P\n  %52 = phi i8 [%44, %$13], [%48, %$15] ; # B\n; # (call $Put B)\n  %53 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %53(i8 %52)\n  br label %$12\n$12:\n  %54 = phi i64 [%26, %$10], [%50, %$16] ; # Nm\n  %55 = phi i64* [%27, %$10], [%51, %$16] ; # P\n  %56 = phi i8 [%28, %$10], [%52, %$16] ; # B\n; # (? (=0 (setq B (symByte P))))\n; # (symByte P)\n  %57 = call i8 @symByte(i64* %55)\n; # (=0 (setq B (symByte P)))\n  %58 = icmp eq i8 %57, 0\n  br i1 %58, label %$18, label %$17\n$17:\n  %59 = phi i64 [%54, %$12] ; # Nm\n  %60 = phi i64* [%55, %$12] ; # P\n  %61 = phi i8 [%57, %$12] ; # B\n  br label %$7\n$18:\n  %62 = phi i64 [%54, %$12] ; # Nm\n  %63 = phi i64* [%55, %$12] ; # P\n  %64 = phi i8 [%57, %$12] ; # B\n  %65 = phi i64 [0, %$12] ; # ->\n  br label %$4\n$3:\n  %66 = phi i64 [%0, %$1] ; # Nm\n; # (call $Put (char \"\\\\\"))\n  %67 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %67(i8 92)\n; # (call $Put (char \".\"))\n  %68 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %68(i8 46)\n  br label %$4\n$4:\n  %69 = phi i64 [%62, %$18], [%66, %$3] ; # Nm\n  ret void\n}\n\ndefine void @printSym(i64) align 8 {\n$1:\n; # (tail Sym)\n  %1 = add i64 %0, -8\n; # (val (tail Sym))\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (name (val (tail Sym)))\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%10, %$3] ; # Tail\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$4, label %$3\n$3:\n  %7 = phi i64 [%4, %$2] ; # Tail\n  %8 = inttoptr i64 %7 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  %10 = load i64, i64* %9\n  br label %$2\n$4:\n  %11 = phi i64 [%4, %$2] ; # Tail\n; # (printName (name (val (tail Sym))))\n  call void @printName(i64 %11)\n  ret void\n}\n\ndefine void @print(i64) align 8 {\n$1:\n; # (sigChk 0)\n  %1 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [0, %$1] ; # Exe\n  call void @sighandler(i64 %3)\n  br label %$3\n$3:\n  %4 = phi i64 [0, %$1], [%3, %$2] ; # Exe\n; # (cond ((cnt? X) (outNum X)) ((big? X) (fmtNum X 0 0 0 null)) ((sy...\n; # (cnt? X)\n  %5 = and i64 %0, 2\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$6, label %$5\n$6:\n  %7 = phi i64 [%0, %$3] ; # X\n; # (outNum X)\n  call void @outNum(i64 %7)\n  br label %$4\n$5:\n  %8 = phi i64 [%0, %$3] ; # X\n; # (big? X)\n  %9 = and i64 %8, 4\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$8, label %$7\n$8:\n  %11 = phi i64 [%8, %$5] ; # X\n; # (fmtNum X 0 0 0 null)\n  %12 = call i64 @fmtNum(i64 %11, i64 0, i8 0, i8 0, i64* null)\n  br label %$4\n$7:\n  %13 = phi i64 [%8, %$5] ; # X\n; # (sym? X)\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$10, label %$9\n$10:\n  %16 = phi i64 [%13, %$7] ; # X\n; # (cond ((sym? (val (tail X))) (call $Put (char \"{\")) (prExt (name ...\n; # (tail X)\n  %17 = add i64 %16, -8\n; # (val (tail X))\n  %18 = inttoptr i64 %17 to i64*\n  %19 = load i64, i64* %18\n; # (sym? (val (tail X)))\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$13, label %$12\n$13:\n  %22 = phi i64 [%16, %$10] ; # X\n; # (call $Put (char \"{\"))\n  %23 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %23(i8 123)\n; # (& @ -9)\n  %24 = and i64 %19, -9\n; # (name (& @ -9))\n  br label %$14\n$14:\n  %25 = phi i64 [%24, %$13], [%31, %$15] ; # Tail\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$16, label %$15\n$15:\n  %28 = phi i64 [%25, %$14] ; # Tail\n  %29 = inttoptr i64 %28 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  br label %$14\n$16:\n  %32 = phi i64 [%25, %$14] ; # Tail\n; # (prExt (name (& @ -9)))\n  call void @prExt(i64 %32)\n; # (call $Put (char \"}\"))\n  %33 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %33(i8 125)\n  br label %$11\n$12:\n  %34 = phi i64 [%16, %$10] ; # X\n; # (name @)\n  br label %$17\n$17:\n  %35 = phi i64 [%19, %$12], [%41, %$18] ; # Tail\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$19, label %$18\n$18:\n  %38 = phi i64 [%35, %$17] ; # Tail\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  br label %$17\n$19:\n  %42 = phi i64 [%35, %$17] ; # Tail\n; # (== (name @) ZERO)\n  %43 = icmp eq i64 %42, 2\n  br i1 %43, label %$21, label %$20\n$21:\n  %44 = phi i64 [%34, %$19] ; # X\n; # (call $Put (char \"$\"))\n  %45 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %45(i8 36)\n; # (int X)\n  %46 = lshr i64 %44, 4\n; # (outOct (int X))\n  call void @outOct(i64 %46)\n  br label %$11\n$20:\n  %47 = phi i64 [%34, %$19] ; # X\n; # (let (Nm @ Prv (isIntern Nm $PrivT)) (ifn (== X Prv) (let (Lst (v...\n; # (isIntern Nm $PrivT)\n  %48 = call i64 @isIntern(i64 %42, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64))\n; # (ifn (== X Prv) (let (Lst (val $Intern) F NO) (loop (? (atom Lst)...\n; # (== X Prv)\n  %49 = icmp eq i64 %47, %48\n  br i1 %49, label %$23, label %$22\n$22:\n  %50 = phi i64 [%47, %$20] ; # X\n  %51 = phi i64 [%42, %$20] ; # Nm\n  %52 = phi i64 [%48, %$20] ; # Prv\n; # (let (Lst (val $Intern) F NO) (loop (? (atom Lst) (call $Put (cha...\n; # (val $Intern)\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %54 = load i64, i64* %53\n; # (loop (? (atom Lst) (call $Put (char \"\\\"\")) (let (P (push 0 Nm) B...\n  br label %$25\n$25:\n  %55 = phi i64 [%50, %$22], [%237, %$43] ; # X\n  %56 = phi i64 [%51, %$22], [%238, %$43] ; # Nm\n  %57 = phi i64 [%52, %$22], [%239, %$43] ; # Prv\n  %58 = phi i64 [%54, %$22], [%245, %$43] ; # Lst\n  %59 = phi i1 [0, %$22], [%241, %$43] ; # F\n; # (? (atom Lst) (call $Put (char \"\\\"\")) (let (P (push 0 Nm) B (symB...\n; # (atom Lst)\n  %60 = and i64 %58, 15\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$28, label %$26\n$28:\n  %62 = phi i64 [%55, %$25] ; # X\n  %63 = phi i64 [%56, %$25] ; # Nm\n  %64 = phi i64 [%57, %$25] ; # Prv\n  %65 = phi i64 [%58, %$25] ; # Lst\n  %66 = phi i1 [%59, %$25] ; # F\n; # (call $Put (char \"\\\"\"))\n  %67 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %67(i8 34)\n; # (let (P (push 0 Nm) B (symByte P)) (loop (cond ((or (== B (char \"...\n; # (push 0 Nm)\n  %68 = alloca i64, i64 2, align 16\n  store i64 0, i64* %68\n  %69 = getelementptr i64, i64* %68, i32 1\n  store i64 %63, i64* %69\n; # (symByte P)\n  %70 = call i8 @symByte(i64* %68)\n; # (loop (cond ((or (== B (char \"\\\\\")) (== B (char \"\\^\")) (== B (cha...\n  br label %$29\n$29:\n  %71 = phi i64 [%62, %$28], [%161, %$40] ; # X\n  %72 = phi i64 [%63, %$28], [%162, %$40] ; # Nm\n  %73 = phi i64 [%64, %$28], [%163, %$40] ; # Prv\n  %74 = phi i64 [%65, %$28], [%164, %$40] ; # Lst\n  %75 = phi i1 [%66, %$28], [%165, %$40] ; # F\n  %76 = phi i64* [%68, %$28], [%166, %$40] ; # P\n  %77 = phi i8 [%70, %$28], [%167, %$40] ; # B\n; # (cond ((or (== B (char \"\\\\\")) (== B (char \"\\^\")) (== B (char \"\\\"\"...\n; # (or (== B (char \"\\\\\")) (== B (char \"\\^\")) (== B (char \"\\\"\")))\n; # (== B (char \"\\\\\"))\n  %78 = icmp eq i8 %77, 92\n  br i1 %78, label %$31, label %$32\n$32:\n  %79 = phi i64 [%71, %$29] ; # X\n  %80 = phi i64 [%72, %$29] ; # Nm\n  %81 = phi i64 [%73, %$29] ; # Prv\n  %82 = phi i64 [%74, %$29] ; # Lst\n  %83 = phi i1 [%75, %$29] ; # F\n  %84 = phi i64* [%76, %$29] ; # P\n  %85 = phi i8 [%77, %$29] ; # B\n; # (== B (char \"\\^\"))\n  %86 = icmp eq i8 %85, 94\n  br i1 %86, label %$31, label %$33\n$33:\n  %87 = phi i64 [%79, %$32] ; # X\n  %88 = phi i64 [%80, %$32] ; # Nm\n  %89 = phi i64 [%81, %$32] ; # Prv\n  %90 = phi i64 [%82, %$32] ; # Lst\n  %91 = phi i1 [%83, %$32] ; # F\n  %92 = phi i64* [%84, %$32] ; # P\n  %93 = phi i8 [%85, %$32] ; # B\n; # (== B (char \"\\\"\"))\n  %94 = icmp eq i8 %93, 34\n  br label %$31\n$31:\n  %95 = phi i64 [%71, %$29], [%79, %$32], [%87, %$33] ; # X\n  %96 = phi i64 [%72, %$29], [%80, %$32], [%88, %$33] ; # Nm\n  %97 = phi i64 [%73, %$29], [%81, %$32], [%89, %$33] ; # Prv\n  %98 = phi i64 [%74, %$29], [%82, %$32], [%90, %$33] ; # Lst\n  %99 = phi i1 [%75, %$29], [%83, %$32], [%91, %$33] ; # F\n  %100 = phi i64* [%76, %$29], [%84, %$32], [%92, %$33] ; # P\n  %101 = phi i8 [%77, %$29], [%85, %$32], [%93, %$33] ; # B\n  %102 = phi i1 [1, %$29], [1, %$32], [%94, %$33] ; # ->\n  br i1 %102, label %$35, label %$34\n$35:\n  %103 = phi i64 [%95, %$31] ; # X\n  %104 = phi i64 [%96, %$31] ; # Nm\n  %105 = phi i64 [%97, %$31] ; # Prv\n  %106 = phi i64 [%98, %$31] ; # Lst\n  %107 = phi i1 [%99, %$31] ; # F\n  %108 = phi i64* [%100, %$31] ; # P\n  %109 = phi i8 [%101, %$31] ; # B\n; # (call $Put (char \"\\\\\"))\n  %110 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %110(i8 92)\n  br label %$30\n$34:\n  %111 = phi i64 [%95, %$31] ; # X\n  %112 = phi i64 [%96, %$31] ; # Nm\n  %113 = phi i64 [%97, %$31] ; # Prv\n  %114 = phi i64 [%98, %$31] ; # Lst\n  %115 = phi i1 [%99, %$31] ; # F\n  %116 = phi i64* [%100, %$31] ; # P\n  %117 = phi i8 [%101, %$31] ; # B\n; # (== B 127)\n  %118 = icmp eq i8 %117, 127\n  br i1 %118, label %$37, label %$36\n$37:\n  %119 = phi i64 [%111, %$34] ; # X\n  %120 = phi i64 [%112, %$34] ; # Nm\n  %121 = phi i64 [%113, %$34] ; # Prv\n  %122 = phi i64 [%114, %$34] ; # Lst\n  %123 = phi i1 [%115, %$34] ; # F\n  %124 = phi i64* [%116, %$34] ; # P\n  %125 = phi i8 [%117, %$34] ; # B\n; # (call $Put (char \"\\^\"))\n  %126 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %126(i8 94)\n  br label %$30\n$36:\n  %127 = phi i64 [%111, %$34] ; # X\n  %128 = phi i64 [%112, %$34] ; # Nm\n  %129 = phi i64 [%113, %$34] ; # Prv\n  %130 = phi i64 [%114, %$34] ; # Lst\n  %131 = phi i1 [%115, %$34] ; # F\n  %132 = phi i64* [%116, %$34] ; # P\n  %133 = phi i8 [%117, %$34] ; # B\n; # (> 32 B)\n  %134 = icmp ugt i8 32, %133\n  br i1 %134, label %$39, label %$38\n$39:\n  %135 = phi i64 [%127, %$36] ; # X\n  %136 = phi i64 [%128, %$36] ; # Nm\n  %137 = phi i64 [%129, %$36] ; # Prv\n  %138 = phi i64 [%130, %$36] ; # Lst\n  %139 = phi i1 [%131, %$36] ; # F\n  %140 = phi i64* [%132, %$36] ; # P\n  %141 = phi i8 [%133, %$36] ; # B\n; # (call $Put (char \"\\^\"))\n  %142 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %142(i8 94)\n; # (| B 64)\n  %143 = or i8 %141, 64\n  br label %$30\n$38:\n  %144 = phi i64 [%127, %$36] ; # X\n  %145 = phi i64 [%128, %$36] ; # Nm\n  %146 = phi i64 [%129, %$36] ; # Prv\n  %147 = phi i64 [%130, %$36] ; # Lst\n  %148 = phi i1 [%131, %$36] ; # F\n  %149 = phi i64* [%132, %$36] ; # P\n  %150 = phi i8 [%133, %$36] ; # B\n  br label %$30\n$30:\n  %151 = phi i64 [%103, %$35], [%119, %$37], [%135, %$39], [%144, %$38] ; # X\n  %152 = phi i64 [%104, %$35], [%120, %$37], [%136, %$39], [%145, %$38] ; # Nm\n  %153 = phi i64 [%105, %$35], [%121, %$37], [%137, %$39], [%146, %$38] ; # Prv\n  %154 = phi i64 [%106, %$35], [%122, %$37], [%138, %$39], [%147, %$38] ; # Lst\n  %155 = phi i1 [%107, %$35], [%123, %$37], [%139, %$39], [%148, %$38] ; # F\n  %156 = phi i64* [%108, %$35], [%124, %$37], [%140, %$39], [%149, %$38] ; # P\n  %157 = phi i8 [%109, %$35], [63, %$37], [%143, %$39], [%150, %$38] ; # B\n; # (call $Put B)\n  %158 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %158(i8 %157)\n; # (? (=0 (setq B (symByte P))))\n; # (symByte P)\n  %159 = call i8 @symByte(i64* %156)\n; # (=0 (setq B (symByte P)))\n  %160 = icmp eq i8 %159, 0\n  br i1 %160, label %$41, label %$40\n$40:\n  %161 = phi i64 [%151, %$30] ; # X\n  %162 = phi i64 [%152, %$30] ; # Nm\n  %163 = phi i64 [%153, %$30] ; # Prv\n  %164 = phi i64 [%154, %$30] ; # Lst\n  %165 = phi i1 [%155, %$30] ; # F\n  %166 = phi i64* [%156, %$30] ; # P\n  %167 = phi i8 [%159, %$30] ; # B\n  br label %$29\n$41:\n  %168 = phi i64 [%151, %$30] ; # X\n  %169 = phi i64 [%152, %$30] ; # Nm\n  %170 = phi i64 [%153, %$30] ; # Prv\n  %171 = phi i64 [%154, %$30] ; # Lst\n  %172 = phi i1 [%155, %$30] ; # F\n  %173 = phi i64* [%156, %$30] ; # P\n  %174 = phi i8 [%159, %$30] ; # B\n  %175 = phi i64 [0, %$30] ; # ->\n; # (call $Put (char \"\\\"\"))\n  %176 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %176(i8 34)\n  br label %$27\n$26:\n  %177 = phi i64 [%55, %$25] ; # X\n  %178 = phi i64 [%56, %$25] ; # Nm\n  %179 = phi i64 [%57, %$25] ; # Prv\n  %180 = phi i64 [%58, %$25] ; # Lst\n  %181 = phi i1 [%59, %$25] ; # F\n; # (let Nsp (car Lst) (when (isIntern Nm (cdar Nsp)) (? (== @ X) (wh...\n; # (car Lst)\n  %182 = inttoptr i64 %180 to i64*\n  %183 = load i64, i64* %182\n; # (when (isIntern Nm (cdar Nsp)) (? (== @ X) (when (or Prv F) (prin...\n; # (cdar Nsp)\n  %184 = inttoptr i64 %183 to i64*\n  %185 = load i64, i64* %184\n  %186 = inttoptr i64 %185 to i64*\n  %187 = getelementptr i64, i64* %186, i32 1\n  %188 = load i64, i64* %187\n; # (isIntern Nm (cdar Nsp))\n  %189 = call i64 @isIntern(i64 %178, i64 %188)\n  %190 = icmp ne i64 %189, 0\n  br i1 %190, label %$42, label %$43\n$42:\n  %191 = phi i64 [%177, %$26] ; # X\n  %192 = phi i64 [%178, %$26] ; # Nm\n  %193 = phi i64 [%179, %$26] ; # Prv\n  %194 = phi i64 [%180, %$26] ; # Lst\n  %195 = phi i1 [%181, %$26] ; # F\n  %196 = phi i64 [%183, %$26] ; # Nsp\n; # (? (== @ X) (when (or Prv F) (printSym Nsp) (call $Put (char \"~\")...\n; # (== @ X)\n  %197 = icmp eq i64 %189, %191\n  br i1 %197, label %$45, label %$44\n$45:\n  %198 = phi i64 [%191, %$42] ; # X\n  %199 = phi i64 [%192, %$42] ; # Nm\n  %200 = phi i64 [%193, %$42] ; # Prv\n  %201 = phi i64 [%194, %$42] ; # Lst\n  %202 = phi i1 [%195, %$42] ; # F\n  %203 = phi i64 [%196, %$42] ; # Nsp\n; # (when (or Prv F) (printSym Nsp) (call $Put (char \"~\")))\n; # (or Prv F)\n  %204 = icmp ne i64 %200, 0\n  br i1 %204, label %$46, label %$47\n$47:\n  %205 = phi i64 [%198, %$45] ; # X\n  %206 = phi i64 [%199, %$45] ; # Nm\n  %207 = phi i64 [%200, %$45] ; # Prv\n  %208 = phi i64 [%201, %$45] ; # Lst\n  %209 = phi i1 [%202, %$45] ; # F\n  %210 = phi i64 [%203, %$45] ; # Nsp\n  br label %$46\n$46:\n  %211 = phi i64 [%198, %$45], [%205, %$47] ; # X\n  %212 = phi i64 [%199, %$45], [%206, %$47] ; # Nm\n  %213 = phi i64 [%200, %$45], [%207, %$47] ; # Prv\n  %214 = phi i64 [%201, %$45], [%208, %$47] ; # Lst\n  %215 = phi i1 [%202, %$45], [%209, %$47] ; # F\n  %216 = phi i64 [%203, %$45], [%210, %$47] ; # Nsp\n  %217 = phi i1 [1, %$45], [%209, %$47] ; # ->\n  br i1 %217, label %$48, label %$49\n$48:\n  %218 = phi i64 [%211, %$46] ; # X\n  %219 = phi i64 [%212, %$46] ; # Nm\n  %220 = phi i64 [%213, %$46] ; # Prv\n  %221 = phi i64 [%214, %$46] ; # Lst\n  %222 = phi i1 [%215, %$46] ; # F\n  %223 = phi i64 [%216, %$46] ; # Nsp\n; # (printSym Nsp)\n  call void @printSym(i64 %223)\n; # (call $Put (char \"~\"))\n  %224 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %224(i8 126)\n  br label %$49\n$49:\n  %225 = phi i64 [%211, %$46], [%218, %$48] ; # X\n  %226 = phi i64 [%212, %$46], [%219, %$48] ; # Nm\n  %227 = phi i64 [%213, %$46], [%220, %$48] ; # Prv\n  %228 = phi i64 [%214, %$46], [%221, %$48] ; # Lst\n  %229 = phi i1 [%215, %$46], [%222, %$48] ; # F\n  %230 = phi i64 [%216, %$46], [%223, %$48] ; # Nsp\n; # (printName Nm)\n  call void @printName(i64 %226)\n  br label %$27\n$44:\n  %231 = phi i64 [%191, %$42] ; # X\n  %232 = phi i64 [%192, %$42] ; # Nm\n  %233 = phi i64 [%193, %$42] ; # Prv\n  %234 = phi i64 [%194, %$42] ; # Lst\n  %235 = phi i1 [%195, %$42] ; # F\n  %236 = phi i64 [%196, %$42] ; # Nsp\n  br label %$43\n$43:\n  %237 = phi i64 [%177, %$26], [%231, %$44] ; # X\n  %238 = phi i64 [%178, %$26], [%232, %$44] ; # Nm\n  %239 = phi i64 [%179, %$26], [%233, %$44] ; # Prv\n  %240 = phi i64 [%180, %$26], [%234, %$44] ; # Lst\n  %241 = phi i1 [%181, %$26], [1, %$44] ; # F\n  %242 = phi i64 [%183, %$26], [%236, %$44] ; # Nsp\n; # (shift Lst)\n  %243 = inttoptr i64 %240 to i64*\n  %244 = getelementptr i64, i64* %243, i32 1\n  %245 = load i64, i64* %244\n  br label %$25\n$27:\n  %246 = phi i64 [%168, %$41], [%225, %$49] ; # X\n  %247 = phi i64 [%169, %$41], [%226, %$49] ; # Nm\n  %248 = phi i64 [%170, %$41], [%227, %$49] ; # Prv\n  %249 = phi i64 [%171, %$41], [%228, %$49] ; # Lst\n  %250 = phi i1 [%172, %$41], [%229, %$49] ; # F\n  br label %$24\n$23:\n  %251 = phi i64 [%47, %$20] ; # X\n  %252 = phi i64 [%42, %$20] ; # Nm\n  %253 = phi i64 [%48, %$20] ; # Prv\n; # (outString ($ \"priv~\"))\n  call void @outString(i8* bitcast ([6 x i8]* @$46 to i8*))\n; # (printName Nm)\n  call void @printName(i64 %252)\n  br label %$24\n$24:\n  %254 = phi i64 [%246, %$27], [%251, %$23] ; # X\n  %255 = phi i64 [%247, %$27], [%252, %$23] ; # Nm\n  %256 = phi i64 [%248, %$27], [%253, %$23] ; # Prv\n  br label %$11\n$11:\n  %257 = phi i64 [%22, %$16], [%44, %$21], [%254, %$24] ; # X\n  br label %$4\n$9:\n  %258 = phi i64 [%13, %$7] ; # X\n; # (and (== (car X) $Quote) (<> X (cdr X)))\n; # (car X)\n  %259 = inttoptr i64 %258 to i64*\n  %260 = load i64, i64* %259\n; # (== (car X) $Quote)\n  %261 = icmp eq i64 %260, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 264) to i64)\n  br i1 %261, label %$51, label %$50\n$51:\n  %262 = phi i64 [%258, %$9] ; # X\n; # (cdr X)\n  %263 = inttoptr i64 %262 to i64*\n  %264 = getelementptr i64, i64* %263, i32 1\n  %265 = load i64, i64* %264\n; # (<> X (cdr X))\n  %266 = icmp ne i64 %262, %265\n  br label %$50\n$50:\n  %267 = phi i64 [%258, %$9], [%262, %$51] ; # X\n  %268 = phi i1 [0, %$9], [%266, %$51] ; # ->\n  br i1 %268, label %$53, label %$52\n$53:\n  %269 = phi i64 [%267, %$50] ; # X\n; # (call $Put (char \"'\"))\n  %270 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %270(i8 39)\n; # (cdr X)\n  %271 = inttoptr i64 %269 to i64*\n  %272 = getelementptr i64, i64* %271, i32 1\n  %273 = load i64, i64* %272\n; # (print (cdr X))\n  call void @print(i64 %273)\n  br label %$4\n$52:\n  %274 = phi i64 [%267, %$50] ; # X\n; # (stkChk 0)\n  %275 = load i8*, i8** @$StkLimit\n  %276 = call i8* @llvm.stacksave()\n  %277 = icmp ugt i8* %275, %276\n  br i1 %277, label %$54, label %$55\n$54:\n  %278 = phi i64 [0, %$52] ; # Exe\n  call void @stkErr(i64 %278)\n  unreachable\n$55:\n  %279 = phi i64 [0, %$52] ; # Exe\n; # (call $Put (char \"(\"))\n  %280 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %280(i8 40)\n; # (let (P (circ X) Z X) (loop (print (car X)) (? (nil? (shift X))) ...\n; # (circ X)\n  %281 = call i64 @circ(i64 %274)\n; # (loop (print (car X)) (? (nil? (shift X))) (? (atom X) (outString...\n  br label %$56\n$56:\n  %282 = phi i64 [%274, %$55], [%322, %$66] ; # X\n  %283 = phi i64 [%281, %$55], [%323, %$66] ; # P\n  %284 = phi i64 [%274, %$55], [%324, %$66] ; # Z\n; # (car X)\n  %285 = inttoptr i64 %282 to i64*\n  %286 = load i64, i64* %285\n; # (print (car X))\n  call void @print(i64 %286)\n; # (? (nil? (shift X)))\n; # (shift X)\n  %287 = inttoptr i64 %282 to i64*\n  %288 = getelementptr i64, i64* %287, i32 1\n  %289 = load i64, i64* %288\n; # (nil? (shift X))\n  %290 = icmp eq i64 %289, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %290, label %$58, label %$57\n$57:\n  %291 = phi i64 [%289, %$56] ; # X\n  %292 = phi i64 [%283, %$56] ; # P\n  %293 = phi i64 [%284, %$56] ; # Z\n; # (? (atom X) (outString ($ \" . \")) (print X))\n; # (atom X)\n  %294 = and i64 %291, 15\n  %295 = icmp ne i64 %294, 0\n  br i1 %295, label %$60, label %$59\n$60:\n  %296 = phi i64 [%291, %$57] ; # X\n  %297 = phi i64 [%292, %$57] ; # P\n  %298 = phi i64 [%293, %$57] ; # Z\n; # (outString ($ \" . \"))\n  call void @outString(i8* bitcast ([4 x i8]* @$47 to i8*))\n; # (print X)\n  call void @print(i64 %296)\n  br label %$58\n$59:\n  %299 = phi i64 [%291, %$57] ; # X\n  %300 = phi i64 [%292, %$57] ; # P\n  %301 = phi i64 [%293, %$57] ; # Z\n; # (space)\n  call void @space()\n; # (? (== Z X) (call $Put (char \".\")) (unless P (call $Put (char \")\"...\n; # (== Z X)\n  %302 = icmp eq i64 %301, %299\n  br i1 %302, label %$62, label %$61\n$62:\n  %303 = phi i64 [%299, %$59] ; # X\n  %304 = phi i64 [%300, %$59] ; # P\n  %305 = phi i64 [%301, %$59] ; # Z\n; # (call $Put (char \".\"))\n  %306 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %306(i8 46)\n; # (unless P (call $Put (char \")\")))\n  %307 = icmp ne i64 %304, 0\n  br i1 %307, label %$64, label %$63\n$63:\n  %308 = phi i64 [%303, %$62] ; # X\n  %309 = phi i64 [%304, %$62] ; # P\n  %310 = phi i64 [%305, %$62] ; # Z\n; # (call $Put (char \")\"))\n  %311 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %311(i8 41)\n  br label %$64\n$64:\n  %312 = phi i64 [%303, %$62], [%308, %$63] ; # X\n  %313 = phi i64 [%304, %$62], [%309, %$63] ; # P\n  %314 = phi i64 [%305, %$62], [%310, %$63] ; # Z\n  br label %$58\n$61:\n  %315 = phi i64 [%299, %$59] ; # X\n  %316 = phi i64 [%300, %$59] ; # P\n  %317 = phi i64 [%301, %$59] ; # Z\n; # (when (== P X) (outString ($ \". (\")) (setq Z P P 0))\n; # (== P X)\n  %318 = icmp eq i64 %316, %315\n  br i1 %318, label %$65, label %$66\n$65:\n  %319 = phi i64 [%315, %$61] ; # X\n  %320 = phi i64 [%316, %$61] ; # P\n  %321 = phi i64 [%317, %$61] ; # Z\n; # (outString ($ \". (\"))\n  call void @outString(i8* bitcast ([4 x i8]* @$48 to i8*))\n  br label %$66\n$66:\n  %322 = phi i64 [%315, %$61], [%319, %$65] ; # X\n  %323 = phi i64 [%316, %$61], [0, %$65] ; # P\n  %324 = phi i64 [%317, %$61], [%320, %$65] ; # Z\n  br label %$56\n$58:\n  %325 = phi i64 [%289, %$56], [%296, %$60], [%312, %$64] ; # X\n  %326 = phi i64 [%283, %$56], [%297, %$60], [%313, %$64] ; # P\n  %327 = phi i64 [%284, %$56], [%298, %$60], [%314, %$64] ; # Z\n; # (call $Put (char \")\"))\n  %328 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %328(i8 41)\n  br label %$4\n$4:\n  %329 = phi i64 [%7, %$6], [%11, %$8], [%257, %$11], [%269, %$53], [%325, %$58] ; # X\n  ret void\n}\n\ndefine void @prin(i64) align 8 {\n$1:\n; # (sigChk 0)\n  %1 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [0, %$1] ; # Exe\n  call void @sighandler(i64 %3)\n  br label %$3\n$3:\n  %4 = phi i64 [0, %$1], [%3, %$2] ; # Exe\n; # (unless (nil? X) (cond ((cnt? X) (outNum X)) ((big? X) (fmtNum X ...\n; # (nil? X)\n  %5 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %5, label %$5, label %$4\n$4:\n  %6 = phi i64 [%0, %$3] ; # X\n; # (cond ((cnt? X) (outNum X)) ((big? X) (fmtNum X 0 0 0 null)) ((pa...\n; # (cnt? X)\n  %7 = and i64 %6, 2\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$8, label %$7\n$8:\n  %9 = phi i64 [%6, %$4] ; # X\n; # (outNum X)\n  call void @outNum(i64 %9)\n  br label %$6\n$7:\n  %10 = phi i64 [%6, %$4] ; # X\n; # (big? X)\n  %11 = and i64 %10, 4\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$10, label %$9\n$10:\n  %13 = phi i64 [%10, %$7] ; # X\n; # (fmtNum X 0 0 0 null)\n  %14 = call i64 @fmtNum(i64 %13, i64 0, i8 0, i8 0, i64* null)\n  br label %$6\n$9:\n  %15 = phi i64 [%10, %$7] ; # X\n; # (pair X)\n  %16 = and i64 %15, 15\n  %17 = icmp eq i64 %16, 0\n  br i1 %17, label %$12, label %$11\n$12:\n  %18 = phi i64 [%15, %$9] ; # X\n; # (stkChk 0)\n  %19 = load i8*, i8** @$StkLimit\n  %20 = call i8* @llvm.stacksave()\n  %21 = icmp ugt i8* %19, %20\n  br i1 %21, label %$13, label %$14\n$13:\n  %22 = phi i64 [0, %$12] ; # Exe\n  call void @stkErr(i64 %22)\n  unreachable\n$14:\n  %23 = phi i64 [0, %$12] ; # Exe\n; # (loop (prin (car X)) (? (nil? (shift X))) (? (atom X) (prin X)))\n  br label %$15\n$15:\n  %24 = phi i64 [%18, %$14], [%35, %$18] ; # X\n; # (car X)\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n; # (prin (car X))\n  call void @prin(i64 %26)\n; # (? (nil? (shift X)))\n; # (shift X)\n  %27 = inttoptr i64 %24 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (nil? (shift X))\n  %30 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %30, label %$17, label %$16\n$16:\n  %31 = phi i64 [%29, %$15] ; # X\n; # (? (atom X) (prin X))\n; # (atom X)\n  %32 = and i64 %31, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$19, label %$18\n$19:\n  %34 = phi i64 [%31, %$16] ; # X\n; # (prin X)\n  call void @prin(i64 %34)\n  br label %$17\n$18:\n  %35 = phi i64 [%31, %$16] ; # X\n  br label %$15\n$17:\n  %36 = phi i64 [%29, %$15], [%34, %$19] ; # X\n  br label %$6\n$11:\n  %37 = phi i64 [%15, %$9] ; # X\n; # (tail X)\n  %38 = add i64 %37, -8\n; # (val (tail X))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (sym? (val (tail X)))\n  %41 = and i64 %40, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$21, label %$20\n$21:\n  %43 = phi i64 [%37, %$11] ; # X\n; # (call $Put (char \"{\"))\n  %44 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %44(i8 123)\n; # (& @ -9)\n  %45 = and i64 %40, -9\n; # (name (& @ -9))\n  br label %$22\n$22:\n  %46 = phi i64 [%45, %$21], [%52, %$23] ; # Tail\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$24, label %$23\n$23:\n  %49 = phi i64 [%46, %$22] ; # Tail\n  %50 = inttoptr i64 %49 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n  br label %$22\n$24:\n  %53 = phi i64 [%46, %$22] ; # Tail\n; # (prExt (name (& @ -9)))\n  call void @prExt(i64 %53)\n; # (call $Put (char \"}\"))\n  %54 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %54(i8 125)\n  br label %$6\n$20:\n  %55 = phi i64 [%37, %$11] ; # X\n; # (name @)\n  br label %$25\n$25:\n  %56 = phi i64 [%40, %$20], [%62, %$26] ; # Tail\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$27, label %$26\n$26:\n  %59 = phi i64 [%56, %$25] ; # Tail\n  %60 = inttoptr i64 %59 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  br label %$25\n$27:\n  %63 = phi i64 [%56, %$25] ; # Tail\n; # (prName (name @))\n  call void @prName(i64 %63)\n  br label %$6\n$6:\n  %64 = phi i64 [%9, %$8], [%13, %$10], [%36, %$17], [%43, %$24], [%55, %$27] ; # X\n  br label %$5\n$5:\n  %65 = phi i64 [%0, %$3], [%64, %$6] ; # X\n  ret void\n}\n\ndefine i64 @_Prin(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (++ X)) (prin Y) (? (atom X) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (++ X)) (prin Y) (? (atom X) Y)))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%28, %$8] ; # Exe\n  %5 = phi i64 [%3, %$1], [%29, %$8] ; # X\n; # (let Y (eval (++ X)) (prin Y) (? (atom X) Y))\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (eval (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$5, label %$4\n$5:\n  %12 = phi i64 [%9, %$2] ; # X\n  br label %$3\n$4:\n  %13 = phi i64 [%9, %$2] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$7, label %$6\n$7:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$3\n$6:\n  %19 = phi i64 [%13, %$4] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$3\n$3:\n  %21 = phi i64 [%12, %$5], [%16, %$7], [%19, %$6] ; # X\n  %22 = phi i64 [%12, %$5], [%18, %$7], [%20, %$6] ; # ->\n; # (prin Y)\n  call void @prin(i64 %22)\n; # (? (atom X) Y)\n; # (atom X)\n  %23 = and i64 %8, 15\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$10, label %$8\n$10:\n  %25 = phi i64 [%4, %$3] ; # Exe\n  %26 = phi i64 [%8, %$3] ; # X\n  %27 = phi i64 [%22, %$3] ; # Y\n  br label %$9\n$8:\n  %28 = phi i64 [%4, %$3] ; # Exe\n  %29 = phi i64 [%8, %$3] ; # X\n  %30 = phi i64 [%22, %$3] ; # Y\n  br label %$2\n$9:\n  %31 = phi i64 [%25, %$10] ; # Exe\n  %32 = phi i64 [%26, %$10] ; # X\n  %33 = phi i64 [%27, %$10] ; # ->\n  ret i64 %33\n}\n\ndefine i64 @_Prinl(i64) align 8 {\n$1:\n; # (prog1 (_Prin Exe) (newline))\n; # (_Prin Exe)\n  %1 = call i64 @_Prin(i64 %0)\n; # (newline)\n  call void @newline()\n  ret i64 %1\n}\n\ndefine i64 @_Space(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (ifn (nil? X) (let N (xCnt Exe X) (while...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (ifn (nil? X) (let N (xCnt Exe X) (while (ge0 (dec 'N)) (space)) ...\n; # (nil? X)\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$8, label %$7\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%18, %$2] ; # X\n; # (let N (xCnt Exe X) (while (ge0 (dec 'N)) (space)) X)\n; # (xCnt Exe X)\n  %22 = call i64 @xCnt(i64 %20, i64 %21)\n; # (while (ge0 (dec 'N)) (space))\n  br label %$10\n$10:\n  %23 = phi i64 [%20, %$7], [%28, %$11] ; # Exe\n  %24 = phi i64 [%21, %$7], [%29, %$11] ; # X\n  %25 = phi i64 [%22, %$7], [%30, %$11] ; # N\n; # (dec 'N)\n  %26 = sub i64 %25, 1\n; # (ge0 (dec 'N))\n  %27 = icmp sge i64 %26, 0\n  br i1 %27, label %$11, label %$12\n$11:\n  %28 = phi i64 [%23, %$10] ; # Exe\n  %29 = phi i64 [%24, %$10] ; # X\n  %30 = phi i64 [%26, %$10] ; # N\n; # (space)\n  call void @space()\n  br label %$10\n$12:\n  %31 = phi i64 [%23, %$10] ; # Exe\n  %32 = phi i64 [%24, %$10] ; # X\n  %33 = phi i64 [%26, %$10] ; # N\n  br label %$9\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%18, %$2] ; # X\n; # (space)\n  call void @space()\n  br label %$9\n$9:\n  %36 = phi i64 [%31, %$12], [%34, %$8] ; # Exe\n  %37 = phi i64 [%32, %$12], [%35, %$8] ; # X\n  %38 = phi i64 [%32, %$12], [18, %$8] ; # ->\n  ret i64 %38\n}\n\ndefine i64 @_Print(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (++ X)) (print Y) (? (atom X)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (++ X)) (print Y) (? (atom X) Y) (space)))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%28, %$8] ; # Exe\n  %5 = phi i64 [%3, %$1], [%29, %$8] ; # X\n; # (let Y (eval (++ X)) (print Y) (? (atom X) Y) (space))\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (eval (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$5, label %$4\n$5:\n  %12 = phi i64 [%9, %$2] ; # X\n  br label %$3\n$4:\n  %13 = phi i64 [%9, %$2] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$7, label %$6\n$7:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$3\n$6:\n  %19 = phi i64 [%13, %$4] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$3\n$3:\n  %21 = phi i64 [%12, %$5], [%16, %$7], [%19, %$6] ; # X\n  %22 = phi i64 [%12, %$5], [%18, %$7], [%20, %$6] ; # ->\n; # (print Y)\n  call void @print(i64 %22)\n; # (? (atom X) Y)\n; # (atom X)\n  %23 = and i64 %8, 15\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$10, label %$8\n$10:\n  %25 = phi i64 [%4, %$3] ; # Exe\n  %26 = phi i64 [%8, %$3] ; # X\n  %27 = phi i64 [%22, %$3] ; # Y\n  br label %$9\n$8:\n  %28 = phi i64 [%4, %$3] ; # Exe\n  %29 = phi i64 [%8, %$3] ; # X\n  %30 = phi i64 [%22, %$3] ; # Y\n; # (space)\n  call void @space()\n  br label %$2\n$9:\n  %31 = phi i64 [%25, %$10] ; # Exe\n  %32 = phi i64 [%26, %$10] ; # X\n  %33 = phi i64 [%27, %$10] ; # ->\n  ret i64 %33\n}\n\ndefine i64 @_Printsp(i64) align 8 {\n$1:\n; # (prog1 (_Print Exe) (space))\n; # (_Print Exe)\n  %1 = call i64 @_Print(i64 %0)\n; # (space)\n  call void @space()\n  ret i64 %1\n}\n\ndefine i64 @_Println(i64) align 8 {\n$1:\n; # (prog1 (_Print Exe) (newline))\n; # (_Print Exe)\n  %1 = call i64 @_Print(i64 %0)\n; # (newline)\n  call void @newline()\n  ret i64 %1\n}\n\ndefine i64 @_Flush(i64) align 8 {\n$1:\n; # (if (flush (val $OutFile)) $T $Nil)\n; # (val $OutFile)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (flush (val $OutFile))\n  %2 = call i1 @flush(i8* %1)\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$4:\n  %5 = phi i64 [%3, %$2], [%4, %$3] ; # Exe\n  %6 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %6\n}\n\ndefine i64 @_Rewind(i64) align 8 {\n$1:\n; # (let Out: (outFile (val $OutFile)) (if (and (Out:) (let Fd (Out: ...\n; # (val $OutFile)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (if (and (Out:) (let Fd (Out: fd) (Out: ix 0) (and (seek0 Fd) (tr...\n; # (and (Out:) (let Fd (Out: fd) (Out: ix 0) (and (seek0 Fd) (trunca...\n; # (Out:)\n  %2 = icmp ne i8* %1, null\n  br i1 %2, label %$3, label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (let Fd (Out: fd) (Out: ix 0) (and (seek0 Fd) (truncate0 Fd)))\n; # (Out: fd)\n  %4 = bitcast i8* %1 to i32*\n  %5 = load i32, i32* %4\n; # (Out: ix 0)\n  %6 = getelementptr i8, i8* %1, i32 4\n  %7 = bitcast i8* %6 to i32*\n  store i32 0, i32* %7\n; # (and (seek0 Fd) (truncate0 Fd))\n; # (seek0 Fd)\n  %8 = call i1 @seek0(i32 %5)\n  br i1 %8, label %$5, label %$4\n$5:\n  %9 = phi i64 [%3, %$3] ; # Exe\n  %10 = phi i32 [%5, %$3] ; # Fd\n; # (truncate0 Fd)\n  %11 = call i1 @truncate0(i32 %10)\n  br label %$4\n$4:\n  %12 = phi i64 [%3, %$3], [%9, %$5] ; # Exe\n  %13 = phi i32 [%5, %$3], [%10, %$5] ; # Fd\n  %14 = phi i1 [0, %$3], [%11, %$5] ; # ->\n  br label %$2\n$2:\n  %15 = phi i64 [%0, %$1], [%12, %$4] ; # Exe\n  %16 = phi i1 [0, %$1], [%14, %$4] ; # ->\n  br i1 %16, label %$6, label %$7\n$6:\n  %17 = phi i64 [%15, %$2] ; # Exe\n  br label %$8\n$7:\n  %18 = phi i64 [%15, %$2] ; # Exe\n  br label %$8\n$8:\n  %19 = phi i64 [%17, %$6], [%18, %$7] ; # Exe\n  %20 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$6], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7] ; # ->\n  ret i64 %20\n}\n\ndefine i64 @_Ext(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X) Old (val $ExtN)) (set $ExtN (i3...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (val $ExtN)\n  %5 = load i32, i32* @$ExtN\n; # (set $ExtN (i32 N))\n; # (i32 N)\n  %6 = trunc i64 %4 to i32\n  store i32 %6, i32* @$ExtN\n; # (prog1 (run (cdr X)) (set $ExtN Old))\n; # (cdr X)\n  %7 = inttoptr i64 %3 to i64*\n  %8 = getelementptr i64, i64* %7, i32 1\n  %9 = load i64, i64* %8\n; # (run (cdr X))\n  br label %$2\n$2:\n  %10 = phi i64 [%9, %$1], [%40, %$11] ; # Prg\n  %11 = inttoptr i64 %10 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  %14 = load i64, i64* %11\n  %15 = and i64 %13, 15\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$5, label %$3\n$5:\n  %17 = phi i64 [%13, %$2] ; # Prg\n  %18 = phi i64 [%14, %$2] ; # X\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$7\n$8:\n  %21 = phi i64 [%18, %$5] ; # X\n  br label %$6\n$7:\n  %22 = phi i64 [%18, %$5] ; # X\n  %23 = and i64 %22, 8\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$10, label %$9\n$10:\n  %25 = phi i64 [%22, %$7] ; # X\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n  br label %$6\n$9:\n  %28 = phi i64 [%22, %$7] ; # X\n  %29 = call i64 @evList(i64 %28)\n  br label %$6\n$6:\n  %30 = phi i64 [%21, %$8], [%25, %$10], [%28, %$9] ; # X\n  %31 = phi i64 [%21, %$8], [%27, %$10], [%29, %$9] ; # ->\n  br label %$4\n$3:\n  %32 = phi i64 [%13, %$2] ; # Prg\n  %33 = phi i64 [%14, %$2] ; # X\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$12, label %$11\n$12:\n  %36 = phi i64 [%32, %$3] ; # Prg\n  %37 = phi i64 [%33, %$3] ; # X\n  %38 = call i64 @evList(i64 %37)\n  %39 = icmp ne i64 %38, 0\n  br label %$11\n$11:\n  %40 = phi i64 [%32, %$3], [%36, %$12] ; # Prg\n  %41 = phi i64 [%33, %$3], [%37, %$12] ; # X\n  %42 = phi i1 [0, %$3], [%39, %$12] ; # ->\n  br label %$2\n$4:\n  %43 = phi i64 [%17, %$6] ; # Prg\n  %44 = phi i64 [%31, %$6] ; # ->\n; # (set $ExtN Old)\n  store i32 %5, i32* @$ExtN\n  ret i64 %44\n}\n\ndefine i32 @getPlio() align 8 {\n$1:\n; # (let P (val $Ptr) (set $Ptr (inc P)) (i32 (val P)))\n; # (val $Ptr)\n  %0 = load i8*, i8** @$Ptr\n; # (set $Ptr (inc P))\n; # (inc P)\n  %1 = getelementptr i8, i8* %0, i32 1\n  store i8* %1, i8** @$Ptr\n; # (val P)\n  %2 = load i8, i8* %0\n; # (i32 (val P))\n  %3 = zext i8 %2 to i32\n  ret i32 %3\n}\n\ndefine void @putPlio(i8) align 8 {\n$1:\n; # (let P (val $Ptr) (set P B) (when (== (set $Ptr (inc P)) (val $En...\n; # (val $Ptr)\n  %1 = load i8*, i8** @$Ptr\n; # (set P B)\n  store i8 %0, i8* %1\n; # (when (== (set $Ptr (inc P)) (val $End)) (sizeErr 0))\n; # (set $Ptr (inc P))\n; # (inc P)\n  %2 = getelementptr i8, i8* %1, i32 1\n  store i8* %2, i8** @$Ptr\n; # (val $End)\n  %3 = load i8*, i8** @$End\n; # (== (set $Ptr (inc P)) (val $End))\n  %4 = icmp eq i8* %2, %3\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i8 [%0, %$1] ; # B\n  %6 = phi i8* [%1, %$1] ; # P\n; # (sizeErr 0)\n  call void @sizeErr(i64 0)\n  unreachable\n$3:\n  %7 = phi i8 [%0, %$1] ; # B\n  %8 = phi i8* [%1, %$1] ; # P\n  ret void\n}\n\ndefine i64 @_Plio(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) P (i8* (xCnt64 Exe (eval (++ X))))) (let (Ptr (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (xCnt64 Exe (eval (++ X)))\n  %21 = call i64 @xCnt64(i64 %0, i64 %20)\n; # (i8* (xCnt64 Exe (eval (++ X))))\n  %22 = inttoptr i64 %21 to i8*\n; # (let (Ptr (val $Ptr) End (val $End)) (set $Extn (val $ExtN) $Ptr ...\n; # (val $Ptr)\n  %23 = load i8*, i8** @$Ptr\n; # (val $End)\n  %24 = load i8*, i8** @$End\n; # (set $Extn (val $ExtN) $Ptr P)\n; # (val $ExtN)\n  %25 = load i32, i32* @$ExtN\n  store i32 %25, i32* @$Extn\n  store i8* %22, i8** @$Ptr\n; # (prog1 (if (pair X) (let (N (evCnt Exe X) Y (eval (car (shift X))...\n; # (if (pair X) (let (N (evCnt Exe X) Y (eval (car (shift X)))) (set...\n; # (pair X)\n  %26 = and i64 %6, 15\n  %27 = icmp eq i64 %26, 0\n  br i1 %27, label %$7, label %$8\n$7:\n  %28 = phi i64 [%0, %$2] ; # Exe\n  %29 = phi i64 [%6, %$2] ; # X\n  %30 = phi i8* [%22, %$2] ; # P\n  %31 = phi i8* [%23, %$2] ; # Ptr\n  %32 = phi i8* [%24, %$2] ; # End\n; # (let (N (evCnt Exe X) Y (eval (car (shift X)))) (set $PutBin (fun...\n; # (evCnt Exe X)\n  %33 = call i64 @evCnt(i64 %28, i64 %29)\n; # (shift X)\n  %34 = inttoptr i64 %29 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n; # (car (shift X))\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n; # (eval (car (shift X)))\n  %39 = and i64 %38, 6\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$12, label %$11\n$12:\n  %41 = phi i64 [%38, %$7] ; # X\n  br label %$10\n$11:\n  %42 = phi i64 [%38, %$7] ; # X\n  %43 = and i64 %42, 8\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$14, label %$13\n$14:\n  %45 = phi i64 [%42, %$11] ; # X\n  %46 = inttoptr i64 %45 to i64*\n  %47 = load i64, i64* %46\n  br label %$10\n$13:\n  %48 = phi i64 [%42, %$11] ; # X\n  %49 = call i64 @evList(i64 %48)\n  br label %$10\n$10:\n  %50 = phi i64 [%41, %$12], [%45, %$14], [%48, %$13] ; # X\n  %51 = phi i64 [%41, %$12], [%47, %$14], [%49, %$13] ; # ->\n; # (set $PutBin (fun (void i8) putPlio) $End (ofs P N))\n; # (fun (void i8) putPlio)\n  store void(i8)* @putPlio, void(i8)** @$PutBin\n; # (ofs P N)\n  %52 = getelementptr i8, i8* %30, i64 %33\n  store i8* %52, i8** @$End\n; # (binPrint Y)\n  call void @binPrint(i64 %51)\n; # (val $Ptr)\n  %53 = load i8*, i8** @$Ptr\n; # (- (val $Ptr) P)\n  %54 = ptrtoint i8* %53 to i64\n  %55 = ptrtoint i8* %30 to i64\n  %56 = sub i64 %54, %55\n; # (cnt (- (val $Ptr) P))\n  %57 = shl i64 %56, 4\n  %58 = or i64 %57, 2\n  br label %$9\n$8:\n  %59 = phi i64 [%0, %$2] ; # Exe\n  %60 = phi i64 [%6, %$2] ; # X\n  %61 = phi i8* [%22, %$2] ; # P\n  %62 = phi i8* [%23, %$2] ; # Ptr\n  %63 = phi i8* [%24, %$2] ; # End\n; # (set $GetBin (fun (i32) getPlio))\n; # (fun (i32) getPlio)\n  store i32()* @getPlio, i32()** @$GetBin\n; # (if (binRead) @ $Nil)\n; # (binRead)\n  %64 = call i64 @binRead()\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$15, label %$16\n$15:\n  %66 = phi i64 [%59, %$8] ; # Exe\n  %67 = phi i64 [%60, %$8] ; # X\n  %68 = phi i8* [%61, %$8] ; # P\n  %69 = phi i8* [%62, %$8] ; # Ptr\n  %70 = phi i8* [%63, %$8] ; # End\n  br label %$17\n$16:\n  %71 = phi i64 [%59, %$8] ; # Exe\n  %72 = phi i64 [%60, %$8] ; # X\n  %73 = phi i8* [%61, %$8] ; # P\n  %74 = phi i8* [%62, %$8] ; # Ptr\n  %75 = phi i8* [%63, %$8] ; # End\n  br label %$17\n$17:\n  %76 = phi i64 [%66, %$15], [%71, %$16] ; # Exe\n  %77 = phi i64 [%67, %$15], [%72, %$16] ; # X\n  %78 = phi i8* [%68, %$15], [%73, %$16] ; # P\n  %79 = phi i8* [%69, %$15], [%74, %$16] ; # Ptr\n  %80 = phi i8* [%70, %$15], [%75, %$16] ; # End\n  %81 = phi i64 [%64, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16] ; # ->\n  br label %$9\n$9:\n  %82 = phi i64 [%28, %$10], [%76, %$17] ; # Exe\n  %83 = phi i64 [%36, %$10], [%77, %$17] ; # X\n  %84 = phi i8* [%30, %$10], [%78, %$17] ; # P\n  %85 = phi i8* [%31, %$10], [%79, %$17] ; # Ptr\n  %86 = phi i8* [%32, %$10], [%80, %$17] ; # End\n  %87 = phi i64 [%58, %$10], [%81, %$17] ; # ->\n; # (set $Ptr Ptr $End End)\n  store i8* %85, i8** @$Ptr\n  store i8* %86, i8** @$End\n  ret i64 %87\n}\n\ndefine i64 @_Rd(i64) align 8 {\n$1:\n; # (let X (save (eval (cadr Exe))) (cond ((lt0 ((inFile (val $InFile...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (cadr Exe)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (cond ((lt0 ((inFile (val $InFile)) fd)) $Nil) ((num? X) (let (P ...\n; # (val $InFile)\n  %27 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # ((inFile (val $InFile)) fd)\n  %28 = getelementptr i8, i8* %27, i32 8\n  %29 = bitcast i8* %28 to i32*\n  %30 = load i32, i32* %29\n; # (lt0 ((inFile (val $InFile)) fd))\n  %31 = icmp slt i32 %30, 0\n  br i1 %31, label %$9, label %$8\n$9:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%18, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%18, %$2] ; # X\n; # (num? X)\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$11, label %$10\n$11:\n  %38 = phi i64 [%34, %$8] ; # Exe\n  %39 = phi i64 [%35, %$8] ; # X\n; # (let (P (push 3 NIL ZERO NIL) Q (link (ofs P 2)) Cnt (int X)) (co...\n; # (push 3 NIL ZERO NIL)\n  %40 = alloca i64, i64 4, align 16\n  store i64 3, i64* %40\n  %41 = getelementptr i64, i64* %40, i32 2\n  store i64 2, i64* %41\n; # (ofs P 2)\n  %42 = getelementptr i64, i64* %40, i32 2\n; # (link (ofs P 2))\n  %43 = ptrtoint i64* %42 to i64\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %43 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  store i64 %45, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %43, i64* %48\n; # (int X)\n  %49 = lshr i64 %39, 4\n; # (cond ((=0 Cnt) $Nil) ((sign? X) (loop (when (lt0 (getBinary)) (:...\n; # (=0 Cnt)\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$14, label %$13\n$14:\n  %51 = phi i64 [%38, %$11] ; # Exe\n  %52 = phi i64 [%39, %$11] ; # X\n  %53 = phi i64* [%40, %$11] ; # P\n  %54 = phi i64 [%43, %$11] ; # Q\n  %55 = phi i64 [%49, %$11] ; # Cnt\n  br label %$12\n$13:\n  %56 = phi i64 [%38, %$11] ; # Exe\n  %57 = phi i64 [%39, %$11] ; # X\n  %58 = phi i64* [%40, %$11] ; # P\n  %59 = phi i64 [%43, %$11] ; # Q\n  %60 = phi i64 [%49, %$11] ; # Cnt\n; # (sign? X)\n  %61 = and i64 %57, 8\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$16, label %$15\n$16:\n  %63 = phi i64 [%56, %$13] ; # Exe\n  %64 = phi i64 [%57, %$13] ; # X\n  %65 = phi i64* [%58, %$13] ; # P\n  %66 = phi i64 [%59, %$13] ; # Q\n  %67 = phi i64 [%60, %$13] ; # Cnt\n; # (loop (when (lt0 (getBinary)) (: 1 (ret $Nil))) (byteNum (i8 @) P...\n  br label %$17\n$17:\n  %68 = phi i64 [%63, %$16], [%97, %$20] ; # Exe\n  %69 = phi i64 [%64, %$16], [%98, %$20] ; # X\n  %70 = phi i64* [%65, %$16], [%99, %$20] ; # P\n  %71 = phi i64 [%66, %$16], [%100, %$20] ; # Q\n  %72 = phi i64 [%67, %$16], [%101, %$20] ; # Cnt\n; # (when (lt0 (getBinary)) (: 1 (ret $Nil)))\n; # (getBinary)\n  %73 = call i32 @getBinary()\n; # (lt0 (getBinary))\n  %74 = icmp slt i32 %73, 0\n  br i1 %74, label %$18, label %$19\n$18:\n  %75 = phi i64 [%68, %$17] ; # Exe\n  %76 = phi i64 [%69, %$17] ; # X\n  %77 = phi i64* [%70, %$17] ; # P\n  %78 = phi i64 [%71, %$17] ; # Q\n  %79 = phi i64 [%72, %$17] ; # Cnt\n; # (: 1 (ret $Nil))\n  br label %$-1\n$-1:\n  %80 = phi i64 [%75, %$18], [%142, %$26] ; # Exe\n  %81 = phi i64 [%76, %$18], [%143, %$26] ; # X\n  %82 = phi i64* [%77, %$18], [%144, %$26] ; # P\n  %83 = phi i64 [%78, %$18], [%145, %$26] ; # Q\n  %84 = phi i64 [%79, %$18], [%146, %$26] ; # Cnt\n; # (ret $Nil)\n; # (drop *Safe)\n  %85 = inttoptr i64 %22 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  %87 = load i64, i64* %86\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %87, i64* %88\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$19:\n  %89 = phi i64 [%68, %$17] ; # Exe\n  %90 = phi i64 [%69, %$17] ; # X\n  %91 = phi i64* [%70, %$17] ; # P\n  %92 = phi i64 [%71, %$17] ; # Q\n  %93 = phi i64 [%72, %$17] ; # Cnt\n; # (i8 @)\n  %94 = trunc i32 %73 to i8\n; # (byteNum (i8 @) P)\n  call void @byteNum(i8 %94, i64* %91)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %95 = sub i64 %93, 1\n; # (=0 (dec 'Cnt))\n  %96 = icmp eq i64 %95, 0\n  br i1 %96, label %$21, label %$20\n$20:\n  %97 = phi i64 [%89, %$19] ; # Exe\n  %98 = phi i64 [%90, %$19] ; # X\n  %99 = phi i64* [%91, %$19] ; # P\n  %100 = phi i64 [%92, %$19] ; # Q\n  %101 = phi i64 [%95, %$19] ; # Cnt\n  br label %$17\n$21:\n  %102 = phi i64 [%89, %$19] ; # Exe\n  %103 = phi i64 [%90, %$19] ; # X\n  %104 = phi i64* [%91, %$19] ; # P\n  %105 = phi i64 [%92, %$19] ; # Q\n  %106 = phi i64 [%95, %$19] ; # Cnt\n  %107 = phi i64 [0, %$19] ; # ->\n; # (if (cnt? (val Q)) (twice @) (zapZero @))\n; # (val Q)\n  %108 = inttoptr i64 %105 to i64*\n  %109 = load i64, i64* %108\n; # (cnt? (val Q))\n  %110 = and i64 %109, 2\n  %111 = icmp ne i64 %110, 0\n  br i1 %111, label %$22, label %$23\n$22:\n  %112 = phi i64 [%102, %$21] ; # Exe\n  %113 = phi i64 [%103, %$21] ; # X\n  %114 = phi i64* [%104, %$21] ; # P\n  %115 = phi i64 [%105, %$21] ; # Q\n  %116 = phi i64 [%106, %$21] ; # Cnt\n; # (twice @)\n  %117 = call i64 @twice(i64 %109)\n  br label %$24\n$23:\n  %118 = phi i64 [%102, %$21] ; # Exe\n  %119 = phi i64 [%103, %$21] ; # X\n  %120 = phi i64* [%104, %$21] ; # P\n  %121 = phi i64 [%105, %$21] ; # Q\n  %122 = phi i64 [%106, %$21] ; # Cnt\n; # (zapZero @)\n  %123 = call i64 @zapZero(i64 %109)\n  br label %$24\n$24:\n  %124 = phi i64 [%112, %$22], [%118, %$23] ; # Exe\n  %125 = phi i64 [%113, %$22], [%119, %$23] ; # X\n  %126 = phi i64* [%114, %$22], [%120, %$23] ; # P\n  %127 = phi i64 [%115, %$22], [%121, %$23] ; # Q\n  %128 = phi i64 [%116, %$22], [%122, %$23] ; # Cnt\n  %129 = phi i64 [%117, %$22], [%123, %$23] ; # ->\n  br label %$12\n$15:\n  %130 = phi i64 [%56, %$13] ; # Exe\n  %131 = phi i64 [%57, %$13] ; # X\n  %132 = phi i64* [%58, %$13] ; # P\n  %133 = phi i64 [%59, %$13] ; # Q\n  %134 = phi i64 [%60, %$13] ; # Cnt\n; # (loop (when (lt0 (getBinary)) (goto 1)) (set Q (addu (cnt (i64 @)...\n  br label %$25\n$25:\n  %135 = phi i64 [%130, %$15], [%163, %$28] ; # Exe\n  %136 = phi i64 [%131, %$15], [%164, %$28] ; # X\n  %137 = phi i64* [%132, %$15], [%165, %$28] ; # P\n  %138 = phi i64 [%133, %$15], [%166, %$28] ; # Q\n  %139 = phi i64 [%134, %$15], [%167, %$28] ; # Cnt\n; # (when (lt0 (getBinary)) (goto 1))\n; # (getBinary)\n  %140 = call i32 @getBinary()\n; # (lt0 (getBinary))\n  %141 = icmp slt i32 %140, 0\n  br i1 %141, label %$26, label %$27\n$26:\n  %142 = phi i64 [%135, %$25] ; # Exe\n  %143 = phi i64 [%136, %$25] ; # X\n  %144 = phi i64* [%137, %$25] ; # P\n  %145 = phi i64 [%138, %$25] ; # Q\n  %146 = phi i64 [%139, %$25] ; # Cnt\n; # (goto 1)\n  br label %$-1\n$27:\n  %147 = phi i64 [%135, %$25] ; # Exe\n  %148 = phi i64 [%136, %$25] ; # X\n  %149 = phi i64* [%137, %$25] ; # P\n  %150 = phi i64 [%138, %$25] ; # Q\n  %151 = phi i64 [%139, %$25] ; # Cnt\n; # (set Q (addu (cnt (i64 @)) (set Q (mulu (val Q) (hex \"1002\")))))\n; # (i64 @)\n  %152 = sext i32 %140 to i64\n; # (cnt (i64 @))\n  %153 = shl i64 %152, 4\n  %154 = or i64 %153, 2\n; # (set Q (mulu (val Q) (hex \"1002\")))\n; # (val Q)\n  %155 = inttoptr i64 %150 to i64*\n  %156 = load i64, i64* %155\n; # (mulu (val Q) (hex \"1002\"))\n  %157 = call i64 @mulu(i64 %156, i64 4098)\n  %158 = inttoptr i64 %150 to i64*\n  store i64 %157, i64* %158\n; # (addu (cnt (i64 @)) (set Q (mulu (val Q) (hex \"1002\"))))\n  %159 = call i64 @addu(i64 %154, i64 %157)\n  %160 = inttoptr i64 %150 to i64*\n  store i64 %159, i64* %160\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %161 = sub i64 %151, 1\n; # (=0 (dec 'Cnt))\n  %162 = icmp eq i64 %161, 0\n  br i1 %162, label %$29, label %$28\n$28:\n  %163 = phi i64 [%147, %$27] ; # Exe\n  %164 = phi i64 [%148, %$27] ; # X\n  %165 = phi i64* [%149, %$27] ; # P\n  %166 = phi i64 [%150, %$27] ; # Q\n  %167 = phi i64 [%161, %$27] ; # Cnt\n  br label %$25\n$29:\n  %168 = phi i64 [%147, %$27] ; # Exe\n  %169 = phi i64 [%148, %$27] ; # X\n  %170 = phi i64* [%149, %$27] ; # P\n  %171 = phi i64 [%150, %$27] ; # Q\n  %172 = phi i64 [%161, %$27] ; # Cnt\n  %173 = phi i64 [0, %$27] ; # ->\n; # (if (cnt? (val Q)) @ (zapZero @))\n; # (val Q)\n  %174 = inttoptr i64 %171 to i64*\n  %175 = load i64, i64* %174\n; # (cnt? (val Q))\n  %176 = and i64 %175, 2\n  %177 = icmp ne i64 %176, 0\n  br i1 %177, label %$30, label %$31\n$30:\n  %178 = phi i64 [%168, %$29] ; # Exe\n  %179 = phi i64 [%169, %$29] ; # X\n  %180 = phi i64* [%170, %$29] ; # P\n  %181 = phi i64 [%171, %$29] ; # Q\n  %182 = phi i64 [%172, %$29] ; # Cnt\n  br label %$32\n$31:\n  %183 = phi i64 [%168, %$29] ; # Exe\n  %184 = phi i64 [%169, %$29] ; # X\n  %185 = phi i64* [%170, %$29] ; # P\n  %186 = phi i64 [%171, %$29] ; # Q\n  %187 = phi i64 [%172, %$29] ; # Cnt\n; # (zapZero @)\n  %188 = call i64 @zapZero(i64 %175)\n  br label %$32\n$32:\n  %189 = phi i64 [%178, %$30], [%183, %$31] ; # Exe\n  %190 = phi i64 [%179, %$30], [%184, %$31] ; # X\n  %191 = phi i64* [%180, %$30], [%185, %$31] ; # P\n  %192 = phi i64 [%181, %$30], [%186, %$31] ; # Q\n  %193 = phi i64 [%182, %$30], [%187, %$31] ; # Cnt\n  %194 = phi i64 [%175, %$30], [%188, %$31] ; # ->\n  br label %$12\n$12:\n  %195 = phi i64 [%51, %$14], [%124, %$24], [%189, %$32] ; # Exe\n  %196 = phi i64 [%52, %$14], [%125, %$24], [%190, %$32] ; # X\n  %197 = phi i64* [%53, %$14], [%126, %$24], [%191, %$32] ; # P\n  %198 = phi i64 [%54, %$14], [%127, %$24], [%192, %$32] ; # Q\n  %199 = phi i64 [%55, %$14], [%128, %$24], [%193, %$32] ; # Cnt\n  %200 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14], [%129, %$24], [%194, %$32] ; # ->\n  br label %$7\n$10:\n  %201 = phi i64 [%34, %$8] ; # Exe\n  %202 = phi i64 [%35, %$8] ; # X\n; # (set $GetBin (fun (i32) getBinary) $Extn (val $ExtN))\n; # (fun (i32) getBinary)\n  store i32()* @getBinary, i32()** @$GetBin\n; # (val $ExtN)\n  %203 = load i32, i32* @$ExtN\n  store i32 %203, i32* @$Extn\n; # (if (binRead) @ X)\n; # (binRead)\n  %204 = call i64 @binRead()\n  %205 = icmp ne i64 %204, 0\n  br i1 %205, label %$33, label %$34\n$33:\n  %206 = phi i64 [%201, %$10] ; # Exe\n  %207 = phi i64 [%202, %$10] ; # X\n  br label %$35\n$34:\n  %208 = phi i64 [%201, %$10] ; # Exe\n  %209 = phi i64 [%202, %$10] ; # X\n  br label %$35\n$35:\n  %210 = phi i64 [%206, %$33], [%208, %$34] ; # Exe\n  %211 = phi i64 [%207, %$33], [%209, %$34] ; # X\n  %212 = phi i64 [%204, %$33], [%209, %$34] ; # ->\n  br label %$7\n$7:\n  %213 = phi i64 [%32, %$9], [%195, %$12], [%210, %$35] ; # Exe\n  %214 = phi i64 [%33, %$9], [%196, %$12], [%211, %$35] ; # X\n  %215 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%200, %$12], [%212, %$35] ; # ->\n; # (drop *Safe)\n  %216 = inttoptr i64 %22 to i64*\n  %217 = getelementptr i64, i64* %216, i32 1\n  %218 = load i64, i64* %217\n  %219 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %218, i64* %219\n  ret i64 %215\n}\n\ndefine i64 @_Pr(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (++ X)) (set $Extn (val $ExtN...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (++ X)) (set $Extn (val $ExtN)) (pr Y) (? (ato...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%29, %$8] ; # Exe\n  %5 = phi i64 [%3, %$1], [%30, %$8] ; # X\n; # (let Y (eval (++ X)) (set $Extn (val $ExtN)) (pr Y) (? (atom X) Y...\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (eval (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$5, label %$4\n$5:\n  %12 = phi i64 [%9, %$2] ; # X\n  br label %$3\n$4:\n  %13 = phi i64 [%9, %$2] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$7, label %$6\n$7:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$3\n$6:\n  %19 = phi i64 [%13, %$4] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$3\n$3:\n  %21 = phi i64 [%12, %$5], [%16, %$7], [%19, %$6] ; # X\n  %22 = phi i64 [%12, %$5], [%18, %$7], [%20, %$6] ; # ->\n; # (set $Extn (val $ExtN))\n; # (val $ExtN)\n  %23 = load i32, i32* @$ExtN\n  store i32 %23, i32* @$Extn\n; # (pr Y)\n  call void @pr(i64 %22)\n; # (? (atom X) Y)\n; # (atom X)\n  %24 = and i64 %8, 15\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$10, label %$8\n$10:\n  %26 = phi i64 [%4, %$3] ; # Exe\n  %27 = phi i64 [%8, %$3] ; # X\n  %28 = phi i64 [%22, %$3] ; # Y\n  br label %$9\n$8:\n  %29 = phi i64 [%4, %$3] ; # Exe\n  %30 = phi i64 [%8, %$3] ; # X\n  %31 = phi i64 [%22, %$3] ; # Y\n  br label %$2\n$9:\n  %32 = phi i64 [%26, %$10] ; # Exe\n  %33 = phi i64 [%27, %$10] ; # X\n  %34 = phi i64 [%28, %$10] ; # ->\n  ret i64 %34\n}\n\ndefine i64 @_Wr(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let N (eval (++ X)) (_putStdout (i8 (int ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let N (eval (++ X)) (_putStdout (i8 (int N))) (? (atom X) ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%30, %$8] ; # Exe\n  %5 = phi i64 [%3, %$1], [%31, %$8] ; # X\n; # (let N (eval (++ X)) (_putStdout (i8 (int N))) (? (atom X) N))\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (eval (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$5, label %$4\n$5:\n  %12 = phi i64 [%9, %$2] ; # X\n  br label %$3\n$4:\n  %13 = phi i64 [%9, %$2] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$7, label %$6\n$7:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$3\n$6:\n  %19 = phi i64 [%13, %$4] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$3\n$3:\n  %21 = phi i64 [%12, %$5], [%16, %$7], [%19, %$6] ; # X\n  %22 = phi i64 [%12, %$5], [%18, %$7], [%20, %$6] ; # ->\n; # (int N)\n  %23 = lshr i64 %22, 4\n; # (i8 (int N))\n  %24 = trunc i64 %23 to i8\n; # (_putStdout (i8 (int N)))\n  call void @_putStdout(i8 %24)\n; # (? (atom X) N)\n; # (atom X)\n  %25 = and i64 %8, 15\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$8\n$10:\n  %27 = phi i64 [%4, %$3] ; # Exe\n  %28 = phi i64 [%8, %$3] ; # X\n  %29 = phi i64 [%22, %$3] ; # N\n  br label %$9\n$8:\n  %30 = phi i64 [%4, %$3] ; # Exe\n  %31 = phi i64 [%8, %$3] ; # X\n  %32 = phi i64 [%22, %$3] ; # N\n  br label %$2\n$9:\n  %33 = phi i64 [%27, %$10] ; # Exe\n  %34 = phi i64 [%28, %$10] ; # X\n  %35 = phi i64 [%29, %$10] ; # ->\n  ret i64 %35\n}\n\ndefine i32 @getParse() align 8 {\n$1:\n; # (let P (val $Parser) (set $Chr (if (i32 (symByte P)) @ (let C (va...\n; # (val $Parser)\n  %0 = load i64*, i64** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 104) to i64**)\n; # (set $Chr (if (i32 (symByte P)) @ (let C (val 3 P) (set 3 P (shr ...\n; # (if (i32 (symByte P)) @ (let C (val 3 P) (set 3 P (shr C 8)) (if ...\n; # (symByte P)\n  %1 = call i8 @symByte(i64* %0)\n; # (i32 (symByte P))\n  %2 = zext i8 %1 to i32\n  %3 = icmp ne i32 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64* [%0, %$1] ; # P\n  br label %$4\n$3:\n  %5 = phi i64* [%0, %$1] ; # P\n; # (let C (val 3 P) (set 3 P (shr C 8)) (if C (i32 (i8 C)) -1))\n; # (val 3 P)\n  %6 = getelementptr i64, i64* %5, i32 2\n  %7 = load i64, i64* %6\n; # (set 3 P (shr C 8))\n; # (shr C 8)\n  %8 = lshr i64 %7, 8\n  %9 = getelementptr i64, i64* %5, i32 2\n  store i64 %8, i64* %9\n; # (if C (i32 (i8 C)) -1)\n  %10 = icmp ne i64 %7, 0\n  br i1 %10, label %$5, label %$6\n$5:\n  %11 = phi i64* [%5, %$3] ; # P\n  %12 = phi i64 [%7, %$3] ; # C\n; # (i8 C)\n  %13 = trunc i64 %12 to i8\n; # (i32 (i8 C))\n  %14 = zext i8 %13 to i32\n  br label %$7\n$6:\n  %15 = phi i64* [%5, %$3] ; # P\n  %16 = phi i64 [%7, %$3] ; # C\n  br label %$7\n$7:\n  %17 = phi i64* [%11, %$5], [%15, %$6] ; # P\n  %18 = phi i64 [%12, %$5], [%16, %$6] ; # C\n  %19 = phi i32 [%14, %$5], [-1, %$6] ; # ->\n  br label %$4\n$4:\n  %20 = phi i64* [%4, %$2], [%17, %$7] ; # P\n  %21 = phi i32 [%2, %$2], [%19, %$7] ; # ->\n  store i32 %21, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  ret i32 %21\n}\n\ndefine i64 @parse(i64, i1, i64, i64) align 8 {\n$1:\n; # (let (Chr (val $Chr) Get (val (i8** $Get)) Pars (val $Parser)) (s...\n; # (val $Chr)\n  %4 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (i8** $Get)\n  %5 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n; # (val (i8** $Get))\n  %6 = load i8*, i8** %5\n; # (val $Parser)\n  %7 = load i64*, i64** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 104) to i64**)\n; # (set $Chr 0 $Get (fun (i32) getParse) $Parser (push 0 (save Nm) E...\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (fun (i32) getParse)\n  store i32()* @getParse, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n; # (save Nm)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  %10 = alloca i64, i64 2, align 16\n  %11 = ptrtoint i64* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 %0, i64* %12\n  %13 = add i64 %11, 8\n  %14 = inttoptr i64 %13 to i64*\n  store i64 %9, i64* %14\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %11, i64* %15\n; # (push 0 (save Nm) Eof)\n  %16 = alloca i64, i64 3, align 16\n  store i64 0, i64* %16\n  %17 = getelementptr i64, i64* %16, i32 1\n  store i64 %0, i64* %17\n  %18 = getelementptr i64, i64* %16, i32 2\n  store i64 %2, i64* %18\n  store i64* %16, i64** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 104) to i64**)\n; # (when Skip (getParse))\n  br i1 %1, label %$2, label %$3\n$2:\n  %19 = phi i64 [%0, %$1] ; # Nm\n  %20 = phi i1 [%1, %$1] ; # Skip\n  %21 = phi i64 [%2, %$1] ; # Eof\n  %22 = phi i64 [%3, %$1] ; # Set\n  %23 = phi i32 [%4, %$1] ; # Chr\n  %24 = phi i8* [%6, %$1] ; # Get\n  %25 = phi i64* [%7, %$1] ; # Pars\n; # (getParse)\n  %26 = call i32 @getParse()\n  br label %$3\n$3:\n  %27 = phi i64 [%0, %$1], [%19, %$2] ; # Nm\n  %28 = phi i1 [%1, %$1], [%20, %$2] ; # Skip\n  %29 = phi i64 [%2, %$1], [%21, %$2] ; # Eof\n  %30 = phi i64 [%3, %$1], [%22, %$2] ; # Set\n  %31 = phi i32 [%4, %$1], [%23, %$2] ; # Chr\n  %32 = phi i8* [%6, %$1], [%24, %$2] ; # Get\n  %33 = phi i64* [%7, %$1], [%25, %$2] ; # Pars\n; # (prog1 (cond ((=0 Set) (rdList)) ((== 1 Set) (read0 YES)) ((=0 (t...\n; # (cond ((=0 Set) (rdList)) ((== 1 Set) (read0 YES)) ((=0 (token Se...\n; # (=0 Set)\n  %34 = icmp eq i64 %30, 0\n  br i1 %34, label %$6, label %$5\n$6:\n  %35 = phi i64 [%27, %$3] ; # Nm\n  %36 = phi i1 [%28, %$3] ; # Skip\n  %37 = phi i64 [%29, %$3] ; # Eof\n  %38 = phi i64 [%30, %$3] ; # Set\n  %39 = phi i32 [%31, %$3] ; # Chr\n  %40 = phi i8* [%32, %$3] ; # Get\n  %41 = phi i64* [%33, %$3] ; # Pars\n; # (rdList)\n  %42 = call i64 @rdList()\n  br label %$4\n$5:\n  %43 = phi i64 [%27, %$3] ; # Nm\n  %44 = phi i1 [%28, %$3] ; # Skip\n  %45 = phi i64 [%29, %$3] ; # Eof\n  %46 = phi i64 [%30, %$3] ; # Set\n  %47 = phi i32 [%31, %$3] ; # Chr\n  %48 = phi i8* [%32, %$3] ; # Get\n  %49 = phi i64* [%33, %$3] ; # Pars\n; # (== 1 Set)\n  %50 = icmp eq i64 1, %46\n  br i1 %50, label %$8, label %$7\n$8:\n  %51 = phi i64 [%43, %$5] ; # Nm\n  %52 = phi i1 [%44, %$5] ; # Skip\n  %53 = phi i64 [%45, %$5] ; # Eof\n  %54 = phi i64 [%46, %$5] ; # Set\n  %55 = phi i32 [%47, %$5] ; # Chr\n  %56 = phi i8* [%48, %$5] ; # Get\n  %57 = phi i64* [%49, %$5] ; # Pars\n; # (read0 YES)\n  %58 = call i64 @read0(i1 1)\n  br label %$4\n$7:\n  %59 = phi i64 [%43, %$5] ; # Nm\n  %60 = phi i1 [%44, %$5] ; # Skip\n  %61 = phi i64 [%45, %$5] ; # Eof\n  %62 = phi i64 [%46, %$5] ; # Set\n  %63 = phi i32 [%47, %$5] ; # Chr\n  %64 = phi i8* [%48, %$5] ; # Get\n  %65 = phi i64* [%49, %$5] ; # Pars\n; # (token Set 0)\n  %66 = call i64 @token(i64 %62, i32 0)\n; # (=0 (token Set 0))\n  %67 = icmp eq i64 %66, 0\n  br i1 %67, label %$10, label %$9\n$10:\n  %68 = phi i64 [%59, %$7] ; # Nm\n  %69 = phi i1 [%60, %$7] ; # Skip\n  %70 = phi i64 [%61, %$7] ; # Eof\n  %71 = phi i64 [%62, %$7] ; # Set\n  %72 = phi i32 [%63, %$7] ; # Chr\n  %73 = phi i8* [%64, %$7] ; # Get\n  %74 = phi i64* [%65, %$7] ; # Pars\n  br label %$4\n$9:\n  %75 = phi i64 [%59, %$7] ; # Nm\n  %76 = phi i1 [%60, %$7] ; # Skip\n  %77 = phi i64 [%61, %$7] ; # Eof\n  %78 = phi i64 [%62, %$7] ; # Set\n  %79 = phi i32 [%63, %$7] ; # Chr\n  %80 = phi i8* [%64, %$7] ; # Get\n  %81 = phi i64* [%65, %$7] ; # Pars\n; # (let (R (save (cons @ $Nil)) P R) (while (token Set 0) (setq P (s...\n; # (cons @ $Nil)\n  %82 = call i64 @cons(i64 %66, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons @ $Nil))\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %84 = load i64, i64* %83\n  %85 = alloca i64, i64 2, align 16\n  %86 = ptrtoint i64* %85 to i64\n  %87 = inttoptr i64 %86 to i64*\n  store i64 %82, i64* %87\n  %88 = add i64 %86, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 %84, i64* %89\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %90\n; # (while (token Set 0) (setq P (set 2 P (cons @ $Nil))))\n  br label %$11\n$11:\n  %91 = phi i64 [%75, %$9], [%102, %$12] ; # Nm\n  %92 = phi i1 [%76, %$9], [%103, %$12] ; # Skip\n  %93 = phi i64 [%77, %$9], [%104, %$12] ; # Eof\n  %94 = phi i64 [%78, %$9], [%105, %$12] ; # Set\n  %95 = phi i32 [%79, %$9], [%106, %$12] ; # Chr\n  %96 = phi i8* [%80, %$9], [%107, %$12] ; # Get\n  %97 = phi i64* [%81, %$9], [%108, %$12] ; # Pars\n  %98 = phi i64 [%82, %$9], [%109, %$12] ; # R\n  %99 = phi i64 [%82, %$9], [%111, %$12] ; # P\n; # (token Set 0)\n  %100 = call i64 @token(i64 %94, i32 0)\n  %101 = icmp ne i64 %100, 0\n  br i1 %101, label %$12, label %$13\n$12:\n  %102 = phi i64 [%91, %$11] ; # Nm\n  %103 = phi i1 [%92, %$11] ; # Skip\n  %104 = phi i64 [%93, %$11] ; # Eof\n  %105 = phi i64 [%94, %$11] ; # Set\n  %106 = phi i32 [%95, %$11] ; # Chr\n  %107 = phi i8* [%96, %$11] ; # Get\n  %108 = phi i64* [%97, %$11] ; # Pars\n  %109 = phi i64 [%98, %$11] ; # R\n  %110 = phi i64 [%99, %$11] ; # P\n; # (set 2 P (cons @ $Nil))\n; # (cons @ $Nil)\n  %111 = call i64 @cons(i64 %100, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %112 = inttoptr i64 %110 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  store i64 %111, i64* %113\n  br label %$11\n$13:\n  %114 = phi i64 [%91, %$11] ; # Nm\n  %115 = phi i1 [%92, %$11] ; # Skip\n  %116 = phi i64 [%93, %$11] ; # Eof\n  %117 = phi i64 [%94, %$11] ; # Set\n  %118 = phi i32 [%95, %$11] ; # Chr\n  %119 = phi i8* [%96, %$11] ; # Get\n  %120 = phi i64* [%97, %$11] ; # Pars\n  %121 = phi i64 [%98, %$11] ; # R\n  %122 = phi i64 [%99, %$11] ; # P\n  br label %$4\n$4:\n  %123 = phi i64 [%35, %$6], [%51, %$8], [%68, %$10], [%114, %$13] ; # Nm\n  %124 = phi i1 [%36, %$6], [%52, %$8], [%69, %$10], [%115, %$13] ; # Skip\n  %125 = phi i64 [%37, %$6], [%53, %$8], [%70, %$10], [%116, %$13] ; # Eof\n  %126 = phi i64 [%38, %$6], [%54, %$8], [%71, %$10], [%117, %$13] ; # Set\n  %127 = phi i32 [%39, %$6], [%55, %$8], [%72, %$10], [%118, %$13] ; # Chr\n  %128 = phi i8* [%40, %$6], [%56, %$8], [%73, %$10], [%119, %$13] ; # Get\n  %129 = phi i64* [%41, %$6], [%57, %$8], [%74, %$10], [%120, %$13] ; # Pars\n  %130 = phi i64 [%42, %$6], [%58, %$8], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [%121, %$13] ; # ->\n; # (set $Parser Pars (i8** $Get) Get $Chr Chr)\n  store i64* %129, i64** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 104) to i64**)\n; # (i8** $Get)\n  %131 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n  store i8* %128, i8** %131\n  store i32 %127, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (drop *Safe)\n  %132 = inttoptr i64 %11 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  %134 = load i64, i64* %133\n  %135 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %134, i64* %135\n  ret i64 %130\n}\n\ndefine void @putString(i8) align 8 {\n$1:\n; # (val $StrP)\n  %1 = load i64*, i64** @$StrP\n; # (byteSym B (val $StrP))\n  call void @byteSym(i8 %0, i64* %1)\n  ret void\n}\n\ndefine void @begString(i64*) align 8 {\n$1:\n; # (set 6 P (i64 (val $StrP)))\n; # (val $StrP)\n  %1 = load i64*, i64** @$StrP\n; # (i64 (val $StrP))\n  %2 = ptrtoint i64* %1 to i64\n  %3 = getelementptr i64, i64* %0, i32 5\n  store i64 %2, i64* %3\n; # (set $StrP P)\n  store i64* %0, i64** @$StrP\n; # (ofs (set $StrP P) 2)\n  %4 = getelementptr i64, i64* %0, i32 2\n; # (link (ofs (set $StrP P) 2))\n  %5 = ptrtoint i64* %4 to i64\n  %6 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %7 = load i64, i64* %6\n  %8 = inttoptr i64 %5 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  store i64 %7, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %5, i64* %10\n; # (set 5 P (val (i64* $Put)) $Put (fun (void i8) putString))\n; # (i64* $Put)\n  %11 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i64*\n; # (val (i64* $Put))\n  %12 = load i64, i64* %11\n  %13 = getelementptr i64, i64* %0, i32 4\n  store i64 %12, i64* %13\n; # (fun (void i8) putString)\n  store void(i8)* @putString, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  ret void\n}\n\ndefine void @tglString(i64*) align 8 {\n$1:\n; # (ofs P 4)\n  %1 = getelementptr i64, i64* %0, i32 4\n; # (any (ofs P 4))\n  %2 = ptrtoint i64* %1 to i64\n; # (i64* $Put)\n  %3 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i64*\n; # (any (i64* $Put))\n  %4 = ptrtoint i64* %3 to i64\n; # (xchg (any (ofs P 4)) (any (i64* $Put)))\n  %5 = inttoptr i64 %2 to i64*\n  %6 = load i64, i64* %5\n  %7 = inttoptr i64 %4 to i64*\n  %8 = load i64, i64* %7\n  store i64 %8, i64* %5\n  store i64 %6, i64* %7\n  ret void\n}\n\ndefine i64 @endString() align 8 {\n$1:\n; # (let (P (val $StrP) Q (ofs P 2)) (set (i64* $Put) (val 5 P) $StrP...\n; # (val $StrP)\n  %0 = load i64*, i64** @$StrP\n; # (ofs P 2)\n  %1 = getelementptr i64, i64* %0, i32 2\n; # (set (i64* $Put) (val 5 P) $StrP (i64* (val 6 P)))\n; # (i64* $Put)\n  %2 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i64*\n; # (val 5 P)\n  %3 = getelementptr i64, i64* %0, i32 4\n  %4 = load i64, i64* %3\n  store i64 %4, i64* %2\n; # (val 6 P)\n  %5 = getelementptr i64, i64* %0, i32 5\n  %6 = load i64, i64* %5\n; # (i64* (val 6 P))\n  %7 = inttoptr i64 %6 to i64*\n  store i64* %7, i64** @$StrP\n; # (drop Q (consStr (val Q)))\n  %8 = ptrtoint i64* %1 to i64\n; # (val Q)\n  %9 = load i64, i64* %1\n; # (consStr (val Q))\n  %10 = call i64 @consStr(i64 %9)\n  %11 = inttoptr i64 %8 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %13, i64* %14\n  ret i64 %10\n}\n\ndefine i64 @_Any(i64) align 8 {\n$1:\n; # (if (sym? (val (tail (save (evSym (cdr Exe)))))) $Nil (parse (nam...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym (cdr Exe))\n  %4 = call i64 @evSym(i64 %3)\n; # (save (evSym (cdr Exe)))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (tail (save (evSym (cdr Exe))))\n  %13 = add i64 %4, -8\n; # (val (tail (save (evSym (cdr Exe)))))\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (sym? (val (tail (save (evSym (cdr Exe))))))\n  %16 = and i64 %15, 8\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$2, label %$3\n$2:\n  %18 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %19 = phi i64 [%0, %$1] ; # Exe\n; # (name @)\n  br label %$5\n$5:\n  %20 = phi i64 [%15, %$3], [%26, %$6] ; # Tail\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$6\n$6:\n  %23 = phi i64 [%20, %$5] ; # Tail\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  br label %$5\n$7:\n  %27 = phi i64 [%20, %$5] ; # Tail\n; # (parse (name @) YES (hex \"20\") 1)\n  %28 = call i64 @parse(i64 %27, i1 1, i64 32, i64 1)\n  br label %$4\n$4:\n  %29 = phi i64 [%18, %$2], [%19, %$7] ; # Exe\n  %30 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%28, %$7] ; # ->\n; # (drop *Safe)\n  %31 = inttoptr i64 %8 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %33, i64* %34\n  ret i64 %30\n}\n\ndefine i64 @_Sym(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (begString (push 4 NIL ZERO NIL NIL NIL)...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (push 4 NIL ZERO NIL NIL NIL)\n  %19 = alloca i64, i64 6, align 16\n  store i64 4, i64* %19\n  %20 = getelementptr i64, i64* %19, i32 2\n  store i64 2, i64* %20\n; # (begString (push 4 NIL ZERO NIL NIL NIL))\n  call void @begString(i64* %19)\n; # (print X)\n  call void @print(i64 %18)\n; # (endString)\n  %21 = call i64 @endString()\n  ret i64 %21\n}\n\ndefine i64 @_Str(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (cond ((nil? Y) Y) ((num? Y) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((nil? Y) Y) ((num? Y) (argErr Exe Y)) ((pair Y) (begString...\n; # (nil? Y)\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$9, label %$8\n$9:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  %22 = phi i64 [%18, %$2] ; # Y\n  br label %$7\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%3, %$2] ; # X\n  %25 = phi i64 [%18, %$2] ; # Y\n; # (num? Y)\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$11, label %$10\n$11:\n  %28 = phi i64 [%23, %$8] ; # Exe\n  %29 = phi i64 [%24, %$8] ; # X\n  %30 = phi i64 [%25, %$8] ; # Y\n; # (argErr Exe Y)\n  call void @argErr(i64 %28, i64 %30)\n  unreachable\n$10:\n  %31 = phi i64 [%23, %$8] ; # Exe\n  %32 = phi i64 [%24, %$8] ; # X\n  %33 = phi i64 [%25, %$8] ; # Y\n; # (pair Y)\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$13, label %$12\n$13:\n  %36 = phi i64 [%31, %$10] ; # Exe\n  %37 = phi i64 [%32, %$10] ; # X\n  %38 = phi i64 [%33, %$10] ; # Y\n; # (push 4 NIL ZERO NIL NIL NIL)\n  %39 = alloca i64, i64 6, align 16\n  store i64 4, i64* %39\n  %40 = getelementptr i64, i64* %39, i32 2\n  store i64 2, i64* %40\n; # (begString (push 4 NIL ZERO NIL NIL NIL))\n  call void @begString(i64* %39)\n; # (loop (print (++ Y)) (? (atom Y)) (space))\n  br label %$14\n$14:\n  %41 = phi i64 [%36, %$13], [%50, %$15] ; # Exe\n  %42 = phi i64 [%37, %$13], [%51, %$15] ; # X\n  %43 = phi i64 [%38, %$13], [%52, %$15] ; # Y\n; # (++ Y)\n  %44 = inttoptr i64 %43 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n  %47 = load i64, i64* %44\n; # (print (++ Y))\n  call void @print(i64 %47)\n; # (? (atom Y))\n; # (atom Y)\n  %48 = and i64 %46, 15\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%41, %$14] ; # Exe\n  %51 = phi i64 [%42, %$14] ; # X\n  %52 = phi i64 [%46, %$14] ; # Y\n; # (space)\n  call void @space()\n  br label %$14\n$16:\n  %53 = phi i64 [%41, %$14] ; # Exe\n  %54 = phi i64 [%42, %$14] ; # X\n  %55 = phi i64 [%46, %$14] ; # Y\n  %56 = phi i64 [0, %$14] ; # ->\n; # (endString)\n  %57 = call i64 @endString()\n  br label %$7\n$12:\n  %58 = phi i64 [%31, %$10] ; # Exe\n  %59 = phi i64 [%32, %$10] ; # X\n  %60 = phi i64 [%33, %$10] ; # Y\n; # (tail @)\n  %61 = add i64 %33, -8\n; # (val (tail @))\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n; # (sym? (setq Y (val (tail @))))\n  %64 = and i64 %63, 8\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$18, label %$17\n$18:\n  %66 = phi i64 [%58, %$12] ; # Exe\n  %67 = phi i64 [%59, %$12] ; # X\n  %68 = phi i64 [%63, %$12] ; # Y\n  br label %$7\n$17:\n  %69 = phi i64 [%58, %$12] ; # Exe\n  %70 = phi i64 [%59, %$12] ; # X\n  %71 = phi i64 [%63, %$12] ; # Y\n; # (shift X)\n  %72 = inttoptr i64 %70 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  %74 = load i64, i64* %73\n; # (atom (shift X))\n  %75 = and i64 %74, 15\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$20, label %$19\n$20:\n  %77 = phi i64 [%69, %$17] ; # Exe\n  %78 = phi i64 [%74, %$17] ; # X\n  %79 = phi i64 [%71, %$17] ; # Y\n; # (name Y)\n  br label %$21\n$21:\n  %80 = phi i64 [%79, %$20], [%86, %$22] ; # Tail\n  %81 = and i64 %80, 6\n  %82 = icmp ne i64 %81, 0\n  br i1 %82, label %$23, label %$22\n$22:\n  %83 = phi i64 [%80, %$21] ; # Tail\n  %84 = inttoptr i64 %83 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  br label %$21\n$23:\n  %87 = phi i64 [%80, %$21] ; # Tail\n; # (parse (name Y) NO (hex \"5D0A\") 0)\n  %88 = call i64 @parse(i64 %87, i1 0, i64 23818, i64 0)\n  br label %$7\n$19:\n  %89 = phi i64 [%69, %$17] ; # Exe\n  %90 = phi i64 [%74, %$17] ; # X\n  %91 = phi i64 [%71, %$17] ; # Y\n; # (save Y (parse (name Y) NO 0 (save (evSym X))))\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %93 = load i64, i64* %92\n  %94 = alloca i64, i64 2, align 16\n  %95 = ptrtoint i64* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %91, i64* %96\n  %97 = add i64 %95, 8\n  %98 = inttoptr i64 %97 to i64*\n  store i64 %93, i64* %98\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %95, i64* %99\n; # (name Y)\n  br label %$24\n$24:\n  %100 = phi i64 [%91, %$19], [%106, %$25] ; # Tail\n  %101 = and i64 %100, 6\n  %102 = icmp ne i64 %101, 0\n  br i1 %102, label %$26, label %$25\n$25:\n  %103 = phi i64 [%100, %$24] ; # Tail\n  %104 = inttoptr i64 %103 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n  br label %$24\n$26:\n  %107 = phi i64 [%100, %$24] ; # Tail\n; # (evSym X)\n  %108 = call i64 @evSym(i64 %90)\n; # (save (evSym X))\n  %109 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %110 = load i64, i64* %109\n  %111 = alloca i64, i64 2, align 16\n  %112 = ptrtoint i64* %111 to i64\n  %113 = inttoptr i64 %112 to i64*\n  store i64 %108, i64* %113\n  %114 = add i64 %112, 8\n  %115 = inttoptr i64 %114 to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %112, i64* %116\n; # (parse (name Y) NO 0 (save (evSym X)))\n  %117 = call i64 @parse(i64 %107, i1 0, i64 0, i64 %108)\n; # drop\n  %118 = inttoptr i64 %95 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n  %121 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %120, i64* %121\n  br label %$7\n$7:\n  %122 = phi i64 [%20, %$9], [%53, %$16], [%66, %$18], [%77, %$23], [%89, %$26] ; # Exe\n  %123 = phi i64 [%21, %$9], [%54, %$16], [%67, %$18], [%78, %$23], [%90, %$26] ; # X\n  %124 = phi i64 [%22, %$9], [%55, %$16], [%68, %$18], [%79, %$23], [%91, %$26] ; # Y\n  %125 = phi i64 [%22, %$9], [%57, %$16], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18], [%88, %$23], [%117, %$26] ; # ->\n  ret i64 %125\n}\n\ndefine i64 @stdRead(i8*) align 8 {\n$1:\n; # (prog2 (set $LinePrmt (if (or (nil? (runAt (val $Prompt))) (not (...\n; # (set $LinePrmt (if (or (nil? (runAt (val $Prompt))) (not (symb? @...\n; # (if (or (nil? (runAt (val $Prompt))) (not (symb? @))) Prmt (let (...\n; # (or (nil? (runAt (val $Prompt))) (not (symb? @)))\n; # (val $Prompt)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 520) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (runAt (val $Prompt))\n  %3 = call i64 @runAt(i64 %2)\n; # (nil? (runAt (val $Prompt)))\n  %4 = icmp eq i64 %3, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %4, label %$2, label %$3\n$3:\n  %5 = phi i8* [%0, %$1] ; # Prmt\n; # (symb? @)\n  %6 = xor i64 %3, 8\n  %7 = and i64 %6, 14\n  %8 = icmp eq i64 %7, 0\n; # (not (symb? @))\n  %9 = icmp eq i1 %8, 0\n  br label %$2\n$2:\n  %10 = phi i8* [%0, %$1], [%5, %$3] ; # Prmt\n  %11 = phi i1 [1, %$1], [%9, %$3] ; # ->\n  br i1 %11, label %$4, label %$5\n$4:\n  %12 = phi i8* [%10, %$2] ; # Prmt\n  br label %$6\n$5:\n  %13 = phi i8* [%10, %$2] ; # Prmt\n; # (let (Nm (name (val (tail @))) N (bufSize Nm) P (set $ReplPrmt (a...\n; # (tail @)\n  %14 = add i64 %3, -8\n; # (val (tail @))\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n; # (name (val (tail @)))\n  br label %$7\n$7:\n  %17 = phi i64 [%16, %$5], [%23, %$8] ; # Tail\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$9, label %$8\n$8:\n  %20 = phi i64 [%17, %$7] ; # Tail\n  %21 = inttoptr i64 %20 to i64*\n  %22 = getelementptr i64, i64* %21, i32 1\n  %23 = load i64, i64* %22\n  br label %$7\n$9:\n  %24 = phi i64 [%17, %$7] ; # Tail\n; # (bufSize Nm)\n  %25 = call i64 @bufSize(i64 %24)\n; # (set $ReplPrmt (alloc (val $ReplPrmt) (+ N (strlen Prmt))))\n; # (val $ReplPrmt)\n  %26 = load i8*, i8** @$ReplPrmt\n; # (strlen Prmt)\n  %27 = call i64 @strlen(i8* %13)\n; # (+ N (strlen Prmt))\n  %28 = add i64 %25, %27\n; # (alloc (val $ReplPrmt) (+ N (strlen Prmt)))\n  %29 = call i8* @alloc(i8* %26, i64 %28)\n  store i8* %29, i8** @$ReplPrmt\n; # (bufString Nm P)\n  %30 = call i8* @bufString(i64 %24, i8* %29)\n; # (dec N)\n  %31 = sub i64 %25, 1\n; # (ofs P (dec N))\n  %32 = getelementptr i8, i8* %29, i64 %31\n; # (strcpy (ofs P (dec N)) Prmt)\n  %33 = call i8* @strcpy(i8* %32, i8* %13)\n  br label %$6\n$6:\n  %34 = phi i8* [%12, %$4], [%13, %$9] ; # Prmt\n  %35 = phi i8* [%12, %$4], [%29, %$9] ; # ->\n  store i8* %35, i8** @$LinePrmt\n  store i8* bitcast ([4 x i8]* @$49 to i8*), i8** @$ContPrmt\n; # (if ((inFile (val $InFile)) tty) (char \"^J\") (i32 0))\n; # (val $InFile)\n  %36 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # ((inFile (val $InFile)) tty)\n  %37 = getelementptr i8, i8* %36, i32 4128\n  %38 = bitcast i8* %37 to i1*\n  %39 = load i1, i1* %38\n  br i1 %39, label %$10, label %$11\n$10:\n  %40 = phi i8* [%34, %$6] ; # Prmt\n  br label %$12\n$11:\n  %41 = phi i8* [%34, %$6] ; # Prmt\n; # (i32 0)\n  br label %$12\n$12:\n  %42 = phi i8* [%40, %$10], [%41, %$11] ; # Prmt\n  %43 = phi i32 [10, %$10], [0, %$11] ; # ->\n; # (read1 (if ((inFile (val $InFile)) tty) (char \"^J\") (i32 0)))\n  %44 = call i64 @read1(i32 %43)\n; # (set $LinePrmt (set $ContPrmt null))\n; # (set $ContPrmt null)\n  store i8* null, i8** @$ContPrmt\n  store i8* null, i8** @$LinePrmt\n; # (while (gt0 (val $Chr)) (? (== (val $Chr) (char \"^J\")) (set $Chr ...\n  br label %$13\n$13:\n  %45 = phi i8* [%42, %$12], [%62, %$20] ; # Prmt\n; # (val $Chr)\n  %46 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (gt0 (val $Chr))\n  %47 = icmp sgt i32 %46, 0\n  br i1 %47, label %$14, label %$15\n$14:\n  %48 = phi i8* [%45, %$13] ; # Prmt\n; # (? (== (val $Chr) (char \"^J\")) (set $Chr 0))\n; # (val $Chr)\n  %49 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== (val $Chr) (char \"^J\"))\n  %50 = icmp eq i32 %49, 10\n  br i1 %50, label %$17, label %$16\n$17:\n  %51 = phi i8* [%48, %$14] ; # Prmt\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$15\n$16:\n  %52 = phi i8* [%48, %$14] ; # Prmt\n; # (if (== (val $Chr) (char \"#\")) (comment) (? (> (val $Chr) (char \"...\n; # (val $Chr)\n  %53 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (== (val $Chr) (char \"#\"))\n  %54 = icmp eq i32 %53, 35\n  br i1 %54, label %$18, label %$19\n$18:\n  %55 = phi i8* [%52, %$16] ; # Prmt\n; # (comment)\n  call void @comment()\n  br label %$20\n$19:\n  %56 = phi i8* [%52, %$16] ; # Prmt\n; # (? (> (val $Chr) (char \" \")))\n; # (val $Chr)\n  %57 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (> (val $Chr) (char \" \"))\n  %58 = icmp sgt i32 %57, 32\n  br i1 %58, label %$15, label %$21\n$21:\n  %59 = phi i8* [%56, %$19] ; # Prmt\n; # (call $Get)\n  %60 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %61 = call i32 %60()\n  br label %$20\n$20:\n  %62 = phi i8* [%55, %$18], [%59, %$21] ; # Prmt\n  br label %$13\n$15:\n  %63 = phi i8* [%45, %$13], [%51, %$17], [%56, %$19] ; # Prmt\n  ret i64 %44\n}\n\ndefine i64 @stdEval(i64) align 8 {\n$1:\n; # (flushAll)\n  call void @flushAll()\n; # (let (At (save (val $At)) At2 (save (val $At2)) X (save (eval Exe...\n; # (val $At)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (save (val $At))\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (val $At2)\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  %12 = load i64, i64* %11\n; # (save (val $At2))\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %14 = load i64, i64* %13\n  %15 = alloca i64, i64 2, align 16\n  %16 = ptrtoint i64* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %12, i64* %17\n  %18 = add i64 %16, 8\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %14, i64* %19\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %16, i64* %20\n; # (eval Exe)\n  %21 = and i64 %0, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$4, label %$3\n$4:\n  %23 = phi i64 [%0, %$1] ; # X\n  br label %$2\n$3:\n  %24 = phi i64 [%0, %$1] ; # X\n  %25 = and i64 %24, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$6, label %$5\n$6:\n  %27 = phi i64 [%24, %$3] ; # X\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$2\n$5:\n  %30 = phi i64 [%24, %$3] ; # X\n  %31 = call i64 @evList(i64 %30)\n  br label %$2\n$2:\n  %32 = phi i64 [%23, %$4], [%27, %$6], [%30, %$5] ; # X\n  %33 = phi i64 [%23, %$4], [%29, %$6], [%31, %$5] ; # ->\n; # (save (eval Exe))\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %35 = load i64, i64* %34\n  %36 = alloca i64, i64 2, align 16\n  %37 = ptrtoint i64* %36 to i64\n  %38 = inttoptr i64 %37 to i64*\n  store i64 %33, i64* %38\n  %39 = add i64 %37, 8\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %35, i64* %40\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %37, i64* %41\n; # (outString ($ \"-> \"))\n  call void @outString(i8* bitcast ([4 x i8]* @$50 to i8*))\n; # (flushAll)\n  call void @flushAll()\n; # (print X)\n  call void @print(i64 %33)\n; # (unless (nil? (val $Remark)) (evExe $Remark X $Nil))\n; # (val $Remark)\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 856) to i64) to i64*\n  %43 = load i64, i64* %42\n; # (nil? (val $Remark))\n  %44 = icmp eq i64 %43, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %44, label %$8, label %$7\n$7:\n  %45 = phi i64 [%0, %$2] ; # Exe\n  %46 = phi i64 [%2, %$2] ; # At\n  %47 = phi i64 [%12, %$2] ; # At2\n  %48 = phi i64 [%33, %$2] ; # X\n; # (evExe $Remark X $Nil)\n  %49 = call i64 @evExe(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 856) to i64), i64 %48, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$8\n$8:\n  %50 = phi i64 [%0, %$2], [%45, %$7] ; # Exe\n  %51 = phi i64 [%2, %$2], [%46, %$7] ; # At\n  %52 = phi i64 [%12, %$2], [%47, %$7] ; # At2\n  %53 = phi i64 [%33, %$2], [%48, %$7] ; # X\n; # (newline)\n  call void @newline()\n; # (set $At3 At2 $At2 At $At X)\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 488) to i64) to i64*\n  store i64 %52, i64* %54\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %51, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %53, i64* %56\n; # (drop *Safe)\n  %57 = inttoptr i64 %6 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %59, i64* %60\n  ret i64 %53\n}\n\ndefine i64 @repl(i64, i8*, i64) align 8 {\n$1:\n; # (if (and (symb? (save X)) (== (firstByte X) (char \"-\"))) (evList ...\n; # (and (symb? (save X)) (== (firstByte X) (char \"-\")))\n; # (save X)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %2, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (symb? (save X))\n  %11 = xor i64 %2, 8\n  %12 = and i64 %11, 14\n  %13 = icmp eq i64 %12, 0\n  br i1 %13, label %$3, label %$2\n$3:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i8* [%1, %$1] ; # Prmt\n  %16 = phi i64 [%2, %$1] ; # X\n; # (firstByte X)\n  %17 = call i8 @firstByte(i64 %16)\n; # (== (firstByte X) (char \"-\"))\n  %18 = icmp eq i8 %17, 45\n  br label %$2\n$2:\n  %19 = phi i64 [%0, %$1], [%14, %$3] ; # Exe\n  %20 = phi i8* [%1, %$1], [%15, %$3] ; # Prmt\n  %21 = phi i64 [%2, %$1], [%16, %$3] ; # X\n  %22 = phi i1 [0, %$1], [%18, %$3] ; # ->\n  br i1 %22, label %$4, label %$5\n$4:\n  %23 = phi i64 [%19, %$2] ; # Exe\n  %24 = phi i8* [%20, %$2] ; # Prmt\n  %25 = phi i64 [%21, %$2] ; # X\n; # (xName X)\n  %26 = call i64 @xName(i64 %25)\n; # (parse (xName X) YES (hex \"5D0A\") 0)\n  %27 = call i64 @parse(i64 %26, i1 1, i64 23818, i64 0)\n; # (safe (parse (xName X) YES (hex \"5D0A\") 0))\n  %28 = inttoptr i64 %6 to i64*\n  store i64 %27, i64* %28\n; # (evList (safe (parse (xName X) YES (hex \"5D0A\") 0)))\n  %29 = call i64 @evList(i64 %27)\n  br label %$6\n$5:\n  %30 = phi i64 [%19, %$2] ; # Exe\n  %31 = phi i8* [%20, %$2] ; # Prmt\n  %32 = phi i64 [%21, %$2] ; # X\n; # (let (Lnk (val $NsLink) Tr1 (save (val $Transient)) Tr2 (save (va...\n; # (val $NsLink)\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 24) to i64) to i64*\n  %34 = load i64, i64* %33\n; # (val $Transient)\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %36 = load i64, i64* %35\n; # (save (val $Transient))\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %36, i64* %41\n  %42 = add i64 %40, 8\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %38, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %44\n; # (val 2 $Transient)\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %46 = getelementptr i64, i64* %45, i32 1\n  %47 = load i64, i64* %46\n; # (save (val 2 $Transient))\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %49 = load i64, i64* %48\n  %50 = alloca i64, i64 2, align 16\n  %51 = ptrtoint i64* %50 to i64\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = add i64 %51, 8\n  %54 = inttoptr i64 %53 to i64*\n  store i64 %49, i64* %54\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %51, i64* %55\n; # (val $PrivT)\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %57 = load i64, i64* %56\n; # (save (val $PrivT))\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %59 = load i64, i64* %58\n  %60 = alloca i64, i64 2, align 16\n  %61 = ptrtoint i64* %60 to i64\n  %62 = inttoptr i64 %61 to i64*\n  store i64 %57, i64* %62\n  %63 = add i64 %61, 8\n  %64 = inttoptr i64 %63 to i64*\n  store i64 %59, i64* %64\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %61, i64* %65\n; # (val 2 $PrivT)\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %67 = getelementptr i64, i64* %66, i32 1\n  %68 = load i64, i64* %67\n; # (save (val 2 $PrivT))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n; # (push -ZERO NIL)\n  %77 = alloca i64, i64 2, align 16\n  %78 = ptrtoint i64* %77 to i64\n  %79 = inttoptr i64 %78 to i64*\n  store i64 10, i64* %79\n; # (link (push -ZERO NIL))\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 %78 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  store i64 %81, i64* %83\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %78, i64* %84\n; # (val Termio)\n  %85 = load i8*, i8** @Termio\n; # (val $Intern)\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %87 = load i64, i64* %86\n; # (save (val $Intern))\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %89 = load i64, i64* %88\n  %90 = alloca i64, i64 2, align 16\n  %91 = ptrtoint i64* %90 to i64\n  %92 = inttoptr i64 %91 to i64*\n  store i64 %87, i64* %92\n  %93 = add i64 %91, 8\n  %94 = inttoptr i64 %93 to i64*\n  store i64 %89, i64* %94\n  %95 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %91, i64* %95\n; # (set $NsLink (val $Link))\n; # (val $Link)\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %97 = load i64, i64* %96\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 24) to i64) to i64*\n  store i64 %97, i64* %98\n; # (when (nil? X) (setCooked) (unless (val $Repl) (set $Repl YES) (i...\n; # (nil? X)\n  %99 = icmp eq i64 %32, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %99, label %$7, label %$8\n$7:\n  %100 = phi i64 [%30, %$5] ; # Exe\n  %101 = phi i8* [%31, %$5] ; # Prmt\n  %102 = phi i64 [%32, %$5] ; # X\n  %103 = phi i64 [%34, %$5] ; # Lnk\n  %104 = phi i64 [%36, %$5] ; # Tr1\n  %105 = phi i64 [%47, %$5] ; # Tr2\n  %106 = phi i64 [%57, %$5] ; # Pr1\n  %107 = phi i64 [%68, %$5] ; # Pr2\n  %108 = phi i64 [%78, %$5] ; # V\n  %109 = phi i8* [%85, %$5] ; # Raw\n; # (setCooked)\n  call void @setCooked()\n; # (unless (val $Repl) (set $Repl YES) (iSignal (val SIGINT Sig) (fu...\n; # (val $Repl)\n  %110 = load i1, i1* @$Repl\n  br i1 %110, label %$10, label %$9\n$9:\n  %111 = phi i64 [%100, %$7] ; # Exe\n  %112 = phi i8* [%101, %$7] ; # Prmt\n  %113 = phi i64 [%102, %$7] ; # X\n  %114 = phi i64 [%103, %$7] ; # Lnk\n  %115 = phi i64 [%104, %$7] ; # Tr1\n  %116 = phi i64 [%105, %$7] ; # Tr2\n  %117 = phi i64 [%106, %$7] ; # Pr1\n  %118 = phi i64 [%107, %$7] ; # Pr2\n  %119 = phi i64 [%108, %$7] ; # V\n  %120 = phi i8* [%109, %$7] ; # Raw\n; # (set $Repl YES)\n  store i1 1, i1* @$Repl\n; # (val SIGINT Sig)\n  %121 = getelementptr i32, i32* @Sig, i32 1\n  %122 = load i32, i32* %121\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car Args)) (func (; Args 1 cross~s...\n  %123 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGINT Sig) (fun sig))\n  call void @iSignal(i32 %122, i8* %123)\n  br label %$10\n$10:\n  %124 = phi i64 [%100, %$7], [%111, %$9] ; # Exe\n  %125 = phi i8* [%101, %$7], [%112, %$9] ; # Prmt\n  %126 = phi i64 [%102, %$7], [%113, %$9] ; # X\n  %127 = phi i64 [%103, %$7], [%114, %$9] ; # Lnk\n  %128 = phi i64 [%104, %$7], [%115, %$9] ; # Tr1\n  %129 = phi i64 [%105, %$7], [%116, %$9] ; # Tr2\n  %130 = phi i64 [%106, %$7], [%117, %$9] ; # Pr1\n  %131 = phi i64 [%107, %$7], [%118, %$9] ; # Pr2\n  %132 = phi i64 [%108, %$7], [%119, %$9] ; # V\n  %133 = phi i8* [%109, %$7], [%120, %$9] ; # Raw\n  br label %$8\n$8:\n  %134 = phi i64 [%30, %$5], [%124, %$10] ; # Exe\n  %135 = phi i8* [%31, %$5], [%125, %$10] ; # Prmt\n  %136 = phi i64 [%32, %$5], [%126, %$10] ; # X\n  %137 = phi i64 [%34, %$5], [%127, %$10] ; # Lnk\n  %138 = phi i64 [%36, %$5], [%128, %$10] ; # Tr1\n  %139 = phi i64 [%47, %$5], [%129, %$10] ; # Tr2\n  %140 = phi i64 [%57, %$5], [%130, %$10] ; # Pr1\n  %141 = phi i64 [%68, %$5], [%131, %$10] ; # Pr2\n  %142 = phi i64 [%78, %$5], [%132, %$10] ; # V\n  %143 = phi i8* [%85, %$5], [%133, %$10] ; # Raw\n; # (b8+ (ioFrame T))\n  %144 = alloca i8, i64 28, align 8\n; # (rdOpen Exe X (b8+ (ioFrame T)))\n  call void @rdOpen(i64 %134, i64 %136, i8* %144)\n; # (set $PrivT (set 2 $PrivT $Nil))\n; # (set 2 $PrivT $Nil)\n  %145 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %146\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %147\n; # (set $Rule (set $Transient (set 2 $Transient $Nil)))\n; # (set $Transient (set 2 $Transient $Nil))\n; # (set 2 $Transient $Nil)\n  %148 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %149 = getelementptr i64, i64* %148, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %149\n  %150 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %150\n  %151 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 584) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %151\n; # (if (== (val $InFile) (val (val $InFiles))) (until (nil? (stdRead...\n; # (val $InFile)\n  %152 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (val $InFiles)\n  %153 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %154 = load i8*, i8** %153\n; # (== (val $InFile) (val (val $InFiles)))\n  %155 = icmp eq i8* %152, %154\n  br i1 %155, label %$11, label %$12\n$11:\n  %156 = phi i64 [%134, %$8] ; # Exe\n  %157 = phi i8* [%135, %$8] ; # Prmt\n  %158 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # X\n  %159 = phi i64 [%137, %$8] ; # Lnk\n  %160 = phi i64 [%138, %$8] ; # Tr1\n  %161 = phi i64 [%139, %$8] ; # Tr2\n  %162 = phi i64 [%140, %$8] ; # Pr1\n  %163 = phi i64 [%141, %$8] ; # Pr2\n  %164 = phi i64 [%142, %$8] ; # V\n  %165 = phi i8* [%143, %$8] ; # Raw\n; # (until (nil? (stdRead Prmt)) (let Y (set V @) (setq X (if (and Pr...\n  br label %$14\n$14:\n  %166 = phi i64 [%156, %$11], [%251, %$21] ; # Exe\n  %167 = phi i8* [%157, %$11], [%252, %$21] ; # Prmt\n  %168 = phi i64 [%158, %$11], [%262, %$21] ; # X\n  %169 = phi i64 [%159, %$11], [%254, %$21] ; # Lnk\n  %170 = phi i64 [%160, %$11], [%255, %$21] ; # Tr1\n  %171 = phi i64 [%161, %$11], [%256, %$21] ; # Tr2\n  %172 = phi i64 [%162, %$11], [%257, %$21] ; # Pr1\n  %173 = phi i64 [%163, %$11], [%258, %$21] ; # Pr2\n  %174 = phi i64 [%164, %$11], [%259, %$21] ; # V\n  %175 = phi i8* [%165, %$11], [%260, %$21] ; # Raw\n; # (stdRead Prmt)\n  %176 = call i64 @stdRead(i8* %167)\n; # (nil? (stdRead Prmt))\n  %177 = icmp eq i64 %176, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %177, label %$16, label %$15\n$15:\n  %178 = phi i64 [%166, %$14] ; # Exe\n  %179 = phi i8* [%167, %$14] ; # Prmt\n  %180 = phi i64 [%168, %$14] ; # X\n  %181 = phi i64 [%169, %$14] ; # Lnk\n  %182 = phi i64 [%170, %$14] ; # Tr1\n  %183 = phi i64 [%171, %$14] ; # Tr2\n  %184 = phi i64 [%172, %$14] ; # Pr1\n  %185 = phi i64 [%173, %$14] ; # Pr2\n  %186 = phi i64 [%174, %$14] ; # V\n  %187 = phi i8* [%175, %$14] ; # Raw\n; # (let Y (set V @) (setq X (if (and Prmt (=0 (val $Chr))) (stdEval ...\n; # (set V @)\n  %188 = inttoptr i64 %186 to i64*\n  store i64 %176, i64* %188\n; # (if (and Prmt (=0 (val $Chr))) (stdEval Y) (eval Y))\n; # (and Prmt (=0 (val $Chr)))\n  %189 = icmp ne i8* %179, null\n  br i1 %189, label %$18, label %$17\n$18:\n  %190 = phi i64 [%178, %$15] ; # Exe\n  %191 = phi i8* [%179, %$15] ; # Prmt\n  %192 = phi i64 [%180, %$15] ; # X\n  %193 = phi i64 [%181, %$15] ; # Lnk\n  %194 = phi i64 [%182, %$15] ; # Tr1\n  %195 = phi i64 [%183, %$15] ; # Tr2\n  %196 = phi i64 [%184, %$15] ; # Pr1\n  %197 = phi i64 [%185, %$15] ; # Pr2\n  %198 = phi i64 [%186, %$15] ; # V\n  %199 = phi i8* [%187, %$15] ; # Raw\n  %200 = phi i64 [%176, %$15] ; # Y\n; # (val $Chr)\n  %201 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (=0 (val $Chr))\n  %202 = icmp eq i32 %201, 0\n  br label %$17\n$17:\n  %203 = phi i64 [%178, %$15], [%190, %$18] ; # Exe\n  %204 = phi i8* [%179, %$15], [%191, %$18] ; # Prmt\n  %205 = phi i64 [%180, %$15], [%192, %$18] ; # X\n  %206 = phi i64 [%181, %$15], [%193, %$18] ; # Lnk\n  %207 = phi i64 [%182, %$15], [%194, %$18] ; # Tr1\n  %208 = phi i64 [%183, %$15], [%195, %$18] ; # Tr2\n  %209 = phi i64 [%184, %$15], [%196, %$18] ; # Pr1\n  %210 = phi i64 [%185, %$15], [%197, %$18] ; # Pr2\n  %211 = phi i64 [%186, %$15], [%198, %$18] ; # V\n  %212 = phi i8* [%187, %$15], [%199, %$18] ; # Raw\n  %213 = phi i64 [%176, %$15], [%200, %$18] ; # Y\n  %214 = phi i1 [0, %$15], [%202, %$18] ; # ->\n  br i1 %214, label %$19, label %$20\n$19:\n  %215 = phi i64 [%203, %$17] ; # Exe\n  %216 = phi i8* [%204, %$17] ; # Prmt\n  %217 = phi i64 [%205, %$17] ; # X\n  %218 = phi i64 [%206, %$17] ; # Lnk\n  %219 = phi i64 [%207, %$17] ; # Tr1\n  %220 = phi i64 [%208, %$17] ; # Tr2\n  %221 = phi i64 [%209, %$17] ; # Pr1\n  %222 = phi i64 [%210, %$17] ; # Pr2\n  %223 = phi i64 [%211, %$17] ; # V\n  %224 = phi i8* [%212, %$17] ; # Raw\n  %225 = phi i64 [%213, %$17] ; # Y\n; # (stdEval Y)\n  %226 = call i64 @stdEval(i64 %225)\n  br label %$21\n$20:\n  %227 = phi i64 [%203, %$17] ; # Exe\n  %228 = phi i8* [%204, %$17] ; # Prmt\n  %229 = phi i64 [%205, %$17] ; # X\n  %230 = phi i64 [%206, %$17] ; # Lnk\n  %231 = phi i64 [%207, %$17] ; # Tr1\n  %232 = phi i64 [%208, %$17] ; # Tr2\n  %233 = phi i64 [%209, %$17] ; # Pr1\n  %234 = phi i64 [%210, %$17] ; # Pr2\n  %235 = phi i64 [%211, %$17] ; # V\n  %236 = phi i8* [%212, %$17] ; # Raw\n  %237 = phi i64 [%213, %$17] ; # Y\n; # (eval Y)\n  %238 = and i64 %237, 6\n  %239 = icmp ne i64 %238, 0\n  br i1 %239, label %$24, label %$23\n$24:\n  %240 = phi i64 [%237, %$20] ; # X\n  br label %$22\n$23:\n  %241 = phi i64 [%237, %$20] ; # X\n  %242 = and i64 %241, 8\n  %243 = icmp ne i64 %242, 0\n  br i1 %243, label %$26, label %$25\n$26:\n  %244 = phi i64 [%241, %$23] ; # X\n  %245 = inttoptr i64 %244 to i64*\n  %246 = load i64, i64* %245\n  br label %$22\n$25:\n  %247 = phi i64 [%241, %$23] ; # X\n  %248 = call i64 @evList(i64 %247)\n  br label %$22\n$22:\n  %249 = phi i64 [%240, %$24], [%244, %$26], [%247, %$25] ; # X\n  %250 = phi i64 [%240, %$24], [%246, %$26], [%248, %$25] ; # ->\n  br label %$21\n$21:\n  %251 = phi i64 [%215, %$19], [%227, %$22] ; # Exe\n  %252 = phi i8* [%216, %$19], [%228, %$22] ; # Prmt\n  %253 = phi i64 [%217, %$19], [%229, %$22] ; # X\n  %254 = phi i64 [%218, %$19], [%230, %$22] ; # Lnk\n  %255 = phi i64 [%219, %$19], [%231, %$22] ; # Tr1\n  %256 = phi i64 [%220, %$19], [%232, %$22] ; # Tr2\n  %257 = phi i64 [%221, %$19], [%233, %$22] ; # Pr1\n  %258 = phi i64 [%222, %$19], [%234, %$22] ; # Pr2\n  %259 = phi i64 [%223, %$19], [%235, %$22] ; # V\n  %260 = phi i8* [%224, %$19], [%236, %$22] ; # Raw\n  %261 = phi i64 [%225, %$19], [%237, %$22] ; # Y\n  %262 = phi i64 [%226, %$19], [%250, %$22] ; # ->\n  br label %$14\n$16:\n  %263 = phi i64 [%166, %$14] ; # Exe\n  %264 = phi i8* [%167, %$14] ; # Prmt\n  %265 = phi i64 [%168, %$14] ; # X\n  %266 = phi i64 [%169, %$14] ; # Lnk\n  %267 = phi i64 [%170, %$14] ; # Tr1\n  %268 = phi i64 [%171, %$14] ; # Tr2\n  %269 = phi i64 [%172, %$14] ; # Pr1\n  %270 = phi i64 [%173, %$14] ; # Pr2\n  %271 = phi i64 [%174, %$14] ; # V\n  %272 = phi i8* [%175, %$14] ; # Raw\n  br label %$13\n$12:\n  %273 = phi i64 [%134, %$8] ; # Exe\n  %274 = phi i8* [%135, %$8] ; # Prmt\n  %275 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # X\n  %276 = phi i64 [%137, %$8] ; # Lnk\n  %277 = phi i64 [%138, %$8] ; # Tr1\n  %278 = phi i64 [%139, %$8] ; # Tr2\n  %279 = phi i64 [%140, %$8] ; # Pr1\n  %280 = phi i64 [%141, %$8] ; # Pr2\n  %281 = phi i64 [%142, %$8] ; # V\n  %282 = phi i8* [%143, %$8] ; # Raw\n; # (until (nil? (read1 0)) (setq X (eval (set V @))))\n  br label %$27\n$27:\n  %283 = phi i64 [%273, %$12], [%295, %$30] ; # Exe\n  %284 = phi i8* [%274, %$12], [%296, %$30] ; # Prmt\n  %285 = phi i64 [%275, %$12], [%318, %$30] ; # X\n  %286 = phi i64 [%276, %$12], [%298, %$30] ; # Lnk\n  %287 = phi i64 [%277, %$12], [%299, %$30] ; # Tr1\n  %288 = phi i64 [%278, %$12], [%300, %$30] ; # Tr2\n  %289 = phi i64 [%279, %$12], [%301, %$30] ; # Pr1\n  %290 = phi i64 [%280, %$12], [%302, %$30] ; # Pr2\n  %291 = phi i64 [%281, %$12], [%303, %$30] ; # V\n  %292 = phi i8* [%282, %$12], [%304, %$30] ; # Raw\n; # (read1 0)\n  %293 = call i64 @read1(i32 0)\n; # (nil? (read1 0))\n  %294 = icmp eq i64 %293, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %294, label %$29, label %$28\n$28:\n  %295 = phi i64 [%283, %$27] ; # Exe\n  %296 = phi i8* [%284, %$27] ; # Prmt\n  %297 = phi i64 [%285, %$27] ; # X\n  %298 = phi i64 [%286, %$27] ; # Lnk\n  %299 = phi i64 [%287, %$27] ; # Tr1\n  %300 = phi i64 [%288, %$27] ; # Tr2\n  %301 = phi i64 [%289, %$27] ; # Pr1\n  %302 = phi i64 [%290, %$27] ; # Pr2\n  %303 = phi i64 [%291, %$27] ; # V\n  %304 = phi i8* [%292, %$27] ; # Raw\n; # (set V @)\n  %305 = inttoptr i64 %303 to i64*\n  store i64 %293, i64* %305\n; # (eval (set V @))\n  %306 = and i64 %293, 6\n  %307 = icmp ne i64 %306, 0\n  br i1 %307, label %$32, label %$31\n$32:\n  %308 = phi i64 [%293, %$28] ; # X\n  br label %$30\n$31:\n  %309 = phi i64 [%293, %$28] ; # X\n  %310 = and i64 %309, 8\n  %311 = icmp ne i64 %310, 0\n  br i1 %311, label %$34, label %$33\n$34:\n  %312 = phi i64 [%309, %$31] ; # X\n  %313 = inttoptr i64 %312 to i64*\n  %314 = load i64, i64* %313\n  br label %$30\n$33:\n  %315 = phi i64 [%309, %$31] ; # X\n  %316 = call i64 @evList(i64 %315)\n  br label %$30\n$30:\n  %317 = phi i64 [%308, %$32], [%312, %$34], [%315, %$33] ; # X\n  %318 = phi i64 [%308, %$32], [%314, %$34], [%316, %$33] ; # ->\n  br label %$27\n$29:\n  %319 = phi i64 [%283, %$27] ; # Exe\n  %320 = phi i8* [%284, %$27] ; # Prmt\n  %321 = phi i64 [%285, %$27] ; # X\n  %322 = phi i64 [%286, %$27] ; # Lnk\n  %323 = phi i64 [%287, %$27] ; # Tr1\n  %324 = phi i64 [%288, %$27] ; # Tr2\n  %325 = phi i64 [%289, %$27] ; # Pr1\n  %326 = phi i64 [%290, %$27] ; # Pr2\n  %327 = phi i64 [%291, %$27] ; # V\n  %328 = phi i8* [%292, %$27] ; # Raw\n  br label %$13\n$13:\n  %329 = phi i64 [%263, %$16], [%319, %$29] ; # Exe\n  %330 = phi i8* [%264, %$16], [%320, %$29] ; # Prmt\n  %331 = phi i64 [%265, %$16], [%321, %$29] ; # X\n  %332 = phi i64 [%266, %$16], [%322, %$29] ; # Lnk\n  %333 = phi i64 [%267, %$16], [%323, %$29] ; # Tr1\n  %334 = phi i64 [%268, %$16], [%324, %$29] ; # Tr2\n  %335 = phi i64 [%269, %$16], [%325, %$29] ; # Pr1\n  %336 = phi i64 [%270, %$16], [%326, %$29] ; # Pr2\n  %337 = phi i64 [%271, %$16], [%327, %$29] ; # V\n  %338 = phi i8* [%272, %$16], [%328, %$29] ; # Raw\n; # (popInFiles)\n  call void @popInFiles()\n; # (set $Intern (val (val $NsLink)))\n; # (val $NsLink)\n  %339 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 24) to i64) to i64*\n  %340 = load i64, i64* %339\n; # (val (val $NsLink))\n  %341 = inttoptr i64 %340 to i64*\n  %342 = load i64, i64* %341\n  %343 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %342, i64* %343\n; # (when Raw (setRaw))\n  %344 = icmp ne i8* %338, null\n  br i1 %344, label %$35, label %$36\n$35:\n  %345 = phi i64 [%329, %$13] ; # Exe\n  %346 = phi i8* [%330, %$13] ; # Prmt\n  %347 = phi i64 [%331, %$13] ; # X\n  %348 = phi i64 [%332, %$13] ; # Lnk\n  %349 = phi i64 [%333, %$13] ; # Tr1\n  %350 = phi i64 [%334, %$13] ; # Tr2\n  %351 = phi i64 [%335, %$13] ; # Pr1\n  %352 = phi i64 [%336, %$13] ; # Pr2\n  %353 = phi i64 [%337, %$13] ; # V\n  %354 = phi i8* [%338, %$13] ; # Raw\n; # (setRaw)\n  call void @setRaw()\n  br label %$36\n$36:\n  %355 = phi i64 [%329, %$13], [%345, %$35] ; # Exe\n  %356 = phi i8* [%330, %$13], [%346, %$35] ; # Prmt\n  %357 = phi i64 [%331, %$13], [%347, %$35] ; # X\n  %358 = phi i64 [%332, %$13], [%348, %$35] ; # Lnk\n  %359 = phi i64 [%333, %$13], [%349, %$35] ; # Tr1\n  %360 = phi i64 [%334, %$13], [%350, %$35] ; # Tr2\n  %361 = phi i64 [%335, %$13], [%351, %$35] ; # Pr1\n  %362 = phi i64 [%336, %$13], [%352, %$35] ; # Pr2\n  %363 = phi i64 [%337, %$13], [%353, %$35] ; # V\n  %364 = phi i8* [%338, %$13], [%354, %$35] ; # Raw\n; # (set 2 $PrivT Pr2)\n  %365 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %366 = getelementptr i64, i64* %365, i32 1\n  store i64 %362, i64* %366\n; # (set $PrivT Pr1)\n  %367 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  store i64 %361, i64* %367\n; # (set 2 $Transient Tr2)\n  %368 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %369 = getelementptr i64, i64* %368, i32 1\n  store i64 %360, i64* %369\n; # (set $Transient Tr1)\n  %370 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 %359, i64* %370\n; # (set $NsLink Lnk)\n  %371 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 24) to i64) to i64*\n  store i64 %358, i64* %371\n  br label %$6\n$6:\n  %372 = phi i64 [%23, %$4], [%355, %$36] ; # Exe\n  %373 = phi i8* [%24, %$4], [%356, %$36] ; # Prmt\n  %374 = phi i64 [%25, %$4], [%357, %$36] ; # X\n  %375 = phi i64 [%29, %$4], [%357, %$36] ; # ->\n; # (drop *Safe)\n  %376 = inttoptr i64 %6 to i64*\n  %377 = getelementptr i64, i64* %376, i32 1\n  %378 = load i64, i64* %377\n  %379 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %378, i64* %379\n  ret i64 %375\n}\n\ndefine i64 @loadAll(i64) align 8 {\n$1:\n; # (let X $Nil (loop (let (A (val $AV) P (val A)) (? (or (=0 P) (and...\n; # (loop (let (A (val $AV) P (val A)) (? (or (=0 P) (and (== (val P)...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%29, %$7] ; # Exe\n  %2 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1], [%35, %$7] ; # X\n; # (let (A (val $AV) P (val A)) (? (or (=0 P) (and (== (val P) (char...\n; # (val $AV)\n  %3 = load i8**, i8*** @$AV\n; # (val A)\n  %4 = load i8*, i8** %3\n; # (? (or (=0 P) (and (== (val P) (char \"-\")) (=0 (val 2 P)))))\n; # (or (=0 P) (and (== (val P) (char \"-\")) (=0 (val 2 P))))\n; # (=0 P)\n  %5 = icmp eq i8* %4, null\n  br i1 %5, label %$3, label %$4\n$4:\n  %6 = phi i64 [%1, %$2] ; # Exe\n  %7 = phi i64 [%2, %$2] ; # X\n  %8 = phi i8** [%3, %$2] ; # A\n  %9 = phi i8* [%4, %$2] ; # P\n; # (and (== (val P) (char \"-\")) (=0 (val 2 P)))\n; # (val P)\n  %10 = load i8, i8* %9\n; # (== (val P) (char \"-\"))\n  %11 = icmp eq i8 %10, 45\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%6, %$4] ; # Exe\n  %13 = phi i64 [%7, %$4] ; # X\n  %14 = phi i8** [%8, %$4] ; # A\n  %15 = phi i8* [%9, %$4] ; # P\n; # (val 2 P)\n  %16 = getelementptr i8, i8* %15, i32 1\n  %17 = load i8, i8* %16\n; # (=0 (val 2 P))\n  %18 = icmp eq i8 %17, 0\n  br label %$5\n$5:\n  %19 = phi i64 [%6, %$4], [%12, %$6] ; # Exe\n  %20 = phi i64 [%7, %$4], [%13, %$6] ; # X\n  %21 = phi i8** [%8, %$4], [%14, %$6] ; # A\n  %22 = phi i8* [%9, %$4], [%15, %$6] ; # P\n  %23 = phi i1 [0, %$4], [%18, %$6] ; # ->\n  br label %$3\n$3:\n  %24 = phi i64 [%1, %$2], [%19, %$5] ; # Exe\n  %25 = phi i64 [%2, %$2], [%20, %$5] ; # X\n  %26 = phi i8** [%3, %$2], [%21, %$5] ; # A\n  %27 = phi i8* [%4, %$2], [%22, %$5] ; # P\n  %28 = phi i1 [1, %$2], [%23, %$5] ; # ->\n  br i1 %28, label %$8, label %$7\n$7:\n  %29 = phi i64 [%24, %$3] ; # Exe\n  %30 = phi i64 [%25, %$3] ; # X\n  %31 = phi i8** [%26, %$3] ; # A\n  %32 = phi i8* [%27, %$3] ; # P\n; # (set $AV (inc A))\n; # (inc A)\n  %33 = getelementptr i8*, i8** %31, i32 1\n  store i8** %33, i8*** @$AV\n; # (mkStr P)\n  %34 = call i64 @mkStr(i8* %32)\n; # (repl Exe null (mkStr P))\n  %35 = call i64 @repl(i64 %29, i8* null, i64 %34)\n  br label %$2\n$8:\n  %36 = phi i64 [%24, %$3] ; # Exe\n  %37 = phi i64 [%25, %$3] ; # X\n  %38 = phi i64 [0, %$3] ; # ->\n  ret i64 %37\n}\n\ndefine i64 @_Load(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (if (t? (eval (++ X))) (loadAll Exe...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (if (t? (eval (++ X))) (loadAll Exe) (repl Exe ($ \">...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%38, %$11] ; # Exe\n  %5 = phi i64 [%3, %$1], [%39, %$11] ; # X\n; # (let Y (if (t? (eval (++ X))) (loadAll Exe) (repl Exe ($ \"> \") @)...\n; # (if (t? (eval (++ X))) (loadAll Exe) (repl Exe ($ \"> \") @))\n; # (++ X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (eval (++ X))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$5, label %$4\n$5:\n  %12 = phi i64 [%9, %$2] ; # X\n  br label %$3\n$4:\n  %13 = phi i64 [%9, %$2] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$7, label %$6\n$7:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$3\n$6:\n  %19 = phi i64 [%13, %$4] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$3\n$3:\n  %21 = phi i64 [%12, %$5], [%16, %$7], [%19, %$6] ; # X\n  %22 = phi i64 [%12, %$5], [%18, %$7], [%20, %$6] ; # ->\n; # (t? (eval (++ X)))\n  %23 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %23, label %$8, label %$9\n$8:\n  %24 = phi i64 [%4, %$3] ; # Exe\n  %25 = phi i64 [%8, %$3] ; # X\n; # (loadAll Exe)\n  %26 = call i64 @loadAll(i64 %24)\n  br label %$10\n$9:\n  %27 = phi i64 [%4, %$3] ; # Exe\n  %28 = phi i64 [%8, %$3] ; # X\n; # (repl Exe ($ \"> \") @)\n  %29 = call i64 @repl(i64 %27, i8* bitcast ([3 x i8]* @$51 to i8*), i64 %22)\n  br label %$10\n$10:\n  %30 = phi i64 [%24, %$8], [%27, %$9] ; # Exe\n  %31 = phi i64 [%25, %$8], [%28, %$9] ; # X\n  %32 = phi i64 [%26, %$8], [%29, %$9] ; # ->\n; # (? (atom X) Y)\n; # (atom X)\n  %33 = and i64 %31, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$13, label %$11\n$13:\n  %35 = phi i64 [%30, %$10] ; # Exe\n  %36 = phi i64 [%31, %$10] ; # X\n  %37 = phi i64 [%32, %$10] ; # Y\n  br label %$12\n$11:\n  %38 = phi i64 [%30, %$10] ; # Exe\n  %39 = phi i64 [%31, %$10] ; # X\n  %40 = phi i64 [%32, %$10] ; # Y\n  br label %$2\n$12:\n  %41 = phi i64 [%35, %$13] ; # Exe\n  %42 = phi i64 [%36, %$13] ; # X\n  %43 = phi i64 [%37, %$13] ; # ->\n  ret i64 %43\n}\n\ndefine void @dbfErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Bad DB file\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([12 x i8]* @$52 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @dbRdErr() align 8 {\n$1:\n; # (strErrno)\n  %0 = call i8* @strErrno()\n; # (err 0 0 ($ \"DB read: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([12 x i8]* @$53 to i8*), i8* %0)\n  unreachable\n}\n\ndefine void @dbWrErr() align 8 {\n$1:\n; # (strErrno)\n  %0 = call i8* @strErrno()\n; # (err 0 0 ($ \"DB write: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([13 x i8]* @$54 to i8*), i8* %0)\n  unreachable\n}\n\ndefine void @jnlErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Bad Journal\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([12 x i8]* @$55 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @dbSyncErr(i64) align 8 {\n$1:\n; # (strErrno)\n  %1 = call i8* @strErrno()\n; # (err Exe 0 ($ \"DB fsync error: %s\") (strErrno))\n  call void @err(i64 %0, i64 0, i8* bitcast ([19 x i8]* @$56 to i8*), i8* %1)\n  unreachable\n}\n\ndefine i64 @getAdr(i8*) align 8 {\n$1:\n; # (val 6 P)\n  %1 = getelementptr i8, i8* %0, i32 5\n  %2 = load i8, i8* %1\n; # (i64 (val 6 P))\n  %3 = zext i8 %2 to i64\n; # (shl (i64 (val 6 P)) 8)\n  %4 = shl i64 %3, 8\n; # (val 5 P)\n  %5 = getelementptr i8, i8* %0, i32 4\n  %6 = load i8, i8* %5\n; # (i64 (val 5 P))\n  %7 = zext i8 %6 to i64\n; # (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P)))\n  %8 = or i64 %4, %7\n; # (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P))) 8)\n  %9 = shl i64 %8, 8\n; # (val 4 P)\n  %10 = getelementptr i8, i8* %0, i32 3\n  %11 = load i8, i8* %10\n; # (i64 (val 4 P))\n  %12 = zext i8 %11 to i64\n; # (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P))) 8) (i64 (val ...\n  %13 = or i64 %9, %12\n; # (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P))) 8) (i64 ...\n  %14 = shl i64 %13, 8\n; # (val 3 P)\n  %15 = getelementptr i8, i8* %0, i32 2\n  %16 = load i8, i8* %15\n; # (i64 (val 3 P))\n  %17 = zext i8 %16 to i64\n; # (| (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P))) 8) (i...\n  %18 = or i64 %14, %17\n; # (shl (| (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P))) ...\n  %19 = shl i64 %18, 8\n; # (val 2 P)\n  %20 = getelementptr i8, i8* %0, i32 1\n  %21 = load i8, i8* %20\n; # (i64 (val 2 P))\n  %22 = zext i8 %21 to i64\n; # (| (shl (| (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val 5 P)...\n  %23 = or i64 %19, %22\n; # (shl (| (shl (| (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (val...\n  %24 = shl i64 %23, 8\n; # (val P)\n  %25 = load i8, i8* %0\n; # (i64 (val P))\n  %26 = zext i8 %25 to i64\n; # (| (shl (| (shl (| (shl (| (shl (| (shl (i64 (val 6 P)) 8) (i64 (...\n  %27 = or i64 %24, %26\n  ret i64 %27\n}\n\ndefine void @setAdr(i64, i8*) align 8 {\n$1:\n; # (set P (i8 N))\n; # (i8 N)\n  %2 = trunc i64 %0 to i8\n  store i8 %2, i8* %1\n; # (set 2 P (i8 (setq N (shr N 8))))\n; # (shr N 8)\n  %3 = lshr i64 %0, 8\n; # (i8 (setq N (shr N 8)))\n  %4 = trunc i64 %3 to i8\n  %5 = getelementptr i8, i8* %1, i32 1\n  store i8 %4, i8* %5\n; # (set 3 P (i8 (setq N (shr N 8))))\n; # (shr N 8)\n  %6 = lshr i64 %3, 8\n; # (i8 (setq N (shr N 8)))\n  %7 = trunc i64 %6 to i8\n  %8 = getelementptr i8, i8* %1, i32 2\n  store i8 %7, i8* %8\n; # (set 4 P (i8 (setq N (shr N 8))))\n; # (shr N 8)\n  %9 = lshr i64 %6, 8\n; # (i8 (setq N (shr N 8)))\n  %10 = trunc i64 %9 to i8\n  %11 = getelementptr i8, i8* %1, i32 3\n  store i8 %10, i8* %11\n; # (set 5 P (i8 (setq N (shr N 8))))\n; # (shr N 8)\n  %12 = lshr i64 %9, 8\n; # (i8 (setq N (shr N 8)))\n  %13 = trunc i64 %12 to i8\n  %14 = getelementptr i8, i8* %1, i32 4\n  store i8 %13, i8* %14\n; # (set 6 P (i8 (shr N 8)))\n; # (shr N 8)\n  %15 = lshr i64 %12, 8\n; # (i8 (shr N 8))\n  %16 = trunc i64 %15 to i8\n  %17 = getelementptr i8, i8* %1, i32 5\n  store i8 %16, i8* %17\n  ret void\n}\n\ndefine i8* @dbfBuf(i8*) align 8 {\n$1:\n; # (let N (| (shl (i32 (val 2 P)) 8) (i32 (val P))) (if (> (val $DBs...\n; # (val 2 P)\n  %1 = getelementptr i8, i8* %0, i32 1\n  %2 = load i8, i8* %1\n; # (i32 (val 2 P))\n  %3 = zext i8 %2 to i32\n; # (shl (i32 (val 2 P)) 8)\n  %4 = shl i32 %3, 8\n; # (val P)\n  %5 = load i8, i8* %0\n; # (i32 (val P))\n  %6 = zext i8 %5 to i32\n; # (| (shl (i32 (val 2 P)) 8) (i32 (val P)))\n  %7 = or i32 %4, %6\n; # (if (> (val $DBs) N) (set $DbFile (ofs (val $DbFiles) (* N (dbFil...\n; # (val $DBs)\n  %8 = load i32, i32* @$DBs\n; # (> (val $DBs) N)\n  %9 = icmp sgt i32 %8, %7\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i8* [%0, %$1] ; # P\n  %11 = phi i32 [%7, %$1] ; # N\n; # (set $DbFile (ofs (val $DbFiles) (* N (dbFile T))))\n; # (val $DbFiles)\n  %12 = load i8*, i8** @$DbFiles\n; # (* N (dbFile T))\n  %13 = mul i32 %11, 48\n; # (ofs (val $DbFiles) (* N (dbFile T)))\n  %14 = getelementptr i8, i8* %12, i32 %13\n  store i8* %14, i8** @$DbFile\n  br label %$4\n$3:\n  %15 = phi i8* [%0, %$1] ; # P\n  %16 = phi i32 [%7, %$1] ; # N\n  br label %$4\n$4:\n  %17 = phi i8* [%10, %$2], [%15, %$3] ; # P\n  %18 = phi i32 [%11, %$2], [%16, %$3] ; # N\n  %19 = phi i8* [%14, %$2], [null, %$3] ; # ->\n  ret i8* %19\n}\n\ndefine void @rdLockDb() align 8 {\n$1:\n; # (unless (t? (val $Solo)) (rdLockWait ((dbFile (val $DbFiles)) fd)...\n; # (val $Solo)\n  %0 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  %1 = load i64, i64* %0\n; # (t? (val $Solo))\n  %2 = icmp eq i64 %1, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %2, label %$3, label %$2\n$2:\n; # (val $DbFiles)\n  %3 = load i8*, i8** @$DbFiles\n; # ((dbFile (val $DbFiles)) fd)\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (rdLockWait ((dbFile (val $DbFiles)) fd) 1)\n  call void @rdLockWait(i32 %5, i64 1)\n  br label %$3\n$3:\n  ret void\n}\n\ndefine void @wrLockDb() align 8 {\n$1:\n; # (unless (t? (val $Solo)) (wrLockWait ((dbFile (val $DbFiles)) fd)...\n; # (val $Solo)\n  %0 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  %1 = load i64, i64* %0\n; # (t? (val $Solo))\n  %2 = icmp eq i64 %1, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %2, label %$3, label %$2\n$2:\n; # (val $DbFiles)\n  %3 = load i8*, i8** @$DbFiles\n; # ((dbFile (val $DbFiles)) fd)\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (wrLockWait ((dbFile (val $DbFiles)) fd) 1)\n  call void @wrLockWait(i32 %5, i64 1)\n  br label %$3\n$3:\n  ret void\n}\n\ndefine void @unLockDb(i64) align 8 {\n$1:\n; # (unless (t? (val $Solo)) (unless Len (let (Db (val $DbFiles) C (v...\n; # (val $Solo)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (t? (val $Solo))\n  %3 = icmp eq i64 %2, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Len\n; # (unless Len (let (Db (val $DbFiles) C (val $DBs)) (while (dec 'C)...\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$5, label %$4\n$4:\n  %6 = phi i64 [%4, %$2] ; # Len\n; # (let (Db (val $DbFiles) C (val $DBs)) (while (dec 'C) (let Db: (d...\n; # (val $DbFiles)\n  %7 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %8 = load i32, i32* @$DBs\n; # (while (dec 'C) (let Db: (dbFile (setq Db (ofs Db (dbFile T)))) (...\n  br label %$6\n$6:\n  %9 = phi i64 [%6, %$4], [%29, %$10] ; # Len\n  %10 = phi i8* [%7, %$4], [%30, %$10] ; # Db\n  %11 = phi i32 [%8, %$4], [%31, %$10] ; # C\n; # (dec 'C)\n  %12 = sub i32 %11, 1\n  %13 = icmp ne i32 %12, 0\n  br i1 %13, label %$7, label %$8\n$7:\n  %14 = phi i64 [%9, %$6] ; # Len\n  %15 = phi i8* [%10, %$6] ; # Db\n  %16 = phi i32 [%12, %$6] ; # C\n; # (let Db: (dbFile (setq Db (ofs Db (dbFile T)))) (when (Db: lck) (...\n; # (ofs Db (dbFile T))\n  %17 = getelementptr i8, i8* %15, i32 48\n; # (when (Db: lck) (unLock (Db: fd) 0 0) (Db: lck NO))\n; # (Db: lck)\n  %18 = getelementptr i8, i8* %17, i32 40\n  %19 = bitcast i8* %18 to i1*\n  %20 = load i1, i1* %19\n  br i1 %20, label %$9, label %$10\n$9:\n  %21 = phi i64 [%14, %$7] ; # Len\n  %22 = phi i8* [%17, %$7] ; # Db\n  %23 = phi i32 [%16, %$7] ; # C\n; # (Db: fd)\n  %24 = bitcast i8* %17 to i32*\n  %25 = load i32, i32* %24\n; # (unLock (Db: fd) 0 0)\n  %26 = call i32 @unLock(i32 %25, i64 0, i64 0)\n; # (Db: lck NO)\n  %27 = getelementptr i8, i8* %17, i32 40\n  %28 = bitcast i8* %27 to i1*\n  store i1 0, i1* %28\n  br label %$10\n$10:\n  %29 = phi i64 [%14, %$7], [%21, %$9] ; # Len\n  %30 = phi i8* [%17, %$7], [%22, %$9] ; # Db\n  %31 = phi i32 [%16, %$7], [%23, %$9] ; # C\n  br label %$6\n$8:\n  %32 = phi i64 [%9, %$6] ; # Len\n  %33 = phi i8* [%10, %$6] ; # Db\n  %34 = phi i32 [%12, %$6] ; # C\n; # (set $Solo ZERO)\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  store i64 2, i64* %35\n  br label %$5\n$5:\n  %36 = phi i64 [%4, %$2], [%32, %$8] ; # Len\n; # (val $DbFiles)\n  %37 = load i8*, i8** @$DbFiles\n; # ((dbFile (val $DbFiles)) fd)\n  %38 = bitcast i8* %37 to i32*\n  %39 = load i32, i32* %38\n; # (unLock ((dbFile (val $DbFiles)) fd) 0 Len)\n  %40 = call i32 @unLock(i32 %39, i64 0, i64 %36)\n  br label %$3\n$3:\n  %41 = phi i64 [%0, %$1], [%36, %$5] ; # Len\n  ret void\n}\n\ndefine i32 @tryLock(i8*, i64, i64) align 8 {\n$1:\n; # (let Db: (dbFile DbFile) (loop (? (ge0 (wrLock (Db: fd) N Len NO)...\n; # (loop (? (ge0 (wrLock (Db: fd) N Len NO)) (Db: lck YES) (nond (N ...\n  br label %$2\n$2:\n  %3 = phi i8* [%0, %$1], [%85, %$21] ; # DbFile\n  %4 = phi i64 [%1, %$1], [%86, %$21] ; # N\n  %5 = phi i64 [%2, %$1], [%87, %$21] ; # Len\n; # (? (ge0 (wrLock (Db: fd) N Len NO)) (Db: lck YES) (nond (N (set $...\n; # (Db: fd)\n  %6 = bitcast i8* %0 to i32*\n  %7 = load i32, i32* %6\n; # (wrLock (Db: fd) N Len NO)\n  %8 = call i32 @wrLock(i32 %7, i64 %4, i64 %5, i1 0)\n; # (ge0 (wrLock (Db: fd) N Len NO))\n  %9 = icmp sge i32 %8, 0\n  br i1 %9, label %$5, label %$3\n$5:\n  %10 = phi i8* [%3, %$2] ; # DbFile\n  %11 = phi i64 [%4, %$2] ; # N\n  %12 = phi i64 [%5, %$2] ; # Len\n; # (Db: lck YES)\n  %13 = getelementptr i8, i8* %0, i32 40\n  %14 = bitcast i8* %13 to i1*\n  store i1 1, i1* %14\n; # (nond (N (set $Solo $T)) ((t? (val $Solo)) (set $Solo $Nil)))\n  %15 = icmp ne i64 %11, 0\n  br i1 %15, label %$7, label %$8\n$8:\n  %16 = phi i8* [%10, %$5] ; # DbFile\n  %17 = phi i64 [%11, %$5] ; # N\n  %18 = phi i64 [%12, %$5] ; # Len\n; # (set $Solo $T)\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %19\n  br label %$6\n$7:\n  %20 = phi i8* [%10, %$5] ; # DbFile\n  %21 = phi i64 [%11, %$5] ; # N\n  %22 = phi i64 [%12, %$5] ; # Len\n; # (val $Solo)\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  %24 = load i64, i64* %23\n; # (t? (val $Solo))\n  %25 = icmp eq i64 %24, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %25, label %$9, label %$10\n$10:\n  %26 = phi i8* [%20, %$7] ; # DbFile\n  %27 = phi i64 [%21, %$7] ; # N\n  %28 = phi i64 [%22, %$7] ; # Len\n; # (set $Solo $Nil)\n  %29 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %29\n  br label %$6\n$9:\n  %30 = phi i8* [%20, %$7] ; # DbFile\n  %31 = phi i64 [%21, %$7] ; # N\n  %32 = phi i64 [%22, %$7] ; # Len\n  br label %$6\n$6:\n  %33 = phi i8* [%16, %$8], [%26, %$10], [%30, %$9] ; # DbFile\n  %34 = phi i64 [%17, %$8], [%27, %$10], [%31, %$9] ; # N\n  %35 = phi i64 [%18, %$8], [%28, %$10], [%32, %$9] ; # Len\n  %36 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$8], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [0, %$9] ; # ->\n  br label %$4\n$3:\n  %37 = phi i8* [%3, %$2] ; # DbFile\n  %38 = phi i64 [%4, %$2] ; # N\n  %39 = phi i64 [%5, %$2] ; # Len\n; # (unless (or (== (gErrno) EINTR) (== @ EACCES) (== @ EAGAIN)) (loc...\n; # (or (== (gErrno) EINTR) (== @ EACCES) (== @ EAGAIN))\n; # (gErrno)\n  %40 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %41 = icmp eq i32 %40, 2\n  br i1 %41, label %$11, label %$12\n$12:\n  %42 = phi i8* [%37, %$3] ; # DbFile\n  %43 = phi i64 [%38, %$3] ; # N\n  %44 = phi i64 [%39, %$3] ; # Len\n; # (== @ EACCES)\n  %45 = icmp eq i32 %40, 5\n  br i1 %45, label %$11, label %$13\n$13:\n  %46 = phi i8* [%42, %$12] ; # DbFile\n  %47 = phi i64 [%43, %$12] ; # N\n  %48 = phi i64 [%44, %$12] ; # Len\n; # (== @ EAGAIN)\n  %49 = icmp eq i32 %40, 4\n  br label %$11\n$11:\n  %50 = phi i8* [%37, %$3], [%42, %$12], [%46, %$13] ; # DbFile\n  %51 = phi i64 [%38, %$3], [%43, %$12], [%47, %$13] ; # N\n  %52 = phi i64 [%39, %$3], [%44, %$12], [%48, %$13] ; # Len\n  %53 = phi i1 [1, %$3], [1, %$12], [%49, %$13] ; # ->\n  br i1 %53, label %$15, label %$14\n$14:\n  %54 = phi i8* [%50, %$11] ; # DbFile\n  %55 = phi i64 [%51, %$11] ; # N\n  %56 = phi i64 [%52, %$11] ; # Len\n; # (lockErr)\n  call void @lockErr()\n  unreachable\n$15:\n  %57 = phi i8* [%50, %$11] ; # DbFile\n  %58 = phi i64 [%51, %$11] ; # N\n  %59 = phi i64 [%52, %$11] ; # Len\n; # (while (lt0 (getLock (Db: fd) N Len)) (unless (== (gErrno) EINTR)...\n  br label %$16\n$16:\n  %60 = phi i8* [%57, %$15], [%75, %$20] ; # DbFile\n  %61 = phi i64 [%58, %$15], [%76, %$20] ; # N\n  %62 = phi i64 [%59, %$15], [%77, %$20] ; # Len\n; # (Db: fd)\n  %63 = bitcast i8* %0 to i32*\n  %64 = load i32, i32* %63\n; # (getLock (Db: fd) N Len)\n  %65 = call i32 @getLock(i32 %64, i64 %61, i64 %62)\n; # (lt0 (getLock (Db: fd) N Len))\n  %66 = icmp slt i32 %65, 0\n  br i1 %66, label %$17, label %$18\n$17:\n  %67 = phi i8* [%60, %$16] ; # DbFile\n  %68 = phi i64 [%61, %$16] ; # N\n  %69 = phi i64 [%62, %$16] ; # Len\n; # (unless (== (gErrno) EINTR) (lockErr))\n; # (gErrno)\n  %70 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %71 = icmp eq i32 %70, 2\n  br i1 %71, label %$20, label %$19\n$19:\n  %72 = phi i8* [%67, %$17] ; # DbFile\n  %73 = phi i64 [%68, %$17] ; # N\n  %74 = phi i64 [%69, %$17] ; # Len\n; # (lockErr)\n  call void @lockErr()\n  unreachable\n$20:\n  %75 = phi i8* [%67, %$17] ; # DbFile\n  %76 = phi i64 [%68, %$17] ; # N\n  %77 = phi i64 [%69, %$17] ; # Len\n  br label %$16\n$18:\n  %78 = phi i8* [%60, %$16] ; # DbFile\n  %79 = phi i64 [%61, %$16] ; # N\n  %80 = phi i64 [%62, %$16] ; # Len\n; # (? (gt0 @) @)\n; # (gt0 @)\n  %81 = icmp sgt i32 %65, 0\n  br i1 %81, label %$22, label %$21\n$22:\n  %82 = phi i8* [%78, %$18] ; # DbFile\n  %83 = phi i64 [%79, %$18] ; # N\n  %84 = phi i64 [%80, %$18] ; # Len\n  br label %$4\n$21:\n  %85 = phi i8* [%78, %$18] ; # DbFile\n  %86 = phi i64 [%79, %$18] ; # N\n  %87 = phi i64 [%80, %$18] ; # Len\n  br label %$2\n$4:\n  %88 = phi i8* [%33, %$6], [%82, %$22] ; # DbFile\n  %89 = phi i64 [%34, %$6], [%83, %$22] ; # N\n  %90 = phi i64 [%35, %$6], [%84, %$22] ; # Len\n  %91 = phi i32 [0, %$6], [%65, %$22] ; # ->\n  ret i32 %91\n}\n\ndefine void @lockJnl() align 8 {\n$1:\n; # (val $DbJnl)\n  %0 = load i8*, i8** @$DbJnl\n; # (fileno (val $DbJnl))\n  %1 = call i32 @fileno(i8* %0)\n; # (wrLockWait (fileno (val $DbJnl)) 0)\n  call void @wrLockWait(i32 %1, i64 0)\n  ret void\n}\n\ndefine void @unLockJnl() align 8 {\n$1:\n; # (let Jnl (val $DbJnl) (fflush Jnl) (unLock (fileno Jnl) 0 0))\n; # (val $DbJnl)\n  %0 = load i8*, i8** @$DbJnl\n; # (fflush Jnl)\n  %1 = call i32 @fflush(i8* %0)\n; # (fileno Jnl)\n  %2 = call i32 @fileno(i8* %0)\n; # (unLock (fileno Jnl) 0 0)\n  %3 = call i32 @unLock(i32 %2, i64 0, i64 0)\n  ret void\n}\n\ndefine void @blkPeek(i64, i8*, i32) align 8 {\n$1:\n; # (let (S (i64 Siz) Db: (dbFile (val $DbFile))) (unless (== S (prea...\n; # (i64 Siz)\n  %3 = sext i32 %2 to i64\n; # (val $DbFile)\n  %4 = load i8*, i8** @$DbFile\n; # (unless (== S (pread (Db: fd) Buf S Pos)) (dbRdErr))\n; # (Db: fd)\n  %5 = bitcast i8* %4 to i32*\n  %6 = load i32, i32* %5\n; # (pread (Db: fd) Buf S Pos)\n  %7 = call i64 @pread(i32 %6, i8* %1, i64 %3, i64 %0)\n; # (== S (pread (Db: fd) Buf S Pos))\n  %8 = icmp eq i64 %3, %7\n  br i1 %8, label %$3, label %$2\n$2:\n  %9 = phi i64 [%0, %$1] ; # Pos\n  %10 = phi i8* [%1, %$1] ; # Buf\n  %11 = phi i32 [%2, %$1] ; # Siz\n  %12 = phi i64 [%3, %$1] ; # S\n; # (dbRdErr)\n  call void @dbRdErr()\n  unreachable\n$3:\n  %13 = phi i64 [%0, %$1] ; # Pos\n  %14 = phi i8* [%1, %$1] ; # Buf\n  %15 = phi i32 [%2, %$1] ; # Siz\n  %16 = phi i64 [%3, %$1] ; # S\n  ret void\n}\n\ndefine i8* @rdBlock(i64) align 8 {\n$1:\n; # (let (Db: (dbFile (val $DbFile)) Blk (val $DbBlock)) (blkPeek (sh...\n; # (val $DbFile)\n  %1 = load i8*, i8** @$DbFile\n; # (val $DbBlock)\n  %2 = load i8*, i8** @$DbBlock\n; # (set $BlkIndex N)\n  store i64 %0, i64* @$BlkIndex\n; # (Db: sh)\n  %3 = getelementptr i8, i8* %1, i32 8\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (i64 (Db: sh))\n  %6 = sext i32 %5 to i64\n; # (shl (set $BlkIndex N) (i64 (Db: sh)))\n  %7 = shl i64 %0, %6\n; # (Db: siz)\n  %8 = getelementptr i8, i8* %1, i32 12\n  %9 = bitcast i8* %8 to i32*\n  %10 = load i32, i32* %9\n; # (blkPeek (shl (set $BlkIndex N) (i64 (Db: sh))) Blk (Db: siz))\n  call void @blkPeek(i64 %7, i8* %2, i32 %10)\n; # (set $BlkLink (& (getAdr Blk) BLKMASK) $BlkEnd (ofs Blk (Db: siz)...\n; # (getAdr Blk)\n  %11 = call i64 @getAdr(i8* %2)\n; # (& (getAdr Blk) BLKMASK)\n  %12 = and i64 %11, -64\n  store i64 %12, i64* @$BlkLink\n; # (Db: siz)\n  %13 = getelementptr i8, i8* %1, i32 12\n  %14 = bitcast i8* %13 to i32*\n  %15 = load i32, i32* %14\n; # (ofs Blk (Db: siz))\n  %16 = getelementptr i8, i8* %2, i32 %15\n  store i8* %16, i8** @$BlkEnd\n; # (ofs Blk BLK)\n  %17 = getelementptr i8, i8* %2, i32 6\n  store i8* %17, i8** @$BlkPtr\n  ret i8* %2\n}\n\ndefine void @blkPoke(i64, i8*, i32) align 8 {\n$1:\n; # (let Db: (dbFile (val $DbFile)) (unless (== Siz (i32 (pwrite (Db:...\n; # (val $DbFile)\n  %3 = load i8*, i8** @$DbFile\n; # (unless (== Siz (i32 (pwrite (Db: fd) Buf (i64 Siz) Pos))) (dbWrE...\n; # (Db: fd)\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (i64 Siz)\n  %6 = sext i32 %2 to i64\n; # (pwrite (Db: fd) Buf (i64 Siz) Pos)\n  %7 = call i64 @pwrite(i32 %5, i8* %1, i64 %6, i64 %0)\n; # (i32 (pwrite (Db: fd) Buf (i64 Siz) Pos))\n  %8 = trunc i64 %7 to i32\n; # (== Siz (i32 (pwrite (Db: fd) Buf (i64 Siz) Pos)))\n  %9 = icmp eq i32 %2, %8\n  br i1 %9, label %$3, label %$2\n$2:\n  %10 = phi i64 [%0, %$1] ; # Pos\n  %11 = phi i8* [%1, %$1] ; # Buf\n  %12 = phi i32 [%2, %$1] ; # Siz\n; # (dbWrErr)\n  call void @dbWrErr()\n  unreachable\n$3:\n  %13 = phi i64 [%0, %$1] ; # Pos\n  %14 = phi i8* [%1, %$1] ; # Buf\n  %15 = phi i32 [%2, %$1] ; # Siz\n; # (when (val $DbJnl) (let Jnl @ (putc_unlocked (if (== Siz (Db: siz...\n; # (val $DbJnl)\n  %16 = load i8*, i8** @$DbJnl\n  %17 = icmp ne i8* %16, null\n  br i1 %17, label %$4, label %$5\n$4:\n  %18 = phi i64 [%13, %$3] ; # Pos\n  %19 = phi i8* [%14, %$3] ; # Buf\n  %20 = phi i32 [%15, %$3] ; # Siz\n; # (let Jnl @ (putc_unlocked (if (== Siz (Db: siz)) 0 Siz) Jnl) (let...\n; # (if (== Siz (Db: siz)) 0 Siz)\n; # (Db: siz)\n  %21 = getelementptr i8, i8* %3, i32 12\n  %22 = bitcast i8* %21 to i32*\n  %23 = load i32, i32* %22\n; # (== Siz (Db: siz))\n  %24 = icmp eq i32 %20, %23\n  br i1 %24, label %$6, label %$7\n$6:\n  %25 = phi i64 [%18, %$4] ; # Pos\n  %26 = phi i8* [%19, %$4] ; # Buf\n  %27 = phi i32 [%20, %$4] ; # Siz\n  %28 = phi i8* [%16, %$4] ; # Jnl\n  br label %$8\n$7:\n  %29 = phi i64 [%18, %$4] ; # Pos\n  %30 = phi i8* [%19, %$4] ; # Buf\n  %31 = phi i32 [%20, %$4] ; # Siz\n  %32 = phi i8* [%16, %$4] ; # Jnl\n  br label %$8\n$8:\n  %33 = phi i64 [%25, %$6], [%29, %$7] ; # Pos\n  %34 = phi i8* [%26, %$6], [%30, %$7] ; # Buf\n  %35 = phi i32 [%27, %$6], [%31, %$7] ; # Siz\n  %36 = phi i8* [%28, %$6], [%32, %$7] ; # Jnl\n  %37 = phi i32 [0, %$6], [%31, %$7] ; # ->\n; # (putc_unlocked (if (== Siz (Db: siz)) 0 Siz) Jnl)\n  %38 = call i32 @putc_unlocked(i32 %37, i8* %36)\n; # (let P (b8 (+ BLK 2)) (set P (i8 (Db: db))) (set 2 P (i8 (shr (Db...\n; # (+ BLK 2)\n; # (b8 (+ BLK 2))\n  %39 = alloca i8, i64 8\n; # (set P (i8 (Db: db)))\n; # (Db: db)\n  %40 = getelementptr i8, i8* %3, i32 4\n  %41 = bitcast i8* %40 to i32*\n  %42 = load i32, i32* %41\n; # (i8 (Db: db))\n  %43 = trunc i32 %42 to i8\n  store i8 %43, i8* %39\n; # (set 2 P (i8 (shr (Db: db) 8)))\n; # (Db: db)\n  %44 = getelementptr i8, i8* %3, i32 4\n  %45 = bitcast i8* %44 to i32*\n  %46 = load i32, i32* %45\n; # (shr (Db: db) 8)\n  %47 = lshr i32 %46, 8\n; # (i8 (shr (Db: db) 8))\n  %48 = trunc i32 %47 to i8\n  %49 = getelementptr i8, i8* %39, i32 1\n  store i8 %48, i8* %49\n; # (Db: sh)\n  %50 = getelementptr i8, i8* %3, i32 8\n  %51 = bitcast i8* %50 to i32*\n  %52 = load i32, i32* %51\n; # (i64 (Db: sh))\n  %53 = sext i32 %52 to i64\n; # (shr Pos (i64 (Db: sh)))\n  %54 = lshr i64 %33, %53\n; # (ofs P 2)\n  %55 = getelementptr i8, i8* %39, i32 2\n; # (setAdr (shr Pos (i64 (Db: sh))) (ofs P 2))\n  call void @setAdr(i64 %54, i8* %55)\n; # (unless (and (== 1 (fwrite P (+ BLK 2) 1 Jnl)) (== 1 (fwrite Buf ...\n; # (and (== 1 (fwrite P (+ BLK 2) 1 Jnl)) (== 1 (fwrite Buf (i64 Siz...\n; # (+ BLK 2)\n; # (fwrite P (+ BLK 2) 1 Jnl)\n  %56 = call i32 @fwrite(i8* %39, i64 8, i64 1, i8* %36)\n; # (== 1 (fwrite P (+ BLK 2) 1 Jnl))\n  %57 = icmp eq i32 1, %56\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%33, %$8] ; # Pos\n  %59 = phi i8* [%34, %$8] ; # Buf\n  %60 = phi i32 [%35, %$8] ; # Siz\n  %61 = phi i8* [%36, %$8] ; # Jnl\n  %62 = phi i8* [%39, %$8] ; # P\n; # (i64 Siz)\n  %63 = sext i32 %60 to i64\n; # (fwrite Buf (i64 Siz) 1 Jnl)\n  %64 = call i32 @fwrite(i8* %59, i64 %63, i64 1, i8* %61)\n; # (== 1 (fwrite Buf (i64 Siz) 1 Jnl))\n  %65 = icmp eq i32 1, %64\n  br label %$9\n$9:\n  %66 = phi i64 [%33, %$8], [%58, %$10] ; # Pos\n  %67 = phi i8* [%34, %$8], [%59, %$10] ; # Buf\n  %68 = phi i32 [%35, %$8], [%60, %$10] ; # Siz\n  %69 = phi i8* [%36, %$8], [%61, %$10] ; # Jnl\n  %70 = phi i8* [%39, %$8], [%62, %$10] ; # P\n  %71 = phi i1 [0, %$8], [%65, %$10] ; # ->\n  br i1 %71, label %$12, label %$11\n$11:\n  %72 = phi i64 [%66, %$9] ; # Pos\n  %73 = phi i8* [%67, %$9] ; # Buf\n  %74 = phi i32 [%68, %$9] ; # Siz\n  %75 = phi i8* [%69, %$9] ; # Jnl\n  %76 = phi i8* [%70, %$9] ; # P\n; # (strErrno)\n  %77 = call i8* @strErrno()\n; # (err 0 0 ($ \"Journal write: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([18 x i8]* @$57 to i8*), i8* %77)\n  unreachable\n$12:\n  %78 = phi i64 [%66, %$9] ; # Pos\n  %79 = phi i8* [%67, %$9] ; # Buf\n  %80 = phi i32 [%68, %$9] ; # Siz\n  %81 = phi i8* [%69, %$9] ; # Jnl\n  %82 = phi i8* [%70, %$9] ; # P\n  br label %$5\n$5:\n  %83 = phi i64 [%13, %$3], [%78, %$12] ; # Pos\n  %84 = phi i8* [%14, %$3], [%79, %$12] ; # Buf\n  %85 = phi i32 [%15, %$3], [%80, %$12] ; # Siz\n  ret void\n}\n\ndefine void @wrBlock() align 8 {\n$1:\n; # (let Db: (dbFile (val $DbFile)) (blkPoke (shl (val $BlkIndex) (i6...\n; # (val $DbFile)\n  %0 = load i8*, i8** @$DbFile\n; # (val $BlkIndex)\n  %1 = load i64, i64* @$BlkIndex\n; # (Db: sh)\n  %2 = getelementptr i8, i8* %0, i32 8\n  %3 = bitcast i8* %2 to i32*\n  %4 = load i32, i32* %3\n; # (i64 (Db: sh))\n  %5 = sext i32 %4 to i64\n; # (shl (val $BlkIndex) (i64 (Db: sh)))\n  %6 = shl i64 %1, %5\n; # (val $DbBlock)\n  %7 = load i8*, i8** @$DbBlock\n; # (Db: siz)\n  %8 = getelementptr i8, i8* %0, i32 12\n  %9 = bitcast i8* %8 to i32*\n  %10 = load i32, i32* %9\n; # (blkPoke (shl (val $BlkIndex) (i64 (Db: sh))) (val $DbBlock) (Db:...\n  call void @blkPoke(i64 %6, i8* %7, i32 %10)\n  ret void\n}\n\ndefine void @logBlock() align 8 {\n$1:\n; # (let (Db: (dbFile (val $DbFile)) Log (val $DbLog) P (b8 (+ BLK 2)...\n; # (val $DbFile)\n  %0 = load i8*, i8** @$DbFile\n; # (val $DbLog)\n  %1 = load i8*, i8** @$DbLog\n; # (+ BLK 2)\n; # (b8 (+ BLK 2))\n  %2 = alloca i8, i64 8\n; # (set P (i8 (Db: db)))\n; # (Db: db)\n  %3 = getelementptr i8, i8* %0, i32 4\n  %4 = bitcast i8* %3 to i32*\n  %5 = load i32, i32* %4\n; # (i8 (Db: db))\n  %6 = trunc i32 %5 to i8\n  store i8 %6, i8* %2\n; # (set 2 P (i8 (shr (Db: db) 8)))\n; # (Db: db)\n  %7 = getelementptr i8, i8* %0, i32 4\n  %8 = bitcast i8* %7 to i32*\n  %9 = load i32, i32* %8\n; # (shr (Db: db) 8)\n  %10 = lshr i32 %9, 8\n; # (i8 (shr (Db: db) 8))\n  %11 = trunc i32 %10 to i8\n  %12 = getelementptr i8, i8* %2, i32 1\n  store i8 %11, i8* %12\n; # (val $BlkIndex)\n  %13 = load i64, i64* @$BlkIndex\n; # (ofs P 2)\n  %14 = getelementptr i8, i8* %2, i32 2\n; # (setAdr (val $BlkIndex) (ofs P 2))\n  call void @setAdr(i64 %13, i8* %14)\n; # (unless (and (== 1 (fwrite P (+ BLK 2) 1 Log)) (== 1 (fwrite (val...\n; # (and (== 1 (fwrite P (+ BLK 2) 1 Log)) (== 1 (fwrite (val $DbBloc...\n; # (+ BLK 2)\n; # (fwrite P (+ BLK 2) 1 Log)\n  %15 = call i32 @fwrite(i8* %2, i64 8, i64 1, i8* %1)\n; # (== 1 (fwrite P (+ BLK 2) 1 Log))\n  %16 = icmp eq i32 1, %15\n  br i1 %16, label %$3, label %$2\n$3:\n  %17 = phi i8* [%1, %$1] ; # Log\n  %18 = phi i8* [%2, %$1] ; # P\n; # (val $DbBlock)\n  %19 = load i8*, i8** @$DbBlock\n; # (Db: siz)\n  %20 = getelementptr i8, i8* %0, i32 12\n  %21 = bitcast i8* %20 to i32*\n  %22 = load i32, i32* %21\n; # (i64 (Db: siz))\n  %23 = sext i32 %22 to i64\n; # (fwrite (val $DbBlock) (i64 (Db: siz)) 1 Log)\n  %24 = call i32 @fwrite(i8* %19, i64 %23, i64 1, i8* %17)\n; # (== 1 (fwrite (val $DbBlock) (i64 (Db: siz)) 1 Log))\n  %25 = icmp eq i32 1, %24\n  br label %$2\n$2:\n  %26 = phi i8* [%1, %$1], [%17, %$3] ; # Log\n  %27 = phi i8* [%2, %$1], [%18, %$3] ; # P\n  %28 = phi i1 [0, %$1], [%25, %$3] ; # ->\n  br i1 %28, label %$5, label %$4\n$4:\n  %29 = phi i8* [%26, %$2] ; # Log\n  %30 = phi i8* [%27, %$2] ; # P\n; # (strErrno)\n  %31 = call i8* @strErrno()\n; # (err 0 0 ($ \"Log write: %s\") (strErrno))\n  call void @err(i64 0, i64 0, i8* bitcast ([14 x i8]* @$58 to i8*), i8* %31)\n  unreachable\n$5:\n  %32 = phi i8* [%26, %$2] ; # Log\n  %33 = phi i8* [%27, %$2] ; # P\n  ret void\n}\n\ndefine i64 @newBlock() align 8 {\n$1:\n; # (let (Db: (dbFile (val $DbFile)) Siz (Db: siz) P (b8 Siz)) (blkPe...\n; # (val $DbFile)\n  %0 = load i8*, i8** @$DbFile\n; # (Db: siz)\n  %1 = getelementptr i8, i8* %0, i32 12\n  %2 = bitcast i8* %1 to i32*\n  %3 = load i32, i32* %2\n; # (b8 Siz)\n  %4 = alloca i8, i32 %3\n; # (* 2 BLK)\n; # (blkPeek 0 P (* 2 BLK))\n  call void @blkPeek(i64 0, i8* %4, i32 12)\n; # (let N (getAdr P) (cond ((and N (Db: flu)) (blkPeek (shl N (i64 (...\n; # (getAdr P)\n  %5 = call i64 @getAdr(i8* %4)\n; # (cond ((and N (Db: flu)) (blkPeek (shl N (i64 (Db: sh))) P BLK) (...\n; # (and N (Db: flu))\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$4, label %$3\n$4:\n  %7 = phi i32 [%3, %$1] ; # Siz\n  %8 = phi i8* [%4, %$1] ; # P\n  %9 = phi i64 [%5, %$1] ; # N\n; # (Db: flu)\n  %10 = getelementptr i8, i8* %0, i32 32\n  %11 = bitcast i8* %10 to i64*\n  %12 = load i64, i64* %11\n  %13 = icmp ne i64 %12, 0\n  br label %$3\n$3:\n  %14 = phi i32 [%3, %$1], [%7, %$4] ; # Siz\n  %15 = phi i8* [%4, %$1], [%8, %$4] ; # P\n  %16 = phi i64 [%5, %$1], [%9, %$4] ; # N\n  %17 = phi i1 [0, %$1], [%13, %$4] ; # ->\n  br i1 %17, label %$6, label %$5\n$6:\n  %18 = phi i32 [%14, %$3] ; # Siz\n  %19 = phi i8* [%15, %$3] ; # P\n  %20 = phi i64 [%16, %$3] ; # N\n; # (Db: sh)\n  %21 = getelementptr i8, i8* %0, i32 8\n  %22 = bitcast i8* %21 to i32*\n  %23 = load i32, i32* %22\n; # (i64 (Db: sh))\n  %24 = sext i32 %23 to i64\n; # (shl N (i64 (Db: sh)))\n  %25 = shl i64 %20, %24\n; # (blkPeek (shl N (i64 (Db: sh))) P BLK)\n  call void @blkPeek(i64 %25, i8* %19, i32 6)\n; # (Db: flu (dec (Db: flu)))\n  %26 = getelementptr i8, i8* %0, i32 32\n  %27 = bitcast i8* %26 to i64*\n  %28 = getelementptr i8, i8* %0, i32 32\n  %29 = bitcast i8* %28 to i64*\n  %30 = load i64, i64* %29\n  %31 = sub i64 %30, 1\n  store i64 %31, i64* %27\n  br label %$2\n$5:\n  %32 = phi i32 [%14, %$3] ; # Siz\n  %33 = phi i8* [%15, %$3] ; # P\n  %34 = phi i64 [%16, %$3] ; # N\n; # (ofs P BLK)\n  %35 = getelementptr i8, i8* %33, i32 6\n; # (getAdr (ofs P BLK))\n  %36 = call i64 @getAdr(i8* %35)\n; # (== (setq N (getAdr (ofs P BLK))) (hex \"FFFFFFFFFFC0\"))\n  %37 = icmp eq i64 %36, 281474976710592\n  br i1 %37, label %$8, label %$7\n$8:\n  %38 = phi i32 [%32, %$5] ; # Siz\n  %39 = phi i8* [%33, %$5] ; # P\n  %40 = phi i64 [%36, %$5] ; # N\n; # (err 0 0 ($ \"DB Oversize\") null)\n  call void @err(i64 0, i64 0, i8* bitcast ([12 x i8]* @$59 to i8*), i8* null)\n  unreachable\n$7:\n  %41 = phi i32 [%32, %$5] ; # Siz\n  %42 = phi i8* [%33, %$5] ; # P\n  %43 = phi i64 [%36, %$5] ; # N\n; # (+ N BLKSIZE)\n  %44 = add i64 %43, 64\n; # (ofs P BLK)\n  %45 = getelementptr i8, i8* %42, i32 6\n; # (setAdr (+ N BLKSIZE) (ofs P BLK))\n  call void @setAdr(i64 %44, i8* %45)\n  br label %$2\n$2:\n  %46 = phi i32 [%18, %$6], [%41, %$7] ; # Siz\n  %47 = phi i8* [%19, %$6], [%42, %$7] ; # P\n  %48 = phi i64 [%20, %$6], [%43, %$7] ; # N\n; # (* 2 BLK)\n; # (blkPoke 0 P (* 2 BLK))\n  call void @blkPoke(i64 0, i8* %47, i32 12)\n; # (i64 Siz)\n  %49 = sext i32 %46 to i64\n; # (memset P 0 (i64 Siz) T)\n  call void @llvm.memset.p0i8.i64(i8* align 8 %47, i8 0, i64 %49, i1 0)\n; # (Db: sh)\n  %50 = getelementptr i8, i8* %0, i32 8\n  %51 = bitcast i8* %50 to i32*\n  %52 = load i32, i32* %51\n; # (i64 (Db: sh))\n  %53 = sext i32 %52 to i64\n; # (shl N (i64 (Db: sh)))\n  %54 = shl i64 %48, %53\n; # (blkPoke (shl N (i64 (Db: sh))) P Siz)\n  call void @blkPoke(i64 %54, i8* %47, i32 %46)\n  ret i64 %48\n}\n\ndefine i64 @newId(i64, i32) align 8 {\n$1:\n; # (when (>= (dec 'N) (val $DBs)) (dbfErr Exe))\n; # (dec 'N)\n  %2 = sub i32 %1, 1\n; # (val $DBs)\n  %3 = load i32, i32* @$DBs\n; # (>= (dec 'N) (val $DBs))\n  %4 = icmp sge i32 %2, %3\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  %6 = phi i32 [%2, %$1] ; # N\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %5)\n  unreachable\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i32 [%2, %$1] ; # N\n; # (set $DbFile (ofs (val $DbFiles) (* N (dbFile T))))\n; # (val $DbFiles)\n  %9 = load i8*, i8** @$DbFiles\n; # (* N (dbFile T))\n  %10 = mul i32 %8, 48\n; # (ofs (val $DbFiles) (* N (dbFile T)))\n  %11 = getelementptr i8, i8* %9, i32 %10\n  store i8* %11, i8** @$DbFile\n; # (set $Protect (inc (val $Protect)))\n; # (val $Protect)\n  %12 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (inc (val $Protect))\n  %13 = add i32 %12, 1\n  store i32 %13, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (wrLockDb)\n  call void @wrLockDb()\n; # (when (val $DbJnl) (lockJnl))\n; # (val $DbJnl)\n  %14 = load i8*, i8** @$DbJnl\n  %15 = icmp ne i8* %14, null\n  br i1 %15, label %$4, label %$5\n$4:\n  %16 = phi i64 [%7, %$3] ; # Exe\n  %17 = phi i32 [%8, %$3] ; # N\n; # (lockJnl)\n  call void @lockJnl()\n  br label %$5\n$5:\n  %18 = phi i64 [%7, %$3], [%16, %$4] ; # Exe\n  %19 = phi i32 [%8, %$3], [%17, %$4] ; # N\n; # (prog1 (extNm ((dbFile (val $DbFile)) db) (shr (newBlock) 6)) (wh...\n; # (val $DbFile)\n  %20 = load i8*, i8** @$DbFile\n; # ((dbFile (val $DbFile)) db)\n  %21 = getelementptr i8, i8* %20, i32 4\n  %22 = bitcast i8* %21 to i32*\n  %23 = load i32, i32* %22\n; # (newBlock)\n  %24 = call i64 @newBlock()\n; # (shr (newBlock) 6)\n  %25 = lshr i64 %24, 6\n; # (extNm ((dbFile (val $DbFile)) db) (shr (newBlock) 6))\n  %26 = call i64 @extNm(i32 %23, i64 %25)\n; # (when (val $DbJnl) (unLockJnl))\n; # (val $DbJnl)\n  %27 = load i8*, i8** @$DbJnl\n  %28 = icmp ne i8* %27, null\n  br i1 %28, label %$6, label %$7\n$6:\n  %29 = phi i64 [%18, %$5] ; # Exe\n  %30 = phi i32 [%19, %$5] ; # N\n; # (unLockJnl)\n  call void @unLockJnl()\n  br label %$7\n$7:\n  %31 = phi i64 [%18, %$5], [%29, %$6] ; # Exe\n  %32 = phi i32 [%19, %$5], [%30, %$6] ; # N\n; # (unLockDb 1)\n  call void @unLockDb(i64 1)\n; # (set $Protect (dec (val $Protect)))\n; # (val $Protect)\n  %33 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (dec (val $Protect))\n  %34 = sub i32 %33, 1\n  store i32 %34, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  ret i64 %26\n}\n\ndefine i1 @isLife(i64) align 8 {\n$1:\n; # (let (Nm (name (& (val (tail Sym)) -9)) F (objFile Nm) N (shl (ob...\n; # (tail Sym)\n  %1 = add i64 %0, -8\n; # (val (tail Sym))\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (& (val (tail Sym)) -9)\n  %4 = and i64 %3, -9\n; # (name (& (val (tail Sym)) -9))\n  br label %$2\n$2:\n  %5 = phi i64 [%4, %$1], [%11, %$3] ; # Tail\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$3:\n  %8 = phi i64 [%5, %$2] ; # Tail\n  %9 = inttoptr i64 %8 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  br label %$2\n$4:\n  %12 = phi i64 [%5, %$2] ; # Tail\n; # (objFile Nm)\n  %13 = call i32 @objFile(i64 %12)\n; # (objId Nm)\n  %14 = call i64 @objId(i64 %12)\n; # (shl (objId Nm) 6)\n  %15 = shl i64 %14, 6\n; # (when N (cond ((> (val $DBs) F) (setq Nm (add Nm Nm)) (when @@ (r...\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$5, label %$6\n$5:\n  %17 = phi i64 [%0, %$4] ; # Sym\n  %18 = phi i64 [%12, %$4] ; # Nm\n  %19 = phi i32 [%13, %$4] ; # F\n  %20 = phi i64 [%15, %$4] ; # N\n; # (cond ((> (val $DBs) F) (setq Nm (add Nm Nm)) (when @@ (ret YES))...\n; # (val $DBs)\n  %21 = load i32, i32* @$DBs\n; # (> (val $DBs) F)\n  %22 = icmp sgt i32 %21, %19\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%17, %$5] ; # Sym\n  %24 = phi i64 [%18, %$5] ; # Nm\n  %25 = phi i32 [%19, %$5] ; # F\n  %26 = phi i64 [%20, %$5] ; # N\n; # (add Nm Nm)\n  %27 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %24, i64 %24)\n  %28 = extractvalue {i64, i1} %27, 1\n  %29 = extractvalue {i64, i1} %27, 0\n; # (when @@ (ret YES))\n  br i1 %28, label %$10, label %$11\n$10:\n  %30 = phi i64 [%23, %$9] ; # Sym\n  %31 = phi i64 [%29, %$9] ; # Nm\n  %32 = phi i32 [%25, %$9] ; # F\n  %33 = phi i64 [%26, %$9] ; # N\n; # (ret YES)\n  ret i1 1\n$11:\n  %34 = phi i64 [%23, %$9] ; # Sym\n  %35 = phi i64 [%29, %$9] ; # Nm\n  %36 = phi i32 [%25, %$9] ; # F\n  %37 = phi i64 [%26, %$9] ; # N\n; # (add Nm Nm)\n  %38 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %35, i64 %35)\n  %39 = extractvalue {i64, i1} %38, 1\n  %40 = extractvalue {i64, i1} %38, 0\n; # (when @@ (ret YES))\n  br i1 %39, label %$12, label %$13\n$12:\n  %41 = phi i64 [%34, %$11] ; # Sym\n  %42 = phi i64 [%35, %$11] ; # Nm\n  %43 = phi i32 [%36, %$11] ; # F\n  %44 = phi i64 [%37, %$11] ; # N\n; # (ret YES)\n  ret i1 1\n$13:\n  %45 = phi i64 [%34, %$11] ; # Sym\n  %46 = phi i64 [%35, %$11] ; # Nm\n  %47 = phi i32 [%36, %$11] ; # F\n  %48 = phi i64 [%37, %$11] ; # N\n; # (let (Db: (dbFile (set $DbFile (ofs (val $DbFiles) (* F (dbFile T...\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %49 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %50 = mul i32 %47, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %51 = getelementptr i8, i8* %49, i32 %50\n  store i8* %51, i8** @$DbFile\n; # (* BLK 2)\n; # (b8 (* BLK 2))\n  %52 = alloca i8, i64 12\n; # (blkPeek BLK P BLK)\n  call void @blkPeek(i64 6, i8* %52, i32 6)\n; # (when (> (getAdr P) N) (blkPeek (shl N (i64 (Db: sh))) P BLK) (wh...\n; # (getAdr P)\n  %53 = call i64 @getAdr(i8* %52)\n; # (> (getAdr P) N)\n  %54 = icmp ugt i64 %53, %48\n  br i1 %54, label %$14, label %$15\n$14:\n  %55 = phi i64 [%45, %$13] ; # Sym\n  %56 = phi i64 [%46, %$13] ; # Nm\n  %57 = phi i32 [%47, %$13] ; # F\n  %58 = phi i64 [%48, %$13] ; # N\n  %59 = phi i8* [%52, %$13] ; # P\n; # (Db: sh)\n  %60 = getelementptr i8, i8* %51, i32 8\n  %61 = bitcast i8* %60 to i32*\n  %62 = load i32, i32* %61\n; # (i64 (Db: sh))\n  %63 = sext i32 %62 to i64\n; # (shl N (i64 (Db: sh)))\n  %64 = shl i64 %58, %63\n; # (blkPeek (shl N (i64 (Db: sh))) P BLK)\n  call void @blkPeek(i64 %64, i8* %59, i32 6)\n; # (when (== 1 (& (val P) BLKTAG)) (ret YES))\n; # (val P)\n  %65 = load i8, i8* %59\n; # (& (val P) BLKTAG)\n  %66 = and i8 %65, 63\n; # (== 1 (& (val P) BLKTAG))\n  %67 = icmp eq i8 1, %66\n  br i1 %67, label %$16, label %$17\n$16:\n  %68 = phi i64 [%55, %$14] ; # Sym\n  %69 = phi i64 [%56, %$14] ; # Nm\n  %70 = phi i32 [%57, %$14] ; # F\n  %71 = phi i64 [%58, %$14] ; # N\n  %72 = phi i8* [%59, %$14] ; # P\n; # (ret YES)\n  ret i1 1\n$17:\n  %73 = phi i64 [%55, %$14] ; # Sym\n  %74 = phi i64 [%56, %$14] ; # Nm\n  %75 = phi i32 [%57, %$14] ; # F\n  %76 = phi i64 [%58, %$14] ; # N\n  %77 = phi i8* [%59, %$14] ; # P\n  br label %$15\n$15:\n  %78 = phi i64 [%45, %$13], [%73, %$17] ; # Sym\n  %79 = phi i64 [%46, %$13], [%74, %$17] ; # Nm\n  %80 = phi i32 [%47, %$13], [%75, %$17] ; # F\n  %81 = phi i64 [%48, %$13], [%76, %$17] ; # N\n  %82 = phi i8* [%52, %$13], [%77, %$17] ; # P\n  br label %$7\n$8:\n  %83 = phi i64 [%17, %$5] ; # Sym\n  %84 = phi i64 [%18, %$5] ; # Nm\n  %85 = phi i32 [%19, %$5] ; # F\n  %86 = phi i64 [%20, %$5] ; # N\n; # (val $Ext)\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 552) to i64) to i64*\n  %88 = load i64, i64* %87\n; # (pair (val $Ext))\n  %89 = and i64 %88, 15\n  %90 = icmp eq i64 %89, 0\n  br i1 %90, label %$19, label %$18\n$19:\n  %91 = phi i64 [%83, %$8] ; # Sym\n  %92 = phi i64 [%84, %$8] ; # Nm\n  %93 = phi i32 [%85, %$8] ; # F\n  %94 = phi i64 [%86, %$8] ; # N\n; # (ret YES)\n  ret i1 1\n$18:\n  %95 = phi i64 [%83, %$8] ; # Sym\n  %96 = phi i64 [%84, %$8] ; # Nm\n  %97 = phi i32 [%85, %$8] ; # F\n  %98 = phi i64 [%86, %$8] ; # N\n  br label %$7\n$7:\n  %99 = phi i64 [%78, %$15], [%95, %$18] ; # Sym\n  %100 = phi i64 [%79, %$15], [%96, %$18] ; # Nm\n  %101 = phi i32 [%80, %$15], [%97, %$18] ; # F\n  %102 = phi i64 [%81, %$15], [%98, %$18] ; # N\n  br label %$6\n$6:\n  %103 = phi i64 [%0, %$4], [%99, %$7] ; # Sym\n  %104 = phi i64 [%12, %$4], [%100, %$7] ; # Nm\n  %105 = phi i32 [%13, %$4], [%101, %$7] ; # F\n  %106 = phi i64 [%15, %$4], [%102, %$7] ; # N\n  ret i1 0\n}\n\ndefine i64 @_ExtQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X)))) (if (and (symb? Y) (sym...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (if (and (symb? Y) (sym? (val (tail Y))) (or (nil? (eval (car X))...\n; # (and (symb? Y) (sym? (val (tail Y))) (or (nil? (eval (car X))) (i...\n; # (symb? Y)\n  %29 = xor i64 %20, 8\n  %30 = and i64 %29, 14\n  %31 = icmp eq i64 %30, 0\n  br i1 %31, label %$8, label %$7\n$8:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%6, %$2] ; # X\n  %34 = phi i64 [%20, %$2] ; # Y\n; # (tail Y)\n  %35 = add i64 %34, -8\n; # (val (tail Y))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (sym? (val (tail Y)))\n  %38 = and i64 %37, 8\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$9, label %$7\n$9:\n  %40 = phi i64 [%32, %$8] ; # Exe\n  %41 = phi i64 [%33, %$8] ; # X\n  %42 = phi i64 [%34, %$8] ; # Y\n; # (or (nil? (eval (car X))) (isLife Y))\n; # (car X)\n  %43 = inttoptr i64 %41 to i64*\n  %44 = load i64, i64* %43\n; # (eval (car X))\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$13, label %$12\n$13:\n  %47 = phi i64 [%44, %$9] ; # X\n  br label %$11\n$12:\n  %48 = phi i64 [%44, %$9] ; # X\n  %49 = and i64 %48, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$14\n$15:\n  %51 = phi i64 [%48, %$12] ; # X\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n  br label %$11\n$14:\n  %54 = phi i64 [%48, %$12] ; # X\n  %55 = call i64 @evList(i64 %54)\n  br label %$11\n$11:\n  %56 = phi i64 [%47, %$13], [%51, %$15], [%54, %$14] ; # X\n  %57 = phi i64 [%47, %$13], [%53, %$15], [%55, %$14] ; # ->\n; # (nil? (eval (car X)))\n  %58 = icmp eq i64 %57, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %58, label %$10, label %$16\n$16:\n  %59 = phi i64 [%40, %$11] ; # Exe\n  %60 = phi i64 [%41, %$11] ; # X\n  %61 = phi i64 [%42, %$11] ; # Y\n; # (isLife Y)\n  %62 = call i1 @isLife(i64 %61)\n  br label %$10\n$10:\n  %63 = phi i64 [%40, %$11], [%59, %$16] ; # Exe\n  %64 = phi i64 [%41, %$11], [%60, %$16] ; # X\n  %65 = phi i64 [%42, %$11], [%61, %$16] ; # Y\n  %66 = phi i1 [1, %$11], [%62, %$16] ; # ->\n  br label %$7\n$7:\n  %67 = phi i64 [%0, %$2], [%32, %$8], [%63, %$10] ; # Exe\n  %68 = phi i64 [%6, %$2], [%33, %$8], [%64, %$10] ; # X\n  %69 = phi i64 [%20, %$2], [%34, %$8], [%65, %$10] ; # Y\n  %70 = phi i1 [0, %$2], [0, %$8], [%66, %$10] ; # ->\n  br i1 %70, label %$17, label %$18\n$17:\n  %71 = phi i64 [%67, %$7] ; # Exe\n  %72 = phi i64 [%68, %$7] ; # X\n  %73 = phi i64 [%69, %$7] ; # Y\n  br label %$19\n$18:\n  %74 = phi i64 [%67, %$7] ; # Exe\n  %75 = phi i64 [%68, %$7] ; # X\n  %76 = phi i64 [%69, %$7] ; # Y\n  br label %$19\n$19:\n  %77 = phi i64 [%71, %$17], [%74, %$18] ; # Exe\n  %78 = phi i64 [%72, %$17], [%75, %$18] ; # X\n  %79 = phi i64 [%73, %$17], [%76, %$18] ; # Y\n  %80 = phi i64 [%73, %$17], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18] ; # ->\n; # (drop *Safe)\n  %81 = inttoptr i64 %24 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %83, i64* %84\n  ret i64 %80\n}\n\ndefine void @cleanUp(i64) align 8 {\n$1:\n; # (let (P (b8 BLK) Db: (dbFile (val $DbFile))) (blkPeek 0 P BLK) (l...\n; # (b8 BLK)\n  %1 = alloca i8, i64 6\n; # (val $DbFile)\n  %2 = load i8*, i8** @$DbFile\n; # (blkPeek 0 P BLK)\n  call void @blkPeek(i64 0, i8* %1, i32 6)\n; # (let Free (getAdr P) (setAdr N P) (blkPoke 0 P BLK) (loop (let Po...\n; # (getAdr P)\n  %3 = call i64 @getAdr(i8* %1)\n; # (setAdr N P)\n  call void @setAdr(i64 %0, i8* %1)\n; # (blkPoke 0 P BLK)\n  call void @blkPoke(i64 0, i8* %1, i32 6)\n; # (loop (let Pos (shl N (i64 (Db: sh))) (blkPeek Pos P BLK) (set P ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%20, %$3] ; # N\n  %5 = phi i8* [%1, %$1], [%21, %$3] ; # P\n  %6 = phi i64 [%3, %$1], [%22, %$3] ; # Free\n; # (let Pos (shl N (i64 (Db: sh))) (blkPeek Pos P BLK) (set P (& (va...\n; # (Db: sh)\n  %7 = getelementptr i8, i8* %2, i32 8\n  %8 = bitcast i8* %7 to i32*\n  %9 = load i32, i32* %8\n; # (i64 (Db: sh))\n  %10 = sext i32 %9 to i64\n; # (shl N (i64 (Db: sh)))\n  %11 = shl i64 %4, %10\n; # (blkPeek Pos P BLK)\n  call void @blkPeek(i64 %11, i8* %5, i32 6)\n; # (set P (& (val P) BLKMASK))\n; # (val P)\n  %12 = load i8, i8* %5\n; # (& (val P) BLKMASK)\n  %13 = and i8 %12, -64\n  store i8 %13, i8* %5\n; # (? (=0 (setq N (getAdr P))) (setAdr Free P) (blkPoke Pos P BLK))\n; # (getAdr P)\n  %14 = call i64 @getAdr(i8* %5)\n; # (=0 (setq N (getAdr P)))\n  %15 = icmp eq i64 %14, 0\n  br i1 %15, label %$5, label %$3\n$5:\n  %16 = phi i64 [%14, %$2] ; # N\n  %17 = phi i8* [%5, %$2] ; # P\n  %18 = phi i64 [%6, %$2] ; # Free\n  %19 = phi i64 [%11, %$2] ; # Pos\n; # (setAdr Free P)\n  call void @setAdr(i64 %18, i8* %17)\n; # (blkPoke Pos P BLK)\n  call void @blkPoke(i64 %19, i8* %17, i32 6)\n  br label %$4\n$3:\n  %20 = phi i64 [%14, %$2] ; # N\n  %21 = phi i8* [%5, %$2] ; # P\n  %22 = phi i64 [%6, %$2] ; # Free\n  %23 = phi i64 [%11, %$2] ; # Pos\n; # (blkPoke Pos P BLK)\n  call void @blkPoke(i64 %23, i8* %21, i32 6)\n  br label %$2\n$4:\n  %24 = phi i64 [%16, %$5] ; # N\n  %25 = phi i8* [%17, %$5] ; # P\n  %26 = phi i64 [%18, %$5] ; # Free\n  ret void\n}\n\ndefine i32 @getBlock() align 8 {\n$1:\n; # (let P (val $BlkPtr) (when (== P (val $BlkEnd)) (unless (val $Blk...\n; # (val $BlkPtr)\n  %0 = load i8*, i8** @$BlkPtr\n; # (when (== P (val $BlkEnd)) (unless (val $BlkLink) (ret -1)) (setq...\n; # (val $BlkEnd)\n  %1 = load i8*, i8** @$BlkEnd\n; # (== P (val $BlkEnd))\n  %2 = icmp eq i8* %0, %1\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i8* [%0, %$1] ; # P\n; # (unless (val $BlkLink) (ret -1))\n; # (val $BlkLink)\n  %4 = load i64, i64* @$BlkLink\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$5, label %$4\n$4:\n  %6 = phi i8* [%3, %$2] ; # P\n; # (ret -1)\n  ret i32 -1\n$5:\n  %7 = phi i8* [%3, %$2] ; # P\n; # (rdBlock @)\n  %8 = call i8* @rdBlock(i64 %4)\n; # (ofs (rdBlock @) BLK)\n  %9 = getelementptr i8, i8* %8, i32 6\n  br label %$3\n$3:\n  %10 = phi i8* [%0, %$1], [%9, %$5] ; # P\n; # (set $BlkPtr (inc P))\n; # (inc P)\n  %11 = getelementptr i8, i8* %10, i32 1\n  store i8* %11, i8** @$BlkPtr\n; # (val P)\n  %12 = load i8, i8* %10\n; # (i32 (val P))\n  %13 = zext i8 %12 to i32\n  ret i32 %13\n}\n\ndefine void @putBlock(i8) align 8 {\n$1:\n; # (let P (val $BlkPtr) (when (== P (val $BlkEnd)) (let Link (val $B...\n; # (val $BlkPtr)\n  %1 = load i8*, i8** @$BlkPtr\n; # (when (== P (val $BlkEnd)) (let Link (val $BlkLink) (ifn Link (le...\n; # (val $BlkEnd)\n  %2 = load i8*, i8** @$BlkEnd\n; # (== P (val $BlkEnd))\n  %3 = icmp eq i8* %1, %2\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i8 [%0, %$1] ; # B\n  %5 = phi i8* [%1, %$1] ; # P\n; # (let Link (val $BlkLink) (ifn Link (let (New (newBlock) Cnt (i64 ...\n; # (val $BlkLink)\n  %6 = load i64, i64* @$BlkLink\n; # (ifn Link (let (New (newBlock) Cnt (i64 (val (setq P (val $DbBloc...\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$4:\n  %8 = phi i8 [%4, %$2] ; # B\n  %9 = phi i8* [%5, %$2] ; # P\n  %10 = phi i64 [%6, %$2] ; # Link\n; # (let (New (newBlock) Cnt (i64 (val (setq P (val $DbBlock))))) (se...\n; # (newBlock)\n  %11 = call i64 @newBlock()\n; # (val $DbBlock)\n  %12 = load i8*, i8** @$DbBlock\n; # (val (setq P (val $DbBlock)))\n  %13 = load i8, i8* %12\n; # (i64 (val (setq P (val $DbBlock))))\n  %14 = zext i8 %13 to i64\n; # (| New Cnt)\n  %15 = or i64 %11, %14\n; # (setAdr (| New Cnt) P)\n  call void @setAdr(i64 %15, i8* %12)\n; # (wrBlock)\n  call void @wrBlock()\n; # (set $BlkIndex New)\n  store i64 %11, i64* @$BlkIndex\n; # (if (== Cnt BLKTAG) Cnt (inc Cnt))\n; # (== Cnt BLKTAG)\n  %16 = icmp eq i64 %14, 63\n  br i1 %16, label %$7, label %$8\n$7:\n  %17 = phi i8 [%8, %$4] ; # B\n  %18 = phi i8* [%12, %$4] ; # P\n  %19 = phi i64 [%10, %$4] ; # Link\n  %20 = phi i64 [%11, %$4] ; # New\n  %21 = phi i64 [%14, %$4] ; # Cnt\n  br label %$9\n$8:\n  %22 = phi i8 [%8, %$4] ; # B\n  %23 = phi i8* [%12, %$4] ; # P\n  %24 = phi i64 [%10, %$4] ; # Link\n  %25 = phi i64 [%11, %$4] ; # New\n  %26 = phi i64 [%14, %$4] ; # Cnt\n; # (inc Cnt)\n  %27 = add i64 %26, 1\n  br label %$9\n$9:\n  %28 = phi i8 [%17, %$7], [%22, %$8] ; # B\n  %29 = phi i8* [%18, %$7], [%23, %$8] ; # P\n  %30 = phi i64 [%19, %$7], [%24, %$8] ; # Link\n  %31 = phi i64 [%20, %$7], [%25, %$8] ; # New\n  %32 = phi i64 [%21, %$7], [%26, %$8] ; # Cnt\n  %33 = phi i64 [%21, %$7], [%27, %$8] ; # ->\n; # (setAdr (if (== Cnt BLKTAG) Cnt (inc Cnt)) P)\n  call void @setAdr(i64 %33, i8* %29)\n; # (ofs P BLK)\n  %34 = getelementptr i8, i8* %29, i32 6\n  br label %$6\n$5:\n  %35 = phi i8 [%4, %$2] ; # B\n  %36 = phi i8* [%5, %$2] ; # P\n  %37 = phi i64 [%6, %$2] ; # Link\n; # (wrBlock)\n  call void @wrBlock()\n; # (rdBlock Link)\n  %38 = call i8* @rdBlock(i64 %37)\n; # (ofs (rdBlock Link) BLK)\n  %39 = getelementptr i8, i8* %38, i32 6\n  br label %$6\n$6:\n  %40 = phi i8 [%28, %$9], [%35, %$5] ; # B\n  %41 = phi i8* [%34, %$9], [%39, %$5] ; # P\n  %42 = phi i64 [%30, %$9], [%37, %$5] ; # Link\n  %43 = phi i8* [%34, %$9], [%39, %$5] ; # ->\n  br label %$3\n$3:\n  %44 = phi i8 [%0, %$1], [%40, %$6] ; # B\n  %45 = phi i8* [%1, %$1], [%41, %$6] ; # P\n; # (set P B)\n  store i8 %44, i8* %45\n; # (set $BlkPtr (inc P))\n; # (inc P)\n  %46 = getelementptr i8, i8* %45, i32 1\n  store i8* %46, i8** @$BlkPtr\n  ret void\n}\n\ndefine i64 @_Rollback(i64) align 8 {\n$1:\n; # (if (and (=0 (val $DBs)) (atom (val $Ext))) $Nil (let (Tos 0 P (v...\n; # (and (=0 (val $DBs)) (atom (val $Ext)))\n; # (val $DBs)\n  %1 = load i32, i32* @$DBs\n; # (=0 (val $DBs))\n  %2 = icmp eq i32 %1, 0\n  br i1 %2, label %$3, label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (val $Ext)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 552) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (atom (val $Ext))\n  %6 = and i64 %5, 15\n  %7 = icmp ne i64 %6, 0\n  br label %$2\n$2:\n  %8 = phi i64 [%0, %$1], [%3, %$3] ; # Exe\n  %9 = phi i1 [0, %$1], [%7, %$3] ; # ->\n  br i1 %9, label %$4, label %$5\n$4:\n  %10 = phi i64 [%8, %$2] ; # Exe\n  br label %$6\n$5:\n  %11 = phi i64 [%8, %$2] ; # Exe\n; # (let (Tos 0 P (val $Extern)) (loop (loop (let X (cdr P) (? (atom ...\n; # (val $Extern)\n  %12 = load i64, i64* @$Extern\n; # (loop (loop (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @)...\n  br label %$7\n$7:\n  %13 = phi i64 [%11, %$5], [%139, %$18] ; # Exe\n  %14 = phi i64 [0, %$5], [%140, %$18] ; # Tos\n  %15 = phi i64 [%12, %$5], [%141, %$18] ; # P\n; # (loop (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @) (set ...\n  br label %$8\n$8:\n  %16 = phi i64 [%13, %$7], [%27, %$9] ; # Exe\n  %17 = phi i64 [%14, %$7], [%29, %$9] ; # Tos\n  %18 = phi i64 [%15, %$7], [%24, %$9] ; # P\n; # (let X (cdr P) (? (atom (cdr X))) (let Y P (setq P @) (set 2 X To...\n; # (cdr P)\n  %19 = inttoptr i64 %18 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  %21 = load i64, i64* %20\n; # (? (atom (cdr X)))\n; # (cdr X)\n  %22 = inttoptr i64 %21 to i64*\n  %23 = getelementptr i64, i64* %22, i32 1\n  %24 = load i64, i64* %23\n; # (atom (cdr X))\n  %25 = and i64 %24, 15\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%16, %$8] ; # Exe\n  %28 = phi i64 [%17, %$8] ; # Tos\n  %29 = phi i64 [%18, %$8] ; # P\n  %30 = phi i64 [%21, %$8] ; # X\n; # (let Y P (setq P @) (set 2 X Tos) (setq Tos Y))\n; # (set 2 X Tos)\n  %31 = inttoptr i64 %30 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  store i64 %28, i64* %32\n  br label %$8\n$10:\n  %33 = phi i64 [%16, %$8] ; # Exe\n  %34 = phi i64 [%17, %$8] ; # Tos\n  %35 = phi i64 [%18, %$8] ; # P\n  %36 = phi i64 [0, %$8] ; # ->\n; # (loop (let (S (val P) Tail (val (tail S))) (unless (num? Tail) (s...\n  br label %$11\n$11:\n  %37 = phi i64 [%33, %$10], [%135, %$24] ; # Exe\n  %38 = phi i64 [%34, %$10], [%136, %$24] ; # Tos\n  %39 = phi i64 [%35, %$10], [%137, %$24] ; # P\n; # (let (S (val P) Tail (val (tail S))) (unless (num? Tail) (setq Ta...\n; # (val P)\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n; # (tail S)\n  %42 = add i64 %41, -8\n; # (val (tail S))\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n; # (unless (num? Tail) (setq Tail (& Tail -9)) (loop (? (num? (shift...\n; # (num? Tail)\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$13, label %$12\n$12:\n  %47 = phi i64 [%37, %$11] ; # Exe\n  %48 = phi i64 [%38, %$11] ; # Tos\n  %49 = phi i64 [%39, %$11] ; # P\n  %50 = phi i64 [%41, %$11] ; # S\n  %51 = phi i64 [%44, %$11] ; # Tail\n; # (& Tail -9)\n  %52 = and i64 %51, -9\n; # (loop (? (num? (shift Tail))))\n  br label %$14\n$14:\n  %53 = phi i64 [%47, %$12], [%63, %$15] ; # Exe\n  %54 = phi i64 [%48, %$12], [%64, %$15] ; # Tos\n  %55 = phi i64 [%49, %$12], [%65, %$15] ; # P\n  %56 = phi i64 [%50, %$12], [%66, %$15] ; # S\n  %57 = phi i64 [%52, %$12], [%67, %$15] ; # Tail\n; # (? (num? (shift Tail)))\n; # (shift Tail)\n  %58 = inttoptr i64 %57 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n; # (num? (shift Tail))\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$16, label %$15\n$15:\n  %63 = phi i64 [%53, %$14] ; # Exe\n  %64 = phi i64 [%54, %$14] ; # Tos\n  %65 = phi i64 [%55, %$14] ; # P\n  %66 = phi i64 [%56, %$14] ; # S\n  %67 = phi i64 [%60, %$14] ; # Tail\n  br label %$14\n$16:\n  %68 = phi i64 [%53, %$14] ; # Exe\n  %69 = phi i64 [%54, %$14] ; # Tos\n  %70 = phi i64 [%55, %$14] ; # P\n  %71 = phi i64 [%56, %$14] ; # S\n  %72 = phi i64 [%60, %$14] ; # Tail\n  %73 = phi i64 [0, %$14] ; # ->\n; # (sym Tail)\n  %74 = or i64 %72, 8\n  br label %$13\n$13:\n  %75 = phi i64 [%37, %$11], [%68, %$16] ; # Exe\n  %76 = phi i64 [%38, %$11], [%69, %$16] ; # Tos\n  %77 = phi i64 [%39, %$11], [%70, %$16] ; # P\n  %78 = phi i64 [%41, %$11], [%71, %$16] ; # S\n  %79 = phi i64 [%44, %$11], [%74, %$16] ; # Tail\n; # (set (tail S) (shr (shl Tail 2) 2))\n; # (tail S)\n  %80 = add i64 %78, -8\n; # (shl Tail 2)\n  %81 = shl i64 %79, 2\n; # (shr (shl Tail 2) 2)\n  %82 = lshr i64 %81, 2\n  %83 = inttoptr i64 %80 to i64*\n  store i64 %82, i64* %83\n; # (set S $Nil)\n  %84 = inttoptr i64 %78 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %84\n; # (let X (cdr P) (? (pair (car X)) (let Y P (setq P @) (set X Tos) ...\n; # (cdr P)\n  %85 = inttoptr i64 %77 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  %87 = load i64, i64* %86\n; # (? (pair (car X)) (let Y P (setq P @) (set X Tos) (setq Tos (| Y ...\n; # (car X)\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n; # (pair (car X))\n  %90 = and i64 %89, 15\n  %91 = icmp eq i64 %90, 0\n  br i1 %91, label %$19, label %$17\n$19:\n  %92 = phi i64 [%75, %$13] ; # Exe\n  %93 = phi i64 [%76, %$13] ; # Tos\n  %94 = phi i64 [%77, %$13] ; # P\n  %95 = phi i64 [%87, %$13] ; # X\n; # (let Y P (setq P @) (set X Tos) (setq Tos (| Y 8)))\n; # (set X Tos)\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %93, i64* %96\n; # (| Y 8)\n  %97 = or i64 %94, 8\n  br label %$18\n$17:\n  %98 = phi i64 [%75, %$13] ; # Exe\n  %99 = phi i64 [%76, %$13] ; # Tos\n  %100 = phi i64 [%77, %$13] ; # P\n  %101 = phi i64 [%87, %$13] ; # X\n; # (loop (unless Tos (goto 1)) (? (=0 (& Tos 8)) (let (X Tos Y (cdr ...\n  br label %$20\n$20:\n  %102 = phi i64 [%98, %$17], [%125, %$23] ; # Exe\n  %103 = phi i64 [%99, %$17], [%133, %$23] ; # Tos\n  %104 = phi i64 [%100, %$17], [%128, %$23] ; # P\n; # (unless Tos (goto 1))\n  %105 = icmp ne i64 %103, 0\n  br i1 %105, label %$22, label %$21\n$21:\n  %106 = phi i64 [%102, %$20] ; # Exe\n  %107 = phi i64 [%103, %$20] ; # Tos\n  %108 = phi i64 [%104, %$20] ; # P\n; # (goto 1)\n  br label %$-1\n$22:\n  %109 = phi i64 [%102, %$20] ; # Exe\n  %110 = phi i64 [%103, %$20] ; # Tos\n  %111 = phi i64 [%104, %$20] ; # P\n; # (? (=0 (& Tos 8)) (let (X Tos Y (cdr X)) (setq Tos (cdr Y)) (set ...\n; # (& Tos 8)\n  %112 = and i64 %110, 8\n; # (=0 (& Tos 8))\n  %113 = icmp eq i64 %112, 0\n  br i1 %113, label %$25, label %$23\n$25:\n  %114 = phi i64 [%109, %$22] ; # Exe\n  %115 = phi i64 [%110, %$22] ; # Tos\n  %116 = phi i64 [%111, %$22] ; # P\n; # (let (X Tos Y (cdr X)) (setq Tos (cdr Y)) (set 2 Y P) (setq P X))...\n; # (cdr X)\n  %117 = inttoptr i64 %115 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (cdr Y)\n  %120 = inttoptr i64 %119 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  %122 = load i64, i64* %121\n; # (set 2 Y P)\n  %123 = inttoptr i64 %119 to i64*\n  %124 = getelementptr i64, i64* %123, i32 1\n  store i64 %116, i64* %124\n  br label %$24\n$23:\n  %125 = phi i64 [%109, %$22] ; # Exe\n  %126 = phi i64 [%110, %$22] ; # Tos\n  %127 = phi i64 [%111, %$22] ; # P\n; # (& Tos -9)\n  %128 = and i64 %126, -9\n; # (let (X Tos Y (cdr X)) (setq Tos (car Y)) (set Y P) (setq P X))\n; # (cdr X)\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n; # (car Y)\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n; # (set Y P)\n  %134 = inttoptr i64 %131 to i64*\n  store i64 %127, i64* %134\n  br label %$20\n$24:\n  %135 = phi i64 [%114, %$25] ; # Exe\n  %136 = phi i64 [%122, %$25] ; # Tos\n  %137 = phi i64 [%115, %$25] ; # P\n  %138 = phi i64 [%115, %$25] ; # ->\n  br label %$11\n$18:\n  %139 = phi i64 [%92, %$19] ; # Exe\n  %140 = phi i64 [%97, %$19] ; # Tos\n  %141 = phi i64 [%89, %$19] ; # P\n  %142 = phi i64 [%97, %$19] ; # ->\n  br label %$7\n$26:\n; # (: 1 (when (pair (val $Zap)) (set @ $Nil)))\n  br label %$-1\n$-1:\n  %143 = phi i64 [%106, %$21], [%139, %$26] ; # Exe\n; # (when (pair (val $Zap)) (set @ $Nil))\n; # (val $Zap)\n  %144 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 536) to i64) to i64*\n  %145 = load i64, i64* %144\n; # (pair (val $Zap))\n  %146 = and i64 %145, 15\n  %147 = icmp eq i64 %146, 0\n  br i1 %147, label %$27, label %$28\n$27:\n  %148 = phi i64 [%143, %$-1] ; # Exe\n; # (set @ $Nil)\n  %149 = inttoptr i64 %145 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %149\n  br label %$28\n$28:\n  %150 = phi i64 [%143, %$-1], [%148, %$27] ; # Exe\n; # (when (val $DBs) (unLockDb 0))\n; # (val $DBs)\n  %151 = load i32, i32* @$DBs\n  %152 = icmp ne i32 %151, 0\n  br i1 %152, label %$29, label %$30\n$29:\n  %153 = phi i64 [%150, %$28] ; # Exe\n; # (unLockDb 0)\n  call void @unLockDb(i64 0)\n  br label %$30\n$30:\n  %154 = phi i64 [%150, %$28], [%153, %$29] ; # Exe\n; # (unsync)\n  call void @unsync()\n  br label %$6\n$6:\n  %155 = phi i64 [%10, %$4], [%154, %$30] ; # Exe\n  %156 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$30] ; # ->\n  ret i64 %156\n}\n\ndefine i64 @_Extern(i64) align 8 {\n$1:\n; # (let (Sym (needSymb Exe (eval (cadr Exe))) Nm (name (& (val (tail...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needSymb Exe (eval (cadr Exe)))\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$7:\n  %22 = phi i64 [%18, %$2] ; # X\n  %23 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %23, i64 %22)\n  unreachable\n$8:\n  %24 = phi i64 [%18, %$2] ; # X\n  %25 = phi i64 [%0, %$2] ; # Exe\n; # (tail Sym)\n  %26 = add i64 %24, -8\n; # (val (tail Sym))\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (& (val (tail Sym)) -9)\n  %29 = and i64 %28, -9\n; # (name (& (val (tail Sym)) -9))\n  br label %$9\n$9:\n  %30 = phi i64 [%29, %$8], [%36, %$10] ; # Tail\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$11, label %$10\n$10:\n  %33 = phi i64 [%30, %$9] ; # Tail\n  %34 = inttoptr i64 %33 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n  br label %$9\n$11:\n  %37 = phi i64 [%30, %$9] ; # Tail\n; # (when (== Nm ZERO) (ret $Nil))\n; # (== Nm ZERO)\n  %38 = icmp eq i64 %37, 2\n  br i1 %38, label %$12, label %$13\n$12:\n  %39 = phi i64 [%0, %$11] ; # Exe\n  %40 = phi i64 [%24, %$11] ; # Sym\n  %41 = phi i64 [%37, %$11] ; # Nm\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$13:\n  %42 = phi i64 [%0, %$11] ; # Exe\n  %43 = phi i64 [%24, %$11] ; # Sym\n  %44 = phi i64 [%37, %$11] ; # Nm\n; # (let (P (push 0 Nm) C (symChar P) F (i32 0)) (when (== C (char \"{...\n; # (push 0 Nm)\n  %45 = alloca i64, i64 2, align 16\n  store i64 0, i64* %45\n  %46 = getelementptr i64, i64* %45, i32 1\n  store i64 %44, i64* %46\n; # (symChar P)\n  %47 = call i32 @symChar(i64* %45)\n; # (i32 0)\n; # (when (== C (char \"{\")) (setq C (symChar P)))\n; # (== C (char \"{\"))\n  %48 = icmp eq i32 %47, 123\n  br i1 %48, label %$14, label %$15\n$14:\n  %49 = phi i64 [%42, %$13] ; # Exe\n  %50 = phi i64 [%43, %$13] ; # Sym\n  %51 = phi i64 [%44, %$13] ; # Nm\n  %52 = phi i64* [%45, %$13] ; # P\n  %53 = phi i32 [%47, %$13] ; # C\n  %54 = phi i32 [0, %$13] ; # F\n; # (symChar P)\n  %55 = call i32 @symChar(i64* %52)\n  br label %$15\n$15:\n  %56 = phi i64 [%42, %$13], [%49, %$14] ; # Exe\n  %57 = phi i64 [%43, %$13], [%50, %$14] ; # Sym\n  %58 = phi i64 [%44, %$13], [%51, %$14] ; # Nm\n  %59 = phi i64* [%45, %$13], [%52, %$14] ; # P\n  %60 = phi i32 [%47, %$13], [%55, %$14] ; # C\n  %61 = phi i32 [0, %$13], [%54, %$14] ; # F\n; # (while (>= C (char \"@\")) (when (> C (char \"O\")) (ret $Nil)) (setq...\n  br label %$16\n$16:\n  %62 = phi i64 [%56, %$15], [%82, %$20] ; # Exe\n  %63 = phi i64 [%57, %$15], [%83, %$20] ; # Sym\n  %64 = phi i64 [%58, %$15], [%84, %$20] ; # Nm\n  %65 = phi i64* [%59, %$15], [%85, %$20] ; # P\n  %66 = phi i32 [%60, %$15], [%91, %$20] ; # C\n  %67 = phi i32 [%61, %$15], [%90, %$20] ; # F\n; # (>= C (char \"@\"))\n  %68 = icmp sge i32 %66, 64\n  br i1 %68, label %$17, label %$18\n$17:\n  %69 = phi i64 [%62, %$16] ; # Exe\n  %70 = phi i64 [%63, %$16] ; # Sym\n  %71 = phi i64 [%64, %$16] ; # Nm\n  %72 = phi i64* [%65, %$16] ; # P\n  %73 = phi i32 [%66, %$16] ; # C\n  %74 = phi i32 [%67, %$16] ; # F\n; # (when (> C (char \"O\")) (ret $Nil))\n; # (> C (char \"O\"))\n  %75 = icmp sgt i32 %73, 79\n  br i1 %75, label %$19, label %$20\n$19:\n  %76 = phi i64 [%69, %$17] ; # Exe\n  %77 = phi i64 [%70, %$17] ; # Sym\n  %78 = phi i64 [%71, %$17] ; # Nm\n  %79 = phi i64* [%72, %$17] ; # P\n  %80 = phi i32 [%73, %$17] ; # C\n  %81 = phi i32 [%74, %$17] ; # F\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$20:\n  %82 = phi i64 [%69, %$17] ; # Exe\n  %83 = phi i64 [%70, %$17] ; # Sym\n  %84 = phi i64 [%71, %$17] ; # Nm\n  %85 = phi i64* [%72, %$17] ; # P\n  %86 = phi i32 [%73, %$17] ; # C\n  %87 = phi i32 [%74, %$17] ; # F\n; # (shl F 4)\n  %88 = shl i32 %87, 4\n; # (- C (char \"@\"))\n  %89 = sub i32 %86, 64\n; # (| (shl F 4) (- C (char \"@\")))\n  %90 = or i32 %88, %89\n; # (symChar P)\n  %91 = call i32 @symChar(i64* %85)\n  br label %$16\n$18:\n  %92 = phi i64 [%62, %$16] ; # Exe\n  %93 = phi i64 [%63, %$16] ; # Sym\n  %94 = phi i64 [%64, %$16] ; # Nm\n  %95 = phi i64* [%65, %$16] ; # P\n  %96 = phi i32 [%66, %$16] ; # C\n  %97 = phi i32 [%67, %$16] ; # F\n; # (let N 0 (loop (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) ...\n; # (loop (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) (ret $Nil...\n  br label %$21\n$21:\n  %98 = phi i64 [%92, %$18], [%158, %$28] ; # Exe\n  %99 = phi i64 [%93, %$18], [%159, %$28] ; # Sym\n  %100 = phi i64 [%94, %$18], [%160, %$28] ; # Nm\n  %101 = phi i64* [%95, %$18], [%161, %$28] ; # P\n  %102 = phi i32 [%96, %$18], [%162, %$28] ; # C\n  %103 = phi i32 [%97, %$18], [%163, %$28] ; # F\n  %104 = phi i64 [0, %$18], [%164, %$28] ; # N\n; # (unless (and (>= C (char \"0\")) (>= (char \"7\") C)) (ret $Nil))\n; # (and (>= C (char \"0\")) (>= (char \"7\") C))\n; # (>= C (char \"0\"))\n  %105 = icmp sge i32 %102, 48\n  br i1 %105, label %$23, label %$22\n$23:\n  %106 = phi i64 [%98, %$21] ; # Exe\n  %107 = phi i64 [%99, %$21] ; # Sym\n  %108 = phi i64 [%100, %$21] ; # Nm\n  %109 = phi i64* [%101, %$21] ; # P\n  %110 = phi i32 [%102, %$21] ; # C\n  %111 = phi i32 [%103, %$21] ; # F\n  %112 = phi i64 [%104, %$21] ; # N\n; # (>= (char \"7\") C)\n  %113 = icmp sge i32 55, %110\n  br label %$22\n$22:\n  %114 = phi i64 [%98, %$21], [%106, %$23] ; # Exe\n  %115 = phi i64 [%99, %$21], [%107, %$23] ; # Sym\n  %116 = phi i64 [%100, %$21], [%108, %$23] ; # Nm\n  %117 = phi i64* [%101, %$21], [%109, %$23] ; # P\n  %118 = phi i32 [%102, %$21], [%110, %$23] ; # C\n  %119 = phi i32 [%103, %$21], [%111, %$23] ; # F\n  %120 = phi i64 [%104, %$21], [%112, %$23] ; # N\n  %121 = phi i1 [0, %$21], [%113, %$23] ; # ->\n  br i1 %121, label %$25, label %$24\n$24:\n  %122 = phi i64 [%114, %$22] ; # Exe\n  %123 = phi i64 [%115, %$22] ; # Sym\n  %124 = phi i64 [%116, %$22] ; # Nm\n  %125 = phi i64* [%117, %$22] ; # P\n  %126 = phi i32 [%118, %$22] ; # C\n  %127 = phi i32 [%119, %$22] ; # F\n  %128 = phi i64 [%120, %$22] ; # N\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$25:\n  %129 = phi i64 [%114, %$22] ; # Exe\n  %130 = phi i64 [%115, %$22] ; # Sym\n  %131 = phi i64 [%116, %$22] ; # Nm\n  %132 = phi i64* [%117, %$22] ; # P\n  %133 = phi i32 [%118, %$22] ; # C\n  %134 = phi i32 [%119, %$22] ; # F\n  %135 = phi i64 [%120, %$22] ; # N\n; # (shl N 3)\n  %136 = shl i64 %135, 3\n; # (- C (char \"0\"))\n  %137 = sub i32 %133, 48\n; # (i64 (- C (char \"0\")))\n  %138 = sext i32 %137 to i64\n; # (| (shl N 3) (i64 (- C (char \"0\"))))\n  %139 = or i64 %136, %138\n; # (? (or (=0 (setq C (symChar P))) (== C (char \"}\"))))\n; # (or (=0 (setq C (symChar P))) (== C (char \"}\")))\n; # (symChar P)\n  %140 = call i32 @symChar(i64* %132)\n; # (=0 (setq C (symChar P)))\n  %141 = icmp eq i32 %140, 0\n  br i1 %141, label %$26, label %$27\n$27:\n  %142 = phi i64 [%129, %$25] ; # Exe\n  %143 = phi i64 [%130, %$25] ; # Sym\n  %144 = phi i64 [%131, %$25] ; # Nm\n  %145 = phi i64* [%132, %$25] ; # P\n  %146 = phi i32 [%140, %$25] ; # C\n  %147 = phi i32 [%134, %$25] ; # F\n  %148 = phi i64 [%139, %$25] ; # N\n; # (== C (char \"}\"))\n  %149 = icmp eq i32 %146, 125\n  br label %$26\n$26:\n  %150 = phi i64 [%129, %$25], [%142, %$27] ; # Exe\n  %151 = phi i64 [%130, %$25], [%143, %$27] ; # Sym\n  %152 = phi i64 [%131, %$25], [%144, %$27] ; # Nm\n  %153 = phi i64* [%132, %$25], [%145, %$27] ; # P\n  %154 = phi i32 [%140, %$25], [%146, %$27] ; # C\n  %155 = phi i32 [%134, %$25], [%147, %$27] ; # F\n  %156 = phi i64 [%139, %$25], [%148, %$27] ; # N\n  %157 = phi i1 [1, %$25], [%149, %$27] ; # ->\n  br i1 %157, label %$29, label %$28\n$28:\n  %158 = phi i64 [%150, %$26] ; # Exe\n  %159 = phi i64 [%151, %$26] ; # Sym\n  %160 = phi i64 [%152, %$26] ; # Nm\n  %161 = phi i64* [%153, %$26] ; # P\n  %162 = phi i32 [%154, %$26] ; # C\n  %163 = phi i32 [%155, %$26] ; # F\n  %164 = phi i64 [%156, %$26] ; # N\n  br label %$21\n$29:\n  %165 = phi i64 [%150, %$26] ; # Exe\n  %166 = phi i64 [%151, %$26] ; # Sym\n  %167 = phi i64 [%152, %$26] ; # Nm\n  %168 = phi i64* [%153, %$26] ; # P\n  %169 = phi i32 [%154, %$26] ; # C\n  %170 = phi i32 [%155, %$26] ; # F\n  %171 = phi i64 [%156, %$26] ; # N\n  %172 = phi i64 [0, %$26] ; # ->\n; # (if (isLife (setq Sym (extern (extNm F N)))) Sym $Nil)\n; # (extNm F N)\n  %173 = call i64 @extNm(i32 %170, i64 %171)\n; # (extern (extNm F N))\n  %174 = call i64 @extern(i64 %173)\n; # (isLife (setq Sym (extern (extNm F N))))\n  %175 = call i1 @isLife(i64 %174)\n  br i1 %175, label %$30, label %$31\n$30:\n  %176 = phi i64 [%165, %$29] ; # Exe\n  %177 = phi i64 [%174, %$29] ; # Sym\n  %178 = phi i64 [%167, %$29] ; # Nm\n  %179 = phi i64* [%168, %$29] ; # P\n  %180 = phi i32 [%169, %$29] ; # C\n  %181 = phi i32 [%170, %$29] ; # F\n  %182 = phi i64 [%171, %$29] ; # N\n  br label %$32\n$31:\n  %183 = phi i64 [%165, %$29] ; # Exe\n  %184 = phi i64 [%174, %$29] ; # Sym\n  %185 = phi i64 [%167, %$29] ; # Nm\n  %186 = phi i64* [%168, %$29] ; # P\n  %187 = phi i32 [%169, %$29] ; # C\n  %188 = phi i32 [%170, %$29] ; # F\n  %189 = phi i64 [%171, %$29] ; # N\n  br label %$32\n$32:\n  %190 = phi i64 [%176, %$30], [%183, %$31] ; # Exe\n  %191 = phi i64 [%177, %$30], [%184, %$31] ; # Sym\n  %192 = phi i64 [%178, %$30], [%185, %$31] ; # Nm\n  %193 = phi i64* [%179, %$30], [%186, %$31] ; # P\n  %194 = phi i32 [%180, %$30], [%187, %$31] ; # C\n  %195 = phi i32 [%181, %$30], [%188, %$31] ; # F\n  %196 = phi i64 [%182, %$30], [%189, %$31] ; # N\n  %197 = phi i64 [%177, %$30], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$31] ; # ->\n  ret i64 %197\n}\n\ndefine void @ignLog() align 8 {\n$1:\n; # (stderrMsg ($ \"Discarding incomplete transaction^J\") null)\n  %0 = call i8* @stderrMsg(i8* bitcast ([35 x i8]* @$60 to i8*), i8* null)\n  ret void\n}\n\ndefine i1 @transaction() align 8 {\n$1:\n; # (let (Log (val $DbLog) Blk (b8 BLK)) (fseek0 Log) (if (fread Blk ...\n; # (val $DbLog)\n  %0 = load i8*, i8** @$DbLog\n; # (b8 BLK)\n  %1 = alloca i8, i64 6\n; # (fseek0 Log)\n  %2 = call i1 @fseek0(i8* %0)\n; # (if (fread Blk 2 1 Log) (loop (? (== (val (i16* Blk)) (hex \"FFFF\"...\n; # (fread Blk 2 1 Log)\n  %3 = call i32 @fread(i8* %1, i64 2, i64 1, i8* %0)\n  %4 = icmp ne i32 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i8* [%0, %$1] ; # Log\n  %6 = phi i8* [%1, %$1] ; # Blk\n; # (loop (? (== (val (i16* Blk)) (hex \"FFFF\")) YES) (? (or (=0 (dbfB...\n  br label %$5\n$5:\n  %7 = phi i8* [%5, %$2], [%39, %$13] ; # Log\n  %8 = phi i8* [%6, %$2], [%40, %$13] ; # Blk\n; # (? (== (val (i16* Blk)) (hex \"FFFF\")) YES)\n; # (i16* Blk)\n  %9 = bitcast i8* %8 to i16*\n; # (val (i16* Blk))\n  %10 = load i16, i16* %9\n; # (== (val (i16* Blk)) (hex \"FFFF\"))\n  %11 = icmp eq i16 %10, 65535\n  br i1 %11, label %$8, label %$6\n$8:\n  %12 = phi i8* [%7, %$5] ; # Log\n  %13 = phi i8* [%8, %$5] ; # Blk\n  br label %$7\n$6:\n  %14 = phi i8* [%7, %$5] ; # Log\n  %15 = phi i8* [%8, %$5] ; # Blk\n; # (? (or (=0 (dbfBuf Blk)) (<> (fread Blk BLK 1 Log) 1) (not (fseek...\n; # (or (=0 (dbfBuf Blk)) (<> (fread Blk BLK 1 Log) 1) (not (fseekOfs...\n; # (dbfBuf Blk)\n  %16 = call i8* @dbfBuf(i8* %15)\n; # (=0 (dbfBuf Blk))\n  %17 = icmp eq i8* %16, null\n  br i1 %17, label %$9, label %$10\n$10:\n  %18 = phi i8* [%14, %$6] ; # Log\n  %19 = phi i8* [%15, %$6] ; # Blk\n; # (fread Blk BLK 1 Log)\n  %20 = call i32 @fread(i8* %19, i64 6, i64 1, i8* %18)\n; # (<> (fread Blk BLK 1 Log) 1)\n  %21 = icmp ne i32 %20, 1\n  br i1 %21, label %$9, label %$11\n$11:\n  %22 = phi i8* [%18, %$10] ; # Log\n  %23 = phi i8* [%19, %$10] ; # Blk\n; # (val $DbFile)\n  %24 = load i8*, i8** @$DbFile\n; # ((dbFile (val $DbFile)) siz)\n  %25 = getelementptr i8, i8* %24, i32 12\n  %26 = bitcast i8* %25 to i32*\n  %27 = load i32, i32* %26\n; # (fseekOfs Log ((dbFile (val $DbFile)) siz))\n  %28 = call i1 @fseekOfs(i8* %22, i32 %27)\n; # (not (fseekOfs Log ((dbFile (val $DbFile)) siz)))\n  %29 = icmp eq i1 %28, 0\n  br i1 %29, label %$9, label %$12\n$12:\n  %30 = phi i8* [%22, %$11] ; # Log\n  %31 = phi i8* [%23, %$11] ; # Blk\n; # (fread Blk 2 1 Log)\n  %32 = call i32 @fread(i8* %31, i64 2, i64 1, i8* %30)\n; # (<> (fread Blk 2 1 Log) 1)\n  %33 = icmp ne i32 %32, 1\n  br label %$9\n$9:\n  %34 = phi i8* [%14, %$6], [%18, %$10], [%22, %$11], [%30, %$12] ; # Log\n  %35 = phi i8* [%15, %$6], [%19, %$10], [%23, %$11], [%31, %$12] ; # Blk\n  %36 = phi i1 [1, %$6], [1, %$10], [1, %$11], [%33, %$12] ; # ->\n  br i1 %36, label %$14, label %$13\n$14:\n  %37 = phi i8* [%34, %$9] ; # Log\n  %38 = phi i8* [%35, %$9] ; # Blk\n; # (ignLog)\n  call void @ignLog()\n  br label %$7\n$13:\n  %39 = phi i8* [%34, %$9] ; # Log\n  %40 = phi i8* [%35, %$9] ; # Blk\n  br label %$5\n$7:\n  %41 = phi i8* [%12, %$8], [%37, %$14] ; # Log\n  %42 = phi i8* [%13, %$8], [%38, %$14] ; # Blk\n  %43 = phi i1 [1, %$8], [0, %$14] ; # ->\n  br label %$4\n$3:\n  %44 = phi i8* [%0, %$1] ; # Log\n  %45 = phi i8* [%1, %$1] ; # Blk\n; # (unless (feof Log) (ignLog))\n; # (feof Log)\n  %46 = call i32 @feof(i8* %44)\n  %47 = icmp ne i32 %46, 0\n  br i1 %47, label %$16, label %$15\n$15:\n  %48 = phi i8* [%44, %$3] ; # Log\n  %49 = phi i8* [%45, %$3] ; # Blk\n; # (ignLog)\n  call void @ignLog()\n  br label %$16\n$16:\n  %50 = phi i8* [%44, %$3], [%48, %$15] ; # Log\n  %51 = phi i8* [%45, %$3], [%49, %$15] ; # Blk\n  br label %$4\n$4:\n  %52 = phi i8* [%41, %$7], [%50, %$16] ; # Log\n  %53 = phi i8* [%42, %$7], [%51, %$16] ; # Blk\n  %54 = phi i1 [%43, %$7], [0, %$16] ; # ->\n  ret i1 %54\n}\n\ndefine void @fsyncDB(i64) align 8 {\n$1:\n; # (let (Db (val $DbFiles) C (val $DBs)) (loop (let Db: (dbFile Db) ...\n; # (val $DbFiles)\n  %1 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %2 = load i32, i32* @$DBs\n; # (loop (let Db: (dbFile Db) (when (and (Db: drt) (lt0 (fsync (Db: ...\n  br label %$2\n$2:\n  %3 = phi i64 [%0, %$1], [%28, %$7] ; # Exe\n  %4 = phi i8* [%1, %$1], [%31, %$7] ; # Db\n  %5 = phi i32 [%2, %$1], [%30, %$7] ; # C\n; # (let Db: (dbFile Db) (when (and (Db: drt) (lt0 (fsync (Db: fd))))...\n; # (when (and (Db: drt) (lt0 (fsync (Db: fd)))) (dbSyncErr Exe))\n; # (and (Db: drt) (lt0 (fsync (Db: fd))))\n; # (Db: drt)\n  %6 = getelementptr i8, i8* %4, i32 41\n  %7 = bitcast i8* %6 to i1*\n  %8 = load i1, i1* %7\n  br i1 %8, label %$4, label %$3\n$4:\n  %9 = phi i64 [%3, %$2] ; # Exe\n  %10 = phi i8* [%4, %$2] ; # Db\n  %11 = phi i32 [%5, %$2] ; # C\n; # (Db: fd)\n  %12 = bitcast i8* %4 to i32*\n  %13 = load i32, i32* %12\n; # (fsync (Db: fd))\n  %14 = call i32 @fsync(i32 %13)\n; # (lt0 (fsync (Db: fd)))\n  %15 = icmp slt i32 %14, 0\n  br label %$3\n$3:\n  %16 = phi i64 [%3, %$2], [%9, %$4] ; # Exe\n  %17 = phi i8* [%4, %$2], [%10, %$4] ; # Db\n  %18 = phi i32 [%5, %$2], [%11, %$4] ; # C\n  %19 = phi i1 [0, %$2], [%15, %$4] ; # ->\n  br i1 %19, label %$5, label %$6\n$5:\n  %20 = phi i64 [%16, %$3] ; # Exe\n  %21 = phi i8* [%17, %$3] ; # Db\n  %22 = phi i32 [%18, %$3] ; # C\n; # (dbSyncErr Exe)\n  call void @dbSyncErr(i64 %20)\n  unreachable\n$6:\n  %23 = phi i64 [%16, %$3] ; # Exe\n  %24 = phi i8* [%17, %$3] ; # Db\n  %25 = phi i32 [%18, %$3] ; # C\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %26 = sub i32 %25, 1\n; # (=0 (dec 'C))\n  %27 = icmp eq i32 %26, 0\n  br i1 %27, label %$8, label %$7\n$7:\n  %28 = phi i64 [%23, %$6] ; # Exe\n  %29 = phi i8* [%24, %$6] ; # Db\n  %30 = phi i32 [%26, %$6] ; # C\n; # (ofs Db (dbFile T))\n  %31 = getelementptr i8, i8* %29, i32 48\n  br label %$2\n$8:\n  %32 = phi i64 [%23, %$6] ; # Exe\n  %33 = phi i8* [%24, %$6] ; # Db\n  %34 = phi i32 [%26, %$6] ; # C\n  %35 = phi i64 [0, %$6] ; # ->\n  ret void\n}\n\ndefine void @restore(i64) align 8 {\n$1:\n; # (stderrMsg ($ \"Last transaction not completed: Rollback^J\") null)...\n  %1 = call i8* @stderrMsg(i8* bitcast ([42 x i8]* @$61 to i8*), i8* null)\n; # (let Log (val $DbLog) (fseek0 Log) (let (Db (val $DbFiles) C (val...\n; # (val $DbLog)\n  %2 = load i8*, i8** @$DbLog\n; # (fseek0 Log)\n  %3 = call i1 @fseek0(i8* %2)\n; # (let (Db (val $DbFiles) C (val $DBs)) (loop ((dbFile Db) drt NO) ...\n; # (val $DbFiles)\n  %4 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %5 = load i32, i32* @$DBs\n; # (loop ((dbFile Db) drt NO) (? (=0 (dec 'C))) (setq Db (ofs Db (db...\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%14, %$3] ; # Exe\n  %7 = phi i8* [%2, %$1], [%15, %$3] ; # Log\n  %8 = phi i8* [%4, %$1], [%18, %$3] ; # Db\n  %9 = phi i32 [%5, %$1], [%17, %$3] ; # C\n; # ((dbFile Db) drt NO)\n  %10 = getelementptr i8, i8* %8, i32 41\n  %11 = bitcast i8* %10 to i1*\n  store i1 0, i1* %11\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %12 = sub i32 %9, 1\n; # (=0 (dec 'C))\n  %13 = icmp eq i32 %12, 0\n  br i1 %13, label %$4, label %$3\n$3:\n  %14 = phi i64 [%6, %$2] ; # Exe\n  %15 = phi i8* [%7, %$2] ; # Log\n  %16 = phi i8* [%8, %$2] ; # Db\n  %17 = phi i32 [%12, %$2] ; # C\n; # (ofs Db (dbFile T))\n  %18 = getelementptr i8, i8* %16, i32 48\n  br label %$2\n$4:\n  %19 = phi i64 [%6, %$2] ; # Exe\n  %20 = phi i8* [%7, %$2] ; # Log\n  %21 = phi i8* [%8, %$2] ; # Db\n  %22 = phi i32 [%12, %$2] ; # C\n  %23 = phi i64 [0, %$2] ; # ->\n; # (let (Blk (b8 BLK) Buf (b8 (val $MaxBlkSize))) (loop (unless (== ...\n; # (b8 BLK)\n  %24 = alloca i8, i64 6\n; # (val $MaxBlkSize)\n  %25 = load i32, i32* @$MaxBlkSize\n; # (b8 (val $MaxBlkSize))\n  %26 = alloca i8, i32 %25\n; # (loop (unless (== (fread Blk 2 1 Log) 1) (jnlErr Exe)) (? (== (va...\n  br label %$5\n$5:\n  %27 = phi i64 [%19, %$4], [%111, %$12] ; # Exe\n  %28 = phi i8* [%20, %$4], [%112, %$12] ; # Log\n  %29 = phi i8* [%24, %$4], [%113, %$12] ; # Blk\n  %30 = phi i8* [%26, %$4], [%114, %$12] ; # Buf\n; # (unless (== (fread Blk 2 1 Log) 1) (jnlErr Exe))\n; # (fread Blk 2 1 Log)\n  %31 = call i32 @fread(i8* %29, i64 2, i64 1, i8* %28)\n; # (== (fread Blk 2 1 Log) 1)\n  %32 = icmp eq i32 %31, 1\n  br i1 %32, label %$7, label %$6\n$6:\n  %33 = phi i64 [%27, %$5] ; # Exe\n  %34 = phi i8* [%28, %$5] ; # Log\n  %35 = phi i8* [%29, %$5] ; # Blk\n  %36 = phi i8* [%30, %$5] ; # Buf\n; # (jnlErr Exe)\n  call void @jnlErr(i64 %33)\n  unreachable\n$7:\n  %37 = phi i64 [%27, %$5] ; # Exe\n  %38 = phi i8* [%28, %$5] ; # Log\n  %39 = phi i8* [%29, %$5] ; # Blk\n  %40 = phi i8* [%30, %$5] ; # Buf\n; # (? (== (val (i16* Blk)) (hex \"FFFF\")))\n; # (i16* Blk)\n  %41 = bitcast i8* %39 to i16*\n; # (val (i16* Blk))\n  %42 = load i16, i16* %41\n; # (== (val (i16* Blk)) (hex \"FFFF\"))\n  %43 = icmp eq i16 %42, 65535\n  br i1 %43, label %$9, label %$8\n$8:\n  %44 = phi i64 [%37, %$7] ; # Exe\n  %45 = phi i8* [%38, %$7] ; # Log\n  %46 = phi i8* [%39, %$7] ; # Blk\n  %47 = phi i8* [%40, %$7] ; # Buf\n; # (if (dbfBuf Blk) (let Db: (dbFile @) (unless (and (== (fread Blk ...\n; # (dbfBuf Blk)\n  %48 = call i8* @dbfBuf(i8* %46)\n  %49 = icmp ne i8* %48, null\n  br i1 %49, label %$10, label %$11\n$10:\n  %50 = phi i64 [%44, %$8] ; # Exe\n  %51 = phi i8* [%45, %$8] ; # Log\n  %52 = phi i8* [%46, %$8] ; # Blk\n  %53 = phi i8* [%47, %$8] ; # Buf\n; # (let Db: (dbFile @) (unless (and (== (fread Blk BLK 1 Log) 1) (==...\n; # (unless (and (== (fread Blk BLK 1 Log) 1) (== (fread Buf (i64 (Db...\n; # (and (== (fread Blk BLK 1 Log) 1) (== (fread Buf (i64 (Db: siz)) ...\n; # (fread Blk BLK 1 Log)\n  %54 = call i32 @fread(i8* %52, i64 6, i64 1, i8* %51)\n; # (== (fread Blk BLK 1 Log) 1)\n  %55 = icmp eq i32 %54, 1\n  br i1 %55, label %$14, label %$13\n$14:\n  %56 = phi i64 [%50, %$10] ; # Exe\n  %57 = phi i8* [%51, %$10] ; # Log\n  %58 = phi i8* [%52, %$10] ; # Blk\n  %59 = phi i8* [%53, %$10] ; # Buf\n; # (Db: siz)\n  %60 = getelementptr i8, i8* %48, i32 12\n  %61 = bitcast i8* %60 to i32*\n  %62 = load i32, i32* %61\n; # (i64 (Db: siz))\n  %63 = sext i32 %62 to i64\n; # (fread Buf (i64 (Db: siz)) 1 Log)\n  %64 = call i32 @fread(i8* %59, i64 %63, i64 1, i8* %57)\n; # (== (fread Buf (i64 (Db: siz)) 1 Log) 1)\n  %65 = icmp eq i32 %64, 1\n  br label %$13\n$13:\n  %66 = phi i64 [%50, %$10], [%56, %$14] ; # Exe\n  %67 = phi i8* [%51, %$10], [%57, %$14] ; # Log\n  %68 = phi i8* [%52, %$10], [%58, %$14] ; # Blk\n  %69 = phi i8* [%53, %$10], [%59, %$14] ; # Buf\n  %70 = phi i1 [0, %$10], [%65, %$14] ; # ->\n  br i1 %70, label %$16, label %$15\n$15:\n  %71 = phi i64 [%66, %$13] ; # Exe\n  %72 = phi i8* [%67, %$13] ; # Log\n  %73 = phi i8* [%68, %$13] ; # Blk\n  %74 = phi i8* [%69, %$13] ; # Buf\n; # (jnlErr Exe)\n  call void @jnlErr(i64 %71)\n  unreachable\n$16:\n  %75 = phi i64 [%66, %$13] ; # Exe\n  %76 = phi i8* [%67, %$13] ; # Log\n  %77 = phi i8* [%68, %$13] ; # Blk\n  %78 = phi i8* [%69, %$13] ; # Buf\n; # (unless (== (pwrite (Db: fd) Buf (i64 (Db: siz)) (shl (getAdr Blk...\n; # (Db: fd)\n  %79 = bitcast i8* %48 to i32*\n  %80 = load i32, i32* %79\n; # (Db: siz)\n  %81 = getelementptr i8, i8* %48, i32 12\n  %82 = bitcast i8* %81 to i32*\n  %83 = load i32, i32* %82\n; # (i64 (Db: siz))\n  %84 = sext i32 %83 to i64\n; # (getAdr Blk)\n  %85 = call i64 @getAdr(i8* %77)\n; # (Db: sh)\n  %86 = getelementptr i8, i8* %48, i32 8\n  %87 = bitcast i8* %86 to i32*\n  %88 = load i32, i32* %87\n; # (i64 (Db: sh))\n  %89 = sext i32 %88 to i64\n; # (shl (getAdr Blk) (i64 (Db: sh)))\n  %90 = shl i64 %85, %89\n; # (pwrite (Db: fd) Buf (i64 (Db: siz)) (shl (getAdr Blk) (i64 (Db: ...\n  %91 = call i64 @pwrite(i32 %80, i8* %78, i64 %84, i64 %90)\n; # (Db: siz)\n  %92 = getelementptr i8, i8* %48, i32 12\n  %93 = bitcast i8* %92 to i32*\n  %94 = load i32, i32* %93\n; # (i64 (Db: siz))\n  %95 = sext i32 %94 to i64\n; # (== (pwrite (Db: fd) Buf (i64 (Db: siz)) (shl (getAdr Blk) (i64 (...\n  %96 = icmp eq i64 %91, %95\n  br i1 %96, label %$18, label %$17\n$17:\n  %97 = phi i64 [%75, %$16] ; # Exe\n  %98 = phi i8* [%76, %$16] ; # Log\n  %99 = phi i8* [%77, %$16] ; # Blk\n  %100 = phi i8* [%78, %$16] ; # Buf\n; # (dbWrErr)\n  call void @dbWrErr()\n  unreachable\n$18:\n  %101 = phi i64 [%75, %$16] ; # Exe\n  %102 = phi i8* [%76, %$16] ; # Log\n  %103 = phi i8* [%77, %$16] ; # Blk\n  %104 = phi i8* [%78, %$16] ; # Buf\n; # (Db: drt YES)\n  %105 = getelementptr i8, i8* %48, i32 41\n  %106 = bitcast i8* %105 to i1*\n  store i1 1, i1* %106\n  br label %$12\n$11:\n  %107 = phi i64 [%44, %$8] ; # Exe\n  %108 = phi i8* [%45, %$8] ; # Log\n  %109 = phi i8* [%46, %$8] ; # Blk\n  %110 = phi i8* [%47, %$8] ; # Buf\n; # (jnlErr Exe)\n  call void @jnlErr(i64 %107)\n  unreachable\n$12:\n  %111 = phi i64 [%101, %$18] ; # Exe\n  %112 = phi i8* [%102, %$18] ; # Log\n  %113 = phi i8* [%103, %$18] ; # Blk\n  %114 = phi i8* [%104, %$18] ; # Buf\n  %115 = phi i1 [1, %$18] ; # ->\n  br label %$5\n$9:\n  %116 = phi i64 [%37, %$7] ; # Exe\n  %117 = phi i8* [%38, %$7] ; # Log\n  %118 = phi i8* [%39, %$7] ; # Blk\n  %119 = phi i8* [%40, %$7] ; # Buf\n  %120 = phi i64 [0, %$7] ; # ->\n; # (fsyncDB Exe)\n  call void @fsyncDB(i64 %116)\n  ret void\n}\n\ndefine void @truncLog(i64) align 8 {\n$1:\n; # (let Log (val $DbLog) (unless (and (fseek0 Log) (truncate0 (filen...\n; # (val $DbLog)\n  %1 = load i8*, i8** @$DbLog\n; # (unless (and (fseek0 Log) (truncate0 (fileno Log))) (err Exe 0 ($...\n; # (and (fseek0 Log) (truncate0 (fileno Log)))\n; # (fseek0 Log)\n  %2 = call i1 @fseek0(i8* %1)\n  br i1 %2, label %$3, label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  %4 = phi i8* [%1, %$1] ; # Log\n; # (fileno Log)\n  %5 = call i32 @fileno(i8* %4)\n; # (truncate0 (fileno Log))\n  %6 = call i1 @truncate0(i32 %5)\n  br label %$2\n$2:\n  %7 = phi i64 [%0, %$1], [%3, %$3] ; # Exe\n  %8 = phi i8* [%1, %$1], [%4, %$3] ; # Log\n  %9 = phi i1 [0, %$1], [%6, %$3] ; # ->\n  br i1 %9, label %$5, label %$4\n$4:\n  %10 = phi i64 [%7, %$2] ; # Exe\n  %11 = phi i8* [%8, %$2] ; # Log\n; # (strErrno)\n  %12 = call i8* @strErrno()\n; # (err Exe 0 ($ \"Log truncate error: %s\") (strErrno))\n  call void @err(i64 %10, i64 0, i8* bitcast ([23 x i8]* @$62 to i8*), i8* %12)\n  unreachable\n$5:\n  %13 = phi i64 [%7, %$2] ; # Exe\n  %14 = phi i8* [%8, %$2] ; # Log\n  ret void\n}\n\ndefine i64 @_Pool(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Sym1 (save (evSym X)) Dbs (save (evLst (shift X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (save (evSym X))\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %6 = load i64, i64* %5\n  %7 = alloca i64, i64 2, align 16\n  %8 = ptrtoint i64* %7 to i64\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = add i64 %8, 8\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %6, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %8, i64* %12\n; # (shift X)\n  %13 = inttoptr i64 %3 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n; # (evLst (shift X))\n  %16 = call i64 @evLst(i64 %15)\n; # (save (evLst (shift X)))\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %18 = load i64, i64* %17\n  %19 = alloca i64, i64 2, align 16\n  %20 = ptrtoint i64* %19 to i64\n  %21 = inttoptr i64 %20 to i64*\n  store i64 %16, i64* %21\n  %22 = add i64 %20, 8\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %20, i64* %24\n; # (shift X)\n  %25 = inttoptr i64 %15 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n; # (evSym (shift X))\n  %28 = call i64 @evSym(i64 %27)\n; # (save (evSym (shift X)))\n  %29 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %30 = load i64, i64* %29\n  %31 = alloca i64, i64 2, align 16\n  %32 = ptrtoint i64* %31 to i64\n  %33 = inttoptr i64 %32 to i64*\n  store i64 %28, i64* %33\n  %34 = add i64 %32, 8\n  %35 = inttoptr i64 %34 to i64*\n  store i64 %30, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %32, i64* %36\n; # (shift X)\n  %37 = inttoptr i64 %27 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n; # (evSym (shift X))\n  %40 = call i64 @evSym(i64 %39)\n; # (save (evSym (shift X)))\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %42 = load i64, i64* %41\n  %43 = alloca i64, i64 2, align 16\n  %44 = ptrtoint i64* %43 to i64\n  %45 = inttoptr i64 %44 to i64*\n  store i64 %40, i64* %45\n  %46 = add i64 %44, 8\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %42, i64* %47\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %44, i64* %48\n; # (set $Solo ZERO)\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 440) to i64) to i64*\n  store i64 2, i64* %49\n; # (when (val $DBs) (_Rollback ZERO) (let (Db (val $DbFiles) C @) (l...\n; # (val $DBs)\n  %50 = load i32, i32* @$DBs\n  %51 = icmp ne i32 %50, 0\n  br i1 %51, label %$2, label %$3\n$2:\n  %52 = phi i64 [%0, %$1] ; # Exe\n  %53 = phi i64 [%39, %$1] ; # X\n  %54 = phi i64 [%4, %$1] ; # Sym1\n  %55 = phi i64 [%16, %$1] ; # Dbs\n  %56 = phi i64 [%28, %$1] ; # Sym2\n  %57 = phi i64 [%40, %$1] ; # Sym3\n; # (_Rollback ZERO)\n  %58 = call i64 @_Rollback(i64 2)\n; # (let (Db (val $DbFiles) C @) (loop (let Db: (dbFile Db) (close (D...\n; # (val $DbFiles)\n  %59 = load i8*, i8** @$DbFiles\n; # (loop (let Db: (dbFile Db) (close (Db: fd)) (free (Db: mark))) (?...\n  br label %$4\n$4:\n  %60 = phi i64 [%52, %$2], [%76, %$5] ; # Exe\n  %61 = phi i64 [%53, %$2], [%77, %$5] ; # X\n  %62 = phi i64 [%54, %$2], [%78, %$5] ; # Sym1\n  %63 = phi i64 [%55, %$2], [%79, %$5] ; # Dbs\n  %64 = phi i64 [%56, %$2], [%80, %$5] ; # Sym2\n  %65 = phi i64 [%57, %$2], [%81, %$5] ; # Sym3\n  %66 = phi i8* [%59, %$2], [%84, %$5] ; # Db\n  %67 = phi i32 [%50, %$2], [%83, %$5] ; # C\n; # (let Db: (dbFile Db) (close (Db: fd)) (free (Db: mark)))\n; # (Db: fd)\n  %68 = bitcast i8* %66 to i32*\n  %69 = load i32, i32* %68\n; # (close (Db: fd))\n  %70 = call i32 @close(i32 %69)\n; # (Db: mark)\n  %71 = getelementptr i8, i8* %66, i32 16\n  %72 = bitcast i8* %71 to i8**\n  %73 = load i8*, i8** %72\n; # (free (Db: mark))\n  call void @free(i8* %73)\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %74 = sub i32 %67, 1\n; # (=0 (dec 'C))\n  %75 = icmp eq i32 %74, 0\n  br i1 %75, label %$6, label %$5\n$5:\n  %76 = phi i64 [%60, %$4] ; # Exe\n  %77 = phi i64 [%61, %$4] ; # X\n  %78 = phi i64 [%62, %$4] ; # Sym1\n  %79 = phi i64 [%63, %$4] ; # Dbs\n  %80 = phi i64 [%64, %$4] ; # Sym2\n  %81 = phi i64 [%65, %$4] ; # Sym3\n  %82 = phi i8* [%66, %$4] ; # Db\n  %83 = phi i32 [%74, %$4] ; # C\n; # (ofs Db (dbFile T))\n  %84 = getelementptr i8, i8* %82, i32 48\n  br label %$4\n$6:\n  %85 = phi i64 [%60, %$4] ; # Exe\n  %86 = phi i64 [%61, %$4] ; # X\n  %87 = phi i64 [%62, %$4] ; # Sym1\n  %88 = phi i64 [%63, %$4] ; # Dbs\n  %89 = phi i64 [%64, %$4] ; # Sym2\n  %90 = phi i64 [%65, %$4] ; # Sym3\n  %91 = phi i8* [%66, %$4] ; # Db\n  %92 = phi i32 [%74, %$4] ; # C\n  %93 = phi i64 [0, %$4] ; # ->\n; # (set $DBs 0 $DB $Nil)\n  store i32 0, i32* @$DBs\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 232) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %94\n; # (when (val $DbJnl) (fclose @) (set $DbJnl null))\n; # (val $DbJnl)\n  %95 = load i8*, i8** @$DbJnl\n  %96 = icmp ne i8* %95, null\n  br i1 %96, label %$7, label %$8\n$7:\n  %97 = phi i64 [%85, %$6] ; # Exe\n  %98 = phi i64 [%86, %$6] ; # X\n  %99 = phi i64 [%87, %$6] ; # Sym1\n  %100 = phi i64 [%88, %$6] ; # Dbs\n  %101 = phi i64 [%89, %$6] ; # Sym2\n  %102 = phi i64 [%90, %$6] ; # Sym3\n; # (fclose @)\n  %103 = call i32 @fclose(i8* %95)\n; # (set $DbJnl null)\n  store i8* null, i8** @$DbJnl\n  br label %$8\n$8:\n  %104 = phi i64 [%85, %$6], [%97, %$7] ; # Exe\n  %105 = phi i64 [%86, %$6], [%98, %$7] ; # X\n  %106 = phi i64 [%87, %$6], [%99, %$7] ; # Sym1\n  %107 = phi i64 [%88, %$6], [%100, %$7] ; # Dbs\n  %108 = phi i64 [%89, %$6], [%101, %$7] ; # Sym2\n  %109 = phi i64 [%90, %$6], [%102, %$7] ; # Sym3\n; # (when (val $DbLog) (fclose @) (set $DbLog null))\n; # (val $DbLog)\n  %110 = load i8*, i8** @$DbLog\n  %111 = icmp ne i8* %110, null\n  br i1 %111, label %$9, label %$10\n$9:\n  %112 = phi i64 [%104, %$8] ; # Exe\n  %113 = phi i64 [%105, %$8] ; # X\n  %114 = phi i64 [%106, %$8] ; # Sym1\n  %115 = phi i64 [%107, %$8] ; # Dbs\n  %116 = phi i64 [%108, %$8] ; # Sym2\n  %117 = phi i64 [%109, %$8] ; # Sym3\n; # (fclose @)\n  %118 = call i32 @fclose(i8* %110)\n; # (set $DbLog null)\n  store i8* null, i8** @$DbLog\n  br label %$10\n$10:\n  %119 = phi i64 [%104, %$8], [%112, %$9] ; # Exe\n  %120 = phi i64 [%105, %$8], [%113, %$9] ; # X\n  %121 = phi i64 [%106, %$8], [%114, %$9] ; # Sym1\n  %122 = phi i64 [%107, %$8], [%115, %$9] ; # Dbs\n  %123 = phi i64 [%108, %$8], [%116, %$9] ; # Sym2\n  %124 = phi i64 [%109, %$8], [%117, %$9] ; # Sym3\n  br label %$3\n$3:\n  %125 = phi i64 [%0, %$1], [%119, %$10] ; # Exe\n  %126 = phi i64 [%39, %$1], [%120, %$10] ; # X\n  %127 = phi i64 [%4, %$1], [%121, %$10] ; # Sym1\n  %128 = phi i64 [%16, %$1], [%122, %$10] ; # Dbs\n  %129 = phi i64 [%28, %$1], [%123, %$10] ; # Sym2\n  %130 = phi i64 [%40, %$1], [%124, %$10] ; # Sym3\n; # (unless (nil? Sym1) (let (Nm (xName Sym1) Len (pathSize Nm) Buf (...\n; # (nil? Sym1)\n  %131 = icmp eq i64 %127, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %131, label %$12, label %$11\n$11:\n  %132 = phi i64 [%125, %$3] ; # Exe\n  %133 = phi i64 [%126, %$3] ; # X\n  %134 = phi i64 [%127, %$3] ; # Sym1\n  %135 = phi i64 [%128, %$3] ; # Dbs\n  %136 = phi i64 [%129, %$3] ; # Sym2\n  %137 = phi i64 [%130, %$3] ; # Sym3\n; # (let (Nm (xName Sym1) Len (pathSize Nm) Buf (pathString Nm (b8 (+...\n; # (xName Sym1)\n  %138 = call i64 @xName(i64 %134)\n; # (pathSize Nm)\n  %139 = call i64 @pathSize(i64 %138)\n; # (+ Len 4)\n  %140 = add i64 %139, 4\n; # (b8 (+ Len 4))\n  %141 = alloca i8, i64 %140\n; # (pathString Nm (b8 (+ Len 4)))\n  %142 = call i8* @pathString(i64 %138, i8* %141)\n; # (dec Len)\n  %143 = sub i64 %139, 1\n; # (ofs Buf (dec Len))\n  %144 = getelementptr i8, i8* %142, i64 %143\n; # (when (pair Dbs) (let L Dbs (while (pair (shift L)) (inc 'Siz (db...\n; # (pair Dbs)\n  %145 = and i64 %135, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$13, label %$14\n$13:\n  %147 = phi i64 [%132, %$11] ; # Exe\n  %148 = phi i64 [%133, %$11] ; # X\n  %149 = phi i64 [%134, %$11] ; # Sym1\n  %150 = phi i64 [%135, %$11] ; # Dbs\n  %151 = phi i64 [%136, %$11] ; # Sym2\n  %152 = phi i64 [%137, %$11] ; # Sym3\n  %153 = phi i64 [%138, %$11] ; # Nm\n  %154 = phi i64 [%139, %$11] ; # Len\n  %155 = phi i8* [%142, %$11] ; # Buf\n  %156 = phi i8* [%144, %$11] ; # End\n  %157 = phi i64 [48, %$11] ; # Siz\n; # (let L Dbs (while (pair (shift L)) (inc 'Siz (dbFile T))))\n; # (while (pair (shift L)) (inc 'Siz (dbFile T)))\n  br label %$15\n$15:\n  %158 = phi i64 [%147, %$13], [%175, %$16] ; # Exe\n  %159 = phi i64 [%148, %$13], [%176, %$16] ; # X\n  %160 = phi i64 [%149, %$13], [%177, %$16] ; # Sym1\n  %161 = phi i64 [%150, %$13], [%178, %$16] ; # Dbs\n  %162 = phi i64 [%151, %$13], [%179, %$16] ; # Sym2\n  %163 = phi i64 [%152, %$13], [%180, %$16] ; # Sym3\n  %164 = phi i64 [%153, %$13], [%181, %$16] ; # Nm\n  %165 = phi i64 [%154, %$13], [%182, %$16] ; # Len\n  %166 = phi i8* [%155, %$13], [%183, %$16] ; # Buf\n  %167 = phi i8* [%156, %$13], [%184, %$16] ; # End\n  %168 = phi i64 [%157, %$13], [%187, %$16] ; # Siz\n  %169 = phi i64 [%150, %$13], [%186, %$16] ; # L\n; # (shift L)\n  %170 = inttoptr i64 %169 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n; # (pair (shift L))\n  %173 = and i64 %172, 15\n  %174 = icmp eq i64 %173, 0\n  br i1 %174, label %$16, label %$17\n$16:\n  %175 = phi i64 [%158, %$15] ; # Exe\n  %176 = phi i64 [%159, %$15] ; # X\n  %177 = phi i64 [%160, %$15] ; # Sym1\n  %178 = phi i64 [%161, %$15] ; # Dbs\n  %179 = phi i64 [%162, %$15] ; # Sym2\n  %180 = phi i64 [%163, %$15] ; # Sym3\n  %181 = phi i64 [%164, %$15] ; # Nm\n  %182 = phi i64 [%165, %$15] ; # Len\n  %183 = phi i8* [%166, %$15] ; # Buf\n  %184 = phi i8* [%167, %$15] ; # End\n  %185 = phi i64 [%168, %$15] ; # Siz\n  %186 = phi i64 [%172, %$15] ; # L\n; # (inc 'Siz (dbFile T))\n  %187 = add i64 %185, 48\n  br label %$15\n$17:\n  %188 = phi i64 [%158, %$15] ; # Exe\n  %189 = phi i64 [%159, %$15] ; # X\n  %190 = phi i64 [%160, %$15] ; # Sym1\n  %191 = phi i64 [%161, %$15] ; # Dbs\n  %192 = phi i64 [%162, %$15] ; # Sym2\n  %193 = phi i64 [%163, %$15] ; # Sym3\n  %194 = phi i64 [%164, %$15] ; # Nm\n  %195 = phi i64 [%165, %$15] ; # Len\n  %196 = phi i8* [%166, %$15] ; # Buf\n  %197 = phi i8* [%167, %$15] ; # End\n  %198 = phi i64 [%168, %$15] ; # Siz\n  %199 = phi i64 [%172, %$15] ; # L\n  br label %$14\n$14:\n  %200 = phi i64 [%132, %$11], [%188, %$17] ; # Exe\n  %201 = phi i64 [%133, %$11], [%189, %$17] ; # X\n  %202 = phi i64 [%134, %$11], [%190, %$17] ; # Sym1\n  %203 = phi i64 [%135, %$11], [%191, %$17] ; # Dbs\n  %204 = phi i64 [%136, %$11], [%192, %$17] ; # Sym2\n  %205 = phi i64 [%137, %$11], [%193, %$17] ; # Sym3\n  %206 = phi i64 [%138, %$11], [%194, %$17] ; # Nm\n  %207 = phi i64 [%139, %$11], [%195, %$17] ; # Len\n  %208 = phi i8* [%142, %$11], [%196, %$17] ; # Buf\n  %209 = phi i8* [%144, %$11], [%197, %$17] ; # End\n  %210 = phi i64 [48, %$11], [%198, %$17] ; # Siz\n; # (let (Db (set $DbFiles (alloc (val $DbFiles) Siz)) P (b8 (+ BLK B...\n; # (set $DbFiles (alloc (val $DbFiles) Siz))\n; # (val $DbFiles)\n  %211 = load i8*, i8** @$DbFiles\n; # (alloc (val $DbFiles) Siz)\n  %212 = call i8* @alloc(i8* %211, i64 %210)\n  store i8* %212, i8** @$DbFiles\n; # (+ BLK BLK 1)\n; # (b8 (+ BLK BLK 1))\n  %213 = alloca i8, i64 13\n; # (i32 0)\n; # (i32 0)\n; # (loop (let Db: (dbFile (set $DbFile Db)) (Db: db Fnr) (if (atom D...\n  br label %$18\n$18:\n  %214 = phi i64 [%200, %$14], [%575, %$36] ; # Exe\n  %215 = phi i64 [%201, %$14], [%576, %$36] ; # X\n  %216 = phi i64 [%202, %$14], [%577, %$36] ; # Sym1\n  %217 = phi i64 [%203, %$14], [%578, %$36] ; # Dbs\n  %218 = phi i64 [%204, %$14], [%579, %$36] ; # Sym2\n  %219 = phi i64 [%205, %$14], [%580, %$36] ; # Sym3\n  %220 = phi i64 [%206, %$14], [%581, %$36] ; # Nm\n  %221 = phi i64 [%207, %$14], [%582, %$36] ; # Len\n  %222 = phi i8* [%208, %$14], [%583, %$36] ; # Buf\n  %223 = phi i8* [%209, %$14], [%584, %$36] ; # End\n  %224 = phi i64 [%210, %$14], [%585, %$36] ; # Siz\n  %225 = phi i8* [%212, %$14], [%590, %$36] ; # Db\n  %226 = phi i8* [%213, %$14], [%587, %$36] ; # P\n  %227 = phi i32 [0, %$14], [%588, %$36] ; # Fnr\n  %228 = phi i32 [0, %$14], [%589, %$36] ; # Max\n; # (let Db: (dbFile (set $DbFile Db)) (Db: db Fnr) (if (atom Dbs) (D...\n; # (set $DbFile Db)\n  store i8* %225, i8** @$DbFile\n; # (Db: db Fnr)\n  %229 = getelementptr i8, i8* %225, i32 4\n  %230 = bitcast i8* %229 to i32*\n  store i32 %227, i32* %230\n; # (if (atom Dbs) (Db: sh 2) (set (bufAo End Fnr) 0) (Db: sh (i32 (i...\n; # (atom Dbs)\n  %231 = and i64 %217, 15\n  %232 = icmp ne i64 %231, 0\n  br i1 %232, label %$19, label %$20\n$19:\n  %233 = phi i64 [%214, %$18] ; # Exe\n  %234 = phi i64 [%215, %$18] ; # X\n  %235 = phi i64 [%216, %$18] ; # Sym1\n  %236 = phi i64 [%217, %$18] ; # Dbs\n  %237 = phi i64 [%218, %$18] ; # Sym2\n  %238 = phi i64 [%219, %$18] ; # Sym3\n  %239 = phi i64 [%220, %$18] ; # Nm\n  %240 = phi i64 [%221, %$18] ; # Len\n  %241 = phi i8* [%222, %$18] ; # Buf\n  %242 = phi i8* [%223, %$18] ; # End\n  %243 = phi i64 [%224, %$18] ; # Siz\n  %244 = phi i8* [%225, %$18] ; # Db\n  %245 = phi i8* [%226, %$18] ; # P\n  %246 = phi i32 [%227, %$18] ; # Fnr\n  %247 = phi i32 [%228, %$18] ; # Max\n; # (Db: sh 2)\n  %248 = getelementptr i8, i8* %225, i32 8\n  %249 = bitcast i8* %248 to i32*\n  store i32 2, i32* %249\n  br label %$21\n$20:\n  %250 = phi i64 [%214, %$18] ; # Exe\n  %251 = phi i64 [%215, %$18] ; # X\n  %252 = phi i64 [%216, %$18] ; # Sym1\n  %253 = phi i64 [%217, %$18] ; # Dbs\n  %254 = phi i64 [%218, %$18] ; # Sym2\n  %255 = phi i64 [%219, %$18] ; # Sym3\n  %256 = phi i64 [%220, %$18] ; # Nm\n  %257 = phi i64 [%221, %$18] ; # Len\n  %258 = phi i8* [%222, %$18] ; # Buf\n  %259 = phi i8* [%223, %$18] ; # End\n  %260 = phi i64 [%224, %$18] ; # Siz\n  %261 = phi i8* [%225, %$18] ; # Db\n  %262 = phi i8* [%226, %$18] ; # P\n  %263 = phi i32 [%227, %$18] ; # Fnr\n  %264 = phi i32 [%228, %$18] ; # Max\n; # (set (bufAo End Fnr) 0)\n; # (bufAo End Fnr)\n  %265 = call i8* @bufAo(i8* %259, i32 %263)\n  store i8 0, i8* %265\n; # (Db: sh (i32 (int (++ Dbs))))\n  %266 = getelementptr i8, i8* %225, i32 8\n  %267 = bitcast i8* %266 to i32*\n  %268 = inttoptr i64 %253 to i64*\n  %269 = getelementptr i64, i64* %268, i32 1\n  %270 = load i64, i64* %269\n  %271 = load i64, i64* %268\n  %272 = lshr i64 %271, 4\n  %273 = trunc i64 %272 to i32\n  store i32 %273, i32* %267\n  br label %$21\n$21:\n  %274 = phi i64 [%233, %$19], [%250, %$20] ; # Exe\n  %275 = phi i64 [%234, %$19], [%251, %$20] ; # X\n  %276 = phi i64 [%235, %$19], [%252, %$20] ; # Sym1\n  %277 = phi i64 [%236, %$19], [%270, %$20] ; # Dbs\n  %278 = phi i64 [%237, %$19], [%254, %$20] ; # Sym2\n  %279 = phi i64 [%238, %$19], [%255, %$20] ; # Sym3\n  %280 = phi i64 [%239, %$19], [%256, %$20] ; # Nm\n  %281 = phi i64 [%240, %$19], [%257, %$20] ; # Len\n  %282 = phi i8* [%241, %$19], [%258, %$20] ; # Buf\n  %283 = phi i8* [%242, %$19], [%259, %$20] ; # End\n  %284 = phi i64 [%243, %$19], [%260, %$20] ; # Siz\n  %285 = phi i8* [%244, %$19], [%261, %$20] ; # Db\n  %286 = phi i8* [%245, %$19], [%262, %$20] ; # P\n  %287 = phi i32 [%246, %$19], [%263, %$20] ; # Fnr\n  %288 = phi i32 [%247, %$19], [%264, %$20] ; # Max\n  %289 = phi i32 [2, %$19], [%273, %$20] ; # ->\n; # (cond ((ge0 (Db: fd (openRdWr Buf))) (blkPeek 0 P (+ BLK BLK 1)) ...\n; # (Db: fd (openRdWr Buf))\n  %290 = bitcast i8* %225 to i32*\n  %291 = call i32 @openRdWr(i8* %282)\n  store i32 %291, i32* %290\n; # (ge0 (Db: fd (openRdWr Buf)))\n  %292 = icmp sge i32 %291, 0\n  br i1 %292, label %$24, label %$23\n$24:\n  %293 = phi i64 [%274, %$21] ; # Exe\n  %294 = phi i64 [%275, %$21] ; # X\n  %295 = phi i64 [%276, %$21] ; # Sym1\n  %296 = phi i64 [%277, %$21] ; # Dbs\n  %297 = phi i64 [%278, %$21] ; # Sym2\n  %298 = phi i64 [%279, %$21] ; # Sym3\n  %299 = phi i64 [%280, %$21] ; # Nm\n  %300 = phi i64 [%281, %$21] ; # Len\n  %301 = phi i8* [%282, %$21] ; # Buf\n  %302 = phi i8* [%283, %$21] ; # End\n  %303 = phi i64 [%284, %$21] ; # Siz\n  %304 = phi i8* [%285, %$21] ; # Db\n  %305 = phi i8* [%286, %$21] ; # P\n  %306 = phi i32 [%287, %$21] ; # Fnr\n  %307 = phi i32 [%288, %$21] ; # Max\n; # (+ BLK BLK 1)\n; # (blkPeek 0 P (+ BLK BLK 1))\n  call void @blkPeek(i64 0, i8* %305, i32 13)\n; # (Db: siz (shl (i32 BLKSIZE) (Db: sh (i32 (val (+ BLK BLK 1) P))))...\n  %308 = getelementptr i8, i8* %225, i32 12\n  %309 = bitcast i8* %308 to i32*\n  %310 = getelementptr i8, i8* %225, i32 8\n  %311 = bitcast i8* %310 to i32*\n  %312 = getelementptr i8, i8* %305, i32 12\n  %313 = load i8, i8* %312\n  %314 = zext i8 %313 to i32\n  store i32 %314, i32* %311\n  %315 = shl i32 64, %314\n  store i32 %315, i32* %309\n  br label %$22\n$23:\n  %316 = phi i64 [%274, %$21] ; # Exe\n  %317 = phi i64 [%275, %$21] ; # X\n  %318 = phi i64 [%276, %$21] ; # Sym1\n  %319 = phi i64 [%277, %$21] ; # Dbs\n  %320 = phi i64 [%278, %$21] ; # Sym2\n  %321 = phi i64 [%279, %$21] ; # Sym3\n  %322 = phi i64 [%280, %$21] ; # Nm\n  %323 = phi i64 [%281, %$21] ; # Len\n  %324 = phi i8* [%282, %$21] ; # Buf\n  %325 = phi i8* [%283, %$21] ; # End\n  %326 = phi i64 [%284, %$21] ; # Siz\n  %327 = phi i8* [%285, %$21] ; # Db\n  %328 = phi i8* [%286, %$21] ; # P\n  %329 = phi i32 [%287, %$21] ; # Fnr\n  %330 = phi i32 [%288, %$21] ; # Max\n; # (and (== (gErrno) ENOENT) (ge0 (Db: fd (openRdWrExcl Buf))))\n; # (gErrno)\n  %331 = call i32 @gErrno()\n; # (== (gErrno) ENOENT)\n  %332 = icmp eq i32 %331, 1\n  br i1 %332, label %$26, label %$25\n$26:\n  %333 = phi i64 [%316, %$23] ; # Exe\n  %334 = phi i64 [%317, %$23] ; # X\n  %335 = phi i64 [%318, %$23] ; # Sym1\n  %336 = phi i64 [%319, %$23] ; # Dbs\n  %337 = phi i64 [%320, %$23] ; # Sym2\n  %338 = phi i64 [%321, %$23] ; # Sym3\n  %339 = phi i64 [%322, %$23] ; # Nm\n  %340 = phi i64 [%323, %$23] ; # Len\n  %341 = phi i8* [%324, %$23] ; # Buf\n  %342 = phi i8* [%325, %$23] ; # End\n  %343 = phi i64 [%326, %$23] ; # Siz\n  %344 = phi i8* [%327, %$23] ; # Db\n  %345 = phi i8* [%328, %$23] ; # P\n  %346 = phi i32 [%329, %$23] ; # Fnr\n  %347 = phi i32 [%330, %$23] ; # Max\n; # (Db: fd (openRdWrExcl Buf))\n  %348 = bitcast i8* %225 to i32*\n  %349 = call i32 @openRdWrExcl(i8* %341)\n  store i32 %349, i32* %348\n; # (ge0 (Db: fd (openRdWrExcl Buf)))\n  %350 = icmp sge i32 %349, 0\n  br label %$25\n$25:\n  %351 = phi i64 [%316, %$23], [%333, %$26] ; # Exe\n  %352 = phi i64 [%317, %$23], [%334, %$26] ; # X\n  %353 = phi i64 [%318, %$23], [%335, %$26] ; # Sym1\n  %354 = phi i64 [%319, %$23], [%336, %$26] ; # Dbs\n  %355 = phi i64 [%320, %$23], [%337, %$26] ; # Sym2\n  %356 = phi i64 [%321, %$23], [%338, %$26] ; # Sym3\n  %357 = phi i64 [%322, %$23], [%339, %$26] ; # Nm\n  %358 = phi i64 [%323, %$23], [%340, %$26] ; # Len\n  %359 = phi i8* [%324, %$23], [%341, %$26] ; # Buf\n  %360 = phi i8* [%325, %$23], [%342, %$26] ; # End\n  %361 = phi i64 [%326, %$23], [%343, %$26] ; # Siz\n  %362 = phi i8* [%327, %$23], [%344, %$26] ; # Db\n  %363 = phi i8* [%328, %$23], [%345, %$26] ; # P\n  %364 = phi i32 [%329, %$23], [%346, %$26] ; # Fnr\n  %365 = phi i32 [%330, %$23], [%347, %$26] ; # Max\n  %366 = phi i1 [0, %$23], [%350, %$26] ; # ->\n  br i1 %366, label %$28, label %$27\n$28:\n  %367 = phi i64 [%351, %$25] ; # Exe\n  %368 = phi i64 [%352, %$25] ; # X\n  %369 = phi i64 [%353, %$25] ; # Sym1\n  %370 = phi i64 [%354, %$25] ; # Dbs\n  %371 = phi i64 [%355, %$25] ; # Sym2\n  %372 = phi i64 [%356, %$25] ; # Sym3\n  %373 = phi i64 [%357, %$25] ; # Nm\n  %374 = phi i64 [%358, %$25] ; # Len\n  %375 = phi i8* [%359, %$25] ; # Buf\n  %376 = phi i8* [%360, %$25] ; # End\n  %377 = phi i64 [%361, %$25] ; # Siz\n  %378 = phi i8* [%362, %$25] ; # Db\n  %379 = phi i8* [%363, %$25] ; # P\n  %380 = phi i32 [%364, %$25] ; # Fnr\n  %381 = phi i32 [%365, %$25] ; # Max\n; # (let (N (shl (i32 BLKSIZE) (Db: sh)) Stk (stack) Blk (b8 (Db: siz...\n; # (i32 BLKSIZE)\n; # (Db: sh)\n  %382 = getelementptr i8, i8* %225, i32 8\n  %383 = bitcast i8* %382 to i32*\n  %384 = load i32, i32* %383\n; # (shl (i32 BLKSIZE) (Db: sh))\n  %385 = shl i32 64, %384\n; # (stack)\n  %386 = call i8* @llvm.stacksave()\n; # (Db: siz N)\n  %387 = getelementptr i8, i8* %225, i32 12\n  %388 = bitcast i8* %387 to i32*\n  store i32 %385, i32* %388\n; # (b8 (Db: siz N))\n  %389 = alloca i8, i32 %385\n; # (i64 N)\n  %390 = sext i32 %385 to i64\n; # (memset Blk 0 (i64 N) T)\n  call void @llvm.memset.p0i8.i64(i8* align 8 %389, i8 0, i64 %390, i1 0)\n; # (if (== (Db:) (val $DbFiles)) (* 2 BLKSIZE) BLKSIZE)\n; # (Db:)\n; # (val $DbFiles)\n  %391 = load i8*, i8** @$DbFiles\n; # (== (Db:) (val $DbFiles))\n  %392 = icmp eq i8* %225, %391\n  br i1 %392, label %$29, label %$30\n$29:\n  %393 = phi i64 [%367, %$28] ; # Exe\n  %394 = phi i64 [%368, %$28] ; # X\n  %395 = phi i64 [%369, %$28] ; # Sym1\n  %396 = phi i64 [%370, %$28] ; # Dbs\n  %397 = phi i64 [%371, %$28] ; # Sym2\n  %398 = phi i64 [%372, %$28] ; # Sym3\n  %399 = phi i64 [%373, %$28] ; # Nm\n  %400 = phi i64 [%374, %$28] ; # Len\n  %401 = phi i8* [%375, %$28] ; # Buf\n  %402 = phi i8* [%376, %$28] ; # End\n  %403 = phi i64 [%377, %$28] ; # Siz\n  %404 = phi i8* [%378, %$28] ; # Db\n  %405 = phi i8* [%379, %$28] ; # P\n  %406 = phi i32 [%380, %$28] ; # Fnr\n  %407 = phi i32 [%381, %$28] ; # Max\n  %408 = phi i32 [%385, %$28] ; # N\n  %409 = phi i8* [%386, %$28] ; # Stk\n  %410 = phi i8* [%389, %$28] ; # Blk\n; # (* 2 BLKSIZE)\n  br label %$31\n$30:\n  %411 = phi i64 [%367, %$28] ; # Exe\n  %412 = phi i64 [%368, %$28] ; # X\n  %413 = phi i64 [%369, %$28] ; # Sym1\n  %414 = phi i64 [%370, %$28] ; # Dbs\n  %415 = phi i64 [%371, %$28] ; # Sym2\n  %416 = phi i64 [%372, %$28] ; # Sym3\n  %417 = phi i64 [%373, %$28] ; # Nm\n  %418 = phi i64 [%374, %$28] ; # Len\n  %419 = phi i8* [%375, %$28] ; # Buf\n  %420 = phi i8* [%376, %$28] ; # End\n  %421 = phi i64 [%377, %$28] ; # Siz\n  %422 = phi i8* [%378, %$28] ; # Db\n  %423 = phi i8* [%379, %$28] ; # P\n  %424 = phi i32 [%380, %$28] ; # Fnr\n  %425 = phi i32 [%381, %$28] ; # Max\n  %426 = phi i32 [%385, %$28] ; # N\n  %427 = phi i8* [%386, %$28] ; # Stk\n  %428 = phi i8* [%389, %$28] ; # Blk\n  br label %$31\n$31:\n  %429 = phi i64 [%393, %$29], [%411, %$30] ; # Exe\n  %430 = phi i64 [%394, %$29], [%412, %$30] ; # X\n  %431 = phi i64 [%395, %$29], [%413, %$30] ; # Sym1\n  %432 = phi i64 [%396, %$29], [%414, %$30] ; # Dbs\n  %433 = phi i64 [%397, %$29], [%415, %$30] ; # Sym2\n  %434 = phi i64 [%398, %$29], [%416, %$30] ; # Sym3\n  %435 = phi i64 [%399, %$29], [%417, %$30] ; # Nm\n  %436 = phi i64 [%400, %$29], [%418, %$30] ; # Len\n  %437 = phi i8* [%401, %$29], [%419, %$30] ; # Buf\n  %438 = phi i8* [%402, %$29], [%420, %$30] ; # End\n  %439 = phi i64 [%403, %$29], [%421, %$30] ; # Siz\n  %440 = phi i8* [%404, %$29], [%422, %$30] ; # Db\n  %441 = phi i8* [%405, %$29], [%423, %$30] ; # P\n  %442 = phi i32 [%406, %$29], [%424, %$30] ; # Fnr\n  %443 = phi i32 [%407, %$29], [%425, %$30] ; # Max\n  %444 = phi i32 [%408, %$29], [%426, %$30] ; # N\n  %445 = phi i8* [%409, %$29], [%427, %$30] ; # Stk\n  %446 = phi i8* [%410, %$29], [%428, %$30] ; # Blk\n  %447 = phi i64 [128, %$29], [64, %$30] ; # ->\n; # (ofs Blk BLK)\n  %448 = getelementptr i8, i8* %446, i32 6\n; # (setAdr (if (== (Db:) (val $DbFiles)) (* 2 BLKSIZE) BLKSIZE) (ofs...\n  call void @setAdr(i64 %447, i8* %448)\n; # (set (inc (* 2 BLK)) Blk (i8 (Db: sh)))\n; # (* 2 BLK)\n; # (inc (* 2 BLK))\n; # (Db: sh)\n  %449 = getelementptr i8, i8* %225, i32 8\n  %450 = bitcast i8* %449 to i32*\n  %451 = load i32, i32* %450\n; # (i8 (Db: sh))\n  %452 = trunc i32 %451 to i8\n  %453 = getelementptr i8, i8* %446, i32 12\n  store i8 %452, i8* %453\n; # (blkPoke 0 Blk N)\n  call void @blkPoke(i64 0, i8* %446, i32 %444)\n; # (when (== (Db:) (val $DbFiles)) (memset Blk 0 16 T) (setAdr 1 Blk...\n; # (Db:)\n; # (val $DbFiles)\n  %454 = load i8*, i8** @$DbFiles\n; # (== (Db:) (val $DbFiles))\n  %455 = icmp eq i8* %225, %454\n  br i1 %455, label %$32, label %$33\n$32:\n  %456 = phi i64 [%429, %$31] ; # Exe\n  %457 = phi i64 [%430, %$31] ; # X\n  %458 = phi i64 [%431, %$31] ; # Sym1\n  %459 = phi i64 [%432, %$31] ; # Dbs\n  %460 = phi i64 [%433, %$31] ; # Sym2\n  %461 = phi i64 [%434, %$31] ; # Sym3\n  %462 = phi i64 [%435, %$31] ; # Nm\n  %463 = phi i64 [%436, %$31] ; # Len\n  %464 = phi i8* [%437, %$31] ; # Buf\n  %465 = phi i8* [%438, %$31] ; # End\n  %466 = phi i64 [%439, %$31] ; # Siz\n  %467 = phi i8* [%440, %$31] ; # Db\n  %468 = phi i8* [%441, %$31] ; # P\n  %469 = phi i32 [%442, %$31] ; # Fnr\n  %470 = phi i32 [%443, %$31] ; # Max\n  %471 = phi i32 [%444, %$31] ; # N\n  %472 = phi i8* [%445, %$31] ; # Stk\n  %473 = phi i8* [%446, %$31] ; # Blk\n; # (memset Blk 0 16 T)\n  call void @llvm.memset.p0i8.i64(i8* align 8 %473, i8 0, i64 16, i1 0)\n; # (setAdr 1 Blk)\n  call void @setAdr(i64 1, i8* %473)\n; # (Db: siz)\n  %474 = getelementptr i8, i8* %225, i32 12\n  %475 = bitcast i8* %474 to i32*\n  %476 = load i32, i32* %475\n; # (i64 (Db: siz))\n  %477 = sext i32 %476 to i64\n; # (blkPoke (i64 (Db: siz)) Blk N)\n  call void @blkPoke(i64 %477, i8* %473, i32 %471)\n  br label %$33\n$33:\n  %478 = phi i64 [%429, %$31], [%456, %$32] ; # Exe\n  %479 = phi i64 [%430, %$31], [%457, %$32] ; # X\n  %480 = phi i64 [%431, %$31], [%458, %$32] ; # Sym1\n  %481 = phi i64 [%432, %$31], [%459, %$32] ; # Dbs\n  %482 = phi i64 [%433, %$31], [%460, %$32] ; # Sym2\n  %483 = phi i64 [%434, %$31], [%461, %$32] ; # Sym3\n  %484 = phi i64 [%435, %$31], [%462, %$32] ; # Nm\n  %485 = phi i64 [%436, %$31], [%463, %$32] ; # Len\n  %486 = phi i8* [%437, %$31], [%464, %$32] ; # Buf\n  %487 = phi i8* [%438, %$31], [%465, %$32] ; # End\n  %488 = phi i64 [%439, %$31], [%466, %$32] ; # Siz\n  %489 = phi i8* [%440, %$31], [%467, %$32] ; # Db\n  %490 = phi i8* [%441, %$31], [%468, %$32] ; # P\n  %491 = phi i32 [%442, %$31], [%469, %$32] ; # Fnr\n  %492 = phi i32 [%443, %$31], [%470, %$32] ; # Max\n  %493 = phi i32 [%444, %$31], [%471, %$32] ; # N\n  %494 = phi i8* [%445, %$31], [%472, %$32] ; # Stk\n  %495 = phi i8* [%446, %$31], [%473, %$32] ; # Blk\n; # (stack Stk)\n  call void @llvm.stackrestore(i8* %494)\n  br label %$22\n$27:\n  %496 = phi i64 [%351, %$25] ; # Exe\n  %497 = phi i64 [%352, %$25] ; # X\n  %498 = phi i64 [%353, %$25] ; # Sym1\n  %499 = phi i64 [%354, %$25] ; # Dbs\n  %500 = phi i64 [%355, %$25] ; # Sym2\n  %501 = phi i64 [%356, %$25] ; # Sym3\n  %502 = phi i64 [%357, %$25] ; # Nm\n  %503 = phi i64 [%358, %$25] ; # Len\n  %504 = phi i8* [%359, %$25] ; # Buf\n  %505 = phi i8* [%360, %$25] ; # End\n  %506 = phi i64 [%361, %$25] ; # Siz\n  %507 = phi i8* [%362, %$25] ; # Db\n  %508 = phi i8* [%363, %$25] ; # P\n  %509 = phi i32 [%364, %$25] ; # Fnr\n  %510 = phi i32 [%365, %$25] ; # Max\n; # (openErr Exe Sym1)\n  call void @openErr(i64 %496, i64 %498)\n  unreachable\n$22:\n  %511 = phi i64 [%293, %$24], [%478, %$33] ; # Exe\n  %512 = phi i64 [%294, %$24], [%479, %$33] ; # X\n  %513 = phi i64 [%295, %$24], [%480, %$33] ; # Sym1\n  %514 = phi i64 [%296, %$24], [%481, %$33] ; # Dbs\n  %515 = phi i64 [%297, %$24], [%482, %$33] ; # Sym2\n  %516 = phi i64 [%298, %$24], [%483, %$33] ; # Sym3\n  %517 = phi i64 [%299, %$24], [%484, %$33] ; # Nm\n  %518 = phi i64 [%300, %$24], [%485, %$33] ; # Len\n  %519 = phi i8* [%301, %$24], [%486, %$33] ; # Buf\n  %520 = phi i8* [%302, %$24], [%487, %$33] ; # End\n  %521 = phi i64 [%303, %$24], [%488, %$33] ; # Siz\n  %522 = phi i8* [%304, %$24], [%489, %$33] ; # Db\n  %523 = phi i8* [%305, %$24], [%490, %$33] ; # P\n  %524 = phi i32 [%306, %$24], [%491, %$33] ; # Fnr\n  %525 = phi i32 [%307, %$24], [%492, %$33] ; # Max\n; # (Db: fd)\n  %526 = bitcast i8* %225 to i32*\n  %527 = load i32, i32* %526\n; # (closeOnExec Exe (Db: fd))\n  call void @closeOnExec(i64 %511, i32 %527)\n; # (when (> (Db: siz) Max) (setq Max @))\n; # (Db: siz)\n  %528 = getelementptr i8, i8* %225, i32 12\n  %529 = bitcast i8* %528 to i32*\n  %530 = load i32, i32* %529\n; # (> (Db: siz) Max)\n  %531 = icmp sgt i32 %530, %525\n  br i1 %531, label %$34, label %$35\n$34:\n  %532 = phi i64 [%511, %$22] ; # Exe\n  %533 = phi i64 [%512, %$22] ; # X\n  %534 = phi i64 [%513, %$22] ; # Sym1\n  %535 = phi i64 [%514, %$22] ; # Dbs\n  %536 = phi i64 [%515, %$22] ; # Sym2\n  %537 = phi i64 [%516, %$22] ; # Sym3\n  %538 = phi i64 [%517, %$22] ; # Nm\n  %539 = phi i64 [%518, %$22] ; # Len\n  %540 = phi i8* [%519, %$22] ; # Buf\n  %541 = phi i8* [%520, %$22] ; # End\n  %542 = phi i64 [%521, %$22] ; # Siz\n  %543 = phi i8* [%522, %$22] ; # Db\n  %544 = phi i8* [%523, %$22] ; # P\n  %545 = phi i32 [%524, %$22] ; # Fnr\n  %546 = phi i32 [%525, %$22] ; # Max\n  br label %$35\n$35:\n  %547 = phi i64 [%511, %$22], [%532, %$34] ; # Exe\n  %548 = phi i64 [%512, %$22], [%533, %$34] ; # X\n  %549 = phi i64 [%513, %$22], [%534, %$34] ; # Sym1\n  %550 = phi i64 [%514, %$22], [%535, %$34] ; # Dbs\n  %551 = phi i64 [%515, %$22], [%536, %$34] ; # Sym2\n  %552 = phi i64 [%516, %$22], [%537, %$34] ; # Sym3\n  %553 = phi i64 [%517, %$22], [%538, %$34] ; # Nm\n  %554 = phi i64 [%518, %$22], [%539, %$34] ; # Len\n  %555 = phi i8* [%519, %$22], [%540, %$34] ; # Buf\n  %556 = phi i8* [%520, %$22], [%541, %$34] ; # End\n  %557 = phi i64 [%521, %$22], [%542, %$34] ; # Siz\n  %558 = phi i8* [%522, %$22], [%543, %$34] ; # Db\n  %559 = phi i8* [%523, %$22], [%544, %$34] ; # P\n  %560 = phi i32 [%524, %$22], [%545, %$34] ; # Fnr\n  %561 = phi i32 [%525, %$22], [%530, %$34] ; # Max\n; # (Db: mark null)\n  %562 = getelementptr i8, i8* %225, i32 16\n  %563 = bitcast i8* %562 to i8**\n  store i8* null, i8** %563\n; # (Db: mrks 0)\n  %564 = getelementptr i8, i8* %225, i32 24\n  %565 = bitcast i8* %564 to i64*\n  store i64 0, i64* %565\n; # (Db: flu -1)\n  %566 = getelementptr i8, i8* %225, i32 32\n  %567 = bitcast i8* %566 to i64*\n  store i64 -1, i64* %567\n; # (Db: lck (Db: drt NO))\n  %568 = getelementptr i8, i8* %225, i32 40\n  %569 = bitcast i8* %568 to i1*\n  %570 = getelementptr i8, i8* %225, i32 41\n  %571 = bitcast i8* %570 to i1*\n  store i1 0, i1* %571\n  store i1 0, i1* %569\n; # (inc 'Fnr)\n  %572 = add i32 %560, 1\n; # (? (atom Dbs))\n; # (atom Dbs)\n  %573 = and i64 %550, 15\n  %574 = icmp ne i64 %573, 0\n  br i1 %574, label %$37, label %$36\n$36:\n  %575 = phi i64 [%547, %$35] ; # Exe\n  %576 = phi i64 [%548, %$35] ; # X\n  %577 = phi i64 [%549, %$35] ; # Sym1\n  %578 = phi i64 [%550, %$35] ; # Dbs\n  %579 = phi i64 [%551, %$35] ; # Sym2\n  %580 = phi i64 [%552, %$35] ; # Sym3\n  %581 = phi i64 [%553, %$35] ; # Nm\n  %582 = phi i64 [%554, %$35] ; # Len\n  %583 = phi i8* [%555, %$35] ; # Buf\n  %584 = phi i8* [%556, %$35] ; # End\n  %585 = phi i64 [%557, %$35] ; # Siz\n  %586 = phi i8* [%558, %$35] ; # Db\n  %587 = phi i8* [%559, %$35] ; # P\n  %588 = phi i32 [%572, %$35] ; # Fnr\n  %589 = phi i32 [%561, %$35] ; # Max\n; # (ofs Db (dbFile T))\n  %590 = getelementptr i8, i8* %586, i32 48\n  br label %$18\n$37:\n  %591 = phi i64 [%547, %$35] ; # Exe\n  %592 = phi i64 [%548, %$35] ; # X\n  %593 = phi i64 [%549, %$35] ; # Sym1\n  %594 = phi i64 [%550, %$35] ; # Dbs\n  %595 = phi i64 [%551, %$35] ; # Sym2\n  %596 = phi i64 [%552, %$35] ; # Sym3\n  %597 = phi i64 [%553, %$35] ; # Nm\n  %598 = phi i64 [%554, %$35] ; # Len\n  %599 = phi i8* [%555, %$35] ; # Buf\n  %600 = phi i8* [%556, %$35] ; # End\n  %601 = phi i64 [%557, %$35] ; # Siz\n  %602 = phi i8* [%558, %$35] ; # Db\n  %603 = phi i8* [%559, %$35] ; # P\n  %604 = phi i32 [%572, %$35] ; # Fnr\n  %605 = phi i32 [%561, %$35] ; # Max\n  %606 = phi i64 [0, %$35] ; # ->\n; # (set $DB $Db1 $DBs Fnr $MaxBlkSize Max $DbBlock (alloc (val $DbBl...\n  %607 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 232) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64), i64* %607\n  store i32 %604, i32* @$DBs\n  store i32 %605, i32* @$MaxBlkSize\n; # (val $DbBlock)\n  %608 = load i8*, i8** @$DbBlock\n; # (i64 Max)\n  %609 = sext i32 %605 to i64\n; # (alloc (val $DbBlock) (i64 Max))\n  %610 = call i8* @alloc(i8* %608, i64 %609)\n  store i8* %610, i8** @$DbBlock\n; # (unless (nil? Sym2) (let Nm (xName Sym2) (unless (fopen (pathStri...\n; # (nil? Sym2)\n  %611 = icmp eq i64 %595, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %611, label %$39, label %$38\n$38:\n  %612 = phi i64 [%591, %$37] ; # Exe\n  %613 = phi i64 [%592, %$37] ; # X\n  %614 = phi i64 [%593, %$37] ; # Sym1\n  %615 = phi i64 [%594, %$37] ; # Dbs\n  %616 = phi i64 [%595, %$37] ; # Sym2\n  %617 = phi i64 [%596, %$37] ; # Sym3\n; # (let Nm (xName Sym2) (unless (fopen (pathString Nm (b8 (pathSize ...\n; # (xName Sym2)\n  %618 = call i64 @xName(i64 %616)\n; # (unless (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a\")) (openE...\n; # (pathSize Nm)\n  %619 = call i64 @pathSize(i64 %618)\n; # (b8 (pathSize Nm))\n  %620 = alloca i8, i64 %619\n; # (pathString Nm (b8 (pathSize Nm)))\n  %621 = call i8* @pathString(i64 %618, i8* %620)\n; # (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a\"))\n  %622 = call i8* @fopen(i8* %621, i8* bitcast ([2 x i8]* @$63 to i8*))\n  %623 = icmp ne i8* %622, null\n  br i1 %623, label %$41, label %$40\n$40:\n  %624 = phi i64 [%612, %$38] ; # Exe\n  %625 = phi i64 [%613, %$38] ; # X\n  %626 = phi i64 [%614, %$38] ; # Sym1\n  %627 = phi i64 [%615, %$38] ; # Dbs\n  %628 = phi i64 [%616, %$38] ; # Sym2\n  %629 = phi i64 [%617, %$38] ; # Sym3\n  %630 = phi i64 [%618, %$38] ; # Nm\n; # (openErr Exe Sym2)\n  call void @openErr(i64 %624, i64 %628)\n  unreachable\n$41:\n  %631 = phi i64 [%612, %$38] ; # Exe\n  %632 = phi i64 [%613, %$38] ; # X\n  %633 = phi i64 [%614, %$38] ; # Sym1\n  %634 = phi i64 [%615, %$38] ; # Dbs\n  %635 = phi i64 [%616, %$38] ; # Sym2\n  %636 = phi i64 [%617, %$38] ; # Sym3\n  %637 = phi i64 [%618, %$38] ; # Nm\n; # (set $DbJnl @)\n  store i8* %622, i8** @$DbJnl\n; # (fileno @)\n  %638 = call i32 @fileno(i8* %622)\n; # (closeOnExec Exe (fileno @))\n  call void @closeOnExec(i64 %631, i32 %638)\n  br label %$39\n$39:\n  %639 = phi i64 [%591, %$37], [%631, %$41] ; # Exe\n  %640 = phi i64 [%592, %$37], [%632, %$41] ; # X\n  %641 = phi i64 [%593, %$37], [%633, %$41] ; # Sym1\n  %642 = phi i64 [%594, %$37], [%634, %$41] ; # Dbs\n  %643 = phi i64 [%595, %$37], [%635, %$41] ; # Sym2\n  %644 = phi i64 [%596, %$37], [%636, %$41] ; # Sym3\n; # (unless (nil? Sym3) (let Nm (xName Sym3) (unless (fopen (pathStri...\n; # (nil? Sym3)\n  %645 = icmp eq i64 %644, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %645, label %$43, label %$42\n$42:\n  %646 = phi i64 [%639, %$39] ; # Exe\n  %647 = phi i64 [%640, %$39] ; # X\n  %648 = phi i64 [%641, %$39] ; # Sym1\n  %649 = phi i64 [%642, %$39] ; # Dbs\n  %650 = phi i64 [%643, %$39] ; # Sym2\n  %651 = phi i64 [%644, %$39] ; # Sym3\n; # (let Nm (xName Sym3) (unless (fopen (pathString Nm (b8 (pathSize ...\n; # (xName Sym3)\n  %652 = call i64 @xName(i64 %651)\n; # (unless (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a+\")) (open...\n; # (pathSize Nm)\n  %653 = call i64 @pathSize(i64 %652)\n; # (b8 (pathSize Nm))\n  %654 = alloca i8, i64 %653\n; # (pathString Nm (b8 (pathSize Nm)))\n  %655 = call i8* @pathString(i64 %652, i8* %654)\n; # (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a+\"))\n  %656 = call i8* @fopen(i8* %655, i8* bitcast ([3 x i8]* @$64 to i8*))\n  %657 = icmp ne i8* %656, null\n  br i1 %657, label %$45, label %$44\n$44:\n  %658 = phi i64 [%646, %$42] ; # Exe\n  %659 = phi i64 [%647, %$42] ; # X\n  %660 = phi i64 [%648, %$42] ; # Sym1\n  %661 = phi i64 [%649, %$42] ; # Dbs\n  %662 = phi i64 [%650, %$42] ; # Sym2\n  %663 = phi i64 [%651, %$42] ; # Sym3\n  %664 = phi i64 [%652, %$42] ; # Nm\n; # (openErr Exe Sym3)\n  call void @openErr(i64 %658, i64 %663)\n  unreachable\n$45:\n  %665 = phi i64 [%646, %$42] ; # Exe\n  %666 = phi i64 [%647, %$42] ; # X\n  %667 = phi i64 [%648, %$42] ; # Sym1\n  %668 = phi i64 [%649, %$42] ; # Dbs\n  %669 = phi i64 [%650, %$42] ; # Sym2\n  %670 = phi i64 [%651, %$42] ; # Sym3\n  %671 = phi i64 [%652, %$42] ; # Nm\n; # (set $DbLog @)\n  store i8* %656, i8** @$DbLog\n; # (fileno @)\n  %672 = call i32 @fileno(i8* %656)\n; # (closeOnExec Exe (fileno @))\n  call void @closeOnExec(i64 %665, i32 %672)\n; # (when (transaction) (restore Exe))\n; # (transaction)\n  %673 = call i1 @transaction()\n  br i1 %673, label %$46, label %$47\n$46:\n  %674 = phi i64 [%665, %$45] ; # Exe\n  %675 = phi i64 [%666, %$45] ; # X\n  %676 = phi i64 [%667, %$45] ; # Sym1\n  %677 = phi i64 [%668, %$45] ; # Dbs\n  %678 = phi i64 [%669, %$45] ; # Sym2\n  %679 = phi i64 [%670, %$45] ; # Sym3\n  %680 = phi i64 [%671, %$45] ; # Nm\n; # (restore Exe)\n  call void @restore(i64 %674)\n  br label %$47\n$47:\n  %681 = phi i64 [%665, %$45], [%674, %$46] ; # Exe\n  %682 = phi i64 [%666, %$45], [%675, %$46] ; # X\n  %683 = phi i64 [%667, %$45], [%676, %$46] ; # Sym1\n  %684 = phi i64 [%668, %$45], [%677, %$46] ; # Dbs\n  %685 = phi i64 [%669, %$45], [%678, %$46] ; # Sym2\n  %686 = phi i64 [%670, %$45], [%679, %$46] ; # Sym3\n  %687 = phi i64 [%671, %$45], [%680, %$46] ; # Nm\n; # (truncLog Exe)\n  call void @truncLog(i64 %681)\n  br label %$43\n$43:\n  %688 = phi i64 [%639, %$39], [%681, %$47] ; # Exe\n  %689 = phi i64 [%640, %$39], [%682, %$47] ; # X\n  %690 = phi i64 [%641, %$39], [%683, %$47] ; # Sym1\n  %691 = phi i64 [%642, %$39], [%684, %$47] ; # Dbs\n  %692 = phi i64 [%643, %$39], [%685, %$47] ; # Sym2\n  %693 = phi i64 [%644, %$39], [%686, %$47] ; # Sym3\n  br label %$12\n$12:\n  %694 = phi i64 [%125, %$3], [%688, %$43] ; # Exe\n  %695 = phi i64 [%126, %$3], [%689, %$43] ; # X\n  %696 = phi i64 [%127, %$3], [%690, %$43] ; # Sym1\n  %697 = phi i64 [%128, %$3], [%691, %$43] ; # Dbs\n  %698 = phi i64 [%129, %$3], [%692, %$43] ; # Sym2\n  %699 = phi i64 [%130, %$3], [%693, %$43] ; # Sym3\n; # (drop *Safe)\n  %700 = inttoptr i64 %8 to i64*\n  %701 = getelementptr i64, i64* %700, i32 1\n  %702 = load i64, i64* %701\n  %703 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %702, i64* %703\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n}\n\ndefine i64 @_Pool2(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Sym (evSym X) Nm (xName Sym) Jnl (val $DbJnl) L...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName Sym)\n  %5 = call i64 @xName(i64 %4)\n; # (val $DbJnl)\n  %6 = load i8*, i8** @$DbJnl\n; # (val $DbLog)\n  %7 = load i8*, i8** @$DbLog\n; # (val $DBs)\n  %8 = load i32, i32* @$DBs\n; # (b32 C)\n  %9 = alloca i32, i32 %8\n; # (set $DbJnl null $DbLog null)\n  store i8* null, i8** @$DbJnl\n  store i8* null, i8** @$DbLog\n; # (let (Db (val $DbFiles) I (i32 0)) (loop (let Db: (dbFile Db) (se...\n; # (val $DbFiles)\n  %10 = load i8*, i8** @$DbFiles\n; # (i32 0)\n; # (loop (let Db: (dbFile Db) (set (ofs FDs I) (Db: fd))) (? (== C (...\n  br label %$2\n$2:\n  %11 = phi i64 [%0, %$1], [%26, %$3] ; # Exe\n  %12 = phi i64 [%3, %$1], [%27, %$3] ; # X\n  %13 = phi i64 [%4, %$1], [%28, %$3] ; # Sym\n  %14 = phi i64 [%5, %$1], [%29, %$3] ; # Nm\n  %15 = phi i8* [%6, %$1], [%30, %$3] ; # Jnl\n  %16 = phi i8* [%7, %$1], [%31, %$3] ; # Log\n  %17 = phi i32 [%8, %$1], [%32, %$3] ; # C\n  %18 = phi i32* [%9, %$1], [%33, %$3] ; # FDs\n  %19 = phi i8* [%10, %$1], [%36, %$3] ; # Db\n  %20 = phi i32 [0, %$1], [%35, %$3] ; # I\n; # (let Db: (dbFile Db) (set (ofs FDs I) (Db: fd)))\n; # (set (ofs FDs I) (Db: fd))\n; # (ofs FDs I)\n  %21 = getelementptr i32, i32* %18, i32 %20\n; # (Db: fd)\n  %22 = bitcast i8* %19 to i32*\n  %23 = load i32, i32* %22\n  store i32 %23, i32* %21\n; # (? (== C (inc 'I)))\n; # (inc 'I)\n  %24 = add i32 %20, 1\n; # (== C (inc 'I))\n  %25 = icmp eq i32 %17, %24\n  br i1 %25, label %$4, label %$3\n$3:\n  %26 = phi i64 [%11, %$2] ; # Exe\n  %27 = phi i64 [%12, %$2] ; # X\n  %28 = phi i64 [%13, %$2] ; # Sym\n  %29 = phi i64 [%14, %$2] ; # Nm\n  %30 = phi i8* [%15, %$2] ; # Jnl\n  %31 = phi i8* [%16, %$2] ; # Log\n  %32 = phi i32 [%17, %$2] ; # C\n  %33 = phi i32* [%18, %$2] ; # FDs\n  %34 = phi i8* [%19, %$2] ; # Db\n  %35 = phi i32 [%24, %$2] ; # I\n; # (ofs Db (dbFile T))\n  %36 = getelementptr i8, i8* %34, i32 48\n  br label %$2\n$4:\n  %37 = phi i64 [%11, %$2] ; # Exe\n  %38 = phi i64 [%12, %$2] ; # X\n  %39 = phi i64 [%13, %$2] ; # Sym\n  %40 = phi i64 [%14, %$2] ; # Nm\n  %41 = phi i8* [%15, %$2] ; # Jnl\n  %42 = phi i8* [%16, %$2] ; # Log\n  %43 = phi i32 [%17, %$2] ; # C\n  %44 = phi i32* [%18, %$2] ; # FDs\n  %45 = phi i8* [%19, %$2] ; # Db\n  %46 = phi i32 [%24, %$2] ; # I\n  %47 = phi i64 [0, %$2] ; # ->\n; # (let (Len (pathSize Nm) Buf (pathString Nm (b8 (+ Len 4))) End (o...\n; # (pathSize Nm)\n  %48 = call i64 @pathSize(i64 %40)\n; # (+ Len 4)\n  %49 = add i64 %48, 4\n; # (b8 (+ Len 4))\n  %50 = alloca i8, i64 %49\n; # (pathString Nm (b8 (+ Len 4)))\n  %51 = call i8* @pathString(i64 %40, i8* %50)\n; # (dec Len)\n  %52 = sub i64 %48, 1\n; # (ofs Buf (dec Len))\n  %53 = getelementptr i8, i8* %51, i64 %52\n; # (let (Db (val $DbFiles) I (i32 0)) (loop (let Db: (dbFile Db) (se...\n; # (val $DbFiles)\n  %54 = load i8*, i8** @$DbFiles\n; # (i32 0)\n; # (loop (let Db: (dbFile Db) (set (bufAo End (Db: db)) 0) (when (lt...\n  br label %$5\n$5:\n  %55 = phi i64 [%37, %$4], [%103, %$8] ; # Exe\n  %56 = phi i64 [%38, %$4], [%104, %$8] ; # X\n  %57 = phi i64 [%39, %$4], [%105, %$8] ; # Sym\n  %58 = phi i64 [%40, %$4], [%106, %$8] ; # Nm\n  %59 = phi i8* [%41, %$4], [%107, %$8] ; # Jnl\n  %60 = phi i8* [%42, %$4], [%108, %$8] ; # Log\n  %61 = phi i32 [%43, %$4], [%109, %$8] ; # C\n  %62 = phi i32* [%44, %$4], [%110, %$8] ; # FDs\n  %63 = phi i64 [%48, %$4], [%111, %$8] ; # Len\n  %64 = phi i8* [%51, %$4], [%112, %$8] ; # Buf\n  %65 = phi i8* [%53, %$4], [%113, %$8] ; # End\n  %66 = phi i8* [%54, %$4], [%116, %$8] ; # Db\n  %67 = phi i32 [0, %$4], [%115, %$8] ; # I\n; # (let Db: (dbFile Db) (set (bufAo End (Db: db)) 0) (when (lt0 (Db:...\n; # (set (bufAo End (Db: db)) 0)\n; # (Db: db)\n  %68 = getelementptr i8, i8* %66, i32 4\n  %69 = bitcast i8* %68 to i32*\n  %70 = load i32, i32* %69\n; # (bufAo End (Db: db))\n  %71 = call i8* @bufAo(i8* %65, i32 %70)\n  store i8 0, i8* %71\n; # (when (lt0 (Db: fd (openRdWr Buf))) (openErr Exe Sym))\n; # (Db: fd (openRdWr Buf))\n  %72 = bitcast i8* %66 to i32*\n  %73 = call i32 @openRdWr(i8* %64)\n  store i32 %73, i32* %72\n; # (lt0 (Db: fd (openRdWr Buf)))\n  %74 = icmp slt i32 %73, 0\n  br i1 %74, label %$6, label %$7\n$6:\n  %75 = phi i64 [%55, %$5] ; # Exe\n  %76 = phi i64 [%56, %$5] ; # X\n  %77 = phi i64 [%57, %$5] ; # Sym\n  %78 = phi i64 [%58, %$5] ; # Nm\n  %79 = phi i8* [%59, %$5] ; # Jnl\n  %80 = phi i8* [%60, %$5] ; # Log\n  %81 = phi i32 [%61, %$5] ; # C\n  %82 = phi i32* [%62, %$5] ; # FDs\n  %83 = phi i64 [%63, %$5] ; # Len\n  %84 = phi i8* [%64, %$5] ; # Buf\n  %85 = phi i8* [%65, %$5] ; # End\n  %86 = phi i8* [%66, %$5] ; # Db\n  %87 = phi i32 [%67, %$5] ; # I\n; # (openErr Exe Sym)\n  call void @openErr(i64 %75, i64 %77)\n  unreachable\n$7:\n  %88 = phi i64 [%55, %$5] ; # Exe\n  %89 = phi i64 [%56, %$5] ; # X\n  %90 = phi i64 [%57, %$5] ; # Sym\n  %91 = phi i64 [%58, %$5] ; # Nm\n  %92 = phi i8* [%59, %$5] ; # Jnl\n  %93 = phi i8* [%60, %$5] ; # Log\n  %94 = phi i32 [%61, %$5] ; # C\n  %95 = phi i32* [%62, %$5] ; # FDs\n  %96 = phi i64 [%63, %$5] ; # Len\n  %97 = phi i8* [%64, %$5] ; # Buf\n  %98 = phi i8* [%65, %$5] ; # End\n  %99 = phi i8* [%66, %$5] ; # Db\n  %100 = phi i32 [%67, %$5] ; # I\n; # (closeOnExec Exe @)\n  call void @closeOnExec(i64 %88, i32 %73)\n; # (? (== C (inc 'I)))\n; # (inc 'I)\n  %101 = add i32 %100, 1\n; # (== C (inc 'I))\n  %102 = icmp eq i32 %94, %101\n  br i1 %102, label %$9, label %$8\n$8:\n  %103 = phi i64 [%88, %$7] ; # Exe\n  %104 = phi i64 [%89, %$7] ; # X\n  %105 = phi i64 [%90, %$7] ; # Sym\n  %106 = phi i64 [%91, %$7] ; # Nm\n  %107 = phi i8* [%92, %$7] ; # Jnl\n  %108 = phi i8* [%93, %$7] ; # Log\n  %109 = phi i32 [%94, %$7] ; # C\n  %110 = phi i32* [%95, %$7] ; # FDs\n  %111 = phi i64 [%96, %$7] ; # Len\n  %112 = phi i8* [%97, %$7] ; # Buf\n  %113 = phi i8* [%98, %$7] ; # End\n  %114 = phi i8* [%99, %$7] ; # Db\n  %115 = phi i32 [%101, %$7] ; # I\n; # (ofs Db (dbFile T))\n  %116 = getelementptr i8, i8* %114, i32 48\n  br label %$5\n$9:\n  %117 = phi i64 [%88, %$7] ; # Exe\n  %118 = phi i64 [%89, %$7] ; # X\n  %119 = phi i64 [%90, %$7] ; # Sym\n  %120 = phi i64 [%91, %$7] ; # Nm\n  %121 = phi i8* [%92, %$7] ; # Jnl\n  %122 = phi i8* [%93, %$7] ; # Log\n  %123 = phi i32 [%94, %$7] ; # C\n  %124 = phi i32* [%95, %$7] ; # FDs\n  %125 = phi i64 [%96, %$7] ; # Len\n  %126 = phi i8* [%97, %$7] ; # Buf\n  %127 = phi i8* [%98, %$7] ; # End\n  %128 = phi i8* [%99, %$7] ; # Db\n  %129 = phi i32 [%101, %$7] ; # I\n  %130 = phi i64 [0, %$7] ; # ->\n; # (prog1 (run (cdr X) (let (Db (val $DbFiles) I (i32 0)) (loop (let...\n; # (cdr X)\n  %131 = inttoptr i64 %118 to i64*\n  %132 = getelementptr i64, i64* %131, i32 1\n  %133 = load i64, i64* %132\n; # (run (cdr X) (let (Db (val $DbFiles) I (i32 0)) (loop (let Db: (d...\n  br label %$10\n$10:\n  %134 = phi i64 [%133, %$9], [%164, %$19] ; # Prg\n  %135 = inttoptr i64 %134 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n  %138 = load i64, i64* %135\n  %139 = and i64 %137, 15\n  %140 = icmp ne i64 %139, 0\n  br i1 %140, label %$13, label %$11\n$13:\n  %141 = phi i64 [%137, %$10] ; # Prg\n  %142 = phi i64 [%138, %$10] ; # X\n  %143 = and i64 %142, 6\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$16, label %$15\n$16:\n  %145 = phi i64 [%142, %$13] ; # X\n  br label %$14\n$15:\n  %146 = phi i64 [%142, %$13] ; # X\n  %147 = and i64 %146, 8\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$18, label %$17\n$18:\n  %149 = phi i64 [%146, %$15] ; # X\n  %150 = inttoptr i64 %149 to i64*\n  %151 = load i64, i64* %150\n  br label %$14\n$17:\n  %152 = phi i64 [%146, %$15] ; # X\n  %153 = call i64 @evList(i64 %152)\n  br label %$14\n$14:\n  %154 = phi i64 [%145, %$16], [%149, %$18], [%152, %$17] ; # X\n  %155 = phi i64 [%145, %$16], [%151, %$18], [%153, %$17] ; # ->\n  br label %$12\n$11:\n  %156 = phi i64 [%137, %$10] ; # Prg\n  %157 = phi i64 [%138, %$10] ; # X\n  %158 = and i64 %157, 15\n  %159 = icmp eq i64 %158, 0\n  br i1 %159, label %$20, label %$19\n$20:\n  %160 = phi i64 [%156, %$11] ; # Prg\n  %161 = phi i64 [%157, %$11] ; # X\n  %162 = call i64 @evList(i64 %161)\n  %163 = icmp ne i64 %162, 0\n  br label %$19\n$19:\n  %164 = phi i64 [%156, %$11], [%160, %$20] ; # Prg\n  %165 = phi i64 [%157, %$11], [%161, %$20] ; # X\n  %166 = phi i1 [0, %$11], [%163, %$20] ; # ->\n  br label %$10\n$12:\n  %167 = phi i64 [%141, %$14] ; # Prg\n  %168 = phi i64 [%155, %$14] ; # ->\n  ret i64 %168\n}\n\ndefine i64 @_Journal(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Sym (evSym X) Jnl (val $DbJnl) Log (val $DbLog)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (val $DbJnl)\n  %5 = load i8*, i8** @$DbJnl\n; # (val $DbLog)\n  %6 = load i8*, i8** @$DbLog\n; # (val $MaxBlkSize)\n  %7 = load i32, i32* @$MaxBlkSize\n; # (b8 (val $MaxBlkSize))\n  %8 = alloca i8, i32 %7\n; # (b8 BLK)\n  %9 = alloca i8, i64 6\n; # (stkChk Exe)\n  %10 = load i8*, i8** @$StkLimit\n  %11 = call i8* @llvm.stacksave()\n  %12 = icmp ugt i8* %10, %11\n  br i1 %12, label %$2, label %$3\n$2:\n  %13 = phi i64 [%0, %$1] ; # Exe\n  call void @stkErr(i64 %13)\n  unreachable\n$3:\n  %14 = phi i64 [%0, %$1] ; # Exe\n; # (when (t? Sym) (set $DbJnl null $DbLog null) (setq Sym (evSym (sh...\n; # (t? Sym)\n  %15 = icmp eq i64 %4, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %15, label %$4, label %$5\n$4:\n  %16 = phi i64 [%0, %$3] ; # Exe\n  %17 = phi i64 [%3, %$3] ; # X\n  %18 = phi i64 [%4, %$3] ; # Sym\n  %19 = phi i8* [%5, %$3] ; # Jnl\n  %20 = phi i8* [%6, %$3] ; # Log\n  %21 = phi i8* [%8, %$3] ; # Buf\n  %22 = phi i8* [%9, %$3] ; # Blk\n; # (set $DbJnl null $DbLog null)\n  store i8* null, i8** @$DbJnl\n  store i8* null, i8** @$DbLog\n; # (shift X)\n  %23 = inttoptr i64 %17 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n; # (evSym (shift X))\n  %26 = call i64 @evSym(i64 %25)\n  br label %$5\n$5:\n  %27 = phi i64 [%0, %$3], [%16, %$4] ; # Exe\n  %28 = phi i64 [%3, %$3], [%25, %$4] ; # X\n  %29 = phi i64 [%4, %$3], [%26, %$4] ; # Sym\n  %30 = phi i8* [%5, %$3], [%19, %$4] ; # Jnl\n  %31 = phi i8* [%6, %$3], [%20, %$4] ; # Log\n  %32 = phi i8* [%8, %$3], [%21, %$4] ; # Buf\n  %33 = phi i8* [%9, %$3], [%22, %$4] ; # Blk\n; # (loop (let (Nm (xName Sym) Fp (fopen (pathString Nm (b8 (pathSize...\n  br label %$6\n$6:\n  %34 = phi i64 [%27, %$5], [%254, %$25] ; # Exe\n  %35 = phi i64 [%28, %$5], [%255, %$25] ; # X\n  %36 = phi i64 [%29, %$5], [%263, %$25] ; # Sym\n  %37 = phi i8* [%30, %$5], [%257, %$25] ; # Jnl\n  %38 = phi i8* [%31, %$5], [%258, %$25] ; # Log\n  %39 = phi i8* [%32, %$5], [%259, %$25] ; # Buf\n  %40 = phi i8* [%33, %$5], [%260, %$25] ; # Blk\n; # (let (Nm (xName Sym) Fp (fopen (pathString Nm (b8 (pathSize Nm)))...\n; # (xName Sym)\n  %41 = call i64 @xName(i64 %36)\n; # (pathSize Nm)\n  %42 = call i64 @pathSize(i64 %41)\n; # (b8 (pathSize Nm))\n  %43 = alloca i8, i64 %42\n; # (pathString Nm (b8 (pathSize Nm)))\n  %44 = call i8* @pathString(i64 %41, i8* %43)\n; # (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"r\"))\n  %45 = call i8* @fopen(i8* %44, i8* bitcast ([2 x i8]* @$65 to i8*))\n; # (unless Fp (openErr Exe Sym))\n  %46 = icmp ne i8* %45, null\n  br i1 %46, label %$8, label %$7\n$7:\n  %47 = phi i64 [%34, %$6] ; # Exe\n  %48 = phi i64 [%35, %$6] ; # X\n  %49 = phi i64 [%36, %$6] ; # Sym\n  %50 = phi i8* [%37, %$6] ; # Jnl\n  %51 = phi i8* [%38, %$6] ; # Log\n  %52 = phi i8* [%39, %$6] ; # Buf\n  %53 = phi i8* [%40, %$6] ; # Blk\n  %54 = phi i64 [%41, %$6] ; # Nm\n  %55 = phi i8* [%45, %$6] ; # Fp\n; # (openErr Exe Sym)\n  call void @openErr(i64 %47, i64 %49)\n  unreachable\n$8:\n  %56 = phi i64 [%34, %$6] ; # Exe\n  %57 = phi i64 [%35, %$6] ; # X\n  %58 = phi i64 [%36, %$6] ; # Sym\n  %59 = phi i8* [%37, %$6] ; # Jnl\n  %60 = phi i8* [%38, %$6] ; # Log\n  %61 = phi i8* [%39, %$6] ; # Buf\n  %62 = phi i8* [%40, %$6] ; # Blk\n  %63 = phi i64 [%41, %$6] ; # Nm\n  %64 = phi i8* [%45, %$6] ; # Fp\n; # (while (ge0 (getc_unlocked Fp)) (let Siz @ (unless (== (fread Blk...\n  br label %$9\n$9:\n  %65 = phi i64 [%56, %$8], [%229, %$16] ; # Exe\n  %66 = phi i64 [%57, %$8], [%230, %$16] ; # X\n  %67 = phi i64 [%58, %$8], [%231, %$16] ; # Sym\n  %68 = phi i8* [%59, %$8], [%232, %$16] ; # Jnl\n  %69 = phi i8* [%60, %$8], [%233, %$16] ; # Log\n  %70 = phi i8* [%61, %$8], [%234, %$16] ; # Buf\n  %71 = phi i8* [%62, %$8], [%235, %$16] ; # Blk\n  %72 = phi i64 [%63, %$8], [%236, %$16] ; # Nm\n  %73 = phi i8* [%64, %$8], [%237, %$16] ; # Fp\n; # (getc_unlocked Fp)\n  %74 = call i32 @getc_unlocked(i8* %73)\n; # (ge0 (getc_unlocked Fp))\n  %75 = icmp sge i32 %74, 0\n  br i1 %75, label %$10, label %$11\n$10:\n  %76 = phi i64 [%65, %$9] ; # Exe\n  %77 = phi i64 [%66, %$9] ; # X\n  %78 = phi i64 [%67, %$9] ; # Sym\n  %79 = phi i8* [%68, %$9] ; # Jnl\n  %80 = phi i8* [%69, %$9] ; # Log\n  %81 = phi i8* [%70, %$9] ; # Buf\n  %82 = phi i8* [%71, %$9] ; # Blk\n  %83 = phi i64 [%72, %$9] ; # Nm\n  %84 = phi i8* [%73, %$9] ; # Fp\n; # (let Siz @ (unless (== (fread Blk 2 1 Fp) 1) (jnlErr Exe)) (if (d...\n; # (unless (== (fread Blk 2 1 Fp) 1) (jnlErr Exe))\n; # (fread Blk 2 1 Fp)\n  %85 = call i32 @fread(i8* %82, i64 2, i64 1, i8* %84)\n; # (== (fread Blk 2 1 Fp) 1)\n  %86 = icmp eq i32 %85, 1\n  br i1 %86, label %$13, label %$12\n$12:\n  %87 = phi i64 [%76, %$10] ; # Exe\n  %88 = phi i64 [%77, %$10] ; # X\n  %89 = phi i64 [%78, %$10] ; # Sym\n  %90 = phi i8* [%79, %$10] ; # Jnl\n  %91 = phi i8* [%80, %$10] ; # Log\n  %92 = phi i8* [%81, %$10] ; # Buf\n  %93 = phi i8* [%82, %$10] ; # Blk\n  %94 = phi i64 [%83, %$10] ; # Nm\n  %95 = phi i8* [%84, %$10] ; # Fp\n  %96 = phi i32 [%74, %$10] ; # Siz\n; # (jnlErr Exe)\n  call void @jnlErr(i64 %87)\n  unreachable\n$13:\n  %97 = phi i64 [%76, %$10] ; # Exe\n  %98 = phi i64 [%77, %$10] ; # X\n  %99 = phi i64 [%78, %$10] ; # Sym\n  %100 = phi i8* [%79, %$10] ; # Jnl\n  %101 = phi i8* [%80, %$10] ; # Log\n  %102 = phi i8* [%81, %$10] ; # Buf\n  %103 = phi i8* [%82, %$10] ; # Blk\n  %104 = phi i64 [%83, %$10] ; # Nm\n  %105 = phi i8* [%84, %$10] ; # Fp\n  %106 = phi i32 [%74, %$10] ; # Siz\n; # (if (dbfBuf Blk) (let Db: (dbFile @) (when (== Siz BLKSIZE) (setq...\n; # (dbfBuf Blk)\n  %107 = call i8* @dbfBuf(i8* %103)\n  %108 = icmp ne i8* %107, null\n  br i1 %108, label %$14, label %$15\n$14:\n  %109 = phi i64 [%97, %$13] ; # Exe\n  %110 = phi i64 [%98, %$13] ; # X\n  %111 = phi i64 [%99, %$13] ; # Sym\n  %112 = phi i8* [%100, %$13] ; # Jnl\n  %113 = phi i8* [%101, %$13] ; # Log\n  %114 = phi i8* [%102, %$13] ; # Buf\n  %115 = phi i8* [%103, %$13] ; # Blk\n  %116 = phi i64 [%104, %$13] ; # Nm\n  %117 = phi i8* [%105, %$13] ; # Fp\n  %118 = phi i32 [%106, %$13] ; # Siz\n; # (let Db: (dbFile @) (when (== Siz BLKSIZE) (setq Siz (Db: siz))) ...\n; # (when (== Siz BLKSIZE) (setq Siz (Db: siz)))\n; # (== Siz BLKSIZE)\n  %119 = icmp eq i32 %118, 64\n  br i1 %119, label %$17, label %$18\n$17:\n  %120 = phi i64 [%109, %$14] ; # Exe\n  %121 = phi i64 [%110, %$14] ; # X\n  %122 = phi i64 [%111, %$14] ; # Sym\n  %123 = phi i8* [%112, %$14] ; # Jnl\n  %124 = phi i8* [%113, %$14] ; # Log\n  %125 = phi i8* [%114, %$14] ; # Buf\n  %126 = phi i8* [%115, %$14] ; # Blk\n  %127 = phi i64 [%116, %$14] ; # Nm\n  %128 = phi i8* [%117, %$14] ; # Fp\n  %129 = phi i32 [%118, %$14] ; # Siz\n; # (Db: siz)\n  %130 = getelementptr i8, i8* %107, i32 12\n  %131 = bitcast i8* %130 to i32*\n  %132 = load i32, i32* %131\n  br label %$18\n$18:\n  %133 = phi i64 [%109, %$14], [%120, %$17] ; # Exe\n  %134 = phi i64 [%110, %$14], [%121, %$17] ; # X\n  %135 = phi i64 [%111, %$14], [%122, %$17] ; # Sym\n  %136 = phi i8* [%112, %$14], [%123, %$17] ; # Jnl\n  %137 = phi i8* [%113, %$14], [%124, %$17] ; # Log\n  %138 = phi i8* [%114, %$14], [%125, %$17] ; # Buf\n  %139 = phi i8* [%115, %$14], [%126, %$17] ; # Blk\n  %140 = phi i64 [%116, %$14], [%127, %$17] ; # Nm\n  %141 = phi i8* [%117, %$14], [%128, %$17] ; # Fp\n  %142 = phi i32 [%118, %$14], [%132, %$17] ; # Siz\n; # (unless Siz (setq Siz (Db: siz)))\n  %143 = icmp ne i32 %142, 0\n  br i1 %143, label %$20, label %$19\n$19:\n  %144 = phi i64 [%133, %$18] ; # Exe\n  %145 = phi i64 [%134, %$18] ; # X\n  %146 = phi i64 [%135, %$18] ; # Sym\n  %147 = phi i8* [%136, %$18] ; # Jnl\n  %148 = phi i8* [%137, %$18] ; # Log\n  %149 = phi i8* [%138, %$18] ; # Buf\n  %150 = phi i8* [%139, %$18] ; # Blk\n  %151 = phi i64 [%140, %$18] ; # Nm\n  %152 = phi i8* [%141, %$18] ; # Fp\n  %153 = phi i32 [%142, %$18] ; # Siz\n; # (Db: siz)\n  %154 = getelementptr i8, i8* %107, i32 12\n  %155 = bitcast i8* %154 to i32*\n  %156 = load i32, i32* %155\n  br label %$20\n$20:\n  %157 = phi i64 [%133, %$18], [%144, %$19] ; # Exe\n  %158 = phi i64 [%134, %$18], [%145, %$19] ; # X\n  %159 = phi i64 [%135, %$18], [%146, %$19] ; # Sym\n  %160 = phi i8* [%136, %$18], [%147, %$19] ; # Jnl\n  %161 = phi i8* [%137, %$18], [%148, %$19] ; # Log\n  %162 = phi i8* [%138, %$18], [%149, %$19] ; # Buf\n  %163 = phi i8* [%139, %$18], [%150, %$19] ; # Blk\n  %164 = phi i64 [%140, %$18], [%151, %$19] ; # Nm\n  %165 = phi i8* [%141, %$18], [%152, %$19] ; # Fp\n  %166 = phi i32 [%142, %$18], [%156, %$19] ; # Siz\n; # (unless (and (== (fread Blk BLK 1 Fp) 1) (== (fread Buf (i64 Siz)...\n; # (and (== (fread Blk BLK 1 Fp) 1) (== (fread Buf (i64 Siz) 1 Fp) 1...\n; # (fread Blk BLK 1 Fp)\n  %167 = call i32 @fread(i8* %163, i64 6, i64 1, i8* %165)\n; # (== (fread Blk BLK 1 Fp) 1)\n  %168 = icmp eq i32 %167, 1\n  br i1 %168, label %$22, label %$21\n$22:\n  %169 = phi i64 [%157, %$20] ; # Exe\n  %170 = phi i64 [%158, %$20] ; # X\n  %171 = phi i64 [%159, %$20] ; # Sym\n  %172 = phi i8* [%160, %$20] ; # Jnl\n  %173 = phi i8* [%161, %$20] ; # Log\n  %174 = phi i8* [%162, %$20] ; # Buf\n  %175 = phi i8* [%163, %$20] ; # Blk\n  %176 = phi i64 [%164, %$20] ; # Nm\n  %177 = phi i8* [%165, %$20] ; # Fp\n  %178 = phi i32 [%166, %$20] ; # Siz\n; # (i64 Siz)\n  %179 = sext i32 %178 to i64\n; # (fread Buf (i64 Siz) 1 Fp)\n  %180 = call i32 @fread(i8* %174, i64 %179, i64 1, i8* %177)\n; # (== (fread Buf (i64 Siz) 1 Fp) 1)\n  %181 = icmp eq i32 %180, 1\n  br label %$21\n$21:\n  %182 = phi i64 [%157, %$20], [%169, %$22] ; # Exe\n  %183 = phi i64 [%158, %$20], [%170, %$22] ; # X\n  %184 = phi i64 [%159, %$20], [%171, %$22] ; # Sym\n  %185 = phi i8* [%160, %$20], [%172, %$22] ; # Jnl\n  %186 = phi i8* [%161, %$20], [%173, %$22] ; # Log\n  %187 = phi i8* [%162, %$20], [%174, %$22] ; # Buf\n  %188 = phi i8* [%163, %$20], [%175, %$22] ; # Blk\n  %189 = phi i64 [%164, %$20], [%176, %$22] ; # Nm\n  %190 = phi i8* [%165, %$20], [%177, %$22] ; # Fp\n  %191 = phi i32 [%166, %$20], [%178, %$22] ; # Siz\n  %192 = phi i1 [0, %$20], [%181, %$22] ; # ->\n  br i1 %192, label %$24, label %$23\n$23:\n  %193 = phi i64 [%182, %$21] ; # Exe\n  %194 = phi i64 [%183, %$21] ; # X\n  %195 = phi i64 [%184, %$21] ; # Sym\n  %196 = phi i8* [%185, %$21] ; # Jnl\n  %197 = phi i8* [%186, %$21] ; # Log\n  %198 = phi i8* [%187, %$21] ; # Buf\n  %199 = phi i8* [%188, %$21] ; # Blk\n  %200 = phi i64 [%189, %$21] ; # Nm\n  %201 = phi i8* [%190, %$21] ; # Fp\n  %202 = phi i32 [%191, %$21] ; # Siz\n; # (jnlErr Exe)\n  call void @jnlErr(i64 %193)\n  unreachable\n$24:\n  %203 = phi i64 [%182, %$21] ; # Exe\n  %204 = phi i64 [%183, %$21] ; # X\n  %205 = phi i64 [%184, %$21] ; # Sym\n  %206 = phi i8* [%185, %$21] ; # Jnl\n  %207 = phi i8* [%186, %$21] ; # Log\n  %208 = phi i8* [%187, %$21] ; # Buf\n  %209 = phi i8* [%188, %$21] ; # Blk\n  %210 = phi i64 [%189, %$21] ; # Nm\n  %211 = phi i8* [%190, %$21] ; # Fp\n  %212 = phi i32 [%191, %$21] ; # Siz\n; # (getAdr Blk)\n  %213 = call i64 @getAdr(i8* %209)\n; # (Db: sh)\n  %214 = getelementptr i8, i8* %107, i32 8\n  %215 = bitcast i8* %214 to i32*\n  %216 = load i32, i32* %215\n; # (i64 (Db: sh))\n  %217 = sext i32 %216 to i64\n; # (shl (getAdr Blk) (i64 (Db: sh)))\n  %218 = shl i64 %213, %217\n; # (blkPoke (shl (getAdr Blk) (i64 (Db: sh))) Buf Siz)\n  call void @blkPoke(i64 %218, i8* %208, i32 %212)\n  br label %$16\n$15:\n  %219 = phi i64 [%97, %$13] ; # Exe\n  %220 = phi i64 [%98, %$13] ; # X\n  %221 = phi i64 [%99, %$13] ; # Sym\n  %222 = phi i8* [%100, %$13] ; # Jnl\n  %223 = phi i8* [%101, %$13] ; # Log\n  %224 = phi i8* [%102, %$13] ; # Buf\n  %225 = phi i8* [%103, %$13] ; # Blk\n  %226 = phi i64 [%104, %$13] ; # Nm\n  %227 = phi i8* [%105, %$13] ; # Fp\n  %228 = phi i32 [%106, %$13] ; # Siz\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %219)\n  unreachable\n$16:\n  %229 = phi i64 [%203, %$24] ; # Exe\n  %230 = phi i64 [%204, %$24] ; # X\n  %231 = phi i64 [%205, %$24] ; # Sym\n  %232 = phi i8* [%206, %$24] ; # Jnl\n  %233 = phi i8* [%207, %$24] ; # Log\n  %234 = phi i8* [%208, %$24] ; # Buf\n  %235 = phi i8* [%209, %$24] ; # Blk\n  %236 = phi i64 [%210, %$24] ; # Nm\n  %237 = phi i8* [%211, %$24] ; # Fp\n  %238 = phi i32 [%212, %$24] ; # Siz\n  br label %$9\n$11:\n  %239 = phi i64 [%65, %$9] ; # Exe\n  %240 = phi i64 [%66, %$9] ; # X\n  %241 = phi i64 [%67, %$9] ; # Sym\n  %242 = phi i8* [%68, %$9] ; # Jnl\n  %243 = phi i8* [%69, %$9] ; # Log\n  %244 = phi i8* [%70, %$9] ; # Buf\n  %245 = phi i8* [%71, %$9] ; # Blk\n  %246 = phi i64 [%72, %$9] ; # Nm\n  %247 = phi i8* [%73, %$9] ; # Fp\n; # (fclose Fp)\n  %248 = call i32 @fclose(i8* %247)\n; # (? (atom (shift X)))\n; # (shift X)\n  %249 = inttoptr i64 %240 to i64*\n  %250 = getelementptr i64, i64* %249, i32 1\n  %251 = load i64, i64* %250\n; # (atom (shift X))\n  %252 = and i64 %251, 15\n  %253 = icmp ne i64 %252, 0\n  br i1 %253, label %$26, label %$25\n$25:\n  %254 = phi i64 [%239, %$11] ; # Exe\n  %255 = phi i64 [%251, %$11] ; # X\n  %256 = phi i64 [%241, %$11] ; # Sym\n  %257 = phi i8* [%242, %$11] ; # Jnl\n  %258 = phi i8* [%243, %$11] ; # Log\n  %259 = phi i8* [%244, %$11] ; # Buf\n  %260 = phi i8* [%245, %$11] ; # Blk\n  %261 = phi i64 [%246, %$11] ; # Nm\n  %262 = phi i8* [%247, %$11] ; # Fp\n; # (evSym X)\n  %263 = call i64 @evSym(i64 %255)\n  br label %$6\n$26:\n  %264 = phi i64 [%239, %$11] ; # Exe\n  %265 = phi i64 [%251, %$11] ; # X\n  %266 = phi i64 [%241, %$11] ; # Sym\n  %267 = phi i8* [%242, %$11] ; # Jnl\n  %268 = phi i8* [%243, %$11] ; # Log\n  %269 = phi i8* [%244, %$11] ; # Buf\n  %270 = phi i8* [%245, %$11] ; # Blk\n  %271 = phi i64 [0, %$11] ; # ->\n; # (set $DbLog Log $DbJnl Jnl)\n  store i8* %268, i8** @$DbLog\n  store i8* %267, i8** @$DbJnl\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n}\n\ndefine i64 @_Id(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (if (cnt? Y) (extern (if (nil?...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (if (cnt? Y) (extern (if (nil? (eval (car X))) (extNm 0 (int Y)) ...\n; # (cnt? Y)\n  %21 = and i64 %20, 2\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (if (nil? (eval (car X))) (extNm 0 (int Y)) (extNm (dec (i32 (int...\n; # (car X)\n  %26 = inttoptr i64 %24 to i64*\n  %27 = load i64, i64* %26\n; # (eval (car X))\n  %28 = and i64 %27, 6\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$12, label %$11\n$12:\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$10\n$11:\n  %31 = phi i64 [%27, %$7] ; # X\n  %32 = and i64 %31, 8\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$14, label %$13\n$14:\n  %34 = phi i64 [%31, %$11] ; # X\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n  br label %$10\n$13:\n  %37 = phi i64 [%31, %$11] ; # X\n  %38 = call i64 @evList(i64 %37)\n  br label %$10\n$10:\n  %39 = phi i64 [%30, %$12], [%34, %$14], [%37, %$13] ; # X\n  %40 = phi i64 [%30, %$12], [%36, %$14], [%38, %$13] ; # ->\n; # (nil? (eval (car X)))\n  %41 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %41, label %$15, label %$16\n$15:\n  %42 = phi i64 [%23, %$10] ; # Exe\n  %43 = phi i64 [%24, %$10] ; # X\n  %44 = phi i64 [%25, %$10] ; # Y\n; # (int Y)\n  %45 = lshr i64 %44, 4\n; # (extNm 0 (int Y))\n  %46 = call i64 @extNm(i32 0, i64 %45)\n  br label %$17\n$16:\n  %47 = phi i64 [%23, %$10] ; # Exe\n  %48 = phi i64 [%24, %$10] ; # X\n  %49 = phi i64 [%25, %$10] ; # Y\n; # (int Y)\n  %50 = lshr i64 %49, 4\n; # (i32 (int Y))\n  %51 = trunc i64 %50 to i32\n; # (dec (i32 (int Y)))\n  %52 = sub i32 %51, 1\n; # (xCnt Exe @)\n  %53 = call i64 @xCnt(i64 %47, i64 %40)\n; # (extNm (dec (i32 (int Y))) (xCnt Exe @))\n  %54 = call i64 @extNm(i32 %52, i64 %53)\n  br label %$17\n$17:\n  %55 = phi i64 [%42, %$15], [%47, %$16] ; # Exe\n  %56 = phi i64 [%43, %$15], [%48, %$16] ; # X\n  %57 = phi i64 [%44, %$15], [%49, %$16] ; # Y\n  %58 = phi i64 [%46, %$15], [%54, %$16] ; # ->\n; # (extern (if (nil? (eval (car X))) (extNm 0 (int Y)) (extNm (dec (...\n  %59 = call i64 @extern(i64 %58)\n  br label %$9\n$8:\n  %60 = phi i64 [%0, %$2] ; # Exe\n  %61 = phi i64 [%6, %$2] ; # X\n  %62 = phi i64 [%20, %$2] ; # Y\n; # (needSymb Exe Y)\n  %63 = xor i64 %62, 8\n  %64 = and i64 %63, 14\n  %65 = icmp eq i64 %64, 0\n  br i1 %65, label %$19, label %$18\n$18:\n  %66 = phi i64 [%62, %$8] ; # X\n  %67 = phi i64 [%60, %$8] ; # Exe\n  call void @symErr(i64 %67, i64 %66)\n  unreachable\n$19:\n  %68 = phi i64 [%62, %$8] ; # X\n  %69 = phi i64 [%60, %$8] ; # Exe\n; # (unless (sym? (val (tail (needSymb Exe Y)))) (extErr Exe Y))\n; # (needSymb Exe Y)\n  %70 = xor i64 %62, 8\n  %71 = and i64 %70, 14\n  %72 = icmp eq i64 %71, 0\n  br i1 %72, label %$21, label %$20\n$20:\n  %73 = phi i64 [%62, %$19] ; # X\n  %74 = phi i64 [%60, %$19] ; # Exe\n  call void @symErr(i64 %74, i64 %73)\n  unreachable\n$21:\n  %75 = phi i64 [%62, %$19] ; # X\n  %76 = phi i64 [%60, %$19] ; # Exe\n; # (tail (needSymb Exe Y))\n  %77 = add i64 %75, -8\n; # (val (tail (needSymb Exe Y)))\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n; # (sym? (val (tail (needSymb Exe Y))))\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$23, label %$22\n$22:\n  %82 = phi i64 [%60, %$21] ; # Exe\n  %83 = phi i64 [%61, %$21] ; # X\n  %84 = phi i64 [%62, %$21] ; # Y\n; # (extErr Exe Y)\n  call void @extErr(i64 %82, i64 %84)\n  unreachable\n$23:\n  %85 = phi i64 [%60, %$21] ; # Exe\n  %86 = phi i64 [%61, %$21] ; # X\n  %87 = phi i64 [%62, %$21] ; # Y\n; # (let (Nm (name (& (val (tail Y)) -9)) Z (cnt (objId Nm))) (if (ni...\n; # (tail Y)\n  %88 = add i64 %87, -8\n; # (val (tail Y))\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n; # (& (val (tail Y)) -9)\n  %91 = and i64 %90, -9\n; # (name (& (val (tail Y)) -9))\n  br label %$24\n$24:\n  %92 = phi i64 [%91, %$23], [%98, %$25] ; # Tail\n  %93 = and i64 %92, 6\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$26, label %$25\n$25:\n  %95 = phi i64 [%92, %$24] ; # Tail\n  %96 = inttoptr i64 %95 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  %98 = load i64, i64* %97\n  br label %$24\n$26:\n  %99 = phi i64 [%92, %$24] ; # Tail\n; # (objId Nm)\n  %100 = call i64 @objId(i64 %99)\n; # (cnt (objId Nm))\n  %101 = shl i64 %100, 4\n  %102 = or i64 %101, 2\n; # (if (nil? (eval (car X))) Z (cons (cnt (i64 (inc (objFile Nm)))) ...\n; # (car X)\n  %103 = inttoptr i64 %86 to i64*\n  %104 = load i64, i64* %103\n; # (eval (car X))\n  %105 = and i64 %104, 6\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$29, label %$28\n$29:\n  %107 = phi i64 [%104, %$26] ; # X\n  br label %$27\n$28:\n  %108 = phi i64 [%104, %$26] ; # X\n  %109 = and i64 %108, 8\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$31, label %$30\n$31:\n  %111 = phi i64 [%108, %$28] ; # X\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n  br label %$27\n$30:\n  %114 = phi i64 [%108, %$28] ; # X\n  %115 = call i64 @evList(i64 %114)\n  br label %$27\n$27:\n  %116 = phi i64 [%107, %$29], [%111, %$31], [%114, %$30] ; # X\n  %117 = phi i64 [%107, %$29], [%113, %$31], [%115, %$30] ; # ->\n; # (nil? (eval (car X)))\n  %118 = icmp eq i64 %117, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %118, label %$32, label %$33\n$32:\n  %119 = phi i64 [%85, %$27] ; # Exe\n  %120 = phi i64 [%86, %$27] ; # X\n  %121 = phi i64 [%87, %$27] ; # Y\n  %122 = phi i64 [%99, %$27] ; # Nm\n  %123 = phi i64 [%102, %$27] ; # Z\n  br label %$34\n$33:\n  %124 = phi i64 [%85, %$27] ; # Exe\n  %125 = phi i64 [%86, %$27] ; # X\n  %126 = phi i64 [%87, %$27] ; # Y\n  %127 = phi i64 [%99, %$27] ; # Nm\n  %128 = phi i64 [%102, %$27] ; # Z\n; # (objFile Nm)\n  %129 = call i32 @objFile(i64 %127)\n; # (inc (objFile Nm))\n  %130 = add i32 %129, 1\n; # (i64 (inc (objFile Nm)))\n  %131 = sext i32 %130 to i64\n; # (cnt (i64 (inc (objFile Nm))))\n  %132 = shl i64 %131, 4\n  %133 = or i64 %132, 2\n; # (cons (cnt (i64 (inc (objFile Nm)))) Z)\n  %134 = call i64 @cons(i64 %133, i64 %128)\n  br label %$34\n$34:\n  %135 = phi i64 [%119, %$32], [%124, %$33] ; # Exe\n  %136 = phi i64 [%120, %$32], [%125, %$33] ; # X\n  %137 = phi i64 [%121, %$32], [%126, %$33] ; # Y\n  %138 = phi i64 [%122, %$32], [%127, %$33] ; # Nm\n  %139 = phi i64 [%123, %$32], [%128, %$33] ; # Z\n  %140 = phi i64 [%123, %$32], [%134, %$33] ; # ->\n  br label %$9\n$9:\n  %141 = phi i64 [%55, %$17], [%135, %$34] ; # Exe\n  %142 = phi i64 [%56, %$17], [%136, %$34] ; # X\n  %143 = phi i64 [%57, %$17], [%137, %$34] ; # Y\n  %144 = phi i64 [%59, %$17], [%140, %$34] ; # ->\n  ret i64 %144\n}\n\ndefine i64 @_Blk(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Db: (dbFile (b8+ (dbFile T)))) (Db: fd (i32 (ev...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (b8+ (dbFile T))\n  %4 = alloca i8, i64 48, align 8\n; # (Db: fd (i32 (evCnt Exe X)))\n  %5 = bitcast i8* %4 to i32*\n  %6 = call i64 @evCnt(i64 %0, i64 %3)\n  %7 = trunc i64 %6 to i32\n  store i32 %7, i32* %5\n; # (if (=0 (evCnt Exe (shift X))) (let Buf (b8 BLK) (unless (== (+ B...\n; # (shift X)\n  %8 = inttoptr i64 %3 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  %10 = load i64, i64* %9\n; # (evCnt Exe (shift X))\n  %11 = call i64 @evCnt(i64 %0, i64 %10)\n; # (=0 (evCnt Exe (shift X)))\n  %12 = icmp eq i64 %11, 0\n  br i1 %12, label %$2, label %$3\n$2:\n  %13 = phi i64 [%0, %$1] ; # Exe\n  %14 = phi i64 [%10, %$1] ; # X\n; # (let Buf (b8 BLK) (unless (== (+ BLK 1) (pread (Db: fd) Buf (+ BL...\n; # (b8 BLK)\n  %15 = alloca i8, i64 6\n; # (unless (== (+ BLK 1) (pread (Db: fd) Buf (+ BLK 1) BLK)) (dbRdEr...\n; # (+ BLK 1)\n; # (Db: fd)\n  %16 = bitcast i8* %4 to i32*\n  %17 = load i32, i32* %16\n; # (+ BLK 1)\n; # (pread (Db: fd) Buf (+ BLK 1) BLK)\n  %18 = call i64 @pread(i32 %17, i8* %15, i64 7, i64 6)\n; # (== (+ BLK 1) (pread (Db: fd) Buf (+ BLK 1) BLK))\n  %19 = icmp eq i64 7, %18\n  br i1 %19, label %$6, label %$5\n$5:\n  %20 = phi i64 [%13, %$2] ; # Exe\n  %21 = phi i64 [%14, %$2] ; # X\n  %22 = phi i8* [%15, %$2] ; # Buf\n; # (dbRdErr)\n  call void @dbRdErr()\n  unreachable\n$6:\n  %23 = phi i64 [%13, %$2] ; # Exe\n  %24 = phi i64 [%14, %$2] ; # X\n  %25 = phi i8* [%15, %$2] ; # Buf\n; # (getAdr Buf)\n  %26 = call i64 @getAdr(i8* %25)\n; # (shr (getAdr Buf) 6)\n  %27 = lshr i64 %26, 6\n; # (cnt (shr (getAdr Buf) 6))\n  %28 = shl i64 %27, 4\n  %29 = or i64 %28, 2\n; # (ofs Buf BLK)\n  %30 = getelementptr i8, i8* %25, i32 6\n; # (val (ofs Buf BLK))\n  %31 = load i8, i8* %30\n; # (i64 (val (ofs Buf BLK)))\n  %32 = zext i8 %31 to i64\n; # (cnt (i64 (val (ofs Buf BLK))))\n  %33 = shl i64 %32, 4\n  %34 = or i64 %33, 2\n; # (cons (cnt (shr (getAdr Buf) 6)) (cnt (i64 (val (ofs Buf BLK)))))...\n  %35 = call i64 @cons(i64 %29, i64 %34)\n  br label %$4\n$3:\n  %36 = phi i64 [%0, %$1] ; # Exe\n  %37 = phi i64 [%10, %$1] ; # X\n; # (let (N (shl @ 6) P (val $DbBlock) Siz (shl (i32 BLKSIZE) (Db: sh...\n; # (shl @ 6)\n  %38 = shl i64 %11, 6\n; # (val $DbBlock)\n  %39 = load i8*, i8** @$DbBlock\n; # (i32 BLKSIZE)\n; # (Db: sh (i32 (evCnt Exe (shift X))))\n  %40 = getelementptr i8, i8* %4, i32 8\n  %41 = bitcast i8* %40 to i32*\n  %42 = inttoptr i64 %37 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n  %45 = call i64 @evCnt(i64 %36, i64 %44)\n  %46 = trunc i64 %45 to i32\n  store i32 %46, i32* %41\n; # (shl (i32 BLKSIZE) (Db: sh (i32 (evCnt Exe (shift X)))))\n  %47 = shl i32 64, %46\n; # (if (atom (shift X)) -1 (evCnt Exe @))\n; # (shift X)\n  %48 = inttoptr i64 %44 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n; # (atom (shift X))\n  %51 = and i64 %50, 15\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$7, label %$8\n$7:\n  %53 = phi i64 [%36, %$3] ; # Exe\n  %54 = phi i64 [%50, %$3] ; # X\n  %55 = phi i64 [%38, %$3] ; # N\n  %56 = phi i8* [%39, %$3] ; # P\n  %57 = phi i32 [%47, %$3] ; # Siz\n  br label %$9\n$8:\n  %58 = phi i64 [%36, %$3] ; # Exe\n  %59 = phi i64 [%50, %$3] ; # X\n  %60 = phi i64 [%38, %$3] ; # N\n  %61 = phi i8* [%39, %$3] ; # P\n  %62 = phi i32 [%47, %$3] ; # Siz\n; # (evCnt Exe @)\n  %63 = call i64 @evCnt(i64 %58, i64 %50)\n  br label %$9\n$9:\n  %64 = phi i64 [%53, %$7], [%58, %$8] ; # Exe\n  %65 = phi i64 [%54, %$7], [%59, %$8] ; # X\n  %66 = phi i64 [%55, %$7], [%60, %$8] ; # N\n  %67 = phi i8* [%56, %$7], [%61, %$8] ; # P\n  %68 = phi i32 [%57, %$7], [%62, %$8] ; # Siz\n  %69 = phi i64 [-1, %$7], [%63, %$8] ; # ->\n; # (i32 (if (atom (shift X)) -1 (evCnt Exe @)))\n  %70 = trunc i64 %69 to i32\n; # (when (> (Db: siz Siz) (val $MaxBlkSize)) (set $MaxBlkSize Siz $D...\n; # (Db: siz Siz)\n  %71 = getelementptr i8, i8* %4, i32 12\n  %72 = bitcast i8* %71 to i32*\n  store i32 %68, i32* %72\n; # (val $MaxBlkSize)\n  %73 = load i32, i32* @$MaxBlkSize\n; # (> (Db: siz Siz) (val $MaxBlkSize))\n  %74 = icmp sgt i32 %68, %73\n  br i1 %74, label %$10, label %$11\n$10:\n  %75 = phi i64 [%64, %$9] ; # Exe\n  %76 = phi i64 [%65, %$9] ; # X\n  %77 = phi i64 [%66, %$9] ; # N\n  %78 = phi i8* [%67, %$9] ; # P\n  %79 = phi i32 [%68, %$9] ; # Siz\n  %80 = phi i32 [%70, %$9] ; # Fd\n; # (set $MaxBlkSize Siz $DbBlock (alloc P (i64 Siz)))\n  store i32 %79, i32* @$MaxBlkSize\n; # (i64 Siz)\n  %81 = sext i32 %79 to i64\n; # (alloc P (i64 Siz))\n  %82 = call i8* @alloc(i8* %78, i64 %81)\n  store i8* %82, i8** @$DbBlock\n  br label %$11\n$11:\n  %83 = phi i64 [%64, %$9], [%75, %$10] ; # Exe\n  %84 = phi i64 [%65, %$9], [%76, %$10] ; # X\n  %85 = phi i64 [%66, %$9], [%77, %$10] ; # N\n  %86 = phi i8* [%67, %$9], [%78, %$10] ; # P\n  %87 = phi i32 [%68, %$9], [%79, %$10] ; # Siz\n  %88 = phi i32 [%70, %$9], [%80, %$10] ; # Fd\n; # (set $DbFile (Db:))\n; # (Db:)\n  store i8* %4, i8** @$DbFile\n; # (when (ge0 Fd) (rdLockWait Fd 1))\n; # (ge0 Fd)\n  %89 = icmp sge i32 %88, 0\n  br i1 %89, label %$12, label %$13\n$12:\n  %90 = phi i64 [%83, %$11] ; # Exe\n  %91 = phi i64 [%84, %$11] ; # X\n  %92 = phi i64 [%85, %$11] ; # N\n  %93 = phi i8* [%86, %$11] ; # P\n  %94 = phi i32 [%87, %$11] ; # Siz\n  %95 = phi i32 [%88, %$11] ; # Fd\n; # (rdLockWait Fd 1)\n  call void @rdLockWait(i32 %95, i64 1)\n  br label %$13\n$13:\n  %96 = phi i64 [%83, %$11], [%90, %$12] ; # Exe\n  %97 = phi i64 [%84, %$11], [%91, %$12] ; # X\n  %98 = phi i64 [%85, %$11], [%92, %$12] ; # N\n  %99 = phi i8* [%86, %$11], [%93, %$12] ; # P\n  %100 = phi i32 [%87, %$11], [%94, %$12] ; # Siz\n  %101 = phi i32 [%88, %$11], [%95, %$12] ; # Fd\n; # (prog1 (let Blk (rdBlock N) (if (<> 1 (& (val Blk) BLKTAG)) $Nil ...\n; # (let Blk (rdBlock N) (if (<> 1 (& (val Blk) BLKTAG)) $Nil (set $G...\n; # (rdBlock N)\n  %102 = call i8* @rdBlock(i64 %98)\n; # (if (<> 1 (& (val Blk) BLKTAG)) $Nil (set $GetBin (fun (i32) getB...\n; # (val Blk)\n  %103 = load i8, i8* %102\n; # (& (val Blk) BLKTAG)\n  %104 = and i8 %103, 63\n; # (<> 1 (& (val Blk) BLKTAG))\n  %105 = icmp ne i8 1, %104\n  br i1 %105, label %$14, label %$15\n$14:\n  %106 = phi i64 [%96, %$13] ; # Exe\n  %107 = phi i64 [%97, %$13] ; # X\n  %108 = phi i64 [%98, %$13] ; # N\n  %109 = phi i8* [%99, %$13] ; # P\n  %110 = phi i32 [%100, %$13] ; # Siz\n  %111 = phi i32 [%101, %$13] ; # Fd\n  %112 = phi i8* [%102, %$13] ; # Blk\n  br label %$16\n$15:\n  %113 = phi i64 [%96, %$13] ; # Exe\n  %114 = phi i64 [%97, %$13] ; # X\n  %115 = phi i64 [%98, %$13] ; # N\n  %116 = phi i8* [%99, %$13] ; # P\n  %117 = phi i32 [%100, %$13] ; # Siz\n  %118 = phi i32 [%101, %$13] ; # Fd\n  %119 = phi i8* [%102, %$13] ; # Blk\n; # (set $GetBin (fun (i32) getBlock) $Extn (val $ExtN))\n; # (fun (i32) getBlock)\n  store i32()* @getBlock, i32()** @$GetBin\n; # (val $ExtN)\n  %120 = load i32, i32* @$ExtN\n  store i32 %120, i32* @$Extn\n; # (let (L (cons (binRead) $Nil) R (save L)) (until (nil? (binRead))...\n; # (binRead)\n  %121 = call i64 @binRead()\n; # (cons (binRead) $Nil)\n  %122 = call i64 @cons(i64 %121, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save L)\n  %123 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %124 = load i64, i64* %123\n  %125 = alloca i64, i64 2, align 16\n  %126 = ptrtoint i64* %125 to i64\n  %127 = inttoptr i64 %126 to i64*\n  store i64 %122, i64* %127\n  %128 = add i64 %126, 8\n  %129 = inttoptr i64 %128 to i64*\n  store i64 %124, i64* %129\n  %130 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %126, i64* %130\n; # (until (nil? (binRead)) (setq L (set 2 L (cons @ $Nil))) (unless ...\n  br label %$17\n$17:\n  %131 = phi i64 [%113, %$15], [%169, %$21] ; # Exe\n  %132 = phi i64 [%114, %$15], [%170, %$21] ; # X\n  %133 = phi i64 [%115, %$15], [%171, %$21] ; # N\n  %134 = phi i8* [%116, %$15], [%172, %$21] ; # P\n  %135 = phi i32 [%117, %$15], [%173, %$21] ; # Siz\n  %136 = phi i32 [%118, %$15], [%174, %$21] ; # Fd\n  %137 = phi i8* [%119, %$15], [%175, %$21] ; # Blk\n  %138 = phi i64 [%122, %$15], [%176, %$21] ; # L\n  %139 = phi i64 [%122, %$15], [%177, %$21] ; # R\n; # (binRead)\n  %140 = call i64 @binRead()\n; # (nil? (binRead))\n  %141 = icmp eq i64 %140, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %141, label %$19, label %$18\n$18:\n  %142 = phi i64 [%131, %$17] ; # Exe\n  %143 = phi i64 [%132, %$17] ; # X\n  %144 = phi i64 [%133, %$17] ; # N\n  %145 = phi i8* [%134, %$17] ; # P\n  %146 = phi i32 [%135, %$17] ; # Siz\n  %147 = phi i32 [%136, %$17] ; # Fd\n  %148 = phi i8* [%137, %$17] ; # Blk\n  %149 = phi i64 [%138, %$17] ; # L\n  %150 = phi i64 [%139, %$17] ; # R\n; # (set 2 L (cons @ $Nil))\n; # (cons @ $Nil)\n  %151 = call i64 @cons(i64 %140, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %152 = inttoptr i64 %149 to i64*\n  %153 = getelementptr i64, i64* %152, i32 1\n  store i64 %151, i64* %153\n; # (unless (t? (binRead)) (set L (cons @ (car L))))\n; # (binRead)\n  %154 = call i64 @binRead()\n; # (t? (binRead))\n  %155 = icmp eq i64 %154, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %155, label %$21, label %$20\n$20:\n  %156 = phi i64 [%142, %$18] ; # Exe\n  %157 = phi i64 [%143, %$18] ; # X\n  %158 = phi i64 [%144, %$18] ; # N\n  %159 = phi i8* [%145, %$18] ; # P\n  %160 = phi i32 [%146, %$18] ; # Siz\n  %161 = phi i32 [%147, %$18] ; # Fd\n  %162 = phi i8* [%148, %$18] ; # Blk\n  %163 = phi i64 [%151, %$18] ; # L\n  %164 = phi i64 [%150, %$18] ; # R\n; # (set L (cons @ (car L)))\n; # (car L)\n  %165 = inttoptr i64 %163 to i64*\n  %166 = load i64, i64* %165\n; # (cons @ (car L))\n  %167 = call i64 @cons(i64 %154, i64 %166)\n  %168 = inttoptr i64 %163 to i64*\n  store i64 %167, i64* %168\n  br label %$21\n$21:\n  %169 = phi i64 [%142, %$18], [%156, %$20] ; # Exe\n  %170 = phi i64 [%143, %$18], [%157, %$20] ; # X\n  %171 = phi i64 [%144, %$18], [%158, %$20] ; # N\n  %172 = phi i8* [%145, %$18], [%159, %$20] ; # P\n  %173 = phi i32 [%146, %$18], [%160, %$20] ; # Siz\n  %174 = phi i32 [%147, %$18], [%161, %$20] ; # Fd\n  %175 = phi i8* [%148, %$18], [%162, %$20] ; # Blk\n  %176 = phi i64 [%151, %$18], [%163, %$20] ; # L\n  %177 = phi i64 [%150, %$18], [%164, %$20] ; # R\n  br label %$17\n$19:\n  %178 = phi i64 [%131, %$17] ; # Exe\n  %179 = phi i64 [%132, %$17] ; # X\n  %180 = phi i64 [%133, %$17] ; # N\n  %181 = phi i8* [%134, %$17] ; # P\n  %182 = phi i32 [%135, %$17] ; # Siz\n  %183 = phi i32 [%136, %$17] ; # Fd\n  %184 = phi i8* [%137, %$17] ; # Blk\n  %185 = phi i64 [%138, %$17] ; # L\n  %186 = phi i64 [%139, %$17] ; # R\n; # (drop *Safe)\n  %187 = inttoptr i64 %126 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n  %190 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %189, i64* %190\n  br label %$16\n$16:\n  %191 = phi i64 [%106, %$14], [%178, %$19] ; # Exe\n  %192 = phi i64 [%107, %$14], [%179, %$19] ; # X\n  %193 = phi i64 [%108, %$14], [%180, %$19] ; # N\n  %194 = phi i8* [%109, %$14], [%181, %$19] ; # P\n  %195 = phi i32 [%110, %$14], [%182, %$19] ; # Siz\n  %196 = phi i32 [%111, %$14], [%183, %$19] ; # Fd\n  %197 = phi i8* [%112, %$14], [%184, %$19] ; # Blk\n  %198 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14], [%186, %$19] ; # ->\n; # (when (ge0 Fd) (unLock @ 0 0))\n; # (ge0 Fd)\n  %199 = icmp sge i32 %196, 0\n  br i1 %199, label %$22, label %$23\n$22:\n  %200 = phi i64 [%191, %$16] ; # Exe\n  %201 = phi i64 [%192, %$16] ; # X\n  %202 = phi i64 [%193, %$16] ; # N\n  %203 = phi i8* [%194, %$16] ; # P\n  %204 = phi i32 [%195, %$16] ; # Siz\n  %205 = phi i32 [%196, %$16] ; # Fd\n; # (unLock @ 0 0)\n  %206 = call i32 @unLock(i32 %196, i64 0, i64 0)\n  br label %$23\n$23:\n  %207 = phi i64 [%191, %$16], [%200, %$22] ; # Exe\n  %208 = phi i64 [%192, %$16], [%201, %$22] ; # X\n  %209 = phi i64 [%193, %$16], [%202, %$22] ; # N\n  %210 = phi i8* [%194, %$16], [%203, %$22] ; # P\n  %211 = phi i32 [%195, %$16], [%204, %$22] ; # Siz\n  %212 = phi i32 [%196, %$16], [%205, %$22] ; # Fd\n  br label %$4\n$4:\n  %213 = phi i64 [%23, %$6], [%207, %$23] ; # Exe\n  %214 = phi i64 [%24, %$6], [%208, %$23] ; # X\n  %215 = phi i64 [%35, %$6], [%198, %$23] ; # ->\n  ret i64 %215\n}\n\ndefine i64 @_Seq(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) F (dec (i32 (int X))) N 0 Buf (b8 BLK))...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (int X)\n  %19 = lshr i64 %18, 4\n; # (i32 (int X))\n  %20 = trunc i64 %19 to i32\n; # (dec (i32 (int X)))\n  %21 = sub i32 %20, 1\n; # (b8 BLK)\n  %22 = alloca i8, i64 6\n; # (unless (cnt? X) (unless (sym? (val (tail (needSymb Exe X)))) (ex...\n; # (cnt? X)\n  %23 = and i64 %18, 2\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$8, label %$7\n$7:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%18, %$2] ; # X\n  %27 = phi i32 [%21, %$2] ; # F\n  %28 = phi i64 [0, %$2] ; # N\n  %29 = phi i8* [%22, %$2] ; # Buf\n; # (unless (sym? (val (tail (needSymb Exe X)))) (extErr Exe X))\n; # (needSymb Exe X)\n  %30 = xor i64 %26, 8\n  %31 = and i64 %30, 14\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$10, label %$9\n$9:\n  %33 = phi i64 [%26, %$7] ; # X\n  %34 = phi i64 [%25, %$7] ; # Exe\n  call void @symErr(i64 %34, i64 %33)\n  unreachable\n$10:\n  %35 = phi i64 [%26, %$7] ; # X\n  %36 = phi i64 [%25, %$7] ; # Exe\n; # (tail (needSymb Exe X))\n  %37 = add i64 %35, -8\n; # (val (tail (needSymb Exe X)))\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n; # (sym? (val (tail (needSymb Exe X))))\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$12, label %$11\n$11:\n  %42 = phi i64 [%25, %$10] ; # Exe\n  %43 = phi i64 [%26, %$10] ; # X\n  %44 = phi i32 [%27, %$10] ; # F\n  %45 = phi i64 [%28, %$10] ; # N\n  %46 = phi i8* [%29, %$10] ; # Buf\n; # (extErr Exe X)\n  call void @extErr(i64 %42, i64 %43)\n  unreachable\n$12:\n  %47 = phi i64 [%25, %$10] ; # Exe\n  %48 = phi i64 [%26, %$10] ; # X\n  %49 = phi i32 [%27, %$10] ; # F\n  %50 = phi i64 [%28, %$10] ; # N\n  %51 = phi i8* [%29, %$10] ; # Buf\n; # (let Nm (name (& (val (tail X)) -9)) (setq F (objFile Nm) N (shl ...\n; # (tail X)\n  %52 = add i64 %48, -8\n; # (val (tail X))\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n; # (& (val (tail X)) -9)\n  %55 = and i64 %54, -9\n; # (name (& (val (tail X)) -9))\n  br label %$13\n$13:\n  %56 = phi i64 [%55, %$12], [%62, %$14] ; # Tail\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$15, label %$14\n$14:\n  %59 = phi i64 [%56, %$13] ; # Tail\n  %60 = inttoptr i64 %59 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  br label %$13\n$15:\n  %63 = phi i64 [%56, %$13] ; # Tail\n; # (objFile Nm)\n  %64 = call i32 @objFile(i64 %63)\n; # (objId Nm)\n  %65 = call i64 @objId(i64 %63)\n; # (shl (objId Nm) 6)\n  %66 = shl i64 %65, 6\n  br label %$8\n$8:\n  %67 = phi i64 [%0, %$2], [%47, %$15] ; # Exe\n  %68 = phi i64 [%18, %$2], [%48, %$15] ; # X\n  %69 = phi i32 [%21, %$2], [%64, %$15] ; # F\n  %70 = phi i64 [0, %$2], [%66, %$15] ; # N\n  %71 = phi i8* [%22, %$2], [%51, %$15] ; # Buf\n; # (when (>= F (val $DBs)) (dbfErr Exe))\n; # (val $DBs)\n  %72 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %73 = icmp sge i32 %69, %72\n  br i1 %73, label %$16, label %$17\n$16:\n  %74 = phi i64 [%67, %$8] ; # Exe\n  %75 = phi i64 [%68, %$8] ; # X\n  %76 = phi i32 [%69, %$8] ; # F\n  %77 = phi i64 [%70, %$8] ; # N\n  %78 = phi i8* [%71, %$8] ; # Buf\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %74)\n  unreachable\n$17:\n  %79 = phi i64 [%67, %$8] ; # Exe\n  %80 = phi i64 [%68, %$8] ; # X\n  %81 = phi i32 [%69, %$8] ; # F\n  %82 = phi i64 [%70, %$8] ; # N\n  %83 = phi i8* [%71, %$8] ; # Buf\n; # (let Db: (dbFile (set $DbFile (ofs (val $DbFiles) (* F (dbFile T)...\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %84 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %85 = mul i32 %81, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %86 = getelementptr i8, i8* %84, i32 %85\n  store i8* %86, i8** @$DbFile\n; # (rdLockDb)\n  call void @rdLockDb()\n; # (blkPeek BLK Buf BLK)\n  call void @blkPeek(i64 6, i8* %83, i32 6)\n; # (let Next (getAdr Buf) (prog1 (loop (? (>= (inc 'N BLKSIZE) Next)...\n; # (getAdr Buf)\n  %87 = call i64 @getAdr(i8* %83)\n; # (prog1 (loop (? (>= (inc 'N BLKSIZE) Next) $Nil) (blkPeek (shl N ...\n; # (loop (? (>= (inc 'N BLKSIZE) Next) $Nil) (blkPeek (shl N (i64 (D...\n  br label %$18\n$18:\n  %88 = phi i64 [%79, %$17], [%125, %$22] ; # Exe\n  %89 = phi i64 [%80, %$17], [%126, %$22] ; # X\n  %90 = phi i32 [%81, %$17], [%127, %$22] ; # F\n  %91 = phi i64 [%82, %$17], [%128, %$22] ; # N\n  %92 = phi i8* [%83, %$17], [%129, %$22] ; # Buf\n  %93 = phi i64 [%87, %$17], [%130, %$22] ; # Next\n; # (? (>= (inc 'N BLKSIZE) Next) $Nil)\n; # (inc 'N BLKSIZE)\n  %94 = add i64 %91, 64\n; # (>= (inc 'N BLKSIZE) Next)\n  %95 = icmp uge i64 %94, %93\n  br i1 %95, label %$21, label %$19\n$21:\n  %96 = phi i64 [%88, %$18] ; # Exe\n  %97 = phi i64 [%89, %$18] ; # X\n  %98 = phi i32 [%90, %$18] ; # F\n  %99 = phi i64 [%94, %$18] ; # N\n  %100 = phi i8* [%92, %$18] ; # Buf\n  %101 = phi i64 [%93, %$18] ; # Next\n  br label %$20\n$19:\n  %102 = phi i64 [%88, %$18] ; # Exe\n  %103 = phi i64 [%89, %$18] ; # X\n  %104 = phi i32 [%90, %$18] ; # F\n  %105 = phi i64 [%94, %$18] ; # N\n  %106 = phi i8* [%92, %$18] ; # Buf\n  %107 = phi i64 [%93, %$18] ; # Next\n; # (Db: sh)\n  %108 = getelementptr i8, i8* %86, i32 8\n  %109 = bitcast i8* %108 to i32*\n  %110 = load i32, i32* %109\n; # (i64 (Db: sh))\n  %111 = sext i32 %110 to i64\n; # (shl N (i64 (Db: sh)))\n  %112 = shl i64 %105, %111\n; # (blkPeek (shl N (i64 (Db: sh))) Buf BLK)\n  call void @blkPeek(i64 %112, i8* %106, i32 6)\n; # (? (== 1 (& (val Buf) BLKTAG)) (extern (extNm F (shr N 6))))\n; # (val Buf)\n  %113 = load i8, i8* %106\n; # (& (val Buf) BLKTAG)\n  %114 = and i8 %113, 63\n; # (== 1 (& (val Buf) BLKTAG))\n  %115 = icmp eq i8 1, %114\n  br i1 %115, label %$23, label %$22\n$23:\n  %116 = phi i64 [%102, %$19] ; # Exe\n  %117 = phi i64 [%103, %$19] ; # X\n  %118 = phi i32 [%104, %$19] ; # F\n  %119 = phi i64 [%105, %$19] ; # N\n  %120 = phi i8* [%106, %$19] ; # Buf\n  %121 = phi i64 [%107, %$19] ; # Next\n; # (shr N 6)\n  %122 = lshr i64 %119, 6\n; # (extNm F (shr N 6))\n  %123 = call i64 @extNm(i32 %118, i64 %122)\n; # (extern (extNm F (shr N 6)))\n  %124 = call i64 @extern(i64 %123)\n  br label %$20\n$22:\n  %125 = phi i64 [%102, %$19] ; # Exe\n  %126 = phi i64 [%103, %$19] ; # X\n  %127 = phi i32 [%104, %$19] ; # F\n  %128 = phi i64 [%105, %$19] ; # N\n  %129 = phi i8* [%106, %$19] ; # Buf\n  %130 = phi i64 [%107, %$19] ; # Next\n  br label %$18\n$20:\n  %131 = phi i64 [%96, %$21], [%116, %$23] ; # Exe\n  %132 = phi i64 [%97, %$21], [%117, %$23] ; # X\n  %133 = phi i32 [%98, %$21], [%118, %$23] ; # F\n  %134 = phi i64 [%99, %$21], [%119, %$23] ; # N\n  %135 = phi i8* [%100, %$21], [%120, %$23] ; # Buf\n  %136 = phi i64 [%101, %$21], [%121, %$23] ; # Next\n  %137 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21], [%124, %$23] ; # ->\n; # (unLockDb 1)\n  call void @unLockDb(i64 1)\n  ret i64 %137\n}\n\ndefine i64 @_Lieu(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (nond ((symb? X) $Nil) ((sym? (val (tail...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nond ((symb? X) $Nil) ((sym? (val (tail X))) $Nil) (NIL (let Nm ...\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$9\n$9:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n  br label %$7\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%18, %$2] ; # X\n; # (tail X)\n  %26 = add i64 %25, -8\n; # (val (tail X))\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (sym? (val (tail X)))\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$10, label %$11\n$11:\n  %31 = phi i64 [%24, %$8] ; # Exe\n  %32 = phi i64 [%25, %$8] ; # X\n  br label %$7\n$10:\n  %33 = phi i64 [%24, %$8] ; # Exe\n  %34 = phi i64 [%25, %$8] ; # X\n; # (let Nm (name (& (val (tail X)) -9)) (setq Nm (add Nm Nm)) (cond ...\n; # (tail X)\n  %35 = add i64 %34, -8\n; # (val (tail X))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (& (val (tail X)) -9)\n  %38 = and i64 %37, -9\n; # (name (& (val (tail X)) -9))\n  br label %$12\n$12:\n  %39 = phi i64 [%38, %$10], [%45, %$13] ; # Tail\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$12] ; # Tail\n  %43 = inttoptr i64 %42 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n  br label %$12\n$14:\n  %46 = phi i64 [%39, %$12] ; # Tail\n; # (add Nm Nm)\n  %47 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %46, i64 %46)\n  %48 = extractvalue {i64, i1} %47, 1\n  %49 = extractvalue {i64, i1} %47, 0\n; # (cond (@@ (setq Nm (add Nm Nm)) (if @@ $Nil X)) (T (setq Nm (add ...\n  br i1 %48, label %$17, label %$16\n$17:\n  %50 = phi i64 [%33, %$14] ; # Exe\n  %51 = phi i64 [%34, %$14] ; # X\n  %52 = phi i64 [%49, %$14] ; # Nm\n; # (add Nm Nm)\n  %53 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %52, i64 %52)\n  %54 = extractvalue {i64, i1} %53, 1\n  %55 = extractvalue {i64, i1} %53, 0\n; # (if @@ $Nil X)\n  br i1 %54, label %$18, label %$19\n$18:\n  %56 = phi i64 [%50, %$17] ; # Exe\n  %57 = phi i64 [%51, %$17] ; # X\n  %58 = phi i64 [%55, %$17] ; # Nm\n  br label %$20\n$19:\n  %59 = phi i64 [%50, %$17] ; # Exe\n  %60 = phi i64 [%51, %$17] ; # X\n  %61 = phi i64 [%55, %$17] ; # Nm\n  br label %$20\n$20:\n  %62 = phi i64 [%56, %$18], [%59, %$19] ; # Exe\n  %63 = phi i64 [%57, %$18], [%60, %$19] ; # X\n  %64 = phi i64 [%58, %$18], [%61, %$19] ; # Nm\n  %65 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18], [%60, %$19] ; # ->\n  br label %$15\n$16:\n  %66 = phi i64 [%33, %$14] ; # Exe\n  %67 = phi i64 [%34, %$14] ; # X\n  %68 = phi i64 [%49, %$14] ; # Nm\n; # (add Nm Nm)\n  %69 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %68, i64 %68)\n  %70 = extractvalue {i64, i1} %69, 1\n  %71 = extractvalue {i64, i1} %69, 0\n; # (if @@ X $Nil)\n  br i1 %70, label %$21, label %$22\n$21:\n  %72 = phi i64 [%66, %$16] ; # Exe\n  %73 = phi i64 [%67, %$16] ; # X\n  %74 = phi i64 [%71, %$16] ; # Nm\n  br label %$23\n$22:\n  %75 = phi i64 [%66, %$16] ; # Exe\n  %76 = phi i64 [%67, %$16] ; # X\n  %77 = phi i64 [%71, %$16] ; # Nm\n  br label %$23\n$23:\n  %78 = phi i64 [%72, %$21], [%75, %$22] ; # Exe\n  %79 = phi i64 [%73, %$21], [%76, %$22] ; # X\n  %80 = phi i64 [%74, %$21], [%77, %$22] ; # Nm\n  %81 = phi i64 [%73, %$21], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22] ; # ->\n  br label %$15\n$15:\n  %82 = phi i64 [%62, %$20], [%78, %$23] ; # Exe\n  %83 = phi i64 [%63, %$20], [%79, %$23] ; # X\n  %84 = phi i64 [%64, %$20], [%80, %$23] ; # Nm\n  %85 = phi i64 [%65, %$20], [%81, %$23] ; # ->\n  br label %$7\n$7:\n  %86 = phi i64 [%22, %$9], [%31, %$11], [%82, %$15] ; # Exe\n  %87 = phi i64 [%23, %$9], [%32, %$11], [%83, %$15] ; # X\n  %88 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11], [%85, %$15] ; # ->\n  ret i64 %88\n}\n\ndefine i64 @_Lock(i64) align 8 {\n$1:\n; # (if (if (nil? (eval (cadr Exe))) (tryLock (val $DbFiles) 0 0) (le...\n; # (if (nil? (eval (cadr Exe))) (tryLock (val $DbFiles) 0 0) (let X ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n; # (val $DbFiles)\n  %21 = load i8*, i8** @$DbFiles\n; # (tryLock (val $DbFiles) 0 0)\n  %22 = call i32 @tryLock(i8* %21, i64 0, i64 0)\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n; # (let X (needSymb Exe @) (unless (sym? (val (tail (needSymb Exe X)...\n; # (needSymb Exe @)\n  %24 = xor i64 %18, 8\n  %25 = and i64 %24, 14\n  %26 = icmp eq i64 %25, 0\n  br i1 %26, label %$11, label %$10\n$10:\n  %27 = phi i64 [%18, %$8] ; # X\n  %28 = phi i64 [%23, %$8] ; # Exe\n  call void @symErr(i64 %28, i64 %27)\n  unreachable\n$11:\n  %29 = phi i64 [%18, %$8] ; # X\n  %30 = phi i64 [%23, %$8] ; # Exe\n; # (unless (sym? (val (tail (needSymb Exe X)))) (extErr Exe X))\n; # (needSymb Exe X)\n  %31 = xor i64 %29, 8\n  %32 = and i64 %31, 14\n  %33 = icmp eq i64 %32, 0\n  br i1 %33, label %$13, label %$12\n$12:\n  %34 = phi i64 [%29, %$11] ; # X\n  %35 = phi i64 [%23, %$11] ; # Exe\n  call void @symErr(i64 %35, i64 %34)\n  unreachable\n$13:\n  %36 = phi i64 [%29, %$11] ; # X\n  %37 = phi i64 [%23, %$11] ; # Exe\n; # (tail (needSymb Exe X))\n  %38 = add i64 %36, -8\n; # (val (tail (needSymb Exe X)))\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (sym? (val (tail (needSymb Exe X))))\n  %41 = and i64 %40, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$15, label %$14\n$14:\n  %43 = phi i64 [%23, %$13] ; # Exe\n  %44 = phi i64 [%29, %$13] ; # X\n; # (extErr Exe X)\n  call void @extErr(i64 %43, i64 %44)\n  unreachable\n$15:\n  %45 = phi i64 [%23, %$13] ; # Exe\n  %46 = phi i64 [%29, %$13] ; # X\n; # (let (Nm (name (& (val (tail X)) -9)) F (objFile Nm) N (objId Nm)...\n; # (tail X)\n  %47 = add i64 %46, -8\n; # (val (tail X))\n  %48 = inttoptr i64 %47 to i64*\n  %49 = load i64, i64* %48\n; # (& (val (tail X)) -9)\n  %50 = and i64 %49, -9\n; # (name (& (val (tail X)) -9))\n  br label %$16\n$16:\n  %51 = phi i64 [%50, %$15], [%57, %$17] ; # Tail\n  %52 = and i64 %51, 6\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$18, label %$17\n$17:\n  %54 = phi i64 [%51, %$16] ; # Tail\n  %55 = inttoptr i64 %54 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n  br label %$16\n$18:\n  %58 = phi i64 [%51, %$16] ; # Tail\n; # (objFile Nm)\n  %59 = call i32 @objFile(i64 %58)\n; # (objId Nm)\n  %60 = call i64 @objId(i64 %58)\n; # (when (>= F (val $DBs)) (dbfErr Exe))\n; # (val $DBs)\n  %61 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %62 = icmp sge i32 %59, %61\n  br i1 %62, label %$19, label %$20\n$19:\n  %63 = phi i64 [%45, %$18] ; # Exe\n  %64 = phi i64 [%46, %$18] ; # X\n  %65 = phi i64 [%58, %$18] ; # Nm\n  %66 = phi i32 [%59, %$18] ; # F\n  %67 = phi i64 [%60, %$18] ; # N\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %63)\n  unreachable\n$20:\n  %68 = phi i64 [%45, %$18] ; # Exe\n  %69 = phi i64 [%46, %$18] ; # X\n  %70 = phi i64 [%58, %$18] ; # Nm\n  %71 = phi i32 [%59, %$18] ; # F\n  %72 = phi i64 [%60, %$18] ; # N\n; # (let Db: (dbFile (ofs (val $DbFiles) (* F (dbFile T)))) (tryLock ...\n; # (val $DbFiles)\n  %73 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %74 = mul i32 %71, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %75 = getelementptr i8, i8* %73, i32 %74\n; # (Db:)\n; # (Db: siz)\n  %76 = getelementptr i8, i8* %75, i32 12\n  %77 = bitcast i8* %76 to i32*\n  %78 = load i32, i32* %77\n; # (i64 (Db: siz))\n  %79 = sext i32 %78 to i64\n; # (* N (i64 (Db: siz)))\n  %80 = mul i64 %72, %79\n; # (tryLock (Db:) (* N (i64 (Db: siz))) 1)\n  %81 = call i32 @tryLock(i8* %75, i64 %80, i64 1)\n  br label %$9\n$9:\n  %82 = phi i64 [%20, %$7], [%68, %$20] ; # Exe\n  %83 = phi i32 [%22, %$7], [%81, %$20] ; # ->\n  %84 = icmp ne i32 %83, 0\n  br i1 %84, label %$21, label %$22\n$21:\n  %85 = phi i64 [%82, %$9] ; # Exe\n; # (i64 @)\n  %86 = sext i32 %83 to i64\n; # (cnt (i64 @))\n  %87 = shl i64 %86, 4\n  %88 = or i64 %87, 2\n  br label %$23\n$22:\n  %89 = phi i64 [%82, %$9] ; # Exe\n  br label %$23\n$23:\n  %90 = phi i64 [%85, %$21], [%89, %$22] ; # Exe\n  %91 = phi i64 [%88, %$21], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22] ; # ->\n  ret i64 %91\n}\n\ndefine void @db(i64, i64, i64) align 8 {\n$1:\n; # (save Sym)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %4 = load i64, i64* %3\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 %1, i64* %7\n  %8 = add i64 %6, 8\n  %9 = inttoptr i64 %8 to i64*\n  store i64 %4, i64* %9\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %10\n; # (let F (objFile Nm) (if (>= F (val $DBs)) (let Ext (val $Ext) (if...\n; # (objFile Nm)\n  %11 = call i32 @objFile(i64 %2)\n; # (if (>= F (val $DBs)) (let Ext (val $Ext) (if (or (atom Ext) (> (...\n; # (val $DBs)\n  %12 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %13 = icmp sge i32 %11, %12\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%1, %$1] ; # Sym\n  %16 = phi i64 [%2, %$1] ; # Nm\n  %17 = phi i32 [%11, %$1] ; # F\n; # (let Ext (val $Ext) (if (or (atom Ext) (> (i32 (int (caar @))) (i...\n; # (val $Ext)\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 552) to i64) to i64*\n  %19 = load i64, i64* %18\n; # (if (or (atom Ext) (> (i32 (int (caar @))) (inc 'F))) (dbfErr Exe...\n; # (or (atom Ext) (> (i32 (int (caar @))) (inc 'F)))\n; # (atom Ext)\n  %20 = and i64 %19, 15\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$5, label %$6\n$6:\n  %22 = phi i64 [%14, %$2] ; # Exe\n  %23 = phi i64 [%15, %$2] ; # Sym\n  %24 = phi i64 [%16, %$2] ; # Nm\n  %25 = phi i32 [%17, %$2] ; # F\n  %26 = phi i64 [%19, %$2] ; # Ext\n; # (caar @)\n  %27 = inttoptr i64 %19 to i64*\n  %28 = load i64, i64* %27\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n; # (int (caar @))\n  %31 = lshr i64 %30, 4\n; # (i32 (int (caar @)))\n  %32 = trunc i64 %31 to i32\n; # (inc 'F)\n  %33 = add i32 %25, 1\n; # (> (i32 (int (caar @))) (inc 'F))\n  %34 = icmp sgt i32 %32, %33\n  br label %$5\n$5:\n  %35 = phi i64 [%14, %$2], [%22, %$6] ; # Exe\n  %36 = phi i64 [%15, %$2], [%23, %$6] ; # Sym\n  %37 = phi i64 [%16, %$2], [%24, %$6] ; # Nm\n  %38 = phi i32 [%17, %$2], [%33, %$6] ; # F\n  %39 = phi i64 [%19, %$2], [%26, %$6] ; # Ext\n  %40 = phi i1 [1, %$2], [%34, %$6] ; # ->\n  br i1 %40, label %$7, label %$8\n$7:\n  %41 = phi i64 [%35, %$5] ; # Exe\n  %42 = phi i64 [%36, %$5] ; # Sym\n  %43 = phi i64 [%37, %$5] ; # Nm\n  %44 = phi i32 [%38, %$5] ; # F\n  %45 = phi i64 [%39, %$5] ; # Ext\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %41)\n  unreachable\n$8:\n  %46 = phi i64 [%35, %$5] ; # Exe\n  %47 = phi i64 [%36, %$5] ; # Sym\n  %48 = phi i64 [%37, %$5] ; # Nm\n  %49 = phi i32 [%38, %$5] ; # F\n  %50 = phi i64 [%39, %$5] ; # Ext\n; # (while (and (pair (cdr Ext)) (>= F (i32 (int (caar @))))) (shift ...\n  br label %$10\n$10:\n  %51 = phi i64 [%46, %$8], [%79, %$13] ; # Exe\n  %52 = phi i64 [%47, %$8], [%80, %$13] ; # Sym\n  %53 = phi i64 [%48, %$8], [%81, %$13] ; # Nm\n  %54 = phi i32 [%49, %$8], [%82, %$13] ; # F\n  %55 = phi i64 [%50, %$8], [%86, %$13] ; # Ext\n; # (and (pair (cdr Ext)) (>= F (i32 (int (caar @)))))\n; # (cdr Ext)\n  %56 = inttoptr i64 %55 to i64*\n  %57 = getelementptr i64, i64* %56, i32 1\n  %58 = load i64, i64* %57\n; # (pair (cdr Ext))\n  %59 = and i64 %58, 15\n  %60 = icmp eq i64 %59, 0\n  br i1 %60, label %$12, label %$11\n$12:\n  %61 = phi i64 [%51, %$10] ; # Exe\n  %62 = phi i64 [%52, %$10] ; # Sym\n  %63 = phi i64 [%53, %$10] ; # Nm\n  %64 = phi i32 [%54, %$10] ; # F\n  %65 = phi i64 [%55, %$10] ; # Ext\n; # (caar @)\n  %66 = inttoptr i64 %58 to i64*\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n; # (int (caar @))\n  %70 = lshr i64 %69, 4\n; # (i32 (int (caar @)))\n  %71 = trunc i64 %70 to i32\n; # (>= F (i32 (int (caar @))))\n  %72 = icmp sge i32 %64, %71\n  br label %$11\n$11:\n  %73 = phi i64 [%51, %$10], [%61, %$12] ; # Exe\n  %74 = phi i64 [%52, %$10], [%62, %$12] ; # Sym\n  %75 = phi i64 [%53, %$10], [%63, %$12] ; # Nm\n  %76 = phi i32 [%54, %$10], [%64, %$12] ; # F\n  %77 = phi i64 [%55, %$10], [%65, %$12] ; # Ext\n  %78 = phi i1 [0, %$10], [%72, %$12] ; # ->\n  br i1 %78, label %$13, label %$14\n$13:\n  %79 = phi i64 [%73, %$11] ; # Exe\n  %80 = phi i64 [%74, %$11] ; # Sym\n  %81 = phi i64 [%75, %$11] ; # Nm\n  %82 = phi i32 [%76, %$11] ; # F\n  %83 = phi i64 [%77, %$11] ; # Ext\n; # (shift Ext)\n  %84 = inttoptr i64 %83 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  br label %$10\n$14:\n  %87 = phi i64 [%73, %$11] ; # Exe\n  %88 = phi i64 [%74, %$11] ; # Sym\n  %89 = phi i64 [%75, %$11] ; # Nm\n  %90 = phi i32 [%76, %$11] ; # F\n  %91 = phi i64 [%77, %$11] ; # Ext\n; # (let (V (push NIL $Nil ZERO Sym) E (push NIL V ZERO (cdar Ext))) ...\n; # (push NIL $Nil ZERO Sym)\n  %92 = alloca i64, i64 4, align 16\n  %93 = ptrtoint i64* %92 to i64\n  %94 = add i64 %93, 8\n  %95 = inttoptr i64 %94 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %95\n  %96 = add i64 %93, 16\n  %97 = inttoptr i64 %96 to i64*\n  store i64 2, i64* %97\n  %98 = add i64 %93, 24\n  %99 = inttoptr i64 %98 to i64*\n  store i64 %88, i64* %99\n; # (cdar Ext)\n  %100 = inttoptr i64 %91 to i64*\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 %101 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n; # (push NIL V ZERO (cdar Ext))\n  %105 = alloca i64, i64 4, align 16\n  %106 = ptrtoint i64* %105 to i64\n  %107 = add i64 %106, 8\n  %108 = inttoptr i64 %107 to i64*\n  store i64 %93, i64* %108\n  %109 = add i64 %106, 16\n  %110 = inttoptr i64 %109 to i64*\n  store i64 2, i64* %110\n  %111 = add i64 %106, 24\n  %112 = inttoptr i64 %111 to i64*\n  store i64 %104, i64* %112\n; # (set V (ofs V 3) E (ofs E 3))\n; # (ofs V 3)\n  %113 = add i64 %93, 24\n  %114 = inttoptr i64 %93 to i64*\n  store i64 %113, i64* %114\n; # (ofs E 3)\n  %115 = add i64 %106, 24\n  %116 = inttoptr i64 %106 to i64*\n  store i64 %115, i64* %116\n; # (let X (evList E) (set Sym (++ X)) (if (atom X) (set (tail Sym) N...\n; # (evList E)\n  %117 = call i64 @evList(i64 %106)\n; # (set Sym (++ X))\n; # (++ X)\n  %118 = inttoptr i64 %117 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n  %121 = load i64, i64* %118\n  %122 = inttoptr i64 %88 to i64*\n  store i64 %121, i64* %122\n; # (if (atom X) (set (tail Sym) Nm) (set (tail Sym) (sym X)) (while ...\n; # (atom X)\n  %123 = and i64 %120, 15\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$15, label %$16\n$15:\n  %125 = phi i64 [%87, %$14] ; # Exe\n  %126 = phi i64 [%88, %$14] ; # Sym\n  %127 = phi i64 [%89, %$14] ; # Nm\n  %128 = phi i32 [%90, %$14] ; # F\n  %129 = phi i64 [%91, %$14] ; # Ext\n  %130 = phi i64 [%93, %$14] ; # V\n  %131 = phi i64 [%106, %$14] ; # E\n  %132 = phi i64 [%120, %$14] ; # X\n; # (set (tail Sym) Nm)\n; # (tail Sym)\n  %133 = add i64 %126, -8\n  %134 = inttoptr i64 %133 to i64*\n  store i64 %127, i64* %134\n  br label %$17\n$16:\n  %135 = phi i64 [%87, %$14] ; # Exe\n  %136 = phi i64 [%88, %$14] ; # Sym\n  %137 = phi i64 [%89, %$14] ; # Nm\n  %138 = phi i32 [%90, %$14] ; # F\n  %139 = phi i64 [%91, %$14] ; # Ext\n  %140 = phi i64 [%93, %$14] ; # V\n  %141 = phi i64 [%106, %$14] ; # E\n  %142 = phi i64 [%120, %$14] ; # X\n; # (set (tail Sym) (sym X))\n; # (tail Sym)\n  %143 = add i64 %136, -8\n; # (sym X)\n  %144 = or i64 %142, 8\n  %145 = inttoptr i64 %143 to i64*\n  store i64 %144, i64* %145\n; # (while (pair (cdr X)) (setq X @))\n  br label %$18\n$18:\n  %146 = phi i64 [%135, %$16], [%159, %$19] ; # Exe\n  %147 = phi i64 [%136, %$16], [%160, %$19] ; # Sym\n  %148 = phi i64 [%137, %$16], [%161, %$19] ; # Nm\n  %149 = phi i32 [%138, %$16], [%162, %$19] ; # F\n  %150 = phi i64 [%139, %$16], [%163, %$19] ; # Ext\n  %151 = phi i64 [%140, %$16], [%164, %$19] ; # V\n  %152 = phi i64 [%141, %$16], [%165, %$19] ; # E\n  %153 = phi i64 [%142, %$16], [%156, %$19] ; # X\n; # (cdr X)\n  %154 = inttoptr i64 %153 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  %156 = load i64, i64* %155\n; # (pair (cdr X))\n  %157 = and i64 %156, 15\n  %158 = icmp eq i64 %157, 0\n  br i1 %158, label %$19, label %$20\n$19:\n  %159 = phi i64 [%146, %$18] ; # Exe\n  %160 = phi i64 [%147, %$18] ; # Sym\n  %161 = phi i64 [%148, %$18] ; # Nm\n  %162 = phi i32 [%149, %$18] ; # F\n  %163 = phi i64 [%150, %$18] ; # Ext\n  %164 = phi i64 [%151, %$18] ; # V\n  %165 = phi i64 [%152, %$18] ; # E\n  %166 = phi i64 [%153, %$18] ; # X\n  br label %$18\n$20:\n  %167 = phi i64 [%146, %$18] ; # Exe\n  %168 = phi i64 [%147, %$18] ; # Sym\n  %169 = phi i64 [%148, %$18] ; # Nm\n  %170 = phi i32 [%149, %$18] ; # F\n  %171 = phi i64 [%150, %$18] ; # Ext\n  %172 = phi i64 [%151, %$18] ; # V\n  %173 = phi i64 [%152, %$18] ; # E\n  %174 = phi i64 [%153, %$18] ; # X\n; # (set 2 X Nm)\n  %175 = inttoptr i64 %174 to i64*\n  %176 = getelementptr i64, i64* %175, i32 1\n  store i64 %169, i64* %176\n  br label %$17\n$17:\n  %177 = phi i64 [%125, %$15], [%167, %$20] ; # Exe\n  %178 = phi i64 [%126, %$15], [%168, %$20] ; # Sym\n  %179 = phi i64 [%127, %$15], [%169, %$20] ; # Nm\n  %180 = phi i32 [%128, %$15], [%170, %$20] ; # F\n  %181 = phi i64 [%129, %$15], [%171, %$20] ; # Ext\n  %182 = phi i64 [%130, %$15], [%172, %$20] ; # V\n  %183 = phi i64 [%131, %$15], [%173, %$20] ; # E\n  %184 = phi i64 [%132, %$15], [%174, %$20] ; # X\n  %185 = phi i64 [%127, %$15], [%169, %$20] ; # ->\n  br label %$9\n$9:\n  %186 = phi i64 [%177, %$17] ; # Exe\n  %187 = phi i64 [%178, %$17] ; # Sym\n  %188 = phi i64 [%179, %$17] ; # Nm\n  %189 = phi i32 [%180, %$17] ; # F\n  %190 = phi i64 [%181, %$17] ; # Ext\n  %191 = phi i64 [%185, %$17] ; # ->\n  br label %$4\n$3:\n  %192 = phi i64 [%0, %$1] ; # Exe\n  %193 = phi i64 [%1, %$1] ; # Sym\n  %194 = phi i64 [%2, %$1] ; # Nm\n  %195 = phi i32 [%11, %$1] ; # F\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %196 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %197 = mul i32 %195, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %198 = getelementptr i8, i8* %196, i32 %197\n  store i8* %198, i8** @$DbFile\n; # (rdLockDb)\n  call void @rdLockDb()\n; # (let Blk (rdBlock (shl (objId Nm) 6)) (unless (== 1 (& (val Blk) ...\n; # (objId Nm)\n  %199 = call i64 @objId(i64 %194)\n; # (shl (objId Nm) 6)\n  %200 = shl i64 %199, 6\n; # (rdBlock (shl (objId Nm) 6))\n  %201 = call i8* @rdBlock(i64 %200)\n; # (unless (== 1 (& (val Blk) BLKTAG)) (err Exe Sym ($ \"Bad ID\") nul...\n; # (val Blk)\n  %202 = load i8, i8* %201\n; # (& (val Blk) BLKTAG)\n  %203 = and i8 %202, 63\n; # (== 1 (& (val Blk) BLKTAG))\n  %204 = icmp eq i8 1, %203\n  br i1 %204, label %$22, label %$21\n$21:\n  %205 = phi i64 [%192, %$3] ; # Exe\n  %206 = phi i64 [%193, %$3] ; # Sym\n  %207 = phi i64 [%194, %$3] ; # Nm\n  %208 = phi i32 [%195, %$3] ; # F\n  %209 = phi i8* [%201, %$3] ; # Blk\n; # (err Exe Sym ($ \"Bad ID\") null)\n  call void @err(i64 %205, i64 %206, i8* bitcast ([7 x i8]* @$66 to i8*), i8* null)\n  unreachable\n$22:\n  %210 = phi i64 [%192, %$3] ; # Exe\n  %211 = phi i64 [%193, %$3] ; # Sym\n  %212 = phi i64 [%194, %$3] ; # Nm\n  %213 = phi i32 [%195, %$3] ; # F\n  %214 = phi i8* [%201, %$3] ; # Blk\n; # (set $GetBin (fun (i32) getBlock) $Extn 0)\n; # (fun (i32) getBlock)\n  store i32()* @getBlock, i32()** @$GetBin\n  store i32 0, i32* @$Extn\n; # (set Sym (binRead))\n; # (binRead)\n  %215 = call i64 @binRead()\n  %216 = inttoptr i64 %211 to i64*\n  store i64 %215, i64* %216\n; # (if (nil? (binRead)) (set (tail Sym) Nm) (set (tail Sym) (sym (se...\n; # (binRead)\n  %217 = call i64 @binRead()\n; # (nil? (binRead))\n  %218 = icmp eq i64 %217, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %218, label %$23, label %$24\n$23:\n  %219 = phi i64 [%210, %$22] ; # Exe\n  %220 = phi i64 [%211, %$22] ; # Sym\n  %221 = phi i64 [%212, %$22] ; # Nm\n  %222 = phi i32 [%213, %$22] ; # F\n; # (set (tail Sym) Nm)\n; # (tail Sym)\n  %223 = add i64 %220, -8\n  %224 = inttoptr i64 %223 to i64*\n  store i64 %221, i64* %224\n  br label %$25\n$24:\n  %225 = phi i64 [%210, %$22] ; # Exe\n  %226 = phi i64 [%211, %$22] ; # Sym\n  %227 = phi i64 [%212, %$22] ; # Nm\n  %228 = phi i32 [%213, %$22] ; # F\n; # (set (tail Sym) (sym (setq Nm (cons @ Nm))))\n; # (tail Sym)\n  %229 = add i64 %226, -8\n; # (cons @ Nm)\n  %230 = call i64 @cons(i64 %217, i64 %227)\n; # (sym (setq Nm (cons @ Nm)))\n  %231 = or i64 %230, 8\n  %232 = inttoptr i64 %229 to i64*\n  store i64 %231, i64* %232\n; # (unless (t? (binRead)) (set Nm (cons @ (val Nm))))\n; # (binRead)\n  %233 = call i64 @binRead()\n; # (t? (binRead))\n  %234 = icmp eq i64 %233, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %234, label %$27, label %$26\n$26:\n  %235 = phi i64 [%225, %$24] ; # Exe\n  %236 = phi i64 [%226, %$24] ; # Sym\n  %237 = phi i64 [%230, %$24] ; # Nm\n  %238 = phi i32 [%228, %$24] ; # F\n; # (set Nm (cons @ (val Nm)))\n; # (val Nm)\n  %239 = inttoptr i64 %237 to i64*\n  %240 = load i64, i64* %239\n; # (cons @ (val Nm))\n  %241 = call i64 @cons(i64 %233, i64 %240)\n  %242 = inttoptr i64 %237 to i64*\n  store i64 %241, i64* %242\n  br label %$27\n$27:\n  %243 = phi i64 [%225, %$24], [%235, %$26] ; # Exe\n  %244 = phi i64 [%226, %$24], [%236, %$26] ; # Sym\n  %245 = phi i64 [%230, %$24], [%237, %$26] ; # Nm\n  %246 = phi i32 [%228, %$24], [%238, %$26] ; # F\n; # (until (nil? (binRead)) (set 2 Nm (cons @ (val 2 Nm))) (shift Nm)...\n  br label %$28\n$28:\n  %247 = phi i64 [%243, %$27], [%276, %$32] ; # Exe\n  %248 = phi i64 [%244, %$27], [%277, %$32] ; # Sym\n  %249 = phi i64 [%245, %$27], [%278, %$32] ; # Nm\n  %250 = phi i32 [%246, %$27], [%279, %$32] ; # F\n; # (binRead)\n  %251 = call i64 @binRead()\n; # (nil? (binRead))\n  %252 = icmp eq i64 %251, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %252, label %$30, label %$29\n$29:\n  %253 = phi i64 [%247, %$28] ; # Exe\n  %254 = phi i64 [%248, %$28] ; # Sym\n  %255 = phi i64 [%249, %$28] ; # Nm\n  %256 = phi i32 [%250, %$28] ; # F\n; # (set 2 Nm (cons @ (val 2 Nm)))\n; # (val 2 Nm)\n  %257 = inttoptr i64 %255 to i64*\n  %258 = getelementptr i64, i64* %257, i32 1\n  %259 = load i64, i64* %258\n; # (cons @ (val 2 Nm))\n  %260 = call i64 @cons(i64 %251, i64 %259)\n  %261 = inttoptr i64 %255 to i64*\n  %262 = getelementptr i64, i64* %261, i32 1\n  store i64 %260, i64* %262\n; # (shift Nm)\n  %263 = inttoptr i64 %255 to i64*\n  %264 = getelementptr i64, i64* %263, i32 1\n  %265 = load i64, i64* %264\n; # (unless (t? (binRead)) (set Nm (cons @ (val Nm))))\n; # (binRead)\n  %266 = call i64 @binRead()\n; # (t? (binRead))\n  %267 = icmp eq i64 %266, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %267, label %$32, label %$31\n$31:\n  %268 = phi i64 [%253, %$29] ; # Exe\n  %269 = phi i64 [%254, %$29] ; # Sym\n  %270 = phi i64 [%265, %$29] ; # Nm\n  %271 = phi i32 [%256, %$29] ; # F\n; # (set Nm (cons @ (val Nm)))\n; # (val Nm)\n  %272 = inttoptr i64 %270 to i64*\n  %273 = load i64, i64* %272\n; # (cons @ (val Nm))\n  %274 = call i64 @cons(i64 %266, i64 %273)\n  %275 = inttoptr i64 %270 to i64*\n  store i64 %274, i64* %275\n  br label %$32\n$32:\n  %276 = phi i64 [%253, %$29], [%268, %$31] ; # Exe\n  %277 = phi i64 [%254, %$29], [%269, %$31] ; # Sym\n  %278 = phi i64 [%265, %$29], [%270, %$31] ; # Nm\n  %279 = phi i32 [%256, %$29], [%271, %$31] ; # F\n  br label %$28\n$30:\n  %280 = phi i64 [%247, %$28] ; # Exe\n  %281 = phi i64 [%248, %$28] ; # Sym\n  %282 = phi i64 [%249, %$28] ; # Nm\n  %283 = phi i32 [%250, %$28] ; # F\n  br label %$25\n$25:\n  %284 = phi i64 [%219, %$23], [%280, %$30] ; # Exe\n  %285 = phi i64 [%220, %$23], [%281, %$30] ; # Sym\n  %286 = phi i64 [%221, %$23], [%282, %$30] ; # Nm\n  %287 = phi i32 [%222, %$23], [%283, %$30] ; # F\n; # (unLockDb 1)\n  call void @unLockDb(i64 1)\n  br label %$4\n$4:\n  %288 = phi i64 [%186, %$9], [%284, %$25] ; # Exe\n  %289 = phi i64 [%187, %$9], [%285, %$25] ; # Sym\n  %290 = phi i64 [%188, %$9], [%286, %$25] ; # Nm\n  %291 = phi i32 [%189, %$9], [%287, %$25] ; # F\n; # (drop *Safe)\n  %292 = inttoptr i64 %6 to i64*\n  %293 = getelementptr i64, i64* %292, i32 1\n  %294 = load i64, i64* %293\n  %295 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %294, i64* %295\n  ret void\n}\n\ndefine void @dbFetch(i64, i64) align 8 {\n$1:\n; # (let Nm (val (tail Sym)) (when (and (num? Nm) (prog (setq Nm (add...\n; # (tail Sym)\n  %2 = add i64 %1, -8\n; # (val (tail Sym))\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n; # (when (and (num? Nm) (prog (setq Nm (add Nm Nm)) (not @@)) (prog ...\n; # (and (num? Nm) (prog (setq Nm (add Nm Nm)) (not @@)) (prog (setq ...\n; # (num? Nm)\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%1, %$1] ; # Sym\n  %9 = phi i64 [%4, %$1] ; # Nm\n; # (add Nm Nm)\n  %10 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %9, i64 %9)\n  %11 = extractvalue {i64, i1} %10, 1\n  %12 = extractvalue {i64, i1} %10, 0\n; # (not @@)\n  %13 = icmp eq i1 %11, 0\n  br i1 %13, label %$4, label %$2\n$4:\n  %14 = phi i64 [%7, %$3] ; # Exe\n  %15 = phi i64 [%8, %$3] ; # Sym\n  %16 = phi i64 [%12, %$3] ; # Nm\n; # (add Nm Nm)\n  %17 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %16, i64 %16)\n  %18 = extractvalue {i64, i1} %17, 1\n  %19 = extractvalue {i64, i1} %17, 0\n; # (not @@)\n  %20 = icmp eq i1 %18, 0\n  br label %$2\n$2:\n  %21 = phi i64 [%0, %$1], [%7, %$3], [%14, %$4] ; # Exe\n  %22 = phi i64 [%1, %$1], [%8, %$3], [%15, %$4] ; # Sym\n  %23 = phi i64 [%4, %$1], [%12, %$3], [%19, %$4] ; # Nm\n  %24 = phi i1 [0, %$1], [0, %$3], [%20, %$4] ; # ->\n  br i1 %24, label %$5, label %$6\n$5:\n  %25 = phi i64 [%21, %$2] ; # Exe\n  %26 = phi i64 [%22, %$2] ; # Sym\n  %27 = phi i64 [%23, %$2] ; # Nm\n; # (set (tail Sym) (setq Nm (shr 1 Nm 2)))\n; # (tail Sym)\n  %28 = add i64 %26, -8\n; # (shr 1 Nm 2)\n  %29 = call i64 @llvm.fshr.i64(i64 1, i64 %27, i64 2)\n  %30 = inttoptr i64 %28 to i64*\n  store i64 %29, i64* %30\n; # (db Exe Sym Nm)\n  tail call void @db(i64 %25, i64 %26, i64 %29)\n  br label %$6\n$6:\n  %31 = phi i64 [%21, %$2], [%25, %$5] ; # Exe\n  %32 = phi i64 [%22, %$2], [%26, %$5] ; # Sym\n  %33 = phi i64 [%23, %$2], [%29, %$5] ; # Nm\n  ret void\n}\n\ndefine void @dbTouch(i64, i64) align 8 {\n$1:\n; # (let (Q (tail Sym) Nm (val Q)) (unless (num? Nm) (setq Nm (any (&...\n; # (tail Sym)\n  %2 = add i64 %1, -8\n; # (val Q)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n; # (unless (num? Nm) (setq Nm (any (& Nm -9))) (loop (setq Q (ofs Nm...\n; # (num? Nm)\n  %5 = and i64 %4, 6\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%1, %$1] ; # Sym\n  %9 = phi i64 [%2, %$1] ; # Q\n  %10 = phi i64 [%4, %$1] ; # Nm\n; # (& Nm -9)\n  %11 = and i64 %10, -9\n; # (any (& Nm -9))\n; # (loop (setq Q (ofs Nm 1)) (? (num? (setq Nm (val Q)))))\n  br label %$4\n$4:\n  %12 = phi i64 [%7, %$2], [%21, %$5] ; # Exe\n  %13 = phi i64 [%8, %$2], [%22, %$5] ; # Sym\n  %14 = phi i64 [%9, %$2], [%23, %$5] ; # Q\n  %15 = phi i64 [%11, %$2], [%24, %$5] ; # Nm\n; # (ofs Nm 1)\n  %16 = add i64 %15, 8\n; # (? (num? (setq Nm (val Q))))\n; # (val Q)\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n; # (num? (setq Nm (val Q)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$6, label %$5\n$5:\n  %21 = phi i64 [%12, %$4] ; # Exe\n  %22 = phi i64 [%13, %$4] ; # Sym\n  %23 = phi i64 [%16, %$4] ; # Q\n  %24 = phi i64 [%18, %$4] ; # Nm\n  br label %$4\n$6:\n  %25 = phi i64 [%12, %$4] ; # Exe\n  %26 = phi i64 [%13, %$4] ; # Sym\n  %27 = phi i64 [%16, %$4] ; # Q\n  %28 = phi i64 [%18, %$4] ; # Nm\n  %29 = phi i64 [0, %$4] ; # ->\n  br label %$3\n$3:\n  %30 = phi i64 [%0, %$1], [%25, %$6] ; # Exe\n  %31 = phi i64 [%1, %$1], [%26, %$6] ; # Sym\n  %32 = phi i64 [%2, %$1], [%27, %$6] ; # Q\n  %33 = phi i64 [%4, %$1], [%28, %$6] ; # Nm\n; # (add Nm Nm)\n  %34 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %33, i64 %33)\n  %35 = extractvalue {i64, i1} %34, 1\n  %36 = extractvalue {i64, i1} %34, 0\n; # (unless @@ (setq Nm (add Nm Nm)) (set Q (setq Nm (shr 2 Nm 2))) (...\n  br i1 %35, label %$8, label %$7\n$7:\n  %37 = phi i64 [%30, %$3] ; # Exe\n  %38 = phi i64 [%31, %$3] ; # Sym\n  %39 = phi i64 [%32, %$3] ; # Q\n  %40 = phi i64 [%36, %$3] ; # Nm\n; # (add Nm Nm)\n  %41 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %40, i64 %40)\n  %42 = extractvalue {i64, i1} %41, 1\n  %43 = extractvalue {i64, i1} %41, 0\n; # (set Q (setq Nm (shr 2 Nm 2)))\n; # (shr 2 Nm 2)\n  %44 = call i64 @llvm.fshr.i64(i64 2, i64 %43, i64 2)\n  %45 = inttoptr i64 %39 to i64*\n  store i64 %44, i64* %45\n; # (unless @@ (tailcall (db Exe Sym Nm)))\n  br i1 %42, label %$10, label %$9\n$9:\n  %46 = phi i64 [%37, %$7] ; # Exe\n  %47 = phi i64 [%38, %$7] ; # Sym\n  %48 = phi i64 [%39, %$7] ; # Q\n  %49 = phi i64 [%44, %$7] ; # Nm\n; # (db Exe Sym Nm)\n  tail call void @db(i64 %46, i64 %47, i64 %49)\n  br label %$10\n$10:\n  %50 = phi i64 [%37, %$7], [%46, %$9] ; # Exe\n  %51 = phi i64 [%38, %$7], [%47, %$9] ; # Sym\n  %52 = phi i64 [%39, %$7], [%48, %$9] ; # Q\n  %53 = phi i64 [%44, %$7], [%49, %$9] ; # Nm\n  br label %$8\n$8:\n  %54 = phi i64 [%30, %$3], [%50, %$10] ; # Exe\n  %55 = phi i64 [%31, %$3], [%51, %$10] ; # Sym\n  %56 = phi i64 [%32, %$3], [%52, %$10] ; # Q\n  %57 = phi i64 [%36, %$3], [%53, %$10] ; # Nm\n  ret void\n}\n\ndefine i64 @_Touch(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (when (and (symb? X) (sym? (val (tail X)...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (when (and (symb? X) (sym? (val (tail X)))) (dbTouch Exe X))\n; # (and (symb? X) (sym? (val (tail X))))\n; # (symb? X)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%18, %$2] ; # X\n; # (tail X)\n  %24 = add i64 %23, -8\n; # (val (tail X))\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n; # (sym? (val (tail X)))\n  %27 = and i64 %26, 8\n  %28 = icmp ne i64 %27, 0\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %30 = phi i64 [%18, %$2], [%23, %$8] ; # X\n  %31 = phi i1 [0, %$2], [%28, %$8] ; # ->\n  br i1 %31, label %$9, label %$10\n$9:\n  %32 = phi i64 [%29, %$7] ; # Exe\n  %33 = phi i64 [%30, %$7] ; # X\n; # (dbTouch Exe X)\n  call void @dbTouch(i64 %32, i64 %33)\n  br label %$10\n$10:\n  %34 = phi i64 [%29, %$7], [%32, %$9] ; # Exe\n  %35 = phi i64 [%30, %$7], [%33, %$9] ; # X\n  ret i64 %35\n}\n\ndefine void @dbZap(i64) align 8 {\n$1:\n; # (let Tail (val (tail Sym)) (unless (num? Tail) (setq Tail (& Tail...\n; # (tail Sym)\n  %1 = add i64 %0, -8\n; # (val (tail Sym))\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (unless (num? Tail) (setq Tail (& Tail -9)) (loop (? (num? (shift...\n; # (num? Tail)\n  %4 = and i64 %3, 6\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$3, label %$2\n$2:\n  %6 = phi i64 [%0, %$1] ; # Sym\n  %7 = phi i64 [%3, %$1] ; # Tail\n; # (& Tail -9)\n  %8 = and i64 %7, -9\n; # (loop (? (num? (shift Tail))))\n  br label %$4\n$4:\n  %9 = phi i64 [%6, %$2], [%16, %$5] ; # Sym\n  %10 = phi i64 [%8, %$2], [%17, %$5] ; # Tail\n; # (? (num? (shift Tail)))\n; # (shift Tail)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n; # (num? (shift Tail))\n  %14 = and i64 %13, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$5:\n  %16 = phi i64 [%9, %$4] ; # Sym\n  %17 = phi i64 [%13, %$4] ; # Tail\n  br label %$4\n$6:\n  %18 = phi i64 [%9, %$4] ; # Sym\n  %19 = phi i64 [%13, %$4] ; # Tail\n  %20 = phi i64 [0, %$4] ; # ->\n; # (sym Tail)\n  %21 = or i64 %19, 8\n  br label %$3\n$3:\n  %22 = phi i64 [%0, %$1], [%18, %$6] ; # Sym\n  %23 = phi i64 [%3, %$1], [%21, %$6] ; # Tail\n; # (set (tail Sym) (shr 3 (shl Tail 2) 2))\n; # (tail Sym)\n  %24 = add i64 %22, -8\n; # (shl Tail 2)\n  %25 = shl i64 %23, 2\n; # (shr 3 (shl Tail 2) 2)\n  %26 = call i64 @llvm.fshr.i64(i64 3, i64 %25, i64 2)\n  %27 = inttoptr i64 %24 to i64*\n  store i64 %26, i64* %27\n; # (set Sym $Nil)\n  %28 = inttoptr i64 %22 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %28\n  ret void\n}\n\ndefine i64 @_Commit(i64) align 8 {\n$1:\n; # (let (Args (cdr Exe) Rpc (save (eval (++ Args))) Notify NO) (set ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ Args)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ Args))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ Args)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (set $Protect (inc (val $Protect)))\n; # (val $Protect)\n  %29 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (inc (val $Protect))\n  %30 = add i32 %29, 1\n  store i32 %30, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (wrLockDb)\n  call void @wrLockDb()\n; # (when (val $DbJnl) (lockJnl))\n; # (val $DbJnl)\n  %31 = load i8*, i8** @$DbJnl\n  %32 = icmp ne i8* %31, null\n  br i1 %32, label %$7, label %$8\n$7:\n  %33 = phi i64 [%0, %$2] ; # Exe\n  %34 = phi i64 [%6, %$2] ; # Args\n  %35 = phi i64 [%20, %$2] ; # Rpc\n  %36 = phi i1 [0, %$2] ; # Notify\n; # (lockJnl)\n  call void @lockJnl()\n  br label %$8\n$8:\n  %37 = phi i64 [%0, %$2], [%33, %$7] ; # Exe\n  %38 = phi i64 [%6, %$2], [%34, %$7] ; # Args\n  %39 = phi i64 [%20, %$2], [%35, %$7] ; # Rpc\n  %40 = phi i1 [0, %$2], [%36, %$7] ; # Notify\n; # (when (val $DbLog) (let (Db (val $DbFiles) C (val $DBs)) (loop (l...\n; # (val $DbLog)\n  %41 = load i8*, i8** @$DbLog\n  %42 = icmp ne i8* %41, null\n  br i1 %42, label %$9, label %$10\n$9:\n  %43 = phi i64 [%37, %$8] ; # Exe\n  %44 = phi i64 [%38, %$8] ; # Args\n  %45 = phi i64 [%39, %$8] ; # Rpc\n  %46 = phi i1 [%40, %$8] ; # Notify\n; # (let (Db (val $DbFiles) C (val $DBs)) (loop (let Db: (dbFile Db) ...\n; # (val $DbFiles)\n  %47 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %48 = load i32, i32* @$DBs\n; # (loop (let Db: (dbFile Db) (Db: drt NO) (Db: flu 0)) (? (=0 (dec ...\n  br label %$11\n$11:\n  %49 = phi i64 [%43, %$9], [%61, %$12] ; # Exe\n  %50 = phi i64 [%44, %$9], [%62, %$12] ; # Args\n  %51 = phi i64 [%45, %$9], [%63, %$12] ; # Rpc\n  %52 = phi i1 [%46, %$9], [%64, %$12] ; # Notify\n  %53 = phi i8* [%47, %$9], [%67, %$12] ; # Db\n  %54 = phi i32 [%48, %$9], [%66, %$12] ; # C\n; # (let Db: (dbFile Db) (Db: drt NO) (Db: flu 0))\n; # (Db: drt NO)\n  %55 = getelementptr i8, i8* %53, i32 41\n  %56 = bitcast i8* %55 to i1*\n  store i1 0, i1* %56\n; # (Db: flu 0)\n  %57 = getelementptr i8, i8* %53, i32 32\n  %58 = bitcast i8* %57 to i64*\n  store i64 0, i64* %58\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %59 = sub i32 %54, 1\n; # (=0 (dec 'C))\n  %60 = icmp eq i32 %59, 0\n  br i1 %60, label %$13, label %$12\n$12:\n  %61 = phi i64 [%49, %$11] ; # Exe\n  %62 = phi i64 [%50, %$11] ; # Args\n  %63 = phi i64 [%51, %$11] ; # Rpc\n  %64 = phi i1 [%52, %$11] ; # Notify\n  %65 = phi i8* [%53, %$11] ; # Db\n  %66 = phi i32 [%59, %$11] ; # C\n; # (ofs Db (dbFile T))\n  %67 = getelementptr i8, i8* %65, i32 48\n  br label %$11\n$13:\n  %68 = phi i64 [%49, %$11] ; # Exe\n  %69 = phi i64 [%50, %$11] ; # Args\n  %70 = phi i64 [%51, %$11] ; # Rpc\n  %71 = phi i1 [%52, %$11] ; # Notify\n  %72 = phi i8* [%53, %$11] ; # Db\n  %73 = phi i32 [%59, %$11] ; # C\n  %74 = phi i64 [0, %$11] ; # ->\n; # (let (Tos 0 P (val $Extern)) (loop (loop (let X (cdr P) (? (atom ...\n; # (val $Extern)\n  %75 = load i64, i64* @$Extern\n; # (loop (loop (let X (cdr P) (? (atom (car X))) (let Y P (setq P @)...\n  br label %$14\n$14:\n  %76 = phi i64 [%68, %$13], [%317, %$32] ; # Exe\n  %77 = phi i64 [%69, %$13], [%318, %$32] ; # Args\n  %78 = phi i64 [%70, %$13], [%319, %$32] ; # Rpc\n  %79 = phi i1 [%71, %$13], [%320, %$32] ; # Notify\n  %80 = phi i64 [0, %$13], [%321, %$32] ; # Tos\n  %81 = phi i64 [%75, %$13], [%322, %$32] ; # P\n; # (loop (let X (cdr P) (? (atom (car X))) (let Y P (setq P @) (set ...\n  br label %$15\n$15:\n  %82 = phi i64 [%76, %$14], [%95, %$16] ; # Exe\n  %83 = phi i64 [%77, %$14], [%96, %$16] ; # Args\n  %84 = phi i64 [%78, %$14], [%97, %$16] ; # Rpc\n  %85 = phi i1 [%79, %$14], [%98, %$16] ; # Notify\n  %86 = phi i64 [%80, %$14], [%100, %$16] ; # Tos\n  %87 = phi i64 [%81, %$14], [%92, %$16] ; # P\n; # (let X (cdr P) (? (atom (car X))) (let Y P (setq P @) (set X Tos)...\n; # (cdr P)\n  %88 = inttoptr i64 %87 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n; # (? (atom (car X)))\n; # (car X)\n  %91 = inttoptr i64 %90 to i64*\n  %92 = load i64, i64* %91\n; # (atom (car X))\n  %93 = and i64 %92, 15\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$17, label %$16\n$16:\n  %95 = phi i64 [%82, %$15] ; # Exe\n  %96 = phi i64 [%83, %$15] ; # Args\n  %97 = phi i64 [%84, %$15] ; # Rpc\n  %98 = phi i1 [%85, %$15] ; # Notify\n  %99 = phi i64 [%86, %$15] ; # Tos\n  %100 = phi i64 [%87, %$15] ; # P\n  %101 = phi i64 [%90, %$15] ; # X\n; # (let Y P (setq P @) (set X Tos) (setq Tos Y))\n; # (set X Tos)\n  %102 = inttoptr i64 %101 to i64*\n  store i64 %99, i64* %102\n  br label %$15\n$17:\n  %103 = phi i64 [%82, %$15] ; # Exe\n  %104 = phi i64 [%83, %$15] ; # Args\n  %105 = phi i64 [%84, %$15] ; # Rpc\n  %106 = phi i1 [%85, %$15] ; # Notify\n  %107 = phi i64 [%86, %$15] ; # Tos\n  %108 = phi i64 [%87, %$15] ; # P\n  %109 = phi i64 [0, %$15] ; # ->\n; # (loop (let (Nm (name (& (val (tail (val P))) -9)) N (add Nm Nm)) ...\n  br label %$18\n$18:\n  %110 = phi i64 [%103, %$17], [%310, %$38] ; # Exe\n  %111 = phi i64 [%104, %$17], [%311, %$38] ; # Args\n  %112 = phi i64 [%105, %$17], [%312, %$38] ; # Rpc\n  %113 = phi i1 [%106, %$17], [%313, %$38] ; # Notify\n  %114 = phi i64 [%107, %$17], [%314, %$38] ; # Tos\n  %115 = phi i64 [%108, %$17], [%315, %$38] ; # P\n; # (let (Nm (name (& (val (tail (val P))) -9)) N (add Nm Nm)) (when ...\n; # (val P)\n  %116 = inttoptr i64 %115 to i64*\n  %117 = load i64, i64* %116\n; # (tail (val P))\n  %118 = add i64 %117, -8\n; # (val (tail (val P)))\n  %119 = inttoptr i64 %118 to i64*\n  %120 = load i64, i64* %119\n; # (& (val (tail (val P))) -9)\n  %121 = and i64 %120, -9\n; # (name (& (val (tail (val P))) -9))\n  br label %$19\n$19:\n  %122 = phi i64 [%121, %$18], [%128, %$20] ; # Tail\n  %123 = and i64 %122, 6\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$21, label %$20\n$20:\n  %125 = phi i64 [%122, %$19] ; # Tail\n  %126 = inttoptr i64 %125 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  %128 = load i64, i64* %127\n  br label %$19\n$21:\n  %129 = phi i64 [%122, %$19] ; # Tail\n; # (add Nm Nm)\n  %130 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %129, i64 %129)\n  %131 = extractvalue {i64, i1} %130, 1\n  %132 = extractvalue {i64, i1} %130, 0\n; # (when @@ (let F (objFile Nm) (when (> (val $DBs) F) (set $DbFile ...\n  br i1 %131, label %$22, label %$23\n$22:\n  %133 = phi i64 [%110, %$21] ; # Exe\n  %134 = phi i64 [%111, %$21] ; # Args\n  %135 = phi i64 [%112, %$21] ; # Rpc\n  %136 = phi i1 [%113, %$21] ; # Notify\n  %137 = phi i64 [%114, %$21] ; # Tos\n  %138 = phi i64 [%115, %$21] ; # P\n  %139 = phi i64 [%129, %$21] ; # Nm\n  %140 = phi i64 [%132, %$21] ; # N\n; # (let F (objFile Nm) (when (> (val $DBs) F) (set $DbFile (ofs (val...\n; # (objFile Nm)\n  %141 = call i32 @objFile(i64 %139)\n; # (when (> (val $DBs) F) (set $DbFile (ofs (val $DbFiles) (* F (dbF...\n; # (val $DBs)\n  %142 = load i32, i32* @$DBs\n; # (> (val $DBs) F)\n  %143 = icmp sgt i32 %142, %141\n  br i1 %143, label %$24, label %$25\n$24:\n  %144 = phi i64 [%133, %$22] ; # Exe\n  %145 = phi i64 [%134, %$22] ; # Args\n  %146 = phi i64 [%135, %$22] ; # Rpc\n  %147 = phi i1 [%136, %$22] ; # Notify\n  %148 = phi i64 [%137, %$22] ; # Tos\n  %149 = phi i64 [%138, %$22] ; # P\n  %150 = phi i64 [%139, %$22] ; # Nm\n  %151 = phi i64 [%140, %$22] ; # N\n  %152 = phi i32 [%141, %$22] ; # F\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %153 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %154 = mul i32 %152, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %155 = getelementptr i8, i8* %153, i32 %154\n  store i8* %155, i8** @$DbFile\n; # (objId Nm)\n  %156 = call i64 @objId(i64 %150)\n; # (shl (objId Nm) 6)\n  %157 = shl i64 %156, 6\n; # (rdBlock (shl (objId Nm) 6))\n  %158 = call i8* @rdBlock(i64 %157)\n; # (loop (logBlock) (? (=0 (val $BlkLink))) (rdBlock @))\n  br label %$26\n$26:\n  %159 = phi i64 [%144, %$24], [%170, %$27] ; # Exe\n  %160 = phi i64 [%145, %$24], [%171, %$27] ; # Args\n  %161 = phi i64 [%146, %$24], [%172, %$27] ; # Rpc\n  %162 = phi i1 [%147, %$24], [%173, %$27] ; # Notify\n  %163 = phi i64 [%148, %$24], [%174, %$27] ; # Tos\n  %164 = phi i64 [%149, %$24], [%175, %$27] ; # P\n  %165 = phi i64 [%150, %$24], [%176, %$27] ; # Nm\n  %166 = phi i64 [%151, %$24], [%177, %$27] ; # N\n  %167 = phi i32 [%152, %$24], [%178, %$27] ; # F\n; # (logBlock)\n  call void @logBlock()\n; # (? (=0 (val $BlkLink)))\n; # (val $BlkLink)\n  %168 = load i64, i64* @$BlkLink\n; # (=0 (val $BlkLink))\n  %169 = icmp eq i64 %168, 0\n  br i1 %169, label %$28, label %$27\n$27:\n  %170 = phi i64 [%159, %$26] ; # Exe\n  %171 = phi i64 [%160, %$26] ; # Args\n  %172 = phi i64 [%161, %$26] ; # Rpc\n  %173 = phi i1 [%162, %$26] ; # Notify\n  %174 = phi i64 [%163, %$26] ; # Tos\n  %175 = phi i64 [%164, %$26] ; # P\n  %176 = phi i64 [%165, %$26] ; # Nm\n  %177 = phi i64 [%166, %$26] ; # N\n  %178 = phi i32 [%167, %$26] ; # F\n; # (rdBlock @)\n  %179 = call i8* @rdBlock(i64 %168)\n  br label %$26\n$28:\n  %180 = phi i64 [%159, %$26] ; # Exe\n  %181 = phi i64 [%160, %$26] ; # Args\n  %182 = phi i64 [%161, %$26] ; # Rpc\n  %183 = phi i1 [%162, %$26] ; # Notify\n  %184 = phi i64 [%163, %$26] ; # Tos\n  %185 = phi i64 [%164, %$26] ; # P\n  %186 = phi i64 [%165, %$26] ; # Nm\n  %187 = phi i64 [%166, %$26] ; # N\n  %188 = phi i32 [%167, %$26] ; # F\n  %189 = phi i64 [0, %$26] ; # ->\n; # (let Db: (dbFile (val $DbFile)) (Db: drt YES) (add N N) (unless @...\n; # (val $DbFile)\n  %190 = load i8*, i8** @$DbFile\n; # (Db: drt YES)\n  %191 = getelementptr i8, i8* %190, i32 41\n  %192 = bitcast i8* %191 to i1*\n  store i1 1, i1* %192\n; # (add N N)\n  %193 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %187, i64 %187)\n  %194 = extractvalue {i64, i1} %193, 1\n  %195 = extractvalue {i64, i1} %193, 0\n; # (unless @@ (Db: flu (inc (Db: flu))))\n  br i1 %194, label %$30, label %$29\n$29:\n  %196 = phi i64 [%180, %$28] ; # Exe\n  %197 = phi i64 [%181, %$28] ; # Args\n  %198 = phi i64 [%182, %$28] ; # Rpc\n  %199 = phi i1 [%183, %$28] ; # Notify\n  %200 = phi i64 [%184, %$28] ; # Tos\n  %201 = phi i64 [%185, %$28] ; # P\n  %202 = phi i64 [%186, %$28] ; # Nm\n  %203 = phi i64 [%187, %$28] ; # N\n  %204 = phi i32 [%188, %$28] ; # F\n; # (Db: flu (inc (Db: flu)))\n  %205 = getelementptr i8, i8* %190, i32 32\n  %206 = bitcast i8* %205 to i64*\n  %207 = getelementptr i8, i8* %190, i32 32\n  %208 = bitcast i8* %207 to i64*\n  %209 = load i64, i64* %208\n  %210 = add i64 %209, 1\n  store i64 %210, i64* %206\n  br label %$30\n$30:\n  %211 = phi i64 [%180, %$28], [%196, %$29] ; # Exe\n  %212 = phi i64 [%181, %$28], [%197, %$29] ; # Args\n  %213 = phi i64 [%182, %$28], [%198, %$29] ; # Rpc\n  %214 = phi i1 [%183, %$28], [%199, %$29] ; # Notify\n  %215 = phi i64 [%184, %$28], [%200, %$29] ; # Tos\n  %216 = phi i64 [%185, %$28], [%201, %$29] ; # P\n  %217 = phi i64 [%186, %$28], [%202, %$29] ; # Nm\n  %218 = phi i64 [%187, %$28], [%203, %$29] ; # N\n  %219 = phi i32 [%188, %$28], [%204, %$29] ; # F\n  br label %$25\n$25:\n  %220 = phi i64 [%133, %$22], [%211, %$30] ; # Exe\n  %221 = phi i64 [%134, %$22], [%212, %$30] ; # Args\n  %222 = phi i64 [%135, %$22], [%213, %$30] ; # Rpc\n  %223 = phi i1 [%136, %$22], [%214, %$30] ; # Notify\n  %224 = phi i64 [%137, %$22], [%215, %$30] ; # Tos\n  %225 = phi i64 [%138, %$22], [%216, %$30] ; # P\n  %226 = phi i64 [%139, %$22], [%217, %$30] ; # Nm\n  %227 = phi i64 [%140, %$22], [%218, %$30] ; # N\n  %228 = phi i32 [%141, %$22], [%219, %$30] ; # F\n  br label %$23\n$23:\n  %229 = phi i64 [%110, %$21], [%220, %$25] ; # Exe\n  %230 = phi i64 [%111, %$21], [%221, %$25] ; # Args\n  %231 = phi i64 [%112, %$21], [%222, %$25] ; # Rpc\n  %232 = phi i1 [%113, %$21], [%223, %$25] ; # Notify\n  %233 = phi i64 [%114, %$21], [%224, %$25] ; # Tos\n  %234 = phi i64 [%115, %$21], [%225, %$25] ; # P\n  %235 = phi i64 [%129, %$21], [%226, %$25] ; # Nm\n  %236 = phi i64 [%132, %$21], [%227, %$25] ; # N\n; # (let X (cdr P) (? (pair (cdr X)) (let Y P (setq P @) (set 2 X Tos...\n; # (cdr P)\n  %237 = inttoptr i64 %234 to i64*\n  %238 = getelementptr i64, i64* %237, i32 1\n  %239 = load i64, i64* %238\n; # (? (pair (cdr X)) (let Y P (setq P @) (set 2 X Tos) (setq Tos (| ...\n; # (cdr X)\n  %240 = inttoptr i64 %239 to i64*\n  %241 = getelementptr i64, i64* %240, i32 1\n  %242 = load i64, i64* %241\n; # (pair (cdr X))\n  %243 = and i64 %242, 15\n  %244 = icmp eq i64 %243, 0\n  br i1 %244, label %$33, label %$31\n$33:\n  %245 = phi i64 [%229, %$23] ; # Exe\n  %246 = phi i64 [%230, %$23] ; # Args\n  %247 = phi i64 [%231, %$23] ; # Rpc\n  %248 = phi i1 [%232, %$23] ; # Notify\n  %249 = phi i64 [%233, %$23] ; # Tos\n  %250 = phi i64 [%234, %$23] ; # P\n  %251 = phi i64 [%239, %$23] ; # X\n; # (let Y P (setq P @) (set 2 X Tos) (setq Tos (| Y 8)))\n; # (set 2 X Tos)\n  %252 = inttoptr i64 %251 to i64*\n  %253 = getelementptr i64, i64* %252, i32 1\n  store i64 %249, i64* %253\n; # (| Y 8)\n  %254 = or i64 %250, 8\n  br label %$32\n$31:\n  %255 = phi i64 [%229, %$23] ; # Exe\n  %256 = phi i64 [%230, %$23] ; # Args\n  %257 = phi i64 [%231, %$23] ; # Rpc\n  %258 = phi i1 [%232, %$23] ; # Notify\n  %259 = phi i64 [%233, %$23] ; # Tos\n  %260 = phi i64 [%234, %$23] ; # P\n  %261 = phi i64 [%239, %$23] ; # X\n; # (loop (unless Tos (goto 1)) (? (=0 (& Tos 8)) (let (X Tos Y (cdr ...\n  br label %$34\n$34:\n  %262 = phi i64 [%255, %$31], [%295, %$37] ; # Exe\n  %263 = phi i64 [%256, %$31], [%296, %$37] ; # Args\n  %264 = phi i64 [%257, %$31], [%297, %$37] ; # Rpc\n  %265 = phi i1 [%258, %$31], [%298, %$37] ; # Notify\n  %266 = phi i64 [%259, %$31], [%307, %$37] ; # Tos\n  %267 = phi i64 [%260, %$31], [%301, %$37] ; # P\n; # (unless Tos (goto 1))\n  %268 = icmp ne i64 %266, 0\n  br i1 %268, label %$36, label %$35\n$35:\n  %269 = phi i64 [%262, %$34] ; # Exe\n  %270 = phi i64 [%263, %$34] ; # Args\n  %271 = phi i64 [%264, %$34] ; # Rpc\n  %272 = phi i1 [%265, %$34] ; # Notify\n  %273 = phi i64 [%266, %$34] ; # Tos\n  %274 = phi i64 [%267, %$34] ; # P\n; # (goto 1)\n  br label %$-1\n$36:\n  %275 = phi i64 [%262, %$34] ; # Exe\n  %276 = phi i64 [%263, %$34] ; # Args\n  %277 = phi i64 [%264, %$34] ; # Rpc\n  %278 = phi i1 [%265, %$34] ; # Notify\n  %279 = phi i64 [%266, %$34] ; # Tos\n  %280 = phi i64 [%267, %$34] ; # P\n; # (? (=0 (& Tos 8)) (let (X Tos Y (cdr X)) (setq Tos (car Y)) (set ...\n; # (& Tos 8)\n  %281 = and i64 %279, 8\n; # (=0 (& Tos 8))\n  %282 = icmp eq i64 %281, 0\n  br i1 %282, label %$39, label %$37\n$39:\n  %283 = phi i64 [%275, %$36] ; # Exe\n  %284 = phi i64 [%276, %$36] ; # Args\n  %285 = phi i64 [%277, %$36] ; # Rpc\n  %286 = phi i1 [%278, %$36] ; # Notify\n  %287 = phi i64 [%279, %$36] ; # Tos\n  %288 = phi i64 [%280, %$36] ; # P\n; # (let (X Tos Y (cdr X)) (setq Tos (car Y)) (set Y P) (setq P X))\n; # (cdr X)\n  %289 = inttoptr i64 %287 to i64*\n  %290 = getelementptr i64, i64* %289, i32 1\n  %291 = load i64, i64* %290\n; # (car Y)\n  %292 = inttoptr i64 %291 to i64*\n  %293 = load i64, i64* %292\n; # (set Y P)\n  %294 = inttoptr i64 %291 to i64*\n  store i64 %288, i64* %294\n  br label %$38\n$37:\n  %295 = phi i64 [%275, %$36] ; # Exe\n  %296 = phi i64 [%276, %$36] ; # Args\n  %297 = phi i64 [%277, %$36] ; # Rpc\n  %298 = phi i1 [%278, %$36] ; # Notify\n  %299 = phi i64 [%279, %$36] ; # Tos\n  %300 = phi i64 [%280, %$36] ; # P\n; # (& Tos -9)\n  %301 = and i64 %299, -9\n; # (let (X Tos Y (cdr X)) (setq Tos (cdr Y)) (set 2 Y P) (setq P X))...\n; # (cdr X)\n  %302 = inttoptr i64 %301 to i64*\n  %303 = getelementptr i64, i64* %302, i32 1\n  %304 = load i64, i64* %303\n; # (cdr Y)\n  %305 = inttoptr i64 %304 to i64*\n  %306 = getelementptr i64, i64* %305, i32 1\n  %307 = load i64, i64* %306\n; # (set 2 Y P)\n  %308 = inttoptr i64 %304 to i64*\n  %309 = getelementptr i64, i64* %308, i32 1\n  store i64 %300, i64* %309\n  br label %$34\n$38:\n  %310 = phi i64 [%283, %$39] ; # Exe\n  %311 = phi i64 [%284, %$39] ; # Args\n  %312 = phi i64 [%285, %$39] ; # Rpc\n  %313 = phi i1 [%286, %$39] ; # Notify\n  %314 = phi i64 [%293, %$39] ; # Tos\n  %315 = phi i64 [%287, %$39] ; # P\n  %316 = phi i64 [%287, %$39] ; # ->\n  br label %$18\n$32:\n  %317 = phi i64 [%245, %$33] ; # Exe\n  %318 = phi i64 [%246, %$33] ; # Args\n  %319 = phi i64 [%247, %$33] ; # Rpc\n  %320 = phi i1 [%248, %$33] ; # Notify\n  %321 = phi i64 [%254, %$33] ; # Tos\n  %322 = phi i64 [%242, %$33] ; # P\n  %323 = phi i64 [%254, %$33] ; # ->\n  br label %$14\n$40:\n; # (: 1 (let (P (val $DbFiles) C (val $DBs)) (loop (when ((dbFile P)...\n  br label %$-1\n$-1:\n  %324 = phi i64 [%269, %$35], [%317, %$40] ; # Exe\n  %325 = phi i64 [%270, %$35], [%318, %$40] ; # Args\n  %326 = phi i64 [%271, %$35], [%319, %$40] ; # Rpc\n  %327 = phi i1 [%272, %$35], [%320, %$40] ; # Notify\n; # (let (P (val $DbFiles) C (val $DBs)) (loop (when ((dbFile P) flu)...\n; # (val $DbFiles)\n  %328 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %329 = load i32, i32* @$DBs\n; # (loop (when ((dbFile P) flu) (let N @ (set $DbFile P) (rdBlock 0)...\n  br label %$41\n$41:\n  %330 = phi i64 [%324, %$-1], [%389, %$48] ; # Exe\n  %331 = phi i64 [%325, %$-1], [%390, %$48] ; # Args\n  %332 = phi i64 [%326, %$-1], [%391, %$48] ; # Rpc\n  %333 = phi i1 [%327, %$-1], [%392, %$48] ; # Notify\n  %334 = phi i8* [%328, %$-1], [%395, %$48] ; # P\n  %335 = phi i32 [%329, %$-1], [%394, %$48] ; # C\n; # (when ((dbFile P) flu) (let N @ (set $DbFile P) (rdBlock 0) (loop...\n; # ((dbFile P) flu)\n  %336 = getelementptr i8, i8* %334, i32 32\n  %337 = bitcast i8* %336 to i64*\n  %338 = load i64, i64* %337\n  %339 = icmp ne i64 %338, 0\n  br i1 %339, label %$42, label %$43\n$42:\n  %340 = phi i64 [%330, %$41] ; # Exe\n  %341 = phi i64 [%331, %$41] ; # Args\n  %342 = phi i64 [%332, %$41] ; # Rpc\n  %343 = phi i1 [%333, %$41] ; # Notify\n  %344 = phi i8* [%334, %$41] ; # P\n  %345 = phi i32 [%335, %$41] ; # C\n; # (let N @ (set $DbFile P) (rdBlock 0) (loop (logBlock) (? (=0 (dec...\n; # (set $DbFile P)\n  store i8* %344, i8** @$DbFile\n; # (rdBlock 0)\n  %346 = call i8* @rdBlock(i64 0)\n; # (loop (logBlock) (? (=0 (dec 'N))) (? (=0 (val $BlkLink))) (rdBlo...\n  br label %$44\n$44:\n  %347 = phi i64 [%340, %$42], [%365, %$47] ; # Exe\n  %348 = phi i64 [%341, %$42], [%366, %$47] ; # Args\n  %349 = phi i64 [%342, %$42], [%367, %$47] ; # Rpc\n  %350 = phi i1 [%343, %$42], [%368, %$47] ; # Notify\n  %351 = phi i8* [%344, %$42], [%369, %$47] ; # P\n  %352 = phi i32 [%345, %$42], [%370, %$47] ; # C\n  %353 = phi i64 [%338, %$42], [%371, %$47] ; # N\n; # (logBlock)\n  call void @logBlock()\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %354 = sub i64 %353, 1\n; # (=0 (dec 'N))\n  %355 = icmp eq i64 %354, 0\n  br i1 %355, label %$46, label %$45\n$45:\n  %356 = phi i64 [%347, %$44] ; # Exe\n  %357 = phi i64 [%348, %$44] ; # Args\n  %358 = phi i64 [%349, %$44] ; # Rpc\n  %359 = phi i1 [%350, %$44] ; # Notify\n  %360 = phi i8* [%351, %$44] ; # P\n  %361 = phi i32 [%352, %$44] ; # C\n  %362 = phi i64 [%354, %$44] ; # N\n; # (? (=0 (val $BlkLink)))\n; # (val $BlkLink)\n  %363 = load i64, i64* @$BlkLink\n; # (=0 (val $BlkLink))\n  %364 = icmp eq i64 %363, 0\n  br i1 %364, label %$46, label %$47\n$47:\n  %365 = phi i64 [%356, %$45] ; # Exe\n  %366 = phi i64 [%357, %$45] ; # Args\n  %367 = phi i64 [%358, %$45] ; # Rpc\n  %368 = phi i1 [%359, %$45] ; # Notify\n  %369 = phi i8* [%360, %$45] ; # P\n  %370 = phi i32 [%361, %$45] ; # C\n  %371 = phi i64 [%362, %$45] ; # N\n; # (rdBlock @)\n  %372 = call i8* @rdBlock(i64 %363)\n  br label %$44\n$46:\n  %373 = phi i64 [%347, %$44], [%356, %$45] ; # Exe\n  %374 = phi i64 [%348, %$44], [%357, %$45] ; # Args\n  %375 = phi i64 [%349, %$44], [%358, %$45] ; # Rpc\n  %376 = phi i1 [%350, %$44], [%359, %$45] ; # Notify\n  %377 = phi i8* [%351, %$44], [%360, %$45] ; # P\n  %378 = phi i32 [%352, %$44], [%361, %$45] ; # C\n  %379 = phi i64 [%354, %$44], [%362, %$45] ; # N\n  %380 = phi i64 [0, %$44], [0, %$45] ; # ->\n  br label %$43\n$43:\n  %381 = phi i64 [%330, %$41], [%373, %$46] ; # Exe\n  %382 = phi i64 [%331, %$41], [%374, %$46] ; # Args\n  %383 = phi i64 [%332, %$41], [%375, %$46] ; # Rpc\n  %384 = phi i1 [%333, %$41], [%376, %$46] ; # Notify\n  %385 = phi i8* [%334, %$41], [%377, %$46] ; # P\n  %386 = phi i32 [%335, %$41], [%378, %$46] ; # C\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %387 = sub i32 %386, 1\n; # (=0 (dec 'C))\n  %388 = icmp eq i32 %387, 0\n  br i1 %388, label %$49, label %$48\n$48:\n  %389 = phi i64 [%381, %$43] ; # Exe\n  %390 = phi i64 [%382, %$43] ; # Args\n  %391 = phi i64 [%383, %$43] ; # Rpc\n  %392 = phi i1 [%384, %$43] ; # Notify\n  %393 = phi i8* [%385, %$43] ; # P\n  %394 = phi i32 [%387, %$43] ; # C\n; # (ofs P (dbFile T))\n  %395 = getelementptr i8, i8* %393, i32 48\n  br label %$41\n$49:\n  %396 = phi i64 [%381, %$43] ; # Exe\n  %397 = phi i64 [%382, %$43] ; # Args\n  %398 = phi i64 [%383, %$43] ; # Rpc\n  %399 = phi i1 [%384, %$43] ; # Notify\n  %400 = phi i8* [%385, %$43] ; # P\n  %401 = phi i32 [%387, %$43] ; # C\n  %402 = phi i64 [0, %$43] ; # ->\n; # (let Log (val $DbLog) (putc_unlocked (hex \"FF\") Log) (putc_unlock...\n; # (val $DbLog)\n  %403 = load i8*, i8** @$DbLog\n; # (putc_unlocked (hex \"FF\") Log)\n  %404 = call i32 @putc_unlocked(i32 255, i8* %403)\n; # (putc_unlocked (hex \"FF\") Log)\n  %405 = call i32 @putc_unlocked(i32 255, i8* %403)\n; # (fflush Log)\n  %406 = call i32 @fflush(i8* %403)\n; # (when (lt0 (fsync (fileno Log))) (err Exe 0 ($ \"Transaction fsync...\n; # (fileno Log)\n  %407 = call i32 @fileno(i8* %403)\n; # (fsync (fileno Log))\n  %408 = call i32 @fsync(i32 %407)\n; # (lt0 (fsync (fileno Log)))\n  %409 = icmp slt i32 %408, 0\n  br i1 %409, label %$50, label %$51\n$50:\n  %410 = phi i64 [%396, %$49] ; # Exe\n  %411 = phi i64 [%397, %$49] ; # Args\n  %412 = phi i64 [%398, %$49] ; # Rpc\n  %413 = phi i1 [%399, %$49] ; # Notify\n  %414 = phi i8* [%403, %$49] ; # Log\n; # (strErrno)\n  %415 = call i8* @strErrno()\n; # (err Exe 0 ($ \"Transaction fsync error: %s\") (strErrno))\n  call void @err(i64 %410, i64 0, i8* bitcast ([28 x i8]* @$67 to i8*), i8* %415)\n  unreachable\n$51:\n  %416 = phi i64 [%396, %$49] ; # Exe\n  %417 = phi i64 [%397, %$49] ; # Args\n  %418 = phi i64 [%398, %$49] ; # Rpc\n  %419 = phi i1 [%399, %$49] ; # Notify\n  %420 = phi i8* [%403, %$49] ; # Log\n  br label %$10\n$10:\n  %421 = phi i64 [%37, %$8], [%416, %$51] ; # Exe\n  %422 = phi i64 [%38, %$8], [%417, %$51] ; # Args\n  %423 = phi i64 [%39, %$8], [%418, %$51] ; # Rpc\n  %424 = phi i1 [%40, %$8], [%419, %$51] ; # Notify\n; # (++ Args)\n  %425 = inttoptr i64 %422 to i64*\n  %426 = getelementptr i64, i64* %425, i32 1\n  %427 = load i64, i64* %426\n  %428 = load i64, i64* %425\n; # (eval (++ Args))\n  %429 = and i64 %428, 6\n  %430 = icmp ne i64 %429, 0\n  br i1 %430, label %$54, label %$53\n$54:\n  %431 = phi i64 [%428, %$10] ; # X\n  br label %$52\n$53:\n  %432 = phi i64 [%428, %$10] ; # X\n  %433 = and i64 %432, 8\n  %434 = icmp ne i64 %433, 0\n  br i1 %434, label %$56, label %$55\n$56:\n  %435 = phi i64 [%432, %$53] ; # X\n  %436 = inttoptr i64 %435 to i64*\n  %437 = load i64, i64* %436\n  br label %$52\n$55:\n  %438 = phi i64 [%432, %$53] ; # X\n  %439 = call i64 @evList(i64 %438)\n  br label %$52\n$52:\n  %440 = phi i64 [%431, %$54], [%435, %$56], [%438, %$55] ; # X\n  %441 = phi i64 [%431, %$54], [%437, %$56], [%439, %$55] ; # ->\n; # (when (and (not (nil? Rpc)) (or (val $Tell) (val $Children))) (se...\n; # (and (not (nil? Rpc)) (or (val $Tell) (val $Children)))\n; # (nil? Rpc)\n  %442 = icmp eq i64 %423, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Rpc))\n  %443 = icmp eq i1 %442, 0\n  br i1 %443, label %$58, label %$57\n$58:\n  %444 = phi i64 [%421, %$52] ; # Exe\n  %445 = phi i64 [%427, %$52] ; # Args\n  %446 = phi i64 [%423, %$52] ; # Rpc\n  %447 = phi i1 [%424, %$52] ; # Notify\n; # (or (val $Tell) (val $Children))\n; # (val $Tell)\n  %448 = load i32, i32* @$Tell\n  %449 = icmp ne i32 %448, 0\n  br i1 %449, label %$59, label %$60\n$60:\n  %450 = phi i64 [%444, %$58] ; # Exe\n  %451 = phi i64 [%445, %$58] ; # Args\n  %452 = phi i64 [%446, %$58] ; # Rpc\n  %453 = phi i1 [%447, %$58] ; # Notify\n; # (val $Children)\n  %454 = load i32, i32* @$Children\n  %455 = icmp ne i32 %454, 0\n  br label %$59\n$59:\n  %456 = phi i64 [%444, %$58], [%450, %$60] ; # Exe\n  %457 = phi i64 [%445, %$58], [%451, %$60] ; # Args\n  %458 = phi i64 [%446, %$58], [%452, %$60] ; # Rpc\n  %459 = phi i1 [%447, %$58], [%453, %$60] ; # Notify\n  %460 = phi i1 [1, %$58], [%455, %$60] ; # ->\n  br label %$57\n$57:\n  %461 = phi i64 [%421, %$52], [%456, %$59] ; # Exe\n  %462 = phi i64 [%427, %$52], [%457, %$59] ; # Args\n  %463 = phi i64 [%423, %$52], [%458, %$59] ; # Rpc\n  %464 = phi i1 [%424, %$52], [%459, %$59] ; # Notify\n  %465 = phi i1 [0, %$52], [%460, %$59] ; # ->\n  br i1 %465, label %$61, label %$62\n$61:\n  %466 = phi i64 [%461, %$57] ; # Exe\n  %467 = phi i64 [%462, %$57] ; # Args\n  %468 = phi i64 [%463, %$57] ; # Rpc\n  %469 = phi i1 [%464, %$57] ; # Notify\n; # (set $BufX (val $TellBuf) $PtrX (val $Ptr) $EndX (val $End))\n; # (val $TellBuf)\n  %470 = load i8*, i8** @$TellBuf\n  store i8* %470, i8** @$BufX\n; # (val $Ptr)\n  %471 = load i8*, i8** @$Ptr\n  store i8* %471, i8** @$PtrX\n; # (val $End)\n  %472 = load i8*, i8** @$End\n  store i8* %472, i8** @$EndX\n; # (val PipeBufSize)\n  %473 = load i32, i32* @PipeBufSize\n; # (b8 (val PipeBufSize))\n  %474 = alloca i8, i32 %473\n; # (tellBeg (b8 (val PipeBufSize)))\n  call void @tellBeg(i8* %474)\n; # (prTell Rpc)\n  call void @prTell(i64 %468)\n  br label %$62\n$62:\n  %475 = phi i64 [%461, %$57], [%466, %$61] ; # Exe\n  %476 = phi i64 [%462, %$57], [%467, %$61] ; # Args\n  %477 = phi i64 [%463, %$57], [%468, %$61] ; # Rpc\n  %478 = phi i1 [%464, %$57], [1, %$61] ; # Notify\n; # (let (Tos 0 P (val $Extern)) (loop (loop (let X (cdr P) (? (atom ...\n; # (val $Extern)\n  %479 = load i64, i64* @$Extern\n; # (loop (loop (let X (cdr P) (? (atom (car X))) (let Y P (setq P @)...\n  br label %$63\n$63:\n  %480 = phi i64 [%475, %$62], [%1080, %$103] ; # Exe\n  %481 = phi i64 [%476, %$62], [%1081, %$103] ; # Args\n  %482 = phi i64 [%477, %$62], [%1082, %$103] ; # Rpc\n  %483 = phi i1 [%478, %$62], [%1083, %$103] ; # Notify\n  %484 = phi i64 [0, %$62], [%1084, %$103] ; # Tos\n  %485 = phi i64 [%479, %$62], [%1085, %$103] ; # P\n; # (loop (let X (cdr P) (? (atom (car X))) (let Y P (setq P @) (set ...\n  br label %$64\n$64:\n  %486 = phi i64 [%480, %$63], [%499, %$65] ; # Exe\n  %487 = phi i64 [%481, %$63], [%500, %$65] ; # Args\n  %488 = phi i64 [%482, %$63], [%501, %$65] ; # Rpc\n  %489 = phi i1 [%483, %$63], [%502, %$65] ; # Notify\n  %490 = phi i64 [%484, %$63], [%504, %$65] ; # Tos\n  %491 = phi i64 [%485, %$63], [%496, %$65] ; # P\n; # (let X (cdr P) (? (atom (car X))) (let Y P (setq P @) (set X Tos)...\n; # (cdr P)\n  %492 = inttoptr i64 %491 to i64*\n  %493 = getelementptr i64, i64* %492, i32 1\n  %494 = load i64, i64* %493\n; # (? (atom (car X)))\n; # (car X)\n  %495 = inttoptr i64 %494 to i64*\n  %496 = load i64, i64* %495\n; # (atom (car X))\n  %497 = and i64 %496, 15\n  %498 = icmp ne i64 %497, 0\n  br i1 %498, label %$66, label %$65\n$65:\n  %499 = phi i64 [%486, %$64] ; # Exe\n  %500 = phi i64 [%487, %$64] ; # Args\n  %501 = phi i64 [%488, %$64] ; # Rpc\n  %502 = phi i1 [%489, %$64] ; # Notify\n  %503 = phi i64 [%490, %$64] ; # Tos\n  %504 = phi i64 [%491, %$64] ; # P\n  %505 = phi i64 [%494, %$64] ; # X\n; # (let Y P (setq P @) (set X Tos) (setq Tos Y))\n; # (set X Tos)\n  %506 = inttoptr i64 %505 to i64*\n  store i64 %503, i64* %506\n  br label %$64\n$66:\n  %507 = phi i64 [%486, %$64] ; # Exe\n  %508 = phi i64 [%487, %$64] ; # Args\n  %509 = phi i64 [%488, %$64] ; # Rpc\n  %510 = phi i1 [%489, %$64] ; # Notify\n  %511 = phi i64 [%490, %$64] ; # Tos\n  %512 = phi i64 [%491, %$64] ; # P\n  %513 = phi i64 [0, %$64] ; # ->\n; # (loop (let (Sym (val P) Q (tail Sym) Nm (val Q)) (unless (num? Nm...\n  br label %$67\n$67:\n  %514 = phi i64 [%507, %$66], [%1073, %$109] ; # Exe\n  %515 = phi i64 [%508, %$66], [%1074, %$109] ; # Args\n  %516 = phi i64 [%509, %$66], [%1075, %$109] ; # Rpc\n  %517 = phi i1 [%510, %$66], [%1076, %$109] ; # Notify\n  %518 = phi i64 [%511, %$66], [%1077, %$109] ; # Tos\n  %519 = phi i64 [%512, %$66], [%1078, %$109] ; # P\n; # (let (Sym (val P) Q (tail Sym) Nm (val Q)) (unless (num? Nm) (set...\n; # (val P)\n  %520 = inttoptr i64 %519 to i64*\n  %521 = load i64, i64* %520\n; # (tail Sym)\n  %522 = add i64 %521, -8\n; # (val Q)\n  %523 = inttoptr i64 %522 to i64*\n  %524 = load i64, i64* %523\n; # (unless (num? Nm) (setq Nm (any (& Nm -9))) (loop (setq Q (ofs Nm...\n; # (num? Nm)\n  %525 = and i64 %524, 6\n  %526 = icmp ne i64 %525, 0\n  br i1 %526, label %$69, label %$68\n$68:\n  %527 = phi i64 [%514, %$67] ; # Exe\n  %528 = phi i64 [%515, %$67] ; # Args\n  %529 = phi i64 [%516, %$67] ; # Rpc\n  %530 = phi i1 [%517, %$67] ; # Notify\n  %531 = phi i64 [%518, %$67] ; # Tos\n  %532 = phi i64 [%519, %$67] ; # P\n  %533 = phi i64 [%521, %$67] ; # Sym\n  %534 = phi i64 [%522, %$67] ; # Q\n  %535 = phi i64 [%524, %$67] ; # Nm\n; # (& Nm -9)\n  %536 = and i64 %535, -9\n; # (any (& Nm -9))\n; # (loop (setq Q (ofs Nm 1)) (? (num? (setq Nm (val Q)))))\n  br label %$70\n$70:\n  %537 = phi i64 [%527, %$68], [%551, %$71] ; # Exe\n  %538 = phi i64 [%528, %$68], [%552, %$71] ; # Args\n  %539 = phi i64 [%529, %$68], [%553, %$71] ; # Rpc\n  %540 = phi i1 [%530, %$68], [%554, %$71] ; # Notify\n  %541 = phi i64 [%531, %$68], [%555, %$71] ; # Tos\n  %542 = phi i64 [%532, %$68], [%556, %$71] ; # P\n  %543 = phi i64 [%533, %$68], [%557, %$71] ; # Sym\n  %544 = phi i64 [%534, %$68], [%558, %$71] ; # Q\n  %545 = phi i64 [%536, %$68], [%559, %$71] ; # Nm\n; # (ofs Nm 1)\n  %546 = add i64 %545, 8\n; # (? (num? (setq Nm (val Q))))\n; # (val Q)\n  %547 = inttoptr i64 %546 to i64*\n  %548 = load i64, i64* %547\n; # (num? (setq Nm (val Q)))\n  %549 = and i64 %548, 6\n  %550 = icmp ne i64 %549, 0\n  br i1 %550, label %$72, label %$71\n$71:\n  %551 = phi i64 [%537, %$70] ; # Exe\n  %552 = phi i64 [%538, %$70] ; # Args\n  %553 = phi i64 [%539, %$70] ; # Rpc\n  %554 = phi i1 [%540, %$70] ; # Notify\n  %555 = phi i64 [%541, %$70] ; # Tos\n  %556 = phi i64 [%542, %$70] ; # P\n  %557 = phi i64 [%543, %$70] ; # Sym\n  %558 = phi i64 [%546, %$70] ; # Q\n  %559 = phi i64 [%548, %$70] ; # Nm\n  br label %$70\n$72:\n  %560 = phi i64 [%537, %$70] ; # Exe\n  %561 = phi i64 [%538, %$70] ; # Args\n  %562 = phi i64 [%539, %$70] ; # Rpc\n  %563 = phi i1 [%540, %$70] ; # Notify\n  %564 = phi i64 [%541, %$70] ; # Tos\n  %565 = phi i64 [%542, %$70] ; # P\n  %566 = phi i64 [%543, %$70] ; # Sym\n  %567 = phi i64 [%546, %$70] ; # Q\n  %568 = phi i64 [%548, %$70] ; # Nm\n  %569 = phi i64 [0, %$70] ; # ->\n  br label %$69\n$69:\n  %570 = phi i64 [%514, %$67], [%560, %$72] ; # Exe\n  %571 = phi i64 [%515, %$67], [%561, %$72] ; # Args\n  %572 = phi i64 [%516, %$67], [%562, %$72] ; # Rpc\n  %573 = phi i1 [%517, %$67], [%563, %$72] ; # Notify\n  %574 = phi i64 [%518, %$67], [%564, %$72] ; # Tos\n  %575 = phi i64 [%519, %$67], [%565, %$72] ; # P\n  %576 = phi i64 [%521, %$67], [%566, %$72] ; # Sym\n  %577 = phi i64 [%522, %$67], [%567, %$72] ; # Q\n  %578 = phi i64 [%524, %$67], [%568, %$72] ; # Nm\n; # (let N (add Nm Nm) (when @@ (let F (objFile Nm) (setq N (add N N)...\n; # (add Nm Nm)\n  %579 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %578, i64 %578)\n  %580 = extractvalue {i64, i1} %579, 1\n  %581 = extractvalue {i64, i1} %579, 0\n; # (when @@ (let F (objFile Nm) (setq N (add N N)) (cond (@@ (set Q ...\n  br i1 %580, label %$73, label %$74\n$73:\n  %582 = phi i64 [%570, %$69] ; # Exe\n  %583 = phi i64 [%571, %$69] ; # Args\n  %584 = phi i64 [%572, %$69] ; # Rpc\n  %585 = phi i1 [%573, %$69] ; # Notify\n  %586 = phi i64 [%574, %$69] ; # Tos\n  %587 = phi i64 [%575, %$69] ; # P\n  %588 = phi i64 [%576, %$69] ; # Sym\n  %589 = phi i64 [%577, %$69] ; # Q\n  %590 = phi i64 [%578, %$69] ; # Nm\n  %591 = phi i64 [%581, %$69] ; # N\n; # (let F (objFile Nm) (setq N (add N N)) (cond (@@ (set Q (shr N 2)...\n; # (objFile Nm)\n  %592 = call i32 @objFile(i64 %590)\n; # (add N N)\n  %593 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %591, i64 %591)\n  %594 = extractvalue {i64, i1} %593, 1\n  %595 = extractvalue {i64, i1} %593, 0\n; # (cond (@@ (set Q (shr N 2)) (when (> (val $DBs) F) (set $DbFile (...\n  br i1 %594, label %$77, label %$76\n$77:\n  %596 = phi i64 [%582, %$73] ; # Exe\n  %597 = phi i64 [%583, %$73] ; # Args\n  %598 = phi i64 [%584, %$73] ; # Rpc\n  %599 = phi i1 [%585, %$73] ; # Notify\n  %600 = phi i64 [%586, %$73] ; # Tos\n  %601 = phi i64 [%587, %$73] ; # P\n  %602 = phi i64 [%588, %$73] ; # Sym\n  %603 = phi i64 [%589, %$73] ; # Q\n  %604 = phi i64 [%590, %$73] ; # Nm\n  %605 = phi i64 [%595, %$73] ; # N\n  %606 = phi i32 [%592, %$73] ; # F\n; # (set Q (shr N 2))\n; # (shr N 2)\n  %607 = lshr i64 %605, 2\n  %608 = inttoptr i64 %603 to i64*\n  store i64 %607, i64* %608\n; # (when (> (val $DBs) F) (set $DbFile (ofs (val $DbFiles) (* F (dbF...\n; # (val $DBs)\n  %609 = load i32, i32* @$DBs\n; # (> (val $DBs) F)\n  %610 = icmp sgt i32 %609, %606\n  br i1 %610, label %$78, label %$79\n$78:\n  %611 = phi i64 [%596, %$77] ; # Exe\n  %612 = phi i64 [%597, %$77] ; # Args\n  %613 = phi i64 [%598, %$77] ; # Rpc\n  %614 = phi i1 [%599, %$77] ; # Notify\n  %615 = phi i64 [%600, %$77] ; # Tos\n  %616 = phi i64 [%601, %$77] ; # P\n  %617 = phi i64 [%602, %$77] ; # Sym\n  %618 = phi i64 [%603, %$77] ; # Q\n  %619 = phi i64 [%604, %$77] ; # Nm\n  %620 = phi i64 [%605, %$77] ; # N\n  %621 = phi i32 [%606, %$77] ; # F\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %622 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %623 = mul i32 %621, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %624 = getelementptr i8, i8* %622, i32 %623\n  store i8* %624, i8** @$DbFile\n; # (objId Nm)\n  %625 = call i64 @objId(i64 %619)\n; # (shl (objId Nm) 6)\n  %626 = shl i64 %625, 6\n; # (cleanUp (shl (objId Nm) 6))\n  call void @cleanUp(i64 %626)\n; # (when Notify (let P (val $TellBuf) (when (>= (val $Ptr) (ofs P (-...\n  br i1 %614, label %$80, label %$81\n$80:\n  %627 = phi i64 [%611, %$78] ; # Exe\n  %628 = phi i64 [%612, %$78] ; # Args\n  %629 = phi i64 [%613, %$78] ; # Rpc\n  %630 = phi i1 [%614, %$78] ; # Notify\n  %631 = phi i64 [%615, %$78] ; # Tos\n  %632 = phi i64 [%616, %$78] ; # P\n  %633 = phi i64 [%617, %$78] ; # Sym\n  %634 = phi i64 [%618, %$78] ; # Q\n  %635 = phi i64 [%619, %$78] ; # Nm\n  %636 = phi i64 [%620, %$78] ; # N\n  %637 = phi i32 [%621, %$78] ; # F\n; # (let P (val $TellBuf) (when (>= (val $Ptr) (ofs P (- (val PipeBuf...\n; # (val $TellBuf)\n  %638 = load i8*, i8** @$TellBuf\n; # (when (>= (val $Ptr) (ofs P (- (val PipeBufSize) 10))) (tellEnd -...\n; # (val $Ptr)\n  %639 = load i8*, i8** @$Ptr\n; # (val PipeBufSize)\n  %640 = load i32, i32* @PipeBufSize\n; # (- (val PipeBufSize) 10)\n  %641 = sub i32 %640, 10\n; # (ofs P (- (val PipeBufSize) 10))\n  %642 = getelementptr i8, i8* %638, i32 %641\n; # (>= (val $Ptr) (ofs P (- (val PipeBufSize) 10)))\n  %643 = icmp uge i8* %639, %642\n  br i1 %643, label %$82, label %$83\n$82:\n  %644 = phi i64 [%627, %$80] ; # Exe\n  %645 = phi i64 [%628, %$80] ; # Args\n  %646 = phi i64 [%629, %$80] ; # Rpc\n  %647 = phi i1 [%630, %$80] ; # Notify\n  %648 = phi i64 [%631, %$80] ; # Tos\n  %649 = phi i64 [%633, %$80] ; # Sym\n  %650 = phi i64 [%634, %$80] ; # Q\n  %651 = phi i64 [%635, %$80] ; # Nm\n  %652 = phi i64 [%636, %$80] ; # N\n  %653 = phi i32 [%637, %$80] ; # F\n  %654 = phi i8* [%638, %$80] ; # P\n; # (tellEnd -1)\n  call void @tellEnd(i32 -1)\n; # (set (inc 'P 8) BEG $Ptr (inc P))\n; # (inc 'P 8)\n  %655 = getelementptr i8, i8* %654, i32 8\n  store i8 1, i8* %655\n; # (inc P)\n  %656 = getelementptr i8, i8* %655, i32 1\n  store i8* %656, i8** @$Ptr\n; # (prTell Rpc)\n  call void @prTell(i64 %646)\n  br label %$83\n$83:\n  %657 = phi i64 [%627, %$80], [%644, %$82] ; # Exe\n  %658 = phi i64 [%628, %$80], [%645, %$82] ; # Args\n  %659 = phi i64 [%629, %$80], [%646, %$82] ; # Rpc\n  %660 = phi i1 [%630, %$80], [%647, %$82] ; # Notify\n  %661 = phi i64 [%631, %$80], [%648, %$82] ; # Tos\n  %662 = phi i64 [%633, %$80], [%649, %$82] ; # Sym\n  %663 = phi i64 [%634, %$80], [%650, %$82] ; # Q\n  %664 = phi i64 [%635, %$80], [%651, %$82] ; # Nm\n  %665 = phi i64 [%636, %$80], [%652, %$82] ; # N\n  %666 = phi i32 [%637, %$80], [%653, %$82] ; # F\n  %667 = phi i8* [%638, %$80], [%655, %$82] ; # P\n; # (prTell Sym)\n  call void @prTell(i64 %662)\n  br label %$81\n$81:\n  %668 = phi i64 [%611, %$78], [%657, %$83] ; # Exe\n  %669 = phi i64 [%612, %$78], [%658, %$83] ; # Args\n  %670 = phi i64 [%613, %$78], [%659, %$83] ; # Rpc\n  %671 = phi i1 [%614, %$78], [%660, %$83] ; # Notify\n  %672 = phi i64 [%615, %$78], [%661, %$83] ; # Tos\n  %673 = phi i64 [%616, %$78], [%632, %$83] ; # P\n  %674 = phi i64 [%617, %$78], [%662, %$83] ; # Sym\n  %675 = phi i64 [%618, %$78], [%663, %$83] ; # Q\n  %676 = phi i64 [%619, %$78], [%664, %$83] ; # Nm\n  %677 = phi i64 [%620, %$78], [%665, %$83] ; # N\n  %678 = phi i32 [%621, %$78], [%666, %$83] ; # F\n  br label %$79\n$79:\n  %679 = phi i64 [%596, %$77], [%668, %$81] ; # Exe\n  %680 = phi i64 [%597, %$77], [%669, %$81] ; # Args\n  %681 = phi i64 [%598, %$77], [%670, %$81] ; # Rpc\n  %682 = phi i1 [%599, %$77], [%671, %$81] ; # Notify\n  %683 = phi i64 [%600, %$77], [%672, %$81] ; # Tos\n  %684 = phi i64 [%601, %$77], [%673, %$81] ; # P\n  %685 = phi i64 [%602, %$77], [%674, %$81] ; # Sym\n  %686 = phi i64 [%603, %$77], [%675, %$81] ; # Q\n  %687 = phi i64 [%604, %$77], [%676, %$81] ; # Nm\n  %688 = phi i64 [%605, %$77], [%677, %$81] ; # N\n  %689 = phi i32 [%606, %$77], [%678, %$81] ; # F\n  br label %$75\n$76:\n  %690 = phi i64 [%582, %$73] ; # Exe\n  %691 = phi i64 [%583, %$73] ; # Args\n  %692 = phi i64 [%584, %$73] ; # Rpc\n  %693 = phi i1 [%585, %$73] ; # Notify\n  %694 = phi i64 [%586, %$73] ; # Tos\n  %695 = phi i64 [%587, %$73] ; # P\n  %696 = phi i64 [%588, %$73] ; # Sym\n  %697 = phi i64 [%589, %$73] ; # Q\n  %698 = phi i64 [%590, %$73] ; # Nm\n  %699 = phi i64 [%595, %$73] ; # N\n  %700 = phi i32 [%592, %$73] ; # F\n; # (set Q (shr 1 N 2))\n; # (shr 1 N 2)\n  %701 = call i64 @llvm.fshr.i64(i64 1, i64 %699, i64 2)\n  %702 = inttoptr i64 %697 to i64*\n  store i64 %701, i64* %702\n; # (when (> (val $DBs) F) (set $DbFile (ofs (val $DbFiles) (* F (dbF...\n; # (val $DBs)\n  %703 = load i32, i32* @$DBs\n; # (> (val $DBs) F)\n  %704 = icmp sgt i32 %703, %700\n  br i1 %704, label %$84, label %$85\n$84:\n  %705 = phi i64 [%690, %$76] ; # Exe\n  %706 = phi i64 [%691, %$76] ; # Args\n  %707 = phi i64 [%692, %$76] ; # Rpc\n  %708 = phi i1 [%693, %$76] ; # Notify\n  %709 = phi i64 [%694, %$76] ; # Tos\n  %710 = phi i64 [%695, %$76] ; # P\n  %711 = phi i64 [%696, %$76] ; # Sym\n  %712 = phi i64 [%697, %$76] ; # Q\n  %713 = phi i64 [%698, %$76] ; # Nm\n  %714 = phi i64 [%699, %$76] ; # N\n  %715 = phi i32 [%700, %$76] ; # F\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %716 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %717 = mul i32 %715, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %718 = getelementptr i8, i8* %716, i32 %717\n  store i8* %718, i8** @$DbFile\n; # (let Blk (rdBlock (shl (objId Nm) 6)) (set Blk (| (val Blk) 1) $P...\n; # (objId Nm)\n  %719 = call i64 @objId(i64 %713)\n; # (shl (objId Nm) 6)\n  %720 = shl i64 %719, 6\n; # (rdBlock (shl (objId Nm) 6))\n  %721 = call i8* @rdBlock(i64 %720)\n; # (set Blk (| (val Blk) 1) $PutBin (fun (void i8) putBlock) $Extn 0...\n; # (val Blk)\n  %722 = load i8, i8* %721\n; # (| (val Blk) 1)\n  %723 = or i8 %722, 1\n  store i8 %723, i8* %721\n; # (fun (void i8) putBlock)\n  store void(i8)* @putBlock, void(i8)** @$PutBin\n  store i32 0, i32* @$Extn\n; # (val Sym)\n  %724 = inttoptr i64 %711 to i64*\n  %725 = load i64, i64* %724\n; # (binPrint (val Sym))\n  call void @binPrint(i64 %725)\n; # (let L (& (val (tail Sym)) -9) (until (num? L) (let V (++ L) (non...\n; # (tail Sym)\n  %726 = add i64 %711, -8\n; # (val (tail Sym))\n  %727 = inttoptr i64 %726 to i64*\n  %728 = load i64, i64* %727\n; # (& (val (tail Sym)) -9)\n  %729 = and i64 %728, -9\n; # (until (num? L) (let V (++ L) (nond ((atom V) (unless (nil? (cdr ...\n  br label %$86\n$86:\n  %730 = phi i64 [%705, %$84], [%855, %$89] ; # Exe\n  %731 = phi i64 [%706, %$84], [%856, %$89] ; # Args\n  %732 = phi i64 [%707, %$84], [%857, %$89] ; # Rpc\n  %733 = phi i1 [%708, %$84], [%858, %$89] ; # Notify\n  %734 = phi i64 [%709, %$84], [%859, %$89] ; # Tos\n  %735 = phi i64 [%710, %$84], [%860, %$89] ; # P\n  %736 = phi i64 [%711, %$84], [%861, %$89] ; # Sym\n  %737 = phi i64 [%712, %$84], [%862, %$89] ; # Q\n  %738 = phi i64 [%713, %$84], [%863, %$89] ; # Nm\n  %739 = phi i64 [%714, %$84], [%864, %$89] ; # N\n  %740 = phi i32 [%715, %$84], [%865, %$89] ; # F\n  %741 = phi i8* [%721, %$84], [%866, %$89] ; # Blk\n  %742 = phi i64 [%729, %$84], [%867, %$89] ; # L\n; # (num? L)\n  %743 = and i64 %742, 6\n  %744 = icmp ne i64 %743, 0\n  br i1 %744, label %$88, label %$87\n$87:\n  %745 = phi i64 [%730, %$86] ; # Exe\n  %746 = phi i64 [%731, %$86] ; # Args\n  %747 = phi i64 [%732, %$86] ; # Rpc\n  %748 = phi i1 [%733, %$86] ; # Notify\n  %749 = phi i64 [%734, %$86] ; # Tos\n  %750 = phi i64 [%735, %$86] ; # P\n  %751 = phi i64 [%736, %$86] ; # Sym\n  %752 = phi i64 [%737, %$86] ; # Q\n  %753 = phi i64 [%738, %$86] ; # Nm\n  %754 = phi i64 [%739, %$86] ; # N\n  %755 = phi i32 [%740, %$86] ; # F\n  %756 = phi i8* [%741, %$86] ; # Blk\n  %757 = phi i64 [%742, %$86] ; # L\n; # (let V (++ L) (nond ((atom V) (unless (nil? (cdr V)) (binPrint @)...\n; # (++ L)\n  %758 = inttoptr i64 %757 to i64*\n  %759 = getelementptr i64, i64* %758, i32 1\n  %760 = load i64, i64* %759\n  %761 = load i64, i64* %758\n; # (nond ((atom V) (unless (nil? (cdr V)) (binPrint @) (binPrint (ca...\n; # (atom V)\n  %762 = and i64 %761, 15\n  %763 = icmp ne i64 %762, 0\n  br i1 %763, label %$90, label %$91\n$91:\n  %764 = phi i64 [%745, %$87] ; # Exe\n  %765 = phi i64 [%746, %$87] ; # Args\n  %766 = phi i64 [%747, %$87] ; # Rpc\n  %767 = phi i1 [%748, %$87] ; # Notify\n  %768 = phi i64 [%749, %$87] ; # Tos\n  %769 = phi i64 [%750, %$87] ; # P\n  %770 = phi i64 [%751, %$87] ; # Sym\n  %771 = phi i64 [%752, %$87] ; # Q\n  %772 = phi i64 [%753, %$87] ; # Nm\n  %773 = phi i64 [%754, %$87] ; # N\n  %774 = phi i32 [%755, %$87] ; # F\n  %775 = phi i8* [%756, %$87] ; # Blk\n  %776 = phi i64 [%760, %$87] ; # L\n  %777 = phi i64 [%761, %$87] ; # V\n; # (unless (nil? (cdr V)) (binPrint @) (binPrint (car V)))\n; # (cdr V)\n  %778 = inttoptr i64 %777 to i64*\n  %779 = getelementptr i64, i64* %778, i32 1\n  %780 = load i64, i64* %779\n; # (nil? (cdr V))\n  %781 = icmp eq i64 %780, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %781, label %$93, label %$92\n$92:\n  %782 = phi i64 [%764, %$91] ; # Exe\n  %783 = phi i64 [%765, %$91] ; # Args\n  %784 = phi i64 [%766, %$91] ; # Rpc\n  %785 = phi i1 [%767, %$91] ; # Notify\n  %786 = phi i64 [%768, %$91] ; # Tos\n  %787 = phi i64 [%769, %$91] ; # P\n  %788 = phi i64 [%770, %$91] ; # Sym\n  %789 = phi i64 [%771, %$91] ; # Q\n  %790 = phi i64 [%772, %$91] ; # Nm\n  %791 = phi i64 [%773, %$91] ; # N\n  %792 = phi i32 [%774, %$91] ; # F\n  %793 = phi i8* [%775, %$91] ; # Blk\n  %794 = phi i64 [%776, %$91] ; # L\n  %795 = phi i64 [%777, %$91] ; # V\n; # (binPrint @)\n  call void @binPrint(i64 %780)\n; # (car V)\n  %796 = inttoptr i64 %795 to i64*\n  %797 = load i64, i64* %796\n; # (binPrint (car V))\n  call void @binPrint(i64 %797)\n  br label %$93\n$93:\n  %798 = phi i64 [%764, %$91], [%782, %$92] ; # Exe\n  %799 = phi i64 [%765, %$91], [%783, %$92] ; # Args\n  %800 = phi i64 [%766, %$91], [%784, %$92] ; # Rpc\n  %801 = phi i1 [%767, %$91], [%785, %$92] ; # Notify\n  %802 = phi i64 [%768, %$91], [%786, %$92] ; # Tos\n  %803 = phi i64 [%769, %$91], [%787, %$92] ; # P\n  %804 = phi i64 [%770, %$91], [%788, %$92] ; # Sym\n  %805 = phi i64 [%771, %$91], [%789, %$92] ; # Q\n  %806 = phi i64 [%772, %$91], [%790, %$92] ; # Nm\n  %807 = phi i64 [%773, %$91], [%791, %$92] ; # N\n  %808 = phi i32 [%774, %$91], [%792, %$92] ; # F\n  %809 = phi i8* [%775, %$91], [%793, %$92] ; # Blk\n  %810 = phi i64 [%776, %$91], [%794, %$92] ; # L\n  %811 = phi i64 [%777, %$91], [%795, %$92] ; # V\n  br label %$89\n$90:\n  %812 = phi i64 [%745, %$87] ; # Exe\n  %813 = phi i64 [%746, %$87] ; # Args\n  %814 = phi i64 [%747, %$87] ; # Rpc\n  %815 = phi i1 [%748, %$87] ; # Notify\n  %816 = phi i64 [%749, %$87] ; # Tos\n  %817 = phi i64 [%750, %$87] ; # P\n  %818 = phi i64 [%751, %$87] ; # Sym\n  %819 = phi i64 [%752, %$87] ; # Q\n  %820 = phi i64 [%753, %$87] ; # Nm\n  %821 = phi i64 [%754, %$87] ; # N\n  %822 = phi i32 [%755, %$87] ; # F\n  %823 = phi i8* [%756, %$87] ; # Blk\n  %824 = phi i64 [%760, %$87] ; # L\n  %825 = phi i64 [%761, %$87] ; # V\n; # (nil? V)\n  %826 = icmp eq i64 %825, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %826, label %$94, label %$95\n$95:\n  %827 = phi i64 [%812, %$90] ; # Exe\n  %828 = phi i64 [%813, %$90] ; # Args\n  %829 = phi i64 [%814, %$90] ; # Rpc\n  %830 = phi i1 [%815, %$90] ; # Notify\n  %831 = phi i64 [%816, %$90] ; # Tos\n  %832 = phi i64 [%817, %$90] ; # P\n  %833 = phi i64 [%818, %$90] ; # Sym\n  %834 = phi i64 [%819, %$90] ; # Q\n  %835 = phi i64 [%820, %$90] ; # Nm\n  %836 = phi i64 [%821, %$90] ; # N\n  %837 = phi i32 [%822, %$90] ; # F\n  %838 = phi i8* [%823, %$90] ; # Blk\n  %839 = phi i64 [%824, %$90] ; # L\n  %840 = phi i64 [%825, %$90] ; # V\n; # (binPrint V)\n  call void @binPrint(i64 %840)\n; # (binPrint $T)\n  call void @binPrint(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64))\n  br label %$89\n$94:\n  %841 = phi i64 [%812, %$90] ; # Exe\n  %842 = phi i64 [%813, %$90] ; # Args\n  %843 = phi i64 [%814, %$90] ; # Rpc\n  %844 = phi i1 [%815, %$90] ; # Notify\n  %845 = phi i64 [%816, %$90] ; # Tos\n  %846 = phi i64 [%817, %$90] ; # P\n  %847 = phi i64 [%818, %$90] ; # Sym\n  %848 = phi i64 [%819, %$90] ; # Q\n  %849 = phi i64 [%820, %$90] ; # Nm\n  %850 = phi i64 [%821, %$90] ; # N\n  %851 = phi i32 [%822, %$90] ; # F\n  %852 = phi i8* [%823, %$90] ; # Blk\n  %853 = phi i64 [%824, %$90] ; # L\n  %854 = phi i64 [%825, %$90] ; # V\n  br label %$89\n$89:\n  %855 = phi i64 [%798, %$93], [%827, %$95], [%841, %$94] ; # Exe\n  %856 = phi i64 [%799, %$93], [%828, %$95], [%842, %$94] ; # Args\n  %857 = phi i64 [%800, %$93], [%829, %$95], [%843, %$94] ; # Rpc\n  %858 = phi i1 [%801, %$93], [%830, %$95], [%844, %$94] ; # Notify\n  %859 = phi i64 [%802, %$93], [%831, %$95], [%845, %$94] ; # Tos\n  %860 = phi i64 [%803, %$93], [%832, %$95], [%846, %$94] ; # P\n  %861 = phi i64 [%804, %$93], [%833, %$95], [%847, %$94] ; # Sym\n  %862 = phi i64 [%805, %$93], [%834, %$95], [%848, %$94] ; # Q\n  %863 = phi i64 [%806, %$93], [%835, %$95], [%849, %$94] ; # Nm\n  %864 = phi i64 [%807, %$93], [%836, %$95], [%850, %$94] ; # N\n  %865 = phi i32 [%808, %$93], [%837, %$95], [%851, %$94] ; # F\n  %866 = phi i8* [%809, %$93], [%838, %$95], [%852, %$94] ; # Blk\n  %867 = phi i64 [%810, %$93], [%839, %$95], [%853, %$94] ; # L\n  %868 = phi i64 [%811, %$93], [%840, %$95], [%854, %$94] ; # V\n  br label %$86\n$88:\n  %869 = phi i64 [%730, %$86] ; # Exe\n  %870 = phi i64 [%731, %$86] ; # Args\n  %871 = phi i64 [%732, %$86] ; # Rpc\n  %872 = phi i1 [%733, %$86] ; # Notify\n  %873 = phi i64 [%734, %$86] ; # Tos\n  %874 = phi i64 [%735, %$86] ; # P\n  %875 = phi i64 [%736, %$86] ; # Sym\n  %876 = phi i64 [%737, %$86] ; # Q\n  %877 = phi i64 [%738, %$86] ; # Nm\n  %878 = phi i64 [%739, %$86] ; # N\n  %879 = phi i32 [%740, %$86] ; # F\n  %880 = phi i8* [%741, %$86] ; # Blk\n  %881 = phi i64 [%742, %$86] ; # L\n; # (putBlock NIX)\n  call void @putBlock(i8 0)\n; # (val $DbBlock)\n  %882 = load i8*, i8** @$DbBlock\n; # (val (val $DbBlock))\n  %883 = load i8, i8* %882\n; # (& (val (val $DbBlock)) BLKTAG)\n  %884 = and i8 %883, 63\n; # (i64 (& (val (val $DbBlock)) BLKTAG))\n  %885 = zext i8 %884 to i64\n; # (setAdr (i64 (& (val (val $DbBlock)) BLKTAG)) Blk)\n  call void @setAdr(i64 %885, i8* %880)\n; # (wrBlock)\n  call void @wrBlock()\n; # (when (val $BlkLink) (cleanUp @))\n; # (val $BlkLink)\n  %886 = load i64, i64* @$BlkLink\n  %887 = icmp ne i64 %886, 0\n  br i1 %887, label %$96, label %$97\n$96:\n  %888 = phi i64 [%869, %$88] ; # Exe\n  %889 = phi i64 [%870, %$88] ; # Args\n  %890 = phi i64 [%871, %$88] ; # Rpc\n  %891 = phi i1 [%872, %$88] ; # Notify\n  %892 = phi i64 [%873, %$88] ; # Tos\n  %893 = phi i64 [%874, %$88] ; # P\n  %894 = phi i64 [%875, %$88] ; # Sym\n  %895 = phi i64 [%876, %$88] ; # Q\n  %896 = phi i64 [%877, %$88] ; # Nm\n  %897 = phi i64 [%878, %$88] ; # N\n  %898 = phi i32 [%879, %$88] ; # F\n  %899 = phi i8* [%880, %$88] ; # Blk\n; # (cleanUp @)\n  call void @cleanUp(i64 %886)\n  br label %$97\n$97:\n  %900 = phi i64 [%869, %$88], [%888, %$96] ; # Exe\n  %901 = phi i64 [%870, %$88], [%889, %$96] ; # Args\n  %902 = phi i64 [%871, %$88], [%890, %$96] ; # Rpc\n  %903 = phi i1 [%872, %$88], [%891, %$96] ; # Notify\n  %904 = phi i64 [%873, %$88], [%892, %$96] ; # Tos\n  %905 = phi i64 [%874, %$88], [%893, %$96] ; # P\n  %906 = phi i64 [%875, %$88], [%894, %$96] ; # Sym\n  %907 = phi i64 [%876, %$88], [%895, %$96] ; # Q\n  %908 = phi i64 [%877, %$88], [%896, %$96] ; # Nm\n  %909 = phi i64 [%878, %$88], [%897, %$96] ; # N\n  %910 = phi i32 [%879, %$88], [%898, %$96] ; # F\n  %911 = phi i8* [%880, %$88], [%899, %$96] ; # Blk\n; # (when Notify (let P (val $TellBuf) (when (>= (val $Ptr) (ofs P (-...\n  br i1 %903, label %$98, label %$99\n$98:\n  %912 = phi i64 [%900, %$97] ; # Exe\n  %913 = phi i64 [%901, %$97] ; # Args\n  %914 = phi i64 [%902, %$97] ; # Rpc\n  %915 = phi i1 [%903, %$97] ; # Notify\n  %916 = phi i64 [%904, %$97] ; # Tos\n  %917 = phi i64 [%905, %$97] ; # P\n  %918 = phi i64 [%906, %$97] ; # Sym\n  %919 = phi i64 [%907, %$97] ; # Q\n  %920 = phi i64 [%908, %$97] ; # Nm\n  %921 = phi i64 [%909, %$97] ; # N\n  %922 = phi i32 [%910, %$97] ; # F\n  %923 = phi i8* [%911, %$97] ; # Blk\n; # (let P (val $TellBuf) (when (>= (val $Ptr) (ofs P (- (val PipeBuf...\n; # (val $TellBuf)\n  %924 = load i8*, i8** @$TellBuf\n; # (when (>= (val $Ptr) (ofs P (- (val PipeBufSize) 10))) (tellEnd -...\n; # (val $Ptr)\n  %925 = load i8*, i8** @$Ptr\n; # (val PipeBufSize)\n  %926 = load i32, i32* @PipeBufSize\n; # (- (val PipeBufSize) 10)\n  %927 = sub i32 %926, 10\n; # (ofs P (- (val PipeBufSize) 10))\n  %928 = getelementptr i8, i8* %924, i32 %927\n; # (>= (val $Ptr) (ofs P (- (val PipeBufSize) 10)))\n  %929 = icmp uge i8* %925, %928\n  br i1 %929, label %$100, label %$101\n$100:\n  %930 = phi i64 [%912, %$98] ; # Exe\n  %931 = phi i64 [%913, %$98] ; # Args\n  %932 = phi i64 [%914, %$98] ; # Rpc\n  %933 = phi i1 [%915, %$98] ; # Notify\n  %934 = phi i64 [%916, %$98] ; # Tos\n  %935 = phi i64 [%918, %$98] ; # Sym\n  %936 = phi i64 [%919, %$98] ; # Q\n  %937 = phi i64 [%920, %$98] ; # Nm\n  %938 = phi i64 [%921, %$98] ; # N\n  %939 = phi i32 [%922, %$98] ; # F\n  %940 = phi i8* [%923, %$98] ; # Blk\n  %941 = phi i8* [%924, %$98] ; # P\n; # (tellEnd -1)\n  call void @tellEnd(i32 -1)\n; # (set (inc 'P 8) BEG $Ptr (inc P))\n; # (inc 'P 8)\n  %942 = getelementptr i8, i8* %941, i32 8\n  store i8 1, i8* %942\n; # (inc P)\n  %943 = getelementptr i8, i8* %942, i32 1\n  store i8* %943, i8** @$Ptr\n; # (prTell Rpc)\n  call void @prTell(i64 %932)\n  br label %$101\n$101:\n  %944 = phi i64 [%912, %$98], [%930, %$100] ; # Exe\n  %945 = phi i64 [%913, %$98], [%931, %$100] ; # Args\n  %946 = phi i64 [%914, %$98], [%932, %$100] ; # Rpc\n  %947 = phi i1 [%915, %$98], [%933, %$100] ; # Notify\n  %948 = phi i64 [%916, %$98], [%934, %$100] ; # Tos\n  %949 = phi i64 [%918, %$98], [%935, %$100] ; # Sym\n  %950 = phi i64 [%919, %$98], [%936, %$100] ; # Q\n  %951 = phi i64 [%920, %$98], [%937, %$100] ; # Nm\n  %952 = phi i64 [%921, %$98], [%938, %$100] ; # N\n  %953 = phi i32 [%922, %$98], [%939, %$100] ; # F\n  %954 = phi i8* [%923, %$98], [%940, %$100] ; # Blk\n  %955 = phi i8* [%924, %$98], [%942, %$100] ; # P\n; # (prTell Sym)\n  call void @prTell(i64 %949)\n  br label %$99\n$99:\n  %956 = phi i64 [%900, %$97], [%944, %$101] ; # Exe\n  %957 = phi i64 [%901, %$97], [%945, %$101] ; # Args\n  %958 = phi i64 [%902, %$97], [%946, %$101] ; # Rpc\n  %959 = phi i1 [%903, %$97], [%947, %$101] ; # Notify\n  %960 = phi i64 [%904, %$97], [%948, %$101] ; # Tos\n  %961 = phi i64 [%905, %$97], [%917, %$101] ; # P\n  %962 = phi i64 [%906, %$97], [%949, %$101] ; # Sym\n  %963 = phi i64 [%907, %$97], [%950, %$101] ; # Q\n  %964 = phi i64 [%908, %$97], [%951, %$101] ; # Nm\n  %965 = phi i64 [%909, %$97], [%952, %$101] ; # N\n  %966 = phi i32 [%910, %$97], [%953, %$101] ; # F\n  %967 = phi i8* [%911, %$97], [%954, %$101] ; # Blk\n  br label %$85\n$85:\n  %968 = phi i64 [%690, %$76], [%956, %$99] ; # Exe\n  %969 = phi i64 [%691, %$76], [%957, %$99] ; # Args\n  %970 = phi i64 [%692, %$76], [%958, %$99] ; # Rpc\n  %971 = phi i1 [%693, %$76], [%959, %$99] ; # Notify\n  %972 = phi i64 [%694, %$76], [%960, %$99] ; # Tos\n  %973 = phi i64 [%695, %$76], [%961, %$99] ; # P\n  %974 = phi i64 [%696, %$76], [%962, %$99] ; # Sym\n  %975 = phi i64 [%697, %$76], [%963, %$99] ; # Q\n  %976 = phi i64 [%698, %$76], [%964, %$99] ; # Nm\n  %977 = phi i64 [%699, %$76], [%965, %$99] ; # N\n  %978 = phi i32 [%700, %$76], [%966, %$99] ; # F\n  br label %$75\n$75:\n  %979 = phi i64 [%679, %$79], [%968, %$85] ; # Exe\n  %980 = phi i64 [%680, %$79], [%969, %$85] ; # Args\n  %981 = phi i64 [%681, %$79], [%970, %$85] ; # Rpc\n  %982 = phi i1 [%682, %$79], [%971, %$85] ; # Notify\n  %983 = phi i64 [%683, %$79], [%972, %$85] ; # Tos\n  %984 = phi i64 [%684, %$79], [%973, %$85] ; # P\n  %985 = phi i64 [%685, %$79], [%974, %$85] ; # Sym\n  %986 = phi i64 [%686, %$79], [%975, %$85] ; # Q\n  %987 = phi i64 [%687, %$79], [%976, %$85] ; # Nm\n  %988 = phi i64 [%688, %$79], [%977, %$85] ; # N\n  %989 = phi i32 [%689, %$79], [%978, %$85] ; # F\n  br label %$74\n$74:\n  %990 = phi i64 [%570, %$69], [%979, %$75] ; # Exe\n  %991 = phi i64 [%571, %$69], [%980, %$75] ; # Args\n  %992 = phi i64 [%572, %$69], [%981, %$75] ; # Rpc\n  %993 = phi i1 [%573, %$69], [%982, %$75] ; # Notify\n  %994 = phi i64 [%574, %$69], [%983, %$75] ; # Tos\n  %995 = phi i64 [%575, %$69], [%984, %$75] ; # P\n  %996 = phi i64 [%576, %$69], [%985, %$75] ; # Sym\n  %997 = phi i64 [%577, %$69], [%986, %$75] ; # Q\n  %998 = phi i64 [%578, %$69], [%987, %$75] ; # Nm\n  %999 = phi i64 [%581, %$69], [%988, %$75] ; # N\n; # (let X (cdr P) (? (pair (cdr X)) (let Y P (setq P @) (set 2 X Tos...\n; # (cdr P)\n  %1000 = inttoptr i64 %995 to i64*\n  %1001 = getelementptr i64, i64* %1000, i32 1\n  %1002 = load i64, i64* %1001\n; # (? (pair (cdr X)) (let Y P (setq P @) (set 2 X Tos) (setq Tos (| ...\n; # (cdr X)\n  %1003 = inttoptr i64 %1002 to i64*\n  %1004 = getelementptr i64, i64* %1003, i32 1\n  %1005 = load i64, i64* %1004\n; # (pair (cdr X))\n  %1006 = and i64 %1005, 15\n  %1007 = icmp eq i64 %1006, 0\n  br i1 %1007, label %$104, label %$102\n$104:\n  %1008 = phi i64 [%990, %$74] ; # Exe\n  %1009 = phi i64 [%991, %$74] ; # Args\n  %1010 = phi i64 [%992, %$74] ; # Rpc\n  %1011 = phi i1 [%993, %$74] ; # Notify\n  %1012 = phi i64 [%994, %$74] ; # Tos\n  %1013 = phi i64 [%995, %$74] ; # P\n  %1014 = phi i64 [%1002, %$74] ; # X\n; # (let Y P (setq P @) (set 2 X Tos) (setq Tos (| Y 8)))\n; # (set 2 X Tos)\n  %1015 = inttoptr i64 %1014 to i64*\n  %1016 = getelementptr i64, i64* %1015, i32 1\n  store i64 %1012, i64* %1016\n; # (| Y 8)\n  %1017 = or i64 %1013, 8\n  br label %$103\n$102:\n  %1018 = phi i64 [%990, %$74] ; # Exe\n  %1019 = phi i64 [%991, %$74] ; # Args\n  %1020 = phi i64 [%992, %$74] ; # Rpc\n  %1021 = phi i1 [%993, %$74] ; # Notify\n  %1022 = phi i64 [%994, %$74] ; # Tos\n  %1023 = phi i64 [%995, %$74] ; # P\n  %1024 = phi i64 [%1002, %$74] ; # X\n; # (loop (unless Tos (goto 2)) (? (=0 (& Tos 8)) (let (X Tos Y (cdr ...\n  br label %$105\n$105:\n  %1025 = phi i64 [%1018, %$102], [%1058, %$108] ; # Exe\n  %1026 = phi i64 [%1019, %$102], [%1059, %$108] ; # Args\n  %1027 = phi i64 [%1020, %$102], [%1060, %$108] ; # Rpc\n  %1028 = phi i1 [%1021, %$102], [%1061, %$108] ; # Notify\n  %1029 = phi i64 [%1022, %$102], [%1070, %$108] ; # Tos\n  %1030 = phi i64 [%1023, %$102], [%1064, %$108] ; # P\n; # (unless Tos (goto 2))\n  %1031 = icmp ne i64 %1029, 0\n  br i1 %1031, label %$107, label %$106\n$106:\n  %1032 = phi i64 [%1025, %$105] ; # Exe\n  %1033 = phi i64 [%1026, %$105] ; # Args\n  %1034 = phi i64 [%1027, %$105] ; # Rpc\n  %1035 = phi i1 [%1028, %$105] ; # Notify\n  %1036 = phi i64 [%1029, %$105] ; # Tos\n  %1037 = phi i64 [%1030, %$105] ; # P\n; # (goto 2)\n  br label %$-2\n$107:\n  %1038 = phi i64 [%1025, %$105] ; # Exe\n  %1039 = phi i64 [%1026, %$105] ; # Args\n  %1040 = phi i64 [%1027, %$105] ; # Rpc\n  %1041 = phi i1 [%1028, %$105] ; # Notify\n  %1042 = phi i64 [%1029, %$105] ; # Tos\n  %1043 = phi i64 [%1030, %$105] ; # P\n; # (? (=0 (& Tos 8)) (let (X Tos Y (cdr X)) (setq Tos (car Y)) (set ...\n; # (& Tos 8)\n  %1044 = and i64 %1042, 8\n; # (=0 (& Tos 8))\n  %1045 = icmp eq i64 %1044, 0\n  br i1 %1045, label %$110, label %$108\n$110:\n  %1046 = phi i64 [%1038, %$107] ; # Exe\n  %1047 = phi i64 [%1039, %$107] ; # Args\n  %1048 = phi i64 [%1040, %$107] ; # Rpc\n  %1049 = phi i1 [%1041, %$107] ; # Notify\n  %1050 = phi i64 [%1042, %$107] ; # Tos\n  %1051 = phi i64 [%1043, %$107] ; # P\n; # (let (X Tos Y (cdr X)) (setq Tos (car Y)) (set Y P) (setq P X))\n; # (cdr X)\n  %1052 = inttoptr i64 %1050 to i64*\n  %1053 = getelementptr i64, i64* %1052, i32 1\n  %1054 = load i64, i64* %1053\n; # (car Y)\n  %1055 = inttoptr i64 %1054 to i64*\n  %1056 = load i64, i64* %1055\n; # (set Y P)\n  %1057 = inttoptr i64 %1054 to i64*\n  store i64 %1051, i64* %1057\n  br label %$109\n$108:\n  %1058 = phi i64 [%1038, %$107] ; # Exe\n  %1059 = phi i64 [%1039, %$107] ; # Args\n  %1060 = phi i64 [%1040, %$107] ; # Rpc\n  %1061 = phi i1 [%1041, %$107] ; # Notify\n  %1062 = phi i64 [%1042, %$107] ; # Tos\n  %1063 = phi i64 [%1043, %$107] ; # P\n; # (& Tos -9)\n  %1064 = and i64 %1062, -9\n; # (let (X Tos Y (cdr X)) (setq Tos (cdr Y)) (set 2 Y P) (setq P X))...\n; # (cdr X)\n  %1065 = inttoptr i64 %1064 to i64*\n  %1066 = getelementptr i64, i64* %1065, i32 1\n  %1067 = load i64, i64* %1066\n; # (cdr Y)\n  %1068 = inttoptr i64 %1067 to i64*\n  %1069 = getelementptr i64, i64* %1068, i32 1\n  %1070 = load i64, i64* %1069\n; # (set 2 Y P)\n  %1071 = inttoptr i64 %1067 to i64*\n  %1072 = getelementptr i64, i64* %1071, i32 1\n  store i64 %1063, i64* %1072\n  br label %$105\n$109:\n  %1073 = phi i64 [%1046, %$110] ; # Exe\n  %1074 = phi i64 [%1047, %$110] ; # Args\n  %1075 = phi i64 [%1048, %$110] ; # Rpc\n  %1076 = phi i1 [%1049, %$110] ; # Notify\n  %1077 = phi i64 [%1056, %$110] ; # Tos\n  %1078 = phi i64 [%1050, %$110] ; # P\n  %1079 = phi i64 [%1050, %$110] ; # ->\n  br label %$67\n$103:\n  %1080 = phi i64 [%1008, %$104] ; # Exe\n  %1081 = phi i64 [%1009, %$104] ; # Args\n  %1082 = phi i64 [%1010, %$104] ; # Rpc\n  %1083 = phi i1 [%1011, %$104] ; # Notify\n  %1084 = phi i64 [%1017, %$104] ; # Tos\n  %1085 = phi i64 [%1005, %$104] ; # P\n  %1086 = phi i64 [%1017, %$104] ; # ->\n  br label %$63\n$111:\n; # (: 2 (when Notify (tellEnd -1) (set $TellBuf (val $BufX) $Ptr (va...\n  br label %$-2\n$-2:\n  %1087 = phi i64 [%1032, %$106], [%1080, %$111] ; # Exe\n  %1088 = phi i64 [%1033, %$106], [%1081, %$111] ; # Args\n  %1089 = phi i64 [%1034, %$106], [%1082, %$111] ; # Rpc\n  %1090 = phi i1 [%1035, %$106], [%1083, %$111] ; # Notify\n; # (when Notify (tellEnd -1) (set $TellBuf (val $BufX) $Ptr (val $Pt...\n  br i1 %1090, label %$112, label %$113\n$112:\n  %1091 = phi i64 [%1087, %$-2] ; # Exe\n  %1092 = phi i64 [%1088, %$-2] ; # Args\n  %1093 = phi i64 [%1089, %$-2] ; # Rpc\n  %1094 = phi i1 [%1090, %$-2] ; # Notify\n; # (tellEnd -1)\n  call void @tellEnd(i32 -1)\n; # (set $TellBuf (val $BufX) $Ptr (val $PtrX) $End (val $EndX))\n; # (val $BufX)\n  %1095 = load i8*, i8** @$BufX\n  store i8* %1095, i8** @$TellBuf\n; # (val $PtrX)\n  %1096 = load i8*, i8** @$PtrX\n  store i8* %1096, i8** @$Ptr\n; # (val $EndX)\n  %1097 = load i8*, i8** @$EndX\n  store i8* %1097, i8** @$End\n  br label %$113\n$113:\n  %1098 = phi i64 [%1087, %$-2], [%1091, %$112] ; # Exe\n  %1099 = phi i64 [%1088, %$-2], [%1092, %$112] ; # Args\n  %1100 = phi i64 [%1089, %$-2], [%1093, %$112] ; # Rpc\n  %1101 = phi i1 [%1090, %$-2], [%1094, %$112] ; # Notify\n; # (car Args)\n  %1102 = inttoptr i64 %1099 to i64*\n  %1103 = load i64, i64* %1102\n; # (eval (car Args))\n  %1104 = and i64 %1103, 6\n  %1105 = icmp ne i64 %1104, 0\n  br i1 %1105, label %$116, label %$115\n$116:\n  %1106 = phi i64 [%1103, %$113] ; # X\n  br label %$114\n$115:\n  %1107 = phi i64 [%1103, %$113] ; # X\n  %1108 = and i64 %1107, 8\n  %1109 = icmp ne i64 %1108, 0\n  br i1 %1109, label %$118, label %$117\n$118:\n  %1110 = phi i64 [%1107, %$115] ; # X\n  %1111 = inttoptr i64 %1110 to i64*\n  %1112 = load i64, i64* %1111\n  br label %$114\n$117:\n  %1113 = phi i64 [%1107, %$115] ; # X\n  %1114 = call i64 @evList(i64 %1113)\n  br label %$114\n$114:\n  %1115 = phi i64 [%1106, %$116], [%1110, %$118], [%1113, %$117] ; # X\n  %1116 = phi i64 [%1106, %$116], [%1112, %$118], [%1114, %$117] ; # ->\n; # (when (val $DbJnl) (unLockJnl))\n; # (val $DbJnl)\n  %1117 = load i8*, i8** @$DbJnl\n  %1118 = icmp ne i8* %1117, null\n  br i1 %1118, label %$119, label %$120\n$119:\n  %1119 = phi i64 [%1098, %$114] ; # Exe\n  %1120 = phi i64 [%1099, %$114] ; # Args\n  %1121 = phi i64 [%1100, %$114] ; # Rpc\n  %1122 = phi i1 [%1101, %$114] ; # Notify\n; # (unLockJnl)\n  call void @unLockJnl()\n  br label %$120\n$120:\n  %1123 = phi i64 [%1098, %$114], [%1119, %$119] ; # Exe\n  %1124 = phi i64 [%1099, %$114], [%1120, %$119] ; # Args\n  %1125 = phi i64 [%1100, %$114], [%1121, %$119] ; # Rpc\n  %1126 = phi i1 [%1101, %$114], [%1122, %$119] ; # Notify\n; # (when (pair (val $Zap)) (let (Z @ Out (val $OutFile) Nm (xName (c...\n; # (val $Zap)\n  %1127 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 536) to i64) to i64*\n  %1128 = load i64, i64* %1127\n; # (pair (val $Zap))\n  %1129 = and i64 %1128, 15\n  %1130 = icmp eq i64 %1129, 0\n  br i1 %1130, label %$121, label %$122\n$121:\n  %1131 = phi i64 [%1123, %$120] ; # Exe\n  %1132 = phi i64 [%1124, %$120] ; # Args\n  %1133 = phi i64 [%1125, %$120] ; # Rpc\n  %1134 = phi i1 [%1126, %$120] ; # Notify\n; # (let (Z @ Out (val $OutFile) Nm (xName (cdr Z)) S (pathString Nm ...\n; # (val $OutFile)\n  %1135 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (cdr Z)\n  %1136 = inttoptr i64 %1128 to i64*\n  %1137 = getelementptr i64, i64* %1136, i32 1\n  %1138 = load i64, i64* %1137\n; # (xName (cdr Z))\n  %1139 = call i64 @xName(i64 %1138)\n; # (pathSize Nm)\n  %1140 = call i64 @pathSize(i64 %1139)\n; # (b8 (pathSize Nm))\n  %1141 = alloca i8, i64 %1140\n; # (pathString Nm (b8 (pathSize Nm)))\n  %1142 = call i8* @pathString(i64 %1139, i8* %1141)\n; # (b8+ (outFile T))\n  %1143 = alloca i8, i64 4105, align 8\n; # (when (lt0 (openWrAppend S)) (openErr Exe (cdr Z)))\n; # (openWrAppend S)\n  %1144 = call i32 @openWrAppend(i8* %1142)\n; # (lt0 (openWrAppend S))\n  %1145 = icmp slt i32 %1144, 0\n  br i1 %1145, label %$123, label %$124\n$123:\n  %1146 = phi i64 [%1131, %$121] ; # Exe\n  %1147 = phi i64 [%1132, %$121] ; # Args\n  %1148 = phi i64 [%1133, %$121] ; # Rpc\n  %1149 = phi i1 [%1134, %$121] ; # Notify\n  %1150 = phi i64 [%1128, %$121] ; # Z\n  %1151 = phi i8* [%1135, %$121] ; # Out\n  %1152 = phi i64 [%1139, %$121] ; # Nm\n  %1153 = phi i8* [%1142, %$121] ; # S\n; # (cdr Z)\n  %1154 = inttoptr i64 %1150 to i64*\n  %1155 = getelementptr i64, i64* %1154, i32 1\n  %1156 = load i64, i64* %1155\n; # (openErr Exe (cdr Z))\n  call void @openErr(i64 %1146, i64 %1156)\n  unreachable\n$124:\n  %1157 = phi i64 [%1131, %$121] ; # Exe\n  %1158 = phi i64 [%1132, %$121] ; # Args\n  %1159 = phi i64 [%1133, %$121] ; # Rpc\n  %1160 = phi i1 [%1134, %$121] ; # Notify\n  %1161 = phi i64 [%1128, %$121] ; # Z\n  %1162 = phi i8* [%1135, %$121] ; # Out\n  %1163 = phi i64 [%1139, %$121] ; # Nm\n  %1164 = phi i8* [%1142, %$121] ; # S\n; # (Out: fd @)\n  %1165 = bitcast i8* %1143 to i32*\n  store i32 %1144, i32* %1165\n; # (Out: ix 0)\n  %1166 = getelementptr i8, i8* %1143, i32 4\n  %1167 = bitcast i8* %1166 to i32*\n  store i32 0, i32* %1167\n; # (Out: tty NO)\n  %1168 = getelementptr i8, i8* %1143, i32 4104\n  %1169 = bitcast i8* %1168 to i1*\n  store i1 0, i1* %1169\n; # (set $OutFile (Out:) $PutBin (fun (void i8) _putStdout) $Extn 0)\n; # (Out:)\n  store i8* %1143, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** @$PutBin\n  store i32 0, i32* @$Extn\n; # (let Y (car Z) (while (pair Y) (binPrint (++ Y))) (flush (Out:)) ...\n; # (car Z)\n  %1170 = inttoptr i64 %1161 to i64*\n  %1171 = load i64, i64* %1170\n; # (while (pair Y) (binPrint (++ Y)))\n  br label %$125\n$125:\n  %1172 = phi i64 [%1157, %$124], [%1183, %$126] ; # Exe\n  %1173 = phi i64 [%1158, %$124], [%1184, %$126] ; # Args\n  %1174 = phi i64 [%1159, %$124], [%1185, %$126] ; # Rpc\n  %1175 = phi i1 [%1160, %$124], [%1186, %$126] ; # Notify\n  %1176 = phi i64 [%1161, %$124], [%1187, %$126] ; # Z\n  %1177 = phi i8* [%1162, %$124], [%1188, %$126] ; # Out\n  %1178 = phi i64 [%1163, %$124], [%1189, %$126] ; # Nm\n  %1179 = phi i8* [%1164, %$124], [%1190, %$126] ; # S\n  %1180 = phi i64 [%1171, %$124], [%1194, %$126] ; # Y\n; # (pair Y)\n  %1181 = and i64 %1180, 15\n  %1182 = icmp eq i64 %1181, 0\n  br i1 %1182, label %$126, label %$127\n$126:\n  %1183 = phi i64 [%1172, %$125] ; # Exe\n  %1184 = phi i64 [%1173, %$125] ; # Args\n  %1185 = phi i64 [%1174, %$125] ; # Rpc\n  %1186 = phi i1 [%1175, %$125] ; # Notify\n  %1187 = phi i64 [%1176, %$125] ; # Z\n  %1188 = phi i8* [%1177, %$125] ; # Out\n  %1189 = phi i64 [%1178, %$125] ; # Nm\n  %1190 = phi i8* [%1179, %$125] ; # S\n  %1191 = phi i64 [%1180, %$125] ; # Y\n; # (++ Y)\n  %1192 = inttoptr i64 %1191 to i64*\n  %1193 = getelementptr i64, i64* %1192, i32 1\n  %1194 = load i64, i64* %1193\n  %1195 = load i64, i64* %1192\n; # (binPrint (++ Y))\n  call void @binPrint(i64 %1195)\n  br label %$125\n$127:\n  %1196 = phi i64 [%1172, %$125] ; # Exe\n  %1197 = phi i64 [%1173, %$125] ; # Args\n  %1198 = phi i64 [%1174, %$125] ; # Rpc\n  %1199 = phi i1 [%1175, %$125] ; # Notify\n  %1200 = phi i64 [%1176, %$125] ; # Z\n  %1201 = phi i8* [%1177, %$125] ; # Out\n  %1202 = phi i64 [%1178, %$125] ; # Nm\n  %1203 = phi i8* [%1179, %$125] ; # S\n  %1204 = phi i64 [%1180, %$125] ; # Y\n; # (Out:)\n; # (flush (Out:))\n  %1205 = call i1 @flush(i8* %1143)\n; # (Out: fd)\n  %1206 = bitcast i8* %1143 to i32*\n  %1207 = load i32, i32* %1206\n; # (close (Out: fd))\n  %1208 = call i32 @close(i32 %1207)\n; # (set Z $Nil)\n  %1209 = inttoptr i64 %1200 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %1209\n; # (set $OutFile Out)\n  store i8* %1201, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  br label %$122\n$122:\n  %1210 = phi i64 [%1123, %$120], [%1196, %$127] ; # Exe\n  %1211 = phi i64 [%1124, %$120], [%1197, %$127] ; # Args\n  %1212 = phi i64 [%1125, %$120], [%1198, %$127] ; # Rpc\n  %1213 = phi i1 [%1126, %$120], [%1199, %$127] ; # Notify\n; # (when (val $DbLog) (fsyncDB Exe) (truncLog Exe))\n; # (val $DbLog)\n  %1214 = load i8*, i8** @$DbLog\n  %1215 = icmp ne i8* %1214, null\n  br i1 %1215, label %$128, label %$129\n$128:\n  %1216 = phi i64 [%1210, %$122] ; # Exe\n  %1217 = phi i64 [%1211, %$122] ; # Args\n  %1218 = phi i64 [%1212, %$122] ; # Rpc\n  %1219 = phi i1 [%1213, %$122] ; # Notify\n; # (fsyncDB Exe)\n  call void @fsyncDB(i64 %1216)\n; # (truncLog Exe)\n  call void @truncLog(i64 %1216)\n  br label %$129\n$129:\n  %1220 = phi i64 [%1210, %$122], [%1216, %$128] ; # Exe\n  %1221 = phi i64 [%1211, %$122], [%1217, %$128] ; # Args\n  %1222 = phi i64 [%1212, %$122], [%1218, %$128] ; # Rpc\n  %1223 = phi i1 [%1213, %$122], [%1219, %$128] ; # Notify\n; # (unLockDb 0)\n  call void @unLockDb(i64 0)\n; # (unsync)\n  call void @unsync()\n; # (set $Protect (dec (val $Protect)))\n; # (val $Protect)\n  %1224 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (dec (val $Protect))\n  %1225 = sub i32 %1224, 1\n  store i32 %1225, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (let (P (val $DbFiles) C (val $DBs)) (loop ((dbFile P) flu -1) (?...\n; # (val $DbFiles)\n  %1226 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %1227 = load i32, i32* @$DBs\n; # (loop ((dbFile P) flu -1) (? (=0 (dec 'C))) (setq P (ofs P (dbFil...\n  br label %$130\n$130:\n  %1228 = phi i64 [%1220, %$129], [%1238, %$131] ; # Exe\n  %1229 = phi i64 [%1221, %$129], [%1239, %$131] ; # Args\n  %1230 = phi i64 [%1222, %$129], [%1240, %$131] ; # Rpc\n  %1231 = phi i1 [%1223, %$129], [%1241, %$131] ; # Notify\n  %1232 = phi i8* [%1226, %$129], [%1244, %$131] ; # P\n  %1233 = phi i32 [%1227, %$129], [%1243, %$131] ; # C\n; # ((dbFile P) flu -1)\n  %1234 = getelementptr i8, i8* %1232, i32 32\n  %1235 = bitcast i8* %1234 to i64*\n  store i64 -1, i64* %1235\n; # (? (=0 (dec 'C)))\n; # (dec 'C)\n  %1236 = sub i32 %1233, 1\n; # (=0 (dec 'C))\n  %1237 = icmp eq i32 %1236, 0\n  br i1 %1237, label %$132, label %$131\n$131:\n  %1238 = phi i64 [%1228, %$130] ; # Exe\n  %1239 = phi i64 [%1229, %$130] ; # Args\n  %1240 = phi i64 [%1230, %$130] ; # Rpc\n  %1241 = phi i1 [%1231, %$130] ; # Notify\n  %1242 = phi i8* [%1232, %$130] ; # P\n  %1243 = phi i32 [%1236, %$130] ; # C\n; # (ofs P (dbFile T))\n  %1244 = getelementptr i8, i8* %1242, i32 48\n  br label %$130\n$132:\n  %1245 = phi i64 [%1228, %$130] ; # Exe\n  %1246 = phi i64 [%1229, %$130] ; # Args\n  %1247 = phi i64 [%1230, %$130] ; # Rpc\n  %1248 = phi i1 [%1231, %$130] ; # Notify\n  %1249 = phi i8* [%1232, %$130] ; # P\n  %1250 = phi i32 [%1236, %$130] ; # C\n  %1251 = phi i64 [0, %$130] ; # ->\n; # (drop *Safe)\n  %1252 = inttoptr i64 %24 to i64*\n  %1253 = getelementptr i64, i64* %1252, i32 1\n  %1254 = load i64, i64* %1253\n  %1255 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1254, i64* %1255\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n}\n\ndefine i64 @_Mark(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (if (== Y ZERO) (let (Db (val ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (if (== Y ZERO) (let (Db (val $DbFiles) C (val $DBs)) (while (ge0...\n; # (== Y ZERO)\n  %21 = icmp eq i64 %20, 2\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # Y\n; # (let (Db (val $DbFiles) C (val $DBs)) (while (ge0 (dec 'C)) (let ...\n; # (val $DbFiles)\n  %25 = load i8*, i8** @$DbFiles\n; # (val $DBs)\n  %26 = load i32, i32* @$DBs\n; # (while (ge0 (dec 'C)) (let Db: (dbFile Db) (Db: mrks 0) (free (Db...\n  br label %$10\n$10:\n  %27 = phi i64 [%22, %$7], [%34, %$11] ; # Exe\n  %28 = phi i64 [%23, %$7], [%35, %$11] ; # X\n  %29 = phi i64 [%24, %$7], [%36, %$11] ; # Y\n  %30 = phi i8* [%25, %$7], [%46, %$11] ; # Db\n  %31 = phi i32 [%26, %$7], [%38, %$11] ; # C\n; # (dec 'C)\n  %32 = sub i32 %31, 1\n; # (ge0 (dec 'C))\n  %33 = icmp sge i32 %32, 0\n  br i1 %33, label %$11, label %$12\n$11:\n  %34 = phi i64 [%27, %$10] ; # Exe\n  %35 = phi i64 [%28, %$10] ; # X\n  %36 = phi i64 [%29, %$10] ; # Y\n  %37 = phi i8* [%30, %$10] ; # Db\n  %38 = phi i32 [%32, %$10] ; # C\n; # (let Db: (dbFile Db) (Db: mrks 0) (free (Db: mark)) (Db: mark nul...\n; # (Db: mrks 0)\n  %39 = getelementptr i8, i8* %37, i32 24\n  %40 = bitcast i8* %39 to i64*\n  store i64 0, i64* %40\n; # (Db: mark)\n  %41 = getelementptr i8, i8* %37, i32 16\n  %42 = bitcast i8* %41 to i8**\n  %43 = load i8*, i8** %42\n; # (free (Db: mark))\n  call void @free(i8* %43)\n; # (Db: mark null)\n  %44 = getelementptr i8, i8* %37, i32 16\n  %45 = bitcast i8* %44 to i8**\n  store i8* null, i8** %45\n; # (ofs Db (dbFile T))\n  %46 = getelementptr i8, i8* %37, i32 48\n  br label %$10\n$12:\n  %47 = phi i64 [%27, %$10] ; # Exe\n  %48 = phi i64 [%28, %$10] ; # X\n  %49 = phi i64 [%29, %$10] ; # Y\n  %50 = phi i8* [%30, %$10] ; # Db\n  %51 = phi i32 [%32, %$10] ; # C\n  br label %$9\n$8:\n  %52 = phi i64 [%0, %$2] ; # Exe\n  %53 = phi i64 [%6, %$2] ; # X\n  %54 = phi i64 [%20, %$2] ; # Y\n; # (unless (sym? (val (tail (needSymb Exe Y)))) (extErr Exe Y))\n; # (needSymb Exe Y)\n  %55 = xor i64 %54, 8\n  %56 = and i64 %55, 14\n  %57 = icmp eq i64 %56, 0\n  br i1 %57, label %$14, label %$13\n$13:\n  %58 = phi i64 [%54, %$8] ; # X\n  %59 = phi i64 [%52, %$8] ; # Exe\n  call void @symErr(i64 %59, i64 %58)\n  unreachable\n$14:\n  %60 = phi i64 [%54, %$8] ; # X\n  %61 = phi i64 [%52, %$8] ; # Exe\n; # (tail (needSymb Exe Y))\n  %62 = add i64 %60, -8\n; # (val (tail (needSymb Exe Y)))\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n; # (sym? (val (tail (needSymb Exe Y))))\n  %65 = and i64 %64, 8\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$16, label %$15\n$15:\n  %67 = phi i64 [%52, %$14] ; # Exe\n  %68 = phi i64 [%53, %$14] ; # X\n  %69 = phi i64 [%54, %$14] ; # Y\n; # (extErr Exe Y)\n  call void @extErr(i64 %67, i64 %69)\n  unreachable\n$16:\n  %70 = phi i64 [%52, %$14] ; # Exe\n  %71 = phi i64 [%53, %$14] ; # X\n  %72 = phi i64 [%54, %$14] ; # Y\n; # (let (Nm (name (& (val (tail Y)) -9)) F (objFile Nm) N (objId Nm)...\n; # (tail Y)\n  %73 = add i64 %72, -8\n; # (val (tail Y))\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n; # (& (val (tail Y)) -9)\n  %76 = and i64 %75, -9\n; # (name (& (val (tail Y)) -9))\n  br label %$17\n$17:\n  %77 = phi i64 [%76, %$16], [%83, %$18] ; # Tail\n  %78 = and i64 %77, 6\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$19, label %$18\n$18:\n  %80 = phi i64 [%77, %$17] ; # Tail\n  %81 = inttoptr i64 %80 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  br label %$17\n$19:\n  %84 = phi i64 [%77, %$17] ; # Tail\n; # (objFile Nm)\n  %85 = call i32 @objFile(i64 %84)\n; # (objId Nm)\n  %86 = call i64 @objId(i64 %84)\n; # (if (>= F (val $DBs)) $T (let (Flg (eval (car X)) Db: (dbFile (of...\n; # (val $DBs)\n  %87 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %88 = icmp sge i32 %85, %87\n  br i1 %88, label %$20, label %$21\n$20:\n  %89 = phi i64 [%70, %$19] ; # Exe\n  %90 = phi i64 [%71, %$19] ; # X\n  %91 = phi i64 [%72, %$19] ; # Y\n  %92 = phi i64 [%84, %$19] ; # Nm\n  %93 = phi i32 [%85, %$19] ; # F\n  %94 = phi i64 [%86, %$19] ; # N\n  br label %$22\n$21:\n  %95 = phi i64 [%70, %$19] ; # Exe\n  %96 = phi i64 [%71, %$19] ; # X\n  %97 = phi i64 [%72, %$19] ; # Y\n  %98 = phi i64 [%84, %$19] ; # Nm\n  %99 = phi i32 [%85, %$19] ; # F\n  %100 = phi i64 [%86, %$19] ; # N\n; # (let (Flg (eval (car X)) Db: (dbFile (ofs (val $DbFiles) (* F (db...\n; # (car X)\n  %101 = inttoptr i64 %96 to i64*\n  %102 = load i64, i64* %101\n; # (eval (car X))\n  %103 = and i64 %102, 6\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$25, label %$24\n$25:\n  %105 = phi i64 [%102, %$21] ; # X\n  br label %$23\n$24:\n  %106 = phi i64 [%102, %$21] ; # X\n  %107 = and i64 %106, 8\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$27, label %$26\n$27:\n  %109 = phi i64 [%106, %$24] ; # X\n  %110 = inttoptr i64 %109 to i64*\n  %111 = load i64, i64* %110\n  br label %$23\n$26:\n  %112 = phi i64 [%106, %$24] ; # X\n  %113 = call i64 @evList(i64 %112)\n  br label %$23\n$23:\n  %114 = phi i64 [%105, %$25], [%109, %$27], [%112, %$26] ; # X\n  %115 = phi i64 [%105, %$25], [%111, %$27], [%113, %$26] ; # ->\n; # (val $DbFiles)\n  %116 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %117 = mul i32 %99, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %118 = getelementptr i8, i8* %116, i32 %117\n; # (Db: mark)\n  %119 = getelementptr i8, i8* %118, i32 16\n  %120 = bitcast i8* %119 to i8**\n  %121 = load i8*, i8** %120\n; # (shr N 3)\n  %122 = lshr i64 %100, 3\n; # (when (>= I (Db: mrks)) (let J (inc I) (memset (ofs (setq P (Db: ...\n; # (Db: mrks)\n  %123 = getelementptr i8, i8* %118, i32 24\n  %124 = bitcast i8* %123 to i64*\n  %125 = load i64, i64* %124\n; # (>= I (Db: mrks))\n  %126 = icmp uge i64 %122, %125\n  br i1 %126, label %$28, label %$29\n$28:\n  %127 = phi i64 [%95, %$23] ; # Exe\n  %128 = phi i64 [%96, %$23] ; # X\n  %129 = phi i64 [%97, %$23] ; # Y\n  %130 = phi i64 [%98, %$23] ; # Nm\n  %131 = phi i32 [%99, %$23] ; # F\n  %132 = phi i64 [%100, %$23] ; # N\n  %133 = phi i64 [%115, %$23] ; # Flg\n  %134 = phi i8* [%121, %$23] ; # P\n  %135 = phi i64 [%122, %$23] ; # I\n; # (let J (inc I) (memset (ofs (setq P (Db: mark (alloc P J))) (Db: ...\n; # (inc I)\n  %136 = add i64 %135, 1\n; # (Db: mark (alloc P J))\n  %137 = getelementptr i8, i8* %118, i32 16\n  %138 = bitcast i8* %137 to i8**\n  %139 = call i8* @alloc(i8* %134, i64 %136)\n  store i8* %139, i8** %138\n; # (Db: mrks)\n  %140 = getelementptr i8, i8* %118, i32 24\n  %141 = bitcast i8* %140 to i64*\n  %142 = load i64, i64* %141\n; # (ofs (setq P (Db: mark (alloc P J))) (Db: mrks))\n  %143 = getelementptr i8, i8* %139, i64 %142\n; # (Db: mrks)\n  %144 = getelementptr i8, i8* %118, i32 24\n  %145 = bitcast i8* %144 to i64*\n  %146 = load i64, i64* %145\n; # (- J (Db: mrks))\n  %147 = sub i64 %136, %146\n; # (memset (ofs (setq P (Db: mark (alloc P J))) (Db: mrks)) 0 (- J (...\n  call void @llvm.memset.p0i8.i64(i8* %143, i8 0, i64 %147, i1 0)\n; # (Db: mrks J)\n  %148 = getelementptr i8, i8* %118, i32 24\n  %149 = bitcast i8* %148 to i64*\n  store i64 %136, i64* %149\n  br label %$29\n$29:\n  %150 = phi i64 [%95, %$23], [%127, %$28] ; # Exe\n  %151 = phi i64 [%96, %$23], [%128, %$28] ; # X\n  %152 = phi i64 [%97, %$23], [%129, %$28] ; # Y\n  %153 = phi i64 [%98, %$23], [%130, %$28] ; # Nm\n  %154 = phi i32 [%99, %$23], [%131, %$28] ; # F\n  %155 = phi i64 [%100, %$23], [%132, %$28] ; # N\n  %156 = phi i64 [%115, %$23], [%133, %$28] ; # Flg\n  %157 = phi i8* [%121, %$23], [%139, %$28] ; # P\n  %158 = phi i64 [%122, %$23], [%135, %$28] ; # I\n; # (ofs P I)\n  %159 = getelementptr i8, i8* %157, i64 %158\n; # (& N 7)\n  %160 = and i64 %155, 7\n; # (shl 1 (& N 7))\n  %161 = shl i64 1, %160\n; # (i8 (shl 1 (& N 7)))\n  %162 = trunc i64 %161 to i8\n; # (let B (val P) (cond ((& B N) (when (== ZERO Flg) (set P (& B (x|...\n; # (val P)\n  %163 = load i8, i8* %159\n; # (cond ((& B N) (when (== ZERO Flg) (set P (& B (x| N -1)))) $T) (...\n; # (& B N)\n  %164 = and i8 %163, %162\n  %165 = icmp ne i8 %164, 0\n  br i1 %165, label %$32, label %$31\n$32:\n  %166 = phi i64 [%150, %$29] ; # Exe\n  %167 = phi i64 [%151, %$29] ; # X\n  %168 = phi i64 [%152, %$29] ; # Y\n  %169 = phi i64 [%153, %$29] ; # Nm\n  %170 = phi i32 [%154, %$29] ; # F\n  %171 = phi i8 [%162, %$29] ; # N\n  %172 = phi i64 [%156, %$29] ; # Flg\n  %173 = phi i8* [%159, %$29] ; # P\n  %174 = phi i64 [%158, %$29] ; # I\n  %175 = phi i8 [%163, %$29] ; # B\n; # (when (== ZERO Flg) (set P (& B (x| N -1))))\n; # (== ZERO Flg)\n  %176 = icmp eq i64 2, %172\n  br i1 %176, label %$33, label %$34\n$33:\n  %177 = phi i64 [%166, %$32] ; # Exe\n  %178 = phi i64 [%167, %$32] ; # X\n  %179 = phi i64 [%168, %$32] ; # Y\n  %180 = phi i64 [%169, %$32] ; # Nm\n  %181 = phi i32 [%170, %$32] ; # F\n  %182 = phi i8 [%171, %$32] ; # N\n  %183 = phi i64 [%172, %$32] ; # Flg\n  %184 = phi i8* [%173, %$32] ; # P\n  %185 = phi i64 [%174, %$32] ; # I\n  %186 = phi i8 [%175, %$32] ; # B\n; # (set P (& B (x| N -1)))\n; # (x| N -1)\n  %187 = xor i8 %182, -1\n; # (& B (x| N -1))\n  %188 = and i8 %186, %187\n  store i8 %188, i8* %184\n  br label %$34\n$34:\n  %189 = phi i64 [%166, %$32], [%177, %$33] ; # Exe\n  %190 = phi i64 [%167, %$32], [%178, %$33] ; # X\n  %191 = phi i64 [%168, %$32], [%179, %$33] ; # Y\n  %192 = phi i64 [%169, %$32], [%180, %$33] ; # Nm\n  %193 = phi i32 [%170, %$32], [%181, %$33] ; # F\n  %194 = phi i8 [%171, %$32], [%182, %$33] ; # N\n  %195 = phi i64 [%172, %$32], [%183, %$33] ; # Flg\n  %196 = phi i8* [%173, %$32], [%184, %$33] ; # P\n  %197 = phi i64 [%174, %$32], [%185, %$33] ; # I\n  %198 = phi i8 [%175, %$32], [%186, %$33] ; # B\n  br label %$30\n$31:\n  %199 = phi i64 [%150, %$29] ; # Exe\n  %200 = phi i64 [%151, %$29] ; # X\n  %201 = phi i64 [%152, %$29] ; # Y\n  %202 = phi i64 [%153, %$29] ; # Nm\n  %203 = phi i32 [%154, %$29] ; # F\n  %204 = phi i8 [%162, %$29] ; # N\n  %205 = phi i64 [%156, %$29] ; # Flg\n  %206 = phi i8* [%159, %$29] ; # P\n  %207 = phi i64 [%158, %$29] ; # I\n  %208 = phi i8 [%163, %$29] ; # B\n; # (when (== $T Flg) (set P (| B N)))\n; # (== $T Flg)\n  %209 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %205\n  br i1 %209, label %$35, label %$36\n$35:\n  %210 = phi i64 [%199, %$31] ; # Exe\n  %211 = phi i64 [%200, %$31] ; # X\n  %212 = phi i64 [%201, %$31] ; # Y\n  %213 = phi i64 [%202, %$31] ; # Nm\n  %214 = phi i32 [%203, %$31] ; # F\n  %215 = phi i8 [%204, %$31] ; # N\n  %216 = phi i64 [%205, %$31] ; # Flg\n  %217 = phi i8* [%206, %$31] ; # P\n  %218 = phi i64 [%207, %$31] ; # I\n  %219 = phi i8 [%208, %$31] ; # B\n; # (set P (| B N))\n; # (| B N)\n  %220 = or i8 %219, %215\n  store i8 %220, i8* %217\n  br label %$36\n$36:\n  %221 = phi i64 [%199, %$31], [%210, %$35] ; # Exe\n  %222 = phi i64 [%200, %$31], [%211, %$35] ; # X\n  %223 = phi i64 [%201, %$31], [%212, %$35] ; # Y\n  %224 = phi i64 [%202, %$31], [%213, %$35] ; # Nm\n  %225 = phi i32 [%203, %$31], [%214, %$35] ; # F\n  %226 = phi i8 [%204, %$31], [%215, %$35] ; # N\n  %227 = phi i64 [%205, %$31], [%216, %$35] ; # Flg\n  %228 = phi i8* [%206, %$31], [%217, %$35] ; # P\n  %229 = phi i64 [%207, %$31], [%218, %$35] ; # I\n  %230 = phi i8 [%208, %$31], [%219, %$35] ; # B\n  br label %$30\n$30:\n  %231 = phi i64 [%189, %$34], [%221, %$36] ; # Exe\n  %232 = phi i64 [%190, %$34], [%222, %$36] ; # X\n  %233 = phi i64 [%191, %$34], [%223, %$36] ; # Y\n  %234 = phi i64 [%192, %$34], [%224, %$36] ; # Nm\n  %235 = phi i32 [%193, %$34], [%225, %$36] ; # F\n  %236 = phi i8 [%194, %$34], [%226, %$36] ; # N\n  %237 = phi i64 [%195, %$34], [%227, %$36] ; # Flg\n  %238 = phi i8* [%196, %$34], [%228, %$36] ; # P\n  %239 = phi i64 [%197, %$34], [%229, %$36] ; # I\n  %240 = phi i8 [%198, %$34], [%230, %$36] ; # B\n  %241 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$34], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$36] ; # ->\n  br label %$22\n$22:\n  %242 = phi i64 [%89, %$20], [%231, %$30] ; # Exe\n  %243 = phi i64 [%90, %$20], [%232, %$30] ; # X\n  %244 = phi i64 [%91, %$20], [%233, %$30] ; # Y\n  %245 = phi i64 [%92, %$20], [%234, %$30] ; # Nm\n  %246 = phi i32 [%93, %$20], [%235, %$30] ; # F\n  %247 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$20], [%241, %$30] ; # ->\n  br label %$9\n$9:\n  %248 = phi i64 [%47, %$12], [%242, %$22] ; # Exe\n  %249 = phi i64 [%48, %$12], [%243, %$22] ; # X\n  %250 = phi i64 [%49, %$12], [%244, %$22] ; # Y\n  %251 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%247, %$22] ; # ->\n  ret i64 %251\n}\n\ndefine i64 @_Free(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) F (dec (i32 (evCnt Exe X))) Buf (b8 (* BLK 2)))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (i32 (evCnt Exe X))\n  %5 = trunc i64 %4 to i32\n; # (dec (i32 (evCnt Exe X)))\n  %6 = sub i32 %5, 1\n; # (* BLK 2)\n; # (b8 (* BLK 2))\n  %7 = alloca i8, i64 12\n; # (when (>= F (val $DBs)) (dbfErr Exe))\n; # (val $DBs)\n  %8 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %9 = icmp sge i32 %6, %8\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%3, %$1] ; # X\n  %12 = phi i32 [%6, %$1] ; # F\n  %13 = phi i8* [%7, %$1] ; # Buf\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %10)\n  unreachable\n$3:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%3, %$1] ; # X\n  %16 = phi i32 [%6, %$1] ; # F\n  %17 = phi i8* [%7, %$1] ; # Buf\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %18 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %19 = mul i32 %16, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %20 = getelementptr i8, i8* %18, i32 %19\n  store i8* %20, i8** @$DbFile\n; # (rdLockDb)\n  call void @rdLockDb()\n; # (* 2 BLK)\n; # (blkPeek 0 Buf (* 2 BLK))\n  call void @blkPeek(i64 0, i8* %17, i32 12)\n; # (set $BlkLink (getAdr Buf))\n; # (getAdr Buf)\n  %21 = call i64 @getAdr(i8* %17)\n  store i64 %21, i64* @$BlkLink\n; # (let (Y (cons (extern (extNm F (shr (getAdr (ofs Buf BLK)) 6))) $...\n; # (ofs Buf BLK)\n  %22 = getelementptr i8, i8* %17, i32 6\n; # (getAdr (ofs Buf BLK))\n  %23 = call i64 @getAdr(i8* %22)\n; # (shr (getAdr (ofs Buf BLK)) 6)\n  %24 = lshr i64 %23, 6\n; # (extNm F (shr (getAdr (ofs Buf BLK)) 6))\n  %25 = call i64 @extNm(i32 %16, i64 %24)\n; # (extern (extNm F (shr (getAdr (ofs Buf BLK)) 6)))\n  %26 = call i64 @extern(i64 %25)\n; # (cons (extern (extNm F (shr (getAdr (ofs Buf BLK)) 6))) $Nil)\n  %27 = call i64 @cons(i64 %26, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = alloca i64, i64 2, align 16\n  %31 = ptrtoint i64* %30 to i64\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = add i64 %31, 8\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %35\n; # (while (val $BlkLink) (setq Y (set 2 Y (cons (extern (extNm F (sh...\n  br label %$4\n$4:\n  %36 = phi i64 [%14, %$3], [%44, %$5] ; # Exe\n  %37 = phi i64 [%15, %$3], [%45, %$5] ; # X\n  %38 = phi i32 [%16, %$3], [%46, %$5] ; # F\n  %39 = phi i8* [%17, %$3], [%47, %$5] ; # Buf\n  %40 = phi i64 [%27, %$3], [%53, %$5] ; # Y\n  %41 = phi i64 [%27, %$3], [%49, %$5] ; # R\n; # (val $BlkLink)\n  %42 = load i64, i64* @$BlkLink\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$5, label %$6\n$5:\n  %44 = phi i64 [%36, %$4] ; # Exe\n  %45 = phi i64 [%37, %$4] ; # X\n  %46 = phi i32 [%38, %$4] ; # F\n  %47 = phi i8* [%39, %$4] ; # Buf\n  %48 = phi i64 [%40, %$4] ; # Y\n  %49 = phi i64 [%41, %$4] ; # R\n; # (set 2 Y (cons (extern (extNm F (shr @ 6))) $Nil))\n; # (shr @ 6)\n  %50 = lshr i64 %42, 6\n; # (extNm F (shr @ 6))\n  %51 = call i64 @extNm(i32 %46, i64 %50)\n; # (extern (extNm F (shr @ 6)))\n  %52 = call i64 @extern(i64 %51)\n; # (cons (extern (extNm F (shr @ 6))) $Nil)\n  %53 = call i64 @cons(i64 %52, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %54 = inttoptr i64 %48 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  store i64 %53, i64* %55\n; # (rdBlock @)\n  %56 = call i8* @rdBlock(i64 %42)\n  br label %$4\n$6:\n  %57 = phi i64 [%36, %$4] ; # Exe\n  %58 = phi i64 [%37, %$4] ; # X\n  %59 = phi i32 [%38, %$4] ; # F\n  %60 = phi i8* [%39, %$4] ; # Buf\n  %61 = phi i64 [%40, %$4] ; # Y\n  %62 = phi i64 [%41, %$4] ; # R\n; # (unLockDb 1)\n  call void @unLockDb(i64 1)\n; # (drop *Safe)\n  %63 = inttoptr i64 %31 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  %65 = load i64, i64* %64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %66\n  ret i64 %62\n}\n\ndefine i64 @_Dbck(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X)) Jnl (val $DbJnl) Buf (b8 (* BL...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (val $DbJnl)\n  %19 = load i8*, i8** @$DbJnl\n; # (* BLK 2)\n; # (b8 (* BLK 2))\n  %20 = alloca i8, i64 12\n; # (if (cnt? Y) (let F (dec (i32 (int Y))) (when (>= F (val $DBs)) (...\n; # (cnt? Y)\n  %21 = and i64 %18, 2\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%3, %$2] ; # X\n  %25 = phi i64 [%18, %$2] ; # Y\n  %26 = phi i8* [%19, %$2] ; # Jnl\n  %27 = phi i8* [%20, %$2] ; # Buf\n  %28 = phi i64 [64, %$2] ; # Cnt\n  %29 = phi i64 [0, %$2] ; # Syms\n  %30 = phi i64 [0, %$2] ; # Blks\n; # (let F (dec (i32 (int Y))) (when (>= F (val $DBs)) (dbfErr Exe)) ...\n; # (int Y)\n  %31 = lshr i64 %25, 4\n; # (i32 (int Y))\n  %32 = trunc i64 %31 to i32\n; # (dec (i32 (int Y)))\n  %33 = sub i32 %32, 1\n; # (when (>= F (val $DBs)) (dbfErr Exe))\n; # (val $DBs)\n  %34 = load i32, i32* @$DBs\n; # (>= F (val $DBs))\n  %35 = icmp sge i32 %33, %34\n  br i1 %35, label %$10, label %$11\n$10:\n  %36 = phi i64 [%23, %$7] ; # Exe\n  %37 = phi i64 [%24, %$7] ; # X\n  %38 = phi i64 [%25, %$7] ; # Y\n  %39 = phi i8* [%26, %$7] ; # Jnl\n  %40 = phi i8* [%27, %$7] ; # Buf\n  %41 = phi i64 [%28, %$7] ; # Cnt\n  %42 = phi i64 [%29, %$7] ; # Syms\n  %43 = phi i64 [%30, %$7] ; # Blks\n  %44 = phi i32 [%33, %$7] ; # F\n; # (dbfErr Exe)\n  call void @dbfErr(i64 %36)\n  unreachable\n$11:\n  %45 = phi i64 [%23, %$7] ; # Exe\n  %46 = phi i64 [%24, %$7] ; # X\n  %47 = phi i64 [%25, %$7] ; # Y\n  %48 = phi i8* [%26, %$7] ; # Jnl\n  %49 = phi i8* [%27, %$7] ; # Buf\n  %50 = phi i64 [%28, %$7] ; # Cnt\n  %51 = phi i64 [%29, %$7] ; # Syms\n  %52 = phi i64 [%30, %$7] ; # Blks\n  %53 = phi i32 [%33, %$7] ; # F\n; # (set $DbFile (ofs (val $DbFiles) (* F (dbFile T))))\n; # (val $DbFiles)\n  %54 = load i8*, i8** @$DbFiles\n; # (* F (dbFile T))\n  %55 = mul i32 %53, 48\n; # (ofs (val $DbFiles) (* F (dbFile T)))\n  %56 = getelementptr i8, i8* %54, i32 %55\n  store i8* %56, i8** @$DbFile\n; # (cadr X)\n  %57 = inttoptr i64 %46 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n; # (eval (cadr X))\n  %62 = and i64 %61, 6\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$14, label %$13\n$14:\n  %64 = phi i64 [%61, %$11] ; # X\n  br label %$12\n$13:\n  %65 = phi i64 [%61, %$11] ; # X\n  %66 = and i64 %65, 8\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$16, label %$15\n$16:\n  %68 = phi i64 [%65, %$13] ; # X\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n  br label %$12\n$15:\n  %71 = phi i64 [%65, %$13] ; # X\n  %72 = call i64 @evList(i64 %71)\n  br label %$12\n$12:\n  %73 = phi i64 [%64, %$14], [%68, %$16], [%71, %$15] ; # X\n  %74 = phi i64 [%64, %$14], [%70, %$16], [%72, %$15] ; # ->\n  br label %$9\n$8:\n  %75 = phi i64 [%0, %$2] ; # Exe\n  %76 = phi i64 [%3, %$2] ; # X\n  %77 = phi i64 [%18, %$2] ; # Y\n  %78 = phi i8* [%19, %$2] ; # Jnl\n  %79 = phi i8* [%20, %$2] ; # Buf\n  %80 = phi i64 [64, %$2] ; # Cnt\n  %81 = phi i64 [0, %$2] ; # Syms\n  %82 = phi i64 [0, %$2] ; # Blks\n; # (set $DbFile (val $DbFiles))\n; # (val $DbFiles)\n  %83 = load i8*, i8** @$DbFiles\n  store i8* %83, i8** @$DbFile\n  br label %$9\n$9:\n  %84 = phi i64 [%45, %$12], [%75, %$8] ; # Exe\n  %85 = phi i64 [%46, %$12], [%76, %$8] ; # X\n  %86 = phi i64 [%74, %$12], [%77, %$8] ; # Y\n  %87 = phi i8* [%48, %$12], [%78, %$8] ; # Jnl\n  %88 = phi i8* [%49, %$12], [%79, %$8] ; # Buf\n  %89 = phi i64 [%50, %$12], [%80, %$8] ; # Cnt\n  %90 = phi i64 [%51, %$12], [%81, %$8] ; # Syms\n  %91 = phi i64 [%52, %$12], [%82, %$8] ; # Blks\n; # (set $Protect (inc (val $Protect)))\n; # (val $Protect)\n  %92 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (inc (val $Protect))\n  %93 = add i32 %92, 1\n  store i32 %93, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (wrLockDb)\n  call void @wrLockDb()\n; # (when Jnl (lockJnl) (set $DbJnl null))\n  %94 = icmp ne i8* %87, null\n  br i1 %94, label %$17, label %$18\n$17:\n  %95 = phi i64 [%84, %$9] ; # Exe\n  %96 = phi i64 [%85, %$9] ; # X\n  %97 = phi i64 [%86, %$9] ; # Y\n  %98 = phi i8* [%87, %$9] ; # Jnl\n  %99 = phi i8* [%88, %$9] ; # Buf\n  %100 = phi i64 [%89, %$9] ; # Cnt\n  %101 = phi i64 [%90, %$9] ; # Syms\n  %102 = phi i64 [%91, %$9] ; # Blks\n; # (lockJnl)\n  call void @lockJnl()\n; # (set $DbJnl null)\n  store i8* null, i8** @$DbJnl\n  br label %$18\n$18:\n  %103 = phi i64 [%84, %$9], [%95, %$17] ; # Exe\n  %104 = phi i64 [%85, %$9], [%96, %$17] ; # X\n  %105 = phi i64 [%86, %$9], [%97, %$17] ; # Y\n  %106 = phi i8* [%87, %$9], [%98, %$17] ; # Jnl\n  %107 = phi i8* [%88, %$9], [%99, %$17] ; # Buf\n  %108 = phi i64 [%89, %$9], [%100, %$17] ; # Cnt\n  %109 = phi i64 [%90, %$9], [%101, %$17] ; # Syms\n  %110 = phi i64 [%91, %$9], [%102, %$17] ; # Blks\n; # (* 2 BLK)\n; # (blkPeek 0 Buf (* 2 BLK))\n  call void @blkPeek(i64 0, i8* %107, i32 12)\n; # (set $BlkLink (getAdr Buf))\n; # (getAdr Buf)\n  %111 = call i64 @getAdr(i8* %107)\n  store i64 %111, i64* @$BlkLink\n; # (let Next (getAdr (ofs Buf BLK)) (while (val $BlkLink) (let Blk (...\n; # (ofs Buf BLK)\n  %112 = getelementptr i8, i8* %107, i32 6\n; # (getAdr (ofs Buf BLK))\n  %113 = call i64 @getAdr(i8* %112)\n; # (while (val $BlkLink) (let Blk (rdBlock @) (set Blk (| (val Blk) ...\n  br label %$19\n$19:\n  %114 = phi i64 [%103, %$18], [%149, %$23] ; # Exe\n  %115 = phi i64 [%104, %$18], [%150, %$23] ; # X\n  %116 = phi i64 [%105, %$18], [%151, %$23] ; # Y\n  %117 = phi i8* [%106, %$18], [%152, %$23] ; # Jnl\n  %118 = phi i8* [%107, %$18], [%153, %$23] ; # Buf\n  %119 = phi i64 [%108, %$18], [%154, %$23] ; # Cnt\n  %120 = phi i64 [%109, %$18], [%155, %$23] ; # Syms\n  %121 = phi i64 [%110, %$18], [%156, %$23] ; # Blks\n  %122 = phi i64 [%113, %$18], [%157, %$23] ; # Next\n; # (val $BlkLink)\n  %123 = load i64, i64* @$BlkLink\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$20, label %$21\n$20:\n  %125 = phi i64 [%114, %$19] ; # Exe\n  %126 = phi i64 [%115, %$19] ; # X\n  %127 = phi i64 [%116, %$19] ; # Y\n  %128 = phi i8* [%117, %$19] ; # Jnl\n  %129 = phi i8* [%118, %$19] ; # Buf\n  %130 = phi i64 [%119, %$19] ; # Cnt\n  %131 = phi i64 [%120, %$19] ; # Syms\n  %132 = phi i64 [%121, %$19] ; # Blks\n  %133 = phi i64 [%122, %$19] ; # Next\n; # (let Blk (rdBlock @) (set Blk (| (val Blk) BLKTAG)))\n; # (rdBlock @)\n  %134 = call i8* @rdBlock(i64 %123)\n; # (set Blk (| (val Blk) BLKTAG))\n; # (val Blk)\n  %135 = load i8, i8* %134\n; # (| (val Blk) BLKTAG)\n  %136 = or i8 %135, 63\n  store i8 %136, i8* %134\n; # (when (> (inc 'Cnt BLKSIZE) Next) (setq Y (mkStr ($ \"Circular fre...\n; # (inc 'Cnt BLKSIZE)\n  %137 = add i64 %130, 64\n; # (> (inc 'Cnt BLKSIZE) Next)\n  %138 = icmp ugt i64 %137, %133\n  br i1 %138, label %$22, label %$23\n$22:\n  %139 = phi i64 [%125, %$20] ; # Exe\n  %140 = phi i64 [%126, %$20] ; # X\n  %141 = phi i64 [%127, %$20] ; # Y\n  %142 = phi i8* [%128, %$20] ; # Jnl\n  %143 = phi i8* [%129, %$20] ; # Buf\n  %144 = phi i64 [%137, %$20] ; # Cnt\n  %145 = phi i64 [%131, %$20] ; # Syms\n  %146 = phi i64 [%132, %$20] ; # Blks\n  %147 = phi i64 [%133, %$20] ; # Next\n; # (mkStr ($ \"Circular free list\"))\n  %148 = call i64 @mkStr(i8* bitcast ([19 x i8]* @$68 to i8*))\n; # (goto 9)\n  br label %$-9\n$23:\n  %149 = phi i64 [%125, %$20] ; # Exe\n  %150 = phi i64 [%126, %$20] ; # X\n  %151 = phi i64 [%127, %$20] ; # Y\n  %152 = phi i8* [%128, %$20] ; # Jnl\n  %153 = phi i8* [%129, %$20] ; # Buf\n  %154 = phi i64 [%137, %$20] ; # Cnt\n  %155 = phi i64 [%131, %$20] ; # Syms\n  %156 = phi i64 [%132, %$20] ; # Blks\n  %157 = phi i64 [%133, %$20] ; # Next\n; # (wrBlock)\n  call void @wrBlock()\n  br label %$19\n$21:\n  %158 = phi i64 [%114, %$19] ; # Exe\n  %159 = phi i64 [%115, %$19] ; # X\n  %160 = phi i64 [%116, %$19] ; # Y\n  %161 = phi i8* [%117, %$19] ; # Jnl\n  %162 = phi i8* [%118, %$19] ; # Buf\n  %163 = phi i64 [%119, %$19] ; # Cnt\n  %164 = phi i64 [%120, %$19] ; # Syms\n  %165 = phi i64 [%121, %$19] ; # Blks\n  %166 = phi i64 [%122, %$19] ; # Next\n; # (set $DbJnl Jnl)\n  store i8* %161, i8** @$DbJnl\n; # (let P BLKSIZE (until (== P Next) (let Blk (rdBlock P) (case (& (...\n; # (until (== P Next) (let Blk (rdBlock P) (case (& (val Blk) BLKTAG...\n  br label %$24\n$24:\n  %167 = phi i64 [%158, %$21], [%311, %$27] ; # Exe\n  %168 = phi i64 [%159, %$21], [%312, %$27] ; # X\n  %169 = phi i64 [%160, %$21], [%313, %$27] ; # Y\n  %170 = phi i8* [%161, %$21], [%314, %$27] ; # Jnl\n  %171 = phi i8* [%162, %$21], [%315, %$27] ; # Buf\n  %172 = phi i64 [%163, %$21], [%316, %$27] ; # Cnt\n  %173 = phi i64 [%164, %$21], [%317, %$27] ; # Syms\n  %174 = phi i64 [%165, %$21], [%318, %$27] ; # Blks\n  %175 = phi i64 [%166, %$21], [%319, %$27] ; # Next\n  %176 = phi i64 [64, %$21], [%322, %$27] ; # P\n; # (== P Next)\n  %177 = icmp eq i64 %176, %175\n  br i1 %177, label %$26, label %$25\n$25:\n  %178 = phi i64 [%167, %$24] ; # Exe\n  %179 = phi i64 [%168, %$24] ; # X\n  %180 = phi i64 [%169, %$24] ; # Y\n  %181 = phi i8* [%170, %$24] ; # Jnl\n  %182 = phi i8* [%171, %$24] ; # Buf\n  %183 = phi i64 [%172, %$24] ; # Cnt\n  %184 = phi i64 [%173, %$24] ; # Syms\n  %185 = phi i64 [%174, %$24] ; # Blks\n  %186 = phi i64 [%175, %$24] ; # Next\n  %187 = phi i64 [%176, %$24] ; # P\n; # (let Blk (rdBlock P) (case (& (val Blk) BLKTAG) (0 (inc 'Cnt BLKS...\n; # (rdBlock P)\n  %188 = call i8* @rdBlock(i64 %187)\n; # (case (& (val Blk) BLKTAG) (0 (inc 'Cnt BLKSIZE) (memcpy Blk Buf ...\n; # (val Blk)\n  %189 = load i8, i8* %188\n; # (& (val Blk) BLKTAG)\n  %190 = and i8 %189, 63\n  switch i8 %190, label %$27 [\n    i8 0, label %$28\n    i8 1, label %$29\n  ]\n$28:\n  %191 = phi i64 [%178, %$25] ; # Exe\n  %192 = phi i64 [%179, %$25] ; # X\n  %193 = phi i64 [%180, %$25] ; # Y\n  %194 = phi i8* [%181, %$25] ; # Jnl\n  %195 = phi i8* [%182, %$25] ; # Buf\n  %196 = phi i64 [%183, %$25] ; # Cnt\n  %197 = phi i64 [%184, %$25] ; # Syms\n  %198 = phi i64 [%185, %$25] ; # Blks\n  %199 = phi i64 [%186, %$25] ; # Next\n  %200 = phi i64 [%187, %$25] ; # P\n  %201 = phi i8* [%188, %$25] ; # Blk\n; # (inc 'Cnt BLKSIZE)\n  %202 = add i64 %196, 64\n; # (memcpy Blk Buf BLK T)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %201, i8* %195, i64 6, i1 0)\n; # (wrBlock)\n  call void @wrBlock()\n; # (setAdr P Buf)\n  call void @setAdr(i64 %200, i8* %195)\n; # (blkPoke 0 Buf BLK)\n  call void @blkPoke(i64 0, i8* %195, i32 6)\n  br label %$27\n$29:\n  %203 = phi i64 [%178, %$25] ; # Exe\n  %204 = phi i64 [%179, %$25] ; # X\n  %205 = phi i64 [%180, %$25] ; # Y\n  %206 = phi i8* [%181, %$25] ; # Jnl\n  %207 = phi i8* [%182, %$25] ; # Buf\n  %208 = phi i64 [%183, %$25] ; # Cnt\n  %209 = phi i64 [%184, %$25] ; # Syms\n  %210 = phi i64 [%185, %$25] ; # Blks\n  %211 = phi i64 [%186, %$25] ; # Next\n  %212 = phi i64 [%187, %$25] ; # P\n  %213 = phi i8* [%188, %$25] ; # Blk\n; # (inc 'Syms)\n  %214 = add i64 %209, 1\n; # (let I (i8 2) (loop (inc 'Blks) (inc 'Cnt BLKSIZE) (? (=0 (val $B...\n; # (i8 2)\n; # (loop (inc 'Blks) (inc 'Cnt BLKSIZE) (? (=0 (val $BlkLink))) (unl...\n  br label %$30\n$30:\n  %215 = phi i64 [%203, %$29], [%286, %$36] ; # Exe\n  %216 = phi i64 [%204, %$29], [%287, %$36] ; # X\n  %217 = phi i64 [%205, %$29], [%288, %$36] ; # Y\n  %218 = phi i8* [%206, %$29], [%289, %$36] ; # Jnl\n  %219 = phi i8* [%207, %$29], [%290, %$36] ; # Buf\n  %220 = phi i64 [%208, %$29], [%291, %$36] ; # Cnt\n  %221 = phi i64 [%214, %$29], [%292, %$36] ; # Syms\n  %222 = phi i64 [%210, %$29], [%293, %$36] ; # Blks\n  %223 = phi i64 [%211, %$29], [%294, %$36] ; # Next\n  %224 = phi i64 [%212, %$29], [%295, %$36] ; # P\n  %225 = phi i8* [%213, %$29], [%296, %$36] ; # Blk\n  %226 = phi i8 [2, %$29], [%297, %$36] ; # I\n; # (inc 'Blks)\n  %227 = add i64 %222, 1\n; # (inc 'Cnt BLKSIZE)\n  %228 = add i64 %220, 64\n; # (? (=0 (val $BlkLink)))\n; # (val $BlkLink)\n  %229 = load i64, i64* @$BlkLink\n; # (=0 (val $BlkLink))\n  %230 = icmp eq i64 %229, 0\n  br i1 %230, label %$32, label %$31\n$31:\n  %231 = phi i64 [%215, %$30] ; # Exe\n  %232 = phi i64 [%216, %$30] ; # X\n  %233 = phi i64 [%217, %$30] ; # Y\n  %234 = phi i8* [%218, %$30] ; # Jnl\n  %235 = phi i8* [%219, %$30] ; # Buf\n  %236 = phi i64 [%228, %$30] ; # Cnt\n  %237 = phi i64 [%221, %$30] ; # Syms\n  %238 = phi i64 [%227, %$30] ; # Blks\n  %239 = phi i64 [%223, %$30] ; # Next\n  %240 = phi i64 [%224, %$30] ; # P\n  %241 = phi i8* [%225, %$30] ; # Blk\n  %242 = phi i8 [%226, %$30] ; # I\n; # (unless (== I (& (val (rdBlock @)) BLKTAG)) (setq Y (mkStr ($ \"Ba...\n; # (rdBlock @)\n  %243 = call i8* @rdBlock(i64 %229)\n; # (val (rdBlock @))\n  %244 = load i8, i8* %243\n; # (& (val (rdBlock @)) BLKTAG)\n  %245 = and i8 %244, 63\n; # (== I (& (val (rdBlock @)) BLKTAG))\n  %246 = icmp eq i8 %242, %245\n  br i1 %246, label %$34, label %$33\n$33:\n  %247 = phi i64 [%231, %$31] ; # Exe\n  %248 = phi i64 [%232, %$31] ; # X\n  %249 = phi i64 [%233, %$31] ; # Y\n  %250 = phi i8* [%234, %$31] ; # Jnl\n  %251 = phi i8* [%235, %$31] ; # Buf\n  %252 = phi i64 [%236, %$31] ; # Cnt\n  %253 = phi i64 [%237, %$31] ; # Syms\n  %254 = phi i64 [%238, %$31] ; # Blks\n  %255 = phi i64 [%239, %$31] ; # Next\n  %256 = phi i64 [%240, %$31] ; # P\n  %257 = phi i8* [%241, %$31] ; # Blk\n  %258 = phi i8 [%242, %$31] ; # I\n; # (mkStr ($ \"Bad chain\"))\n  %259 = call i64 @mkStr(i8* bitcast ([10 x i8]* @$69 to i8*))\n; # (goto 9)\n  br label %$-9\n$34:\n  %260 = phi i64 [%231, %$31] ; # Exe\n  %261 = phi i64 [%232, %$31] ; # X\n  %262 = phi i64 [%233, %$31] ; # Y\n  %263 = phi i8* [%234, %$31] ; # Jnl\n  %264 = phi i8* [%235, %$31] ; # Buf\n  %265 = phi i64 [%236, %$31] ; # Cnt\n  %266 = phi i64 [%237, %$31] ; # Syms\n  %267 = phi i64 [%238, %$31] ; # Blks\n  %268 = phi i64 [%239, %$31] ; # Next\n  %269 = phi i64 [%240, %$31] ; # P\n  %270 = phi i8* [%241, %$31] ; # Blk\n  %271 = phi i8 [%242, %$31] ; # I\n; # (when (> BLKTAG I) (inc 'I))\n; # (> BLKTAG I)\n  %272 = icmp ugt i8 63, %271\n  br i1 %272, label %$35, label %$36\n$35:\n  %273 = phi i64 [%260, %$34] ; # Exe\n  %274 = phi i64 [%261, %$34] ; # X\n  %275 = phi i64 [%262, %$34] ; # Y\n  %276 = phi i8* [%263, %$34] ; # Jnl\n  %277 = phi i8* [%264, %$34] ; # Buf\n  %278 = phi i64 [%265, %$34] ; # Cnt\n  %279 = phi i64 [%266, %$34] ; # Syms\n  %280 = phi i64 [%267, %$34] ; # Blks\n  %281 = phi i64 [%268, %$34] ; # Next\n  %282 = phi i64 [%269, %$34] ; # P\n  %283 = phi i8* [%270, %$34] ; # Blk\n  %284 = phi i8 [%271, %$34] ; # I\n; # (inc 'I)\n  %285 = add i8 %284, 1\n  br label %$36\n$36:\n  %286 = phi i64 [%260, %$34], [%273, %$35] ; # Exe\n  %287 = phi i64 [%261, %$34], [%274, %$35] ; # X\n  %288 = phi i64 [%262, %$34], [%275, %$35] ; # Y\n  %289 = phi i8* [%263, %$34], [%276, %$35] ; # Jnl\n  %290 = phi i8* [%264, %$34], [%277, %$35] ; # Buf\n  %291 = phi i64 [%265, %$34], [%278, %$35] ; # Cnt\n  %292 = phi i64 [%266, %$34], [%279, %$35] ; # Syms\n  %293 = phi i64 [%267, %$34], [%280, %$35] ; # Blks\n  %294 = phi i64 [%268, %$34], [%281, %$35] ; # Next\n  %295 = phi i64 [%269, %$34], [%282, %$35] ; # P\n  %296 = phi i8* [%270, %$34], [%283, %$35] ; # Blk\n  %297 = phi i8 [%271, %$34], [%285, %$35] ; # I\n  br label %$30\n$32:\n  %298 = phi i64 [%215, %$30] ; # Exe\n  %299 = phi i64 [%216, %$30] ; # X\n  %300 = phi i64 [%217, %$30] ; # Y\n  %301 = phi i8* [%218, %$30] ; # Jnl\n  %302 = phi i8* [%219, %$30] ; # Buf\n  %303 = phi i64 [%228, %$30] ; # Cnt\n  %304 = phi i64 [%221, %$30] ; # Syms\n  %305 = phi i64 [%227, %$30] ; # Blks\n  %306 = phi i64 [%223, %$30] ; # Next\n  %307 = phi i64 [%224, %$30] ; # P\n  %308 = phi i8* [%225, %$30] ; # Blk\n  %309 = phi i8 [%226, %$30] ; # I\n  %310 = phi i64 [0, %$30] ; # ->\n  br label %$27\n$27:\n  %311 = phi i64 [%178, %$25], [%191, %$28], [%298, %$32] ; # Exe\n  %312 = phi i64 [%179, %$25], [%192, %$28], [%299, %$32] ; # X\n  %313 = phi i64 [%180, %$25], [%193, %$28], [%300, %$32] ; # Y\n  %314 = phi i8* [%181, %$25], [%194, %$28], [%301, %$32] ; # Jnl\n  %315 = phi i8* [%182, %$25], [%195, %$28], [%302, %$32] ; # Buf\n  %316 = phi i64 [%183, %$25], [%202, %$28], [%303, %$32] ; # Cnt\n  %317 = phi i64 [%184, %$25], [%197, %$28], [%304, %$32] ; # Syms\n  %318 = phi i64 [%185, %$25], [%198, %$28], [%305, %$32] ; # Blks\n  %319 = phi i64 [%186, %$25], [%199, %$28], [%306, %$32] ; # Next\n  %320 = phi i64 [%187, %$25], [%200, %$28], [%307, %$32] ; # P\n  %321 = phi i8* [%188, %$25], [%201, %$28], [%308, %$32] ; # Blk\n; # (inc 'P BLKSIZE)\n  %322 = add i64 %320, 64\n  br label %$24\n$26:\n  %323 = phi i64 [%167, %$24] ; # Exe\n  %324 = phi i64 [%168, %$24] ; # X\n  %325 = phi i64 [%169, %$24] ; # Y\n  %326 = phi i8* [%170, %$24] ; # Jnl\n  %327 = phi i8* [%171, %$24] ; # Buf\n  %328 = phi i64 [%172, %$24] ; # Cnt\n  %329 = phi i64 [%173, %$24] ; # Syms\n  %330 = phi i64 [%174, %$24] ; # Blks\n  %331 = phi i64 [%175, %$24] ; # Next\n  %332 = phi i64 [%176, %$24] ; # P\n; # (set $BlkLink (getAdr Buf))\n; # (getAdr Buf)\n  %333 = call i64 @getAdr(i8* %327)\n  store i64 %333, i64* @$BlkLink\n; # (set $DbJnl null)\n  store i8* null, i8** @$DbJnl\n; # (while (val $BlkLink) (let Blk (rdBlock @) (when (& (val Blk) BLK...\n  br label %$37\n$37:\n  %334 = phi i64 [%323, %$26], [%370, %$41] ; # Exe\n  %335 = phi i64 [%324, %$26], [%371, %$41] ; # X\n  %336 = phi i64 [%325, %$26], [%372, %$41] ; # Y\n  %337 = phi i8* [%326, %$26], [%373, %$41] ; # Jnl\n  %338 = phi i8* [%327, %$26], [%374, %$41] ; # Buf\n  %339 = phi i64 [%328, %$26], [%375, %$41] ; # Cnt\n  %340 = phi i64 [%329, %$26], [%376, %$41] ; # Syms\n  %341 = phi i64 [%330, %$26], [%377, %$41] ; # Blks\n  %342 = phi i64 [%331, %$26], [%378, %$41] ; # Next\n; # (val $BlkLink)\n  %343 = load i64, i64* @$BlkLink\n  %344 = icmp ne i64 %343, 0\n  br i1 %344, label %$38, label %$39\n$38:\n  %345 = phi i64 [%334, %$37] ; # Exe\n  %346 = phi i64 [%335, %$37] ; # X\n  %347 = phi i64 [%336, %$37] ; # Y\n  %348 = phi i8* [%337, %$37] ; # Jnl\n  %349 = phi i8* [%338, %$37] ; # Buf\n  %350 = phi i64 [%339, %$37] ; # Cnt\n  %351 = phi i64 [%340, %$37] ; # Syms\n  %352 = phi i64 [%341, %$37] ; # Blks\n  %353 = phi i64 [%342, %$37] ; # Next\n; # (let Blk (rdBlock @) (when (& (val Blk) BLKTAG) (set Blk (& (val ...\n; # (rdBlock @)\n  %354 = call i8* @rdBlock(i64 %343)\n; # (when (& (val Blk) BLKTAG) (set Blk (& (val Blk) BLKMASK)) (wrBlo...\n; # (val Blk)\n  %355 = load i8, i8* %354\n; # (& (val Blk) BLKTAG)\n  %356 = and i8 %355, 63\n  %357 = icmp ne i8 %356, 0\n  br i1 %357, label %$40, label %$41\n$40:\n  %358 = phi i64 [%345, %$38] ; # Exe\n  %359 = phi i64 [%346, %$38] ; # X\n  %360 = phi i64 [%347, %$38] ; # Y\n  %361 = phi i8* [%348, %$38] ; # Jnl\n  %362 = phi i8* [%349, %$38] ; # Buf\n  %363 = phi i64 [%350, %$38] ; # Cnt\n  %364 = phi i64 [%351, %$38] ; # Syms\n  %365 = phi i64 [%352, %$38] ; # Blks\n  %366 = phi i64 [%353, %$38] ; # Next\n  %367 = phi i8* [%354, %$38] ; # Blk\n; # (set Blk (& (val Blk) BLKMASK))\n; # (val Blk)\n  %368 = load i8, i8* %367\n; # (& (val Blk) BLKMASK)\n  %369 = and i8 %368, -64\n  store i8 %369, i8* %367\n; # (wrBlock)\n  call void @wrBlock()\n  br label %$41\n$41:\n  %370 = phi i64 [%345, %$38], [%358, %$40] ; # Exe\n  %371 = phi i64 [%346, %$38], [%359, %$40] ; # X\n  %372 = phi i64 [%347, %$38], [%360, %$40] ; # Y\n  %373 = phi i8* [%348, %$38], [%361, %$40] ; # Jnl\n  %374 = phi i8* [%349, %$38], [%362, %$40] ; # Buf\n  %375 = phi i64 [%350, %$38], [%363, %$40] ; # Cnt\n  %376 = phi i64 [%351, %$38], [%364, %$40] ; # Syms\n  %377 = phi i64 [%352, %$38], [%365, %$40] ; # Blks\n  %378 = phi i64 [%353, %$38], [%366, %$40] ; # Next\n  %379 = phi i8* [%354, %$38], [%367, %$40] ; # Blk\n  br label %$37\n$39:\n  %380 = phi i64 [%334, %$37] ; # Exe\n  %381 = phi i64 [%335, %$37] ; # X\n  %382 = phi i64 [%336, %$37] ; # Y\n  %383 = phi i8* [%337, %$37] ; # Jnl\n  %384 = phi i8* [%338, %$37] ; # Buf\n  %385 = phi i64 [%339, %$37] ; # Cnt\n  %386 = phi i64 [%340, %$37] ; # Syms\n  %387 = phi i64 [%341, %$37] ; # Blks\n  %388 = phi i64 [%342, %$37] ; # Next\n; # (nond ((== Cnt Next) (setq Y (mkStr ($ \"Bad count\")))) ((nil? Y) ...\n; # (== Cnt Next)\n  %389 = icmp eq i64 %385, %388\n  br i1 %389, label %$43, label %$44\n$44:\n  %390 = phi i64 [%380, %$39] ; # Exe\n  %391 = phi i64 [%381, %$39] ; # X\n  %392 = phi i64 [%382, %$39] ; # Y\n  %393 = phi i8* [%383, %$39] ; # Jnl\n  %394 = phi i8* [%384, %$39] ; # Buf\n  %395 = phi i64 [%385, %$39] ; # Cnt\n  %396 = phi i64 [%386, %$39] ; # Syms\n  %397 = phi i64 [%387, %$39] ; # Blks\n  %398 = phi i64 [%388, %$39] ; # Next\n; # (mkStr ($ \"Bad count\"))\n  %399 = call i64 @mkStr(i8* bitcast ([10 x i8]* @$70 to i8*))\n  br label %$42\n$43:\n  %400 = phi i64 [%380, %$39] ; # Exe\n  %401 = phi i64 [%381, %$39] ; # X\n  %402 = phi i64 [%382, %$39] ; # Y\n  %403 = phi i8* [%383, %$39] ; # Jnl\n  %404 = phi i8* [%384, %$39] ; # Buf\n  %405 = phi i64 [%385, %$39] ; # Cnt\n  %406 = phi i64 [%386, %$39] ; # Syms\n  %407 = phi i64 [%387, %$39] ; # Blks\n  %408 = phi i64 [%388, %$39] ; # Next\n; # (nil? Y)\n  %409 = icmp eq i64 %402, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %409, label %$45, label %$46\n$46:\n  %410 = phi i64 [%400, %$43] ; # Exe\n  %411 = phi i64 [%401, %$43] ; # X\n  %412 = phi i64 [%402, %$43] ; # Y\n  %413 = phi i8* [%403, %$43] ; # Jnl\n  %414 = phi i8* [%404, %$43] ; # Buf\n  %415 = phi i64 [%405, %$43] ; # Cnt\n  %416 = phi i64 [%406, %$43] ; # Syms\n  %417 = phi i64 [%407, %$43] ; # Blks\n  %418 = phi i64 [%408, %$43] ; # Next\n; # (cnt Blks)\n  %419 = shl i64 %417, 4\n  %420 = or i64 %419, 2\n; # (cnt Syms)\n  %421 = shl i64 %416, 4\n  %422 = or i64 %421, 2\n; # (cons (cnt Blks) (cnt Syms))\n  %423 = call i64 @cons(i64 %420, i64 %422)\n  br label %$42\n$45:\n  %424 = phi i64 [%400, %$43] ; # Exe\n  %425 = phi i64 [%401, %$43] ; # X\n  %426 = phi i64 [%402, %$43] ; # Y\n  %427 = phi i8* [%403, %$43] ; # Jnl\n  %428 = phi i8* [%404, %$43] ; # Buf\n  %429 = phi i64 [%405, %$43] ; # Cnt\n  %430 = phi i64 [%406, %$43] ; # Syms\n  %431 = phi i64 [%407, %$43] ; # Blks\n  %432 = phi i64 [%408, %$43] ; # Next\n  br label %$42\n$42:\n  %433 = phi i64 [%390, %$44], [%410, %$46], [%424, %$45] ; # Exe\n  %434 = phi i64 [%391, %$44], [%411, %$46], [%425, %$45] ; # X\n  %435 = phi i64 [%399, %$44], [%423, %$46], [%426, %$45] ; # Y\n  %436 = phi i8* [%393, %$44], [%413, %$46], [%427, %$45] ; # Jnl\n  %437 = phi i8* [%394, %$44], [%414, %$46], [%428, %$45] ; # Buf\n  %438 = phi i64 [%395, %$44], [%415, %$46], [%429, %$45] ; # Cnt\n  %439 = phi i64 [%396, %$44], [%416, %$46], [%430, %$45] ; # Syms\n  %440 = phi i64 [%397, %$44], [%417, %$46], [%431, %$45] ; # Blks\n  %441 = phi i64 [%398, %$44], [%418, %$46], [%432, %$45] ; # Next\n  %442 = phi i64 [%399, %$44], [%423, %$46], [0, %$45] ; # ->\n; # (: 9 (when (set $DbJnl Jnl) (unLockJnl)) (unLockDb 1) (set $Prote...\n  br label %$-9\n$-9:\n  %443 = phi i64 [%139, %$22], [%247, %$33], [%433, %$42] ; # Exe\n  %444 = phi i64 [%140, %$22], [%248, %$33], [%434, %$42] ; # X\n  %445 = phi i64 [%148, %$22], [%259, %$33], [%435, %$42] ; # Y\n  %446 = phi i8* [%142, %$22], [%250, %$33], [%436, %$42] ; # Jnl\n  %447 = phi i8* [%143, %$22], [%251, %$33], [%437, %$42] ; # Buf\n  %448 = phi i64 [%144, %$22], [%252, %$33], [%438, %$42] ; # Cnt\n  %449 = phi i64 [%145, %$22], [%253, %$33], [%439, %$42] ; # Syms\n  %450 = phi i64 [%146, %$22], [%254, %$33], [%440, %$42] ; # Blks\n; # (when (set $DbJnl Jnl) (unLockJnl))\n; # (set $DbJnl Jnl)\n  store i8* %446, i8** @$DbJnl\n  %451 = icmp ne i8* %446, null\n  br i1 %451, label %$47, label %$48\n$47:\n  %452 = phi i64 [%443, %$-9] ; # Exe\n  %453 = phi i64 [%444, %$-9] ; # X\n  %454 = phi i64 [%445, %$-9] ; # Y\n  %455 = phi i8* [%446, %$-9] ; # Jnl\n  %456 = phi i8* [%447, %$-9] ; # Buf\n  %457 = phi i64 [%448, %$-9] ; # Cnt\n  %458 = phi i64 [%449, %$-9] ; # Syms\n  %459 = phi i64 [%450, %$-9] ; # Blks\n; # (unLockJnl)\n  call void @unLockJnl()\n  br label %$48\n$48:\n  %460 = phi i64 [%443, %$-9], [%452, %$47] ; # Exe\n  %461 = phi i64 [%444, %$-9], [%453, %$47] ; # X\n  %462 = phi i64 [%445, %$-9], [%454, %$47] ; # Y\n  %463 = phi i8* [%446, %$-9], [%455, %$47] ; # Jnl\n  %464 = phi i8* [%447, %$-9], [%456, %$47] ; # Buf\n  %465 = phi i64 [%448, %$-9], [%457, %$47] ; # Cnt\n  %466 = phi i64 [%449, %$-9], [%458, %$47] ; # Syms\n  %467 = phi i64 [%450, %$-9], [%459, %$47] ; # Blks\n; # (unLockDb 1)\n  call void @unLockDb(i64 1)\n; # (set $Protect (dec (val $Protect)))\n; # (val $Protect)\n  %468 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n; # (dec (val $Protect))\n  %469 = sub i32 %468, 1\n  store i32 %469, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 176) to i32*)\n  ret i64 %462\n}\n\ndefine i64 @_Apply(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (++ X)) NIL)) (set ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %29 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %31 = load i64, i64* %30\n  %32 = inttoptr i64 %29 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  store i64 %31, i64* %33\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 %22 to i64*\n  store i64 %29, i64* %35\n; # (let (L (save (eval (car X))) P E) (while (pair (shift X)) (setq ...\n; # (car X)\n  %36 = inttoptr i64 %6 to i64*\n  %37 = load i64, i64* %36\n; # (eval (car X))\n  %38 = and i64 %37, 6\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$9, label %$8\n$9:\n  %40 = phi i64 [%37, %$2] ; # X\n  br label %$7\n$8:\n  %41 = phi i64 [%37, %$2] ; # X\n  %42 = and i64 %41, 8\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$11, label %$10\n$11:\n  %44 = phi i64 [%41, %$8] ; # X\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n  br label %$7\n$10:\n  %47 = phi i64 [%41, %$8] ; # X\n  %48 = call i64 @evList(i64 %47)\n  br label %$7\n$7:\n  %49 = phi i64 [%40, %$9], [%44, %$11], [%47, %$10] ; # X\n  %50 = phi i64 [%40, %$9], [%46, %$11], [%48, %$10] ; # ->\n; # (save (eval (car X)))\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %52 = load i64, i64* %51\n  %53 = alloca i64, i64 2, align 16\n  %54 = ptrtoint i64* %53 to i64\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %50, i64* %55\n  %56 = add i64 %54, 8\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %52, i64* %57\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %54, i64* %58\n; # (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ZERO (eva...\n  br label %$12\n$12:\n  %59 = phi i64 [%0, %$7], [%69, %$15] ; # Exe\n  %60 = phi i64 [%6, %$7], [%70, %$15] ; # X\n  %61 = phi i64 [%22, %$7], [%71, %$15] ; # E\n  %62 = phi i64 [%50, %$7], [%72, %$15] ; # L\n  %63 = phi i64 [%22, %$7], [%90, %$15] ; # P\n; # (shift X)\n  %64 = inttoptr i64 %60 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n; # (pair (shift X))\n  %67 = and i64 %66, 15\n  %68 = icmp eq i64 %67, 0\n  br i1 %68, label %$13, label %$14\n$13:\n  %69 = phi i64 [%59, %$12] ; # Exe\n  %70 = phi i64 [%66, %$12] ; # X\n  %71 = phi i64 [%61, %$12] ; # E\n  %72 = phi i64 [%62, %$12] ; # L\n  %73 = phi i64 [%63, %$12] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %74 = inttoptr i64 %70 to i64*\n  %75 = load i64, i64* %74\n; # (eval (car X))\n  %76 = and i64 %75, 6\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$17, label %$16\n$17:\n  %78 = phi i64 [%75, %$13] ; # X\n  br label %$15\n$16:\n  %79 = phi i64 [%75, %$13] ; # X\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$19, label %$18\n$19:\n  %82 = phi i64 [%79, %$16] ; # X\n  %83 = inttoptr i64 %82 to i64*\n  %84 = load i64, i64* %83\n  br label %$15\n$18:\n  %85 = phi i64 [%79, %$16] ; # X\n  %86 = call i64 @evList(i64 %85)\n  br label %$15\n$15:\n  %87 = phi i64 [%78, %$17], [%82, %$19], [%85, %$18] ; # X\n  %88 = phi i64 [%78, %$17], [%84, %$19], [%86, %$18] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %89 = alloca i64, i64 5, align 16\n  %90 = ptrtoint i64* %89 to i64\n  %91 = add i64 %90, 8\n  %92 = inttoptr i64 %91 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %92\n  %93 = add i64 %90, 16\n  %94 = inttoptr i64 %93 to i64*\n  store i64 2, i64* %94\n  %95 = add i64 %90, 24\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %88, i64* %96\n  %97 = inttoptr i64 %73 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  store i64 %90, i64* %98\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %99 = add i64 %90, 24\n; # (link (ofs P 3))\n  %100 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 %99 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  store i64 %101, i64* %103\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %104\n  %105 = inttoptr i64 %90 to i64*\n  store i64 %99, i64* %105\n  br label %$12\n$14:\n  %106 = phi i64 [%59, %$12] ; # Exe\n  %107 = phi i64 [%66, %$12] ; # X\n  %108 = phi i64 [%61, %$12] ; # E\n  %109 = phi i64 [%62, %$12] ; # L\n  %110 = phi i64 [%63, %$12] ; # P\n; # (while (pair L) (stkChk Exe) (setq P (set 2 P (push NIL $Nil ZERO...\n  br label %$20\n$20:\n  %111 = phi i64 [%106, %$14], [%118, %$24] ; # Exe\n  %112 = phi i64 [%107, %$14], [%119, %$24] ; # X\n  %113 = phi i64 [%108, %$14], [%120, %$24] ; # E\n  %114 = phi i64 [%109, %$14], [%130, %$24] ; # L\n  %115 = phi i64 [%110, %$14], [%133, %$24] ; # P\n; # (pair L)\n  %116 = and i64 %114, 15\n  %117 = icmp eq i64 %116, 0\n  br i1 %117, label %$21, label %$22\n$21:\n  %118 = phi i64 [%111, %$20] ; # Exe\n  %119 = phi i64 [%112, %$20] ; # X\n  %120 = phi i64 [%113, %$20] ; # E\n  %121 = phi i64 [%114, %$20] ; # L\n  %122 = phi i64 [%115, %$20] ; # P\n; # (stkChk Exe)\n  %123 = load i8*, i8** @$StkLimit\n  %124 = call i8* @llvm.stacksave()\n  %125 = icmp ugt i8* %123, %124\n  br i1 %125, label %$23, label %$24\n$23:\n  %126 = phi i64 [%118, %$21] ; # Exe\n  call void @stkErr(i64 %126)\n  unreachable\n$24:\n  %127 = phi i64 [%118, %$21] ; # Exe\n; # (set 2 P (push NIL $Nil ZERO (++ L) NIL))\n; # (++ L)\n  %128 = inttoptr i64 %121 to i64*\n  %129 = getelementptr i64, i64* %128, i32 1\n  %130 = load i64, i64* %129\n  %131 = load i64, i64* %128\n; # (push NIL $Nil ZERO (++ L) NIL)\n  %132 = alloca i64, i64 5, align 16\n  %133 = ptrtoint i64* %132 to i64\n  %134 = add i64 %133, 8\n  %135 = inttoptr i64 %134 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %135\n  %136 = add i64 %133, 16\n  %137 = inttoptr i64 %136 to i64*\n  store i64 2, i64* %137\n  %138 = add i64 %133, 24\n  %139 = inttoptr i64 %138 to i64*\n  store i64 %131, i64* %139\n  %140 = inttoptr i64 %122 to i64*\n  %141 = getelementptr i64, i64* %140, i32 1\n  store i64 %133, i64* %141\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %142 = add i64 %133, 24\n; # (link (ofs P 3))\n  %143 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %144 = load i64, i64* %143\n  %145 = inttoptr i64 %142 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  store i64 %144, i64* %146\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %142, i64* %147\n  %148 = inttoptr i64 %133 to i64*\n  store i64 %142, i64* %148\n  br label %$20\n$22:\n  %149 = phi i64 [%111, %$20] ; # Exe\n  %150 = phi i64 [%112, %$20] ; # X\n  %151 = phi i64 [%113, %$20] ; # E\n  %152 = phi i64 [%114, %$20] ; # L\n  %153 = phi i64 [%115, %$20] ; # P\n; # (evList E)\n  %154 = call i64 @evList(i64 %151)\n; # (drop *Safe)\n  %155 = inttoptr i64 %29 to i64*\n  %156 = getelementptr i64, i64* %155, i32 1\n  %157 = load i64, i64* %156\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %157, i64* %158\n  ret i64 %154\n}\n\ndefine i64 @_Pass(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (++ X)) NIL)) (set ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %29 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %31 = load i64, i64* %30\n  %32 = inttoptr i64 %29 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  store i64 %31, i64* %33\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 %22 to i64*\n  store i64 %29, i64* %35\n; # (let P E (while (pair X) (setq P (set 2 P (push NIL $Nil ZERO (ev...\n; # (while (pair X) (setq P (set 2 P (push NIL $Nil ZERO (eval (++ X)...\n  br label %$7\n$7:\n  %36 = phi i64 [%0, %$2], [%42, %$10] ; # Exe\n  %37 = phi i64 [%6, %$2], [%48, %$10] ; # X\n  %38 = phi i64 [%22, %$2], [%44, %$10] ; # E\n  %39 = phi i64 [%22, %$2], [%64, %$10] ; # P\n; # (pair X)\n  %40 = and i64 %37, 15\n  %41 = icmp eq i64 %40, 0\n  br i1 %41, label %$8, label %$9\n$8:\n  %42 = phi i64 [%36, %$7] ; # Exe\n  %43 = phi i64 [%37, %$7] ; # X\n  %44 = phi i64 [%38, %$7] ; # E\n  %45 = phi i64 [%39, %$7] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (++ X)) NIL))\n; # (++ X)\n  %46 = inttoptr i64 %43 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  %49 = load i64, i64* %46\n; # (eval (++ X))\n  %50 = and i64 %49, 6\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$12, label %$11\n$12:\n  %52 = phi i64 [%49, %$8] ; # X\n  br label %$10\n$11:\n  %53 = phi i64 [%49, %$8] ; # X\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$14, label %$13\n$14:\n  %56 = phi i64 [%53, %$11] ; # X\n  %57 = inttoptr i64 %56 to i64*\n  %58 = load i64, i64* %57\n  br label %$10\n$13:\n  %59 = phi i64 [%53, %$11] ; # X\n  %60 = call i64 @evList(i64 %59)\n  br label %$10\n$10:\n  %61 = phi i64 [%52, %$12], [%56, %$14], [%59, %$13] ; # X\n  %62 = phi i64 [%52, %$12], [%58, %$14], [%60, %$13] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %63 = alloca i64, i64 5, align 16\n  %64 = ptrtoint i64* %63 to i64\n  %65 = add i64 %64, 8\n  %66 = inttoptr i64 %65 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %66\n  %67 = add i64 %64, 16\n  %68 = inttoptr i64 %67 to i64*\n  store i64 2, i64* %68\n  %69 = add i64 %64, 24\n  %70 = inttoptr i64 %69 to i64*\n  store i64 %62, i64* %70\n  %71 = inttoptr i64 %45 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  store i64 %64, i64* %72\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %73 = add i64 %64, 24\n; # (link (ofs P 3))\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 %73 to i64*\n  %77 = getelementptr i64, i64* %76, i32 1\n  store i64 %75, i64* %77\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %78\n  %79 = inttoptr i64 %64 to i64*\n  store i64 %73, i64* %79\n  br label %$7\n$9:\n  %80 = phi i64 [%36, %$7] ; # Exe\n  %81 = phi i64 [%37, %$7] ; # X\n  %82 = phi i64 [%38, %$7] ; # E\n  %83 = phi i64 [%39, %$7] ; # P\n; # (let L (val $Next) (while (pair L) (setq P (set 2 P (push NIL $Ni...\n; # (val $Next)\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %85 = load i64, i64* %84\n; # (while (pair L) (setq P (set 2 P (push NIL $Nil ZERO (cdr L) NIL)...\n  br label %$15\n$15:\n  %86 = phi i64 [%80, %$9], [%93, %$16] ; # Exe\n  %87 = phi i64 [%81, %$9], [%94, %$16] ; # X\n  %88 = phi i64 [%82, %$9], [%95, %$16] ; # E\n  %89 = phi i64 [%83, %$9], [%102, %$16] ; # P\n  %90 = phi i64 [%85, %$9], [%119, %$16] ; # L\n; # (pair L)\n  %91 = and i64 %90, 15\n  %92 = icmp eq i64 %91, 0\n  br i1 %92, label %$16, label %$17\n$16:\n  %93 = phi i64 [%86, %$15] ; # Exe\n  %94 = phi i64 [%87, %$15] ; # X\n  %95 = phi i64 [%88, %$15] ; # E\n  %96 = phi i64 [%89, %$15] ; # P\n  %97 = phi i64 [%90, %$15] ; # L\n; # (set 2 P (push NIL $Nil ZERO (cdr L) NIL))\n; # (cdr L)\n  %98 = inttoptr i64 %97 to i64*\n  %99 = getelementptr i64, i64* %98, i32 1\n  %100 = load i64, i64* %99\n; # (push NIL $Nil ZERO (cdr L) NIL)\n  %101 = alloca i64, i64 5, align 16\n  %102 = ptrtoint i64* %101 to i64\n  %103 = add i64 %102, 8\n  %104 = inttoptr i64 %103 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %104\n  %105 = add i64 %102, 16\n  %106 = inttoptr i64 %105 to i64*\n  store i64 2, i64* %106\n  %107 = add i64 %102, 24\n  %108 = inttoptr i64 %107 to i64*\n  store i64 %100, i64* %108\n  %109 = inttoptr i64 %96 to i64*\n  %110 = getelementptr i64, i64* %109, i32 1\n  store i64 %102, i64* %110\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %111 = add i64 %102, 24\n; # (link (ofs P 3))\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %113 = load i64, i64* %112\n  %114 = inttoptr i64 %111 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  store i64 %113, i64* %115\n  %116 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %111, i64* %116\n  %117 = inttoptr i64 %102 to i64*\n  store i64 %111, i64* %117\n; # (car L)\n  %118 = inttoptr i64 %97 to i64*\n  %119 = load i64, i64* %118\n  br label %$15\n$17:\n  %120 = phi i64 [%86, %$15] ; # Exe\n  %121 = phi i64 [%87, %$15] ; # X\n  %122 = phi i64 [%88, %$15] ; # E\n  %123 = phi i64 [%89, %$15] ; # P\n  %124 = phi i64 [%90, %$15] ; # L\n; # (evList E)\n  %125 = call i64 @evList(i64 %122)\n; # (drop *Safe)\n  %126 = inttoptr i64 %29 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %128, i64* %129\n  ret i64 %125\n}\n\ndefine i64 @_Fun(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evList (cdr Exe))\n  %4 = call i64 @evList(i64 %3)\n  ret i64 %4\n}\n\ndefine i64 @_Maps(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R $Nil E (push NIL $Nil ZERO (eval (++ X)) NIL)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A Sym (save (needSymb Exe (eval (car X)))) V Sym) (se...\n; # (car X)\n  %38 = inttoptr i64 %6 to i64*\n  %39 = load i64, i64* %38\n; # (eval (car X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$9, label %$8\n$9:\n  %42 = phi i64 [%39, %$2] ; # X\n  br label %$7\n$8:\n  %43 = phi i64 [%39, %$2] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$11, label %$10\n$11:\n  %46 = phi i64 [%43, %$8] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$7\n$10:\n  %49 = phi i64 [%43, %$8] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$7\n$7:\n  %51 = phi i64 [%42, %$9], [%46, %$11], [%49, %$10] ; # X\n  %52 = phi i64 [%42, %$9], [%48, %$11], [%50, %$10] ; # ->\n; # (needSymb Exe (eval (car X)))\n  %53 = xor i64 %52, 8\n  %54 = and i64 %53, 14\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$13, label %$12\n$12:\n  %56 = phi i64 [%52, %$7] ; # X\n  %57 = phi i64 [%0, %$7] ; # Exe\n  call void @symErr(i64 %57, i64 %56)\n  unreachable\n$13:\n  %58 = phi i64 [%52, %$7] ; # X\n  %59 = phi i64 [%0, %$7] ; # Exe\n; # (save (needSymb Exe (eval (car X))))\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %61 = load i64, i64* %60\n  %62 = alloca i64, i64 2, align 16\n  %63 = ptrtoint i64* %62 to i64\n  %64 = inttoptr i64 %63 to i64*\n  store i64 %58, i64* %64\n  %65 = add i64 %63, 8\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %61, i64* %66\n  %67 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %63, i64* %67\n; # (set Q V)\n  %68 = inttoptr i64 %30 to i64*\n  store i64 %58, i64* %68\n; # (loop (setq P (set 2 P (push NIL $Nil ZERO V NIL))) (set P (link ...\n  br label %$14\n$14:\n  %69 = phi i64 [%0, %$13], [%150, %$23] ; # Exe\n  %70 = phi i64 [%6, %$13], [%151, %$23] ; # X\n  %71 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%152, %$23] ; # R\n  %72 = phi i64 [%22, %$13], [%153, %$23] ; # E\n  %73 = phi i64 [%30, %$13], [%154, %$23] ; # A\n  %74 = phi i64 [%22, %$13], [%155, %$23] ; # P\n  %75 = phi i64 [%30, %$13], [%156, %$23] ; # Q\n  %76 = phi i64 [%58, %$13], [%157, %$23] ; # Sym\n  %77 = phi i64 [%58, %$13], [%158, %$23] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %78 = alloca i64, i64 5, align 16\n  %79 = ptrtoint i64* %78 to i64\n  %80 = add i64 %79, 8\n  %81 = inttoptr i64 %80 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %81\n  %82 = add i64 %79, 16\n  %83 = inttoptr i64 %82 to i64*\n  store i64 2, i64* %83\n  %84 = add i64 %79, 24\n  %85 = inttoptr i64 %84 to i64*\n  store i64 %77, i64* %85\n  %86 = inttoptr i64 %74 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  store i64 %79, i64* %87\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %88 = add i64 %79, 24\n; # (link (ofs P 3))\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %90 = load i64, i64* %89\n  %91 = inttoptr i64 %88 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  store i64 %90, i64* %92\n  %93 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %88, i64* %93\n  %94 = inttoptr i64 %79 to i64*\n  store i64 %88, i64* %94\n; # (? (atom (shift X)))\n; # (shift X)\n  %95 = inttoptr i64 %70 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  %97 = load i64, i64* %96\n; # (atom (shift X))\n  %98 = and i64 %97, 15\n  %99 = icmp ne i64 %98, 0\n  br i1 %99, label %$16, label %$15\n$15:\n  %100 = phi i64 [%69, %$14] ; # Exe\n  %101 = phi i64 [%97, %$14] ; # X\n  %102 = phi i64 [%71, %$14] ; # R\n  %103 = phi i64 [%72, %$14] ; # E\n  %104 = phi i64 [%73, %$14] ; # A\n  %105 = phi i64 [%79, %$14] ; # P\n  %106 = phi i64 [%75, %$14] ; # Q\n  %107 = phi i64 [%76, %$14] ; # Sym\n  %108 = phi i64 [%77, %$14] ; # V\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %109 = alloca i64, i64 2, align 16\n  %110 = ptrtoint i64* %109 to i64\n  %111 = inttoptr i64 %106 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  store i64 %110, i64* %112\n; # (car X)\n  %113 = inttoptr i64 %101 to i64*\n  %114 = load i64, i64* %113\n; # (eval (car X))\n  %115 = and i64 %114, 6\n  %116 = icmp ne i64 %115, 0\n  br i1 %116, label %$19, label %$18\n$19:\n  %117 = phi i64 [%114, %$15] ; # X\n  br label %$17\n$18:\n  %118 = phi i64 [%114, %$15] ; # X\n  %119 = and i64 %118, 8\n  %120 = icmp ne i64 %119, 0\n  br i1 %120, label %$21, label %$20\n$21:\n  %121 = phi i64 [%118, %$18] ; # X\n  %122 = inttoptr i64 %121 to i64*\n  %123 = load i64, i64* %122\n  br label %$17\n$20:\n  %124 = phi i64 [%118, %$18] ; # X\n  %125 = call i64 @evList(i64 %124)\n  br label %$17\n$17:\n  %126 = phi i64 [%117, %$19], [%121, %$21], [%124, %$20] ; # X\n  %127 = phi i64 [%117, %$19], [%123, %$21], [%125, %$20] ; # ->\n; # (save (eval (car X)))\n  %128 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %129 = load i64, i64* %128\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %131 to i64*\n  store i64 %127, i64* %132\n  %133 = add i64 %131, 8\n  %134 = inttoptr i64 %133 to i64*\n  store i64 %129, i64* %134\n  %135 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %131, i64* %135\n; # (set Q V)\n  %136 = inttoptr i64 %110 to i64*\n  store i64 %127, i64* %136\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %137 = and i64 %127, 15\n  %138 = icmp eq i64 %137, 0\n  br i1 %138, label %$22, label %$23\n$22:\n  %139 = phi i64 [%100, %$17] ; # Exe\n  %140 = phi i64 [%101, %$17] ; # X\n  %141 = phi i64 [%102, %$17] ; # R\n  %142 = phi i64 [%103, %$17] ; # E\n  %143 = phi i64 [%104, %$17] ; # A\n  %144 = phi i64 [%105, %$17] ; # P\n  %145 = phi i64 [%110, %$17] ; # Q\n  %146 = phi i64 [%107, %$17] ; # Sym\n  %147 = phi i64 [%127, %$17] ; # V\n; # (car V)\n  %148 = inttoptr i64 %147 to i64*\n  %149 = load i64, i64* %148\n  br label %$23\n$23:\n  %150 = phi i64 [%100, %$17], [%139, %$22] ; # Exe\n  %151 = phi i64 [%101, %$17], [%140, %$22] ; # X\n  %152 = phi i64 [%102, %$17], [%141, %$22] ; # R\n  %153 = phi i64 [%103, %$17], [%142, %$22] ; # E\n  %154 = phi i64 [%104, %$17], [%143, %$22] ; # A\n  %155 = phi i64 [%105, %$17], [%144, %$22] ; # P\n  %156 = phi i64 [%110, %$17], [%145, %$22] ; # Q\n  %157 = phi i64 [%107, %$17], [%146, %$22] ; # Sym\n  %158 = phi i64 [%127, %$17], [%149, %$22] ; # V\n  br label %$14\n$16:\n  %159 = phi i64 [%69, %$14] ; # Exe\n  %160 = phi i64 [%97, %$14] ; # X\n  %161 = phi i64 [%71, %$14] ; # R\n  %162 = phi i64 [%72, %$14] ; # E\n  %163 = phi i64 [%73, %$14] ; # A\n  %164 = phi i64 [%79, %$14] ; # P\n  %165 = phi i64 [%75, %$14] ; # Q\n  %166 = phi i64 [%76, %$14] ; # Sym\n  %167 = phi i64 [%77, %$14] ; # V\n  %168 = phi i64 [0, %$14] ; # ->\n; # (when (sym? (setq V (val (tail Sym)))) (dbFetch Exe Sym) (setq V ...\n; # (tail Sym)\n  %169 = add i64 %166, -8\n; # (val (tail Sym))\n  %170 = inttoptr i64 %169 to i64*\n  %171 = load i64, i64* %170\n; # (sym? (setq V (val (tail Sym))))\n  %172 = and i64 %171, 8\n  %173 = icmp ne i64 %172, 0\n  br i1 %173, label %$24, label %$25\n$24:\n  %174 = phi i64 [%159, %$16] ; # Exe\n  %175 = phi i64 [%160, %$16] ; # X\n  %176 = phi i64 [%161, %$16] ; # R\n  %177 = phi i64 [%162, %$16] ; # E\n  %178 = phi i64 [%163, %$16] ; # A\n  %179 = phi i64 [%164, %$16] ; # P\n  %180 = phi i64 [%165, %$16] ; # Q\n  %181 = phi i64 [%166, %$16] ; # Sym\n  %182 = phi i64 [%171, %$16] ; # V\n; # (dbFetch Exe Sym)\n  call void @dbFetch(i64 %174, i64 %181)\n; # (tail Sym)\n  %183 = add i64 %181, -8\n; # (val (tail Sym))\n  %184 = inttoptr i64 %183 to i64*\n  %185 = load i64, i64* %184\n; # (& (val (tail Sym)) -9)\n  %186 = and i64 %185, -9\n  br label %$25\n$25:\n  %187 = phi i64 [%159, %$16], [%174, %$24] ; # Exe\n  %188 = phi i64 [%160, %$16], [%175, %$24] ; # X\n  %189 = phi i64 [%161, %$16], [%176, %$24] ; # R\n  %190 = phi i64 [%162, %$16], [%177, %$24] ; # E\n  %191 = phi i64 [%163, %$16], [%178, %$24] ; # A\n  %192 = phi i64 [%164, %$16], [%179, %$24] ; # P\n  %193 = phi i64 [%165, %$16], [%180, %$24] ; # Q\n  %194 = phi i64 [%166, %$16], [%181, %$24] ; # Sym\n  %195 = phi i64 [%171, %$16], [%186, %$24] ; # V\n; # (set 4 (val 2 E) (if (pair V) (car V) V))\n; # (val 2 E)\n  %196 = inttoptr i64 %190 to i64*\n  %197 = getelementptr i64, i64* %196, i32 1\n  %198 = load i64, i64* %197\n; # (if (pair V) (car V) V)\n; # (pair V)\n  %199 = and i64 %195, 15\n  %200 = icmp eq i64 %199, 0\n  br i1 %200, label %$26, label %$27\n$26:\n  %201 = phi i64 [%187, %$25] ; # Exe\n  %202 = phi i64 [%188, %$25] ; # X\n  %203 = phi i64 [%189, %$25] ; # R\n  %204 = phi i64 [%190, %$25] ; # E\n  %205 = phi i64 [%191, %$25] ; # A\n  %206 = phi i64 [%192, %$25] ; # P\n  %207 = phi i64 [%193, %$25] ; # Q\n  %208 = phi i64 [%194, %$25] ; # Sym\n  %209 = phi i64 [%195, %$25] ; # V\n; # (car V)\n  %210 = inttoptr i64 %209 to i64*\n  %211 = load i64, i64* %210\n  br label %$28\n$27:\n  %212 = phi i64 [%187, %$25] ; # Exe\n  %213 = phi i64 [%188, %$25] ; # X\n  %214 = phi i64 [%189, %$25] ; # R\n  %215 = phi i64 [%190, %$25] ; # E\n  %216 = phi i64 [%191, %$25] ; # A\n  %217 = phi i64 [%192, %$25] ; # P\n  %218 = phi i64 [%193, %$25] ; # Q\n  %219 = phi i64 [%194, %$25] ; # Sym\n  %220 = phi i64 [%195, %$25] ; # V\n  br label %$28\n$28:\n  %221 = phi i64 [%201, %$26], [%212, %$27] ; # Exe\n  %222 = phi i64 [%202, %$26], [%213, %$27] ; # X\n  %223 = phi i64 [%203, %$26], [%214, %$27] ; # R\n  %224 = phi i64 [%204, %$26], [%215, %$27] ; # E\n  %225 = phi i64 [%205, %$26], [%216, %$27] ; # A\n  %226 = phi i64 [%206, %$26], [%217, %$27] ; # P\n  %227 = phi i64 [%207, %$26], [%218, %$27] ; # Q\n  %228 = phi i64 [%208, %$26], [%219, %$27] ; # Sym\n  %229 = phi i64 [%209, %$26], [%220, %$27] ; # V\n  %230 = phi i64 [%211, %$26], [%220, %$27] ; # ->\n  %231 = inttoptr i64 %198 to i64*\n  %232 = getelementptr i64, i64* %231, i32 3\n  store i64 %230, i64* %232\n; # (set A V)\n  %233 = inttoptr i64 %225 to i64*\n  store i64 %229, i64* %233\n; # (when (pair (car A)) (loop (setq R (evList E)) (? (atom (set A (c...\n; # (car A)\n  %234 = inttoptr i64 %225 to i64*\n  %235 = load i64, i64* %234\n; # (pair (car A))\n  %236 = and i64 %235, 15\n  %237 = icmp eq i64 %236, 0\n  br i1 %237, label %$29, label %$30\n$29:\n  %238 = phi i64 [%221, %$28] ; # Exe\n  %239 = phi i64 [%222, %$28] ; # X\n  %240 = phi i64 [%223, %$28] ; # R\n  %241 = phi i64 [%224, %$28] ; # E\n  %242 = phi i64 [%225, %$28] ; # A\n; # (loop (setq R (evList E)) (? (atom (set A (cdar A)))) (let (P (va...\n  br label %$31\n$31:\n  %243 = phi i64 [%238, %$29], [%341, %$36] ; # Exe\n  %244 = phi i64 [%239, %$29], [%342, %$36] ; # X\n  %245 = phi i64 [%240, %$29], [%343, %$36] ; # R\n  %246 = phi i64 [%241, %$29], [%344, %$36] ; # E\n  %247 = phi i64 [%242, %$29], [%345, %$36] ; # A\n; # (evList E)\n  %248 = call i64 @evList(i64 %246)\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %249 = inttoptr i64 %247 to i64*\n  %250 = load i64, i64* %249\n  %251 = inttoptr i64 %250 to i64*\n  %252 = getelementptr i64, i64* %251, i32 1\n  %253 = load i64, i64* %252\n  %254 = inttoptr i64 %247 to i64*\n  store i64 %253, i64* %254\n; # (atom (set A (cdar A)))\n  %255 = and i64 %253, 15\n  %256 = icmp ne i64 %255, 0\n  br i1 %256, label %$33, label %$32\n$32:\n  %257 = phi i64 [%243, %$31] ; # Exe\n  %258 = phi i64 [%244, %$31] ; # X\n  %259 = phi i64 [%248, %$31] ; # R\n  %260 = phi i64 [%246, %$31] ; # E\n  %261 = phi i64 [%247, %$31] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %262 = inttoptr i64 %260 to i64*\n  %263 = getelementptr i64, i64* %262, i32 1\n  %264 = load i64, i64* %263\n; # (set 4 P (car @))\n; # (car @)\n  %265 = inttoptr i64 %253 to i64*\n  %266 = load i64, i64* %265\n  %267 = inttoptr i64 %264 to i64*\n  %268 = getelementptr i64, i64* %267, i32 3\n  store i64 %266, i64* %268\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$34\n$34:\n  %269 = phi i64 [%257, %$32], [%331, %$37] ; # Exe\n  %270 = phi i64 [%258, %$32], [%332, %$37] ; # X\n  %271 = phi i64 [%259, %$32], [%333, %$37] ; # R\n  %272 = phi i64 [%260, %$32], [%334, %$37] ; # E\n  %273 = phi i64 [%261, %$32], [%335, %$37] ; # A\n  %274 = phi i64 [%264, %$32], [%336, %$37] ; # P\n  %275 = phi i64 [%261, %$32], [%337, %$37] ; # Q\n; # (shift P)\n  %276 = inttoptr i64 %274 to i64*\n  %277 = getelementptr i64, i64* %276, i32 1\n  %278 = load i64, i64* %277\n; # (pair (shift P))\n  %279 = and i64 %278, 15\n  %280 = icmp eq i64 %279, 0\n  br i1 %280, label %$35, label %$36\n$35:\n  %281 = phi i64 [%269, %$34] ; # Exe\n  %282 = phi i64 [%270, %$34] ; # X\n  %283 = phi i64 [%271, %$34] ; # R\n  %284 = phi i64 [%272, %$34] ; # E\n  %285 = phi i64 [%273, %$34] ; # A\n  %286 = phi i64 [%278, %$34] ; # P\n  %287 = phi i64 [%275, %$34] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %288 = inttoptr i64 %287 to i64*\n  %289 = getelementptr i64, i64* %288, i32 1\n  %290 = load i64, i64* %289\n; # (car (shift Q))\n  %291 = inttoptr i64 %290 to i64*\n  %292 = load i64, i64* %291\n; # (atom (car (shift Q)))\n  %293 = and i64 %292, 15\n  %294 = icmp ne i64 %293, 0\n  br i1 %294, label %$39, label %$38\n$39:\n  %295 = phi i64 [%281, %$35] ; # Exe\n  %296 = phi i64 [%282, %$35] ; # X\n  %297 = phi i64 [%283, %$35] ; # R\n  %298 = phi i64 [%284, %$35] ; # E\n  %299 = phi i64 [%285, %$35] ; # A\n  %300 = phi i64 [%286, %$35] ; # P\n  %301 = phi i64 [%290, %$35] ; # Q\n  br label %$37\n$38:\n  %302 = phi i64 [%281, %$35] ; # Exe\n  %303 = phi i64 [%282, %$35] ; # X\n  %304 = phi i64 [%283, %$35] ; # R\n  %305 = phi i64 [%284, %$35] ; # E\n  %306 = phi i64 [%285, %$35] ; # A\n  %307 = phi i64 [%286, %$35] ; # P\n  %308 = phi i64 [%290, %$35] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %309 = inttoptr i64 %292 to i64*\n  %310 = getelementptr i64, i64* %309, i32 1\n  %311 = load i64, i64* %310\n  %312 = inttoptr i64 %308 to i64*\n  store i64 %311, i64* %312\n; # (atom (set Q (cdr @)))\n  %313 = and i64 %311, 15\n  %314 = icmp ne i64 %313, 0\n  br i1 %314, label %$41, label %$40\n$41:\n  %315 = phi i64 [%302, %$38] ; # Exe\n  %316 = phi i64 [%303, %$38] ; # X\n  %317 = phi i64 [%304, %$38] ; # R\n  %318 = phi i64 [%305, %$38] ; # E\n  %319 = phi i64 [%306, %$38] ; # A\n  %320 = phi i64 [%307, %$38] ; # P\n  %321 = phi i64 [%308, %$38] ; # Q\n  br label %$37\n$40:\n  %322 = phi i64 [%302, %$38] ; # Exe\n  %323 = phi i64 [%303, %$38] ; # X\n  %324 = phi i64 [%304, %$38] ; # R\n  %325 = phi i64 [%305, %$38] ; # E\n  %326 = phi i64 [%306, %$38] ; # A\n  %327 = phi i64 [%307, %$38] ; # P\n  %328 = phi i64 [%308, %$38] ; # Q\n; # (car @)\n  %329 = inttoptr i64 %311 to i64*\n  %330 = load i64, i64* %329\n  br label %$37\n$37:\n  %331 = phi i64 [%295, %$39], [%315, %$41], [%322, %$40] ; # Exe\n  %332 = phi i64 [%296, %$39], [%316, %$41], [%323, %$40] ; # X\n  %333 = phi i64 [%297, %$39], [%317, %$41], [%324, %$40] ; # R\n  %334 = phi i64 [%298, %$39], [%318, %$41], [%325, %$40] ; # E\n  %335 = phi i64 [%299, %$39], [%319, %$41], [%326, %$40] ; # A\n  %336 = phi i64 [%300, %$39], [%320, %$41], [%327, %$40] ; # P\n  %337 = phi i64 [%301, %$39], [%321, %$41], [%328, %$40] ; # Q\n  %338 = phi i64 [%292, %$39], [%311, %$41], [%330, %$40] ; # ->\n  %339 = inttoptr i64 %286 to i64*\n  %340 = getelementptr i64, i64* %339, i32 3\n  store i64 %338, i64* %340\n  br label %$34\n$36:\n  %341 = phi i64 [%269, %$34] ; # Exe\n  %342 = phi i64 [%270, %$34] ; # X\n  %343 = phi i64 [%271, %$34] ; # R\n  %344 = phi i64 [%272, %$34] ; # E\n  %345 = phi i64 [%273, %$34] ; # A\n  %346 = phi i64 [%278, %$34] ; # P\n  %347 = phi i64 [%275, %$34] ; # Q\n  br label %$31\n$33:\n  %348 = phi i64 [%243, %$31] ; # Exe\n  %349 = phi i64 [%244, %$31] ; # X\n  %350 = phi i64 [%248, %$31] ; # R\n  %351 = phi i64 [%246, %$31] ; # E\n  %352 = phi i64 [%247, %$31] ; # A\n  %353 = phi i64 [0, %$31] ; # ->\n  br label %$30\n$30:\n  %354 = phi i64 [%221, %$28], [%348, %$33] ; # Exe\n  %355 = phi i64 [%222, %$28], [%349, %$33] ; # X\n  %356 = phi i64 [%223, %$28], [%350, %$33] ; # R\n  %357 = phi i64 [%224, %$28], [%351, %$33] ; # E\n  %358 = phi i64 [%225, %$28], [%352, %$33] ; # A\n; # (drop *Safe)\n  %359 = inttoptr i64 %31 to i64*\n  %360 = getelementptr i64, i64* %359, i32 1\n  %361 = load i64, i64* %360\n  %362 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %361, i64* %362\n  ret i64 %356\n}\n\ndefine i64 @_Map(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R $Nil E (push NIL $Nil ZERO (eval (car X)) NIL...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %19 = alloca i64, i64 5, align 16\n  %20 = ptrtoint i64* %19 to i64\n  %21 = add i64 %20, 8\n  %22 = inttoptr i64 %21 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %22\n  %23 = add i64 %20, 16\n  %24 = inttoptr i64 %23 to i64*\n  store i64 2, i64* %24\n  %25 = add i64 %20, 24\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %18, i64* %26\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %27 = add i64 %20, 24\n; # (link (ofs E 3) T)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = inttoptr i64 %27 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  store i64 %29, i64* %31\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 %20 to i64*\n  store i64 %27, i64* %33\n; # (let P E (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ...\n; # (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ZERO (eva...\n  br label %$7\n$7:\n  %34 = phi i64 [%0, %$2], [%44, %$10] ; # Exe\n  %35 = phi i64 [%3, %$2], [%45, %$10] ; # X\n  %36 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%46, %$10] ; # R\n  %37 = phi i64 [%20, %$2], [%47, %$10] ; # E\n  %38 = phi i64 [%20, %$2], [%65, %$10] ; # P\n; # (shift X)\n  %39 = inttoptr i64 %35 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (pair (shift X))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$8, label %$9\n$8:\n  %44 = phi i64 [%34, %$7] ; # Exe\n  %45 = phi i64 [%41, %$7] ; # X\n  %46 = phi i64 [%36, %$7] ; # R\n  %47 = phi i64 [%37, %$7] ; # E\n  %48 = phi i64 [%38, %$7] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %49 = inttoptr i64 %45 to i64*\n  %50 = load i64, i64* %49\n; # (eval (car X))\n  %51 = and i64 %50, 6\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$12, label %$11\n$12:\n  %53 = phi i64 [%50, %$8] ; # X\n  br label %$10\n$11:\n  %54 = phi i64 [%50, %$8] ; # X\n  %55 = and i64 %54, 8\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$14, label %$13\n$14:\n  %57 = phi i64 [%54, %$11] ; # X\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$10\n$13:\n  %60 = phi i64 [%54, %$11] ; # X\n  %61 = call i64 @evList(i64 %60)\n  br label %$10\n$10:\n  %62 = phi i64 [%53, %$12], [%57, %$14], [%60, %$13] ; # X\n  %63 = phi i64 [%53, %$12], [%59, %$14], [%61, %$13] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %64 = alloca i64, i64 5, align 16\n  %65 = ptrtoint i64* %64 to i64\n  %66 = add i64 %65, 8\n  %67 = inttoptr i64 %66 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %67\n  %68 = add i64 %65, 16\n  %69 = inttoptr i64 %68 to i64*\n  store i64 2, i64* %69\n  %70 = add i64 %65, 24\n  %71 = inttoptr i64 %70 to i64*\n  store i64 %63, i64* %71\n  %72 = inttoptr i64 %48 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  store i64 %65, i64* %73\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %74 = add i64 %65, 24\n; # (link (ofs P 3))\n  %75 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %76 = load i64, i64* %75\n  %77 = inttoptr i64 %74 to i64*\n  %78 = getelementptr i64, i64* %77, i32 1\n  store i64 %76, i64* %78\n  %79 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %74, i64* %79\n  %80 = inttoptr i64 %65 to i64*\n  store i64 %74, i64* %80\n  br label %$7\n$9:\n  %81 = phi i64 [%34, %$7] ; # Exe\n  %82 = phi i64 [%41, %$7] ; # X\n  %83 = phi i64 [%36, %$7] ; # R\n  %84 = phi i64 [%37, %$7] ; # E\n  %85 = phi i64 [%38, %$7] ; # P\n; # (loop (let P (val 2 E) (? (atom (val 4 P))) (setq R (evList E)) (...\n  br label %$15\n$15:\n  %86 = phi i64 [%81, %$9], [%139, %$22] ; # Exe\n  %87 = phi i64 [%82, %$9], [%140, %$22] ; # X\n  %88 = phi i64 [%83, %$9], [%141, %$22] ; # R\n  %89 = phi i64 [%84, %$9], [%142, %$22] ; # E\n; # (let P (val 2 E) (? (atom (val 4 P))) (setq R (evList E)) (loop (...\n; # (val 2 E)\n  %90 = inttoptr i64 %89 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (? (atom (val 4 P)))\n; # (val 4 P)\n  %93 = inttoptr i64 %92 to i64*\n  %94 = getelementptr i64, i64* %93, i32 3\n  %95 = load i64, i64* %94\n; # (atom (val 4 P))\n  %96 = and i64 %95, 15\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$17, label %$16\n$16:\n  %98 = phi i64 [%86, %$15] ; # Exe\n  %99 = phi i64 [%87, %$15] ; # X\n  %100 = phi i64 [%88, %$15] ; # R\n  %101 = phi i64 [%89, %$15] ; # E\n  %102 = phi i64 [%92, %$15] ; # P\n; # (evList E)\n  %103 = call i64 @evList(i64 %101)\n; # (loop (when (pair (val 4 P)) (set 4 P (cdr @))) (? (atom (shift P...\n  br label %$18\n$18:\n  %104 = phi i64 [%98, %$16], [%134, %$21] ; # Exe\n  %105 = phi i64 [%99, %$16], [%135, %$21] ; # X\n  %106 = phi i64 [%103, %$16], [%136, %$21] ; # R\n  %107 = phi i64 [%101, %$16], [%137, %$21] ; # E\n  %108 = phi i64 [%102, %$16], [%138, %$21] ; # P\n; # (when (pair (val 4 P)) (set 4 P (cdr @)))\n; # (val 4 P)\n  %109 = inttoptr i64 %108 to i64*\n  %110 = getelementptr i64, i64* %109, i32 3\n  %111 = load i64, i64* %110\n; # (pair (val 4 P))\n  %112 = and i64 %111, 15\n  %113 = icmp eq i64 %112, 0\n  br i1 %113, label %$19, label %$20\n$19:\n  %114 = phi i64 [%104, %$18] ; # Exe\n  %115 = phi i64 [%105, %$18] ; # X\n  %116 = phi i64 [%106, %$18] ; # R\n  %117 = phi i64 [%107, %$18] ; # E\n  %118 = phi i64 [%108, %$18] ; # P\n; # (set 4 P (cdr @))\n; # (cdr @)\n  %119 = inttoptr i64 %111 to i64*\n  %120 = getelementptr i64, i64* %119, i32 1\n  %121 = load i64, i64* %120\n  %122 = inttoptr i64 %118 to i64*\n  %123 = getelementptr i64, i64* %122, i32 3\n  store i64 %121, i64* %123\n  br label %$20\n$20:\n  %124 = phi i64 [%104, %$18], [%114, %$19] ; # Exe\n  %125 = phi i64 [%105, %$18], [%115, %$19] ; # X\n  %126 = phi i64 [%106, %$18], [%116, %$19] ; # R\n  %127 = phi i64 [%107, %$18], [%117, %$19] ; # E\n  %128 = phi i64 [%108, %$18], [%118, %$19] ; # P\n; # (? (atom (shift P)))\n; # (shift P)\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n; # (atom (shift P))\n  %132 = and i64 %131, 15\n  %133 = icmp ne i64 %132, 0\n  br i1 %133, label %$22, label %$21\n$21:\n  %134 = phi i64 [%124, %$20] ; # Exe\n  %135 = phi i64 [%125, %$20] ; # X\n  %136 = phi i64 [%126, %$20] ; # R\n  %137 = phi i64 [%127, %$20] ; # E\n  %138 = phi i64 [%131, %$20] ; # P\n  br label %$18\n$22:\n  %139 = phi i64 [%124, %$20] ; # Exe\n  %140 = phi i64 [%125, %$20] ; # X\n  %141 = phi i64 [%126, %$20] ; # R\n  %142 = phi i64 [%127, %$20] ; # E\n  %143 = phi i64 [%131, %$20] ; # P\n  %144 = phi i64 [0, %$20] ; # ->\n  br label %$15\n$17:\n  %145 = phi i64 [%86, %$15] ; # Exe\n  %146 = phi i64 [%87, %$15] ; # X\n  %147 = phi i64 [%88, %$15] ; # R\n  %148 = phi i64 [%89, %$15] ; # E\n  %149 = phi i64 [0, %$15] ; # ->\n; # (drop *Safe)\n  %150 = inttoptr i64 %27 to i64*\n  %151 = getelementptr i64, i64* %150, i32 1\n  %152 = load i64, i64* %151\n  %153 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %152, i64* %153\n  ret i64 %147\n}\n\ndefine i64 @_Mapc(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R $Nil E (push NIL $Nil ZERO (eval (++ X)) NIL)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%111, %$15] ; # Exe\n  %39 = phi i64 [%6, %$2], [%112, %$15] ; # X\n  %40 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%113, %$15] ; # R\n  %41 = phi i64 [%22, %$2], [%114, %$15] ; # E\n  %42 = phi i64 [%30, %$2], [%115, %$15] ; # A\n  %43 = phi i64 [%22, %$2], [%116, %$15] ; # P\n  %44 = phi i64 [%30, %$2], [%119, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %45 = inttoptr i64 %39 to i64*\n  %46 = load i64, i64* %45\n; # (eval (car X))\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$10, label %$9\n$10:\n  %49 = phi i64 [%46, %$7] ; # X\n  br label %$8\n$9:\n  %50 = phi i64 [%46, %$7] ; # X\n  %51 = and i64 %50, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$12, label %$11\n$12:\n  %53 = phi i64 [%50, %$9] ; # X\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  br label %$8\n$11:\n  %56 = phi i64 [%50, %$9] ; # X\n  %57 = call i64 @evList(i64 %56)\n  br label %$8\n$8:\n  %58 = phi i64 [%49, %$10], [%53, %$12], [%56, %$11] ; # X\n  %59 = phi i64 [%49, %$10], [%55, %$12], [%57, %$11] ; # ->\n; # (save (eval (car X)))\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %61 = load i64, i64* %60\n  %62 = alloca i64, i64 2, align 16\n  %63 = ptrtoint i64* %62 to i64\n  %64 = inttoptr i64 %63 to i64*\n  store i64 %59, i64* %64\n  %65 = add i64 %63, 8\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %61, i64* %66\n  %67 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %63, i64* %67\n  %68 = inttoptr i64 %44 to i64*\n  store i64 %59, i64* %68\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %69 = and i64 %59, 15\n  %70 = icmp eq i64 %69, 0\n  br i1 %70, label %$13, label %$14\n$13:\n  %71 = phi i64 [%38, %$8] ; # Exe\n  %72 = phi i64 [%39, %$8] ; # X\n  %73 = phi i64 [%40, %$8] ; # R\n  %74 = phi i64 [%41, %$8] ; # E\n  %75 = phi i64 [%42, %$8] ; # A\n  %76 = phi i64 [%43, %$8] ; # P\n  %77 = phi i64 [%44, %$8] ; # Q\n  %78 = phi i64 [%59, %$8] ; # V\n; # (car V)\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$14\n$14:\n  %81 = phi i64 [%38, %$8], [%71, %$13] ; # Exe\n  %82 = phi i64 [%39, %$8], [%72, %$13] ; # X\n  %83 = phi i64 [%40, %$8], [%73, %$13] ; # R\n  %84 = phi i64 [%41, %$8], [%74, %$13] ; # E\n  %85 = phi i64 [%42, %$8], [%75, %$13] ; # A\n  %86 = phi i64 [%43, %$8], [%76, %$13] ; # P\n  %87 = phi i64 [%44, %$8], [%77, %$13] ; # Q\n  %88 = phi i64 [%59, %$8], [%80, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %89 = alloca i64, i64 5, align 16\n  %90 = ptrtoint i64* %89 to i64\n  %91 = add i64 %90, 8\n  %92 = inttoptr i64 %91 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %92\n  %93 = add i64 %90, 16\n  %94 = inttoptr i64 %93 to i64*\n  store i64 2, i64* %94\n  %95 = add i64 %90, 24\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %88, i64* %96\n  %97 = inttoptr i64 %86 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  store i64 %90, i64* %98\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %99 = add i64 %90, 24\n; # (link (ofs P 3))\n  %100 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 %99 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  store i64 %101, i64* %103\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %104\n  %105 = inttoptr i64 %90 to i64*\n  store i64 %99, i64* %105\n; # (? (atom (shift X)))\n; # (shift X)\n  %106 = inttoptr i64 %82 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n; # (atom (shift X))\n  %109 = and i64 %108, 15\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$16, label %$15\n$15:\n  %111 = phi i64 [%81, %$14] ; # Exe\n  %112 = phi i64 [%108, %$14] ; # X\n  %113 = phi i64 [%83, %$14] ; # R\n  %114 = phi i64 [%84, %$14] ; # E\n  %115 = phi i64 [%85, %$14] ; # A\n  %116 = phi i64 [%90, %$14] ; # P\n  %117 = phi i64 [%87, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %118 = alloca i64, i64 2, align 16\n  %119 = ptrtoint i64* %118 to i64\n  %120 = inttoptr i64 %117 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  store i64 %119, i64* %121\n  br label %$7\n$16:\n  %122 = phi i64 [%81, %$14] ; # Exe\n  %123 = phi i64 [%108, %$14] ; # X\n  %124 = phi i64 [%83, %$14] ; # R\n  %125 = phi i64 [%84, %$14] ; # E\n  %126 = phi i64 [%85, %$14] ; # A\n  %127 = phi i64 [%90, %$14] ; # P\n  %128 = phi i64 [%87, %$14] ; # Q\n  %129 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (setq R (evList E)) (? (atom (set A (c...\n; # (car A)\n  %130 = inttoptr i64 %126 to i64*\n  %131 = load i64, i64* %130\n; # (pair (car A))\n  %132 = and i64 %131, 15\n  %133 = icmp eq i64 %132, 0\n  br i1 %133, label %$17, label %$18\n$17:\n  %134 = phi i64 [%122, %$16] ; # Exe\n  %135 = phi i64 [%123, %$16] ; # X\n  %136 = phi i64 [%124, %$16] ; # R\n  %137 = phi i64 [%125, %$16] ; # E\n  %138 = phi i64 [%126, %$16] ; # A\n; # (loop (setq R (evList E)) (? (atom (set A (cdar A)))) (let (P (va...\n  br label %$19\n$19:\n  %139 = phi i64 [%134, %$17], [%237, %$24] ; # Exe\n  %140 = phi i64 [%135, %$17], [%238, %$24] ; # X\n  %141 = phi i64 [%136, %$17], [%239, %$24] ; # R\n  %142 = phi i64 [%137, %$17], [%240, %$24] ; # E\n  %143 = phi i64 [%138, %$17], [%241, %$24] ; # A\n; # (evList E)\n  %144 = call i64 @evList(i64 %142)\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %145 = inttoptr i64 %143 to i64*\n  %146 = load i64, i64* %145\n  %147 = inttoptr i64 %146 to i64*\n  %148 = getelementptr i64, i64* %147, i32 1\n  %149 = load i64, i64* %148\n  %150 = inttoptr i64 %143 to i64*\n  store i64 %149, i64* %150\n; # (atom (set A (cdar A)))\n  %151 = and i64 %149, 15\n  %152 = icmp ne i64 %151, 0\n  br i1 %152, label %$21, label %$20\n$20:\n  %153 = phi i64 [%139, %$19] ; # Exe\n  %154 = phi i64 [%140, %$19] ; # X\n  %155 = phi i64 [%144, %$19] ; # R\n  %156 = phi i64 [%142, %$19] ; # E\n  %157 = phi i64 [%143, %$19] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %158 = inttoptr i64 %156 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n; # (set 4 P (car @))\n; # (car @)\n  %161 = inttoptr i64 %149 to i64*\n  %162 = load i64, i64* %161\n  %163 = inttoptr i64 %160 to i64*\n  %164 = getelementptr i64, i64* %163, i32 3\n  store i64 %162, i64* %164\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$22\n$22:\n  %165 = phi i64 [%153, %$20], [%227, %$25] ; # Exe\n  %166 = phi i64 [%154, %$20], [%228, %$25] ; # X\n  %167 = phi i64 [%155, %$20], [%229, %$25] ; # R\n  %168 = phi i64 [%156, %$20], [%230, %$25] ; # E\n  %169 = phi i64 [%157, %$20], [%231, %$25] ; # A\n  %170 = phi i64 [%160, %$20], [%232, %$25] ; # P\n  %171 = phi i64 [%157, %$20], [%233, %$25] ; # Q\n; # (shift P)\n  %172 = inttoptr i64 %170 to i64*\n  %173 = getelementptr i64, i64* %172, i32 1\n  %174 = load i64, i64* %173\n; # (pair (shift P))\n  %175 = and i64 %174, 15\n  %176 = icmp eq i64 %175, 0\n  br i1 %176, label %$23, label %$24\n$23:\n  %177 = phi i64 [%165, %$22] ; # Exe\n  %178 = phi i64 [%166, %$22] ; # X\n  %179 = phi i64 [%167, %$22] ; # R\n  %180 = phi i64 [%168, %$22] ; # E\n  %181 = phi i64 [%169, %$22] ; # A\n  %182 = phi i64 [%174, %$22] ; # P\n  %183 = phi i64 [%171, %$22] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %184 = inttoptr i64 %183 to i64*\n  %185 = getelementptr i64, i64* %184, i32 1\n  %186 = load i64, i64* %185\n; # (car (shift Q))\n  %187 = inttoptr i64 %186 to i64*\n  %188 = load i64, i64* %187\n; # (atom (car (shift Q)))\n  %189 = and i64 %188, 15\n  %190 = icmp ne i64 %189, 0\n  br i1 %190, label %$27, label %$26\n$27:\n  %191 = phi i64 [%177, %$23] ; # Exe\n  %192 = phi i64 [%178, %$23] ; # X\n  %193 = phi i64 [%179, %$23] ; # R\n  %194 = phi i64 [%180, %$23] ; # E\n  %195 = phi i64 [%181, %$23] ; # A\n  %196 = phi i64 [%182, %$23] ; # P\n  %197 = phi i64 [%186, %$23] ; # Q\n  br label %$25\n$26:\n  %198 = phi i64 [%177, %$23] ; # Exe\n  %199 = phi i64 [%178, %$23] ; # X\n  %200 = phi i64 [%179, %$23] ; # R\n  %201 = phi i64 [%180, %$23] ; # E\n  %202 = phi i64 [%181, %$23] ; # A\n  %203 = phi i64 [%182, %$23] ; # P\n  %204 = phi i64 [%186, %$23] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %205 = inttoptr i64 %188 to i64*\n  %206 = getelementptr i64, i64* %205, i32 1\n  %207 = load i64, i64* %206\n  %208 = inttoptr i64 %204 to i64*\n  store i64 %207, i64* %208\n; # (atom (set Q (cdr @)))\n  %209 = and i64 %207, 15\n  %210 = icmp ne i64 %209, 0\n  br i1 %210, label %$29, label %$28\n$29:\n  %211 = phi i64 [%198, %$26] ; # Exe\n  %212 = phi i64 [%199, %$26] ; # X\n  %213 = phi i64 [%200, %$26] ; # R\n  %214 = phi i64 [%201, %$26] ; # E\n  %215 = phi i64 [%202, %$26] ; # A\n  %216 = phi i64 [%203, %$26] ; # P\n  %217 = phi i64 [%204, %$26] ; # Q\n  br label %$25\n$28:\n  %218 = phi i64 [%198, %$26] ; # Exe\n  %219 = phi i64 [%199, %$26] ; # X\n  %220 = phi i64 [%200, %$26] ; # R\n  %221 = phi i64 [%201, %$26] ; # E\n  %222 = phi i64 [%202, %$26] ; # A\n  %223 = phi i64 [%203, %$26] ; # P\n  %224 = phi i64 [%204, %$26] ; # Q\n; # (car @)\n  %225 = inttoptr i64 %207 to i64*\n  %226 = load i64, i64* %225\n  br label %$25\n$25:\n  %227 = phi i64 [%191, %$27], [%211, %$29], [%218, %$28] ; # Exe\n  %228 = phi i64 [%192, %$27], [%212, %$29], [%219, %$28] ; # X\n  %229 = phi i64 [%193, %$27], [%213, %$29], [%220, %$28] ; # R\n  %230 = phi i64 [%194, %$27], [%214, %$29], [%221, %$28] ; # E\n  %231 = phi i64 [%195, %$27], [%215, %$29], [%222, %$28] ; # A\n  %232 = phi i64 [%196, %$27], [%216, %$29], [%223, %$28] ; # P\n  %233 = phi i64 [%197, %$27], [%217, %$29], [%224, %$28] ; # Q\n  %234 = phi i64 [%188, %$27], [%207, %$29], [%226, %$28] ; # ->\n  %235 = inttoptr i64 %182 to i64*\n  %236 = getelementptr i64, i64* %235, i32 3\n  store i64 %234, i64* %236\n  br label %$22\n$24:\n  %237 = phi i64 [%165, %$22] ; # Exe\n  %238 = phi i64 [%166, %$22] ; # X\n  %239 = phi i64 [%167, %$22] ; # R\n  %240 = phi i64 [%168, %$22] ; # E\n  %241 = phi i64 [%169, %$22] ; # A\n  %242 = phi i64 [%174, %$22] ; # P\n  %243 = phi i64 [%171, %$22] ; # Q\n  br label %$19\n$21:\n  %244 = phi i64 [%139, %$19] ; # Exe\n  %245 = phi i64 [%140, %$19] ; # X\n  %246 = phi i64 [%144, %$19] ; # R\n  %247 = phi i64 [%142, %$19] ; # E\n  %248 = phi i64 [%143, %$19] ; # A\n  %249 = phi i64 [0, %$19] ; # ->\n  br label %$18\n$18:\n  %250 = phi i64 [%122, %$16], [%244, %$21] ; # Exe\n  %251 = phi i64 [%123, %$16], [%245, %$21] ; # X\n  %252 = phi i64 [%124, %$16], [%246, %$21] ; # R\n  %253 = phi i64 [%125, %$16], [%247, %$21] ; # E\n  %254 = phi i64 [%126, %$16], [%248, %$21] ; # A\n; # (drop *Safe)\n  %255 = inttoptr i64 %31 to i64*\n  %256 = getelementptr i64, i64* %255, i32 1\n  %257 = load i64, i64* %256\n  %258 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %257, i64* %258\n  ret i64 %252\n}\n\ndefine i64 @_Maplist(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (car X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = load i64, i64* %12\n; # (eval (car X))\n  %14 = and i64 %13, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$4, label %$3\n$4:\n  %16 = phi i64 [%13, %$1] ; # X\n  br label %$2\n$3:\n  %17 = phi i64 [%13, %$1] ; # X\n  %18 = and i64 %17, 8\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$6, label %$5\n$6:\n  %20 = phi i64 [%17, %$3] ; # X\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n  br label %$2\n$5:\n  %23 = phi i64 [%17, %$3] ; # X\n  %24 = call i64 @evList(i64 %23)\n  br label %$2\n$2:\n  %25 = phi i64 [%16, %$4], [%20, %$6], [%23, %$5] ; # X\n  %26 = phi i64 [%16, %$4], [%22, %$6], [%24, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %27 = alloca i64, i64 5, align 16\n  %28 = ptrtoint i64* %27 to i64\n  %29 = add i64 %28, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %30\n  %31 = add i64 %28, 16\n  %32 = inttoptr i64 %31 to i64*\n  store i64 2, i64* %32\n  %33 = add i64 %28, 24\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %26, i64* %34\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %35 = add i64 %28, 24\n; # (link (ofs E 3))\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %37 = load i64, i64* %36\n  %38 = inttoptr i64 %35 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  store i64 %37, i64* %39\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %35, i64* %40\n  %41 = inttoptr i64 %28 to i64*\n  store i64 %35, i64* %41\n; # (let P E (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ...\n; # (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ZERO (eva...\n  br label %$7\n$7:\n  %42 = phi i64 [%0, %$2], [%53, %$10] ; # Exe\n  %43 = phi i64 [%3, %$2], [%54, %$10] ; # X\n  %44 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%55, %$10] ; # R\n  %45 = phi i64 [0, %$2], [%56, %$10] ; # L\n  %46 = phi i64 [%28, %$2], [%57, %$10] ; # E\n  %47 = phi i64 [%28, %$2], [%75, %$10] ; # P\n; # (shift X)\n  %48 = inttoptr i64 %43 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n; # (pair (shift X))\n  %51 = and i64 %50, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$8, label %$9\n$8:\n  %53 = phi i64 [%42, %$7] ; # Exe\n  %54 = phi i64 [%50, %$7] ; # X\n  %55 = phi i64 [%44, %$7] ; # R\n  %56 = phi i64 [%45, %$7] ; # L\n  %57 = phi i64 [%46, %$7] ; # E\n  %58 = phi i64 [%47, %$7] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %59 = inttoptr i64 %54 to i64*\n  %60 = load i64, i64* %59\n; # (eval (car X))\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$12, label %$11\n$12:\n  %63 = phi i64 [%60, %$8] ; # X\n  br label %$10\n$11:\n  %64 = phi i64 [%60, %$8] ; # X\n  %65 = and i64 %64, 8\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$14, label %$13\n$14:\n  %67 = phi i64 [%64, %$11] ; # X\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n  br label %$10\n$13:\n  %70 = phi i64 [%64, %$11] ; # X\n  %71 = call i64 @evList(i64 %70)\n  br label %$10\n$10:\n  %72 = phi i64 [%63, %$12], [%67, %$14], [%70, %$13] ; # X\n  %73 = phi i64 [%63, %$12], [%69, %$14], [%71, %$13] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %74 = alloca i64, i64 5, align 16\n  %75 = ptrtoint i64* %74 to i64\n  %76 = add i64 %75, 8\n  %77 = inttoptr i64 %76 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %77\n  %78 = add i64 %75, 16\n  %79 = inttoptr i64 %78 to i64*\n  store i64 2, i64* %79\n  %80 = add i64 %75, 24\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %73, i64* %81\n  %82 = inttoptr i64 %58 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  store i64 %75, i64* %83\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %84 = add i64 %75, 24\n; # (link (ofs P 3))\n  %85 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 %84 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  store i64 %86, i64* %88\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %84, i64* %89\n  %90 = inttoptr i64 %75 to i64*\n  store i64 %84, i64* %90\n  br label %$7\n$9:\n  %91 = phi i64 [%42, %$7] ; # Exe\n  %92 = phi i64 [%50, %$7] ; # X\n  %93 = phi i64 [%44, %$7] ; # R\n  %94 = phi i64 [%45, %$7] ; # L\n  %95 = phi i64 [%46, %$7] ; # E\n  %96 = phi i64 [%47, %$7] ; # P\n; # (loop (let P (val 2 E) (? (atom (val 4 P))) (let Y (cons (evList ...\n  br label %$15\n$15:\n  %97 = phi i64 [%91, %$9], [%183, %$25] ; # Exe\n  %98 = phi i64 [%92, %$9], [%184, %$25] ; # X\n  %99 = phi i64 [%93, %$9], [%185, %$25] ; # R\n  %100 = phi i64 [%94, %$9], [%186, %$25] ; # L\n  %101 = phi i64 [%95, %$9], [%187, %$25] ; # E\n; # (let P (val 2 E) (? (atom (val 4 P))) (let Y (cons (evList E) $Ni...\n; # (val 2 E)\n  %102 = inttoptr i64 %101 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n; # (? (atom (val 4 P)))\n; # (val 4 P)\n  %105 = inttoptr i64 %104 to i64*\n  %106 = getelementptr i64, i64* %105, i32 3\n  %107 = load i64, i64* %106\n; # (atom (val 4 P))\n  %108 = and i64 %107, 15\n  %109 = icmp ne i64 %108, 0\n  br i1 %109, label %$17, label %$16\n$16:\n  %110 = phi i64 [%97, %$15] ; # Exe\n  %111 = phi i64 [%98, %$15] ; # X\n  %112 = phi i64 [%99, %$15] ; # R\n  %113 = phi i64 [%100, %$15] ; # L\n  %114 = phi i64 [%101, %$15] ; # E\n  %115 = phi i64 [%104, %$15] ; # P\n; # (let Y (cons (evList E) $Nil) (setq L (if L (set 2 L Y) (setq R (...\n; # (evList E)\n  %116 = call i64 @evList(i64 %114)\n; # (cons (evList E) $Nil)\n  %117 = call i64 @cons(i64 %116, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if L (set 2 L Y) (setq R (safe Y)))\n  %118 = icmp ne i64 %113, 0\n  br i1 %118, label %$18, label %$19\n$18:\n  %119 = phi i64 [%110, %$16] ; # Exe\n  %120 = phi i64 [%111, %$16] ; # X\n  %121 = phi i64 [%112, %$16] ; # R\n  %122 = phi i64 [%113, %$16] ; # L\n  %123 = phi i64 [%114, %$16] ; # E\n  %124 = phi i64 [%115, %$16] ; # P\n  %125 = phi i64 [%117, %$16] ; # Y\n; # (set 2 L Y)\n  %126 = inttoptr i64 %122 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  store i64 %125, i64* %127\n  br label %$20\n$19:\n  %128 = phi i64 [%110, %$16] ; # Exe\n  %129 = phi i64 [%111, %$16] ; # X\n  %130 = phi i64 [%112, %$16] ; # R\n  %131 = phi i64 [%113, %$16] ; # L\n  %132 = phi i64 [%114, %$16] ; # E\n  %133 = phi i64 [%115, %$16] ; # P\n  %134 = phi i64 [%117, %$16] ; # Y\n; # (safe Y)\n  %135 = inttoptr i64 %7 to i64*\n  store i64 %134, i64* %135\n  br label %$20\n$20:\n  %136 = phi i64 [%119, %$18], [%128, %$19] ; # Exe\n  %137 = phi i64 [%120, %$18], [%129, %$19] ; # X\n  %138 = phi i64 [%121, %$18], [%134, %$19] ; # R\n  %139 = phi i64 [%122, %$18], [%131, %$19] ; # L\n  %140 = phi i64 [%123, %$18], [%132, %$19] ; # E\n  %141 = phi i64 [%124, %$18], [%133, %$19] ; # P\n  %142 = phi i64 [%125, %$18], [%134, %$19] ; # Y\n  %143 = phi i64 [%125, %$18], [%134, %$19] ; # ->\n; # (loop (when (pair (val 4 P)) (set 4 P (cdr @))) (? (atom (shift P...\n  br label %$21\n$21:\n  %144 = phi i64 [%136, %$20], [%177, %$24] ; # Exe\n  %145 = phi i64 [%137, %$20], [%178, %$24] ; # X\n  %146 = phi i64 [%138, %$20], [%179, %$24] ; # R\n  %147 = phi i64 [%143, %$20], [%180, %$24] ; # L\n  %148 = phi i64 [%140, %$20], [%181, %$24] ; # E\n  %149 = phi i64 [%141, %$20], [%182, %$24] ; # P\n; # (when (pair (val 4 P)) (set 4 P (cdr @)))\n; # (val 4 P)\n  %150 = inttoptr i64 %149 to i64*\n  %151 = getelementptr i64, i64* %150, i32 3\n  %152 = load i64, i64* %151\n; # (pair (val 4 P))\n  %153 = and i64 %152, 15\n  %154 = icmp eq i64 %153, 0\n  br i1 %154, label %$22, label %$23\n$22:\n  %155 = phi i64 [%144, %$21] ; # Exe\n  %156 = phi i64 [%145, %$21] ; # X\n  %157 = phi i64 [%146, %$21] ; # R\n  %158 = phi i64 [%147, %$21] ; # L\n  %159 = phi i64 [%148, %$21] ; # E\n  %160 = phi i64 [%149, %$21] ; # P\n; # (set 4 P (cdr @))\n; # (cdr @)\n  %161 = inttoptr i64 %152 to i64*\n  %162 = getelementptr i64, i64* %161, i32 1\n  %163 = load i64, i64* %162\n  %164 = inttoptr i64 %160 to i64*\n  %165 = getelementptr i64, i64* %164, i32 3\n  store i64 %163, i64* %165\n  br label %$23\n$23:\n  %166 = phi i64 [%144, %$21], [%155, %$22] ; # Exe\n  %167 = phi i64 [%145, %$21], [%156, %$22] ; # X\n  %168 = phi i64 [%146, %$21], [%157, %$22] ; # R\n  %169 = phi i64 [%147, %$21], [%158, %$22] ; # L\n  %170 = phi i64 [%148, %$21], [%159, %$22] ; # E\n  %171 = phi i64 [%149, %$21], [%160, %$22] ; # P\n; # (? (atom (shift P)))\n; # (shift P)\n  %172 = inttoptr i64 %171 to i64*\n  %173 = getelementptr i64, i64* %172, i32 1\n  %174 = load i64, i64* %173\n; # (atom (shift P))\n  %175 = and i64 %174, 15\n  %176 = icmp ne i64 %175, 0\n  br i1 %176, label %$25, label %$24\n$24:\n  %177 = phi i64 [%166, %$23] ; # Exe\n  %178 = phi i64 [%167, %$23] ; # X\n  %179 = phi i64 [%168, %$23] ; # R\n  %180 = phi i64 [%169, %$23] ; # L\n  %181 = phi i64 [%170, %$23] ; # E\n  %182 = phi i64 [%174, %$23] ; # P\n  br label %$21\n$25:\n  %183 = phi i64 [%166, %$23] ; # Exe\n  %184 = phi i64 [%167, %$23] ; # X\n  %185 = phi i64 [%168, %$23] ; # R\n  %186 = phi i64 [%169, %$23] ; # L\n  %187 = phi i64 [%170, %$23] ; # E\n  %188 = phi i64 [%174, %$23] ; # P\n  %189 = phi i64 [0, %$23] ; # ->\n  br label %$15\n$17:\n  %190 = phi i64 [%97, %$15] ; # Exe\n  %191 = phi i64 [%98, %$15] ; # X\n  %192 = phi i64 [%99, %$15] ; # R\n  %193 = phi i64 [%100, %$15] ; # L\n  %194 = phi i64 [%101, %$15] ; # E\n  %195 = phi i64 [0, %$15] ; # ->\n; # (drop *Safe)\n  %196 = inttoptr i64 %7 to i64*\n  %197 = getelementptr i64, i64* %196, i32 1\n  %198 = load i64, i64* %197\n  %199 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %198, i64* %199\n  ret i64 %192\n}\n\ndefine i64 @_Mapcar(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [0, %$2], [%125, %$15] ; # L\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # L\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # L\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # L\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # L\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (let Y (cons (evList E) $Nil) (setq L ...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # L\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (let Y (cons (evList E) $Nil) (setq L (if L (set 2 L Y) (se...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%287, %$27] ; # Exe\n  %154 = phi i64 [%148, %$17], [%288, %$27] ; # X\n  %155 = phi i64 [%149, %$17], [%289, %$27] ; # R\n  %156 = phi i64 [%150, %$17], [%290, %$27] ; # L\n  %157 = phi i64 [%151, %$17], [%291, %$27] ; # E\n  %158 = phi i64 [%152, %$17], [%292, %$27] ; # A\n; # (let Y (cons (evList E) $Nil) (setq L (if L (set 2 L Y) (setq R (...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (cons (evList E) $Nil)\n  %160 = call i64 @cons(i64 %159, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if L (set 2 L Y) (setq R (safe Y)))\n  %161 = icmp ne i64 %156, 0\n  br i1 %161, label %$20, label %$21\n$20:\n  %162 = phi i64 [%153, %$19] ; # Exe\n  %163 = phi i64 [%154, %$19] ; # X\n  %164 = phi i64 [%155, %$19] ; # R\n  %165 = phi i64 [%156, %$19] ; # L\n  %166 = phi i64 [%157, %$19] ; # E\n  %167 = phi i64 [%158, %$19] ; # A\n  %168 = phi i64 [%160, %$19] ; # Y\n; # (set 2 L Y)\n  %169 = inttoptr i64 %165 to i64*\n  %170 = getelementptr i64, i64* %169, i32 1\n  store i64 %168, i64* %170\n  br label %$22\n$21:\n  %171 = phi i64 [%153, %$19] ; # Exe\n  %172 = phi i64 [%154, %$19] ; # X\n  %173 = phi i64 [%155, %$19] ; # R\n  %174 = phi i64 [%156, %$19] ; # L\n  %175 = phi i64 [%157, %$19] ; # E\n  %176 = phi i64 [%158, %$19] ; # A\n  %177 = phi i64 [%160, %$19] ; # Y\n; # (safe Y)\n  %178 = inttoptr i64 %7 to i64*\n  store i64 %177, i64* %178\n  br label %$22\n$22:\n  %179 = phi i64 [%162, %$20], [%171, %$21] ; # Exe\n  %180 = phi i64 [%163, %$20], [%172, %$21] ; # X\n  %181 = phi i64 [%164, %$20], [%177, %$21] ; # R\n  %182 = phi i64 [%165, %$20], [%174, %$21] ; # L\n  %183 = phi i64 [%166, %$20], [%175, %$21] ; # E\n  %184 = phi i64 [%167, %$20], [%176, %$21] ; # A\n  %185 = phi i64 [%168, %$20], [%177, %$21] ; # Y\n  %186 = phi i64 [%168, %$20], [%177, %$21] ; # ->\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %187 = inttoptr i64 %184 to i64*\n  %188 = load i64, i64* %187\n  %189 = inttoptr i64 %188 to i64*\n  %190 = getelementptr i64, i64* %189, i32 1\n  %191 = load i64, i64* %190\n  %192 = inttoptr i64 %184 to i64*\n  store i64 %191, i64* %192\n; # (atom (set A (cdar A)))\n  %193 = and i64 %191, 15\n  %194 = icmp ne i64 %193, 0\n  br i1 %194, label %$24, label %$23\n$23:\n  %195 = phi i64 [%179, %$22] ; # Exe\n  %196 = phi i64 [%180, %$22] ; # X\n  %197 = phi i64 [%181, %$22] ; # R\n  %198 = phi i64 [%186, %$22] ; # L\n  %199 = phi i64 [%183, %$22] ; # E\n  %200 = phi i64 [%184, %$22] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %201 = inttoptr i64 %199 to i64*\n  %202 = getelementptr i64, i64* %201, i32 1\n  %203 = load i64, i64* %202\n; # (set 4 P (car @))\n; # (car @)\n  %204 = inttoptr i64 %191 to i64*\n  %205 = load i64, i64* %204\n  %206 = inttoptr i64 %203 to i64*\n  %207 = getelementptr i64, i64* %206, i32 3\n  store i64 %205, i64* %207\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$25\n$25:\n  %208 = phi i64 [%195, %$23], [%276, %$28] ; # Exe\n  %209 = phi i64 [%196, %$23], [%277, %$28] ; # X\n  %210 = phi i64 [%197, %$23], [%278, %$28] ; # R\n  %211 = phi i64 [%198, %$23], [%279, %$28] ; # L\n  %212 = phi i64 [%199, %$23], [%280, %$28] ; # E\n  %213 = phi i64 [%200, %$23], [%281, %$28] ; # A\n  %214 = phi i64 [%203, %$23], [%282, %$28] ; # P\n  %215 = phi i64 [%200, %$23], [%283, %$28] ; # Q\n; # (shift P)\n  %216 = inttoptr i64 %214 to i64*\n  %217 = getelementptr i64, i64* %216, i32 1\n  %218 = load i64, i64* %217\n; # (pair (shift P))\n  %219 = and i64 %218, 15\n  %220 = icmp eq i64 %219, 0\n  br i1 %220, label %$26, label %$27\n$26:\n  %221 = phi i64 [%208, %$25] ; # Exe\n  %222 = phi i64 [%209, %$25] ; # X\n  %223 = phi i64 [%210, %$25] ; # R\n  %224 = phi i64 [%211, %$25] ; # L\n  %225 = phi i64 [%212, %$25] ; # E\n  %226 = phi i64 [%213, %$25] ; # A\n  %227 = phi i64 [%218, %$25] ; # P\n  %228 = phi i64 [%215, %$25] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %229 = inttoptr i64 %228 to i64*\n  %230 = getelementptr i64, i64* %229, i32 1\n  %231 = load i64, i64* %230\n; # (car (shift Q))\n  %232 = inttoptr i64 %231 to i64*\n  %233 = load i64, i64* %232\n; # (atom (car (shift Q)))\n  %234 = and i64 %233, 15\n  %235 = icmp ne i64 %234, 0\n  br i1 %235, label %$30, label %$29\n$30:\n  %236 = phi i64 [%221, %$26] ; # Exe\n  %237 = phi i64 [%222, %$26] ; # X\n  %238 = phi i64 [%223, %$26] ; # R\n  %239 = phi i64 [%224, %$26] ; # L\n  %240 = phi i64 [%225, %$26] ; # E\n  %241 = phi i64 [%226, %$26] ; # A\n  %242 = phi i64 [%227, %$26] ; # P\n  %243 = phi i64 [%231, %$26] ; # Q\n  br label %$28\n$29:\n  %244 = phi i64 [%221, %$26] ; # Exe\n  %245 = phi i64 [%222, %$26] ; # X\n  %246 = phi i64 [%223, %$26] ; # R\n  %247 = phi i64 [%224, %$26] ; # L\n  %248 = phi i64 [%225, %$26] ; # E\n  %249 = phi i64 [%226, %$26] ; # A\n  %250 = phi i64 [%227, %$26] ; # P\n  %251 = phi i64 [%231, %$26] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %252 = inttoptr i64 %233 to i64*\n  %253 = getelementptr i64, i64* %252, i32 1\n  %254 = load i64, i64* %253\n  %255 = inttoptr i64 %251 to i64*\n  store i64 %254, i64* %255\n; # (atom (set Q (cdr @)))\n  %256 = and i64 %254, 15\n  %257 = icmp ne i64 %256, 0\n  br i1 %257, label %$32, label %$31\n$32:\n  %258 = phi i64 [%244, %$29] ; # Exe\n  %259 = phi i64 [%245, %$29] ; # X\n  %260 = phi i64 [%246, %$29] ; # R\n  %261 = phi i64 [%247, %$29] ; # L\n  %262 = phi i64 [%248, %$29] ; # E\n  %263 = phi i64 [%249, %$29] ; # A\n  %264 = phi i64 [%250, %$29] ; # P\n  %265 = phi i64 [%251, %$29] ; # Q\n  br label %$28\n$31:\n  %266 = phi i64 [%244, %$29] ; # Exe\n  %267 = phi i64 [%245, %$29] ; # X\n  %268 = phi i64 [%246, %$29] ; # R\n  %269 = phi i64 [%247, %$29] ; # L\n  %270 = phi i64 [%248, %$29] ; # E\n  %271 = phi i64 [%249, %$29] ; # A\n  %272 = phi i64 [%250, %$29] ; # P\n  %273 = phi i64 [%251, %$29] ; # Q\n; # (car @)\n  %274 = inttoptr i64 %254 to i64*\n  %275 = load i64, i64* %274\n  br label %$28\n$28:\n  %276 = phi i64 [%236, %$30], [%258, %$32], [%266, %$31] ; # Exe\n  %277 = phi i64 [%237, %$30], [%259, %$32], [%267, %$31] ; # X\n  %278 = phi i64 [%238, %$30], [%260, %$32], [%268, %$31] ; # R\n  %279 = phi i64 [%239, %$30], [%261, %$32], [%269, %$31] ; # L\n  %280 = phi i64 [%240, %$30], [%262, %$32], [%270, %$31] ; # E\n  %281 = phi i64 [%241, %$30], [%263, %$32], [%271, %$31] ; # A\n  %282 = phi i64 [%242, %$30], [%264, %$32], [%272, %$31] ; # P\n  %283 = phi i64 [%243, %$30], [%265, %$32], [%273, %$31] ; # Q\n  %284 = phi i64 [%233, %$30], [%254, %$32], [%275, %$31] ; # ->\n  %285 = inttoptr i64 %227 to i64*\n  %286 = getelementptr i64, i64* %285, i32 3\n  store i64 %284, i64* %286\n  br label %$25\n$27:\n  %287 = phi i64 [%208, %$25] ; # Exe\n  %288 = phi i64 [%209, %$25] ; # X\n  %289 = phi i64 [%210, %$25] ; # R\n  %290 = phi i64 [%211, %$25] ; # L\n  %291 = phi i64 [%212, %$25] ; # E\n  %292 = phi i64 [%213, %$25] ; # A\n  %293 = phi i64 [%218, %$25] ; # P\n  %294 = phi i64 [%215, %$25] ; # Q\n  br label %$19\n$24:\n  %295 = phi i64 [%179, %$22] ; # Exe\n  %296 = phi i64 [%180, %$22] ; # X\n  %297 = phi i64 [%181, %$22] ; # R\n  %298 = phi i64 [%186, %$22] ; # L\n  %299 = phi i64 [%183, %$22] ; # E\n  %300 = phi i64 [%184, %$22] ; # A\n  %301 = phi i64 [0, %$22] ; # ->\n  br label %$18\n$18:\n  %302 = phi i64 [%134, %$16], [%295, %$24] ; # Exe\n  %303 = phi i64 [%135, %$16], [%296, %$24] ; # X\n  %304 = phi i64 [%136, %$16], [%297, %$24] ; # R\n  %305 = phi i64 [%137, %$16], [%298, %$24] ; # L\n  %306 = phi i64 [%138, %$16], [%299, %$24] ; # E\n  %307 = phi i64 [%139, %$16], [%300, %$24] ; # A\n; # (drop *Safe)\n  %308 = inttoptr i64 %7 to i64*\n  %309 = getelementptr i64, i64* %308, i32 1\n  %310 = load i64, i64* %309\n  %311 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %310, i64* %311\n  ret i64 %304\n}\n\ndefine i64 @_Mapcon(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (car X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = load i64, i64* %12\n; # (eval (car X))\n  %14 = and i64 %13, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$4, label %$3\n$4:\n  %16 = phi i64 [%13, %$1] ; # X\n  br label %$2\n$3:\n  %17 = phi i64 [%13, %$1] ; # X\n  %18 = and i64 %17, 8\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$6, label %$5\n$6:\n  %20 = phi i64 [%17, %$3] ; # X\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n  br label %$2\n$5:\n  %23 = phi i64 [%17, %$3] ; # X\n  %24 = call i64 @evList(i64 %23)\n  br label %$2\n$2:\n  %25 = phi i64 [%16, %$4], [%20, %$6], [%23, %$5] ; # X\n  %26 = phi i64 [%16, %$4], [%22, %$6], [%24, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %27 = alloca i64, i64 5, align 16\n  %28 = ptrtoint i64* %27 to i64\n  %29 = add i64 %28, 8\n  %30 = inttoptr i64 %29 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %30\n  %31 = add i64 %28, 16\n  %32 = inttoptr i64 %31 to i64*\n  store i64 2, i64* %32\n  %33 = add i64 %28, 24\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %26, i64* %34\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %35 = add i64 %28, 24\n; # (link (ofs E 3))\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %37 = load i64, i64* %36\n  %38 = inttoptr i64 %35 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  store i64 %37, i64* %39\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %35, i64* %40\n  %41 = inttoptr i64 %28 to i64*\n  store i64 %35, i64* %41\n; # (let P E (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ...\n; # (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ZERO (eva...\n  br label %$7\n$7:\n  %42 = phi i64 [%0, %$2], [%53, %$10] ; # Exe\n  %43 = phi i64 [%3, %$2], [%54, %$10] ; # X\n  %44 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%55, %$10] ; # R\n  %45 = phi i64 [0, %$2], [%56, %$10] ; # L\n  %46 = phi i64 [%28, %$2], [%57, %$10] ; # E\n  %47 = phi i64 [%28, %$2], [%75, %$10] ; # P\n; # (shift X)\n  %48 = inttoptr i64 %43 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n; # (pair (shift X))\n  %51 = and i64 %50, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$8, label %$9\n$8:\n  %53 = phi i64 [%42, %$7] ; # Exe\n  %54 = phi i64 [%50, %$7] ; # X\n  %55 = phi i64 [%44, %$7] ; # R\n  %56 = phi i64 [%45, %$7] ; # L\n  %57 = phi i64 [%46, %$7] ; # E\n  %58 = phi i64 [%47, %$7] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %59 = inttoptr i64 %54 to i64*\n  %60 = load i64, i64* %59\n; # (eval (car X))\n  %61 = and i64 %60, 6\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$12, label %$11\n$12:\n  %63 = phi i64 [%60, %$8] ; # X\n  br label %$10\n$11:\n  %64 = phi i64 [%60, %$8] ; # X\n  %65 = and i64 %64, 8\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$14, label %$13\n$14:\n  %67 = phi i64 [%64, %$11] ; # X\n  %68 = inttoptr i64 %67 to i64*\n  %69 = load i64, i64* %68\n  br label %$10\n$13:\n  %70 = phi i64 [%64, %$11] ; # X\n  %71 = call i64 @evList(i64 %70)\n  br label %$10\n$10:\n  %72 = phi i64 [%63, %$12], [%67, %$14], [%70, %$13] ; # X\n  %73 = phi i64 [%63, %$12], [%69, %$14], [%71, %$13] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %74 = alloca i64, i64 5, align 16\n  %75 = ptrtoint i64* %74 to i64\n  %76 = add i64 %75, 8\n  %77 = inttoptr i64 %76 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %77\n  %78 = add i64 %75, 16\n  %79 = inttoptr i64 %78 to i64*\n  store i64 2, i64* %79\n  %80 = add i64 %75, 24\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %73, i64* %81\n  %82 = inttoptr i64 %58 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  store i64 %75, i64* %83\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %84 = add i64 %75, 24\n; # (link (ofs P 3))\n  %85 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 %84 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  store i64 %86, i64* %88\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %84, i64* %89\n  %90 = inttoptr i64 %75 to i64*\n  store i64 %84, i64* %90\n  br label %$7\n$9:\n  %91 = phi i64 [%42, %$7] ; # Exe\n  %92 = phi i64 [%50, %$7] ; # X\n  %93 = phi i64 [%44, %$7] ; # R\n  %94 = phi i64 [%45, %$7] ; # L\n  %95 = phi i64 [%46, %$7] ; # E\n  %96 = phi i64 [%47, %$7] ; # P\n; # (loop (let P (val 2 E) (? (atom (val 4 P))) (let Y (evList E) (wh...\n  br label %$15\n$15:\n  %97 = phi i64 [%91, %$9], [%227, %$30] ; # Exe\n  %98 = phi i64 [%92, %$9], [%228, %$30] ; # X\n  %99 = phi i64 [%93, %$9], [%229, %$30] ; # R\n  %100 = phi i64 [%94, %$9], [%230, %$30] ; # L\n  %101 = phi i64 [%95, %$9], [%231, %$30] ; # E\n; # (let P (val 2 E) (? (atom (val 4 P))) (let Y (evList E) (when (pa...\n; # (val 2 E)\n  %102 = inttoptr i64 %101 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n; # (? (atom (val 4 P)))\n; # (val 4 P)\n  %105 = inttoptr i64 %104 to i64*\n  %106 = getelementptr i64, i64* %105, i32 3\n  %107 = load i64, i64* %106\n; # (atom (val 4 P))\n  %108 = and i64 %107, 15\n  %109 = icmp ne i64 %108, 0\n  br i1 %109, label %$17, label %$16\n$16:\n  %110 = phi i64 [%97, %$15] ; # Exe\n  %111 = phi i64 [%98, %$15] ; # X\n  %112 = phi i64 [%99, %$15] ; # R\n  %113 = phi i64 [%100, %$15] ; # L\n  %114 = phi i64 [%101, %$15] ; # E\n  %115 = phi i64 [%104, %$15] ; # P\n; # (let Y (evList E) (when (pair Y) (setq L (if L (let Z L (while (p...\n; # (evList E)\n  %116 = call i64 @evList(i64 %114)\n; # (when (pair Y) (setq L (if L (let Z L (while (pair (cdr Z)) (setq...\n; # (pair Y)\n  %117 = and i64 %116, 15\n  %118 = icmp eq i64 %117, 0\n  br i1 %118, label %$18, label %$19\n$18:\n  %119 = phi i64 [%110, %$16] ; # Exe\n  %120 = phi i64 [%111, %$16] ; # X\n  %121 = phi i64 [%112, %$16] ; # R\n  %122 = phi i64 [%113, %$16] ; # L\n  %123 = phi i64 [%114, %$16] ; # E\n  %124 = phi i64 [%115, %$16] ; # P\n  %125 = phi i64 [%116, %$16] ; # Y\n; # (if L (let Z L (while (pair (cdr Z)) (setq Z @)) (set 2 Z Y)) (se...\n  %126 = icmp ne i64 %122, 0\n  br i1 %126, label %$20, label %$21\n$20:\n  %127 = phi i64 [%119, %$18] ; # Exe\n  %128 = phi i64 [%120, %$18] ; # X\n  %129 = phi i64 [%121, %$18] ; # R\n  %130 = phi i64 [%122, %$18] ; # L\n  %131 = phi i64 [%123, %$18] ; # E\n  %132 = phi i64 [%124, %$18] ; # P\n  %133 = phi i64 [%125, %$18] ; # Y\n; # (let Z L (while (pair (cdr Z)) (setq Z @)) (set 2 Z Y))\n; # (while (pair (cdr Z)) (setq Z @))\n  br label %$23\n$23:\n  %134 = phi i64 [%127, %$20], [%147, %$24] ; # Exe\n  %135 = phi i64 [%128, %$20], [%148, %$24] ; # X\n  %136 = phi i64 [%129, %$20], [%149, %$24] ; # R\n  %137 = phi i64 [%130, %$20], [%150, %$24] ; # L\n  %138 = phi i64 [%131, %$20], [%151, %$24] ; # E\n  %139 = phi i64 [%132, %$20], [%152, %$24] ; # P\n  %140 = phi i64 [%133, %$20], [%153, %$24] ; # Y\n  %141 = phi i64 [%130, %$20], [%144, %$24] ; # Z\n; # (cdr Z)\n  %142 = inttoptr i64 %141 to i64*\n  %143 = getelementptr i64, i64* %142, i32 1\n  %144 = load i64, i64* %143\n; # (pair (cdr Z))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$24, label %$25\n$24:\n  %147 = phi i64 [%134, %$23] ; # Exe\n  %148 = phi i64 [%135, %$23] ; # X\n  %149 = phi i64 [%136, %$23] ; # R\n  %150 = phi i64 [%137, %$23] ; # L\n  %151 = phi i64 [%138, %$23] ; # E\n  %152 = phi i64 [%139, %$23] ; # P\n  %153 = phi i64 [%140, %$23] ; # Y\n  %154 = phi i64 [%141, %$23] ; # Z\n  br label %$23\n$25:\n  %155 = phi i64 [%134, %$23] ; # Exe\n  %156 = phi i64 [%135, %$23] ; # X\n  %157 = phi i64 [%136, %$23] ; # R\n  %158 = phi i64 [%137, %$23] ; # L\n  %159 = phi i64 [%138, %$23] ; # E\n  %160 = phi i64 [%139, %$23] ; # P\n  %161 = phi i64 [%140, %$23] ; # Y\n  %162 = phi i64 [%141, %$23] ; # Z\n; # (set 2 Z Y)\n  %163 = inttoptr i64 %162 to i64*\n  %164 = getelementptr i64, i64* %163, i32 1\n  store i64 %161, i64* %164\n  br label %$22\n$21:\n  %165 = phi i64 [%119, %$18] ; # Exe\n  %166 = phi i64 [%120, %$18] ; # X\n  %167 = phi i64 [%121, %$18] ; # R\n  %168 = phi i64 [%122, %$18] ; # L\n  %169 = phi i64 [%123, %$18] ; # E\n  %170 = phi i64 [%124, %$18] ; # P\n  %171 = phi i64 [%125, %$18] ; # Y\n; # (safe Y)\n  %172 = inttoptr i64 %7 to i64*\n  store i64 %171, i64* %172\n  br label %$22\n$22:\n  %173 = phi i64 [%155, %$25], [%165, %$21] ; # Exe\n  %174 = phi i64 [%156, %$25], [%166, %$21] ; # X\n  %175 = phi i64 [%157, %$25], [%171, %$21] ; # R\n  %176 = phi i64 [%158, %$25], [%168, %$21] ; # L\n  %177 = phi i64 [%159, %$25], [%169, %$21] ; # E\n  %178 = phi i64 [%160, %$25], [%170, %$21] ; # P\n  %179 = phi i64 [%161, %$25], [%171, %$21] ; # Y\n  %180 = phi i64 [%161, %$25], [%171, %$21] ; # ->\n  br label %$19\n$19:\n  %181 = phi i64 [%110, %$16], [%173, %$22] ; # Exe\n  %182 = phi i64 [%111, %$16], [%174, %$22] ; # X\n  %183 = phi i64 [%112, %$16], [%175, %$22] ; # R\n  %184 = phi i64 [%113, %$16], [%180, %$22] ; # L\n  %185 = phi i64 [%114, %$16], [%177, %$22] ; # E\n  %186 = phi i64 [%115, %$16], [%178, %$22] ; # P\n  %187 = phi i64 [%116, %$16], [%179, %$22] ; # Y\n; # (loop (when (pair (val 4 P)) (set 4 P (cdr @))) (? (atom (shift P...\n  br label %$26\n$26:\n  %188 = phi i64 [%181, %$19], [%221, %$29] ; # Exe\n  %189 = phi i64 [%182, %$19], [%222, %$29] ; # X\n  %190 = phi i64 [%183, %$19], [%223, %$29] ; # R\n  %191 = phi i64 [%184, %$19], [%224, %$29] ; # L\n  %192 = phi i64 [%185, %$19], [%225, %$29] ; # E\n  %193 = phi i64 [%186, %$19], [%226, %$29] ; # P\n; # (when (pair (val 4 P)) (set 4 P (cdr @)))\n; # (val 4 P)\n  %194 = inttoptr i64 %193 to i64*\n  %195 = getelementptr i64, i64* %194, i32 3\n  %196 = load i64, i64* %195\n; # (pair (val 4 P))\n  %197 = and i64 %196, 15\n  %198 = icmp eq i64 %197, 0\n  br i1 %198, label %$27, label %$28\n$27:\n  %199 = phi i64 [%188, %$26] ; # Exe\n  %200 = phi i64 [%189, %$26] ; # X\n  %201 = phi i64 [%190, %$26] ; # R\n  %202 = phi i64 [%191, %$26] ; # L\n  %203 = phi i64 [%192, %$26] ; # E\n  %204 = phi i64 [%193, %$26] ; # P\n; # (set 4 P (cdr @))\n; # (cdr @)\n  %205 = inttoptr i64 %196 to i64*\n  %206 = getelementptr i64, i64* %205, i32 1\n  %207 = load i64, i64* %206\n  %208 = inttoptr i64 %204 to i64*\n  %209 = getelementptr i64, i64* %208, i32 3\n  store i64 %207, i64* %209\n  br label %$28\n$28:\n  %210 = phi i64 [%188, %$26], [%199, %$27] ; # Exe\n  %211 = phi i64 [%189, %$26], [%200, %$27] ; # X\n  %212 = phi i64 [%190, %$26], [%201, %$27] ; # R\n  %213 = phi i64 [%191, %$26], [%202, %$27] ; # L\n  %214 = phi i64 [%192, %$26], [%203, %$27] ; # E\n  %215 = phi i64 [%193, %$26], [%204, %$27] ; # P\n; # (? (atom (shift P)))\n; # (shift P)\n  %216 = inttoptr i64 %215 to i64*\n  %217 = getelementptr i64, i64* %216, i32 1\n  %218 = load i64, i64* %217\n; # (atom (shift P))\n  %219 = and i64 %218, 15\n  %220 = icmp ne i64 %219, 0\n  br i1 %220, label %$30, label %$29\n$29:\n  %221 = phi i64 [%210, %$28] ; # Exe\n  %222 = phi i64 [%211, %$28] ; # X\n  %223 = phi i64 [%212, %$28] ; # R\n  %224 = phi i64 [%213, %$28] ; # L\n  %225 = phi i64 [%214, %$28] ; # E\n  %226 = phi i64 [%218, %$28] ; # P\n  br label %$26\n$30:\n  %227 = phi i64 [%210, %$28] ; # Exe\n  %228 = phi i64 [%211, %$28] ; # X\n  %229 = phi i64 [%212, %$28] ; # R\n  %230 = phi i64 [%213, %$28] ; # L\n  %231 = phi i64 [%214, %$28] ; # E\n  %232 = phi i64 [%218, %$28] ; # P\n  %233 = phi i64 [0, %$28] ; # ->\n  br label %$15\n$17:\n  %234 = phi i64 [%97, %$15] ; # Exe\n  %235 = phi i64 [%98, %$15] ; # X\n  %236 = phi i64 [%99, %$15] ; # R\n  %237 = phi i64 [%100, %$15] ; # L\n  %238 = phi i64 [%101, %$15] ; # E\n  %239 = phi i64 [0, %$15] ; # ->\n; # (drop *Safe)\n  %240 = inttoptr i64 %7 to i64*\n  %241 = getelementptr i64, i64* %240, i32 1\n  %242 = load i64, i64* %241\n  %243 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %242, i64* %243\n  ret i64 %236\n}\n\ndefine i64 @_Mapcan(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [0, %$2], [%125, %$15] ; # L\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # L\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # L\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # L\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # L\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (let Y (evList E) (when (pair Y) (setq...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # L\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (let Y (evList E) (when (pair Y) (setq L (if L (let Z L (wh...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%331, %$32] ; # Exe\n  %154 = phi i64 [%148, %$17], [%332, %$32] ; # X\n  %155 = phi i64 [%149, %$17], [%333, %$32] ; # R\n  %156 = phi i64 [%150, %$17], [%334, %$32] ; # L\n  %157 = phi i64 [%151, %$17], [%335, %$32] ; # E\n  %158 = phi i64 [%152, %$17], [%336, %$32] ; # A\n; # (let Y (evList E) (when (pair Y) (setq L (if L (let Z L (while (p...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (when (pair Y) (setq L (if L (let Z L (while (pair (cdr Z)) (setq...\n; # (pair Y)\n  %160 = and i64 %159, 15\n  %161 = icmp eq i64 %160, 0\n  br i1 %161, label %$20, label %$21\n$20:\n  %162 = phi i64 [%153, %$19] ; # Exe\n  %163 = phi i64 [%154, %$19] ; # X\n  %164 = phi i64 [%155, %$19] ; # R\n  %165 = phi i64 [%156, %$19] ; # L\n  %166 = phi i64 [%157, %$19] ; # E\n  %167 = phi i64 [%158, %$19] ; # A\n  %168 = phi i64 [%159, %$19] ; # Y\n; # (if L (let Z L (while (pair (cdr Z)) (setq Z @)) (set 2 Z Y)) (se...\n  %169 = icmp ne i64 %165, 0\n  br i1 %169, label %$22, label %$23\n$22:\n  %170 = phi i64 [%162, %$20] ; # Exe\n  %171 = phi i64 [%163, %$20] ; # X\n  %172 = phi i64 [%164, %$20] ; # R\n  %173 = phi i64 [%165, %$20] ; # L\n  %174 = phi i64 [%166, %$20] ; # E\n  %175 = phi i64 [%167, %$20] ; # A\n  %176 = phi i64 [%168, %$20] ; # Y\n; # (let Z L (while (pair (cdr Z)) (setq Z @)) (set 2 Z Y))\n; # (while (pair (cdr Z)) (setq Z @))\n  br label %$25\n$25:\n  %177 = phi i64 [%170, %$22], [%190, %$26] ; # Exe\n  %178 = phi i64 [%171, %$22], [%191, %$26] ; # X\n  %179 = phi i64 [%172, %$22], [%192, %$26] ; # R\n  %180 = phi i64 [%173, %$22], [%193, %$26] ; # L\n  %181 = phi i64 [%174, %$22], [%194, %$26] ; # E\n  %182 = phi i64 [%175, %$22], [%195, %$26] ; # A\n  %183 = phi i64 [%176, %$22], [%196, %$26] ; # Y\n  %184 = phi i64 [%173, %$22], [%187, %$26] ; # Z\n; # (cdr Z)\n  %185 = inttoptr i64 %184 to i64*\n  %186 = getelementptr i64, i64* %185, i32 1\n  %187 = load i64, i64* %186\n; # (pair (cdr Z))\n  %188 = and i64 %187, 15\n  %189 = icmp eq i64 %188, 0\n  br i1 %189, label %$26, label %$27\n$26:\n  %190 = phi i64 [%177, %$25] ; # Exe\n  %191 = phi i64 [%178, %$25] ; # X\n  %192 = phi i64 [%179, %$25] ; # R\n  %193 = phi i64 [%180, %$25] ; # L\n  %194 = phi i64 [%181, %$25] ; # E\n  %195 = phi i64 [%182, %$25] ; # A\n  %196 = phi i64 [%183, %$25] ; # Y\n  %197 = phi i64 [%184, %$25] ; # Z\n  br label %$25\n$27:\n  %198 = phi i64 [%177, %$25] ; # Exe\n  %199 = phi i64 [%178, %$25] ; # X\n  %200 = phi i64 [%179, %$25] ; # R\n  %201 = phi i64 [%180, %$25] ; # L\n  %202 = phi i64 [%181, %$25] ; # E\n  %203 = phi i64 [%182, %$25] ; # A\n  %204 = phi i64 [%183, %$25] ; # Y\n  %205 = phi i64 [%184, %$25] ; # Z\n; # (set 2 Z Y)\n  %206 = inttoptr i64 %205 to i64*\n  %207 = getelementptr i64, i64* %206, i32 1\n  store i64 %204, i64* %207\n  br label %$24\n$23:\n  %208 = phi i64 [%162, %$20] ; # Exe\n  %209 = phi i64 [%163, %$20] ; # X\n  %210 = phi i64 [%164, %$20] ; # R\n  %211 = phi i64 [%165, %$20] ; # L\n  %212 = phi i64 [%166, %$20] ; # E\n  %213 = phi i64 [%167, %$20] ; # A\n  %214 = phi i64 [%168, %$20] ; # Y\n; # (safe Y)\n  %215 = inttoptr i64 %7 to i64*\n  store i64 %214, i64* %215\n  br label %$24\n$24:\n  %216 = phi i64 [%198, %$27], [%208, %$23] ; # Exe\n  %217 = phi i64 [%199, %$27], [%209, %$23] ; # X\n  %218 = phi i64 [%200, %$27], [%214, %$23] ; # R\n  %219 = phi i64 [%201, %$27], [%211, %$23] ; # L\n  %220 = phi i64 [%202, %$27], [%212, %$23] ; # E\n  %221 = phi i64 [%203, %$27], [%213, %$23] ; # A\n  %222 = phi i64 [%204, %$27], [%214, %$23] ; # Y\n  %223 = phi i64 [%204, %$27], [%214, %$23] ; # ->\n  br label %$21\n$21:\n  %224 = phi i64 [%153, %$19], [%216, %$24] ; # Exe\n  %225 = phi i64 [%154, %$19], [%217, %$24] ; # X\n  %226 = phi i64 [%155, %$19], [%218, %$24] ; # R\n  %227 = phi i64 [%156, %$19], [%223, %$24] ; # L\n  %228 = phi i64 [%157, %$19], [%220, %$24] ; # E\n  %229 = phi i64 [%158, %$19], [%221, %$24] ; # A\n  %230 = phi i64 [%159, %$19], [%222, %$24] ; # Y\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %231 = inttoptr i64 %229 to i64*\n  %232 = load i64, i64* %231\n  %233 = inttoptr i64 %232 to i64*\n  %234 = getelementptr i64, i64* %233, i32 1\n  %235 = load i64, i64* %234\n  %236 = inttoptr i64 %229 to i64*\n  store i64 %235, i64* %236\n; # (atom (set A (cdar A)))\n  %237 = and i64 %235, 15\n  %238 = icmp ne i64 %237, 0\n  br i1 %238, label %$29, label %$28\n$28:\n  %239 = phi i64 [%224, %$21] ; # Exe\n  %240 = phi i64 [%225, %$21] ; # X\n  %241 = phi i64 [%226, %$21] ; # R\n  %242 = phi i64 [%227, %$21] ; # L\n  %243 = phi i64 [%228, %$21] ; # E\n  %244 = phi i64 [%229, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %245 = inttoptr i64 %243 to i64*\n  %246 = getelementptr i64, i64* %245, i32 1\n  %247 = load i64, i64* %246\n; # (set 4 P (car @))\n; # (car @)\n  %248 = inttoptr i64 %235 to i64*\n  %249 = load i64, i64* %248\n  %250 = inttoptr i64 %247 to i64*\n  %251 = getelementptr i64, i64* %250, i32 3\n  store i64 %249, i64* %251\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$30\n$30:\n  %252 = phi i64 [%239, %$28], [%320, %$33] ; # Exe\n  %253 = phi i64 [%240, %$28], [%321, %$33] ; # X\n  %254 = phi i64 [%241, %$28], [%322, %$33] ; # R\n  %255 = phi i64 [%242, %$28], [%323, %$33] ; # L\n  %256 = phi i64 [%243, %$28], [%324, %$33] ; # E\n  %257 = phi i64 [%244, %$28], [%325, %$33] ; # A\n  %258 = phi i64 [%247, %$28], [%326, %$33] ; # P\n  %259 = phi i64 [%244, %$28], [%327, %$33] ; # Q\n; # (shift P)\n  %260 = inttoptr i64 %258 to i64*\n  %261 = getelementptr i64, i64* %260, i32 1\n  %262 = load i64, i64* %261\n; # (pair (shift P))\n  %263 = and i64 %262, 15\n  %264 = icmp eq i64 %263, 0\n  br i1 %264, label %$31, label %$32\n$31:\n  %265 = phi i64 [%252, %$30] ; # Exe\n  %266 = phi i64 [%253, %$30] ; # X\n  %267 = phi i64 [%254, %$30] ; # R\n  %268 = phi i64 [%255, %$30] ; # L\n  %269 = phi i64 [%256, %$30] ; # E\n  %270 = phi i64 [%257, %$30] ; # A\n  %271 = phi i64 [%262, %$30] ; # P\n  %272 = phi i64 [%259, %$30] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %273 = inttoptr i64 %272 to i64*\n  %274 = getelementptr i64, i64* %273, i32 1\n  %275 = load i64, i64* %274\n; # (car (shift Q))\n  %276 = inttoptr i64 %275 to i64*\n  %277 = load i64, i64* %276\n; # (atom (car (shift Q)))\n  %278 = and i64 %277, 15\n  %279 = icmp ne i64 %278, 0\n  br i1 %279, label %$35, label %$34\n$35:\n  %280 = phi i64 [%265, %$31] ; # Exe\n  %281 = phi i64 [%266, %$31] ; # X\n  %282 = phi i64 [%267, %$31] ; # R\n  %283 = phi i64 [%268, %$31] ; # L\n  %284 = phi i64 [%269, %$31] ; # E\n  %285 = phi i64 [%270, %$31] ; # A\n  %286 = phi i64 [%271, %$31] ; # P\n  %287 = phi i64 [%275, %$31] ; # Q\n  br label %$33\n$34:\n  %288 = phi i64 [%265, %$31] ; # Exe\n  %289 = phi i64 [%266, %$31] ; # X\n  %290 = phi i64 [%267, %$31] ; # R\n  %291 = phi i64 [%268, %$31] ; # L\n  %292 = phi i64 [%269, %$31] ; # E\n  %293 = phi i64 [%270, %$31] ; # A\n  %294 = phi i64 [%271, %$31] ; # P\n  %295 = phi i64 [%275, %$31] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %296 = inttoptr i64 %277 to i64*\n  %297 = getelementptr i64, i64* %296, i32 1\n  %298 = load i64, i64* %297\n  %299 = inttoptr i64 %295 to i64*\n  store i64 %298, i64* %299\n; # (atom (set Q (cdr @)))\n  %300 = and i64 %298, 15\n  %301 = icmp ne i64 %300, 0\n  br i1 %301, label %$37, label %$36\n$37:\n  %302 = phi i64 [%288, %$34] ; # Exe\n  %303 = phi i64 [%289, %$34] ; # X\n  %304 = phi i64 [%290, %$34] ; # R\n  %305 = phi i64 [%291, %$34] ; # L\n  %306 = phi i64 [%292, %$34] ; # E\n  %307 = phi i64 [%293, %$34] ; # A\n  %308 = phi i64 [%294, %$34] ; # P\n  %309 = phi i64 [%295, %$34] ; # Q\n  br label %$33\n$36:\n  %310 = phi i64 [%288, %$34] ; # Exe\n  %311 = phi i64 [%289, %$34] ; # X\n  %312 = phi i64 [%290, %$34] ; # R\n  %313 = phi i64 [%291, %$34] ; # L\n  %314 = phi i64 [%292, %$34] ; # E\n  %315 = phi i64 [%293, %$34] ; # A\n  %316 = phi i64 [%294, %$34] ; # P\n  %317 = phi i64 [%295, %$34] ; # Q\n; # (car @)\n  %318 = inttoptr i64 %298 to i64*\n  %319 = load i64, i64* %318\n  br label %$33\n$33:\n  %320 = phi i64 [%280, %$35], [%302, %$37], [%310, %$36] ; # Exe\n  %321 = phi i64 [%281, %$35], [%303, %$37], [%311, %$36] ; # X\n  %322 = phi i64 [%282, %$35], [%304, %$37], [%312, %$36] ; # R\n  %323 = phi i64 [%283, %$35], [%305, %$37], [%313, %$36] ; # L\n  %324 = phi i64 [%284, %$35], [%306, %$37], [%314, %$36] ; # E\n  %325 = phi i64 [%285, %$35], [%307, %$37], [%315, %$36] ; # A\n  %326 = phi i64 [%286, %$35], [%308, %$37], [%316, %$36] ; # P\n  %327 = phi i64 [%287, %$35], [%309, %$37], [%317, %$36] ; # Q\n  %328 = phi i64 [%277, %$35], [%298, %$37], [%319, %$36] ; # ->\n  %329 = inttoptr i64 %271 to i64*\n  %330 = getelementptr i64, i64* %329, i32 3\n  store i64 %328, i64* %330\n  br label %$30\n$32:\n  %331 = phi i64 [%252, %$30] ; # Exe\n  %332 = phi i64 [%253, %$30] ; # X\n  %333 = phi i64 [%254, %$30] ; # R\n  %334 = phi i64 [%255, %$30] ; # L\n  %335 = phi i64 [%256, %$30] ; # E\n  %336 = phi i64 [%257, %$30] ; # A\n  %337 = phi i64 [%262, %$30] ; # P\n  %338 = phi i64 [%259, %$30] ; # Q\n  br label %$19\n$29:\n  %339 = phi i64 [%224, %$21] ; # Exe\n  %340 = phi i64 [%225, %$21] ; # X\n  %341 = phi i64 [%226, %$21] ; # R\n  %342 = phi i64 [%227, %$21] ; # L\n  %343 = phi i64 [%228, %$21] ; # E\n  %344 = phi i64 [%229, %$21] ; # A\n  %345 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %346 = phi i64 [%134, %$16], [%339, %$29] ; # Exe\n  %347 = phi i64 [%135, %$16], [%340, %$29] ; # X\n  %348 = phi i64 [%136, %$16], [%341, %$29] ; # R\n  %349 = phi i64 [%137, %$16], [%342, %$29] ; # L\n  %350 = phi i64 [%138, %$16], [%343, %$29] ; # E\n  %351 = phi i64 [%139, %$16], [%344, %$29] ; # A\n; # (drop *Safe)\n  %352 = inttoptr i64 %7 to i64*\n  %353 = getelementptr i64, i64* %352, i32 1\n  %354 = load i64, i64* %353\n  %355 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %354, i64* %355\n  ret i64 %348\n}\n\ndefine i64 @_Filter(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [0, %$2], [%125, %$15] ; # L\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # L\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # L\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # L\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # L\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (unless (nil? (evList E)) (let Y (cons...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # L\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (unless (nil? (evList E)) (let Y (cons (caar A) $Nil) (setq...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%304, %$29] ; # Exe\n  %154 = phi i64 [%148, %$17], [%305, %$29] ; # X\n  %155 = phi i64 [%149, %$17], [%306, %$29] ; # R\n  %156 = phi i64 [%150, %$17], [%307, %$29] ; # L\n  %157 = phi i64 [%151, %$17], [%308, %$29] ; # E\n  %158 = phi i64 [%152, %$17], [%309, %$29] ; # A\n; # (unless (nil? (evList E)) (let Y (cons (caar A) $Nil) (setq L (if...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (nil? (evList E))\n  %160 = icmp eq i64 %159, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %160, label %$21, label %$20\n$20:\n  %161 = phi i64 [%153, %$19] ; # Exe\n  %162 = phi i64 [%154, %$19] ; # X\n  %163 = phi i64 [%155, %$19] ; # R\n  %164 = phi i64 [%156, %$19] ; # L\n  %165 = phi i64 [%157, %$19] ; # E\n  %166 = phi i64 [%158, %$19] ; # A\n; # (let Y (cons (caar A) $Nil) (setq L (if L (set 2 L Y) (setq R (sa...\n; # (caar A)\n  %167 = inttoptr i64 %166 to i64*\n  %168 = load i64, i64* %167\n  %169 = inttoptr i64 %168 to i64*\n  %170 = load i64, i64* %169\n; # (cons (caar A) $Nil)\n  %171 = call i64 @cons(i64 %170, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if L (set 2 L Y) (setq R (safe Y)))\n  %172 = icmp ne i64 %164, 0\n  br i1 %172, label %$22, label %$23\n$22:\n  %173 = phi i64 [%161, %$20] ; # Exe\n  %174 = phi i64 [%162, %$20] ; # X\n  %175 = phi i64 [%163, %$20] ; # R\n  %176 = phi i64 [%164, %$20] ; # L\n  %177 = phi i64 [%165, %$20] ; # E\n  %178 = phi i64 [%166, %$20] ; # A\n  %179 = phi i64 [%171, %$20] ; # Y\n; # (set 2 L Y)\n  %180 = inttoptr i64 %176 to i64*\n  %181 = getelementptr i64, i64* %180, i32 1\n  store i64 %179, i64* %181\n  br label %$24\n$23:\n  %182 = phi i64 [%161, %$20] ; # Exe\n  %183 = phi i64 [%162, %$20] ; # X\n  %184 = phi i64 [%163, %$20] ; # R\n  %185 = phi i64 [%164, %$20] ; # L\n  %186 = phi i64 [%165, %$20] ; # E\n  %187 = phi i64 [%166, %$20] ; # A\n  %188 = phi i64 [%171, %$20] ; # Y\n; # (safe Y)\n  %189 = inttoptr i64 %7 to i64*\n  store i64 %188, i64* %189\n  br label %$24\n$24:\n  %190 = phi i64 [%173, %$22], [%182, %$23] ; # Exe\n  %191 = phi i64 [%174, %$22], [%183, %$23] ; # X\n  %192 = phi i64 [%175, %$22], [%188, %$23] ; # R\n  %193 = phi i64 [%176, %$22], [%185, %$23] ; # L\n  %194 = phi i64 [%177, %$22], [%186, %$23] ; # E\n  %195 = phi i64 [%178, %$22], [%187, %$23] ; # A\n  %196 = phi i64 [%179, %$22], [%188, %$23] ; # Y\n  %197 = phi i64 [%179, %$22], [%188, %$23] ; # ->\n  br label %$21\n$21:\n  %198 = phi i64 [%153, %$19], [%190, %$24] ; # Exe\n  %199 = phi i64 [%154, %$19], [%191, %$24] ; # X\n  %200 = phi i64 [%155, %$19], [%192, %$24] ; # R\n  %201 = phi i64 [%156, %$19], [%197, %$24] ; # L\n  %202 = phi i64 [%157, %$19], [%194, %$24] ; # E\n  %203 = phi i64 [%158, %$19], [%195, %$24] ; # A\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %204 = inttoptr i64 %203 to i64*\n  %205 = load i64, i64* %204\n  %206 = inttoptr i64 %205 to i64*\n  %207 = getelementptr i64, i64* %206, i32 1\n  %208 = load i64, i64* %207\n  %209 = inttoptr i64 %203 to i64*\n  store i64 %208, i64* %209\n; # (atom (set A (cdar A)))\n  %210 = and i64 %208, 15\n  %211 = icmp ne i64 %210, 0\n  br i1 %211, label %$26, label %$25\n$25:\n  %212 = phi i64 [%198, %$21] ; # Exe\n  %213 = phi i64 [%199, %$21] ; # X\n  %214 = phi i64 [%200, %$21] ; # R\n  %215 = phi i64 [%201, %$21] ; # L\n  %216 = phi i64 [%202, %$21] ; # E\n  %217 = phi i64 [%203, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %218 = inttoptr i64 %216 to i64*\n  %219 = getelementptr i64, i64* %218, i32 1\n  %220 = load i64, i64* %219\n; # (set 4 P (car @))\n; # (car @)\n  %221 = inttoptr i64 %208 to i64*\n  %222 = load i64, i64* %221\n  %223 = inttoptr i64 %220 to i64*\n  %224 = getelementptr i64, i64* %223, i32 3\n  store i64 %222, i64* %224\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$27\n$27:\n  %225 = phi i64 [%212, %$25], [%293, %$30] ; # Exe\n  %226 = phi i64 [%213, %$25], [%294, %$30] ; # X\n  %227 = phi i64 [%214, %$25], [%295, %$30] ; # R\n  %228 = phi i64 [%215, %$25], [%296, %$30] ; # L\n  %229 = phi i64 [%216, %$25], [%297, %$30] ; # E\n  %230 = phi i64 [%217, %$25], [%298, %$30] ; # A\n  %231 = phi i64 [%220, %$25], [%299, %$30] ; # P\n  %232 = phi i64 [%217, %$25], [%300, %$30] ; # Q\n; # (shift P)\n  %233 = inttoptr i64 %231 to i64*\n  %234 = getelementptr i64, i64* %233, i32 1\n  %235 = load i64, i64* %234\n; # (pair (shift P))\n  %236 = and i64 %235, 15\n  %237 = icmp eq i64 %236, 0\n  br i1 %237, label %$28, label %$29\n$28:\n  %238 = phi i64 [%225, %$27] ; # Exe\n  %239 = phi i64 [%226, %$27] ; # X\n  %240 = phi i64 [%227, %$27] ; # R\n  %241 = phi i64 [%228, %$27] ; # L\n  %242 = phi i64 [%229, %$27] ; # E\n  %243 = phi i64 [%230, %$27] ; # A\n  %244 = phi i64 [%235, %$27] ; # P\n  %245 = phi i64 [%232, %$27] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %246 = inttoptr i64 %245 to i64*\n  %247 = getelementptr i64, i64* %246, i32 1\n  %248 = load i64, i64* %247\n; # (car (shift Q))\n  %249 = inttoptr i64 %248 to i64*\n  %250 = load i64, i64* %249\n; # (atom (car (shift Q)))\n  %251 = and i64 %250, 15\n  %252 = icmp ne i64 %251, 0\n  br i1 %252, label %$32, label %$31\n$32:\n  %253 = phi i64 [%238, %$28] ; # Exe\n  %254 = phi i64 [%239, %$28] ; # X\n  %255 = phi i64 [%240, %$28] ; # R\n  %256 = phi i64 [%241, %$28] ; # L\n  %257 = phi i64 [%242, %$28] ; # E\n  %258 = phi i64 [%243, %$28] ; # A\n  %259 = phi i64 [%244, %$28] ; # P\n  %260 = phi i64 [%248, %$28] ; # Q\n  br label %$30\n$31:\n  %261 = phi i64 [%238, %$28] ; # Exe\n  %262 = phi i64 [%239, %$28] ; # X\n  %263 = phi i64 [%240, %$28] ; # R\n  %264 = phi i64 [%241, %$28] ; # L\n  %265 = phi i64 [%242, %$28] ; # E\n  %266 = phi i64 [%243, %$28] ; # A\n  %267 = phi i64 [%244, %$28] ; # P\n  %268 = phi i64 [%248, %$28] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %269 = inttoptr i64 %250 to i64*\n  %270 = getelementptr i64, i64* %269, i32 1\n  %271 = load i64, i64* %270\n  %272 = inttoptr i64 %268 to i64*\n  store i64 %271, i64* %272\n; # (atom (set Q (cdr @)))\n  %273 = and i64 %271, 15\n  %274 = icmp ne i64 %273, 0\n  br i1 %274, label %$34, label %$33\n$34:\n  %275 = phi i64 [%261, %$31] ; # Exe\n  %276 = phi i64 [%262, %$31] ; # X\n  %277 = phi i64 [%263, %$31] ; # R\n  %278 = phi i64 [%264, %$31] ; # L\n  %279 = phi i64 [%265, %$31] ; # E\n  %280 = phi i64 [%266, %$31] ; # A\n  %281 = phi i64 [%267, %$31] ; # P\n  %282 = phi i64 [%268, %$31] ; # Q\n  br label %$30\n$33:\n  %283 = phi i64 [%261, %$31] ; # Exe\n  %284 = phi i64 [%262, %$31] ; # X\n  %285 = phi i64 [%263, %$31] ; # R\n  %286 = phi i64 [%264, %$31] ; # L\n  %287 = phi i64 [%265, %$31] ; # E\n  %288 = phi i64 [%266, %$31] ; # A\n  %289 = phi i64 [%267, %$31] ; # P\n  %290 = phi i64 [%268, %$31] ; # Q\n; # (car @)\n  %291 = inttoptr i64 %271 to i64*\n  %292 = load i64, i64* %291\n  br label %$30\n$30:\n  %293 = phi i64 [%253, %$32], [%275, %$34], [%283, %$33] ; # Exe\n  %294 = phi i64 [%254, %$32], [%276, %$34], [%284, %$33] ; # X\n  %295 = phi i64 [%255, %$32], [%277, %$34], [%285, %$33] ; # R\n  %296 = phi i64 [%256, %$32], [%278, %$34], [%286, %$33] ; # L\n  %297 = phi i64 [%257, %$32], [%279, %$34], [%287, %$33] ; # E\n  %298 = phi i64 [%258, %$32], [%280, %$34], [%288, %$33] ; # A\n  %299 = phi i64 [%259, %$32], [%281, %$34], [%289, %$33] ; # P\n  %300 = phi i64 [%260, %$32], [%282, %$34], [%290, %$33] ; # Q\n  %301 = phi i64 [%250, %$32], [%271, %$34], [%292, %$33] ; # ->\n  %302 = inttoptr i64 %244 to i64*\n  %303 = getelementptr i64, i64* %302, i32 3\n  store i64 %301, i64* %303\n  br label %$27\n$29:\n  %304 = phi i64 [%225, %$27] ; # Exe\n  %305 = phi i64 [%226, %$27] ; # X\n  %306 = phi i64 [%227, %$27] ; # R\n  %307 = phi i64 [%228, %$27] ; # L\n  %308 = phi i64 [%229, %$27] ; # E\n  %309 = phi i64 [%230, %$27] ; # A\n  %310 = phi i64 [%235, %$27] ; # P\n  %311 = phi i64 [%232, %$27] ; # Q\n  br label %$19\n$26:\n  %312 = phi i64 [%198, %$21] ; # Exe\n  %313 = phi i64 [%199, %$21] ; # X\n  %314 = phi i64 [%200, %$21] ; # R\n  %315 = phi i64 [%201, %$21] ; # L\n  %316 = phi i64 [%202, %$21] ; # E\n  %317 = phi i64 [%203, %$21] ; # A\n  %318 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %319 = phi i64 [%134, %$16], [%312, %$26] ; # Exe\n  %320 = phi i64 [%135, %$16], [%313, %$26] ; # X\n  %321 = phi i64 [%136, %$16], [%314, %$26] ; # R\n  %322 = phi i64 [%137, %$16], [%315, %$26] ; # L\n  %323 = phi i64 [%138, %$16], [%316, %$26] ; # E\n  %324 = phi i64 [%139, %$16], [%317, %$26] ; # A\n; # (drop *Safe)\n  %325 = inttoptr i64 %7 to i64*\n  %326 = getelementptr i64, i64* %325, i32 1\n  %327 = load i64, i64* %326\n  %328 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %327, i64* %328\n  ret i64 %321\n}\n\ndefine i64 @_Extract(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [0, %$2], [%125, %$15] ; # L\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # L\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # L\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # L\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # L\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (unless (nil? (evList E)) (let Y (cons...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # L\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (unless (nil? (evList E)) (let Y (cons @ $Nil) (setq L (if ...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%300, %$29] ; # Exe\n  %154 = phi i64 [%148, %$17], [%301, %$29] ; # X\n  %155 = phi i64 [%149, %$17], [%302, %$29] ; # R\n  %156 = phi i64 [%150, %$17], [%303, %$29] ; # L\n  %157 = phi i64 [%151, %$17], [%304, %$29] ; # E\n  %158 = phi i64 [%152, %$17], [%305, %$29] ; # A\n; # (unless (nil? (evList E)) (let Y (cons @ $Nil) (setq L (if L (set...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (nil? (evList E))\n  %160 = icmp eq i64 %159, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %160, label %$21, label %$20\n$20:\n  %161 = phi i64 [%153, %$19] ; # Exe\n  %162 = phi i64 [%154, %$19] ; # X\n  %163 = phi i64 [%155, %$19] ; # R\n  %164 = phi i64 [%156, %$19] ; # L\n  %165 = phi i64 [%157, %$19] ; # E\n  %166 = phi i64 [%158, %$19] ; # A\n; # (let Y (cons @ $Nil) (setq L (if L (set 2 L Y) (setq R (safe Y)))...\n; # (cons @ $Nil)\n  %167 = call i64 @cons(i64 %159, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if L (set 2 L Y) (setq R (safe Y)))\n  %168 = icmp ne i64 %164, 0\n  br i1 %168, label %$22, label %$23\n$22:\n  %169 = phi i64 [%161, %$20] ; # Exe\n  %170 = phi i64 [%162, %$20] ; # X\n  %171 = phi i64 [%163, %$20] ; # R\n  %172 = phi i64 [%164, %$20] ; # L\n  %173 = phi i64 [%165, %$20] ; # E\n  %174 = phi i64 [%166, %$20] ; # A\n  %175 = phi i64 [%167, %$20] ; # Y\n; # (set 2 L Y)\n  %176 = inttoptr i64 %172 to i64*\n  %177 = getelementptr i64, i64* %176, i32 1\n  store i64 %175, i64* %177\n  br label %$24\n$23:\n  %178 = phi i64 [%161, %$20] ; # Exe\n  %179 = phi i64 [%162, %$20] ; # X\n  %180 = phi i64 [%163, %$20] ; # R\n  %181 = phi i64 [%164, %$20] ; # L\n  %182 = phi i64 [%165, %$20] ; # E\n  %183 = phi i64 [%166, %$20] ; # A\n  %184 = phi i64 [%167, %$20] ; # Y\n; # (safe Y)\n  %185 = inttoptr i64 %7 to i64*\n  store i64 %184, i64* %185\n  br label %$24\n$24:\n  %186 = phi i64 [%169, %$22], [%178, %$23] ; # Exe\n  %187 = phi i64 [%170, %$22], [%179, %$23] ; # X\n  %188 = phi i64 [%171, %$22], [%184, %$23] ; # R\n  %189 = phi i64 [%172, %$22], [%181, %$23] ; # L\n  %190 = phi i64 [%173, %$22], [%182, %$23] ; # E\n  %191 = phi i64 [%174, %$22], [%183, %$23] ; # A\n  %192 = phi i64 [%175, %$22], [%184, %$23] ; # Y\n  %193 = phi i64 [%175, %$22], [%184, %$23] ; # ->\n  br label %$21\n$21:\n  %194 = phi i64 [%153, %$19], [%186, %$24] ; # Exe\n  %195 = phi i64 [%154, %$19], [%187, %$24] ; # X\n  %196 = phi i64 [%155, %$19], [%188, %$24] ; # R\n  %197 = phi i64 [%156, %$19], [%193, %$24] ; # L\n  %198 = phi i64 [%157, %$19], [%190, %$24] ; # E\n  %199 = phi i64 [%158, %$19], [%191, %$24] ; # A\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %200 = inttoptr i64 %199 to i64*\n  %201 = load i64, i64* %200\n  %202 = inttoptr i64 %201 to i64*\n  %203 = getelementptr i64, i64* %202, i32 1\n  %204 = load i64, i64* %203\n  %205 = inttoptr i64 %199 to i64*\n  store i64 %204, i64* %205\n; # (atom (set A (cdar A)))\n  %206 = and i64 %204, 15\n  %207 = icmp ne i64 %206, 0\n  br i1 %207, label %$26, label %$25\n$25:\n  %208 = phi i64 [%194, %$21] ; # Exe\n  %209 = phi i64 [%195, %$21] ; # X\n  %210 = phi i64 [%196, %$21] ; # R\n  %211 = phi i64 [%197, %$21] ; # L\n  %212 = phi i64 [%198, %$21] ; # E\n  %213 = phi i64 [%199, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %214 = inttoptr i64 %212 to i64*\n  %215 = getelementptr i64, i64* %214, i32 1\n  %216 = load i64, i64* %215\n; # (set 4 P (car @))\n; # (car @)\n  %217 = inttoptr i64 %204 to i64*\n  %218 = load i64, i64* %217\n  %219 = inttoptr i64 %216 to i64*\n  %220 = getelementptr i64, i64* %219, i32 3\n  store i64 %218, i64* %220\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$27\n$27:\n  %221 = phi i64 [%208, %$25], [%289, %$30] ; # Exe\n  %222 = phi i64 [%209, %$25], [%290, %$30] ; # X\n  %223 = phi i64 [%210, %$25], [%291, %$30] ; # R\n  %224 = phi i64 [%211, %$25], [%292, %$30] ; # L\n  %225 = phi i64 [%212, %$25], [%293, %$30] ; # E\n  %226 = phi i64 [%213, %$25], [%294, %$30] ; # A\n  %227 = phi i64 [%216, %$25], [%295, %$30] ; # P\n  %228 = phi i64 [%213, %$25], [%296, %$30] ; # Q\n; # (shift P)\n  %229 = inttoptr i64 %227 to i64*\n  %230 = getelementptr i64, i64* %229, i32 1\n  %231 = load i64, i64* %230\n; # (pair (shift P))\n  %232 = and i64 %231, 15\n  %233 = icmp eq i64 %232, 0\n  br i1 %233, label %$28, label %$29\n$28:\n  %234 = phi i64 [%221, %$27] ; # Exe\n  %235 = phi i64 [%222, %$27] ; # X\n  %236 = phi i64 [%223, %$27] ; # R\n  %237 = phi i64 [%224, %$27] ; # L\n  %238 = phi i64 [%225, %$27] ; # E\n  %239 = phi i64 [%226, %$27] ; # A\n  %240 = phi i64 [%231, %$27] ; # P\n  %241 = phi i64 [%228, %$27] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %242 = inttoptr i64 %241 to i64*\n  %243 = getelementptr i64, i64* %242, i32 1\n  %244 = load i64, i64* %243\n; # (car (shift Q))\n  %245 = inttoptr i64 %244 to i64*\n  %246 = load i64, i64* %245\n; # (atom (car (shift Q)))\n  %247 = and i64 %246, 15\n  %248 = icmp ne i64 %247, 0\n  br i1 %248, label %$32, label %$31\n$32:\n  %249 = phi i64 [%234, %$28] ; # Exe\n  %250 = phi i64 [%235, %$28] ; # X\n  %251 = phi i64 [%236, %$28] ; # R\n  %252 = phi i64 [%237, %$28] ; # L\n  %253 = phi i64 [%238, %$28] ; # E\n  %254 = phi i64 [%239, %$28] ; # A\n  %255 = phi i64 [%240, %$28] ; # P\n  %256 = phi i64 [%244, %$28] ; # Q\n  br label %$30\n$31:\n  %257 = phi i64 [%234, %$28] ; # Exe\n  %258 = phi i64 [%235, %$28] ; # X\n  %259 = phi i64 [%236, %$28] ; # R\n  %260 = phi i64 [%237, %$28] ; # L\n  %261 = phi i64 [%238, %$28] ; # E\n  %262 = phi i64 [%239, %$28] ; # A\n  %263 = phi i64 [%240, %$28] ; # P\n  %264 = phi i64 [%244, %$28] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %265 = inttoptr i64 %246 to i64*\n  %266 = getelementptr i64, i64* %265, i32 1\n  %267 = load i64, i64* %266\n  %268 = inttoptr i64 %264 to i64*\n  store i64 %267, i64* %268\n; # (atom (set Q (cdr @)))\n  %269 = and i64 %267, 15\n  %270 = icmp ne i64 %269, 0\n  br i1 %270, label %$34, label %$33\n$34:\n  %271 = phi i64 [%257, %$31] ; # Exe\n  %272 = phi i64 [%258, %$31] ; # X\n  %273 = phi i64 [%259, %$31] ; # R\n  %274 = phi i64 [%260, %$31] ; # L\n  %275 = phi i64 [%261, %$31] ; # E\n  %276 = phi i64 [%262, %$31] ; # A\n  %277 = phi i64 [%263, %$31] ; # P\n  %278 = phi i64 [%264, %$31] ; # Q\n  br label %$30\n$33:\n  %279 = phi i64 [%257, %$31] ; # Exe\n  %280 = phi i64 [%258, %$31] ; # X\n  %281 = phi i64 [%259, %$31] ; # R\n  %282 = phi i64 [%260, %$31] ; # L\n  %283 = phi i64 [%261, %$31] ; # E\n  %284 = phi i64 [%262, %$31] ; # A\n  %285 = phi i64 [%263, %$31] ; # P\n  %286 = phi i64 [%264, %$31] ; # Q\n; # (car @)\n  %287 = inttoptr i64 %267 to i64*\n  %288 = load i64, i64* %287\n  br label %$30\n$30:\n  %289 = phi i64 [%249, %$32], [%271, %$34], [%279, %$33] ; # Exe\n  %290 = phi i64 [%250, %$32], [%272, %$34], [%280, %$33] ; # X\n  %291 = phi i64 [%251, %$32], [%273, %$34], [%281, %$33] ; # R\n  %292 = phi i64 [%252, %$32], [%274, %$34], [%282, %$33] ; # L\n  %293 = phi i64 [%253, %$32], [%275, %$34], [%283, %$33] ; # E\n  %294 = phi i64 [%254, %$32], [%276, %$34], [%284, %$33] ; # A\n  %295 = phi i64 [%255, %$32], [%277, %$34], [%285, %$33] ; # P\n  %296 = phi i64 [%256, %$32], [%278, %$34], [%286, %$33] ; # Q\n  %297 = phi i64 [%246, %$32], [%267, %$34], [%288, %$33] ; # ->\n  %298 = inttoptr i64 %240 to i64*\n  %299 = getelementptr i64, i64* %298, i32 3\n  store i64 %297, i64* %299\n  br label %$27\n$29:\n  %300 = phi i64 [%221, %$27] ; # Exe\n  %301 = phi i64 [%222, %$27] ; # X\n  %302 = phi i64 [%223, %$27] ; # R\n  %303 = phi i64 [%224, %$27] ; # L\n  %304 = phi i64 [%225, %$27] ; # E\n  %305 = phi i64 [%226, %$27] ; # A\n  %306 = phi i64 [%231, %$27] ; # P\n  %307 = phi i64 [%228, %$27] ; # Q\n  br label %$19\n$26:\n  %308 = phi i64 [%194, %$21] ; # Exe\n  %309 = phi i64 [%195, %$21] ; # X\n  %310 = phi i64 [%196, %$21] ; # R\n  %311 = phi i64 [%197, %$21] ; # L\n  %312 = phi i64 [%198, %$21] ; # E\n  %313 = phi i64 [%199, %$21] ; # A\n  %314 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %315 = phi i64 [%134, %$16], [%308, %$26] ; # Exe\n  %316 = phi i64 [%135, %$16], [%309, %$26] ; # X\n  %317 = phi i64 [%136, %$16], [%310, %$26] ; # R\n  %318 = phi i64 [%137, %$16], [%311, %$26] ; # L\n  %319 = phi i64 [%138, %$16], [%312, %$26] ; # E\n  %320 = phi i64 [%139, %$16], [%313, %$26] ; # A\n; # (drop *Safe)\n  %321 = inttoptr i64 %7 to i64*\n  %322 = getelementptr i64, i64* %321, i32 1\n  %323 = load i64, i64* %322\n  %324 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %323, i64* %324\n  ret i64 %317\n}\n\ndefine i64 @_Seek(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (car X)) NIL)) (set...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %19 = alloca i64, i64 5, align 16\n  %20 = ptrtoint i64* %19 to i64\n  %21 = add i64 %20, 8\n  %22 = inttoptr i64 %21 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %22\n  %23 = add i64 %20, 16\n  %24 = inttoptr i64 %23 to i64*\n  store i64 2, i64* %24\n  %25 = add i64 %20, 24\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %18, i64* %26\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %27 = add i64 %20, 24\n; # (link (ofs E 3) T)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = inttoptr i64 %27 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  store i64 %29, i64* %31\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 %20 to i64*\n  store i64 %27, i64* %33\n; # (let P E (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ...\n; # (while (pair (shift X)) (setq P (set 2 P (push NIL $Nil ZERO (eva...\n  br label %$7\n$7:\n  %34 = phi i64 [%0, %$2], [%43, %$10] ; # Exe\n  %35 = phi i64 [%3, %$2], [%44, %$10] ; # X\n  %36 = phi i64 [%20, %$2], [%45, %$10] ; # E\n  %37 = phi i64 [%20, %$2], [%63, %$10] ; # P\n; # (shift X)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n; # (pair (shift X))\n  %41 = and i64 %40, 15\n  %42 = icmp eq i64 %41, 0\n  br i1 %42, label %$8, label %$9\n$8:\n  %43 = phi i64 [%34, %$7] ; # Exe\n  %44 = phi i64 [%40, %$7] ; # X\n  %45 = phi i64 [%36, %$7] ; # E\n  %46 = phi i64 [%37, %$7] ; # P\n; # (set 2 P (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %47 = inttoptr i64 %44 to i64*\n  %48 = load i64, i64* %47\n; # (eval (car X))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$12, label %$11\n$12:\n  %51 = phi i64 [%48, %$8] ; # X\n  br label %$10\n$11:\n  %52 = phi i64 [%48, %$8] ; # X\n  %53 = and i64 %52, 8\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$14, label %$13\n$14:\n  %55 = phi i64 [%52, %$11] ; # X\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n  br label %$10\n$13:\n  %58 = phi i64 [%52, %$11] ; # X\n  %59 = call i64 @evList(i64 %58)\n  br label %$10\n$10:\n  %60 = phi i64 [%51, %$12], [%55, %$14], [%58, %$13] ; # X\n  %61 = phi i64 [%51, %$12], [%57, %$14], [%59, %$13] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %62 = alloca i64, i64 5, align 16\n  %63 = ptrtoint i64* %62 to i64\n  %64 = add i64 %63, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %65\n  %66 = add i64 %63, 16\n  %67 = inttoptr i64 %66 to i64*\n  store i64 2, i64* %67\n  %68 = add i64 %63, 24\n  %69 = inttoptr i64 %68 to i64*\n  store i64 %61, i64* %69\n  %70 = inttoptr i64 %46 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  store i64 %63, i64* %71\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %72 = add i64 %63, 24\n; # (link (ofs P 3))\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %74 = load i64, i64* %73\n  %75 = inttoptr i64 %72 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  store i64 %74, i64* %76\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %77\n  %78 = inttoptr i64 %63 to i64*\n  store i64 %72, i64* %78\n  br label %$7\n$9:\n  %79 = phi i64 [%34, %$7] ; # Exe\n  %80 = phi i64 [%40, %$7] ; # X\n  %81 = phi i64 [%36, %$7] ; # E\n  %82 = phi i64 [%37, %$7] ; # P\n; # (loop (let P (val 2 E) (? (atom (val 4 P)) $Nil) (? (not (nil? (e...\n  br label %$15\n$15:\n  %83 = phi i64 [%79, %$9], [%148, %$25] ; # Exe\n  %84 = phi i64 [%80, %$9], [%149, %$25] ; # X\n  %85 = phi i64 [%81, %$9], [%150, %$25] ; # E\n; # (let P (val 2 E) (? (atom (val 4 P)) $Nil) (? (not (nil? (evList ...\n; # (val 2 E)\n  %86 = inttoptr i64 %85 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n; # (? (atom (val 4 P)) $Nil)\n; # (val 4 P)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = getelementptr i64, i64* %89, i32 3\n  %91 = load i64, i64* %90\n; # (atom (val 4 P))\n  %92 = and i64 %91, 15\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$18, label %$16\n$18:\n  %94 = phi i64 [%83, %$15] ; # Exe\n  %95 = phi i64 [%84, %$15] ; # X\n  %96 = phi i64 [%85, %$15] ; # E\n  %97 = phi i64 [%88, %$15] ; # P\n  br label %$17\n$16:\n  %98 = phi i64 [%83, %$15] ; # Exe\n  %99 = phi i64 [%84, %$15] ; # X\n  %100 = phi i64 [%85, %$15] ; # E\n  %101 = phi i64 [%88, %$15] ; # P\n; # (? (not (nil? (evList E))) (set $At2 @) (val 4 P))\n; # (evList E)\n  %102 = call i64 @evList(i64 %100)\n; # (nil? (evList E))\n  %103 = icmp eq i64 %102, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (evList E)))\n  %104 = icmp eq i1 %103, 0\n  br i1 %104, label %$20, label %$19\n$20:\n  %105 = phi i64 [%98, %$16] ; # Exe\n  %106 = phi i64 [%99, %$16] ; # X\n  %107 = phi i64 [%100, %$16] ; # E\n  %108 = phi i64 [%101, %$16] ; # P\n; # (set $At2 @)\n  %109 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %102, i64* %109\n; # (val 4 P)\n  %110 = inttoptr i64 %108 to i64*\n  %111 = getelementptr i64, i64* %110, i32 3\n  %112 = load i64, i64* %111\n  br label %$17\n$19:\n  %113 = phi i64 [%98, %$16] ; # Exe\n  %114 = phi i64 [%99, %$16] ; # X\n  %115 = phi i64 [%100, %$16] ; # E\n  %116 = phi i64 [%101, %$16] ; # P\n; # (loop (when (pair (val 4 P)) (set 4 P (cdr @))) (? (atom (shift P...\n  br label %$21\n$21:\n  %117 = phi i64 [%113, %$19], [%144, %$24] ; # Exe\n  %118 = phi i64 [%114, %$19], [%145, %$24] ; # X\n  %119 = phi i64 [%115, %$19], [%146, %$24] ; # E\n  %120 = phi i64 [%116, %$19], [%147, %$24] ; # P\n; # (when (pair (val 4 P)) (set 4 P (cdr @)))\n; # (val 4 P)\n  %121 = inttoptr i64 %120 to i64*\n  %122 = getelementptr i64, i64* %121, i32 3\n  %123 = load i64, i64* %122\n; # (pair (val 4 P))\n  %124 = and i64 %123, 15\n  %125 = icmp eq i64 %124, 0\n  br i1 %125, label %$22, label %$23\n$22:\n  %126 = phi i64 [%117, %$21] ; # Exe\n  %127 = phi i64 [%118, %$21] ; # X\n  %128 = phi i64 [%119, %$21] ; # E\n  %129 = phi i64 [%120, %$21] ; # P\n; # (set 4 P (cdr @))\n; # (cdr @)\n  %130 = inttoptr i64 %123 to i64*\n  %131 = getelementptr i64, i64* %130, i32 1\n  %132 = load i64, i64* %131\n  %133 = inttoptr i64 %129 to i64*\n  %134 = getelementptr i64, i64* %133, i32 3\n  store i64 %132, i64* %134\n  br label %$23\n$23:\n  %135 = phi i64 [%117, %$21], [%126, %$22] ; # Exe\n  %136 = phi i64 [%118, %$21], [%127, %$22] ; # X\n  %137 = phi i64 [%119, %$21], [%128, %$22] ; # E\n  %138 = phi i64 [%120, %$21], [%129, %$22] ; # P\n; # (? (atom (shift P)))\n; # (shift P)\n  %139 = inttoptr i64 %138 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  %141 = load i64, i64* %140\n; # (atom (shift P))\n  %142 = and i64 %141, 15\n  %143 = icmp ne i64 %142, 0\n  br i1 %143, label %$25, label %$24\n$24:\n  %144 = phi i64 [%135, %$23] ; # Exe\n  %145 = phi i64 [%136, %$23] ; # X\n  %146 = phi i64 [%137, %$23] ; # E\n  %147 = phi i64 [%141, %$23] ; # P\n  br label %$21\n$25:\n  %148 = phi i64 [%135, %$23] ; # Exe\n  %149 = phi i64 [%136, %$23] ; # X\n  %150 = phi i64 [%137, %$23] ; # E\n  %151 = phi i64 [%141, %$23] ; # P\n  %152 = phi i64 [0, %$23] ; # ->\n  br label %$15\n$17:\n  %153 = phi i64 [%94, %$18], [%105, %$20] ; # Exe\n  %154 = phi i64 [%95, %$18], [%106, %$20] ; # X\n  %155 = phi i64 [%96, %$18], [%107, %$20] ; # E\n  %156 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$18], [%112, %$20] ; # ->\n; # (drop *Safe)\n  %157 = inttoptr i64 %27 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n  %160 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %159, i64* %160\n  ret i64 %156\n}\n\ndefine i64 @_Find(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (++ X)) NIL) A (pus...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%108, %$15] ; # Exe\n  %39 = phi i64 [%6, %$2], [%109, %$15] ; # X\n  %40 = phi i64 [%22, %$2], [%110, %$15] ; # E\n  %41 = phi i64 [%30, %$2], [%111, %$15] ; # A\n  %42 = phi i64 [%22, %$2], [%112, %$15] ; # P\n  %43 = phi i64 [%30, %$2], [%115, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %44 = inttoptr i64 %39 to i64*\n  %45 = load i64, i64* %44\n; # (eval (car X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$10, label %$9\n$10:\n  %48 = phi i64 [%45, %$7] ; # X\n  br label %$8\n$9:\n  %49 = phi i64 [%45, %$7] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$12, label %$11\n$12:\n  %52 = phi i64 [%49, %$9] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$8\n$11:\n  %55 = phi i64 [%49, %$9] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$8\n$8:\n  %57 = phi i64 [%48, %$10], [%52, %$12], [%55, %$11] ; # X\n  %58 = phi i64 [%48, %$10], [%54, %$12], [%56, %$11] ; # ->\n; # (save (eval (car X)))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = alloca i64, i64 2, align 16\n  %62 = ptrtoint i64* %61 to i64\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %58, i64* %63\n  %64 = add i64 %62, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 %60, i64* %65\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %66\n  %67 = inttoptr i64 %43 to i64*\n  store i64 %58, i64* %67\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %68 = and i64 %58, 15\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$13, label %$14\n$13:\n  %70 = phi i64 [%38, %$8] ; # Exe\n  %71 = phi i64 [%39, %$8] ; # X\n  %72 = phi i64 [%40, %$8] ; # E\n  %73 = phi i64 [%41, %$8] ; # A\n  %74 = phi i64 [%42, %$8] ; # P\n  %75 = phi i64 [%43, %$8] ; # Q\n  %76 = phi i64 [%58, %$8] ; # V\n; # (car V)\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n  br label %$14\n$14:\n  %79 = phi i64 [%38, %$8], [%70, %$13] ; # Exe\n  %80 = phi i64 [%39, %$8], [%71, %$13] ; # X\n  %81 = phi i64 [%40, %$8], [%72, %$13] ; # E\n  %82 = phi i64 [%41, %$8], [%73, %$13] ; # A\n  %83 = phi i64 [%42, %$8], [%74, %$13] ; # P\n  %84 = phi i64 [%43, %$8], [%75, %$13] ; # Q\n  %85 = phi i64 [%58, %$8], [%78, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %86 = alloca i64, i64 5, align 16\n  %87 = ptrtoint i64* %86 to i64\n  %88 = add i64 %87, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %89\n  %90 = add i64 %87, 16\n  %91 = inttoptr i64 %90 to i64*\n  store i64 2, i64* %91\n  %92 = add i64 %87, 24\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %85, i64* %93\n  %94 = inttoptr i64 %83 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  store i64 %87, i64* %95\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %96 = add i64 %87, 24\n; # (link (ofs P 3))\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 %96 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  store i64 %98, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %96, i64* %101\n  %102 = inttoptr i64 %87 to i64*\n  store i64 %96, i64* %102\n; # (? (atom (shift X)))\n; # (shift X)\n  %103 = inttoptr i64 %80 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (atom (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$16, label %$15\n$15:\n  %108 = phi i64 [%79, %$14] ; # Exe\n  %109 = phi i64 [%105, %$14] ; # X\n  %110 = phi i64 [%81, %$14] ; # E\n  %111 = phi i64 [%82, %$14] ; # A\n  %112 = phi i64 [%87, %$14] ; # P\n  %113 = phi i64 [%84, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %114 = alloca i64, i64 2, align 16\n  %115 = ptrtoint i64* %114 to i64\n  %116 = inttoptr i64 %113 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  store i64 %115, i64* %117\n  br label %$7\n$16:\n  %118 = phi i64 [%79, %$14] ; # Exe\n  %119 = phi i64 [%105, %$14] ; # X\n  %120 = phi i64 [%81, %$14] ; # E\n  %121 = phi i64 [%82, %$14] ; # A\n  %122 = phi i64 [%87, %$14] ; # P\n  %123 = phi i64 [%84, %$14] ; # Q\n  %124 = phi i64 [0, %$14] ; # ->\n; # (if (atom (car A)) $Nil (loop (? (not (nil? (evList E))) (set $At...\n; # (car A)\n  %125 = inttoptr i64 %121 to i64*\n  %126 = load i64, i64* %125\n; # (atom (car A))\n  %127 = and i64 %126, 15\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$17, label %$18\n$17:\n  %129 = phi i64 [%118, %$16] ; # Exe\n  %130 = phi i64 [%119, %$16] ; # X\n  %131 = phi i64 [%120, %$16] ; # E\n  %132 = phi i64 [%121, %$16] ; # A\n  br label %$19\n$18:\n  %133 = phi i64 [%118, %$16] ; # Exe\n  %134 = phi i64 [%119, %$16] ; # X\n  %135 = phi i64 [%120, %$16] ; # E\n  %136 = phi i64 [%121, %$16] ; # A\n; # (loop (? (not (nil? (evList E))) (set $At2 @) (caar A)) (? (atom ...\n  br label %$20\n$20:\n  %137 = phi i64 [%133, %$18], [%245, %$28] ; # Exe\n  %138 = phi i64 [%134, %$18], [%246, %$28] ; # X\n  %139 = phi i64 [%135, %$18], [%247, %$28] ; # E\n  %140 = phi i64 [%136, %$18], [%248, %$28] ; # A\n; # (? (not (nil? (evList E))) (set $At2 @) (caar A))\n; # (evList E)\n  %141 = call i64 @evList(i64 %139)\n; # (nil? (evList E))\n  %142 = icmp eq i64 %141, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (evList E)))\n  %143 = icmp eq i1 %142, 0\n  br i1 %143, label %$23, label %$21\n$23:\n  %144 = phi i64 [%137, %$20] ; # Exe\n  %145 = phi i64 [%138, %$20] ; # X\n  %146 = phi i64 [%139, %$20] ; # E\n  %147 = phi i64 [%140, %$20] ; # A\n; # (set $At2 @)\n  %148 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %141, i64* %148\n; # (caar A)\n  %149 = inttoptr i64 %147 to i64*\n  %150 = load i64, i64* %149\n  %151 = inttoptr i64 %150 to i64*\n  %152 = load i64, i64* %151\n  br label %$22\n$21:\n  %153 = phi i64 [%137, %$20] ; # Exe\n  %154 = phi i64 [%138, %$20] ; # X\n  %155 = phi i64 [%139, %$20] ; # E\n  %156 = phi i64 [%140, %$20] ; # A\n; # (? (atom (set A (cdar A))) $Nil)\n; # (set A (cdar A))\n; # (cdar A)\n  %157 = inttoptr i64 %156 to i64*\n  %158 = load i64, i64* %157\n  %159 = inttoptr i64 %158 to i64*\n  %160 = getelementptr i64, i64* %159, i32 1\n  %161 = load i64, i64* %160\n  %162 = inttoptr i64 %156 to i64*\n  store i64 %161, i64* %162\n; # (atom (set A (cdar A)))\n  %163 = and i64 %161, 15\n  %164 = icmp ne i64 %163, 0\n  br i1 %164, label %$25, label %$24\n$25:\n  %165 = phi i64 [%153, %$21] ; # Exe\n  %166 = phi i64 [%154, %$21] ; # X\n  %167 = phi i64 [%155, %$21] ; # E\n  %168 = phi i64 [%156, %$21] ; # A\n  br label %$22\n$24:\n  %169 = phi i64 [%153, %$21] ; # Exe\n  %170 = phi i64 [%154, %$21] ; # X\n  %171 = phi i64 [%155, %$21] ; # E\n  %172 = phi i64 [%156, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %173 = inttoptr i64 %171 to i64*\n  %174 = getelementptr i64, i64* %173, i32 1\n  %175 = load i64, i64* %174\n; # (set 4 P (car @))\n; # (car @)\n  %176 = inttoptr i64 %161 to i64*\n  %177 = load i64, i64* %176\n  %178 = inttoptr i64 %175 to i64*\n  %179 = getelementptr i64, i64* %178, i32 3\n  store i64 %177, i64* %179\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$26\n$26:\n  %180 = phi i64 [%169, %$24], [%236, %$29] ; # Exe\n  %181 = phi i64 [%170, %$24], [%237, %$29] ; # X\n  %182 = phi i64 [%171, %$24], [%238, %$29] ; # E\n  %183 = phi i64 [%172, %$24], [%239, %$29] ; # A\n  %184 = phi i64 [%175, %$24], [%240, %$29] ; # P\n  %185 = phi i64 [%172, %$24], [%241, %$29] ; # Q\n; # (shift P)\n  %186 = inttoptr i64 %184 to i64*\n  %187 = getelementptr i64, i64* %186, i32 1\n  %188 = load i64, i64* %187\n; # (pair (shift P))\n  %189 = and i64 %188, 15\n  %190 = icmp eq i64 %189, 0\n  br i1 %190, label %$27, label %$28\n$27:\n  %191 = phi i64 [%180, %$26] ; # Exe\n  %192 = phi i64 [%181, %$26] ; # X\n  %193 = phi i64 [%182, %$26] ; # E\n  %194 = phi i64 [%183, %$26] ; # A\n  %195 = phi i64 [%188, %$26] ; # P\n  %196 = phi i64 [%185, %$26] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %197 = inttoptr i64 %196 to i64*\n  %198 = getelementptr i64, i64* %197, i32 1\n  %199 = load i64, i64* %198\n; # (car (shift Q))\n  %200 = inttoptr i64 %199 to i64*\n  %201 = load i64, i64* %200\n; # (atom (car (shift Q)))\n  %202 = and i64 %201, 15\n  %203 = icmp ne i64 %202, 0\n  br i1 %203, label %$31, label %$30\n$31:\n  %204 = phi i64 [%191, %$27] ; # Exe\n  %205 = phi i64 [%192, %$27] ; # X\n  %206 = phi i64 [%193, %$27] ; # E\n  %207 = phi i64 [%194, %$27] ; # A\n  %208 = phi i64 [%195, %$27] ; # P\n  %209 = phi i64 [%199, %$27] ; # Q\n  br label %$29\n$30:\n  %210 = phi i64 [%191, %$27] ; # Exe\n  %211 = phi i64 [%192, %$27] ; # X\n  %212 = phi i64 [%193, %$27] ; # E\n  %213 = phi i64 [%194, %$27] ; # A\n  %214 = phi i64 [%195, %$27] ; # P\n  %215 = phi i64 [%199, %$27] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %216 = inttoptr i64 %201 to i64*\n  %217 = getelementptr i64, i64* %216, i32 1\n  %218 = load i64, i64* %217\n  %219 = inttoptr i64 %215 to i64*\n  store i64 %218, i64* %219\n; # (atom (set Q (cdr @)))\n  %220 = and i64 %218, 15\n  %221 = icmp ne i64 %220, 0\n  br i1 %221, label %$33, label %$32\n$33:\n  %222 = phi i64 [%210, %$30] ; # Exe\n  %223 = phi i64 [%211, %$30] ; # X\n  %224 = phi i64 [%212, %$30] ; # E\n  %225 = phi i64 [%213, %$30] ; # A\n  %226 = phi i64 [%214, %$30] ; # P\n  %227 = phi i64 [%215, %$30] ; # Q\n  br label %$29\n$32:\n  %228 = phi i64 [%210, %$30] ; # Exe\n  %229 = phi i64 [%211, %$30] ; # X\n  %230 = phi i64 [%212, %$30] ; # E\n  %231 = phi i64 [%213, %$30] ; # A\n  %232 = phi i64 [%214, %$30] ; # P\n  %233 = phi i64 [%215, %$30] ; # Q\n; # (car @)\n  %234 = inttoptr i64 %218 to i64*\n  %235 = load i64, i64* %234\n  br label %$29\n$29:\n  %236 = phi i64 [%204, %$31], [%222, %$33], [%228, %$32] ; # Exe\n  %237 = phi i64 [%205, %$31], [%223, %$33], [%229, %$32] ; # X\n  %238 = phi i64 [%206, %$31], [%224, %$33], [%230, %$32] ; # E\n  %239 = phi i64 [%207, %$31], [%225, %$33], [%231, %$32] ; # A\n  %240 = phi i64 [%208, %$31], [%226, %$33], [%232, %$32] ; # P\n  %241 = phi i64 [%209, %$31], [%227, %$33], [%233, %$32] ; # Q\n  %242 = phi i64 [%201, %$31], [%218, %$33], [%235, %$32] ; # ->\n  %243 = inttoptr i64 %195 to i64*\n  %244 = getelementptr i64, i64* %243, i32 3\n  store i64 %242, i64* %244\n  br label %$26\n$28:\n  %245 = phi i64 [%180, %$26] ; # Exe\n  %246 = phi i64 [%181, %$26] ; # X\n  %247 = phi i64 [%182, %$26] ; # E\n  %248 = phi i64 [%183, %$26] ; # A\n  %249 = phi i64 [%188, %$26] ; # P\n  %250 = phi i64 [%185, %$26] ; # Q\n  br label %$20\n$22:\n  %251 = phi i64 [%144, %$23], [%165, %$25] ; # Exe\n  %252 = phi i64 [%145, %$23], [%166, %$25] ; # X\n  %253 = phi i64 [%146, %$23], [%167, %$25] ; # E\n  %254 = phi i64 [%147, %$23], [%168, %$25] ; # A\n  %255 = phi i64 [%152, %$23], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$25] ; # ->\n  br label %$19\n$19:\n  %256 = phi i64 [%129, %$17], [%251, %$22] ; # Exe\n  %257 = phi i64 [%130, %$17], [%252, %$22] ; # X\n  %258 = phi i64 [%131, %$17], [%253, %$22] ; # E\n  %259 = phi i64 [%132, %$17], [%254, %$22] ; # A\n  %260 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17], [%255, %$22] ; # ->\n; # (drop *Safe)\n  %261 = inttoptr i64 %31 to i64*\n  %262 = getelementptr i64, i64* %261, i32 1\n  %263 = load i64, i64* %262\n  %264 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %263, i64* %264\n  ret i64 %260\n}\n\ndefine i64 @_Pick(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (++ X)) NIL) A (pus...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%108, %$15] ; # Exe\n  %39 = phi i64 [%6, %$2], [%109, %$15] ; # X\n  %40 = phi i64 [%22, %$2], [%110, %$15] ; # E\n  %41 = phi i64 [%30, %$2], [%111, %$15] ; # A\n  %42 = phi i64 [%22, %$2], [%112, %$15] ; # P\n  %43 = phi i64 [%30, %$2], [%115, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %44 = inttoptr i64 %39 to i64*\n  %45 = load i64, i64* %44\n; # (eval (car X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$10, label %$9\n$10:\n  %48 = phi i64 [%45, %$7] ; # X\n  br label %$8\n$9:\n  %49 = phi i64 [%45, %$7] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$12, label %$11\n$12:\n  %52 = phi i64 [%49, %$9] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$8\n$11:\n  %55 = phi i64 [%49, %$9] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$8\n$8:\n  %57 = phi i64 [%48, %$10], [%52, %$12], [%55, %$11] ; # X\n  %58 = phi i64 [%48, %$10], [%54, %$12], [%56, %$11] ; # ->\n; # (save (eval (car X)))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = alloca i64, i64 2, align 16\n  %62 = ptrtoint i64* %61 to i64\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %58, i64* %63\n  %64 = add i64 %62, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 %60, i64* %65\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %66\n  %67 = inttoptr i64 %43 to i64*\n  store i64 %58, i64* %67\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %68 = and i64 %58, 15\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$13, label %$14\n$13:\n  %70 = phi i64 [%38, %$8] ; # Exe\n  %71 = phi i64 [%39, %$8] ; # X\n  %72 = phi i64 [%40, %$8] ; # E\n  %73 = phi i64 [%41, %$8] ; # A\n  %74 = phi i64 [%42, %$8] ; # P\n  %75 = phi i64 [%43, %$8] ; # Q\n  %76 = phi i64 [%58, %$8] ; # V\n; # (car V)\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n  br label %$14\n$14:\n  %79 = phi i64 [%38, %$8], [%70, %$13] ; # Exe\n  %80 = phi i64 [%39, %$8], [%71, %$13] ; # X\n  %81 = phi i64 [%40, %$8], [%72, %$13] ; # E\n  %82 = phi i64 [%41, %$8], [%73, %$13] ; # A\n  %83 = phi i64 [%42, %$8], [%74, %$13] ; # P\n  %84 = phi i64 [%43, %$8], [%75, %$13] ; # Q\n  %85 = phi i64 [%58, %$8], [%78, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %86 = alloca i64, i64 5, align 16\n  %87 = ptrtoint i64* %86 to i64\n  %88 = add i64 %87, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %89\n  %90 = add i64 %87, 16\n  %91 = inttoptr i64 %90 to i64*\n  store i64 2, i64* %91\n  %92 = add i64 %87, 24\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %85, i64* %93\n  %94 = inttoptr i64 %83 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  store i64 %87, i64* %95\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %96 = add i64 %87, 24\n; # (link (ofs P 3))\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 %96 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  store i64 %98, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %96, i64* %101\n  %102 = inttoptr i64 %87 to i64*\n  store i64 %96, i64* %102\n; # (? (atom (shift X)))\n; # (shift X)\n  %103 = inttoptr i64 %80 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (atom (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$16, label %$15\n$15:\n  %108 = phi i64 [%79, %$14] ; # Exe\n  %109 = phi i64 [%105, %$14] ; # X\n  %110 = phi i64 [%81, %$14] ; # E\n  %111 = phi i64 [%82, %$14] ; # A\n  %112 = phi i64 [%87, %$14] ; # P\n  %113 = phi i64 [%84, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %114 = alloca i64, i64 2, align 16\n  %115 = ptrtoint i64* %114 to i64\n  %116 = inttoptr i64 %113 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  store i64 %115, i64* %117\n  br label %$7\n$16:\n  %118 = phi i64 [%79, %$14] ; # Exe\n  %119 = phi i64 [%105, %$14] ; # X\n  %120 = phi i64 [%81, %$14] ; # E\n  %121 = phi i64 [%82, %$14] ; # A\n  %122 = phi i64 [%87, %$14] ; # P\n  %123 = phi i64 [%84, %$14] ; # Q\n  %124 = phi i64 [0, %$14] ; # ->\n; # (if (atom (car A)) $Nil (loop (? (not (nil? (evList E))) @) (? (a...\n; # (car A)\n  %125 = inttoptr i64 %121 to i64*\n  %126 = load i64, i64* %125\n; # (atom (car A))\n  %127 = and i64 %126, 15\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$17, label %$18\n$17:\n  %129 = phi i64 [%118, %$16] ; # Exe\n  %130 = phi i64 [%119, %$16] ; # X\n  %131 = phi i64 [%120, %$16] ; # E\n  %132 = phi i64 [%121, %$16] ; # A\n  br label %$19\n$18:\n  %133 = phi i64 [%118, %$16] ; # Exe\n  %134 = phi i64 [%119, %$16] ; # X\n  %135 = phi i64 [%120, %$16] ; # E\n  %136 = phi i64 [%121, %$16] ; # A\n; # (loop (? (not (nil? (evList E))) @) (? (atom (set A (cdar A))) $N...\n  br label %$20\n$20:\n  %137 = phi i64 [%133, %$18], [%240, %$28] ; # Exe\n  %138 = phi i64 [%134, %$18], [%241, %$28] ; # X\n  %139 = phi i64 [%135, %$18], [%242, %$28] ; # E\n  %140 = phi i64 [%136, %$18], [%243, %$28] ; # A\n; # (? (not (nil? (evList E))) @)\n; # (evList E)\n  %141 = call i64 @evList(i64 %139)\n; # (nil? (evList E))\n  %142 = icmp eq i64 %141, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (evList E)))\n  %143 = icmp eq i1 %142, 0\n  br i1 %143, label %$23, label %$21\n$23:\n  %144 = phi i64 [%137, %$20] ; # Exe\n  %145 = phi i64 [%138, %$20] ; # X\n  %146 = phi i64 [%139, %$20] ; # E\n  %147 = phi i64 [%140, %$20] ; # A\n  br label %$22\n$21:\n  %148 = phi i64 [%137, %$20] ; # Exe\n  %149 = phi i64 [%138, %$20] ; # X\n  %150 = phi i64 [%139, %$20] ; # E\n  %151 = phi i64 [%140, %$20] ; # A\n; # (? (atom (set A (cdar A))) $Nil)\n; # (set A (cdar A))\n; # (cdar A)\n  %152 = inttoptr i64 %151 to i64*\n  %153 = load i64, i64* %152\n  %154 = inttoptr i64 %153 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  %156 = load i64, i64* %155\n  %157 = inttoptr i64 %151 to i64*\n  store i64 %156, i64* %157\n; # (atom (set A (cdar A)))\n  %158 = and i64 %156, 15\n  %159 = icmp ne i64 %158, 0\n  br i1 %159, label %$25, label %$24\n$25:\n  %160 = phi i64 [%148, %$21] ; # Exe\n  %161 = phi i64 [%149, %$21] ; # X\n  %162 = phi i64 [%150, %$21] ; # E\n  %163 = phi i64 [%151, %$21] ; # A\n  br label %$22\n$24:\n  %164 = phi i64 [%148, %$21] ; # Exe\n  %165 = phi i64 [%149, %$21] ; # X\n  %166 = phi i64 [%150, %$21] ; # E\n  %167 = phi i64 [%151, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %168 = inttoptr i64 %166 to i64*\n  %169 = getelementptr i64, i64* %168, i32 1\n  %170 = load i64, i64* %169\n; # (set 4 P (car @))\n; # (car @)\n  %171 = inttoptr i64 %156 to i64*\n  %172 = load i64, i64* %171\n  %173 = inttoptr i64 %170 to i64*\n  %174 = getelementptr i64, i64* %173, i32 3\n  store i64 %172, i64* %174\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$26\n$26:\n  %175 = phi i64 [%164, %$24], [%231, %$29] ; # Exe\n  %176 = phi i64 [%165, %$24], [%232, %$29] ; # X\n  %177 = phi i64 [%166, %$24], [%233, %$29] ; # E\n  %178 = phi i64 [%167, %$24], [%234, %$29] ; # A\n  %179 = phi i64 [%170, %$24], [%235, %$29] ; # P\n  %180 = phi i64 [%167, %$24], [%236, %$29] ; # Q\n; # (shift P)\n  %181 = inttoptr i64 %179 to i64*\n  %182 = getelementptr i64, i64* %181, i32 1\n  %183 = load i64, i64* %182\n; # (pair (shift P))\n  %184 = and i64 %183, 15\n  %185 = icmp eq i64 %184, 0\n  br i1 %185, label %$27, label %$28\n$27:\n  %186 = phi i64 [%175, %$26] ; # Exe\n  %187 = phi i64 [%176, %$26] ; # X\n  %188 = phi i64 [%177, %$26] ; # E\n  %189 = phi i64 [%178, %$26] ; # A\n  %190 = phi i64 [%183, %$26] ; # P\n  %191 = phi i64 [%180, %$26] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %192 = inttoptr i64 %191 to i64*\n  %193 = getelementptr i64, i64* %192, i32 1\n  %194 = load i64, i64* %193\n; # (car (shift Q))\n  %195 = inttoptr i64 %194 to i64*\n  %196 = load i64, i64* %195\n; # (atom (car (shift Q)))\n  %197 = and i64 %196, 15\n  %198 = icmp ne i64 %197, 0\n  br i1 %198, label %$31, label %$30\n$31:\n  %199 = phi i64 [%186, %$27] ; # Exe\n  %200 = phi i64 [%187, %$27] ; # X\n  %201 = phi i64 [%188, %$27] ; # E\n  %202 = phi i64 [%189, %$27] ; # A\n  %203 = phi i64 [%190, %$27] ; # P\n  %204 = phi i64 [%194, %$27] ; # Q\n  br label %$29\n$30:\n  %205 = phi i64 [%186, %$27] ; # Exe\n  %206 = phi i64 [%187, %$27] ; # X\n  %207 = phi i64 [%188, %$27] ; # E\n  %208 = phi i64 [%189, %$27] ; # A\n  %209 = phi i64 [%190, %$27] ; # P\n  %210 = phi i64 [%194, %$27] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %211 = inttoptr i64 %196 to i64*\n  %212 = getelementptr i64, i64* %211, i32 1\n  %213 = load i64, i64* %212\n  %214 = inttoptr i64 %210 to i64*\n  store i64 %213, i64* %214\n; # (atom (set Q (cdr @)))\n  %215 = and i64 %213, 15\n  %216 = icmp ne i64 %215, 0\n  br i1 %216, label %$33, label %$32\n$33:\n  %217 = phi i64 [%205, %$30] ; # Exe\n  %218 = phi i64 [%206, %$30] ; # X\n  %219 = phi i64 [%207, %$30] ; # E\n  %220 = phi i64 [%208, %$30] ; # A\n  %221 = phi i64 [%209, %$30] ; # P\n  %222 = phi i64 [%210, %$30] ; # Q\n  br label %$29\n$32:\n  %223 = phi i64 [%205, %$30] ; # Exe\n  %224 = phi i64 [%206, %$30] ; # X\n  %225 = phi i64 [%207, %$30] ; # E\n  %226 = phi i64 [%208, %$30] ; # A\n  %227 = phi i64 [%209, %$30] ; # P\n  %228 = phi i64 [%210, %$30] ; # Q\n; # (car @)\n  %229 = inttoptr i64 %213 to i64*\n  %230 = load i64, i64* %229\n  br label %$29\n$29:\n  %231 = phi i64 [%199, %$31], [%217, %$33], [%223, %$32] ; # Exe\n  %232 = phi i64 [%200, %$31], [%218, %$33], [%224, %$32] ; # X\n  %233 = phi i64 [%201, %$31], [%219, %$33], [%225, %$32] ; # E\n  %234 = phi i64 [%202, %$31], [%220, %$33], [%226, %$32] ; # A\n  %235 = phi i64 [%203, %$31], [%221, %$33], [%227, %$32] ; # P\n  %236 = phi i64 [%204, %$31], [%222, %$33], [%228, %$32] ; # Q\n  %237 = phi i64 [%196, %$31], [%213, %$33], [%230, %$32] ; # ->\n  %238 = inttoptr i64 %190 to i64*\n  %239 = getelementptr i64, i64* %238, i32 3\n  store i64 %237, i64* %239\n  br label %$26\n$28:\n  %240 = phi i64 [%175, %$26] ; # Exe\n  %241 = phi i64 [%176, %$26] ; # X\n  %242 = phi i64 [%177, %$26] ; # E\n  %243 = phi i64 [%178, %$26] ; # A\n  %244 = phi i64 [%183, %$26] ; # P\n  %245 = phi i64 [%180, %$26] ; # Q\n  br label %$20\n$22:\n  %246 = phi i64 [%144, %$23], [%160, %$25] ; # Exe\n  %247 = phi i64 [%145, %$23], [%161, %$25] ; # X\n  %248 = phi i64 [%146, %$23], [%162, %$25] ; # E\n  %249 = phi i64 [%147, %$23], [%163, %$25] ; # A\n  %250 = phi i64 [%141, %$23], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$25] ; # ->\n  br label %$19\n$19:\n  %251 = phi i64 [%129, %$17], [%246, %$22] ; # Exe\n  %252 = phi i64 [%130, %$17], [%247, %$22] ; # X\n  %253 = phi i64 [%131, %$17], [%248, %$22] ; # E\n  %254 = phi i64 [%132, %$17], [%249, %$22] ; # A\n  %255 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17], [%250, %$22] ; # ->\n; # (drop *Safe)\n  %256 = inttoptr i64 %31 to i64*\n  %257 = getelementptr i64, i64* %256, i32 1\n  %258 = load i64, i64* %257\n  %259 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %258, i64* %259\n  ret i64 %255\n}\n\ndefine i64 @_Fully(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (push NIL $Nil ZERO (eval (++ X)) NIL) A (pus...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%108, %$15] ; # Exe\n  %39 = phi i64 [%6, %$2], [%109, %$15] ; # X\n  %40 = phi i64 [%22, %$2], [%110, %$15] ; # E\n  %41 = phi i64 [%30, %$2], [%111, %$15] ; # A\n  %42 = phi i64 [%22, %$2], [%112, %$15] ; # P\n  %43 = phi i64 [%30, %$2], [%115, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %44 = inttoptr i64 %39 to i64*\n  %45 = load i64, i64* %44\n; # (eval (car X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$10, label %$9\n$10:\n  %48 = phi i64 [%45, %$7] ; # X\n  br label %$8\n$9:\n  %49 = phi i64 [%45, %$7] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$12, label %$11\n$12:\n  %52 = phi i64 [%49, %$9] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$8\n$11:\n  %55 = phi i64 [%49, %$9] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$8\n$8:\n  %57 = phi i64 [%48, %$10], [%52, %$12], [%55, %$11] ; # X\n  %58 = phi i64 [%48, %$10], [%54, %$12], [%56, %$11] ; # ->\n; # (save (eval (car X)))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = alloca i64, i64 2, align 16\n  %62 = ptrtoint i64* %61 to i64\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %58, i64* %63\n  %64 = add i64 %62, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 %60, i64* %65\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %66\n  %67 = inttoptr i64 %43 to i64*\n  store i64 %58, i64* %67\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %68 = and i64 %58, 15\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$13, label %$14\n$13:\n  %70 = phi i64 [%38, %$8] ; # Exe\n  %71 = phi i64 [%39, %$8] ; # X\n  %72 = phi i64 [%40, %$8] ; # E\n  %73 = phi i64 [%41, %$8] ; # A\n  %74 = phi i64 [%42, %$8] ; # P\n  %75 = phi i64 [%43, %$8] ; # Q\n  %76 = phi i64 [%58, %$8] ; # V\n; # (car V)\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n  br label %$14\n$14:\n  %79 = phi i64 [%38, %$8], [%70, %$13] ; # Exe\n  %80 = phi i64 [%39, %$8], [%71, %$13] ; # X\n  %81 = phi i64 [%40, %$8], [%72, %$13] ; # E\n  %82 = phi i64 [%41, %$8], [%73, %$13] ; # A\n  %83 = phi i64 [%42, %$8], [%74, %$13] ; # P\n  %84 = phi i64 [%43, %$8], [%75, %$13] ; # Q\n  %85 = phi i64 [%58, %$8], [%78, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %86 = alloca i64, i64 5, align 16\n  %87 = ptrtoint i64* %86 to i64\n  %88 = add i64 %87, 8\n  %89 = inttoptr i64 %88 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %89\n  %90 = add i64 %87, 16\n  %91 = inttoptr i64 %90 to i64*\n  store i64 2, i64* %91\n  %92 = add i64 %87, 24\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %85, i64* %93\n  %94 = inttoptr i64 %83 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  store i64 %87, i64* %95\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %96 = add i64 %87, 24\n; # (link (ofs P 3))\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 %96 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  store i64 %98, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %96, i64* %101\n  %102 = inttoptr i64 %87 to i64*\n  store i64 %96, i64* %102\n; # (? (atom (shift X)))\n; # (shift X)\n  %103 = inttoptr i64 %80 to i64*\n  %104 = getelementptr i64, i64* %103, i32 1\n  %105 = load i64, i64* %104\n; # (atom (shift X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$16, label %$15\n$15:\n  %108 = phi i64 [%79, %$14] ; # Exe\n  %109 = phi i64 [%105, %$14] ; # X\n  %110 = phi i64 [%81, %$14] ; # E\n  %111 = phi i64 [%82, %$14] ; # A\n  %112 = phi i64 [%87, %$14] ; # P\n  %113 = phi i64 [%84, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %114 = alloca i64, i64 2, align 16\n  %115 = ptrtoint i64* %114 to i64\n  %116 = inttoptr i64 %113 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  store i64 %115, i64* %117\n  br label %$7\n$16:\n  %118 = phi i64 [%79, %$14] ; # Exe\n  %119 = phi i64 [%105, %$14] ; # X\n  %120 = phi i64 [%81, %$14] ; # E\n  %121 = phi i64 [%82, %$14] ; # A\n  %122 = phi i64 [%87, %$14] ; # P\n  %123 = phi i64 [%84, %$14] ; # Q\n  %124 = phi i64 [0, %$14] ; # ->\n; # (if (atom (car A)) $T (loop (? (nil? (evList E)) @) (? (atom (set...\n; # (car A)\n  %125 = inttoptr i64 %121 to i64*\n  %126 = load i64, i64* %125\n; # (atom (car A))\n  %127 = and i64 %126, 15\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$17, label %$18\n$17:\n  %129 = phi i64 [%118, %$16] ; # Exe\n  %130 = phi i64 [%119, %$16] ; # X\n  %131 = phi i64 [%120, %$16] ; # E\n  %132 = phi i64 [%121, %$16] ; # A\n  br label %$19\n$18:\n  %133 = phi i64 [%118, %$16] ; # Exe\n  %134 = phi i64 [%119, %$16] ; # X\n  %135 = phi i64 [%120, %$16] ; # E\n  %136 = phi i64 [%121, %$16] ; # A\n; # (loop (? (nil? (evList E)) @) (? (atom (set A (cdar A))) $T) (let...\n  br label %$20\n$20:\n  %137 = phi i64 [%133, %$18], [%239, %$28] ; # Exe\n  %138 = phi i64 [%134, %$18], [%240, %$28] ; # X\n  %139 = phi i64 [%135, %$18], [%241, %$28] ; # E\n  %140 = phi i64 [%136, %$18], [%242, %$28] ; # A\n; # (? (nil? (evList E)) @)\n; # (evList E)\n  %141 = call i64 @evList(i64 %139)\n; # (nil? (evList E))\n  %142 = icmp eq i64 %141, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %142, label %$23, label %$21\n$23:\n  %143 = phi i64 [%137, %$20] ; # Exe\n  %144 = phi i64 [%138, %$20] ; # X\n  %145 = phi i64 [%139, %$20] ; # E\n  %146 = phi i64 [%140, %$20] ; # A\n  br label %$22\n$21:\n  %147 = phi i64 [%137, %$20] ; # Exe\n  %148 = phi i64 [%138, %$20] ; # X\n  %149 = phi i64 [%139, %$20] ; # E\n  %150 = phi i64 [%140, %$20] ; # A\n; # (? (atom (set A (cdar A))) $T)\n; # (set A (cdar A))\n; # (cdar A)\n  %151 = inttoptr i64 %150 to i64*\n  %152 = load i64, i64* %151\n  %153 = inttoptr i64 %152 to i64*\n  %154 = getelementptr i64, i64* %153, i32 1\n  %155 = load i64, i64* %154\n  %156 = inttoptr i64 %150 to i64*\n  store i64 %155, i64* %156\n; # (atom (set A (cdar A)))\n  %157 = and i64 %155, 15\n  %158 = icmp ne i64 %157, 0\n  br i1 %158, label %$25, label %$24\n$25:\n  %159 = phi i64 [%147, %$21] ; # Exe\n  %160 = phi i64 [%148, %$21] ; # X\n  %161 = phi i64 [%149, %$21] ; # E\n  %162 = phi i64 [%150, %$21] ; # A\n  br label %$22\n$24:\n  %163 = phi i64 [%147, %$21] ; # Exe\n  %164 = phi i64 [%148, %$21] ; # X\n  %165 = phi i64 [%149, %$21] ; # E\n  %166 = phi i64 [%150, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %167 = inttoptr i64 %165 to i64*\n  %168 = getelementptr i64, i64* %167, i32 1\n  %169 = load i64, i64* %168\n; # (set 4 P (car @))\n; # (car @)\n  %170 = inttoptr i64 %155 to i64*\n  %171 = load i64, i64* %170\n  %172 = inttoptr i64 %169 to i64*\n  %173 = getelementptr i64, i64* %172, i32 3\n  store i64 %171, i64* %173\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$26\n$26:\n  %174 = phi i64 [%163, %$24], [%230, %$29] ; # Exe\n  %175 = phi i64 [%164, %$24], [%231, %$29] ; # X\n  %176 = phi i64 [%165, %$24], [%232, %$29] ; # E\n  %177 = phi i64 [%166, %$24], [%233, %$29] ; # A\n  %178 = phi i64 [%169, %$24], [%234, %$29] ; # P\n  %179 = phi i64 [%166, %$24], [%235, %$29] ; # Q\n; # (shift P)\n  %180 = inttoptr i64 %178 to i64*\n  %181 = getelementptr i64, i64* %180, i32 1\n  %182 = load i64, i64* %181\n; # (pair (shift P))\n  %183 = and i64 %182, 15\n  %184 = icmp eq i64 %183, 0\n  br i1 %184, label %$27, label %$28\n$27:\n  %185 = phi i64 [%174, %$26] ; # Exe\n  %186 = phi i64 [%175, %$26] ; # X\n  %187 = phi i64 [%176, %$26] ; # E\n  %188 = phi i64 [%177, %$26] ; # A\n  %189 = phi i64 [%182, %$26] ; # P\n  %190 = phi i64 [%179, %$26] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %191 = inttoptr i64 %190 to i64*\n  %192 = getelementptr i64, i64* %191, i32 1\n  %193 = load i64, i64* %192\n; # (car (shift Q))\n  %194 = inttoptr i64 %193 to i64*\n  %195 = load i64, i64* %194\n; # (atom (car (shift Q)))\n  %196 = and i64 %195, 15\n  %197 = icmp ne i64 %196, 0\n  br i1 %197, label %$31, label %$30\n$31:\n  %198 = phi i64 [%185, %$27] ; # Exe\n  %199 = phi i64 [%186, %$27] ; # X\n  %200 = phi i64 [%187, %$27] ; # E\n  %201 = phi i64 [%188, %$27] ; # A\n  %202 = phi i64 [%189, %$27] ; # P\n  %203 = phi i64 [%193, %$27] ; # Q\n  br label %$29\n$30:\n  %204 = phi i64 [%185, %$27] ; # Exe\n  %205 = phi i64 [%186, %$27] ; # X\n  %206 = phi i64 [%187, %$27] ; # E\n  %207 = phi i64 [%188, %$27] ; # A\n  %208 = phi i64 [%189, %$27] ; # P\n  %209 = phi i64 [%193, %$27] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %210 = inttoptr i64 %195 to i64*\n  %211 = getelementptr i64, i64* %210, i32 1\n  %212 = load i64, i64* %211\n  %213 = inttoptr i64 %209 to i64*\n  store i64 %212, i64* %213\n; # (atom (set Q (cdr @)))\n  %214 = and i64 %212, 15\n  %215 = icmp ne i64 %214, 0\n  br i1 %215, label %$33, label %$32\n$33:\n  %216 = phi i64 [%204, %$30] ; # Exe\n  %217 = phi i64 [%205, %$30] ; # X\n  %218 = phi i64 [%206, %$30] ; # E\n  %219 = phi i64 [%207, %$30] ; # A\n  %220 = phi i64 [%208, %$30] ; # P\n  %221 = phi i64 [%209, %$30] ; # Q\n  br label %$29\n$32:\n  %222 = phi i64 [%204, %$30] ; # Exe\n  %223 = phi i64 [%205, %$30] ; # X\n  %224 = phi i64 [%206, %$30] ; # E\n  %225 = phi i64 [%207, %$30] ; # A\n  %226 = phi i64 [%208, %$30] ; # P\n  %227 = phi i64 [%209, %$30] ; # Q\n; # (car @)\n  %228 = inttoptr i64 %212 to i64*\n  %229 = load i64, i64* %228\n  br label %$29\n$29:\n  %230 = phi i64 [%198, %$31], [%216, %$33], [%222, %$32] ; # Exe\n  %231 = phi i64 [%199, %$31], [%217, %$33], [%223, %$32] ; # X\n  %232 = phi i64 [%200, %$31], [%218, %$33], [%224, %$32] ; # E\n  %233 = phi i64 [%201, %$31], [%219, %$33], [%225, %$32] ; # A\n  %234 = phi i64 [%202, %$31], [%220, %$33], [%226, %$32] ; # P\n  %235 = phi i64 [%203, %$31], [%221, %$33], [%227, %$32] ; # Q\n  %236 = phi i64 [%195, %$31], [%212, %$33], [%229, %$32] ; # ->\n  %237 = inttoptr i64 %189 to i64*\n  %238 = getelementptr i64, i64* %237, i32 3\n  store i64 %236, i64* %238\n  br label %$26\n$28:\n  %239 = phi i64 [%174, %$26] ; # Exe\n  %240 = phi i64 [%175, %$26] ; # X\n  %241 = phi i64 [%176, %$26] ; # E\n  %242 = phi i64 [%177, %$26] ; # A\n  %243 = phi i64 [%182, %$26] ; # P\n  %244 = phi i64 [%179, %$26] ; # Q\n  br label %$20\n$22:\n  %245 = phi i64 [%143, %$23], [%159, %$25] ; # Exe\n  %246 = phi i64 [%144, %$23], [%160, %$25] ; # X\n  %247 = phi i64 [%145, %$23], [%161, %$25] ; # E\n  %248 = phi i64 [%146, %$23], [%162, %$25] ; # A\n  %249 = phi i64 [%141, %$23], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$25] ; # ->\n  br label %$19\n$19:\n  %250 = phi i64 [%129, %$17], [%245, %$22] ; # Exe\n  %251 = phi i64 [%130, %$17], [%246, %$22] ; # X\n  %252 = phi i64 [%131, %$17], [%247, %$22] ; # E\n  %253 = phi i64 [%132, %$17], [%248, %$22] ; # A\n  %254 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$17], [%249, %$22] ; # ->\n; # (drop *Safe)\n  %255 = inttoptr i64 %31 to i64*\n  %256 = getelementptr i64, i64* %255, i32 1\n  %257 = load i64, i64* %256\n  %258 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %257, i64* %258\n  ret i64 %254\n}\n\ndefine i64 @_Cnt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R ZERO E (push NIL $Nil ZERO (eval (++ X)) NIL)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %21 = alloca i64, i64 5, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = add i64 %22, 8\n  %24 = inttoptr i64 %23 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %24\n  %25 = add i64 %22, 16\n  %26 = inttoptr i64 %25 to i64*\n  store i64 2, i64* %26\n  %27 = add i64 %22, 24\n  %28 = inttoptr i64 %27 to i64*\n  store i64 %20, i64* %28\n; # (push NIL NIL)\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n; # (set E (link (ofs E 3) T))\n; # (ofs E 3)\n  %31 = add i64 %22, 24\n; # (link (ofs E 3) T)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %31 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  store i64 %33, i64* %35\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 %22 to i64*\n  store i64 %31, i64* %37\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%111, %$15] ; # Exe\n  %39 = phi i64 [%6, %$2], [%112, %$15] ; # X\n  %40 = phi i64 [2, %$2], [%113, %$15] ; # R\n  %41 = phi i64 [%22, %$2], [%114, %$15] ; # E\n  %42 = phi i64 [%30, %$2], [%115, %$15] ; # A\n  %43 = phi i64 [%22, %$2], [%116, %$15] ; # P\n  %44 = phi i64 [%30, %$2], [%119, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %45 = inttoptr i64 %39 to i64*\n  %46 = load i64, i64* %45\n; # (eval (car X))\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$10, label %$9\n$10:\n  %49 = phi i64 [%46, %$7] ; # X\n  br label %$8\n$9:\n  %50 = phi i64 [%46, %$7] ; # X\n  %51 = and i64 %50, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$12, label %$11\n$12:\n  %53 = phi i64 [%50, %$9] ; # X\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  br label %$8\n$11:\n  %56 = phi i64 [%50, %$9] ; # X\n  %57 = call i64 @evList(i64 %56)\n  br label %$8\n$8:\n  %58 = phi i64 [%49, %$10], [%53, %$12], [%56, %$11] ; # X\n  %59 = phi i64 [%49, %$10], [%55, %$12], [%57, %$11] ; # ->\n; # (save (eval (car X)))\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %61 = load i64, i64* %60\n  %62 = alloca i64, i64 2, align 16\n  %63 = ptrtoint i64* %62 to i64\n  %64 = inttoptr i64 %63 to i64*\n  store i64 %59, i64* %64\n  %65 = add i64 %63, 8\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %61, i64* %66\n  %67 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %63, i64* %67\n  %68 = inttoptr i64 %44 to i64*\n  store i64 %59, i64* %68\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %69 = and i64 %59, 15\n  %70 = icmp eq i64 %69, 0\n  br i1 %70, label %$13, label %$14\n$13:\n  %71 = phi i64 [%38, %$8] ; # Exe\n  %72 = phi i64 [%39, %$8] ; # X\n  %73 = phi i64 [%40, %$8] ; # R\n  %74 = phi i64 [%41, %$8] ; # E\n  %75 = phi i64 [%42, %$8] ; # A\n  %76 = phi i64 [%43, %$8] ; # P\n  %77 = phi i64 [%44, %$8] ; # Q\n  %78 = phi i64 [%59, %$8] ; # V\n; # (car V)\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$14\n$14:\n  %81 = phi i64 [%38, %$8], [%71, %$13] ; # Exe\n  %82 = phi i64 [%39, %$8], [%72, %$13] ; # X\n  %83 = phi i64 [%40, %$8], [%73, %$13] ; # R\n  %84 = phi i64 [%41, %$8], [%74, %$13] ; # E\n  %85 = phi i64 [%42, %$8], [%75, %$13] ; # A\n  %86 = phi i64 [%43, %$8], [%76, %$13] ; # P\n  %87 = phi i64 [%44, %$8], [%77, %$13] ; # Q\n  %88 = phi i64 [%59, %$8], [%80, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %89 = alloca i64, i64 5, align 16\n  %90 = ptrtoint i64* %89 to i64\n  %91 = add i64 %90, 8\n  %92 = inttoptr i64 %91 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %92\n  %93 = add i64 %90, 16\n  %94 = inttoptr i64 %93 to i64*\n  store i64 2, i64* %94\n  %95 = add i64 %90, 24\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %88, i64* %96\n  %97 = inttoptr i64 %86 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  store i64 %90, i64* %98\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %99 = add i64 %90, 24\n; # (link (ofs P 3))\n  %100 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %101 = load i64, i64* %100\n  %102 = inttoptr i64 %99 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  store i64 %101, i64* %103\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %104\n  %105 = inttoptr i64 %90 to i64*\n  store i64 %99, i64* %105\n; # (? (atom (shift X)))\n; # (shift X)\n  %106 = inttoptr i64 %82 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n; # (atom (shift X))\n  %109 = and i64 %108, 15\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$16, label %$15\n$15:\n  %111 = phi i64 [%81, %$14] ; # Exe\n  %112 = phi i64 [%108, %$14] ; # X\n  %113 = phi i64 [%83, %$14] ; # R\n  %114 = phi i64 [%84, %$14] ; # E\n  %115 = phi i64 [%85, %$14] ; # A\n  %116 = phi i64 [%90, %$14] ; # P\n  %117 = phi i64 [%87, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %118 = alloca i64, i64 2, align 16\n  %119 = ptrtoint i64* %118 to i64\n  %120 = inttoptr i64 %117 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  store i64 %119, i64* %121\n  br label %$7\n$16:\n  %122 = phi i64 [%81, %$14] ; # Exe\n  %123 = phi i64 [%108, %$14] ; # X\n  %124 = phi i64 [%83, %$14] ; # R\n  %125 = phi i64 [%84, %$14] ; # E\n  %126 = phi i64 [%85, %$14] ; # A\n  %127 = phi i64 [%90, %$14] ; # P\n  %128 = phi i64 [%87, %$14] ; # Q\n  %129 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (unless (nil? (evList E)) (inc 'R (hex...\n; # (car A)\n  %130 = inttoptr i64 %126 to i64*\n  %131 = load i64, i64* %130\n; # (pair (car A))\n  %132 = and i64 %131, 15\n  %133 = icmp eq i64 %132, 0\n  br i1 %133, label %$17, label %$18\n$17:\n  %134 = phi i64 [%122, %$16] ; # Exe\n  %135 = phi i64 [%123, %$16] ; # X\n  %136 = phi i64 [%124, %$16] ; # R\n  %137 = phi i64 [%125, %$16] ; # E\n  %138 = phi i64 [%126, %$16] ; # A\n; # (loop (unless (nil? (evList E)) (inc 'R (hex \"10\"))) (? (atom (se...\n  br label %$19\n$19:\n  %139 = phi i64 [%134, %$17], [%249, %$26] ; # Exe\n  %140 = phi i64 [%135, %$17], [%250, %$26] ; # X\n  %141 = phi i64 [%136, %$17], [%251, %$26] ; # R\n  %142 = phi i64 [%137, %$17], [%252, %$26] ; # E\n  %143 = phi i64 [%138, %$17], [%253, %$26] ; # A\n; # (unless (nil? (evList E)) (inc 'R (hex \"10\")))\n; # (evList E)\n  %144 = call i64 @evList(i64 %142)\n; # (nil? (evList E))\n  %145 = icmp eq i64 %144, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %145, label %$21, label %$20\n$20:\n  %146 = phi i64 [%139, %$19] ; # Exe\n  %147 = phi i64 [%140, %$19] ; # X\n  %148 = phi i64 [%141, %$19] ; # R\n  %149 = phi i64 [%142, %$19] ; # E\n  %150 = phi i64 [%143, %$19] ; # A\n; # (inc 'R (hex \"10\"))\n  %151 = add i64 %148, 16\n  br label %$21\n$21:\n  %152 = phi i64 [%139, %$19], [%146, %$20] ; # Exe\n  %153 = phi i64 [%140, %$19], [%147, %$20] ; # X\n  %154 = phi i64 [%141, %$19], [%151, %$20] ; # R\n  %155 = phi i64 [%142, %$19], [%149, %$20] ; # E\n  %156 = phi i64 [%143, %$19], [%150, %$20] ; # A\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %157 = inttoptr i64 %156 to i64*\n  %158 = load i64, i64* %157\n  %159 = inttoptr i64 %158 to i64*\n  %160 = getelementptr i64, i64* %159, i32 1\n  %161 = load i64, i64* %160\n  %162 = inttoptr i64 %156 to i64*\n  store i64 %161, i64* %162\n; # (atom (set A (cdar A)))\n  %163 = and i64 %161, 15\n  %164 = icmp ne i64 %163, 0\n  br i1 %164, label %$23, label %$22\n$22:\n  %165 = phi i64 [%152, %$21] ; # Exe\n  %166 = phi i64 [%153, %$21] ; # X\n  %167 = phi i64 [%154, %$21] ; # R\n  %168 = phi i64 [%155, %$21] ; # E\n  %169 = phi i64 [%156, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %170 = inttoptr i64 %168 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n; # (set 4 P (car @))\n; # (car @)\n  %173 = inttoptr i64 %161 to i64*\n  %174 = load i64, i64* %173\n  %175 = inttoptr i64 %172 to i64*\n  %176 = getelementptr i64, i64* %175, i32 3\n  store i64 %174, i64* %176\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$24\n$24:\n  %177 = phi i64 [%165, %$22], [%239, %$27] ; # Exe\n  %178 = phi i64 [%166, %$22], [%240, %$27] ; # X\n  %179 = phi i64 [%167, %$22], [%241, %$27] ; # R\n  %180 = phi i64 [%168, %$22], [%242, %$27] ; # E\n  %181 = phi i64 [%169, %$22], [%243, %$27] ; # A\n  %182 = phi i64 [%172, %$22], [%244, %$27] ; # P\n  %183 = phi i64 [%169, %$22], [%245, %$27] ; # Q\n; # (shift P)\n  %184 = inttoptr i64 %182 to i64*\n  %185 = getelementptr i64, i64* %184, i32 1\n  %186 = load i64, i64* %185\n; # (pair (shift P))\n  %187 = and i64 %186, 15\n  %188 = icmp eq i64 %187, 0\n  br i1 %188, label %$25, label %$26\n$25:\n  %189 = phi i64 [%177, %$24] ; # Exe\n  %190 = phi i64 [%178, %$24] ; # X\n  %191 = phi i64 [%179, %$24] ; # R\n  %192 = phi i64 [%180, %$24] ; # E\n  %193 = phi i64 [%181, %$24] ; # A\n  %194 = phi i64 [%186, %$24] ; # P\n  %195 = phi i64 [%183, %$24] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %196 = inttoptr i64 %195 to i64*\n  %197 = getelementptr i64, i64* %196, i32 1\n  %198 = load i64, i64* %197\n; # (car (shift Q))\n  %199 = inttoptr i64 %198 to i64*\n  %200 = load i64, i64* %199\n; # (atom (car (shift Q)))\n  %201 = and i64 %200, 15\n  %202 = icmp ne i64 %201, 0\n  br i1 %202, label %$29, label %$28\n$29:\n  %203 = phi i64 [%189, %$25] ; # Exe\n  %204 = phi i64 [%190, %$25] ; # X\n  %205 = phi i64 [%191, %$25] ; # R\n  %206 = phi i64 [%192, %$25] ; # E\n  %207 = phi i64 [%193, %$25] ; # A\n  %208 = phi i64 [%194, %$25] ; # P\n  %209 = phi i64 [%198, %$25] ; # Q\n  br label %$27\n$28:\n  %210 = phi i64 [%189, %$25] ; # Exe\n  %211 = phi i64 [%190, %$25] ; # X\n  %212 = phi i64 [%191, %$25] ; # R\n  %213 = phi i64 [%192, %$25] ; # E\n  %214 = phi i64 [%193, %$25] ; # A\n  %215 = phi i64 [%194, %$25] ; # P\n  %216 = phi i64 [%198, %$25] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %217 = inttoptr i64 %200 to i64*\n  %218 = getelementptr i64, i64* %217, i32 1\n  %219 = load i64, i64* %218\n  %220 = inttoptr i64 %216 to i64*\n  store i64 %219, i64* %220\n; # (atom (set Q (cdr @)))\n  %221 = and i64 %219, 15\n  %222 = icmp ne i64 %221, 0\n  br i1 %222, label %$31, label %$30\n$31:\n  %223 = phi i64 [%210, %$28] ; # Exe\n  %224 = phi i64 [%211, %$28] ; # X\n  %225 = phi i64 [%212, %$28] ; # R\n  %226 = phi i64 [%213, %$28] ; # E\n  %227 = phi i64 [%214, %$28] ; # A\n  %228 = phi i64 [%215, %$28] ; # P\n  %229 = phi i64 [%216, %$28] ; # Q\n  br label %$27\n$30:\n  %230 = phi i64 [%210, %$28] ; # Exe\n  %231 = phi i64 [%211, %$28] ; # X\n  %232 = phi i64 [%212, %$28] ; # R\n  %233 = phi i64 [%213, %$28] ; # E\n  %234 = phi i64 [%214, %$28] ; # A\n  %235 = phi i64 [%215, %$28] ; # P\n  %236 = phi i64 [%216, %$28] ; # Q\n; # (car @)\n  %237 = inttoptr i64 %219 to i64*\n  %238 = load i64, i64* %237\n  br label %$27\n$27:\n  %239 = phi i64 [%203, %$29], [%223, %$31], [%230, %$30] ; # Exe\n  %240 = phi i64 [%204, %$29], [%224, %$31], [%231, %$30] ; # X\n  %241 = phi i64 [%205, %$29], [%225, %$31], [%232, %$30] ; # R\n  %242 = phi i64 [%206, %$29], [%226, %$31], [%233, %$30] ; # E\n  %243 = phi i64 [%207, %$29], [%227, %$31], [%234, %$30] ; # A\n  %244 = phi i64 [%208, %$29], [%228, %$31], [%235, %$30] ; # P\n  %245 = phi i64 [%209, %$29], [%229, %$31], [%236, %$30] ; # Q\n  %246 = phi i64 [%200, %$29], [%219, %$31], [%238, %$30] ; # ->\n  %247 = inttoptr i64 %194 to i64*\n  %248 = getelementptr i64, i64* %247, i32 3\n  store i64 %246, i64* %248\n  br label %$24\n$26:\n  %249 = phi i64 [%177, %$24] ; # Exe\n  %250 = phi i64 [%178, %$24] ; # X\n  %251 = phi i64 [%179, %$24] ; # R\n  %252 = phi i64 [%180, %$24] ; # E\n  %253 = phi i64 [%181, %$24] ; # A\n  %254 = phi i64 [%186, %$24] ; # P\n  %255 = phi i64 [%183, %$24] ; # Q\n  br label %$19\n$23:\n  %256 = phi i64 [%152, %$21] ; # Exe\n  %257 = phi i64 [%153, %$21] ; # X\n  %258 = phi i64 [%154, %$21] ; # R\n  %259 = phi i64 [%155, %$21] ; # E\n  %260 = phi i64 [%156, %$21] ; # A\n  %261 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %262 = phi i64 [%122, %$16], [%256, %$23] ; # Exe\n  %263 = phi i64 [%123, %$16], [%257, %$23] ; # X\n  %264 = phi i64 [%124, %$16], [%258, %$23] ; # R\n  %265 = phi i64 [%125, %$16], [%259, %$23] ; # E\n  %266 = phi i64 [%126, %$16], [%260, %$23] ; # A\n; # (drop *Safe)\n  %267 = inttoptr i64 %31 to i64*\n  %268 = getelementptr i64, i64* %267, i32 1\n  %269 = load i64, i64* %268\n  %270 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %269, i64* %270\n  ret i64 %264\n}\n\ndefine i64 @_Sum(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save ZERO) E (push NIL $Nil ZERO (eval (++ X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save ZERO)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 2, i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%119, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%120, %$15] ; # X\n  %48 = phi i64 [2, %$2], [%121, %$15] ; # R\n  %49 = phi i64 [%30, %$2], [%122, %$15] ; # E\n  %50 = phi i64 [%38, %$2], [%123, %$15] ; # A\n  %51 = phi i64 [%30, %$2], [%124, %$15] ; # P\n  %52 = phi i64 [%38, %$2], [%127, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %53 = inttoptr i64 %47 to i64*\n  %54 = load i64, i64* %53\n; # (eval (car X))\n  %55 = and i64 %54, 6\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$10, label %$9\n$10:\n  %57 = phi i64 [%54, %$7] ; # X\n  br label %$8\n$9:\n  %58 = phi i64 [%54, %$7] ; # X\n  %59 = and i64 %58, 8\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$12, label %$11\n$12:\n  %61 = phi i64 [%58, %$9] ; # X\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n  br label %$8\n$11:\n  %64 = phi i64 [%58, %$9] ; # X\n  %65 = call i64 @evList(i64 %64)\n  br label %$8\n$8:\n  %66 = phi i64 [%57, %$10], [%61, %$12], [%64, %$11] ; # X\n  %67 = phi i64 [%57, %$10], [%63, %$12], [%65, %$11] ; # ->\n; # (save (eval (car X)))\n  %68 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %69 = load i64, i64* %68\n  %70 = alloca i64, i64 2, align 16\n  %71 = ptrtoint i64* %70 to i64\n  %72 = inttoptr i64 %71 to i64*\n  store i64 %67, i64* %72\n  %73 = add i64 %71, 8\n  %74 = inttoptr i64 %73 to i64*\n  store i64 %69, i64* %74\n  %75 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %71, i64* %75\n  %76 = inttoptr i64 %52 to i64*\n  store i64 %67, i64* %76\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %77 = and i64 %67, 15\n  %78 = icmp eq i64 %77, 0\n  br i1 %78, label %$13, label %$14\n$13:\n  %79 = phi i64 [%46, %$8] ; # Exe\n  %80 = phi i64 [%47, %$8] ; # X\n  %81 = phi i64 [%48, %$8] ; # R\n  %82 = phi i64 [%49, %$8] ; # E\n  %83 = phi i64 [%50, %$8] ; # A\n  %84 = phi i64 [%51, %$8] ; # P\n  %85 = phi i64 [%52, %$8] ; # Q\n  %86 = phi i64 [%67, %$8] ; # V\n; # (car V)\n  %87 = inttoptr i64 %86 to i64*\n  %88 = load i64, i64* %87\n  br label %$14\n$14:\n  %89 = phi i64 [%46, %$8], [%79, %$13] ; # Exe\n  %90 = phi i64 [%47, %$8], [%80, %$13] ; # X\n  %91 = phi i64 [%48, %$8], [%81, %$13] ; # R\n  %92 = phi i64 [%49, %$8], [%82, %$13] ; # E\n  %93 = phi i64 [%50, %$8], [%83, %$13] ; # A\n  %94 = phi i64 [%51, %$8], [%84, %$13] ; # P\n  %95 = phi i64 [%52, %$8], [%85, %$13] ; # Q\n  %96 = phi i64 [%67, %$8], [%88, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %97 = alloca i64, i64 5, align 16\n  %98 = ptrtoint i64* %97 to i64\n  %99 = add i64 %98, 8\n  %100 = inttoptr i64 %99 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %100\n  %101 = add i64 %98, 16\n  %102 = inttoptr i64 %101 to i64*\n  store i64 2, i64* %102\n  %103 = add i64 %98, 24\n  %104 = inttoptr i64 %103 to i64*\n  store i64 %96, i64* %104\n  %105 = inttoptr i64 %94 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  store i64 %98, i64* %106\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %107 = add i64 %98, 24\n; # (link (ofs P 3))\n  %108 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %109 = load i64, i64* %108\n  %110 = inttoptr i64 %107 to i64*\n  %111 = getelementptr i64, i64* %110, i32 1\n  store i64 %109, i64* %111\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %107, i64* %112\n  %113 = inttoptr i64 %98 to i64*\n  store i64 %107, i64* %113\n; # (? (atom (shift X)))\n; # (shift X)\n  %114 = inttoptr i64 %90 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n; # (atom (shift X))\n  %117 = and i64 %116, 15\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$16, label %$15\n$15:\n  %119 = phi i64 [%89, %$14] ; # Exe\n  %120 = phi i64 [%116, %$14] ; # X\n  %121 = phi i64 [%91, %$14] ; # R\n  %122 = phi i64 [%92, %$14] ; # E\n  %123 = phi i64 [%93, %$14] ; # A\n  %124 = phi i64 [%98, %$14] ; # P\n  %125 = phi i64 [%95, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %126 = alloca i64, i64 2, align 16\n  %127 = ptrtoint i64* %126 to i64\n  %128 = inttoptr i64 %125 to i64*\n  %129 = getelementptr i64, i64* %128, i32 1\n  store i64 %127, i64* %129\n  br label %$7\n$16:\n  %130 = phi i64 [%89, %$14] ; # Exe\n  %131 = phi i64 [%116, %$14] ; # X\n  %132 = phi i64 [%91, %$14] ; # R\n  %133 = phi i64 [%92, %$14] ; # E\n  %134 = phi i64 [%93, %$14] ; # A\n  %135 = phi i64 [%98, %$14] ; # P\n  %136 = phi i64 [%95, %$14] ; # Q\n  %137 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (when (num? (evList E)) (save @ (setq ...\n; # (car A)\n  %138 = inttoptr i64 %134 to i64*\n  %139 = load i64, i64* %138\n; # (pair (car A))\n  %140 = and i64 %139, 15\n  %141 = icmp eq i64 %140, 0\n  br i1 %141, label %$17, label %$18\n$17:\n  %142 = phi i64 [%130, %$16] ; # Exe\n  %143 = phi i64 [%131, %$16] ; # X\n  %144 = phi i64 [%132, %$16] ; # R\n  %145 = phi i64 [%133, %$16] ; # E\n  %146 = phi i64 [%134, %$16] ; # A\n; # (loop (when (num? (evList E)) (save @ (setq R (safe (adds R @))))...\n  br label %$19\n$19:\n  %147 = phi i64 [%142, %$17], [%271, %$26] ; # Exe\n  %148 = phi i64 [%143, %$17], [%272, %$26] ; # X\n  %149 = phi i64 [%144, %$17], [%273, %$26] ; # R\n  %150 = phi i64 [%145, %$17], [%274, %$26] ; # E\n  %151 = phi i64 [%146, %$17], [%275, %$26] ; # A\n; # (when (num? (evList E)) (save @ (setq R (safe (adds R @)))))\n; # (evList E)\n  %152 = call i64 @evList(i64 %150)\n; # (num? (evList E))\n  %153 = and i64 %152, 6\n  %154 = icmp ne i64 %153, 0\n  br i1 %154, label %$20, label %$21\n$20:\n  %155 = phi i64 [%147, %$19] ; # Exe\n  %156 = phi i64 [%148, %$19] ; # X\n  %157 = phi i64 [%149, %$19] ; # R\n  %158 = phi i64 [%150, %$19] ; # E\n  %159 = phi i64 [%151, %$19] ; # A\n; # (save @ (setq R (safe (adds R @))))\n  %160 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %161 = load i64, i64* %160\n  %162 = alloca i64, i64 2, align 16\n  %163 = ptrtoint i64* %162 to i64\n  %164 = inttoptr i64 %163 to i64*\n  store i64 %152, i64* %164\n  %165 = add i64 %163, 8\n  %166 = inttoptr i64 %165 to i64*\n  store i64 %161, i64* %166\n  %167 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %163, i64* %167\n; # (adds R @)\n  %168 = call i64 @adds(i64 %157, i64 %152)\n; # (safe (adds R @))\n  %169 = inttoptr i64 %7 to i64*\n  store i64 %168, i64* %169\n; # drop\n  %170 = inttoptr i64 %163 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n  %173 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %172, i64* %173\n  br label %$21\n$21:\n  %174 = phi i64 [%147, %$19], [%155, %$20] ; # Exe\n  %175 = phi i64 [%148, %$19], [%156, %$20] ; # X\n  %176 = phi i64 [%149, %$19], [%168, %$20] ; # R\n  %177 = phi i64 [%150, %$19], [%158, %$20] ; # E\n  %178 = phi i64 [%151, %$19], [%159, %$20] ; # A\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %179 = inttoptr i64 %178 to i64*\n  %180 = load i64, i64* %179\n  %181 = inttoptr i64 %180 to i64*\n  %182 = getelementptr i64, i64* %181, i32 1\n  %183 = load i64, i64* %182\n  %184 = inttoptr i64 %178 to i64*\n  store i64 %183, i64* %184\n; # (atom (set A (cdar A)))\n  %185 = and i64 %183, 15\n  %186 = icmp ne i64 %185, 0\n  br i1 %186, label %$23, label %$22\n$22:\n  %187 = phi i64 [%174, %$21] ; # Exe\n  %188 = phi i64 [%175, %$21] ; # X\n  %189 = phi i64 [%176, %$21] ; # R\n  %190 = phi i64 [%177, %$21] ; # E\n  %191 = phi i64 [%178, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %192 = inttoptr i64 %190 to i64*\n  %193 = getelementptr i64, i64* %192, i32 1\n  %194 = load i64, i64* %193\n; # (set 4 P (car @))\n; # (car @)\n  %195 = inttoptr i64 %183 to i64*\n  %196 = load i64, i64* %195\n  %197 = inttoptr i64 %194 to i64*\n  %198 = getelementptr i64, i64* %197, i32 3\n  store i64 %196, i64* %198\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$24\n$24:\n  %199 = phi i64 [%187, %$22], [%261, %$27] ; # Exe\n  %200 = phi i64 [%188, %$22], [%262, %$27] ; # X\n  %201 = phi i64 [%189, %$22], [%263, %$27] ; # R\n  %202 = phi i64 [%190, %$22], [%264, %$27] ; # E\n  %203 = phi i64 [%191, %$22], [%265, %$27] ; # A\n  %204 = phi i64 [%194, %$22], [%266, %$27] ; # P\n  %205 = phi i64 [%191, %$22], [%267, %$27] ; # Q\n; # (shift P)\n  %206 = inttoptr i64 %204 to i64*\n  %207 = getelementptr i64, i64* %206, i32 1\n  %208 = load i64, i64* %207\n; # (pair (shift P))\n  %209 = and i64 %208, 15\n  %210 = icmp eq i64 %209, 0\n  br i1 %210, label %$25, label %$26\n$25:\n  %211 = phi i64 [%199, %$24] ; # Exe\n  %212 = phi i64 [%200, %$24] ; # X\n  %213 = phi i64 [%201, %$24] ; # R\n  %214 = phi i64 [%202, %$24] ; # E\n  %215 = phi i64 [%203, %$24] ; # A\n  %216 = phi i64 [%208, %$24] ; # P\n  %217 = phi i64 [%205, %$24] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %218 = inttoptr i64 %217 to i64*\n  %219 = getelementptr i64, i64* %218, i32 1\n  %220 = load i64, i64* %219\n; # (car (shift Q))\n  %221 = inttoptr i64 %220 to i64*\n  %222 = load i64, i64* %221\n; # (atom (car (shift Q)))\n  %223 = and i64 %222, 15\n  %224 = icmp ne i64 %223, 0\n  br i1 %224, label %$29, label %$28\n$29:\n  %225 = phi i64 [%211, %$25] ; # Exe\n  %226 = phi i64 [%212, %$25] ; # X\n  %227 = phi i64 [%213, %$25] ; # R\n  %228 = phi i64 [%214, %$25] ; # E\n  %229 = phi i64 [%215, %$25] ; # A\n  %230 = phi i64 [%216, %$25] ; # P\n  %231 = phi i64 [%220, %$25] ; # Q\n  br label %$27\n$28:\n  %232 = phi i64 [%211, %$25] ; # Exe\n  %233 = phi i64 [%212, %$25] ; # X\n  %234 = phi i64 [%213, %$25] ; # R\n  %235 = phi i64 [%214, %$25] ; # E\n  %236 = phi i64 [%215, %$25] ; # A\n  %237 = phi i64 [%216, %$25] ; # P\n  %238 = phi i64 [%220, %$25] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %239 = inttoptr i64 %222 to i64*\n  %240 = getelementptr i64, i64* %239, i32 1\n  %241 = load i64, i64* %240\n  %242 = inttoptr i64 %238 to i64*\n  store i64 %241, i64* %242\n; # (atom (set Q (cdr @)))\n  %243 = and i64 %241, 15\n  %244 = icmp ne i64 %243, 0\n  br i1 %244, label %$31, label %$30\n$31:\n  %245 = phi i64 [%232, %$28] ; # Exe\n  %246 = phi i64 [%233, %$28] ; # X\n  %247 = phi i64 [%234, %$28] ; # R\n  %248 = phi i64 [%235, %$28] ; # E\n  %249 = phi i64 [%236, %$28] ; # A\n  %250 = phi i64 [%237, %$28] ; # P\n  %251 = phi i64 [%238, %$28] ; # Q\n  br label %$27\n$30:\n  %252 = phi i64 [%232, %$28] ; # Exe\n  %253 = phi i64 [%233, %$28] ; # X\n  %254 = phi i64 [%234, %$28] ; # R\n  %255 = phi i64 [%235, %$28] ; # E\n  %256 = phi i64 [%236, %$28] ; # A\n  %257 = phi i64 [%237, %$28] ; # P\n  %258 = phi i64 [%238, %$28] ; # Q\n; # (car @)\n  %259 = inttoptr i64 %241 to i64*\n  %260 = load i64, i64* %259\n  br label %$27\n$27:\n  %261 = phi i64 [%225, %$29], [%245, %$31], [%252, %$30] ; # Exe\n  %262 = phi i64 [%226, %$29], [%246, %$31], [%253, %$30] ; # X\n  %263 = phi i64 [%227, %$29], [%247, %$31], [%254, %$30] ; # R\n  %264 = phi i64 [%228, %$29], [%248, %$31], [%255, %$30] ; # E\n  %265 = phi i64 [%229, %$29], [%249, %$31], [%256, %$30] ; # A\n  %266 = phi i64 [%230, %$29], [%250, %$31], [%257, %$30] ; # P\n  %267 = phi i64 [%231, %$29], [%251, %$31], [%258, %$30] ; # Q\n  %268 = phi i64 [%222, %$29], [%241, %$31], [%260, %$30] ; # ->\n  %269 = inttoptr i64 %216 to i64*\n  %270 = getelementptr i64, i64* %269, i32 3\n  store i64 %268, i64* %270\n  br label %$24\n$26:\n  %271 = phi i64 [%199, %$24] ; # Exe\n  %272 = phi i64 [%200, %$24] ; # X\n  %273 = phi i64 [%201, %$24] ; # R\n  %274 = phi i64 [%202, %$24] ; # E\n  %275 = phi i64 [%203, %$24] ; # A\n  %276 = phi i64 [%208, %$24] ; # P\n  %277 = phi i64 [%205, %$24] ; # Q\n  br label %$19\n$23:\n  %278 = phi i64 [%174, %$21] ; # Exe\n  %279 = phi i64 [%175, %$21] ; # X\n  %280 = phi i64 [%176, %$21] ; # R\n  %281 = phi i64 [%177, %$21] ; # E\n  %282 = phi i64 [%178, %$21] ; # A\n  %283 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %284 = phi i64 [%130, %$16], [%278, %$23] ; # Exe\n  %285 = phi i64 [%131, %$16], [%279, %$23] ; # X\n  %286 = phi i64 [%132, %$16], [%280, %$23] ; # R\n  %287 = phi i64 [%133, %$16], [%281, %$23] ; # E\n  %288 = phi i64 [%134, %$16], [%282, %$23] ; # A\n; # (drop *Safe)\n  %289 = inttoptr i64 %7 to i64*\n  %290 = getelementptr i64, i64* %289, i32 1\n  %291 = load i64, i64* %290\n  %292 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %291, i64* %292\n  ret i64 %286\n}\n\ndefine i64 @_Maxi(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R $Nil R2 (save $Nil) E (push NIL $Nil ZERO (ev...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%125, %$15] ; # R2\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # R2\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # R2\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # R2\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # R2\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (let Y (evList E) (when (gt0 (compare ...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # R2\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (let Y (evList E) (when (gt0 (compare Y R2)) (setq R (caar ...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%281, %$26] ; # Exe\n  %154 = phi i64 [%148, %$17], [%282, %$26] ; # X\n  %155 = phi i64 [%149, %$17], [%283, %$26] ; # R\n  %156 = phi i64 [%150, %$17], [%284, %$26] ; # R2\n  %157 = phi i64 [%151, %$17], [%285, %$26] ; # E\n  %158 = phi i64 [%152, %$17], [%286, %$26] ; # A\n; # (let Y (evList E) (when (gt0 (compare Y R2)) (setq R (caar A)) (s...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (when (gt0 (compare Y R2)) (setq R (caar A)) (setq R2 (safe Y)))\n; # (compare Y R2)\n  %160 = call i64 @compare(i64 %159, i64 %156)\n; # (gt0 (compare Y R2))\n  %161 = icmp sgt i64 %160, 0\n  br i1 %161, label %$20, label %$21\n$20:\n  %162 = phi i64 [%153, %$19] ; # Exe\n  %163 = phi i64 [%154, %$19] ; # X\n  %164 = phi i64 [%155, %$19] ; # R\n  %165 = phi i64 [%156, %$19] ; # R2\n  %166 = phi i64 [%157, %$19] ; # E\n  %167 = phi i64 [%158, %$19] ; # A\n  %168 = phi i64 [%159, %$19] ; # Y\n; # (caar A)\n  %169 = inttoptr i64 %167 to i64*\n  %170 = load i64, i64* %169\n  %171 = inttoptr i64 %170 to i64*\n  %172 = load i64, i64* %171\n; # (safe Y)\n  %173 = inttoptr i64 %7 to i64*\n  store i64 %168, i64* %173\n  br label %$21\n$21:\n  %174 = phi i64 [%153, %$19], [%162, %$20] ; # Exe\n  %175 = phi i64 [%154, %$19], [%163, %$20] ; # X\n  %176 = phi i64 [%155, %$19], [%172, %$20] ; # R\n  %177 = phi i64 [%156, %$19], [%168, %$20] ; # R2\n  %178 = phi i64 [%157, %$19], [%166, %$20] ; # E\n  %179 = phi i64 [%158, %$19], [%167, %$20] ; # A\n  %180 = phi i64 [%159, %$19], [%168, %$20] ; # Y\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %181 = inttoptr i64 %179 to i64*\n  %182 = load i64, i64* %181\n  %183 = inttoptr i64 %182 to i64*\n  %184 = getelementptr i64, i64* %183, i32 1\n  %185 = load i64, i64* %184\n  %186 = inttoptr i64 %179 to i64*\n  store i64 %185, i64* %186\n; # (atom (set A (cdar A)))\n  %187 = and i64 %185, 15\n  %188 = icmp ne i64 %187, 0\n  br i1 %188, label %$23, label %$22\n$22:\n  %189 = phi i64 [%174, %$21] ; # Exe\n  %190 = phi i64 [%175, %$21] ; # X\n  %191 = phi i64 [%176, %$21] ; # R\n  %192 = phi i64 [%177, %$21] ; # R2\n  %193 = phi i64 [%178, %$21] ; # E\n  %194 = phi i64 [%179, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %195 = inttoptr i64 %193 to i64*\n  %196 = getelementptr i64, i64* %195, i32 1\n  %197 = load i64, i64* %196\n; # (set 4 P (car @))\n; # (car @)\n  %198 = inttoptr i64 %185 to i64*\n  %199 = load i64, i64* %198\n  %200 = inttoptr i64 %197 to i64*\n  %201 = getelementptr i64, i64* %200, i32 3\n  store i64 %199, i64* %201\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$24\n$24:\n  %202 = phi i64 [%189, %$22], [%270, %$27] ; # Exe\n  %203 = phi i64 [%190, %$22], [%271, %$27] ; # X\n  %204 = phi i64 [%191, %$22], [%272, %$27] ; # R\n  %205 = phi i64 [%192, %$22], [%273, %$27] ; # R2\n  %206 = phi i64 [%193, %$22], [%274, %$27] ; # E\n  %207 = phi i64 [%194, %$22], [%275, %$27] ; # A\n  %208 = phi i64 [%197, %$22], [%276, %$27] ; # P\n  %209 = phi i64 [%194, %$22], [%277, %$27] ; # Q\n; # (shift P)\n  %210 = inttoptr i64 %208 to i64*\n  %211 = getelementptr i64, i64* %210, i32 1\n  %212 = load i64, i64* %211\n; # (pair (shift P))\n  %213 = and i64 %212, 15\n  %214 = icmp eq i64 %213, 0\n  br i1 %214, label %$25, label %$26\n$25:\n  %215 = phi i64 [%202, %$24] ; # Exe\n  %216 = phi i64 [%203, %$24] ; # X\n  %217 = phi i64 [%204, %$24] ; # R\n  %218 = phi i64 [%205, %$24] ; # R2\n  %219 = phi i64 [%206, %$24] ; # E\n  %220 = phi i64 [%207, %$24] ; # A\n  %221 = phi i64 [%212, %$24] ; # P\n  %222 = phi i64 [%209, %$24] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %223 = inttoptr i64 %222 to i64*\n  %224 = getelementptr i64, i64* %223, i32 1\n  %225 = load i64, i64* %224\n; # (car (shift Q))\n  %226 = inttoptr i64 %225 to i64*\n  %227 = load i64, i64* %226\n; # (atom (car (shift Q)))\n  %228 = and i64 %227, 15\n  %229 = icmp ne i64 %228, 0\n  br i1 %229, label %$29, label %$28\n$29:\n  %230 = phi i64 [%215, %$25] ; # Exe\n  %231 = phi i64 [%216, %$25] ; # X\n  %232 = phi i64 [%217, %$25] ; # R\n  %233 = phi i64 [%218, %$25] ; # R2\n  %234 = phi i64 [%219, %$25] ; # E\n  %235 = phi i64 [%220, %$25] ; # A\n  %236 = phi i64 [%221, %$25] ; # P\n  %237 = phi i64 [%225, %$25] ; # Q\n  br label %$27\n$28:\n  %238 = phi i64 [%215, %$25] ; # Exe\n  %239 = phi i64 [%216, %$25] ; # X\n  %240 = phi i64 [%217, %$25] ; # R\n  %241 = phi i64 [%218, %$25] ; # R2\n  %242 = phi i64 [%219, %$25] ; # E\n  %243 = phi i64 [%220, %$25] ; # A\n  %244 = phi i64 [%221, %$25] ; # P\n  %245 = phi i64 [%225, %$25] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %246 = inttoptr i64 %227 to i64*\n  %247 = getelementptr i64, i64* %246, i32 1\n  %248 = load i64, i64* %247\n  %249 = inttoptr i64 %245 to i64*\n  store i64 %248, i64* %249\n; # (atom (set Q (cdr @)))\n  %250 = and i64 %248, 15\n  %251 = icmp ne i64 %250, 0\n  br i1 %251, label %$31, label %$30\n$31:\n  %252 = phi i64 [%238, %$28] ; # Exe\n  %253 = phi i64 [%239, %$28] ; # X\n  %254 = phi i64 [%240, %$28] ; # R\n  %255 = phi i64 [%241, %$28] ; # R2\n  %256 = phi i64 [%242, %$28] ; # E\n  %257 = phi i64 [%243, %$28] ; # A\n  %258 = phi i64 [%244, %$28] ; # P\n  %259 = phi i64 [%245, %$28] ; # Q\n  br label %$27\n$30:\n  %260 = phi i64 [%238, %$28] ; # Exe\n  %261 = phi i64 [%239, %$28] ; # X\n  %262 = phi i64 [%240, %$28] ; # R\n  %263 = phi i64 [%241, %$28] ; # R2\n  %264 = phi i64 [%242, %$28] ; # E\n  %265 = phi i64 [%243, %$28] ; # A\n  %266 = phi i64 [%244, %$28] ; # P\n  %267 = phi i64 [%245, %$28] ; # Q\n; # (car @)\n  %268 = inttoptr i64 %248 to i64*\n  %269 = load i64, i64* %268\n  br label %$27\n$27:\n  %270 = phi i64 [%230, %$29], [%252, %$31], [%260, %$30] ; # Exe\n  %271 = phi i64 [%231, %$29], [%253, %$31], [%261, %$30] ; # X\n  %272 = phi i64 [%232, %$29], [%254, %$31], [%262, %$30] ; # R\n  %273 = phi i64 [%233, %$29], [%255, %$31], [%263, %$30] ; # R2\n  %274 = phi i64 [%234, %$29], [%256, %$31], [%264, %$30] ; # E\n  %275 = phi i64 [%235, %$29], [%257, %$31], [%265, %$30] ; # A\n  %276 = phi i64 [%236, %$29], [%258, %$31], [%266, %$30] ; # P\n  %277 = phi i64 [%237, %$29], [%259, %$31], [%267, %$30] ; # Q\n  %278 = phi i64 [%227, %$29], [%248, %$31], [%269, %$30] ; # ->\n  %279 = inttoptr i64 %221 to i64*\n  %280 = getelementptr i64, i64* %279, i32 3\n  store i64 %278, i64* %280\n  br label %$24\n$26:\n  %281 = phi i64 [%202, %$24] ; # Exe\n  %282 = phi i64 [%203, %$24] ; # X\n  %283 = phi i64 [%204, %$24] ; # R\n  %284 = phi i64 [%205, %$24] ; # R2\n  %285 = phi i64 [%206, %$24] ; # E\n  %286 = phi i64 [%207, %$24] ; # A\n  %287 = phi i64 [%212, %$24] ; # P\n  %288 = phi i64 [%209, %$24] ; # Q\n  br label %$19\n$23:\n  %289 = phi i64 [%174, %$21] ; # Exe\n  %290 = phi i64 [%175, %$21] ; # X\n  %291 = phi i64 [%176, %$21] ; # R\n  %292 = phi i64 [%177, %$21] ; # R2\n  %293 = phi i64 [%178, %$21] ; # E\n  %294 = phi i64 [%179, %$21] ; # A\n  %295 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %296 = phi i64 [%134, %$16], [%289, %$23] ; # Exe\n  %297 = phi i64 [%135, %$16], [%290, %$23] ; # X\n  %298 = phi i64 [%136, %$16], [%291, %$23] ; # R\n  %299 = phi i64 [%137, %$16], [%292, %$23] ; # R2\n  %300 = phi i64 [%138, %$16], [%293, %$23] ; # E\n  %301 = phi i64 [%139, %$16], [%294, %$23] ; # A\n; # (set $At2 R2)\n  %302 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %299, i64* %302\n; # (drop *Safe)\n  %303 = inttoptr i64 %7 to i64*\n  %304 = getelementptr i64, i64* %303, i32 1\n  %305 = load i64, i64* %304\n  %306 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %305, i64* %306\n  ret i64 %298\n}\n\ndefine i64 @_Mini(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R $Nil R2 (save $T) E (push NIL $Nil ZERO (eval...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $T)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %39 = add i64 %30, 24\n; # (link (ofs E 3))\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n  %42 = inttoptr i64 %39 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  store i64 %41, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 %30 to i64*\n  store i64 %39, i64* %45\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$7\n$7:\n  %46 = phi i64 [%0, %$2], [%122, %$15] ; # Exe\n  %47 = phi i64 [%14, %$2], [%123, %$15] ; # X\n  %48 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%124, %$15] ; # R\n  %49 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$2], [%125, %$15] ; # R2\n  %50 = phi i64 [%30, %$2], [%126, %$15] ; # E\n  %51 = phi i64 [%38, %$2], [%127, %$15] ; # A\n  %52 = phi i64 [%30, %$2], [%128, %$15] ; # P\n  %53 = phi i64 [%38, %$2], [%131, %$15] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %54 = inttoptr i64 %47 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$10, label %$9\n$10:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$8\n$9:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$9] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$8\n$11:\n  %65 = phi i64 [%59, %$9] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$8\n$8:\n  %67 = phi i64 [%58, %$10], [%62, %$12], [%65, %$11] ; # X\n  %68 = phi i64 [%58, %$10], [%64, %$12], [%66, %$11] ; # ->\n; # (save (eval (car X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n  %77 = inttoptr i64 %53 to i64*\n  store i64 %68, i64* %77\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %78 = and i64 %68, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$13, label %$14\n$13:\n  %80 = phi i64 [%46, %$8] ; # Exe\n  %81 = phi i64 [%47, %$8] ; # X\n  %82 = phi i64 [%48, %$8] ; # R\n  %83 = phi i64 [%49, %$8] ; # R2\n  %84 = phi i64 [%50, %$8] ; # E\n  %85 = phi i64 [%51, %$8] ; # A\n  %86 = phi i64 [%52, %$8] ; # P\n  %87 = phi i64 [%53, %$8] ; # Q\n  %88 = phi i64 [%68, %$8] ; # V\n; # (car V)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n  br label %$14\n$14:\n  %91 = phi i64 [%46, %$8], [%80, %$13] ; # Exe\n  %92 = phi i64 [%47, %$8], [%81, %$13] ; # X\n  %93 = phi i64 [%48, %$8], [%82, %$13] ; # R\n  %94 = phi i64 [%49, %$8], [%83, %$13] ; # R2\n  %95 = phi i64 [%50, %$8], [%84, %$13] ; # E\n  %96 = phi i64 [%51, %$8], [%85, %$13] ; # A\n  %97 = phi i64 [%52, %$8], [%86, %$13] ; # P\n  %98 = phi i64 [%53, %$8], [%87, %$13] ; # Q\n  %99 = phi i64 [%68, %$8], [%90, %$13] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %100 = alloca i64, i64 5, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = add i64 %101, 8\n  %103 = inttoptr i64 %102 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %103\n  %104 = add i64 %101, 16\n  %105 = inttoptr i64 %104 to i64*\n  store i64 2, i64* %105\n  %106 = add i64 %101, 24\n  %107 = inttoptr i64 %106 to i64*\n  store i64 %99, i64* %107\n  %108 = inttoptr i64 %97 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  store i64 %101, i64* %109\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %110 = add i64 %101, 24\n; # (link (ofs P 3))\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %112 = load i64, i64* %111\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  store i64 %112, i64* %114\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %115\n  %116 = inttoptr i64 %101 to i64*\n  store i64 %110, i64* %116\n; # (? (atom (shift X)))\n; # (shift X)\n  %117 = inttoptr i64 %92 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (atom (shift X))\n  %120 = and i64 %119, 15\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$16, label %$15\n$15:\n  %122 = phi i64 [%91, %$14] ; # Exe\n  %123 = phi i64 [%119, %$14] ; # X\n  %124 = phi i64 [%93, %$14] ; # R\n  %125 = phi i64 [%94, %$14] ; # R2\n  %126 = phi i64 [%95, %$14] ; # E\n  %127 = phi i64 [%96, %$14] ; # A\n  %128 = phi i64 [%101, %$14] ; # P\n  %129 = phi i64 [%98, %$14] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %130 = alloca i64, i64 2, align 16\n  %131 = ptrtoint i64* %130 to i64\n  %132 = inttoptr i64 %129 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  store i64 %131, i64* %133\n  br label %$7\n$16:\n  %134 = phi i64 [%91, %$14] ; # Exe\n  %135 = phi i64 [%119, %$14] ; # X\n  %136 = phi i64 [%93, %$14] ; # R\n  %137 = phi i64 [%94, %$14] ; # R2\n  %138 = phi i64 [%95, %$14] ; # E\n  %139 = phi i64 [%96, %$14] ; # A\n  %140 = phi i64 [%101, %$14] ; # P\n  %141 = phi i64 [%98, %$14] ; # Q\n  %142 = phi i64 [0, %$14] ; # ->\n; # (when (pair (car A)) (loop (let Y (evList E) (when (lt0 (compare ...\n; # (car A)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = load i64, i64* %143\n; # (pair (car A))\n  %145 = and i64 %144, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$17, label %$18\n$17:\n  %147 = phi i64 [%134, %$16] ; # Exe\n  %148 = phi i64 [%135, %$16] ; # X\n  %149 = phi i64 [%136, %$16] ; # R\n  %150 = phi i64 [%137, %$16] ; # R2\n  %151 = phi i64 [%138, %$16] ; # E\n  %152 = phi i64 [%139, %$16] ; # A\n; # (loop (let Y (evList E) (when (lt0 (compare Y R2)) (setq R (caar ...\n  br label %$19\n$19:\n  %153 = phi i64 [%147, %$17], [%281, %$26] ; # Exe\n  %154 = phi i64 [%148, %$17], [%282, %$26] ; # X\n  %155 = phi i64 [%149, %$17], [%283, %$26] ; # R\n  %156 = phi i64 [%150, %$17], [%284, %$26] ; # R2\n  %157 = phi i64 [%151, %$17], [%285, %$26] ; # E\n  %158 = phi i64 [%152, %$17], [%286, %$26] ; # A\n; # (let Y (evList E) (when (lt0 (compare Y R2)) (setq R (caar A)) (s...\n; # (evList E)\n  %159 = call i64 @evList(i64 %157)\n; # (when (lt0 (compare Y R2)) (setq R (caar A)) (setq R2 (safe Y)))\n; # (compare Y R2)\n  %160 = call i64 @compare(i64 %159, i64 %156)\n; # (lt0 (compare Y R2))\n  %161 = icmp slt i64 %160, 0\n  br i1 %161, label %$20, label %$21\n$20:\n  %162 = phi i64 [%153, %$19] ; # Exe\n  %163 = phi i64 [%154, %$19] ; # X\n  %164 = phi i64 [%155, %$19] ; # R\n  %165 = phi i64 [%156, %$19] ; # R2\n  %166 = phi i64 [%157, %$19] ; # E\n  %167 = phi i64 [%158, %$19] ; # A\n  %168 = phi i64 [%159, %$19] ; # Y\n; # (caar A)\n  %169 = inttoptr i64 %167 to i64*\n  %170 = load i64, i64* %169\n  %171 = inttoptr i64 %170 to i64*\n  %172 = load i64, i64* %171\n; # (safe Y)\n  %173 = inttoptr i64 %7 to i64*\n  store i64 %168, i64* %173\n  br label %$21\n$21:\n  %174 = phi i64 [%153, %$19], [%162, %$20] ; # Exe\n  %175 = phi i64 [%154, %$19], [%163, %$20] ; # X\n  %176 = phi i64 [%155, %$19], [%172, %$20] ; # R\n  %177 = phi i64 [%156, %$19], [%168, %$20] ; # R2\n  %178 = phi i64 [%157, %$19], [%166, %$20] ; # E\n  %179 = phi i64 [%158, %$19], [%167, %$20] ; # A\n  %180 = phi i64 [%159, %$19], [%168, %$20] ; # Y\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %181 = inttoptr i64 %179 to i64*\n  %182 = load i64, i64* %181\n  %183 = inttoptr i64 %182 to i64*\n  %184 = getelementptr i64, i64* %183, i32 1\n  %185 = load i64, i64* %184\n  %186 = inttoptr i64 %179 to i64*\n  store i64 %185, i64* %186\n; # (atom (set A (cdar A)))\n  %187 = and i64 %185, 15\n  %188 = icmp ne i64 %187, 0\n  br i1 %188, label %$23, label %$22\n$22:\n  %189 = phi i64 [%174, %$21] ; # Exe\n  %190 = phi i64 [%175, %$21] ; # X\n  %191 = phi i64 [%176, %$21] ; # R\n  %192 = phi i64 [%177, %$21] ; # R2\n  %193 = phi i64 [%178, %$21] ; # E\n  %194 = phi i64 [%179, %$21] ; # A\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %195 = inttoptr i64 %193 to i64*\n  %196 = getelementptr i64, i64* %195, i32 1\n  %197 = load i64, i64* %196\n; # (set 4 P (car @))\n; # (car @)\n  %198 = inttoptr i64 %185 to i64*\n  %199 = load i64, i64* %198\n  %200 = inttoptr i64 %197 to i64*\n  %201 = getelementptr i64, i64* %200, i32 3\n  store i64 %199, i64* %201\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$24\n$24:\n  %202 = phi i64 [%189, %$22], [%270, %$27] ; # Exe\n  %203 = phi i64 [%190, %$22], [%271, %$27] ; # X\n  %204 = phi i64 [%191, %$22], [%272, %$27] ; # R\n  %205 = phi i64 [%192, %$22], [%273, %$27] ; # R2\n  %206 = phi i64 [%193, %$22], [%274, %$27] ; # E\n  %207 = phi i64 [%194, %$22], [%275, %$27] ; # A\n  %208 = phi i64 [%197, %$22], [%276, %$27] ; # P\n  %209 = phi i64 [%194, %$22], [%277, %$27] ; # Q\n; # (shift P)\n  %210 = inttoptr i64 %208 to i64*\n  %211 = getelementptr i64, i64* %210, i32 1\n  %212 = load i64, i64* %211\n; # (pair (shift P))\n  %213 = and i64 %212, 15\n  %214 = icmp eq i64 %213, 0\n  br i1 %214, label %$25, label %$26\n$25:\n  %215 = phi i64 [%202, %$24] ; # Exe\n  %216 = phi i64 [%203, %$24] ; # X\n  %217 = phi i64 [%204, %$24] ; # R\n  %218 = phi i64 [%205, %$24] ; # R2\n  %219 = phi i64 [%206, %$24] ; # E\n  %220 = phi i64 [%207, %$24] ; # A\n  %221 = phi i64 [%212, %$24] ; # P\n  %222 = phi i64 [%209, %$24] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %223 = inttoptr i64 %222 to i64*\n  %224 = getelementptr i64, i64* %223, i32 1\n  %225 = load i64, i64* %224\n; # (car (shift Q))\n  %226 = inttoptr i64 %225 to i64*\n  %227 = load i64, i64* %226\n; # (atom (car (shift Q)))\n  %228 = and i64 %227, 15\n  %229 = icmp ne i64 %228, 0\n  br i1 %229, label %$29, label %$28\n$29:\n  %230 = phi i64 [%215, %$25] ; # Exe\n  %231 = phi i64 [%216, %$25] ; # X\n  %232 = phi i64 [%217, %$25] ; # R\n  %233 = phi i64 [%218, %$25] ; # R2\n  %234 = phi i64 [%219, %$25] ; # E\n  %235 = phi i64 [%220, %$25] ; # A\n  %236 = phi i64 [%221, %$25] ; # P\n  %237 = phi i64 [%225, %$25] ; # Q\n  br label %$27\n$28:\n  %238 = phi i64 [%215, %$25] ; # Exe\n  %239 = phi i64 [%216, %$25] ; # X\n  %240 = phi i64 [%217, %$25] ; # R\n  %241 = phi i64 [%218, %$25] ; # R2\n  %242 = phi i64 [%219, %$25] ; # E\n  %243 = phi i64 [%220, %$25] ; # A\n  %244 = phi i64 [%221, %$25] ; # P\n  %245 = phi i64 [%225, %$25] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %246 = inttoptr i64 %227 to i64*\n  %247 = getelementptr i64, i64* %246, i32 1\n  %248 = load i64, i64* %247\n  %249 = inttoptr i64 %245 to i64*\n  store i64 %248, i64* %249\n; # (atom (set Q (cdr @)))\n  %250 = and i64 %248, 15\n  %251 = icmp ne i64 %250, 0\n  br i1 %251, label %$31, label %$30\n$31:\n  %252 = phi i64 [%238, %$28] ; # Exe\n  %253 = phi i64 [%239, %$28] ; # X\n  %254 = phi i64 [%240, %$28] ; # R\n  %255 = phi i64 [%241, %$28] ; # R2\n  %256 = phi i64 [%242, %$28] ; # E\n  %257 = phi i64 [%243, %$28] ; # A\n  %258 = phi i64 [%244, %$28] ; # P\n  %259 = phi i64 [%245, %$28] ; # Q\n  br label %$27\n$30:\n  %260 = phi i64 [%238, %$28] ; # Exe\n  %261 = phi i64 [%239, %$28] ; # X\n  %262 = phi i64 [%240, %$28] ; # R\n  %263 = phi i64 [%241, %$28] ; # R2\n  %264 = phi i64 [%242, %$28] ; # E\n  %265 = phi i64 [%243, %$28] ; # A\n  %266 = phi i64 [%244, %$28] ; # P\n  %267 = phi i64 [%245, %$28] ; # Q\n; # (car @)\n  %268 = inttoptr i64 %248 to i64*\n  %269 = load i64, i64* %268\n  br label %$27\n$27:\n  %270 = phi i64 [%230, %$29], [%252, %$31], [%260, %$30] ; # Exe\n  %271 = phi i64 [%231, %$29], [%253, %$31], [%261, %$30] ; # X\n  %272 = phi i64 [%232, %$29], [%254, %$31], [%262, %$30] ; # R\n  %273 = phi i64 [%233, %$29], [%255, %$31], [%263, %$30] ; # R2\n  %274 = phi i64 [%234, %$29], [%256, %$31], [%264, %$30] ; # E\n  %275 = phi i64 [%235, %$29], [%257, %$31], [%265, %$30] ; # A\n  %276 = phi i64 [%236, %$29], [%258, %$31], [%266, %$30] ; # P\n  %277 = phi i64 [%237, %$29], [%259, %$31], [%267, %$30] ; # Q\n  %278 = phi i64 [%227, %$29], [%248, %$31], [%269, %$30] ; # ->\n  %279 = inttoptr i64 %221 to i64*\n  %280 = getelementptr i64, i64* %279, i32 3\n  store i64 %278, i64* %280\n  br label %$24\n$26:\n  %281 = phi i64 [%202, %$24] ; # Exe\n  %282 = phi i64 [%203, %$24] ; # X\n  %283 = phi i64 [%204, %$24] ; # R\n  %284 = phi i64 [%205, %$24] ; # R2\n  %285 = phi i64 [%206, %$24] ; # E\n  %286 = phi i64 [%207, %$24] ; # A\n  %287 = phi i64 [%212, %$24] ; # P\n  %288 = phi i64 [%209, %$24] ; # Q\n  br label %$19\n$23:\n  %289 = phi i64 [%174, %$21] ; # Exe\n  %290 = phi i64 [%175, %$21] ; # X\n  %291 = phi i64 [%176, %$21] ; # R\n  %292 = phi i64 [%177, %$21] ; # R2\n  %293 = phi i64 [%178, %$21] ; # E\n  %294 = phi i64 [%179, %$21] ; # A\n  %295 = phi i64 [0, %$21] ; # ->\n  br label %$18\n$18:\n  %296 = phi i64 [%134, %$16], [%289, %$23] ; # Exe\n  %297 = phi i64 [%135, %$16], [%290, %$23] ; # X\n  %298 = phi i64 [%136, %$16], [%291, %$23] ; # R\n  %299 = phi i64 [%137, %$16], [%292, %$23] ; # R2\n  %300 = phi i64 [%138, %$16], [%293, %$23] ; # E\n  %301 = phi i64 [%139, %$16], [%294, %$23] ; # A\n; # (set $At2 R2)\n  %302 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %299, i64* %302\n; # (drop *Safe)\n  %303 = inttoptr i64 %7 to i64*\n  %304 = getelementptr i64, i64* %303, i32 1\n  %305 = load i64, i64* %304\n  %306 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %305, i64* %306\n  ret i64 %298\n}\n\ndefine void @fish(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (set P V)\n  %5 = inttoptr i64 %2 to i64*\n  store i64 %1, i64* %5\n; # (cond ((nil? (evList E)) (when (pair V) (stkChk 0) (unless (nil? ...\n; # (evList E)\n  %6 = call i64 @evList(i64 %0)\n; # (nil? (evList E))\n  %7 = icmp eq i64 %6, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%0, %$1] ; # E\n  %9 = phi i64 [%1, %$1] ; # V\n  %10 = phi i64 [%2, %$1] ; # P\n  %11 = phi i64 [%3, %$1] ; # R\n  %12 = phi i64 [%4, %$1] ; # S\n; # (when (pair V) (stkChk 0) (unless (nil? (cdr V)) (fish E @ P R S)...\n; # (pair V)\n  %13 = and i64 %9, 15\n  %14 = icmp eq i64 %13, 0\n  br i1 %14, label %$5, label %$6\n$5:\n  %15 = phi i64 [%8, %$4] ; # E\n  %16 = phi i64 [%9, %$4] ; # V\n  %17 = phi i64 [%10, %$4] ; # P\n  %18 = phi i64 [%11, %$4] ; # R\n  %19 = phi i64 [%12, %$4] ; # S\n; # (stkChk 0)\n  %20 = load i8*, i8** @$StkLimit\n  %21 = call i8* @llvm.stacksave()\n  %22 = icmp ugt i8* %20, %21\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [0, %$5] ; # Exe\n  call void @stkErr(i64 %23)\n  unreachable\n$8:\n  %24 = phi i64 [0, %$5] ; # Exe\n; # (unless (nil? (cdr V)) (fish E @ P R S))\n; # (cdr V)\n  %25 = inttoptr i64 %16 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n; # (nil? (cdr V))\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %28, label %$10, label %$9\n$9:\n  %29 = phi i64 [%15, %$8] ; # E\n  %30 = phi i64 [%16, %$8] ; # V\n  %31 = phi i64 [%17, %$8] ; # P\n  %32 = phi i64 [%18, %$8] ; # R\n  %33 = phi i64 [%19, %$8] ; # S\n; # (fish E @ P R S)\n  call void @fish(i64 %29, i64 %27, i64 %31, i64 %32, i64 %33)\n  br label %$10\n$10:\n  %34 = phi i64 [%15, %$8], [%29, %$9] ; # E\n  %35 = phi i64 [%16, %$8], [%30, %$9] ; # V\n  %36 = phi i64 [%17, %$8], [%31, %$9] ; # P\n  %37 = phi i64 [%18, %$8], [%32, %$9] ; # R\n  %38 = phi i64 [%19, %$8], [%33, %$9] ; # S\n; # (car V)\n  %39 = inttoptr i64 %35 to i64*\n  %40 = load i64, i64* %39\n; # (fish E (car V) P R S)\n  call void @fish(i64 %34, i64 %40, i64 %36, i64 %37, i64 %38)\n  br label %$6\n$6:\n  %41 = phi i64 [%8, %$4], [%34, %$10] ; # E\n  %42 = phi i64 [%9, %$4], [%35, %$10] ; # V\n  %43 = phi i64 [%10, %$4], [%36, %$10] ; # P\n  %44 = phi i64 [%11, %$4], [%37, %$10] ; # R\n  %45 = phi i64 [%12, %$4], [%38, %$10] ; # S\n  br label %$2\n$3:\n  %46 = phi i64 [%0, %$1] ; # E\n  %47 = phi i64 [%1, %$1] ; # V\n  %48 = phi i64 [%2, %$1] ; # P\n  %49 = phi i64 [%3, %$1] ; # R\n  %50 = phi i64 [%4, %$1] ; # S\n; # (<> @ S)\n  %51 = icmp ne i64 %6, %50\n  br i1 %51, label %$12, label %$11\n$12:\n  %52 = phi i64 [%46, %$3] ; # E\n  %53 = phi i64 [%47, %$3] ; # V\n  %54 = phi i64 [%48, %$3] ; # P\n  %55 = phi i64 [%49, %$3] ; # R\n  %56 = phi i64 [%50, %$3] ; # S\n; # (set R (cons V (val R)))\n; # (val R)\n  %57 = inttoptr i64 %55 to i64*\n  %58 = load i64, i64* %57\n; # (cons V (val R))\n  %59 = call i64 @cons(i64 %53, i64 %58)\n  %60 = inttoptr i64 %55 to i64*\n  store i64 %59, i64* %60\n  br label %$2\n$11:\n  %61 = phi i64 [%46, %$3] ; # E\n  %62 = phi i64 [%47, %$3] ; # V\n  %63 = phi i64 [%48, %$3] ; # P\n  %64 = phi i64 [%49, %$3] ; # R\n  %65 = phi i64 [%50, %$3] ; # S\n  br label %$2\n$2:\n  %66 = phi i64 [%41, %$6], [%52, %$12], [%61, %$11] ; # E\n  %67 = phi i64 [%42, %$6], [%53, %$12], [%62, %$11] ; # V\n  %68 = phi i64 [%43, %$6], [%54, %$12], [%63, %$11] ; # P\n  %69 = phi i64 [%44, %$6], [%55, %$12], [%64, %$11] ; # R\n  %70 = phi i64 [%45, %$6], [%56, %$12], [%65, %$11] ; # S\n  ret void\n}\n\ndefine i64 @_Fish(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (link (push $Nil NIL) T) P (push NIL $Nil ZER...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (push $Nil NIL)\n  %4 = alloca i64, i64 2, align 16\n  %5 = ptrtoint i64* %4 to i64\n  %6 = inttoptr i64 %5 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %6\n; # (link (push $Nil NIL) T)\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %8 = load i64, i64* %7\n  %9 = inttoptr i64 %5 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  store i64 %8, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %5, i64* %11\n; # (push NIL $Nil ZERO NIL)\n  %12 = alloca i64, i64 4, align 16\n  %13 = ptrtoint i64* %12 to i64\n  %14 = add i64 %13, 8\n  %15 = inttoptr i64 %14 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %15\n  %16 = add i64 %13, 16\n  %17 = inttoptr i64 %16 to i64*\n  store i64 2, i64* %17\n; # (++ X)\n  %18 = inttoptr i64 %3 to i64*\n  %19 = getelementptr i64, i64* %18, i32 1\n  %20 = load i64, i64* %19\n  %21 = load i64, i64* %18\n; # (eval (++ X))\n  %22 = and i64 %21, 6\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$4, label %$3\n$4:\n  %24 = phi i64 [%21, %$1] ; # X\n  br label %$2\n$3:\n  %25 = phi i64 [%21, %$1] ; # X\n  %26 = and i64 %25, 8\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$6, label %$5\n$6:\n  %28 = phi i64 [%25, %$3] ; # X\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n  br label %$2\n$5:\n  %31 = phi i64 [%25, %$3] ; # X\n  %32 = call i64 @evList(i64 %31)\n  br label %$2\n$2:\n  %33 = phi i64 [%24, %$4], [%28, %$6], [%31, %$5] ; # X\n  %34 = phi i64 [%24, %$4], [%30, %$6], [%32, %$5] ; # ->\n; # (push NIL P ZERO (eval (++ X)) NIL)\n  %35 = alloca i64, i64 5, align 16\n  %36 = ptrtoint i64* %35 to i64\n  %37 = add i64 %36, 8\n  %38 = inttoptr i64 %37 to i64*\n  store i64 %13, i64* %38\n  %39 = add i64 %36, 16\n  %40 = inttoptr i64 %39 to i64*\n  store i64 2, i64* %40\n  %41 = add i64 %36, 24\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %34, i64* %42\n; # (set P (ofs P 3) E (link (ofs E 3)))\n; # (ofs P 3)\n  %43 = add i64 %13, 24\n  %44 = inttoptr i64 %13 to i64*\n  store i64 %43, i64* %44\n; # (ofs E 3)\n  %45 = add i64 %36, 24\n; # (link (ofs E 3))\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = inttoptr i64 %45 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  store i64 %47, i64* %49\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 %36 to i64*\n  store i64 %45, i64* %51\n; # (let (V (save (eval (++ X))) S (save (eval (car X))) Q P) (while ...\n; # (++ X)\n  %52 = inttoptr i64 %20 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = load i64, i64* %52\n; # (eval (++ X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$9, label %$8\n$9:\n  %58 = phi i64 [%55, %$2] ; # X\n  br label %$7\n$8:\n  %59 = phi i64 [%55, %$2] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$11, label %$10\n$11:\n  %62 = phi i64 [%59, %$8] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$7\n$10:\n  %65 = phi i64 [%59, %$8] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$7\n$7:\n  %67 = phi i64 [%58, %$9], [%62, %$11], [%65, %$10] ; # X\n  %68 = phi i64 [%58, %$9], [%64, %$11], [%66, %$10] ; # ->\n; # (save (eval (++ X)))\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %70 = load i64, i64* %69\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = add i64 %72, 8\n  %75 = inttoptr i64 %74 to i64*\n  store i64 %70, i64* %75\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %76\n; # (car X)\n  %77 = inttoptr i64 %54 to i64*\n  %78 = load i64, i64* %77\n; # (eval (car X))\n  %79 = and i64 %78, 6\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$14, label %$13\n$14:\n  %81 = phi i64 [%78, %$7] ; # X\n  br label %$12\n$13:\n  %82 = phi i64 [%78, %$7] ; # X\n  %83 = and i64 %82, 8\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$16, label %$15\n$16:\n  %85 = phi i64 [%82, %$13] ; # X\n  %86 = inttoptr i64 %85 to i64*\n  %87 = load i64, i64* %86\n  br label %$12\n$15:\n  %88 = phi i64 [%82, %$13] ; # X\n  %89 = call i64 @evList(i64 %88)\n  br label %$12\n$12:\n  %90 = phi i64 [%81, %$14], [%85, %$16], [%88, %$15] ; # X\n  %91 = phi i64 [%81, %$14], [%87, %$16], [%89, %$15] ; # ->\n; # (save (eval (car X)))\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %93 = load i64, i64* %92\n  %94 = alloca i64, i64 2, align 16\n  %95 = ptrtoint i64* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %91, i64* %96\n  %97 = add i64 %95, 8\n  %98 = inttoptr i64 %97 to i64*\n  store i64 %93, i64* %98\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %95, i64* %99\n; # (while (pair (shift X)) (setq Q (set 2 Q (push NIL $Nil ZERO (eva...\n  br label %$17\n$17:\n  %100 = phi i64 [%0, %$12], [%113, %$20] ; # Exe\n  %101 = phi i64 [%54, %$12], [%114, %$20] ; # X\n  %102 = phi i64 [%5, %$12], [%115, %$20] ; # R\n  %103 = phi i64 [%13, %$12], [%116, %$20] ; # P\n  %104 = phi i64 [%36, %$12], [%117, %$20] ; # E\n  %105 = phi i64 [%68, %$12], [%118, %$20] ; # V\n  %106 = phi i64 [%91, %$12], [%119, %$20] ; # S\n  %107 = phi i64 [%13, %$12], [%137, %$20] ; # Q\n; # (shift X)\n  %108 = inttoptr i64 %101 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  %110 = load i64, i64* %109\n; # (pair (shift X))\n  %111 = and i64 %110, 15\n  %112 = icmp eq i64 %111, 0\n  br i1 %112, label %$18, label %$19\n$18:\n  %113 = phi i64 [%100, %$17] ; # Exe\n  %114 = phi i64 [%110, %$17] ; # X\n  %115 = phi i64 [%102, %$17] ; # R\n  %116 = phi i64 [%103, %$17] ; # P\n  %117 = phi i64 [%104, %$17] ; # E\n  %118 = phi i64 [%105, %$17] ; # V\n  %119 = phi i64 [%106, %$17] ; # S\n  %120 = phi i64 [%107, %$17] ; # Q\n; # (set 2 Q (push NIL $Nil ZERO (eval (car X)) NIL))\n; # (car X)\n  %121 = inttoptr i64 %114 to i64*\n  %122 = load i64, i64* %121\n; # (eval (car X))\n  %123 = and i64 %122, 6\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$22, label %$21\n$22:\n  %125 = phi i64 [%122, %$18] ; # X\n  br label %$20\n$21:\n  %126 = phi i64 [%122, %$18] ; # X\n  %127 = and i64 %126, 8\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$24, label %$23\n$24:\n  %129 = phi i64 [%126, %$21] ; # X\n  %130 = inttoptr i64 %129 to i64*\n  %131 = load i64, i64* %130\n  br label %$20\n$23:\n  %132 = phi i64 [%126, %$21] ; # X\n  %133 = call i64 @evList(i64 %132)\n  br label %$20\n$20:\n  %134 = phi i64 [%125, %$22], [%129, %$24], [%132, %$23] ; # X\n  %135 = phi i64 [%125, %$22], [%131, %$24], [%133, %$23] ; # ->\n; # (push NIL $Nil ZERO (eval (car X)) NIL)\n  %136 = alloca i64, i64 5, align 16\n  %137 = ptrtoint i64* %136 to i64\n  %138 = add i64 %137, 8\n  %139 = inttoptr i64 %138 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %139\n  %140 = add i64 %137, 16\n  %141 = inttoptr i64 %140 to i64*\n  store i64 2, i64* %141\n  %142 = add i64 %137, 24\n  %143 = inttoptr i64 %142 to i64*\n  store i64 %135, i64* %143\n  %144 = inttoptr i64 %120 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  store i64 %137, i64* %145\n; # (set Q (link (ofs Q 3)))\n; # (ofs Q 3)\n  %146 = add i64 %137, 24\n; # (link (ofs Q 3))\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %148 = load i64, i64* %147\n  %149 = inttoptr i64 %146 to i64*\n  %150 = getelementptr i64, i64* %149, i32 1\n  store i64 %148, i64* %150\n  %151 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %146, i64* %151\n  %152 = inttoptr i64 %137 to i64*\n  store i64 %146, i64* %152\n  br label %$17\n$19:\n  %153 = phi i64 [%100, %$17] ; # Exe\n  %154 = phi i64 [%110, %$17] ; # X\n  %155 = phi i64 [%102, %$17] ; # R\n  %156 = phi i64 [%103, %$17] ; # P\n  %157 = phi i64 [%104, %$17] ; # E\n  %158 = phi i64 [%105, %$17] ; # V\n  %159 = phi i64 [%106, %$17] ; # S\n  %160 = phi i64 [%107, %$17] ; # Q\n; # (ofs P 3)\n  %161 = add i64 %156, 24\n; # (fish E V (ofs P 3) R S)\n  call void @fish(i64 %157, i64 %158, i64 %161, i64 %155, i64 %159)\n; # (val R)\n  %162 = inttoptr i64 %155 to i64*\n  %163 = load i64, i64* %162\n; # (drop *Safe)\n  %164 = inttoptr i64 %5 to i64*\n  %165 = getelementptr i64, i64* %164, i32 1\n  %166 = load i64, i64* %165\n  %167 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %166, i64* %167\n  ret i64 %163\n}\n\ndefine i64 @_By(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil) L 0 E (push NIL $Nil ZERO (eval (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (++ X)\n  %12 = inttoptr i64 %3 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n  %15 = load i64, i64* %12\n; # (eval (++ X))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$4, label %$3\n$4:\n  %18 = phi i64 [%15, %$1] ; # X\n  br label %$2\n$3:\n  %19 = phi i64 [%15, %$1] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%19, %$3] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$2\n$5:\n  %25 = phi i64 [%19, %$3] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$2\n$2:\n  %27 = phi i64 [%18, %$4], [%22, %$6], [%25, %$5] ; # X\n  %28 = phi i64 [%18, %$4], [%24, %$6], [%26, %$5] ; # ->\n; # (push NIL $Nil ZERO (eval (++ X)) NIL)\n  %29 = alloca i64, i64 5, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = add i64 %30, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %32\n  %33 = add i64 %30, 16\n  %34 = inttoptr i64 %33 to i64*\n  store i64 2, i64* %34\n  %35 = add i64 %30, 24\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %28, i64* %36\n; # (push NIL NIL)\n  %37 = alloca i64, i64 2, align 16\n  %38 = ptrtoint i64* %37 to i64\n; # (++ X)\n  %39 = inttoptr i64 %14 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = load i64, i64* %39\n; # (eval (++ X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$9, label %$8\n$9:\n  %45 = phi i64 [%42, %$2] ; # X\n  br label %$7\n$8:\n  %46 = phi i64 [%42, %$2] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$11, label %$10\n$11:\n  %49 = phi i64 [%46, %$8] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$7\n$10:\n  %52 = phi i64 [%46, %$8] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$7\n$7:\n  %54 = phi i64 [%45, %$9], [%49, %$11], [%52, %$10] ; # X\n  %55 = phi i64 [%45, %$9], [%51, %$11], [%53, %$10] ; # ->\n; # (save (eval (++ X)))\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %57 = load i64, i64* %56\n  %58 = alloca i64, i64 2, align 16\n  %59 = ptrtoint i64* %58 to i64\n  %60 = inttoptr i64 %59 to i64*\n  store i64 %55, i64* %60\n  %61 = add i64 %59, 8\n  %62 = inttoptr i64 %61 to i64*\n  store i64 %57, i64* %62\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %59, i64* %63\n; # (set E (link (ofs E 3)))\n; # (ofs E 3)\n  %64 = add i64 %30, 24\n; # (link (ofs E 3))\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %66 = load i64, i64* %65\n  %67 = inttoptr i64 %64 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  store i64 %66, i64* %68\n  %69 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %64, i64* %69\n  %70 = inttoptr i64 %30 to i64*\n  store i64 %64, i64* %70\n; # (let (P E Q A) (loop (let V (set Q (save (eval (car X)))) (when (...\n; # (loop (let V (set Q (save (eval (car X)))) (when (pair V) (setq V...\n  br label %$12\n$12:\n  %71 = phi i64 [%0, %$7], [%153, %$20] ; # Exe\n  %72 = phi i64 [%41, %$7], [%154, %$20] ; # X\n  %73 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [%155, %$20] ; # R\n  %74 = phi i64 [0, %$7], [%156, %$20] ; # L\n  %75 = phi i64 [%30, %$7], [%157, %$20] ; # E\n  %76 = phi i64 [%38, %$7], [%158, %$20] ; # A\n  %77 = phi i64 [%55, %$7], [%159, %$20] ; # Fun2\n  %78 = phi i64 [%38, %$7], [%160, %$20] ; # A2\n  %79 = phi i64 [%30, %$7], [%161, %$20] ; # P\n  %80 = phi i64 [%38, %$7], [%164, %$20] ; # Q\n; # (let V (set Q (save (eval (car X)))) (when (pair V) (setq V (car ...\n; # (set Q (save (eval (car X))))\n; # (car X)\n  %81 = inttoptr i64 %72 to i64*\n  %82 = load i64, i64* %81\n; # (eval (car X))\n  %83 = and i64 %82, 6\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$15, label %$14\n$15:\n  %85 = phi i64 [%82, %$12] ; # X\n  br label %$13\n$14:\n  %86 = phi i64 [%82, %$12] ; # X\n  %87 = and i64 %86, 8\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$17, label %$16\n$17:\n  %89 = phi i64 [%86, %$14] ; # X\n  %90 = inttoptr i64 %89 to i64*\n  %91 = load i64, i64* %90\n  br label %$13\n$16:\n  %92 = phi i64 [%86, %$14] ; # X\n  %93 = call i64 @evList(i64 %92)\n  br label %$13\n$13:\n  %94 = phi i64 [%85, %$15], [%89, %$17], [%92, %$16] ; # X\n  %95 = phi i64 [%85, %$15], [%91, %$17], [%93, %$16] ; # ->\n; # (save (eval (car X)))\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %97 = load i64, i64* %96\n  %98 = alloca i64, i64 2, align 16\n  %99 = ptrtoint i64* %98 to i64\n  %100 = inttoptr i64 %99 to i64*\n  store i64 %95, i64* %100\n  %101 = add i64 %99, 8\n  %102 = inttoptr i64 %101 to i64*\n  store i64 %97, i64* %102\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %103\n  %104 = inttoptr i64 %80 to i64*\n  store i64 %95, i64* %104\n; # (when (pair V) (setq V (car V)))\n; # (pair V)\n  %105 = and i64 %95, 15\n  %106 = icmp eq i64 %105, 0\n  br i1 %106, label %$18, label %$19\n$18:\n  %107 = phi i64 [%71, %$13] ; # Exe\n  %108 = phi i64 [%72, %$13] ; # X\n  %109 = phi i64 [%73, %$13] ; # R\n  %110 = phi i64 [%74, %$13] ; # L\n  %111 = phi i64 [%75, %$13] ; # E\n  %112 = phi i64 [%76, %$13] ; # A\n  %113 = phi i64 [%77, %$13] ; # Fun2\n  %114 = phi i64 [%78, %$13] ; # A2\n  %115 = phi i64 [%79, %$13] ; # P\n  %116 = phi i64 [%80, %$13] ; # Q\n  %117 = phi i64 [%95, %$13] ; # V\n; # (car V)\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n  br label %$19\n$19:\n  %120 = phi i64 [%71, %$13], [%107, %$18] ; # Exe\n  %121 = phi i64 [%72, %$13], [%108, %$18] ; # X\n  %122 = phi i64 [%73, %$13], [%109, %$18] ; # R\n  %123 = phi i64 [%74, %$13], [%110, %$18] ; # L\n  %124 = phi i64 [%75, %$13], [%111, %$18] ; # E\n  %125 = phi i64 [%76, %$13], [%112, %$18] ; # A\n  %126 = phi i64 [%77, %$13], [%113, %$18] ; # Fun2\n  %127 = phi i64 [%78, %$13], [%114, %$18] ; # A2\n  %128 = phi i64 [%79, %$13], [%115, %$18] ; # P\n  %129 = phi i64 [%80, %$13], [%116, %$18] ; # Q\n  %130 = phi i64 [%95, %$13], [%119, %$18] ; # V\n; # (set 2 P (push NIL $Nil ZERO V NIL))\n; # (push NIL $Nil ZERO V NIL)\n  %131 = alloca i64, i64 5, align 16\n  %132 = ptrtoint i64* %131 to i64\n  %133 = add i64 %132, 8\n  %134 = inttoptr i64 %133 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %134\n  %135 = add i64 %132, 16\n  %136 = inttoptr i64 %135 to i64*\n  store i64 2, i64* %136\n  %137 = add i64 %132, 24\n  %138 = inttoptr i64 %137 to i64*\n  store i64 %130, i64* %138\n  %139 = inttoptr i64 %128 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  store i64 %132, i64* %140\n; # (set P (link (ofs P 3)))\n; # (ofs P 3)\n  %141 = add i64 %132, 24\n; # (link (ofs P 3))\n  %142 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %143 = load i64, i64* %142\n  %144 = inttoptr i64 %141 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  store i64 %143, i64* %145\n  %146 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %141, i64* %146\n  %147 = inttoptr i64 %132 to i64*\n  store i64 %141, i64* %147\n; # (? (atom (shift X)))\n; # (shift X)\n  %148 = inttoptr i64 %121 to i64*\n  %149 = getelementptr i64, i64* %148, i32 1\n  %150 = load i64, i64* %149\n; # (atom (shift X))\n  %151 = and i64 %150, 15\n  %152 = icmp ne i64 %151, 0\n  br i1 %152, label %$21, label %$20\n$20:\n  %153 = phi i64 [%120, %$19] ; # Exe\n  %154 = phi i64 [%150, %$19] ; # X\n  %155 = phi i64 [%122, %$19] ; # R\n  %156 = phi i64 [%123, %$19] ; # L\n  %157 = phi i64 [%124, %$19] ; # E\n  %158 = phi i64 [%125, %$19] ; # A\n  %159 = phi i64 [%126, %$19] ; # Fun2\n  %160 = phi i64 [%127, %$19] ; # A2\n  %161 = phi i64 [%132, %$19] ; # P\n  %162 = phi i64 [%129, %$19] ; # Q\n; # (set 2 Q (push NIL NIL))\n; # (push NIL NIL)\n  %163 = alloca i64, i64 2, align 16\n  %164 = ptrtoint i64* %163 to i64\n  %165 = inttoptr i64 %162 to i64*\n  %166 = getelementptr i64, i64* %165, i32 1\n  store i64 %164, i64* %166\n  br label %$12\n$21:\n  %167 = phi i64 [%120, %$19] ; # Exe\n  %168 = phi i64 [%150, %$19] ; # X\n  %169 = phi i64 [%122, %$19] ; # R\n  %170 = phi i64 [%123, %$19] ; # L\n  %171 = phi i64 [%124, %$19] ; # E\n  %172 = phi i64 [%125, %$19] ; # A\n  %173 = phi i64 [%126, %$19] ; # Fun2\n  %174 = phi i64 [%127, %$19] ; # A2\n  %175 = phi i64 [%132, %$19] ; # P\n  %176 = phi i64 [%129, %$19] ; # Q\n  %177 = phi i64 [0, %$19] ; # ->\n; # (when (pair (car A)) (loop (let Y (cons (cons (evList E) (caar A)...\n; # (car A)\n  %178 = inttoptr i64 %172 to i64*\n  %179 = load i64, i64* %178\n; # (pair (car A))\n  %180 = and i64 %179, 15\n  %181 = icmp eq i64 %180, 0\n  br i1 %181, label %$22, label %$23\n$22:\n  %182 = phi i64 [%167, %$21] ; # Exe\n  %183 = phi i64 [%168, %$21] ; # X\n  %184 = phi i64 [%169, %$21] ; # R\n  %185 = phi i64 [%170, %$21] ; # L\n  %186 = phi i64 [%171, %$21] ; # E\n  %187 = phi i64 [%172, %$21] ; # A\n  %188 = phi i64 [%173, %$21] ; # Fun2\n  %189 = phi i64 [%174, %$21] ; # A2\n; # (loop (let Y (cons (cons (evList E) (caar A)) $Nil) (setq L (if L...\n  br label %$24\n$24:\n  %190 = phi i64 [%182, %$22], [%353, %$32] ; # Exe\n  %191 = phi i64 [%183, %$22], [%354, %$32] ; # X\n  %192 = phi i64 [%184, %$22], [%355, %$32] ; # R\n  %193 = phi i64 [%185, %$22], [%356, %$32] ; # L\n  %194 = phi i64 [%186, %$22], [%357, %$32] ; # E\n  %195 = phi i64 [%187, %$22], [%358, %$32] ; # A\n  %196 = phi i64 [%188, %$22], [%359, %$32] ; # Fun2\n  %197 = phi i64 [%189, %$22], [%360, %$32] ; # A2\n; # (let Y (cons (cons (evList E) (caar A)) $Nil) (setq L (if L (set ...\n; # (evList E)\n  %198 = call i64 @evList(i64 %194)\n; # (caar A)\n  %199 = inttoptr i64 %195 to i64*\n  %200 = load i64, i64* %199\n  %201 = inttoptr i64 %200 to i64*\n  %202 = load i64, i64* %201\n; # (cons (evList E) (caar A))\n  %203 = call i64 @cons(i64 %198, i64 %202)\n; # (cons (cons (evList E) (caar A)) $Nil)\n  %204 = call i64 @cons(i64 %203, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if L (set 2 L Y) (setq R (safe Y)))\n  %205 = icmp ne i64 %193, 0\n  br i1 %205, label %$25, label %$26\n$25:\n  %206 = phi i64 [%190, %$24] ; # Exe\n  %207 = phi i64 [%191, %$24] ; # X\n  %208 = phi i64 [%192, %$24] ; # R\n  %209 = phi i64 [%193, %$24] ; # L\n  %210 = phi i64 [%194, %$24] ; # E\n  %211 = phi i64 [%195, %$24] ; # A\n  %212 = phi i64 [%196, %$24] ; # Fun2\n  %213 = phi i64 [%197, %$24] ; # A2\n  %214 = phi i64 [%204, %$24] ; # Y\n; # (set 2 L Y)\n  %215 = inttoptr i64 %209 to i64*\n  %216 = getelementptr i64, i64* %215, i32 1\n  store i64 %214, i64* %216\n  br label %$27\n$26:\n  %217 = phi i64 [%190, %$24] ; # Exe\n  %218 = phi i64 [%191, %$24] ; # X\n  %219 = phi i64 [%192, %$24] ; # R\n  %220 = phi i64 [%193, %$24] ; # L\n  %221 = phi i64 [%194, %$24] ; # E\n  %222 = phi i64 [%195, %$24] ; # A\n  %223 = phi i64 [%196, %$24] ; # Fun2\n  %224 = phi i64 [%197, %$24] ; # A2\n  %225 = phi i64 [%204, %$24] ; # Y\n; # (safe Y)\n  %226 = inttoptr i64 %7 to i64*\n  store i64 %225, i64* %226\n  br label %$27\n$27:\n  %227 = phi i64 [%206, %$25], [%217, %$26] ; # Exe\n  %228 = phi i64 [%207, %$25], [%218, %$26] ; # X\n  %229 = phi i64 [%208, %$25], [%225, %$26] ; # R\n  %230 = phi i64 [%209, %$25], [%220, %$26] ; # L\n  %231 = phi i64 [%210, %$25], [%221, %$26] ; # E\n  %232 = phi i64 [%211, %$25], [%222, %$26] ; # A\n  %233 = phi i64 [%212, %$25], [%223, %$26] ; # Fun2\n  %234 = phi i64 [%213, %$25], [%224, %$26] ; # A2\n  %235 = phi i64 [%214, %$25], [%225, %$26] ; # Y\n  %236 = phi i64 [%214, %$25], [%225, %$26] ; # ->\n; # (? (atom (set A (cdar A))))\n; # (set A (cdar A))\n; # (cdar A)\n  %237 = inttoptr i64 %232 to i64*\n  %238 = load i64, i64* %237\n  %239 = inttoptr i64 %238 to i64*\n  %240 = getelementptr i64, i64* %239, i32 1\n  %241 = load i64, i64* %240\n  %242 = inttoptr i64 %232 to i64*\n  store i64 %241, i64* %242\n; # (atom (set A (cdar A)))\n  %243 = and i64 %241, 15\n  %244 = icmp ne i64 %243, 0\n  br i1 %244, label %$29, label %$28\n$28:\n  %245 = phi i64 [%227, %$27] ; # Exe\n  %246 = phi i64 [%228, %$27] ; # X\n  %247 = phi i64 [%229, %$27] ; # R\n  %248 = phi i64 [%236, %$27] ; # L\n  %249 = phi i64 [%231, %$27] ; # E\n  %250 = phi i64 [%232, %$27] ; # A\n  %251 = phi i64 [%233, %$27] ; # Fun2\n  %252 = phi i64 [%234, %$27] ; # A2\n; # (let (P (val 2 E) Q A) (set 4 P (car @)) (while (pair (shift P)) ...\n; # (val 2 E)\n  %253 = inttoptr i64 %249 to i64*\n  %254 = getelementptr i64, i64* %253, i32 1\n  %255 = load i64, i64* %254\n; # (set 4 P (car @))\n; # (car @)\n  %256 = inttoptr i64 %241 to i64*\n  %257 = load i64, i64* %256\n  %258 = inttoptr i64 %255 to i64*\n  %259 = getelementptr i64, i64* %258, i32 3\n  store i64 %257, i64* %259\n; # (while (pair (shift P)) (set 4 P (cond ((atom (car (shift Q))) @)...\n  br label %$30\n$30:\n  %260 = phi i64 [%245, %$28], [%340, %$33] ; # Exe\n  %261 = phi i64 [%246, %$28], [%341, %$33] ; # X\n  %262 = phi i64 [%247, %$28], [%342, %$33] ; # R\n  %263 = phi i64 [%248, %$28], [%343, %$33] ; # L\n  %264 = phi i64 [%249, %$28], [%344, %$33] ; # E\n  %265 = phi i64 [%250, %$28], [%345, %$33] ; # A\n  %266 = phi i64 [%251, %$28], [%346, %$33] ; # Fun2\n  %267 = phi i64 [%252, %$28], [%347, %$33] ; # A2\n  %268 = phi i64 [%255, %$28], [%348, %$33] ; # P\n  %269 = phi i64 [%250, %$28], [%349, %$33] ; # Q\n; # (shift P)\n  %270 = inttoptr i64 %268 to i64*\n  %271 = getelementptr i64, i64* %270, i32 1\n  %272 = load i64, i64* %271\n; # (pair (shift P))\n  %273 = and i64 %272, 15\n  %274 = icmp eq i64 %273, 0\n  br i1 %274, label %$31, label %$32\n$31:\n  %275 = phi i64 [%260, %$30] ; # Exe\n  %276 = phi i64 [%261, %$30] ; # X\n  %277 = phi i64 [%262, %$30] ; # R\n  %278 = phi i64 [%263, %$30] ; # L\n  %279 = phi i64 [%264, %$30] ; # E\n  %280 = phi i64 [%265, %$30] ; # A\n  %281 = phi i64 [%266, %$30] ; # Fun2\n  %282 = phi i64 [%267, %$30] ; # A2\n  %283 = phi i64 [%272, %$30] ; # P\n  %284 = phi i64 [%269, %$30] ; # Q\n; # (set 4 P (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @)))...\n; # (cond ((atom (car (shift Q))) @) ((atom (set Q (cdr @))) @) (T (c...\n; # (shift Q)\n  %285 = inttoptr i64 %284 to i64*\n  %286 = getelementptr i64, i64* %285, i32 1\n  %287 = load i64, i64* %286\n; # (car (shift Q))\n  %288 = inttoptr i64 %287 to i64*\n  %289 = load i64, i64* %288\n; # (atom (car (shift Q)))\n  %290 = and i64 %289, 15\n  %291 = icmp ne i64 %290, 0\n  br i1 %291, label %$35, label %$34\n$35:\n  %292 = phi i64 [%275, %$31] ; # Exe\n  %293 = phi i64 [%276, %$31] ; # X\n  %294 = phi i64 [%277, %$31] ; # R\n  %295 = phi i64 [%278, %$31] ; # L\n  %296 = phi i64 [%279, %$31] ; # E\n  %297 = phi i64 [%280, %$31] ; # A\n  %298 = phi i64 [%281, %$31] ; # Fun2\n  %299 = phi i64 [%282, %$31] ; # A2\n  %300 = phi i64 [%283, %$31] ; # P\n  %301 = phi i64 [%287, %$31] ; # Q\n  br label %$33\n$34:\n  %302 = phi i64 [%275, %$31] ; # Exe\n  %303 = phi i64 [%276, %$31] ; # X\n  %304 = phi i64 [%277, %$31] ; # R\n  %305 = phi i64 [%278, %$31] ; # L\n  %306 = phi i64 [%279, %$31] ; # E\n  %307 = phi i64 [%280, %$31] ; # A\n  %308 = phi i64 [%281, %$31] ; # Fun2\n  %309 = phi i64 [%282, %$31] ; # A2\n  %310 = phi i64 [%283, %$31] ; # P\n  %311 = phi i64 [%287, %$31] ; # Q\n; # (set Q (cdr @))\n; # (cdr @)\n  %312 = inttoptr i64 %289 to i64*\n  %313 = getelementptr i64, i64* %312, i32 1\n  %314 = load i64, i64* %313\n  %315 = inttoptr i64 %311 to i64*\n  store i64 %314, i64* %315\n; # (atom (set Q (cdr @)))\n  %316 = and i64 %314, 15\n  %317 = icmp ne i64 %316, 0\n  br i1 %317, label %$37, label %$36\n$37:\n  %318 = phi i64 [%302, %$34] ; # Exe\n  %319 = phi i64 [%303, %$34] ; # X\n  %320 = phi i64 [%304, %$34] ; # R\n  %321 = phi i64 [%305, %$34] ; # L\n  %322 = phi i64 [%306, %$34] ; # E\n  %323 = phi i64 [%307, %$34] ; # A\n  %324 = phi i64 [%308, %$34] ; # Fun2\n  %325 = phi i64 [%309, %$34] ; # A2\n  %326 = phi i64 [%310, %$34] ; # P\n  %327 = phi i64 [%311, %$34] ; # Q\n  br label %$33\n$36:\n  %328 = phi i64 [%302, %$34] ; # Exe\n  %329 = phi i64 [%303, %$34] ; # X\n  %330 = phi i64 [%304, %$34] ; # R\n  %331 = phi i64 [%305, %$34] ; # L\n  %332 = phi i64 [%306, %$34] ; # E\n  %333 = phi i64 [%307, %$34] ; # A\n  %334 = phi i64 [%308, %$34] ; # Fun2\n  %335 = phi i64 [%309, %$34] ; # A2\n  %336 = phi i64 [%310, %$34] ; # P\n  %337 = phi i64 [%311, %$34] ; # Q\n; # (car @)\n  %338 = inttoptr i64 %314 to i64*\n  %339 = load i64, i64* %338\n  br label %$33\n$33:\n  %340 = phi i64 [%292, %$35], [%318, %$37], [%328, %$36] ; # Exe\n  %341 = phi i64 [%293, %$35], [%319, %$37], [%329, %$36] ; # X\n  %342 = phi i64 [%294, %$35], [%320, %$37], [%330, %$36] ; # R\n  %343 = phi i64 [%295, %$35], [%321, %$37], [%331, %$36] ; # L\n  %344 = phi i64 [%296, %$35], [%322, %$37], [%332, %$36] ; # E\n  %345 = phi i64 [%297, %$35], [%323, %$37], [%333, %$36] ; # A\n  %346 = phi i64 [%298, %$35], [%324, %$37], [%334, %$36] ; # Fun2\n  %347 = phi i64 [%299, %$35], [%325, %$37], [%335, %$36] ; # A2\n  %348 = phi i64 [%300, %$35], [%326, %$37], [%336, %$36] ; # P\n  %349 = phi i64 [%301, %$35], [%327, %$37], [%337, %$36] ; # Q\n  %350 = phi i64 [%289, %$35], [%314, %$37], [%339, %$36] ; # ->\n  %351 = inttoptr i64 %283 to i64*\n  %352 = getelementptr i64, i64* %351, i32 3\n  store i64 %350, i64* %352\n  br label %$30\n$32:\n  %353 = phi i64 [%260, %$30] ; # Exe\n  %354 = phi i64 [%261, %$30] ; # X\n  %355 = phi i64 [%262, %$30] ; # R\n  %356 = phi i64 [%263, %$30] ; # L\n  %357 = phi i64 [%264, %$30] ; # E\n  %358 = phi i64 [%265, %$30] ; # A\n  %359 = phi i64 [%266, %$30] ; # Fun2\n  %360 = phi i64 [%267, %$30] ; # A2\n  %361 = phi i64 [%272, %$30] ; # P\n  %362 = phi i64 [%269, %$30] ; # Q\n  br label %$24\n$29:\n  %363 = phi i64 [%227, %$27] ; # Exe\n  %364 = phi i64 [%228, %$27] ; # X\n  %365 = phi i64 [%229, %$27] ; # R\n  %366 = phi i64 [%236, %$27] ; # L\n  %367 = phi i64 [%231, %$27] ; # E\n  %368 = phi i64 [%232, %$27] ; # A\n  %369 = phi i64 [%233, %$27] ; # Fun2\n  %370 = phi i64 [%234, %$27] ; # A2\n  %371 = phi i64 [0, %$27] ; # ->\n; # (set 4 E Fun2 4 (val 2 E) R)\n  %372 = inttoptr i64 %367 to i64*\n  %373 = getelementptr i64, i64* %372, i32 3\n  store i64 %369, i64* %373\n; # (val 2 E)\n  %374 = inttoptr i64 %367 to i64*\n  %375 = getelementptr i64, i64* %374, i32 1\n  %376 = load i64, i64* %375\n  %377 = inttoptr i64 %376 to i64*\n  %378 = getelementptr i64, i64* %377, i32 3\n  store i64 %365, i64* %378\n; # (let Z (setq R (safe (evList E))) (loop (set Z (cdar Z)) (? (atom...\n; # (evList E)\n  %379 = call i64 @evList(i64 %367)\n; # (safe (evList E))\n  %380 = inttoptr i64 %7 to i64*\n  store i64 %379, i64* %380\n; # (loop (set Z (cdar Z)) (? (atom (shift Z))))\n  br label %$38\n$38:\n  %381 = phi i64 [%363, %$29], [%401, %$39] ; # Exe\n  %382 = phi i64 [%364, %$29], [%402, %$39] ; # X\n  %383 = phi i64 [%379, %$29], [%403, %$39] ; # R\n  %384 = phi i64 [%366, %$29], [%404, %$39] ; # L\n  %385 = phi i64 [%367, %$29], [%405, %$39] ; # E\n  %386 = phi i64 [%368, %$29], [%406, %$39] ; # A\n  %387 = phi i64 [%369, %$29], [%407, %$39] ; # Fun2\n  %388 = phi i64 [%370, %$29], [%408, %$39] ; # A2\n  %389 = phi i64 [%379, %$29], [%409, %$39] ; # Z\n; # (set Z (cdar Z))\n; # (cdar Z)\n  %390 = inttoptr i64 %389 to i64*\n  %391 = load i64, i64* %390\n  %392 = inttoptr i64 %391 to i64*\n  %393 = getelementptr i64, i64* %392, i32 1\n  %394 = load i64, i64* %393\n  %395 = inttoptr i64 %389 to i64*\n  store i64 %394, i64* %395\n; # (? (atom (shift Z)))\n; # (shift Z)\n  %396 = inttoptr i64 %389 to i64*\n  %397 = getelementptr i64, i64* %396, i32 1\n  %398 = load i64, i64* %397\n; # (atom (shift Z))\n  %399 = and i64 %398, 15\n  %400 = icmp ne i64 %399, 0\n  br i1 %400, label %$40, label %$39\n$39:\n  %401 = phi i64 [%381, %$38] ; # Exe\n  %402 = phi i64 [%382, %$38] ; # X\n  %403 = phi i64 [%383, %$38] ; # R\n  %404 = phi i64 [%384, %$38] ; # L\n  %405 = phi i64 [%385, %$38] ; # E\n  %406 = phi i64 [%386, %$38] ; # A\n  %407 = phi i64 [%387, %$38] ; # Fun2\n  %408 = phi i64 [%388, %$38] ; # A2\n  %409 = phi i64 [%398, %$38] ; # Z\n  br label %$38\n$40:\n  %410 = phi i64 [%381, %$38] ; # Exe\n  %411 = phi i64 [%382, %$38] ; # X\n  %412 = phi i64 [%383, %$38] ; # R\n  %413 = phi i64 [%384, %$38] ; # L\n  %414 = phi i64 [%385, %$38] ; # E\n  %415 = phi i64 [%386, %$38] ; # A\n  %416 = phi i64 [%387, %$38] ; # Fun2\n  %417 = phi i64 [%388, %$38] ; # A2\n  %418 = phi i64 [%398, %$38] ; # Z\n  %419 = phi i64 [0, %$38] ; # ->\n  br label %$23\n$23:\n  %420 = phi i64 [%167, %$21], [%410, %$40] ; # Exe\n  %421 = phi i64 [%168, %$21], [%411, %$40] ; # X\n  %422 = phi i64 [%169, %$21], [%412, %$40] ; # R\n  %423 = phi i64 [%170, %$21], [%413, %$40] ; # L\n  %424 = phi i64 [%171, %$21], [%414, %$40] ; # E\n  %425 = phi i64 [%172, %$21], [%415, %$40] ; # A\n  %426 = phi i64 [%173, %$21], [%416, %$40] ; # Fun2\n  %427 = phi i64 [%174, %$21], [%417, %$40] ; # A2\n; # (drop *Safe)\n  %428 = inttoptr i64 %7 to i64*\n  %429 = getelementptr i64, i64* %428, i32 1\n  %430 = load i64, i64* %429\n  %431 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %430, i64* %431\n  ret i64 %422\n}\n\ndefine i8* @tabComplete(i8*) align 8 {\n$1:\n; # (cond ((nil? (val $Complete)) null) ((nil? (evExe $Complete (nond...\n; # (val $Complete)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 872) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (nil? (val $Complete))\n  %3 = icmp eq i64 %2, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i8* [%0, %$1] ; # Text\n  br label %$2\n$3:\n  %5 = phi i8* [%0, %$1] ; # Text\n; # (nond (Text $Nil) ((val Text) $T) (NIL (mkStr Text)))\n  %6 = icmp ne i8* %5, null\n  br i1 %6, label %$6, label %$7\n$7:\n  %7 = phi i8* [%5, %$3] ; # Text\n  br label %$5\n$6:\n  %8 = phi i8* [%5, %$3] ; # Text\n; # (val Text)\n  %9 = load i8, i8* %8\n  %10 = icmp ne i8 %9, 0\n  br i1 %10, label %$8, label %$9\n$9:\n  %11 = phi i8* [%8, %$6] ; # Text\n  br label %$5\n$8:\n  %12 = phi i8* [%8, %$6] ; # Text\n; # (mkStr Text)\n  %13 = call i64 @mkStr(i8* %12)\n  br label %$5\n$5:\n  %14 = phi i8* [%7, %$7], [%11, %$9], [%12, %$8] ; # Text\n  %15 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$9], [%13, %$8] ; # ->\n; # (evExe $Complete (nond (Text $Nil) ((val Text) $T) (NIL (mkStr Te...\n  %16 = call i64 @evExe(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 872) to i64), i64 %15, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (nil? (evExe $Complete (nond (Text $Nil) ((val Text) $T) (NIL (mk...\n  %17 = icmp eq i64 %16, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %17, label %$11, label %$10\n$11:\n  %18 = phi i8* [%14, %$5] ; # Text\n  br label %$2\n$10:\n  %19 = phi i8* [%14, %$5] ; # Text\n; # (let Nm (name (val (tail (xSym @)))) (strdup (bufString Nm (b8 (b...\n; # (xSym @)\n  %20 = call i64 @xSym(i64 %16)\n; # (tail (xSym @))\n  %21 = add i64 %20, -8\n; # (val (tail (xSym @)))\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n; # (name (val (tail (xSym @))))\n  br label %$12\n$12:\n  %24 = phi i64 [%23, %$10], [%30, %$13] ; # Tail\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$14, label %$13\n$13:\n  %27 = phi i64 [%24, %$12] ; # Tail\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  br label %$12\n$14:\n  %31 = phi i64 [%24, %$12] ; # Tail\n; # (bufSize Nm)\n  %32 = call i64 @bufSize(i64 %31)\n; # (b8 (bufSize Nm))\n  %33 = alloca i8, i64 %32\n; # (bufString Nm (b8 (bufSize Nm)))\n  %34 = call i8* @bufString(i64 %31, i8* %33)\n; # (strdup (bufString Nm (b8 (bufSize Nm))))\n  %35 = call i8* @strdup(i8* %34)\n  br label %$2\n$2:\n  %36 = phi i8* [%4, %$4], [%18, %$11], [%19, %$14] ; # Text\n  %37 = phi i8* [null, %$4], [null, %$11], [%35, %$14] ; # ->\n  ret i8* %37\n}\n\ndefine void @redefMsg(i64, i64) align 8 {\n$1:\n; # (let (Out (val $OutFile) Put (val (i8** $Put))) (set $OutFile (va...\n; # (val $OutFile)\n  %2 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (i8** $Put)\n  %3 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (val (i8** $Put))\n  %4 = load i8*, i8** %3\n; # (set $OutFile (val 3 (val $OutFiles)) $Put (fun (void i8) _putStd...\n; # (val $OutFiles)\n  %5 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %6 = getelementptr i8*, i8** %5, i32 2\n  %7 = load i8*, i8** %6\n  store i8* %7, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (outString ($ \"# \"))\n  call void @outString(i8* bitcast ([3 x i8]* @$71 to i8*))\n; # (print Sym)\n  call void @print(i64 %0)\n; # (when Sym2 (space) (print @))\n  %8 = icmp ne i64 %1, 0\n  br i1 %8, label %$2, label %$3\n$2:\n  %9 = phi i64 [%0, %$1] ; # Sym\n  %10 = phi i64 [%1, %$1] ; # Sym2\n  %11 = phi i8* [%2, %$1] ; # Out\n  %12 = phi i8* [%4, %$1] ; # Put\n; # (space)\n  call void @space()\n; # (print @)\n  call void @print(i64 %1)\n  br label %$3\n$3:\n  %13 = phi i64 [%0, %$1], [%9, %$2] ; # Sym\n  %14 = phi i64 [%1, %$1], [%10, %$2] ; # Sym2\n  %15 = phi i8* [%2, %$1], [%11, %$2] ; # Out\n  %16 = phi i8* [%4, %$1], [%12, %$2] ; # Put\n; # (outString ($ \" redefined^J\"))\n  call void @outString(i8* bitcast ([12 x i8]* @$72 to i8*))\n; # (set (i8** $Put) Put $OutFile Out)\n; # (i8** $Put)\n  %17 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  store i8* %16, i8** %17\n  store i8* %15, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  ret void\n}\n\ndefine void @putSrc(i64, i64) align 8 {\n$1:\n; # (unless (or (nil? (val $Dbg)) (sym? (val (tail Sym)))) (let In: (...\n; # (or (nil? (val $Dbg)) (sym? (val (tail Sym))))\n; # (val $Dbg)\n  %2 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  %3 = load i64, i64* %2\n; # (nil? (val $Dbg))\n  %4 = icmp eq i64 %3, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %4, label %$2, label %$3\n$3:\n  %5 = phi i64 [%0, %$1] ; # Sym\n  %6 = phi i64 [%1, %$1] ; # Key\n; # (tail Sym)\n  %7 = add i64 %5, -8\n; # (val (tail Sym))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (sym? (val (tail Sym)))\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br label %$2\n$2:\n  %12 = phi i64 [%0, %$1], [%5, %$3] ; # Sym\n  %13 = phi i64 [%1, %$1], [%6, %$3] ; # Key\n  %14 = phi i1 [1, %$1], [%11, %$3] ; # ->\n  br i1 %14, label %$5, label %$4\n$4:\n  %15 = phi i64 [%12, %$2] ; # Sym\n  %16 = phi i64 [%13, %$2] ; # Key\n; # (let In: (inFile (val $InFile)) (when (and (In:) (In: name)) (let...\n; # (val $InFile)\n  %17 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (when (and (In:) (In: name)) (let (Dbg (get Sym $Dbg) Src (cons (...\n; # (and (In:) (In: name))\n; # (In:)\n  %18 = icmp ne i8* %17, null\n  br i1 %18, label %$7, label %$6\n$7:\n  %19 = phi i64 [%15, %$4] ; # Sym\n  %20 = phi i64 [%16, %$4] ; # Key\n; # (In: name)\n  %21 = bitcast i8* %17 to i8**\n  %22 = load i8*, i8** %21\n  %23 = icmp ne i8* %22, null\n  br label %$6\n$6:\n  %24 = phi i64 [%15, %$4], [%19, %$7] ; # Sym\n  %25 = phi i64 [%16, %$4], [%20, %$7] ; # Key\n  %26 = phi i1 [0, %$4], [%23, %$7] ; # ->\n  br i1 %26, label %$8, label %$9\n$8:\n  %27 = phi i64 [%24, %$6] ; # Sym\n  %28 = phi i64 [%25, %$6] ; # Key\n; # (let (Dbg (get Sym $Dbg) Src (cons (cnt (i64 (In: src))) (cons (m...\n; # (get Sym $Dbg)\n  %29 = call i64 @get(i64 %27, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64))\n; # (In: src)\n  %30 = getelementptr i8, i8* %17, i32 20\n  %31 = bitcast i8* %30 to i32*\n  %32 = load i32, i32* %31\n; # (i64 (In: src))\n  %33 = sext i32 %32 to i64\n; # (cnt (i64 (In: src)))\n  %34 = shl i64 %33, 4\n  %35 = or i64 %34, 2\n; # (In: name)\n  %36 = bitcast i8* %17 to i8**\n  %37 = load i8*, i8** %36\n; # (mkStr (In: name))\n  %38 = call i64 @mkStr(i8* %37)\n; # (val $Intern)\n  %39 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %40 = load i64, i64* %39\n; # (cons (mkStr (In: name)) (val $Intern))\n  %41 = call i64 @cons(i64 %38, i64 %40)\n; # (cons (cnt (i64 (In: src))) (cons (mkStr (In: name)) (val $Intern...\n  %42 = call i64 @cons(i64 %35, i64 %41)\n; # (cond ((=0 Key) (if (nil? Dbg) (put Sym $Dbg (cons Src $Nil)) (se...\n; # (=0 Key)\n  %43 = icmp eq i64 %28, 0\n  br i1 %43, label %$12, label %$11\n$12:\n  %44 = phi i64 [%27, %$8] ; # Sym\n  %45 = phi i64 [%28, %$8] ; # Key\n  %46 = phi i64 [%29, %$8] ; # Dbg\n  %47 = phi i64 [%42, %$8] ; # Src\n; # (if (nil? Dbg) (put Sym $Dbg (cons Src $Nil)) (set Dbg Src))\n; # (nil? Dbg)\n  %48 = icmp eq i64 %46, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %48, label %$13, label %$14\n$13:\n  %49 = phi i64 [%44, %$12] ; # Sym\n  %50 = phi i64 [%45, %$12] ; # Key\n  %51 = phi i64 [%46, %$12] ; # Dbg\n  %52 = phi i64 [%47, %$12] ; # Src\n; # (cons Src $Nil)\n  %53 = call i64 @cons(i64 %52, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (put Sym $Dbg (cons Src $Nil))\n  call void @put(i64 %49, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64), i64 %53)\n  br label %$15\n$14:\n  %54 = phi i64 [%44, %$12] ; # Sym\n  %55 = phi i64 [%45, %$12] ; # Key\n  %56 = phi i64 [%46, %$12] ; # Dbg\n  %57 = phi i64 [%47, %$12] ; # Src\n; # (set Dbg Src)\n  %58 = inttoptr i64 %56 to i64*\n  store i64 %57, i64* %58\n  br label %$15\n$15:\n  %59 = phi i64 [%49, %$13], [%54, %$14] ; # Sym\n  %60 = phi i64 [%50, %$13], [%55, %$14] ; # Key\n  %61 = phi i64 [%51, %$13], [%56, %$14] ; # Dbg\n  %62 = phi i64 [%52, %$13], [%57, %$14] ; # Src\n  br label %$10\n$11:\n  %63 = phi i64 [%27, %$8] ; # Sym\n  %64 = phi i64 [%28, %$8] ; # Key\n  %65 = phi i64 [%29, %$8] ; # Dbg\n  %66 = phi i64 [%42, %$8] ; # Src\n; # (nil? Dbg)\n  %67 = icmp eq i64 %65, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %67, label %$17, label %$16\n$17:\n  %68 = phi i64 [%63, %$11] ; # Sym\n  %69 = phi i64 [%64, %$11] ; # Key\n  %70 = phi i64 [%65, %$11] ; # Dbg\n  %71 = phi i64 [%66, %$11] ; # Src\n; # (cons Key Src)\n  %72 = call i64 @cons(i64 %69, i64 %71)\n; # (cons (cons Key Src) $Nil)\n  %73 = call i64 @cons(i64 %72, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons $Nil (cons (cons Key Src) $Nil))\n  %74 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %73)\n; # (put Sym $Dbg (cons $Nil (cons (cons Key Src) $Nil)))\n  call void @put(i64 %68, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64), i64 %74)\n  br label %$10\n$16:\n  %75 = phi i64 [%63, %$11] ; # Sym\n  %76 = phi i64 [%64, %$11] ; # Key\n  %77 = phi i64 [%65, %$11] ; # Dbg\n  %78 = phi i64 [%66, %$11] ; # Src\n; # (let X Dbg (loop (? (atom (shift X)) (set 2 Dbg (cons (cons Key S...\n; # (loop (? (atom (shift X)) (set 2 Dbg (cons (cons Key Src) (cdr Db...\n  br label %$18\n$18:\n  %79 = phi i64 [%75, %$16], [%120, %$22] ; # Sym\n  %80 = phi i64 [%76, %$16], [%121, %$22] ; # Key\n  %81 = phi i64 [%77, %$16], [%122, %$22] ; # Dbg\n  %82 = phi i64 [%78, %$16], [%123, %$22] ; # Src\n  %83 = phi i64 [%77, %$16], [%124, %$22] ; # X\n; # (? (atom (shift X)) (set 2 Dbg (cons (cons Key Src) (cdr Dbg))))\n; # (shift X)\n  %84 = inttoptr i64 %83 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n; # (atom (shift X))\n  %87 = and i64 %86, 15\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$21, label %$19\n$21:\n  %89 = phi i64 [%79, %$18] ; # Sym\n  %90 = phi i64 [%80, %$18] ; # Key\n  %91 = phi i64 [%81, %$18] ; # Dbg\n  %92 = phi i64 [%82, %$18] ; # Src\n  %93 = phi i64 [%86, %$18] ; # X\n; # (set 2 Dbg (cons (cons Key Src) (cdr Dbg)))\n; # (cons Key Src)\n  %94 = call i64 @cons(i64 %90, i64 %92)\n; # (cdr Dbg)\n  %95 = inttoptr i64 %91 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  %97 = load i64, i64* %96\n; # (cons (cons Key Src) (cdr Dbg))\n  %98 = call i64 @cons(i64 %94, i64 %97)\n  %99 = inttoptr i64 %91 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  store i64 %98, i64* %100\n  br label %$20\n$19:\n  %101 = phi i64 [%79, %$18] ; # Sym\n  %102 = phi i64 [%80, %$18] ; # Key\n  %103 = phi i64 [%81, %$18] ; # Dbg\n  %104 = phi i64 [%82, %$18] ; # Src\n  %105 = phi i64 [%86, %$18] ; # X\n; # (? (== (caar X) Key) (set 2 (car X) Src))\n; # (caar X)\n  %106 = inttoptr i64 %105 to i64*\n  %107 = load i64, i64* %106\n  %108 = inttoptr i64 %107 to i64*\n  %109 = load i64, i64* %108\n; # (== (caar X) Key)\n  %110 = icmp eq i64 %109, %102\n  br i1 %110, label %$23, label %$22\n$23:\n  %111 = phi i64 [%101, %$19] ; # Sym\n  %112 = phi i64 [%102, %$19] ; # Key\n  %113 = phi i64 [%103, %$19] ; # Dbg\n  %114 = phi i64 [%104, %$19] ; # Src\n  %115 = phi i64 [%105, %$19] ; # X\n; # (set 2 (car X) Src)\n; # (car X)\n  %116 = inttoptr i64 %115 to i64*\n  %117 = load i64, i64* %116\n  %118 = inttoptr i64 %117 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  store i64 %114, i64* %119\n  br label %$20\n$22:\n  %120 = phi i64 [%101, %$19] ; # Sym\n  %121 = phi i64 [%102, %$19] ; # Key\n  %122 = phi i64 [%103, %$19] ; # Dbg\n  %123 = phi i64 [%104, %$19] ; # Src\n  %124 = phi i64 [%105, %$19] ; # X\n  br label %$18\n$20:\n  %125 = phi i64 [%89, %$21], [%111, %$23] ; # Sym\n  %126 = phi i64 [%90, %$21], [%112, %$23] ; # Key\n  %127 = phi i64 [%91, %$21], [%113, %$23] ; # Dbg\n  %128 = phi i64 [%92, %$21], [%114, %$23] ; # Src\n  %129 = phi i64 [%93, %$21], [%115, %$23] ; # X\n  %130 = phi i64 [%98, %$21], [%114, %$23] ; # ->\n  br label %$10\n$10:\n  %131 = phi i64 [%59, %$15], [%68, %$17], [%125, %$20] ; # Sym\n  %132 = phi i64 [%60, %$15], [%69, %$17], [%126, %$20] ; # Key\n  %133 = phi i64 [%61, %$15], [%70, %$17], [%127, %$20] ; # Dbg\n  %134 = phi i64 [%62, %$15], [%71, %$17], [%128, %$20] ; # Src\n  br label %$9\n$9:\n  %135 = phi i64 [%24, %$6], [%131, %$10] ; # Sym\n  %136 = phi i64 [%25, %$6], [%132, %$10] ; # Key\n  br label %$5\n$5:\n  %137 = phi i64 [%12, %$2], [%135, %$9] ; # Sym\n  %138 = phi i64 [%13, %$2], [%136, %$9] ; # Key\n  ret void\n}\n\ndefine void @redefine(i64, i64, i64) align 8 {\n$1:\n; # (needChkVar Exe Sym)\n  %3 = and i64 %1, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%1, %$1] ; # X\n  %6 = phi i64 [%0, %$1] ; # Exe\n  call void @varErr(i64 %6, i64 %5)\n  unreachable\n$3:\n  %7 = phi i64 [%1, %$1] ; # X\n  %8 = phi i64 [%0, %$1] ; # Exe\n  %9 = icmp uge i64 %7, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$3] ; # X\n  %11 = phi i64 [%8, %$3] ; # Exe\n  %12 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %10\n  br label %$4\n$4:\n  %13 = phi i64 [%7, %$3], [%10, %$5] ; # X\n  %14 = phi i64 [%8, %$3], [%11, %$5] ; # Exe\n  %15 = phi i1 [0, %$3], [%12, %$5] ; # ->\n  br i1 %15, label %$6, label %$7\n$6:\n  %16 = phi i64 [%13, %$4] ; # X\n  %17 = phi i64 [%14, %$4] ; # Exe\n  call void @protErr(i64 %17, i64 %16)\n  unreachable\n$7:\n  %18 = phi i64 [%13, %$4] ; # X\n  %19 = phi i64 [%14, %$4] ; # Exe\n; # (let V (val Sym) (unless (or (nil? V) (== V Sym) (equal V Val)) (...\n; # (val Sym)\n  %20 = inttoptr i64 %1 to i64*\n  %21 = load i64, i64* %20\n; # (unless (or (nil? V) (== V Sym) (equal V Val)) (redefMsg Sym 0))\n; # (or (nil? V) (== V Sym) (equal V Val))\n; # (nil? V)\n  %22 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %22, label %$8, label %$9\n$9:\n  %23 = phi i64 [%0, %$7] ; # Exe\n  %24 = phi i64 [%1, %$7] ; # Sym\n  %25 = phi i64 [%2, %$7] ; # Val\n  %26 = phi i64 [%21, %$7] ; # V\n; # (== V Sym)\n  %27 = icmp eq i64 %26, %24\n  br i1 %27, label %$8, label %$10\n$10:\n  %28 = phi i64 [%23, %$9] ; # Exe\n  %29 = phi i64 [%24, %$9] ; # Sym\n  %30 = phi i64 [%25, %$9] ; # Val\n  %31 = phi i64 [%26, %$9] ; # V\n; # (equal V Val)\n  %32 = call i1 @equal(i64 %31, i64 %30)\n  br label %$8\n$8:\n  %33 = phi i64 [%0, %$7], [%23, %$9], [%28, %$10] ; # Exe\n  %34 = phi i64 [%1, %$7], [%24, %$9], [%29, %$10] ; # Sym\n  %35 = phi i64 [%2, %$7], [%25, %$9], [%30, %$10] ; # Val\n  %36 = phi i64 [%21, %$7], [%26, %$9], [%31, %$10] ; # V\n  %37 = phi i1 [1, %$7], [1, %$9], [%32, %$10] ; # ->\n  br i1 %37, label %$12, label %$11\n$11:\n  %38 = phi i64 [%33, %$8] ; # Exe\n  %39 = phi i64 [%34, %$8] ; # Sym\n  %40 = phi i64 [%35, %$8] ; # Val\n  %41 = phi i64 [%36, %$8] ; # V\n; # (redefMsg Sym 0)\n  call void @redefMsg(i64 %39, i64 0)\n  br label %$12\n$12:\n  %42 = phi i64 [%33, %$8], [%38, %$11] ; # Exe\n  %43 = phi i64 [%34, %$8], [%39, %$11] ; # Sym\n  %44 = phi i64 [%35, %$8], [%40, %$11] ; # Val\n  %45 = phi i64 [%36, %$8], [%41, %$11] ; # V\n; # (set Sym Val)\n  %46 = inttoptr i64 %43 to i64*\n  store i64 %44, i64* %46\n; # (putSrc Sym 0)\n  call void @putSrc(i64 %43, i64 0)\n  ret void\n}\n\ndefine i64 @_Quote(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  ret i64 %3\n}\n\ndefine i64 @_As(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (car X))) @ (cdr X)))\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (car X))) @ (cdr X))\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (car X)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  %21 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n; # (cdr X)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  br label %$9\n$9:\n  %27 = phi i64 [%20, %$7], [%22, %$8] ; # Exe\n  %28 = phi i64 [%21, %$7], [%23, %$8] ; # X\n  %29 = phi i64 [%18, %$7], [%26, %$8] ; # ->\n  ret i64 %29\n}\n\ndefine i64 @_Lit(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (or (num? X) (nil? X) (t? X) (and (p...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (or (num? X) (nil? X) (t? X) (and (pair X) (num? (car X)))) X...\n; # (or (num? X) (nil? X) (t? X) (and (pair X) (num? (car X))))\n; # (num? X)\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n; # (nil? X)\n  %23 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %23, label %$7, label %$9\n$9:\n  %24 = phi i64 [%21, %$8] ; # Exe\n  %25 = phi i64 [%22, %$8] ; # X\n; # (t? X)\n  %26 = icmp eq i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %26, label %$7, label %$10\n$10:\n  %27 = phi i64 [%24, %$9] ; # Exe\n  %28 = phi i64 [%25, %$9] ; # X\n; # (and (pair X) (num? (car X)))\n; # (pair X)\n  %29 = and i64 %28, 15\n  %30 = icmp eq i64 %29, 0\n  br i1 %30, label %$12, label %$11\n$12:\n  %31 = phi i64 [%27, %$10] ; # Exe\n  %32 = phi i64 [%28, %$10] ; # X\n; # (car X)\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n; # (num? (car X))\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br label %$11\n$11:\n  %37 = phi i64 [%27, %$10], [%31, %$12] ; # Exe\n  %38 = phi i64 [%28, %$10], [%32, %$12] ; # X\n  %39 = phi i1 [0, %$10], [%36, %$12] ; # ->\n  br label %$7\n$7:\n  %40 = phi i64 [%0, %$2], [%21, %$8], [%24, %$9], [%37, %$11] ; # Exe\n  %41 = phi i64 [%18, %$2], [%22, %$8], [%25, %$9], [%38, %$11] ; # X\n  %42 = phi i1 [1, %$2], [1, %$8], [1, %$9], [%39, %$11] ; # ->\n  br i1 %42, label %$13, label %$14\n$13:\n  %43 = phi i64 [%40, %$7] ; # Exe\n  %44 = phi i64 [%41, %$7] ; # X\n  br label %$15\n$14:\n  %45 = phi i64 [%40, %$7] ; # Exe\n  %46 = phi i64 [%41, %$7] ; # X\n; # (cons $Quote X)\n  %47 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 264) to i64), i64 %46)\n  br label %$15\n$15:\n  %48 = phi i64 [%43, %$13], [%45, %$14] ; # Exe\n  %49 = phi i64 [%44, %$13], [%46, %$14] ; # X\n  %50 = phi i64 [%44, %$13], [%47, %$14] ; # ->\n  ret i64 %50\n}\n\ndefine i64 @_Eval(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (save (eval (car X)))) (when (pair (cdr X)) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (when (pair (cdr X)) (let N (needCnt Exe (eval (car @))) (when (s...\n; # (cdr X)\n  %27 = inttoptr i64 %3 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (pair (cdr X))\n  %30 = and i64 %29, 15\n  %31 = icmp eq i64 %30, 0\n  br i1 %31, label %$7, label %$8\n$7:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%3, %$2] ; # X\n  %34 = phi i64 [%18, %$2] ; # E\n; # (let N (needCnt Exe (eval (car @))) (when (setq N (int N)) (let B...\n; # (car @)\n  %35 = inttoptr i64 %29 to i64*\n  %36 = load i64, i64* %35\n; # (eval (car @))\n  %37 = and i64 %36, 6\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$7] ; # X\n  br label %$9\n$10:\n  %40 = phi i64 [%36, %$7] ; # X\n  %41 = and i64 %40, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$13, label %$12\n$13:\n  %43 = phi i64 [%40, %$10] ; # X\n  %44 = inttoptr i64 %43 to i64*\n  %45 = load i64, i64* %44\n  br label %$9\n$12:\n  %46 = phi i64 [%40, %$10] ; # X\n  %47 = call i64 @evList(i64 %46)\n  br label %$9\n$9:\n  %48 = phi i64 [%39, %$11], [%43, %$13], [%46, %$12] ; # X\n  %49 = phi i64 [%39, %$11], [%45, %$13], [%47, %$12] ; # ->\n; # (needCnt Exe (eval (car @)))\n  %50 = and i64 %49, 2\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$14\n$14:\n  %52 = phi i64 [%49, %$9] ; # X\n  %53 = phi i64 [%32, %$9] ; # Exe\n  call void @cntErr(i64 %53, i64 %52)\n  unreachable\n$15:\n  %54 = phi i64 [%49, %$9] ; # X\n  %55 = phi i64 [%32, %$9] ; # Exe\n; # (when (setq N (int N)) (let Bnd (val $Bind) (loop (? (=0 Bnd)) (?...\n; # (int N)\n  %56 = lshr i64 %54, 4\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$16, label %$17\n$16:\n  %58 = phi i64 [%32, %$15] ; # Exe\n  %59 = phi i64 [%33, %$15] ; # X\n  %60 = phi i64 [%34, %$15] ; # E\n  %61 = phi i64 [%56, %$15] ; # N\n; # (let Bnd (val $Bind) (loop (? (=0 Bnd)) (? (and (== $At (val 2 Bn...\n; # (val $Bind)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %63 = load i64, i64* %62\n; # (loop (? (=0 Bnd)) (? (and (== $At (val 2 Bnd)) (prog (set $At (v...\n  br label %$18\n$18:\n  %64 = phi i64 [%58, %$16], [%95, %$23] ; # Exe\n  %65 = phi i64 [%59, %$16], [%96, %$23] ; # X\n  %66 = phi i64 [%60, %$16], [%97, %$23] ; # E\n  %67 = phi i64 [%61, %$16], [%98, %$23] ; # N\n  %68 = phi i64 [%63, %$16], [%102, %$23] ; # Bnd\n; # (? (=0 Bnd))\n; # (=0 Bnd)\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$20, label %$19\n$19:\n  %70 = phi i64 [%64, %$18] ; # Exe\n  %71 = phi i64 [%65, %$18] ; # X\n  %72 = phi i64 [%66, %$18] ; # E\n  %73 = phi i64 [%67, %$18] ; # N\n  %74 = phi i64 [%68, %$18] ; # Bnd\n; # (? (and (== $At (val 2 Bnd)) (prog (set $At (val Bnd)) (=0 (dec '...\n; # (and (== $At (val 2 Bnd)) (prog (set $At (val Bnd)) (=0 (dec 'N))...\n; # (val 2 Bnd)\n  %75 = inttoptr i64 %74 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  %77 = load i64, i64* %76\n; # (== $At (val 2 Bnd))\n  %78 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %77\n  br i1 %78, label %$22, label %$21\n$22:\n  %79 = phi i64 [%70, %$19] ; # Exe\n  %80 = phi i64 [%71, %$19] ; # X\n  %81 = phi i64 [%72, %$19] ; # E\n  %82 = phi i64 [%73, %$19] ; # N\n  %83 = phi i64 [%74, %$19] ; # Bnd\n; # (set $At (val Bnd))\n; # (val Bnd)\n  %84 = inttoptr i64 %83 to i64*\n  %85 = load i64, i64* %84\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %85, i64* %86\n; # (dec 'N)\n  %87 = sub i64 %82, 1\n; # (=0 (dec 'N))\n  %88 = icmp eq i64 %87, 0\n  br label %$21\n$21:\n  %89 = phi i64 [%70, %$19], [%79, %$22] ; # Exe\n  %90 = phi i64 [%71, %$19], [%80, %$22] ; # X\n  %91 = phi i64 [%72, %$19], [%81, %$22] ; # E\n  %92 = phi i64 [%73, %$19], [%87, %$22] ; # N\n  %93 = phi i64 [%74, %$19], [%83, %$22] ; # Bnd\n  %94 = phi i1 [0, %$19], [%88, %$22] ; # ->\n  br i1 %94, label %$20, label %$23\n$23:\n  %95 = phi i64 [%89, %$21] ; # Exe\n  %96 = phi i64 [%90, %$21] ; # X\n  %97 = phi i64 [%91, %$21] ; # E\n  %98 = phi i64 [%92, %$21] ; # N\n  %99 = phi i64 [%93, %$21] ; # Bnd\n; # (val 3 Bnd)\n  %100 = inttoptr i64 %99 to i64*\n  %101 = getelementptr i64, i64* %100, i32 2\n  %102 = load i64, i64* %101\n  br label %$18\n$20:\n  %103 = phi i64 [%64, %$18], [%89, %$21] ; # Exe\n  %104 = phi i64 [%65, %$18], [%90, %$21] ; # X\n  %105 = phi i64 [%66, %$18], [%91, %$21] ; # E\n  %106 = phi i64 [%67, %$18], [%92, %$21] ; # N\n  %107 = phi i64 [%68, %$18], [%93, %$21] ; # Bnd\n  %108 = phi i64 [0, %$18], [0, %$21] ; # ->\n  br label %$17\n$17:\n  %109 = phi i64 [%32, %$15], [%103, %$20] ; # Exe\n  %110 = phi i64 [%33, %$15], [%104, %$20] ; # X\n  %111 = phi i64 [%34, %$15], [%105, %$20] ; # E\n  %112 = phi i64 [%56, %$15], [%106, %$20] ; # N\n  br label %$8\n$8:\n  %113 = phi i64 [%0, %$2], [%109, %$17] ; # Exe\n  %114 = phi i64 [%3, %$2], [%110, %$17] ; # X\n  %115 = phi i64 [%18, %$2], [%111, %$17] ; # E\n; # (eval E)\n  %116 = and i64 %115, 6\n  %117 = icmp ne i64 %116, 0\n  br i1 %117, label %$26, label %$25\n$26:\n  %118 = phi i64 [%115, %$8] ; # X\n  br label %$24\n$25:\n  %119 = phi i64 [%115, %$8] ; # X\n  %120 = and i64 %119, 8\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$28, label %$27\n$28:\n  %122 = phi i64 [%119, %$25] ; # X\n  %123 = inttoptr i64 %122 to i64*\n  %124 = load i64, i64* %123\n  br label %$24\n$27:\n  %125 = phi i64 [%119, %$25] ; # X\n  %126 = call i64 @evList(i64 %125)\n  br label %$24\n$24:\n  %127 = phi i64 [%118, %$26], [%122, %$28], [%125, %$27] ; # X\n  %128 = phi i64 [%118, %$26], [%124, %$28], [%126, %$27] ; # ->\n; # (drop *Safe)\n  %129 = inttoptr i64 %22 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n  %132 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %131, i64* %132\n  ret i64 %128\n}\n\ndefine i64 @_Run(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (eval (car X))) (cond ((num? E) E) ((sym? E) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((num? E) E) ((sym? E) (val E)) (T (save E (when (pair (cdr...\n; # (num? E)\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%3, %$2] ; # X\n  %23 = phi i64 [%18, %$2] ; # E\n  br label %$7\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%3, %$2] ; # X\n  %26 = phi i64 [%18, %$2] ; # E\n; # (sym? E)\n  %27 = and i64 %26, 8\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$11, label %$10\n$11:\n  %29 = phi i64 [%24, %$8] ; # Exe\n  %30 = phi i64 [%25, %$8] ; # X\n  %31 = phi i64 [%26, %$8] ; # E\n; # (val E)\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n  br label %$7\n$10:\n  %34 = phi i64 [%24, %$8] ; # Exe\n  %35 = phi i64 [%25, %$8] ; # X\n  %36 = phi i64 [%26, %$8] ; # E\n; # (save E (when (pair (cdr X)) (let N (needCnt Exe (eval (car @))) ...\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %36, i64* %41\n  %42 = add i64 %40, 8\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %38, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %44\n; # (when (pair (cdr X)) (let N (needCnt Exe (eval (car @))) (when (s...\n; # (cdr X)\n  %45 = inttoptr i64 %35 to i64*\n  %46 = getelementptr i64, i64* %45, i32 1\n  %47 = load i64, i64* %46\n; # (pair (cdr X))\n  %48 = and i64 %47, 15\n  %49 = icmp eq i64 %48, 0\n  br i1 %49, label %$12, label %$13\n$12:\n  %50 = phi i64 [%34, %$10] ; # Exe\n  %51 = phi i64 [%35, %$10] ; # X\n  %52 = phi i64 [%36, %$10] ; # E\n; # (let N (needCnt Exe (eval (car @))) (when (setq N (int N)) (let B...\n; # (car @)\n  %53 = inttoptr i64 %47 to i64*\n  %54 = load i64, i64* %53\n; # (eval (car @))\n  %55 = and i64 %54, 6\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$16, label %$15\n$16:\n  %57 = phi i64 [%54, %$12] ; # X\n  br label %$14\n$15:\n  %58 = phi i64 [%54, %$12] ; # X\n  %59 = and i64 %58, 8\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$18, label %$17\n$18:\n  %61 = phi i64 [%58, %$15] ; # X\n  %62 = inttoptr i64 %61 to i64*\n  %63 = load i64, i64* %62\n  br label %$14\n$17:\n  %64 = phi i64 [%58, %$15] ; # X\n  %65 = call i64 @evList(i64 %64)\n  br label %$14\n$14:\n  %66 = phi i64 [%57, %$16], [%61, %$18], [%64, %$17] ; # X\n  %67 = phi i64 [%57, %$16], [%63, %$18], [%65, %$17] ; # ->\n; # (needCnt Exe (eval (car @)))\n  %68 = and i64 %67, 2\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$20, label %$19\n$19:\n  %70 = phi i64 [%67, %$14] ; # X\n  %71 = phi i64 [%50, %$14] ; # Exe\n  call void @cntErr(i64 %71, i64 %70)\n  unreachable\n$20:\n  %72 = phi i64 [%67, %$14] ; # X\n  %73 = phi i64 [%50, %$14] ; # Exe\n; # (when (setq N (int N)) (let Bnd (val $Bind) (loop (? (=0 Bnd)) (?...\n; # (int N)\n  %74 = lshr i64 %72, 4\n  %75 = icmp ne i64 %74, 0\n  br i1 %75, label %$21, label %$22\n$21:\n  %76 = phi i64 [%50, %$20] ; # Exe\n  %77 = phi i64 [%51, %$20] ; # X\n  %78 = phi i64 [%52, %$20] ; # E\n  %79 = phi i64 [%74, %$20] ; # N\n; # (let Bnd (val $Bind) (loop (? (=0 Bnd)) (? (and (== $At (val 2 Bn...\n; # (val $Bind)\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %81 = load i64, i64* %80\n; # (loop (? (=0 Bnd)) (? (and (== $At (val 2 Bnd)) (prog (set $At (v...\n  br label %$23\n$23:\n  %82 = phi i64 [%76, %$21], [%113, %$28] ; # Exe\n  %83 = phi i64 [%77, %$21], [%114, %$28] ; # X\n  %84 = phi i64 [%78, %$21], [%115, %$28] ; # E\n  %85 = phi i64 [%79, %$21], [%116, %$28] ; # N\n  %86 = phi i64 [%81, %$21], [%120, %$28] ; # Bnd\n; # (? (=0 Bnd))\n; # (=0 Bnd)\n  %87 = icmp eq i64 %86, 0\n  br i1 %87, label %$25, label %$24\n$24:\n  %88 = phi i64 [%82, %$23] ; # Exe\n  %89 = phi i64 [%83, %$23] ; # X\n  %90 = phi i64 [%84, %$23] ; # E\n  %91 = phi i64 [%85, %$23] ; # N\n  %92 = phi i64 [%86, %$23] ; # Bnd\n; # (? (and (== $At (val 2 Bnd)) (prog (set $At (val Bnd)) (=0 (dec '...\n; # (and (== $At (val 2 Bnd)) (prog (set $At (val Bnd)) (=0 (dec 'N))...\n; # (val 2 Bnd)\n  %93 = inttoptr i64 %92 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n; # (== $At (val 2 Bnd))\n  %96 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %95\n  br i1 %96, label %$27, label %$26\n$27:\n  %97 = phi i64 [%88, %$24] ; # Exe\n  %98 = phi i64 [%89, %$24] ; # X\n  %99 = phi i64 [%90, %$24] ; # E\n  %100 = phi i64 [%91, %$24] ; # N\n  %101 = phi i64 [%92, %$24] ; # Bnd\n; # (set $At (val Bnd))\n; # (val Bnd)\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %103, i64* %104\n; # (dec 'N)\n  %105 = sub i64 %100, 1\n; # (=0 (dec 'N))\n  %106 = icmp eq i64 %105, 0\n  br label %$26\n$26:\n  %107 = phi i64 [%88, %$24], [%97, %$27] ; # Exe\n  %108 = phi i64 [%89, %$24], [%98, %$27] ; # X\n  %109 = phi i64 [%90, %$24], [%99, %$27] ; # E\n  %110 = phi i64 [%91, %$24], [%105, %$27] ; # N\n  %111 = phi i64 [%92, %$24], [%101, %$27] ; # Bnd\n  %112 = phi i1 [0, %$24], [%106, %$27] ; # ->\n  br i1 %112, label %$25, label %$28\n$28:\n  %113 = phi i64 [%107, %$26] ; # Exe\n  %114 = phi i64 [%108, %$26] ; # X\n  %115 = phi i64 [%109, %$26] ; # E\n  %116 = phi i64 [%110, %$26] ; # N\n  %117 = phi i64 [%111, %$26] ; # Bnd\n; # (val 3 Bnd)\n  %118 = inttoptr i64 %117 to i64*\n  %119 = getelementptr i64, i64* %118, i32 2\n  %120 = load i64, i64* %119\n  br label %$23\n$25:\n  %121 = phi i64 [%82, %$23], [%107, %$26] ; # Exe\n  %122 = phi i64 [%83, %$23], [%108, %$26] ; # X\n  %123 = phi i64 [%84, %$23], [%109, %$26] ; # E\n  %124 = phi i64 [%85, %$23], [%110, %$26] ; # N\n  %125 = phi i64 [%86, %$23], [%111, %$26] ; # Bnd\n  %126 = phi i64 [0, %$23], [0, %$26] ; # ->\n  br label %$22\n$22:\n  %127 = phi i64 [%50, %$20], [%121, %$25] ; # Exe\n  %128 = phi i64 [%51, %$20], [%122, %$25] ; # X\n  %129 = phi i64 [%52, %$20], [%123, %$25] ; # E\n  %130 = phi i64 [%74, %$20], [%124, %$25] ; # N\n  br label %$13\n$13:\n  %131 = phi i64 [%34, %$10], [%127, %$22] ; # Exe\n  %132 = phi i64 [%35, %$10], [%128, %$22] ; # X\n  %133 = phi i64 [%36, %$10], [%129, %$22] ; # E\n; # (runAt E)\n  %134 = call i64 @runAt(i64 %133)\n; # drop\n  %135 = inttoptr i64 %40 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n  %138 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %137, i64* %138\n  br label %$7\n$7:\n  %139 = phi i64 [%21, %$9], [%29, %$11], [%131, %$13] ; # Exe\n  %140 = phi i64 [%22, %$9], [%30, %$11], [%132, %$13] ; # X\n  %141 = phi i64 [%23, %$9], [%31, %$11], [%133, %$13] ; # E\n  %142 = phi i64 [%23, %$9], [%33, %$11], [%134, %$13] ; # ->\n  ret i64 %142\n}\n\ndefine i64 @_Def(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Sym (save (needSymb Exe (eval (++ X)))) Y (save...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needSymb Exe (eval (++ X)))\n  %21 = xor i64 %20, 8\n  %22 = and i64 %21, 14\n  %23 = icmp eq i64 %22, 0\n  br i1 %23, label %$8, label %$7\n$7:\n  %24 = phi i64 [%20, %$2] ; # X\n  %25 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %25, i64 %24)\n  unreachable\n$8:\n  %26 = phi i64 [%20, %$2] ; # X\n  %27 = phi i64 [%0, %$2] ; # Exe\n; # (save (needSymb Exe (eval (++ X))))\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = alloca i64, i64 2, align 16\n  %31 = ptrtoint i64* %30 to i64\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %26, i64* %32\n  %33 = add i64 %31, 8\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %35\n; # (++ X)\n  %36 = inttoptr i64 %6 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n  %39 = load i64, i64* %36\n; # (eval (++ X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$11, label %$10\n$11:\n  %42 = phi i64 [%39, %$8] ; # X\n  br label %$9\n$10:\n  %43 = phi i64 [%39, %$8] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$13, label %$12\n$13:\n  %46 = phi i64 [%43, %$10] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$9\n$12:\n  %49 = phi i64 [%43, %$10] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$9\n$9:\n  %51 = phi i64 [%42, %$11], [%46, %$13], [%49, %$12] ; # X\n  %52 = phi i64 [%42, %$11], [%48, %$13], [%50, %$12] ; # ->\n; # (save (eval (++ X)))\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %54 = load i64, i64* %53\n  %55 = alloca i64, i64 2, align 16\n  %56 = ptrtoint i64* %55 to i64\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %52, i64* %57\n  %58 = add i64 %56, 8\n  %59 = inttoptr i64 %58 to i64*\n  store i64 %54, i64* %59\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %56, i64* %60\n; # (if (pair X) (let Val (save (eval (car X))) (when (== Y ZERO) (se...\n; # (pair X)\n  %61 = and i64 %38, 15\n  %62 = icmp eq i64 %61, 0\n  br i1 %62, label %$14, label %$15\n$14:\n  %63 = phi i64 [%0, %$9] ; # Exe\n  %64 = phi i64 [%38, %$9] ; # X\n  %65 = phi i64 [%26, %$9] ; # Sym\n  %66 = phi i64 [%52, %$9] ; # Y\n; # (let Val (save (eval (car X))) (when (== Y ZERO) (setq Y Val) (go...\n; # (car X)\n  %67 = inttoptr i64 %64 to i64*\n  %68 = load i64, i64* %67\n; # (eval (car X))\n  %69 = and i64 %68, 6\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$19, label %$18\n$19:\n  %71 = phi i64 [%68, %$14] ; # X\n  br label %$17\n$18:\n  %72 = phi i64 [%68, %$14] ; # X\n  %73 = and i64 %72, 8\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$21, label %$20\n$21:\n  %75 = phi i64 [%72, %$18] ; # X\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n  br label %$17\n$20:\n  %78 = phi i64 [%72, %$18] ; # X\n  %79 = call i64 @evList(i64 %78)\n  br label %$17\n$17:\n  %80 = phi i64 [%71, %$19], [%75, %$21], [%78, %$20] ; # X\n  %81 = phi i64 [%71, %$19], [%77, %$21], [%79, %$20] ; # ->\n; # (save (eval (car X)))\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %83 = load i64, i64* %82\n  %84 = alloca i64, i64 2, align 16\n  %85 = ptrtoint i64* %84 to i64\n  %86 = inttoptr i64 %85 to i64*\n  store i64 %81, i64* %86\n  %87 = add i64 %85, 8\n  %88 = inttoptr i64 %87 to i64*\n  store i64 %83, i64* %88\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %85, i64* %89\n; # (when (== Y ZERO) (setq Y Val) (goto 1))\n; # (== Y ZERO)\n  %90 = icmp eq i64 %66, 2\n  br i1 %90, label %$22, label %$23\n$22:\n  %91 = phi i64 [%63, %$17] ; # Exe\n  %92 = phi i64 [%64, %$17] ; # X\n  %93 = phi i64 [%65, %$17] ; # Sym\n  %94 = phi i64 [%66, %$17] ; # Y\n  %95 = phi i64 [%81, %$17] ; # Val\n; # (goto 1)\n  br label %$-1\n$23:\n  %96 = phi i64 [%63, %$17] ; # Exe\n  %97 = phi i64 [%64, %$17] ; # X\n  %98 = phi i64 [%65, %$17] ; # Sym\n  %99 = phi i64 [%66, %$17] ; # Y\n  %100 = phi i64 [%81, %$17] ; # Val\n; # (when (sym? (val (tail Sym))) (if (nil? Y) (dbFetch Exe Sym) (dbT...\n; # (tail Sym)\n  %101 = add i64 %98, -8\n; # (val (tail Sym))\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n; # (sym? (val (tail Sym)))\n  %104 = and i64 %103, 8\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$24, label %$25\n$24:\n  %106 = phi i64 [%96, %$23] ; # Exe\n  %107 = phi i64 [%97, %$23] ; # X\n  %108 = phi i64 [%98, %$23] ; # Sym\n  %109 = phi i64 [%99, %$23] ; # Y\n  %110 = phi i64 [%100, %$23] ; # Val\n; # (if (nil? Y) (dbFetch Exe Sym) (dbTouch Exe Sym))\n; # (nil? Y)\n  %111 = icmp eq i64 %109, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %111, label %$26, label %$27\n$26:\n  %112 = phi i64 [%106, %$24] ; # Exe\n  %113 = phi i64 [%107, %$24] ; # X\n  %114 = phi i64 [%108, %$24] ; # Sym\n  %115 = phi i64 [%109, %$24] ; # Y\n  %116 = phi i64 [%110, %$24] ; # Val\n; # (dbFetch Exe Sym)\n  call void @dbFetch(i64 %112, i64 %114)\n  br label %$28\n$27:\n  %117 = phi i64 [%106, %$24] ; # Exe\n  %118 = phi i64 [%107, %$24] ; # X\n  %119 = phi i64 [%108, %$24] ; # Sym\n  %120 = phi i64 [%109, %$24] ; # Y\n  %121 = phi i64 [%110, %$24] ; # Val\n; # (dbTouch Exe Sym)\n  call void @dbTouch(i64 %117, i64 %119)\n  br label %$28\n$28:\n  %122 = phi i64 [%112, %$26], [%117, %$27] ; # Exe\n  %123 = phi i64 [%113, %$26], [%118, %$27] ; # X\n  %124 = phi i64 [%114, %$26], [%119, %$27] ; # Sym\n  %125 = phi i64 [%115, %$26], [%120, %$27] ; # Y\n  %126 = phi i64 [%116, %$26], [%121, %$27] ; # Val\n  br label %$25\n$25:\n  %127 = phi i64 [%96, %$23], [%122, %$28] ; # Exe\n  %128 = phi i64 [%97, %$23], [%123, %$28] ; # X\n  %129 = phi i64 [%98, %$23], [%124, %$28] ; # Sym\n  %130 = phi i64 [%99, %$23], [%125, %$28] ; # Y\n  %131 = phi i64 [%100, %$23], [%126, %$28] ; # Val\n; # (let V (get Sym Y) (unless (or (nil? V) (equal V Val)) (redefMsg ...\n; # (get Sym Y)\n  %132 = call i64 @get(i64 %129, i64 %130)\n; # (unless (or (nil? V) (equal V Val)) (redefMsg Sym Y))\n; # (or (nil? V) (equal V Val))\n; # (nil? V)\n  %133 = icmp eq i64 %132, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %133, label %$29, label %$30\n$30:\n  %134 = phi i64 [%127, %$25] ; # Exe\n  %135 = phi i64 [%128, %$25] ; # X\n  %136 = phi i64 [%129, %$25] ; # Sym\n  %137 = phi i64 [%130, %$25] ; # Y\n  %138 = phi i64 [%131, %$25] ; # Val\n  %139 = phi i64 [%132, %$25] ; # V\n; # (equal V Val)\n  %140 = call i1 @equal(i64 %139, i64 %138)\n  br label %$29\n$29:\n  %141 = phi i64 [%127, %$25], [%134, %$30] ; # Exe\n  %142 = phi i64 [%128, %$25], [%135, %$30] ; # X\n  %143 = phi i64 [%129, %$25], [%136, %$30] ; # Sym\n  %144 = phi i64 [%130, %$25], [%137, %$30] ; # Y\n  %145 = phi i64 [%131, %$25], [%138, %$30] ; # Val\n  %146 = phi i64 [%132, %$25], [%139, %$30] ; # V\n  %147 = phi i1 [1, %$25], [%140, %$30] ; # ->\n  br i1 %147, label %$32, label %$31\n$31:\n  %148 = phi i64 [%141, %$29] ; # Exe\n  %149 = phi i64 [%142, %$29] ; # X\n  %150 = phi i64 [%143, %$29] ; # Sym\n  %151 = phi i64 [%144, %$29] ; # Y\n  %152 = phi i64 [%145, %$29] ; # Val\n  %153 = phi i64 [%146, %$29] ; # V\n; # (redefMsg Sym Y)\n  call void @redefMsg(i64 %150, i64 %151)\n  br label %$32\n$32:\n  %154 = phi i64 [%141, %$29], [%148, %$31] ; # Exe\n  %155 = phi i64 [%142, %$29], [%149, %$31] ; # X\n  %156 = phi i64 [%143, %$29], [%150, %$31] ; # Sym\n  %157 = phi i64 [%144, %$29], [%151, %$31] ; # Y\n  %158 = phi i64 [%145, %$29], [%152, %$31] ; # Val\n  %159 = phi i64 [%146, %$29], [%153, %$31] ; # V\n; # (put Sym Y Val)\n  call void @put(i64 %156, i64 %157, i64 %158)\n; # (putSrc Sym Y)\n  call void @putSrc(i64 %156, i64 %157)\n  br label %$16\n$15:\n  %160 = phi i64 [%0, %$9] ; # Exe\n  %161 = phi i64 [%38, %$9] ; # X\n  %162 = phi i64 [%26, %$9] ; # Sym\n  %163 = phi i64 [%52, %$9] ; # Y\n; # (: 1 (chkVar Exe Sym) (when (sym? (val (tail Sym))) (dbTouch Exe ...\n  br label %$-1\n$-1:\n  %164 = phi i64 [%91, %$22], [%160, %$15] ; # Exe\n  %165 = phi i64 [%92, %$22], [%161, %$15] ; # X\n  %166 = phi i64 [%93, %$22], [%162, %$15] ; # Sym\n  %167 = phi i64 [%95, %$22], [%163, %$15] ; # Y\n; # (chkVar Exe Sym)\n  %168 = icmp uge i64 %166, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %168, label %$34, label %$33\n$34:\n  %169 = phi i64 [%166, %$-1] ; # X\n  %170 = phi i64 [%164, %$-1] ; # Exe\n  %171 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %169\n  br label %$33\n$33:\n  %172 = phi i64 [%166, %$-1], [%169, %$34] ; # X\n  %173 = phi i64 [%164, %$-1], [%170, %$34] ; # Exe\n  %174 = phi i1 [0, %$-1], [%171, %$34] ; # ->\n  br i1 %174, label %$35, label %$36\n$35:\n  %175 = phi i64 [%172, %$33] ; # X\n  %176 = phi i64 [%173, %$33] ; # Exe\n  call void @protErr(i64 %176, i64 %175)\n  unreachable\n$36:\n  %177 = phi i64 [%172, %$33] ; # X\n  %178 = phi i64 [%173, %$33] ; # Exe\n; # (when (sym? (val (tail Sym))) (dbTouch Exe Sym))\n; # (tail Sym)\n  %179 = add i64 %166, -8\n; # (val (tail Sym))\n  %180 = inttoptr i64 %179 to i64*\n  %181 = load i64, i64* %180\n; # (sym? (val (tail Sym)))\n  %182 = and i64 %181, 8\n  %183 = icmp ne i64 %182, 0\n  br i1 %183, label %$37, label %$38\n$37:\n  %184 = phi i64 [%164, %$36] ; # Exe\n  %185 = phi i64 [%165, %$36] ; # X\n  %186 = phi i64 [%166, %$36] ; # Sym\n  %187 = phi i64 [%167, %$36] ; # Y\n; # (dbTouch Exe Sym)\n  call void @dbTouch(i64 %184, i64 %186)\n  br label %$38\n$38:\n  %188 = phi i64 [%164, %$36], [%184, %$37] ; # Exe\n  %189 = phi i64 [%165, %$36], [%185, %$37] ; # X\n  %190 = phi i64 [%166, %$36], [%186, %$37] ; # Sym\n  %191 = phi i64 [%167, %$36], [%187, %$37] ; # Y\n; # (let V (val Sym) (unless (or (nil? V) (== V Sym) (equal V Y)) (re...\n; # (val Sym)\n  %192 = inttoptr i64 %190 to i64*\n  %193 = load i64, i64* %192\n; # (unless (or (nil? V) (== V Sym) (equal V Y)) (redefMsg Sym 0))\n; # (or (nil? V) (== V Sym) (equal V Y))\n; # (nil? V)\n  %194 = icmp eq i64 %193, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %194, label %$39, label %$40\n$40:\n  %195 = phi i64 [%188, %$38] ; # Exe\n  %196 = phi i64 [%189, %$38] ; # X\n  %197 = phi i64 [%190, %$38] ; # Sym\n  %198 = phi i64 [%191, %$38] ; # Y\n  %199 = phi i64 [%193, %$38] ; # V\n; # (== V Sym)\n  %200 = icmp eq i64 %199, %197\n  br i1 %200, label %$39, label %$41\n$41:\n  %201 = phi i64 [%195, %$40] ; # Exe\n  %202 = phi i64 [%196, %$40] ; # X\n  %203 = phi i64 [%197, %$40] ; # Sym\n  %204 = phi i64 [%198, %$40] ; # Y\n  %205 = phi i64 [%199, %$40] ; # V\n; # (equal V Y)\n  %206 = call i1 @equal(i64 %205, i64 %204)\n  br label %$39\n$39:\n  %207 = phi i64 [%188, %$38], [%195, %$40], [%201, %$41] ; # Exe\n  %208 = phi i64 [%189, %$38], [%196, %$40], [%202, %$41] ; # X\n  %209 = phi i64 [%190, %$38], [%197, %$40], [%203, %$41] ; # Sym\n  %210 = phi i64 [%191, %$38], [%198, %$40], [%204, %$41] ; # Y\n  %211 = phi i64 [%193, %$38], [%199, %$40], [%205, %$41] ; # V\n  %212 = phi i1 [1, %$38], [1, %$40], [%206, %$41] ; # ->\n  br i1 %212, label %$43, label %$42\n$42:\n  %213 = phi i64 [%207, %$39] ; # Exe\n  %214 = phi i64 [%208, %$39] ; # X\n  %215 = phi i64 [%209, %$39] ; # Sym\n  %216 = phi i64 [%210, %$39] ; # Y\n  %217 = phi i64 [%211, %$39] ; # V\n; # (redefMsg Sym 0)\n  call void @redefMsg(i64 %215, i64 0)\n  br label %$43\n$43:\n  %218 = phi i64 [%207, %$39], [%213, %$42] ; # Exe\n  %219 = phi i64 [%208, %$39], [%214, %$42] ; # X\n  %220 = phi i64 [%209, %$39], [%215, %$42] ; # Sym\n  %221 = phi i64 [%210, %$39], [%216, %$42] ; # Y\n  %222 = phi i64 [%211, %$39], [%217, %$42] ; # V\n; # (set Sym Y)\n  %223 = inttoptr i64 %220 to i64*\n  store i64 %221, i64* %223\n; # (putSrc Sym 0)\n  call void @putSrc(i64 %220, i64 0)\n  br label %$16\n$16:\n  %224 = phi i64 [%154, %$32], [%218, %$43] ; # Exe\n  %225 = phi i64 [%155, %$32], [%219, %$43] ; # X\n  %226 = phi i64 [%156, %$32], [%220, %$43] ; # Sym\n  %227 = phi i64 [%157, %$32], [%221, %$43] ; # Y\n; # (drop *Safe)\n  %228 = inttoptr i64 %31 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n  %231 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %230, i64* %231\n  ret i64 %226\n}\n\ndefine i64 @_De(i64) align 8 {\n$1:\n; # (let S (cadr Exe) (redefine Exe S (cddr Exe)) S)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (cddr Exe)\n  %6 = inttoptr i64 %0 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = inttoptr i64 %8 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (redefine Exe S (cddr Exe))\n  call void @redefine(i64 %0, i64 %5, i64 %11)\n  ret i64 %5\n}\n\ndefine i64 @_Dm(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (car X) Fun (cdr X) Msg (if (atom Y) Y (car Y...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (cdr X)\n  %6 = inttoptr i64 %3 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n; # (if (atom Y) Y (car Y))\n; # (atom Y)\n  %9 = and i64 %5, 15\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$2, label %$3\n$2:\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = phi i64 [%3, %$1] ; # X\n  %13 = phi i64 [%5, %$1] ; # Y\n  %14 = phi i64 [%8, %$1] ; # Fun\n  br label %$4\n$3:\n  %15 = phi i64 [%0, %$1] ; # Exe\n  %16 = phi i64 [%3, %$1] ; # X\n  %17 = phi i64 [%5, %$1] ; # Y\n  %18 = phi i64 [%8, %$1] ; # Fun\n; # (car Y)\n  %19 = inttoptr i64 %17 to i64*\n  %20 = load i64, i64* %19\n  br label %$4\n$4:\n  %21 = phi i64 [%11, %$2], [%15, %$3] ; # Exe\n  %22 = phi i64 [%12, %$2], [%16, %$3] ; # X\n  %23 = phi i64 [%13, %$2], [%17, %$3] ; # Y\n  %24 = phi i64 [%14, %$2], [%18, %$3] ; # Fun\n  %25 = phi i64 [%13, %$2], [%20, %$3] ; # ->\n; # (cond ((atom Y) (val $Class)) ((atom (cdr Y)) @) (T (let Z @ (get...\n; # (atom Y)\n  %26 = and i64 %23, 15\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$7, label %$6\n$7:\n  %28 = phi i64 [%21, %$4] ; # Exe\n  %29 = phi i64 [%22, %$4] ; # X\n  %30 = phi i64 [%23, %$4] ; # Y\n  %31 = phi i64 [%24, %$4] ; # Fun\n  %32 = phi i64 [%25, %$4] ; # Msg\n; # (val $Class)\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 600) to i64) to i64*\n  %34 = load i64, i64* %33\n  br label %$5\n$6:\n  %35 = phi i64 [%21, %$4] ; # Exe\n  %36 = phi i64 [%22, %$4] ; # X\n  %37 = phi i64 [%23, %$4] ; # Y\n  %38 = phi i64 [%24, %$4] ; # Fun\n  %39 = phi i64 [%25, %$4] ; # Msg\n; # (cdr Y)\n  %40 = inttoptr i64 %37 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (atom (cdr Y))\n  %43 = and i64 %42, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$9, label %$8\n$9:\n  %45 = phi i64 [%35, %$6] ; # Exe\n  %46 = phi i64 [%36, %$6] ; # X\n  %47 = phi i64 [%37, %$6] ; # Y\n  %48 = phi i64 [%38, %$6] ; # Fun\n  %49 = phi i64 [%39, %$6] ; # Msg\n  br label %$5\n$8:\n  %50 = phi i64 [%35, %$6] ; # Exe\n  %51 = phi i64 [%36, %$6] ; # X\n  %52 = phi i64 [%37, %$6] ; # Y\n  %53 = phi i64 [%38, %$6] ; # Fun\n  %54 = phi i64 [%39, %$6] ; # Msg\n; # (let Z @ (get (if (nil? (cdr Z)) (val $Class) @) (needSymb Exe (c...\n; # (if (nil? (cdr Z)) (val $Class) @)\n; # (cdr Z)\n  %55 = inttoptr i64 %42 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (nil? (cdr Z))\n  %58 = icmp eq i64 %57, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %58, label %$10, label %$11\n$10:\n  %59 = phi i64 [%50, %$8] ; # Exe\n  %60 = phi i64 [%51, %$8] ; # X\n  %61 = phi i64 [%52, %$8] ; # Y\n  %62 = phi i64 [%53, %$8] ; # Fun\n  %63 = phi i64 [%54, %$8] ; # Msg\n  %64 = phi i64 [%42, %$8] ; # Z\n; # (val $Class)\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 600) to i64) to i64*\n  %66 = load i64, i64* %65\n  br label %$12\n$11:\n  %67 = phi i64 [%50, %$8] ; # Exe\n  %68 = phi i64 [%51, %$8] ; # X\n  %69 = phi i64 [%52, %$8] ; # Y\n  %70 = phi i64 [%53, %$8] ; # Fun\n  %71 = phi i64 [%54, %$8] ; # Msg\n  %72 = phi i64 [%42, %$8] ; # Z\n  br label %$12\n$12:\n  %73 = phi i64 [%59, %$10], [%67, %$11] ; # Exe\n  %74 = phi i64 [%60, %$10], [%68, %$11] ; # X\n  %75 = phi i64 [%61, %$10], [%69, %$11] ; # Y\n  %76 = phi i64 [%62, %$10], [%70, %$11] ; # Fun\n  %77 = phi i64 [%63, %$10], [%71, %$11] ; # Msg\n  %78 = phi i64 [%64, %$10], [%72, %$11] ; # Z\n  %79 = phi i64 [%66, %$10], [%57, %$11] ; # ->\n; # (car Z)\n  %80 = inttoptr i64 %78 to i64*\n  %81 = load i64, i64* %80\n; # (needSymb Exe (car Z))\n  %82 = xor i64 %81, 8\n  %83 = and i64 %82, 14\n  %84 = icmp eq i64 %83, 0\n  br i1 %84, label %$14, label %$13\n$13:\n  %85 = phi i64 [%81, %$12] ; # X\n  %86 = phi i64 [%73, %$12] ; # Exe\n  call void @symErr(i64 %86, i64 %85)\n  unreachable\n$14:\n  %87 = phi i64 [%81, %$12] ; # X\n  %88 = phi i64 [%73, %$12] ; # Exe\n; # (get (if (nil? (cdr Z)) (val $Class) @) (needSymb Exe (car Z)))\n  %89 = call i64 @get(i64 %79, i64 %87)\n  br label %$5\n$5:\n  %90 = phi i64 [%28, %$7], [%45, %$9], [%73, %$14] ; # Exe\n  %91 = phi i64 [%29, %$7], [%46, %$9], [%74, %$14] ; # X\n  %92 = phi i64 [%30, %$7], [%47, %$9], [%75, %$14] ; # Y\n  %93 = phi i64 [%31, %$7], [%48, %$9], [%76, %$14] ; # Fun\n  %94 = phi i64 [%32, %$7], [%49, %$9], [%77, %$14] ; # Msg\n  %95 = phi i64 [%34, %$7], [%42, %$9], [%89, %$14] ; # ->\n; # (chkVar Exe Cls)\n  %96 = icmp uge i64 %95, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %96, label %$16, label %$15\n$16:\n  %97 = phi i64 [%95, %$5] ; # X\n  %98 = phi i64 [%90, %$5] ; # Exe\n  %99 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %97\n  br label %$15\n$15:\n  %100 = phi i64 [%95, %$5], [%97, %$16] ; # X\n  %101 = phi i64 [%90, %$5], [%98, %$16] ; # Exe\n  %102 = phi i1 [0, %$5], [%99, %$16] ; # ->\n  br i1 %102, label %$17, label %$18\n$17:\n  %103 = phi i64 [%100, %$15] ; # X\n  %104 = phi i64 [%101, %$15] ; # Exe\n  call void @protErr(i64 %104, i64 %103)\n  unreachable\n$18:\n  %105 = phi i64 [%100, %$15] ; # X\n  %106 = phi i64 [%101, %$15] ; # Exe\n; # (unless (t? Msg) (redefine Exe Msg (val $Meth)))\n; # (t? Msg)\n  %107 = icmp eq i64 %94, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %107, label %$20, label %$19\n$19:\n  %108 = phi i64 [%90, %$18] ; # Exe\n  %109 = phi i64 [%91, %$18] ; # X\n  %110 = phi i64 [%92, %$18] ; # Y\n  %111 = phi i64 [%93, %$18] ; # Fun\n  %112 = phi i64 [%94, %$18] ; # Msg\n  %113 = phi i64 [%95, %$18] ; # Cls\n; # (val $Meth)\n  %114 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 248) to i64) to i64*\n  %115 = load i64, i64* %114\n; # (redefine Exe Msg (val $Meth))\n  call void @redefine(i64 %108, i64 %112, i64 %115)\n  br label %$20\n$20:\n  %116 = phi i64 [%90, %$18], [%108, %$19] ; # Exe\n  %117 = phi i64 [%91, %$18], [%109, %$19] ; # X\n  %118 = phi i64 [%92, %$18], [%110, %$19] ; # Y\n  %119 = phi i64 [%93, %$18], [%111, %$19] ; # Fun\n  %120 = phi i64 [%94, %$18], [%112, %$19] ; # Msg\n  %121 = phi i64 [%95, %$18], [%113, %$19] ; # Cls\n; # (when (symb? Fun) (let L (val Fun) (loop (when (or (atom L) (atom...\n; # (symb? Fun)\n  %122 = xor i64 %119, 8\n  %123 = and i64 %122, 14\n  %124 = icmp eq i64 %123, 0\n  br i1 %124, label %$21, label %$22\n$21:\n  %125 = phi i64 [%116, %$20] ; # Exe\n  %126 = phi i64 [%117, %$20] ; # X\n  %127 = phi i64 [%118, %$20] ; # Y\n  %128 = phi i64 [%119, %$20] ; # Fun\n  %129 = phi i64 [%120, %$20] ; # Msg\n  %130 = phi i64 [%121, %$20] ; # Cls\n; # (let L (val Fun) (loop (when (or (atom L) (atom (car L))) (err Ex...\n; # (val Fun)\n  %131 = inttoptr i64 %128 to i64*\n  %132 = load i64, i64* %131\n; # (loop (when (or (atom L) (atom (car L))) (err Exe Msg ($ \"Bad mes...\n  br label %$23\n$23:\n  %133 = phi i64 [%125, %$21], [%192, %$28] ; # Exe\n  %134 = phi i64 [%126, %$21], [%193, %$28] ; # X\n  %135 = phi i64 [%127, %$21], [%194, %$28] ; # Y\n  %136 = phi i64 [%128, %$21], [%195, %$28] ; # Fun\n  %137 = phi i64 [%129, %$21], [%196, %$28] ; # Msg\n  %138 = phi i64 [%130, %$21], [%197, %$28] ; # Cls\n  %139 = phi i64 [%132, %$21], [%201, %$28] ; # L\n; # (when (or (atom L) (atom (car L))) (err Exe Msg ($ \"Bad message\")...\n; # (or (atom L) (atom (car L)))\n; # (atom L)\n  %140 = and i64 %139, 15\n  %141 = icmp ne i64 %140, 0\n  br i1 %141, label %$24, label %$25\n$25:\n  %142 = phi i64 [%133, %$23] ; # Exe\n  %143 = phi i64 [%134, %$23] ; # X\n  %144 = phi i64 [%135, %$23] ; # Y\n  %145 = phi i64 [%136, %$23] ; # Fun\n  %146 = phi i64 [%137, %$23] ; # Msg\n  %147 = phi i64 [%138, %$23] ; # Cls\n  %148 = phi i64 [%139, %$23] ; # L\n; # (car L)\n  %149 = inttoptr i64 %148 to i64*\n  %150 = load i64, i64* %149\n; # (atom (car L))\n  %151 = and i64 %150, 15\n  %152 = icmp ne i64 %151, 0\n  br label %$24\n$24:\n  %153 = phi i64 [%133, %$23], [%142, %$25] ; # Exe\n  %154 = phi i64 [%134, %$23], [%143, %$25] ; # X\n  %155 = phi i64 [%135, %$23], [%144, %$25] ; # Y\n  %156 = phi i64 [%136, %$23], [%145, %$25] ; # Fun\n  %157 = phi i64 [%137, %$23], [%146, %$25] ; # Msg\n  %158 = phi i64 [%138, %$23], [%147, %$25] ; # Cls\n  %159 = phi i64 [%139, %$23], [%148, %$25] ; # L\n  %160 = phi i1 [1, %$23], [%152, %$25] ; # ->\n  br i1 %160, label %$26, label %$27\n$26:\n  %161 = phi i64 [%153, %$24] ; # Exe\n  %162 = phi i64 [%154, %$24] ; # X\n  %163 = phi i64 [%155, %$24] ; # Y\n  %164 = phi i64 [%156, %$24] ; # Fun\n  %165 = phi i64 [%157, %$24] ; # Msg\n  %166 = phi i64 [%158, %$24] ; # Cls\n  %167 = phi i64 [%159, %$24] ; # L\n; # (err Exe Msg ($ \"Bad message\") null)\n  call void @err(i64 %161, i64 %165, i8* bitcast ([12 x i8]* @$73 to i8*), i8* null)\n  unreachable\n$27:\n  %168 = phi i64 [%153, %$24] ; # Exe\n  %169 = phi i64 [%154, %$24] ; # X\n  %170 = phi i64 [%155, %$24] ; # Y\n  %171 = phi i64 [%156, %$24] ; # Fun\n  %172 = phi i64 [%157, %$24] ; # Msg\n  %173 = phi i64 [%158, %$24] ; # Cls\n  %174 = phi i64 [%159, %$24] ; # L\n; # (? (== Msg (caar L)) (setq X (car L) Fun (cdr X)))\n; # (caar L)\n  %175 = inttoptr i64 %174 to i64*\n  %176 = load i64, i64* %175\n  %177 = inttoptr i64 %176 to i64*\n  %178 = load i64, i64* %177\n; # (== Msg (caar L))\n  %179 = icmp eq i64 %172, %178\n  br i1 %179, label %$30, label %$28\n$30:\n  %180 = phi i64 [%168, %$27] ; # Exe\n  %181 = phi i64 [%169, %$27] ; # X\n  %182 = phi i64 [%170, %$27] ; # Y\n  %183 = phi i64 [%171, %$27] ; # Fun\n  %184 = phi i64 [%172, %$27] ; # Msg\n  %185 = phi i64 [%173, %$27] ; # Cls\n  %186 = phi i64 [%174, %$27] ; # L\n; # (car L)\n  %187 = inttoptr i64 %186 to i64*\n  %188 = load i64, i64* %187\n; # (cdr X)\n  %189 = inttoptr i64 %188 to i64*\n  %190 = getelementptr i64, i64* %189, i32 1\n  %191 = load i64, i64* %190\n  br label %$29\n$28:\n  %192 = phi i64 [%168, %$27] ; # Exe\n  %193 = phi i64 [%169, %$27] ; # X\n  %194 = phi i64 [%170, %$27] ; # Y\n  %195 = phi i64 [%171, %$27] ; # Fun\n  %196 = phi i64 [%172, %$27] ; # Msg\n  %197 = phi i64 [%173, %$27] ; # Cls\n  %198 = phi i64 [%174, %$27] ; # L\n; # (shift L)\n  %199 = inttoptr i64 %198 to i64*\n  %200 = getelementptr i64, i64* %199, i32 1\n  %201 = load i64, i64* %200\n  br label %$23\n$29:\n  %202 = phi i64 [%180, %$30] ; # Exe\n  %203 = phi i64 [%188, %$30] ; # X\n  %204 = phi i64 [%182, %$30] ; # Y\n  %205 = phi i64 [%191, %$30] ; # Fun\n  %206 = phi i64 [%184, %$30] ; # Msg\n  %207 = phi i64 [%185, %$30] ; # Cls\n  %208 = phi i64 [%186, %$30] ; # L\n  %209 = phi i64 [%191, %$30] ; # ->\n  br label %$22\n$22:\n  %210 = phi i64 [%116, %$20], [%202, %$29] ; # Exe\n  %211 = phi i64 [%117, %$20], [%203, %$29] ; # X\n  %212 = phi i64 [%118, %$20], [%204, %$29] ; # Y\n  %213 = phi i64 [%119, %$20], [%205, %$29] ; # Fun\n  %214 = phi i64 [%120, %$20], [%206, %$29] ; # Msg\n  %215 = phi i64 [%121, %$20], [%207, %$29] ; # Cls\n; # (let (V (val Cls) L V) (loop (? (or (atom L) (atom (car L))) (set...\n; # (val Cls)\n  %216 = inttoptr i64 %215 to i64*\n  %217 = load i64, i64* %216\n; # (loop (? (or (atom L) (atom (car L))) (set Cls (cons (if (atom (c...\n  br label %$31\n$31:\n  %218 = phi i64 [%210, %$22], [%336, %$40] ; # Exe\n  %219 = phi i64 [%211, %$22], [%337, %$40] ; # X\n  %220 = phi i64 [%212, %$22], [%338, %$40] ; # Y\n  %221 = phi i64 [%213, %$22], [%339, %$40] ; # Fun\n  %222 = phi i64 [%214, %$22], [%340, %$40] ; # Msg\n  %223 = phi i64 [%215, %$22], [%341, %$40] ; # Cls\n  %224 = phi i64 [%217, %$22], [%342, %$40] ; # V\n  %225 = phi i64 [%217, %$22], [%346, %$40] ; # L\n; # (? (or (atom L) (atom (car L))) (set Cls (cons (if (atom (car X))...\n; # (or (atom L) (atom (car L)))\n; # (atom L)\n  %226 = and i64 %225, 15\n  %227 = icmp ne i64 %226, 0\n  br i1 %227, label %$32, label %$33\n$33:\n  %228 = phi i64 [%218, %$31] ; # Exe\n  %229 = phi i64 [%219, %$31] ; # X\n  %230 = phi i64 [%220, %$31] ; # Y\n  %231 = phi i64 [%221, %$31] ; # Fun\n  %232 = phi i64 [%222, %$31] ; # Msg\n  %233 = phi i64 [%223, %$31] ; # Cls\n  %234 = phi i64 [%224, %$31] ; # V\n  %235 = phi i64 [%225, %$31] ; # L\n; # (car L)\n  %236 = inttoptr i64 %235 to i64*\n  %237 = load i64, i64* %236\n; # (atom (car L))\n  %238 = and i64 %237, 15\n  %239 = icmp ne i64 %238, 0\n  br label %$32\n$32:\n  %240 = phi i64 [%218, %$31], [%228, %$33] ; # Exe\n  %241 = phi i64 [%219, %$31], [%229, %$33] ; # X\n  %242 = phi i64 [%220, %$31], [%230, %$33] ; # Y\n  %243 = phi i64 [%221, %$31], [%231, %$33] ; # Fun\n  %244 = phi i64 [%222, %$31], [%232, %$33] ; # Msg\n  %245 = phi i64 [%223, %$31], [%233, %$33] ; # Cls\n  %246 = phi i64 [%224, %$31], [%234, %$33] ; # V\n  %247 = phi i64 [%225, %$31], [%235, %$33] ; # L\n  %248 = phi i1 [1, %$31], [%239, %$33] ; # ->\n  br i1 %248, label %$36, label %$34\n$36:\n  %249 = phi i64 [%240, %$32] ; # Exe\n  %250 = phi i64 [%241, %$32] ; # X\n  %251 = phi i64 [%242, %$32] ; # Y\n  %252 = phi i64 [%243, %$32] ; # Fun\n  %253 = phi i64 [%244, %$32] ; # Msg\n  %254 = phi i64 [%245, %$32] ; # Cls\n  %255 = phi i64 [%246, %$32] ; # V\n  %256 = phi i64 [%247, %$32] ; # L\n; # (set Cls (cons (if (atom (car X)) X (cons Msg Fun)) V))\n; # (if (atom (car X)) X (cons Msg Fun))\n; # (car X)\n  %257 = inttoptr i64 %250 to i64*\n  %258 = load i64, i64* %257\n; # (atom (car X))\n  %259 = and i64 %258, 15\n  %260 = icmp ne i64 %259, 0\n  br i1 %260, label %$37, label %$38\n$37:\n  %261 = phi i64 [%249, %$36] ; # Exe\n  %262 = phi i64 [%250, %$36] ; # X\n  %263 = phi i64 [%251, %$36] ; # Y\n  %264 = phi i64 [%252, %$36] ; # Fun\n  %265 = phi i64 [%253, %$36] ; # Msg\n  %266 = phi i64 [%254, %$36] ; # Cls\n  %267 = phi i64 [%255, %$36] ; # V\n  %268 = phi i64 [%256, %$36] ; # L\n  br label %$39\n$38:\n  %269 = phi i64 [%249, %$36] ; # Exe\n  %270 = phi i64 [%250, %$36] ; # X\n  %271 = phi i64 [%251, %$36] ; # Y\n  %272 = phi i64 [%252, %$36] ; # Fun\n  %273 = phi i64 [%253, %$36] ; # Msg\n  %274 = phi i64 [%254, %$36] ; # Cls\n  %275 = phi i64 [%255, %$36] ; # V\n  %276 = phi i64 [%256, %$36] ; # L\n; # (cons Msg Fun)\n  %277 = call i64 @cons(i64 %273, i64 %272)\n  br label %$39\n$39:\n  %278 = phi i64 [%261, %$37], [%269, %$38] ; # Exe\n  %279 = phi i64 [%262, %$37], [%270, %$38] ; # X\n  %280 = phi i64 [%263, %$37], [%271, %$38] ; # Y\n  %281 = phi i64 [%264, %$37], [%272, %$38] ; # Fun\n  %282 = phi i64 [%265, %$37], [%273, %$38] ; # Msg\n  %283 = phi i64 [%266, %$37], [%274, %$38] ; # Cls\n  %284 = phi i64 [%267, %$37], [%275, %$38] ; # V\n  %285 = phi i64 [%268, %$37], [%276, %$38] ; # L\n  %286 = phi i64 [%262, %$37], [%277, %$38] ; # ->\n; # (cons (if (atom (car X)) X (cons Msg Fun)) V)\n  %287 = call i64 @cons(i64 %286, i64 %284)\n  %288 = inttoptr i64 %254 to i64*\n  store i64 %287, i64* %288\n  br label %$35\n$34:\n  %289 = phi i64 [%240, %$32] ; # Exe\n  %290 = phi i64 [%241, %$32] ; # X\n  %291 = phi i64 [%242, %$32] ; # Y\n  %292 = phi i64 [%243, %$32] ; # Fun\n  %293 = phi i64 [%244, %$32] ; # Msg\n  %294 = phi i64 [%245, %$32] ; # Cls\n  %295 = phi i64 [%246, %$32] ; # V\n  %296 = phi i64 [%247, %$32] ; # L\n; # (? (== Msg (caar L)) (let Z (car L) (unless (equal Fun (cdr Z)) (...\n; # (caar L)\n  %297 = inttoptr i64 %296 to i64*\n  %298 = load i64, i64* %297\n  %299 = inttoptr i64 %298 to i64*\n  %300 = load i64, i64* %299\n; # (== Msg (caar L))\n  %301 = icmp eq i64 %293, %300\n  br i1 %301, label %$41, label %$40\n$41:\n  %302 = phi i64 [%289, %$34] ; # Exe\n  %303 = phi i64 [%290, %$34] ; # X\n  %304 = phi i64 [%291, %$34] ; # Y\n  %305 = phi i64 [%292, %$34] ; # Fun\n  %306 = phi i64 [%293, %$34] ; # Msg\n  %307 = phi i64 [%294, %$34] ; # Cls\n  %308 = phi i64 [%295, %$34] ; # V\n  %309 = phi i64 [%296, %$34] ; # L\n; # (let Z (car L) (unless (equal Fun (cdr Z)) (redefMsg Msg Cls)) (s...\n; # (car L)\n  %310 = inttoptr i64 %309 to i64*\n  %311 = load i64, i64* %310\n; # (unless (equal Fun (cdr Z)) (redefMsg Msg Cls))\n; # (cdr Z)\n  %312 = inttoptr i64 %311 to i64*\n  %313 = getelementptr i64, i64* %312, i32 1\n  %314 = load i64, i64* %313\n; # (equal Fun (cdr Z))\n  %315 = call i1 @equal(i64 %305, i64 %314)\n  br i1 %315, label %$43, label %$42\n$42:\n  %316 = phi i64 [%302, %$41] ; # Exe\n  %317 = phi i64 [%303, %$41] ; # X\n  %318 = phi i64 [%304, %$41] ; # Y\n  %319 = phi i64 [%305, %$41] ; # Fun\n  %320 = phi i64 [%306, %$41] ; # Msg\n  %321 = phi i64 [%307, %$41] ; # Cls\n  %322 = phi i64 [%308, %$41] ; # V\n  %323 = phi i64 [%309, %$41] ; # L\n  %324 = phi i64 [%311, %$41] ; # Z\n; # (redefMsg Msg Cls)\n  call void @redefMsg(i64 %320, i64 %321)\n  br label %$43\n$43:\n  %325 = phi i64 [%302, %$41], [%316, %$42] ; # Exe\n  %326 = phi i64 [%303, %$41], [%317, %$42] ; # X\n  %327 = phi i64 [%304, %$41], [%318, %$42] ; # Y\n  %328 = phi i64 [%305, %$41], [%319, %$42] ; # Fun\n  %329 = phi i64 [%306, %$41], [%320, %$42] ; # Msg\n  %330 = phi i64 [%307, %$41], [%321, %$42] ; # Cls\n  %331 = phi i64 [%308, %$41], [%322, %$42] ; # V\n  %332 = phi i64 [%309, %$41], [%323, %$42] ; # L\n  %333 = phi i64 [%311, %$41], [%324, %$42] ; # Z\n; # (set 2 Z Fun)\n  %334 = inttoptr i64 %333 to i64*\n  %335 = getelementptr i64, i64* %334, i32 1\n  store i64 %328, i64* %335\n  br label %$35\n$40:\n  %336 = phi i64 [%289, %$34] ; # Exe\n  %337 = phi i64 [%290, %$34] ; # X\n  %338 = phi i64 [%291, %$34] ; # Y\n  %339 = phi i64 [%292, %$34] ; # Fun\n  %340 = phi i64 [%293, %$34] ; # Msg\n  %341 = phi i64 [%294, %$34] ; # Cls\n  %342 = phi i64 [%295, %$34] ; # V\n  %343 = phi i64 [%296, %$34] ; # L\n; # (shift L)\n  %344 = inttoptr i64 %343 to i64*\n  %345 = getelementptr i64, i64* %344, i32 1\n  %346 = load i64, i64* %345\n  br label %$31\n$35:\n  %347 = phi i64 [%278, %$39], [%325, %$43] ; # Exe\n  %348 = phi i64 [%279, %$39], [%326, %$43] ; # X\n  %349 = phi i64 [%280, %$39], [%327, %$43] ; # Y\n  %350 = phi i64 [%281, %$39], [%328, %$43] ; # Fun\n  %351 = phi i64 [%282, %$39], [%329, %$43] ; # Msg\n  %352 = phi i64 [%283, %$39], [%330, %$43] ; # Cls\n  %353 = phi i64 [%284, %$39], [%331, %$43] ; # V\n  %354 = phi i64 [%285, %$39], [%332, %$43] ; # L\n  %355 = phi i64 [%287, %$39], [%328, %$43] ; # ->\n; # (putSrc Cls Msg)\n  call void @putSrc(i64 %352, i64 %351)\n  ret i64 %351\n}\n\ndefine i64 @evMethod(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (let (Y (car Exe) P (set $Bind (push (val $At) $At (val $Bind) Ex...\n; # (car Exe)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = load i64, i64* %5\n; # (set $Bind (push (val $At) $At (val $Bind) Exe))\n; # (val $At)\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %8 = load i64, i64* %7\n; # (val $Bind)\n  %9 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %10 = load i64, i64* %9\n; # (push (val $At) $At (val $Bind) Exe)\n  %11 = alloca i64, i64 4, align 16\n  %12 = ptrtoint i64* %11 to i64\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = add i64 %12, 8\n  %15 = inttoptr i64 %14 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), i64* %15\n  %16 = add i64 %12, 16\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %10, i64* %17\n  %18 = add i64 %12, 24\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %3, i64* %19\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %12, i64* %20\n; # (set $Bind (setq P (push Obj $This P)))\n; # (push Obj $This P)\n  %21 = alloca i64, i64 3, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %0, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64), i64* %25\n  %26 = add i64 %22, 16\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %12, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %22, i64* %28\n; # (while (pair Y) (let (V (eval (++ X)) Z (++ Y)) (if (atom Z) (set...\n  br label %$2\n$2:\n  %29 = phi i64 [%0, %$1], [%248, %$12] ; # Obj\n  %30 = phi i64 [%1, %$1], [%249, %$12] ; # Typ\n  %31 = phi i64 [%2, %$1], [%250, %$12] ; # Key\n  %32 = phi i64 [%3, %$1], [%251, %$12] ; # Exe\n  %33 = phi i64 [%4, %$1], [%252, %$12] ; # X\n  %34 = phi i64 [%6, %$1], [%253, %$12] ; # Y\n  %35 = phi i64 [%22, %$1], [%254, %$12] ; # P\n; # (pair Y)\n  %36 = and i64 %34, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$3, label %$4\n$3:\n  %38 = phi i64 [%29, %$2] ; # Obj\n  %39 = phi i64 [%30, %$2] ; # Typ\n  %40 = phi i64 [%31, %$2] ; # Key\n  %41 = phi i64 [%32, %$2] ; # Exe\n  %42 = phi i64 [%33, %$2] ; # X\n  %43 = phi i64 [%34, %$2] ; # Y\n  %44 = phi i64 [%35, %$2] ; # P\n; # (let (V (eval (++ X)) Z (++ Y)) (if (atom Z) (set $Bind (setq P (...\n; # (++ X)\n  %45 = inttoptr i64 %42 to i64*\n  %46 = getelementptr i64, i64* %45, i32 1\n  %47 = load i64, i64* %46\n  %48 = load i64, i64* %45\n; # (eval (++ X))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$7, label %$6\n$7:\n  %51 = phi i64 [%48, %$3] ; # X\n  br label %$5\n$6:\n  %52 = phi i64 [%48, %$3] ; # X\n  %53 = and i64 %52, 8\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$9, label %$8\n$9:\n  %55 = phi i64 [%52, %$6] ; # X\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n  br label %$5\n$8:\n  %58 = phi i64 [%52, %$6] ; # X\n  %59 = call i64 @evList(i64 %58)\n  br label %$5\n$5:\n  %60 = phi i64 [%51, %$7], [%55, %$9], [%58, %$8] ; # X\n  %61 = phi i64 [%51, %$7], [%57, %$9], [%59, %$8] ; # ->\n; # (++ Y)\n  %62 = inttoptr i64 %43 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  %65 = load i64, i64* %62\n; # (if (atom Z) (set $Bind (setq P (push V (needChkVar Exe Z) P))) (...\n; # (atom Z)\n  %66 = and i64 %65, 15\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$10, label %$11\n$10:\n  %68 = phi i64 [%38, %$5] ; # Obj\n  %69 = phi i64 [%39, %$5] ; # Typ\n  %70 = phi i64 [%40, %$5] ; # Key\n  %71 = phi i64 [%41, %$5] ; # Exe\n  %72 = phi i64 [%47, %$5] ; # X\n  %73 = phi i64 [%64, %$5] ; # Y\n  %74 = phi i64 [%44, %$5] ; # P\n  %75 = phi i64 [%61, %$5] ; # V\n  %76 = phi i64 [%65, %$5] ; # Z\n; # (set $Bind (setq P (push V (needChkVar Exe Z) P)))\n; # (needChkVar Exe Z)\n  %77 = and i64 %76, 6\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$13, label %$14\n$13:\n  %79 = phi i64 [%76, %$10] ; # X\n  %80 = phi i64 [%71, %$10] ; # Exe\n  call void @varErr(i64 %80, i64 %79)\n  unreachable\n$14:\n  %81 = phi i64 [%76, %$10] ; # X\n  %82 = phi i64 [%71, %$10] ; # Exe\n  %83 = icmp uge i64 %81, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %83, label %$16, label %$15\n$16:\n  %84 = phi i64 [%81, %$14] ; # X\n  %85 = phi i64 [%82, %$14] ; # Exe\n  %86 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %84\n  br label %$15\n$15:\n  %87 = phi i64 [%81, %$14], [%84, %$16] ; # X\n  %88 = phi i64 [%82, %$14], [%85, %$16] ; # Exe\n  %89 = phi i1 [0, %$14], [%86, %$16] ; # ->\n  br i1 %89, label %$17, label %$18\n$17:\n  %90 = phi i64 [%87, %$15] ; # X\n  %91 = phi i64 [%88, %$15] ; # Exe\n  call void @protErr(i64 %91, i64 %90)\n  unreachable\n$18:\n  %92 = phi i64 [%87, %$15] ; # X\n  %93 = phi i64 [%88, %$15] ; # Exe\n; # (push V (needChkVar Exe Z) P)\n  %94 = alloca i64, i64 3, align 16\n  %95 = ptrtoint i64* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %75, i64* %96\n  %97 = add i64 %95, 8\n  %98 = inttoptr i64 %97 to i64*\n  store i64 %81, i64* %98\n  %99 = add i64 %95, 16\n  %100 = inttoptr i64 %99 to i64*\n  store i64 %74, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %95, i64* %101\n  br label %$12\n$11:\n  %102 = phi i64 [%38, %$5] ; # Obj\n  %103 = phi i64 [%39, %$5] ; # Typ\n  %104 = phi i64 [%40, %$5] ; # Key\n  %105 = phi i64 [%41, %$5] ; # Exe\n  %106 = phi i64 [%47, %$5] ; # X\n  %107 = phi i64 [%64, %$5] ; # Y\n  %108 = phi i64 [%44, %$5] ; # P\n  %109 = phi i64 [%61, %$5] ; # V\n  %110 = phi i64 [%65, %$5] ; # Z\n; # (loop (set $Bind (setq P (push (if (pair V) (++ V) $Nil) (needChk...\n  br label %$19\n$19:\n  %111 = phi i64 [%102, %$11], [%185, %$29] ; # Obj\n  %112 = phi i64 [%103, %$11], [%186, %$29] ; # Typ\n  %113 = phi i64 [%104, %$11], [%187, %$29] ; # Key\n  %114 = phi i64 [%105, %$11], [%188, %$29] ; # Exe\n  %115 = phi i64 [%106, %$11], [%189, %$29] ; # X\n  %116 = phi i64 [%107, %$11], [%190, %$29] ; # Y\n  %117 = phi i64 [%108, %$11], [%191, %$29] ; # P\n  %118 = phi i64 [%109, %$11], [%192, %$29] ; # V\n  %119 = phi i64 [%110, %$11], [%193, %$29] ; # Z\n; # (set $Bind (setq P (push (if (pair V) (++ V) $Nil) (needChkVar Ex...\n; # (if (pair V) (++ V) $Nil)\n; # (pair V)\n  %120 = and i64 %118, 15\n  %121 = icmp eq i64 %120, 0\n  br i1 %121, label %$20, label %$21\n$20:\n  %122 = phi i64 [%111, %$19] ; # Obj\n  %123 = phi i64 [%112, %$19] ; # Typ\n  %124 = phi i64 [%113, %$19] ; # Key\n  %125 = phi i64 [%114, %$19] ; # Exe\n  %126 = phi i64 [%115, %$19] ; # X\n  %127 = phi i64 [%116, %$19] ; # Y\n  %128 = phi i64 [%117, %$19] ; # P\n  %129 = phi i64 [%118, %$19] ; # V\n  %130 = phi i64 [%119, %$19] ; # Z\n; # (++ V)\n  %131 = inttoptr i64 %129 to i64*\n  %132 = getelementptr i64, i64* %131, i32 1\n  %133 = load i64, i64* %132\n  %134 = load i64, i64* %131\n  br label %$22\n$21:\n  %135 = phi i64 [%111, %$19] ; # Obj\n  %136 = phi i64 [%112, %$19] ; # Typ\n  %137 = phi i64 [%113, %$19] ; # Key\n  %138 = phi i64 [%114, %$19] ; # Exe\n  %139 = phi i64 [%115, %$19] ; # X\n  %140 = phi i64 [%116, %$19] ; # Y\n  %141 = phi i64 [%117, %$19] ; # P\n  %142 = phi i64 [%118, %$19] ; # V\n  %143 = phi i64 [%119, %$19] ; # Z\n  br label %$22\n$22:\n  %144 = phi i64 [%122, %$20], [%135, %$21] ; # Obj\n  %145 = phi i64 [%123, %$20], [%136, %$21] ; # Typ\n  %146 = phi i64 [%124, %$20], [%137, %$21] ; # Key\n  %147 = phi i64 [%125, %$20], [%138, %$21] ; # Exe\n  %148 = phi i64 [%126, %$20], [%139, %$21] ; # X\n  %149 = phi i64 [%127, %$20], [%140, %$21] ; # Y\n  %150 = phi i64 [%128, %$20], [%141, %$21] ; # P\n  %151 = phi i64 [%133, %$20], [%142, %$21] ; # V\n  %152 = phi i64 [%130, %$20], [%143, %$21] ; # Z\n  %153 = phi i64 [%134, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (++ Z)\n  %154 = inttoptr i64 %152 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  %156 = load i64, i64* %155\n  %157 = load i64, i64* %154\n; # (needChkVar Exe (++ Z))\n  %158 = and i64 %157, 6\n  %159 = icmp ne i64 %158, 0\n  br i1 %159, label %$23, label %$24\n$23:\n  %160 = phi i64 [%157, %$22] ; # X\n  %161 = phi i64 [%147, %$22] ; # Exe\n  call void @varErr(i64 %161, i64 %160)\n  unreachable\n$24:\n  %162 = phi i64 [%157, %$22] ; # X\n  %163 = phi i64 [%147, %$22] ; # Exe\n  %164 = icmp uge i64 %162, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %164, label %$26, label %$25\n$26:\n  %165 = phi i64 [%162, %$24] ; # X\n  %166 = phi i64 [%163, %$24] ; # Exe\n  %167 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %165\n  br label %$25\n$25:\n  %168 = phi i64 [%162, %$24], [%165, %$26] ; # X\n  %169 = phi i64 [%163, %$24], [%166, %$26] ; # Exe\n  %170 = phi i1 [0, %$24], [%167, %$26] ; # ->\n  br i1 %170, label %$27, label %$28\n$27:\n  %171 = phi i64 [%168, %$25] ; # X\n  %172 = phi i64 [%169, %$25] ; # Exe\n  call void @protErr(i64 %172, i64 %171)\n  unreachable\n$28:\n  %173 = phi i64 [%168, %$25] ; # X\n  %174 = phi i64 [%169, %$25] ; # Exe\n; # (push (if (pair V) (++ V) $Nil) (needChkVar Exe (++ Z)) P)\n  %175 = alloca i64, i64 3, align 16\n  %176 = ptrtoint i64* %175 to i64\n  %177 = inttoptr i64 %176 to i64*\n  store i64 %153, i64* %177\n  %178 = add i64 %176, 8\n  %179 = inttoptr i64 %178 to i64*\n  store i64 %162, i64* %179\n  %180 = add i64 %176, 16\n  %181 = inttoptr i64 %180 to i64*\n  store i64 %150, i64* %181\n  %182 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %176, i64* %182\n; # (? (atom Z))\n; # (atom Z)\n  %183 = and i64 %156, 15\n  %184 = icmp ne i64 %183, 0\n  br i1 %184, label %$30, label %$29\n$29:\n  %185 = phi i64 [%144, %$28] ; # Obj\n  %186 = phi i64 [%145, %$28] ; # Typ\n  %187 = phi i64 [%146, %$28] ; # Key\n  %188 = phi i64 [%147, %$28] ; # Exe\n  %189 = phi i64 [%148, %$28] ; # X\n  %190 = phi i64 [%149, %$28] ; # Y\n  %191 = phi i64 [%176, %$28] ; # P\n  %192 = phi i64 [%151, %$28] ; # V\n  %193 = phi i64 [%156, %$28] ; # Z\n  br label %$19\n$30:\n  %194 = phi i64 [%144, %$28] ; # Obj\n  %195 = phi i64 [%145, %$28] ; # Typ\n  %196 = phi i64 [%146, %$28] ; # Key\n  %197 = phi i64 [%147, %$28] ; # Exe\n  %198 = phi i64 [%148, %$28] ; # X\n  %199 = phi i64 [%149, %$28] ; # Y\n  %200 = phi i64 [%176, %$28] ; # P\n  %201 = phi i64 [%151, %$28] ; # V\n  %202 = phi i64 [%156, %$28] ; # Z\n  %203 = phi i64 [0, %$28] ; # ->\n; # (unless (nil? Z) (set $Bind (setq P (push V (needChkVar Exe Z) P)...\n; # (nil? Z)\n  %204 = icmp eq i64 %202, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %204, label %$32, label %$31\n$31:\n  %205 = phi i64 [%194, %$30] ; # Obj\n  %206 = phi i64 [%195, %$30] ; # Typ\n  %207 = phi i64 [%196, %$30] ; # Key\n  %208 = phi i64 [%197, %$30] ; # Exe\n  %209 = phi i64 [%198, %$30] ; # X\n  %210 = phi i64 [%199, %$30] ; # Y\n  %211 = phi i64 [%200, %$30] ; # P\n  %212 = phi i64 [%201, %$30] ; # V\n  %213 = phi i64 [%202, %$30] ; # Z\n; # (set $Bind (setq P (push V (needChkVar Exe Z) P)))\n; # (needChkVar Exe Z)\n  %214 = and i64 %213, 6\n  %215 = icmp ne i64 %214, 0\n  br i1 %215, label %$33, label %$34\n$33:\n  %216 = phi i64 [%213, %$31] ; # X\n  %217 = phi i64 [%208, %$31] ; # Exe\n  call void @varErr(i64 %217, i64 %216)\n  unreachable\n$34:\n  %218 = phi i64 [%213, %$31] ; # X\n  %219 = phi i64 [%208, %$31] ; # Exe\n  %220 = icmp uge i64 %218, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %220, label %$36, label %$35\n$36:\n  %221 = phi i64 [%218, %$34] ; # X\n  %222 = phi i64 [%219, %$34] ; # Exe\n  %223 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %221\n  br label %$35\n$35:\n  %224 = phi i64 [%218, %$34], [%221, %$36] ; # X\n  %225 = phi i64 [%219, %$34], [%222, %$36] ; # Exe\n  %226 = phi i1 [0, %$34], [%223, %$36] ; # ->\n  br i1 %226, label %$37, label %$38\n$37:\n  %227 = phi i64 [%224, %$35] ; # X\n  %228 = phi i64 [%225, %$35] ; # Exe\n  call void @protErr(i64 %228, i64 %227)\n  unreachable\n$38:\n  %229 = phi i64 [%224, %$35] ; # X\n  %230 = phi i64 [%225, %$35] ; # Exe\n; # (push V (needChkVar Exe Z) P)\n  %231 = alloca i64, i64 3, align 16\n  %232 = ptrtoint i64* %231 to i64\n  %233 = inttoptr i64 %232 to i64*\n  store i64 %212, i64* %233\n  %234 = add i64 %232, 8\n  %235 = inttoptr i64 %234 to i64*\n  store i64 %218, i64* %235\n  %236 = add i64 %232, 16\n  %237 = inttoptr i64 %236 to i64*\n  store i64 %211, i64* %237\n  %238 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %232, i64* %238\n  br label %$32\n$32:\n  %239 = phi i64 [%194, %$30], [%205, %$38] ; # Obj\n  %240 = phi i64 [%195, %$30], [%206, %$38] ; # Typ\n  %241 = phi i64 [%196, %$30], [%207, %$38] ; # Key\n  %242 = phi i64 [%197, %$30], [%208, %$38] ; # Exe\n  %243 = phi i64 [%198, %$30], [%209, %$38] ; # X\n  %244 = phi i64 [%199, %$30], [%210, %$38] ; # Y\n  %245 = phi i64 [%200, %$30], [%232, %$38] ; # P\n  %246 = phi i64 [%201, %$30], [%212, %$38] ; # V\n  %247 = phi i64 [%202, %$30], [%213, %$38] ; # Z\n  br label %$12\n$12:\n  %248 = phi i64 [%68, %$18], [%239, %$32] ; # Obj\n  %249 = phi i64 [%69, %$18], [%240, %$32] ; # Typ\n  %250 = phi i64 [%70, %$18], [%241, %$32] ; # Key\n  %251 = phi i64 [%71, %$18], [%242, %$32] ; # Exe\n  %252 = phi i64 [%72, %$18], [%243, %$32] ; # X\n  %253 = phi i64 [%73, %$18], [%244, %$32] ; # Y\n  %254 = phi i64 [%95, %$18], [%245, %$32] ; # P\n  %255 = phi i64 [%75, %$18], [%246, %$32] ; # V\n  %256 = phi i64 [%76, %$18], [%247, %$32] ; # Z\n  br label %$2\n$4:\n  %257 = phi i64 [%29, %$2] ; # Obj\n  %258 = phi i64 [%30, %$2] ; # Typ\n  %259 = phi i64 [%31, %$2] ; # Key\n  %260 = phi i64 [%32, %$2] ; # Exe\n  %261 = phi i64 [%33, %$2] ; # X\n  %262 = phi i64 [%34, %$2] ; # Y\n  %263 = phi i64 [%35, %$2] ; # P\n; # (prog1 (if (== Y $At) (if (pair X) (let (L (push NIL (eval (car X...\n; # (if (== Y $At) (if (pair X) (let (L (push NIL (eval (car X)) NIL)...\n; # (== Y $At)\n  %264 = icmp eq i64 %262, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %264, label %$39, label %$40\n$39:\n  %265 = phi i64 [%257, %$4] ; # Obj\n  %266 = phi i64 [%258, %$4] ; # Typ\n  %267 = phi i64 [%259, %$4] ; # Key\n  %268 = phi i64 [%260, %$4] ; # Exe\n  %269 = phi i64 [%261, %$4] ; # X\n  %270 = phi i64 [%262, %$4] ; # Y\n  %271 = phi i64 [%263, %$4] ; # P\n; # (if (pair X) (let (L (push NIL (eval (car X)) NIL) Q L) (link (of...\n; # (pair X)\n  %272 = and i64 %269, 15\n  %273 = icmp eq i64 %272, 0\n  br i1 %273, label %$42, label %$43\n$42:\n  %274 = phi i64 [%265, %$39] ; # Obj\n  %275 = phi i64 [%266, %$39] ; # Typ\n  %276 = phi i64 [%267, %$39] ; # Key\n  %277 = phi i64 [%268, %$39] ; # Exe\n  %278 = phi i64 [%269, %$39] ; # X\n  %279 = phi i64 [%270, %$39] ; # Y\n  %280 = phi i64 [%271, %$39] ; # P\n; # (let (L (push NIL (eval (car X)) NIL) Q L) (link (ofs L 1)) (whil...\n; # (car X)\n  %281 = inttoptr i64 %278 to i64*\n  %282 = load i64, i64* %281\n; # (eval (car X))\n  %283 = and i64 %282, 6\n  %284 = icmp ne i64 %283, 0\n  br i1 %284, label %$47, label %$46\n$47:\n  %285 = phi i64 [%282, %$42] ; # X\n  br label %$45\n$46:\n  %286 = phi i64 [%282, %$42] ; # X\n  %287 = and i64 %286, 8\n  %288 = icmp ne i64 %287, 0\n  br i1 %288, label %$49, label %$48\n$49:\n  %289 = phi i64 [%286, %$46] ; # X\n  %290 = inttoptr i64 %289 to i64*\n  %291 = load i64, i64* %290\n  br label %$45\n$48:\n  %292 = phi i64 [%286, %$46] ; # X\n  %293 = call i64 @evList(i64 %292)\n  br label %$45\n$45:\n  %294 = phi i64 [%285, %$47], [%289, %$49], [%292, %$48] ; # X\n  %295 = phi i64 [%285, %$47], [%291, %$49], [%293, %$48] ; # ->\n; # (push NIL (eval (car X)) NIL)\n  %296 = alloca i64, i64 3, align 16\n  %297 = ptrtoint i64* %296 to i64\n  %298 = add i64 %297, 8\n  %299 = inttoptr i64 %298 to i64*\n  store i64 %295, i64* %299\n; # (ofs L 1)\n  %300 = add i64 %297, 8\n; # (link (ofs L 1))\n  %301 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %302 = load i64, i64* %301\n  %303 = inttoptr i64 %300 to i64*\n  %304 = getelementptr i64, i64* %303, i32 1\n  store i64 %302, i64* %304\n  %305 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %300, i64* %305\n; # (while (pair (shift X)) (setq L (set L (push NIL (eval (car X)) N...\n  br label %$50\n$50:\n  %306 = phi i64 [%274, %$45], [%320, %$53] ; # Obj\n  %307 = phi i64 [%275, %$45], [%321, %$53] ; # Typ\n  %308 = phi i64 [%276, %$45], [%322, %$53] ; # Key\n  %309 = phi i64 [%277, %$45], [%323, %$53] ; # Exe\n  %310 = phi i64 [%278, %$45], [%324, %$53] ; # X\n  %311 = phi i64 [%279, %$45], [%325, %$53] ; # Y\n  %312 = phi i64 [%280, %$45], [%326, %$53] ; # P\n  %313 = phi i64 [%297, %$45], [%345, %$53] ; # L\n  %314 = phi i64 [%297, %$45], [%328, %$53] ; # Q\n; # (shift X)\n  %315 = inttoptr i64 %310 to i64*\n  %316 = getelementptr i64, i64* %315, i32 1\n  %317 = load i64, i64* %316\n; # (pair (shift X))\n  %318 = and i64 %317, 15\n  %319 = icmp eq i64 %318, 0\n  br i1 %319, label %$51, label %$52\n$51:\n  %320 = phi i64 [%306, %$50] ; # Obj\n  %321 = phi i64 [%307, %$50] ; # Typ\n  %322 = phi i64 [%308, %$50] ; # Key\n  %323 = phi i64 [%309, %$50] ; # Exe\n  %324 = phi i64 [%317, %$50] ; # X\n  %325 = phi i64 [%311, %$50] ; # Y\n  %326 = phi i64 [%312, %$50] ; # P\n  %327 = phi i64 [%313, %$50] ; # L\n  %328 = phi i64 [%314, %$50] ; # Q\n; # (set L (push NIL (eval (car X)) NIL))\n; # (car X)\n  %329 = inttoptr i64 %324 to i64*\n  %330 = load i64, i64* %329\n; # (eval (car X))\n  %331 = and i64 %330, 6\n  %332 = icmp ne i64 %331, 0\n  br i1 %332, label %$55, label %$54\n$55:\n  %333 = phi i64 [%330, %$51] ; # X\n  br label %$53\n$54:\n  %334 = phi i64 [%330, %$51] ; # X\n  %335 = and i64 %334, 8\n  %336 = icmp ne i64 %335, 0\n  br i1 %336, label %$57, label %$56\n$57:\n  %337 = phi i64 [%334, %$54] ; # X\n  %338 = inttoptr i64 %337 to i64*\n  %339 = load i64, i64* %338\n  br label %$53\n$56:\n  %340 = phi i64 [%334, %$54] ; # X\n  %341 = call i64 @evList(i64 %340)\n  br label %$53\n$53:\n  %342 = phi i64 [%333, %$55], [%337, %$57], [%340, %$56] ; # X\n  %343 = phi i64 [%333, %$55], [%339, %$57], [%341, %$56] ; # ->\n; # (push NIL (eval (car X)) NIL)\n  %344 = alloca i64, i64 3, align 16\n  %345 = ptrtoint i64* %344 to i64\n  %346 = add i64 %345, 8\n  %347 = inttoptr i64 %346 to i64*\n  store i64 %343, i64* %347\n  %348 = inttoptr i64 %327 to i64*\n  store i64 %345, i64* %348\n; # (ofs L 1)\n  %349 = add i64 %345, 8\n; # (link (ofs L 1))\n  %350 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %351 = load i64, i64* %350\n  %352 = inttoptr i64 %349 to i64*\n  %353 = getelementptr i64, i64* %352, i32 1\n  store i64 %351, i64* %353\n  %354 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %349, i64* %354\n  br label %$50\n$52:\n  %355 = phi i64 [%306, %$50] ; # Obj\n  %356 = phi i64 [%307, %$50] ; # Typ\n  %357 = phi i64 [%308, %$50] ; # Key\n  %358 = phi i64 [%309, %$50] ; # Exe\n  %359 = phi i64 [%317, %$50] ; # X\n  %360 = phi i64 [%311, %$50] ; # Y\n  %361 = phi i64 [%312, %$50] ; # P\n  %362 = phi i64 [%313, %$50] ; # L\n  %363 = phi i64 [%314, %$50] ; # Q\n; # (let Next (val $Next) (set L $Nil $Next Q) (loop (let Sym (val 2 ...\n; # (val $Next)\n  %364 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %365 = load i64, i64* %364\n; # (set L $Nil $Next Q)\n  %366 = inttoptr i64 %362 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %366\n  %367 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %363, i64* %367\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$58\n$58:\n  %368 = phi i64 [%355, %$52], [%386, %$59] ; # Obj\n  %369 = phi i64 [%356, %$52], [%387, %$59] ; # Typ\n  %370 = phi i64 [%357, %$52], [%388, %$59] ; # Key\n  %371 = phi i64 [%358, %$52], [%389, %$59] ; # Exe\n  %372 = phi i64 [%359, %$52], [%390, %$59] ; # X\n  %373 = phi i64 [%360, %$52], [%391, %$59] ; # Y\n  %374 = phi i64 [%361, %$52], [%399, %$59] ; # P\n  %375 = phi i64 [%362, %$52], [%393, %$59] ; # L\n  %376 = phi i64 [%363, %$52], [%394, %$59] ; # Q\n  %377 = phi i64 [%365, %$52], [%395, %$59] ; # Next\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %378 = inttoptr i64 %374 to i64*\n  %379 = getelementptr i64, i64* %378, i32 1\n  %380 = load i64, i64* %379\n; # (xchg Sym P)\n  %381 = inttoptr i64 %380 to i64*\n  %382 = load i64, i64* %381\n  %383 = inttoptr i64 %374 to i64*\n  %384 = load i64, i64* %383\n  store i64 %384, i64* %381\n  store i64 %382, i64* %383\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %385 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %380\n  br i1 %385, label %$60, label %$59\n$59:\n  %386 = phi i64 [%368, %$58] ; # Obj\n  %387 = phi i64 [%369, %$58] ; # Typ\n  %388 = phi i64 [%370, %$58] ; # Key\n  %389 = phi i64 [%371, %$58] ; # Exe\n  %390 = phi i64 [%372, %$58] ; # X\n  %391 = phi i64 [%373, %$58] ; # Y\n  %392 = phi i64 [%374, %$58] ; # P\n  %393 = phi i64 [%375, %$58] ; # L\n  %394 = phi i64 [%376, %$58] ; # Q\n  %395 = phi i64 [%377, %$58] ; # Next\n  %396 = phi i64 [%380, %$58] ; # Sym\n; # (val 3 P)\n  %397 = inttoptr i64 %392 to i64*\n  %398 = getelementptr i64, i64* %397, i32 2\n  %399 = load i64, i64* %398\n  br label %$58\n$60:\n  %400 = phi i64 [%368, %$58] ; # Obj\n  %401 = phi i64 [%369, %$58] ; # Typ\n  %402 = phi i64 [%370, %$58] ; # Key\n  %403 = phi i64 [%371, %$58] ; # Exe\n  %404 = phi i64 [%372, %$58] ; # X\n  %405 = phi i64 [%373, %$58] ; # Y\n  %406 = phi i64 [%374, %$58] ; # P\n  %407 = phi i64 [%375, %$58] ; # L\n  %408 = phi i64 [%376, %$58] ; # Q\n  %409 = phi i64 [%377, %$58] ; # Next\n  %410 = phi i64 [0, %$58] ; # ->\n; # (let (TypS (val $Typ) KeyS (val $Key)) (prog2 (set $Typ Typ $Key ...\n; # (val $Typ)\n  %411 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %412 = load i64, i64* %411\n; # (val $Key)\n  %413 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %414 = load i64, i64* %413\n; # (prog2 (set $Typ Typ $Key Key) (run (cdr Exe)) (set $Key KeyS $Ty...\n; # (set $Typ Typ $Key Key)\n  %415 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %401, i64* %415\n  %416 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %402, i64* %416\n; # (cdr Exe)\n  %417 = inttoptr i64 %403 to i64*\n  %418 = getelementptr i64, i64* %417, i32 1\n  %419 = load i64, i64* %418\n; # (run (cdr Exe))\n  br label %$61\n$61:\n  %420 = phi i64 [%419, %$60], [%450, %$70] ; # Prg\n  %421 = inttoptr i64 %420 to i64*\n  %422 = getelementptr i64, i64* %421, i32 1\n  %423 = load i64, i64* %422\n  %424 = load i64, i64* %421\n  %425 = and i64 %423, 15\n  %426 = icmp ne i64 %425, 0\n  br i1 %426, label %$64, label %$62\n$64:\n  %427 = phi i64 [%423, %$61] ; # Prg\n  %428 = phi i64 [%424, %$61] ; # X\n  %429 = and i64 %428, 6\n  %430 = icmp ne i64 %429, 0\n  br i1 %430, label %$67, label %$66\n$67:\n  %431 = phi i64 [%428, %$64] ; # X\n  br label %$65\n$66:\n  %432 = phi i64 [%428, %$64] ; # X\n  %433 = and i64 %432, 8\n  %434 = icmp ne i64 %433, 0\n  br i1 %434, label %$69, label %$68\n$69:\n  %435 = phi i64 [%432, %$66] ; # X\n  %436 = inttoptr i64 %435 to i64*\n  %437 = load i64, i64* %436\n  br label %$65\n$68:\n  %438 = phi i64 [%432, %$66] ; # X\n  %439 = call i64 @evList(i64 %438)\n  br label %$65\n$65:\n  %440 = phi i64 [%431, %$67], [%435, %$69], [%438, %$68] ; # X\n  %441 = phi i64 [%431, %$67], [%437, %$69], [%439, %$68] ; # ->\n  br label %$63\n$62:\n  %442 = phi i64 [%423, %$61] ; # Prg\n  %443 = phi i64 [%424, %$61] ; # X\n  %444 = and i64 %443, 15\n  %445 = icmp eq i64 %444, 0\n  br i1 %445, label %$71, label %$70\n$71:\n  %446 = phi i64 [%442, %$62] ; # Prg\n  %447 = phi i64 [%443, %$62] ; # X\n  %448 = call i64 @evList(i64 %447)\n  %449 = icmp ne i64 %448, 0\n  br label %$70\n$70:\n  %450 = phi i64 [%442, %$62], [%446, %$71] ; # Prg\n  %451 = phi i64 [%443, %$62], [%447, %$71] ; # X\n  %452 = phi i1 [0, %$62], [%449, %$71] ; # ->\n  br label %$61\n$63:\n  %453 = phi i64 [%427, %$65] ; # Prg\n  %454 = phi i64 [%441, %$65] ; # ->\n; # (set $Key KeyS $Typ TypS $Next Next)\n  %455 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %414, i64* %455\n  %456 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %412, i64* %456\n  %457 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %409, i64* %457\n; # (ofs Q 1)\n  %458 = add i64 %408, 8\n; # (drop (ofs Q 1))\n  %459 = inttoptr i64 %458 to i64*\n  %460 = getelementptr i64, i64* %459, i32 1\n  %461 = load i64, i64* %460\n  %462 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %461, i64* %462\n  br label %$44\n$43:\n  %463 = phi i64 [%265, %$39] ; # Obj\n  %464 = phi i64 [%266, %$39] ; # Typ\n  %465 = phi i64 [%267, %$39] ; # Key\n  %466 = phi i64 [%268, %$39] ; # Exe\n  %467 = phi i64 [%269, %$39] ; # X\n  %468 = phi i64 [%270, %$39] ; # Y\n  %469 = phi i64 [%271, %$39] ; # P\n; # (let Next (val $Next) (set $Next $Nil) (loop (let Sym (val 2 P) (...\n; # (val $Next)\n  %470 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %471 = load i64, i64* %470\n; # (set $Next $Nil)\n  %472 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %472\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$72\n$72:\n  %473 = phi i64 [%463, %$43], [%489, %$73] ; # Obj\n  %474 = phi i64 [%464, %$43], [%490, %$73] ; # Typ\n  %475 = phi i64 [%465, %$43], [%491, %$73] ; # Key\n  %476 = phi i64 [%466, %$43], [%492, %$73] ; # Exe\n  %477 = phi i64 [%467, %$43], [%493, %$73] ; # X\n  %478 = phi i64 [%468, %$43], [%494, %$73] ; # Y\n  %479 = phi i64 [%469, %$43], [%500, %$73] ; # P\n  %480 = phi i64 [%471, %$43], [%496, %$73] ; # Next\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %481 = inttoptr i64 %479 to i64*\n  %482 = getelementptr i64, i64* %481, i32 1\n  %483 = load i64, i64* %482\n; # (xchg Sym P)\n  %484 = inttoptr i64 %483 to i64*\n  %485 = load i64, i64* %484\n  %486 = inttoptr i64 %479 to i64*\n  %487 = load i64, i64* %486\n  store i64 %487, i64* %484\n  store i64 %485, i64* %486\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %488 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %483\n  br i1 %488, label %$74, label %$73\n$73:\n  %489 = phi i64 [%473, %$72] ; # Obj\n  %490 = phi i64 [%474, %$72] ; # Typ\n  %491 = phi i64 [%475, %$72] ; # Key\n  %492 = phi i64 [%476, %$72] ; # Exe\n  %493 = phi i64 [%477, %$72] ; # X\n  %494 = phi i64 [%478, %$72] ; # Y\n  %495 = phi i64 [%479, %$72] ; # P\n  %496 = phi i64 [%480, %$72] ; # Next\n  %497 = phi i64 [%483, %$72] ; # Sym\n; # (val 3 P)\n  %498 = inttoptr i64 %495 to i64*\n  %499 = getelementptr i64, i64* %498, i32 2\n  %500 = load i64, i64* %499\n  br label %$72\n$74:\n  %501 = phi i64 [%473, %$72] ; # Obj\n  %502 = phi i64 [%474, %$72] ; # Typ\n  %503 = phi i64 [%475, %$72] ; # Key\n  %504 = phi i64 [%476, %$72] ; # Exe\n  %505 = phi i64 [%477, %$72] ; # X\n  %506 = phi i64 [%478, %$72] ; # Y\n  %507 = phi i64 [%479, %$72] ; # P\n  %508 = phi i64 [%480, %$72] ; # Next\n  %509 = phi i64 [0, %$72] ; # ->\n; # (let (TypS (val $Typ) KeyS (val $Key)) (prog2 (set $Typ Typ $Key ...\n; # (val $Typ)\n  %510 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %511 = load i64, i64* %510\n; # (val $Key)\n  %512 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %513 = load i64, i64* %512\n; # (prog2 (set $Typ Typ $Key Key) (run (cdr Exe)) (set $Key KeyS $Ty...\n; # (set $Typ Typ $Key Key)\n  %514 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %502, i64* %514\n  %515 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %503, i64* %515\n; # (cdr Exe)\n  %516 = inttoptr i64 %504 to i64*\n  %517 = getelementptr i64, i64* %516, i32 1\n  %518 = load i64, i64* %517\n; # (run (cdr Exe))\n  br label %$75\n$75:\n  %519 = phi i64 [%518, %$74], [%549, %$84] ; # Prg\n  %520 = inttoptr i64 %519 to i64*\n  %521 = getelementptr i64, i64* %520, i32 1\n  %522 = load i64, i64* %521\n  %523 = load i64, i64* %520\n  %524 = and i64 %522, 15\n  %525 = icmp ne i64 %524, 0\n  br i1 %525, label %$78, label %$76\n$78:\n  %526 = phi i64 [%522, %$75] ; # Prg\n  %527 = phi i64 [%523, %$75] ; # X\n  %528 = and i64 %527, 6\n  %529 = icmp ne i64 %528, 0\n  br i1 %529, label %$81, label %$80\n$81:\n  %530 = phi i64 [%527, %$78] ; # X\n  br label %$79\n$80:\n  %531 = phi i64 [%527, %$78] ; # X\n  %532 = and i64 %531, 8\n  %533 = icmp ne i64 %532, 0\n  br i1 %533, label %$83, label %$82\n$83:\n  %534 = phi i64 [%531, %$80] ; # X\n  %535 = inttoptr i64 %534 to i64*\n  %536 = load i64, i64* %535\n  br label %$79\n$82:\n  %537 = phi i64 [%531, %$80] ; # X\n  %538 = call i64 @evList(i64 %537)\n  br label %$79\n$79:\n  %539 = phi i64 [%530, %$81], [%534, %$83], [%537, %$82] ; # X\n  %540 = phi i64 [%530, %$81], [%536, %$83], [%538, %$82] ; # ->\n  br label %$77\n$76:\n  %541 = phi i64 [%522, %$75] ; # Prg\n  %542 = phi i64 [%523, %$75] ; # X\n  %543 = and i64 %542, 15\n  %544 = icmp eq i64 %543, 0\n  br i1 %544, label %$85, label %$84\n$85:\n  %545 = phi i64 [%541, %$76] ; # Prg\n  %546 = phi i64 [%542, %$76] ; # X\n  %547 = call i64 @evList(i64 %546)\n  %548 = icmp ne i64 %547, 0\n  br label %$84\n$84:\n  %549 = phi i64 [%541, %$76], [%545, %$85] ; # Prg\n  %550 = phi i64 [%542, %$76], [%546, %$85] ; # X\n  %551 = phi i1 [0, %$76], [%548, %$85] ; # ->\n  br label %$75\n$77:\n  %552 = phi i64 [%526, %$79] ; # Prg\n  %553 = phi i64 [%540, %$79] ; # ->\n; # (set $Key KeyS $Typ TypS $Next Next)\n  %554 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %513, i64* %554\n  %555 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %511, i64* %555\n  %556 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %508, i64* %556\n  br label %$44\n$44:\n  %557 = phi i64 [%400, %$63], [%501, %$77] ; # Obj\n  %558 = phi i64 [%401, %$63], [%502, %$77] ; # Typ\n  %559 = phi i64 [%402, %$63], [%503, %$77] ; # Key\n  %560 = phi i64 [%403, %$63], [%504, %$77] ; # Exe\n  %561 = phi i64 [%404, %$63], [%505, %$77] ; # X\n  %562 = phi i64 [%405, %$63], [%506, %$77] ; # Y\n  %563 = phi i64 [%406, %$63], [%507, %$77] ; # P\n  %564 = phi i64 [%454, %$63], [%553, %$77] ; # ->\n  br label %$41\n$40:\n  %565 = phi i64 [%257, %$4] ; # Obj\n  %566 = phi i64 [%258, %$4] ; # Typ\n  %567 = phi i64 [%259, %$4] ; # Key\n  %568 = phi i64 [%260, %$4] ; # Exe\n  %569 = phi i64 [%261, %$4] ; # X\n  %570 = phi i64 [%262, %$4] ; # Y\n  %571 = phi i64 [%263, %$4] ; # P\n; # (unless (nil? Y) (needChkVar Exe Y) (set $Bind (push (val Y) Y P)...\n; # (nil? Y)\n  %572 = icmp eq i64 %570, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %572, label %$87, label %$86\n$86:\n  %573 = phi i64 [%565, %$40] ; # Obj\n  %574 = phi i64 [%566, %$40] ; # Typ\n  %575 = phi i64 [%567, %$40] ; # Key\n  %576 = phi i64 [%568, %$40] ; # Exe\n  %577 = phi i64 [%569, %$40] ; # X\n  %578 = phi i64 [%570, %$40] ; # Y\n  %579 = phi i64 [%571, %$40] ; # P\n; # (needChkVar Exe Y)\n  %580 = and i64 %578, 6\n  %581 = icmp ne i64 %580, 0\n  br i1 %581, label %$88, label %$89\n$88:\n  %582 = phi i64 [%578, %$86] ; # X\n  %583 = phi i64 [%576, %$86] ; # Exe\n  call void @varErr(i64 %583, i64 %582)\n  unreachable\n$89:\n  %584 = phi i64 [%578, %$86] ; # X\n  %585 = phi i64 [%576, %$86] ; # Exe\n  %586 = icmp uge i64 %584, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %586, label %$91, label %$90\n$91:\n  %587 = phi i64 [%584, %$89] ; # X\n  %588 = phi i64 [%585, %$89] ; # Exe\n  %589 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %587\n  br label %$90\n$90:\n  %590 = phi i64 [%584, %$89], [%587, %$91] ; # X\n  %591 = phi i64 [%585, %$89], [%588, %$91] ; # Exe\n  %592 = phi i1 [0, %$89], [%589, %$91] ; # ->\n  br i1 %592, label %$92, label %$93\n$92:\n  %593 = phi i64 [%590, %$90] ; # X\n  %594 = phi i64 [%591, %$90] ; # Exe\n  call void @protErr(i64 %594, i64 %593)\n  unreachable\n$93:\n  %595 = phi i64 [%590, %$90] ; # X\n  %596 = phi i64 [%591, %$90] ; # Exe\n; # (set $Bind (push (val Y) Y P) Y X)\n; # (val Y)\n  %597 = inttoptr i64 %578 to i64*\n  %598 = load i64, i64* %597\n; # (push (val Y) Y P)\n  %599 = alloca i64, i64 3, align 16\n  %600 = ptrtoint i64* %599 to i64\n  %601 = inttoptr i64 %600 to i64*\n  store i64 %598, i64* %601\n  %602 = add i64 %600, 8\n  %603 = inttoptr i64 %602 to i64*\n  store i64 %578, i64* %603\n  %604 = add i64 %600, 16\n  %605 = inttoptr i64 %604 to i64*\n  store i64 %579, i64* %605\n  %606 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %600, i64* %606\n  %607 = inttoptr i64 %578 to i64*\n  store i64 %577, i64* %607\n  br label %$87\n$87:\n  %608 = phi i64 [%565, %$40], [%573, %$93] ; # Obj\n  %609 = phi i64 [%566, %$40], [%574, %$93] ; # Typ\n  %610 = phi i64 [%567, %$40], [%575, %$93] ; # Key\n  %611 = phi i64 [%568, %$40], [%576, %$93] ; # Exe\n  %612 = phi i64 [%569, %$40], [%577, %$93] ; # X\n  %613 = phi i64 [%570, %$40], [%578, %$93] ; # Y\n  %614 = phi i64 [%571, %$40], [%579, %$93] ; # P\n; # (loop (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (v...\n  br label %$94\n$94:\n  %615 = phi i64 [%608, %$87], [%630, %$95] ; # Obj\n  %616 = phi i64 [%609, %$87], [%631, %$95] ; # Typ\n  %617 = phi i64 [%610, %$87], [%632, %$95] ; # Key\n  %618 = phi i64 [%611, %$87], [%633, %$95] ; # Exe\n  %619 = phi i64 [%612, %$87], [%634, %$95] ; # X\n  %620 = phi i64 [%613, %$87], [%635, %$95] ; # Y\n  %621 = phi i64 [%614, %$87], [%640, %$95] ; # P\n; # (let Sym (val 2 P) (xchg Sym P) (? (== $At Sym)) (setq P (val 3 P...\n; # (val 2 P)\n  %622 = inttoptr i64 %621 to i64*\n  %623 = getelementptr i64, i64* %622, i32 1\n  %624 = load i64, i64* %623\n; # (xchg Sym P)\n  %625 = inttoptr i64 %624 to i64*\n  %626 = load i64, i64* %625\n  %627 = inttoptr i64 %621 to i64*\n  %628 = load i64, i64* %627\n  store i64 %628, i64* %625\n  store i64 %626, i64* %627\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %629 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %624\n  br i1 %629, label %$96, label %$95\n$95:\n  %630 = phi i64 [%615, %$94] ; # Obj\n  %631 = phi i64 [%616, %$94] ; # Typ\n  %632 = phi i64 [%617, %$94] ; # Key\n  %633 = phi i64 [%618, %$94] ; # Exe\n  %634 = phi i64 [%619, %$94] ; # X\n  %635 = phi i64 [%620, %$94] ; # Y\n  %636 = phi i64 [%621, %$94] ; # P\n  %637 = phi i64 [%624, %$94] ; # Sym\n; # (val 3 P)\n  %638 = inttoptr i64 %636 to i64*\n  %639 = getelementptr i64, i64* %638, i32 2\n  %640 = load i64, i64* %639\n  br label %$94\n$96:\n  %641 = phi i64 [%615, %$94] ; # Obj\n  %642 = phi i64 [%616, %$94] ; # Typ\n  %643 = phi i64 [%617, %$94] ; # Key\n  %644 = phi i64 [%618, %$94] ; # Exe\n  %645 = phi i64 [%619, %$94] ; # X\n  %646 = phi i64 [%620, %$94] ; # Y\n  %647 = phi i64 [%621, %$94] ; # P\n  %648 = phi i64 [0, %$94] ; # ->\n; # (let (TypS (val $Typ) KeyS (val $Key)) (prog2 (set $Typ Typ $Key ...\n; # (val $Typ)\n  %649 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %650 = load i64, i64* %649\n; # (val $Key)\n  %651 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %652 = load i64, i64* %651\n; # (prog2 (set $Typ Typ $Key Key) (run (cdr Exe)) (set $Key KeyS $Ty...\n; # (set $Typ Typ $Key Key)\n  %653 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %642, i64* %653\n  %654 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %643, i64* %654\n; # (cdr Exe)\n  %655 = inttoptr i64 %644 to i64*\n  %656 = getelementptr i64, i64* %655, i32 1\n  %657 = load i64, i64* %656\n; # (run (cdr Exe))\n  br label %$97\n$97:\n  %658 = phi i64 [%657, %$96], [%688, %$106] ; # Prg\n  %659 = inttoptr i64 %658 to i64*\n  %660 = getelementptr i64, i64* %659, i32 1\n  %661 = load i64, i64* %660\n  %662 = load i64, i64* %659\n  %663 = and i64 %661, 15\n  %664 = icmp ne i64 %663, 0\n  br i1 %664, label %$100, label %$98\n$100:\n  %665 = phi i64 [%661, %$97] ; # Prg\n  %666 = phi i64 [%662, %$97] ; # X\n  %667 = and i64 %666, 6\n  %668 = icmp ne i64 %667, 0\n  br i1 %668, label %$103, label %$102\n$103:\n  %669 = phi i64 [%666, %$100] ; # X\n  br label %$101\n$102:\n  %670 = phi i64 [%666, %$100] ; # X\n  %671 = and i64 %670, 8\n  %672 = icmp ne i64 %671, 0\n  br i1 %672, label %$105, label %$104\n$105:\n  %673 = phi i64 [%670, %$102] ; # X\n  %674 = inttoptr i64 %673 to i64*\n  %675 = load i64, i64* %674\n  br label %$101\n$104:\n  %676 = phi i64 [%670, %$102] ; # X\n  %677 = call i64 @evList(i64 %676)\n  br label %$101\n$101:\n  %678 = phi i64 [%669, %$103], [%673, %$105], [%676, %$104] ; # X\n  %679 = phi i64 [%669, %$103], [%675, %$105], [%677, %$104] ; # ->\n  br label %$99\n$98:\n  %680 = phi i64 [%661, %$97] ; # Prg\n  %681 = phi i64 [%662, %$97] ; # X\n  %682 = and i64 %681, 15\n  %683 = icmp eq i64 %682, 0\n  br i1 %683, label %$107, label %$106\n$107:\n  %684 = phi i64 [%680, %$98] ; # Prg\n  %685 = phi i64 [%681, %$98] ; # X\n  %686 = call i64 @evList(i64 %685)\n  %687 = icmp ne i64 %686, 0\n  br label %$106\n$106:\n  %688 = phi i64 [%680, %$98], [%684, %$107] ; # Prg\n  %689 = phi i64 [%681, %$98], [%685, %$107] ; # X\n  %690 = phi i1 [0, %$98], [%687, %$107] ; # ->\n  br label %$97\n$99:\n  %691 = phi i64 [%665, %$101] ; # Prg\n  %692 = phi i64 [%679, %$101] ; # ->\n; # (set $Key KeyS $Typ TypS)\n  %693 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %652, i64* %693\n  %694 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %650, i64* %694\n  br label %$41\n$41:\n  %695 = phi i64 [%557, %$44], [%641, %$99] ; # Obj\n  %696 = phi i64 [%558, %$44], [%642, %$99] ; # Typ\n  %697 = phi i64 [%559, %$44], [%643, %$99] ; # Key\n  %698 = phi i64 [%560, %$44], [%644, %$99] ; # Exe\n  %699 = phi i64 [%561, %$44], [%645, %$99] ; # X\n  %700 = phi i64 [%562, %$44], [%646, %$99] ; # Y\n  %701 = phi i64 [%563, %$44], [%647, %$99] ; # P\n  %702 = phi i64 [%564, %$44], [%692, %$99] ; # ->\n; # (val $Bind)\n  %703 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %704 = load i64, i64* %703\n; # (loop (let Sym (val 2 P) (set Sym (val P)) (? (== $At Sym)) (setq...\n  br label %$108\n$108:\n  %705 = phi i64 [%695, %$41], [%719, %$109] ; # Obj\n  %706 = phi i64 [%696, %$41], [%720, %$109] ; # Typ\n  %707 = phi i64 [%697, %$41], [%721, %$109] ; # Key\n  %708 = phi i64 [%698, %$41], [%722, %$109] ; # Exe\n  %709 = phi i64 [%699, %$41], [%723, %$109] ; # X\n  %710 = phi i64 [%700, %$41], [%724, %$109] ; # Y\n  %711 = phi i64 [%704, %$41], [%729, %$109] ; # P\n; # (let Sym (val 2 P) (set Sym (val P)) (? (== $At Sym)) (setq P (va...\n; # (val 2 P)\n  %712 = inttoptr i64 %711 to i64*\n  %713 = getelementptr i64, i64* %712, i32 1\n  %714 = load i64, i64* %713\n; # (set Sym (val P))\n; # (val P)\n  %715 = inttoptr i64 %711 to i64*\n  %716 = load i64, i64* %715\n  %717 = inttoptr i64 %714 to i64*\n  store i64 %716, i64* %717\n; # (? (== $At Sym))\n; # (== $At Sym)\n  %718 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %714\n  br i1 %718, label %$110, label %$109\n$109:\n  %719 = phi i64 [%705, %$108] ; # Obj\n  %720 = phi i64 [%706, %$108] ; # Typ\n  %721 = phi i64 [%707, %$108] ; # Key\n  %722 = phi i64 [%708, %$108] ; # Exe\n  %723 = phi i64 [%709, %$108] ; # X\n  %724 = phi i64 [%710, %$108] ; # Y\n  %725 = phi i64 [%711, %$108] ; # P\n  %726 = phi i64 [%714, %$108] ; # Sym\n; # (val 3 P)\n  %727 = inttoptr i64 %725 to i64*\n  %728 = getelementptr i64, i64* %727, i32 2\n  %729 = load i64, i64* %728\n  br label %$108\n$110:\n  %730 = phi i64 [%705, %$108] ; # Obj\n  %731 = phi i64 [%706, %$108] ; # Typ\n  %732 = phi i64 [%707, %$108] ; # Key\n  %733 = phi i64 [%708, %$108] ; # Exe\n  %734 = phi i64 [%709, %$108] ; # X\n  %735 = phi i64 [%710, %$108] ; # Y\n  %736 = phi i64 [%711, %$108] ; # P\n  %737 = phi i64 [0, %$108] ; # ->\n; # (set $Bind (val 3 P))\n; # (val 3 P)\n  %738 = inttoptr i64 %736 to i64*\n  %739 = getelementptr i64, i64* %738, i32 2\n  %740 = load i64, i64* %739\n  %741 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %740, i64* %741\n  ret i64 %702\n}\n\ndefine i64 @method(i64, i64) align 8 {\n$1:\n; # (when (pair (val Obj)) (let L @ (while (pair (car L)) (let Y @ (w...\n; # (val Obj)\n  %2 = inttoptr i64 %0 to i64*\n  %3 = load i64, i64* %2\n; # (pair (val Obj))\n  %4 = and i64 %3, 15\n  %5 = icmp eq i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Obj\n  %7 = phi i64 [%1, %$1] ; # Key\n; # (let L @ (while (pair (car L)) (let Y @ (when (== Key (car Y)) (r...\n; # (while (pair (car L)) (let Y @ (when (== Key (car Y)) (ret (cdr Y...\n  br label %$4\n$4:\n  %8 = phi i64 [%6, %$2], [%40, %$10] ; # Obj\n  %9 = phi i64 [%7, %$2], [%41, %$10] ; # Key\n  %10 = phi i64 [%3, %$2], [%42, %$10] ; # L\n; # (car L)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (pair (car L))\n  %13 = and i64 %12, 15\n  %14 = icmp eq i64 %13, 0\n  br i1 %14, label %$5, label %$6\n$5:\n  %15 = phi i64 [%8, %$4] ; # Obj\n  %16 = phi i64 [%9, %$4] ; # Key\n  %17 = phi i64 [%10, %$4] ; # L\n; # (let Y @ (when (== Key (car Y)) (ret (cdr Y))))\n; # (when (== Key (car Y)) (ret (cdr Y)))\n; # (car Y)\n  %18 = inttoptr i64 %12 to i64*\n  %19 = load i64, i64* %18\n; # (== Key (car Y))\n  %20 = icmp eq i64 %16, %19\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%15, %$5] ; # Obj\n  %22 = phi i64 [%16, %$5] ; # Key\n  %23 = phi i64 [%17, %$5] ; # L\n  %24 = phi i64 [%12, %$5] ; # Y\n; # (cdr Y)\n  %25 = inttoptr i64 %24 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n; # (ret (cdr Y))\n  ret i64 %27\n$8:\n  %28 = phi i64 [%15, %$5] ; # Obj\n  %29 = phi i64 [%16, %$5] ; # Key\n  %30 = phi i64 [%17, %$5] ; # L\n  %31 = phi i64 [%12, %$5] ; # Y\n; # (when (atom (shift L)) (ret 0))\n; # (shift L)\n  %32 = inttoptr i64 %30 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n; # (atom (shift L))\n  %35 = and i64 %34, 15\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$9, label %$10\n$9:\n  %37 = phi i64 [%28, %$8] ; # Obj\n  %38 = phi i64 [%29, %$8] ; # Key\n  %39 = phi i64 [%34, %$8] ; # L\n; # (ret 0)\n  ret i64 0\n$10:\n  %40 = phi i64 [%28, %$8] ; # Obj\n  %41 = phi i64 [%29, %$8] ; # Key\n  %42 = phi i64 [%34, %$8] ; # L\n  br label %$4\n$6:\n  %43 = phi i64 [%8, %$4] ; # Obj\n  %44 = phi i64 [%9, %$4] ; # Key\n  %45 = phi i64 [%10, %$4] ; # L\n; # (stkChk 0)\n  %46 = load i8*, i8** @$StkLimit\n  %47 = call i8* @llvm.stacksave()\n  %48 = icmp ugt i8* %46, %47\n  br i1 %48, label %$11, label %$12\n$11:\n  %49 = phi i64 [0, %$6] ; # Exe\n  call void @stkErr(i64 %49)\n  unreachable\n$12:\n  %50 = phi i64 [0, %$6] ; # Exe\n; # (loop (when (method (car (set $Ret L)) Key) (ret @)) (? (atom (sh...\n  br label %$13\n$13:\n  %51 = phi i64 [%43, %$12], [%69, %$16] ; # Obj\n  %52 = phi i64 [%44, %$12], [%70, %$16] ; # Key\n  %53 = phi i64 [%45, %$12], [%71, %$16] ; # L\n; # (when (method (car (set $Ret L)) Key) (ret @))\n; # (set $Ret L)\n  store i64 %53, i64* @$Ret\n; # (car (set $Ret L))\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n; # (method (car (set $Ret L)) Key)\n  %56 = call i64 @method(i64 %55, i64 %52)\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$15\n$14:\n  %58 = phi i64 [%51, %$13] ; # Obj\n  %59 = phi i64 [%52, %$13] ; # Key\n  %60 = phi i64 [%53, %$13] ; # L\n; # (ret @)\n  ret i64 %56\n$15:\n  %61 = phi i64 [%51, %$13] ; # Obj\n  %62 = phi i64 [%52, %$13] ; # Key\n  %63 = phi i64 [%53, %$13] ; # L\n; # (? (atom (shift L)))\n; # (shift L)\n  %64 = inttoptr i64 %63 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n; # (atom (shift L))\n  %67 = and i64 %66, 15\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$17, label %$16\n$16:\n  %69 = phi i64 [%61, %$15] ; # Obj\n  %70 = phi i64 [%62, %$15] ; # Key\n  %71 = phi i64 [%66, %$15] ; # L\n  br label %$13\n$17:\n  %72 = phi i64 [%61, %$15] ; # Obj\n  %73 = phi i64 [%62, %$15] ; # Key\n  %74 = phi i64 [%66, %$15] ; # L\n  %75 = phi i64 [0, %$15] ; # ->\n  br label %$3\n$3:\n  %76 = phi i64 [%0, %$1], [%72, %$17] ; # Obj\n  %77 = phi i64 [%1, %$1], [%73, %$17] ; # Key\n  ret i64 0\n}\n\ndefine i64 @__Meth(i64, i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Obj (save (eval (car X)))) (when (sym? (val (ta...\n; # (cdr Exe)\n  %2 = inttoptr i64 %0 to i64*\n  %3 = getelementptr i64, i64* %2, i32 1\n  %4 = load i64, i64* %3\n; # (car X)\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (eval (car X))\n  %7 = and i64 %6, 6\n  %8 = icmp ne i64 %7, 0\n  br i1 %8, label %$4, label %$3\n$4:\n  %9 = phi i64 [%6, %$1] ; # X\n  br label %$2\n$3:\n  %10 = phi i64 [%6, %$1] ; # X\n  %11 = and i64 %10, 8\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$6, label %$5\n$6:\n  %13 = phi i64 [%10, %$3] ; # X\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n  br label %$2\n$5:\n  %16 = phi i64 [%10, %$3] ; # X\n  %17 = call i64 @evList(i64 %16)\n  br label %$2\n$2:\n  %18 = phi i64 [%9, %$4], [%13, %$6], [%16, %$5] ; # X\n  %19 = phi i64 [%9, %$4], [%15, %$6], [%17, %$5] ; # ->\n; # (save (eval (car X)))\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %21 = load i64, i64* %20\n  %22 = alloca i64, i64 2, align 16\n  %23 = ptrtoint i64* %22 to i64\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %19, i64* %24\n  %25 = add i64 %23, 8\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %23, i64* %27\n; # (when (sym? (val (tail (needSymb Exe Obj)))) (dbFetch Exe Obj))\n; # (needSymb Exe Obj)\n  %28 = xor i64 %19, 8\n  %29 = and i64 %28, 14\n  %30 = icmp eq i64 %29, 0\n  br i1 %30, label %$8, label %$7\n$7:\n  %31 = phi i64 [%19, %$2] ; # X\n  %32 = phi i64 [%0, %$2] ; # Exe\n  call void @symErr(i64 %32, i64 %31)\n  unreachable\n$8:\n  %33 = phi i64 [%19, %$2] ; # X\n  %34 = phi i64 [%0, %$2] ; # Exe\n; # (tail (needSymb Exe Obj))\n  %35 = add i64 %33, -8\n; # (val (tail (needSymb Exe Obj)))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (sym? (val (tail (needSymb Exe Obj))))\n  %38 = and i64 %37, 8\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$9, label %$10\n$9:\n  %40 = phi i64 [%0, %$8] ; # Exe\n  %41 = phi i64 [%1, %$8] ; # Key\n  %42 = phi i64 [%4, %$8] ; # X\n  %43 = phi i64 [%19, %$8] ; # Obj\n; # (dbFetch Exe Obj)\n  call void @dbFetch(i64 %40, i64 %43)\n  br label %$10\n$10:\n  %44 = phi i64 [%0, %$8], [%40, %$9] ; # Exe\n  %45 = phi i64 [%1, %$8], [%41, %$9] ; # Key\n  %46 = phi i64 [%4, %$8], [%42, %$9] ; # X\n  %47 = phi i64 [%19, %$8], [%43, %$9] ; # Obj\n; # (set $Ret 0)\n  store i64 0, i64* @$Ret\n; # (if (method Obj Key) (evMethod Obj (val $Ret) Key @ (cdr X)) (err...\n; # (method Obj Key)\n  %48 = call i64 @method(i64 %47, i64 %45)\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$11, label %$12\n$11:\n  %50 = phi i64 [%44, %$10] ; # Exe\n  %51 = phi i64 [%45, %$10] ; # Key\n  %52 = phi i64 [%46, %$10] ; # X\n  %53 = phi i64 [%47, %$10] ; # Obj\n; # (val $Ret)\n  %54 = load i64, i64* @$Ret\n; # (cdr X)\n  %55 = inttoptr i64 %52 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (evMethod Obj (val $Ret) Key @ (cdr X))\n  %58 = call i64 @evMethod(i64 %53, i64 %54, i64 %51, i64 %48, i64 %57)\n  br label %$13\n$12:\n  %59 = phi i64 [%44, %$10] ; # Exe\n  %60 = phi i64 [%45, %$10] ; # Key\n  %61 = phi i64 [%46, %$10] ; # X\n  %62 = phi i64 [%47, %$10] ; # Obj\n; # (err Exe Key ($ \"Bad message\") null)\n  call void @err(i64 %59, i64 %60, i8* bitcast ([12 x i8]* @$73 to i8*), i8* null)\n  unreachable\n$13:\n  %63 = phi i64 [%50, %$11] ; # Exe\n  %64 = phi i64 [%51, %$11] ; # Key\n  %65 = phi i64 [%52, %$11] ; # X\n  %66 = phi i64 [%53, %$11] ; # Obj\n  %67 = phi i64 [%58, %$11] ; # ->\n; # (drop *Safe)\n  %68 = inttoptr i64 %23 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n  %71 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %70, i64* %71\n  ret i64 %67\n}\n\ndefine i64 @_Box(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (consSym ZERO (eval (cadr Exe)))\n  %19 = call i64 @consSym(i64 2, i64 %18)\n  ret i64 %19\n}\n\ndefine i64 @_New(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X)) Obj (save (cond ((pair Y) (cons...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((pair Y) (consSym ZERO Y)) ((nil? Y) (consSym ZERO ZERO)) ...\n; # (pair Y)\n  %21 = and i64 %20, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (consSym ZERO Y)\n  %26 = call i64 @consSym(i64 2, i64 %25)\n  br label %$7\n$8:\n  %27 = phi i64 [%0, %$2] ; # Exe\n  %28 = phi i64 [%6, %$2] ; # X\n  %29 = phi i64 [%20, %$2] ; # Y\n; # (nil? Y)\n  %30 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%27, %$8] ; # Exe\n  %32 = phi i64 [%28, %$8] ; # X\n  %33 = phi i64 [%29, %$8] ; # Y\n; # (consSym ZERO ZERO)\n  %34 = call i64 @consSym(i64 2, i64 2)\n  br label %$7\n$10:\n  %35 = phi i64 [%27, %$8] ; # Exe\n  %36 = phi i64 [%28, %$8] ; # X\n  %37 = phi i64 [%29, %$8] ; # Y\n; # (or (t? Y) (num? Y))\n; # (t? Y)\n  %38 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %38, label %$12, label %$13\n$13:\n  %39 = phi i64 [%35, %$10] ; # Exe\n  %40 = phi i64 [%36, %$10] ; # X\n  %41 = phi i64 [%37, %$10] ; # Y\n; # (num? Y)\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br label %$12\n$12:\n  %44 = phi i64 [%35, %$10], [%39, %$13] ; # Exe\n  %45 = phi i64 [%36, %$10], [%40, %$13] ; # X\n  %46 = phi i64 [%37, %$10], [%41, %$13] ; # Y\n  %47 = phi i1 [1, %$10], [%43, %$13] ; # ->\n  br i1 %47, label %$15, label %$14\n$15:\n  %48 = phi i64 [%44, %$12] ; # Exe\n  %49 = phi i64 [%45, %$12] ; # X\n  %50 = phi i64 [%46, %$12] ; # Y\n; # (let Nm (newId Exe (if (num? Y) (i32 (int @)) 1)) (prog1 (extern ...\n; # (if (num? Y) (i32 (int @)) 1)\n; # (num? Y)\n  %51 = and i64 %50, 6\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$16, label %$17\n$16:\n  %53 = phi i64 [%48, %$15] ; # Exe\n  %54 = phi i64 [%49, %$15] ; # X\n  %55 = phi i64 [%50, %$15] ; # Y\n; # (int @)\n  %56 = lshr i64 %50, 4\n; # (i32 (int @))\n  %57 = trunc i64 %56 to i32\n  br label %$18\n$17:\n  %58 = phi i64 [%48, %$15] ; # Exe\n  %59 = phi i64 [%49, %$15] ; # X\n  %60 = phi i64 [%50, %$15] ; # Y\n  br label %$18\n$18:\n  %61 = phi i64 [%53, %$16], [%58, %$17] ; # Exe\n  %62 = phi i64 [%54, %$16], [%59, %$17] ; # X\n  %63 = phi i64 [%55, %$16], [%60, %$17] ; # Y\n  %64 = phi i32 [%57, %$16], [1, %$17] ; # ->\n; # (newId Exe (if (num? Y) (i32 (int @)) 1))\n  %65 = call i64 @newId(i64 %48, i32 %64)\n; # (prog1 (extern Nm) (set (tail @) (sign (shr 1 (add Nm Nm) 1))))\n; # (extern Nm)\n  %66 = call i64 @extern(i64 %65)\n; # (set (tail @) (sign (shr 1 (add Nm Nm) 1)))\n; # (tail @)\n  %67 = add i64 %66, -8\n; # (add Nm Nm)\n  %68 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %65, i64 %65)\n  %69 = extractvalue {i64, i1} %68, 1\n  %70 = extractvalue {i64, i1} %68, 0\n; # (shr 1 (add Nm Nm) 1)\n  %71 = call i64 @llvm.fshr.i64(i64 1, i64 %70, i64 1)\n; # (sign (shr 1 (add Nm Nm) 1))\n  %72 = or i64 %71, 8\n  %73 = inttoptr i64 %67 to i64*\n  store i64 %72, i64* %73\n  br label %$7\n$14:\n  %74 = phi i64 [%44, %$12] ; # Exe\n  %75 = phi i64 [%45, %$12] ; # X\n  %76 = phi i64 [%46, %$12] ; # Y\n  br label %$7\n$7:\n  %77 = phi i64 [%23, %$9], [%31, %$11], [%61, %$18], [%74, %$14] ; # Exe\n  %78 = phi i64 [%24, %$9], [%32, %$11], [%62, %$18], [%75, %$14] ; # X\n  %79 = phi i64 [%25, %$9], [%33, %$11], [%63, %$18], [%76, %$14] ; # Y\n  %80 = phi i64 [%26, %$9], [%34, %$11], [%66, %$18], [%76, %$14] ; # ->\n; # (save (cond ((pair Y) (consSym ZERO Y)) ((nil? Y) (consSym ZERO Z...\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %82 = load i64, i64* %81\n  %83 = alloca i64, i64 2, align 16\n  %84 = ptrtoint i64* %83 to i64\n  %85 = inttoptr i64 %84 to i64*\n  store i64 %80, i64* %85\n  %86 = add i64 %84, 8\n  %87 = inttoptr i64 %86 to i64*\n  store i64 %82, i64* %87\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %84, i64* %88\n; # (unless (pair Y) (set Obj (eval (++ X))))\n; # (pair Y)\n  %89 = and i64 %79, 15\n  %90 = icmp eq i64 %89, 0\n  br i1 %90, label %$20, label %$19\n$19:\n  %91 = phi i64 [%77, %$7] ; # Exe\n  %92 = phi i64 [%78, %$7] ; # X\n  %93 = phi i64 [%79, %$7] ; # Y\n  %94 = phi i64 [%80, %$7] ; # Obj\n; # (set Obj (eval (++ X)))\n; # (++ X)\n  %95 = inttoptr i64 %92 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  %97 = load i64, i64* %96\n  %98 = load i64, i64* %95\n; # (eval (++ X))\n  %99 = and i64 %98, 6\n  %100 = icmp ne i64 %99, 0\n  br i1 %100, label %$23, label %$22\n$23:\n  %101 = phi i64 [%98, %$19] ; # X\n  br label %$21\n$22:\n  %102 = phi i64 [%98, %$19] ; # X\n  %103 = and i64 %102, 8\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$25, label %$24\n$25:\n  %105 = phi i64 [%102, %$22] ; # X\n  %106 = inttoptr i64 %105 to i64*\n  %107 = load i64, i64* %106\n  br label %$21\n$24:\n  %108 = phi i64 [%102, %$22] ; # X\n  %109 = call i64 @evList(i64 %108)\n  br label %$21\n$21:\n  %110 = phi i64 [%101, %$23], [%105, %$25], [%108, %$24] ; # X\n  %111 = phi i64 [%101, %$23], [%107, %$25], [%109, %$24] ; # ->\n  %112 = inttoptr i64 %94 to i64*\n  store i64 %111, i64* %112\n  br label %$20\n$20:\n  %113 = phi i64 [%77, %$7], [%91, %$21] ; # Exe\n  %114 = phi i64 [%78, %$7], [%97, %$21] ; # X\n  %115 = phi i64 [%79, %$7], [%93, %$21] ; # Y\n  %116 = phi i64 [%80, %$7], [%94, %$21] ; # Obj\n; # (set $Ret 0)\n  store i64 0, i64* @$Ret\n; # (cond ((method Obj $T) (evMethod Obj (val $Ret) $T @ X)) ((pair X...\n; # (method Obj $T)\n  %117 = call i64 @method(i64 %116, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64))\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$28, label %$27\n$28:\n  %119 = phi i64 [%113, %$20] ; # Exe\n  %120 = phi i64 [%114, %$20] ; # X\n  %121 = phi i64 [%115, %$20] ; # Y\n  %122 = phi i64 [%116, %$20] ; # Obj\n; # (val $Ret)\n  %123 = load i64, i64* @$Ret\n; # (evMethod Obj (val $Ret) $T @ X)\n  %124 = call i64 @evMethod(i64 %122, i64 %123, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64 %117, i64 %120)\n  br label %$26\n$27:\n  %125 = phi i64 [%113, %$20] ; # Exe\n  %126 = phi i64 [%114, %$20] ; # X\n  %127 = phi i64 [%115, %$20] ; # Y\n  %128 = phi i64 [%116, %$20] ; # Obj\n; # (pair X)\n  %129 = and i64 %126, 15\n  %130 = icmp eq i64 %129, 0\n  br i1 %130, label %$30, label %$29\n$30:\n  %131 = phi i64 [%125, %$27] ; # Exe\n  %132 = phi i64 [%126, %$27] ; # X\n  %133 = phi i64 [%127, %$27] ; # Y\n  %134 = phi i64 [%128, %$27] ; # Obj\n; # (let K (link (push NIL NIL)) (loop (when (== ZERO (set K (eval (+...\n; # (push NIL NIL)\n  %135 = alloca i64, i64 2, align 16\n  %136 = ptrtoint i64* %135 to i64\n; # (link (push NIL NIL))\n  %137 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %138 = load i64, i64* %137\n  %139 = inttoptr i64 %136 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  store i64 %138, i64* %140\n  %141 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %136, i64* %141\n; # (loop (when (== ZERO (set K (eval (++ X)))) (argErr Exe ZERO)) (p...\n  br label %$31\n$31:\n  %142 = phi i64 [%131, %$30], [%197, %$44] ; # Exe\n  %143 = phi i64 [%132, %$30], [%198, %$44] ; # X\n  %144 = phi i64 [%133, %$30], [%199, %$44] ; # Y\n  %145 = phi i64 [%134, %$30], [%200, %$44] ; # Obj\n  %146 = phi i64 [%136, %$30], [%201, %$44] ; # K\n; # (when (== ZERO (set K (eval (++ X)))) (argErr Exe ZERO))\n; # (set K (eval (++ X)))\n; # (++ X)\n  %147 = inttoptr i64 %143 to i64*\n  %148 = getelementptr i64, i64* %147, i32 1\n  %149 = load i64, i64* %148\n  %150 = load i64, i64* %147\n; # (eval (++ X))\n  %151 = and i64 %150, 6\n  %152 = icmp ne i64 %151, 0\n  br i1 %152, label %$34, label %$33\n$34:\n  %153 = phi i64 [%150, %$31] ; # X\n  br label %$32\n$33:\n  %154 = phi i64 [%150, %$31] ; # X\n  %155 = and i64 %154, 8\n  %156 = icmp ne i64 %155, 0\n  br i1 %156, label %$36, label %$35\n$36:\n  %157 = phi i64 [%154, %$33] ; # X\n  %158 = inttoptr i64 %157 to i64*\n  %159 = load i64, i64* %158\n  br label %$32\n$35:\n  %160 = phi i64 [%154, %$33] ; # X\n  %161 = call i64 @evList(i64 %160)\n  br label %$32\n$32:\n  %162 = phi i64 [%153, %$34], [%157, %$36], [%160, %$35] ; # X\n  %163 = phi i64 [%153, %$34], [%159, %$36], [%161, %$35] ; # ->\n  %164 = inttoptr i64 %146 to i64*\n  store i64 %163, i64* %164\n; # (== ZERO (set K (eval (++ X))))\n  %165 = icmp eq i64 2, %163\n  br i1 %165, label %$37, label %$38\n$37:\n  %166 = phi i64 [%142, %$32] ; # Exe\n  %167 = phi i64 [%149, %$32] ; # X\n  %168 = phi i64 [%144, %$32] ; # Y\n  %169 = phi i64 [%145, %$32] ; # Obj\n  %170 = phi i64 [%146, %$32] ; # K\n; # (argErr Exe ZERO)\n  call void @argErr(i64 %166, i64 2)\n  unreachable\n$38:\n  %171 = phi i64 [%142, %$32] ; # Exe\n  %172 = phi i64 [%149, %$32] ; # X\n  %173 = phi i64 [%144, %$32] ; # Y\n  %174 = phi i64 [%145, %$32] ; # Obj\n  %175 = phi i64 [%146, %$32] ; # K\n; # (val K)\n  %176 = inttoptr i64 %175 to i64*\n  %177 = load i64, i64* %176\n; # (++ X)\n  %178 = inttoptr i64 %172 to i64*\n  %179 = getelementptr i64, i64* %178, i32 1\n  %180 = load i64, i64* %179\n  %181 = load i64, i64* %178\n; # (eval (++ X))\n  %182 = and i64 %181, 6\n  %183 = icmp ne i64 %182, 0\n  br i1 %183, label %$41, label %$40\n$41:\n  %184 = phi i64 [%181, %$38] ; # X\n  br label %$39\n$40:\n  %185 = phi i64 [%181, %$38] ; # X\n  %186 = and i64 %185, 8\n  %187 = icmp ne i64 %186, 0\n  br i1 %187, label %$43, label %$42\n$43:\n  %188 = phi i64 [%185, %$40] ; # X\n  %189 = inttoptr i64 %188 to i64*\n  %190 = load i64, i64* %189\n  br label %$39\n$42:\n  %191 = phi i64 [%185, %$40] ; # X\n  %192 = call i64 @evList(i64 %191)\n  br label %$39\n$39:\n  %193 = phi i64 [%184, %$41], [%188, %$43], [%191, %$42] ; # X\n  %194 = phi i64 [%184, %$41], [%190, %$43], [%192, %$42] ; # ->\n; # (put Obj (val K) (eval (++ X)))\n  call void @put(i64 %174, i64 %177, i64 %194)\n; # (? (atom X))\n; # (atom X)\n  %195 = and i64 %180, 15\n  %196 = icmp ne i64 %195, 0\n  br i1 %196, label %$45, label %$44\n$44:\n  %197 = phi i64 [%171, %$39] ; # Exe\n  %198 = phi i64 [%180, %$39] ; # X\n  %199 = phi i64 [%173, %$39] ; # Y\n  %200 = phi i64 [%174, %$39] ; # Obj\n  %201 = phi i64 [%175, %$39] ; # K\n  br label %$31\n$45:\n  %202 = phi i64 [%171, %$39] ; # Exe\n  %203 = phi i64 [%180, %$39] ; # X\n  %204 = phi i64 [%173, %$39] ; # Y\n  %205 = phi i64 [%174, %$39] ; # Obj\n  %206 = phi i64 [%175, %$39] ; # K\n  %207 = phi i64 [0, %$39] ; # ->\n  br label %$26\n$29:\n  %208 = phi i64 [%125, %$27] ; # Exe\n  %209 = phi i64 [%126, %$27] ; # X\n  %210 = phi i64 [%127, %$27] ; # Y\n  %211 = phi i64 [%128, %$27] ; # Obj\n  br label %$26\n$26:\n  %212 = phi i64 [%119, %$28], [%202, %$45], [%208, %$29] ; # Exe\n  %213 = phi i64 [%120, %$28], [%203, %$45], [%209, %$29] ; # X\n  %214 = phi i64 [%121, %$28], [%204, %$45], [%210, %$29] ; # Y\n  %215 = phi i64 [%122, %$28], [%205, %$45], [%211, %$29] ; # Obj\n  %216 = phi i64 [%124, %$28], [%207, %$45], [0, %$29] ; # ->\n; # (drop *Safe)\n  %217 = inttoptr i64 %84 to i64*\n  %218 = getelementptr i64, i64* %217, i32 1\n  %219 = load i64, i64* %218\n  %220 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %219, i64* %220\n  ret i64 %215\n}\n\ndefine i64 @_Type(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (ifn (symb? Y) $Nil (when (sy...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (ifn (symb? Y) $Nil (when (sym? (val (tail Y))) (dbFetch Exe Y)) ...\n; # (symb? Y)\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$8, label %$7\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%3, %$2] ; # X\n  %24 = phi i64 [%18, %$2] ; # Y\n  br label %$9\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%3, %$2] ; # X\n  %27 = phi i64 [%18, %$2] ; # Y\n; # (when (sym? (val (tail Y))) (dbFetch Exe Y))\n; # (tail Y)\n  %28 = add i64 %27, -8\n; # (val (tail Y))\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n; # (sym? (val (tail Y)))\n  %31 = and i64 %30, 8\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$10, label %$11\n$10:\n  %33 = phi i64 [%25, %$8] ; # Exe\n  %34 = phi i64 [%26, %$8] ; # X\n  %35 = phi i64 [%27, %$8] ; # Y\n; # (dbFetch Exe Y)\n  call void @dbFetch(i64 %33, i64 %35)\n  br label %$11\n$11:\n  %36 = phi i64 [%25, %$8], [%33, %$10] ; # Exe\n  %37 = phi i64 [%26, %$8], [%34, %$10] ; # X\n  %38 = phi i64 [%27, %$8], [%35, %$10] ; # Y\n; # (let (V (val Y) Z V) (loop (? (atom V) $Nil) (? (atom (car V)) (l...\n; # (val Y)\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (loop (? (atom V) $Nil) (? (atom (car V)) (let R V (loop (? (not ...\n  br label %$12\n$12:\n  %41 = phi i64 [%36, %$11], [%162, %$29] ; # Exe\n  %42 = phi i64 [%37, %$11], [%163, %$29] ; # X\n  %43 = phi i64 [%38, %$11], [%164, %$29] ; # Y\n  %44 = phi i64 [%40, %$11], [%165, %$29] ; # V\n  %45 = phi i64 [%40, %$11], [%166, %$29] ; # Z\n; # (? (atom V) $Nil)\n; # (atom V)\n  %46 = and i64 %44, 15\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$15, label %$13\n$15:\n  %48 = phi i64 [%41, %$12] ; # Exe\n  %49 = phi i64 [%42, %$12] ; # X\n  %50 = phi i64 [%43, %$12] ; # Y\n  %51 = phi i64 [%44, %$12] ; # V\n  %52 = phi i64 [%45, %$12] ; # Z\n  br label %$14\n$13:\n  %53 = phi i64 [%41, %$12] ; # Exe\n  %54 = phi i64 [%42, %$12] ; # X\n  %55 = phi i64 [%43, %$12] ; # Y\n  %56 = phi i64 [%44, %$12] ; # V\n  %57 = phi i64 [%45, %$12] ; # Z\n; # (? (atom (car V)) (let R V (loop (? (not (symb? (car V))) $Nil) (...\n; # (car V)\n  %58 = inttoptr i64 %56 to i64*\n  %59 = load i64, i64* %58\n; # (atom (car V))\n  %60 = and i64 %59, 15\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$17, label %$16\n$17:\n  %62 = phi i64 [%53, %$13] ; # Exe\n  %63 = phi i64 [%54, %$13] ; # X\n  %64 = phi i64 [%55, %$13] ; # Y\n  %65 = phi i64 [%56, %$13] ; # V\n  %66 = phi i64 [%57, %$13] ; # Z\n; # (let R V (loop (? (not (symb? (car V))) $Nil) (? (atom (shift V))...\n; # (loop (? (not (symb? (car V))) $Nil) (? (atom (shift V)) (if (nil...\n  br label %$18\n$18:\n  %67 = phi i64 [%62, %$17], [%135, %$27] ; # Exe\n  %68 = phi i64 [%63, %$17], [%136, %$27] ; # X\n  %69 = phi i64 [%64, %$17], [%137, %$27] ; # Y\n  %70 = phi i64 [%65, %$17], [%138, %$27] ; # V\n  %71 = phi i64 [%66, %$17], [%139, %$27] ; # Z\n  %72 = phi i64 [%65, %$17], [%140, %$27] ; # R\n; # (? (not (symb? (car V))) $Nil)\n; # (car V)\n  %73 = inttoptr i64 %70 to i64*\n  %74 = load i64, i64* %73\n; # (symb? (car V))\n  %75 = xor i64 %74, 8\n  %76 = and i64 %75, 14\n  %77 = icmp eq i64 %76, 0\n; # (not (symb? (car V)))\n  %78 = icmp eq i1 %77, 0\n  br i1 %78, label %$21, label %$19\n$21:\n  %79 = phi i64 [%67, %$18] ; # Exe\n  %80 = phi i64 [%68, %$18] ; # X\n  %81 = phi i64 [%69, %$18] ; # Y\n  %82 = phi i64 [%70, %$18] ; # V\n  %83 = phi i64 [%71, %$18] ; # Z\n  %84 = phi i64 [%72, %$18] ; # R\n  br label %$20\n$19:\n  %85 = phi i64 [%67, %$18] ; # Exe\n  %86 = phi i64 [%68, %$18] ; # X\n  %87 = phi i64 [%69, %$18] ; # Y\n  %88 = phi i64 [%70, %$18] ; # V\n  %89 = phi i64 [%71, %$18] ; # Z\n  %90 = phi i64 [%72, %$18] ; # R\n; # (? (atom (shift V)) (if (nil? V) R $Nil))\n; # (shift V)\n  %91 = inttoptr i64 %88 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (atom (shift V))\n  %94 = and i64 %93, 15\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$23, label %$22\n$23:\n  %96 = phi i64 [%85, %$19] ; # Exe\n  %97 = phi i64 [%86, %$19] ; # X\n  %98 = phi i64 [%87, %$19] ; # Y\n  %99 = phi i64 [%93, %$19] ; # V\n  %100 = phi i64 [%89, %$19] ; # Z\n  %101 = phi i64 [%90, %$19] ; # R\n; # (if (nil? V) R $Nil)\n; # (nil? V)\n  %102 = icmp eq i64 %99, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %102, label %$24, label %$25\n$24:\n  %103 = phi i64 [%96, %$23] ; # Exe\n  %104 = phi i64 [%97, %$23] ; # X\n  %105 = phi i64 [%98, %$23] ; # Y\n  %106 = phi i64 [%99, %$23] ; # V\n  %107 = phi i64 [%100, %$23] ; # Z\n  %108 = phi i64 [%101, %$23] ; # R\n  br label %$26\n$25:\n  %109 = phi i64 [%96, %$23] ; # Exe\n  %110 = phi i64 [%97, %$23] ; # X\n  %111 = phi i64 [%98, %$23] ; # Y\n  %112 = phi i64 [%99, %$23] ; # V\n  %113 = phi i64 [%100, %$23] ; # Z\n  %114 = phi i64 [%101, %$23] ; # R\n  br label %$26\n$26:\n  %115 = phi i64 [%103, %$24], [%109, %$25] ; # Exe\n  %116 = phi i64 [%104, %$24], [%110, %$25] ; # X\n  %117 = phi i64 [%105, %$24], [%111, %$25] ; # Y\n  %118 = phi i64 [%106, %$24], [%112, %$25] ; # V\n  %119 = phi i64 [%107, %$24], [%113, %$25] ; # Z\n  %120 = phi i64 [%108, %$24], [%114, %$25] ; # R\n  %121 = phi i64 [%108, %$24], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$25] ; # ->\n  br label %$20\n$22:\n  %122 = phi i64 [%85, %$19] ; # Exe\n  %123 = phi i64 [%86, %$19] ; # X\n  %124 = phi i64 [%87, %$19] ; # Y\n  %125 = phi i64 [%93, %$19] ; # V\n  %126 = phi i64 [%89, %$19] ; # Z\n  %127 = phi i64 [%90, %$19] ; # R\n; # (? (== Z V) $Nil)\n; # (== Z V)\n  %128 = icmp eq i64 %126, %125\n  br i1 %128, label %$28, label %$27\n$28:\n  %129 = phi i64 [%122, %$22] ; # Exe\n  %130 = phi i64 [%123, %$22] ; # X\n  %131 = phi i64 [%124, %$22] ; # Y\n  %132 = phi i64 [%125, %$22] ; # V\n  %133 = phi i64 [%126, %$22] ; # Z\n  %134 = phi i64 [%127, %$22] ; # R\n  br label %$20\n$27:\n  %135 = phi i64 [%122, %$22] ; # Exe\n  %136 = phi i64 [%123, %$22] ; # X\n  %137 = phi i64 [%124, %$22] ; # Y\n  %138 = phi i64 [%125, %$22] ; # V\n  %139 = phi i64 [%126, %$22] ; # Z\n  %140 = phi i64 [%127, %$22] ; # R\n  br label %$18\n$20:\n  %141 = phi i64 [%79, %$21], [%115, %$26], [%129, %$28] ; # Exe\n  %142 = phi i64 [%80, %$21], [%116, %$26], [%130, %$28] ; # X\n  %143 = phi i64 [%81, %$21], [%117, %$26], [%131, %$28] ; # Y\n  %144 = phi i64 [%82, %$21], [%118, %$26], [%132, %$28] ; # V\n  %145 = phi i64 [%83, %$21], [%119, %$26], [%133, %$28] ; # Z\n  %146 = phi i64 [%84, %$21], [%120, %$26], [%134, %$28] ; # R\n  %147 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21], [%121, %$26], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$28] ; # ->\n  br label %$14\n$16:\n  %148 = phi i64 [%53, %$13] ; # Exe\n  %149 = phi i64 [%54, %$13] ; # X\n  %150 = phi i64 [%55, %$13] ; # Y\n  %151 = phi i64 [%56, %$13] ; # V\n  %152 = phi i64 [%57, %$13] ; # Z\n; # (? (== Z (shift V)) $Nil)\n; # (shift V)\n  %153 = inttoptr i64 %151 to i64*\n  %154 = getelementptr i64, i64* %153, i32 1\n  %155 = load i64, i64* %154\n; # (== Z (shift V))\n  %156 = icmp eq i64 %152, %155\n  br i1 %156, label %$30, label %$29\n$30:\n  %157 = phi i64 [%148, %$16] ; # Exe\n  %158 = phi i64 [%149, %$16] ; # X\n  %159 = phi i64 [%150, %$16] ; # Y\n  %160 = phi i64 [%155, %$16] ; # V\n  %161 = phi i64 [%152, %$16] ; # Z\n  br label %$14\n$29:\n  %162 = phi i64 [%148, %$16] ; # Exe\n  %163 = phi i64 [%149, %$16] ; # X\n  %164 = phi i64 [%150, %$16] ; # Y\n  %165 = phi i64 [%155, %$16] ; # V\n  %166 = phi i64 [%152, %$16] ; # Z\n  br label %$12\n$14:\n  %167 = phi i64 [%48, %$15], [%141, %$20], [%157, %$30] ; # Exe\n  %168 = phi i64 [%49, %$15], [%142, %$20], [%158, %$30] ; # X\n  %169 = phi i64 [%50, %$15], [%143, %$20], [%159, %$30] ; # Y\n  %170 = phi i64 [%51, %$15], [%144, %$20], [%160, %$30] ; # V\n  %171 = phi i64 [%52, %$15], [%145, %$20], [%161, %$30] ; # Z\n  %172 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%147, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$30] ; # ->\n  br label %$9\n$9:\n  %173 = phi i64 [%22, %$7], [%167, %$14] ; # Exe\n  %174 = phi i64 [%23, %$7], [%168, %$14] ; # X\n  %175 = phi i64 [%24, %$7], [%169, %$14] ; # Y\n  %176 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [%172, %$14] ; # ->\n  ret i64 %176\n}\n\ndefine i1 @isa(i64, i64) align 8 {\n$1:\n; # (let (V (val Obj) Z V) (loop (? (atom V) NO) (? (atom (car V)) (s...\n; # (val Obj)\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (loop (? (atom V) NO) (? (atom (car V)) (stkChk 0) (loop (? (not ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%106, %$22] ; # Cls\n  %5 = phi i64 [%1, %$1], [%107, %$22] ; # Obj\n  %6 = phi i64 [%3, %$1], [%108, %$22] ; # V\n  %7 = phi i64 [%3, %$1], [%109, %$22] ; # Z\n; # (? (atom V) NO)\n; # (atom V)\n  %8 = and i64 %6, 15\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$3\n$5:\n  %10 = phi i64 [%4, %$2] ; # Cls\n  %11 = phi i64 [%5, %$2] ; # Obj\n  %12 = phi i64 [%6, %$2] ; # V\n  %13 = phi i64 [%7, %$2] ; # Z\n  br label %$4\n$3:\n  %14 = phi i64 [%4, %$2] ; # Cls\n  %15 = phi i64 [%5, %$2] ; # Obj\n  %16 = phi i64 [%6, %$2] ; # V\n  %17 = phi i64 [%7, %$2] ; # Z\n; # (? (atom (car V)) (stkChk 0) (loop (? (not (symb? (car V))) NO) (...\n; # (car V)\n  %18 = inttoptr i64 %16 to i64*\n  %19 = load i64, i64* %18\n; # (atom (car V))\n  %20 = and i64 %19, 15\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$7, label %$6\n$7:\n  %22 = phi i64 [%14, %$3] ; # Cls\n  %23 = phi i64 [%15, %$3] ; # Obj\n  %24 = phi i64 [%16, %$3] ; # V\n  %25 = phi i64 [%17, %$3] ; # Z\n; # (stkChk 0)\n  %26 = load i8*, i8** @$StkLimit\n  %27 = call i8* @llvm.stacksave()\n  %28 = icmp ugt i8* %26, %27\n  br i1 %28, label %$8, label %$9\n$8:\n  %29 = phi i64 [0, %$7] ; # Exe\n  call void @stkErr(i64 %29)\n  unreachable\n$9:\n  %30 = phi i64 [0, %$7] ; # Exe\n; # (loop (? (not (symb? (car V))) NO) (? (== @ Cls) YES) (? (isa Cls...\n  br label %$10\n$10:\n  %31 = phi i64 [%22, %$9], [%85, %$20] ; # Cls\n  %32 = phi i64 [%23, %$9], [%86, %$20] ; # Obj\n  %33 = phi i64 [%24, %$9], [%87, %$20] ; # V\n  %34 = phi i64 [%25, %$9], [%88, %$20] ; # Z\n; # (? (not (symb? (car V))) NO)\n; # (car V)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = load i64, i64* %35\n; # (symb? (car V))\n  %37 = xor i64 %36, 8\n  %38 = and i64 %37, 14\n  %39 = icmp eq i64 %38, 0\n; # (not (symb? (car V)))\n  %40 = icmp eq i1 %39, 0\n  br i1 %40, label %$13, label %$11\n$13:\n  %41 = phi i64 [%31, %$10] ; # Cls\n  %42 = phi i64 [%32, %$10] ; # Obj\n  %43 = phi i64 [%33, %$10] ; # V\n  %44 = phi i64 [%34, %$10] ; # Z\n  br label %$12\n$11:\n  %45 = phi i64 [%31, %$10] ; # Cls\n  %46 = phi i64 [%32, %$10] ; # Obj\n  %47 = phi i64 [%33, %$10] ; # V\n  %48 = phi i64 [%34, %$10] ; # Z\n; # (? (== @ Cls) YES)\n; # (== @ Cls)\n  %49 = icmp eq i64 %36, %45\n  br i1 %49, label %$15, label %$14\n$15:\n  %50 = phi i64 [%45, %$11] ; # Cls\n  %51 = phi i64 [%46, %$11] ; # Obj\n  %52 = phi i64 [%47, %$11] ; # V\n  %53 = phi i64 [%48, %$11] ; # Z\n  br label %$12\n$14:\n  %54 = phi i64 [%45, %$11] ; # Cls\n  %55 = phi i64 [%46, %$11] ; # Obj\n  %56 = phi i64 [%47, %$11] ; # V\n  %57 = phi i64 [%48, %$11] ; # Z\n; # (? (isa Cls @) YES)\n; # (isa Cls @)\n  %58 = call i1 @isa(i64 %54, i64 %36)\n  br i1 %58, label %$17, label %$16\n$17:\n  %59 = phi i64 [%54, %$14] ; # Cls\n  %60 = phi i64 [%55, %$14] ; # Obj\n  %61 = phi i64 [%56, %$14] ; # V\n  %62 = phi i64 [%57, %$14] ; # Z\n  br label %$12\n$16:\n  %63 = phi i64 [%54, %$14] ; # Cls\n  %64 = phi i64 [%55, %$14] ; # Obj\n  %65 = phi i64 [%56, %$14] ; # V\n  %66 = phi i64 [%57, %$14] ; # Z\n; # (? (atom (shift V)) NO)\n; # (shift V)\n  %67 = inttoptr i64 %65 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n; # (atom (shift V))\n  %70 = and i64 %69, 15\n  %71 = icmp ne i64 %70, 0\n  br i1 %71, label %$19, label %$18\n$19:\n  %72 = phi i64 [%63, %$16] ; # Cls\n  %73 = phi i64 [%64, %$16] ; # Obj\n  %74 = phi i64 [%69, %$16] ; # V\n  %75 = phi i64 [%66, %$16] ; # Z\n  br label %$12\n$18:\n  %76 = phi i64 [%63, %$16] ; # Cls\n  %77 = phi i64 [%64, %$16] ; # Obj\n  %78 = phi i64 [%69, %$16] ; # V\n  %79 = phi i64 [%66, %$16] ; # Z\n; # (? (== Z V) NO)\n; # (== Z V)\n  %80 = icmp eq i64 %79, %78\n  br i1 %80, label %$21, label %$20\n$21:\n  %81 = phi i64 [%76, %$18] ; # Cls\n  %82 = phi i64 [%77, %$18] ; # Obj\n  %83 = phi i64 [%78, %$18] ; # V\n  %84 = phi i64 [%79, %$18] ; # Z\n  br label %$12\n$20:\n  %85 = phi i64 [%76, %$18] ; # Cls\n  %86 = phi i64 [%77, %$18] ; # Obj\n  %87 = phi i64 [%78, %$18] ; # V\n  %88 = phi i64 [%79, %$18] ; # Z\n  br label %$10\n$12:\n  %89 = phi i64 [%41, %$13], [%50, %$15], [%59, %$17], [%72, %$19], [%81, %$21] ; # Cls\n  %90 = phi i64 [%42, %$13], [%51, %$15], [%60, %$17], [%73, %$19], [%82, %$21] ; # Obj\n  %91 = phi i64 [%43, %$13], [%52, %$15], [%61, %$17], [%74, %$19], [%83, %$21] ; # V\n  %92 = phi i64 [%44, %$13], [%53, %$15], [%62, %$17], [%75, %$19], [%84, %$21] ; # Z\n  %93 = phi i1 [0, %$13], [1, %$15], [1, %$17], [0, %$19], [0, %$21] ; # ->\n  br label %$4\n$6:\n  %94 = phi i64 [%14, %$3] ; # Cls\n  %95 = phi i64 [%15, %$3] ; # Obj\n  %96 = phi i64 [%16, %$3] ; # V\n  %97 = phi i64 [%17, %$3] ; # Z\n; # (? (== Z (shift V)) NO)\n; # (shift V)\n  %98 = inttoptr i64 %96 to i64*\n  %99 = getelementptr i64, i64* %98, i32 1\n  %100 = load i64, i64* %99\n; # (== Z (shift V))\n  %101 = icmp eq i64 %97, %100\n  br i1 %101, label %$23, label %$22\n$23:\n  %102 = phi i64 [%94, %$6] ; # Cls\n  %103 = phi i64 [%95, %$6] ; # Obj\n  %104 = phi i64 [%100, %$6] ; # V\n  %105 = phi i64 [%97, %$6] ; # Z\n  br label %$4\n$22:\n  %106 = phi i64 [%94, %$6] ; # Cls\n  %107 = phi i64 [%95, %$6] ; # Obj\n  %108 = phi i64 [%100, %$6] ; # V\n  %109 = phi i64 [%97, %$6] ; # Z\n  br label %$2\n$4:\n  %110 = phi i64 [%10, %$5], [%89, %$12], [%102, %$23] ; # Cls\n  %111 = phi i64 [%11, %$5], [%90, %$12], [%103, %$23] ; # Obj\n  %112 = phi i64 [%12, %$5], [%91, %$12], [%104, %$23] ; # V\n  %113 = phi i64 [%13, %$5], [%92, %$12], [%105, %$23] ; # Z\n  %114 = phi i1 [0, %$5], [%93, %$12], [0, %$23] ; # ->\n  ret i1 %114\n}\n\ndefine i64 @_Isa(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X))) (ifn (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (ifn (symb? Z) $Nil (when (sym? (val (tail Z))) (dbFetch Exe Z)) ...\n; # (symb? Z)\n  %44 = xor i64 %43, 8\n  %45 = and i64 %44, 14\n  %46 = icmp eq i64 %45, 0\n  br i1 %46, label %$13, label %$12\n$12:\n  %47 = phi i64 [%0, %$7] ; # Exe\n  %48 = phi i64 [%6, %$7] ; # X\n  %49 = phi i64 [%20, %$7] ; # Y\n  %50 = phi i64 [%43, %$7] ; # Z\n  br label %$14\n$13:\n  %51 = phi i64 [%0, %$7] ; # Exe\n  %52 = phi i64 [%6, %$7] ; # X\n  %53 = phi i64 [%20, %$7] ; # Y\n  %54 = phi i64 [%43, %$7] ; # Z\n; # (when (sym? (val (tail Z))) (dbFetch Exe Z))\n; # (tail Z)\n  %55 = add i64 %54, -8\n; # (val (tail Z))\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n; # (sym? (val (tail Z)))\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$15, label %$16\n$15:\n  %60 = phi i64 [%51, %$13] ; # Exe\n  %61 = phi i64 [%52, %$13] ; # X\n  %62 = phi i64 [%53, %$13] ; # Y\n  %63 = phi i64 [%54, %$13] ; # Z\n; # (dbFetch Exe Z)\n  call void @dbFetch(i64 %60, i64 %63)\n  br label %$16\n$16:\n  %64 = phi i64 [%51, %$13], [%60, %$15] ; # Exe\n  %65 = phi i64 [%52, %$13], [%61, %$15] ; # X\n  %66 = phi i64 [%53, %$13], [%62, %$15] ; # Y\n  %67 = phi i64 [%54, %$13], [%63, %$15] ; # Z\n; # (cond ((pair Y) (loop (? (not (isa (car Y) Z)) $Nil) (? (atom (sh...\n; # (pair Y)\n  %68 = and i64 %66, 15\n  %69 = icmp eq i64 %68, 0\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%64, %$16] ; # Exe\n  %71 = phi i64 [%65, %$16] ; # X\n  %72 = phi i64 [%66, %$16] ; # Y\n  %73 = phi i64 [%67, %$16] ; # Z\n; # (loop (? (not (isa (car Y) Z)) $Nil) (? (atom (shift Y)) Z))\n  br label %$20\n$20:\n  %74 = phi i64 [%70, %$19], [%99, %$24] ; # Exe\n  %75 = phi i64 [%71, %$19], [%100, %$24] ; # X\n  %76 = phi i64 [%72, %$19], [%101, %$24] ; # Y\n  %77 = phi i64 [%73, %$19], [%102, %$24] ; # Z\n; # (? (not (isa (car Y) Z)) $Nil)\n; # (car Y)\n  %78 = inttoptr i64 %76 to i64*\n  %79 = load i64, i64* %78\n; # (isa (car Y) Z)\n  %80 = call i1 @isa(i64 %79, i64 %77)\n; # (not (isa (car Y) Z))\n  %81 = icmp eq i1 %80, 0\n  br i1 %81, label %$23, label %$21\n$23:\n  %82 = phi i64 [%74, %$20] ; # Exe\n  %83 = phi i64 [%75, %$20] ; # X\n  %84 = phi i64 [%76, %$20] ; # Y\n  %85 = phi i64 [%77, %$20] ; # Z\n  br label %$22\n$21:\n  %86 = phi i64 [%74, %$20] ; # Exe\n  %87 = phi i64 [%75, %$20] ; # X\n  %88 = phi i64 [%76, %$20] ; # Y\n  %89 = phi i64 [%77, %$20] ; # Z\n; # (? (atom (shift Y)) Z)\n; # (shift Y)\n  %90 = inttoptr i64 %88 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (atom (shift Y))\n  %93 = and i64 %92, 15\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$25, label %$24\n$25:\n  %95 = phi i64 [%86, %$21] ; # Exe\n  %96 = phi i64 [%87, %$21] ; # X\n  %97 = phi i64 [%92, %$21] ; # Y\n  %98 = phi i64 [%89, %$21] ; # Z\n  br label %$22\n$24:\n  %99 = phi i64 [%86, %$21] ; # Exe\n  %100 = phi i64 [%87, %$21] ; # X\n  %101 = phi i64 [%92, %$21] ; # Y\n  %102 = phi i64 [%89, %$21] ; # Z\n  br label %$20\n$22:\n  %103 = phi i64 [%82, %$23], [%95, %$25] ; # Exe\n  %104 = phi i64 [%83, %$23], [%96, %$25] ; # X\n  %105 = phi i64 [%84, %$23], [%97, %$25] ; # Y\n  %106 = phi i64 [%85, %$23], [%98, %$25] ; # Z\n  %107 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$23], [%98, %$25] ; # ->\n  br label %$17\n$18:\n  %108 = phi i64 [%64, %$16] ; # Exe\n  %109 = phi i64 [%65, %$16] ; # X\n  %110 = phi i64 [%66, %$16] ; # Y\n  %111 = phi i64 [%67, %$16] ; # Z\n; # (isa Y Z)\n  %112 = call i1 @isa(i64 %110, i64 %111)\n  br i1 %112, label %$27, label %$26\n$27:\n  %113 = phi i64 [%108, %$18] ; # Exe\n  %114 = phi i64 [%109, %$18] ; # X\n  %115 = phi i64 [%110, %$18] ; # Y\n  %116 = phi i64 [%111, %$18] ; # Z\n  br label %$17\n$26:\n  %117 = phi i64 [%108, %$18] ; # Exe\n  %118 = phi i64 [%109, %$18] ; # X\n  %119 = phi i64 [%110, %$18] ; # Y\n  %120 = phi i64 [%111, %$18] ; # Z\n  br label %$17\n$17:\n  %121 = phi i64 [%103, %$22], [%113, %$27], [%117, %$26] ; # Exe\n  %122 = phi i64 [%104, %$22], [%114, %$27], [%118, %$26] ; # X\n  %123 = phi i64 [%105, %$22], [%115, %$27], [%119, %$26] ; # Y\n  %124 = phi i64 [%106, %$22], [%116, %$27], [%120, %$26] ; # Z\n  %125 = phi i64 [%107, %$22], [%116, %$27], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$26] ; # ->\n  br label %$14\n$14:\n  %126 = phi i64 [%47, %$12], [%121, %$17] ; # Exe\n  %127 = phi i64 [%48, %$12], [%122, %$17] ; # X\n  %128 = phi i64 [%49, %$12], [%123, %$17] ; # Y\n  %129 = phi i64 [%50, %$12], [%124, %$17] ; # Z\n  %130 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%125, %$17] ; # ->\n; # (drop *Safe)\n  %131 = inttoptr i64 %24 to i64*\n  %132 = getelementptr i64, i64* %131, i32 1\n  %133 = load i64, i64* %132\n  %134 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %133, i64* %134\n  ret i64 %130\n}\n\ndefine i64 @_Method(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Msg (save (eval (++ X))) Obj (needSymb Exe (eva...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (needSymb Exe (eval (car X)))\n  %44 = xor i64 %43, 8\n  %45 = and i64 %44, 14\n  %46 = icmp eq i64 %45, 0\n  br i1 %46, label %$13, label %$12\n$12:\n  %47 = phi i64 [%43, %$7] ; # X\n  %48 = phi i64 [%0, %$7] ; # Exe\n  call void @symErr(i64 %48, i64 %47)\n  unreachable\n$13:\n  %49 = phi i64 [%43, %$7] ; # X\n  %50 = phi i64 [%0, %$7] ; # Exe\n; # (when (sym? (val (tail Obj))) (dbFetch Exe Obj))\n; # (tail Obj)\n  %51 = add i64 %49, -8\n; # (val (tail Obj))\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n; # (sym? (val (tail Obj)))\n  %54 = and i64 %53, 8\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$14, label %$15\n$14:\n  %56 = phi i64 [%0, %$13] ; # Exe\n  %57 = phi i64 [%6, %$13] ; # X\n  %58 = phi i64 [%20, %$13] ; # Msg\n  %59 = phi i64 [%49, %$13] ; # Obj\n; # (dbFetch Exe Obj)\n  call void @dbFetch(i64 %56, i64 %59)\n  br label %$15\n$15:\n  %60 = phi i64 [%0, %$13], [%56, %$14] ; # Exe\n  %61 = phi i64 [%6, %$13], [%57, %$14] ; # X\n  %62 = phi i64 [%20, %$13], [%58, %$14] ; # Msg\n  %63 = phi i64 [%49, %$13], [%59, %$14] ; # Obj\n; # (if (method Obj Msg) @ $Nil)\n; # (method Obj Msg)\n  %64 = call i64 @method(i64 %63, i64 %62)\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$16, label %$17\n$16:\n  %66 = phi i64 [%60, %$15] ; # Exe\n  %67 = phi i64 [%61, %$15] ; # X\n  %68 = phi i64 [%62, %$15] ; # Msg\n  %69 = phi i64 [%63, %$15] ; # Obj\n  br label %$18\n$17:\n  %70 = phi i64 [%60, %$15] ; # Exe\n  %71 = phi i64 [%61, %$15] ; # X\n  %72 = phi i64 [%62, %$15] ; # Msg\n  %73 = phi i64 [%63, %$15] ; # Obj\n  br label %$18\n$18:\n  %74 = phi i64 [%66, %$16], [%70, %$17] ; # Exe\n  %75 = phi i64 [%67, %$16], [%71, %$17] ; # X\n  %76 = phi i64 [%68, %$16], [%72, %$17] ; # Msg\n  %77 = phi i64 [%69, %$16], [%73, %$17] ; # Obj\n  %78 = phi i64 [%64, %$16], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %79 = inttoptr i64 %24 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %81, i64* %82\n  ret i64 %78\n}\n\ndefine i64 @_Send(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Msg (save (eval (++ X))) Obj (save (needSymb Ex...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (needSymb Exe (eval (car X)))\n  %44 = xor i64 %43, 8\n  %45 = and i64 %44, 14\n  %46 = icmp eq i64 %45, 0\n  br i1 %46, label %$13, label %$12\n$12:\n  %47 = phi i64 [%43, %$7] ; # X\n  %48 = phi i64 [%0, %$7] ; # Exe\n  call void @symErr(i64 %48, i64 %47)\n  unreachable\n$13:\n  %49 = phi i64 [%43, %$7] ; # X\n  %50 = phi i64 [%0, %$7] ; # Exe\n; # (save (needSymb Exe (eval (car X))))\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %52 = load i64, i64* %51\n  %53 = alloca i64, i64 2, align 16\n  %54 = ptrtoint i64* %53 to i64\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %49, i64* %55\n  %56 = add i64 %54, 8\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %52, i64* %57\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %54, i64* %58\n; # (when (sym? (val (tail Obj))) (dbFetch Exe Obj))\n; # (tail Obj)\n  %59 = add i64 %49, -8\n; # (val (tail Obj))\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n; # (sym? (val (tail Obj)))\n  %62 = and i64 %61, 8\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$14, label %$15\n$14:\n  %64 = phi i64 [%0, %$13] ; # Exe\n  %65 = phi i64 [%6, %$13] ; # X\n  %66 = phi i64 [%20, %$13] ; # Msg\n  %67 = phi i64 [%49, %$13] ; # Obj\n; # (dbFetch Exe Obj)\n  call void @dbFetch(i64 %64, i64 %67)\n  br label %$15\n$15:\n  %68 = phi i64 [%0, %$13], [%64, %$14] ; # Exe\n  %69 = phi i64 [%6, %$13], [%65, %$14] ; # X\n  %70 = phi i64 [%20, %$13], [%66, %$14] ; # Msg\n  %71 = phi i64 [%49, %$13], [%67, %$14] ; # Obj\n; # (set $Ret 0)\n  store i64 0, i64* @$Ret\n; # (if (method Obj Msg) (evMethod Obj (val $Ret) Msg @ (cdr X)) (err...\n; # (method Obj Msg)\n  %72 = call i64 @method(i64 %71, i64 %70)\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$16, label %$17\n$16:\n  %74 = phi i64 [%68, %$15] ; # Exe\n  %75 = phi i64 [%69, %$15] ; # X\n  %76 = phi i64 [%70, %$15] ; # Msg\n  %77 = phi i64 [%71, %$15] ; # Obj\n; # (val $Ret)\n  %78 = load i64, i64* @$Ret\n; # (cdr X)\n  %79 = inttoptr i64 %75 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (evMethod Obj (val $Ret) Msg @ (cdr X))\n  %82 = call i64 @evMethod(i64 %77, i64 %78, i64 %76, i64 %72, i64 %81)\n  br label %$18\n$17:\n  %83 = phi i64 [%68, %$15] ; # Exe\n  %84 = phi i64 [%69, %$15] ; # X\n  %85 = phi i64 [%70, %$15] ; # Msg\n  %86 = phi i64 [%71, %$15] ; # Obj\n; # (err Exe Msg ($ \"Bad message\") null)\n  call void @err(i64 %83, i64 %85, i8* bitcast ([12 x i8]* @$73 to i8*), i8* null)\n  unreachable\n$18:\n  %87 = phi i64 [%74, %$16] ; # Exe\n  %88 = phi i64 [%75, %$16] ; # X\n  %89 = phi i64 [%76, %$16] ; # Msg\n  %90 = phi i64 [%77, %$16] ; # Obj\n  %91 = phi i64 [%82, %$16] ; # ->\n; # (drop *Safe)\n  %92 = inttoptr i64 %24 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  %94 = load i64, i64* %93\n  %95 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %94, i64* %95\n  ret i64 %91\n}\n\ndefine i64 @_Try(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Msg (save (eval (++ X))) Obj (save (eval (car X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (save (eval (car X)))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = alloca i64, i64 2, align 16\n  %47 = ptrtoint i64* %46 to i64\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = add i64 %47, 8\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %51\n; # (ifn (symb? Obj) $Nil (when (sym? (val (tail Obj))) (unless (isLi...\n; # (symb? Obj)\n  %52 = xor i64 %43, 8\n  %53 = and i64 %52, 14\n  %54 = icmp eq i64 %53, 0\n  br i1 %54, label %$13, label %$12\n$12:\n  %55 = phi i64 [%0, %$7] ; # Exe\n  %56 = phi i64 [%6, %$7] ; # X\n  %57 = phi i64 [%20, %$7] ; # Msg\n  %58 = phi i64 [%43, %$7] ; # Obj\n  br label %$14\n$13:\n  %59 = phi i64 [%0, %$7] ; # Exe\n  %60 = phi i64 [%6, %$7] ; # X\n  %61 = phi i64 [%20, %$7] ; # Msg\n  %62 = phi i64 [%43, %$7] ; # Obj\n; # (when (sym? (val (tail Obj))) (unless (isLife Obj) (goto 1)) (dbF...\n; # (tail Obj)\n  %63 = add i64 %62, -8\n; # (val (tail Obj))\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n; # (sym? (val (tail Obj)))\n  %66 = and i64 %65, 8\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$15, label %$16\n$15:\n  %68 = phi i64 [%59, %$13] ; # Exe\n  %69 = phi i64 [%60, %$13] ; # X\n  %70 = phi i64 [%61, %$13] ; # Msg\n  %71 = phi i64 [%62, %$13] ; # Obj\n; # (unless (isLife Obj) (goto 1))\n; # (isLife Obj)\n  %72 = call i1 @isLife(i64 %71)\n  br i1 %72, label %$18, label %$17\n$17:\n  %73 = phi i64 [%68, %$15] ; # Exe\n  %74 = phi i64 [%69, %$15] ; # X\n  %75 = phi i64 [%70, %$15] ; # Msg\n  %76 = phi i64 [%71, %$15] ; # Obj\n; # (goto 1)\n  br label %$-1\n$18:\n  %77 = phi i64 [%68, %$15] ; # Exe\n  %78 = phi i64 [%69, %$15] ; # X\n  %79 = phi i64 [%70, %$15] ; # Msg\n  %80 = phi i64 [%71, %$15] ; # Obj\n; # (dbFetch Exe Obj)\n  call void @dbFetch(i64 %77, i64 %80)\n  br label %$16\n$16:\n  %81 = phi i64 [%59, %$13], [%77, %$18] ; # Exe\n  %82 = phi i64 [%60, %$13], [%78, %$18] ; # X\n  %83 = phi i64 [%61, %$13], [%79, %$18] ; # Msg\n  %84 = phi i64 [%62, %$13], [%80, %$18] ; # Obj\n; # (set $Ret 0)\n  store i64 0, i64* @$Ret\n; # (if (method Obj Msg) (evMethod Obj (val $Ret) Msg @ (cdr X)) (: 1...\n; # (method Obj Msg)\n  %85 = call i64 @method(i64 %84, i64 %83)\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$19, label %$20\n$19:\n  %87 = phi i64 [%81, %$16] ; # Exe\n  %88 = phi i64 [%82, %$16] ; # X\n  %89 = phi i64 [%83, %$16] ; # Msg\n  %90 = phi i64 [%84, %$16] ; # Obj\n; # (val $Ret)\n  %91 = load i64, i64* @$Ret\n; # (cdr X)\n  %92 = inttoptr i64 %88 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  %94 = load i64, i64* %93\n; # (evMethod Obj (val $Ret) Msg @ (cdr X))\n  %95 = call i64 @evMethod(i64 %90, i64 %91, i64 %89, i64 %85, i64 %94)\n  br label %$21\n$20:\n  %96 = phi i64 [%81, %$16] ; # Exe\n  %97 = phi i64 [%82, %$16] ; # X\n  %98 = phi i64 [%83, %$16] ; # Msg\n  %99 = phi i64 [%84, %$16] ; # Obj\n; # (: 1 $Nil)\n  br label %$-1\n$-1:\n  %100 = phi i64 [%73, %$17], [%96, %$20] ; # Exe\n  %101 = phi i64 [%74, %$17], [%97, %$20] ; # X\n  %102 = phi i64 [%75, %$17], [%98, %$20] ; # Msg\n  %103 = phi i64 [%76, %$17], [%99, %$20] ; # Obj\n  br label %$21\n$21:\n  %104 = phi i64 [%87, %$19], [%100, %$-1] ; # Exe\n  %105 = phi i64 [%88, %$19], [%101, %$-1] ; # X\n  %106 = phi i64 [%89, %$19], [%102, %$-1] ; # Msg\n  %107 = phi i64 [%90, %$19], [%103, %$-1] ; # Obj\n  %108 = phi i64 [%95, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$-1] ; # ->\n  br label %$14\n$14:\n  %109 = phi i64 [%55, %$12], [%104, %$21] ; # Exe\n  %110 = phi i64 [%56, %$12], [%105, %$21] ; # X\n  %111 = phi i64 [%57, %$12], [%106, %$21] ; # Msg\n  %112 = phi i64 [%58, %$12], [%107, %$21] ; # Obj\n  %113 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%108, %$21] ; # ->\n; # (drop *Safe)\n  %114 = inttoptr i64 %24 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %117\n  ret i64 %113\n}\n\ndefine i64 @_Super(i64) align 8 {\n$1:\n; # (let (Lst (val (if (val $Typ) (car @) (val $This))) Key (val $Key...\n; # (if (val $Typ) (car @) (val $This))\n; # (val $Typ)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %2 = load i64, i64* %1\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Exe\n; # (car @)\n  %5 = inttoptr i64 %2 to i64*\n  %6 = load i64, i64* %5\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n; # (val $This)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %9 = load i64, i64* %8\n  br label %$4\n$4:\n  %10 = phi i64 [%4, %$2], [%7, %$3] ; # Exe\n  %11 = phi i64 [%6, %$2], [%9, %$3] ; # ->\n; # (val (if (val $Typ) (car @) (val $This)))\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n; # (val $Key)\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %15 = load i64, i64* %14\n; # (while (pair (car Lst)) (shift Lst))\n  br label %$5\n$5:\n  %16 = phi i64 [%10, %$4], [%23, %$6] ; # Exe\n  %17 = phi i64 [%13, %$4], [%28, %$6] ; # Lst\n  %18 = phi i64 [%15, %$4], [%25, %$6] ; # Key\n; # (car Lst)\n  %19 = inttoptr i64 %17 to i64*\n  %20 = load i64, i64* %19\n; # (pair (car Lst))\n  %21 = and i64 %20, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$6, label %$7\n$6:\n  %23 = phi i64 [%16, %$5] ; # Exe\n  %24 = phi i64 [%17, %$5] ; # Lst\n  %25 = phi i64 [%18, %$5] ; # Key\n; # (shift Lst)\n  %26 = inttoptr i64 %24 to i64*\n  %27 = getelementptr i64, i64* %26, i32 1\n  %28 = load i64, i64* %27\n  br label %$5\n$7:\n  %29 = phi i64 [%16, %$5] ; # Exe\n  %30 = phi i64 [%17, %$5] ; # Lst\n  %31 = phi i64 [%18, %$5] ; # Key\n; # (loop (when (atom Lst) (err Exe Key ($ \"Bad super\") null)) (? (me...\n  br label %$8\n$8:\n  %32 = phi i64 [%29, %$7], [%60, %$11] ; # Exe\n  %33 = phi i64 [%30, %$7], [%65, %$11] ; # Lst\n  %34 = phi i64 [%31, %$7], [%62, %$11] ; # Key\n; # (when (atom Lst) (err Exe Key ($ \"Bad super\") null))\n; # (atom Lst)\n  %35 = and i64 %33, 15\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$9, label %$10\n$9:\n  %37 = phi i64 [%32, %$8] ; # Exe\n  %38 = phi i64 [%33, %$8] ; # Lst\n  %39 = phi i64 [%34, %$8] ; # Key\n; # (err Exe Key ($ \"Bad super\") null)\n  call void @err(i64 %37, i64 %39, i8* bitcast ([10 x i8]* @$74 to i8*), i8* null)\n  unreachable\n$10:\n  %40 = phi i64 [%32, %$8] ; # Exe\n  %41 = phi i64 [%33, %$8] ; # Lst\n  %42 = phi i64 [%34, %$8] ; # Key\n; # (? (method (car (set $Ret Lst)) Key) (let (TypS (val $Typ) KeyS (...\n; # (set $Ret Lst)\n  store i64 %41, i64* @$Ret\n; # (car (set $Ret Lst))\n  %43 = inttoptr i64 %41 to i64*\n  %44 = load i64, i64* %43\n; # (method (car (set $Ret Lst)) Key)\n  %45 = call i64 @method(i64 %44, i64 %42)\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$13, label %$11\n$13:\n  %47 = phi i64 [%40, %$10] ; # Exe\n  %48 = phi i64 [%41, %$10] ; # Lst\n  %49 = phi i64 [%42, %$10] ; # Key\n; # (let (TypS (val $Typ) KeyS (val $Key)) (set $Typ (val $Ret) $Key ...\n; # (val $Typ)\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %51 = load i64, i64* %50\n; # (val $Key)\n  %52 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %53 = load i64, i64* %52\n; # (set $Typ (val $Ret) $Key Key)\n; # (val $Ret)\n  %54 = load i64, i64* @$Ret\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %54, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %49, i64* %56\n; # (prog1 (evExpr @ Exe) (set $Key KeyS $Typ TypS))\n; # (evExpr @ Exe)\n  %57 = call i64 @evExpr(i64 %45, i64 %47)\n; # (set $Key KeyS $Typ TypS)\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %53, i64* %58\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %51, i64* %59\n  br label %$12\n$11:\n  %60 = phi i64 [%40, %$10] ; # Exe\n  %61 = phi i64 [%41, %$10] ; # Lst\n  %62 = phi i64 [%42, %$10] ; # Key\n; # (shift Lst)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  %65 = load i64, i64* %64\n  br label %$8\n$12:\n  %66 = phi i64 [%47, %$13] ; # Exe\n  %67 = phi i64 [%48, %$13] ; # Lst\n  %68 = phi i64 [%49, %$13] ; # Key\n  %69 = phi i64 [%57, %$13] ; # ->\n  ret i64 %69\n}\n\ndefine i64 @extra(i64, i64) align 8 {\n$1:\n; # (let Lst (val Obj) (while (pair (car Lst)) (shift Lst)) (loop (? ...\n; # (val Obj)\n  %2 = inttoptr i64 %0 to i64*\n  %3 = load i64, i64* %2\n; # (while (pair (car Lst)) (shift Lst))\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%11, %$3] ; # Obj\n  %5 = phi i64 [%1, %$1], [%12, %$3] ; # Key\n  %6 = phi i64 [%3, %$1], [%16, %$3] ; # Lst\n; # (car Lst)\n  %7 = inttoptr i64 %6 to i64*\n  %8 = load i64, i64* %7\n; # (pair (car Lst))\n  %9 = and i64 %8, 15\n  %10 = icmp eq i64 %9, 0\n  br i1 %10, label %$3, label %$4\n$3:\n  %11 = phi i64 [%4, %$2] ; # Obj\n  %12 = phi i64 [%5, %$2] ; # Key\n  %13 = phi i64 [%6, %$2] ; # Lst\n; # (shift Lst)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n  br label %$2\n$4:\n  %17 = phi i64 [%4, %$2] ; # Obj\n  %18 = phi i64 [%5, %$2] ; # Key\n  %19 = phi i64 [%6, %$2] ; # Lst\n; # (loop (? (atom Lst) 1) (? (== Lst (val $Typ)) (loop (? (atom (shi...\n  br label %$5\n$5:\n  %20 = phi i64 [%17, %$4], [%115, %$21] ; # Obj\n  %21 = phi i64 [%18, %$4], [%116, %$21] ; # Key\n  %22 = phi i64 [%19, %$4], [%120, %$21] ; # Lst\n; # (? (atom Lst) 1)\n; # (atom Lst)\n  %23 = and i64 %22, 15\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$8, label %$6\n$8:\n  %25 = phi i64 [%20, %$5] ; # Obj\n  %26 = phi i64 [%21, %$5] ; # Key\n  %27 = phi i64 [%22, %$5] ; # Lst\n  br label %$7\n$6:\n  %28 = phi i64 [%20, %$5] ; # Obj\n  %29 = phi i64 [%21, %$5] ; # Key\n  %30 = phi i64 [%22, %$5] ; # Lst\n; # (? (== Lst (val $Typ)) (loop (? (atom (shift Lst)) 0) (? (method ...\n; # (val $Typ)\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %32 = load i64, i64* %31\n; # (== Lst (val $Typ))\n  %33 = icmp eq i64 %30, %32\n  br i1 %33, label %$10, label %$9\n$10:\n  %34 = phi i64 [%28, %$6] ; # Obj\n  %35 = phi i64 [%29, %$6] ; # Key\n  %36 = phi i64 [%30, %$6] ; # Lst\n; # (loop (? (atom (shift Lst)) 0) (? (method (car (set $Ret Lst)) Ke...\n  br label %$11\n$11:\n  %37 = phi i64 [%34, %$10], [%58, %$15] ; # Obj\n  %38 = phi i64 [%35, %$10], [%59, %$15] ; # Key\n  %39 = phi i64 [%36, %$10], [%60, %$15] ; # Lst\n; # (? (atom (shift Lst)) 0)\n; # (shift Lst)\n  %40 = inttoptr i64 %39 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (atom (shift Lst))\n  %43 = and i64 %42, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$14, label %$12\n$14:\n  %45 = phi i64 [%37, %$11] ; # Obj\n  %46 = phi i64 [%38, %$11] ; # Key\n  %47 = phi i64 [%42, %$11] ; # Lst\n  br label %$13\n$12:\n  %48 = phi i64 [%37, %$11] ; # Obj\n  %49 = phi i64 [%38, %$11] ; # Key\n  %50 = phi i64 [%42, %$11] ; # Lst\n; # (? (method (car (set $Ret Lst)) Key) @)\n; # (set $Ret Lst)\n  store i64 %50, i64* @$Ret\n; # (car (set $Ret Lst))\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n; # (method (car (set $Ret Lst)) Key)\n  %53 = call i64 @method(i64 %52, i64 %49)\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$16, label %$15\n$16:\n  %55 = phi i64 [%48, %$12] ; # Obj\n  %56 = phi i64 [%49, %$12] ; # Key\n  %57 = phi i64 [%50, %$12] ; # Lst\n  br label %$13\n$15:\n  %58 = phi i64 [%48, %$12] ; # Obj\n  %59 = phi i64 [%49, %$12] ; # Key\n  %60 = phi i64 [%50, %$12] ; # Lst\n  br label %$11\n$13:\n  %61 = phi i64 [%45, %$14], [%55, %$16] ; # Obj\n  %62 = phi i64 [%46, %$14], [%56, %$16] ; # Key\n  %63 = phi i64 [%47, %$14], [%57, %$16] ; # Lst\n  %64 = phi i64 [0, %$14], [%53, %$16] ; # ->\n  br label %$7\n$9:\n  %65 = phi i64 [%28, %$6] ; # Obj\n  %66 = phi i64 [%29, %$6] ; # Key\n  %67 = phi i64 [%30, %$6] ; # Lst\n; # (stkChk 0)\n  %68 = load i8*, i8** @$StkLimit\n  %69 = call i8* @llvm.stacksave()\n  %70 = icmp ugt i8* %68, %69\n  br i1 %70, label %$17, label %$18\n$17:\n  %71 = phi i64 [0, %$9] ; # Exe\n  call void @stkErr(i64 %71)\n  unreachable\n$18:\n  %72 = phi i64 [0, %$9] ; # Exe\n; # (? (> (extra (car Lst) Key) 1) @)\n; # (car Lst)\n  %73 = inttoptr i64 %67 to i64*\n  %74 = load i64, i64* %73\n; # (extra (car Lst) Key)\n  %75 = call i64 @extra(i64 %74, i64 %66)\n; # (> (extra (car Lst) Key) 1)\n  %76 = icmp ugt i64 %75, 1\n  br i1 %76, label %$20, label %$19\n$20:\n  %77 = phi i64 [%65, %$18] ; # Obj\n  %78 = phi i64 [%66, %$18] ; # Key\n  %79 = phi i64 [%67, %$18] ; # Lst\n  br label %$7\n$19:\n  %80 = phi i64 [%65, %$18] ; # Obj\n  %81 = phi i64 [%66, %$18] ; # Key\n  %82 = phi i64 [%67, %$18] ; # Lst\n; # (? (=0 @) (loop (? (atom (shift Lst)) 0) (? (method (car (set $Re...\n; # (=0 @)\n  %83 = icmp eq i64 %75, 0\n  br i1 %83, label %$22, label %$21\n$22:\n  %84 = phi i64 [%80, %$19] ; # Obj\n  %85 = phi i64 [%81, %$19] ; # Key\n  %86 = phi i64 [%82, %$19] ; # Lst\n; # (loop (? (atom (shift Lst)) 0) (? (method (car (set $Ret Lst)) Ke...\n  br label %$23\n$23:\n  %87 = phi i64 [%84, %$22], [%108, %$27] ; # Obj\n  %88 = phi i64 [%85, %$22], [%109, %$27] ; # Key\n  %89 = phi i64 [%86, %$22], [%110, %$27] ; # Lst\n; # (? (atom (shift Lst)) 0)\n; # (shift Lst)\n  %90 = inttoptr i64 %89 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (atom (shift Lst))\n  %93 = and i64 %92, 15\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$26, label %$24\n$26:\n  %95 = phi i64 [%87, %$23] ; # Obj\n  %96 = phi i64 [%88, %$23] ; # Key\n  %97 = phi i64 [%92, %$23] ; # Lst\n  br label %$25\n$24:\n  %98 = phi i64 [%87, %$23] ; # Obj\n  %99 = phi i64 [%88, %$23] ; # Key\n  %100 = phi i64 [%92, %$23] ; # Lst\n; # (? (method (car (set $Ret Lst)) Key) @)\n; # (set $Ret Lst)\n  store i64 %100, i64* @$Ret\n; # (car (set $Ret Lst))\n  %101 = inttoptr i64 %100 to i64*\n  %102 = load i64, i64* %101\n; # (method (car (set $Ret Lst)) Key)\n  %103 = call i64 @method(i64 %102, i64 %99)\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$28, label %$27\n$28:\n  %105 = phi i64 [%98, %$24] ; # Obj\n  %106 = phi i64 [%99, %$24] ; # Key\n  %107 = phi i64 [%100, %$24] ; # Lst\n  br label %$25\n$27:\n  %108 = phi i64 [%98, %$24] ; # Obj\n  %109 = phi i64 [%99, %$24] ; # Key\n  %110 = phi i64 [%100, %$24] ; # Lst\n  br label %$23\n$25:\n  %111 = phi i64 [%95, %$26], [%105, %$28] ; # Obj\n  %112 = phi i64 [%96, %$26], [%106, %$28] ; # Key\n  %113 = phi i64 [%97, %$26], [%107, %$28] ; # Lst\n  %114 = phi i64 [0, %$26], [%103, %$28] ; # ->\n  br label %$7\n$21:\n  %115 = phi i64 [%80, %$19] ; # Obj\n  %116 = phi i64 [%81, %$19] ; # Key\n  %117 = phi i64 [%82, %$19] ; # Lst\n; # (shift Lst)\n  %118 = inttoptr i64 %117 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n  br label %$5\n$7:\n  %121 = phi i64 [%25, %$8], [%61, %$13], [%77, %$20], [%111, %$25] ; # Obj\n  %122 = phi i64 [%26, %$8], [%62, %$13], [%78, %$20], [%112, %$25] ; # Key\n  %123 = phi i64 [%27, %$8], [%63, %$13], [%79, %$20], [%113, %$25] ; # Lst\n  %124 = phi i64 [1, %$8], [%64, %$13], [%75, %$20], [%114, %$25] ; # ->\n  ret i64 %124\n}\n\ndefine i64 @_Extra(i64) align 8 {\n$1:\n; # (let Key (val $Key) (unless (> (extra (val $This) Key) 1) (err Ex...\n; # (val $Key)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (unless (> (extra (val $This) Key) 1) (err Exe Key ($ \"Bad extra\"...\n; # (val $This)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (extra (val $This) Key)\n  %5 = call i64 @extra(i64 %4, i64 %2)\n; # (> (extra (val $This) Key) 1)\n  %6 = icmp ugt i64 %5, 1\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%2, %$1] ; # Key\n; # (err Exe Key ($ \"Bad extra\") null)\n  call void @err(i64 %7, i64 %8, i8* bitcast ([10 x i8]* @$75 to i8*), i8* null)\n  unreachable\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%2, %$1] ; # Key\n; # (let (TypS (val $Typ) KeyS (val $Key)) (set $Typ (val $Ret) $Key ...\n; # (val $Typ)\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  %12 = load i64, i64* %11\n; # (val $Key)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  %14 = load i64, i64* %13\n; # (set $Typ (val $Ret) $Key Key)\n; # (val $Ret)\n  %15 = load i64, i64* @$Ret\n  %16 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %15, i64* %16\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %10, i64* %17\n; # (prog1 (evExpr @ Exe) (set $Key KeyS $Typ TypS))\n; # (evExpr @ Exe)\n  %18 = call i64 @evExpr(i64 %5, i64 %9)\n; # (set $Key KeyS $Typ TypS)\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 144) to i64) to i64*\n  store i64 %14, i64* %19\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 136) to i64) to i64*\n  store i64 %12, i64* %20\n  ret i64 %18\n}\n\ndefine i64 @_And(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (car X)) (? (nil? Y) Y) (set ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (car X)) (? (nil? Y) Y) (set $At Y) (? (atom (...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%37, %$11] ; # Exe\n  %5 = phi i64 [%3, %$1], [%38, %$11] ; # X\n; # (let Y (eval (car X)) (? (nil? Y) Y) (set $At Y) (? (atom (shift ...\n; # (car X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (eval (car X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$2] ; # X\n  br label %$3\n$4:\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$6\n$7:\n  %14 = phi i64 [%11, %$4] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$3\n$6:\n  %17 = phi i64 [%11, %$4] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$3\n$3:\n  %19 = phi i64 [%10, %$5], [%14, %$7], [%17, %$6] ; # X\n  %20 = phi i64 [%10, %$5], [%16, %$7], [%18, %$6] ; # ->\n; # (? (nil? Y) Y)\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$10, label %$8\n$10:\n  %22 = phi i64 [%4, %$3] ; # Exe\n  %23 = phi i64 [%5, %$3] ; # X\n  %24 = phi i64 [%20, %$3] ; # Y\n  br label %$9\n$8:\n  %25 = phi i64 [%4, %$3] ; # Exe\n  %26 = phi i64 [%5, %$3] ; # X\n  %27 = phi i64 [%20, %$3] ; # Y\n; # (set $At Y)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %27, i64* %28\n; # (? (atom (shift X)) Y)\n; # (shift X)\n  %29 = inttoptr i64 %26 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n; # (atom (shift X))\n  %32 = and i64 %31, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%25, %$8] ; # Exe\n  %35 = phi i64 [%31, %$8] ; # X\n  %36 = phi i64 [%27, %$8] ; # Y\n  br label %$9\n$11:\n  %37 = phi i64 [%25, %$8] ; # Exe\n  %38 = phi i64 [%31, %$8] ; # X\n  %39 = phi i64 [%27, %$8] ; # Y\n  br label %$2\n$9:\n  %40 = phi i64 [%22, %$10], [%34, %$12] ; # Exe\n  %41 = phi i64 [%23, %$10], [%35, %$12] ; # X\n  %42 = phi i64 [%24, %$10], [%36, %$12] ; # ->\n  ret i64 %42\n}\n\ndefine i64 @_Or(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (car X)) (? (not (nil? Y)) (s...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (car X)) (? (not (nil? Y)) (set $At Y)) (? (at...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%38, %$11] ; # Exe\n  %5 = phi i64 [%3, %$1], [%39, %$11] ; # X\n; # (let Y (eval (car X)) (? (not (nil? Y)) (set $At Y)) (? (atom (sh...\n; # (car X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (eval (car X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$2] ; # X\n  br label %$3\n$4:\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$6\n$7:\n  %14 = phi i64 [%11, %$4] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$3\n$6:\n  %17 = phi i64 [%11, %$4] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$3\n$3:\n  %19 = phi i64 [%10, %$5], [%14, %$7], [%17, %$6] ; # X\n  %20 = phi i64 [%10, %$5], [%16, %$7], [%18, %$6] ; # ->\n; # (? (not (nil? Y)) (set $At Y))\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Y))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$10, label %$8\n$10:\n  %23 = phi i64 [%4, %$3] ; # Exe\n  %24 = phi i64 [%5, %$3] ; # X\n  %25 = phi i64 [%20, %$3] ; # Y\n; # (set $At Y)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %25, i64* %26\n  br label %$9\n$8:\n  %27 = phi i64 [%4, %$3] ; # Exe\n  %28 = phi i64 [%5, %$3] ; # X\n  %29 = phi i64 [%20, %$3] ; # Y\n; # (? (atom (shift X)) Y)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%27, %$8] ; # Exe\n  %36 = phi i64 [%32, %$8] ; # X\n  %37 = phi i64 [%29, %$8] ; # Y\n  br label %$9\n$11:\n  %38 = phi i64 [%27, %$8] ; # Exe\n  %39 = phi i64 [%32, %$8] ; # X\n  %40 = phi i64 [%29, %$8] ; # Y\n  br label %$2\n$9:\n  %41 = phi i64 [%23, %$10], [%35, %$12] ; # Exe\n  %42 = phi i64 [%24, %$10], [%36, %$12] ; # X\n  %43 = phi i64 [%25, %$10], [%37, %$12] ; # ->\n  ret i64 %43\n}\n\ndefine i64 @_Nand(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (car X)) (? (nil? Y) $T) (set...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (car X)) (? (nil? Y) $T) (set $At Y) (? (atom ...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%37, %$11] ; # Exe\n  %5 = phi i64 [%3, %$1], [%38, %$11] ; # X\n; # (let Y (eval (car X)) (? (nil? Y) $T) (set $At Y) (? (atom (shift...\n; # (car X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (eval (car X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$2] ; # X\n  br label %$3\n$4:\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$6\n$7:\n  %14 = phi i64 [%11, %$4] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$3\n$6:\n  %17 = phi i64 [%11, %$4] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$3\n$3:\n  %19 = phi i64 [%10, %$5], [%14, %$7], [%17, %$6] ; # X\n  %20 = phi i64 [%10, %$5], [%16, %$7], [%18, %$6] ; # ->\n; # (? (nil? Y) $T)\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$10, label %$8\n$10:\n  %22 = phi i64 [%4, %$3] ; # Exe\n  %23 = phi i64 [%5, %$3] ; # X\n  %24 = phi i64 [%20, %$3] ; # Y\n  br label %$9\n$8:\n  %25 = phi i64 [%4, %$3] ; # Exe\n  %26 = phi i64 [%5, %$3] ; # X\n  %27 = phi i64 [%20, %$3] ; # Y\n; # (set $At Y)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %27, i64* %28\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %29 = inttoptr i64 %26 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n; # (atom (shift X))\n  %32 = and i64 %31, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$12, label %$11\n$12:\n  %34 = phi i64 [%25, %$8] ; # Exe\n  %35 = phi i64 [%31, %$8] ; # X\n  %36 = phi i64 [%27, %$8] ; # Y\n  br label %$9\n$11:\n  %37 = phi i64 [%25, %$8] ; # Exe\n  %38 = phi i64 [%31, %$8] ; # X\n  %39 = phi i64 [%27, %$8] ; # Y\n  br label %$2\n$9:\n  %40 = phi i64 [%22, %$10], [%34, %$12] ; # Exe\n  %41 = phi i64 [%23, %$10], [%35, %$12] ; # X\n  %42 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # ->\n  ret i64 %42\n}\n\ndefine i64 @_Nor(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (car X)) (? (not (nil? Y)) (s...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (car X)) (? (not (nil? Y)) (set $At Y) $Nil) (...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%38, %$11] ; # Exe\n  %5 = phi i64 [%3, %$1], [%39, %$11] ; # X\n; # (let Y (eval (car X)) (? (not (nil? Y)) (set $At Y) $Nil) (? (ato...\n; # (car X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (eval (car X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$2] ; # X\n  br label %$3\n$4:\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$6\n$7:\n  %14 = phi i64 [%11, %$4] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$3\n$6:\n  %17 = phi i64 [%11, %$4] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$3\n$3:\n  %19 = phi i64 [%10, %$5], [%14, %$7], [%17, %$6] ; # X\n  %20 = phi i64 [%10, %$5], [%16, %$7], [%18, %$6] ; # ->\n; # (? (not (nil? Y)) (set $At Y) $Nil)\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Y))\n  %22 = icmp eq i1 %21, 0\n  br i1 %22, label %$10, label %$8\n$10:\n  %23 = phi i64 [%4, %$3] ; # Exe\n  %24 = phi i64 [%5, %$3] ; # X\n  %25 = phi i64 [%20, %$3] ; # Y\n; # (set $At Y)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %25, i64* %26\n  br label %$9\n$8:\n  %27 = phi i64 [%4, %$3] ; # Exe\n  %28 = phi i64 [%5, %$3] ; # X\n  %29 = phi i64 [%20, %$3] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%27, %$8] ; # Exe\n  %36 = phi i64 [%32, %$8] ; # X\n  %37 = phi i64 [%29, %$8] ; # Y\n  br label %$9\n$11:\n  %38 = phi i64 [%27, %$8] ; # Exe\n  %39 = phi i64 [%32, %$8] ; # X\n  %40 = phi i64 [%29, %$8] ; # Y\n  br label %$2\n$9:\n  %41 = phi i64 [%23, %$10], [%35, %$12] ; # Exe\n  %42 = phi i64 [%24, %$10], [%36, %$12] ; # X\n  %43 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$12] ; # ->\n  ret i64 %43\n}\n\ndefine i64 @_Xor(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (if (nil? (eval (car X)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (if (nil? (eval (car X))) @ $T) (if (nil...\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (if (nil? (eval (car X))) @ $T)\n; # (car X)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n; # (eval (car X))\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%25, %$7] ; # X\n  br label %$10\n$11:\n  %29 = phi i64 [%25, %$7] ; # X\n  %30 = and i64 %29, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$14, label %$13\n$14:\n  %32 = phi i64 [%29, %$11] ; # X\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  br label %$10\n$13:\n  %35 = phi i64 [%29, %$11] ; # X\n  %36 = call i64 @evList(i64 %35)\n  br label %$10\n$10:\n  %37 = phi i64 [%28, %$12], [%32, %$14], [%35, %$13] ; # X\n  %38 = phi i64 [%28, %$12], [%34, %$14], [%36, %$13] ; # ->\n; # (nil? (eval (car X)))\n  %39 = icmp eq i64 %38, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %39, label %$15, label %$16\n$15:\n  %40 = phi i64 [%22, %$10] ; # Exe\n  %41 = phi i64 [%23, %$10] ; # X\n  br label %$17\n$16:\n  %42 = phi i64 [%22, %$10] ; # Exe\n  %43 = phi i64 [%23, %$10] ; # X\n  br label %$17\n$17:\n  %44 = phi i64 [%40, %$15], [%42, %$16] ; # Exe\n  %45 = phi i64 [%41, %$15], [%43, %$16] ; # X\n  %46 = phi i64 [%38, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$16] ; # ->\n  br label %$9\n$8:\n  %47 = phi i64 [%0, %$2] ; # Exe\n  %48 = phi i64 [%6, %$2] ; # X\n; # (if (nil? (eval (car X))) $T $Nil)\n; # (car X)\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n; # (eval (car X))\n  %51 = and i64 %50, 6\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$20, label %$19\n$20:\n  %53 = phi i64 [%50, %$8] ; # X\n  br label %$18\n$19:\n  %54 = phi i64 [%50, %$8] ; # X\n  %55 = and i64 %54, 8\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$22, label %$21\n$22:\n  %57 = phi i64 [%54, %$19] ; # X\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$18\n$21:\n  %60 = phi i64 [%54, %$19] ; # X\n  %61 = call i64 @evList(i64 %60)\n  br label %$18\n$18:\n  %62 = phi i64 [%53, %$20], [%57, %$22], [%60, %$21] ; # X\n  %63 = phi i64 [%53, %$20], [%59, %$22], [%61, %$21] ; # ->\n; # (nil? (eval (car X)))\n  %64 = icmp eq i64 %63, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %64, label %$23, label %$24\n$23:\n  %65 = phi i64 [%47, %$18] ; # Exe\n  %66 = phi i64 [%48, %$18] ; # X\n  br label %$25\n$24:\n  %67 = phi i64 [%47, %$18] ; # Exe\n  %68 = phi i64 [%48, %$18] ; # X\n  br label %$25\n$25:\n  %69 = phi i64 [%65, %$23], [%67, %$24] ; # Exe\n  %70 = phi i64 [%66, %$23], [%68, %$24] ; # X\n  %71 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$23], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$24] ; # ->\n  br label %$9\n$9:\n  %72 = phi i64 [%44, %$17], [%69, %$25] ; # Exe\n  %73 = phi i64 [%45, %$17], [%70, %$25] ; # X\n  %74 = phi i64 [%46, %$17], [%71, %$25] ; # ->\n  ret i64 %74\n}\n\ndefine i64 @_Bool(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) @ $T)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_Not(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) $T (set $At @) $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n; # (set $At @)\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %18, i64* %22\n  br label %$9\n$9:\n  %23 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %24 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_Nil(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (exec (cdr Exe))\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%16, %$5] ; # Prg\n  %5 = inttoptr i64 %4 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = load i64, i64* %5\n  %9 = and i64 %8, 15\n  %10 = icmp eq i64 %9, 0\n  br i1 %10, label %$3, label %$4\n$3:\n  %11 = phi i64 [%7, %$2] ; # Prg\n  %12 = call i64 @evList(i64 %8)\n  br label %$4\n$4:\n  %13 = phi i64 [%7, %$2], [%11, %$3] ; # Prg\n  %14 = and i64 %13, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$5:\n  %16 = phi i64 [%13, %$4] ; # Prg\n  br label %$2\n$6:\n  %17 = phi i64 [%13, %$4] ; # Prg\n  %18 = phi i64 [0, %$4] ; # ->\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_T(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (exec (cdr Exe))\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%16, %$5] ; # Prg\n  %5 = inttoptr i64 %4 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = load i64, i64* %5\n  %9 = and i64 %8, 15\n  %10 = icmp eq i64 %9, 0\n  br i1 %10, label %$3, label %$4\n$3:\n  %11 = phi i64 [%7, %$2] ; # Prg\n  %12 = call i64 @evList(i64 %8)\n  br label %$4\n$4:\n  %13 = phi i64 [%7, %$2], [%11, %$3] ; # Prg\n  %14 = and i64 %13, 15\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$5:\n  %16 = phi i64 [%13, %$4] ; # Prg\n  br label %$2\n$6:\n  %17 = phi i64 [%13, %$4] ; # Prg\n  %18 = phi i64 [0, %$4] ; # ->\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n}\n\ndefine i64 @_Prog(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (run (cdr Exe))\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%34, %$11] ; # Prg\n  %5 = inttoptr i64 %4 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n  %8 = load i64, i64* %5\n  %9 = and i64 %7, 15\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$5, label %$3\n$5:\n  %11 = phi i64 [%7, %$2] ; # Prg\n  %12 = phi i64 [%8, %$2] ; # X\n  %13 = and i64 %12, 6\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$8, label %$7\n$8:\n  %15 = phi i64 [%12, %$5] ; # X\n  br label %$6\n$7:\n  %16 = phi i64 [%12, %$5] ; # X\n  %17 = and i64 %16, 8\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$10, label %$9\n$10:\n  %19 = phi i64 [%16, %$7] ; # X\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n  br label %$6\n$9:\n  %22 = phi i64 [%16, %$7] ; # X\n  %23 = call i64 @evList(i64 %22)\n  br label %$6\n$6:\n  %24 = phi i64 [%15, %$8], [%19, %$10], [%22, %$9] ; # X\n  %25 = phi i64 [%15, %$8], [%21, %$10], [%23, %$9] ; # ->\n  br label %$4\n$3:\n  %26 = phi i64 [%7, %$2] ; # Prg\n  %27 = phi i64 [%8, %$2] ; # X\n  %28 = and i64 %27, 15\n  %29 = icmp eq i64 %28, 0\n  br i1 %29, label %$12, label %$11\n$12:\n  %30 = phi i64 [%26, %$3] ; # Prg\n  %31 = phi i64 [%27, %$3] ; # X\n  %32 = call i64 @evList(i64 %31)\n  %33 = icmp ne i64 %32, 0\n  br label %$11\n$11:\n  %34 = phi i64 [%26, %$3], [%30, %$12] ; # Prg\n  %35 = phi i64 [%27, %$3], [%31, %$12] ; # X\n  %36 = phi i1 [0, %$3], [%33, %$12] ; # ->\n  br label %$2\n$4:\n  %37 = phi i64 [%11, %$6] ; # Prg\n  %38 = phi i64 [%25, %$6] ; # ->\n  ret i64 %38\n}\n\ndefine i64 @_Prog1(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (prog1 (set $At (save (eval (++ X)))) (exec X)))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (prog1 (set $At (save (eval (++ X)))) (exec X))\n; # (set $At (save (eval (++ X))))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n  %29 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %29\n; # (exec X)\n  br label %$7\n$7:\n  %30 = phi i64 [%6, %$2], [%42, %$10] ; # Prg\n  %31 = inttoptr i64 %30 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = load i64, i64* %31\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$8, label %$9\n$8:\n  %37 = phi i64 [%33, %$7] ; # Prg\n  %38 = call i64 @evList(i64 %34)\n  br label %$9\n$9:\n  %39 = phi i64 [%33, %$7], [%37, %$8] ; # Prg\n  %40 = and i64 %39, 15\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$11, label %$10\n$10:\n  %42 = phi i64 [%39, %$9] ; # Prg\n  br label %$7\n$11:\n  %43 = phi i64 [%39, %$9] ; # Prg\n  %44 = phi i64 [0, %$9] ; # ->\n; # (drop *Safe)\n  %45 = inttoptr i64 %24 to i64*\n  %46 = getelementptr i64, i64* %45, i32 1\n  %47 = load i64, i64* %46\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %48\n  ret i64 %20\n}\n\ndefine i64 @_Prog2(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (prog2 (eval (++ X)) (set $At (save (eval (++ X)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (prog2 (eval (++ X)) (set $At (save (eval (++ X)))) (exec X))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (set $At (save (eval (++ X))))\n; # (++ X)\n  %21 = inttoptr i64 %6 to i64*\n  %22 = getelementptr i64, i64* %21, i32 1\n  %23 = load i64, i64* %22\n  %24 = load i64, i64* %21\n; # (eval (++ X))\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$9, label %$8\n$9:\n  %27 = phi i64 [%24, %$2] ; # X\n  br label %$7\n$8:\n  %28 = phi i64 [%24, %$2] ; # X\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%28, %$8] ; # X\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n  br label %$7\n$10:\n  %34 = phi i64 [%28, %$8] ; # X\n  %35 = call i64 @evList(i64 %34)\n  br label %$7\n$7:\n  %36 = phi i64 [%27, %$9], [%31, %$11], [%34, %$10] ; # X\n  %37 = phi i64 [%27, %$9], [%33, %$11], [%35, %$10] ; # ->\n; # (save (eval (++ X)))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %37, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %37, i64* %46\n; # (exec X)\n  br label %$12\n$12:\n  %47 = phi i64 [%23, %$7], [%59, %$15] ; # Prg\n  %48 = inttoptr i64 %47 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n  %51 = load i64, i64* %48\n  %52 = and i64 %51, 15\n  %53 = icmp eq i64 %52, 0\n  br i1 %53, label %$13, label %$14\n$13:\n  %54 = phi i64 [%50, %$12] ; # Prg\n  %55 = call i64 @evList(i64 %51)\n  br label %$14\n$14:\n  %56 = phi i64 [%50, %$12], [%54, %$13] ; # Prg\n  %57 = and i64 %56, 15\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$16, label %$15\n$15:\n  %59 = phi i64 [%56, %$14] ; # Prg\n  br label %$12\n$16:\n  %60 = phi i64 [%56, %$14] ; # Prg\n  %61 = phi i64 [0, %$14] ; # ->\n; # (drop *Safe)\n  %62 = inttoptr i64 %41 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %64, i64* %65\n  ret i64 %37\n}\n\ndefine i64 @_If(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (run (cdr X)) (set $At ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (run (cdr X)) (set $At @) (eval (car X))...\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (cdr X)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n; # (run (cdr X))\n  br label %$10\n$10:\n  %27 = phi i64 [%26, %$7], [%57, %$19] ; # Prg\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  %31 = load i64, i64* %28\n  %32 = and i64 %30, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$13, label %$11\n$13:\n  %34 = phi i64 [%30, %$10] ; # Prg\n  %35 = phi i64 [%31, %$10] ; # X\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$16, label %$15\n$16:\n  %38 = phi i64 [%35, %$13] ; # X\n  br label %$14\n$15:\n  %39 = phi i64 [%35, %$13] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$18, label %$17\n$18:\n  %42 = phi i64 [%39, %$15] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$14\n$17:\n  %45 = phi i64 [%39, %$15] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$14\n$14:\n  %47 = phi i64 [%38, %$16], [%42, %$18], [%45, %$17] ; # X\n  %48 = phi i64 [%38, %$16], [%44, %$18], [%46, %$17] ; # ->\n  br label %$12\n$11:\n  %49 = phi i64 [%30, %$10] ; # Prg\n  %50 = phi i64 [%31, %$10] ; # X\n  %51 = and i64 %50, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$20, label %$19\n$20:\n  %53 = phi i64 [%49, %$11] ; # Prg\n  %54 = phi i64 [%50, %$11] ; # X\n  %55 = call i64 @evList(i64 %54)\n  %56 = icmp ne i64 %55, 0\n  br label %$19\n$19:\n  %57 = phi i64 [%49, %$11], [%53, %$20] ; # Prg\n  %58 = phi i64 [%50, %$11], [%54, %$20] ; # X\n  %59 = phi i1 [0, %$11], [%56, %$20] ; # ->\n  br label %$10\n$12:\n  %60 = phi i64 [%34, %$14] ; # Prg\n  %61 = phi i64 [%48, %$14] ; # ->\n  br label %$9\n$8:\n  %62 = phi i64 [%0, %$2] ; # Exe\n  %63 = phi i64 [%6, %$2] ; # X\n; # (set $At @)\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %64\n; # (car X)\n  %65 = inttoptr i64 %63 to i64*\n  %66 = load i64, i64* %65\n; # (eval (car X))\n  %67 = and i64 %66, 6\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$23, label %$22\n$23:\n  %69 = phi i64 [%66, %$8] ; # X\n  br label %$21\n$22:\n  %70 = phi i64 [%66, %$8] ; # X\n  %71 = and i64 %70, 8\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$25, label %$24\n$25:\n  %73 = phi i64 [%70, %$22] ; # X\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n  br label %$21\n$24:\n  %76 = phi i64 [%70, %$22] ; # X\n  %77 = call i64 @evList(i64 %76)\n  br label %$21\n$21:\n  %78 = phi i64 [%69, %$23], [%73, %$25], [%76, %$24] ; # X\n  %79 = phi i64 [%69, %$23], [%75, %$25], [%77, %$24] ; # ->\n  br label %$9\n$9:\n  %80 = phi i64 [%22, %$12], [%62, %$21] ; # Exe\n  %81 = phi i64 [%23, %$12], [%63, %$21] ; # X\n  %82 = phi i64 [%61, %$12], [%79, %$21] ; # ->\n  ret i64 %82\n}\n\ndefine i64 @_Ifn(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (eval (car X)) (set $At...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (eval (car X)) (set $At @) (run (cdr X))...\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (car X)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n; # (eval (car X))\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%25, %$7] ; # X\n  br label %$10\n$11:\n  %29 = phi i64 [%25, %$7] ; # X\n  %30 = and i64 %29, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$14, label %$13\n$14:\n  %32 = phi i64 [%29, %$11] ; # X\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  br label %$10\n$13:\n  %35 = phi i64 [%29, %$11] ; # X\n  %36 = call i64 @evList(i64 %35)\n  br label %$10\n$10:\n  %37 = phi i64 [%28, %$12], [%32, %$14], [%35, %$13] ; # X\n  %38 = phi i64 [%28, %$12], [%34, %$14], [%36, %$13] ; # ->\n  br label %$9\n$8:\n  %39 = phi i64 [%0, %$2] ; # Exe\n  %40 = phi i64 [%6, %$2] ; # X\n; # (set $At @)\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %41\n; # (cdr X)\n  %42 = inttoptr i64 %40 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n; # (run (cdr X))\n  br label %$15\n$15:\n  %45 = phi i64 [%44, %$8], [%75, %$24] ; # Prg\n  %46 = inttoptr i64 %45 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  %49 = load i64, i64* %46\n  %50 = and i64 %48, 15\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$18, label %$16\n$18:\n  %52 = phi i64 [%48, %$15] ; # Prg\n  %53 = phi i64 [%49, %$15] ; # X\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$21, label %$20\n$21:\n  %56 = phi i64 [%53, %$18] ; # X\n  br label %$19\n$20:\n  %57 = phi i64 [%53, %$18] ; # X\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$23, label %$22\n$23:\n  %60 = phi i64 [%57, %$20] ; # X\n  %61 = inttoptr i64 %60 to i64*\n  %62 = load i64, i64* %61\n  br label %$19\n$22:\n  %63 = phi i64 [%57, %$20] ; # X\n  %64 = call i64 @evList(i64 %63)\n  br label %$19\n$19:\n  %65 = phi i64 [%56, %$21], [%60, %$23], [%63, %$22] ; # X\n  %66 = phi i64 [%56, %$21], [%62, %$23], [%64, %$22] ; # ->\n  br label %$17\n$16:\n  %67 = phi i64 [%48, %$15] ; # Prg\n  %68 = phi i64 [%49, %$15] ; # X\n  %69 = and i64 %68, 15\n  %70 = icmp eq i64 %69, 0\n  br i1 %70, label %$25, label %$24\n$25:\n  %71 = phi i64 [%67, %$16] ; # Prg\n  %72 = phi i64 [%68, %$16] ; # X\n  %73 = call i64 @evList(i64 %72)\n  %74 = icmp ne i64 %73, 0\n  br label %$24\n$24:\n  %75 = phi i64 [%67, %$16], [%71, %$25] ; # Prg\n  %76 = phi i64 [%68, %$16], [%72, %$25] ; # X\n  %77 = phi i1 [0, %$16], [%74, %$25] ; # ->\n  br label %$15\n$17:\n  %78 = phi i64 [%52, %$19] ; # Prg\n  %79 = phi i64 [%66, %$19] ; # ->\n  br label %$9\n$9:\n  %80 = phi i64 [%22, %$10], [%39, %$17] ; # Exe\n  %81 = phi i64 [%23, %$10], [%40, %$17] ; # X\n  %82 = phi i64 [%38, %$10], [%79, %$17] ; # ->\n  ret i64 %82\n}\n\ndefine i64 @_If2(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (if (nil? (eval (++ X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (if (nil? (eval (++ X))) (run (cdr (cddr...\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (if (nil? (eval (++ X))) (run (cdr (cddr X))) (set $At @) (eval (...\n; # (++ X)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  %27 = load i64, i64* %24\n; # (eval (++ X))\n  %28 = and i64 %27, 6\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$12, label %$11\n$12:\n  %30 = phi i64 [%27, %$7] ; # X\n  br label %$10\n$11:\n  %31 = phi i64 [%27, %$7] ; # X\n  %32 = and i64 %31, 8\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$14, label %$13\n$14:\n  %34 = phi i64 [%31, %$11] ; # X\n  %35 = inttoptr i64 %34 to i64*\n  %36 = load i64, i64* %35\n  br label %$10\n$13:\n  %37 = phi i64 [%31, %$11] ; # X\n  %38 = call i64 @evList(i64 %37)\n  br label %$10\n$10:\n  %39 = phi i64 [%30, %$12], [%34, %$14], [%37, %$13] ; # X\n  %40 = phi i64 [%30, %$12], [%36, %$14], [%38, %$13] ; # ->\n; # (nil? (eval (++ X)))\n  %41 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %41, label %$15, label %$16\n$15:\n  %42 = phi i64 [%22, %$10] ; # Exe\n  %43 = phi i64 [%26, %$10] ; # X\n; # (cddr X)\n  %44 = inttoptr i64 %43 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n  %47 = inttoptr i64 %46 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n; # (cdr (cddr X))\n  %50 = inttoptr i64 %49 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  %52 = load i64, i64* %51\n; # (run (cdr (cddr X)))\n  br label %$18\n$18:\n  %53 = phi i64 [%52, %$15], [%83, %$27] ; # Prg\n  %54 = inttoptr i64 %53 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = load i64, i64* %54\n  %58 = and i64 %56, 15\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$21, label %$19\n$21:\n  %60 = phi i64 [%56, %$18] ; # Prg\n  %61 = phi i64 [%57, %$18] ; # X\n  %62 = and i64 %61, 6\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$24, label %$23\n$24:\n  %64 = phi i64 [%61, %$21] ; # X\n  br label %$22\n$23:\n  %65 = phi i64 [%61, %$21] ; # X\n  %66 = and i64 %65, 8\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$26, label %$25\n$26:\n  %68 = phi i64 [%65, %$23] ; # X\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n  br label %$22\n$25:\n  %71 = phi i64 [%65, %$23] ; # X\n  %72 = call i64 @evList(i64 %71)\n  br label %$22\n$22:\n  %73 = phi i64 [%64, %$24], [%68, %$26], [%71, %$25] ; # X\n  %74 = phi i64 [%64, %$24], [%70, %$26], [%72, %$25] ; # ->\n  br label %$20\n$19:\n  %75 = phi i64 [%56, %$18] ; # Prg\n  %76 = phi i64 [%57, %$18] ; # X\n  %77 = and i64 %76, 15\n  %78 = icmp eq i64 %77, 0\n  br i1 %78, label %$28, label %$27\n$28:\n  %79 = phi i64 [%75, %$19] ; # Prg\n  %80 = phi i64 [%76, %$19] ; # X\n  %81 = call i64 @evList(i64 %80)\n  %82 = icmp ne i64 %81, 0\n  br label %$27\n$27:\n  %83 = phi i64 [%75, %$19], [%79, %$28] ; # Prg\n  %84 = phi i64 [%76, %$19], [%80, %$28] ; # X\n  %85 = phi i1 [0, %$19], [%82, %$28] ; # ->\n  br label %$18\n$20:\n  %86 = phi i64 [%60, %$22] ; # Prg\n  %87 = phi i64 [%74, %$22] ; # ->\n  br label %$17\n$16:\n  %88 = phi i64 [%22, %$10] ; # Exe\n  %89 = phi i64 [%26, %$10] ; # X\n; # (set $At @)\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %40, i64* %90\n; # (cddr X)\n  %91 = inttoptr i64 %89 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n  %94 = inttoptr i64 %93 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n; # (car (cddr X))\n  %97 = inttoptr i64 %96 to i64*\n  %98 = load i64, i64* %97\n; # (eval (car (cddr X)))\n  %99 = and i64 %98, 6\n  %100 = icmp ne i64 %99, 0\n  br i1 %100, label %$31, label %$30\n$31:\n  %101 = phi i64 [%98, %$16] ; # X\n  br label %$29\n$30:\n  %102 = phi i64 [%98, %$16] ; # X\n  %103 = and i64 %102, 8\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$33, label %$32\n$33:\n  %105 = phi i64 [%102, %$30] ; # X\n  %106 = inttoptr i64 %105 to i64*\n  %107 = load i64, i64* %106\n  br label %$29\n$32:\n  %108 = phi i64 [%102, %$30] ; # X\n  %109 = call i64 @evList(i64 %108)\n  br label %$29\n$29:\n  %110 = phi i64 [%101, %$31], [%105, %$33], [%108, %$32] ; # X\n  %111 = phi i64 [%101, %$31], [%107, %$33], [%109, %$32] ; # ->\n  br label %$17\n$17:\n  %112 = phi i64 [%42, %$20], [%88, %$29] ; # Exe\n  %113 = phi i64 [%43, %$20], [%89, %$29] ; # X\n  %114 = phi i64 [%87, %$20], [%111, %$29] ; # ->\n  br label %$9\n$8:\n  %115 = phi i64 [%0, %$2] ; # Exe\n  %116 = phi i64 [%6, %$2] ; # X\n; # (set $At @)\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %117\n; # (if (nil? (eval (++ X))) (eval (cadr X)) (set $At @) (eval (car X...\n; # (++ X)\n  %118 = inttoptr i64 %116 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n  %121 = load i64, i64* %118\n; # (eval (++ X))\n  %122 = and i64 %121, 6\n  %123 = icmp ne i64 %122, 0\n  br i1 %123, label %$36, label %$35\n$36:\n  %124 = phi i64 [%121, %$8] ; # X\n  br label %$34\n$35:\n  %125 = phi i64 [%121, %$8] ; # X\n  %126 = and i64 %125, 8\n  %127 = icmp ne i64 %126, 0\n  br i1 %127, label %$38, label %$37\n$38:\n  %128 = phi i64 [%125, %$35] ; # X\n  %129 = inttoptr i64 %128 to i64*\n  %130 = load i64, i64* %129\n  br label %$34\n$37:\n  %131 = phi i64 [%125, %$35] ; # X\n  %132 = call i64 @evList(i64 %131)\n  br label %$34\n$34:\n  %133 = phi i64 [%124, %$36], [%128, %$38], [%131, %$37] ; # X\n  %134 = phi i64 [%124, %$36], [%130, %$38], [%132, %$37] ; # ->\n; # (nil? (eval (++ X)))\n  %135 = icmp eq i64 %134, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %135, label %$39, label %$40\n$39:\n  %136 = phi i64 [%115, %$34] ; # Exe\n  %137 = phi i64 [%120, %$34] ; # X\n; # (cadr X)\n  %138 = inttoptr i64 %137 to i64*\n  %139 = getelementptr i64, i64* %138, i32 1\n  %140 = load i64, i64* %139\n  %141 = inttoptr i64 %140 to i64*\n  %142 = load i64, i64* %141\n; # (eval (cadr X))\n  %143 = and i64 %142, 6\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$44, label %$43\n$44:\n  %145 = phi i64 [%142, %$39] ; # X\n  br label %$42\n$43:\n  %146 = phi i64 [%142, %$39] ; # X\n  %147 = and i64 %146, 8\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$46, label %$45\n$46:\n  %149 = phi i64 [%146, %$43] ; # X\n  %150 = inttoptr i64 %149 to i64*\n  %151 = load i64, i64* %150\n  br label %$42\n$45:\n  %152 = phi i64 [%146, %$43] ; # X\n  %153 = call i64 @evList(i64 %152)\n  br label %$42\n$42:\n  %154 = phi i64 [%145, %$44], [%149, %$46], [%152, %$45] ; # X\n  %155 = phi i64 [%145, %$44], [%151, %$46], [%153, %$45] ; # ->\n  br label %$41\n$40:\n  %156 = phi i64 [%115, %$34] ; # Exe\n  %157 = phi i64 [%120, %$34] ; # X\n; # (set $At @)\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %134, i64* %158\n; # (car X)\n  %159 = inttoptr i64 %157 to i64*\n  %160 = load i64, i64* %159\n; # (eval (car X))\n  %161 = and i64 %160, 6\n  %162 = icmp ne i64 %161, 0\n  br i1 %162, label %$49, label %$48\n$49:\n  %163 = phi i64 [%160, %$40] ; # X\n  br label %$47\n$48:\n  %164 = phi i64 [%160, %$40] ; # X\n  %165 = and i64 %164, 8\n  %166 = icmp ne i64 %165, 0\n  br i1 %166, label %$51, label %$50\n$51:\n  %167 = phi i64 [%164, %$48] ; # X\n  %168 = inttoptr i64 %167 to i64*\n  %169 = load i64, i64* %168\n  br label %$47\n$50:\n  %170 = phi i64 [%164, %$48] ; # X\n  %171 = call i64 @evList(i64 %170)\n  br label %$47\n$47:\n  %172 = phi i64 [%163, %$49], [%167, %$51], [%170, %$50] ; # X\n  %173 = phi i64 [%163, %$49], [%169, %$51], [%171, %$50] ; # ->\n  br label %$41\n$41:\n  %174 = phi i64 [%136, %$42], [%156, %$47] ; # Exe\n  %175 = phi i64 [%137, %$42], [%157, %$47] ; # X\n  %176 = phi i64 [%155, %$42], [%173, %$47] ; # ->\n  br label %$9\n$9:\n  %177 = phi i64 [%112, %$17], [%174, %$41] ; # Exe\n  %178 = phi i64 [%113, %$17], [%175, %$41] ; # X\n  %179 = phi i64 [%114, %$17], [%176, %$41] ; # ->\n  ret i64 %179\n}\n\ndefine i64 @_IfAt2(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (set $At (eval (++ X))) (if (nil? (val $At2)) (r...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (set $At (eval (++ X)))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %21\n; # (if (nil? (val $At2)) (run (cdr X)) (eval (car X)))\n; # (val $At2)\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  %23 = load i64, i64* %22\n; # (nil? (val $At2))\n  %24 = icmp eq i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %24, label %$7, label %$8\n$7:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n; # (cdr X)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (run (cdr X))\n  br label %$10\n$10:\n  %30 = phi i64 [%29, %$7], [%60, %$19] ; # Prg\n  %31 = inttoptr i64 %30 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = load i64, i64* %31\n  %35 = and i64 %33, 15\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$13, label %$11\n$13:\n  %37 = phi i64 [%33, %$10] ; # Prg\n  %38 = phi i64 [%34, %$10] ; # X\n  %39 = and i64 %38, 6\n  %40 = icmp ne i64 %39, 0\n  br i1 %40, label %$16, label %$15\n$16:\n  %41 = phi i64 [%38, %$13] ; # X\n  br label %$14\n$15:\n  %42 = phi i64 [%38, %$13] ; # X\n  %43 = and i64 %42, 8\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$18, label %$17\n$18:\n  %45 = phi i64 [%42, %$15] ; # X\n  %46 = inttoptr i64 %45 to i64*\n  %47 = load i64, i64* %46\n  br label %$14\n$17:\n  %48 = phi i64 [%42, %$15] ; # X\n  %49 = call i64 @evList(i64 %48)\n  br label %$14\n$14:\n  %50 = phi i64 [%41, %$16], [%45, %$18], [%48, %$17] ; # X\n  %51 = phi i64 [%41, %$16], [%47, %$18], [%49, %$17] ; # ->\n  br label %$12\n$11:\n  %52 = phi i64 [%33, %$10] ; # Prg\n  %53 = phi i64 [%34, %$10] ; # X\n  %54 = and i64 %53, 15\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$20, label %$19\n$20:\n  %56 = phi i64 [%52, %$11] ; # Prg\n  %57 = phi i64 [%53, %$11] ; # X\n  %58 = call i64 @evList(i64 %57)\n  %59 = icmp ne i64 %58, 0\n  br label %$19\n$19:\n  %60 = phi i64 [%52, %$11], [%56, %$20] ; # Prg\n  %61 = phi i64 [%53, %$11], [%57, %$20] ; # X\n  %62 = phi i1 [0, %$11], [%59, %$20] ; # ->\n  br label %$10\n$12:\n  %63 = phi i64 [%37, %$14] ; # Prg\n  %64 = phi i64 [%51, %$14] ; # ->\n  br label %$9\n$8:\n  %65 = phi i64 [%0, %$2] ; # Exe\n  %66 = phi i64 [%6, %$2] ; # X\n; # (car X)\n  %67 = inttoptr i64 %66 to i64*\n  %68 = load i64, i64* %67\n; # (eval (car X))\n  %69 = and i64 %68, 6\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$23, label %$22\n$23:\n  %71 = phi i64 [%68, %$8] ; # X\n  br label %$21\n$22:\n  %72 = phi i64 [%68, %$8] ; # X\n  %73 = and i64 %72, 8\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$25, label %$24\n$25:\n  %75 = phi i64 [%72, %$22] ; # X\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n  br label %$21\n$24:\n  %78 = phi i64 [%72, %$22] ; # X\n  %79 = call i64 @evList(i64 %78)\n  br label %$21\n$21:\n  %80 = phi i64 [%71, %$23], [%75, %$25], [%78, %$24] ; # X\n  %81 = phi i64 [%71, %$23], [%77, %$25], [%79, %$24] ; # ->\n  br label %$9\n$9:\n  %82 = phi i64 [%25, %$12], [%65, %$21] ; # Exe\n  %83 = phi i64 [%26, %$12], [%66, %$21] ; # X\n  %84 = phi i64 [%64, %$12], [%81, %$21] ; # ->\n  ret i64 %84\n}\n\ndefine i64 @_When(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) @ (set $At @) (run X)))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) @ (set $At @) (run X))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  br label %$9\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%6, %$2] ; # X\n; # (set $At @)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %26\n; # (run X)\n  br label %$10\n$10:\n  %27 = phi i64 [%25, %$8], [%57, %$19] ; # Prg\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  %31 = load i64, i64* %28\n  %32 = and i64 %30, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$13, label %$11\n$13:\n  %34 = phi i64 [%30, %$10] ; # Prg\n  %35 = phi i64 [%31, %$10] ; # X\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$16, label %$15\n$16:\n  %38 = phi i64 [%35, %$13] ; # X\n  br label %$14\n$15:\n  %39 = phi i64 [%35, %$13] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$18, label %$17\n$18:\n  %42 = phi i64 [%39, %$15] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$14\n$17:\n  %45 = phi i64 [%39, %$15] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$14\n$14:\n  %47 = phi i64 [%38, %$16], [%42, %$18], [%45, %$17] ; # X\n  %48 = phi i64 [%38, %$16], [%44, %$18], [%46, %$17] ; # ->\n  br label %$12\n$11:\n  %49 = phi i64 [%30, %$10] ; # Prg\n  %50 = phi i64 [%31, %$10] ; # X\n  %51 = and i64 %50, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$20, label %$19\n$20:\n  %53 = phi i64 [%49, %$11] ; # Prg\n  %54 = phi i64 [%50, %$11] ; # X\n  %55 = call i64 @evList(i64 %54)\n  %56 = icmp ne i64 %55, 0\n  br label %$19\n$19:\n  %57 = phi i64 [%49, %$11], [%53, %$20] ; # Prg\n  %58 = phi i64 [%50, %$11], [%54, %$20] ; # X\n  %59 = phi i1 [0, %$11], [%56, %$20] ; # ->\n  br label %$10\n$12:\n  %60 = phi i64 [%34, %$14] ; # Prg\n  %61 = phi i64 [%48, %$14] ; # ->\n  br label %$9\n$9:\n  %62 = phi i64 [%22, %$7], [%24, %$12] ; # Exe\n  %63 = phi i64 [%23, %$7], [%25, %$12] ; # X\n  %64 = phi i64 [%20, %$7], [%61, %$12] ; # ->\n  ret i64 %64\n}\n\ndefine i64 @_Unless(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (run X) (set $At @) $Ni...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (run X) (set $At @) $Nil)\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (run X)\n  br label %$10\n$10:\n  %24 = phi i64 [%23, %$7], [%54, %$19] ; # Prg\n  %25 = inttoptr i64 %24 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n  %28 = load i64, i64* %25\n  %29 = and i64 %27, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$13, label %$11\n$13:\n  %31 = phi i64 [%27, %$10] ; # Prg\n  %32 = phi i64 [%28, %$10] ; # X\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$16, label %$15\n$16:\n  %35 = phi i64 [%32, %$13] ; # X\n  br label %$14\n$15:\n  %36 = phi i64 [%32, %$13] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$18, label %$17\n$18:\n  %39 = phi i64 [%36, %$15] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$14\n$17:\n  %42 = phi i64 [%36, %$15] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$14\n$14:\n  %44 = phi i64 [%35, %$16], [%39, %$18], [%42, %$17] ; # X\n  %45 = phi i64 [%35, %$16], [%41, %$18], [%43, %$17] ; # ->\n  br label %$12\n$11:\n  %46 = phi i64 [%27, %$10] ; # Prg\n  %47 = phi i64 [%28, %$10] ; # X\n  %48 = and i64 %47, 15\n  %49 = icmp eq i64 %48, 0\n  br i1 %49, label %$20, label %$19\n$20:\n  %50 = phi i64 [%46, %$11] ; # Prg\n  %51 = phi i64 [%47, %$11] ; # X\n  %52 = call i64 @evList(i64 %51)\n  %53 = icmp ne i64 %52, 0\n  br label %$19\n$19:\n  %54 = phi i64 [%46, %$11], [%50, %$20] ; # Prg\n  %55 = phi i64 [%47, %$11], [%51, %$20] ; # X\n  %56 = phi i1 [0, %$11], [%53, %$20] ; # ->\n  br label %$10\n$12:\n  %57 = phi i64 [%31, %$14] ; # Prg\n  %58 = phi i64 [%45, %$14] ; # ->\n  br label %$9\n$8:\n  %59 = phi i64 [%0, %$2] ; # Exe\n  %60 = phi i64 [%6, %$2] ; # X\n; # (set $At @)\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %20, i64* %61\n  br label %$9\n$9:\n  %62 = phi i64 [%22, %$12], [%59, %$8] ; # Exe\n  %63 = phi i64 [%23, %$12], [%60, %$8] ; # X\n  %64 = phi i64 [%58, %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %64\n}\n\ndefine i64 @_Cond(i64) align 8 {\n$1:\n; # (let X Exe (loop (? (atom (shift X)) $Nil) (let Y (car X) (? (not...\n; # (loop (? (atom (shift X)) $Nil) (let Y (car X) (? (not (nil? (eva...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%73, %$11] ; # Exe\n  %2 = phi i64 [%0, %$1], [%74, %$11] ; # X\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = getelementptr i64, i64* %3, i32 1\n  %5 = load i64, i64* %4\n; # (atom (shift X))\n  %6 = and i64 %5, 15\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$3\n$5:\n  %8 = phi i64 [%1, %$2] ; # Exe\n  %9 = phi i64 [%5, %$2] ; # X\n  br label %$4\n$3:\n  %10 = phi i64 [%1, %$2] ; # Exe\n  %11 = phi i64 [%5, %$2] ; # X\n; # (let Y (car X) (? (not (nil? (eval (car Y)))) (set $At @) (run (c...\n; # (car X)\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n; # (? (not (nil? (eval (car Y)))) (set $At @) (run (cdr Y)))\n; # (car Y)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (eval (car Y))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$8, label %$7\n$8:\n  %18 = phi i64 [%15, %$3] ; # X\n  br label %$6\n$7:\n  %19 = phi i64 [%15, %$3] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$10, label %$9\n$10:\n  %22 = phi i64 [%19, %$7] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$6\n$9:\n  %25 = phi i64 [%19, %$7] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$6\n$6:\n  %27 = phi i64 [%18, %$8], [%22, %$10], [%25, %$9] ; # X\n  %28 = phi i64 [%18, %$8], [%24, %$10], [%26, %$9] ; # ->\n; # (nil? (eval (car Y)))\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (eval (car Y))))\n  %30 = icmp eq i1 %29, 0\n  br i1 %30, label %$12, label %$11\n$12:\n  %31 = phi i64 [%10, %$6] ; # Exe\n  %32 = phi i64 [%11, %$6] ; # X\n  %33 = phi i64 [%13, %$6] ; # Y\n; # (set $At @)\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %28, i64* %34\n; # (cdr Y)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n; # (run (cdr Y))\n  br label %$13\n$13:\n  %38 = phi i64 [%37, %$12], [%68, %$22] ; # Prg\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = load i64, i64* %39\n  %43 = and i64 %41, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$16, label %$14\n$16:\n  %45 = phi i64 [%41, %$13] ; # Prg\n  %46 = phi i64 [%42, %$13] ; # X\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$19, label %$18\n$19:\n  %49 = phi i64 [%46, %$16] ; # X\n  br label %$17\n$18:\n  %50 = phi i64 [%46, %$16] ; # X\n  %51 = and i64 %50, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$21, label %$20\n$21:\n  %53 = phi i64 [%50, %$18] ; # X\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  br label %$17\n$20:\n  %56 = phi i64 [%50, %$18] ; # X\n  %57 = call i64 @evList(i64 %56)\n  br label %$17\n$17:\n  %58 = phi i64 [%49, %$19], [%53, %$21], [%56, %$20] ; # X\n  %59 = phi i64 [%49, %$19], [%55, %$21], [%57, %$20] ; # ->\n  br label %$15\n$14:\n  %60 = phi i64 [%41, %$13] ; # Prg\n  %61 = phi i64 [%42, %$13] ; # X\n  %62 = and i64 %61, 15\n  %63 = icmp eq i64 %62, 0\n  br i1 %63, label %$23, label %$22\n$23:\n  %64 = phi i64 [%60, %$14] ; # Prg\n  %65 = phi i64 [%61, %$14] ; # X\n  %66 = call i64 @evList(i64 %65)\n  %67 = icmp ne i64 %66, 0\n  br label %$22\n$22:\n  %68 = phi i64 [%60, %$14], [%64, %$23] ; # Prg\n  %69 = phi i64 [%61, %$14], [%65, %$23] ; # X\n  %70 = phi i1 [0, %$14], [%67, %$23] ; # ->\n  br label %$13\n$15:\n  %71 = phi i64 [%45, %$17] ; # Prg\n  %72 = phi i64 [%59, %$17] ; # ->\n  br label %$4\n$11:\n  %73 = phi i64 [%10, %$6] ; # Exe\n  %74 = phi i64 [%11, %$6] ; # X\n  %75 = phi i64 [%13, %$6] ; # Y\n  br label %$2\n$4:\n  %76 = phi i64 [%8, %$5], [%31, %$15] ; # Exe\n  %77 = phi i64 [%9, %$5], [%32, %$15] ; # X\n  %78 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%72, %$15] ; # ->\n  ret i64 %78\n}\n\ndefine i64 @_Nond(i64) align 8 {\n$1:\n; # (let X Exe (loop (? (atom (shift X)) $Nil) (let Y (car X) (? (nil...\n; # (loop (? (atom (shift X)) $Nil) (let Y (car X) (? (nil? (eval (ca...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%71, %$11] ; # Exe\n  %2 = phi i64 [%0, %$1], [%72, %$11] ; # X\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = getelementptr i64, i64* %3, i32 1\n  %5 = load i64, i64* %4\n; # (atom (shift X))\n  %6 = and i64 %5, 15\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$3\n$5:\n  %8 = phi i64 [%1, %$2] ; # Exe\n  %9 = phi i64 [%5, %$2] ; # X\n  br label %$4\n$3:\n  %10 = phi i64 [%1, %$2] ; # Exe\n  %11 = phi i64 [%5, %$2] ; # X\n; # (let Y (car X) (? (nil? (eval (car Y))) (run (cdr Y))))\n; # (car X)\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n; # (? (nil? (eval (car Y))) (run (cdr Y)))\n; # (car Y)\n  %14 = inttoptr i64 %13 to i64*\n  %15 = load i64, i64* %14\n; # (eval (car Y))\n  %16 = and i64 %15, 6\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$8, label %$7\n$8:\n  %18 = phi i64 [%15, %$3] ; # X\n  br label %$6\n$7:\n  %19 = phi i64 [%15, %$3] ; # X\n  %20 = and i64 %19, 8\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$10, label %$9\n$10:\n  %22 = phi i64 [%19, %$7] ; # X\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n  br label %$6\n$9:\n  %25 = phi i64 [%19, %$7] ; # X\n  %26 = call i64 @evList(i64 %25)\n  br label %$6\n$6:\n  %27 = phi i64 [%18, %$8], [%22, %$10], [%25, %$9] ; # X\n  %28 = phi i64 [%18, %$8], [%24, %$10], [%26, %$9] ; # ->\n; # (nil? (eval (car Y)))\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %29, label %$12, label %$11\n$12:\n  %30 = phi i64 [%10, %$6] ; # Exe\n  %31 = phi i64 [%11, %$6] ; # X\n  %32 = phi i64 [%13, %$6] ; # Y\n; # (cdr Y)\n  %33 = inttoptr i64 %32 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (run (cdr Y))\n  br label %$13\n$13:\n  %36 = phi i64 [%35, %$12], [%66, %$22] ; # Prg\n  %37 = inttoptr i64 %36 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = load i64, i64* %37\n  %41 = and i64 %39, 15\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$16, label %$14\n$16:\n  %43 = phi i64 [%39, %$13] ; # Prg\n  %44 = phi i64 [%40, %$13] ; # X\n  %45 = and i64 %44, 6\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$19, label %$18\n$19:\n  %47 = phi i64 [%44, %$16] ; # X\n  br label %$17\n$18:\n  %48 = phi i64 [%44, %$16] ; # X\n  %49 = and i64 %48, 8\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$21, label %$20\n$21:\n  %51 = phi i64 [%48, %$18] ; # X\n  %52 = inttoptr i64 %51 to i64*\n  %53 = load i64, i64* %52\n  br label %$17\n$20:\n  %54 = phi i64 [%48, %$18] ; # X\n  %55 = call i64 @evList(i64 %54)\n  br label %$17\n$17:\n  %56 = phi i64 [%47, %$19], [%51, %$21], [%54, %$20] ; # X\n  %57 = phi i64 [%47, %$19], [%53, %$21], [%55, %$20] ; # ->\n  br label %$15\n$14:\n  %58 = phi i64 [%39, %$13] ; # Prg\n  %59 = phi i64 [%40, %$13] ; # X\n  %60 = and i64 %59, 15\n  %61 = icmp eq i64 %60, 0\n  br i1 %61, label %$23, label %$22\n$23:\n  %62 = phi i64 [%58, %$14] ; # Prg\n  %63 = phi i64 [%59, %$14] ; # X\n  %64 = call i64 @evList(i64 %63)\n  %65 = icmp ne i64 %64, 0\n  br label %$22\n$22:\n  %66 = phi i64 [%58, %$14], [%62, %$23] ; # Prg\n  %67 = phi i64 [%59, %$14], [%63, %$23] ; # X\n  %68 = phi i1 [0, %$14], [%65, %$23] ; # ->\n  br label %$13\n$15:\n  %69 = phi i64 [%43, %$17] ; # Prg\n  %70 = phi i64 [%57, %$17] ; # ->\n  br label %$4\n$11:\n  %71 = phi i64 [%10, %$6] ; # Exe\n  %72 = phi i64 [%11, %$6] ; # X\n  %73 = phi i64 [%13, %$6] ; # Y\n; # (set $At @)\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %28, i64* %74\n  br label %$2\n$4:\n  %75 = phi i64 [%8, %$5], [%30, %$15] ; # Exe\n  %76 = phi i64 [%9, %$5], [%31, %$15] ; # X\n  %77 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%70, %$15] ; # ->\n  ret i64 %77\n}\n\ndefine i64 @_Case(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) A (set $At (eval (car X)))) (loop (? (atom (shi...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (set $At (eval (car X)))\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %18, i64* %19\n; # (loop (? (atom (shift X)) $Nil) (let (Y (car X) Z (car Y)) (? (or...\n  br label %$7\n$7:\n  %20 = phi i64 [%0, %$2], [%133, %$22] ; # Exe\n  %21 = phi i64 [%3, %$2], [%134, %$22] ; # X\n  %22 = phi i64 [%18, %$2], [%135, %$22] ; # A\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %23 = inttoptr i64 %21 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n; # (atom (shift X))\n  %26 = and i64 %25, 15\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$10, label %$8\n$10:\n  %28 = phi i64 [%20, %$7] ; # Exe\n  %29 = phi i64 [%25, %$7] ; # X\n  %30 = phi i64 [%22, %$7] ; # A\n  br label %$9\n$8:\n  %31 = phi i64 [%20, %$7] ; # Exe\n  %32 = phi i64 [%25, %$7] ; # X\n  %33 = phi i64 [%22, %$7] ; # A\n; # (let (Y (car X) Z (car Y)) (? (or (t? Z) (if (atom Z) (equal Z A)...\n; # (car X)\n  %34 = inttoptr i64 %32 to i64*\n  %35 = load i64, i64* %34\n; # (car Y)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (? (or (t? Z) (if (atom Z) (equal Z A) (member A Z))) (run (cdr Y...\n; # (or (t? Z) (if (atom Z) (equal Z A) (member A Z)))\n; # (t? Z)\n  %38 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %38, label %$11, label %$12\n$12:\n  %39 = phi i64 [%31, %$8] ; # Exe\n  %40 = phi i64 [%32, %$8] ; # X\n  %41 = phi i64 [%33, %$8] ; # A\n  %42 = phi i64 [%35, %$8] ; # Y\n  %43 = phi i64 [%37, %$8] ; # Z\n; # (if (atom Z) (equal Z A) (member A Z))\n; # (atom Z)\n  %44 = and i64 %43, 15\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$13, label %$14\n$13:\n  %46 = phi i64 [%39, %$12] ; # Exe\n  %47 = phi i64 [%40, %$12] ; # X\n  %48 = phi i64 [%41, %$12] ; # A\n  %49 = phi i64 [%42, %$12] ; # Y\n  %50 = phi i64 [%43, %$12] ; # Z\n; # (equal Z A)\n  %51 = call i1 @equal(i64 %50, i64 %48)\n  br label %$15\n$14:\n  %52 = phi i64 [%39, %$12] ; # Exe\n  %53 = phi i64 [%40, %$12] ; # X\n  %54 = phi i64 [%41, %$12] ; # A\n  %55 = phi i64 [%42, %$12] ; # Y\n  %56 = phi i64 [%43, %$12] ; # Z\n; # (member A Z)\n  br label %$16\n$16:\n  %57 = phi i64 [%56, %$14], [%74, %$20] ; # L\n  %58 = phi i64 [%54, %$14], [%71, %$20] ; # X\n  %59 = and i64 %57, 15\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$19, label %$17\n$19:\n  %61 = phi i64 [%57, %$16] ; # L\n  %62 = phi i64 [%58, %$16] ; # X\n  br label %$18\n$17:\n  %63 = phi i64 [%57, %$16] ; # L\n  %64 = phi i64 [%58, %$16] ; # X\n  %65 = inttoptr i64 %63 to i64*\n  %66 = load i64, i64* %65\n  %67 = call i1 @equal(i64 %64, i64 %66)\n  br i1 %67, label %$21, label %$20\n$21:\n  %68 = phi i64 [%63, %$17] ; # L\n  %69 = phi i64 [%64, %$17] ; # X\n  br label %$18\n$20:\n  %70 = phi i64 [%63, %$17] ; # L\n  %71 = phi i64 [%64, %$17] ; # X\n  %72 = inttoptr i64 %70 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  %74 = load i64, i64* %73\n  br label %$16\n$18:\n  %75 = phi i64 [%61, %$19], [%68, %$21] ; # L\n  %76 = phi i64 [%62, %$19], [%69, %$21] ; # X\n  %77 = phi i1 [0, %$19], [1, %$21] ; # ->\n  br label %$15\n$15:\n  %78 = phi i64 [%46, %$13], [%52, %$18] ; # Exe\n  %79 = phi i64 [%47, %$13], [%53, %$18] ; # X\n  %80 = phi i64 [%48, %$13], [%54, %$18] ; # A\n  %81 = phi i64 [%49, %$13], [%55, %$18] ; # Y\n  %82 = phi i64 [%50, %$13], [%56, %$18] ; # Z\n  %83 = phi i1 [%51, %$13], [%77, %$18] ; # ->\n  br label %$11\n$11:\n  %84 = phi i64 [%31, %$8], [%78, %$15] ; # Exe\n  %85 = phi i64 [%32, %$8], [%79, %$15] ; # X\n  %86 = phi i64 [%33, %$8], [%80, %$15] ; # A\n  %87 = phi i64 [%35, %$8], [%81, %$15] ; # Y\n  %88 = phi i64 [%37, %$8], [%82, %$15] ; # Z\n  %89 = phi i1 [1, %$8], [%83, %$15] ; # ->\n  br i1 %89, label %$23, label %$22\n$23:\n  %90 = phi i64 [%84, %$11] ; # Exe\n  %91 = phi i64 [%85, %$11] ; # X\n  %92 = phi i64 [%86, %$11] ; # A\n  %93 = phi i64 [%87, %$11] ; # Y\n  %94 = phi i64 [%88, %$11] ; # Z\n; # (cdr Y)\n  %95 = inttoptr i64 %93 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  %97 = load i64, i64* %96\n; # (run (cdr Y))\n  br label %$24\n$24:\n  %98 = phi i64 [%97, %$23], [%128, %$33] ; # Prg\n  %99 = inttoptr i64 %98 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  %102 = load i64, i64* %99\n  %103 = and i64 %101, 15\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$27, label %$25\n$27:\n  %105 = phi i64 [%101, %$24] ; # Prg\n  %106 = phi i64 [%102, %$24] ; # X\n  %107 = and i64 %106, 6\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$30, label %$29\n$30:\n  %109 = phi i64 [%106, %$27] ; # X\n  br label %$28\n$29:\n  %110 = phi i64 [%106, %$27] ; # X\n  %111 = and i64 %110, 8\n  %112 = icmp ne i64 %111, 0\n  br i1 %112, label %$32, label %$31\n$32:\n  %113 = phi i64 [%110, %$29] ; # X\n  %114 = inttoptr i64 %113 to i64*\n  %115 = load i64, i64* %114\n  br label %$28\n$31:\n  %116 = phi i64 [%110, %$29] ; # X\n  %117 = call i64 @evList(i64 %116)\n  br label %$28\n$28:\n  %118 = phi i64 [%109, %$30], [%113, %$32], [%116, %$31] ; # X\n  %119 = phi i64 [%109, %$30], [%115, %$32], [%117, %$31] ; # ->\n  br label %$26\n$25:\n  %120 = phi i64 [%101, %$24] ; # Prg\n  %121 = phi i64 [%102, %$24] ; # X\n  %122 = and i64 %121, 15\n  %123 = icmp eq i64 %122, 0\n  br i1 %123, label %$34, label %$33\n$34:\n  %124 = phi i64 [%120, %$25] ; # Prg\n  %125 = phi i64 [%121, %$25] ; # X\n  %126 = call i64 @evList(i64 %125)\n  %127 = icmp ne i64 %126, 0\n  br label %$33\n$33:\n  %128 = phi i64 [%120, %$25], [%124, %$34] ; # Prg\n  %129 = phi i64 [%121, %$25], [%125, %$34] ; # X\n  %130 = phi i1 [0, %$25], [%127, %$34] ; # ->\n  br label %$24\n$26:\n  %131 = phi i64 [%105, %$28] ; # Prg\n  %132 = phi i64 [%119, %$28] ; # ->\n  br label %$9\n$22:\n  %133 = phi i64 [%84, %$11] ; # Exe\n  %134 = phi i64 [%85, %$11] ; # X\n  %135 = phi i64 [%86, %$11] ; # A\n  %136 = phi i64 [%87, %$11] ; # Y\n  %137 = phi i64 [%88, %$11] ; # Z\n  br label %$7\n$9:\n  %138 = phi i64 [%28, %$10], [%90, %$26] ; # Exe\n  %139 = phi i64 [%29, %$10], [%91, %$26] ; # X\n  %140 = phi i64 [%30, %$10], [%92, %$26] ; # A\n  %141 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [%132, %$26] ; # ->\n  ret i64 %141\n}\n\ndefine i64 @_Casq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) A (set $At (eval (car X)))) (loop (? (atom (shi...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (set $At (eval (car X)))\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %18, i64* %19\n; # (loop (? (atom (shift X)) $Nil) (let (Y (car X) Z (car Y)) (? (or...\n  br label %$7\n$7:\n  %20 = phi i64 [%0, %$2], [%120, %$20] ; # Exe\n  %21 = phi i64 [%3, %$2], [%121, %$20] ; # X\n  %22 = phi i64 [%18, %$2], [%122, %$20] ; # A\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %23 = inttoptr i64 %21 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n; # (atom (shift X))\n  %26 = and i64 %25, 15\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$10, label %$8\n$10:\n  %28 = phi i64 [%20, %$7] ; # Exe\n  %29 = phi i64 [%25, %$7] ; # X\n  %30 = phi i64 [%22, %$7] ; # A\n  br label %$9\n$8:\n  %31 = phi i64 [%20, %$7] ; # Exe\n  %32 = phi i64 [%25, %$7] ; # X\n  %33 = phi i64 [%22, %$7] ; # A\n; # (let (Y (car X) Z (car Y)) (? (or (t? Z) (== Z A) (memq A Z)) (ru...\n; # (car X)\n  %34 = inttoptr i64 %32 to i64*\n  %35 = load i64, i64* %34\n; # (car Y)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (? (or (t? Z) (== Z A) (memq A Z)) (run (cdr Y)))\n; # (or (t? Z) (== Z A) (memq A Z))\n; # (t? Z)\n  %38 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %38, label %$11, label %$12\n$12:\n  %39 = phi i64 [%31, %$8] ; # Exe\n  %40 = phi i64 [%32, %$8] ; # X\n  %41 = phi i64 [%33, %$8] ; # A\n  %42 = phi i64 [%35, %$8] ; # Y\n  %43 = phi i64 [%37, %$8] ; # Z\n; # (== Z A)\n  %44 = icmp eq i64 %43, %41\n  br i1 %44, label %$11, label %$13\n$13:\n  %45 = phi i64 [%39, %$12] ; # Exe\n  %46 = phi i64 [%40, %$12] ; # X\n  %47 = phi i64 [%41, %$12] ; # A\n  %48 = phi i64 [%42, %$12] ; # Y\n  %49 = phi i64 [%43, %$12] ; # Z\n; # (memq A Z)\n  br label %$14\n$14:\n  %50 = phi i64 [%49, %$13], [%67, %$18] ; # L\n  %51 = phi i64 [%47, %$13], [%64, %$18] ; # X\n  %52 = and i64 %50, 15\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$17, label %$15\n$17:\n  %54 = phi i64 [%50, %$14] ; # L\n  %55 = phi i64 [%51, %$14] ; # X\n  br label %$16\n$15:\n  %56 = phi i64 [%50, %$14] ; # L\n  %57 = phi i64 [%51, %$14] ; # X\n  %58 = inttoptr i64 %56 to i64*\n  %59 = load i64, i64* %58\n  %60 = icmp eq i64 %57, %59\n  br i1 %60, label %$19, label %$18\n$19:\n  %61 = phi i64 [%56, %$15] ; # L\n  %62 = phi i64 [%57, %$15] ; # X\n  br label %$16\n$18:\n  %63 = phi i64 [%56, %$15] ; # L\n  %64 = phi i64 [%57, %$15] ; # X\n  %65 = inttoptr i64 %63 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  br label %$14\n$16:\n  %68 = phi i64 [%54, %$17], [%61, %$19] ; # L\n  %69 = phi i64 [%55, %$17], [%62, %$19] ; # X\n  %70 = phi i1 [0, %$17], [1, %$19] ; # ->\n  br label %$11\n$11:\n  %71 = phi i64 [%31, %$8], [%39, %$12], [%45, %$16] ; # Exe\n  %72 = phi i64 [%32, %$8], [%40, %$12], [%46, %$16] ; # X\n  %73 = phi i64 [%33, %$8], [%41, %$12], [%47, %$16] ; # A\n  %74 = phi i64 [%35, %$8], [%42, %$12], [%48, %$16] ; # Y\n  %75 = phi i64 [%37, %$8], [%43, %$12], [%49, %$16] ; # Z\n  %76 = phi i1 [1, %$8], [1, %$12], [%70, %$16] ; # ->\n  br i1 %76, label %$21, label %$20\n$21:\n  %77 = phi i64 [%71, %$11] ; # Exe\n  %78 = phi i64 [%72, %$11] ; # X\n  %79 = phi i64 [%73, %$11] ; # A\n  %80 = phi i64 [%74, %$11] ; # Y\n  %81 = phi i64 [%75, %$11] ; # Z\n; # (cdr Y)\n  %82 = inttoptr i64 %80 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  %84 = load i64, i64* %83\n; # (run (cdr Y))\n  br label %$22\n$22:\n  %85 = phi i64 [%84, %$21], [%115, %$31] ; # Prg\n  %86 = inttoptr i64 %85 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n  %89 = load i64, i64* %86\n  %90 = and i64 %88, 15\n  %91 = icmp ne i64 %90, 0\n  br i1 %91, label %$25, label %$23\n$25:\n  %92 = phi i64 [%88, %$22] ; # Prg\n  %93 = phi i64 [%89, %$22] ; # X\n  %94 = and i64 %93, 6\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$28, label %$27\n$28:\n  %96 = phi i64 [%93, %$25] ; # X\n  br label %$26\n$27:\n  %97 = phi i64 [%93, %$25] ; # X\n  %98 = and i64 %97, 8\n  %99 = icmp ne i64 %98, 0\n  br i1 %99, label %$30, label %$29\n$30:\n  %100 = phi i64 [%97, %$27] ; # X\n  %101 = inttoptr i64 %100 to i64*\n  %102 = load i64, i64* %101\n  br label %$26\n$29:\n  %103 = phi i64 [%97, %$27] ; # X\n  %104 = call i64 @evList(i64 %103)\n  br label %$26\n$26:\n  %105 = phi i64 [%96, %$28], [%100, %$30], [%103, %$29] ; # X\n  %106 = phi i64 [%96, %$28], [%102, %$30], [%104, %$29] ; # ->\n  br label %$24\n$23:\n  %107 = phi i64 [%88, %$22] ; # Prg\n  %108 = phi i64 [%89, %$22] ; # X\n  %109 = and i64 %108, 15\n  %110 = icmp eq i64 %109, 0\n  br i1 %110, label %$32, label %$31\n$32:\n  %111 = phi i64 [%107, %$23] ; # Prg\n  %112 = phi i64 [%108, %$23] ; # X\n  %113 = call i64 @evList(i64 %112)\n  %114 = icmp ne i64 %113, 0\n  br label %$31\n$31:\n  %115 = phi i64 [%107, %$23], [%111, %$32] ; # Prg\n  %116 = phi i64 [%108, %$23], [%112, %$32] ; # X\n  %117 = phi i1 [0, %$23], [%114, %$32] ; # ->\n  br label %$22\n$24:\n  %118 = phi i64 [%92, %$26] ; # Prg\n  %119 = phi i64 [%106, %$26] ; # ->\n  br label %$9\n$20:\n  %120 = phi i64 [%71, %$11] ; # Exe\n  %121 = phi i64 [%72, %$11] ; # X\n  %122 = phi i64 [%73, %$11] ; # A\n  %123 = phi i64 [%74, %$11] ; # Y\n  %124 = phi i64 [%75, %$11] ; # Z\n  br label %$7\n$9:\n  %125 = phi i64 [%28, %$10], [%77, %$24] ; # Exe\n  %126 = phi i64 [%29, %$10], [%78, %$24] ; # X\n  %127 = phi i64 [%30, %$10], [%79, %$24] ; # A\n  %128 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [%119, %$24] ; # ->\n  ret i64 %128\n}\n\ndefine i64 @_State(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Var (save (needChkVar Exe (eval (car X))))) (lo...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needChkVar Exe (eval (car X)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = icmp uge i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %25, label %$10, label %$9\n$10:\n  %26 = phi i64 [%23, %$8] ; # X\n  %27 = phi i64 [%24, %$8] ; # Exe\n  %28 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %26\n  br label %$9\n$9:\n  %29 = phi i64 [%23, %$8], [%26, %$10] ; # X\n  %30 = phi i64 [%24, %$8], [%27, %$10] ; # Exe\n  %31 = phi i1 [0, %$8], [%28, %$10] ; # ->\n  br i1 %31, label %$11, label %$12\n$11:\n  %32 = phi i64 [%29, %$9] ; # X\n  %33 = phi i64 [%30, %$9] ; # Exe\n  call void @protErr(i64 %33, i64 %32)\n  unreachable\n$12:\n  %34 = phi i64 [%29, %$9] ; # X\n  %35 = phi i64 [%30, %$9] ; # Exe\n; # (save (needChkVar Exe (eval (car X))))\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %37 = load i64, i64* %36\n  %38 = alloca i64, i64 2, align 16\n  %39 = ptrtoint i64* %38 to i64\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %23, i64* %40\n  %41 = add i64 %39, 8\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %37, i64* %42\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %43\n; # (loop (? (atom (shift X)) $Nil) (let (Y (car X) Z (car Y)) (when ...\n  br label %$13\n$13:\n  %44 = phi i64 [%0, %$12], [%186, %$28] ; # Exe\n  %45 = phi i64 [%3, %$12], [%187, %$28] ; # X\n  %46 = phi i64 [%23, %$12], [%188, %$28] ; # Var\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %47 = inttoptr i64 %45 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n; # (atom (shift X))\n  %50 = and i64 %49, 15\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$16, label %$14\n$16:\n  %52 = phi i64 [%44, %$13] ; # Exe\n  %53 = phi i64 [%49, %$13] ; # X\n  %54 = phi i64 [%46, %$13] ; # Var\n  br label %$15\n$14:\n  %55 = phi i64 [%44, %$13] ; # Exe\n  %56 = phi i64 [%49, %$13] ; # X\n  %57 = phi i64 [%46, %$13] ; # Var\n; # (let (Y (car X) Z (car Y)) (when (or (t? Z) (let V (val Var) (or ...\n; # (car X)\n  %58 = inttoptr i64 %56 to i64*\n  %59 = load i64, i64* %58\n; # (car Y)\n  %60 = inttoptr i64 %59 to i64*\n  %61 = load i64, i64* %60\n; # (when (or (t? Z) (let V (val Var) (or (== Z V) (memq V Z)))) (? (...\n; # (or (t? Z) (let V (val Var) (or (== Z V) (memq V Z))))\n; # (t? Z)\n  %62 = icmp eq i64 %61, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %62, label %$17, label %$18\n$18:\n  %63 = phi i64 [%55, %$14] ; # Exe\n  %64 = phi i64 [%56, %$14] ; # X\n  %65 = phi i64 [%57, %$14] ; # Var\n  %66 = phi i64 [%59, %$14] ; # Y\n  %67 = phi i64 [%61, %$14] ; # Z\n; # (let V (val Var) (or (== Z V) (memq V Z)))\n; # (val Var)\n  %68 = inttoptr i64 %65 to i64*\n  %69 = load i64, i64* %68\n; # (or (== Z V) (memq V Z))\n; # (== Z V)\n  %70 = icmp eq i64 %67, %69\n  br i1 %70, label %$19, label %$20\n$20:\n  %71 = phi i64 [%63, %$18] ; # Exe\n  %72 = phi i64 [%64, %$18] ; # X\n  %73 = phi i64 [%65, %$18] ; # Var\n  %74 = phi i64 [%66, %$18] ; # Y\n  %75 = phi i64 [%67, %$18] ; # Z\n  %76 = phi i64 [%69, %$18] ; # V\n; # (memq V Z)\n  br label %$21\n$21:\n  %77 = phi i64 [%75, %$20], [%94, %$25] ; # L\n  %78 = phi i64 [%76, %$20], [%91, %$25] ; # X\n  %79 = and i64 %77, 15\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$24, label %$22\n$24:\n  %81 = phi i64 [%77, %$21] ; # L\n  %82 = phi i64 [%78, %$21] ; # X\n  br label %$23\n$22:\n  %83 = phi i64 [%77, %$21] ; # L\n  %84 = phi i64 [%78, %$21] ; # X\n  %85 = inttoptr i64 %83 to i64*\n  %86 = load i64, i64* %85\n  %87 = icmp eq i64 %84, %86\n  br i1 %87, label %$26, label %$25\n$26:\n  %88 = phi i64 [%83, %$22] ; # L\n  %89 = phi i64 [%84, %$22] ; # X\n  br label %$23\n$25:\n  %90 = phi i64 [%83, %$22] ; # L\n  %91 = phi i64 [%84, %$22] ; # X\n  %92 = inttoptr i64 %90 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  %94 = load i64, i64* %93\n  br label %$21\n$23:\n  %95 = phi i64 [%81, %$24], [%88, %$26] ; # L\n  %96 = phi i64 [%82, %$24], [%89, %$26] ; # X\n  %97 = phi i1 [0, %$24], [1, %$26] ; # ->\n  br label %$19\n$19:\n  %98 = phi i64 [%63, %$18], [%71, %$23] ; # Exe\n  %99 = phi i64 [%64, %$18], [%72, %$23] ; # X\n  %100 = phi i64 [%65, %$18], [%73, %$23] ; # Var\n  %101 = phi i64 [%66, %$18], [%74, %$23] ; # Y\n  %102 = phi i64 [%67, %$18], [%75, %$23] ; # Z\n  %103 = phi i64 [%69, %$18], [%76, %$23] ; # V\n  %104 = phi i1 [1, %$18], [%97, %$23] ; # ->\n  br label %$17\n$17:\n  %105 = phi i64 [%55, %$14], [%98, %$19] ; # Exe\n  %106 = phi i64 [%56, %$14], [%99, %$19] ; # X\n  %107 = phi i64 [%57, %$14], [%100, %$19] ; # Var\n  %108 = phi i64 [%59, %$14], [%101, %$19] ; # Y\n  %109 = phi i64 [%61, %$14], [%102, %$19] ; # Z\n  %110 = phi i1 [1, %$14], [%104, %$19] ; # ->\n  br i1 %110, label %$27, label %$28\n$27:\n  %111 = phi i64 [%105, %$17] ; # Exe\n  %112 = phi i64 [%106, %$17] ; # X\n  %113 = phi i64 [%107, %$17] ; # Var\n  %114 = phi i64 [%108, %$17] ; # Y\n  %115 = phi i64 [%109, %$17] ; # Z\n; # (? (not (nil? (eval (car (shift Y))))) (set Var (set $At @)) (run...\n; # (shift Y)\n  %116 = inttoptr i64 %114 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n; # (car (shift Y))\n  %119 = inttoptr i64 %118 to i64*\n  %120 = load i64, i64* %119\n; # (eval (car (shift Y)))\n  %121 = and i64 %120, 6\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$31, label %$30\n$31:\n  %123 = phi i64 [%120, %$27] ; # X\n  br label %$29\n$30:\n  %124 = phi i64 [%120, %$27] ; # X\n  %125 = and i64 %124, 8\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$33, label %$32\n$33:\n  %127 = phi i64 [%124, %$30] ; # X\n  %128 = inttoptr i64 %127 to i64*\n  %129 = load i64, i64* %128\n  br label %$29\n$32:\n  %130 = phi i64 [%124, %$30] ; # X\n  %131 = call i64 @evList(i64 %130)\n  br label %$29\n$29:\n  %132 = phi i64 [%123, %$31], [%127, %$33], [%130, %$32] ; # X\n  %133 = phi i64 [%123, %$31], [%129, %$33], [%131, %$32] ; # ->\n; # (nil? (eval (car (shift Y))))\n  %134 = icmp eq i64 %133, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (eval (car (shift Y)))))\n  %135 = icmp eq i1 %134, 0\n  br i1 %135, label %$35, label %$34\n$35:\n  %136 = phi i64 [%111, %$29] ; # Exe\n  %137 = phi i64 [%112, %$29] ; # X\n  %138 = phi i64 [%113, %$29] ; # Var\n  %139 = phi i64 [%118, %$29] ; # Y\n  %140 = phi i64 [%115, %$29] ; # Z\n; # (set Var (set $At @))\n; # (set $At @)\n  %141 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %133, i64* %141\n  %142 = inttoptr i64 %138 to i64*\n  store i64 %133, i64* %142\n; # (cdr Y)\n  %143 = inttoptr i64 %139 to i64*\n  %144 = getelementptr i64, i64* %143, i32 1\n  %145 = load i64, i64* %144\n; # (run (cdr Y))\n  br label %$36\n$36:\n  %146 = phi i64 [%145, %$35], [%176, %$45] ; # Prg\n  %147 = inttoptr i64 %146 to i64*\n  %148 = getelementptr i64, i64* %147, i32 1\n  %149 = load i64, i64* %148\n  %150 = load i64, i64* %147\n  %151 = and i64 %149, 15\n  %152 = icmp ne i64 %151, 0\n  br i1 %152, label %$39, label %$37\n$39:\n  %153 = phi i64 [%149, %$36] ; # Prg\n  %154 = phi i64 [%150, %$36] ; # X\n  %155 = and i64 %154, 6\n  %156 = icmp ne i64 %155, 0\n  br i1 %156, label %$42, label %$41\n$42:\n  %157 = phi i64 [%154, %$39] ; # X\n  br label %$40\n$41:\n  %158 = phi i64 [%154, %$39] ; # X\n  %159 = and i64 %158, 8\n  %160 = icmp ne i64 %159, 0\n  br i1 %160, label %$44, label %$43\n$44:\n  %161 = phi i64 [%158, %$41] ; # X\n  %162 = inttoptr i64 %161 to i64*\n  %163 = load i64, i64* %162\n  br label %$40\n$43:\n  %164 = phi i64 [%158, %$41] ; # X\n  %165 = call i64 @evList(i64 %164)\n  br label %$40\n$40:\n  %166 = phi i64 [%157, %$42], [%161, %$44], [%164, %$43] ; # X\n  %167 = phi i64 [%157, %$42], [%163, %$44], [%165, %$43] ; # ->\n  br label %$38\n$37:\n  %168 = phi i64 [%149, %$36] ; # Prg\n  %169 = phi i64 [%150, %$36] ; # X\n  %170 = and i64 %169, 15\n  %171 = icmp eq i64 %170, 0\n  br i1 %171, label %$46, label %$45\n$46:\n  %172 = phi i64 [%168, %$37] ; # Prg\n  %173 = phi i64 [%169, %$37] ; # X\n  %174 = call i64 @evList(i64 %173)\n  %175 = icmp ne i64 %174, 0\n  br label %$45\n$45:\n  %176 = phi i64 [%168, %$37], [%172, %$46] ; # Prg\n  %177 = phi i64 [%169, %$37], [%173, %$46] ; # X\n  %178 = phi i1 [0, %$37], [%175, %$46] ; # ->\n  br label %$36\n$38:\n  %179 = phi i64 [%153, %$40] ; # Prg\n  %180 = phi i64 [%167, %$40] ; # ->\n  br label %$15\n$34:\n  %181 = phi i64 [%111, %$29] ; # Exe\n  %182 = phi i64 [%112, %$29] ; # X\n  %183 = phi i64 [%113, %$29] ; # Var\n  %184 = phi i64 [%118, %$29] ; # Y\n  %185 = phi i64 [%115, %$29] ; # Z\n  br label %$28\n$28:\n  %186 = phi i64 [%105, %$17], [%181, %$34] ; # Exe\n  %187 = phi i64 [%106, %$17], [%182, %$34] ; # X\n  %188 = phi i64 [%107, %$17], [%183, %$34] ; # Var\n  %189 = phi i64 [%108, %$17], [%184, %$34] ; # Y\n  %190 = phi i64 [%109, %$17], [%185, %$34] ; # Z\n  br label %$13\n$15:\n  %191 = phi i64 [%52, %$16], [%136, %$38] ; # Exe\n  %192 = phi i64 [%53, %$16], [%137, %$38] ; # X\n  %193 = phi i64 [%54, %$16], [%138, %$38] ; # Var\n  %194 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16], [%180, %$38] ; # ->\n; # (drop *Safe)\n  %195 = inttoptr i64 %39 to i64*\n  %196 = getelementptr i64, i64* %195, i32 1\n  %197 = load i64, i64* %196\n  %198 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %197, i64* %198\n  ret i64 %194\n}\n\ndefine i64 @_While(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (++ X) R (save $Nil)) (until (nil? (eval E)) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (save $Nil)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  %10 = alloca i64, i64 2, align 16\n  %11 = ptrtoint i64* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %12\n  %13 = add i64 %11, 8\n  %14 = inttoptr i64 %13 to i64*\n  store i64 %9, i64* %14\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %11, i64* %15\n; # (until (nil? (eval E)) (set $At @) (setq R (safe (run X))))\n  br label %$2\n$2:\n  %16 = phi i64 [%0, %$1], [%34, %$12] ; # Exe\n  %17 = phi i64 [%6, %$1], [%35, %$12] ; # X\n  %18 = phi i64 [%7, %$1], [%36, %$12] ; # E\n  %19 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1], [%73, %$12] ; # R\n; # (eval E)\n  %20 = and i64 %18, 6\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$5, label %$4\n$5:\n  %22 = phi i64 [%18, %$2] ; # X\n  br label %$3\n$4:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = and i64 %23, 8\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$7, label %$6\n$7:\n  %26 = phi i64 [%23, %$4] ; # X\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n  br label %$3\n$6:\n  %29 = phi i64 [%23, %$4] ; # X\n  %30 = call i64 @evList(i64 %29)\n  br label %$3\n$3:\n  %31 = phi i64 [%22, %$5], [%26, %$7], [%29, %$6] ; # X\n  %32 = phi i64 [%22, %$5], [%28, %$7], [%30, %$6] ; # ->\n; # (nil? (eval E))\n  %33 = icmp eq i64 %32, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %33, label %$9, label %$8\n$8:\n  %34 = phi i64 [%16, %$3] ; # Exe\n  %35 = phi i64 [%17, %$3] ; # X\n  %36 = phi i64 [%18, %$3] ; # E\n  %37 = phi i64 [%19, %$3] ; # R\n; # (set $At @)\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %32, i64* %38\n; # (run X)\n  br label %$10\n$10:\n  %39 = phi i64 [%35, %$8], [%69, %$19] ; # Prg\n  %40 = inttoptr i64 %39 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n  %43 = load i64, i64* %40\n  %44 = and i64 %42, 15\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$13, label %$11\n$13:\n  %46 = phi i64 [%42, %$10] ; # Prg\n  %47 = phi i64 [%43, %$10] ; # X\n  %48 = and i64 %47, 6\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$16, label %$15\n$16:\n  %50 = phi i64 [%47, %$13] ; # X\n  br label %$14\n$15:\n  %51 = phi i64 [%47, %$13] ; # X\n  %52 = and i64 %51, 8\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$18, label %$17\n$18:\n  %54 = phi i64 [%51, %$15] ; # X\n  %55 = inttoptr i64 %54 to i64*\n  %56 = load i64, i64* %55\n  br label %$14\n$17:\n  %57 = phi i64 [%51, %$15] ; # X\n  %58 = call i64 @evList(i64 %57)\n  br label %$14\n$14:\n  %59 = phi i64 [%50, %$16], [%54, %$18], [%57, %$17] ; # X\n  %60 = phi i64 [%50, %$16], [%56, %$18], [%58, %$17] ; # ->\n  br label %$12\n$11:\n  %61 = phi i64 [%42, %$10] ; # Prg\n  %62 = phi i64 [%43, %$10] ; # X\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$20, label %$19\n$20:\n  %65 = phi i64 [%61, %$11] ; # Prg\n  %66 = phi i64 [%62, %$11] ; # X\n  %67 = call i64 @evList(i64 %66)\n  %68 = icmp ne i64 %67, 0\n  br label %$19\n$19:\n  %69 = phi i64 [%61, %$11], [%65, %$20] ; # Prg\n  %70 = phi i64 [%62, %$11], [%66, %$20] ; # X\n  %71 = phi i1 [0, %$11], [%68, %$20] ; # ->\n  br label %$10\n$12:\n  %72 = phi i64 [%46, %$14] ; # Prg\n  %73 = phi i64 [%60, %$14] ; # ->\n; # (safe (run X))\n  %74 = inttoptr i64 %11 to i64*\n  store i64 %73, i64* %74\n  br label %$2\n$9:\n  %75 = phi i64 [%16, %$3] ; # Exe\n  %76 = phi i64 [%17, %$3] ; # X\n  %77 = phi i64 [%18, %$3] ; # E\n  %78 = phi i64 [%19, %$3] ; # R\n; # (drop *Safe)\n  %79 = inttoptr i64 %11 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %81, i64* %82\n  ret i64 %78\n}\n\ndefine i64 @_Until(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) E (++ X) R (save $Nil)) (while (nil? (eval E)) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (save $Nil)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  %10 = alloca i64, i64 2, align 16\n  %11 = ptrtoint i64* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %12\n  %13 = add i64 %11, 8\n  %14 = inttoptr i64 %13 to i64*\n  store i64 %9, i64* %14\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %11, i64* %15\n; # (while (nil? (eval E)) (setq R (safe (run X))))\n  br label %$2\n$2:\n  %16 = phi i64 [%0, %$1], [%34, %$12] ; # Exe\n  %17 = phi i64 [%6, %$1], [%35, %$12] ; # X\n  %18 = phi i64 [%7, %$1], [%36, %$12] ; # E\n  %19 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1], [%72, %$12] ; # R\n; # (eval E)\n  %20 = and i64 %18, 6\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$5, label %$4\n$5:\n  %22 = phi i64 [%18, %$2] ; # X\n  br label %$3\n$4:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = and i64 %23, 8\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$7, label %$6\n$7:\n  %26 = phi i64 [%23, %$4] ; # X\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n  br label %$3\n$6:\n  %29 = phi i64 [%23, %$4] ; # X\n  %30 = call i64 @evList(i64 %29)\n  br label %$3\n$3:\n  %31 = phi i64 [%22, %$5], [%26, %$7], [%29, %$6] ; # X\n  %32 = phi i64 [%22, %$5], [%28, %$7], [%30, %$6] ; # ->\n; # (nil? (eval E))\n  %33 = icmp eq i64 %32, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %33, label %$8, label %$9\n$8:\n  %34 = phi i64 [%16, %$3] ; # Exe\n  %35 = phi i64 [%17, %$3] ; # X\n  %36 = phi i64 [%18, %$3] ; # E\n  %37 = phi i64 [%19, %$3] ; # R\n; # (run X)\n  br label %$10\n$10:\n  %38 = phi i64 [%35, %$8], [%68, %$19] ; # Prg\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  %42 = load i64, i64* %39\n  %43 = and i64 %41, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$11\n$13:\n  %45 = phi i64 [%41, %$10] ; # Prg\n  %46 = phi i64 [%42, %$10] ; # X\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$16, label %$15\n$16:\n  %49 = phi i64 [%46, %$13] ; # X\n  br label %$14\n$15:\n  %50 = phi i64 [%46, %$13] ; # X\n  %51 = and i64 %50, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$18, label %$17\n$18:\n  %53 = phi i64 [%50, %$15] ; # X\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  br label %$14\n$17:\n  %56 = phi i64 [%50, %$15] ; # X\n  %57 = call i64 @evList(i64 %56)\n  br label %$14\n$14:\n  %58 = phi i64 [%49, %$16], [%53, %$18], [%56, %$17] ; # X\n  %59 = phi i64 [%49, %$16], [%55, %$18], [%57, %$17] ; # ->\n  br label %$12\n$11:\n  %60 = phi i64 [%41, %$10] ; # Prg\n  %61 = phi i64 [%42, %$10] ; # X\n  %62 = and i64 %61, 15\n  %63 = icmp eq i64 %62, 0\n  br i1 %63, label %$20, label %$19\n$20:\n  %64 = phi i64 [%60, %$11] ; # Prg\n  %65 = phi i64 [%61, %$11] ; # X\n  %66 = call i64 @evList(i64 %65)\n  %67 = icmp ne i64 %66, 0\n  br label %$19\n$19:\n  %68 = phi i64 [%60, %$11], [%64, %$20] ; # Prg\n  %69 = phi i64 [%61, %$11], [%65, %$20] ; # X\n  %70 = phi i1 [0, %$11], [%67, %$20] ; # ->\n  br label %$10\n$12:\n  %71 = phi i64 [%45, %$14] ; # Prg\n  %72 = phi i64 [%59, %$14] ; # ->\n; # (safe (run X))\n  %73 = inttoptr i64 %11 to i64*\n  store i64 %72, i64* %73\n  br label %$2\n$9:\n  %74 = phi i64 [%16, %$3] ; # Exe\n  %75 = phi i64 [%17, %$3] ; # X\n  %76 = phi i64 [%18, %$3] ; # E\n  %77 = phi i64 [%19, %$3] ; # R\n; # (set $At @)\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %32, i64* %78\n; # (drop *Safe)\n  %79 = inttoptr i64 %11 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %81, i64* %82\n  ret i64 %77\n}\n\ndefine i64 @_At(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (needPair Exe (eval (car X))) Z (cdr Y)) (con...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (needPair Exe (eval (car X)))\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @pairErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n; # (cdr Y)\n  %25 = inttoptr i64 %23 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n; # (cond ((nil? Z) @) ((< (+ (car Y) (hex \"10\")) Z) (set Y @) $Nil) ...\n; # (nil? Z)\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %28, label %$11, label %$10\n$11:\n  %29 = phi i64 [%0, %$8] ; # Exe\n  %30 = phi i64 [%3, %$8] ; # X\n  %31 = phi i64 [%23, %$8] ; # Y\n  %32 = phi i64 [%27, %$8] ; # Z\n  br label %$9\n$10:\n  %33 = phi i64 [%0, %$8] ; # Exe\n  %34 = phi i64 [%3, %$8] ; # X\n  %35 = phi i64 [%23, %$8] ; # Y\n  %36 = phi i64 [%27, %$8] ; # Z\n; # (car Y)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = load i64, i64* %37\n; # (+ (car Y) (hex \"10\"))\n  %39 = add i64 %38, 16\n; # (< (+ (car Y) (hex \"10\")) Z)\n  %40 = icmp ult i64 %39, %36\n  br i1 %40, label %$13, label %$12\n$13:\n  %41 = phi i64 [%33, %$10] ; # Exe\n  %42 = phi i64 [%34, %$10] ; # X\n  %43 = phi i64 [%35, %$10] ; # Y\n  %44 = phi i64 [%36, %$10] ; # Z\n; # (set Y @)\n  %45 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %45\n  br label %$9\n$12:\n  %46 = phi i64 [%33, %$10] ; # Exe\n  %47 = phi i64 [%34, %$10] ; # X\n  %48 = phi i64 [%35, %$10] ; # Y\n  %49 = phi i64 [%36, %$10] ; # Z\n; # (set Y ZERO)\n  %50 = inttoptr i64 %48 to i64*\n  store i64 2, i64* %50\n; # (cdr X)\n  %51 = inttoptr i64 %47 to i64*\n  %52 = getelementptr i64, i64* %51, i32 1\n  %53 = load i64, i64* %52\n; # (run (cdr X))\n  br label %$14\n$14:\n  %54 = phi i64 [%53, %$12], [%84, %$23] ; # Prg\n  %55 = inttoptr i64 %54 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n  %58 = load i64, i64* %55\n  %59 = and i64 %57, 15\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$17, label %$15\n$17:\n  %61 = phi i64 [%57, %$14] ; # Prg\n  %62 = phi i64 [%58, %$14] ; # X\n  %63 = and i64 %62, 6\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$20, label %$19\n$20:\n  %65 = phi i64 [%62, %$17] ; # X\n  br label %$18\n$19:\n  %66 = phi i64 [%62, %$17] ; # X\n  %67 = and i64 %66, 8\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$22, label %$21\n$22:\n  %69 = phi i64 [%66, %$19] ; # X\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n  br label %$18\n$21:\n  %72 = phi i64 [%66, %$19] ; # X\n  %73 = call i64 @evList(i64 %72)\n  br label %$18\n$18:\n  %74 = phi i64 [%65, %$20], [%69, %$22], [%72, %$21] ; # X\n  %75 = phi i64 [%65, %$20], [%71, %$22], [%73, %$21] ; # ->\n  br label %$16\n$15:\n  %76 = phi i64 [%57, %$14] ; # Prg\n  %77 = phi i64 [%58, %$14] ; # X\n  %78 = and i64 %77, 15\n  %79 = icmp eq i64 %78, 0\n  br i1 %79, label %$24, label %$23\n$24:\n  %80 = phi i64 [%76, %$15] ; # Prg\n  %81 = phi i64 [%77, %$15] ; # X\n  %82 = call i64 @evList(i64 %81)\n  %83 = icmp ne i64 %82, 0\n  br label %$23\n$23:\n  %84 = phi i64 [%76, %$15], [%80, %$24] ; # Prg\n  %85 = phi i64 [%77, %$15], [%81, %$24] ; # X\n  %86 = phi i1 [0, %$15], [%83, %$24] ; # ->\n  br label %$14\n$16:\n  %87 = phi i64 [%61, %$18] ; # Prg\n  %88 = phi i64 [%75, %$18] ; # ->\n  br label %$9\n$9:\n  %89 = phi i64 [%29, %$11], [%41, %$13], [%46, %$16] ; # Exe\n  %90 = phi i64 [%30, %$11], [%42, %$13], [%47, %$16] ; # X\n  %91 = phi i64 [%31, %$11], [%43, %$13], [%48, %$16] ; # Y\n  %92 = phi i64 [%32, %$11], [%44, %$13], [%49, %$16] ; # Z\n  %93 = phi i64 [%27, %$11], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%88, %$16] ; # ->\n  ret i64 %93\n}\n\ndefine i64 @loop1(i64) align 8 {\n$1:\n; # (loop (let E (car X) (unless (num? E) (setq E (cond ((sym? E) (va...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%169, %$49] ; # X\n; # (let E (car X) (unless (num? E) (setq E (cond ((sym? E) (val E)) ...\n; # (car X)\n  %2 = inttoptr i64 %1 to i64*\n  %3 = load i64, i64* %2\n; # (unless (num? E) (setq E (cond ((sym? E) (val E)) ((nil? (car E))...\n; # (num? E)\n  %4 = and i64 %3, 6\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$3:\n  %6 = phi i64 [%1, %$2] ; # X\n  %7 = phi i64 [%3, %$2] ; # E\n; # (cond ((sym? E) (val E)) ((nil? (car E)) (? (nil? (eval (car (shi...\n; # (sym? E)\n  %8 = and i64 %7, 8\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$7, label %$6\n$7:\n  %10 = phi i64 [%6, %$3] ; # X\n  %11 = phi i64 [%7, %$3] ; # E\n; # (val E)\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n  br label %$5\n$6:\n  %14 = phi i64 [%6, %$3] ; # X\n  %15 = phi i64 [%7, %$3] ; # E\n; # (car E)\n  %16 = inttoptr i64 %15 to i64*\n  %17 = load i64, i64* %16\n; # (nil? (car E))\n  %18 = icmp eq i64 %17, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %18, label %$9, label %$8\n$9:\n  %19 = phi i64 [%14, %$6] ; # X\n  %20 = phi i64 [%15, %$6] ; # E\n; # (? (nil? (eval (car (shift E)))) (run (cdr E)))\n; # (shift E)\n  %21 = inttoptr i64 %20 to i64*\n  %22 = getelementptr i64, i64* %21, i32 1\n  %23 = load i64, i64* %22\n; # (car (shift E))\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n; # (eval (car (shift E)))\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%25, %$9] ; # X\n  br label %$10\n$11:\n  %29 = phi i64 [%25, %$9] ; # X\n  %30 = and i64 %29, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$14, label %$13\n$14:\n  %32 = phi i64 [%29, %$11] ; # X\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  br label %$10\n$13:\n  %35 = phi i64 [%29, %$11] ; # X\n  %36 = call i64 @evList(i64 %35)\n  br label %$10\n$10:\n  %37 = phi i64 [%28, %$12], [%32, %$14], [%35, %$13] ; # X\n  %38 = phi i64 [%28, %$12], [%34, %$14], [%36, %$13] ; # ->\n; # (nil? (eval (car (shift E))))\n  %39 = icmp eq i64 %38, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %39, label %$17, label %$15\n$17:\n  %40 = phi i64 [%19, %$10] ; # X\n  %41 = phi i64 [%23, %$10] ; # E\n; # (cdr E)\n  %42 = inttoptr i64 %41 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n; # (run (cdr E))\n  br label %$18\n$18:\n  %45 = phi i64 [%44, %$17], [%75, %$27] ; # Prg\n  %46 = inttoptr i64 %45 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  %49 = load i64, i64* %46\n  %50 = and i64 %48, 15\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$21, label %$19\n$21:\n  %52 = phi i64 [%48, %$18] ; # Prg\n  %53 = phi i64 [%49, %$18] ; # X\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$24, label %$23\n$24:\n  %56 = phi i64 [%53, %$21] ; # X\n  br label %$22\n$23:\n  %57 = phi i64 [%53, %$21] ; # X\n  %58 = and i64 %57, 8\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$26, label %$25\n$26:\n  %60 = phi i64 [%57, %$23] ; # X\n  %61 = inttoptr i64 %60 to i64*\n  %62 = load i64, i64* %61\n  br label %$22\n$25:\n  %63 = phi i64 [%57, %$23] ; # X\n  %64 = call i64 @evList(i64 %63)\n  br label %$22\n$22:\n  %65 = phi i64 [%56, %$24], [%60, %$26], [%63, %$25] ; # X\n  %66 = phi i64 [%56, %$24], [%62, %$26], [%64, %$25] ; # ->\n  br label %$20\n$19:\n  %67 = phi i64 [%48, %$18] ; # Prg\n  %68 = phi i64 [%49, %$18] ; # X\n  %69 = and i64 %68, 15\n  %70 = icmp eq i64 %69, 0\n  br i1 %70, label %$28, label %$27\n$28:\n  %71 = phi i64 [%67, %$19] ; # Prg\n  %72 = phi i64 [%68, %$19] ; # X\n  %73 = call i64 @evList(i64 %72)\n  %74 = icmp ne i64 %73, 0\n  br label %$27\n$27:\n  %75 = phi i64 [%67, %$19], [%71, %$28] ; # Prg\n  %76 = phi i64 [%68, %$19], [%72, %$28] ; # X\n  %77 = phi i1 [0, %$19], [%74, %$28] ; # ->\n  br label %$18\n$20:\n  %78 = phi i64 [%52, %$22] ; # Prg\n  %79 = phi i64 [%66, %$22] ; # ->\n  br label %$16\n$15:\n  %80 = phi i64 [%19, %$10] ; # X\n  %81 = phi i64 [%23, %$10] ; # E\n; # (set $At @)\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %38, i64* %82\n  br label %$5\n$8:\n  %83 = phi i64 [%14, %$6] ; # X\n  %84 = phi i64 [%15, %$6] ; # E\n; # (car E)\n  %85 = inttoptr i64 %84 to i64*\n  %86 = load i64, i64* %85\n; # (t? (car E))\n  %87 = icmp eq i64 %86, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %87, label %$30, label %$29\n$30:\n  %88 = phi i64 [%83, %$8] ; # X\n  %89 = phi i64 [%84, %$8] ; # E\n; # (? (not (nil? (eval (car (shift E))))) (set $At @) (run (cdr E)))...\n; # (shift E)\n  %90 = inttoptr i64 %89 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (car (shift E))\n  %93 = inttoptr i64 %92 to i64*\n  %94 = load i64, i64* %93\n; # (eval (car (shift E)))\n  %95 = and i64 %94, 6\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$33, label %$32\n$33:\n  %97 = phi i64 [%94, %$30] ; # X\n  br label %$31\n$32:\n  %98 = phi i64 [%94, %$30] ; # X\n  %99 = and i64 %98, 8\n  %100 = icmp ne i64 %99, 0\n  br i1 %100, label %$35, label %$34\n$35:\n  %101 = phi i64 [%98, %$32] ; # X\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n  br label %$31\n$34:\n  %104 = phi i64 [%98, %$32] ; # X\n  %105 = call i64 @evList(i64 %104)\n  br label %$31\n$31:\n  %106 = phi i64 [%97, %$33], [%101, %$35], [%104, %$34] ; # X\n  %107 = phi i64 [%97, %$33], [%103, %$35], [%105, %$34] ; # ->\n; # (nil? (eval (car (shift E))))\n  %108 = icmp eq i64 %107, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (eval (car (shift E)))))\n  %109 = icmp eq i1 %108, 0\n  br i1 %109, label %$37, label %$36\n$37:\n  %110 = phi i64 [%88, %$31] ; # X\n  %111 = phi i64 [%92, %$31] ; # E\n; # (set $At @)\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %107, i64* %112\n; # (cdr E)\n  %113 = inttoptr i64 %111 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n; # (run (cdr E))\n  br label %$38\n$38:\n  %116 = phi i64 [%115, %$37], [%146, %$47] ; # Prg\n  %117 = inttoptr i64 %116 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n  %120 = load i64, i64* %117\n  %121 = and i64 %119, 15\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$41, label %$39\n$41:\n  %123 = phi i64 [%119, %$38] ; # Prg\n  %124 = phi i64 [%120, %$38] ; # X\n  %125 = and i64 %124, 6\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$44, label %$43\n$44:\n  %127 = phi i64 [%124, %$41] ; # X\n  br label %$42\n$43:\n  %128 = phi i64 [%124, %$41] ; # X\n  %129 = and i64 %128, 8\n  %130 = icmp ne i64 %129, 0\n  br i1 %130, label %$46, label %$45\n$46:\n  %131 = phi i64 [%128, %$43] ; # X\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n  br label %$42\n$45:\n  %134 = phi i64 [%128, %$43] ; # X\n  %135 = call i64 @evList(i64 %134)\n  br label %$42\n$42:\n  %136 = phi i64 [%127, %$44], [%131, %$46], [%134, %$45] ; # X\n  %137 = phi i64 [%127, %$44], [%133, %$46], [%135, %$45] ; # ->\n  br label %$40\n$39:\n  %138 = phi i64 [%119, %$38] ; # Prg\n  %139 = phi i64 [%120, %$38] ; # X\n  %140 = and i64 %139, 15\n  %141 = icmp eq i64 %140, 0\n  br i1 %141, label %$48, label %$47\n$48:\n  %142 = phi i64 [%138, %$39] ; # Prg\n  %143 = phi i64 [%139, %$39] ; # X\n  %144 = call i64 @evList(i64 %143)\n  %145 = icmp ne i64 %144, 0\n  br label %$47\n$47:\n  %146 = phi i64 [%138, %$39], [%142, %$48] ; # Prg\n  %147 = phi i64 [%139, %$39], [%143, %$48] ; # X\n  %148 = phi i1 [0, %$39], [%145, %$48] ; # ->\n  br label %$38\n$40:\n  %149 = phi i64 [%123, %$42] ; # Prg\n  %150 = phi i64 [%137, %$42] ; # ->\n  br label %$16\n$36:\n  %151 = phi i64 [%88, %$31] ; # X\n  %152 = phi i64 [%92, %$31] ; # E\n  br label %$5\n$29:\n  %153 = phi i64 [%83, %$8] ; # X\n  %154 = phi i64 [%84, %$8] ; # E\n; # (evList E)\n  %155 = call i64 @evList(i64 %154)\n  br label %$5\n$5:\n  %156 = phi i64 [%10, %$7], [%80, %$15], [%151, %$36], [%153, %$29] ; # X\n  %157 = phi i64 [%11, %$7], [%81, %$15], [%152, %$36], [%154, %$29] ; # E\n  %158 = phi i64 [%13, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%107, %$36], [%155, %$29] ; # ->\n  br label %$4\n$4:\n  %159 = phi i64 [%1, %$2], [%156, %$5] ; # X\n  %160 = phi i64 [%3, %$2], [%158, %$5] ; # E\n; # (? (atom (shift X)) (| E 1))\n; # (shift X)\n  %161 = inttoptr i64 %159 to i64*\n  %162 = getelementptr i64, i64* %161, i32 1\n  %163 = load i64, i64* %162\n; # (atom (shift X))\n  %164 = and i64 %163, 15\n  %165 = icmp ne i64 %164, 0\n  br i1 %165, label %$50, label %$49\n$50:\n  %166 = phi i64 [%163, %$4] ; # X\n  %167 = phi i64 [%160, %$4] ; # E\n; # (| E 1)\n  %168 = or i64 %167, 1\n  br label %$16\n$49:\n  %169 = phi i64 [%163, %$4] ; # X\n  %170 = phi i64 [%160, %$4] ; # E\n  br label %$2\n$16:\n  %171 = phi i64 [%40, %$20], [%110, %$40], [%166, %$50] ; # X\n  %172 = phi i64 [%79, %$20], [%150, %$40], [%168, %$50] ; # ->\n  ret i64 %172\n}\n\ndefine i64 @loop2(i64) align 8 {\n$1:\n; # (loop (let X Y (loop (let E (car X) (when (pair E) (cond ((nil? (...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%171, %$48] ; # Y\n; # (let X Y (loop (let E (car X) (when (pair E) (cond ((nil? (car E)...\n; # (loop (let E (car X) (when (pair E) (cond ((nil? (car E)) (when (...\n  br label %$3\n$3:\n  %2 = phi i64 [%1, %$2], [%169, %$47] ; # Y\n  %3 = phi i64 [%1, %$2], [%170, %$47] ; # X\n; # (let E (car X) (when (pair E) (cond ((nil? (car E)) (when (nil? (...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (when (pair E) (cond ((nil? (car E)) (when (nil? (eval (car (shif...\n; # (pair E)\n  %6 = and i64 %5, 15\n  %7 = icmp eq i64 %6, 0\n  br i1 %7, label %$4, label %$5\n$4:\n  %8 = phi i64 [%2, %$3] ; # Y\n  %9 = phi i64 [%3, %$3] ; # X\n  %10 = phi i64 [%5, %$3] ; # E\n; # (cond ((nil? (car E)) (when (nil? (eval (car (shift E)))) (ret (r...\n; # (car E)\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (nil? (car E))\n  %13 = icmp eq i64 %12, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %13, label %$8, label %$7\n$8:\n  %14 = phi i64 [%8, %$4] ; # Y\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = phi i64 [%10, %$4] ; # E\n; # (when (nil? (eval (car (shift E)))) (ret (run (cdr E))))\n; # (shift E)\n  %17 = inttoptr i64 %16 to i64*\n  %18 = getelementptr i64, i64* %17, i32 1\n  %19 = load i64, i64* %18\n; # (car (shift E))\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n; # (eval (car (shift E)))\n  %22 = and i64 %21, 6\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$11, label %$10\n$11:\n  %24 = phi i64 [%21, %$8] ; # X\n  br label %$9\n$10:\n  %25 = phi i64 [%21, %$8] ; # X\n  %26 = and i64 %25, 8\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$13, label %$12\n$13:\n  %28 = phi i64 [%25, %$10] ; # X\n  %29 = inttoptr i64 %28 to i64*\n  %30 = load i64, i64* %29\n  br label %$9\n$12:\n  %31 = phi i64 [%25, %$10] ; # X\n  %32 = call i64 @evList(i64 %31)\n  br label %$9\n$9:\n  %33 = phi i64 [%24, %$11], [%28, %$13], [%31, %$12] ; # X\n  %34 = phi i64 [%24, %$11], [%30, %$13], [%32, %$12] ; # ->\n; # (nil? (eval (car (shift E))))\n  %35 = icmp eq i64 %34, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %35, label %$14, label %$15\n$14:\n  %36 = phi i64 [%14, %$9] ; # Y\n  %37 = phi i64 [%15, %$9] ; # X\n  %38 = phi i64 [%19, %$9] ; # E\n; # (cdr E)\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (run (cdr E))\n  br label %$16\n$16:\n  %42 = phi i64 [%41, %$14], [%72, %$25] ; # Prg\n  %43 = inttoptr i64 %42 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n  %46 = load i64, i64* %43\n  %47 = and i64 %45, 15\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$19, label %$17\n$19:\n  %49 = phi i64 [%45, %$16] ; # Prg\n  %50 = phi i64 [%46, %$16] ; # X\n  %51 = and i64 %50, 6\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$22, label %$21\n$22:\n  %53 = phi i64 [%50, %$19] ; # X\n  br label %$20\n$21:\n  %54 = phi i64 [%50, %$19] ; # X\n  %55 = and i64 %54, 8\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$24, label %$23\n$24:\n  %57 = phi i64 [%54, %$21] ; # X\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n  br label %$20\n$23:\n  %60 = phi i64 [%54, %$21] ; # X\n  %61 = call i64 @evList(i64 %60)\n  br label %$20\n$20:\n  %62 = phi i64 [%53, %$22], [%57, %$24], [%60, %$23] ; # X\n  %63 = phi i64 [%53, %$22], [%59, %$24], [%61, %$23] ; # ->\n  br label %$18\n$17:\n  %64 = phi i64 [%45, %$16] ; # Prg\n  %65 = phi i64 [%46, %$16] ; # X\n  %66 = and i64 %65, 15\n  %67 = icmp eq i64 %66, 0\n  br i1 %67, label %$26, label %$25\n$26:\n  %68 = phi i64 [%64, %$17] ; # Prg\n  %69 = phi i64 [%65, %$17] ; # X\n  %70 = call i64 @evList(i64 %69)\n  %71 = icmp ne i64 %70, 0\n  br label %$25\n$25:\n  %72 = phi i64 [%64, %$17], [%68, %$26] ; # Prg\n  %73 = phi i64 [%65, %$17], [%69, %$26] ; # X\n  %74 = phi i1 [0, %$17], [%71, %$26] ; # ->\n  br label %$16\n$18:\n  %75 = phi i64 [%49, %$20] ; # Prg\n  %76 = phi i64 [%63, %$20] ; # ->\n; # (ret (run (cdr E)))\n  ret i64 %76\n$15:\n  %77 = phi i64 [%14, %$9] ; # Y\n  %78 = phi i64 [%15, %$9] ; # X\n  %79 = phi i64 [%19, %$9] ; # E\n; # (set $At @)\n  %80 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %34, i64* %80\n  br label %$6\n$7:\n  %81 = phi i64 [%8, %$4] ; # Y\n  %82 = phi i64 [%9, %$4] ; # X\n  %83 = phi i64 [%10, %$4] ; # E\n; # (car E)\n  %84 = inttoptr i64 %83 to i64*\n  %85 = load i64, i64* %84\n; # (t? (car E))\n  %86 = icmp eq i64 %85, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %86, label %$28, label %$27\n$28:\n  %87 = phi i64 [%81, %$7] ; # Y\n  %88 = phi i64 [%82, %$7] ; # X\n  %89 = phi i64 [%83, %$7] ; # E\n; # (unless (nil? (eval (car (shift E)))) (set $At @) (ret (run (cdr ...\n; # (shift E)\n  %90 = inttoptr i64 %89 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (car (shift E))\n  %93 = inttoptr i64 %92 to i64*\n  %94 = load i64, i64* %93\n; # (eval (car (shift E)))\n  %95 = and i64 %94, 6\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$31, label %$30\n$31:\n  %97 = phi i64 [%94, %$28] ; # X\n  br label %$29\n$30:\n  %98 = phi i64 [%94, %$28] ; # X\n  %99 = and i64 %98, 8\n  %100 = icmp ne i64 %99, 0\n  br i1 %100, label %$33, label %$32\n$33:\n  %101 = phi i64 [%98, %$30] ; # X\n  %102 = inttoptr i64 %101 to i64*\n  %103 = load i64, i64* %102\n  br label %$29\n$32:\n  %104 = phi i64 [%98, %$30] ; # X\n  %105 = call i64 @evList(i64 %104)\n  br label %$29\n$29:\n  %106 = phi i64 [%97, %$31], [%101, %$33], [%104, %$32] ; # X\n  %107 = phi i64 [%97, %$31], [%103, %$33], [%105, %$32] ; # ->\n; # (nil? (eval (car (shift E))))\n  %108 = icmp eq i64 %107, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %108, label %$35, label %$34\n$34:\n  %109 = phi i64 [%87, %$29] ; # Y\n  %110 = phi i64 [%88, %$29] ; # X\n  %111 = phi i64 [%92, %$29] ; # E\n; # (set $At @)\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %107, i64* %112\n; # (cdr E)\n  %113 = inttoptr i64 %111 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n; # (run (cdr E))\n  br label %$36\n$36:\n  %116 = phi i64 [%115, %$34], [%146, %$45] ; # Prg\n  %117 = inttoptr i64 %116 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n  %120 = load i64, i64* %117\n  %121 = and i64 %119, 15\n  %122 = icmp ne i64 %121, 0\n  br i1 %122, label %$39, label %$37\n$39:\n  %123 = phi i64 [%119, %$36] ; # Prg\n  %124 = phi i64 [%120, %$36] ; # X\n  %125 = and i64 %124, 6\n  %126 = icmp ne i64 %125, 0\n  br i1 %126, label %$42, label %$41\n$42:\n  %127 = phi i64 [%124, %$39] ; # X\n  br label %$40\n$41:\n  %128 = phi i64 [%124, %$39] ; # X\n  %129 = and i64 %128, 8\n  %130 = icmp ne i64 %129, 0\n  br i1 %130, label %$44, label %$43\n$44:\n  %131 = phi i64 [%128, %$41] ; # X\n  %132 = inttoptr i64 %131 to i64*\n  %133 = load i64, i64* %132\n  br label %$40\n$43:\n  %134 = phi i64 [%128, %$41] ; # X\n  %135 = call i64 @evList(i64 %134)\n  br label %$40\n$40:\n  %136 = phi i64 [%127, %$42], [%131, %$44], [%134, %$43] ; # X\n  %137 = phi i64 [%127, %$42], [%133, %$44], [%135, %$43] ; # ->\n  br label %$38\n$37:\n  %138 = phi i64 [%119, %$36] ; # Prg\n  %139 = phi i64 [%120, %$36] ; # X\n  %140 = and i64 %139, 15\n  %141 = icmp eq i64 %140, 0\n  br i1 %141, label %$46, label %$45\n$46:\n  %142 = phi i64 [%138, %$37] ; # Prg\n  %143 = phi i64 [%139, %$37] ; # X\n  %144 = call i64 @evList(i64 %143)\n  %145 = icmp ne i64 %144, 0\n  br label %$45\n$45:\n  %146 = phi i64 [%138, %$37], [%142, %$46] ; # Prg\n  %147 = phi i64 [%139, %$37], [%143, %$46] ; # X\n  %148 = phi i1 [0, %$37], [%145, %$46] ; # ->\n  br label %$36\n$38:\n  %149 = phi i64 [%123, %$40] ; # Prg\n  %150 = phi i64 [%137, %$40] ; # ->\n; # (ret (run (cdr E)))\n  ret i64 %150\n$35:\n  %151 = phi i64 [%87, %$29] ; # Y\n  %152 = phi i64 [%88, %$29] ; # X\n  %153 = phi i64 [%92, %$29] ; # E\n  br label %$6\n$27:\n  %154 = phi i64 [%81, %$7] ; # Y\n  %155 = phi i64 [%82, %$7] ; # X\n  %156 = phi i64 [%83, %$7] ; # E\n; # (evList E)\n  %157 = call i64 @evList(i64 %156)\n  br label %$6\n$6:\n  %158 = phi i64 [%77, %$15], [%151, %$35], [%154, %$27] ; # Y\n  %159 = phi i64 [%78, %$15], [%152, %$35], [%155, %$27] ; # X\n  %160 = phi i64 [%79, %$15], [%153, %$35], [%156, %$27] ; # E\n  br label %$5\n$5:\n  %161 = phi i64 [%2, %$3], [%158, %$6] ; # Y\n  %162 = phi i64 [%3, %$3], [%159, %$6] ; # X\n  %163 = phi i64 [%5, %$3], [%160, %$6] ; # E\n; # (? (atom (shift X)))\n; # (shift X)\n  %164 = inttoptr i64 %162 to i64*\n  %165 = getelementptr i64, i64* %164, i32 1\n  %166 = load i64, i64* %165\n; # (atom (shift X))\n  %167 = and i64 %166, 15\n  %168 = icmp ne i64 %167, 0\n  br i1 %168, label %$48, label %$47\n$47:\n  %169 = phi i64 [%161, %$5] ; # Y\n  %170 = phi i64 [%166, %$5] ; # X\n  br label %$3\n$48:\n  %171 = phi i64 [%161, %$5] ; # Y\n  %172 = phi i64 [%166, %$5] ; # X\n  %173 = phi i64 [0, %$5] ; # ->\n  br label %$2\n}\n\ndefine i64 @_Do(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((nil? Y) Y) ((cnt? Y) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((nil? Y) Y) ((cnt? Y) (let N (int Y) (if (or (sign? Y) (=0...\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # Y\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i64 [%20, %$2] ; # Y\n; # (cnt? Y)\n  %28 = and i64 %27, 2\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$11, label %$10\n$11:\n  %30 = phi i64 [%25, %$8] ; # Exe\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%27, %$8] ; # Y\n; # (let N (int Y) (if (or (sign? Y) (=0 N)) $Nil (loop (let R (loop1...\n; # (int Y)\n  %33 = lshr i64 %32, 4\n; # (if (or (sign? Y) (=0 N)) $Nil (loop (let R (loop1 X) (? (=0 (& R...\n; # (or (sign? Y) (=0 N))\n; # (sign? Y)\n  %34 = and i64 %32, 8\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$12, label %$13\n$13:\n  %36 = phi i64 [%30, %$11] ; # Exe\n  %37 = phi i64 [%31, %$11] ; # X\n  %38 = phi i64 [%32, %$11] ; # Y\n  %39 = phi i64 [%33, %$11] ; # N\n; # (=0 N)\n  %40 = icmp eq i64 %39, 0\n  br label %$12\n$12:\n  %41 = phi i64 [%30, %$11], [%36, %$13] ; # Exe\n  %42 = phi i64 [%31, %$11], [%37, %$13] ; # X\n  %43 = phi i64 [%32, %$11], [%38, %$13] ; # Y\n  %44 = phi i64 [%33, %$11], [%39, %$13] ; # N\n  %45 = phi i1 [1, %$11], [%40, %$13] ; # ->\n  br i1 %45, label %$14, label %$15\n$14:\n  %46 = phi i64 [%41, %$12] ; # Exe\n  %47 = phi i64 [%42, %$12] ; # X\n  %48 = phi i64 [%43, %$12] ; # Y\n  %49 = phi i64 [%44, %$12] ; # N\n  br label %$16\n$15:\n  %50 = phi i64 [%41, %$12] ; # Exe\n  %51 = phi i64 [%42, %$12] ; # X\n  %52 = phi i64 [%43, %$12] ; # Y\n  %53 = phi i64 [%44, %$12] ; # N\n; # (loop (let R (loop1 X) (? (=0 (& R 1)) R) (? (=0 (dec 'N)) (& R -...\n  br label %$17\n$17:\n  %54 = phi i64 [%50, %$15], [%79, %$21] ; # Exe\n  %55 = phi i64 [%51, %$15], [%80, %$21] ; # X\n  %56 = phi i64 [%52, %$15], [%81, %$21] ; # Y\n  %57 = phi i64 [%53, %$15], [%82, %$21] ; # N\n; # (let R (loop1 X) (? (=0 (& R 1)) R) (? (=0 (dec 'N)) (& R -2)))\n; # (loop1 X)\n  %58 = call i64 @loop1(i64 %55)\n; # (? (=0 (& R 1)) R)\n; # (& R 1)\n  %59 = and i64 %58, 1\n; # (=0 (& R 1))\n  %60 = icmp eq i64 %59, 0\n  br i1 %60, label %$20, label %$18\n$20:\n  %61 = phi i64 [%54, %$17] ; # Exe\n  %62 = phi i64 [%55, %$17] ; # X\n  %63 = phi i64 [%56, %$17] ; # Y\n  %64 = phi i64 [%57, %$17] ; # N\n  %65 = phi i64 [%58, %$17] ; # R\n  br label %$19\n$18:\n  %66 = phi i64 [%54, %$17] ; # Exe\n  %67 = phi i64 [%55, %$17] ; # X\n  %68 = phi i64 [%56, %$17] ; # Y\n  %69 = phi i64 [%57, %$17] ; # N\n  %70 = phi i64 [%58, %$17] ; # R\n; # (? (=0 (dec 'N)) (& R -2))\n; # (dec 'N)\n  %71 = sub i64 %69, 1\n; # (=0 (dec 'N))\n  %72 = icmp eq i64 %71, 0\n  br i1 %72, label %$22, label %$21\n$22:\n  %73 = phi i64 [%66, %$18] ; # Exe\n  %74 = phi i64 [%67, %$18] ; # X\n  %75 = phi i64 [%68, %$18] ; # Y\n  %76 = phi i64 [%71, %$18] ; # N\n  %77 = phi i64 [%70, %$18] ; # R\n; # (& R -2)\n  %78 = and i64 %77, -2\n  br label %$19\n$21:\n  %79 = phi i64 [%66, %$18] ; # Exe\n  %80 = phi i64 [%67, %$18] ; # X\n  %81 = phi i64 [%68, %$18] ; # Y\n  %82 = phi i64 [%71, %$18] ; # N\n  %83 = phi i64 [%70, %$18] ; # R\n  br label %$17\n$19:\n  %84 = phi i64 [%61, %$20], [%73, %$22] ; # Exe\n  %85 = phi i64 [%62, %$20], [%74, %$22] ; # X\n  %86 = phi i64 [%63, %$20], [%75, %$22] ; # Y\n  %87 = phi i64 [%64, %$20], [%76, %$22] ; # N\n  %88 = phi i64 [%65, %$20], [%78, %$22] ; # ->\n  br label %$16\n$16:\n  %89 = phi i64 [%46, %$14], [%84, %$19] ; # Exe\n  %90 = phi i64 [%47, %$14], [%85, %$19] ; # X\n  %91 = phi i64 [%48, %$14], [%86, %$19] ; # Y\n  %92 = phi i64 [%49, %$14], [%87, %$19] ; # N\n  %93 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$14], [%88, %$19] ; # ->\n  br label %$7\n$10:\n  %94 = phi i64 [%25, %$8] ; # Exe\n  %95 = phi i64 [%26, %$8] ; # X\n  %96 = phi i64 [%27, %$8] ; # Y\n; # (loop2 X)\n  %97 = call i64 @loop2(i64 %95)\n  br label %$7\n$7:\n  %98 = phi i64 [%22, %$9], [%89, %$16], [%94, %$10] ; # Exe\n  %99 = phi i64 [%23, %$9], [%90, %$16], [%95, %$10] ; # X\n  %100 = phi i64 [%24, %$9], [%91, %$16], [%96, %$10] ; # Y\n  %101 = phi i64 [%24, %$9], [%93, %$16], [%97, %$10] ; # ->\n  ret i64 %101\n}\n\ndefine i64 @_Loop(i64) align 8 {\n$1:\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop2 (cdr Exe))\n  %4 = tail call i64 @loop2(i64 %3)\n  ret i64 %4\n}\n\ndefine i64 @_For(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (++ X) R $Nil) (cond ((atom Y) (needChkVar Ex...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (cond ((atom Y) (needChkVar Exe Y) (let P (set $Bind (push NIL NI...\n; # (atom Y)\n  %8 = and i64 %7, 15\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%6, %$1] ; # X\n  %12 = phi i64 [%7, %$1] ; # Y\n  %13 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1] ; # R\n; # (needChkVar Exe Y)\n  %14 = and i64 %12, 6\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$5, label %$6\n$5:\n  %16 = phi i64 [%12, %$4] ; # X\n  %17 = phi i64 [%10, %$4] ; # Exe\n  call void @varErr(i64 %17, i64 %16)\n  unreachable\n$6:\n  %18 = phi i64 [%12, %$4] ; # X\n  %19 = phi i64 [%10, %$4] ; # Exe\n  %20 = icmp uge i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %20, label %$8, label %$7\n$8:\n  %21 = phi i64 [%18, %$6] ; # X\n  %22 = phi i64 [%19, %$6] ; # Exe\n  %23 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %21\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$6], [%21, %$8] ; # X\n  %25 = phi i64 [%19, %$6], [%22, %$8] ; # Exe\n  %26 = phi i1 [0, %$6], [%23, %$8] ; # ->\n  br i1 %26, label %$9, label %$10\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @protErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n; # (let P (set $Bind (push NIL NIL (val $Bind))) (set P (val Y) 2 P ...\n; # (set $Bind (push NIL NIL (val $Bind)))\n; # (val $Bind)\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %32 = load i64, i64* %31\n; # (push NIL NIL (val $Bind))\n  %33 = alloca i64, i64 3, align 16\n  %34 = ptrtoint i64* %33 to i64\n  %35 = add i64 %34, 16\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %32, i64* %36\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %34, i64* %37\n; # (set P (val Y) 2 P Y)\n; # (val Y)\n  %38 = inttoptr i64 %12 to i64*\n  %39 = load i64, i64* %38\n  %40 = inttoptr i64 %34 to i64*\n  store i64 %39, i64* %40\n  %41 = inttoptr i64 %34 to i64*\n  %42 = getelementptr i64, i64* %41, i32 1\n  store i64 %12, i64* %42\n; # (let V (eval (++ X)) (if (num? V) (unless (sign? V) (set Y ZERO) ...\n; # (++ X)\n  %43 = inttoptr i64 %11 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n  %46 = load i64, i64* %43\n; # (eval (++ X))\n  %47 = and i64 %46, 6\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$13, label %$12\n$13:\n  %49 = phi i64 [%46, %$10] ; # X\n  br label %$11\n$12:\n  %50 = phi i64 [%46, %$10] ; # X\n  %51 = and i64 %50, 8\n  %52 = icmp ne i64 %51, 0\n  br i1 %52, label %$15, label %$14\n$15:\n  %53 = phi i64 [%50, %$12] ; # X\n  %54 = inttoptr i64 %53 to i64*\n  %55 = load i64, i64* %54\n  br label %$11\n$14:\n  %56 = phi i64 [%50, %$12] ; # X\n  %57 = call i64 @evList(i64 %56)\n  br label %$11\n$11:\n  %58 = phi i64 [%49, %$13], [%53, %$15], [%56, %$14] ; # X\n  %59 = phi i64 [%49, %$13], [%55, %$15], [%57, %$14] ; # ->\n; # (if (num? V) (unless (sign? V) (set Y ZERO) (loop (? (> (+ (val Y...\n; # (num? V)\n  %60 = and i64 %59, 6\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$16, label %$17\n$16:\n  %62 = phi i64 [%10, %$11] ; # Exe\n  %63 = phi i64 [%45, %$11] ; # X\n  %64 = phi i64 [%12, %$11] ; # Y\n  %65 = phi i64 [%13, %$11] ; # R\n  %66 = phi i64 [%34, %$11] ; # P\n  %67 = phi i64 [%59, %$11] ; # V\n; # (unless (sign? V) (set Y ZERO) (loop (? (> (+ (val Y) (hex \"10\"))...\n; # (sign? V)\n  %68 = and i64 %67, 8\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$20, label %$19\n$19:\n  %70 = phi i64 [%62, %$16] ; # Exe\n  %71 = phi i64 [%63, %$16] ; # X\n  %72 = phi i64 [%64, %$16] ; # Y\n  %73 = phi i64 [%65, %$16] ; # R\n  %74 = phi i64 [%66, %$16] ; # P\n  %75 = phi i64 [%67, %$16] ; # V\n; # (set Y ZERO)\n  %76 = inttoptr i64 %72 to i64*\n  store i64 2, i64* %76\n; # (loop (? (> (+ (val Y) (hex \"10\")) V) (setq R (& R -2))) (set Y @...\n  br label %$21\n$21:\n  %77 = phi i64 [%70, %$19], [%104, %$25] ; # Exe\n  %78 = phi i64 [%71, %$19], [%105, %$25] ; # X\n  %79 = phi i64 [%72, %$19], [%106, %$25] ; # Y\n  %80 = phi i64 [%73, %$19], [%107, %$25] ; # R\n  %81 = phi i64 [%74, %$19], [%108, %$25] ; # P\n  %82 = phi i64 [%75, %$19], [%109, %$25] ; # V\n; # (? (> (+ (val Y) (hex \"10\")) V) (setq R (& R -2)))\n; # (val Y)\n  %83 = inttoptr i64 %79 to i64*\n  %84 = load i64, i64* %83\n; # (+ (val Y) (hex \"10\"))\n  %85 = add i64 %84, 16\n; # (> (+ (val Y) (hex \"10\")) V)\n  %86 = icmp ugt i64 %85, %82\n  br i1 %86, label %$24, label %$22\n$24:\n  %87 = phi i64 [%77, %$21] ; # Exe\n  %88 = phi i64 [%78, %$21] ; # X\n  %89 = phi i64 [%79, %$21] ; # Y\n  %90 = phi i64 [%80, %$21] ; # R\n  %91 = phi i64 [%81, %$21] ; # P\n  %92 = phi i64 [%82, %$21] ; # V\n; # (& R -2)\n  %93 = and i64 %90, -2\n  br label %$23\n$22:\n  %94 = phi i64 [%77, %$21] ; # Exe\n  %95 = phi i64 [%78, %$21] ; # X\n  %96 = phi i64 [%79, %$21] ; # Y\n  %97 = phi i64 [%80, %$21] ; # R\n  %98 = phi i64 [%81, %$21] ; # P\n  %99 = phi i64 [%82, %$21] ; # V\n; # (set Y @)\n  %100 = inttoptr i64 %96 to i64*\n  store i64 %85, i64* %100\n; # (? (=0 (& (setq R (loop1 X)) 1)))\n; # (loop1 X)\n  %101 = call i64 @loop1(i64 %95)\n; # (& (setq R (loop1 X)) 1)\n  %102 = and i64 %101, 1\n; # (=0 (& (setq R (loop1 X)) 1))\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$23, label %$25\n$25:\n  %104 = phi i64 [%94, %$22] ; # Exe\n  %105 = phi i64 [%95, %$22] ; # X\n  %106 = phi i64 [%96, %$22] ; # Y\n  %107 = phi i64 [%101, %$22] ; # R\n  %108 = phi i64 [%98, %$22] ; # P\n  %109 = phi i64 [%99, %$22] ; # V\n  br label %$21\n$23:\n  %110 = phi i64 [%87, %$24], [%94, %$22] ; # Exe\n  %111 = phi i64 [%88, %$24], [%95, %$22] ; # X\n  %112 = phi i64 [%89, %$24], [%96, %$22] ; # Y\n  %113 = phi i64 [%93, %$24], [%101, %$22] ; # R\n  %114 = phi i64 [%91, %$24], [%98, %$22] ; # P\n  %115 = phi i64 [%92, %$24], [%99, %$22] ; # V\n  %116 = phi i64 [%93, %$24], [0, %$22] ; # ->\n  br label %$20\n$20:\n  %117 = phi i64 [%62, %$16], [%110, %$23] ; # Exe\n  %118 = phi i64 [%63, %$16], [%111, %$23] ; # X\n  %119 = phi i64 [%64, %$16], [%112, %$23] ; # Y\n  %120 = phi i64 [%65, %$16], [%113, %$23] ; # R\n  %121 = phi i64 [%66, %$16], [%114, %$23] ; # P\n  %122 = phi i64 [%67, %$16], [%115, %$23] ; # V\n  br label %$18\n$17:\n  %123 = phi i64 [%10, %$11] ; # Exe\n  %124 = phi i64 [%45, %$11] ; # X\n  %125 = phi i64 [%12, %$11] ; # Y\n  %126 = phi i64 [%13, %$11] ; # R\n  %127 = phi i64 [%34, %$11] ; # P\n  %128 = phi i64 [%59, %$11] ; # V\n; # (save V (loop (? (atom V) (setq R (& R -2))) (set Y (car V)) (? (...\n  %129 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %130 = load i64, i64* %129\n  %131 = alloca i64, i64 2, align 16\n  %132 = ptrtoint i64* %131 to i64\n  %133 = inttoptr i64 %132 to i64*\n  store i64 %128, i64* %133\n  %134 = add i64 %132, 8\n  %135 = inttoptr i64 %134 to i64*\n  store i64 %130, i64* %135\n  %136 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %132, i64* %136\n; # (loop (? (atom V) (setq R (& R -2))) (set Y (car V)) (? (=0 (& (s...\n  br label %$26\n$26:\n  %137 = phi i64 [%123, %$17], [%164, %$30] ; # Exe\n  %138 = phi i64 [%124, %$17], [%165, %$30] ; # X\n  %139 = phi i64 [%125, %$17], [%166, %$30] ; # Y\n  %140 = phi i64 [%126, %$17], [%167, %$30] ; # R\n  %141 = phi i64 [%127, %$17], [%168, %$30] ; # P\n  %142 = phi i64 [%128, %$17], [%172, %$30] ; # V\n; # (? (atom V) (setq R (& R -2)))\n; # (atom V)\n  %143 = and i64 %142, 15\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$29, label %$27\n$29:\n  %145 = phi i64 [%137, %$26] ; # Exe\n  %146 = phi i64 [%138, %$26] ; # X\n  %147 = phi i64 [%139, %$26] ; # Y\n  %148 = phi i64 [%140, %$26] ; # R\n  %149 = phi i64 [%141, %$26] ; # P\n  %150 = phi i64 [%142, %$26] ; # V\n; # (& R -2)\n  %151 = and i64 %148, -2\n  br label %$28\n$27:\n  %152 = phi i64 [%137, %$26] ; # Exe\n  %153 = phi i64 [%138, %$26] ; # X\n  %154 = phi i64 [%139, %$26] ; # Y\n  %155 = phi i64 [%140, %$26] ; # R\n  %156 = phi i64 [%141, %$26] ; # P\n  %157 = phi i64 [%142, %$26] ; # V\n; # (set Y (car V))\n; # (car V)\n  %158 = inttoptr i64 %157 to i64*\n  %159 = load i64, i64* %158\n  %160 = inttoptr i64 %154 to i64*\n  store i64 %159, i64* %160\n; # (? (=0 (& (setq R (loop1 X)) 1)))\n; # (loop1 X)\n  %161 = call i64 @loop1(i64 %153)\n; # (& (setq R (loop1 X)) 1)\n  %162 = and i64 %161, 1\n; # (=0 (& (setq R (loop1 X)) 1))\n  %163 = icmp eq i64 %162, 0\n  br i1 %163, label %$28, label %$30\n$30:\n  %164 = phi i64 [%152, %$27] ; # Exe\n  %165 = phi i64 [%153, %$27] ; # X\n  %166 = phi i64 [%154, %$27] ; # Y\n  %167 = phi i64 [%161, %$27] ; # R\n  %168 = phi i64 [%156, %$27] ; # P\n  %169 = phi i64 [%157, %$27] ; # V\n; # (shift V)\n  %170 = inttoptr i64 %169 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n; # (safe (shift V))\n  %173 = inttoptr i64 %132 to i64*\n  store i64 %172, i64* %173\n  br label %$26\n$28:\n  %174 = phi i64 [%145, %$29], [%152, %$27] ; # Exe\n  %175 = phi i64 [%146, %$29], [%153, %$27] ; # X\n  %176 = phi i64 [%147, %$29], [%154, %$27] ; # Y\n  %177 = phi i64 [%151, %$29], [%161, %$27] ; # R\n  %178 = phi i64 [%149, %$29], [%156, %$27] ; # P\n  %179 = phi i64 [%150, %$29], [%157, %$27] ; # V\n  %180 = phi i64 [%151, %$29], [0, %$27] ; # ->\n; # drop\n  %181 = inttoptr i64 %132 to i64*\n  %182 = getelementptr i64, i64* %181, i32 1\n  %183 = load i64, i64* %182\n  %184 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %183, i64* %184\n  br label %$18\n$18:\n  %185 = phi i64 [%117, %$20], [%174, %$28] ; # Exe\n  %186 = phi i64 [%118, %$20], [%175, %$28] ; # X\n  %187 = phi i64 [%119, %$20], [%176, %$28] ; # Y\n  %188 = phi i64 [%120, %$20], [%177, %$28] ; # R\n  %189 = phi i64 [%121, %$20], [%178, %$28] ; # P\n  %190 = phi i64 [%122, %$20], [%179, %$28] ; # V\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %191 = inttoptr i64 %189 to i64*\n  %192 = load i64, i64* %191\n  %193 = inttoptr i64 %187 to i64*\n  store i64 %192, i64* %193\n; # (val 3 P)\n  %194 = inttoptr i64 %189 to i64*\n  %195 = getelementptr i64, i64* %194, i32 2\n  %196 = load i64, i64* %195\n  %197 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %196, i64* %197\n  br label %$2\n$3:\n  %198 = phi i64 [%0, %$1] ; # Exe\n  %199 = phi i64 [%6, %$1] ; # X\n  %200 = phi i64 [%7, %$1] ; # Y\n  %201 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1] ; # R\n; # (cdr Y)\n  %202 = inttoptr i64 %200 to i64*\n  %203 = getelementptr i64, i64* %202, i32 1\n  %204 = load i64, i64* %203\n; # (atom (cdr Y))\n  %205 = and i64 %204, 15\n  %206 = icmp ne i64 %205, 0\n  br i1 %206, label %$32, label %$31\n$32:\n  %207 = phi i64 [%198, %$3] ; # Exe\n  %208 = phi i64 [%199, %$3] ; # X\n  %209 = phi i64 [%200, %$3] ; # Y\n  %210 = phi i64 [%201, %$3] ; # R\n; # (let Sym2 (needChkVar Exe @) (needChkVar Exe (setq Y (car Y))) (l...\n; # (needChkVar Exe @)\n  %211 = and i64 %204, 6\n  %212 = icmp ne i64 %211, 0\n  br i1 %212, label %$33, label %$34\n$33:\n  %213 = phi i64 [%204, %$32] ; # X\n  %214 = phi i64 [%207, %$32] ; # Exe\n  call void @varErr(i64 %214, i64 %213)\n  unreachable\n$34:\n  %215 = phi i64 [%204, %$32] ; # X\n  %216 = phi i64 [%207, %$32] ; # Exe\n  %217 = icmp uge i64 %215, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %217, label %$36, label %$35\n$36:\n  %218 = phi i64 [%215, %$34] ; # X\n  %219 = phi i64 [%216, %$34] ; # Exe\n  %220 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %218\n  br label %$35\n$35:\n  %221 = phi i64 [%215, %$34], [%218, %$36] ; # X\n  %222 = phi i64 [%216, %$34], [%219, %$36] ; # Exe\n  %223 = phi i1 [0, %$34], [%220, %$36] ; # ->\n  br i1 %223, label %$37, label %$38\n$37:\n  %224 = phi i64 [%221, %$35] ; # X\n  %225 = phi i64 [%222, %$35] ; # Exe\n  call void @protErr(i64 %225, i64 %224)\n  unreachable\n$38:\n  %226 = phi i64 [%221, %$35] ; # X\n  %227 = phi i64 [%222, %$35] ; # Exe\n; # (car Y)\n  %228 = inttoptr i64 %209 to i64*\n  %229 = load i64, i64* %228\n; # (needChkVar Exe (setq Y (car Y)))\n  %230 = and i64 %229, 6\n  %231 = icmp ne i64 %230, 0\n  br i1 %231, label %$39, label %$40\n$39:\n  %232 = phi i64 [%229, %$38] ; # X\n  %233 = phi i64 [%207, %$38] ; # Exe\n  call void @varErr(i64 %233, i64 %232)\n  unreachable\n$40:\n  %234 = phi i64 [%229, %$38] ; # X\n  %235 = phi i64 [%207, %$38] ; # Exe\n  %236 = icmp uge i64 %234, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %236, label %$42, label %$41\n$42:\n  %237 = phi i64 [%234, %$40] ; # X\n  %238 = phi i64 [%235, %$40] ; # Exe\n  %239 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %237\n  br label %$41\n$41:\n  %240 = phi i64 [%234, %$40], [%237, %$42] ; # X\n  %241 = phi i64 [%235, %$40], [%238, %$42] ; # Exe\n  %242 = phi i1 [0, %$40], [%239, %$42] ; # ->\n  br i1 %242, label %$43, label %$44\n$43:\n  %243 = phi i64 [%240, %$41] ; # X\n  %244 = phi i64 [%241, %$41] ; # Exe\n  call void @protErr(i64 %244, i64 %243)\n  unreachable\n$44:\n  %245 = phi i64 [%240, %$41] ; # X\n  %246 = phi i64 [%241, %$41] ; # Exe\n; # (let P (set $Bind (push NIL NIL (val $Bind))) (set P (val Y) 2 P ...\n; # (set $Bind (push NIL NIL (val $Bind)))\n; # (val $Bind)\n  %247 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %248 = load i64, i64* %247\n; # (push NIL NIL (val $Bind))\n  %249 = alloca i64, i64 3, align 16\n  %250 = ptrtoint i64* %249 to i64\n  %251 = add i64 %250, 16\n  %252 = inttoptr i64 %251 to i64*\n  store i64 %248, i64* %252\n  %253 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %250, i64* %253\n; # (set P (val Y) 2 P Y)\n; # (val Y)\n  %254 = inttoptr i64 %229 to i64*\n  %255 = load i64, i64* %254\n  %256 = inttoptr i64 %250 to i64*\n  store i64 %255, i64* %256\n  %257 = inttoptr i64 %250 to i64*\n  %258 = getelementptr i64, i64* %257, i32 1\n  store i64 %229, i64* %258\n; # (let (Q (set $Bind (push (val Sym2) Sym2 (val $Bind))) V (save (e...\n; # (set $Bind (push (val Sym2) Sym2 (val $Bind)))\n; # (val Sym2)\n  %259 = inttoptr i64 %215 to i64*\n  %260 = load i64, i64* %259\n; # (val $Bind)\n  %261 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %262 = load i64, i64* %261\n; # (push (val Sym2) Sym2 (val $Bind))\n  %263 = alloca i64, i64 3, align 16\n  %264 = ptrtoint i64* %263 to i64\n  %265 = inttoptr i64 %264 to i64*\n  store i64 %260, i64* %265\n  %266 = add i64 %264, 8\n  %267 = inttoptr i64 %266 to i64*\n  store i64 %215, i64* %267\n  %268 = add i64 %264, 16\n  %269 = inttoptr i64 %268 to i64*\n  store i64 %262, i64* %269\n  %270 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %264, i64* %270\n; # (++ X)\n  %271 = inttoptr i64 %208 to i64*\n  %272 = getelementptr i64, i64* %271, i32 1\n  %273 = load i64, i64* %272\n  %274 = load i64, i64* %271\n; # (eval (++ X))\n  %275 = and i64 %274, 6\n  %276 = icmp ne i64 %275, 0\n  br i1 %276, label %$47, label %$46\n$47:\n  %277 = phi i64 [%274, %$44] ; # X\n  br label %$45\n$46:\n  %278 = phi i64 [%274, %$44] ; # X\n  %279 = and i64 %278, 8\n  %280 = icmp ne i64 %279, 0\n  br i1 %280, label %$49, label %$48\n$49:\n  %281 = phi i64 [%278, %$46] ; # X\n  %282 = inttoptr i64 %281 to i64*\n  %283 = load i64, i64* %282\n  br label %$45\n$48:\n  %284 = phi i64 [%278, %$46] ; # X\n  %285 = call i64 @evList(i64 %284)\n  br label %$45\n$45:\n  %286 = phi i64 [%277, %$47], [%281, %$49], [%284, %$48] ; # X\n  %287 = phi i64 [%277, %$47], [%283, %$49], [%285, %$48] ; # ->\n; # (save (eval (++ X)))\n  %288 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %289 = load i64, i64* %288\n  %290 = alloca i64, i64 2, align 16\n  %291 = ptrtoint i64* %290 to i64\n  %292 = inttoptr i64 %291 to i64*\n  store i64 %287, i64* %292\n  %293 = add i64 %291, 8\n  %294 = inttoptr i64 %293 to i64*\n  store i64 %289, i64* %294\n  %295 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %291, i64* %295\n; # (set Y ONE)\n  %296 = inttoptr i64 %229 to i64*\n  store i64 18, i64* %296\n; # (loop (? (atom V) (setq R (& R -2))) (set Sym2 (car V)) (? (=0 (&...\n  br label %$50\n$50:\n  %297 = phi i64 [%207, %$45], [%330, %$54] ; # Exe\n  %298 = phi i64 [%273, %$45], [%331, %$54] ; # X\n  %299 = phi i64 [%229, %$45], [%332, %$54] ; # Y\n  %300 = phi i64 [%210, %$45], [%333, %$54] ; # R\n  %301 = phi i64 [%215, %$45], [%334, %$54] ; # Sym2\n  %302 = phi i64 [%250, %$45], [%335, %$54] ; # P\n  %303 = phi i64 [%264, %$45], [%336, %$54] ; # Q\n  %304 = phi i64 [%287, %$45], [%344, %$54] ; # V\n; # (? (atom V) (setq R (& R -2)))\n; # (atom V)\n  %305 = and i64 %304, 15\n  %306 = icmp ne i64 %305, 0\n  br i1 %306, label %$53, label %$51\n$53:\n  %307 = phi i64 [%297, %$50] ; # Exe\n  %308 = phi i64 [%298, %$50] ; # X\n  %309 = phi i64 [%299, %$50] ; # Y\n  %310 = phi i64 [%300, %$50] ; # R\n  %311 = phi i64 [%301, %$50] ; # Sym2\n  %312 = phi i64 [%302, %$50] ; # P\n  %313 = phi i64 [%303, %$50] ; # Q\n  %314 = phi i64 [%304, %$50] ; # V\n; # (& R -2)\n  %315 = and i64 %310, -2\n  br label %$52\n$51:\n  %316 = phi i64 [%297, %$50] ; # Exe\n  %317 = phi i64 [%298, %$50] ; # X\n  %318 = phi i64 [%299, %$50] ; # Y\n  %319 = phi i64 [%300, %$50] ; # R\n  %320 = phi i64 [%301, %$50] ; # Sym2\n  %321 = phi i64 [%302, %$50] ; # P\n  %322 = phi i64 [%303, %$50] ; # Q\n  %323 = phi i64 [%304, %$50] ; # V\n; # (set Sym2 (car V))\n; # (car V)\n  %324 = inttoptr i64 %323 to i64*\n  %325 = load i64, i64* %324\n  %326 = inttoptr i64 %320 to i64*\n  store i64 %325, i64* %326\n; # (? (=0 (& (setq R (loop1 X)) 1)))\n; # (loop1 X)\n  %327 = call i64 @loop1(i64 %317)\n; # (& (setq R (loop1 X)) 1)\n  %328 = and i64 %327, 1\n; # (=0 (& (setq R (loop1 X)) 1))\n  %329 = icmp eq i64 %328, 0\n  br i1 %329, label %$52, label %$54\n$54:\n  %330 = phi i64 [%316, %$51] ; # Exe\n  %331 = phi i64 [%317, %$51] ; # X\n  %332 = phi i64 [%318, %$51] ; # Y\n  %333 = phi i64 [%327, %$51] ; # R\n  %334 = phi i64 [%320, %$51] ; # Sym2\n  %335 = phi i64 [%321, %$51] ; # P\n  %336 = phi i64 [%322, %$51] ; # Q\n  %337 = phi i64 [%323, %$51] ; # V\n; # (set Y (+ (val Y) (hex \"10\")))\n; # (val Y)\n  %338 = inttoptr i64 %332 to i64*\n  %339 = load i64, i64* %338\n; # (+ (val Y) (hex \"10\"))\n  %340 = add i64 %339, 16\n  %341 = inttoptr i64 %332 to i64*\n  store i64 %340, i64* %341\n; # (shift V)\n  %342 = inttoptr i64 %337 to i64*\n  %343 = getelementptr i64, i64* %342, i32 1\n  %344 = load i64, i64* %343\n; # (safe (shift V))\n  %345 = inttoptr i64 %291 to i64*\n  store i64 %344, i64* %345\n  br label %$50\n$52:\n  %346 = phi i64 [%307, %$53], [%316, %$51] ; # Exe\n  %347 = phi i64 [%308, %$53], [%317, %$51] ; # X\n  %348 = phi i64 [%309, %$53], [%318, %$51] ; # Y\n  %349 = phi i64 [%315, %$53], [%327, %$51] ; # R\n  %350 = phi i64 [%311, %$53], [%320, %$51] ; # Sym2\n  %351 = phi i64 [%312, %$53], [%321, %$51] ; # P\n  %352 = phi i64 [%313, %$53], [%322, %$51] ; # Q\n  %353 = phi i64 [%314, %$53], [%323, %$51] ; # V\n  %354 = phi i64 [%315, %$53], [0, %$51] ; # ->\n; # (set Sym2 (val Q))\n; # (val Q)\n  %355 = inttoptr i64 %352 to i64*\n  %356 = load i64, i64* %355\n  %357 = inttoptr i64 %350 to i64*\n  store i64 %356, i64* %357\n; # (drop *Safe)\n  %358 = inttoptr i64 %291 to i64*\n  %359 = getelementptr i64, i64* %358, i32 1\n  %360 = load i64, i64* %359\n  %361 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %360, i64* %361\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %362 = inttoptr i64 %351 to i64*\n  %363 = load i64, i64* %362\n  %364 = inttoptr i64 %348 to i64*\n  store i64 %363, i64* %364\n; # (val 3 P)\n  %365 = inttoptr i64 %351 to i64*\n  %366 = getelementptr i64, i64* %365, i32 2\n  %367 = load i64, i64* %366\n  %368 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %367, i64* %368\n  br label %$2\n$31:\n  %369 = phi i64 [%198, %$3] ; # Exe\n  %370 = phi i64 [%199, %$3] ; # X\n  %371 = phi i64 [%200, %$3] ; # Y\n  %372 = phi i64 [%201, %$3] ; # R\n; # (car Y)\n  %373 = inttoptr i64 %371 to i64*\n  %374 = load i64, i64* %373\n; # (atom (car Y))\n  %375 = and i64 %374, 15\n  %376 = icmp ne i64 %375, 0\n  br i1 %376, label %$56, label %$55\n$56:\n  %377 = phi i64 [%369, %$31] ; # Exe\n  %378 = phi i64 [%370, %$31] ; # X\n  %379 = phi i64 [%371, %$31] ; # Y\n  %380 = phi i64 [%372, %$31] ; # R\n; # (let Z (cdr Y) (needChkVar Exe (setq Y @)) (let P (set $Bind (pus...\n; # (cdr Y)\n  %381 = inttoptr i64 %379 to i64*\n  %382 = getelementptr i64, i64* %381, i32 1\n  %383 = load i64, i64* %382\n; # (needChkVar Exe (setq Y @))\n  %384 = and i64 %374, 6\n  %385 = icmp ne i64 %384, 0\n  br i1 %385, label %$57, label %$58\n$57:\n  %386 = phi i64 [%374, %$56] ; # X\n  %387 = phi i64 [%377, %$56] ; # Exe\n  call void @varErr(i64 %387, i64 %386)\n  unreachable\n$58:\n  %388 = phi i64 [%374, %$56] ; # X\n  %389 = phi i64 [%377, %$56] ; # Exe\n  %390 = icmp uge i64 %388, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %390, label %$60, label %$59\n$60:\n  %391 = phi i64 [%388, %$58] ; # X\n  %392 = phi i64 [%389, %$58] ; # Exe\n  %393 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %391\n  br label %$59\n$59:\n  %394 = phi i64 [%388, %$58], [%391, %$60] ; # X\n  %395 = phi i64 [%389, %$58], [%392, %$60] ; # Exe\n  %396 = phi i1 [0, %$58], [%393, %$60] ; # ->\n  br i1 %396, label %$61, label %$62\n$61:\n  %397 = phi i64 [%394, %$59] ; # X\n  %398 = phi i64 [%395, %$59] ; # Exe\n  call void @protErr(i64 %398, i64 %397)\n  unreachable\n$62:\n  %399 = phi i64 [%394, %$59] ; # X\n  %400 = phi i64 [%395, %$59] ; # Exe\n; # (let P (set $Bind (push NIL NIL (val $Bind))) (set P (val Y) 2 P ...\n; # (set $Bind (push NIL NIL (val $Bind)))\n; # (val $Bind)\n  %401 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %402 = load i64, i64* %401\n; # (push NIL NIL (val $Bind))\n  %403 = alloca i64, i64 3, align 16\n  %404 = ptrtoint i64* %403 to i64\n  %405 = add i64 %404, 16\n  %406 = inttoptr i64 %405 to i64*\n  store i64 %402, i64* %406\n  %407 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %404, i64* %407\n; # (set P (val Y) 2 P Y Y (eval (++ Z)))\n; # (val Y)\n  %408 = inttoptr i64 %374 to i64*\n  %409 = load i64, i64* %408\n  %410 = inttoptr i64 %404 to i64*\n  store i64 %409, i64* %410\n  %411 = inttoptr i64 %404 to i64*\n  %412 = getelementptr i64, i64* %411, i32 1\n  store i64 %374, i64* %412\n; # (++ Z)\n  %413 = inttoptr i64 %383 to i64*\n  %414 = getelementptr i64, i64* %413, i32 1\n  %415 = load i64, i64* %414\n  %416 = load i64, i64* %413\n; # (eval (++ Z))\n  %417 = and i64 %416, 6\n  %418 = icmp ne i64 %417, 0\n  br i1 %418, label %$65, label %$64\n$65:\n  %419 = phi i64 [%416, %$62] ; # X\n  br label %$63\n$64:\n  %420 = phi i64 [%416, %$62] ; # X\n  %421 = and i64 %420, 8\n  %422 = icmp ne i64 %421, 0\n  br i1 %422, label %$67, label %$66\n$67:\n  %423 = phi i64 [%420, %$64] ; # X\n  %424 = inttoptr i64 %423 to i64*\n  %425 = load i64, i64* %424\n  br label %$63\n$66:\n  %426 = phi i64 [%420, %$64] ; # X\n  %427 = call i64 @evList(i64 %426)\n  br label %$63\n$63:\n  %428 = phi i64 [%419, %$65], [%423, %$67], [%426, %$66] ; # X\n  %429 = phi i64 [%419, %$65], [%425, %$67], [%427, %$66] ; # ->\n  %430 = inttoptr i64 %374 to i64*\n  store i64 %429, i64* %430\n; # (save R (loop (? (nil? (eval (car Z)))) (set $At @) (? (=0 (& (se...\n  %431 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %432 = load i64, i64* %431\n  %433 = alloca i64, i64 2, align 16\n  %434 = ptrtoint i64* %433 to i64\n  %435 = inttoptr i64 %434 to i64*\n  store i64 %380, i64* %435\n  %436 = add i64 %434, 8\n  %437 = inttoptr i64 %436 to i64*\n  store i64 %432, i64* %437\n  %438 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %434, i64* %438\n; # (loop (? (nil? (eval (car Z)))) (set $At @) (? (=0 (& (setq R (lo...\n  br label %$68\n$68:\n  %439 = phi i64 [%377, %$63], [%526, %$78] ; # Exe\n  %440 = phi i64 [%378, %$63], [%527, %$78] ; # X\n  %441 = phi i64 [%374, %$63], [%528, %$78] ; # Y\n  %442 = phi i64 [%380, %$63], [%529, %$78] ; # R\n  %443 = phi i64 [%415, %$63], [%530, %$78] ; # Z\n  %444 = phi i64 [%404, %$63], [%531, %$78] ; # P\n; # (? (nil? (eval (car Z))))\n; # (car Z)\n  %445 = inttoptr i64 %443 to i64*\n  %446 = load i64, i64* %445\n; # (eval (car Z))\n  %447 = and i64 %446, 6\n  %448 = icmp ne i64 %447, 0\n  br i1 %448, label %$71, label %$70\n$71:\n  %449 = phi i64 [%446, %$68] ; # X\n  br label %$69\n$70:\n  %450 = phi i64 [%446, %$68] ; # X\n  %451 = and i64 %450, 8\n  %452 = icmp ne i64 %451, 0\n  br i1 %452, label %$73, label %$72\n$73:\n  %453 = phi i64 [%450, %$70] ; # X\n  %454 = inttoptr i64 %453 to i64*\n  %455 = load i64, i64* %454\n  br label %$69\n$72:\n  %456 = phi i64 [%450, %$70] ; # X\n  %457 = call i64 @evList(i64 %456)\n  br label %$69\n$69:\n  %458 = phi i64 [%449, %$71], [%453, %$73], [%456, %$72] ; # X\n  %459 = phi i64 [%449, %$71], [%455, %$73], [%457, %$72] ; # ->\n; # (nil? (eval (car Z)))\n  %460 = icmp eq i64 %459, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %460, label %$75, label %$74\n$74:\n  %461 = phi i64 [%439, %$69] ; # Exe\n  %462 = phi i64 [%440, %$69] ; # X\n  %463 = phi i64 [%441, %$69] ; # Y\n  %464 = phi i64 [%442, %$69] ; # R\n  %465 = phi i64 [%443, %$69] ; # Z\n  %466 = phi i64 [%444, %$69] ; # P\n; # (set $At @)\n  %467 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %459, i64* %467\n; # (? (=0 (& (setq R (loop1 X)) 1)))\n; # (loop1 X)\n  %468 = call i64 @loop1(i64 %462)\n; # (& (setq R (loop1 X)) 1)\n  %469 = and i64 %468, 1\n; # (=0 (& (setq R (loop1 X)) 1))\n  %470 = icmp eq i64 %469, 0\n  br i1 %470, label %$75, label %$76\n$76:\n  %471 = phi i64 [%461, %$74] ; # Exe\n  %472 = phi i64 [%462, %$74] ; # X\n  %473 = phi i64 [%463, %$74] ; # Y\n  %474 = phi i64 [%468, %$74] ; # R\n  %475 = phi i64 [%465, %$74] ; # Z\n  %476 = phi i64 [%466, %$74] ; # P\n; # (& R -2)\n  %477 = and i64 %474, -2\n; # (safe (setq R (& R -2)))\n  %478 = inttoptr i64 %434 to i64*\n  store i64 %477, i64* %478\n; # (when (pair (cdr Z)) (set Y (run @)))\n; # (cdr Z)\n  %479 = inttoptr i64 %475 to i64*\n  %480 = getelementptr i64, i64* %479, i32 1\n  %481 = load i64, i64* %480\n; # (pair (cdr Z))\n  %482 = and i64 %481, 15\n  %483 = icmp eq i64 %482, 0\n  br i1 %483, label %$77, label %$78\n$77:\n  %484 = phi i64 [%471, %$76] ; # Exe\n  %485 = phi i64 [%472, %$76] ; # X\n  %486 = phi i64 [%473, %$76] ; # Y\n  %487 = phi i64 [%477, %$76] ; # R\n  %488 = phi i64 [%475, %$76] ; # Z\n  %489 = phi i64 [%476, %$76] ; # P\n; # (set Y (run @))\n; # (run @)\n  br label %$79\n$79:\n  %490 = phi i64 [%481, %$77], [%520, %$88] ; # Prg\n  %491 = inttoptr i64 %490 to i64*\n  %492 = getelementptr i64, i64* %491, i32 1\n  %493 = load i64, i64* %492\n  %494 = load i64, i64* %491\n  %495 = and i64 %493, 15\n  %496 = icmp ne i64 %495, 0\n  br i1 %496, label %$82, label %$80\n$82:\n  %497 = phi i64 [%493, %$79] ; # Prg\n  %498 = phi i64 [%494, %$79] ; # X\n  %499 = and i64 %498, 6\n  %500 = icmp ne i64 %499, 0\n  br i1 %500, label %$85, label %$84\n$85:\n  %501 = phi i64 [%498, %$82] ; # X\n  br label %$83\n$84:\n  %502 = phi i64 [%498, %$82] ; # X\n  %503 = and i64 %502, 8\n  %504 = icmp ne i64 %503, 0\n  br i1 %504, label %$87, label %$86\n$87:\n  %505 = phi i64 [%502, %$84] ; # X\n  %506 = inttoptr i64 %505 to i64*\n  %507 = load i64, i64* %506\n  br label %$83\n$86:\n  %508 = phi i64 [%502, %$84] ; # X\n  %509 = call i64 @evList(i64 %508)\n  br label %$83\n$83:\n  %510 = phi i64 [%501, %$85], [%505, %$87], [%508, %$86] ; # X\n  %511 = phi i64 [%501, %$85], [%507, %$87], [%509, %$86] ; # ->\n  br label %$81\n$80:\n  %512 = phi i64 [%493, %$79] ; # Prg\n  %513 = phi i64 [%494, %$79] ; # X\n  %514 = and i64 %513, 15\n  %515 = icmp eq i64 %514, 0\n  br i1 %515, label %$89, label %$88\n$89:\n  %516 = phi i64 [%512, %$80] ; # Prg\n  %517 = phi i64 [%513, %$80] ; # X\n  %518 = call i64 @evList(i64 %517)\n  %519 = icmp ne i64 %518, 0\n  br label %$88\n$88:\n  %520 = phi i64 [%512, %$80], [%516, %$89] ; # Prg\n  %521 = phi i64 [%513, %$80], [%517, %$89] ; # X\n  %522 = phi i1 [0, %$80], [%519, %$89] ; # ->\n  br label %$79\n$81:\n  %523 = phi i64 [%497, %$83] ; # Prg\n  %524 = phi i64 [%511, %$83] ; # ->\n  %525 = inttoptr i64 %486 to i64*\n  store i64 %524, i64* %525\n  br label %$78\n$78:\n  %526 = phi i64 [%471, %$76], [%484, %$81] ; # Exe\n  %527 = phi i64 [%472, %$76], [%485, %$81] ; # X\n  %528 = phi i64 [%473, %$76], [%486, %$81] ; # Y\n  %529 = phi i64 [%477, %$76], [%487, %$81] ; # R\n  %530 = phi i64 [%475, %$76], [%488, %$81] ; # Z\n  %531 = phi i64 [%476, %$76], [%489, %$81] ; # P\n  br label %$68\n$75:\n  %532 = phi i64 [%439, %$69], [%461, %$74] ; # Exe\n  %533 = phi i64 [%440, %$69], [%462, %$74] ; # X\n  %534 = phi i64 [%441, %$69], [%463, %$74] ; # Y\n  %535 = phi i64 [%442, %$69], [%468, %$74] ; # R\n  %536 = phi i64 [%443, %$69], [%465, %$74] ; # Z\n  %537 = phi i64 [%444, %$69], [%466, %$74] ; # P\n  %538 = phi i64 [0, %$69], [0, %$74] ; # ->\n; # drop\n  %539 = inttoptr i64 %434 to i64*\n  %540 = getelementptr i64, i64* %539, i32 1\n  %541 = load i64, i64* %540\n  %542 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %541, i64* %542\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %543 = inttoptr i64 %537 to i64*\n  %544 = load i64, i64* %543\n  %545 = inttoptr i64 %534 to i64*\n  store i64 %544, i64* %545\n; # (val 3 P)\n  %546 = inttoptr i64 %537 to i64*\n  %547 = getelementptr i64, i64* %546, i32 2\n  %548 = load i64, i64* %547\n  %549 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %548, i64* %549\n  br label %$2\n$55:\n  %550 = phi i64 [%369, %$31] ; # Exe\n  %551 = phi i64 [%370, %$31] ; # X\n  %552 = phi i64 [%371, %$31] ; # Y\n  %553 = phi i64 [%372, %$31] ; # R\n; # (let (Sym2 (cdr @) Z (cdr Y)) (setq Y (car @)) (needChkVar Exe Y)...\n; # (cdr @)\n  %554 = inttoptr i64 %374 to i64*\n  %555 = getelementptr i64, i64* %554, i32 1\n  %556 = load i64, i64* %555\n; # (cdr Y)\n  %557 = inttoptr i64 %552 to i64*\n  %558 = getelementptr i64, i64* %557, i32 1\n  %559 = load i64, i64* %558\n; # (car @)\n  %560 = inttoptr i64 %374 to i64*\n  %561 = load i64, i64* %560\n; # (needChkVar Exe Y)\n  %562 = and i64 %561, 6\n  %563 = icmp ne i64 %562, 0\n  br i1 %563, label %$90, label %$91\n$90:\n  %564 = phi i64 [%561, %$55] ; # X\n  %565 = phi i64 [%550, %$55] ; # Exe\n  call void @varErr(i64 %565, i64 %564)\n  unreachable\n$91:\n  %566 = phi i64 [%561, %$55] ; # X\n  %567 = phi i64 [%550, %$55] ; # Exe\n  %568 = icmp uge i64 %566, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %568, label %$93, label %$92\n$93:\n  %569 = phi i64 [%566, %$91] ; # X\n  %570 = phi i64 [%567, %$91] ; # Exe\n  %571 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %569\n  br label %$92\n$92:\n  %572 = phi i64 [%566, %$91], [%569, %$93] ; # X\n  %573 = phi i64 [%567, %$91], [%570, %$93] ; # Exe\n  %574 = phi i1 [0, %$91], [%571, %$93] ; # ->\n  br i1 %574, label %$94, label %$95\n$94:\n  %575 = phi i64 [%572, %$92] ; # X\n  %576 = phi i64 [%573, %$92] ; # Exe\n  call void @protErr(i64 %576, i64 %575)\n  unreachable\n$95:\n  %577 = phi i64 [%572, %$92] ; # X\n  %578 = phi i64 [%573, %$92] ; # Exe\n; # (needChkVar Exe Sym2)\n  %579 = and i64 %556, 6\n  %580 = icmp ne i64 %579, 0\n  br i1 %580, label %$96, label %$97\n$96:\n  %581 = phi i64 [%556, %$95] ; # X\n  %582 = phi i64 [%550, %$95] ; # Exe\n  call void @varErr(i64 %582, i64 %581)\n  unreachable\n$97:\n  %583 = phi i64 [%556, %$95] ; # X\n  %584 = phi i64 [%550, %$95] ; # Exe\n  %585 = icmp uge i64 %583, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %585, label %$99, label %$98\n$99:\n  %586 = phi i64 [%583, %$97] ; # X\n  %587 = phi i64 [%584, %$97] ; # Exe\n  %588 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %586\n  br label %$98\n$98:\n  %589 = phi i64 [%583, %$97], [%586, %$99] ; # X\n  %590 = phi i64 [%584, %$97], [%587, %$99] ; # Exe\n  %591 = phi i1 [0, %$97], [%588, %$99] ; # ->\n  br i1 %591, label %$100, label %$101\n$100:\n  %592 = phi i64 [%589, %$98] ; # X\n  %593 = phi i64 [%590, %$98] ; # Exe\n  call void @protErr(i64 %593, i64 %592)\n  unreachable\n$101:\n  %594 = phi i64 [%589, %$98] ; # X\n  %595 = phi i64 [%590, %$98] ; # Exe\n; # (let P (set $Bind (push NIL NIL (val $Bind))) (set P (val Y) 2 P ...\n; # (set $Bind (push NIL NIL (val $Bind)))\n; # (val $Bind)\n  %596 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %597 = load i64, i64* %596\n; # (push NIL NIL (val $Bind))\n  %598 = alloca i64, i64 3, align 16\n  %599 = ptrtoint i64* %598 to i64\n  %600 = add i64 %599, 16\n  %601 = inttoptr i64 %600 to i64*\n  store i64 %597, i64* %601\n  %602 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %599, i64* %602\n; # (set P (val Y) 2 P Y)\n; # (val Y)\n  %603 = inttoptr i64 %561 to i64*\n  %604 = load i64, i64* %603\n  %605 = inttoptr i64 %599 to i64*\n  store i64 %604, i64* %605\n  %606 = inttoptr i64 %599 to i64*\n  %607 = getelementptr i64, i64* %606, i32 1\n  store i64 %561, i64* %607\n; # (save R (let Q (set $Bind (push (val Sym2) Sym2 (val $Bind))) (se...\n  %608 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %609 = load i64, i64* %608\n  %610 = alloca i64, i64 2, align 16\n  %611 = ptrtoint i64* %610 to i64\n  %612 = inttoptr i64 %611 to i64*\n  store i64 %553, i64* %612\n  %613 = add i64 %611, 8\n  %614 = inttoptr i64 %613 to i64*\n  store i64 %609, i64* %614\n  %615 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %611, i64* %615\n; # (let Q (set $Bind (push (val Sym2) Sym2 (val $Bind))) (set Sym2 (...\n; # (set $Bind (push (val Sym2) Sym2 (val $Bind)))\n; # (val Sym2)\n  %616 = inttoptr i64 %556 to i64*\n  %617 = load i64, i64* %616\n; # (val $Bind)\n  %618 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %619 = load i64, i64* %618\n; # (push (val Sym2) Sym2 (val $Bind))\n  %620 = alloca i64, i64 3, align 16\n  %621 = ptrtoint i64* %620 to i64\n  %622 = inttoptr i64 %621 to i64*\n  store i64 %617, i64* %622\n  %623 = add i64 %621, 8\n  %624 = inttoptr i64 %623 to i64*\n  store i64 %556, i64* %624\n  %625 = add i64 %621, 16\n  %626 = inttoptr i64 %625 to i64*\n  store i64 %619, i64* %626\n  %627 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %621, i64* %627\n; # (set Sym2 (save (eval (++ Z))) Y ONE)\n; # (++ Z)\n  %628 = inttoptr i64 %559 to i64*\n  %629 = getelementptr i64, i64* %628, i32 1\n  %630 = load i64, i64* %629\n  %631 = load i64, i64* %628\n; # (eval (++ Z))\n  %632 = and i64 %631, 6\n  %633 = icmp ne i64 %632, 0\n  br i1 %633, label %$104, label %$103\n$104:\n  %634 = phi i64 [%631, %$101] ; # X\n  br label %$102\n$103:\n  %635 = phi i64 [%631, %$101] ; # X\n  %636 = and i64 %635, 8\n  %637 = icmp ne i64 %636, 0\n  br i1 %637, label %$106, label %$105\n$106:\n  %638 = phi i64 [%635, %$103] ; # X\n  %639 = inttoptr i64 %638 to i64*\n  %640 = load i64, i64* %639\n  br label %$102\n$105:\n  %641 = phi i64 [%635, %$103] ; # X\n  %642 = call i64 @evList(i64 %641)\n  br label %$102\n$102:\n  %643 = phi i64 [%634, %$104], [%638, %$106], [%641, %$105] ; # X\n  %644 = phi i64 [%634, %$104], [%640, %$106], [%642, %$105] ; # ->\n; # (save (eval (++ Z)))\n  %645 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %646 = load i64, i64* %645\n  %647 = alloca i64, i64 2, align 16\n  %648 = ptrtoint i64* %647 to i64\n  %649 = inttoptr i64 %648 to i64*\n  store i64 %644, i64* %649\n  %650 = add i64 %648, 8\n  %651 = inttoptr i64 %650 to i64*\n  store i64 %646, i64* %651\n  %652 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %648, i64* %652\n  %653 = inttoptr i64 %556 to i64*\n  store i64 %644, i64* %653\n  %654 = inttoptr i64 %561 to i64*\n  store i64 18, i64* %654\n; # (loop (? (nil? (eval (car Z)))) (set $At @) (? (=0 (& (setq R (lo...\n  br label %$107\n$107:\n  %655 = phi i64 [%550, %$102], [%750, %$117] ; # Exe\n  %656 = phi i64 [%551, %$102], [%751, %$117] ; # X\n  %657 = phi i64 [%561, %$102], [%752, %$117] ; # Y\n  %658 = phi i64 [%553, %$102], [%753, %$117] ; # R\n  %659 = phi i64 [%556, %$102], [%754, %$117] ; # Sym2\n  %660 = phi i64 [%630, %$102], [%755, %$117] ; # Z\n  %661 = phi i64 [%599, %$102], [%756, %$117] ; # P\n  %662 = phi i64 [%621, %$102], [%757, %$117] ; # Q\n; # (? (nil? (eval (car Z))))\n; # (car Z)\n  %663 = inttoptr i64 %660 to i64*\n  %664 = load i64, i64* %663\n; # (eval (car Z))\n  %665 = and i64 %664, 6\n  %666 = icmp ne i64 %665, 0\n  br i1 %666, label %$110, label %$109\n$110:\n  %667 = phi i64 [%664, %$107] ; # X\n  br label %$108\n$109:\n  %668 = phi i64 [%664, %$107] ; # X\n  %669 = and i64 %668, 8\n  %670 = icmp ne i64 %669, 0\n  br i1 %670, label %$112, label %$111\n$112:\n  %671 = phi i64 [%668, %$109] ; # X\n  %672 = inttoptr i64 %671 to i64*\n  %673 = load i64, i64* %672\n  br label %$108\n$111:\n  %674 = phi i64 [%668, %$109] ; # X\n  %675 = call i64 @evList(i64 %674)\n  br label %$108\n$108:\n  %676 = phi i64 [%667, %$110], [%671, %$112], [%674, %$111] ; # X\n  %677 = phi i64 [%667, %$110], [%673, %$112], [%675, %$111] ; # ->\n; # (nil? (eval (car Z)))\n  %678 = icmp eq i64 %677, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %678, label %$114, label %$113\n$113:\n  %679 = phi i64 [%655, %$108] ; # Exe\n  %680 = phi i64 [%656, %$108] ; # X\n  %681 = phi i64 [%657, %$108] ; # Y\n  %682 = phi i64 [%658, %$108] ; # R\n  %683 = phi i64 [%659, %$108] ; # Sym2\n  %684 = phi i64 [%660, %$108] ; # Z\n  %685 = phi i64 [%661, %$108] ; # P\n  %686 = phi i64 [%662, %$108] ; # Q\n; # (set $At @)\n  %687 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %677, i64* %687\n; # (? (=0 (& (setq R (loop1 X)) 1)))\n; # (loop1 X)\n  %688 = call i64 @loop1(i64 %680)\n; # (& (setq R (loop1 X)) 1)\n  %689 = and i64 %688, 1\n; # (=0 (& (setq R (loop1 X)) 1))\n  %690 = icmp eq i64 %689, 0\n  br i1 %690, label %$114, label %$115\n$115:\n  %691 = phi i64 [%679, %$113] ; # Exe\n  %692 = phi i64 [%680, %$113] ; # X\n  %693 = phi i64 [%681, %$113] ; # Y\n  %694 = phi i64 [%688, %$113] ; # R\n  %695 = phi i64 [%683, %$113] ; # Sym2\n  %696 = phi i64 [%684, %$113] ; # Z\n  %697 = phi i64 [%685, %$113] ; # P\n  %698 = phi i64 [%686, %$113] ; # Q\n; # (& R -2)\n  %699 = and i64 %694, -2\n; # (safe (setq R (& R -2)))\n  %700 = inttoptr i64 %611 to i64*\n  store i64 %699, i64* %700\n; # (when (pair (cdr Z)) (set Sym2 (run @)))\n; # (cdr Z)\n  %701 = inttoptr i64 %696 to i64*\n  %702 = getelementptr i64, i64* %701, i32 1\n  %703 = load i64, i64* %702\n; # (pair (cdr Z))\n  %704 = and i64 %703, 15\n  %705 = icmp eq i64 %704, 0\n  br i1 %705, label %$116, label %$117\n$116:\n  %706 = phi i64 [%691, %$115] ; # Exe\n  %707 = phi i64 [%692, %$115] ; # X\n  %708 = phi i64 [%693, %$115] ; # Y\n  %709 = phi i64 [%699, %$115] ; # R\n  %710 = phi i64 [%695, %$115] ; # Sym2\n  %711 = phi i64 [%696, %$115] ; # Z\n  %712 = phi i64 [%697, %$115] ; # P\n  %713 = phi i64 [%698, %$115] ; # Q\n; # (set Sym2 (run @))\n; # (run @)\n  br label %$118\n$118:\n  %714 = phi i64 [%703, %$116], [%744, %$127] ; # Prg\n  %715 = inttoptr i64 %714 to i64*\n  %716 = getelementptr i64, i64* %715, i32 1\n  %717 = load i64, i64* %716\n  %718 = load i64, i64* %715\n  %719 = and i64 %717, 15\n  %720 = icmp ne i64 %719, 0\n  br i1 %720, label %$121, label %$119\n$121:\n  %721 = phi i64 [%717, %$118] ; # Prg\n  %722 = phi i64 [%718, %$118] ; # X\n  %723 = and i64 %722, 6\n  %724 = icmp ne i64 %723, 0\n  br i1 %724, label %$124, label %$123\n$124:\n  %725 = phi i64 [%722, %$121] ; # X\n  br label %$122\n$123:\n  %726 = phi i64 [%722, %$121] ; # X\n  %727 = and i64 %726, 8\n  %728 = icmp ne i64 %727, 0\n  br i1 %728, label %$126, label %$125\n$126:\n  %729 = phi i64 [%726, %$123] ; # X\n  %730 = inttoptr i64 %729 to i64*\n  %731 = load i64, i64* %730\n  br label %$122\n$125:\n  %732 = phi i64 [%726, %$123] ; # X\n  %733 = call i64 @evList(i64 %732)\n  br label %$122\n$122:\n  %734 = phi i64 [%725, %$124], [%729, %$126], [%732, %$125] ; # X\n  %735 = phi i64 [%725, %$124], [%731, %$126], [%733, %$125] ; # ->\n  br label %$120\n$119:\n  %736 = phi i64 [%717, %$118] ; # Prg\n  %737 = phi i64 [%718, %$118] ; # X\n  %738 = and i64 %737, 15\n  %739 = icmp eq i64 %738, 0\n  br i1 %739, label %$128, label %$127\n$128:\n  %740 = phi i64 [%736, %$119] ; # Prg\n  %741 = phi i64 [%737, %$119] ; # X\n  %742 = call i64 @evList(i64 %741)\n  %743 = icmp ne i64 %742, 0\n  br label %$127\n$127:\n  %744 = phi i64 [%736, %$119], [%740, %$128] ; # Prg\n  %745 = phi i64 [%737, %$119], [%741, %$128] ; # X\n  %746 = phi i1 [0, %$119], [%743, %$128] ; # ->\n  br label %$118\n$120:\n  %747 = phi i64 [%721, %$122] ; # Prg\n  %748 = phi i64 [%735, %$122] ; # ->\n  %749 = inttoptr i64 %710 to i64*\n  store i64 %748, i64* %749\n  br label %$117\n$117:\n  %750 = phi i64 [%691, %$115], [%706, %$120] ; # Exe\n  %751 = phi i64 [%692, %$115], [%707, %$120] ; # X\n  %752 = phi i64 [%693, %$115], [%708, %$120] ; # Y\n  %753 = phi i64 [%699, %$115], [%709, %$120] ; # R\n  %754 = phi i64 [%695, %$115], [%710, %$120] ; # Sym2\n  %755 = phi i64 [%696, %$115], [%711, %$120] ; # Z\n  %756 = phi i64 [%697, %$115], [%712, %$120] ; # P\n  %757 = phi i64 [%698, %$115], [%713, %$120] ; # Q\n; # (set Y (+ (val Y) (hex \"10\")))\n; # (val Y)\n  %758 = inttoptr i64 %752 to i64*\n  %759 = load i64, i64* %758\n; # (+ (val Y) (hex \"10\"))\n  %760 = add i64 %759, 16\n  %761 = inttoptr i64 %752 to i64*\n  store i64 %760, i64* %761\n  br label %$107\n$114:\n  %762 = phi i64 [%655, %$108], [%679, %$113] ; # Exe\n  %763 = phi i64 [%656, %$108], [%680, %$113] ; # X\n  %764 = phi i64 [%657, %$108], [%681, %$113] ; # Y\n  %765 = phi i64 [%658, %$108], [%688, %$113] ; # R\n  %766 = phi i64 [%659, %$108], [%683, %$113] ; # Sym2\n  %767 = phi i64 [%660, %$108], [%684, %$113] ; # Z\n  %768 = phi i64 [%661, %$108], [%685, %$113] ; # P\n  %769 = phi i64 [%662, %$108], [%686, %$113] ; # Q\n  %770 = phi i64 [0, %$108], [0, %$113] ; # ->\n; # (set Sym2 (val Q))\n; # (val Q)\n  %771 = inttoptr i64 %769 to i64*\n  %772 = load i64, i64* %771\n  %773 = inttoptr i64 %766 to i64*\n  store i64 %772, i64* %773\n; # drop\n  %774 = inttoptr i64 %611 to i64*\n  %775 = getelementptr i64, i64* %774, i32 1\n  %776 = load i64, i64* %775\n  %777 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %776, i64* %777\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %778 = inttoptr i64 %768 to i64*\n  %779 = load i64, i64* %778\n  %780 = inttoptr i64 %764 to i64*\n  store i64 %779, i64* %780\n; # (val 3 P)\n  %781 = inttoptr i64 %768 to i64*\n  %782 = getelementptr i64, i64* %781, i32 2\n  %783 = load i64, i64* %782\n  %784 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %783, i64* %784\n  br label %$2\n$2:\n  %785 = phi i64 [%185, %$18], [%346, %$52], [%532, %$75], [%762, %$114] ; # Exe\n  %786 = phi i64 [%186, %$18], [%347, %$52], [%533, %$75], [%763, %$114] ; # X\n  %787 = phi i64 [%187, %$18], [%348, %$52], [%534, %$75], [%764, %$114] ; # Y\n  %788 = phi i64 [%188, %$18], [%349, %$52], [%535, %$75], [%765, %$114] ; # R\n  %789 = phi i64 [%196, %$18], [%367, %$52], [%548, %$75], [%783, %$114] ; # ->\n  ret i64 %788\n}\n\ndefine i64 @_This(i64) align 8 {\n$1:\n; # (set $This (eval (cadr Exe)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  store i64 %18, i64* %19\n  ret i64 %18\n}\n\ndefine i64 @_With(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (needVar Exe (eval (++ X)))) (if (nil? Y) Y (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needVar Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n; # (if (nil? Y) Y (let P (set $Bind (push (val $This) $This (val $Bi...\n; # (nil? Y)\n  %27 = icmp eq i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$9, label %$10\n$9:\n  %28 = phi i64 [%0, %$8] ; # Exe\n  %29 = phi i64 [%6, %$8] ; # X\n  %30 = phi i64 [%25, %$8] ; # Y\n  br label %$11\n$10:\n  %31 = phi i64 [%0, %$8] ; # Exe\n  %32 = phi i64 [%6, %$8] ; # X\n  %33 = phi i64 [%25, %$8] ; # Y\n; # (let P (set $Bind (push (val $This) $This (val $Bind))) (set $Thi...\n; # (set $Bind (push (val $This) $This (val $Bind)))\n; # (val $This)\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %35 = load i64, i64* %34\n; # (val $Bind)\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %37 = load i64, i64* %36\n; # (push (val $This) $This (val $Bind))\n  %38 = alloca i64, i64 3, align 16\n  %39 = ptrtoint i64* %38 to i64\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %35, i64* %40\n  %41 = add i64 %39, 8\n  %42 = inttoptr i64 %41 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64), i64* %42\n  %43 = add i64 %39, 16\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %37, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %39, i64* %45\n; # (set $This Y)\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  store i64 %33, i64* %46\n; # (prog1 (run X) (set $This (val P) $Bind (val 3 P)))\n; # (run X)\n  br label %$12\n$12:\n  %47 = phi i64 [%32, %$10], [%77, %$21] ; # Prg\n  %48 = inttoptr i64 %47 to i64*\n  %49 = getelementptr i64, i64* %48, i32 1\n  %50 = load i64, i64* %49\n  %51 = load i64, i64* %48\n  %52 = and i64 %50, 15\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$15, label %$13\n$15:\n  %54 = phi i64 [%50, %$12] ; # Prg\n  %55 = phi i64 [%51, %$12] ; # X\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$18, label %$17\n$18:\n  %58 = phi i64 [%55, %$15] ; # X\n  br label %$16\n$17:\n  %59 = phi i64 [%55, %$15] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$20, label %$19\n$20:\n  %62 = phi i64 [%59, %$17] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$16\n$19:\n  %65 = phi i64 [%59, %$17] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$16\n$16:\n  %67 = phi i64 [%58, %$18], [%62, %$20], [%65, %$19] ; # X\n  %68 = phi i64 [%58, %$18], [%64, %$20], [%66, %$19] ; # ->\n  br label %$14\n$13:\n  %69 = phi i64 [%50, %$12] ; # Prg\n  %70 = phi i64 [%51, %$12] ; # X\n  %71 = and i64 %70, 15\n  %72 = icmp eq i64 %71, 0\n  br i1 %72, label %$22, label %$21\n$22:\n  %73 = phi i64 [%69, %$13] ; # Prg\n  %74 = phi i64 [%70, %$13] ; # X\n  %75 = call i64 @evList(i64 %74)\n  %76 = icmp ne i64 %75, 0\n  br label %$21\n$21:\n  %77 = phi i64 [%69, %$13], [%73, %$22] ; # Prg\n  %78 = phi i64 [%70, %$13], [%74, %$22] ; # X\n  %79 = phi i1 [0, %$13], [%76, %$22] ; # ->\n  br label %$12\n$14:\n  %80 = phi i64 [%54, %$16] ; # Prg\n  %81 = phi i64 [%68, %$16] ; # ->\n; # (set $This (val P) $Bind (val 3 P))\n; # (val P)\n  %82 = inttoptr i64 %39 to i64*\n  %83 = load i64, i64* %82\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  store i64 %83, i64* %84\n; # (val 3 P)\n  %85 = inttoptr i64 %39 to i64*\n  %86 = getelementptr i64, i64* %85, i32 2\n  %87 = load i64, i64* %86\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %87, i64* %88\n  br label %$11\n$11:\n  %89 = phi i64 [%28, %$9], [%31, %$14] ; # Exe\n  %90 = phi i64 [%29, %$9], [%32, %$14] ; # X\n  %91 = phi i64 [%30, %$9], [%33, %$14] ; # Y\n  %92 = phi i64 [%30, %$9], [%81, %$14] ; # ->\n  ret i64 %92\n}\n\ndefine i64 @_Bind(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((num? Y) (argErr Exe Y)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((num? Y) (argErr Exe Y)) ((nil? Y) (run X)) ((sym? Y) (chk...\n; # (num? Y)\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (argErr Exe Y)\n  call void @argErr(i64 %23, i64 %25)\n  unreachable\n$8:\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = phi i64 [%6, %$2] ; # X\n  %28 = phi i64 [%20, %$2] ; # Y\n; # (nil? Y)\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %29, label %$11, label %$10\n$11:\n  %30 = phi i64 [%26, %$8] ; # Exe\n  %31 = phi i64 [%27, %$8] ; # X\n  %32 = phi i64 [%28, %$8] ; # Y\n; # (run X)\n  br label %$12\n$12:\n  %33 = phi i64 [%31, %$11], [%63, %$21] ; # Prg\n  %34 = inttoptr i64 %33 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n  %37 = load i64, i64* %34\n  %38 = and i64 %36, 15\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$15, label %$13\n$15:\n  %40 = phi i64 [%36, %$12] ; # Prg\n  %41 = phi i64 [%37, %$12] ; # X\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$18, label %$17\n$18:\n  %44 = phi i64 [%41, %$15] ; # X\n  br label %$16\n$17:\n  %45 = phi i64 [%41, %$15] ; # X\n  %46 = and i64 %45, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$20, label %$19\n$20:\n  %48 = phi i64 [%45, %$17] ; # X\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n  br label %$16\n$19:\n  %51 = phi i64 [%45, %$17] ; # X\n  %52 = call i64 @evList(i64 %51)\n  br label %$16\n$16:\n  %53 = phi i64 [%44, %$18], [%48, %$20], [%51, %$19] ; # X\n  %54 = phi i64 [%44, %$18], [%50, %$20], [%52, %$19] ; # ->\n  br label %$14\n$13:\n  %55 = phi i64 [%36, %$12] ; # Prg\n  %56 = phi i64 [%37, %$12] ; # X\n  %57 = and i64 %56, 15\n  %58 = icmp eq i64 %57, 0\n  br i1 %58, label %$22, label %$21\n$22:\n  %59 = phi i64 [%55, %$13] ; # Prg\n  %60 = phi i64 [%56, %$13] ; # X\n  %61 = call i64 @evList(i64 %60)\n  %62 = icmp ne i64 %61, 0\n  br label %$21\n$21:\n  %63 = phi i64 [%55, %$13], [%59, %$22] ; # Prg\n  %64 = phi i64 [%56, %$13], [%60, %$22] ; # X\n  %65 = phi i1 [0, %$13], [%62, %$22] ; # ->\n  br label %$12\n$14:\n  %66 = phi i64 [%40, %$16] ; # Prg\n  %67 = phi i64 [%54, %$16] ; # ->\n  br label %$7\n$10:\n  %68 = phi i64 [%26, %$8] ; # Exe\n  %69 = phi i64 [%27, %$8] ; # X\n  %70 = phi i64 [%28, %$8] ; # Y\n; # (sym? Y)\n  %71 = and i64 %70, 8\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$24, label %$23\n$24:\n  %73 = phi i64 [%68, %$10] ; # Exe\n  %74 = phi i64 [%69, %$10] ; # X\n  %75 = phi i64 [%70, %$10] ; # Y\n; # (chkVar Exe Y)\n  %76 = icmp uge i64 %75, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %76, label %$26, label %$25\n$26:\n  %77 = phi i64 [%75, %$24] ; # X\n  %78 = phi i64 [%73, %$24] ; # Exe\n  %79 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %77\n  br label %$25\n$25:\n  %80 = phi i64 [%75, %$24], [%77, %$26] ; # X\n  %81 = phi i64 [%73, %$24], [%78, %$26] ; # Exe\n  %82 = phi i1 [0, %$24], [%79, %$26] ; # ->\n  br i1 %82, label %$27, label %$28\n$27:\n  %83 = phi i64 [%80, %$25] ; # X\n  %84 = phi i64 [%81, %$25] ; # Exe\n  call void @protErr(i64 %84, i64 %83)\n  unreachable\n$28:\n  %85 = phi i64 [%80, %$25] ; # X\n  %86 = phi i64 [%81, %$25] ; # Exe\n; # (let P (set $Bind (push (val Y) Y (val $Bind))) (prog1 (run X) (s...\n; # (set $Bind (push (val Y) Y (val $Bind)))\n; # (val Y)\n  %87 = inttoptr i64 %75 to i64*\n  %88 = load i64, i64* %87\n; # (val $Bind)\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %90 = load i64, i64* %89\n; # (push (val Y) Y (val $Bind))\n  %91 = alloca i64, i64 3, align 16\n  %92 = ptrtoint i64* %91 to i64\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %88, i64* %93\n  %94 = add i64 %92, 8\n  %95 = inttoptr i64 %94 to i64*\n  store i64 %75, i64* %95\n  %96 = add i64 %92, 16\n  %97 = inttoptr i64 %96 to i64*\n  store i64 %90, i64* %97\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %92, i64* %98\n; # (prog1 (run X) (set Y (val P) $Bind (val 3 P)))\n; # (run X)\n  br label %$29\n$29:\n  %99 = phi i64 [%74, %$28], [%129, %$38] ; # Prg\n  %100 = inttoptr i64 %99 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n  %103 = load i64, i64* %100\n  %104 = and i64 %102, 15\n  %105 = icmp ne i64 %104, 0\n  br i1 %105, label %$32, label %$30\n$32:\n  %106 = phi i64 [%102, %$29] ; # Prg\n  %107 = phi i64 [%103, %$29] ; # X\n  %108 = and i64 %107, 6\n  %109 = icmp ne i64 %108, 0\n  br i1 %109, label %$35, label %$34\n$35:\n  %110 = phi i64 [%107, %$32] ; # X\n  br label %$33\n$34:\n  %111 = phi i64 [%107, %$32] ; # X\n  %112 = and i64 %111, 8\n  %113 = icmp ne i64 %112, 0\n  br i1 %113, label %$37, label %$36\n$37:\n  %114 = phi i64 [%111, %$34] ; # X\n  %115 = inttoptr i64 %114 to i64*\n  %116 = load i64, i64* %115\n  br label %$33\n$36:\n  %117 = phi i64 [%111, %$34] ; # X\n  %118 = call i64 @evList(i64 %117)\n  br label %$33\n$33:\n  %119 = phi i64 [%110, %$35], [%114, %$37], [%117, %$36] ; # X\n  %120 = phi i64 [%110, %$35], [%116, %$37], [%118, %$36] ; # ->\n  br label %$31\n$30:\n  %121 = phi i64 [%102, %$29] ; # Prg\n  %122 = phi i64 [%103, %$29] ; # X\n  %123 = and i64 %122, 15\n  %124 = icmp eq i64 %123, 0\n  br i1 %124, label %$39, label %$38\n$39:\n  %125 = phi i64 [%121, %$30] ; # Prg\n  %126 = phi i64 [%122, %$30] ; # X\n  %127 = call i64 @evList(i64 %126)\n  %128 = icmp ne i64 %127, 0\n  br label %$38\n$38:\n  %129 = phi i64 [%121, %$30], [%125, %$39] ; # Prg\n  %130 = phi i64 [%122, %$30], [%126, %$39] ; # X\n  %131 = phi i1 [0, %$30], [%128, %$39] ; # ->\n  br label %$29\n$31:\n  %132 = phi i64 [%106, %$33] ; # Prg\n  %133 = phi i64 [%120, %$33] ; # ->\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %134 = inttoptr i64 %92 to i64*\n  %135 = load i64, i64* %134\n  %136 = inttoptr i64 %75 to i64*\n  store i64 %135, i64* %136\n; # (val 3 P)\n  %137 = inttoptr i64 %92 to i64*\n  %138 = getelementptr i64, i64* %137, i32 2\n  %139 = load i64, i64* %138\n  %140 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %139, i64* %140\n  br label %$7\n$23:\n  %141 = phi i64 [%68, %$10] ; # Exe\n  %142 = phi i64 [%69, %$10] ; # X\n  %143 = phi i64 [%70, %$10] ; # Y\n; # (let (P (val $Bind) Q P) (loop (let Z (++ Y) (when (num? Z) (argE...\n; # (val $Bind)\n  %144 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %145 = load i64, i64* %144\n; # (loop (let Z (++ Y) (when (num? Z) (argErr Exe Y)) (if (sym? Z) (...\n  br label %$40\n$40:\n  %146 = phi i64 [%141, %$23], [%246, %$56] ; # Exe\n  %147 = phi i64 [%142, %$23], [%247, %$56] ; # X\n  %148 = phi i64 [%143, %$23], [%248, %$56] ; # Y\n  %149 = phi i64 [%145, %$23], [%249, %$56] ; # P\n  %150 = phi i64 [%145, %$23], [%250, %$56] ; # Q\n; # (let Z (++ Y) (when (num? Z) (argErr Exe Y)) (if (sym? Z) (set $B...\n; # (++ Y)\n  %151 = inttoptr i64 %148 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  %153 = load i64, i64* %152\n  %154 = load i64, i64* %151\n; # (when (num? Z) (argErr Exe Y))\n; # (num? Z)\n  %155 = and i64 %154, 6\n  %156 = icmp ne i64 %155, 0\n  br i1 %156, label %$41, label %$42\n$41:\n  %157 = phi i64 [%146, %$40] ; # Exe\n  %158 = phi i64 [%147, %$40] ; # X\n  %159 = phi i64 [%153, %$40] ; # Y\n  %160 = phi i64 [%149, %$40] ; # P\n  %161 = phi i64 [%150, %$40] ; # Q\n  %162 = phi i64 [%154, %$40] ; # Z\n; # (argErr Exe Y)\n  call void @argErr(i64 %157, i64 %159)\n  unreachable\n$42:\n  %163 = phi i64 [%146, %$40] ; # Exe\n  %164 = phi i64 [%147, %$40] ; # X\n  %165 = phi i64 [%153, %$40] ; # Y\n  %166 = phi i64 [%149, %$40] ; # P\n  %167 = phi i64 [%150, %$40] ; # Q\n  %168 = phi i64 [%154, %$40] ; # Z\n; # (if (sym? Z) (set $Bind (setq P (push (val Z) (chkVar Exe Z) P)))...\n; # (sym? Z)\n  %169 = and i64 %168, 8\n  %170 = icmp ne i64 %169, 0\n  br i1 %170, label %$43, label %$44\n$43:\n  %171 = phi i64 [%163, %$42] ; # Exe\n  %172 = phi i64 [%164, %$42] ; # X\n  %173 = phi i64 [%165, %$42] ; # Y\n  %174 = phi i64 [%166, %$42] ; # P\n  %175 = phi i64 [%167, %$42] ; # Q\n  %176 = phi i64 [%168, %$42] ; # Z\n; # (set $Bind (setq P (push (val Z) (chkVar Exe Z) P)))\n; # (val Z)\n  %177 = inttoptr i64 %176 to i64*\n  %178 = load i64, i64* %177\n; # (chkVar Exe Z)\n  %179 = icmp uge i64 %176, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %179, label %$47, label %$46\n$47:\n  %180 = phi i64 [%176, %$43] ; # X\n  %181 = phi i64 [%171, %$43] ; # Exe\n  %182 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %180\n  br label %$46\n$46:\n  %183 = phi i64 [%176, %$43], [%180, %$47] ; # X\n  %184 = phi i64 [%171, %$43], [%181, %$47] ; # Exe\n  %185 = phi i1 [0, %$43], [%182, %$47] ; # ->\n  br i1 %185, label %$48, label %$49\n$48:\n  %186 = phi i64 [%183, %$46] ; # X\n  %187 = phi i64 [%184, %$46] ; # Exe\n  call void @protErr(i64 %187, i64 %186)\n  unreachable\n$49:\n  %188 = phi i64 [%183, %$46] ; # X\n  %189 = phi i64 [%184, %$46] ; # Exe\n; # (push (val Z) (chkVar Exe Z) P)\n  %190 = alloca i64, i64 3, align 16\n  %191 = ptrtoint i64* %190 to i64\n  %192 = inttoptr i64 %191 to i64*\n  store i64 %178, i64* %192\n  %193 = add i64 %191, 8\n  %194 = inttoptr i64 %193 to i64*\n  store i64 %188, i64* %194\n  %195 = add i64 %191, 16\n  %196 = inttoptr i64 %195 to i64*\n  store i64 %174, i64* %196\n  %197 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %191, i64* %197\n  br label %$45\n$44:\n  %198 = phi i64 [%163, %$42] ; # Exe\n  %199 = phi i64 [%164, %$42] ; # X\n  %200 = phi i64 [%165, %$42] ; # Y\n  %201 = phi i64 [%166, %$42] ; # P\n  %202 = phi i64 [%167, %$42] ; # Q\n  %203 = phi i64 [%168, %$42] ; # Z\n; # (let S (car Z) (needChkVar Exe S) (set $Bind (setq P (push (val S...\n; # (car Z)\n  %204 = inttoptr i64 %203 to i64*\n  %205 = load i64, i64* %204\n; # (needChkVar Exe S)\n  %206 = and i64 %205, 6\n  %207 = icmp ne i64 %206, 0\n  br i1 %207, label %$50, label %$51\n$50:\n  %208 = phi i64 [%205, %$44] ; # X\n  %209 = phi i64 [%198, %$44] ; # Exe\n  call void @varErr(i64 %209, i64 %208)\n  unreachable\n$51:\n  %210 = phi i64 [%205, %$44] ; # X\n  %211 = phi i64 [%198, %$44] ; # Exe\n  %212 = icmp uge i64 %210, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %212, label %$53, label %$52\n$53:\n  %213 = phi i64 [%210, %$51] ; # X\n  %214 = phi i64 [%211, %$51] ; # Exe\n  %215 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %213\n  br label %$52\n$52:\n  %216 = phi i64 [%210, %$51], [%213, %$53] ; # X\n  %217 = phi i64 [%211, %$51], [%214, %$53] ; # Exe\n  %218 = phi i1 [0, %$51], [%215, %$53] ; # ->\n  br i1 %218, label %$54, label %$55\n$54:\n  %219 = phi i64 [%216, %$52] ; # X\n  %220 = phi i64 [%217, %$52] ; # Exe\n  call void @protErr(i64 %220, i64 %219)\n  unreachable\n$55:\n  %221 = phi i64 [%216, %$52] ; # X\n  %222 = phi i64 [%217, %$52] ; # Exe\n; # (set $Bind (setq P (push (val S) S P)) S (cdr Z))\n; # (val S)\n  %223 = inttoptr i64 %205 to i64*\n  %224 = load i64, i64* %223\n; # (push (val S) S P)\n  %225 = alloca i64, i64 3, align 16\n  %226 = ptrtoint i64* %225 to i64\n  %227 = inttoptr i64 %226 to i64*\n  store i64 %224, i64* %227\n  %228 = add i64 %226, 8\n  %229 = inttoptr i64 %228 to i64*\n  store i64 %205, i64* %229\n  %230 = add i64 %226, 16\n  %231 = inttoptr i64 %230 to i64*\n  store i64 %201, i64* %231\n  %232 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %226, i64* %232\n; # (cdr Z)\n  %233 = inttoptr i64 %203 to i64*\n  %234 = getelementptr i64, i64* %233, i32 1\n  %235 = load i64, i64* %234\n  %236 = inttoptr i64 %205 to i64*\n  store i64 %235, i64* %236\n  br label %$45\n$45:\n  %237 = phi i64 [%171, %$49], [%198, %$55] ; # Exe\n  %238 = phi i64 [%172, %$49], [%199, %$55] ; # X\n  %239 = phi i64 [%173, %$49], [%200, %$55] ; # Y\n  %240 = phi i64 [%191, %$49], [%226, %$55] ; # P\n  %241 = phi i64 [%175, %$49], [%202, %$55] ; # Q\n  %242 = phi i64 [%176, %$49], [%203, %$55] ; # Z\n  %243 = phi i64 [%191, %$49], [%235, %$55] ; # ->\n; # (? (atom Y))\n; # (atom Y)\n  %244 = and i64 %239, 15\n  %245 = icmp ne i64 %244, 0\n  br i1 %245, label %$57, label %$56\n$56:\n  %246 = phi i64 [%237, %$45] ; # Exe\n  %247 = phi i64 [%238, %$45] ; # X\n  %248 = phi i64 [%239, %$45] ; # Y\n  %249 = phi i64 [%240, %$45] ; # P\n  %250 = phi i64 [%241, %$45] ; # Q\n  br label %$40\n$57:\n  %251 = phi i64 [%237, %$45] ; # Exe\n  %252 = phi i64 [%238, %$45] ; # X\n  %253 = phi i64 [%239, %$45] ; # Y\n  %254 = phi i64 [%240, %$45] ; # P\n  %255 = phi i64 [%241, %$45] ; # Q\n  %256 = phi i64 [0, %$45] ; # ->\n; # (prog1 (run X) (loop (set (val 2 P) (val P)) (? (== Q (setq P (va...\n; # (run X)\n  br label %$58\n$58:\n  %257 = phi i64 [%252, %$57], [%287, %$67] ; # Prg\n  %258 = inttoptr i64 %257 to i64*\n  %259 = getelementptr i64, i64* %258, i32 1\n  %260 = load i64, i64* %259\n  %261 = load i64, i64* %258\n  %262 = and i64 %260, 15\n  %263 = icmp ne i64 %262, 0\n  br i1 %263, label %$61, label %$59\n$61:\n  %264 = phi i64 [%260, %$58] ; # Prg\n  %265 = phi i64 [%261, %$58] ; # X\n  %266 = and i64 %265, 6\n  %267 = icmp ne i64 %266, 0\n  br i1 %267, label %$64, label %$63\n$64:\n  %268 = phi i64 [%265, %$61] ; # X\n  br label %$62\n$63:\n  %269 = phi i64 [%265, %$61] ; # X\n  %270 = and i64 %269, 8\n  %271 = icmp ne i64 %270, 0\n  br i1 %271, label %$66, label %$65\n$66:\n  %272 = phi i64 [%269, %$63] ; # X\n  %273 = inttoptr i64 %272 to i64*\n  %274 = load i64, i64* %273\n  br label %$62\n$65:\n  %275 = phi i64 [%269, %$63] ; # X\n  %276 = call i64 @evList(i64 %275)\n  br label %$62\n$62:\n  %277 = phi i64 [%268, %$64], [%272, %$66], [%275, %$65] ; # X\n  %278 = phi i64 [%268, %$64], [%274, %$66], [%276, %$65] ; # ->\n  br label %$60\n$59:\n  %279 = phi i64 [%260, %$58] ; # Prg\n  %280 = phi i64 [%261, %$58] ; # X\n  %281 = and i64 %280, 15\n  %282 = icmp eq i64 %281, 0\n  br i1 %282, label %$68, label %$67\n$68:\n  %283 = phi i64 [%279, %$59] ; # Prg\n  %284 = phi i64 [%280, %$59] ; # X\n  %285 = call i64 @evList(i64 %284)\n  %286 = icmp ne i64 %285, 0\n  br label %$67\n$67:\n  %287 = phi i64 [%279, %$59], [%283, %$68] ; # Prg\n  %288 = phi i64 [%280, %$59], [%284, %$68] ; # X\n  %289 = phi i1 [0, %$59], [%286, %$68] ; # ->\n  br label %$58\n$60:\n  %290 = phi i64 [%264, %$62] ; # Prg\n  %291 = phi i64 [%278, %$62] ; # ->\n; # (loop (set (val 2 P) (val P)) (? (== Q (setq P (val 3 P)))))\n  br label %$69\n$69:\n  %292 = phi i64 [%251, %$60], [%307, %$70] ; # Exe\n  %293 = phi i64 [%252, %$60], [%308, %$70] ; # X\n  %294 = phi i64 [%253, %$60], [%309, %$70] ; # Y\n  %295 = phi i64 [%254, %$60], [%310, %$70] ; # P\n  %296 = phi i64 [%255, %$60], [%311, %$70] ; # Q\n; # (set (val 2 P) (val P))\n; # (val 2 P)\n  %297 = inttoptr i64 %295 to i64*\n  %298 = getelementptr i64, i64* %297, i32 1\n  %299 = load i64, i64* %298\n; # (val P)\n  %300 = inttoptr i64 %295 to i64*\n  %301 = load i64, i64* %300\n  %302 = inttoptr i64 %299 to i64*\n  store i64 %301, i64* %302\n; # (? (== Q (setq P (val 3 P))))\n; # (val 3 P)\n  %303 = inttoptr i64 %295 to i64*\n  %304 = getelementptr i64, i64* %303, i32 2\n  %305 = load i64, i64* %304\n; # (== Q (setq P (val 3 P)))\n  %306 = icmp eq i64 %296, %305\n  br i1 %306, label %$71, label %$70\n$70:\n  %307 = phi i64 [%292, %$69] ; # Exe\n  %308 = phi i64 [%293, %$69] ; # X\n  %309 = phi i64 [%294, %$69] ; # Y\n  %310 = phi i64 [%305, %$69] ; # P\n  %311 = phi i64 [%296, %$69] ; # Q\n  br label %$69\n$71:\n  %312 = phi i64 [%292, %$69] ; # Exe\n  %313 = phi i64 [%293, %$69] ; # X\n  %314 = phi i64 [%294, %$69] ; # Y\n  %315 = phi i64 [%305, %$69] ; # P\n  %316 = phi i64 [%296, %$69] ; # Q\n  %317 = phi i64 [0, %$69] ; # ->\n; # (set $Bind P)\n  %318 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %315, i64* %318\n  br label %$7\n$7:\n  %319 = phi i64 [%30, %$14], [%73, %$31], [%312, %$71] ; # Exe\n  %320 = phi i64 [%31, %$14], [%74, %$31], [%313, %$71] ; # X\n  %321 = phi i64 [%32, %$14], [%75, %$31], [%314, %$71] ; # Y\n  %322 = phi i64 [%67, %$14], [%133, %$31], [%291, %$71] ; # ->\n  ret i64 %322\n}\n\ndefine i64 @_Job(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) P (val $Bind) Q P) (whil...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (val $Bind)\n  %29 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %30 = load i64, i64* %29\n; # (while (pair Y) (let (Z (++ Y) S (car Z)) (needChkVar Exe S) (set...\n  br label %$7\n$7:\n  %31 = phi i64 [%0, %$2], [%38, %$15] ; # Exe\n  %32 = phi i64 [%6, %$2], [%39, %$15] ; # X\n  %33 = phi i64 [%20, %$2], [%45, %$15] ; # Y\n  %34 = phi i64 [%30, %$2], [%69, %$15] ; # P\n  %35 = phi i64 [%30, %$2], [%42, %$15] ; # Q\n; # (pair Y)\n  %36 = and i64 %33, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$8, label %$9\n$8:\n  %38 = phi i64 [%31, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%33, %$7] ; # Y\n  %41 = phi i64 [%34, %$7] ; # P\n  %42 = phi i64 [%35, %$7] ; # Q\n; # (let (Z (++ Y) S (car Z)) (needChkVar Exe S) (set $Bind (setq P (...\n; # (++ Y)\n  %43 = inttoptr i64 %40 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n  %46 = load i64, i64* %43\n; # (car Z)\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (needChkVar Exe S)\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$10, label %$11\n$10:\n  %51 = phi i64 [%48, %$8] ; # X\n  %52 = phi i64 [%38, %$8] ; # Exe\n  call void @varErr(i64 %52, i64 %51)\n  unreachable\n$11:\n  %53 = phi i64 [%48, %$8] ; # X\n  %54 = phi i64 [%38, %$8] ; # Exe\n  %55 = icmp uge i64 %53, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %55, label %$13, label %$12\n$13:\n  %56 = phi i64 [%53, %$11] ; # X\n  %57 = phi i64 [%54, %$11] ; # Exe\n  %58 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %56\n  br label %$12\n$12:\n  %59 = phi i64 [%53, %$11], [%56, %$13] ; # X\n  %60 = phi i64 [%54, %$11], [%57, %$13] ; # Exe\n  %61 = phi i1 [0, %$11], [%58, %$13] ; # ->\n  br i1 %61, label %$14, label %$15\n$14:\n  %62 = phi i64 [%59, %$12] ; # X\n  %63 = phi i64 [%60, %$12] ; # Exe\n  call void @protErr(i64 %63, i64 %62)\n  unreachable\n$15:\n  %64 = phi i64 [%59, %$12] ; # X\n  %65 = phi i64 [%60, %$12] ; # Exe\n; # (set $Bind (setq P (push (val S) S P Z)) S (cdr Z))\n; # (val S)\n  %66 = inttoptr i64 %48 to i64*\n  %67 = load i64, i64* %66\n; # (push (val S) S P Z)\n  %68 = alloca i64, i64 4, align 16\n  %69 = ptrtoint i64* %68 to i64\n  %70 = inttoptr i64 %69 to i64*\n  store i64 %67, i64* %70\n  %71 = add i64 %69, 8\n  %72 = inttoptr i64 %71 to i64*\n  store i64 %48, i64* %72\n  %73 = add i64 %69, 16\n  %74 = inttoptr i64 %73 to i64*\n  store i64 %41, i64* %74\n  %75 = add i64 %69, 24\n  %76 = inttoptr i64 %75 to i64*\n  store i64 %46, i64* %76\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %69, i64* %77\n; # (cdr Z)\n  %78 = inttoptr i64 %46 to i64*\n  %79 = getelementptr i64, i64* %78, i32 1\n  %80 = load i64, i64* %79\n  %81 = inttoptr i64 %48 to i64*\n  store i64 %80, i64* %81\n  br label %$7\n$9:\n  %82 = phi i64 [%31, %$7] ; # Exe\n  %83 = phi i64 [%32, %$7] ; # X\n  %84 = phi i64 [%33, %$7] ; # Y\n  %85 = phi i64 [%34, %$7] ; # P\n  %86 = phi i64 [%35, %$7] ; # Q\n; # (prog1 (run X) (until (== Q P) (let S (val 2 P) (set 2 (val 4 P) ...\n; # (run X)\n  br label %$16\n$16:\n  %87 = phi i64 [%83, %$9], [%117, %$25] ; # Prg\n  %88 = inttoptr i64 %87 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n  %91 = load i64, i64* %88\n  %92 = and i64 %90, 15\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$19, label %$17\n$19:\n  %94 = phi i64 [%90, %$16] ; # Prg\n  %95 = phi i64 [%91, %$16] ; # X\n  %96 = and i64 %95, 6\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$22, label %$21\n$22:\n  %98 = phi i64 [%95, %$19] ; # X\n  br label %$20\n$21:\n  %99 = phi i64 [%95, %$19] ; # X\n  %100 = and i64 %99, 8\n  %101 = icmp ne i64 %100, 0\n  br i1 %101, label %$24, label %$23\n$24:\n  %102 = phi i64 [%99, %$21] ; # X\n  %103 = inttoptr i64 %102 to i64*\n  %104 = load i64, i64* %103\n  br label %$20\n$23:\n  %105 = phi i64 [%99, %$21] ; # X\n  %106 = call i64 @evList(i64 %105)\n  br label %$20\n$20:\n  %107 = phi i64 [%98, %$22], [%102, %$24], [%105, %$23] ; # X\n  %108 = phi i64 [%98, %$22], [%104, %$24], [%106, %$23] ; # ->\n  br label %$18\n$17:\n  %109 = phi i64 [%90, %$16] ; # Prg\n  %110 = phi i64 [%91, %$16] ; # X\n  %111 = and i64 %110, 15\n  %112 = icmp eq i64 %111, 0\n  br i1 %112, label %$26, label %$25\n$26:\n  %113 = phi i64 [%109, %$17] ; # Prg\n  %114 = phi i64 [%110, %$17] ; # X\n  %115 = call i64 @evList(i64 %114)\n  %116 = icmp ne i64 %115, 0\n  br label %$25\n$25:\n  %117 = phi i64 [%109, %$17], [%113, %$26] ; # Prg\n  %118 = phi i64 [%110, %$17], [%114, %$26] ; # X\n  %119 = phi i1 [0, %$17], [%116, %$26] ; # ->\n  br label %$16\n$18:\n  %120 = phi i64 [%94, %$20] ; # Prg\n  %121 = phi i64 [%108, %$20] ; # ->\n; # (until (== Q P) (let S (val 2 P) (set 2 (val 4 P) (val S)) (set S...\n  br label %$27\n$27:\n  %122 = phi i64 [%82, %$18], [%128, %$28] ; # Exe\n  %123 = phi i64 [%83, %$18], [%129, %$28] ; # X\n  %124 = phi i64 [%84, %$18], [%130, %$28] ; # Y\n  %125 = phi i64 [%85, %$18], [%148, %$28] ; # P\n  %126 = phi i64 [%86, %$18], [%132, %$28] ; # Q\n; # (== Q P)\n  %127 = icmp eq i64 %126, %125\n  br i1 %127, label %$29, label %$28\n$28:\n  %128 = phi i64 [%122, %$27] ; # Exe\n  %129 = phi i64 [%123, %$27] ; # X\n  %130 = phi i64 [%124, %$27] ; # Y\n  %131 = phi i64 [%125, %$27] ; # P\n  %132 = phi i64 [%126, %$27] ; # Q\n; # (let S (val 2 P) (set 2 (val 4 P) (val S)) (set S (val P)))\n; # (val 2 P)\n  %133 = inttoptr i64 %131 to i64*\n  %134 = getelementptr i64, i64* %133, i32 1\n  %135 = load i64, i64* %134\n; # (set 2 (val 4 P) (val S))\n; # (val 4 P)\n  %136 = inttoptr i64 %131 to i64*\n  %137 = getelementptr i64, i64* %136, i32 3\n  %138 = load i64, i64* %137\n; # (val S)\n  %139 = inttoptr i64 %135 to i64*\n  %140 = load i64, i64* %139\n  %141 = inttoptr i64 %138 to i64*\n  %142 = getelementptr i64, i64* %141, i32 1\n  store i64 %140, i64* %142\n; # (set S (val P))\n; # (val P)\n  %143 = inttoptr i64 %131 to i64*\n  %144 = load i64, i64* %143\n  %145 = inttoptr i64 %135 to i64*\n  store i64 %144, i64* %145\n; # (val 3 P)\n  %146 = inttoptr i64 %131 to i64*\n  %147 = getelementptr i64, i64* %146, i32 2\n  %148 = load i64, i64* %147\n  br label %$27\n$29:\n  %149 = phi i64 [%122, %$27] ; # Exe\n  %150 = phi i64 [%123, %$27] ; # X\n  %151 = phi i64 [%124, %$27] ; # Y\n  %152 = phi i64 [%125, %$27] ; # P\n  %153 = phi i64 [%126, %$27] ; # Q\n; # (set $Bind P)\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %152, i64* %154\n; # (drop *Safe)\n  %155 = inttoptr i64 %24 to i64*\n  %156 = getelementptr i64, i64* %155, i32 1\n  %157 = load i64, i64* %156\n  %158 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %157, i64* %158\n  ret i64 %121\n}\n\ndefine void @setDestruct(i64, i64) align 8 {\n$1:\n; # (loop (when (atom Val) (setq Val $Nil)) (let (P (++ Pat) V (++ Va...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%52, %$10] ; # Pat\n  %3 = phi i64 [%1, %$1], [%53, %$10] ; # Val\n; # (when (atom Val) (setq Val $Nil))\n; # (atom Val)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$3, label %$4\n$3:\n  %6 = phi i64 [%2, %$2] ; # Pat\n  %7 = phi i64 [%3, %$2] ; # Val\n  br label %$4\n$4:\n  %8 = phi i64 [%2, %$2], [%6, %$3] ; # Pat\n  %9 = phi i64 [%3, %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # Val\n; # (let (P (++ Pat) V (++ Val)) (if (atom P) (unless (nil? P) (set P...\n; # (++ Pat)\n  %10 = inttoptr i64 %8 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n  %13 = load i64, i64* %10\n; # (++ Val)\n  %14 = inttoptr i64 %9 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n  %17 = load i64, i64* %14\n; # (if (atom P) (unless (nil? P) (set P V)) (setDestruct P V))\n; # (atom P)\n  %18 = and i64 %13, 15\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$5, label %$6\n$5:\n  %20 = phi i64 [%12, %$4] ; # Pat\n  %21 = phi i64 [%16, %$4] ; # Val\n  %22 = phi i64 [%13, %$4] ; # P\n  %23 = phi i64 [%17, %$4] ; # V\n; # (unless (nil? P) (set P V))\n; # (nil? P)\n  %24 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %24, label %$9, label %$8\n$8:\n  %25 = phi i64 [%20, %$5] ; # Pat\n  %26 = phi i64 [%21, %$5] ; # Val\n  %27 = phi i64 [%22, %$5] ; # P\n  %28 = phi i64 [%23, %$5] ; # V\n; # (set P V)\n  %29 = inttoptr i64 %27 to i64*\n  store i64 %28, i64* %29\n  br label %$9\n$9:\n  %30 = phi i64 [%20, %$5], [%25, %$8] ; # Pat\n  %31 = phi i64 [%21, %$5], [%26, %$8] ; # Val\n  %32 = phi i64 [%22, %$5], [%27, %$8] ; # P\n  %33 = phi i64 [%23, %$5], [%28, %$8] ; # V\n  br label %$7\n$6:\n  %34 = phi i64 [%12, %$4] ; # Pat\n  %35 = phi i64 [%16, %$4] ; # Val\n  %36 = phi i64 [%13, %$4] ; # P\n  %37 = phi i64 [%17, %$4] ; # V\n; # (setDestruct P V)\n  call void @setDestruct(i64 %36, i64 %37)\n  br label %$7\n$7:\n  %38 = phi i64 [%30, %$9], [%34, %$6] ; # Pat\n  %39 = phi i64 [%31, %$9], [%35, %$6] ; # Val\n  %40 = phi i64 [%32, %$9], [%36, %$6] ; # P\n  %41 = phi i64 [%33, %$9], [%37, %$6] ; # V\n; # (? (atom Pat) (unless (nil? Pat) (set Pat Val)))\n; # (atom Pat)\n  %42 = and i64 %38, 15\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$12, label %$10\n$12:\n  %44 = phi i64 [%38, %$7] ; # Pat\n  %45 = phi i64 [%39, %$7] ; # Val\n; # (unless (nil? Pat) (set Pat Val))\n; # (nil? Pat)\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %46, label %$14, label %$13\n$13:\n  %47 = phi i64 [%44, %$12] ; # Pat\n  %48 = phi i64 [%45, %$12] ; # Val\n; # (set Pat Val)\n  %49 = inttoptr i64 %47 to i64*\n  store i64 %48, i64* %49\n  br label %$14\n$14:\n  %50 = phi i64 [%44, %$12], [%47, %$13] ; # Pat\n  %51 = phi i64 [%45, %$12], [%48, %$13] ; # Val\n  br label %$11\n$10:\n  %52 = phi i64 [%38, %$7] ; # Pat\n  %53 = phi i64 [%39, %$7] ; # Val\n  br label %$2\n$11:\n  %54 = phi i64 [%50, %$14] ; # Pat\n  %55 = phi i64 [%51, %$14] ; # Val\n  ret void\n}\n\ndefine i64 @_Let(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (++ X)) (if (atom Y) (let P (set $Bind (push ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (if (atom Y) (let P (set $Bind (push (val (needChkVar Exe Y)) Y (...\n; # (atom Y)\n  %8 = and i64 %7, 15\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%6, %$1] ; # X\n  %12 = phi i64 [%7, %$1] ; # Y\n; # (let P (set $Bind (push (val (needChkVar Exe Y)) Y (val $Bind))) ...\n; # (set $Bind (push (val (needChkVar Exe Y)) Y (val $Bind)))\n; # (needChkVar Exe Y)\n  %13 = and i64 %12, 6\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$5, label %$6\n$5:\n  %15 = phi i64 [%12, %$2] ; # X\n  %16 = phi i64 [%10, %$2] ; # Exe\n  call void @varErr(i64 %16, i64 %15)\n  unreachable\n$6:\n  %17 = phi i64 [%12, %$2] ; # X\n  %18 = phi i64 [%10, %$2] ; # Exe\n  %19 = icmp uge i64 %17, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$8, label %$7\n$8:\n  %20 = phi i64 [%17, %$6] ; # X\n  %21 = phi i64 [%18, %$6] ; # Exe\n  %22 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %20\n  br label %$7\n$7:\n  %23 = phi i64 [%17, %$6], [%20, %$8] ; # X\n  %24 = phi i64 [%18, %$6], [%21, %$8] ; # Exe\n  %25 = phi i1 [0, %$6], [%22, %$8] ; # ->\n  br i1 %25, label %$9, label %$10\n$9:\n  %26 = phi i64 [%23, %$7] ; # X\n  %27 = phi i64 [%24, %$7] ; # Exe\n  call void @protErr(i64 %27, i64 %26)\n  unreachable\n$10:\n  %28 = phi i64 [%23, %$7] ; # X\n  %29 = phi i64 [%24, %$7] ; # Exe\n; # (val (needChkVar Exe Y))\n  %30 = inttoptr i64 %17 to i64*\n  %31 = load i64, i64* %30\n; # (val $Bind)\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %33 = load i64, i64* %32\n; # (push (val (needChkVar Exe Y)) Y (val $Bind))\n  %34 = alloca i64, i64 3, align 16\n  %35 = ptrtoint i64* %34 to i64\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %31, i64* %36\n  %37 = add i64 %35, 8\n  %38 = inttoptr i64 %37 to i64*\n  store i64 %12, i64* %38\n  %39 = add i64 %35, 16\n  %40 = inttoptr i64 %39 to i64*\n  store i64 %33, i64* %40\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %35, i64* %41\n; # (set Y (eval (++ X)))\n; # (++ X)\n  %42 = inttoptr i64 %11 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n  %45 = load i64, i64* %42\n; # (eval (++ X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$13, label %$12\n$13:\n  %48 = phi i64 [%45, %$10] ; # X\n  br label %$11\n$12:\n  %49 = phi i64 [%45, %$10] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$14\n$15:\n  %52 = phi i64 [%49, %$12] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$11\n$14:\n  %55 = phi i64 [%49, %$12] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$11\n$11:\n  %57 = phi i64 [%48, %$13], [%52, %$15], [%55, %$14] ; # X\n  %58 = phi i64 [%48, %$13], [%54, %$15], [%56, %$14] ; # ->\n  %59 = inttoptr i64 %12 to i64*\n  store i64 %58, i64* %59\n; # (prog1 (run X) (set Y (val P) $Bind (val 3 P)))\n; # (run X)\n  br label %$16\n$16:\n  %60 = phi i64 [%44, %$11], [%90, %$25] ; # Prg\n  %61 = inttoptr i64 %60 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n  %64 = load i64, i64* %61\n  %65 = and i64 %63, 15\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$19, label %$17\n$19:\n  %67 = phi i64 [%63, %$16] ; # Prg\n  %68 = phi i64 [%64, %$16] ; # X\n  %69 = and i64 %68, 6\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$22, label %$21\n$22:\n  %71 = phi i64 [%68, %$19] ; # X\n  br label %$20\n$21:\n  %72 = phi i64 [%68, %$19] ; # X\n  %73 = and i64 %72, 8\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$24, label %$23\n$24:\n  %75 = phi i64 [%72, %$21] ; # X\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n  br label %$20\n$23:\n  %78 = phi i64 [%72, %$21] ; # X\n  %79 = call i64 @evList(i64 %78)\n  br label %$20\n$20:\n  %80 = phi i64 [%71, %$22], [%75, %$24], [%78, %$23] ; # X\n  %81 = phi i64 [%71, %$22], [%77, %$24], [%79, %$23] ; # ->\n  br label %$18\n$17:\n  %82 = phi i64 [%63, %$16] ; # Prg\n  %83 = phi i64 [%64, %$16] ; # X\n  %84 = and i64 %83, 15\n  %85 = icmp eq i64 %84, 0\n  br i1 %85, label %$26, label %$25\n$26:\n  %86 = phi i64 [%82, %$17] ; # Prg\n  %87 = phi i64 [%83, %$17] ; # X\n  %88 = call i64 @evList(i64 %87)\n  %89 = icmp ne i64 %88, 0\n  br label %$25\n$25:\n  %90 = phi i64 [%82, %$17], [%86, %$26] ; # Prg\n  %91 = phi i64 [%83, %$17], [%87, %$26] ; # X\n  %92 = phi i1 [0, %$17], [%89, %$26] ; # ->\n  br label %$16\n$18:\n  %93 = phi i64 [%67, %$20] ; # Prg\n  %94 = phi i64 [%81, %$20] ; # ->\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %95 = inttoptr i64 %35 to i64*\n  %96 = load i64, i64* %95\n  %97 = inttoptr i64 %12 to i64*\n  store i64 %96, i64* %97\n; # (val 3 P)\n  %98 = inttoptr i64 %35 to i64*\n  %99 = getelementptr i64, i64* %98, i32 2\n  %100 = load i64, i64* %99\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %100, i64* %101\n  br label %$4\n$3:\n  %102 = phi i64 [%0, %$1] ; # Exe\n  %103 = phi i64 [%6, %$1] ; # X\n  %104 = phi i64 [%7, %$1] ; # Y\n; # (let (P (val $Bind) Q P) (loop (let Z (++ Y) (if (atom Z) (set $B...\n; # (val $Bind)\n  %105 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %106 = load i64, i64* %105\n; # (loop (let Z (++ Y) (if (atom Z) (set $Bind (setq P (push (val (n...\n  br label %$27\n$27:\n  %107 = phi i64 [%102, %$3], [%416, %$78] ; # Exe\n  %108 = phi i64 [%103, %$3], [%417, %$78] ; # X\n  %109 = phi i64 [%104, %$3], [%418, %$78] ; # Y\n  %110 = phi i64 [%106, %$3], [%419, %$78] ; # P\n  %111 = phi i64 [%106, %$3], [%420, %$78] ; # Q\n; # (let Z (++ Y) (if (atom Z) (set $Bind (setq P (push (val (needChk...\n; # (++ Y)\n  %112 = inttoptr i64 %109 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  %114 = load i64, i64* %113\n  %115 = load i64, i64* %112\n; # (if (atom Z) (set $Bind (setq P (push (val (needChkVar Exe Z)) Z ...\n; # (atom Z)\n  %116 = and i64 %115, 15\n  %117 = icmp ne i64 %116, 0\n  br i1 %117, label %$28, label %$29\n$28:\n  %118 = phi i64 [%107, %$27] ; # Exe\n  %119 = phi i64 [%108, %$27] ; # X\n  %120 = phi i64 [%114, %$27] ; # Y\n  %121 = phi i64 [%110, %$27] ; # P\n  %122 = phi i64 [%111, %$27] ; # Q\n  %123 = phi i64 [%115, %$27] ; # Z\n; # (set $Bind (setq P (push (val (needChkVar Exe Z)) Z P)) Z (eval (...\n; # (needChkVar Exe Z)\n  %124 = and i64 %123, 6\n  %125 = icmp ne i64 %124, 0\n  br i1 %125, label %$31, label %$32\n$31:\n  %126 = phi i64 [%123, %$28] ; # X\n  %127 = phi i64 [%118, %$28] ; # Exe\n  call void @varErr(i64 %127, i64 %126)\n  unreachable\n$32:\n  %128 = phi i64 [%123, %$28] ; # X\n  %129 = phi i64 [%118, %$28] ; # Exe\n  %130 = icmp uge i64 %128, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %130, label %$34, label %$33\n$34:\n  %131 = phi i64 [%128, %$32] ; # X\n  %132 = phi i64 [%129, %$32] ; # Exe\n  %133 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %131\n  br label %$33\n$33:\n  %134 = phi i64 [%128, %$32], [%131, %$34] ; # X\n  %135 = phi i64 [%129, %$32], [%132, %$34] ; # Exe\n  %136 = phi i1 [0, %$32], [%133, %$34] ; # ->\n  br i1 %136, label %$35, label %$36\n$35:\n  %137 = phi i64 [%134, %$33] ; # X\n  %138 = phi i64 [%135, %$33] ; # Exe\n  call void @protErr(i64 %138, i64 %137)\n  unreachable\n$36:\n  %139 = phi i64 [%134, %$33] ; # X\n  %140 = phi i64 [%135, %$33] ; # Exe\n; # (val (needChkVar Exe Z))\n  %141 = inttoptr i64 %128 to i64*\n  %142 = load i64, i64* %141\n; # (push (val (needChkVar Exe Z)) Z P)\n  %143 = alloca i64, i64 3, align 16\n  %144 = ptrtoint i64* %143 to i64\n  %145 = inttoptr i64 %144 to i64*\n  store i64 %142, i64* %145\n  %146 = add i64 %144, 8\n  %147 = inttoptr i64 %146 to i64*\n  store i64 %123, i64* %147\n  %148 = add i64 %144, 16\n  %149 = inttoptr i64 %148 to i64*\n  store i64 %121, i64* %149\n  %150 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %144, i64* %150\n; # (car Y)\n  %151 = inttoptr i64 %120 to i64*\n  %152 = load i64, i64* %151\n; # (eval (car Y))\n  %153 = and i64 %152, 6\n  %154 = icmp ne i64 %153, 0\n  br i1 %154, label %$39, label %$38\n$39:\n  %155 = phi i64 [%152, %$36] ; # X\n  br label %$37\n$38:\n  %156 = phi i64 [%152, %$36] ; # X\n  %157 = and i64 %156, 8\n  %158 = icmp ne i64 %157, 0\n  br i1 %158, label %$41, label %$40\n$41:\n  %159 = phi i64 [%156, %$38] ; # X\n  %160 = inttoptr i64 %159 to i64*\n  %161 = load i64, i64* %160\n  br label %$37\n$40:\n  %162 = phi i64 [%156, %$38] ; # X\n  %163 = call i64 @evList(i64 %162)\n  br label %$37\n$37:\n  %164 = phi i64 [%155, %$39], [%159, %$41], [%162, %$40] ; # X\n  %165 = phi i64 [%155, %$39], [%161, %$41], [%163, %$40] ; # ->\n  %166 = inttoptr i64 %123 to i64*\n  store i64 %165, i64* %166\n  br label %$30\n$29:\n  %167 = phi i64 [%107, %$27] ; # Exe\n  %168 = phi i64 [%108, %$27] ; # X\n  %169 = phi i64 [%114, %$27] ; # Y\n  %170 = phi i64 [%110, %$27] ; # P\n  %171 = phi i64 [%111, %$27] ; # Q\n  %172 = phi i64 [%115, %$27] ; # Z\n; # (let Tos 0 (loop (until (atom (car Z)) (let U Z (setq Z @) (set U...\n; # (loop (until (atom (car Z)) (let U Z (setq Z @) (set U Tos) (setq...\n  br label %$42\n$42:\n  %173 = phi i64 [%167, %$29], [%376, %$56] ; # Exe\n  %174 = phi i64 [%168, %$29], [%377, %$56] ; # X\n  %175 = phi i64 [%169, %$29], [%378, %$56] ; # Y\n  %176 = phi i64 [%170, %$29], [%379, %$56] ; # P\n  %177 = phi i64 [%171, %$29], [%380, %$56] ; # Q\n  %178 = phi i64 [%172, %$29], [%381, %$56] ; # Z\n  %179 = phi i64 [0, %$29], [%382, %$56] ; # Tos\n; # (until (atom (car Z)) (let U Z (setq Z @) (set U Tos) (setq Tos U...\n  br label %$43\n$43:\n  %180 = phi i64 [%173, %$42], [%191, %$44] ; # Exe\n  %181 = phi i64 [%174, %$42], [%192, %$44] ; # X\n  %182 = phi i64 [%175, %$42], [%193, %$44] ; # Y\n  %183 = phi i64 [%176, %$42], [%194, %$44] ; # P\n  %184 = phi i64 [%177, %$42], [%195, %$44] ; # Q\n  %185 = phi i64 [%178, %$42], [%188, %$44] ; # Z\n  %186 = phi i64 [%179, %$42], [%196, %$44] ; # Tos\n; # (car Z)\n  %187 = inttoptr i64 %185 to i64*\n  %188 = load i64, i64* %187\n; # (atom (car Z))\n  %189 = and i64 %188, 15\n  %190 = icmp ne i64 %189, 0\n  br i1 %190, label %$45, label %$44\n$44:\n  %191 = phi i64 [%180, %$43] ; # Exe\n  %192 = phi i64 [%181, %$43] ; # X\n  %193 = phi i64 [%182, %$43] ; # Y\n  %194 = phi i64 [%183, %$43] ; # P\n  %195 = phi i64 [%184, %$43] ; # Q\n  %196 = phi i64 [%185, %$43] ; # Z\n  %197 = phi i64 [%186, %$43] ; # Tos\n; # (let U Z (setq Z @) (set U Tos) (setq Tos U))\n; # (set U Tos)\n  %198 = inttoptr i64 %196 to i64*\n  store i64 %197, i64* %198\n  br label %$43\n$45:\n  %199 = phi i64 [%180, %$43] ; # Exe\n  %200 = phi i64 [%181, %$43] ; # X\n  %201 = phi i64 [%182, %$43] ; # Y\n  %202 = phi i64 [%183, %$43] ; # P\n  %203 = phi i64 [%184, %$43] ; # Q\n  %204 = phi i64 [%185, %$43] ; # Z\n  %205 = phi i64 [%186, %$43] ; # Tos\n; # (unless (nil? (car Z)) (let S (needChkVar Exe @) (set $Bind (setq...\n; # (car Z)\n  %206 = inttoptr i64 %204 to i64*\n  %207 = load i64, i64* %206\n; # (nil? (car Z))\n  %208 = icmp eq i64 %207, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %208, label %$47, label %$46\n$46:\n  %209 = phi i64 [%199, %$45] ; # Exe\n  %210 = phi i64 [%200, %$45] ; # X\n  %211 = phi i64 [%201, %$45] ; # Y\n  %212 = phi i64 [%202, %$45] ; # P\n  %213 = phi i64 [%203, %$45] ; # Q\n  %214 = phi i64 [%204, %$45] ; # Z\n  %215 = phi i64 [%205, %$45] ; # Tos\n; # (let S (needChkVar Exe @) (set $Bind (setq P (push (val S) S P)))...\n; # (needChkVar Exe @)\n  %216 = and i64 %207, 6\n  %217 = icmp ne i64 %216, 0\n  br i1 %217, label %$48, label %$49\n$48:\n  %218 = phi i64 [%207, %$46] ; # X\n  %219 = phi i64 [%209, %$46] ; # Exe\n  call void @varErr(i64 %219, i64 %218)\n  unreachable\n$49:\n  %220 = phi i64 [%207, %$46] ; # X\n  %221 = phi i64 [%209, %$46] ; # Exe\n  %222 = icmp uge i64 %220, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %222, label %$51, label %$50\n$51:\n  %223 = phi i64 [%220, %$49] ; # X\n  %224 = phi i64 [%221, %$49] ; # Exe\n  %225 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %223\n  br label %$50\n$50:\n  %226 = phi i64 [%220, %$49], [%223, %$51] ; # X\n  %227 = phi i64 [%221, %$49], [%224, %$51] ; # Exe\n  %228 = phi i1 [0, %$49], [%225, %$51] ; # ->\n  br i1 %228, label %$52, label %$53\n$52:\n  %229 = phi i64 [%226, %$50] ; # X\n  %230 = phi i64 [%227, %$50] ; # Exe\n  call void @protErr(i64 %230, i64 %229)\n  unreachable\n$53:\n  %231 = phi i64 [%226, %$50] ; # X\n  %232 = phi i64 [%227, %$50] ; # Exe\n; # (set $Bind (setq P (push (val S) S P)))\n; # (val S)\n  %233 = inttoptr i64 %220 to i64*\n  %234 = load i64, i64* %233\n; # (push (val S) S P)\n  %235 = alloca i64, i64 3, align 16\n  %236 = ptrtoint i64* %235 to i64\n  %237 = inttoptr i64 %236 to i64*\n  store i64 %234, i64* %237\n  %238 = add i64 %236, 8\n  %239 = inttoptr i64 %238 to i64*\n  store i64 %220, i64* %239\n  %240 = add i64 %236, 16\n  %241 = inttoptr i64 %240 to i64*\n  store i64 %212, i64* %241\n  %242 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %236, i64* %242\n  br label %$47\n$47:\n  %243 = phi i64 [%199, %$45], [%209, %$53] ; # Exe\n  %244 = phi i64 [%200, %$45], [%210, %$53] ; # X\n  %245 = phi i64 [%201, %$45], [%211, %$53] ; # Y\n  %246 = phi i64 [%202, %$45], [%236, %$53] ; # P\n  %247 = phi i64 [%203, %$45], [%213, %$53] ; # Q\n  %248 = phi i64 [%204, %$45], [%214, %$53] ; # Z\n  %249 = phi i64 [%205, %$45], [%215, %$53] ; # Tos\n; # (loop (? (pair (cdr Z)) (let U Z (setq Z @) (set 2 U Tos) (setq T...\n  br label %$54\n$54:\n  %250 = phi i64 [%243, %$47], [%368, %$70] ; # Exe\n  %251 = phi i64 [%244, %$47], [%369, %$70] ; # X\n  %252 = phi i64 [%245, %$47], [%370, %$70] ; # Y\n  %253 = phi i64 [%246, %$47], [%371, %$70] ; # P\n  %254 = phi i64 [%247, %$47], [%372, %$70] ; # Q\n  %255 = phi i64 [%248, %$47], [%373, %$70] ; # Z\n  %256 = phi i64 [%249, %$47], [%374, %$70] ; # Tos\n; # (? (pair (cdr Z)) (let U Z (setq Z @) (set 2 U Tos) (setq Tos (| ...\n; # (cdr Z)\n  %257 = inttoptr i64 %255 to i64*\n  %258 = getelementptr i64, i64* %257, i32 1\n  %259 = load i64, i64* %258\n; # (pair (cdr Z))\n  %260 = and i64 %259, 15\n  %261 = icmp eq i64 %260, 0\n  br i1 %261, label %$57, label %$55\n$57:\n  %262 = phi i64 [%250, %$54] ; # Exe\n  %263 = phi i64 [%251, %$54] ; # X\n  %264 = phi i64 [%252, %$54] ; # Y\n  %265 = phi i64 [%253, %$54] ; # P\n  %266 = phi i64 [%254, %$54] ; # Q\n  %267 = phi i64 [%255, %$54] ; # Z\n  %268 = phi i64 [%256, %$54] ; # Tos\n; # (let U Z (setq Z @) (set 2 U Tos) (setq Tos (| U 8)))\n; # (set 2 U Tos)\n  %269 = inttoptr i64 %267 to i64*\n  %270 = getelementptr i64, i64* %269, i32 1\n  store i64 %268, i64* %270\n; # (| U 8)\n  %271 = or i64 %267, 8\n  br label %$56\n$55:\n  %272 = phi i64 [%250, %$54] ; # Exe\n  %273 = phi i64 [%251, %$54] ; # X\n  %274 = phi i64 [%252, %$54] ; # Y\n  %275 = phi i64 [%253, %$54] ; # P\n  %276 = phi i64 [%254, %$54] ; # Q\n  %277 = phi i64 [%255, %$54] ; # Z\n  %278 = phi i64 [%256, %$54] ; # Tos\n; # (unless (nil? @) (let S (needChkVar Exe @) (set $Bind (setq P (pu...\n; # (nil? @)\n  %279 = icmp eq i64 %259, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %279, label %$59, label %$58\n$58:\n  %280 = phi i64 [%272, %$55] ; # Exe\n  %281 = phi i64 [%273, %$55] ; # X\n  %282 = phi i64 [%274, %$55] ; # Y\n  %283 = phi i64 [%275, %$55] ; # P\n  %284 = phi i64 [%276, %$55] ; # Q\n  %285 = phi i64 [%277, %$55] ; # Z\n  %286 = phi i64 [%278, %$55] ; # Tos\n; # (let S (needChkVar Exe @) (set $Bind (setq P (push (val S) S P)))...\n; # (needChkVar Exe @)\n  %287 = and i64 %259, 6\n  %288 = icmp ne i64 %287, 0\n  br i1 %288, label %$60, label %$61\n$60:\n  %289 = phi i64 [%259, %$58] ; # X\n  %290 = phi i64 [%280, %$58] ; # Exe\n  call void @varErr(i64 %290, i64 %289)\n  unreachable\n$61:\n  %291 = phi i64 [%259, %$58] ; # X\n  %292 = phi i64 [%280, %$58] ; # Exe\n  %293 = icmp uge i64 %291, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %293, label %$63, label %$62\n$63:\n  %294 = phi i64 [%291, %$61] ; # X\n  %295 = phi i64 [%292, %$61] ; # Exe\n  %296 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %294\n  br label %$62\n$62:\n  %297 = phi i64 [%291, %$61], [%294, %$63] ; # X\n  %298 = phi i64 [%292, %$61], [%295, %$63] ; # Exe\n  %299 = phi i1 [0, %$61], [%296, %$63] ; # ->\n  br i1 %299, label %$64, label %$65\n$64:\n  %300 = phi i64 [%297, %$62] ; # X\n  %301 = phi i64 [%298, %$62] ; # Exe\n  call void @protErr(i64 %301, i64 %300)\n  unreachable\n$65:\n  %302 = phi i64 [%297, %$62] ; # X\n  %303 = phi i64 [%298, %$62] ; # Exe\n; # (set $Bind (setq P (push (val S) S P)))\n; # (val S)\n  %304 = inttoptr i64 %291 to i64*\n  %305 = load i64, i64* %304\n; # (push (val S) S P)\n  %306 = alloca i64, i64 3, align 16\n  %307 = ptrtoint i64* %306 to i64\n  %308 = inttoptr i64 %307 to i64*\n  store i64 %305, i64* %308\n  %309 = add i64 %307, 8\n  %310 = inttoptr i64 %309 to i64*\n  store i64 %291, i64* %310\n  %311 = add i64 %307, 16\n  %312 = inttoptr i64 %311 to i64*\n  store i64 %283, i64* %312\n  %313 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %307, i64* %313\n  br label %$59\n$59:\n  %314 = phi i64 [%272, %$55], [%280, %$65] ; # Exe\n  %315 = phi i64 [%273, %$55], [%281, %$65] ; # X\n  %316 = phi i64 [%274, %$55], [%282, %$65] ; # Y\n  %317 = phi i64 [%275, %$55], [%307, %$65] ; # P\n  %318 = phi i64 [%276, %$55], [%284, %$65] ; # Q\n  %319 = phi i64 [%277, %$55], [%285, %$65] ; # Z\n  %320 = phi i64 [%278, %$55], [%286, %$65] ; # Tos\n; # (loop (unless Tos (goto 1)) (? (=0 (& Tos 8)) (let U Tos (setq To...\n  br label %$66\n$66:\n  %321 = phi i64 [%314, %$59], [%355, %$69] ; # Exe\n  %322 = phi i64 [%315, %$59], [%356, %$69] ; # X\n  %323 = phi i64 [%316, %$59], [%357, %$69] ; # Y\n  %324 = phi i64 [%317, %$59], [%358, %$69] ; # P\n  %325 = phi i64 [%318, %$59], [%359, %$69] ; # Q\n  %326 = phi i64 [%319, %$59], [%362, %$69] ; # Z\n  %327 = phi i64 [%320, %$59], [%365, %$69] ; # Tos\n; # (unless Tos (goto 1))\n  %328 = icmp ne i64 %327, 0\n  br i1 %328, label %$68, label %$67\n$67:\n  %329 = phi i64 [%321, %$66] ; # Exe\n  %330 = phi i64 [%322, %$66] ; # X\n  %331 = phi i64 [%323, %$66] ; # Y\n  %332 = phi i64 [%324, %$66] ; # P\n  %333 = phi i64 [%325, %$66] ; # Q\n  %334 = phi i64 [%326, %$66] ; # Z\n  %335 = phi i64 [%327, %$66] ; # Tos\n; # (goto 1)\n  br label %$-1\n$68:\n  %336 = phi i64 [%321, %$66] ; # Exe\n  %337 = phi i64 [%322, %$66] ; # X\n  %338 = phi i64 [%323, %$66] ; # Y\n  %339 = phi i64 [%324, %$66] ; # P\n  %340 = phi i64 [%325, %$66] ; # Q\n  %341 = phi i64 [%326, %$66] ; # Z\n  %342 = phi i64 [%327, %$66] ; # Tos\n; # (? (=0 (& Tos 8)) (let U Tos (setq Tos (car U)) (set U Z) (setq Z...\n; # (& Tos 8)\n  %343 = and i64 %342, 8\n; # (=0 (& Tos 8))\n  %344 = icmp eq i64 %343, 0\n  br i1 %344, label %$71, label %$69\n$71:\n  %345 = phi i64 [%336, %$68] ; # Exe\n  %346 = phi i64 [%337, %$68] ; # X\n  %347 = phi i64 [%338, %$68] ; # Y\n  %348 = phi i64 [%339, %$68] ; # P\n  %349 = phi i64 [%340, %$68] ; # Q\n  %350 = phi i64 [%341, %$68] ; # Z\n  %351 = phi i64 [%342, %$68] ; # Tos\n; # (let U Tos (setq Tos (car U)) (set U Z) (setq Z U))\n; # (car U)\n  %352 = inttoptr i64 %351 to i64*\n  %353 = load i64, i64* %352\n; # (set U Z)\n  %354 = inttoptr i64 %351 to i64*\n  store i64 %350, i64* %354\n  br label %$70\n$69:\n  %355 = phi i64 [%336, %$68] ; # Exe\n  %356 = phi i64 [%337, %$68] ; # X\n  %357 = phi i64 [%338, %$68] ; # Y\n  %358 = phi i64 [%339, %$68] ; # P\n  %359 = phi i64 [%340, %$68] ; # Q\n  %360 = phi i64 [%341, %$68] ; # Z\n  %361 = phi i64 [%342, %$68] ; # Tos\n; # (let U (& Tos -9) (setq Tos (cdr U)) (set 2 U Z) (setq Z U))\n; # (& Tos -9)\n  %362 = and i64 %361, -9\n; # (cdr U)\n  %363 = inttoptr i64 %362 to i64*\n  %364 = getelementptr i64, i64* %363, i32 1\n  %365 = load i64, i64* %364\n; # (set 2 U Z)\n  %366 = inttoptr i64 %362 to i64*\n  %367 = getelementptr i64, i64* %366, i32 1\n  store i64 %360, i64* %367\n  br label %$66\n$70:\n  %368 = phi i64 [%345, %$71] ; # Exe\n  %369 = phi i64 [%346, %$71] ; # X\n  %370 = phi i64 [%347, %$71] ; # Y\n  %371 = phi i64 [%348, %$71] ; # P\n  %372 = phi i64 [%349, %$71] ; # Q\n  %373 = phi i64 [%351, %$71] ; # Z\n  %374 = phi i64 [%353, %$71] ; # Tos\n  %375 = phi i64 [%351, %$71] ; # ->\n  br label %$54\n$56:\n  %376 = phi i64 [%262, %$57] ; # Exe\n  %377 = phi i64 [%263, %$57] ; # X\n  %378 = phi i64 [%264, %$57] ; # Y\n  %379 = phi i64 [%265, %$57] ; # P\n  %380 = phi i64 [%266, %$57] ; # Q\n  %381 = phi i64 [%259, %$57] ; # Z\n  %382 = phi i64 [%271, %$57] ; # Tos\n  %383 = phi i64 [%271, %$57] ; # ->\n  br label %$42\n$72:\n; # (: 1 (setDestruct Z (eval (car Y))))\n  br label %$-1\n$-1:\n  %384 = phi i64 [%329, %$67], [%376, %$72] ; # Exe\n  %385 = phi i64 [%330, %$67], [%377, %$72] ; # X\n  %386 = phi i64 [%331, %$67], [%378, %$72] ; # Y\n  %387 = phi i64 [%332, %$67], [%379, %$72] ; # P\n  %388 = phi i64 [%333, %$67], [%380, %$72] ; # Q\n  %389 = phi i64 [%334, %$67], [%381, %$72] ; # Z\n; # (car Y)\n  %390 = inttoptr i64 %386 to i64*\n  %391 = load i64, i64* %390\n; # (eval (car Y))\n  %392 = and i64 %391, 6\n  %393 = icmp ne i64 %392, 0\n  br i1 %393, label %$75, label %$74\n$75:\n  %394 = phi i64 [%391, %$-1] ; # X\n  br label %$73\n$74:\n  %395 = phi i64 [%391, %$-1] ; # X\n  %396 = and i64 %395, 8\n  %397 = icmp ne i64 %396, 0\n  br i1 %397, label %$77, label %$76\n$77:\n  %398 = phi i64 [%395, %$74] ; # X\n  %399 = inttoptr i64 %398 to i64*\n  %400 = load i64, i64* %399\n  br label %$73\n$76:\n  %401 = phi i64 [%395, %$74] ; # X\n  %402 = call i64 @evList(i64 %401)\n  br label %$73\n$73:\n  %403 = phi i64 [%394, %$75], [%398, %$77], [%401, %$76] ; # X\n  %404 = phi i64 [%394, %$75], [%400, %$77], [%402, %$76] ; # ->\n; # (setDestruct Z (eval (car Y)))\n  call void @setDestruct(i64 %389, i64 %404)\n  br label %$30\n$30:\n  %405 = phi i64 [%118, %$37], [%384, %$73] ; # Exe\n  %406 = phi i64 [%119, %$37], [%385, %$73] ; # X\n  %407 = phi i64 [%120, %$37], [%386, %$73] ; # Y\n  %408 = phi i64 [%144, %$37], [%387, %$73] ; # P\n  %409 = phi i64 [%122, %$37], [%388, %$73] ; # Q\n  %410 = phi i64 [%123, %$37], [%389, %$73] ; # Z\n; # (? (atom (shift Y)))\n; # (shift Y)\n  %411 = inttoptr i64 %407 to i64*\n  %412 = getelementptr i64, i64* %411, i32 1\n  %413 = load i64, i64* %412\n; # (atom (shift Y))\n  %414 = and i64 %413, 15\n  %415 = icmp ne i64 %414, 0\n  br i1 %415, label %$79, label %$78\n$78:\n  %416 = phi i64 [%405, %$30] ; # Exe\n  %417 = phi i64 [%406, %$30] ; # X\n  %418 = phi i64 [%413, %$30] ; # Y\n  %419 = phi i64 [%408, %$30] ; # P\n  %420 = phi i64 [%409, %$30] ; # Q\n  br label %$27\n$79:\n  %421 = phi i64 [%405, %$30] ; # Exe\n  %422 = phi i64 [%406, %$30] ; # X\n  %423 = phi i64 [%413, %$30] ; # Y\n  %424 = phi i64 [%408, %$30] ; # P\n  %425 = phi i64 [%409, %$30] ; # Q\n  %426 = phi i64 [0, %$30] ; # ->\n; # (prog1 (run X) (loop (set (val 2 P) (val P)) (? (== Q (setq P (va...\n; # (run X)\n  br label %$80\n$80:\n  %427 = phi i64 [%422, %$79], [%457, %$89] ; # Prg\n  %428 = inttoptr i64 %427 to i64*\n  %429 = getelementptr i64, i64* %428, i32 1\n  %430 = load i64, i64* %429\n  %431 = load i64, i64* %428\n  %432 = and i64 %430, 15\n  %433 = icmp ne i64 %432, 0\n  br i1 %433, label %$83, label %$81\n$83:\n  %434 = phi i64 [%430, %$80] ; # Prg\n  %435 = phi i64 [%431, %$80] ; # X\n  %436 = and i64 %435, 6\n  %437 = icmp ne i64 %436, 0\n  br i1 %437, label %$86, label %$85\n$86:\n  %438 = phi i64 [%435, %$83] ; # X\n  br label %$84\n$85:\n  %439 = phi i64 [%435, %$83] ; # X\n  %440 = and i64 %439, 8\n  %441 = icmp ne i64 %440, 0\n  br i1 %441, label %$88, label %$87\n$88:\n  %442 = phi i64 [%439, %$85] ; # X\n  %443 = inttoptr i64 %442 to i64*\n  %444 = load i64, i64* %443\n  br label %$84\n$87:\n  %445 = phi i64 [%439, %$85] ; # X\n  %446 = call i64 @evList(i64 %445)\n  br label %$84\n$84:\n  %447 = phi i64 [%438, %$86], [%442, %$88], [%445, %$87] ; # X\n  %448 = phi i64 [%438, %$86], [%444, %$88], [%446, %$87] ; # ->\n  br label %$82\n$81:\n  %449 = phi i64 [%430, %$80] ; # Prg\n  %450 = phi i64 [%431, %$80] ; # X\n  %451 = and i64 %450, 15\n  %452 = icmp eq i64 %451, 0\n  br i1 %452, label %$90, label %$89\n$90:\n  %453 = phi i64 [%449, %$81] ; # Prg\n  %454 = phi i64 [%450, %$81] ; # X\n  %455 = call i64 @evList(i64 %454)\n  %456 = icmp ne i64 %455, 0\n  br label %$89\n$89:\n  %457 = phi i64 [%449, %$81], [%453, %$90] ; # Prg\n  %458 = phi i64 [%450, %$81], [%454, %$90] ; # X\n  %459 = phi i1 [0, %$81], [%456, %$90] ; # ->\n  br label %$80\n$82:\n  %460 = phi i64 [%434, %$84] ; # Prg\n  %461 = phi i64 [%448, %$84] ; # ->\n; # (loop (set (val 2 P) (val P)) (? (== Q (setq P (val 3 P)))))\n  br label %$91\n$91:\n  %462 = phi i64 [%421, %$82], [%477, %$92] ; # Exe\n  %463 = phi i64 [%422, %$82], [%478, %$92] ; # X\n  %464 = phi i64 [%423, %$82], [%479, %$92] ; # Y\n  %465 = phi i64 [%424, %$82], [%480, %$92] ; # P\n  %466 = phi i64 [%425, %$82], [%481, %$92] ; # Q\n; # (set (val 2 P) (val P))\n; # (val 2 P)\n  %467 = inttoptr i64 %465 to i64*\n  %468 = getelementptr i64, i64* %467, i32 1\n  %469 = load i64, i64* %468\n; # (val P)\n  %470 = inttoptr i64 %465 to i64*\n  %471 = load i64, i64* %470\n  %472 = inttoptr i64 %469 to i64*\n  store i64 %471, i64* %472\n; # (? (== Q (setq P (val 3 P))))\n; # (val 3 P)\n  %473 = inttoptr i64 %465 to i64*\n  %474 = getelementptr i64, i64* %473, i32 2\n  %475 = load i64, i64* %474\n; # (== Q (setq P (val 3 P)))\n  %476 = icmp eq i64 %466, %475\n  br i1 %476, label %$93, label %$92\n$92:\n  %477 = phi i64 [%462, %$91] ; # Exe\n  %478 = phi i64 [%463, %$91] ; # X\n  %479 = phi i64 [%464, %$91] ; # Y\n  %480 = phi i64 [%475, %$91] ; # P\n  %481 = phi i64 [%466, %$91] ; # Q\n  br label %$91\n$93:\n  %482 = phi i64 [%462, %$91] ; # Exe\n  %483 = phi i64 [%463, %$91] ; # X\n  %484 = phi i64 [%464, %$91] ; # Y\n  %485 = phi i64 [%475, %$91] ; # P\n  %486 = phi i64 [%466, %$91] ; # Q\n  %487 = phi i64 [0, %$91] ; # ->\n; # (set $Bind P)\n  %488 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %485, i64* %488\n  br label %$4\n$4:\n  %489 = phi i64 [%10, %$18], [%482, %$93] ; # Exe\n  %490 = phi i64 [%44, %$18], [%483, %$93] ; # X\n  %491 = phi i64 [%12, %$18], [%484, %$93] ; # Y\n  %492 = phi i64 [%94, %$18], [%461, %$93] ; # ->\n  ret i64 %492\n}\n\ndefine i64 @_LetQ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (needChkVar Exe (++ X))) (if (nil? (eval (car...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (needChkVar Exe (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%7, %$1] ; # X\n  %11 = phi i64 [%0, %$1] ; # Exe\n  call void @varErr(i64 %11, i64 %10)\n  unreachable\n$3:\n  %12 = phi i64 [%7, %$1] ; # X\n  %13 = phi i64 [%0, %$1] ; # Exe\n  %14 = icmp uge i64 %12, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %14, label %$5, label %$4\n$5:\n  %15 = phi i64 [%12, %$3] ; # X\n  %16 = phi i64 [%13, %$3] ; # Exe\n  %17 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %15\n  br label %$4\n$4:\n  %18 = phi i64 [%12, %$3], [%15, %$5] ; # X\n  %19 = phi i64 [%13, %$3], [%16, %$5] ; # Exe\n  %20 = phi i1 [0, %$3], [%17, %$5] ; # ->\n  br i1 %20, label %$6, label %$7\n$6:\n  %21 = phi i64 [%18, %$4] ; # X\n  %22 = phi i64 [%19, %$4] ; # Exe\n  call void @protErr(i64 %22, i64 %21)\n  unreachable\n$7:\n  %23 = phi i64 [%18, %$4] ; # X\n  %24 = phi i64 [%19, %$4] ; # Exe\n; # (if (nil? (eval (car X))) @ (let P (set $Bind (push (val Y) Y (va...\n; # (car X)\n  %25 = inttoptr i64 %6 to i64*\n  %26 = load i64, i64* %25\n; # (eval (car X))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$10, label %$9\n$10:\n  %29 = phi i64 [%26, %$7] ; # X\n  br label %$8\n$9:\n  %30 = phi i64 [%26, %$7] ; # X\n  %31 = and i64 %30, 8\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$12, label %$11\n$12:\n  %33 = phi i64 [%30, %$9] ; # X\n  %34 = inttoptr i64 %33 to i64*\n  %35 = load i64, i64* %34\n  br label %$8\n$11:\n  %36 = phi i64 [%30, %$9] ; # X\n  %37 = call i64 @evList(i64 %36)\n  br label %$8\n$8:\n  %38 = phi i64 [%29, %$10], [%33, %$12], [%36, %$11] ; # X\n  %39 = phi i64 [%29, %$10], [%35, %$12], [%37, %$11] ; # ->\n; # (nil? (eval (car X)))\n  %40 = icmp eq i64 %39, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %40, label %$13, label %$14\n$13:\n  %41 = phi i64 [%0, %$8] ; # Exe\n  %42 = phi i64 [%6, %$8] ; # X\n  %43 = phi i64 [%12, %$8] ; # Y\n  br label %$15\n$14:\n  %44 = phi i64 [%0, %$8] ; # Exe\n  %45 = phi i64 [%6, %$8] ; # X\n  %46 = phi i64 [%12, %$8] ; # Y\n; # (let P (set $Bind (push (val Y) Y (val $Bind))) (set Y @) (prog1 ...\n; # (set $Bind (push (val Y) Y (val $Bind)))\n; # (val Y)\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (val $Bind)\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %50 = load i64, i64* %49\n; # (push (val Y) Y (val $Bind))\n  %51 = alloca i64, i64 3, align 16\n  %52 = ptrtoint i64* %51 to i64\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = add i64 %52, 8\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %46, i64* %55\n  %56 = add i64 %52, 16\n  %57 = inttoptr i64 %56 to i64*\n  store i64 %50, i64* %57\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %52, i64* %58\n; # (set Y @)\n  %59 = inttoptr i64 %46 to i64*\n  store i64 %39, i64* %59\n; # (prog1 (run (cdr X)) (set Y (val P) $Bind (val 3 P)))\n; # (cdr X)\n  %60 = inttoptr i64 %45 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n; # (run (cdr X))\n  br label %$16\n$16:\n  %63 = phi i64 [%62, %$14], [%93, %$25] ; # Prg\n  %64 = inttoptr i64 %63 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n  %67 = load i64, i64* %64\n  %68 = and i64 %66, 15\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$19, label %$17\n$19:\n  %70 = phi i64 [%66, %$16] ; # Prg\n  %71 = phi i64 [%67, %$16] ; # X\n  %72 = and i64 %71, 6\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$22, label %$21\n$22:\n  %74 = phi i64 [%71, %$19] ; # X\n  br label %$20\n$21:\n  %75 = phi i64 [%71, %$19] ; # X\n  %76 = and i64 %75, 8\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$24, label %$23\n$24:\n  %78 = phi i64 [%75, %$21] ; # X\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$20\n$23:\n  %81 = phi i64 [%75, %$21] ; # X\n  %82 = call i64 @evList(i64 %81)\n  br label %$20\n$20:\n  %83 = phi i64 [%74, %$22], [%78, %$24], [%81, %$23] ; # X\n  %84 = phi i64 [%74, %$22], [%80, %$24], [%82, %$23] ; # ->\n  br label %$18\n$17:\n  %85 = phi i64 [%66, %$16] ; # Prg\n  %86 = phi i64 [%67, %$16] ; # X\n  %87 = and i64 %86, 15\n  %88 = icmp eq i64 %87, 0\n  br i1 %88, label %$26, label %$25\n$26:\n  %89 = phi i64 [%85, %$17] ; # Prg\n  %90 = phi i64 [%86, %$17] ; # X\n  %91 = call i64 @evList(i64 %90)\n  %92 = icmp ne i64 %91, 0\n  br label %$25\n$25:\n  %93 = phi i64 [%85, %$17], [%89, %$26] ; # Prg\n  %94 = phi i64 [%86, %$17], [%90, %$26] ; # X\n  %95 = phi i1 [0, %$17], [%92, %$26] ; # ->\n  br label %$16\n$18:\n  %96 = phi i64 [%70, %$20] ; # Prg\n  %97 = phi i64 [%84, %$20] ; # ->\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %98 = inttoptr i64 %52 to i64*\n  %99 = load i64, i64* %98\n  %100 = inttoptr i64 %46 to i64*\n  store i64 %99, i64* %100\n; # (val 3 P)\n  %101 = inttoptr i64 %52 to i64*\n  %102 = getelementptr i64, i64* %101, i32 2\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %103, i64* %104\n  br label %$15\n$15:\n  %105 = phi i64 [%41, %$13], [%44, %$18] ; # Exe\n  %106 = phi i64 [%42, %$13], [%45, %$18] ; # X\n  %107 = phi i64 [%43, %$13], [%46, %$18] ; # Y\n  %108 = phi i64 [%39, %$13], [%97, %$18] ; # ->\n  ret i64 %108\n}\n\ndefine i64 @_Use(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (++ X)) (if (atom Y) (let P (set $Bind (push ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (if (atom Y) (let P (set $Bind (push (val Y) Y (val $Bind))) (pro...\n; # (atom Y)\n  %8 = and i64 %7, 15\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%6, %$1] ; # X\n  %12 = phi i64 [%7, %$1] ; # Y\n; # (let P (set $Bind (push (val Y) Y (val $Bind))) (prog1 (run X) (s...\n; # (set $Bind (push (val Y) Y (val $Bind)))\n; # (val Y)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (val $Bind)\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %16 = load i64, i64* %15\n; # (push (val Y) Y (val $Bind))\n  %17 = alloca i64, i64 3, align 16\n  %18 = ptrtoint i64* %17 to i64\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %14, i64* %19\n  %20 = add i64 %18, 8\n  %21 = inttoptr i64 %20 to i64*\n  store i64 %12, i64* %21\n  %22 = add i64 %18, 16\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %16, i64* %23\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %18, i64* %24\n; # (prog1 (run X) (set Y (val P) $Bind (val 3 P)))\n; # (run X)\n  br label %$5\n$5:\n  %25 = phi i64 [%11, %$2], [%55, %$14] ; # Prg\n  %26 = inttoptr i64 %25 to i64*\n  %27 = getelementptr i64, i64* %26, i32 1\n  %28 = load i64, i64* %27\n  %29 = load i64, i64* %26\n  %30 = and i64 %28, 15\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$8, label %$6\n$8:\n  %32 = phi i64 [%28, %$5] ; # Prg\n  %33 = phi i64 [%29, %$5] ; # X\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$10\n$11:\n  %36 = phi i64 [%33, %$8] ; # X\n  br label %$9\n$10:\n  %37 = phi i64 [%33, %$8] ; # X\n  %38 = and i64 %37, 8\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$13, label %$12\n$13:\n  %40 = phi i64 [%37, %$10] ; # X\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n  br label %$9\n$12:\n  %43 = phi i64 [%37, %$10] ; # X\n  %44 = call i64 @evList(i64 %43)\n  br label %$9\n$9:\n  %45 = phi i64 [%36, %$11], [%40, %$13], [%43, %$12] ; # X\n  %46 = phi i64 [%36, %$11], [%42, %$13], [%44, %$12] ; # ->\n  br label %$7\n$6:\n  %47 = phi i64 [%28, %$5] ; # Prg\n  %48 = phi i64 [%29, %$5] ; # X\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$15, label %$14\n$15:\n  %51 = phi i64 [%47, %$6] ; # Prg\n  %52 = phi i64 [%48, %$6] ; # X\n  %53 = call i64 @evList(i64 %52)\n  %54 = icmp ne i64 %53, 0\n  br label %$14\n$14:\n  %55 = phi i64 [%47, %$6], [%51, %$15] ; # Prg\n  %56 = phi i64 [%48, %$6], [%52, %$15] ; # X\n  %57 = phi i1 [0, %$6], [%54, %$15] ; # ->\n  br label %$5\n$7:\n  %58 = phi i64 [%32, %$9] ; # Prg\n  %59 = phi i64 [%46, %$9] ; # ->\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %60 = inttoptr i64 %18 to i64*\n  %61 = load i64, i64* %60\n  %62 = inttoptr i64 %12 to i64*\n  store i64 %61, i64* %62\n; # (val 3 P)\n  %63 = inttoptr i64 %18 to i64*\n  %64 = getelementptr i64, i64* %63, i32 2\n  %65 = load i64, i64* %64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %65, i64* %66\n  br label %$4\n$3:\n  %67 = phi i64 [%0, %$1] ; # Exe\n  %68 = phi i64 [%6, %$1] ; # X\n  %69 = phi i64 [%7, %$1] ; # Y\n; # (let (P (val $Bind) Q P) (loop (let Z (car Y) (set $Bind (setq P ...\n; # (val $Bind)\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %71 = load i64, i64* %70\n; # (loop (let Z (car Y) (set $Bind (setq P (push (val Z) Z P)))) (? ...\n  br label %$16\n$16:\n  %72 = phi i64 [%67, %$3], [%94, %$17] ; # Exe\n  %73 = phi i64 [%68, %$3], [%95, %$17] ; # X\n  %74 = phi i64 [%69, %$3], [%96, %$17] ; # Y\n  %75 = phi i64 [%71, %$3], [%97, %$17] ; # P\n  %76 = phi i64 [%71, %$3], [%98, %$17] ; # Q\n; # (let Z (car Y) (set $Bind (setq P (push (val Z) Z P))))\n; # (car Y)\n  %77 = inttoptr i64 %74 to i64*\n  %78 = load i64, i64* %77\n; # (set $Bind (setq P (push (val Z) Z P)))\n; # (val Z)\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n; # (push (val Z) Z P)\n  %81 = alloca i64, i64 3, align 16\n  %82 = ptrtoint i64* %81 to i64\n  %83 = inttoptr i64 %82 to i64*\n  store i64 %80, i64* %83\n  %84 = add i64 %82, 8\n  %85 = inttoptr i64 %84 to i64*\n  store i64 %78, i64* %85\n  %86 = add i64 %82, 16\n  %87 = inttoptr i64 %86 to i64*\n  store i64 %75, i64* %87\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %82, i64* %88\n; # (? (atom (shift Y)))\n; # (shift Y)\n  %89 = inttoptr i64 %74 to i64*\n  %90 = getelementptr i64, i64* %89, i32 1\n  %91 = load i64, i64* %90\n; # (atom (shift Y))\n  %92 = and i64 %91, 15\n  %93 = icmp ne i64 %92, 0\n  br i1 %93, label %$18, label %$17\n$17:\n  %94 = phi i64 [%72, %$16] ; # Exe\n  %95 = phi i64 [%73, %$16] ; # X\n  %96 = phi i64 [%91, %$16] ; # Y\n  %97 = phi i64 [%82, %$16] ; # P\n  %98 = phi i64 [%76, %$16] ; # Q\n  br label %$16\n$18:\n  %99 = phi i64 [%72, %$16] ; # Exe\n  %100 = phi i64 [%73, %$16] ; # X\n  %101 = phi i64 [%91, %$16] ; # Y\n  %102 = phi i64 [%82, %$16] ; # P\n  %103 = phi i64 [%76, %$16] ; # Q\n  %104 = phi i64 [0, %$16] ; # ->\n; # (prog1 (run X) (loop (set (val 2 P) (val P)) (? (== Q (setq P (va...\n; # (run X)\n  br label %$19\n$19:\n  %105 = phi i64 [%100, %$18], [%135, %$28] ; # Prg\n  %106 = inttoptr i64 %105 to i64*\n  %107 = getelementptr i64, i64* %106, i32 1\n  %108 = load i64, i64* %107\n  %109 = load i64, i64* %106\n  %110 = and i64 %108, 15\n  %111 = icmp ne i64 %110, 0\n  br i1 %111, label %$22, label %$20\n$22:\n  %112 = phi i64 [%108, %$19] ; # Prg\n  %113 = phi i64 [%109, %$19] ; # X\n  %114 = and i64 %113, 6\n  %115 = icmp ne i64 %114, 0\n  br i1 %115, label %$25, label %$24\n$25:\n  %116 = phi i64 [%113, %$22] ; # X\n  br label %$23\n$24:\n  %117 = phi i64 [%113, %$22] ; # X\n  %118 = and i64 %117, 8\n  %119 = icmp ne i64 %118, 0\n  br i1 %119, label %$27, label %$26\n$27:\n  %120 = phi i64 [%117, %$24] ; # X\n  %121 = inttoptr i64 %120 to i64*\n  %122 = load i64, i64* %121\n  br label %$23\n$26:\n  %123 = phi i64 [%117, %$24] ; # X\n  %124 = call i64 @evList(i64 %123)\n  br label %$23\n$23:\n  %125 = phi i64 [%116, %$25], [%120, %$27], [%123, %$26] ; # X\n  %126 = phi i64 [%116, %$25], [%122, %$27], [%124, %$26] ; # ->\n  br label %$21\n$20:\n  %127 = phi i64 [%108, %$19] ; # Prg\n  %128 = phi i64 [%109, %$19] ; # X\n  %129 = and i64 %128, 15\n  %130 = icmp eq i64 %129, 0\n  br i1 %130, label %$29, label %$28\n$29:\n  %131 = phi i64 [%127, %$20] ; # Prg\n  %132 = phi i64 [%128, %$20] ; # X\n  %133 = call i64 @evList(i64 %132)\n  %134 = icmp ne i64 %133, 0\n  br label %$28\n$28:\n  %135 = phi i64 [%127, %$20], [%131, %$29] ; # Prg\n  %136 = phi i64 [%128, %$20], [%132, %$29] ; # X\n  %137 = phi i1 [0, %$20], [%134, %$29] ; # ->\n  br label %$19\n$21:\n  %138 = phi i64 [%112, %$23] ; # Prg\n  %139 = phi i64 [%126, %$23] ; # ->\n; # (loop (set (val 2 P) (val P)) (? (== Q (setq P (val 3 P)))))\n  br label %$30\n$30:\n  %140 = phi i64 [%99, %$21], [%155, %$31] ; # Exe\n  %141 = phi i64 [%100, %$21], [%156, %$31] ; # X\n  %142 = phi i64 [%101, %$21], [%157, %$31] ; # Y\n  %143 = phi i64 [%102, %$21], [%158, %$31] ; # P\n  %144 = phi i64 [%103, %$21], [%159, %$31] ; # Q\n; # (set (val 2 P) (val P))\n; # (val 2 P)\n  %145 = inttoptr i64 %143 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  %147 = load i64, i64* %146\n; # (val P)\n  %148 = inttoptr i64 %143 to i64*\n  %149 = load i64, i64* %148\n  %150 = inttoptr i64 %147 to i64*\n  store i64 %149, i64* %150\n; # (? (== Q (setq P (val 3 P))))\n; # (val 3 P)\n  %151 = inttoptr i64 %143 to i64*\n  %152 = getelementptr i64, i64* %151, i32 2\n  %153 = load i64, i64* %152\n; # (== Q (setq P (val 3 P)))\n  %154 = icmp eq i64 %144, %153\n  br i1 %154, label %$32, label %$31\n$31:\n  %155 = phi i64 [%140, %$30] ; # Exe\n  %156 = phi i64 [%141, %$30] ; # X\n  %157 = phi i64 [%142, %$30] ; # Y\n  %158 = phi i64 [%153, %$30] ; # P\n  %159 = phi i64 [%144, %$30] ; # Q\n  br label %$30\n$32:\n  %160 = phi i64 [%140, %$30] ; # Exe\n  %161 = phi i64 [%141, %$30] ; # X\n  %162 = phi i64 [%142, %$30] ; # Y\n  %163 = phi i64 [%153, %$30] ; # P\n  %164 = phi i64 [%144, %$30] ; # Q\n  %165 = phi i64 [0, %$30] ; # ->\n; # (set $Bind P)\n  %166 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %163, i64* %166\n  br label %$4\n$4:\n  %167 = phi i64 [%10, %$7], [%160, %$32] ; # Exe\n  %168 = phi i64 [%11, %$7], [%161, %$32] ; # X\n  %169 = phi i64 [%12, %$7], [%162, %$32] ; # Y\n  %170 = phi i64 [%59, %$7], [%139, %$32] ; # ->\n  ret i64 %170\n}\n\ndefine i64 @_Buf(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (needChkVar Exe (++ X)) Z (needCnt Exe (eval ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (needChkVar Exe (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%7, %$1] ; # X\n  %11 = phi i64 [%0, %$1] ; # Exe\n  call void @varErr(i64 %11, i64 %10)\n  unreachable\n$3:\n  %12 = phi i64 [%7, %$1] ; # X\n  %13 = phi i64 [%0, %$1] ; # Exe\n  %14 = icmp uge i64 %12, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %14, label %$5, label %$4\n$5:\n  %15 = phi i64 [%12, %$3] ; # X\n  %16 = phi i64 [%13, %$3] ; # Exe\n  %17 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %15\n  br label %$4\n$4:\n  %18 = phi i64 [%12, %$3], [%15, %$5] ; # X\n  %19 = phi i64 [%13, %$3], [%16, %$5] ; # Exe\n  %20 = phi i1 [0, %$3], [%17, %$5] ; # ->\n  br i1 %20, label %$6, label %$7\n$6:\n  %21 = phi i64 [%18, %$4] ; # X\n  %22 = phi i64 [%19, %$4] ; # Exe\n  call void @protErr(i64 %22, i64 %21)\n  unreachable\n$7:\n  %23 = phi i64 [%18, %$4] ; # X\n  %24 = phi i64 [%19, %$4] ; # Exe\n; # (++ X)\n  %25 = inttoptr i64 %6 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n  %28 = load i64, i64* %25\n; # (eval (++ X))\n  %29 = and i64 %28, 6\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$10, label %$9\n$10:\n  %31 = phi i64 [%28, %$7] ; # X\n  br label %$8\n$9:\n  %32 = phi i64 [%28, %$7] ; # X\n  %33 = and i64 %32, 8\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$12, label %$11\n$12:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n  br label %$8\n$11:\n  %38 = phi i64 [%32, %$9] ; # X\n  %39 = call i64 @evList(i64 %38)\n  br label %$8\n$8:\n  %40 = phi i64 [%31, %$10], [%35, %$12], [%38, %$11] ; # X\n  %41 = phi i64 [%31, %$10], [%37, %$12], [%39, %$11] ; # ->\n; # (needCnt Exe (eval (++ X)))\n  %42 = and i64 %41, 2\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$14, label %$13\n$13:\n  %44 = phi i64 [%41, %$8] ; # X\n  %45 = phi i64 [%0, %$8] ; # Exe\n  call void @cntErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$8] ; # X\n  %47 = phi i64 [%0, %$8] ; # Exe\n; # (set $Bind (push (val Y) Y (val $Bind)))\n; # (val Y)\n  %48 = inttoptr i64 %12 to i64*\n  %49 = load i64, i64* %48\n; # (val $Bind)\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %51 = load i64, i64* %50\n; # (push (val Y) Y (val $Bind))\n  %52 = alloca i64, i64 3, align 16\n  %53 = ptrtoint i64* %52 to i64\n  %54 = inttoptr i64 %53 to i64*\n  store i64 %49, i64* %54\n  %55 = add i64 %53, 8\n  %56 = inttoptr i64 %55 to i64*\n  store i64 %12, i64* %56\n  %57 = add i64 %53, 16\n  %58 = inttoptr i64 %57 to i64*\n  store i64 %51, i64* %58\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %53, i64* %59\n; # (set Y (box64 (i64 (b8+ (int Z)))))\n; # (int Z)\n  %60 = lshr i64 %46, 4\n; # (b8+ (int Z))\n  %61 = alloca i8, i64 %60, align 8\n; # (i64 (b8+ (int Z)))\n  %62 = ptrtoint i8* %61 to i64\n; # (box64 (i64 (b8+ (int Z))))\n  %63 = and i64 %62, 17293822569102704640\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$15, label %$16\n$15:\n  %65 = phi i64 [%62, %$14] ; # N\n  %66 = call i64 @boxNum(i64 %65)\n  br label %$17\n$16:\n  %67 = phi i64 [%62, %$14] ; # N\n  %68 = shl i64 %67, 4\n  %69 = or i64 %68, 2\n  br label %$17\n$17:\n  %70 = phi i64 [%65, %$15], [%67, %$16] ; # N\n  %71 = phi i64 [%66, %$15], [%69, %$16] ; # ->\n  %72 = inttoptr i64 %12 to i64*\n  store i64 %71, i64* %72\n; # (stkChk Exe)\n  %73 = load i8*, i8** @$StkLimit\n  %74 = call i8* @llvm.stacksave()\n  %75 = icmp ugt i8* %73, %74\n  br i1 %75, label %$18, label %$19\n$18:\n  %76 = phi i64 [%0, %$17] ; # Exe\n  call void @stkErr(i64 %76)\n  unreachable\n$19:\n  %77 = phi i64 [%0, %$17] ; # Exe\n; # (prog1 (run X) (set Y (val P) $Bind (val 3 P)))\n; # (run X)\n  br label %$20\n$20:\n  %78 = phi i64 [%27, %$19], [%108, %$29] ; # Prg\n  %79 = inttoptr i64 %78 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  %82 = load i64, i64* %79\n  %83 = and i64 %81, 15\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$23, label %$21\n$23:\n  %85 = phi i64 [%81, %$20] ; # Prg\n  %86 = phi i64 [%82, %$20] ; # X\n  %87 = and i64 %86, 6\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$26, label %$25\n$26:\n  %89 = phi i64 [%86, %$23] ; # X\n  br label %$24\n$25:\n  %90 = phi i64 [%86, %$23] ; # X\n  %91 = and i64 %90, 8\n  %92 = icmp ne i64 %91, 0\n  br i1 %92, label %$28, label %$27\n$28:\n  %93 = phi i64 [%90, %$25] ; # X\n  %94 = inttoptr i64 %93 to i64*\n  %95 = load i64, i64* %94\n  br label %$24\n$27:\n  %96 = phi i64 [%90, %$25] ; # X\n  %97 = call i64 @evList(i64 %96)\n  br label %$24\n$24:\n  %98 = phi i64 [%89, %$26], [%93, %$28], [%96, %$27] ; # X\n  %99 = phi i64 [%89, %$26], [%95, %$28], [%97, %$27] ; # ->\n  br label %$22\n$21:\n  %100 = phi i64 [%81, %$20] ; # Prg\n  %101 = phi i64 [%82, %$20] ; # X\n  %102 = and i64 %101, 15\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$30, label %$29\n$30:\n  %104 = phi i64 [%100, %$21] ; # Prg\n  %105 = phi i64 [%101, %$21] ; # X\n  %106 = call i64 @evList(i64 %105)\n  %107 = icmp ne i64 %106, 0\n  br label %$29\n$29:\n  %108 = phi i64 [%100, %$21], [%104, %$30] ; # Prg\n  %109 = phi i64 [%101, %$21], [%105, %$30] ; # X\n  %110 = phi i1 [0, %$21], [%107, %$30] ; # ->\n  br label %$20\n$22:\n  %111 = phi i64 [%85, %$24] ; # Prg\n  %112 = phi i64 [%99, %$24] ; # ->\n; # (set Y (val P) $Bind (val 3 P))\n; # (val P)\n  %113 = inttoptr i64 %53 to i64*\n  %114 = load i64, i64* %113\n  %115 = inttoptr i64 %12 to i64*\n  store i64 %114, i64* %115\n; # (val 3 P)\n  %116 = inttoptr i64 %53 to i64*\n  %117 = getelementptr i64, i64* %116, i32 2\n  %118 = load i64, i64* %117\n  %119 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %118, i64* %119\n  ret i64 %112\n}\n\ndefine i64 @_Tco(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (car X) Z (val $Link) Par (val $TcoPar) Lnk (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (val $Link)\n  %6 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %7 = load i64, i64* %6\n; # (val $TcoPar)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 112) to i64) to i64*\n  %9 = load i64, i64* %8\n; # (val $TcoLnk)\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 120) to i64) to i64*\n  %11 = load i64, i64* %10\n; # (set $TcoPar Y)\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 112) to i64) to i64*\n  store i64 %5, i64* %12\n; # (while (pair Y) (set $Link (push $Nil (val $Link))) (shift Y))\n  br label %$2\n$2:\n  %13 = phi i64 [%0, %$1], [%21, %$3] ; # Exe\n  %14 = phi i64 [%3, %$1], [%22, %$3] ; # X\n  %15 = phi i64 [%5, %$1], [%37, %$3] ; # Y\n  %16 = phi i64 [%7, %$1], [%24, %$3] ; # Z\n  %17 = phi i64 [%9, %$1], [%25, %$3] ; # Par\n  %18 = phi i64 [%11, %$1], [%26, %$3] ; # Lnk\n; # (pair Y)\n  %19 = and i64 %15, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$3, label %$4\n$3:\n  %21 = phi i64 [%13, %$2] ; # Exe\n  %22 = phi i64 [%14, %$2] ; # X\n  %23 = phi i64 [%15, %$2] ; # Y\n  %24 = phi i64 [%16, %$2] ; # Z\n  %25 = phi i64 [%17, %$2] ; # Par\n  %26 = phi i64 [%18, %$2] ; # Lnk\n; # (set $Link (push $Nil (val $Link)))\n; # (val $Link)\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %28 = load i64, i64* %27\n; # (push $Nil (val $Link))\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = inttoptr i64 %30 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %31\n  %32 = add i64 %30, 8\n  %33 = inttoptr i64 %32 to i64*\n  store i64 %28, i64* %33\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %30, i64* %34\n; # (shift Y)\n  %35 = inttoptr i64 %23 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n  br label %$2\n$4:\n  %38 = phi i64 [%13, %$2] ; # Exe\n  %39 = phi i64 [%14, %$2] ; # X\n  %40 = phi i64 [%15, %$2] ; # Y\n  %41 = phi i64 [%16, %$2] ; # Z\n  %42 = phi i64 [%17, %$2] ; # Par\n  %43 = phi i64 [%18, %$2] ; # Lnk\n; # (set $TcoLnk (val $Link))\n; # (val $Link)\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 120) to i64) to i64*\n  store i64 %45, i64* %46\n; # (loop (setq Y (car X)) (let V (run (cdr X)) (? (not (prog1 (val $...\n  br label %$5\n$5:\n  %47 = phi i64 [%38, %$4], [%139, %$22] ; # Exe\n  %48 = phi i64 [%39, %$4], [%140, %$22] ; # X\n  %49 = phi i64 [%40, %$4], [%141, %$22] ; # Y\n  %50 = phi i64 [%41, %$4], [%142, %$22] ; # Z\n  %51 = phi i64 [%42, %$4], [%143, %$22] ; # Par\n  %52 = phi i64 [%43, %$4], [%144, %$22] ; # Lnk\n; # (car X)\n  %53 = inttoptr i64 %48 to i64*\n  %54 = load i64, i64* %53\n; # (let V (run (cdr X)) (? (not (prog1 (val $Tc) (set $Tc NO))) (set...\n; # (cdr X)\n  %55 = inttoptr i64 %48 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (run (cdr X))\n  br label %$6\n$6:\n  %58 = phi i64 [%57, %$5], [%88, %$15] ; # Prg\n  %59 = inttoptr i64 %58 to i64*\n  %60 = getelementptr i64, i64* %59, i32 1\n  %61 = load i64, i64* %60\n  %62 = load i64, i64* %59\n  %63 = and i64 %61, 15\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$9, label %$7\n$9:\n  %65 = phi i64 [%61, %$6] ; # Prg\n  %66 = phi i64 [%62, %$6] ; # X\n  %67 = and i64 %66, 6\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$12, label %$11\n$12:\n  %69 = phi i64 [%66, %$9] ; # X\n  br label %$10\n$11:\n  %70 = phi i64 [%66, %$9] ; # X\n  %71 = and i64 %70, 8\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$14, label %$13\n$14:\n  %73 = phi i64 [%70, %$11] ; # X\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n  br label %$10\n$13:\n  %76 = phi i64 [%70, %$11] ; # X\n  %77 = call i64 @evList(i64 %76)\n  br label %$10\n$10:\n  %78 = phi i64 [%69, %$12], [%73, %$14], [%76, %$13] ; # X\n  %79 = phi i64 [%69, %$12], [%75, %$14], [%77, %$13] ; # ->\n  br label %$8\n$7:\n  %80 = phi i64 [%61, %$6] ; # Prg\n  %81 = phi i64 [%62, %$6] ; # X\n  %82 = and i64 %81, 15\n  %83 = icmp eq i64 %82, 0\n  br i1 %83, label %$16, label %$15\n$16:\n  %84 = phi i64 [%80, %$7] ; # Prg\n  %85 = phi i64 [%81, %$7] ; # X\n  %86 = call i64 @evList(i64 %85)\n  %87 = icmp ne i64 %86, 0\n  br label %$15\n$15:\n  %88 = phi i64 [%80, %$7], [%84, %$16] ; # Prg\n  %89 = phi i64 [%81, %$7], [%85, %$16] ; # X\n  %90 = phi i1 [0, %$7], [%87, %$16] ; # ->\n  br label %$6\n$8:\n  %91 = phi i64 [%65, %$10] ; # Prg\n  %92 = phi i64 [%79, %$10] ; # ->\n; # (? (not (prog1 (val $Tc) (set $Tc NO))) (set $TcoLnk Lnk $TcoPar ...\n; # (prog1 (val $Tc) (set $Tc NO))\n; # (val $Tc)\n  %93 = load i1, i1* @$Tc\n; # (set $Tc NO)\n  store i1 0, i1* @$Tc\n; # (not (prog1 (val $Tc) (set $Tc NO)))\n  %94 = icmp eq i1 %93, 0\n  br i1 %94, label %$19, label %$17\n$19:\n  %95 = phi i64 [%47, %$8] ; # Exe\n  %96 = phi i64 [%48, %$8] ; # X\n  %97 = phi i64 [%54, %$8] ; # Y\n  %98 = phi i64 [%50, %$8] ; # Z\n  %99 = phi i64 [%51, %$8] ; # Par\n  %100 = phi i64 [%52, %$8] ; # Lnk\n  %101 = phi i64 [%92, %$8] ; # V\n; # (set $TcoLnk Lnk $TcoPar Par $Link Z)\n  %102 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 120) to i64) to i64*\n  store i64 %100, i64* %102\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 112) to i64) to i64*\n  store i64 %99, i64* %103\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %98, i64* %104\n  br label %$18\n$17:\n  %105 = phi i64 [%47, %$8] ; # Exe\n  %106 = phi i64 [%48, %$8] ; # X\n  %107 = phi i64 [%54, %$8] ; # Y\n  %108 = phi i64 [%50, %$8] ; # Z\n  %109 = phi i64 [%51, %$8] ; # Par\n  %110 = phi i64 [%52, %$8] ; # Lnk\n  %111 = phi i64 [%92, %$8] ; # V\n; # (let L (val $Link) (while (pair Y) (set (++ Y) (++ L))))\n; # (val $Link)\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %113 = load i64, i64* %112\n; # (while (pair Y) (set (++ Y) (++ L)))\n  br label %$20\n$20:\n  %114 = phi i64 [%105, %$17], [%123, %$21] ; # Exe\n  %115 = phi i64 [%106, %$17], [%124, %$21] ; # X\n  %116 = phi i64 [%107, %$17], [%132, %$21] ; # Y\n  %117 = phi i64 [%108, %$17], [%126, %$21] ; # Z\n  %118 = phi i64 [%109, %$17], [%127, %$21] ; # Par\n  %119 = phi i64 [%110, %$17], [%128, %$21] ; # Lnk\n  %120 = phi i64 [%113, %$17], [%136, %$21] ; # L\n; # (pair Y)\n  %121 = and i64 %116, 15\n  %122 = icmp eq i64 %121, 0\n  br i1 %122, label %$21, label %$22\n$21:\n  %123 = phi i64 [%114, %$20] ; # Exe\n  %124 = phi i64 [%115, %$20] ; # X\n  %125 = phi i64 [%116, %$20] ; # Y\n  %126 = phi i64 [%117, %$20] ; # Z\n  %127 = phi i64 [%118, %$20] ; # Par\n  %128 = phi i64 [%119, %$20] ; # Lnk\n  %129 = phi i64 [%120, %$20] ; # L\n; # (set (++ Y) (++ L))\n; # (++ Y)\n  %130 = inttoptr i64 %125 to i64*\n  %131 = getelementptr i64, i64* %130, i32 1\n  %132 = load i64, i64* %131\n  %133 = load i64, i64* %130\n; # (++ L)\n  %134 = inttoptr i64 %129 to i64*\n  %135 = getelementptr i64, i64* %134, i32 1\n  %136 = load i64, i64* %135\n  %137 = load i64, i64* %134\n  %138 = inttoptr i64 %133 to i64*\n  store i64 %137, i64* %138\n  br label %$20\n$22:\n  %139 = phi i64 [%114, %$20] ; # Exe\n  %140 = phi i64 [%115, %$20] ; # X\n  %141 = phi i64 [%116, %$20] ; # Y\n  %142 = phi i64 [%117, %$20] ; # Z\n  %143 = phi i64 [%118, %$20] ; # Par\n  %144 = phi i64 [%119, %$20] ; # Lnk\n  %145 = phi i64 [%120, %$20] ; # L\n  br label %$5\n$18:\n  %146 = phi i64 [%95, %$19] ; # Exe\n  %147 = phi i64 [%96, %$19] ; # X\n  %148 = phi i64 [%97, %$19] ; # Y\n  %149 = phi i64 [%98, %$19] ; # Z\n  %150 = phi i64 [%99, %$19] ; # Par\n  %151 = phi i64 [%100, %$19] ; # Lnk\n  %152 = phi i64 [%101, %$19] ; # ->\n  ret i64 %152\n}\n\ndefine i64 @_Tc(i64) align 8 {\n$1:\n; # (let (X Exe P (val $TcoPar) L (val $TcoLnk)) (set $Tc YES) (while...\n; # (val $TcoPar)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 112) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (val $TcoLnk)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 120) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (set $Tc YES)\n  store i1 1, i1* @$Tc\n; # (while (pair P) (set L (eval (car (shift X)))) (shift L) (shift P...\n  br label %$2\n$2:\n  %5 = phi i64 [%0, %$1], [%11, %$5] ; # Exe\n  %6 = phi i64 [%0, %$1], [%17, %$5] ; # X\n  %7 = phi i64 [%2, %$1], [%39, %$5] ; # P\n  %8 = phi i64 [%4, %$1], [%36, %$5] ; # L\n; # (pair P)\n  %9 = and i64 %7, 15\n  %10 = icmp eq i64 %9, 0\n  br i1 %10, label %$3, label %$4\n$3:\n  %11 = phi i64 [%5, %$2] ; # Exe\n  %12 = phi i64 [%6, %$2] ; # X\n  %13 = phi i64 [%7, %$2] ; # P\n  %14 = phi i64 [%8, %$2] ; # L\n; # (set L (eval (car (shift X))))\n; # (shift X)\n  %15 = inttoptr i64 %12 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n; # (car (shift X))\n  %18 = inttoptr i64 %17 to i64*\n  %19 = load i64, i64* %18\n; # (eval (car (shift X)))\n  %20 = and i64 %19, 6\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$7, label %$6\n$7:\n  %22 = phi i64 [%19, %$3] ; # X\n  br label %$5\n$6:\n  %23 = phi i64 [%19, %$3] ; # X\n  %24 = and i64 %23, 8\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$9, label %$8\n$9:\n  %26 = phi i64 [%23, %$6] ; # X\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n  br label %$5\n$8:\n  %29 = phi i64 [%23, %$6] ; # X\n  %30 = call i64 @evList(i64 %29)\n  br label %$5\n$5:\n  %31 = phi i64 [%22, %$7], [%26, %$9], [%29, %$8] ; # X\n  %32 = phi i64 [%22, %$7], [%28, %$9], [%30, %$8] ; # ->\n  %33 = inttoptr i64 %14 to i64*\n  store i64 %32, i64* %33\n; # (shift L)\n  %34 = inttoptr i64 %14 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n; # (shift P)\n  %37 = inttoptr i64 %13 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  br label %$2\n$4:\n  %40 = phi i64 [%5, %$2] ; # Exe\n  %41 = phi i64 [%6, %$2] ; # X\n  %42 = phi i64 [%7, %$2] ; # P\n  %43 = phi i64 [%8, %$2] ; # L\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_Catch(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Ca: (caFrame (b8+ (+ (val JmpBufSize) (caFrame ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val JmpBufSize)\n  %4 = load i64, i64* @JmpBufSize\n; # (+ (val JmpBufSize) (caFrame T))\n  %5 = add i64 %4, 272\n; # (b8+ (+ (val JmpBufSize) (caFrame T)))\n  %6 = alloca i8, i64 %5, align 8\n; # (stkChk Exe)\n  %7 = load i8*, i8** @$StkLimit\n  %8 = call i8* @llvm.stacksave()\n  %9 = icmp ugt i8* %7, %8\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  call void @stkErr(i64 %10)\n  unreachable\n$3:\n  %11 = phi i64 [%0, %$1] ; # Exe\n; # (Ca: tag (eval (++ X)))\n  %12 = getelementptr i8, i8* %6, i32 8\n  %13 = ptrtoint i8* %12 to i64\n  %14 = inttoptr i64 %3 to i64*\n  %15 = getelementptr i64, i64* %14, i32 1\n  %16 = load i64, i64* %15\n  %17 = load i64, i64* %14\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$6, label %$5\n$6:\n  %20 = phi i64 [%17, %$3] ; # X\n  br label %$4\n$5:\n  %21 = phi i64 [%17, %$3] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$8, label %$7\n$8:\n  %24 = phi i64 [%21, %$5] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$4\n$7:\n  %27 = phi i64 [%21, %$5] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$4\n$4:\n  %29 = phi i64 [%20, %$6], [%24, %$8], [%27, %$7] ; # X\n  %30 = phi i64 [%20, %$6], [%26, %$8], [%28, %$7] ; # ->\n  %31 = inttoptr i64 %13 to i64*\n  store i64 %30, i64* %31\n; # (Ca: link (val $Catch))\n  %32 = bitcast i8* %6 to i8**\n  %33 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n  store i8* %33, i8** %32\n; # (set $Catch (Ca:))\n; # (Ca:)\n  store i8* %6, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (Ca: fin ZERO)\n  %34 = getelementptr i8, i8* %6, i32 16\n  %35 = ptrtoint i8* %34 to i64\n  %36 = inttoptr i64 %35 to i64*\n  store i64 2, i64* %36\n; # (Ca: co (val $Current))\n  %37 = getelementptr i8, i8* %6, i32 24\n  %38 = bitcast i8* %37 to i8**\n  %39 = load i8*, i8** @$Current\n  store i8* %39, i8** %38\n; # (Ca:)\n; # (putCaEnv (Ca:))\n  %40 = getelementptr i8, i8* %6, i32 72\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %40, i8* %41, i64 200, i1 0)\n  %42 = getelementptr i8, i8* %6, i32 32\n  %43 = ptrtoint i8* %42 to i64\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 %43 to i64*\n  store i64 %45, i64* %46\n  %47 = getelementptr i8, i8* %6, i32 40\n  %48 = ptrtoint i8* %47 to i64\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %50 = load i64, i64* %49\n  %51 = inttoptr i64 %48 to i64*\n  store i64 %50, i64* %51\n  %52 = getelementptr i8, i8* %6, i32 48\n  %53 = ptrtoint i8* %52 to i64\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = inttoptr i64 %53 to i64*\n  store i64 %56, i64* %57\n  %58 = getelementptr i8, i8* %6, i32 56\n  %59 = ptrtoint i8* %58 to i64\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %61 = load i64, i64* %60\n  %62 = inttoptr i64 %59 to i64*\n  store i64 %61, i64* %62\n  %63 = getelementptr i8, i8* %6, i32 64\n  %64 = ptrtoint i8* %63 to i64\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 %64 to i64*\n  store i64 %67, i64* %68\n; # (prog1 (ifn (setjmp (Ca: (rst))) (prog1 (run X) (set $At2 $Nil)) ...\n; # (ifn (setjmp (Ca: (rst))) (prog1 (run X) (set $At2 $Nil)) (set $A...\n; # (Ca: (rst))\n  %69 = getelementptr i8, i8* %6, i32 272\n; # (setjmp (Ca: (rst)))\n  %70 = call i32 @setjmp(i8* %69)\n  %71 = icmp ne i32 %70, 0\n  br i1 %71, label %$10, label %$9\n$9:\n  %72 = phi i64 [%0, %$4] ; # Exe\n  %73 = phi i64 [%16, %$4] ; # X\n; # (prog1 (run X) (set $At2 $Nil))\n; # (run X)\n  br label %$12\n$12:\n  %74 = phi i64 [%73, %$9], [%104, %$21] ; # Prg\n  %75 = inttoptr i64 %74 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  %77 = load i64, i64* %76\n  %78 = load i64, i64* %75\n  %79 = and i64 %77, 15\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$15, label %$13\n$15:\n  %81 = phi i64 [%77, %$12] ; # Prg\n  %82 = phi i64 [%78, %$12] ; # X\n  %83 = and i64 %82, 6\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$18, label %$17\n$18:\n  %85 = phi i64 [%82, %$15] ; # X\n  br label %$16\n$17:\n  %86 = phi i64 [%82, %$15] ; # X\n  %87 = and i64 %86, 8\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$20, label %$19\n$20:\n  %89 = phi i64 [%86, %$17] ; # X\n  %90 = inttoptr i64 %89 to i64*\n  %91 = load i64, i64* %90\n  br label %$16\n$19:\n  %92 = phi i64 [%86, %$17] ; # X\n  %93 = call i64 @evList(i64 %92)\n  br label %$16\n$16:\n  %94 = phi i64 [%85, %$18], [%89, %$20], [%92, %$19] ; # X\n  %95 = phi i64 [%85, %$18], [%91, %$20], [%93, %$19] ; # ->\n  br label %$14\n$13:\n  %96 = phi i64 [%77, %$12] ; # Prg\n  %97 = phi i64 [%78, %$12] ; # X\n  %98 = and i64 %97, 15\n  %99 = icmp eq i64 %98, 0\n  br i1 %99, label %$22, label %$21\n$22:\n  %100 = phi i64 [%96, %$13] ; # Prg\n  %101 = phi i64 [%97, %$13] ; # X\n  %102 = call i64 @evList(i64 %101)\n  %103 = icmp ne i64 %102, 0\n  br label %$21\n$21:\n  %104 = phi i64 [%96, %$13], [%100, %$22] ; # Prg\n  %105 = phi i64 [%97, %$13], [%101, %$22] ; # X\n  %106 = phi i1 [0, %$13], [%103, %$22] ; # ->\n  br label %$12\n$14:\n  %107 = phi i64 [%81, %$16] ; # Prg\n  %108 = phi i64 [%95, %$16] ; # ->\n; # (set $At2 $Nil)\n  %109 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %109\n  br label %$11\n$10:\n  %110 = phi i64 [%0, %$4] ; # Exe\n  %111 = phi i64 [%16, %$4] ; # X\n; # (set $At2 $T)\n  %112 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %112\n; # (val $Ret)\n  %113 = load i64, i64* @$Ret\n  br label %$11\n$11:\n  %114 = phi i64 [%72, %$14], [%110, %$10] ; # Exe\n  %115 = phi i64 [%73, %$14], [%111, %$10] ; # X\n  %116 = phi i64 [%108, %$14], [%113, %$10] ; # ->\n; # (set $Catch (Ca: link))\n; # (Ca: link)\n  %117 = bitcast i8* %6 to i8**\n  %118 = load i8*, i8** %117\n  store i8* %118, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n  ret i64 %116\n}\n\ndefine i64 @_Throw(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Tag (save (eval (++ X))) R (save (eval (car X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (save (eval (car X)))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = alloca i64, i64 2, align 16\n  %47 = ptrtoint i64* %46 to i64\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = add i64 %47, 8\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %51\n; # (let Ca (val $Catch) (while Ca (let Ca: (caFrame Ca) (when (or (t...\n; # (val $Catch)\n  %52 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (while Ca (let Ca: (caFrame Ca) (when (or (t? (Ca: tag)) (== Tag ...\n  br label %$12\n$12:\n  %53 = phi i64 [%0, %$7], [%91, %$18] ; # Exe\n  %54 = phi i64 [%6, %$7], [%92, %$18] ; # X\n  %55 = phi i64 [%20, %$7], [%93, %$18] ; # Tag\n  %56 = phi i64 [%43, %$7], [%94, %$18] ; # R\n  %57 = phi i8* [%52, %$7], [%97, %$18] ; # Ca\n  %58 = icmp ne i8* %57, null\n  br i1 %58, label %$13, label %$14\n$13:\n  %59 = phi i64 [%53, %$12] ; # Exe\n  %60 = phi i64 [%54, %$12] ; # X\n  %61 = phi i64 [%55, %$12] ; # Tag\n  %62 = phi i64 [%56, %$12] ; # R\n  %63 = phi i8* [%57, %$12] ; # Ca\n; # (let Ca: (caFrame Ca) (when (or (t? (Ca: tag)) (== Tag (Ca: tag))...\n; # (when (or (t? (Ca: tag)) (== Tag (Ca: tag))) (unwind Ca) (set $Re...\n; # (or (t? (Ca: tag)) (== Tag (Ca: tag)))\n; # (Ca: tag)\n  %64 = getelementptr i8, i8* %63, i32 8\n  %65 = ptrtoint i8* %64 to i64\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (t? (Ca: tag))\n  %68 = icmp eq i64 %67, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %68, label %$15, label %$16\n$16:\n  %69 = phi i64 [%59, %$13] ; # Exe\n  %70 = phi i64 [%60, %$13] ; # X\n  %71 = phi i64 [%61, %$13] ; # Tag\n  %72 = phi i64 [%62, %$13] ; # R\n  %73 = phi i8* [%63, %$13] ; # Ca\n; # (Ca: tag)\n  %74 = getelementptr i8, i8* %63, i32 8\n  %75 = ptrtoint i8* %74 to i64\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n; # (== Tag (Ca: tag))\n  %78 = icmp eq i64 %71, %77\n  br label %$15\n$15:\n  %79 = phi i64 [%59, %$13], [%69, %$16] ; # Exe\n  %80 = phi i64 [%60, %$13], [%70, %$16] ; # X\n  %81 = phi i64 [%61, %$13], [%71, %$16] ; # Tag\n  %82 = phi i64 [%62, %$13], [%72, %$16] ; # R\n  %83 = phi i8* [%63, %$13], [%73, %$16] ; # Ca\n  %84 = phi i1 [1, %$13], [%78, %$16] ; # ->\n  br i1 %84, label %$17, label %$18\n$17:\n  %85 = phi i64 [%79, %$15] ; # Exe\n  %86 = phi i64 [%80, %$15] ; # X\n  %87 = phi i64 [%81, %$15] ; # Tag\n  %88 = phi i64 [%82, %$15] ; # R\n  %89 = phi i8* [%83, %$15] ; # Ca\n; # (unwind Ca)\n  call void @unwind(i8* %89)\n; # (set $Ret R)\n  store i64 %88, i64* @$Ret\n; # (Ca: (rst))\n  %90 = getelementptr i8, i8* %63, i32 272\n; # (longjmp (Ca: (rst)) 1)\n  call void @longjmp(i8* %90, i32 1)\n  unreachable\n$18:\n  %91 = phi i64 [%79, %$15] ; # Exe\n  %92 = phi i64 [%80, %$15] ; # X\n  %93 = phi i64 [%81, %$15] ; # Tag\n  %94 = phi i64 [%82, %$15] ; # R\n  %95 = phi i8* [%83, %$15] ; # Ca\n; # (Ca: link)\n  %96 = bitcast i8* %63 to i8**\n  %97 = load i8*, i8** %96\n  br label %$12\n$14:\n  %98 = phi i64 [%53, %$12] ; # Exe\n  %99 = phi i64 [%54, %$12] ; # X\n  %100 = phi i64 [%55, %$12] ; # Tag\n  %101 = phi i64 [%56, %$12] ; # R\n  %102 = phi i8* [%57, %$12] ; # Ca\n; # (err Exe Tag ($ \"Tag not found\") null)\n  call void @err(i64 %98, i64 %100, i8* bitcast ([14 x i8]* @$76 to i8*), i8* null)\n  unreachable\n}\n\ndefine i64 @_Finally(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Ca: (caFrame (b8+ (+ (val JmpBufSize) (caFrame ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val JmpBufSize)\n  %4 = load i64, i64* @JmpBufSize\n; # (+ (val JmpBufSize) (caFrame T))\n  %5 = add i64 %4, 272\n; # (b8+ (+ (val JmpBufSize) (caFrame T)))\n  %6 = alloca i8, i64 %5, align 8\n; # (stkChk Exe)\n  %7 = load i8*, i8** @$StkLimit\n  %8 = call i8* @llvm.stacksave()\n  %9 = icmp ugt i8* %7, %8\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  call void @stkErr(i64 %10)\n  unreachable\n$3:\n  %11 = phi i64 [%0, %$1] ; # Exe\n; # (Ca: tag 0)\n  %12 = getelementptr i8, i8* %6, i32 8\n  %13 = ptrtoint i8* %12 to i64\n  %14 = inttoptr i64 %13 to i64*\n  store i64 0, i64* %14\n; # (Ca: link (val $Catch))\n  %15 = bitcast i8* %6 to i8**\n  %16 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n  store i8* %16, i8** %15\n; # (set $Catch (Ca:))\n; # (Ca:)\n  store i8* %6, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (Ca: fin (++ X))\n  %17 = getelementptr i8, i8* %6, i32 16\n  %18 = ptrtoint i8* %17 to i64\n  %19 = inttoptr i64 %3 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  %21 = load i64, i64* %20\n  %22 = load i64, i64* %19\n  %23 = inttoptr i64 %18 to i64*\n  store i64 %22, i64* %23\n; # (Ca: co (val $Current))\n  %24 = getelementptr i8, i8* %6, i32 24\n  %25 = bitcast i8* %24 to i8**\n  %26 = load i8*, i8** @$Current\n  store i8* %26, i8** %25\n; # (Ca:)\n; # (putCaEnv (Ca:))\n  %27 = getelementptr i8, i8* %6, i32 72\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %27, i8* %28, i64 200, i1 0)\n  %29 = getelementptr i8, i8* %6, i32 32\n  %30 = ptrtoint i8* %29 to i64\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %32 = load i64, i64* %31\n  %33 = inttoptr i64 %30 to i64*\n  store i64 %32, i64* %33\n  %34 = getelementptr i8, i8* %6, i32 40\n  %35 = ptrtoint i8* %34 to i64\n  %36 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %37 = load i64, i64* %36\n  %38 = inttoptr i64 %35 to i64*\n  store i64 %37, i64* %38\n  %39 = getelementptr i8, i8* %6, i32 48\n  %40 = ptrtoint i8* %39 to i64\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %42 = getelementptr i64, i64* %41, i32 1\n  %43 = load i64, i64* %42\n  %44 = inttoptr i64 %40 to i64*\n  store i64 %43, i64* %44\n  %45 = getelementptr i8, i8* %6, i32 56\n  %46 = ptrtoint i8* %45 to i64\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 %46 to i64*\n  store i64 %48, i64* %49\n  %50 = getelementptr i8, i8* %6, i32 64\n  %51 = ptrtoint i8* %50 to i64\n  %52 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = inttoptr i64 %51 to i64*\n  store i64 %54, i64* %55\n; # (prog1 (save (run X)) (eval (Ca: fin)) (set $Catch (Ca: link)))\n; # (run X)\n  br label %$4\n$4:\n  %56 = phi i64 [%21, %$3], [%86, %$13] ; # Prg\n  %57 = inttoptr i64 %56 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  %60 = load i64, i64* %57\n  %61 = and i64 %59, 15\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$7, label %$5\n$7:\n  %63 = phi i64 [%59, %$4] ; # Prg\n  %64 = phi i64 [%60, %$4] ; # X\n  %65 = and i64 %64, 6\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$10, label %$9\n$10:\n  %67 = phi i64 [%64, %$7] ; # X\n  br label %$8\n$9:\n  %68 = phi i64 [%64, %$7] ; # X\n  %69 = and i64 %68, 8\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$12, label %$11\n$12:\n  %71 = phi i64 [%68, %$9] ; # X\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n  br label %$8\n$11:\n  %74 = phi i64 [%68, %$9] ; # X\n  %75 = call i64 @evList(i64 %74)\n  br label %$8\n$8:\n  %76 = phi i64 [%67, %$10], [%71, %$12], [%74, %$11] ; # X\n  %77 = phi i64 [%67, %$10], [%73, %$12], [%75, %$11] ; # ->\n  br label %$6\n$5:\n  %78 = phi i64 [%59, %$4] ; # Prg\n  %79 = phi i64 [%60, %$4] ; # X\n  %80 = and i64 %79, 15\n  %81 = icmp eq i64 %80, 0\n  br i1 %81, label %$14, label %$13\n$14:\n  %82 = phi i64 [%78, %$5] ; # Prg\n  %83 = phi i64 [%79, %$5] ; # X\n  %84 = call i64 @evList(i64 %83)\n  %85 = icmp ne i64 %84, 0\n  br label %$13\n$13:\n  %86 = phi i64 [%78, %$5], [%82, %$14] ; # Prg\n  %87 = phi i64 [%79, %$5], [%83, %$14] ; # X\n  %88 = phi i1 [0, %$5], [%85, %$14] ; # ->\n  br label %$4\n$6:\n  %89 = phi i64 [%63, %$8] ; # Prg\n  %90 = phi i64 [%77, %$8] ; # ->\n; # (save (run X))\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %92 = load i64, i64* %91\n  %93 = alloca i64, i64 2, align 16\n  %94 = ptrtoint i64* %93 to i64\n  %95 = inttoptr i64 %94 to i64*\n  store i64 %90, i64* %95\n  %96 = add i64 %94, 8\n  %97 = inttoptr i64 %96 to i64*\n  store i64 %92, i64* %97\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %94, i64* %98\n; # (Ca: fin)\n  %99 = getelementptr i8, i8* %6, i32 16\n  %100 = ptrtoint i8* %99 to i64\n  %101 = inttoptr i64 %100 to i64*\n  %102 = load i64, i64* %101\n; # (eval (Ca: fin))\n  %103 = and i64 %102, 6\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$17, label %$16\n$17:\n  %105 = phi i64 [%102, %$6] ; # X\n  br label %$15\n$16:\n  %106 = phi i64 [%102, %$6] ; # X\n  %107 = and i64 %106, 8\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$19, label %$18\n$19:\n  %109 = phi i64 [%106, %$16] ; # X\n  %110 = inttoptr i64 %109 to i64*\n  %111 = load i64, i64* %110\n  br label %$15\n$18:\n  %112 = phi i64 [%106, %$16] ; # X\n  %113 = call i64 @evList(i64 %112)\n  br label %$15\n$15:\n  %114 = phi i64 [%105, %$17], [%109, %$19], [%112, %$18] ; # X\n  %115 = phi i64 [%105, %$17], [%111, %$19], [%113, %$18] ; # ->\n; # (set $Catch (Ca: link))\n; # (Ca: link)\n  %116 = bitcast i8* %6 to i8**\n  %117 = load i8*, i8** %116\n  store i8* %117, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (drop *Safe)\n  %118 = inttoptr i64 %94 to i64*\n  %119 = getelementptr i64, i64* %118, i32 1\n  %120 = load i64, i64* %119\n  %121 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %120, i64* %121\n  ret i64 %90\n}\n\ndefine void @coErr(i64, i64) align 8 {\n$1:\n; # (err Exe Tag ($ \"Coroutine not found\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([20 x i8]* @$77 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @reentErr(i64, i64) align 8 {\n$1:\n; # (err Exe Tag ($ \"Reentrant coroutine\") null)\n  call void @err(i64 %0, i64 %1, i8* bitcast ([20 x i8]* @$78 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @tagErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Tag expected\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([13 x i8]* @$79 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @stkOverErr(i64) align 8 {\n$1:\n; # (set $StkLimit null)\n  store i8* null, i8** @$StkLimit\n; # (err 0 Tag ($ \"Stack overwritten\") null)\n  call void @err(i64 0, i64 %0, i8* bitcast ([18 x i8]* @$80 to i8*), i8* null)\n  unreachable\n}\n\ndefine void @saveCoEnv(i8*) align 8 {\n$1:\n; # (let Crt: (coroutine Crt) (unless (== (hex \"0707070707070707\") (v...\n; # (unless (== (hex \"0707070707070707\") (val (i64* (Crt: lim)))) (st...\n; # (Crt: lim)\n  %1 = getelementptr i8, i8* %0, i32 40\n  %2 = bitcast i8* %1 to i8**\n  %3 = load i8*, i8** %2\n; # (i64* (Crt: lim))\n  %4 = bitcast i8* %3 to i64*\n; # (val (i64* (Crt: lim)))\n  %5 = load i64, i64* %4\n; # (== (hex \"0707070707070707\") (val (i64* (Crt: lim))))\n  %6 = icmp eq i64 506381209866536711, %5\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i8* [%0, %$1] ; # Crt\n; # (Crt: tag)\n  %8 = ptrtoint i8* %0 to i64\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (stkOverErr (Crt: tag))\n  call void @stkOverErr(i64 %10)\n  unreachable\n$3:\n  %11 = phi i8* [%0, %$1] ; # Crt\n; # (Crt: at (val $At))\n  %12 = getelementptr i8, i8* %0, i32 48\n  %13 = ptrtoint i8* %12 to i64\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %15 = load i64, i64* %14\n  %16 = inttoptr i64 %13 to i64*\n  store i64 %15, i64* %16\n; # (Crt:)\n; # (putCrtEnv (Crt:))\n  %17 = getelementptr i8, i8* %0, i32 152\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %17, i8* %18, i64 200, i1 0)\n  %19 = getelementptr i8, i8* %0, i32 112\n  %20 = ptrtoint i8* %19 to i64\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = inttoptr i64 %20 to i64*\n  store i64 %22, i64* %23\n  %24 = getelementptr i8, i8* %0, i32 120\n  %25 = ptrtoint i8* %24 to i64\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = inttoptr i64 %25 to i64*\n  store i64 %27, i64* %28\n  %29 = getelementptr i8, i8* %0, i32 128\n  %30 = ptrtoint i8* %29 to i64\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  %34 = inttoptr i64 %30 to i64*\n  store i64 %33, i64* %34\n  %35 = getelementptr i8, i8* %0, i32 136\n  %36 = ptrtoint i8* %35 to i64\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = inttoptr i64 %36 to i64*\n  store i64 %38, i64* %39\n  %40 = getelementptr i8, i8* %0, i32 144\n  %41 = ptrtoint i8* %40 to i64\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n  %45 = inttoptr i64 %41 to i64*\n  store i64 %44, i64* %45\n  ret void\n}\n\ndefine i64 @loadCoEnv(i8*, i64) align 8 {\n$1:\n; # (let Crt: (coroutine (set $Current Crt)) (memcpy (env) (Crt: (env...\n; # (set $Current Crt)\n  store i8* %0, i8** @$Current\n; # (i8* $Link)\n  %2 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n; # (Crt: (env))\n  %3 = getelementptr i8, i8* %0, i32 152\n; # (memcpy (env) (Crt: (env)) (env T) T)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %2, i8* %3, i64 200, i1 0)\n; # (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n; # (Crt: lim)\n  %4 = getelementptr i8, i8* %0, i32 40\n  %5 = bitcast i8* %4 to i8**\n  %6 = load i8*, i8** %5\n; # (val $StkSize)\n  %7 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 6)\n  %8 = lshr i64 %7, 6\n; # (ofs (Crt: lim) (shr (val $StkSize) 6))\n  %9 = getelementptr i8, i8* %6, i64 %8\n  store i8* %9, i8** @$StkLimit\n; # (Crt:)\n; # (getCrtEnv (Crt:))\n  %10 = getelementptr i8, i8* %0, i32 112\n  %11 = ptrtoint i8* %10 to i64\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  store i64 %13, i64* %14\n  %15 = getelementptr i8, i8* %0, i32 120\n  %16 = ptrtoint i8* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  store i64 %18, i64* %19\n  %20 = getelementptr i8, i8* %0, i32 128\n  %21 = ptrtoint i8* %20 to i64\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  %24 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  store i64 %23, i64* %25\n  %26 = getelementptr i8, i8* %0, i32 136\n  %27 = ptrtoint i8* %26 to i64\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  store i64 %29, i64* %30\n  %31 = getelementptr i8, i8* %0, i32 144\n  %32 = ptrtoint i8* %31 to i64\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  store i64 %34, i64* %36\n; # (set $At (Crt: at))\n; # (Crt: at)\n  %37 = getelementptr i8, i8* %0, i32 48\n  %38 = ptrtoint i8* %37 to i64\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %40, i64* %41\n; # (Crt: at 0)\n  %42 = getelementptr i8, i8* %0, i32 48\n  %43 = ptrtoint i8* %42 to i64\n  %44 = inttoptr i64 %43 to i64*\n  store i64 0, i64* %44\n; # (and Ret2 (run @))\n  %45 = icmp ne i64 %1, 0\n  br i1 %45, label %$3, label %$2\n$3:\n  %46 = phi i8* [%0, %$1] ; # Crt\n  %47 = phi i64 [%1, %$1] ; # Ret2\n; # (run @)\n  br label %$4\n$4:\n  %48 = phi i64 [%1, %$3], [%78, %$13] ; # Prg\n  %49 = inttoptr i64 %48 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n  %52 = load i64, i64* %49\n  %53 = and i64 %51, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$7, label %$5\n$7:\n  %55 = phi i64 [%51, %$4] ; # Prg\n  %56 = phi i64 [%52, %$4] ; # X\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$10, label %$9\n$10:\n  %59 = phi i64 [%56, %$7] ; # X\n  br label %$8\n$9:\n  %60 = phi i64 [%56, %$7] ; # X\n  %61 = and i64 %60, 8\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$12, label %$11\n$12:\n  %63 = phi i64 [%60, %$9] ; # X\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n  br label %$8\n$11:\n  %66 = phi i64 [%60, %$9] ; # X\n  %67 = call i64 @evList(i64 %66)\n  br label %$8\n$8:\n  %68 = phi i64 [%59, %$10], [%63, %$12], [%66, %$11] ; # X\n  %69 = phi i64 [%59, %$10], [%65, %$12], [%67, %$11] ; # ->\n  br label %$6\n$5:\n  %70 = phi i64 [%51, %$4] ; # Prg\n  %71 = phi i64 [%52, %$4] ; # X\n  %72 = and i64 %71, 15\n  %73 = icmp eq i64 %72, 0\n  br i1 %73, label %$14, label %$13\n$14:\n  %74 = phi i64 [%70, %$5] ; # Prg\n  %75 = phi i64 [%71, %$5] ; # X\n  %76 = call i64 @evList(i64 %75)\n  %77 = icmp ne i64 %76, 0\n  br label %$13\n$13:\n  %78 = phi i64 [%70, %$5], [%74, %$14] ; # Prg\n  %79 = phi i64 [%71, %$5], [%75, %$14] ; # X\n  %80 = phi i1 [0, %$5], [%77, %$14] ; # ->\n  br label %$4\n$6:\n  %81 = phi i64 [%55, %$8] ; # Prg\n  %82 = phi i64 [%69, %$8] ; # ->\n  %83 = icmp ne i64 %82, 0\n  br label %$2\n$2:\n  %84 = phi i8* [%0, %$1], [%46, %$6] ; # Crt\n  %85 = phi i64 [%1, %$1], [%47, %$6] ; # Ret2\n  %86 = phi i1 [0, %$1], [%83, %$6] ; # ->\n; # (val $Ret)\n  %87 = load i64, i64* @$Ret\n  ret i64 %87\n}\n\ndefine void @runCo(i64, i64, i8*, i8*, i64) align 8 {\n$1:\n; # (let (Src: (coroutine Src) Dst: (coroutine Dst)) (Dst: tag Tag) (...\n; # (Dst: tag Tag)\n  %5 = ptrtoint i8* %3 to i64\n  %6 = inttoptr i64 %5 to i64*\n  store i64 %1, i64* %6\n; # (Dst: org (Src:))\n  %7 = getelementptr i8, i8* %3, i32 16\n  %8 = bitcast i8* %7 to i8**\n  store i8* %2, i8** %8\n; # (Dst: otg (Src: tag))\n  %9 = getelementptr i8, i8* %3, i32 24\n  %10 = ptrtoint i8* %9 to i64\n  %11 = ptrtoint i8* %2 to i64\n  %12 = inttoptr i64 %11 to i64*\n  %13 = load i64, i64* %12\n  %14 = inttoptr i64 %10 to i64*\n  store i64 %13, i64* %14\n; # (Dst: prg X)\n  %15 = getelementptr i8, i8* %3, i32 32\n  %16 = ptrtoint i8* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %4, i64* %17\n; # (let (Siz (val $StkSize) Stk (stack)) (memset (Dst: lim (stack (o...\n; # (val $StkSize)\n  %18 = load i64, i64* @$StkSize\n; # (stack)\n  %19 = call i8* @llvm.stacksave()\n; # (Dst: lim (stack (ofs Dst (- Siz))))\n  %20 = getelementptr i8, i8* %3, i32 40\n  %21 = bitcast i8* %20 to i8**\n  %22 = sub i64 0, %18\n  %23 = getelementptr i8, i8* %3, i64 %22\n  call void @llvm.stackrestore(i8* %23)\n  store i8* %23, i8** %21\n; # (- Siz 256)\n  %24 = sub i64 %18, 256\n; # (memset (Dst: lim (stack (ofs Dst (- Siz)))) 7 (- Siz 256) T)\n  call void @llvm.memset.p0i8.i64(i8* align 8 %23, i8 7, i64 %24, i1 0)\n; # (stack Stk)\n  call void @llvm.stackrestore(i8* %19)\n; # (Dst: at 0)\n  %25 = getelementptr i8, i8* %3, i32 48\n  %26 = ptrtoint i8* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 0, i64* %27\n; # (Dst: lnk (val $Link))\n  %28 = getelementptr i8, i8* %3, i32 56\n  %29 = ptrtoint i8* %28 to i64\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %31 = load i64, i64* %30\n  %32 = inttoptr i64 %29 to i64*\n  store i64 %31, i64* %32\n; # (set $Bind (push (val $This) $This (Dst: bnd (push ZERO $At (val ...\n; # (val $This)\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %34 = load i64, i64* %33\n; # (Dst: bnd (push ZERO $At (val $Bind) Exe))\n  %35 = getelementptr i8, i8* %3, i32 64\n  %36 = ptrtoint i8* %35 to i64\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = alloca i64, i64 4, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 2, i64* %41\n  %42 = add i64 %40, 8\n  %43 = inttoptr i64 %42 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), i64* %43\n  %44 = add i64 %40, 16\n  %45 = inttoptr i64 %44 to i64*\n  store i64 %38, i64* %45\n  %46 = add i64 %40, 24\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %0, i64* %47\n  %48 = inttoptr i64 %36 to i64*\n  store i64 %40, i64* %48\n; # (push (val $This) $This (Dst: bnd (push ZERO $At (val $Bind) Exe)...\n  %49 = alloca i64, i64 3, align 16\n  %50 = ptrtoint i64* %49 to i64\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %34, i64* %51\n  %52 = add i64 %50, 8\n  %53 = inttoptr i64 %52 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64), i64* %53\n  %54 = add i64 %50, 16\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %40, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %50, i64* %56\n; # (Dst: ca (val $Catch))\n  %57 = getelementptr i8, i8* %3, i32 72\n  %58 = bitcast i8* %57 to i8**\n  %59 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n  store i8* %59, i8** %58\n; # (Dst: in (val $InFrames))\n  %60 = getelementptr i8, i8* %3, i32 80\n  %61 = bitcast i8* %60 to i8**\n  %62 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n  store i8* %62, i8** %61\n; # (Dst: out (val $OutFrames))\n  %63 = getelementptr i8, i8* %3, i32 88\n  %64 = bitcast i8* %63 to i8**\n  %65 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n  store i8* %65, i8** %64\n; # (Dst: err (val $ErrFrames))\n  %66 = getelementptr i8, i8* %3, i32 96\n  %67 = bitcast i8* %66 to i8**\n  %68 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n  store i8* %68, i8** %67\n; # (Dst: ctl (val $CtlFrames))\n  %69 = getelementptr i8, i8* %3, i32 104\n  %70 = bitcast i8* %69 to i8**\n  %71 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  store i8* %71, i8** %70\n; # (Dst:)\n; # (putCrtEnv (Dst:))\n  %72 = getelementptr i8, i8* %3, i32 152\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i8*\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %72, i8* %73, i64 200, i1 0)\n  %74 = getelementptr i8, i8* %3, i32 112\n  %75 = ptrtoint i8* %74 to i64\n  %76 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %77 = load i64, i64* %76\n  %78 = inttoptr i64 %75 to i64*\n  store i64 %77, i64* %78\n  %79 = getelementptr i8, i8* %3, i32 120\n  %80 = ptrtoint i8* %79 to i64\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %82 = load i64, i64* %81\n  %83 = inttoptr i64 %80 to i64*\n  store i64 %82, i64* %83\n  %84 = getelementptr i8, i8* %3, i32 128\n  %85 = ptrtoint i8* %84 to i64\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 8) to i64) to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n  %89 = inttoptr i64 %85 to i64*\n  store i64 %88, i64* %89\n  %90 = getelementptr i8, i8* %3, i32 136\n  %91 = ptrtoint i8* %90 to i64\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %93 = load i64, i64* %92\n  %94 = inttoptr i64 %91 to i64*\n  store i64 %93, i64* %94\n  %95 = getelementptr i8, i8* %3, i32 144\n  %96 = ptrtoint i8* %95 to i64\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 112) to i64) to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  %99 = load i64, i64* %98\n  %100 = inttoptr i64 %96 to i64*\n  store i64 %99, i64* %100\n; # (set $Next $Nil $Make 0 $Yoke 0 $Current (Dst:) $StkLimit (ofs (D...\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %101\n  %102 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 0, i64* %102\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  store i64 0, i64* %103\n; # (Dst:)\n  store i8* %3, i8** @$Current\n; # (Dst: lim)\n  %104 = getelementptr i8, i8* %3, i32 40\n  %105 = bitcast i8* %104 to i8**\n  %106 = load i8*, i8** %105\n; # (val $StkSize)\n  %107 = load i64, i64* @$StkSize\n; # (shr (val $StkSize) 6)\n  %108 = lshr i64 %107, 6\n; # (ofs (Dst: lim) (shr (val $StkSize) 6))\n  %109 = getelementptr i8, i8* %106, i64 %108\n  store i8* %109, i8** @$StkLimit\n; # (when (symb? Tag) (put Tag ZERO (| (i64 (Dst:)) 2)))\n; # (symb? Tag)\n  %110 = xor i64 %1, 8\n  %111 = and i64 %110, 14\n  %112 = icmp eq i64 %111, 0\n  br i1 %112, label %$2, label %$3\n$2:\n  %113 = phi i64 [%0, %$1] ; # Exe\n  %114 = phi i64 [%1, %$1] ; # Tag\n  %115 = phi i8* [%2, %$1] ; # Src\n  %116 = phi i8* [%3, %$1] ; # Dst\n  %117 = phi i64 [%4, %$1] ; # X\n; # (Dst:)\n; # (i64 (Dst:))\n  %118 = ptrtoint i8* %3 to i64\n; # (| (i64 (Dst:)) 2)\n  %119 = or i64 %118, 2\n; # (put Tag ZERO (| (i64 (Dst:)) 2))\n  call void @put(i64 %114, i64 2, i64 %119)\n  br label %$3\n$3:\n  %120 = phi i64 [%0, %$1], [%113, %$2] ; # Exe\n  %121 = phi i64 [%1, %$1], [%114, %$2] ; # Tag\n  %122 = phi i8* [%2, %$1], [%115, %$2] ; # Src\n  %123 = phi i8* [%3, %$1], [%116, %$2] ; # Dst\n  %124 = phi i64 [%4, %$1], [%117, %$2] ; # X\n; # (set $Ret (run X) $Ret2 0)\n; # (run X)\n  br label %$4\n$4:\n  %125 = phi i64 [%124, %$3], [%155, %$13] ; # Prg\n  %126 = inttoptr i64 %125 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  %128 = load i64, i64* %127\n  %129 = load i64, i64* %126\n  %130 = and i64 %128, 15\n  %131 = icmp ne i64 %130, 0\n  br i1 %131, label %$7, label %$5\n$7:\n  %132 = phi i64 [%128, %$4] ; # Prg\n  %133 = phi i64 [%129, %$4] ; # X\n  %134 = and i64 %133, 6\n  %135 = icmp ne i64 %134, 0\n  br i1 %135, label %$10, label %$9\n$10:\n  %136 = phi i64 [%133, %$7] ; # X\n  br label %$8\n$9:\n  %137 = phi i64 [%133, %$7] ; # X\n  %138 = and i64 %137, 8\n  %139 = icmp ne i64 %138, 0\n  br i1 %139, label %$12, label %$11\n$12:\n  %140 = phi i64 [%137, %$9] ; # X\n  %141 = inttoptr i64 %140 to i64*\n  %142 = load i64, i64* %141\n  br label %$8\n$11:\n  %143 = phi i64 [%137, %$9] ; # X\n  %144 = call i64 @evList(i64 %143)\n  br label %$8\n$8:\n  %145 = phi i64 [%136, %$10], [%140, %$12], [%143, %$11] ; # X\n  %146 = phi i64 [%136, %$10], [%142, %$12], [%144, %$11] ; # ->\n  br label %$6\n$5:\n  %147 = phi i64 [%128, %$4] ; # Prg\n  %148 = phi i64 [%129, %$4] ; # X\n  %149 = and i64 %148, 15\n  %150 = icmp eq i64 %149, 0\n  br i1 %150, label %$14, label %$13\n$14:\n  %151 = phi i64 [%147, %$5] ; # Prg\n  %152 = phi i64 [%148, %$5] ; # X\n  %153 = call i64 @evList(i64 %152)\n  %154 = icmp ne i64 %153, 0\n  br label %$13\n$13:\n  %155 = phi i64 [%147, %$5], [%151, %$14] ; # Prg\n  %156 = phi i64 [%148, %$5], [%152, %$14] ; # X\n  %157 = phi i1 [0, %$5], [%154, %$14] ; # ->\n  br label %$4\n$6:\n  %158 = phi i64 [%132, %$8] ; # Prg\n  %159 = phi i64 [%146, %$8] ; # ->\n  store i64 %159, i64* @$Ret\n  store i64 0, i64* @$Ret2\n; # (unless (== (hex \"0707070707070707\") (val (i64* (Dst: lim)))) (st...\n; # (Dst: lim)\n  %160 = getelementptr i8, i8* %3, i32 40\n  %161 = bitcast i8* %160 to i8**\n  %162 = load i8*, i8** %161\n; # (i64* (Dst: lim))\n  %163 = bitcast i8* %162 to i64*\n; # (val (i64* (Dst: lim)))\n  %164 = load i64, i64* %163\n; # (== (hex \"0707070707070707\") (val (i64* (Dst: lim))))\n  %165 = icmp eq i64 506381209866536711, %164\n  br i1 %165, label %$16, label %$15\n$15:\n  %166 = phi i64 [%120, %$6] ; # Exe\n  %167 = phi i64 [%121, %$6] ; # Tag\n  %168 = phi i8* [%122, %$6] ; # Src\n  %169 = phi i8* [%123, %$6] ; # Dst\n  %170 = phi i64 [%124, %$6] ; # X\n; # (Dst: tag)\n  %171 = ptrtoint i8* %3 to i64\n  %172 = inttoptr i64 %171 to i64*\n  %173 = load i64, i64* %172\n; # (stkOverErr (Dst: tag))\n  call void @stkOverErr(i64 %173)\n  unreachable\n$16:\n  %174 = phi i64 [%120, %$6] ; # Exe\n  %175 = phi i64 [%121, %$6] ; # Tag\n  %176 = phi i8* [%122, %$6] ; # Src\n  %177 = phi i8* [%123, %$6] ; # Dst\n  %178 = phi i64 [%124, %$6] ; # X\n; # (set $This (val -3 (Dst: bnd)))\n; # (Dst: bnd)\n  %179 = getelementptr i8, i8* %3, i32 64\n  %180 = ptrtoint i8* %179 to i64\n  %181 = inttoptr i64 %180 to i64*\n  %182 = load i64, i64* %181\n; # (val -3 (Dst: bnd))\n  %183 = inttoptr i64 %182 to i64*\n  %184 = getelementptr i64, i64* %183, i32 -4\n  %185 = load i64, i64* %184\n  %186 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  store i64 %185, i64* %186\n; # (Dst:)\n; # (stop (Dst:))\n  call void @stop(i8* %3)\n; # (let Org: (coroutine (Dst: org)) (unless (and (Org:) (== (Org: ta...\n; # (Dst: org)\n  %187 = getelementptr i8, i8* %3, i32 16\n  %188 = bitcast i8* %187 to i8**\n  %189 = load i8*, i8** %188\n; # (unless (and (Org:) (== (Org: tag) (Dst: otg))) (coErr Exe (Dst: ...\n; # (and (Org:) (== (Org: tag) (Dst: otg)))\n; # (Org:)\n  %190 = icmp ne i8* %189, null\n  br i1 %190, label %$18, label %$17\n$18:\n  %191 = phi i64 [%174, %$16] ; # Exe\n  %192 = phi i64 [%175, %$16] ; # Tag\n  %193 = phi i8* [%176, %$16] ; # Src\n  %194 = phi i8* [%177, %$16] ; # Dst\n  %195 = phi i64 [%178, %$16] ; # X\n; # (Org: tag)\n  %196 = ptrtoint i8* %189 to i64\n  %197 = inttoptr i64 %196 to i64*\n  %198 = load i64, i64* %197\n; # (Dst: otg)\n  %199 = getelementptr i8, i8* %3, i32 24\n  %200 = ptrtoint i8* %199 to i64\n  %201 = inttoptr i64 %200 to i64*\n  %202 = load i64, i64* %201\n; # (== (Org: tag) (Dst: otg))\n  %203 = icmp eq i64 %198, %202\n  br label %$17\n$17:\n  %204 = phi i64 [%174, %$16], [%191, %$18] ; # Exe\n  %205 = phi i64 [%175, %$16], [%192, %$18] ; # Tag\n  %206 = phi i8* [%176, %$16], [%193, %$18] ; # Src\n  %207 = phi i8* [%177, %$16], [%194, %$18] ; # Dst\n  %208 = phi i64 [%178, %$16], [%195, %$18] ; # X\n  %209 = phi i1 [0, %$16], [%203, %$18] ; # ->\n  br i1 %209, label %$20, label %$19\n$19:\n  %210 = phi i64 [%204, %$17] ; # Exe\n  %211 = phi i64 [%205, %$17] ; # Tag\n  %212 = phi i8* [%206, %$17] ; # Src\n  %213 = phi i8* [%207, %$17] ; # Dst\n  %214 = phi i64 [%208, %$17] ; # X\n; # (Dst: otg)\n  %215 = getelementptr i8, i8* %3, i32 24\n  %216 = ptrtoint i8* %215 to i64\n  %217 = inttoptr i64 %216 to i64*\n  %218 = load i64, i64* %217\n; # (coErr Exe (Dst: otg))\n  call void @coErr(i64 %210, i64 %218)\n  unreachable\n$20:\n  %219 = phi i64 [%204, %$17] ; # Exe\n  %220 = phi i64 [%205, %$17] ; # Tag\n  %221 = phi i8* [%206, %$17] ; # Src\n  %222 = phi i8* [%207, %$17] ; # Dst\n  %223 = phi i64 [%208, %$17] ; # X\n; # (Org: (rst))\n  %224 = getelementptr i8, i8* %189, i32 352\n; # (longjmp (Org: (rst)) 1)\n  call void @longjmp(i8* %224, i32 1)\n  unreachable\n}\n\ndefine i64 @_Co(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (atom X) (if (val $Current) ((coroutine @) t...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (atom X) (if (val $Current) ((coroutine @) tag) $Nil) (let Ta...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (if (val $Current) ((coroutine @) tag) $Nil)\n; # (val $Current)\n  %8 = load i8*, i8** @$Current\n  %9 = icmp ne i8* %8, null\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i64 [%6, %$2] ; # Exe\n  %11 = phi i64 [%7, %$2] ; # X\n; # ((coroutine @) tag)\n  %12 = ptrtoint i8* %8 to i64\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$7\n$6:\n  %15 = phi i64 [%6, %$2] ; # Exe\n  %16 = phi i64 [%7, %$2] ; # X\n  br label %$7\n$7:\n  %17 = phi i64 [%10, %$5], [%15, %$6] ; # Exe\n  %18 = phi i64 [%11, %$5], [%16, %$6] ; # X\n  %19 = phi i64 [%14, %$5], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6] ; # ->\n  br label %$4\n$3:\n  %20 = phi i64 [%0, %$1] ; # Exe\n  %21 = phi i64 [%3, %$1] ; # X\n; # (let Tag (eval (++ X)) (cond ((nil? Tag) (tagErr Exe)) ((t? Tag) ...\n; # (++ X)\n  %22 = inttoptr i64 %21 to i64*\n  %23 = getelementptr i64, i64* %22, i32 1\n  %24 = load i64, i64* %23\n  %25 = load i64, i64* %22\n; # (eval (++ X))\n  %26 = and i64 %25, 6\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$10, label %$9\n$10:\n  %28 = phi i64 [%25, %$3] ; # X\n  br label %$8\n$9:\n  %29 = phi i64 [%25, %$3] ; # X\n  %30 = and i64 %29, 8\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$12, label %$11\n$12:\n  %32 = phi i64 [%29, %$9] ; # X\n  %33 = inttoptr i64 %32 to i64*\n  %34 = load i64, i64* %33\n  br label %$8\n$11:\n  %35 = phi i64 [%29, %$9] ; # X\n  %36 = call i64 @evList(i64 %35)\n  br label %$8\n$8:\n  %37 = phi i64 [%28, %$10], [%32, %$12], [%35, %$11] ; # X\n  %38 = phi i64 [%28, %$10], [%34, %$12], [%36, %$11] ; # ->\n; # (cond ((nil? Tag) (tagErr Exe)) ((t? Tag) (when (pair X) (reentEr...\n; # (nil? Tag)\n  %39 = icmp eq i64 %38, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %39, label %$15, label %$14\n$15:\n  %40 = phi i64 [%20, %$8] ; # Exe\n  %41 = phi i64 [%24, %$8] ; # X\n  %42 = phi i64 [%38, %$8] ; # Tag\n; # (tagErr Exe)\n  call void @tagErr(i64 %40)\n  unreachable\n$14:\n  %43 = phi i64 [%20, %$8] ; # Exe\n  %44 = phi i64 [%24, %$8] ; # X\n  %45 = phi i64 [%38, %$8] ; # Tag\n; # (t? Tag)\n  %46 = icmp eq i64 %45, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %46, label %$17, label %$16\n$17:\n  %47 = phi i64 [%43, %$14] ; # Exe\n  %48 = phi i64 [%44, %$14] ; # X\n  %49 = phi i64 [%45, %$14] ; # Tag\n; # (when (pair X) (reentErr Exe Tag))\n; # (pair X)\n  %50 = and i64 %48, 15\n  %51 = icmp eq i64 %50, 0\n  br i1 %51, label %$18, label %$19\n$18:\n  %52 = phi i64 [%47, %$17] ; # Exe\n  %53 = phi i64 [%48, %$17] ; # X\n  %54 = phi i64 [%49, %$17] ; # Tag\n; # (reentErr Exe Tag)\n  call void @reentErr(i64 %52, i64 %54)\n  unreachable\n$19:\n  %55 = phi i64 [%47, %$17] ; # Exe\n  %56 = phi i64 [%48, %$17] ; # X\n  %57 = phi i64 [%49, %$17] ; # Tag\n; # (let Crt (val $Coroutines) (when Crt (while (setq Crt ((coroutine...\n; # (val $Coroutines)\n  %58 = load i8*, i8** @$Coroutines\n; # (when Crt (while (setq Crt ((coroutine Crt) nxt)) (when ((corouti...\n  %59 = icmp ne i8* %58, null\n  br i1 %59, label %$20, label %$21\n$20:\n  %60 = phi i64 [%55, %$19] ; # Exe\n  %61 = phi i64 [%56, %$19] ; # X\n  %62 = phi i64 [%57, %$19] ; # Tag\n  %63 = phi i8* [%58, %$19] ; # Crt\n; # (while (setq Crt ((coroutine Crt) nxt)) (when ((coroutine Crt) ta...\n  br label %$22\n$22:\n  %64 = phi i64 [%60, %$20], [%84, %$26] ; # Exe\n  %65 = phi i64 [%61, %$20], [%85, %$26] ; # X\n  %66 = phi i64 [%62, %$20], [%86, %$26] ; # Tag\n  %67 = phi i8* [%63, %$20], [%87, %$26] ; # Crt\n; # ((coroutine Crt) nxt)\n  %68 = getelementptr i8, i8* %67, i32 8\n  %69 = bitcast i8* %68 to i8**\n  %70 = load i8*, i8** %69\n  %71 = icmp ne i8* %70, null\n  br i1 %71, label %$23, label %$24\n$23:\n  %72 = phi i64 [%64, %$22] ; # Exe\n  %73 = phi i64 [%65, %$22] ; # X\n  %74 = phi i64 [%66, %$22] ; # Tag\n  %75 = phi i8* [%70, %$22] ; # Crt\n; # (when ((coroutine Crt) tag) (err Exe @ ($ \"Running coroutine\") nu...\n; # ((coroutine Crt) tag)\n  %76 = ptrtoint i8* %75 to i64\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$25, label %$26\n$25:\n  %80 = phi i64 [%72, %$23] ; # Exe\n  %81 = phi i64 [%73, %$23] ; # X\n  %82 = phi i64 [%74, %$23] ; # Tag\n  %83 = phi i8* [%75, %$23] ; # Crt\n; # (err Exe @ ($ \"Running coroutine\") null)\n  call void @err(i64 %80, i64 %78, i8* bitcast ([18 x i8]* @$81 to i8*), i8* null)\n  unreachable\n$26:\n  %84 = phi i64 [%72, %$23] ; # Exe\n  %85 = phi i64 [%73, %$23] ; # X\n  %86 = phi i64 [%74, %$23] ; # Tag\n  %87 = phi i8* [%75, %$23] ; # Crt\n  br label %$22\n$24:\n  %88 = phi i64 [%64, %$22] ; # Exe\n  %89 = phi i64 [%65, %$22] ; # X\n  %90 = phi i64 [%66, %$22] ; # Tag\n  %91 = phi i8* [%70, %$22] ; # Crt\n; # (val $Coroutines)\n  %92 = load i8*, i8** @$Coroutines\n; # (free (val $Coroutines))\n  call void @free(i8* %92)\n; # (set $Coroutines (set $Current (set $CrtLast (set $CrtFree null))...\n; # (set $Current (set $CrtLast (set $CrtFree null)))\n; # (set $CrtLast (set $CrtFree null))\n; # (set $CrtFree null)\n  store i8* null, i8** @$CrtFree\n  store i8* null, i8** @$CrtLast\n  store i8* null, i8** @$Current\n  store i8* null, i8** @$Coroutines\n; # (set $StkLimit (val $SysStkLimit))\n; # (val $SysStkLimit)\n  %93 = load i8*, i8** @$SysStkLimit\n  store i8* %93, i8** @$StkLimit\n  br label %$21\n$21:\n  %94 = phi i64 [%55, %$19], [%88, %$24] ; # Exe\n  %95 = phi i64 [%56, %$19], [%89, %$24] ; # X\n  %96 = phi i64 [%57, %$19], [%90, %$24] ; # Tag\n  %97 = phi i8* [%58, %$19], [%91, %$24] ; # Crt\n  br label %$13\n$16:\n  %98 = phi i64 [%43, %$14] ; # Exe\n  %99 = phi i64 [%44, %$14] ; # X\n  %100 = phi i64 [%45, %$14] ; # Tag\n; # (let Crt (val $Current) (loop (? (=0 Crt)) (when (== Tag ((corout...\n; # (val $Current)\n  %101 = load i8*, i8** @$Current\n; # (loop (? (=0 Crt)) (when (== Tag ((coroutine Crt) tag)) (reentErr...\n  br label %$27\n$27:\n  %102 = phi i64 [%98, %$16], [%119, %$31] ; # Exe\n  %103 = phi i64 [%99, %$16], [%120, %$31] ; # X\n  %104 = phi i64 [%100, %$16], [%121, %$31] ; # Tag\n  %105 = phi i8* [%101, %$16], [%125, %$31] ; # Crt\n; # (? (=0 Crt))\n; # (=0 Crt)\n  %106 = icmp eq i8* %105, null\n  br i1 %106, label %$29, label %$28\n$28:\n  %107 = phi i64 [%102, %$27] ; # Exe\n  %108 = phi i64 [%103, %$27] ; # X\n  %109 = phi i64 [%104, %$27] ; # Tag\n  %110 = phi i8* [%105, %$27] ; # Crt\n; # (when (== Tag ((coroutine Crt) tag)) (reentErr Exe Tag))\n; # ((coroutine Crt) tag)\n  %111 = ptrtoint i8* %110 to i64\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n; # (== Tag ((coroutine Crt) tag))\n  %114 = icmp eq i64 %109, %113\n  br i1 %114, label %$30, label %$31\n$30:\n  %115 = phi i64 [%107, %$28] ; # Exe\n  %116 = phi i64 [%108, %$28] ; # X\n  %117 = phi i64 [%109, %$28] ; # Tag\n  %118 = phi i8* [%110, %$28] ; # Crt\n; # (reentErr Exe Tag)\n  call void @reentErr(i64 %115, i64 %117)\n  unreachable\n$31:\n  %119 = phi i64 [%107, %$28] ; # Exe\n  %120 = phi i64 [%108, %$28] ; # X\n  %121 = phi i64 [%109, %$28] ; # Tag\n  %122 = phi i8* [%110, %$28] ; # Crt\n; # ((coroutine Crt) org)\n  %123 = getelementptr i8, i8* %122, i32 16\n  %124 = bitcast i8* %123 to i8**\n  %125 = load i8*, i8** %124\n  br label %$27\n$29:\n  %126 = phi i64 [%102, %$27] ; # Exe\n  %127 = phi i64 [%103, %$27] ; # X\n  %128 = phi i64 [%104, %$27] ; # Tag\n  %129 = phi i8* [%105, %$27] ; # Crt\n  %130 = phi i64 [0, %$27] ; # ->\n; # (cond ((pair X) (unless (val $Coroutines) (let Main: (coroutine (...\n; # (pair X)\n  %131 = and i64 %127, 15\n  %132 = icmp eq i64 %131, 0\n  br i1 %132, label %$34, label %$33\n$34:\n  %133 = phi i64 [%126, %$29] ; # Exe\n  %134 = phi i64 [%127, %$29] ; # X\n  %135 = phi i64 [%128, %$29] ; # Tag\n; # (unless (val $Coroutines) (let Main: (coroutine (alloc null (+ (v...\n; # (val $Coroutines)\n  %136 = load i8*, i8** @$Coroutines\n  %137 = icmp ne i8* %136, null\n  br i1 %137, label %$36, label %$35\n$35:\n  %138 = phi i64 [%133, %$34] ; # Exe\n  %139 = phi i64 [%134, %$34] ; # X\n  %140 = phi i64 [%135, %$34] ; # Tag\n; # (let Main: (coroutine (alloc null (+ (val JmpBufSize) (coroutine ...\n; # (val JmpBufSize)\n  %141 = load i64, i64* @JmpBufSize\n; # (+ (val JmpBufSize) (coroutine T))\n  %142 = add i64 %141, 352\n; # (alloc null (+ (val JmpBufSize) (coroutine T)))\n  %143 = call i8* @alloc(i8* null, i64 %142)\n; # (Main: tag $T)\n  %144 = ptrtoint i8* %143 to i64\n  %145 = inttoptr i64 %144 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %145\n; # (Main: nxt null)\n  %146 = getelementptr i8, i8* %143, i32 8\n  %147 = bitcast i8* %146 to i8**\n  store i8* null, i8** %147\n; # (Main: org null)\n  %148 = getelementptr i8, i8* %143, i32 16\n  %149 = bitcast i8* %148 to i8**\n  store i8* null, i8** %149\n; # (Main: otg $Nil)\n  %150 = getelementptr i8, i8* %143, i32 24\n  %151 = ptrtoint i8* %150 to i64\n  %152 = inttoptr i64 %151 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %152\n; # (Main: prg $Nil)\n  %153 = getelementptr i8, i8* %143, i32 32\n  %154 = ptrtoint i8* %153 to i64\n  %155 = inttoptr i64 %154 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %155\n; # (let (Siz (val $StkSizeT) Stk (stack)) (memset (Main: lim (stack ...\n; # (val $StkSizeT)\n  %156 = load i64, i64* @$StkSizeT\n; # (stack)\n  %157 = call i8* @llvm.stacksave()\n; # (Main: lim (stack (ofs Stk (- Siz))))\n  %158 = getelementptr i8, i8* %143, i32 40\n  %159 = bitcast i8* %158 to i8**\n  %160 = sub i64 0, %156\n  %161 = getelementptr i8, i8* %157, i64 %160\n  call void @llvm.stackrestore(i8* %161)\n  store i8* %161, i8** %159\n; # (- Siz 256)\n  %162 = sub i64 %156, 256\n; # (memset (Main: lim (stack (ofs Stk (- Siz)))) 7 (- Siz 256) T)\n  call void @llvm.memset.p0i8.i64(i8* align 8 %161, i8 7, i64 %162, i1 0)\n; # (stack Stk)\n  call void @llvm.stackrestore(i8* %157)\n; # (Main: at 0)\n  %163 = getelementptr i8, i8* %143, i32 48\n  %164 = ptrtoint i8* %163 to i64\n  %165 = inttoptr i64 %164 to i64*\n  store i64 0, i64* %165\n; # (set $Coroutines (set $Current (set $CrtLast (Main:))))\n; # (set $Current (set $CrtLast (Main:)))\n; # (set $CrtLast (Main:))\n; # (Main:)\n  store i8* %143, i8** @$CrtLast\n  store i8* %143, i8** @$Current\n  store i8* %143, i8** @$Coroutines\n  br label %$36\n$36:\n  %166 = phi i64 [%133, %$34], [%138, %$35] ; # Exe\n  %167 = phi i64 [%134, %$34], [%139, %$35] ; # X\n  %168 = phi i64 [%135, %$34], [%140, %$35] ; # Tag\n; # (let (Src: (coroutine (val $Current)) Crt (val $Coroutines)) (sav...\n; # (val $Current)\n  %169 = load i8*, i8** @$Current\n; # (val $Coroutines)\n  %170 = load i8*, i8** @$Coroutines\n; # (Src:)\n; # (saveCoEnv (Src:))\n  call void @saveCoEnv(i8* %169)\n; # (cond ((not (symb? Tag)) (loop (let Crt: (coroutine Crt) (when (=...\n; # (symb? Tag)\n  %171 = xor i64 %168, 8\n  %172 = and i64 %171, 14\n  %173 = icmp eq i64 %172, 0\n; # (not (symb? Tag))\n  %174 = icmp eq i1 %173, 0\n  br i1 %174, label %$39, label %$38\n$39:\n  %175 = phi i64 [%166, %$36] ; # Exe\n  %176 = phi i64 [%167, %$36] ; # X\n  %177 = phi i64 [%168, %$36] ; # Tag\n  %178 = phi i8* [%170, %$36] ; # Crt\n; # (loop (let Crt: (coroutine Crt) (when (== Tag (Crt: tag)) (when (...\n  br label %$40\n$40:\n  %179 = phi i64 [%175, %$39], [%221, %$45] ; # Exe\n  %180 = phi i64 [%176, %$39], [%222, %$45] ; # X\n  %181 = phi i64 [%177, %$39], [%223, %$45] ; # Tag\n  %182 = phi i8* [%178, %$39], [%219, %$45] ; # Crt\n; # (let Crt: (coroutine Crt) (when (== Tag (Crt: tag)) (when (setjmp...\n; # (when (== Tag (Crt: tag)) (when (setjmp (Src: (rst))) (ret (loadC...\n; # (Crt: tag)\n  %183 = ptrtoint i8* %182 to i64\n  %184 = inttoptr i64 %183 to i64*\n  %185 = load i64, i64* %184\n; # (== Tag (Crt: tag))\n  %186 = icmp eq i64 %181, %185\n  br i1 %186, label %$41, label %$42\n$41:\n  %187 = phi i64 [%179, %$40] ; # Exe\n  %188 = phi i64 [%180, %$40] ; # X\n  %189 = phi i64 [%181, %$40] ; # Tag\n  %190 = phi i8* [%182, %$40] ; # Crt\n; # (when (setjmp (Src: (rst))) (ret (loadCoEnv (Src:) (val $Ret2))))...\n; # (Src: (rst))\n  %191 = getelementptr i8, i8* %169, i32 352\n; # (setjmp (Src: (rst)))\n  %192 = call i32 @setjmp(i8* %191)\n  %193 = icmp ne i32 %192, 0\n  br i1 %193, label %$43, label %$44\n$43:\n  %194 = phi i64 [%187, %$41] ; # Exe\n  %195 = phi i64 [%188, %$41] ; # X\n  %196 = phi i64 [%189, %$41] ; # Tag\n  %197 = phi i8* [%190, %$41] ; # Crt\n; # (Src:)\n; # (val $Ret2)\n  %198 = load i64, i64* @$Ret2\n; # (loadCoEnv (Src:) (val $Ret2))\n  %199 = call i64 @loadCoEnv(i8* %169, i64 %198)\n; # (ret (loadCoEnv (Src:) (val $Ret2)))\n  ret i64 %199\n$44:\n  %200 = phi i64 [%187, %$41] ; # Exe\n  %201 = phi i64 [%188, %$41] ; # X\n  %202 = phi i64 [%189, %$41] ; # Tag\n  %203 = phi i8* [%190, %$41] ; # Crt\n; # (set $Ret $Nil $Ret2 0)\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* @$Ret\n  store i64 0, i64* @$Ret2\n; # (Crt: org (Src:))\n  %204 = getelementptr i8, i8* %182, i32 16\n  %205 = bitcast i8* %204 to i8**\n  store i8* %169, i8** %205\n; # (Crt: otg (Src: tag))\n  %206 = getelementptr i8, i8* %182, i32 24\n  %207 = ptrtoint i8* %206 to i64\n  %208 = ptrtoint i8* %169 to i64\n  %209 = inttoptr i64 %208 to i64*\n  %210 = load i64, i64* %209\n  %211 = inttoptr i64 %207 to i64*\n  store i64 %210, i64* %211\n; # (Crt: (rst))\n  %212 = getelementptr i8, i8* %182, i32 352\n; # (longjmp (Crt: (rst)) 1)\n  call void @longjmp(i8* %212, i32 1)\n  unreachable\n$42:\n  %213 = phi i64 [%179, %$40] ; # Exe\n  %214 = phi i64 [%180, %$40] ; # X\n  %215 = phi i64 [%181, %$40] ; # Tag\n  %216 = phi i8* [%182, %$40] ; # Crt\n; # (? (=0 (Crt: nxt)))\n; # (Crt: nxt)\n  %217 = getelementptr i8, i8* %182, i32 8\n  %218 = bitcast i8* %217 to i8**\n  %219 = load i8*, i8** %218\n; # (=0 (Crt: nxt))\n  %220 = icmp eq i8* %219, null\n  br i1 %220, label %$46, label %$45\n$45:\n  %221 = phi i64 [%213, %$42] ; # Exe\n  %222 = phi i64 [%214, %$42] ; # X\n  %223 = phi i64 [%215, %$42] ; # Tag\n  %224 = phi i8* [%216, %$42] ; # Crt\n  br label %$40\n$46:\n  %225 = phi i64 [%213, %$42] ; # Exe\n  %226 = phi i64 [%214, %$42] ; # X\n  %227 = phi i64 [%215, %$42] ; # Tag\n  %228 = phi i8* [%216, %$42] ; # Crt\n  %229 = phi i64 [0, %$42] ; # ->\n  br label %$37\n$38:\n  %230 = phi i64 [%166, %$36] ; # Exe\n  %231 = phi i64 [%167, %$36] ; # X\n  %232 = phi i64 [%168, %$36] ; # Tag\n  %233 = phi i8* [%170, %$36] ; # Crt\n; # (get Tag ZERO)\n  %234 = call i64 @get(i64 %232, i64 2)\n; # (cnt? (get Tag ZERO))\n  %235 = and i64 %234, 2\n  %236 = icmp ne i64 %235, 0\n  br i1 %236, label %$48, label %$47\n$48:\n  %237 = phi i64 [%230, %$38] ; # Exe\n  %238 = phi i64 [%231, %$38] ; # X\n  %239 = phi i64 [%232, %$38] ; # Tag\n  %240 = phi i8* [%233, %$38] ; # Crt\n; # (let Crt: (coroutine (i8* (& @ -3))) (unless (== Tag (Crt: tag)) ...\n; # (& @ -3)\n  %241 = and i64 %234, -3\n; # (i8* (& @ -3))\n  %242 = inttoptr i64 %241 to i8*\n; # (unless (== Tag (Crt: tag)) (coErr Exe Tag))\n; # (Crt: tag)\n  %243 = ptrtoint i8* %242 to i64\n  %244 = inttoptr i64 %243 to i64*\n  %245 = load i64, i64* %244\n; # (== Tag (Crt: tag))\n  %246 = icmp eq i64 %239, %245\n  br i1 %246, label %$50, label %$49\n$49:\n  %247 = phi i64 [%237, %$48] ; # Exe\n  %248 = phi i64 [%238, %$48] ; # X\n  %249 = phi i64 [%239, %$48] ; # Tag\n  %250 = phi i8* [%240, %$48] ; # Crt\n; # (coErr Exe Tag)\n  call void @coErr(i64 %247, i64 %249)\n  unreachable\n$50:\n  %251 = phi i64 [%237, %$48] ; # Exe\n  %252 = phi i64 [%238, %$48] ; # X\n  %253 = phi i64 [%239, %$48] ; # Tag\n  %254 = phi i8* [%240, %$48] ; # Crt\n; # (when (setjmp (Src: (rst))) (ret (loadCoEnv (Src:) (val $Ret2))))...\n; # (Src: (rst))\n  %255 = getelementptr i8, i8* %169, i32 352\n; # (setjmp (Src: (rst)))\n  %256 = call i32 @setjmp(i8* %255)\n  %257 = icmp ne i32 %256, 0\n  br i1 %257, label %$51, label %$52\n$51:\n  %258 = phi i64 [%251, %$50] ; # Exe\n  %259 = phi i64 [%252, %$50] ; # X\n  %260 = phi i64 [%253, %$50] ; # Tag\n  %261 = phi i8* [%254, %$50] ; # Crt\n; # (Src:)\n; # (val $Ret2)\n  %262 = load i64, i64* @$Ret2\n; # (loadCoEnv (Src:) (val $Ret2))\n  %263 = call i64 @loadCoEnv(i8* %169, i64 %262)\n; # (ret (loadCoEnv (Src:) (val $Ret2)))\n  ret i64 %263\n$52:\n  %264 = phi i64 [%251, %$50] ; # Exe\n  %265 = phi i64 [%252, %$50] ; # X\n  %266 = phi i64 [%253, %$50] ; # Tag\n  %267 = phi i8* [%254, %$50] ; # Crt\n; # (set $Ret $Nil $Ret2 0)\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* @$Ret\n  store i64 0, i64* @$Ret2\n; # (Crt: org (Src:))\n  %268 = getelementptr i8, i8* %242, i32 16\n  %269 = bitcast i8* %268 to i8**\n  store i8* %169, i8** %269\n; # (Crt: otg (Src: tag))\n  %270 = getelementptr i8, i8* %242, i32 24\n  %271 = ptrtoint i8* %270 to i64\n  %272 = ptrtoint i8* %169 to i64\n  %273 = inttoptr i64 %272 to i64*\n  %274 = load i64, i64* %273\n  %275 = inttoptr i64 %271 to i64*\n  store i64 %274, i64* %275\n; # (Crt: (rst))\n  %276 = getelementptr i8, i8* %242, i32 352\n; # (longjmp (Crt: (rst)) 1)\n  call void @longjmp(i8* %276, i32 1)\n  unreachable\n$47:\n  %277 = phi i64 [%230, %$38] ; # Exe\n  %278 = phi i64 [%231, %$38] ; # X\n  %279 = phi i64 [%232, %$38] ; # Tag\n  %280 = phi i8* [%233, %$38] ; # Crt\n  br label %$37\n$37:\n  %281 = phi i64 [%225, %$46], [%277, %$47] ; # Exe\n  %282 = phi i64 [%226, %$46], [%278, %$47] ; # X\n  %283 = phi i64 [%227, %$46], [%279, %$47] ; # Tag\n  %284 = phi i8* [%228, %$46], [%280, %$47] ; # Crt\n  %285 = phi i64 [%229, %$46], [0, %$47] ; # ->\n; # (when (setjmp (Src: (rst))) (ret (loadCoEnv (Src:) (val $Ret2))))...\n; # (Src: (rst))\n  %286 = getelementptr i8, i8* %169, i32 352\n; # (setjmp (Src: (rst)))\n  %287 = call i32 @setjmp(i8* %286)\n  %288 = icmp ne i32 %287, 0\n  br i1 %288, label %$53, label %$54\n$53:\n  %289 = phi i64 [%281, %$37] ; # Exe\n  %290 = phi i64 [%282, %$37] ; # X\n  %291 = phi i64 [%283, %$37] ; # Tag\n  %292 = phi i8* [%284, %$37] ; # Crt\n; # (Src:)\n; # (val $Ret2)\n  %293 = load i64, i64* @$Ret2\n; # (loadCoEnv (Src:) (val $Ret2))\n  %294 = call i64 @loadCoEnv(i8* %169, i64 %293)\n; # (ret (loadCoEnv (Src:) (val $Ret2)))\n  ret i64 %294\n$54:\n  %295 = phi i64 [%281, %$37] ; # Exe\n  %296 = phi i64 [%282, %$37] ; # X\n  %297 = phi i64 [%283, %$37] ; # Tag\n  %298 = phi i8* [%284, %$37] ; # Crt\n; # (let P (val $CrtFree) (if P (set $CrtFree ((coroutine (stack P)) ...\n; # (val $CrtFree)\n  %299 = load i8*, i8** @$CrtFree\n; # (if P (set $CrtFree ((coroutine (stack P)) lim)) (stack ((corouti...\n  %300 = icmp ne i8* %299, null\n  br i1 %300, label %$55, label %$56\n$55:\n  %301 = phi i64 [%295, %$54] ; # Exe\n  %302 = phi i64 [%296, %$54] ; # X\n  %303 = phi i64 [%297, %$54] ; # Tag\n  %304 = phi i8* [%298, %$54] ; # Crt\n  %305 = phi i8* [%299, %$54] ; # P\n; # (set $CrtFree ((coroutine (stack P)) lim))\n; # (stack P)\n  call void @llvm.stackrestore(i8* %305)\n; # ((coroutine (stack P)) lim)\n  %306 = getelementptr i8, i8* %305, i32 40\n  %307 = bitcast i8* %306 to i8**\n  %308 = load i8*, i8** %307\n  store i8* %308, i8** @$CrtFree\n  br label %$57\n$56:\n  %309 = phi i64 [%295, %$54] ; # Exe\n  %310 = phi i64 [%296, %$54] ; # X\n  %311 = phi i64 [%297, %$54] ; # Tag\n  %312 = phi i8* [%298, %$54] ; # Crt\n  %313 = phi i8* [%299, %$54] ; # P\n; # (val $CrtLast)\n  %314 = load i8*, i8** @$CrtLast\n; # ((coroutine (setq Crt (val $CrtLast))) lim)\n  %315 = getelementptr i8, i8* %314, i32 40\n  %316 = bitcast i8* %315 to i8**\n  %317 = load i8*, i8** %316\n; # (stack ((coroutine (setq Crt (val $CrtLast))) lim))\n  call void @llvm.stackrestore(i8* %317)\n; # (set $CrtLast (setq P (b8+ (+ (val JmpBufSize) (coroutine T)))))\n; # (val JmpBufSize)\n  %318 = load i64, i64* @JmpBufSize\n; # (+ (val JmpBufSize) (coroutine T))\n  %319 = add i64 %318, 352\n; # (b8+ (+ (val JmpBufSize) (coroutine T)))\n  %320 = alloca i8, i64 %319, align 8\n  store i8* %320, i8** @$CrtLast\n; # ((coroutine Crt) nxt P)\n  %321 = getelementptr i8, i8* %314, i32 8\n  %322 = bitcast i8* %321 to i8**\n  store i8* %320, i8** %322\n; # ((coroutine P) nxt null)\n  %323 = getelementptr i8, i8* %320, i32 8\n  %324 = bitcast i8* %323 to i8**\n  store i8* null, i8** %324\n  br label %$57\n$57:\n  %325 = phi i64 [%301, %$55], [%309, %$56] ; # Exe\n  %326 = phi i64 [%302, %$55], [%310, %$56] ; # X\n  %327 = phi i64 [%303, %$55], [%311, %$56] ; # Tag\n  %328 = phi i8* [%304, %$55], [%314, %$56] ; # Crt\n  %329 = phi i8* [%305, %$55], [%320, %$56] ; # P\n  %330 = phi i8* [%308, %$55], [null, %$56] ; # ->\n; # (Src:)\n; # (runCo Exe Tag (Src:) P X)\n  call void @runCo(i64 %325, i64 %327, i8* %169, i8* %329, i64 %326)\n  unreachable\n$33:\n  %331 = phi i64 [%126, %$29] ; # Exe\n  %332 = phi i64 [%127, %$29] ; # X\n  %333 = phi i64 [%128, %$29] ; # Tag\n; # (val $Coroutines)\n  %334 = load i8*, i8** @$Coroutines\n  %335 = icmp ne i8* %334, null\n  br i1 %335, label %$59, label %$58\n$59:\n  %336 = phi i64 [%331, %$33] ; # Exe\n  %337 = phi i64 [%332, %$33] ; # X\n  %338 = phi i64 [%333, %$33] ; # Tag\n; # (let Crt @ (if (symb? Tag) (when (cnt? (get Tag ZERO)) (setq Crt ...\n; # (if (symb? Tag) (when (cnt? (get Tag ZERO)) (setq Crt (i8* (& @ -...\n; # (symb? Tag)\n  %339 = xor i64 %338, 8\n  %340 = and i64 %339, 14\n  %341 = icmp eq i64 %340, 0\n  br i1 %341, label %$60, label %$61\n$60:\n  %342 = phi i64 [%336, %$59] ; # Exe\n  %343 = phi i64 [%337, %$59] ; # X\n  %344 = phi i64 [%338, %$59] ; # Tag\n  %345 = phi i8* [%334, %$59] ; # Crt\n; # (when (cnt? (get Tag ZERO)) (setq Crt (i8* (& @ -3))) (unless (==...\n; # (get Tag ZERO)\n  %346 = call i64 @get(i64 %344, i64 2)\n; # (cnt? (get Tag ZERO))\n  %347 = and i64 %346, 2\n  %348 = icmp ne i64 %347, 0\n  br i1 %348, label %$63, label %$64\n$63:\n  %349 = phi i64 [%342, %$60] ; # Exe\n  %350 = phi i64 [%343, %$60] ; # X\n  %351 = phi i64 [%344, %$60] ; # Tag\n  %352 = phi i8* [%345, %$60] ; # Crt\n; # (& @ -3)\n  %353 = and i64 %346, -3\n; # (i8* (& @ -3))\n  %354 = inttoptr i64 %353 to i8*\n; # (unless (== Tag ((coroutine Crt) tag)) (coErr Exe Tag))\n; # ((coroutine Crt) tag)\n  %355 = ptrtoint i8* %354 to i64\n  %356 = inttoptr i64 %355 to i64*\n  %357 = load i64, i64* %356\n; # (== Tag ((coroutine Crt) tag))\n  %358 = icmp eq i64 %351, %357\n  br i1 %358, label %$66, label %$65\n$65:\n  %359 = phi i64 [%349, %$63] ; # Exe\n  %360 = phi i64 [%350, %$63] ; # X\n  %361 = phi i64 [%351, %$63] ; # Tag\n  %362 = phi i8* [%354, %$63] ; # Crt\n; # (coErr Exe Tag)\n  call void @coErr(i64 %359, i64 %361)\n  unreachable\n$66:\n  %363 = phi i64 [%349, %$63] ; # Exe\n  %364 = phi i64 [%350, %$63] ; # X\n  %365 = phi i64 [%351, %$63] ; # Tag\n  %366 = phi i8* [%354, %$63] ; # Crt\n; # (: 1 (let P ((coroutine Crt) (env $ErrFrames i8*)) (while P (let ...\n  br label %$-1\n$-1:\n  %367 = phi i64 [%363, %$66], [%596, %$95] ; # Exe\n  %368 = phi i64 [%364, %$66], [%597, %$95] ; # X\n  %369 = phi i64 [%365, %$66], [%598, %$95] ; # Tag\n  %370 = phi i8* [%366, %$66], [%599, %$95] ; # Crt\n; # (let P ((coroutine Crt) (env $ErrFrames i8*)) (while P (let Err: ...\n; # ((coroutine Crt) (env $ErrFrames i8*))\n  %371 = getelementptr i8, i8* %370, i32 152\n  %372 = getelementptr i8, i8* %371, i32 56\n  %373 = bitcast i8* %372 to i8**\n  %374 = load i8*, i8** %373\n; # (while P (let Err: (ctFrame P) (when (ge0 (Err: fd)) (close @)) (...\n  br label %$67\n$67:\n  %375 = phi i64 [%367, %$-1], [%396, %$71] ; # Exe\n  %376 = phi i64 [%368, %$-1], [%397, %$71] ; # X\n  %377 = phi i64 [%369, %$-1], [%398, %$71] ; # Tag\n  %378 = phi i8* [%370, %$-1], [%399, %$71] ; # Crt\n  %379 = phi i8* [%374, %$-1], [%402, %$71] ; # P\n  %380 = icmp ne i8* %379, null\n  br i1 %380, label %$68, label %$69\n$68:\n  %381 = phi i64 [%375, %$67] ; # Exe\n  %382 = phi i64 [%376, %$67] ; # X\n  %383 = phi i64 [%377, %$67] ; # Tag\n  %384 = phi i8* [%378, %$67] ; # Crt\n  %385 = phi i8* [%379, %$67] ; # P\n; # (let Err: (ctFrame P) (when (ge0 (Err: fd)) (close @)) (setq P (E...\n; # (when (ge0 (Err: fd)) (close @))\n; # (Err: fd)\n  %386 = getelementptr i8, i8* %385, i32 8\n  %387 = bitcast i8* %386 to i32*\n  %388 = load i32, i32* %387\n; # (ge0 (Err: fd))\n  %389 = icmp sge i32 %388, 0\n  br i1 %389, label %$70, label %$71\n$70:\n  %390 = phi i64 [%381, %$68] ; # Exe\n  %391 = phi i64 [%382, %$68] ; # X\n  %392 = phi i64 [%383, %$68] ; # Tag\n  %393 = phi i8* [%384, %$68] ; # Crt\n  %394 = phi i8* [%385, %$68] ; # P\n; # (close @)\n  %395 = call i32 @close(i32 %388)\n  br label %$71\n$71:\n  %396 = phi i64 [%381, %$68], [%390, %$70] ; # Exe\n  %397 = phi i64 [%382, %$68], [%391, %$70] ; # X\n  %398 = phi i64 [%383, %$68], [%392, %$70] ; # Tag\n  %399 = phi i8* [%384, %$68], [%393, %$70] ; # Crt\n  %400 = phi i8* [%385, %$68], [%394, %$70] ; # P\n; # (Err: link)\n  %401 = bitcast i8* %385 to i8**\n  %402 = load i8*, i8** %401\n  br label %$67\n$69:\n  %403 = phi i64 [%375, %$67] ; # Exe\n  %404 = phi i64 [%376, %$67] ; # X\n  %405 = phi i64 [%377, %$67] ; # Tag\n  %406 = phi i8* [%378, %$67] ; # Crt\n  %407 = phi i8* [%379, %$67] ; # P\n; # (let P ((coroutine Crt) (env $OutFrames i8*)) (until (== P (val $...\n; # ((coroutine Crt) (env $OutFrames i8*))\n  %408 = getelementptr i8, i8* %406, i32 152\n  %409 = getelementptr i8, i8* %408, i32 48\n  %410 = bitcast i8* %409 to i8**\n  %411 = load i8*, i8** %410\n; # (until (== P (val $Stdout)) (let Io: (ioFrame P) (when (Io: file)...\n  br label %$72\n$72:\n  %412 = phi i64 [%403, %$69], [%481, %$76] ; # Exe\n  %413 = phi i64 [%404, %$69], [%482, %$76] ; # X\n  %414 = phi i64 [%405, %$69], [%483, %$76] ; # Tag\n  %415 = phi i8* [%406, %$69], [%484, %$76] ; # Crt\n  %416 = phi i8* [%411, %$69], [%487, %$76] ; # P\n; # (val $Stdout)\n  %417 = load i8*, i8** @$Stdout\n; # (== P (val $Stdout))\n  %418 = icmp eq i8* %416, %417\n  br i1 %418, label %$74, label %$73\n$73:\n  %419 = phi i64 [%412, %$72] ; # Exe\n  %420 = phi i64 [%413, %$72] ; # X\n  %421 = phi i64 [%414, %$72] ; # Tag\n  %422 = phi i8* [%415, %$72] ; # Crt\n  %423 = phi i8* [%416, %$72] ; # P\n; # (let Io: (ioFrame P) (when (Io: file) (let Out: (outFile @) (flus...\n; # (when (Io: file) (let Out: (outFile @) (flush (Out:)) (when (and ...\n; # (Io: file)\n  %424 = getelementptr i8, i8* %423, i32 8\n  %425 = bitcast i8* %424 to i8**\n  %426 = load i8*, i8** %425\n  %427 = icmp ne i8* %426, null\n  br i1 %427, label %$75, label %$76\n$75:\n  %428 = phi i64 [%419, %$73] ; # Exe\n  %429 = phi i64 [%420, %$73] ; # X\n  %430 = phi i64 [%421, %$73] ; # Tag\n  %431 = phi i8* [%422, %$73] ; # Crt\n  %432 = phi i8* [%423, %$73] ; # P\n; # (let Out: (outFile @) (flush (Out:)) (when (and (ge0 (Out: fd)) (...\n; # (Out:)\n; # (flush (Out:))\n  %433 = call i1 @flush(i8* %426)\n; # (when (and (ge0 (Out: fd)) (Io: pid)) (close (Out: fd)) (closeOut...\n; # (and (ge0 (Out: fd)) (Io: pid))\n; # (Out: fd)\n  %434 = bitcast i8* %426 to i32*\n  %435 = load i32, i32* %434\n; # (ge0 (Out: fd))\n  %436 = icmp sge i32 %435, 0\n  br i1 %436, label %$78, label %$77\n$78:\n  %437 = phi i64 [%428, %$75] ; # Exe\n  %438 = phi i64 [%429, %$75] ; # X\n  %439 = phi i64 [%430, %$75] ; # Tag\n  %440 = phi i8* [%431, %$75] ; # Crt\n  %441 = phi i8* [%432, %$75] ; # P\n; # (Io: pid)\n  %442 = getelementptr i8, i8* %423, i32 24\n  %443 = bitcast i8* %442 to i32*\n  %444 = load i32, i32* %443\n  %445 = icmp ne i32 %444, 0\n  br label %$77\n$77:\n  %446 = phi i64 [%428, %$75], [%437, %$78] ; # Exe\n  %447 = phi i64 [%429, %$75], [%438, %$78] ; # X\n  %448 = phi i64 [%430, %$75], [%439, %$78] ; # Tag\n  %449 = phi i8* [%431, %$75], [%440, %$78] ; # Crt\n  %450 = phi i8* [%432, %$75], [%441, %$78] ; # P\n  %451 = phi i1 [0, %$75], [%445, %$78] ; # ->\n  br i1 %451, label %$79, label %$80\n$79:\n  %452 = phi i64 [%446, %$77] ; # Exe\n  %453 = phi i64 [%447, %$77] ; # X\n  %454 = phi i64 [%448, %$77] ; # Tag\n  %455 = phi i8* [%449, %$77] ; # Crt\n  %456 = phi i8* [%450, %$77] ; # P\n; # (Out: fd)\n  %457 = bitcast i8* %426 to i32*\n  %458 = load i32, i32* %457\n; # (close (Out: fd))\n  %459 = call i32 @close(i32 %458)\n; # (Out: fd)\n  %460 = bitcast i8* %426 to i32*\n  %461 = load i32, i32* %460\n; # (closeOutFile (Out: fd))\n  call void @closeOutFile(i32 %461)\n; # (when (> (Io: pid) 1) (waitFile @))\n; # (Io: pid)\n  %462 = getelementptr i8, i8* %423, i32 24\n  %463 = bitcast i8* %462 to i32*\n  %464 = load i32, i32* %463\n; # (> (Io: pid) 1)\n  %465 = icmp sgt i32 %464, 1\n  br i1 %465, label %$81, label %$82\n$81:\n  %466 = phi i64 [%452, %$79] ; # Exe\n  %467 = phi i64 [%453, %$79] ; # X\n  %468 = phi i64 [%454, %$79] ; # Tag\n  %469 = phi i8* [%455, %$79] ; # Crt\n  %470 = phi i8* [%456, %$79] ; # P\n; # (waitFile @)\n  call void @waitFile(i32 %464)\n  br label %$82\n$82:\n  %471 = phi i64 [%452, %$79], [%466, %$81] ; # Exe\n  %472 = phi i64 [%453, %$79], [%467, %$81] ; # X\n  %473 = phi i64 [%454, %$79], [%468, %$81] ; # Tag\n  %474 = phi i8* [%455, %$79], [%469, %$81] ; # Crt\n  %475 = phi i8* [%456, %$79], [%470, %$81] ; # P\n  br label %$80\n$80:\n  %476 = phi i64 [%446, %$77], [%471, %$82] ; # Exe\n  %477 = phi i64 [%447, %$77], [%472, %$82] ; # X\n  %478 = phi i64 [%448, %$77], [%473, %$82] ; # Tag\n  %479 = phi i8* [%449, %$77], [%474, %$82] ; # Crt\n  %480 = phi i8* [%450, %$77], [%475, %$82] ; # P\n  br label %$76\n$76:\n  %481 = phi i64 [%419, %$73], [%476, %$80] ; # Exe\n  %482 = phi i64 [%420, %$73], [%477, %$80] ; # X\n  %483 = phi i64 [%421, %$73], [%478, %$80] ; # Tag\n  %484 = phi i8* [%422, %$73], [%479, %$80] ; # Crt\n  %485 = phi i8* [%423, %$73], [%480, %$80] ; # P\n; # (Io: link)\n  %486 = bitcast i8* %423 to i8**\n  %487 = load i8*, i8** %486\n  br label %$72\n$74:\n  %488 = phi i64 [%412, %$72] ; # Exe\n  %489 = phi i64 [%413, %$72] ; # X\n  %490 = phi i64 [%414, %$72] ; # Tag\n  %491 = phi i8* [%415, %$72] ; # Crt\n  %492 = phi i8* [%416, %$72] ; # P\n; # (let P ((coroutine Crt) (env $InFrames i8*)) (until (== P (val $S...\n; # ((coroutine Crt) (env $InFrames i8*))\n  %493 = getelementptr i8, i8* %491, i32 152\n  %494 = getelementptr i8, i8* %493, i32 40\n  %495 = bitcast i8* %494 to i8**\n  %496 = load i8*, i8** %495\n; # (until (== P (val $Stdin)) (let Io: (ioFrame P) (when (Io: file) ...\n  br label %$83\n$83:\n  %497 = phi i64 [%488, %$74], [%568, %$87] ; # Exe\n  %498 = phi i64 [%489, %$74], [%569, %$87] ; # X\n  %499 = phi i64 [%490, %$74], [%570, %$87] ; # Tag\n  %500 = phi i8* [%491, %$74], [%571, %$87] ; # Crt\n  %501 = phi i8* [%496, %$74], [%574, %$87] ; # P\n; # (val $Stdin)\n  %502 = load i8*, i8** @$Stdin\n; # (== P (val $Stdin))\n  %503 = icmp eq i8* %501, %502\n  br i1 %503, label %$85, label %$84\n$84:\n  %504 = phi i64 [%497, %$83] ; # Exe\n  %505 = phi i64 [%498, %$83] ; # X\n  %506 = phi i64 [%499, %$83] ; # Tag\n  %507 = phi i8* [%500, %$83] ; # Crt\n  %508 = phi i8* [%501, %$83] ; # P\n; # (let Io: (ioFrame P) (when (Io: file) (let In: (inFile @) (when (...\n; # (when (Io: file) (let In: (inFile @) (when (and (ge0 (In: fd)) (I...\n; # (Io: file)\n  %509 = getelementptr i8, i8* %508, i32 8\n  %510 = bitcast i8* %509 to i8**\n  %511 = load i8*, i8** %510\n  %512 = icmp ne i8* %511, null\n  br i1 %512, label %$86, label %$87\n$86:\n  %513 = phi i64 [%504, %$84] ; # Exe\n  %514 = phi i64 [%505, %$84] ; # X\n  %515 = phi i64 [%506, %$84] ; # Tag\n  %516 = phi i8* [%507, %$84] ; # Crt\n  %517 = phi i8* [%508, %$84] ; # P\n; # (let In: (inFile @) (when (and (ge0 (In: fd)) (Io: pid)) (close (...\n; # (when (and (ge0 (In: fd)) (Io: pid)) (close (In: fd)) (closeInFil...\n; # (and (ge0 (In: fd)) (Io: pid))\n; # (In: fd)\n  %518 = getelementptr i8, i8* %511, i32 8\n  %519 = bitcast i8* %518 to i32*\n  %520 = load i32, i32* %519\n; # (ge0 (In: fd))\n  %521 = icmp sge i32 %520, 0\n  br i1 %521, label %$89, label %$88\n$89:\n  %522 = phi i64 [%513, %$86] ; # Exe\n  %523 = phi i64 [%514, %$86] ; # X\n  %524 = phi i64 [%515, %$86] ; # Tag\n  %525 = phi i8* [%516, %$86] ; # Crt\n  %526 = phi i8* [%517, %$86] ; # P\n; # (Io: pid)\n  %527 = getelementptr i8, i8* %508, i32 24\n  %528 = bitcast i8* %527 to i32*\n  %529 = load i32, i32* %528\n  %530 = icmp ne i32 %529, 0\n  br label %$88\n$88:\n  %531 = phi i64 [%513, %$86], [%522, %$89] ; # Exe\n  %532 = phi i64 [%514, %$86], [%523, %$89] ; # X\n  %533 = phi i64 [%515, %$86], [%524, %$89] ; # Tag\n  %534 = phi i8* [%516, %$86], [%525, %$89] ; # Crt\n  %535 = phi i8* [%517, %$86], [%526, %$89] ; # P\n  %536 = phi i1 [0, %$86], [%530, %$89] ; # ->\n  br i1 %536, label %$90, label %$91\n$90:\n  %537 = phi i64 [%531, %$88] ; # Exe\n  %538 = phi i64 [%532, %$88] ; # X\n  %539 = phi i64 [%533, %$88] ; # Tag\n  %540 = phi i8* [%534, %$88] ; # Crt\n  %541 = phi i8* [%535, %$88] ; # P\n; # (In: fd)\n  %542 = getelementptr i8, i8* %511, i32 8\n  %543 = bitcast i8* %542 to i32*\n  %544 = load i32, i32* %543\n; # (close (In: fd))\n  %545 = call i32 @close(i32 %544)\n; # (In: fd)\n  %546 = getelementptr i8, i8* %511, i32 8\n  %547 = bitcast i8* %546 to i32*\n  %548 = load i32, i32* %547\n; # (closeInFile (In: fd))\n  call void @closeInFile(i32 %548)\n; # (when (> (Io: pid) 1) (waitFile @))\n; # (Io: pid)\n  %549 = getelementptr i8, i8* %508, i32 24\n  %550 = bitcast i8* %549 to i32*\n  %551 = load i32, i32* %550\n; # (> (Io: pid) 1)\n  %552 = icmp sgt i32 %551, 1\n  br i1 %552, label %$92, label %$93\n$92:\n  %553 = phi i64 [%537, %$90] ; # Exe\n  %554 = phi i64 [%538, %$90] ; # X\n  %555 = phi i64 [%539, %$90] ; # Tag\n  %556 = phi i8* [%540, %$90] ; # Crt\n  %557 = phi i8* [%541, %$90] ; # P\n; # (waitFile @)\n  call void @waitFile(i32 %551)\n  br label %$93\n$93:\n  %558 = phi i64 [%537, %$90], [%553, %$92] ; # Exe\n  %559 = phi i64 [%538, %$90], [%554, %$92] ; # X\n  %560 = phi i64 [%539, %$90], [%555, %$92] ; # Tag\n  %561 = phi i8* [%540, %$90], [%556, %$92] ; # Crt\n  %562 = phi i8* [%541, %$90], [%557, %$92] ; # P\n  br label %$91\n$91:\n  %563 = phi i64 [%531, %$88], [%558, %$93] ; # Exe\n  %564 = phi i64 [%532, %$88], [%559, %$93] ; # X\n  %565 = phi i64 [%533, %$88], [%560, %$93] ; # Tag\n  %566 = phi i8* [%534, %$88], [%561, %$93] ; # Crt\n  %567 = phi i8* [%535, %$88], [%562, %$93] ; # P\n  br label %$87\n$87:\n  %568 = phi i64 [%504, %$84], [%563, %$91] ; # Exe\n  %569 = phi i64 [%505, %$84], [%564, %$91] ; # X\n  %570 = phi i64 [%506, %$84], [%565, %$91] ; # Tag\n  %571 = phi i8* [%507, %$84], [%566, %$91] ; # Crt\n  %572 = phi i8* [%508, %$84], [%567, %$91] ; # P\n; # (Io: link)\n  %573 = bitcast i8* %508 to i8**\n  %574 = load i8*, i8** %573\n  br label %$83\n$85:\n  %575 = phi i64 [%497, %$83] ; # Exe\n  %576 = phi i64 [%498, %$83] ; # X\n  %577 = phi i64 [%499, %$83] ; # Tag\n  %578 = phi i8* [%500, %$83] ; # Crt\n  %579 = phi i8* [%501, %$83] ; # P\n; # (stop Crt)\n  call void @stop(i8* %578)\n  br label %$64\n$64:\n  %580 = phi i64 [%342, %$60], [%575, %$85] ; # Exe\n  %581 = phi i64 [%343, %$60], [%576, %$85] ; # X\n  %582 = phi i64 [%344, %$60], [%577, %$85] ; # Tag\n  %583 = phi i8* [%345, %$60], [%578, %$85] ; # Crt\n  br label %$62\n$61:\n  %584 = phi i64 [%336, %$59] ; # Exe\n  %585 = phi i64 [%337, %$59] ; # X\n  %586 = phi i64 [%338, %$59] ; # Tag\n  %587 = phi i8* [%334, %$59] ; # Crt\n; # (loop (when (== Tag ((coroutine Crt) tag)) (goto 1)) (? (=0 (setq...\n  br label %$94\n$94:\n  %588 = phi i64 [%584, %$61], [%608, %$97] ; # Exe\n  %589 = phi i64 [%585, %$61], [%609, %$97] ; # X\n  %590 = phi i64 [%586, %$61], [%610, %$97] ; # Tag\n  %591 = phi i8* [%587, %$61], [%611, %$97] ; # Crt\n; # (when (== Tag ((coroutine Crt) tag)) (goto 1))\n; # ((coroutine Crt) tag)\n  %592 = ptrtoint i8* %591 to i64\n  %593 = inttoptr i64 %592 to i64*\n  %594 = load i64, i64* %593\n; # (== Tag ((coroutine Crt) tag))\n  %595 = icmp eq i64 %590, %594\n  br i1 %595, label %$95, label %$96\n$95:\n  %596 = phi i64 [%588, %$94] ; # Exe\n  %597 = phi i64 [%589, %$94] ; # X\n  %598 = phi i64 [%590, %$94] ; # Tag\n  %599 = phi i8* [%591, %$94] ; # Crt\n; # (goto 1)\n  br label %$-1\n$96:\n  %600 = phi i64 [%588, %$94] ; # Exe\n  %601 = phi i64 [%589, %$94] ; # X\n  %602 = phi i64 [%590, %$94] ; # Tag\n  %603 = phi i8* [%591, %$94] ; # Crt\n; # (? (=0 (setq Crt ((coroutine Crt) nxt))))\n; # ((coroutine Crt) nxt)\n  %604 = getelementptr i8, i8* %603, i32 8\n  %605 = bitcast i8* %604 to i8**\n  %606 = load i8*, i8** %605\n; # (=0 (setq Crt ((coroutine Crt) nxt)))\n  %607 = icmp eq i8* %606, null\n  br i1 %607, label %$98, label %$97\n$97:\n  %608 = phi i64 [%600, %$96] ; # Exe\n  %609 = phi i64 [%601, %$96] ; # X\n  %610 = phi i64 [%602, %$96] ; # Tag\n  %611 = phi i8* [%606, %$96] ; # Crt\n  br label %$94\n$98:\n  %612 = phi i64 [%600, %$96] ; # Exe\n  %613 = phi i64 [%601, %$96] ; # X\n  %614 = phi i64 [%602, %$96] ; # Tag\n  %615 = phi i8* [%606, %$96] ; # Crt\n  %616 = phi i64 [0, %$96] ; # ->\n  br label %$62\n$62:\n  %617 = phi i64 [%580, %$64], [%612, %$98] ; # Exe\n  %618 = phi i64 [%581, %$64], [%613, %$98] ; # X\n  %619 = phi i64 [%582, %$64], [%614, %$98] ; # Tag\n  %620 = phi i8* [%583, %$64], [%615, %$98] ; # Crt\n  br label %$32\n$58:\n  %621 = phi i64 [%331, %$33] ; # Exe\n  %622 = phi i64 [%332, %$33] ; # X\n  %623 = phi i64 [%333, %$33] ; # Tag\n  br label %$32\n$32:\n  %624 = phi i64 [%617, %$62], [%621, %$58] ; # Exe\n  %625 = phi i64 [%618, %$62], [%622, %$58] ; # X\n  %626 = phi i64 [%619, %$62], [%623, %$58] ; # Tag\n  %627 = phi i64 [%619, %$62], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$58] ; # ->\n  br label %$13\n$13:\n  %628 = phi i64 [%94, %$21], [%624, %$32] ; # Exe\n  %629 = phi i64 [%95, %$21], [%625, %$32] ; # X\n  %630 = phi i64 [%96, %$21], [%626, %$32] ; # Tag\n  %631 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$21], [%627, %$32] ; # ->\n  br label %$4\n$4:\n  %632 = phi i64 [%17, %$7], [%628, %$13] ; # Exe\n  %633 = phi i64 [%18, %$7], [%629, %$13] ; # X\n  %634 = phi i64 [%19, %$7], [%631, %$13] ; # ->\n  ret i64 %634\n}\n\ndefine i64 @_Yield(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Val (save (eval (++ X))) Tag (eval (++ X)) Crt ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (val $Coroutines)\n  %46 = load i8*, i8** @$Coroutines\n; # (unless Crt (err Exe 0 ($ \"No coroutines\") null))\n  %47 = icmp ne i8* %46, null\n  br i1 %47, label %$13, label %$12\n$12:\n  %48 = phi i64 [%0, %$7] ; # Exe\n  %49 = phi i64 [%31, %$7] ; # X\n  %50 = phi i64 [%20, %$7] ; # Val\n  %51 = phi i64 [%45, %$7] ; # Tag\n  %52 = phi i8* [%46, %$7] ; # Crt\n; # (err Exe 0 ($ \"No coroutines\") null)\n  call void @err(i64 %48, i64 0, i8* bitcast ([14 x i8]* @$82 to i8*), i8* null)\n  unreachable\n$13:\n  %53 = phi i64 [%0, %$7] ; # Exe\n  %54 = phi i64 [%31, %$7] ; # X\n  %55 = phi i64 [%20, %$7] ; # Val\n  %56 = phi i64 [%45, %$7] ; # Tag\n  %57 = phi i8* [%46, %$7] ; # Crt\n; # (let (Src: (coroutine (val $Current)) Org: (coroutine (Src: org))...\n; # (val $Current)\n  %58 = load i8*, i8** @$Current\n; # (Src: org)\n  %59 = getelementptr i8, i8* %58, i32 16\n  %60 = bitcast i8* %59 to i8**\n  %61 = load i8*, i8** %60\n; # (cond ((not (nil? Tag)) (cond ((t? Tag) (val $Coroutines)) ((not ...\n; # (nil? Tag)\n  %62 = icmp eq i64 %56, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Tag))\n  %63 = icmp eq i1 %62, 0\n  br i1 %63, label %$16, label %$15\n$16:\n  %64 = phi i64 [%53, %$13] ; # Exe\n  %65 = phi i64 [%54, %$13] ; # X\n  %66 = phi i64 [%55, %$13] ; # Val\n  %67 = phi i64 [%56, %$13] ; # Tag\n  %68 = phi i8* [%57, %$13] ; # Crt\n; # (cond ((t? Tag) (val $Coroutines)) ((not (symb? Tag)) (loop (let ...\n; # (t? Tag)\n  %69 = icmp eq i64 %67, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %69, label %$19, label %$18\n$19:\n  %70 = phi i64 [%64, %$16] ; # Exe\n  %71 = phi i64 [%65, %$16] ; # X\n  %72 = phi i64 [%66, %$16] ; # Val\n  %73 = phi i64 [%67, %$16] ; # Tag\n  %74 = phi i8* [%68, %$16] ; # Crt\n; # (val $Coroutines)\n  %75 = load i8*, i8** @$Coroutines\n  br label %$17\n$18:\n  %76 = phi i64 [%64, %$16] ; # Exe\n  %77 = phi i64 [%65, %$16] ; # X\n  %78 = phi i64 [%66, %$16] ; # Val\n  %79 = phi i64 [%67, %$16] ; # Tag\n  %80 = phi i8* [%68, %$16] ; # Crt\n; # (symb? Tag)\n  %81 = xor i64 %79, 8\n  %82 = and i64 %81, 14\n  %83 = icmp eq i64 %82, 0\n; # (not (symb? Tag))\n  %84 = icmp eq i1 %83, 0\n  br i1 %84, label %$21, label %$20\n$21:\n  %85 = phi i64 [%76, %$18] ; # Exe\n  %86 = phi i64 [%77, %$18] ; # X\n  %87 = phi i64 [%78, %$18] ; # Val\n  %88 = phi i64 [%79, %$18] ; # Tag\n  %89 = phi i8* [%80, %$18] ; # Crt\n; # (loop (let Crt: (coroutine Crt) (? (== Tag (Crt: tag)) Crt) (unle...\n  br label %$22\n$22:\n  %90 = phi i64 [%85, %$21], [%118, %$27] ; # Exe\n  %91 = phi i64 [%86, %$21], [%119, %$27] ; # X\n  %92 = phi i64 [%87, %$21], [%120, %$27] ; # Val\n  %93 = phi i64 [%88, %$21], [%121, %$27] ; # Tag\n  %94 = phi i8* [%89, %$21], [%122, %$27] ; # Crt\n; # (let Crt: (coroutine Crt) (? (== Tag (Crt: tag)) Crt) (unless (se...\n; # (? (== Tag (Crt: tag)) Crt)\n; # (Crt: tag)\n  %95 = ptrtoint i8* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (== Tag (Crt: tag))\n  %98 = icmp eq i64 %93, %97\n  br i1 %98, label %$25, label %$23\n$25:\n  %99 = phi i64 [%90, %$22] ; # Exe\n  %100 = phi i64 [%91, %$22] ; # X\n  %101 = phi i64 [%92, %$22] ; # Val\n  %102 = phi i64 [%93, %$22] ; # Tag\n  %103 = phi i8* [%94, %$22] ; # Crt\n  br label %$24\n$23:\n  %104 = phi i64 [%90, %$22] ; # Exe\n  %105 = phi i64 [%91, %$22] ; # X\n  %106 = phi i64 [%92, %$22] ; # Val\n  %107 = phi i64 [%93, %$22] ; # Tag\n  %108 = phi i8* [%94, %$22] ; # Crt\n; # (unless (setq Crt (Crt: nxt)) (coErr Exe Tag))\n; # (Crt: nxt)\n  %109 = getelementptr i8, i8* %94, i32 8\n  %110 = bitcast i8* %109 to i8**\n  %111 = load i8*, i8** %110\n  %112 = icmp ne i8* %111, null\n  br i1 %112, label %$27, label %$26\n$26:\n  %113 = phi i64 [%104, %$23] ; # Exe\n  %114 = phi i64 [%105, %$23] ; # X\n  %115 = phi i64 [%106, %$23] ; # Val\n  %116 = phi i64 [%107, %$23] ; # Tag\n  %117 = phi i8* [%111, %$23] ; # Crt\n; # (coErr Exe Tag)\n  call void @coErr(i64 %113, i64 %116)\n  unreachable\n$27:\n  %118 = phi i64 [%104, %$23] ; # Exe\n  %119 = phi i64 [%105, %$23] ; # X\n  %120 = phi i64 [%106, %$23] ; # Val\n  %121 = phi i64 [%107, %$23] ; # Tag\n  %122 = phi i8* [%111, %$23] ; # Crt\n  br label %$22\n$24:\n  %123 = phi i64 [%99, %$25] ; # Exe\n  %124 = phi i64 [%100, %$25] ; # X\n  %125 = phi i64 [%101, %$25] ; # Val\n  %126 = phi i64 [%102, %$25] ; # Tag\n  %127 = phi i8* [%103, %$25] ; # Crt\n  %128 = phi i8* [%103, %$25] ; # ->\n  br label %$17\n$20:\n  %129 = phi i64 [%76, %$18] ; # Exe\n  %130 = phi i64 [%77, %$18] ; # X\n  %131 = phi i64 [%78, %$18] ; # Val\n  %132 = phi i64 [%79, %$18] ; # Tag\n  %133 = phi i8* [%80, %$18] ; # Crt\n; # (get Tag ZERO)\n  %134 = call i64 @get(i64 %132, i64 2)\n; # (cnt? (get Tag ZERO))\n  %135 = and i64 %134, 2\n  %136 = icmp ne i64 %135, 0\n  br i1 %136, label %$29, label %$28\n$29:\n  %137 = phi i64 [%129, %$20] ; # Exe\n  %138 = phi i64 [%130, %$20] ; # X\n  %139 = phi i64 [%131, %$20] ; # Val\n  %140 = phi i64 [%132, %$20] ; # Tag\n  %141 = phi i8* [%133, %$20] ; # Crt\n; # (prog1 (i8* (& @ -3)) (unless (== Tag ((coroutine @) tag)) (coErr...\n; # (& @ -3)\n  %142 = and i64 %134, -3\n; # (i8* (& @ -3))\n  %143 = inttoptr i64 %142 to i8*\n; # (unless (== Tag ((coroutine @) tag)) (coErr Exe Tag))\n; # ((coroutine @) tag)\n  %144 = ptrtoint i8* %143 to i64\n  %145 = inttoptr i64 %144 to i64*\n  %146 = load i64, i64* %145\n; # (== Tag ((coroutine @) tag))\n  %147 = icmp eq i64 %140, %146\n  br i1 %147, label %$31, label %$30\n$30:\n  %148 = phi i64 [%137, %$29] ; # Exe\n  %149 = phi i64 [%138, %$29] ; # X\n  %150 = phi i64 [%139, %$29] ; # Val\n  %151 = phi i64 [%140, %$29] ; # Tag\n  %152 = phi i8* [%141, %$29] ; # Crt\n; # (coErr Exe Tag)\n  call void @coErr(i64 %148, i64 %151)\n  unreachable\n$31:\n  %153 = phi i64 [%137, %$29] ; # Exe\n  %154 = phi i64 [%138, %$29] ; # X\n  %155 = phi i64 [%139, %$29] ; # Val\n  %156 = phi i64 [%140, %$29] ; # Tag\n  %157 = phi i8* [%141, %$29] ; # Crt\n  br label %$17\n$28:\n  %158 = phi i64 [%129, %$20] ; # Exe\n  %159 = phi i64 [%130, %$20] ; # X\n  %160 = phi i64 [%131, %$20] ; # Val\n  %161 = phi i64 [%132, %$20] ; # Tag\n  %162 = phi i8* [%133, %$20] ; # Crt\n; # (coErr Exe Tag)\n  call void @coErr(i64 %158, i64 %161)\n  unreachable\n$17:\n  %163 = phi i64 [%70, %$19], [%123, %$24], [%153, %$31] ; # Exe\n  %164 = phi i64 [%71, %$19], [%124, %$24], [%154, %$31] ; # X\n  %165 = phi i64 [%72, %$19], [%125, %$24], [%155, %$31] ; # Val\n  %166 = phi i64 [%73, %$19], [%126, %$24], [%156, %$31] ; # Tag\n  %167 = phi i8* [%74, %$19], [%127, %$24], [%157, %$31] ; # Crt\n  %168 = phi i8* [%75, %$19], [%128, %$24], [%143, %$31] ; # ->\n  br label %$14\n$15:\n  %169 = phi i64 [%53, %$13] ; # Exe\n  %170 = phi i64 [%54, %$13] ; # X\n  %171 = phi i64 [%55, %$13] ; # Val\n  %172 = phi i64 [%56, %$13] ; # Tag\n  %173 = phi i8* [%57, %$13] ; # Crt\n; # (Org:)\n  %174 = icmp ne i8* %61, null\n  br i1 %174, label %$33, label %$32\n$33:\n  %175 = phi i64 [%169, %$15] ; # Exe\n  %176 = phi i64 [%170, %$15] ; # X\n  %177 = phi i64 [%171, %$15] ; # Val\n  %178 = phi i64 [%172, %$15] ; # Tag\n  %179 = phi i8* [%173, %$15] ; # Crt\n; # (prog1 @ (unless (== (Org: tag) (Src: otg)) (coErr Exe (Src: otg)...\n; # (unless (== (Org: tag) (Src: otg)) (coErr Exe (Src: otg)))\n; # (Org: tag)\n  %180 = ptrtoint i8* %61 to i64\n  %181 = inttoptr i64 %180 to i64*\n  %182 = load i64, i64* %181\n; # (Src: otg)\n  %183 = getelementptr i8, i8* %58, i32 24\n  %184 = ptrtoint i8* %183 to i64\n  %185 = inttoptr i64 %184 to i64*\n  %186 = load i64, i64* %185\n; # (== (Org: tag) (Src: otg))\n  %187 = icmp eq i64 %182, %186\n  br i1 %187, label %$35, label %$34\n$34:\n  %188 = phi i64 [%175, %$33] ; # Exe\n  %189 = phi i64 [%176, %$33] ; # X\n  %190 = phi i64 [%177, %$33] ; # Val\n  %191 = phi i64 [%178, %$33] ; # Tag\n  %192 = phi i8* [%179, %$33] ; # Crt\n; # (Src: otg)\n  %193 = getelementptr i8, i8* %58, i32 24\n  %194 = ptrtoint i8* %193 to i64\n  %195 = inttoptr i64 %194 to i64*\n  %196 = load i64, i64* %195\n; # (coErr Exe (Src: otg))\n  call void @coErr(i64 %188, i64 %196)\n  unreachable\n$35:\n  %197 = phi i64 [%175, %$33] ; # Exe\n  %198 = phi i64 [%176, %$33] ; # X\n  %199 = phi i64 [%177, %$33] ; # Val\n  %200 = phi i64 [%178, %$33] ; # Tag\n  %201 = phi i8* [%179, %$33] ; # Crt\n  br label %$14\n$32:\n  %202 = phi i64 [%169, %$15] ; # Exe\n  %203 = phi i64 [%170, %$15] ; # X\n  %204 = phi i64 [%171, %$15] ; # Val\n  %205 = phi i64 [%172, %$15] ; # Tag\n  %206 = phi i8* [%173, %$15] ; # Crt\n; # (tagErr Exe)\n  call void @tagErr(i64 %202)\n  unreachable\n$14:\n  %207 = phi i64 [%163, %$17], [%197, %$35] ; # Exe\n  %208 = phi i64 [%164, %$17], [%198, %$35] ; # X\n  %209 = phi i64 [%165, %$17], [%199, %$35] ; # Val\n  %210 = phi i64 [%166, %$17], [%200, %$35] ; # Tag\n  %211 = phi i8* [%167, %$17], [%201, %$35] ; # Crt\n  %212 = phi i8* [%168, %$17], [%61, %$35] ; # ->\n; # (any 0)\n; # (any 0)\n; # (i8* null)\n  %213 = inttoptr i64 0 to i8*\n; # (val $Stdin)\n  %214 = load i8*, i8** @$Stdin\n; # (val $Stdout)\n  %215 = load i8*, i8** @$Stdout\n; # (i8* null)\n  %216 = inttoptr i64 0 to i8*\n; # (i8* null)\n  %217 = inttoptr i64 0 to i8*\n; # (unless (t? (Src: tag)) (let P (val $Link) (until (== P (Src: lnk...\n; # (Src: tag)\n  %218 = ptrtoint i8* %58 to i64\n  %219 = inttoptr i64 %218 to i64*\n  %220 = load i64, i64* %219\n; # (t? (Src: tag))\n  %221 = icmp eq i64 %220, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %221, label %$37, label %$36\n$36:\n  %222 = phi i64 [%207, %$14] ; # Exe\n  %223 = phi i64 [%208, %$14] ; # X\n  %224 = phi i64 [%209, %$14] ; # Val\n  %225 = phi i64 [%210, %$14] ; # Tag\n  %226 = phi i8* [%211, %$14] ; # Crt\n  %227 = phi i64 [0, %$14] ; # Lnk\n  %228 = phi i64 [0, %$14] ; # Bnd\n  %229 = phi i8* [%213, %$14] ; # Ca\n  %230 = phi i8* [%214, %$14] ; # In\n  %231 = phi i8* [%215, %$14] ; # Out\n  %232 = phi i8* [%216, %$14] ; # Err\n  %233 = phi i8* [%217, %$14] ; # Ctl\n; # (let P (val $Link) (until (== P (Src: lnk)) (let Q P (setq P (val...\n; # (val $Link)\n  %234 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %235 = load i64, i64* %234\n; # (until (== P (Src: lnk)) (let Q P (setq P (val 2 Q)) (set 2 Q Lnk...\n  br label %$38\n$38:\n  %236 = phi i64 [%222, %$36], [%254, %$39] ; # Exe\n  %237 = phi i64 [%223, %$36], [%255, %$39] ; # X\n  %238 = phi i64 [%224, %$36], [%256, %$39] ; # Val\n  %239 = phi i64 [%225, %$36], [%257, %$39] ; # Tag\n  %240 = phi i8* [%226, %$36], [%258, %$39] ; # Crt\n  %241 = phi i64 [%227, %$36], [%266, %$39] ; # Lnk\n  %242 = phi i64 [%228, %$36], [%260, %$39] ; # Bnd\n  %243 = phi i8* [%229, %$36], [%261, %$39] ; # Ca\n  %244 = phi i8* [%230, %$36], [%262, %$39] ; # In\n  %245 = phi i8* [%231, %$36], [%263, %$39] ; # Out\n  %246 = phi i8* [%232, %$36], [%264, %$39] ; # Err\n  %247 = phi i8* [%233, %$36], [%265, %$39] ; # Ctl\n  %248 = phi i64 [%235, %$36], [%269, %$39] ; # P\n; # (Src: lnk)\n  %249 = getelementptr i8, i8* %58, i32 56\n  %250 = ptrtoint i8* %249 to i64\n  %251 = inttoptr i64 %250 to i64*\n  %252 = load i64, i64* %251\n; # (== P (Src: lnk))\n  %253 = icmp eq i64 %248, %252\n  br i1 %253, label %$40, label %$39\n$39:\n  %254 = phi i64 [%236, %$38] ; # Exe\n  %255 = phi i64 [%237, %$38] ; # X\n  %256 = phi i64 [%238, %$38] ; # Val\n  %257 = phi i64 [%239, %$38] ; # Tag\n  %258 = phi i8* [%240, %$38] ; # Crt\n  %259 = phi i64 [%241, %$38] ; # Lnk\n  %260 = phi i64 [%242, %$38] ; # Bnd\n  %261 = phi i8* [%243, %$38] ; # Ca\n  %262 = phi i8* [%244, %$38] ; # In\n  %263 = phi i8* [%245, %$38] ; # Out\n  %264 = phi i8* [%246, %$38] ; # Err\n  %265 = phi i8* [%247, %$38] ; # Ctl\n  %266 = phi i64 [%248, %$38] ; # P\n; # (let Q P (setq P (val 2 Q)) (set 2 Q Lnk) (setq Lnk Q))\n; # (val 2 Q)\n  %267 = inttoptr i64 %266 to i64*\n  %268 = getelementptr i64, i64* %267, i32 1\n  %269 = load i64, i64* %268\n; # (set 2 Q Lnk)\n  %270 = inttoptr i64 %266 to i64*\n  %271 = getelementptr i64, i64* %270, i32 1\n  store i64 %259, i64* %271\n  br label %$38\n$40:\n  %272 = phi i64 [%236, %$38] ; # Exe\n  %273 = phi i64 [%237, %$38] ; # X\n  %274 = phi i64 [%238, %$38] ; # Val\n  %275 = phi i64 [%239, %$38] ; # Tag\n  %276 = phi i8* [%240, %$38] ; # Crt\n  %277 = phi i64 [%241, %$38] ; # Lnk\n  %278 = phi i64 [%242, %$38] ; # Bnd\n  %279 = phi i8* [%243, %$38] ; # Ca\n  %280 = phi i8* [%244, %$38] ; # In\n  %281 = phi i8* [%245, %$38] ; # Out\n  %282 = phi i8* [%246, %$38] ; # Err\n  %283 = phi i8* [%247, %$38] ; # Ctl\n  %284 = phi i64 [%248, %$38] ; # P\n; # (set $Link Lnk)\n  %285 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %277, i64* %285\n; # (let P (val $Bind) (until (== P (Src: bnd)) (let Q P (xchg (val 2...\n; # (val $Bind)\n  %286 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %287 = load i64, i64* %286\n; # (until (== P (Src: bnd)) (let Q P (xchg (val 2 Q) Q) (setq P (val...\n  br label %$41\n$41:\n  %288 = phi i64 [%272, %$40], [%306, %$42] ; # Exe\n  %289 = phi i64 [%273, %$40], [%307, %$42] ; # X\n  %290 = phi i64 [%274, %$40], [%308, %$42] ; # Val\n  %291 = phi i64 [%275, %$40], [%309, %$42] ; # Tag\n  %292 = phi i8* [%276, %$40], [%310, %$42] ; # Crt\n  %293 = phi i64 [%277, %$40], [%311, %$42] ; # Lnk\n  %294 = phi i64 [%278, %$40], [%318, %$42] ; # Bnd\n  %295 = phi i8* [%279, %$40], [%313, %$42] ; # Ca\n  %296 = phi i8* [%280, %$40], [%314, %$42] ; # In\n  %297 = phi i8* [%281, %$40], [%315, %$42] ; # Out\n  %298 = phi i8* [%282, %$40], [%316, %$42] ; # Err\n  %299 = phi i8* [%283, %$40], [%317, %$42] ; # Ctl\n  %300 = phi i64 [%287, %$40], [%328, %$42] ; # P\n; # (Src: bnd)\n  %301 = getelementptr i8, i8* %58, i32 64\n  %302 = ptrtoint i8* %301 to i64\n  %303 = inttoptr i64 %302 to i64*\n  %304 = load i64, i64* %303\n; # (== P (Src: bnd))\n  %305 = icmp eq i64 %300, %304\n  br i1 %305, label %$43, label %$42\n$42:\n  %306 = phi i64 [%288, %$41] ; # Exe\n  %307 = phi i64 [%289, %$41] ; # X\n  %308 = phi i64 [%290, %$41] ; # Val\n  %309 = phi i64 [%291, %$41] ; # Tag\n  %310 = phi i8* [%292, %$41] ; # Crt\n  %311 = phi i64 [%293, %$41] ; # Lnk\n  %312 = phi i64 [%294, %$41] ; # Bnd\n  %313 = phi i8* [%295, %$41] ; # Ca\n  %314 = phi i8* [%296, %$41] ; # In\n  %315 = phi i8* [%297, %$41] ; # Out\n  %316 = phi i8* [%298, %$41] ; # Err\n  %317 = phi i8* [%299, %$41] ; # Ctl\n  %318 = phi i64 [%300, %$41] ; # P\n; # (let Q P (xchg (val 2 Q) Q) (setq P (val 3 Q)) (set 3 Q Bnd) (set...\n; # (val 2 Q)\n  %319 = inttoptr i64 %318 to i64*\n  %320 = getelementptr i64, i64* %319, i32 1\n  %321 = load i64, i64* %320\n; # (xchg (val 2 Q) Q)\n  %322 = inttoptr i64 %321 to i64*\n  %323 = load i64, i64* %322\n  %324 = inttoptr i64 %318 to i64*\n  %325 = load i64, i64* %324\n  store i64 %325, i64* %322\n  store i64 %323, i64* %324\n; # (val 3 Q)\n  %326 = inttoptr i64 %318 to i64*\n  %327 = getelementptr i64, i64* %326, i32 2\n  %328 = load i64, i64* %327\n; # (set 3 Q Bnd)\n  %329 = inttoptr i64 %318 to i64*\n  %330 = getelementptr i64, i64* %329, i32 2\n  store i64 %312, i64* %330\n  br label %$41\n$43:\n  %331 = phi i64 [%288, %$41] ; # Exe\n  %332 = phi i64 [%289, %$41] ; # X\n  %333 = phi i64 [%290, %$41] ; # Val\n  %334 = phi i64 [%291, %$41] ; # Tag\n  %335 = phi i8* [%292, %$41] ; # Crt\n  %336 = phi i64 [%293, %$41] ; # Lnk\n  %337 = phi i64 [%294, %$41] ; # Bnd\n  %338 = phi i8* [%295, %$41] ; # Ca\n  %339 = phi i8* [%296, %$41] ; # In\n  %340 = phi i8* [%297, %$41] ; # Out\n  %341 = phi i8* [%298, %$41] ; # Err\n  %342 = phi i8* [%299, %$41] ; # Ctl\n  %343 = phi i64 [%300, %$41] ; # P\n; # (set 3 P Bnd $Bind P)\n  %344 = inttoptr i64 %343 to i64*\n  %345 = getelementptr i64, i64* %344, i32 2\n  store i64 %337, i64* %345\n  %346 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %343, i64* %346\n; # (let P (val $Catch) (until (== P (Src: ca)) (let Ca: (caFrame P) ...\n; # (val $Catch)\n  %347 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (until (== P (Src: ca)) (let Ca: (caFrame P) (setq P (Ca: link)) ...\n  br label %$44\n$44:\n  %348 = phi i64 [%331, %$43], [%365, %$45] ; # Exe\n  %349 = phi i64 [%332, %$43], [%366, %$45] ; # X\n  %350 = phi i64 [%333, %$43], [%367, %$45] ; # Val\n  %351 = phi i64 [%334, %$43], [%368, %$45] ; # Tag\n  %352 = phi i8* [%335, %$43], [%369, %$45] ; # Crt\n  %353 = phi i64 [%336, %$43], [%370, %$45] ; # Lnk\n  %354 = phi i64 [%337, %$43], [%371, %$45] ; # Bnd\n  %355 = phi i8* [%338, %$43], [%377, %$45] ; # Ca\n  %356 = phi i8* [%339, %$43], [%373, %$45] ; # In\n  %357 = phi i8* [%340, %$43], [%374, %$45] ; # Out\n  %358 = phi i8* [%341, %$43], [%375, %$45] ; # Err\n  %359 = phi i8* [%342, %$43], [%376, %$45] ; # Ctl\n  %360 = phi i8* [%347, %$43], [%379, %$45] ; # P\n; # (Src: ca)\n  %361 = getelementptr i8, i8* %58, i32 72\n  %362 = bitcast i8* %361 to i8**\n  %363 = load i8*, i8** %362\n; # (== P (Src: ca))\n  %364 = icmp eq i8* %360, %363\n  br i1 %364, label %$46, label %$45\n$45:\n  %365 = phi i64 [%348, %$44] ; # Exe\n  %366 = phi i64 [%349, %$44] ; # X\n  %367 = phi i64 [%350, %$44] ; # Val\n  %368 = phi i64 [%351, %$44] ; # Tag\n  %369 = phi i8* [%352, %$44] ; # Crt\n  %370 = phi i64 [%353, %$44] ; # Lnk\n  %371 = phi i64 [%354, %$44] ; # Bnd\n  %372 = phi i8* [%355, %$44] ; # Ca\n  %373 = phi i8* [%356, %$44] ; # In\n  %374 = phi i8* [%357, %$44] ; # Out\n  %375 = phi i8* [%358, %$44] ; # Err\n  %376 = phi i8* [%359, %$44] ; # Ctl\n  %377 = phi i8* [%360, %$44] ; # P\n; # (let Ca: (caFrame P) (setq P (Ca: link)) (Ca: link Ca) (setq Ca (...\n; # (Ca: link)\n  %378 = bitcast i8* %377 to i8**\n  %379 = load i8*, i8** %378\n; # (Ca: link Ca)\n  %380 = bitcast i8* %377 to i8**\n  store i8* %372, i8** %380\n; # (Ca:)\n  br label %$44\n$46:\n  %381 = phi i64 [%348, %$44] ; # Exe\n  %382 = phi i64 [%349, %$44] ; # X\n  %383 = phi i64 [%350, %$44] ; # Val\n  %384 = phi i64 [%351, %$44] ; # Tag\n  %385 = phi i8* [%352, %$44] ; # Crt\n  %386 = phi i64 [%353, %$44] ; # Lnk\n  %387 = phi i64 [%354, %$44] ; # Bnd\n  %388 = phi i8* [%355, %$44] ; # Ca\n  %389 = phi i8* [%356, %$44] ; # In\n  %390 = phi i8* [%357, %$44] ; # Out\n  %391 = phi i8* [%358, %$44] ; # Err\n  %392 = phi i8* [%359, %$44] ; # Ctl\n  %393 = phi i8* [%360, %$44] ; # P\n; # (set $Catch Ca)\n  store i8* %388, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 32) to i8**)\n; # (let P (val $InFrames) (until (== P (Src: in)) (let In: (ioFrame ...\n; # (val $InFrames)\n  %394 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (until (== P (Src: in)) (let In: (ioFrame P) (setq P (In: link)) ...\n  br label %$47\n$47:\n  %395 = phi i64 [%381, %$46], [%412, %$48] ; # Exe\n  %396 = phi i64 [%382, %$46], [%413, %$48] ; # X\n  %397 = phi i64 [%383, %$46], [%414, %$48] ; # Val\n  %398 = phi i64 [%384, %$46], [%415, %$48] ; # Tag\n  %399 = phi i8* [%385, %$46], [%416, %$48] ; # Crt\n  %400 = phi i64 [%386, %$46], [%417, %$48] ; # Lnk\n  %401 = phi i64 [%387, %$46], [%418, %$48] ; # Bnd\n  %402 = phi i8* [%388, %$46], [%419, %$48] ; # Ca\n  %403 = phi i8* [%389, %$46], [%424, %$48] ; # In\n  %404 = phi i8* [%390, %$46], [%421, %$48] ; # Out\n  %405 = phi i8* [%391, %$46], [%422, %$48] ; # Err\n  %406 = phi i8* [%392, %$46], [%423, %$48] ; # Ctl\n  %407 = phi i8* [%394, %$46], [%426, %$48] ; # P\n; # (Src: in)\n  %408 = getelementptr i8, i8* %58, i32 80\n  %409 = bitcast i8* %408 to i8**\n  %410 = load i8*, i8** %409\n; # (== P (Src: in))\n  %411 = icmp eq i8* %407, %410\n  br i1 %411, label %$49, label %$48\n$48:\n  %412 = phi i64 [%395, %$47] ; # Exe\n  %413 = phi i64 [%396, %$47] ; # X\n  %414 = phi i64 [%397, %$47] ; # Val\n  %415 = phi i64 [%398, %$47] ; # Tag\n  %416 = phi i8* [%399, %$47] ; # Crt\n  %417 = phi i64 [%400, %$47] ; # Lnk\n  %418 = phi i64 [%401, %$47] ; # Bnd\n  %419 = phi i8* [%402, %$47] ; # Ca\n  %420 = phi i8* [%403, %$47] ; # In\n  %421 = phi i8* [%404, %$47] ; # Out\n  %422 = phi i8* [%405, %$47] ; # Err\n  %423 = phi i8* [%406, %$47] ; # Ctl\n  %424 = phi i8* [%407, %$47] ; # P\n; # (let In: (ioFrame P) (setq P (In: link)) (In: link In) (setq In (...\n; # (In: link)\n  %425 = bitcast i8* %424 to i8**\n  %426 = load i8*, i8** %425\n; # (In: link In)\n  %427 = bitcast i8* %424 to i8**\n  store i8* %420, i8** %427\n; # (In:)\n  br label %$47\n$49:\n  %428 = phi i64 [%395, %$47] ; # Exe\n  %429 = phi i64 [%396, %$47] ; # X\n  %430 = phi i64 [%397, %$47] ; # Val\n  %431 = phi i64 [%398, %$47] ; # Tag\n  %432 = phi i8* [%399, %$47] ; # Crt\n  %433 = phi i64 [%400, %$47] ; # Lnk\n  %434 = phi i64 [%401, %$47] ; # Bnd\n  %435 = phi i8* [%402, %$47] ; # Ca\n  %436 = phi i8* [%403, %$47] ; # In\n  %437 = phi i8* [%404, %$47] ; # Out\n  %438 = phi i8* [%405, %$47] ; # Err\n  %439 = phi i8* [%406, %$47] ; # Ctl\n  %440 = phi i8* [%407, %$47] ; # P\n; # (set $InFrames In)\n  store i8* %436, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (let P (val $OutFrames) (until (== P (Src: out)) (let Out: (ioFra...\n; # (val $OutFrames)\n  %441 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (until (== P (Src: out)) (let Out: (ioFrame P) (setq P (Out: link...\n  br label %$50\n$50:\n  %442 = phi i64 [%428, %$49], [%459, %$51] ; # Exe\n  %443 = phi i64 [%429, %$49], [%460, %$51] ; # X\n  %444 = phi i64 [%430, %$49], [%461, %$51] ; # Val\n  %445 = phi i64 [%431, %$49], [%462, %$51] ; # Tag\n  %446 = phi i8* [%432, %$49], [%463, %$51] ; # Crt\n  %447 = phi i64 [%433, %$49], [%464, %$51] ; # Lnk\n  %448 = phi i64 [%434, %$49], [%465, %$51] ; # Bnd\n  %449 = phi i8* [%435, %$49], [%466, %$51] ; # Ca\n  %450 = phi i8* [%436, %$49], [%467, %$51] ; # In\n  %451 = phi i8* [%437, %$49], [%471, %$51] ; # Out\n  %452 = phi i8* [%438, %$49], [%469, %$51] ; # Err\n  %453 = phi i8* [%439, %$49], [%470, %$51] ; # Ctl\n  %454 = phi i8* [%441, %$49], [%473, %$51] ; # P\n; # (Src: out)\n  %455 = getelementptr i8, i8* %58, i32 88\n  %456 = bitcast i8* %455 to i8**\n  %457 = load i8*, i8** %456\n; # (== P (Src: out))\n  %458 = icmp eq i8* %454, %457\n  br i1 %458, label %$52, label %$51\n$51:\n  %459 = phi i64 [%442, %$50] ; # Exe\n  %460 = phi i64 [%443, %$50] ; # X\n  %461 = phi i64 [%444, %$50] ; # Val\n  %462 = phi i64 [%445, %$50] ; # Tag\n  %463 = phi i8* [%446, %$50] ; # Crt\n  %464 = phi i64 [%447, %$50] ; # Lnk\n  %465 = phi i64 [%448, %$50] ; # Bnd\n  %466 = phi i8* [%449, %$50] ; # Ca\n  %467 = phi i8* [%450, %$50] ; # In\n  %468 = phi i8* [%451, %$50] ; # Out\n  %469 = phi i8* [%452, %$50] ; # Err\n  %470 = phi i8* [%453, %$50] ; # Ctl\n  %471 = phi i8* [%454, %$50] ; # P\n; # (let Out: (ioFrame P) (setq P (Out: link)) (Out: link Out) (setq ...\n; # (Out: link)\n  %472 = bitcast i8* %471 to i8**\n  %473 = load i8*, i8** %472\n; # (Out: link Out)\n  %474 = bitcast i8* %471 to i8**\n  store i8* %468, i8** %474\n; # (Out:)\n  br label %$50\n$52:\n  %475 = phi i64 [%442, %$50] ; # Exe\n  %476 = phi i64 [%443, %$50] ; # X\n  %477 = phi i64 [%444, %$50] ; # Val\n  %478 = phi i64 [%445, %$50] ; # Tag\n  %479 = phi i8* [%446, %$50] ; # Crt\n  %480 = phi i64 [%447, %$50] ; # Lnk\n  %481 = phi i64 [%448, %$50] ; # Bnd\n  %482 = phi i8* [%449, %$50] ; # Ca\n  %483 = phi i8* [%450, %$50] ; # In\n  %484 = phi i8* [%451, %$50] ; # Out\n  %485 = phi i8* [%452, %$50] ; # Err\n  %486 = phi i8* [%453, %$50] ; # Ctl\n  %487 = phi i8* [%454, %$50] ; # P\n; # (set $OutFrames Out)\n  store i8* %484, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (let P (val $ErrFrames) (until (== P (Src: err)) (let Err: (ctFra...\n; # (val $ErrFrames)\n  %488 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n; # (until (== P (Src: err)) (let Err: (ctFrame P) (setq P (Err: link...\n  br label %$53\n$53:\n  %489 = phi i64 [%475, %$52], [%506, %$54] ; # Exe\n  %490 = phi i64 [%476, %$52], [%507, %$54] ; # X\n  %491 = phi i64 [%477, %$52], [%508, %$54] ; # Val\n  %492 = phi i64 [%478, %$52], [%509, %$54] ; # Tag\n  %493 = phi i8* [%479, %$52], [%510, %$54] ; # Crt\n  %494 = phi i64 [%480, %$52], [%511, %$54] ; # Lnk\n  %495 = phi i64 [%481, %$52], [%512, %$54] ; # Bnd\n  %496 = phi i8* [%482, %$52], [%513, %$54] ; # Ca\n  %497 = phi i8* [%483, %$52], [%514, %$54] ; # In\n  %498 = phi i8* [%484, %$52], [%515, %$54] ; # Out\n  %499 = phi i8* [%485, %$52], [%518, %$54] ; # Err\n  %500 = phi i8* [%486, %$52], [%517, %$54] ; # Ctl\n  %501 = phi i8* [%488, %$52], [%520, %$54] ; # P\n; # (Src: err)\n  %502 = getelementptr i8, i8* %58, i32 96\n  %503 = bitcast i8* %502 to i8**\n  %504 = load i8*, i8** %503\n; # (== P (Src: err))\n  %505 = icmp eq i8* %501, %504\n  br i1 %505, label %$55, label %$54\n$54:\n  %506 = phi i64 [%489, %$53] ; # Exe\n  %507 = phi i64 [%490, %$53] ; # X\n  %508 = phi i64 [%491, %$53] ; # Val\n  %509 = phi i64 [%492, %$53] ; # Tag\n  %510 = phi i8* [%493, %$53] ; # Crt\n  %511 = phi i64 [%494, %$53] ; # Lnk\n  %512 = phi i64 [%495, %$53] ; # Bnd\n  %513 = phi i8* [%496, %$53] ; # Ca\n  %514 = phi i8* [%497, %$53] ; # In\n  %515 = phi i8* [%498, %$53] ; # Out\n  %516 = phi i8* [%499, %$53] ; # Err\n  %517 = phi i8* [%500, %$53] ; # Ctl\n  %518 = phi i8* [%501, %$53] ; # P\n; # (let Err: (ctFrame P) (setq P (Err: link)) (Err: link Err) (setq ...\n; # (Err: link)\n  %519 = bitcast i8* %518 to i8**\n  %520 = load i8*, i8** %519\n; # (Err: link Err)\n  %521 = bitcast i8* %518 to i8**\n  store i8* %516, i8** %521\n; # (Err:)\n  br label %$53\n$55:\n  %522 = phi i64 [%489, %$53] ; # Exe\n  %523 = phi i64 [%490, %$53] ; # X\n  %524 = phi i64 [%491, %$53] ; # Val\n  %525 = phi i64 [%492, %$53] ; # Tag\n  %526 = phi i8* [%493, %$53] ; # Crt\n  %527 = phi i64 [%494, %$53] ; # Lnk\n  %528 = phi i64 [%495, %$53] ; # Bnd\n  %529 = phi i8* [%496, %$53] ; # Ca\n  %530 = phi i8* [%497, %$53] ; # In\n  %531 = phi i8* [%498, %$53] ; # Out\n  %532 = phi i8* [%499, %$53] ; # Err\n  %533 = phi i8* [%500, %$53] ; # Ctl\n  %534 = phi i8* [%501, %$53] ; # P\n; # (set $ErrFrames Err)\n  store i8* %532, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 56) to i8**)\n; # (let P (val $CtlFrames) (until (== P (Src: ctl)) (let Ctl: (ctFra...\n; # (val $CtlFrames)\n  %535 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n; # (until (== P (Src: ctl)) (let Ctl: (ctFrame P) (setq P (Ctl: link...\n  br label %$56\n$56:\n  %536 = phi i64 [%522, %$55], [%553, %$57] ; # Exe\n  %537 = phi i64 [%523, %$55], [%554, %$57] ; # X\n  %538 = phi i64 [%524, %$55], [%555, %$57] ; # Val\n  %539 = phi i64 [%525, %$55], [%556, %$57] ; # Tag\n  %540 = phi i8* [%526, %$55], [%557, %$57] ; # Crt\n  %541 = phi i64 [%527, %$55], [%558, %$57] ; # Lnk\n  %542 = phi i64 [%528, %$55], [%559, %$57] ; # Bnd\n  %543 = phi i8* [%529, %$55], [%560, %$57] ; # Ca\n  %544 = phi i8* [%530, %$55], [%561, %$57] ; # In\n  %545 = phi i8* [%531, %$55], [%562, %$57] ; # Out\n  %546 = phi i8* [%532, %$55], [%563, %$57] ; # Err\n  %547 = phi i8* [%533, %$55], [%565, %$57] ; # Ctl\n  %548 = phi i8* [%535, %$55], [%567, %$57] ; # P\n; # (Src: ctl)\n  %549 = getelementptr i8, i8* %58, i32 104\n  %550 = bitcast i8* %549 to i8**\n  %551 = load i8*, i8** %550\n; # (== P (Src: ctl))\n  %552 = icmp eq i8* %548, %551\n  br i1 %552, label %$58, label %$57\n$57:\n  %553 = phi i64 [%536, %$56] ; # Exe\n  %554 = phi i64 [%537, %$56] ; # X\n  %555 = phi i64 [%538, %$56] ; # Val\n  %556 = phi i64 [%539, %$56] ; # Tag\n  %557 = phi i8* [%540, %$56] ; # Crt\n  %558 = phi i64 [%541, %$56] ; # Lnk\n  %559 = phi i64 [%542, %$56] ; # Bnd\n  %560 = phi i8* [%543, %$56] ; # Ca\n  %561 = phi i8* [%544, %$56] ; # In\n  %562 = phi i8* [%545, %$56] ; # Out\n  %563 = phi i8* [%546, %$56] ; # Err\n  %564 = phi i8* [%547, %$56] ; # Ctl\n  %565 = phi i8* [%548, %$56] ; # P\n; # (let Ctl: (ctFrame P) (setq P (Ctl: link)) (Ctl: link Ctl) (setq ...\n; # (Ctl: link)\n  %566 = bitcast i8* %565 to i8**\n  %567 = load i8*, i8** %566\n; # (Ctl: link Ctl)\n  %568 = bitcast i8* %565 to i8**\n  store i8* %564, i8** %568\n; # (Ctl:)\n  br label %$56\n$58:\n  %569 = phi i64 [%536, %$56] ; # Exe\n  %570 = phi i64 [%537, %$56] ; # X\n  %571 = phi i64 [%538, %$56] ; # Val\n  %572 = phi i64 [%539, %$56] ; # Tag\n  %573 = phi i8* [%540, %$56] ; # Crt\n  %574 = phi i64 [%541, %$56] ; # Lnk\n  %575 = phi i64 [%542, %$56] ; # Bnd\n  %576 = phi i8* [%543, %$56] ; # Ca\n  %577 = phi i8* [%544, %$56] ; # In\n  %578 = phi i8* [%545, %$56] ; # Out\n  %579 = phi i8* [%546, %$56] ; # Err\n  %580 = phi i8* [%547, %$56] ; # Ctl\n  %581 = phi i8* [%548, %$56] ; # P\n; # (set $CtlFrames Ctl)\n  store i8* %580, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 64) to i8**)\n  br label %$37\n$37:\n  %582 = phi i64 [%207, %$14], [%569, %$58] ; # Exe\n  %583 = phi i64 [%208, %$14], [%570, %$58] ; # X\n  %584 = phi i64 [%209, %$14], [%571, %$58] ; # Val\n  %585 = phi i64 [%210, %$14], [%572, %$58] ; # Tag\n  %586 = phi i8* [%211, %$14], [%573, %$58] ; # Crt\n  %587 = phi i64 [0, %$14], [%574, %$58] ; # Lnk\n  %588 = phi i64 [0, %$14], [%575, %$58] ; # Bnd\n  %589 = phi i8* [%213, %$14], [%576, %$58] ; # Ca\n  %590 = phi i8* [%214, %$14], [%577, %$58] ; # In\n  %591 = phi i8* [%215, %$14], [%578, %$58] ; # Out\n  %592 = phi i8* [%216, %$14], [%579, %$58] ; # Err\n  %593 = phi i8* [%217, %$14], [%580, %$58] ; # Ctl\n; # (Src:)\n; # (saveCoEnv (Src:))\n  call void @saveCoEnv(i8* %58)\n; # (unless (setjmp (Src: (rst))) (set $Ret Val $Ret2 (if (pair X) @ ...\n; # (Src: (rst))\n  %594 = getelementptr i8, i8* %58, i32 352\n; # (setjmp (Src: (rst)))\n  %595 = call i32 @setjmp(i8* %594)\n  %596 = icmp ne i32 %595, 0\n  br i1 %596, label %$60, label %$59\n$59:\n  %597 = phi i64 [%582, %$37] ; # Exe\n  %598 = phi i64 [%583, %$37] ; # X\n  %599 = phi i64 [%584, %$37] ; # Val\n  %600 = phi i64 [%585, %$37] ; # Tag\n  %601 = phi i8* [%586, %$37] ; # Crt\n  %602 = phi i64 [%587, %$37] ; # Lnk\n  %603 = phi i64 [%588, %$37] ; # Bnd\n  %604 = phi i8* [%589, %$37] ; # Ca\n  %605 = phi i8* [%590, %$37] ; # In\n  %606 = phi i8* [%591, %$37] ; # Out\n  %607 = phi i8* [%592, %$37] ; # Err\n  %608 = phi i8* [%593, %$37] ; # Ctl\n; # (set $Ret Val $Ret2 (if (pair X) @ 0))\n  store i64 %599, i64* @$Ret\n; # (if (pair X) @ 0)\n; # (pair X)\n  %609 = and i64 %598, 15\n  %610 = icmp eq i64 %609, 0\n  br i1 %610, label %$61, label %$62\n$61:\n  %611 = phi i64 [%597, %$59] ; # Exe\n  %612 = phi i64 [%598, %$59] ; # X\n  %613 = phi i64 [%599, %$59] ; # Val\n  %614 = phi i64 [%600, %$59] ; # Tag\n  %615 = phi i8* [%601, %$59] ; # Crt\n  %616 = phi i64 [%602, %$59] ; # Lnk\n  %617 = phi i64 [%603, %$59] ; # Bnd\n  %618 = phi i8* [%604, %$59] ; # Ca\n  %619 = phi i8* [%605, %$59] ; # In\n  %620 = phi i8* [%606, %$59] ; # Out\n  %621 = phi i8* [%607, %$59] ; # Err\n  %622 = phi i8* [%608, %$59] ; # Ctl\n  br label %$63\n$62:\n  %623 = phi i64 [%597, %$59] ; # Exe\n  %624 = phi i64 [%598, %$59] ; # X\n  %625 = phi i64 [%599, %$59] ; # Val\n  %626 = phi i64 [%600, %$59] ; # Tag\n  %627 = phi i8* [%601, %$59] ; # Crt\n  %628 = phi i64 [%602, %$59] ; # Lnk\n  %629 = phi i64 [%603, %$59] ; # Bnd\n  %630 = phi i8* [%604, %$59] ; # Ca\n  %631 = phi i8* [%605, %$59] ; # In\n  %632 = phi i8* [%606, %$59] ; # Out\n  %633 = phi i8* [%607, %$59] ; # Err\n  %634 = phi i8* [%608, %$59] ; # Ctl\n  br label %$63\n$63:\n  %635 = phi i64 [%611, %$61], [%623, %$62] ; # Exe\n  %636 = phi i64 [%612, %$61], [%624, %$62] ; # X\n  %637 = phi i64 [%613, %$61], [%625, %$62] ; # Val\n  %638 = phi i64 [%614, %$61], [%626, %$62] ; # Tag\n  %639 = phi i8* [%615, %$61], [%627, %$62] ; # Crt\n  %640 = phi i64 [%616, %$61], [%628, %$62] ; # Lnk\n  %641 = phi i64 [%617, %$61], [%629, %$62] ; # Bnd\n  %642 = phi i8* [%618, %$61], [%630, %$62] ; # Ca\n  %643 = phi i8* [%619, %$61], [%631, %$62] ; # In\n  %644 = phi i8* [%620, %$61], [%632, %$62] ; # Out\n  %645 = phi i8* [%621, %$61], [%633, %$62] ; # Err\n  %646 = phi i8* [%622, %$61], [%634, %$62] ; # Ctl\n  %647 = phi i64 [%598, %$61], [0, %$62] ; # ->\n  store i64 %647, i64* @$Ret2\n; # (Dst: (rst))\n  %648 = getelementptr i8, i8* %212, i32 352\n; # (longjmp (Dst: (rst)) 1)\n  call void @longjmp(i8* %648, i32 1)\n  unreachable\n$60:\n  %649 = phi i64 [%582, %$37] ; # Exe\n  %650 = phi i64 [%583, %$37] ; # X\n  %651 = phi i64 [%584, %$37] ; # Val\n  %652 = phi i64 [%585, %$37] ; # Tag\n  %653 = phi i8* [%586, %$37] ; # Crt\n  %654 = phi i64 [%587, %$37] ; # Lnk\n  %655 = phi i64 [%588, %$37] ; # Bnd\n  %656 = phi i8* [%589, %$37] ; # Ca\n  %657 = phi i8* [%590, %$37] ; # In\n  %658 = phi i8* [%591, %$37] ; # Out\n  %659 = phi i8* [%592, %$37] ; # Err\n  %660 = phi i8* [%593, %$37] ; # Ctl\n; # (unless (t? (Src: tag)) (unless (and ((setq Org: (coroutine (Src:...\n; # (Src: tag)\n  %661 = ptrtoint i8* %58 to i64\n  %662 = inttoptr i64 %661 to i64*\n  %663 = load i64, i64* %662\n; # (t? (Src: tag))\n  %664 = icmp eq i64 %663, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %664, label %$65, label %$64\n$64:\n  %665 = phi i64 [%649, %$60] ; # Exe\n  %666 = phi i64 [%650, %$60] ; # X\n  %667 = phi i64 [%651, %$60] ; # Val\n  %668 = phi i64 [%652, %$60] ; # Tag\n  %669 = phi i8* [%653, %$60] ; # Crt\n  %670 = phi i64 [%654, %$60] ; # Lnk\n  %671 = phi i64 [%655, %$60] ; # Bnd\n  %672 = phi i8* [%656, %$60] ; # Ca\n  %673 = phi i8* [%657, %$60] ; # In\n  %674 = phi i8* [%658, %$60] ; # Out\n  %675 = phi i8* [%659, %$60] ; # Err\n  %676 = phi i8* [%660, %$60] ; # Ctl\n; # (unless (and ((setq Org: (coroutine (Src: org)))) (== (Org: tag) ...\n; # (and ((setq Org: (coroutine (Src: org)))) (== (Org: tag) (Src: ot...\n; # (Src: org)\n  %677 = getelementptr i8, i8* %58, i32 16\n  %678 = bitcast i8* %677 to i8**\n  %679 = load i8*, i8** %678\n; # ((setq Org: (coroutine (Src: org))))\n  %680 = icmp ne i8* %679, null\n  br i1 %680, label %$67, label %$66\n$67:\n  %681 = phi i64 [%665, %$64] ; # Exe\n  %682 = phi i64 [%666, %$64] ; # X\n  %683 = phi i64 [%667, %$64] ; # Val\n  %684 = phi i64 [%668, %$64] ; # Tag\n  %685 = phi i8* [%669, %$64] ; # Crt\n  %686 = phi i64 [%670, %$64] ; # Lnk\n  %687 = phi i64 [%671, %$64] ; # Bnd\n  %688 = phi i8* [%672, %$64] ; # Ca\n  %689 = phi i8* [%673, %$64] ; # In\n  %690 = phi i8* [%674, %$64] ; # Out\n  %691 = phi i8* [%675, %$64] ; # Err\n  %692 = phi i8* [%676, %$64] ; # Ctl\n; # (Org: tag)\n  %693 = ptrtoint i8* %679 to i64\n  %694 = inttoptr i64 %693 to i64*\n  %695 = load i64, i64* %694\n; # (Src: otg)\n  %696 = getelementptr i8, i8* %58, i32 24\n  %697 = ptrtoint i8* %696 to i64\n  %698 = inttoptr i64 %697 to i64*\n  %699 = load i64, i64* %698\n; # (== (Org: tag) (Src: otg))\n  %700 = icmp eq i64 %695, %699\n  br label %$66\n$66:\n  %701 = phi i64 [%665, %$64], [%681, %$67] ; # Exe\n  %702 = phi i64 [%666, %$64], [%682, %$67] ; # X\n  %703 = phi i64 [%667, %$64], [%683, %$67] ; # Val\n  %704 = phi i64 [%668, %$64], [%684, %$67] ; # Tag\n  %705 = phi i8* [%669, %$64], [%685, %$67] ; # Crt\n  %706 = phi i64 [%670, %$64], [%686, %$67] ; # Lnk\n  %707 = phi i64 [%671, %$64], [%687, %$67] ; # Bnd\n  %708 = phi i8* [%672, %$64], [%688, %$67] ; # Ca\n  %709 = phi i8* [%673, %$64], [%689, %$67] ; # In\n  %710 = phi i8* [%674, %$64], [%690, %$67] ; # Out\n  %711 = phi i8* [%675, %$64], [%691, %$67] ; # Err\n  %712 = phi i8* [%676, %$64], [%692, %$67] ; # Ctl\n  %713 = phi i1 [0, %$64], [%700, %$67] ; # ->\n  br i1 %713, label %$69, label %$68\n$68:\n  %714 = phi i64 [%701, %$66] ; # Exe\n  %715 = phi i64 [%702, %$66] ; # X\n  %716 = phi i64 [%703, %$66] ; # Val\n  %717 = phi i64 [%704, %$66] ; # Tag\n  %718 = phi i8* [%705, %$66] ; # Crt\n  %719 = phi i64 [%706, %$66] ; # Lnk\n  %720 = phi i64 [%707, %$66] ; # Bnd\n  %721 = phi i8* [%708, %$66] ; # Ca\n  %722 = phi i8* [%709, %$66] ; # In\n  %723 = phi i8* [%710, %$66] ; # Out\n  %724 = phi i8* [%711, %$66] ; # Err\n  %725 = phi i8* [%712, %$66] ; # Ctl\n; # (Src:)\n; # (loadCoEnv (Src:) 0)\n  %726 = call i64 @loadCoEnv(i8* %58, i64 0)\n; # (Src: otg)\n  %727 = getelementptr i8, i8* %58, i32 24\n  %728 = ptrtoint i8* %727 to i64\n  %729 = inttoptr i64 %728 to i64*\n  %730 = load i64, i64* %729\n; # (coErr Exe (Src: otg))\n  call void @coErr(i64 %714, i64 %730)\n  unreachable\n$69:\n  %731 = phi i64 [%701, %$66] ; # Exe\n  %732 = phi i64 [%702, %$66] ; # X\n  %733 = phi i64 [%703, %$66] ; # Val\n  %734 = phi i64 [%704, %$66] ; # Tag\n  %735 = phi i8* [%705, %$66] ; # Crt\n  %736 = phi i64 [%706, %$66] ; # Lnk\n  %737 = phi i64 [%707, %$66] ; # Bnd\n  %738 = phi i8* [%708, %$66] ; # Ca\n  %739 = phi i8* [%709, %$66] ; # In\n  %740 = phi i8* [%710, %$66] ; # Out\n  %741 = phi i8* [%711, %$66] ; # Err\n  %742 = phi i8* [%712, %$66] ; # Ctl\n; # (let P (Org: (env $CtlFrames i8*)) (Src: ctl P) (while Ctl (let C...\n; # (Org: (env $CtlFrames i8*))\n  %743 = getelementptr i8, i8* %679, i32 152\n  %744 = getelementptr i8, i8* %743, i32 64\n  %745 = bitcast i8* %744 to i8**\n  %746 = load i8*, i8** %745\n; # (Src: ctl P)\n  %747 = getelementptr i8, i8* %58, i32 104\n  %748 = bitcast i8* %747 to i8**\n  store i8* %746, i8** %748\n; # (while Ctl (let Ctl: (ctFrame Ctl) (setq Ctl (Ctl: link)) (Ctl: l...\n  br label %$70\n$70:\n  %749 = phi i64 [%731, %$69], [%763, %$71] ; # Exe\n  %750 = phi i64 [%732, %$69], [%764, %$71] ; # X\n  %751 = phi i64 [%733, %$69], [%765, %$71] ; # Val\n  %752 = phi i64 [%734, %$69], [%766, %$71] ; # Tag\n  %753 = phi i8* [%735, %$69], [%767, %$71] ; # Crt\n  %754 = phi i64 [%736, %$69], [%768, %$71] ; # Lnk\n  %755 = phi i64 [%737, %$69], [%769, %$71] ; # Bnd\n  %756 = phi i8* [%738, %$69], [%770, %$71] ; # Ca\n  %757 = phi i8* [%739, %$69], [%771, %$71] ; # In\n  %758 = phi i8* [%740, %$69], [%772, %$71] ; # Out\n  %759 = phi i8* [%741, %$69], [%773, %$71] ; # Err\n  %760 = phi i8* [%742, %$69], [%777, %$71] ; # Ctl\n  %761 = phi i8* [%746, %$69], [%774, %$71] ; # P\n  %762 = icmp ne i8* %760, null\n  br i1 %762, label %$71, label %$72\n$71:\n  %763 = phi i64 [%749, %$70] ; # Exe\n  %764 = phi i64 [%750, %$70] ; # X\n  %765 = phi i64 [%751, %$70] ; # Val\n  %766 = phi i64 [%752, %$70] ; # Tag\n  %767 = phi i8* [%753, %$70] ; # Crt\n  %768 = phi i64 [%754, %$70] ; # Lnk\n  %769 = phi i64 [%755, %$70] ; # Bnd\n  %770 = phi i8* [%756, %$70] ; # Ca\n  %771 = phi i8* [%757, %$70] ; # In\n  %772 = phi i8* [%758, %$70] ; # Out\n  %773 = phi i8* [%759, %$70] ; # Err\n  %774 = phi i8* [%760, %$70] ; # Ctl\n  %775 = phi i8* [%761, %$70] ; # P\n; # (let Ctl: (ctFrame Ctl) (setq Ctl (Ctl: link)) (Ctl: link P) (set...\n; # (Ctl: link)\n  %776 = bitcast i8* %774 to i8**\n  %777 = load i8*, i8** %776\n; # (Ctl: link P)\n  %778 = bitcast i8* %774 to i8**\n  store i8* %775, i8** %778\n; # (Ctl:)\n  br label %$70\n$72:\n  %779 = phi i64 [%749, %$70] ; # Exe\n  %780 = phi i64 [%750, %$70] ; # X\n  %781 = phi i64 [%751, %$70] ; # Val\n  %782 = phi i64 [%752, %$70] ; # Tag\n  %783 = phi i8* [%753, %$70] ; # Crt\n  %784 = phi i64 [%754, %$70] ; # Lnk\n  %785 = phi i64 [%755, %$70] ; # Bnd\n  %786 = phi i8* [%756, %$70] ; # Ca\n  %787 = phi i8* [%757, %$70] ; # In\n  %788 = phi i8* [%758, %$70] ; # Out\n  %789 = phi i8* [%759, %$70] ; # Err\n  %790 = phi i8* [%760, %$70] ; # Ctl\n  %791 = phi i8* [%761, %$70] ; # P\n; # (Src: (env $CtlFrames i8*) P)\n  %792 = getelementptr i8, i8* %58, i32 152\n  %793 = getelementptr i8, i8* %792, i32 64\n  %794 = bitcast i8* %793 to i8**\n  store i8* %791, i8** %794\n; # (let P (Org: (env $ErrFrames i8*)) (Src: err P) (while Err (let E...\n; # (Org: (env $ErrFrames i8*))\n  %795 = getelementptr i8, i8* %679, i32 152\n  %796 = getelementptr i8, i8* %795, i32 56\n  %797 = bitcast i8* %796 to i8**\n  %798 = load i8*, i8** %797\n; # (Src: err P)\n  %799 = getelementptr i8, i8* %58, i32 96\n  %800 = bitcast i8* %799 to i8**\n  store i8* %798, i8** %800\n; # (while Err (let Err: (ctFrame Err) (setq Err (Err: link)) (Err: l...\n  br label %$73\n$73:\n  %801 = phi i64 [%779, %$72], [%815, %$74] ; # Exe\n  %802 = phi i64 [%780, %$72], [%816, %$74] ; # X\n  %803 = phi i64 [%781, %$72], [%817, %$74] ; # Val\n  %804 = phi i64 [%782, %$72], [%818, %$74] ; # Tag\n  %805 = phi i8* [%783, %$72], [%819, %$74] ; # Crt\n  %806 = phi i64 [%784, %$72], [%820, %$74] ; # Lnk\n  %807 = phi i64 [%785, %$72], [%821, %$74] ; # Bnd\n  %808 = phi i8* [%786, %$72], [%822, %$74] ; # Ca\n  %809 = phi i8* [%787, %$72], [%823, %$74] ; # In\n  %810 = phi i8* [%788, %$72], [%824, %$74] ; # Out\n  %811 = phi i8* [%789, %$72], [%829, %$74] ; # Err\n  %812 = phi i8* [%790, %$72], [%826, %$74] ; # Ctl\n  %813 = phi i8* [%798, %$72], [%825, %$74] ; # P\n  %814 = icmp ne i8* %811, null\n  br i1 %814, label %$74, label %$75\n$74:\n  %815 = phi i64 [%801, %$73] ; # Exe\n  %816 = phi i64 [%802, %$73] ; # X\n  %817 = phi i64 [%803, %$73] ; # Val\n  %818 = phi i64 [%804, %$73] ; # Tag\n  %819 = phi i8* [%805, %$73] ; # Crt\n  %820 = phi i64 [%806, %$73] ; # Lnk\n  %821 = phi i64 [%807, %$73] ; # Bnd\n  %822 = phi i8* [%808, %$73] ; # Ca\n  %823 = phi i8* [%809, %$73] ; # In\n  %824 = phi i8* [%810, %$73] ; # Out\n  %825 = phi i8* [%811, %$73] ; # Err\n  %826 = phi i8* [%812, %$73] ; # Ctl\n  %827 = phi i8* [%813, %$73] ; # P\n; # (let Err: (ctFrame Err) (setq Err (Err: link)) (Err: link P) (set...\n; # (Err: link)\n  %828 = bitcast i8* %825 to i8**\n  %829 = load i8*, i8** %828\n; # (Err: link P)\n  %830 = bitcast i8* %825 to i8**\n  store i8* %827, i8** %830\n; # (Err:)\n  br label %$73\n$75:\n  %831 = phi i64 [%801, %$73] ; # Exe\n  %832 = phi i64 [%802, %$73] ; # X\n  %833 = phi i64 [%803, %$73] ; # Val\n  %834 = phi i64 [%804, %$73] ; # Tag\n  %835 = phi i8* [%805, %$73] ; # Crt\n  %836 = phi i64 [%806, %$73] ; # Lnk\n  %837 = phi i64 [%807, %$73] ; # Bnd\n  %838 = phi i8* [%808, %$73] ; # Ca\n  %839 = phi i8* [%809, %$73] ; # In\n  %840 = phi i8* [%810, %$73] ; # Out\n  %841 = phi i8* [%811, %$73] ; # Err\n  %842 = phi i8* [%812, %$73] ; # Ctl\n  %843 = phi i8* [%813, %$73] ; # P\n; # (Src: (env $ErrFrames i8*) P)\n  %844 = getelementptr i8, i8* %58, i32 152\n  %845 = getelementptr i8, i8* %844, i32 56\n  %846 = bitcast i8* %845 to i8**\n  store i8* %843, i8** %846\n; # (let P (Org: (env $OutFrames i8*)) (Src: out P) (until (== Out (v...\n; # (Org: (env $OutFrames i8*))\n  %847 = getelementptr i8, i8* %679, i32 152\n  %848 = getelementptr i8, i8* %847, i32 48\n  %849 = bitcast i8* %848 to i8**\n  %850 = load i8*, i8** %849\n; # (Src: out P)\n  %851 = getelementptr i8, i8* %58, i32 88\n  %852 = bitcast i8* %851 to i8**\n  store i8* %850, i8** %852\n; # (until (== Out (val $Stdout)) (let Out: (ioFrame Out) (setq Out (...\n  br label %$76\n$76:\n  %853 = phi i64 [%831, %$75], [%868, %$77] ; # Exe\n  %854 = phi i64 [%832, %$75], [%869, %$77] ; # X\n  %855 = phi i64 [%833, %$75], [%870, %$77] ; # Val\n  %856 = phi i64 [%834, %$75], [%871, %$77] ; # Tag\n  %857 = phi i8* [%835, %$75], [%872, %$77] ; # Crt\n  %858 = phi i64 [%836, %$75], [%873, %$77] ; # Lnk\n  %859 = phi i64 [%837, %$75], [%874, %$77] ; # Bnd\n  %860 = phi i8* [%838, %$75], [%875, %$77] ; # Ca\n  %861 = phi i8* [%839, %$75], [%876, %$77] ; # In\n  %862 = phi i8* [%840, %$75], [%882, %$77] ; # Out\n  %863 = phi i8* [%841, %$75], [%878, %$77] ; # Err\n  %864 = phi i8* [%842, %$75], [%879, %$77] ; # Ctl\n  %865 = phi i8* [%850, %$75], [%877, %$77] ; # P\n; # (val $Stdout)\n  %866 = load i8*, i8** @$Stdout\n; # (== Out (val $Stdout))\n  %867 = icmp eq i8* %862, %866\n  br i1 %867, label %$78, label %$77\n$77:\n  %868 = phi i64 [%853, %$76] ; # Exe\n  %869 = phi i64 [%854, %$76] ; # X\n  %870 = phi i64 [%855, %$76] ; # Val\n  %871 = phi i64 [%856, %$76] ; # Tag\n  %872 = phi i8* [%857, %$76] ; # Crt\n  %873 = phi i64 [%858, %$76] ; # Lnk\n  %874 = phi i64 [%859, %$76] ; # Bnd\n  %875 = phi i8* [%860, %$76] ; # Ca\n  %876 = phi i8* [%861, %$76] ; # In\n  %877 = phi i8* [%862, %$76] ; # Out\n  %878 = phi i8* [%863, %$76] ; # Err\n  %879 = phi i8* [%864, %$76] ; # Ctl\n  %880 = phi i8* [%865, %$76] ; # P\n; # (let Out: (ioFrame Out) (setq Out (Out: link)) (Out: link P) (set...\n; # (Out: link)\n  %881 = bitcast i8* %877 to i8**\n  %882 = load i8*, i8** %881\n; # (Out: link P)\n  %883 = bitcast i8* %877 to i8**\n  store i8* %880, i8** %883\n; # (Out:)\n  br label %$76\n$78:\n  %884 = phi i64 [%853, %$76] ; # Exe\n  %885 = phi i64 [%854, %$76] ; # X\n  %886 = phi i64 [%855, %$76] ; # Val\n  %887 = phi i64 [%856, %$76] ; # Tag\n  %888 = phi i8* [%857, %$76] ; # Crt\n  %889 = phi i64 [%858, %$76] ; # Lnk\n  %890 = phi i64 [%859, %$76] ; # Bnd\n  %891 = phi i8* [%860, %$76] ; # Ca\n  %892 = phi i8* [%861, %$76] ; # In\n  %893 = phi i8* [%862, %$76] ; # Out\n  %894 = phi i8* [%863, %$76] ; # Err\n  %895 = phi i8* [%864, %$76] ; # Ctl\n  %896 = phi i8* [%865, %$76] ; # P\n; # (Src: (env $OutFrames i8*) P)\n  %897 = getelementptr i8, i8* %58, i32 152\n  %898 = getelementptr i8, i8* %897, i32 48\n  %899 = bitcast i8* %898 to i8**\n  store i8* %896, i8** %899\n; # (let P (Org: (env $InFrames i8*)) (Src: in P) (until (== In (val ...\n; # (Org: (env $InFrames i8*))\n  %900 = getelementptr i8, i8* %679, i32 152\n  %901 = getelementptr i8, i8* %900, i32 40\n  %902 = bitcast i8* %901 to i8**\n  %903 = load i8*, i8** %902\n; # (Src: in P)\n  %904 = getelementptr i8, i8* %58, i32 80\n  %905 = bitcast i8* %904 to i8**\n  store i8* %903, i8** %905\n; # (until (== In (val $Stdin)) (let In: (ioFrame In) (setq In (In: l...\n  br label %$79\n$79:\n  %906 = phi i64 [%884, %$78], [%921, %$80] ; # Exe\n  %907 = phi i64 [%885, %$78], [%922, %$80] ; # X\n  %908 = phi i64 [%886, %$78], [%923, %$80] ; # Val\n  %909 = phi i64 [%887, %$78], [%924, %$80] ; # Tag\n  %910 = phi i8* [%888, %$78], [%925, %$80] ; # Crt\n  %911 = phi i64 [%889, %$78], [%926, %$80] ; # Lnk\n  %912 = phi i64 [%890, %$78], [%927, %$80] ; # Bnd\n  %913 = phi i8* [%891, %$78], [%928, %$80] ; # Ca\n  %914 = phi i8* [%892, %$78], [%935, %$80] ; # In\n  %915 = phi i8* [%893, %$78], [%930, %$80] ; # Out\n  %916 = phi i8* [%894, %$78], [%931, %$80] ; # Err\n  %917 = phi i8* [%895, %$78], [%932, %$80] ; # Ctl\n  %918 = phi i8* [%903, %$78], [%929, %$80] ; # P\n; # (val $Stdin)\n  %919 = load i8*, i8** @$Stdin\n; # (== In (val $Stdin))\n  %920 = icmp eq i8* %914, %919\n  br i1 %920, label %$81, label %$80\n$80:\n  %921 = phi i64 [%906, %$79] ; # Exe\n  %922 = phi i64 [%907, %$79] ; # X\n  %923 = phi i64 [%908, %$79] ; # Val\n  %924 = phi i64 [%909, %$79] ; # Tag\n  %925 = phi i8* [%910, %$79] ; # Crt\n  %926 = phi i64 [%911, %$79] ; # Lnk\n  %927 = phi i64 [%912, %$79] ; # Bnd\n  %928 = phi i8* [%913, %$79] ; # Ca\n  %929 = phi i8* [%914, %$79] ; # In\n  %930 = phi i8* [%915, %$79] ; # Out\n  %931 = phi i8* [%916, %$79] ; # Err\n  %932 = phi i8* [%917, %$79] ; # Ctl\n  %933 = phi i8* [%918, %$79] ; # P\n; # (let In: (ioFrame In) (setq In (In: link)) (In: link P) (setq P (...\n; # (In: link)\n  %934 = bitcast i8* %929 to i8**\n  %935 = load i8*, i8** %934\n; # (In: link P)\n  %936 = bitcast i8* %929 to i8**\n  store i8* %933, i8** %936\n; # (In:)\n  br label %$79\n$81:\n  %937 = phi i64 [%906, %$79] ; # Exe\n  %938 = phi i64 [%907, %$79] ; # X\n  %939 = phi i64 [%908, %$79] ; # Val\n  %940 = phi i64 [%909, %$79] ; # Tag\n  %941 = phi i8* [%910, %$79] ; # Crt\n  %942 = phi i64 [%911, %$79] ; # Lnk\n  %943 = phi i64 [%912, %$79] ; # Bnd\n  %944 = phi i8* [%913, %$79] ; # Ca\n  %945 = phi i8* [%914, %$79] ; # In\n  %946 = phi i8* [%915, %$79] ; # Out\n  %947 = phi i8* [%916, %$79] ; # Err\n  %948 = phi i8* [%917, %$79] ; # Ctl\n  %949 = phi i8* [%918, %$79] ; # P\n; # (Src: (env $InFrames i8*) P)\n  %950 = getelementptr i8, i8* %58, i32 152\n  %951 = getelementptr i8, i8* %950, i32 40\n  %952 = bitcast i8* %951 to i8**\n  store i8* %949, i8** %952\n; # (let P (Org: (env $Catch i8*)) (Src: ca P) (while Ca (let Ca: (ca...\n; # (Org: (env $Catch i8*))\n  %953 = getelementptr i8, i8* %679, i32 152\n  %954 = getelementptr i8, i8* %953, i32 32\n  %955 = bitcast i8* %954 to i8**\n  %956 = load i8*, i8** %955\n; # (Src: ca P)\n  %957 = getelementptr i8, i8* %58, i32 72\n  %958 = bitcast i8* %957 to i8**\n  store i8* %956, i8** %958\n; # (while Ca (let Ca: (caFrame Ca) (setq Ca (Ca: link)) (Ca: link P)...\n  br label %$82\n$82:\n  %959 = phi i64 [%937, %$81], [%973, %$83] ; # Exe\n  %960 = phi i64 [%938, %$81], [%974, %$83] ; # X\n  %961 = phi i64 [%939, %$81], [%975, %$83] ; # Val\n  %962 = phi i64 [%940, %$81], [%976, %$83] ; # Tag\n  %963 = phi i8* [%941, %$81], [%977, %$83] ; # Crt\n  %964 = phi i64 [%942, %$81], [%978, %$83] ; # Lnk\n  %965 = phi i64 [%943, %$81], [%979, %$83] ; # Bnd\n  %966 = phi i8* [%944, %$81], [%987, %$83] ; # Ca\n  %967 = phi i8* [%945, %$81], [%981, %$83] ; # In\n  %968 = phi i8* [%946, %$81], [%982, %$83] ; # Out\n  %969 = phi i8* [%947, %$81], [%983, %$83] ; # Err\n  %970 = phi i8* [%948, %$81], [%984, %$83] ; # Ctl\n  %971 = phi i8* [%956, %$81], [%980, %$83] ; # P\n  %972 = icmp ne i8* %966, null\n  br i1 %972, label %$83, label %$84\n$83:\n  %973 = phi i64 [%959, %$82] ; # Exe\n  %974 = phi i64 [%960, %$82] ; # X\n  %975 = phi i64 [%961, %$82] ; # Val\n  %976 = phi i64 [%962, %$82] ; # Tag\n  %977 = phi i8* [%963, %$82] ; # Crt\n  %978 = phi i64 [%964, %$82] ; # Lnk\n  %979 = phi i64 [%965, %$82] ; # Bnd\n  %980 = phi i8* [%966, %$82] ; # Ca\n  %981 = phi i8* [%967, %$82] ; # In\n  %982 = phi i8* [%968, %$82] ; # Out\n  %983 = phi i8* [%969, %$82] ; # Err\n  %984 = phi i8* [%970, %$82] ; # Ctl\n  %985 = phi i8* [%971, %$82] ; # P\n; # (let Ca: (caFrame Ca) (setq Ca (Ca: link)) (Ca: link P) (setq P (...\n; # (Ca: link)\n  %986 = bitcast i8* %980 to i8**\n  %987 = load i8*, i8** %986\n; # (Ca: link P)\n  %988 = bitcast i8* %980 to i8**\n  store i8* %985, i8** %988\n; # (Ca:)\n  br label %$82\n$84:\n  %989 = phi i64 [%959, %$82] ; # Exe\n  %990 = phi i64 [%960, %$82] ; # X\n  %991 = phi i64 [%961, %$82] ; # Val\n  %992 = phi i64 [%962, %$82] ; # Tag\n  %993 = phi i8* [%963, %$82] ; # Crt\n  %994 = phi i64 [%964, %$82] ; # Lnk\n  %995 = phi i64 [%965, %$82] ; # Bnd\n  %996 = phi i8* [%966, %$82] ; # Ca\n  %997 = phi i8* [%967, %$82] ; # In\n  %998 = phi i8* [%968, %$82] ; # Out\n  %999 = phi i8* [%969, %$82] ; # Err\n  %1000 = phi i8* [%970, %$82] ; # Ctl\n  %1001 = phi i8* [%971, %$82] ; # P\n; # (Src: (env $Catch i8*) P)\n  %1002 = getelementptr i8, i8* %58, i32 152\n  %1003 = getelementptr i8, i8* %1002, i32 32\n  %1004 = bitcast i8* %1003 to i8**\n  store i8* %1001, i8** %1004\n; # (let P (Src: bnd) (set 3 P (Org: (env $Bind any))) (while Bnd (le...\n; # (Src: bnd)\n  %1005 = getelementptr i8, i8* %58, i32 64\n  %1006 = ptrtoint i8* %1005 to i64\n  %1007 = inttoptr i64 %1006 to i64*\n  %1008 = load i64, i64* %1007\n; # (set 3 P (Org: (env $Bind any)))\n; # (Org: (env $Bind any))\n  %1009 = getelementptr i8, i8* %679, i32 152\n  %1010 = getelementptr i8, i8* %1009, i32 8\n  %1011 = ptrtoint i8* %1010 to i64\n  %1012 = inttoptr i64 %1011 to i64*\n  %1013 = load i64, i64* %1012\n  %1014 = inttoptr i64 %1008 to i64*\n  %1015 = getelementptr i64, i64* %1014, i32 2\n  store i64 %1013, i64* %1015\n; # (while Bnd (let Q Bnd (xchg (val 2 Q) Q) (setq Bnd (val 3 Q)) (se...\n  br label %$85\n$85:\n  %1016 = phi i64 [%989, %$84], [%1030, %$86] ; # Exe\n  %1017 = phi i64 [%990, %$84], [%1031, %$86] ; # X\n  %1018 = phi i64 [%991, %$84], [%1032, %$86] ; # Val\n  %1019 = phi i64 [%992, %$84], [%1033, %$86] ; # Tag\n  %1020 = phi i8* [%993, %$84], [%1034, %$86] ; # Crt\n  %1021 = phi i64 [%994, %$84], [%1035, %$86] ; # Lnk\n  %1022 = phi i64 [%995, %$84], [%1052, %$86] ; # Bnd\n  %1023 = phi i8* [%996, %$84], [%1037, %$86] ; # Ca\n  %1024 = phi i8* [%997, %$84], [%1038, %$86] ; # In\n  %1025 = phi i8* [%998, %$84], [%1039, %$86] ; # Out\n  %1026 = phi i8* [%999, %$84], [%1040, %$86] ; # Err\n  %1027 = phi i8* [%1000, %$84], [%1041, %$86] ; # Ctl\n  %1028 = phi i64 [%1008, %$84], [%1036, %$86] ; # P\n  %1029 = icmp ne i64 %1022, 0\n  br i1 %1029, label %$86, label %$87\n$86:\n  %1030 = phi i64 [%1016, %$85] ; # Exe\n  %1031 = phi i64 [%1017, %$85] ; # X\n  %1032 = phi i64 [%1018, %$85] ; # Val\n  %1033 = phi i64 [%1019, %$85] ; # Tag\n  %1034 = phi i8* [%1020, %$85] ; # Crt\n  %1035 = phi i64 [%1021, %$85] ; # Lnk\n  %1036 = phi i64 [%1022, %$85] ; # Bnd\n  %1037 = phi i8* [%1023, %$85] ; # Ca\n  %1038 = phi i8* [%1024, %$85] ; # In\n  %1039 = phi i8* [%1025, %$85] ; # Out\n  %1040 = phi i8* [%1026, %$85] ; # Err\n  %1041 = phi i8* [%1027, %$85] ; # Ctl\n  %1042 = phi i64 [%1028, %$85] ; # P\n; # (let Q Bnd (xchg (val 2 Q) Q) (setq Bnd (val 3 Q)) (set 3 Q P) (s...\n; # (val 2 Q)\n  %1043 = inttoptr i64 %1036 to i64*\n  %1044 = getelementptr i64, i64* %1043, i32 1\n  %1045 = load i64, i64* %1044\n; # (xchg (val 2 Q) Q)\n  %1046 = inttoptr i64 %1045 to i64*\n  %1047 = load i64, i64* %1046\n  %1048 = inttoptr i64 %1036 to i64*\n  %1049 = load i64, i64* %1048\n  store i64 %1049, i64* %1046\n  store i64 %1047, i64* %1048\n; # (val 3 Q)\n  %1050 = inttoptr i64 %1036 to i64*\n  %1051 = getelementptr i64, i64* %1050, i32 2\n  %1052 = load i64, i64* %1051\n; # (set 3 Q P)\n  %1053 = inttoptr i64 %1036 to i64*\n  %1054 = getelementptr i64, i64* %1053, i32 2\n  store i64 %1042, i64* %1054\n  br label %$85\n$87:\n  %1055 = phi i64 [%1016, %$85] ; # Exe\n  %1056 = phi i64 [%1017, %$85] ; # X\n  %1057 = phi i64 [%1018, %$85] ; # Val\n  %1058 = phi i64 [%1019, %$85] ; # Tag\n  %1059 = phi i8* [%1020, %$85] ; # Crt\n  %1060 = phi i64 [%1021, %$85] ; # Lnk\n  %1061 = phi i64 [%1022, %$85] ; # Bnd\n  %1062 = phi i8* [%1023, %$85] ; # Ca\n  %1063 = phi i8* [%1024, %$85] ; # In\n  %1064 = phi i8* [%1025, %$85] ; # Out\n  %1065 = phi i8* [%1026, %$85] ; # Err\n  %1066 = phi i8* [%1027, %$85] ; # Ctl\n  %1067 = phi i64 [%1028, %$85] ; # P\n; # (Src: (env $Bind any) P)\n  %1068 = getelementptr i8, i8* %58, i32 152\n  %1069 = getelementptr i8, i8* %1068, i32 8\n  %1070 = ptrtoint i8* %1069 to i64\n  %1071 = inttoptr i64 %1070 to i64*\n  store i64 %1067, i64* %1071\n; # (let P (Org: (env $Link any)) (Src: lnk P) (while Lnk (let Q Lnk ...\n; # (Org: (env $Link any))\n  %1072 = getelementptr i8, i8* %679, i32 152\n  %1073 = ptrtoint i8* %1072 to i64\n  %1074 = inttoptr i64 %1073 to i64*\n  %1075 = load i64, i64* %1074\n; # (Src: lnk P)\n  %1076 = getelementptr i8, i8* %58, i32 56\n  %1077 = ptrtoint i8* %1076 to i64\n  %1078 = inttoptr i64 %1077 to i64*\n  store i64 %1075, i64* %1078\n; # (while Lnk (let Q Lnk (setq Lnk (val 2 Q)) (set 2 Q P) (setq P Q)...\n  br label %$88\n$88:\n  %1079 = phi i64 [%1055, %$87], [%1093, %$89] ; # Exe\n  %1080 = phi i64 [%1056, %$87], [%1094, %$89] ; # X\n  %1081 = phi i64 [%1057, %$87], [%1095, %$89] ; # Val\n  %1082 = phi i64 [%1058, %$87], [%1096, %$89] ; # Tag\n  %1083 = phi i8* [%1059, %$87], [%1097, %$89] ; # Crt\n  %1084 = phi i64 [%1060, %$87], [%1108, %$89] ; # Lnk\n  %1085 = phi i64 [%1061, %$87], [%1099, %$89] ; # Bnd\n  %1086 = phi i8* [%1062, %$87], [%1100, %$89] ; # Ca\n  %1087 = phi i8* [%1063, %$87], [%1101, %$89] ; # In\n  %1088 = phi i8* [%1064, %$87], [%1102, %$89] ; # Out\n  %1089 = phi i8* [%1065, %$87], [%1103, %$89] ; # Err\n  %1090 = phi i8* [%1066, %$87], [%1104, %$89] ; # Ctl\n  %1091 = phi i64 [%1075, %$87], [%1098, %$89] ; # P\n  %1092 = icmp ne i64 %1084, 0\n  br i1 %1092, label %$89, label %$90\n$89:\n  %1093 = phi i64 [%1079, %$88] ; # Exe\n  %1094 = phi i64 [%1080, %$88] ; # X\n  %1095 = phi i64 [%1081, %$88] ; # Val\n  %1096 = phi i64 [%1082, %$88] ; # Tag\n  %1097 = phi i8* [%1083, %$88] ; # Crt\n  %1098 = phi i64 [%1084, %$88] ; # Lnk\n  %1099 = phi i64 [%1085, %$88] ; # Bnd\n  %1100 = phi i8* [%1086, %$88] ; # Ca\n  %1101 = phi i8* [%1087, %$88] ; # In\n  %1102 = phi i8* [%1088, %$88] ; # Out\n  %1103 = phi i8* [%1089, %$88] ; # Err\n  %1104 = phi i8* [%1090, %$88] ; # Ctl\n  %1105 = phi i64 [%1091, %$88] ; # P\n; # (let Q Lnk (setq Lnk (val 2 Q)) (set 2 Q P) (setq P Q))\n; # (val 2 Q)\n  %1106 = inttoptr i64 %1098 to i64*\n  %1107 = getelementptr i64, i64* %1106, i32 1\n  %1108 = load i64, i64* %1107\n; # (set 2 Q P)\n  %1109 = inttoptr i64 %1098 to i64*\n  %1110 = getelementptr i64, i64* %1109, i32 1\n  store i64 %1105, i64* %1110\n  br label %$88\n$90:\n  %1111 = phi i64 [%1079, %$88] ; # Exe\n  %1112 = phi i64 [%1080, %$88] ; # X\n  %1113 = phi i64 [%1081, %$88] ; # Val\n  %1114 = phi i64 [%1082, %$88] ; # Tag\n  %1115 = phi i8* [%1083, %$88] ; # Crt\n  %1116 = phi i64 [%1084, %$88] ; # Lnk\n  %1117 = phi i64 [%1085, %$88] ; # Bnd\n  %1118 = phi i8* [%1086, %$88] ; # Ca\n  %1119 = phi i8* [%1087, %$88] ; # In\n  %1120 = phi i8* [%1088, %$88] ; # Out\n  %1121 = phi i8* [%1089, %$88] ; # Err\n  %1122 = phi i8* [%1090, %$88] ; # Ctl\n  %1123 = phi i64 [%1091, %$88] ; # P\n; # (Src: (env $Link any) P)\n  %1124 = getelementptr i8, i8* %58, i32 152\n  %1125 = ptrtoint i8* %1124 to i64\n  %1126 = inttoptr i64 %1125 to i64*\n  store i64 %1123, i64* %1126\n  br label %$65\n$65:\n  %1127 = phi i64 [%649, %$60], [%1111, %$90] ; # Exe\n  %1128 = phi i64 [%650, %$60], [%1112, %$90] ; # X\n  %1129 = phi i64 [%651, %$60], [%1113, %$90] ; # Val\n  %1130 = phi i64 [%652, %$60], [%1114, %$90] ; # Tag\n  %1131 = phi i8* [%653, %$60], [%1115, %$90] ; # Crt\n  %1132 = phi i64 [%654, %$60], [%1116, %$90] ; # Lnk\n  %1133 = phi i64 [%655, %$60], [%1117, %$90] ; # Bnd\n  %1134 = phi i8* [%656, %$60], [%1118, %$90] ; # Ca\n  %1135 = phi i8* [%657, %$60], [%1119, %$90] ; # In\n  %1136 = phi i8* [%658, %$60], [%1120, %$90] ; # Out\n  %1137 = phi i8* [%659, %$60], [%1121, %$90] ; # Err\n  %1138 = phi i8* [%660, %$60], [%1122, %$90] ; # Ctl\n; # (Src:)\n; # (val $Ret2)\n  %1139 = load i64, i64* @$Ret2\n; # (loadCoEnv (Src:) (val $Ret2))\n  %1140 = call i64 @loadCoEnv(i8* %58, i64 %1139)\n; # (drop *Safe)\n  %1141 = inttoptr i64 %24 to i64*\n  %1142 = getelementptr i64, i64* %1141, i32 1\n  %1143 = load i64, i64* %1142\n  %1144 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1143, i64* %1144\n  ret i64 %1140\n}\n\ndefine i64 @brkLoad(i64) align 8 {\n$1:\n; # (when (and ((inFile (val (val $InFiles))) tty) ((outFile (val 2 (...\n; # (and ((inFile (val (val $InFiles))) tty) ((outFile (val 2 (val $O...\n; # (val $InFiles)\n  %1 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %2 = load i8*, i8** %1\n; # ((inFile (val (val $InFiles))) tty)\n  %3 = getelementptr i8, i8* %2, i32 4128\n  %4 = bitcast i8* %3 to i1*\n  %5 = load i1, i1* %4\n  br i1 %5, label %$3, label %$2\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n; # (val $OutFiles)\n  %7 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %8 = getelementptr i8*, i8** %7, i32 1\n  %9 = load i8*, i8** %8\n; # ((outFile (val 2 (val $OutFiles))) tty)\n  %10 = getelementptr i8, i8* %9, i32 4104\n  %11 = bitcast i8* %10 to i1*\n  %12 = load i1, i1* %11\n  br i1 %12, label %$4, label %$2\n$4:\n  %13 = phi i64 [%6, %$3] ; # Exe\n; # (val $Break)\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 16) to i64) to i64*\n  %15 = load i64, i64* %14\n; # (=0 (val $Break))\n  %16 = icmp eq i64 %15, 0\n  br label %$2\n$2:\n  %17 = phi i64 [%0, %$1], [%6, %$3], [%13, %$4] ; # Exe\n  %18 = phi i1 [0, %$1], [0, %$3], [%16, %$4] ; # ->\n  br i1 %18, label %$5, label %$6\n$5:\n  %19 = phi i64 [%17, %$2] ; # Exe\n; # (let P (val $Bind) (setq P (push (val $At) $At P 0)) (setq P (pus...\n; # (val $Bind)\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %21 = load i64, i64* %20\n; # (val $At)\n  %22 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %23 = load i64, i64* %22\n; # (push (val $At) $At P 0)\n  %24 = alloca i64, i64 4, align 16\n  %25 = ptrtoint i64* %24 to i64\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %23, i64* %26\n  %27 = add i64 %25, 8\n  %28 = inttoptr i64 %27 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), i64* %28\n  %29 = add i64 %25, 16\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %21, i64* %30\n  %31 = add i64 %25, 24\n  %32 = inttoptr i64 %31 to i64*\n  store i64 0, i64* %32\n; # (val $Up)\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  %34 = load i64, i64* %33\n; # (push (val $Up) $Up P)\n  %35 = alloca i64, i64 3, align 16\n  %36 = ptrtoint i64* %35 to i64\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %34, i64* %37\n  %38 = add i64 %36, 8\n  %39 = inttoptr i64 %38 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64), i64* %39\n  %40 = add i64 %36, 16\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %25, i64* %41\n; # (set $Up Exe)\n  %42 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  store i64 %19, i64* %42\n; # (set $Break (set $Bind (push (val $Run) $Run P)))\n; # (set $Bind (push (val $Run) $Run P))\n; # (val $Run)\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  %44 = load i64, i64* %43\n; # (push (val $Run) $Run P)\n  %45 = alloca i64, i64 3, align 16\n  %46 = ptrtoint i64* %45 to i64\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %44, i64* %47\n  %48 = add i64 %46, 8\n  %49 = inttoptr i64 %48 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64), i64* %49\n  %50 = add i64 %46, 16\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %36, i64* %51\n  %52 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %46, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 16) to i64) to i64*\n  store i64 %46, i64* %53\n; # (set $Run $Nil)\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %54\n; # (b8+ (ioFrame T))\n  %55 = alloca i8, i64 28, align 8\n; # (val $OutFiles)\n  %56 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %57 = getelementptr i8*, i8** %56, i32 1\n  %58 = load i8*, i8** %57\n; # (pushOutFile (b8+ (ioFrame T)) (val 2 (val $OutFiles)) 0)\n  call void @pushOutFile(i8* %55, i8* %58, i32 0)\n; # (print Exe)\n  call void @print(i64 %19)\n; # (newline)\n  call void @newline()\n; # (repl 0 ($ \"! \") $Nil)\n  %59 = call i64 @repl(i64 0, i8* bitcast ([3 x i8]* @$83 to i8*), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (popOutFiles)\n  call void @popOutFiles()\n; # (val $Up)\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  %61 = load i64, i64* %60\n; # (let P (val $Bind) (set $Run (val P)) (setq P (val 3 P)) (set $Up...\n; # (val $Bind)\n  %62 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %63 = load i64, i64* %62\n; # (set $Run (val P))\n; # (val P)\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 %65, i64* %66\n; # (val 3 P)\n  %67 = inttoptr i64 %63 to i64*\n  %68 = getelementptr i64, i64* %67, i32 2\n  %69 = load i64, i64* %68\n; # (set $Up (val P))\n; # (val P)\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  store i64 %71, i64* %72\n; # (val 3 P)\n  %73 = inttoptr i64 %69 to i64*\n  %74 = getelementptr i64, i64* %73, i32 2\n  %75 = load i64, i64* %74\n; # (set $At (val P))\n; # (val P)\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %77, i64* %78\n; # (set $Bind (val 3 P))\n; # (val 3 P)\n  %79 = inttoptr i64 %75 to i64*\n  %80 = getelementptr i64, i64* %79, i32 2\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %81, i64* %82\n; # (set $Break 0)\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 16) to i64) to i64*\n  store i64 0, i64* %83\n  br label %$6\n$6:\n  %84 = phi i64 [%17, %$2], [%61, %$5] ; # Exe\n  ret i64 %84\n}\n\ndefine i64 @_Break(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (unless (nil? (val $Dbg)) (setq X (brkLoad X))) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (unless (nil? (val $Dbg)) (setq X (brkLoad X)))\n; # (val $Dbg)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (nil? (val $Dbg))\n  %6 = icmp eq i64 %5, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (brkLoad X)\n  %9 = call i64 @brkLoad(i64 %8)\n  br label %$3\n$3:\n  %10 = phi i64 [%0, %$1], [%7, %$2] ; # Exe\n  %11 = phi i64 [%3, %$1], [%9, %$2] ; # X\n; # (eval X)\n  %12 = and i64 %11, 6\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  br label %$4\n$5:\n  %15 = phi i64 [%11, %$3] ; # X\n  %16 = and i64 %15, 8\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$8, label %$7\n$8:\n  %18 = phi i64 [%15, %$5] ; # X\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n  br label %$4\n$7:\n  %21 = phi i64 [%15, %$5] ; # X\n  %22 = call i64 @evList(i64 %21)\n  br label %$4\n$4:\n  %23 = phi i64 [%14, %$6], [%18, %$8], [%21, %$7] ; # X\n  %24 = phi i64 [%14, %$6], [%20, %$8], [%22, %$7] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_BreakIf(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (cdr X)) (unless (or (nil? (val $Dbg)) (nil? ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cdr X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n; # (unless (or (nil? (val $Dbg)) (nil? (eval (car X)))) (setq Y (brk...\n; # (or (nil? (val $Dbg)) (nil? (eval (car X))))\n; # (val $Dbg)\n  %7 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  %8 = load i64, i64* %7\n; # (nil? (val $Dbg))\n  %9 = icmp eq i64 %8, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %9, label %$2, label %$3\n$3:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%3, %$1] ; # X\n  %12 = phi i64 [%6, %$1] ; # Y\n; # (car X)\n  %13 = inttoptr i64 %11 to i64*\n  %14 = load i64, i64* %13\n; # (eval (car X))\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$6, label %$5\n$6:\n  %17 = phi i64 [%14, %$3] ; # X\n  br label %$4\n$5:\n  %18 = phi i64 [%14, %$3] ; # X\n  %19 = and i64 %18, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$8, label %$7\n$8:\n  %21 = phi i64 [%18, %$5] ; # X\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$4\n$7:\n  %24 = phi i64 [%18, %$5] ; # X\n  %25 = call i64 @evList(i64 %24)\n  br label %$4\n$4:\n  %26 = phi i64 [%17, %$6], [%21, %$8], [%24, %$7] ; # X\n  %27 = phi i64 [%17, %$6], [%23, %$8], [%25, %$7] ; # ->\n; # (nil? (eval (car X)))\n  %28 = icmp eq i64 %27, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$2\n$2:\n  %29 = phi i64 [%0, %$1], [%10, %$4] ; # Exe\n  %30 = phi i64 [%3, %$1], [%11, %$4] ; # X\n  %31 = phi i64 [%6, %$1], [%12, %$4] ; # Y\n  %32 = phi i1 [1, %$1], [%28, %$4] ; # ->\n  br i1 %32, label %$10, label %$9\n$9:\n  %33 = phi i64 [%29, %$2] ; # Exe\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = phi i64 [%31, %$2] ; # Y\n; # (brkLoad Y)\n  %36 = call i64 @brkLoad(i64 %35)\n  br label %$10\n$10:\n  %37 = phi i64 [%29, %$2], [%33, %$9] ; # Exe\n  %38 = phi i64 [%30, %$2], [%34, %$9] ; # X\n  %39 = phi i64 [%31, %$2], [%36, %$9] ; # Y\n; # (eval Y)\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$13, label %$12\n$13:\n  %42 = phi i64 [%39, %$10] ; # X\n  br label %$11\n$12:\n  %43 = phi i64 [%39, %$10] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$15, label %$14\n$15:\n  %46 = phi i64 [%43, %$12] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$11\n$14:\n  %49 = phi i64 [%43, %$12] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$11\n$11:\n  %51 = phi i64 [%42, %$13], [%46, %$15], [%49, %$14] ; # X\n  %52 = phi i64 [%42, %$13], [%48, %$15], [%50, %$14] ; # ->\n  ret i64 %52\n}\n\ndefine i64 @_E(i64) align 8 {\n$1:\n; # (let P (val $Break) (unless P (err Exe 0 ($ \"No Break\") null)) (l...\n; # (val $Break)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 16) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (unless P (err Exe 0 ($ \"No Break\") null))\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  %5 = phi i64 [%2, %$1] ; # P\n; # (err Exe 0 ($ \"No Break\") null)\n  call void @err(i64 %4, i64 0, i8* bitcast ([9 x i8]* @$84 to i8*), i8* null)\n  unreachable\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%2, %$1] ; # P\n; # (let (Dbg (save (val $Dbg)) At (save (val $At)) Run (save (val $R...\n; # (val $Dbg)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  %9 = load i64, i64* %8\n; # (save (val $Dbg))\n  %10 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %11 = load i64, i64* %10\n  %12 = alloca i64, i64 2, align 16\n  %13 = ptrtoint i64* %12 to i64\n  %14 = inttoptr i64 %13 to i64*\n  store i64 %9, i64* %14\n  %15 = add i64 %13, 8\n  %16 = inttoptr i64 %15 to i64*\n  store i64 %11, i64* %16\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %13, i64* %17\n; # (val $At)\n  %18 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %19 = load i64, i64* %18\n; # (save (val $At))\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %21 = load i64, i64* %20\n  %22 = alloca i64, i64 2, align 16\n  %23 = ptrtoint i64* %22 to i64\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %19, i64* %24\n  %25 = add i64 %23, 8\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %23, i64* %27\n; # (val $Run)\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  %29 = load i64, i64* %28\n; # (save (val $Run))\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %31 = load i64, i64* %30\n  %32 = alloca i64, i64 2, align 16\n  %33 = ptrtoint i64* %32 to i64\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %29, i64* %34\n  %35 = add i64 %33, 8\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %33, i64* %37\n; # (set $Dbg $Nil $Run (val P) $At (val (val 3 (val 3 P))))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %38\n; # (val P)\n  %39 = inttoptr i64 %7 to i64*\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 %40, i64* %41\n; # (val 3 P)\n  %42 = inttoptr i64 %7 to i64*\n  %43 = getelementptr i64, i64* %42, i32 2\n  %44 = load i64, i64* %43\n; # (val 3 (val 3 P))\n  %45 = inttoptr i64 %44 to i64*\n  %46 = getelementptr i64, i64* %45, i32 2\n  %47 = load i64, i64* %46\n; # (val (val 3 (val 3 P)))\n  %48 = inttoptr i64 %47 to i64*\n  %49 = load i64, i64* %48\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %49, i64* %50\n; # (let (In: (ioFrame (val $InFrames)) Out: (ioFrame (val $OutFrames...\n; # (val $InFrames)\n  %51 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (val $OutFrames)\n  %52 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (popInFiles)\n  call void @popInFiles()\n; # (popOutFiles)\n  call void @popOutFiles()\n; # (prog1 (if (pair (cdr Exe)) (run @) (eval (val $Up))) (if (Out: f...\n; # (if (pair (cdr Exe)) (run @) (eval (val $Up)))\n; # (cdr Exe)\n  %53 = inttoptr i64 %6 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  %55 = load i64, i64* %54\n; # (pair (cdr Exe))\n  %56 = and i64 %55, 15\n  %57 = icmp eq i64 %56, 0\n  br i1 %57, label %$4, label %$5\n$4:\n  %58 = phi i64 [%6, %$3] ; # Exe\n  %59 = phi i64 [%7, %$3] ; # P\n  %60 = phi i64 [%9, %$3] ; # Dbg\n  %61 = phi i64 [%19, %$3] ; # At\n  %62 = phi i64 [%29, %$3] ; # Run\n; # (run @)\n  br label %$7\n$7:\n  %63 = phi i64 [%55, %$4], [%93, %$16] ; # Prg\n  %64 = inttoptr i64 %63 to i64*\n  %65 = getelementptr i64, i64* %64, i32 1\n  %66 = load i64, i64* %65\n  %67 = load i64, i64* %64\n  %68 = and i64 %66, 15\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$10, label %$8\n$10:\n  %70 = phi i64 [%66, %$7] ; # Prg\n  %71 = phi i64 [%67, %$7] ; # X\n  %72 = and i64 %71, 6\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$13, label %$12\n$13:\n  %74 = phi i64 [%71, %$10] ; # X\n  br label %$11\n$12:\n  %75 = phi i64 [%71, %$10] ; # X\n  %76 = and i64 %75, 8\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$15, label %$14\n$15:\n  %78 = phi i64 [%75, %$12] ; # X\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$11\n$14:\n  %81 = phi i64 [%75, %$12] ; # X\n  %82 = call i64 @evList(i64 %81)\n  br label %$11\n$11:\n  %83 = phi i64 [%74, %$13], [%78, %$15], [%81, %$14] ; # X\n  %84 = phi i64 [%74, %$13], [%80, %$15], [%82, %$14] ; # ->\n  br label %$9\n$8:\n  %85 = phi i64 [%66, %$7] ; # Prg\n  %86 = phi i64 [%67, %$7] ; # X\n  %87 = and i64 %86, 15\n  %88 = icmp eq i64 %87, 0\n  br i1 %88, label %$17, label %$16\n$17:\n  %89 = phi i64 [%85, %$8] ; # Prg\n  %90 = phi i64 [%86, %$8] ; # X\n  %91 = call i64 @evList(i64 %90)\n  %92 = icmp ne i64 %91, 0\n  br label %$16\n$16:\n  %93 = phi i64 [%85, %$8], [%89, %$17] ; # Prg\n  %94 = phi i64 [%86, %$8], [%90, %$17] ; # X\n  %95 = phi i1 [0, %$8], [%92, %$17] ; # ->\n  br label %$7\n$9:\n  %96 = phi i64 [%70, %$11] ; # Prg\n  %97 = phi i64 [%84, %$11] ; # ->\n  br label %$6\n$5:\n  %98 = phi i64 [%6, %$3] ; # Exe\n  %99 = phi i64 [%7, %$3] ; # P\n  %100 = phi i64 [%9, %$3] ; # Dbg\n  %101 = phi i64 [%19, %$3] ; # At\n  %102 = phi i64 [%29, %$3] ; # Run\n; # (val $Up)\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64) to i64*\n  %104 = load i64, i64* %103\n; # (eval (val $Up))\n  %105 = and i64 %104, 6\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$20, label %$19\n$20:\n  %107 = phi i64 [%104, %$5] ; # X\n  br label %$18\n$19:\n  %108 = phi i64 [%104, %$5] ; # X\n  %109 = and i64 %108, 8\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$22, label %$21\n$22:\n  %111 = phi i64 [%108, %$19] ; # X\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n  br label %$18\n$21:\n  %114 = phi i64 [%108, %$19] ; # X\n  %115 = call i64 @evList(i64 %114)\n  br label %$18\n$18:\n  %116 = phi i64 [%107, %$20], [%111, %$22], [%114, %$21] ; # X\n  %117 = phi i64 [%107, %$20], [%113, %$22], [%115, %$21] ; # ->\n  br label %$6\n$6:\n  %118 = phi i64 [%58, %$9], [%98, %$18] ; # Exe\n  %119 = phi i64 [%59, %$9], [%99, %$18] ; # P\n  %120 = phi i64 [%60, %$9], [%100, %$18] ; # Dbg\n  %121 = phi i64 [%61, %$9], [%101, %$18] ; # At\n  %122 = phi i64 [%62, %$9], [%102, %$18] ; # Run\n  %123 = phi i64 [%97, %$9], [%117, %$18] ; # ->\n; # (if (Out: file) (pushOutFile (Out:) (Out: file) (Out: pid)) (push...\n; # (Out: file)\n  %124 = getelementptr i8, i8* %52, i32 8\n  %125 = bitcast i8* %124 to i8**\n  %126 = load i8*, i8** %125\n  %127 = icmp ne i8* %126, null\n  br i1 %127, label %$23, label %$24\n$23:\n  %128 = phi i64 [%118, %$6] ; # Exe\n  %129 = phi i64 [%119, %$6] ; # P\n  %130 = phi i64 [%120, %$6] ; # Dbg\n  %131 = phi i64 [%121, %$6] ; # At\n  %132 = phi i64 [%122, %$6] ; # Run\n; # (Out:)\n; # (Out: file)\n  %133 = getelementptr i8, i8* %52, i32 8\n  %134 = bitcast i8* %133 to i8**\n  %135 = load i8*, i8** %134\n; # (Out: pid)\n  %136 = getelementptr i8, i8* %52, i32 24\n  %137 = bitcast i8* %136 to i32*\n  %138 = load i32, i32* %137\n; # (pushOutFile (Out:) (Out: file) (Out: pid))\n  call void @pushOutFile(i8* %52, i8* %135, i32 %138)\n  br label %$25\n$24:\n  %139 = phi i64 [%118, %$6] ; # Exe\n  %140 = phi i64 [%119, %$6] ; # P\n  %141 = phi i64 [%120, %$6] ; # Dbg\n  %142 = phi i64 [%121, %$6] ; # At\n  %143 = phi i64 [%122, %$6] ; # Run\n; # (Out:)\n; # (Out:)\n; # ((ioxFrame (Out:)) exe)\n  %144 = getelementptr i8, i8* %52, i32 24\n  %145 = ptrtoint i8* %144 to i64\n  %146 = inttoptr i64 %145 to i64*\n  %147 = load i64, i64* %146\n; # (pushOutput (Out:) ((ioxFrame (Out:)) exe))\n  call void @pushOutput(i8* %52, i64 %147)\n  br label %$25\n$25:\n  %148 = phi i64 [%128, %$23], [%139, %$24] ; # Exe\n  %149 = phi i64 [%129, %$23], [%140, %$24] ; # P\n  %150 = phi i64 [%130, %$23], [%141, %$24] ; # Dbg\n  %151 = phi i64 [%131, %$23], [%142, %$24] ; # At\n  %152 = phi i64 [%132, %$23], [%143, %$24] ; # Run\n; # (if (In: file) (pushInFile (In:) (In: file) (In: pid)) (pushInput...\n; # (In: file)\n  %153 = getelementptr i8, i8* %51, i32 8\n  %154 = bitcast i8* %153 to i8**\n  %155 = load i8*, i8** %154\n  %156 = icmp ne i8* %155, null\n  br i1 %156, label %$26, label %$27\n$26:\n  %157 = phi i64 [%148, %$25] ; # Exe\n  %158 = phi i64 [%149, %$25] ; # P\n  %159 = phi i64 [%150, %$25] ; # Dbg\n  %160 = phi i64 [%151, %$25] ; # At\n  %161 = phi i64 [%152, %$25] ; # Run\n; # (In:)\n; # (In: file)\n  %162 = getelementptr i8, i8* %51, i32 8\n  %163 = bitcast i8* %162 to i8**\n  %164 = load i8*, i8** %163\n; # (In: pid)\n  %165 = getelementptr i8, i8* %51, i32 24\n  %166 = bitcast i8* %165 to i32*\n  %167 = load i32, i32* %166\n; # (pushInFile (In:) (In: file) (In: pid))\n  call void @pushInFile(i8* %51, i8* %164, i32 %167)\n  br label %$28\n$27:\n  %168 = phi i64 [%148, %$25] ; # Exe\n  %169 = phi i64 [%149, %$25] ; # P\n  %170 = phi i64 [%150, %$25] ; # Dbg\n  %171 = phi i64 [%151, %$25] ; # At\n  %172 = phi i64 [%152, %$25] ; # Run\n; # (In:)\n; # (In:)\n; # ((ioxFrame (In:)) exe)\n  %173 = getelementptr i8, i8* %51, i32 24\n  %174 = ptrtoint i8* %173 to i64\n  %175 = inttoptr i64 %174 to i64*\n  %176 = load i64, i64* %175\n; # (pushInput (In:) ((ioxFrame (In:)) exe))\n  call void @pushInput(i8* %51, i64 %176)\n  br label %$28\n$28:\n  %177 = phi i64 [%157, %$26], [%168, %$27] ; # Exe\n  %178 = phi i64 [%158, %$26], [%169, %$27] ; # P\n  %179 = phi i64 [%159, %$26], [%170, %$27] ; # Dbg\n  %180 = phi i64 [%160, %$26], [%171, %$27] ; # At\n  %181 = phi i64 [%161, %$26], [%172, %$27] ; # Run\n; # (set $Run Run $At At $Dbg Dbg)\n  %182 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 616) to i64) to i64*\n  store i64 %181, i64* %182\n  %183 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %180, i64* %183\n  %184 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  store i64 %179, i64* %184\n; # (drop *Safe)\n  %185 = inttoptr i64 %13 to i64*\n  %186 = getelementptr i64, i64* %185, i32 1\n  %187 = load i64, i64* %186\n  %188 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %187, i64* %188\n  ret i64 %123\n}\n\ndefine void @trace(i32, i64) align 8 {\n$1:\n; # (when (> C 64) (setq C 64))\n; # (> C 64)\n  %2 = icmp sgt i32 %0, 64\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i32 [%0, %$1] ; # C\n  %4 = phi i64 [%1, %$1] ; # X\n  br label %$3\n$3:\n  %5 = phi i32 [%0, %$1], [64, %$2] ; # C\n  %6 = phi i64 [%1, %$1], [%4, %$2] ; # X\n; # (while (ge0 (dec 'C)) (space))\n  br label %$4\n$4:\n  %7 = phi i32 [%5, %$3], [%11, %$5] ; # C\n  %8 = phi i64 [%6, %$3], [%12, %$5] ; # X\n; # (dec 'C)\n  %9 = sub i32 %7, 1\n; # (ge0 (dec 'C))\n  %10 = icmp sge i32 %9, 0\n  br i1 %10, label %$5, label %$6\n$5:\n  %11 = phi i32 [%9, %$4] ; # C\n  %12 = phi i64 [%8, %$4] ; # X\n; # (space)\n  call void @space()\n  br label %$4\n$6:\n  %13 = phi i32 [%9, %$4] ; # C\n  %14 = phi i64 [%8, %$4] ; # X\n; # (if (atom X) (print @) (print (car X)) (space) (print (cdr X)) (s...\n; # (atom X)\n  %15 = and i64 %14, 15\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$7, label %$8\n$7:\n  %17 = phi i32 [%13, %$6] ; # C\n  %18 = phi i64 [%14, %$6] ; # X\n; # (print @)\n  call void @print(i64 %14)\n  br label %$9\n$8:\n  %19 = phi i32 [%13, %$6] ; # C\n  %20 = phi i64 [%14, %$6] ; # X\n; # (car X)\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n; # (print (car X))\n  call void @print(i64 %22)\n; # (space)\n  call void @space()\n; # (cdr X)\n  %23 = inttoptr i64 %20 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n; # (print (cdr X))\n  call void @print(i64 %25)\n; # (space)\n  call void @space()\n; # (val $This)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 504) to i64) to i64*\n  %27 = load i64, i64* %26\n; # (print (val $This))\n  call void @print(i64 %27)\n  br label %$9\n$9:\n  %28 = phi i32 [%17, %$7], [%19, %$8] ; # C\n  %29 = phi i64 [%18, %$7], [%20, %$8] ; # X\n  ret void\n}\n\ndefine i64 @_Trace(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (val $Dbg)) (run (cddr X)) (let (Out (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (val $Dbg)) (run (cddr X)) (let (Out (val $OutFile) Put...\n; # (val $Dbg)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  %5 = load i64, i64* %4\n; # (nil? (val $Dbg))\n  %6 = icmp eq i64 %5, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %6, label %$2, label %$3\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (cddr X)\n  %9 = inttoptr i64 %8 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n  %12 = inttoptr i64 %11 to i64*\n  %13 = getelementptr i64, i64* %12, i32 1\n  %14 = load i64, i64* %13\n; # (run (cddr X))\n  br label %$5\n$5:\n  %15 = phi i64 [%14, %$2], [%45, %$14] ; # Prg\n  %16 = inttoptr i64 %15 to i64*\n  %17 = getelementptr i64, i64* %16, i32 1\n  %18 = load i64, i64* %17\n  %19 = load i64, i64* %16\n  %20 = and i64 %18, 15\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$8, label %$6\n$8:\n  %22 = phi i64 [%18, %$5] ; # Prg\n  %23 = phi i64 [%19, %$5] ; # X\n  %24 = and i64 %23, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$11:\n  %26 = phi i64 [%23, %$8] ; # X\n  br label %$9\n$10:\n  %27 = phi i64 [%23, %$8] ; # X\n  %28 = and i64 %27, 8\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$13, label %$12\n$13:\n  %30 = phi i64 [%27, %$10] ; # X\n  %31 = inttoptr i64 %30 to i64*\n  %32 = load i64, i64* %31\n  br label %$9\n$12:\n  %33 = phi i64 [%27, %$10] ; # X\n  %34 = call i64 @evList(i64 %33)\n  br label %$9\n$9:\n  %35 = phi i64 [%26, %$11], [%30, %$13], [%33, %$12] ; # X\n  %36 = phi i64 [%26, %$11], [%32, %$13], [%34, %$12] ; # ->\n  br label %$7\n$6:\n  %37 = phi i64 [%18, %$5] ; # Prg\n  %38 = phi i64 [%19, %$5] ; # X\n  %39 = and i64 %38, 15\n  %40 = icmp eq i64 %39, 0\n  br i1 %40, label %$15, label %$14\n$15:\n  %41 = phi i64 [%37, %$6] ; # Prg\n  %42 = phi i64 [%38, %$6] ; # X\n  %43 = call i64 @evList(i64 %42)\n  %44 = icmp ne i64 %43, 0\n  br label %$14\n$14:\n  %45 = phi i64 [%37, %$6], [%41, %$15] ; # Prg\n  %46 = phi i64 [%38, %$6], [%42, %$15] ; # X\n  %47 = phi i1 [0, %$6], [%44, %$15] ; # ->\n  br label %$5\n$7:\n  %48 = phi i64 [%22, %$9] ; # Prg\n  %49 = phi i64 [%36, %$9] ; # ->\n  br label %$4\n$3:\n  %50 = phi i64 [%0, %$1] ; # Exe\n  %51 = phi i64 [%3, %$1] ; # X\n; # (let (Out (val $OutFile) Put (val (i8** $Put))) (set $OutFile (va...\n; # (val $OutFile)\n  %52 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (i8** $Put)\n  %53 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (val (i8** $Put))\n  %54 = load i8*, i8** %53\n; # (set $OutFile (val 3 (val $OutFiles)) $Put (fun (void i8) _putStd...\n; # (val $OutFiles)\n  %55 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %56 = getelementptr i8*, i8** %55, i32 2\n  %57 = load i8*, i8** %56\n  store i8* %57, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (let (Y (++ X) Z (++ X)) (trace (set $Trace (inc (val $Trace))) Y...\n; # (++ X)\n  %58 = inttoptr i64 %51 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n  %61 = load i64, i64* %58\n; # (++ X)\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  %65 = load i64, i64* %62\n; # (set $Trace (inc (val $Trace)))\n; # (val $Trace)\n  %66 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 184) to i32*)\n; # (inc (val $Trace))\n  %67 = add i32 %66, 1\n  store i32 %67, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 184) to i32*)\n; # (trace (set $Trace (inc (val $Trace))) Y)\n  call void @trace(i32 %67, i64 %61)\n; # (outString ($ \" :\"))\n  call void @outString(i8* bitcast ([3 x i8]* @$85 to i8*))\n; # (while (pair Z) (space) (print (val (++ Z))))\n  br label %$16\n$16:\n  %68 = phi i64 [%50, %$3], [%76, %$17] ; # Exe\n  %69 = phi i64 [%64, %$3], [%77, %$17] ; # X\n  %70 = phi i8* [%52, %$3], [%78, %$17] ; # Out\n  %71 = phi i8* [%54, %$3], [%79, %$17] ; # Put\n  %72 = phi i64 [%61, %$3], [%80, %$17] ; # Y\n  %73 = phi i64 [%65, %$3], [%84, %$17] ; # Z\n; # (pair Z)\n  %74 = and i64 %73, 15\n  %75 = icmp eq i64 %74, 0\n  br i1 %75, label %$17, label %$18\n$17:\n  %76 = phi i64 [%68, %$16] ; # Exe\n  %77 = phi i64 [%69, %$16] ; # X\n  %78 = phi i8* [%70, %$16] ; # Out\n  %79 = phi i8* [%71, %$16] ; # Put\n  %80 = phi i64 [%72, %$16] ; # Y\n  %81 = phi i64 [%73, %$16] ; # Z\n; # (space)\n  call void @space()\n; # (++ Z)\n  %82 = inttoptr i64 %81 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  %84 = load i64, i64* %83\n  %85 = load i64, i64* %82\n; # (val (++ Z))\n  %86 = inttoptr i64 %85 to i64*\n  %87 = load i64, i64* %86\n; # (print (val (++ Z)))\n  call void @print(i64 %87)\n  br label %$16\n$18:\n  %88 = phi i64 [%68, %$16] ; # Exe\n  %89 = phi i64 [%69, %$16] ; # X\n  %90 = phi i8* [%70, %$16] ; # Out\n  %91 = phi i8* [%71, %$16] ; # Put\n  %92 = phi i64 [%72, %$16] ; # Y\n  %93 = phi i64 [%73, %$16] ; # Z\n; # (cond ((== Z $At) (setq Z (val $Next)) (while (pair Z) (space) (p...\n; # (== Z $At)\n  %94 = icmp eq i64 %93, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %94, label %$21, label %$20\n$21:\n  %95 = phi i64 [%88, %$18] ; # Exe\n  %96 = phi i64 [%89, %$18] ; # X\n  %97 = phi i8* [%90, %$18] ; # Out\n  %98 = phi i8* [%91, %$18] ; # Put\n  %99 = phi i64 [%92, %$18] ; # Y\n  %100 = phi i64 [%93, %$18] ; # Z\n; # (val $Next)\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %102 = load i64, i64* %101\n; # (while (pair Z) (space) (print (cdr Z)) (setq Z (car Z)))\n  br label %$22\n$22:\n  %103 = phi i64 [%95, %$21], [%111, %$23] ; # Exe\n  %104 = phi i64 [%96, %$21], [%112, %$23] ; # X\n  %105 = phi i8* [%97, %$21], [%113, %$23] ; # Out\n  %106 = phi i8* [%98, %$21], [%114, %$23] ; # Put\n  %107 = phi i64 [%99, %$21], [%115, %$23] ; # Y\n  %108 = phi i64 [%102, %$21], [%121, %$23] ; # Z\n; # (pair Z)\n  %109 = and i64 %108, 15\n  %110 = icmp eq i64 %109, 0\n  br i1 %110, label %$23, label %$24\n$23:\n  %111 = phi i64 [%103, %$22] ; # Exe\n  %112 = phi i64 [%104, %$22] ; # X\n  %113 = phi i8* [%105, %$22] ; # Out\n  %114 = phi i8* [%106, %$22] ; # Put\n  %115 = phi i64 [%107, %$22] ; # Y\n  %116 = phi i64 [%108, %$22] ; # Z\n; # (space)\n  call void @space()\n; # (cdr Z)\n  %117 = inttoptr i64 %116 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  %119 = load i64, i64* %118\n; # (print (cdr Z))\n  call void @print(i64 %119)\n; # (car Z)\n  %120 = inttoptr i64 %116 to i64*\n  %121 = load i64, i64* %120\n  br label %$22\n$24:\n  %122 = phi i64 [%103, %$22] ; # Exe\n  %123 = phi i64 [%104, %$22] ; # X\n  %124 = phi i8* [%105, %$22] ; # Out\n  %125 = phi i8* [%106, %$22] ; # Put\n  %126 = phi i64 [%107, %$22] ; # Y\n  %127 = phi i64 [%108, %$22] ; # Z\n  br label %$19\n$20:\n  %128 = phi i64 [%88, %$18] ; # Exe\n  %129 = phi i64 [%89, %$18] ; # X\n  %130 = phi i8* [%90, %$18] ; # Out\n  %131 = phi i8* [%91, %$18] ; # Put\n  %132 = phi i64 [%92, %$18] ; # Y\n  %133 = phi i64 [%93, %$18] ; # Z\n; # (nil? Z)\n  %134 = icmp eq i64 %133, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? Z))\n  %135 = icmp eq i1 %134, 0\n  br i1 %135, label %$26, label %$25\n$26:\n  %136 = phi i64 [%128, %$20] ; # Exe\n  %137 = phi i64 [%129, %$20] ; # X\n  %138 = phi i8* [%130, %$20] ; # Out\n  %139 = phi i8* [%131, %$20] ; # Put\n  %140 = phi i64 [%132, %$20] ; # Y\n  %141 = phi i64 [%133, %$20] ; # Z\n; # (space)\n  call void @space()\n; # (val Z)\n  %142 = inttoptr i64 %141 to i64*\n  %143 = load i64, i64* %142\n; # (print (val Z))\n  call void @print(i64 %143)\n  br label %$19\n$25:\n  %144 = phi i64 [%128, %$20] ; # Exe\n  %145 = phi i64 [%129, %$20] ; # X\n  %146 = phi i8* [%130, %$20] ; # Out\n  %147 = phi i8* [%131, %$20] ; # Put\n  %148 = phi i64 [%132, %$20] ; # Y\n  %149 = phi i64 [%133, %$20] ; # Z\n  br label %$19\n$19:\n  %150 = phi i64 [%122, %$24], [%136, %$26], [%144, %$25] ; # Exe\n  %151 = phi i64 [%123, %$24], [%137, %$26], [%145, %$25] ; # X\n  %152 = phi i8* [%124, %$24], [%138, %$26], [%146, %$25] ; # Out\n  %153 = phi i8* [%125, %$24], [%139, %$26], [%147, %$25] ; # Put\n  %154 = phi i64 [%126, %$24], [%140, %$26], [%148, %$25] ; # Y\n  %155 = phi i64 [%127, %$24], [%141, %$26], [%149, %$25] ; # Z\n; # (newline)\n  call void @newline()\n; # (set (i8** $Put) Put $OutFile Out)\n; # (i8** $Put)\n  %156 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  store i8* %153, i8** %156\n  store i8* %152, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (prog1 (run X) (set $OutFile (val 3 (val $OutFiles)) $Put (fun (v...\n; # (run X)\n  br label %$27\n$27:\n  %157 = phi i64 [%151, %$19], [%187, %$36] ; # Prg\n  %158 = inttoptr i64 %157 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n  %161 = load i64, i64* %158\n  %162 = and i64 %160, 15\n  %163 = icmp ne i64 %162, 0\n  br i1 %163, label %$30, label %$28\n$30:\n  %164 = phi i64 [%160, %$27] ; # Prg\n  %165 = phi i64 [%161, %$27] ; # X\n  %166 = and i64 %165, 6\n  %167 = icmp ne i64 %166, 0\n  br i1 %167, label %$33, label %$32\n$33:\n  %168 = phi i64 [%165, %$30] ; # X\n  br label %$31\n$32:\n  %169 = phi i64 [%165, %$30] ; # X\n  %170 = and i64 %169, 8\n  %171 = icmp ne i64 %170, 0\n  br i1 %171, label %$35, label %$34\n$35:\n  %172 = phi i64 [%169, %$32] ; # X\n  %173 = inttoptr i64 %172 to i64*\n  %174 = load i64, i64* %173\n  br label %$31\n$34:\n  %175 = phi i64 [%169, %$32] ; # X\n  %176 = call i64 @evList(i64 %175)\n  br label %$31\n$31:\n  %177 = phi i64 [%168, %$33], [%172, %$35], [%175, %$34] ; # X\n  %178 = phi i64 [%168, %$33], [%174, %$35], [%176, %$34] ; # ->\n  br label %$29\n$28:\n  %179 = phi i64 [%160, %$27] ; # Prg\n  %180 = phi i64 [%161, %$27] ; # X\n  %181 = and i64 %180, 15\n  %182 = icmp eq i64 %181, 0\n  br i1 %182, label %$37, label %$36\n$37:\n  %183 = phi i64 [%179, %$28] ; # Prg\n  %184 = phi i64 [%180, %$28] ; # X\n  %185 = call i64 @evList(i64 %184)\n  %186 = icmp ne i64 %185, 0\n  br label %$36\n$36:\n  %187 = phi i64 [%179, %$28], [%183, %$37] ; # Prg\n  %188 = phi i64 [%180, %$28], [%184, %$37] ; # X\n  %189 = phi i1 [0, %$28], [%186, %$37] ; # ->\n  br label %$27\n$29:\n  %190 = phi i64 [%164, %$31] ; # Prg\n  %191 = phi i64 [%178, %$31] ; # ->\n; # (set $OutFile (val 3 (val $OutFiles)) $Put (fun (void i8) _putStd...\n; # (val $OutFiles)\n  %192 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %193 = getelementptr i8*, i8** %192, i32 2\n  %194 = load i8*, i8** %193\n  store i8* %194, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (fun (void i8) _putStdout)\n  store void(i8)* @_putStdout, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (let I (val $Trace) (trace I Y) (set $Trace (dec I)))\n; # (val $Trace)\n  %195 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 184) to i32*)\n; # (trace I Y)\n  call void @trace(i32 %195, i64 %154)\n; # (set $Trace (dec I))\n; # (dec I)\n  %196 = sub i32 %195, 1\n  store i32 %196, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 184) to i32*)\n; # (outString ($ \" = \"))\n  call void @outString(i8* bitcast ([4 x i8]* @$86 to i8*))\n; # (print @)\n  call void @print(i64 %191)\n; # (newline)\n  call void @newline()\n; # (set (i8** $Put) Put $OutFile Out)\n; # (i8** $Put)\n  %197 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n  store i8* %153, i8** %197\n  store i8* %152, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n  br label %$4\n$4:\n  %198 = phi i64 [%7, %$7], [%150, %$29] ; # Exe\n  %199 = phi i64 [%8, %$7], [%151, %$29] ; # X\n  %200 = phi i64 [%49, %$7], [%191, %$29] ; # ->\n  ret i64 %200\n}\n\ndefine i64 @_Exec(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Av (b8* (inc (length X))) Cmd (xName (evSym X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (length X)\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%13, %$3] ; # X\n  %5 = phi i64 [0, %$1], [%10, %$3] ; # N\n  %6 = and i64 %4, 15\n  %7 = icmp eq i64 %6, 0\n  br i1 %7, label %$3, label %$4\n$3:\n  %8 = phi i64 [%4, %$2] ; # X\n  %9 = phi i64 [%5, %$2] ; # N\n  %10 = add i64 %9, 1\n  %11 = inttoptr i64 %8 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  br label %$2\n$4:\n  %14 = phi i64 [%4, %$2] ; # X\n  %15 = phi i64 [%5, %$2] ; # N\n; # (inc (length X))\n  %16 = add i64 %15, 1\n; # (b8* (inc (length X)))\n  %17 = alloca i8*, i64 %16\n; # (evSym X)\n  %18 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %19 = call i64 @xName(i64 %18)\n; # (set Av (pathString Cmd (b8 (pathSize Cmd))))\n; # (pathSize Cmd)\n  %20 = call i64 @pathSize(i64 %19)\n; # (b8 (pathSize Cmd))\n  %21 = alloca i8, i64 %20\n; # (pathString Cmd (b8 (pathSize Cmd)))\n  %22 = call i8* @pathString(i64 %19, i8* %21)\n  store i8* %22, i8** %17\n; # (stkChk Exe)\n  %23 = load i8*, i8** @$StkLimit\n  %24 = call i8* @llvm.stacksave()\n  %25 = icmp ugt i8* %23, %24\n  br i1 %25, label %$5, label %$6\n$5:\n  %26 = phi i64 [%0, %$4] ; # Exe\n  call void @stkErr(i64 %26)\n  unreachable\n$6:\n  %27 = phi i64 [%0, %$4] ; # Exe\n; # (let A Av (while (pair (shift X)) (let Nm (xName (evSym X)) (set ...\n; # (while (pair (shift X)) (let Nm (xName (evSym X)) (set (inc 'A) (...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$6], [%38, %$11] ; # Exe\n  %29 = phi i64 [%3, %$6], [%39, %$11] ; # X\n  %30 = phi i8** [%17, %$6], [%40, %$11] ; # Av\n  %31 = phi i64 [%19, %$6], [%41, %$11] ; # Cmd\n  %32 = phi i8** [%17, %$6], [%45, %$11] ; # A\n; # (shift X)\n  %33 = inttoptr i64 %29 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (pair (shift X))\n  %36 = and i64 %35, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$8, label %$9\n$8:\n  %38 = phi i64 [%28, %$7] ; # Exe\n  %39 = phi i64 [%35, %$7] ; # X\n  %40 = phi i8** [%30, %$7] ; # Av\n  %41 = phi i64 [%31, %$7] ; # Cmd\n  %42 = phi i8** [%32, %$7] ; # A\n; # (let Nm (xName (evSym X)) (set (inc 'A) (bufString Nm (b8 (bufSiz...\n; # (evSym X)\n  %43 = call i64 @evSym(i64 %39)\n; # (xName (evSym X))\n  %44 = call i64 @xName(i64 %43)\n; # (set (inc 'A) (bufString Nm (b8 (bufSize Nm))))\n; # (inc 'A)\n  %45 = getelementptr i8*, i8** %42, i32 1\n; # (bufSize Nm)\n  %46 = call i64 @bufSize(i64 %44)\n; # (b8 (bufSize Nm))\n  %47 = alloca i8, i64 %46\n; # (bufString Nm (b8 (bufSize Nm)))\n  %48 = call i8* @bufString(i64 %44, i8* %47)\n  store i8* %48, i8** %45\n; # (stkChk Exe)\n  %49 = load i8*, i8** @$StkLimit\n  %50 = call i8* @llvm.stacksave()\n  %51 = icmp ugt i8* %49, %50\n  br i1 %51, label %$10, label %$11\n$10:\n  %52 = phi i64 [%38, %$8] ; # Exe\n  call void @stkErr(i64 %52)\n  unreachable\n$11:\n  %53 = phi i64 [%38, %$8] ; # Exe\n  br label %$7\n$9:\n  %54 = phi i64 [%28, %$7] ; # Exe\n  %55 = phi i64 [%35, %$7] ; # X\n  %56 = phi i8** [%30, %$7] ; # Av\n  %57 = phi i64 [%31, %$7] ; # Cmd\n  %58 = phi i8** [%32, %$7] ; # A\n; # (set (inc 'A) null)\n; # (inc 'A)\n  %59 = getelementptr i8*, i8** %58, i32 1\n  store i8* null, i8** %59\n; # (flushAll)\n  call void @flushAll()\n; # (val Av)\n  %60 = load i8*, i8** %56\n; # (execvp (val Av) Av)\n  %61 = call i32 @execvp(i8* %60, i8** %56)\n; # (val Av)\n  %62 = load i8*, i8** %56\n; # (execErr (val Av))\n  call void @execErr(i8* %62)\n  unreachable\n}\n\ndefine i64 @_Call(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Av (b8* (inc (length X))) Cmd (xName (evSym X))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (length X)\n  br label %$2\n$2:\n  %4 = phi i64 [%3, %$1], [%13, %$3] ; # X\n  %5 = phi i64 [0, %$1], [%10, %$3] ; # N\n  %6 = and i64 %4, 15\n  %7 = icmp eq i64 %6, 0\n  br i1 %7, label %$3, label %$4\n$3:\n  %8 = phi i64 [%4, %$2] ; # X\n  %9 = phi i64 [%5, %$2] ; # N\n  %10 = add i64 %9, 1\n  %11 = inttoptr i64 %8 to i64*\n  %12 = getelementptr i64, i64* %11, i32 1\n  %13 = load i64, i64* %12\n  br label %$2\n$4:\n  %14 = phi i64 [%4, %$2] ; # X\n  %15 = phi i64 [%5, %$2] ; # N\n; # (inc (length X))\n  %16 = add i64 %15, 1\n; # (b8* (inc (length X)))\n  %17 = alloca i8*, i64 %16\n; # (evSym X)\n  %18 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %19 = call i64 @xName(i64 %18)\n; # (set Av (pathString Cmd (b8 (pathSize Cmd))))\n; # (pathSize Cmd)\n  %20 = call i64 @pathSize(i64 %19)\n; # (b8 (pathSize Cmd))\n  %21 = alloca i8, i64 %20\n; # (pathString Cmd (b8 (pathSize Cmd)))\n  %22 = call i8* @pathString(i64 %19, i8* %21)\n  store i8* %22, i8** %17\n; # (stkChk Exe)\n  %23 = load i8*, i8** @$StkLimit\n  %24 = call i8* @llvm.stacksave()\n  %25 = icmp ugt i8* %23, %24\n  br i1 %25, label %$5, label %$6\n$5:\n  %26 = phi i64 [%0, %$4] ; # Exe\n  call void @stkErr(i64 %26)\n  unreachable\n$6:\n  %27 = phi i64 [%0, %$4] ; # Exe\n; # (let A Av (while (pair (shift X)) (let Nm (xName (evSym X)) (set ...\n; # (while (pair (shift X)) (let Nm (xName (evSym X)) (set (inc 'A) (...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$6], [%38, %$11] ; # Exe\n  %29 = phi i64 [%3, %$6], [%39, %$11] ; # X\n  %30 = phi i8** [%17, %$6], [%40, %$11] ; # Av\n  %31 = phi i64 [%19, %$6], [%41, %$11] ; # Cmd\n  %32 = phi i8** [%17, %$6], [%45, %$11] ; # A\n; # (shift X)\n  %33 = inttoptr i64 %29 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (pair (shift X))\n  %36 = and i64 %35, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$8, label %$9\n$8:\n  %38 = phi i64 [%28, %$7] ; # Exe\n  %39 = phi i64 [%35, %$7] ; # X\n  %40 = phi i8** [%30, %$7] ; # Av\n  %41 = phi i64 [%31, %$7] ; # Cmd\n  %42 = phi i8** [%32, %$7] ; # A\n; # (let Nm (xName (evSym X)) (set (inc 'A) (bufString Nm (b8 (bufSiz...\n; # (evSym X)\n  %43 = call i64 @evSym(i64 %39)\n; # (xName (evSym X))\n  %44 = call i64 @xName(i64 %43)\n; # (set (inc 'A) (bufString Nm (b8 (bufSize Nm))))\n; # (inc 'A)\n  %45 = getelementptr i8*, i8** %42, i32 1\n; # (bufSize Nm)\n  %46 = call i64 @bufSize(i64 %44)\n; # (b8 (bufSize Nm))\n  %47 = alloca i8, i64 %46\n; # (bufString Nm (b8 (bufSize Nm)))\n  %48 = call i8* @bufString(i64 %44, i8* %47)\n  store i8* %48, i8** %45\n; # (stkChk Exe)\n  %49 = load i8*, i8** @$StkLimit\n  %50 = call i8* @llvm.stacksave()\n  %51 = icmp ugt i8* %49, %50\n  br i1 %51, label %$10, label %$11\n$10:\n  %52 = phi i64 [%38, %$8] ; # Exe\n  call void @stkErr(i64 %52)\n  unreachable\n$11:\n  %53 = phi i64 [%38, %$8] ; # Exe\n  br label %$7\n$9:\n  %54 = phi i64 [%28, %$7] ; # Exe\n  %55 = phi i64 [%35, %$7] ; # X\n  %56 = phi i8** [%30, %$7] ; # Av\n  %57 = phi i64 [%31, %$7] ; # Cmd\n  %58 = phi i8** [%32, %$7] ; # A\n; # (set (inc 'A) null)\n; # (inc 'A)\n  %59 = getelementptr i8*, i8** %58, i32 1\n  store i8* null, i8** %59\n; # (flushAll)\n  call void @flushAll()\n; # (let (Tc (tcgetpgrp 0) Fg (and (val Tio) (== Tc (getpgrp)))) (con...\n; # (tcgetpgrp 0)\n  %60 = call i32 @tcgetpgrp(i32 0)\n; # (and (val Tio) (== Tc (getpgrp)))\n; # (val Tio)\n  %61 = load i1, i1* @Tio\n  br i1 %61, label %$13, label %$12\n$13:\n  %62 = phi i64 [%54, %$9] ; # Exe\n  %63 = phi i64 [%55, %$9] ; # X\n  %64 = phi i8** [%56, %$9] ; # Av\n  %65 = phi i64 [%57, %$9] ; # Cmd\n  %66 = phi i32 [%60, %$9] ; # Tc\n; # (getpgrp)\n  %67 = call i32 @getpgrp()\n; # (== Tc (getpgrp))\n  %68 = icmp eq i32 %66, %67\n  br label %$12\n$12:\n  %69 = phi i64 [%54, %$9], [%62, %$13] ; # Exe\n  %70 = phi i64 [%55, %$9], [%63, %$13] ; # X\n  %71 = phi i8** [%56, %$9], [%64, %$13] ; # Av\n  %72 = phi i64 [%57, %$9], [%65, %$13] ; # Cmd\n  %73 = phi i32 [%60, %$9], [%66, %$13] ; # Tc\n  %74 = phi i1 [0, %$9], [%68, %$13] ; # ->\n; # (cond ((lt0 (fork)) (forkErr Exe)) ((=0 @) (setpgid 0 0) (when Fg...\n; # (fork)\n  %75 = call i32 @fork()\n; # (lt0 (fork))\n  %76 = icmp slt i32 %75, 0\n  br i1 %76, label %$16, label %$15\n$16:\n  %77 = phi i64 [%69, %$12] ; # Exe\n  %78 = phi i64 [%70, %$12] ; # X\n  %79 = phi i8** [%71, %$12] ; # Av\n  %80 = phi i64 [%72, %$12] ; # Cmd\n  %81 = phi i32 [%73, %$12] ; # Tc\n  %82 = phi i1 [%74, %$12] ; # Fg\n; # (forkErr Exe)\n  call void @forkErr(i64 %77)\n  unreachable\n$15:\n  %83 = phi i64 [%69, %$12] ; # Exe\n  %84 = phi i64 [%70, %$12] ; # X\n  %85 = phi i8** [%71, %$12] ; # Av\n  %86 = phi i64 [%72, %$12] ; # Cmd\n  %87 = phi i32 [%73, %$12] ; # Tc\n  %88 = phi i1 [%74, %$12] ; # Fg\n; # (=0 @)\n  %89 = icmp eq i32 %75, 0\n  br i1 %89, label %$18, label %$17\n$18:\n  %90 = phi i64 [%83, %$15] ; # Exe\n  %91 = phi i64 [%84, %$15] ; # X\n  %92 = phi i8** [%85, %$15] ; # Av\n  %93 = phi i64 [%86, %$15] ; # Cmd\n  %94 = phi i32 [%87, %$15] ; # Tc\n  %95 = phi i1 [%88, %$15] ; # Fg\n; # (setpgid 0 0)\n  %96 = call i32 @setpgid(i32 0, i32 0)\n; # (when Fg (tcsetpgrp 0 (getpid)))\n  br i1 %95, label %$19, label %$20\n$19:\n  %97 = phi i64 [%90, %$18] ; # Exe\n  %98 = phi i64 [%91, %$18] ; # X\n  %99 = phi i8** [%92, %$18] ; # Av\n  %100 = phi i64 [%93, %$18] ; # Cmd\n  %101 = phi i32 [%94, %$18] ; # Tc\n  %102 = phi i1 [%95, %$18] ; # Fg\n; # (getpid)\n  %103 = call i32 @getpid()\n; # (tcsetpgrp 0 (getpid))\n  %104 = call i32 @tcsetpgrp(i32 0, i32 %103)\n  br label %$20\n$20:\n  %105 = phi i64 [%90, %$18], [%97, %$19] ; # Exe\n  %106 = phi i64 [%91, %$18], [%98, %$19] ; # X\n  %107 = phi i8** [%92, %$18], [%99, %$19] ; # Av\n  %108 = phi i64 [%93, %$18], [%100, %$19] ; # Cmd\n  %109 = phi i32 [%94, %$18], [%101, %$19] ; # Tc\n  %110 = phi i1 [%95, %$18], [%102, %$19] ; # Fg\n; # (val Av)\n  %111 = load i8*, i8** %107\n; # (execvp (val Av) Av)\n  %112 = call i32 @execvp(i8* %111, i8** %107)\n; # (val Av)\n  %113 = load i8*, i8** %107\n; # (execErr (val Av))\n  call void @execErr(i8* %113)\n  unreachable\n$17:\n  %114 = phi i64 [%83, %$15] ; # Exe\n  %115 = phi i64 [%84, %$15] ; # X\n  %116 = phi i8** [%85, %$15] ; # Av\n  %117 = phi i64 [%86, %$15] ; # Cmd\n  %118 = phi i32 [%87, %$15] ; # Tc\n  %119 = phi i1 [%88, %$15] ; # Fg\n  br label %$14\n$14:\n  %120 = phi i64 [%114, %$17] ; # Exe\n  %121 = phi i64 [%115, %$17] ; # X\n  %122 = phi i8** [%116, %$17] ; # Av\n  %123 = phi i64 [%117, %$17] ; # Cmd\n  %124 = phi i32 [%118, %$17] ; # Tc\n  %125 = phi i1 [%119, %$17] ; # Fg\n  %126 = phi i64 [0, %$17] ; # ->\n; # (let (Pid @ Res (b32 1)) (setpgid Pid 0) (when Fg (tcsetpgrp 0 Pi...\n; # (b32 1)\n  %127 = alloca i32, i64 1\n; # (setpgid Pid 0)\n  %128 = call i32 @setpgid(i32 %75, i32 0)\n; # (when Fg (tcsetpgrp 0 Pid))\n  br i1 %125, label %$21, label %$22\n$21:\n  %129 = phi i64 [%120, %$14] ; # Exe\n  %130 = phi i64 [%121, %$14] ; # X\n  %131 = phi i8** [%122, %$14] ; # Av\n  %132 = phi i64 [%123, %$14] ; # Cmd\n  %133 = phi i32 [%124, %$14] ; # Tc\n  %134 = phi i1 [%125, %$14] ; # Fg\n  %135 = phi i32 [%75, %$14] ; # Pid\n  %136 = phi i32* [%127, %$14] ; # Res\n; # (tcsetpgrp 0 Pid)\n  %137 = call i32 @tcsetpgrp(i32 0, i32 %135)\n  br label %$22\n$22:\n  %138 = phi i64 [%120, %$14], [%129, %$21] ; # Exe\n  %139 = phi i64 [%121, %$14], [%130, %$21] ; # X\n  %140 = phi i8** [%122, %$14], [%131, %$21] ; # Av\n  %141 = phi i64 [%123, %$14], [%132, %$21] ; # Cmd\n  %142 = phi i32 [%124, %$14], [%133, %$21] ; # Tc\n  %143 = phi i1 [%125, %$14], [%134, %$21] ; # Fg\n  %144 = phi i32 [%75, %$14], [%135, %$21] ; # Pid\n  %145 = phi i32* [%127, %$14], [%136, %$21] ; # Res\n; # (loop (while (lt0 (waitWuntraced Pid Res)) (unless (== (gErrno) E...\n  br label %$23\n$23:\n  %146 = phi i64 [%138, %$22], [%279, %$40] ; # Exe\n  %147 = phi i64 [%139, %$22], [%280, %$40] ; # X\n  %148 = phi i8** [%140, %$22], [%281, %$40] ; # Av\n  %149 = phi i64 [%141, %$22], [%282, %$40] ; # Cmd\n  %150 = phi i32 [%142, %$22], [%283, %$40] ; # Tc\n  %151 = phi i1 [%143, %$22], [%284, %$40] ; # Fg\n  %152 = phi i32 [%144, %$22], [%285, %$40] ; # Pid\n  %153 = phi i32* [%145, %$22], [%286, %$40] ; # Res\n; # (while (lt0 (waitWuntraced Pid Res)) (unless (== (gErrno) EINTR) ...\n  br label %$24\n$24:\n  %154 = phi i64 [%146, %$23], [%182, %$30] ; # Exe\n  %155 = phi i64 [%147, %$23], [%183, %$30] ; # X\n  %156 = phi i8** [%148, %$23], [%184, %$30] ; # Av\n  %157 = phi i64 [%149, %$23], [%185, %$30] ; # Cmd\n  %158 = phi i32 [%150, %$23], [%186, %$30] ; # Tc\n  %159 = phi i1 [%151, %$23], [%187, %$30] ; # Fg\n  %160 = phi i32 [%152, %$23], [%188, %$30] ; # Pid\n  %161 = phi i32* [%153, %$23], [%189, %$30] ; # Res\n; # (waitWuntraced Pid Res)\n  %162 = call i32 @waitWuntraced(i32 %160, i32* %161)\n; # (lt0 (waitWuntraced Pid Res))\n  %163 = icmp slt i32 %162, 0\n  br i1 %163, label %$25, label %$26\n$25:\n  %164 = phi i64 [%154, %$24] ; # Exe\n  %165 = phi i64 [%155, %$24] ; # X\n  %166 = phi i8** [%156, %$24] ; # Av\n  %167 = phi i64 [%157, %$24] ; # Cmd\n  %168 = phi i32 [%158, %$24] ; # Tc\n  %169 = phi i1 [%159, %$24] ; # Fg\n  %170 = phi i32 [%160, %$24] ; # Pid\n  %171 = phi i32* [%161, %$24] ; # Res\n; # (unless (== (gErrno) EINTR) (err Exe 0 ($ \"wait pid\") null))\n; # (gErrno)\n  %172 = call i32 @gErrno()\n; # (== (gErrno) EINTR)\n  %173 = icmp eq i32 %172, 2\n  br i1 %173, label %$28, label %$27\n$27:\n  %174 = phi i64 [%164, %$25] ; # Exe\n  %175 = phi i64 [%165, %$25] ; # X\n  %176 = phi i8** [%166, %$25] ; # Av\n  %177 = phi i64 [%167, %$25] ; # Cmd\n  %178 = phi i32 [%168, %$25] ; # Tc\n  %179 = phi i1 [%169, %$25] ; # Fg\n  %180 = phi i32 [%170, %$25] ; # Pid\n  %181 = phi i32* [%171, %$25] ; # Res\n; # (err Exe 0 ($ \"wait pid\") null)\n  call void @err(i64 %174, i64 0, i8* bitcast ([9 x i8]* @$87 to i8*), i8* null)\n  unreachable\n$28:\n  %182 = phi i64 [%164, %$25] ; # Exe\n  %183 = phi i64 [%165, %$25] ; # X\n  %184 = phi i8** [%166, %$25] ; # Av\n  %185 = phi i64 [%167, %$25] ; # Cmd\n  %186 = phi i32 [%168, %$25] ; # Tc\n  %187 = phi i1 [%169, %$25] ; # Fg\n  %188 = phi i32 [%170, %$25] ; # Pid\n  %189 = phi i32* [%171, %$25] ; # Res\n; # (sigChk Exe)\n  %190 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %191 = icmp ne i32 %190, 0\n  br i1 %191, label %$29, label %$30\n$29:\n  %192 = phi i64 [%182, %$28] ; # Exe\n  call void @sighandler(i64 %192)\n  br label %$30\n$30:\n  %193 = phi i64 [%182, %$28], [%192, %$29] ; # Exe\n  br label %$24\n$26:\n  %194 = phi i64 [%154, %$24] ; # Exe\n  %195 = phi i64 [%155, %$24] ; # X\n  %196 = phi i8** [%156, %$24] ; # Av\n  %197 = phi i64 [%157, %$24] ; # Cmd\n  %198 = phi i32 [%158, %$24] ; # Tc\n  %199 = phi i1 [%159, %$24] ; # Fg\n  %200 = phi i32 [%160, %$24] ; # Pid\n  %201 = phi i32* [%161, %$24] ; # Res\n; # (when Fg (tcsetpgrp 0 Tc))\n  br i1 %199, label %$31, label %$32\n$31:\n  %202 = phi i64 [%194, %$26] ; # Exe\n  %203 = phi i64 [%195, %$26] ; # X\n  %204 = phi i8** [%196, %$26] ; # Av\n  %205 = phi i64 [%197, %$26] ; # Cmd\n  %206 = phi i32 [%198, %$26] ; # Tc\n  %207 = phi i1 [%199, %$26] ; # Fg\n  %208 = phi i32 [%200, %$26] ; # Pid\n  %209 = phi i32* [%201, %$26] ; # Res\n; # (tcsetpgrp 0 Tc)\n  %210 = call i32 @tcsetpgrp(i32 0, i32 %206)\n  br label %$32\n$32:\n  %211 = phi i64 [%194, %$26], [%202, %$31] ; # Exe\n  %212 = phi i64 [%195, %$26], [%203, %$31] ; # X\n  %213 = phi i8** [%196, %$26], [%204, %$31] ; # Av\n  %214 = phi i64 [%197, %$26], [%205, %$31] ; # Cmd\n  %215 = phi i32 [%198, %$26], [%206, %$31] ; # Tc\n  %216 = phi i1 [%199, %$26], [%207, %$31] ; # Fg\n  %217 = phi i32 [%200, %$26], [%208, %$31] ; # Pid\n  %218 = phi i32* [%201, %$26], [%209, %$31] ; # Res\n; # (? (=0 (wifStopped Res)) (set $At2 (cnt (i64 (val Res)))) (if (va...\n; # (wifStopped Res)\n  %219 = call i32 @wifStopped(i32* %218)\n; # (=0 (wifStopped Res))\n  %220 = icmp eq i32 %219, 0\n  br i1 %220, label %$35, label %$33\n$35:\n  %221 = phi i64 [%211, %$32] ; # Exe\n  %222 = phi i64 [%212, %$32] ; # X\n  %223 = phi i8** [%213, %$32] ; # Av\n  %224 = phi i64 [%214, %$32] ; # Cmd\n  %225 = phi i32 [%215, %$32] ; # Tc\n  %226 = phi i1 [%216, %$32] ; # Fg\n  %227 = phi i32 [%217, %$32] ; # Pid\n  %228 = phi i32* [%218, %$32] ; # Res\n; # (set $At2 (cnt (i64 (val Res))))\n; # (val Res)\n  %229 = load i32, i32* %228\n; # (i64 (val Res))\n  %230 = sext i32 %229 to i64\n; # (cnt (i64 (val Res)))\n  %231 = shl i64 %230, 4\n  %232 = or i64 %231, 2\n  %233 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %232, i64* %233\n; # (if (val Res) $Nil $T)\n; # (val Res)\n  %234 = load i32, i32* %228\n  %235 = icmp ne i32 %234, 0\n  br i1 %235, label %$36, label %$37\n$36:\n  %236 = phi i64 [%221, %$35] ; # Exe\n  %237 = phi i64 [%222, %$35] ; # X\n  %238 = phi i8** [%223, %$35] ; # Av\n  %239 = phi i64 [%224, %$35] ; # Cmd\n  %240 = phi i32 [%225, %$35] ; # Tc\n  %241 = phi i1 [%226, %$35] ; # Fg\n  %242 = phi i32 [%227, %$35] ; # Pid\n  %243 = phi i32* [%228, %$35] ; # Res\n  br label %$38\n$37:\n  %244 = phi i64 [%221, %$35] ; # Exe\n  %245 = phi i64 [%222, %$35] ; # X\n  %246 = phi i8** [%223, %$35] ; # Av\n  %247 = phi i64 [%224, %$35] ; # Cmd\n  %248 = phi i32 [%225, %$35] ; # Tc\n  %249 = phi i1 [%226, %$35] ; # Fg\n  %250 = phi i32 [%227, %$35] ; # Pid\n  %251 = phi i32* [%228, %$35] ; # Res\n  br label %$38\n$38:\n  %252 = phi i64 [%236, %$36], [%244, %$37] ; # Exe\n  %253 = phi i64 [%237, %$36], [%245, %$37] ; # X\n  %254 = phi i8** [%238, %$36], [%246, %$37] ; # Av\n  %255 = phi i64 [%239, %$36], [%247, %$37] ; # Cmd\n  %256 = phi i32 [%240, %$36], [%248, %$37] ; # Tc\n  %257 = phi i1 [%241, %$36], [%249, %$37] ; # Fg\n  %258 = phi i32 [%242, %$36], [%250, %$37] ; # Pid\n  %259 = phi i32* [%243, %$36], [%251, %$37] ; # Res\n  %260 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$36], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$37] ; # ->\n  br label %$34\n$33:\n  %261 = phi i64 [%211, %$32] ; # Exe\n  %262 = phi i64 [%212, %$32] ; # X\n  %263 = phi i8** [%213, %$32] ; # Av\n  %264 = phi i64 [%214, %$32] ; # Cmd\n  %265 = phi i32 [%215, %$32] ; # Tc\n  %266 = phi i1 [%216, %$32] ; # Fg\n  %267 = phi i32 [%217, %$32] ; # Pid\n  %268 = phi i32* [%218, %$32] ; # Res\n; # (repl 0 ($ \"+ \") $Nil)\n  %269 = call i64 @repl(i64 0, i8* bitcast ([3 x i8]* @$88 to i8*), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (when Fg (tcsetpgrp 0 Pid))\n  br i1 %266, label %$39, label %$40\n$39:\n  %270 = phi i64 [%261, %$33] ; # Exe\n  %271 = phi i64 [%262, %$33] ; # X\n  %272 = phi i8** [%263, %$33] ; # Av\n  %273 = phi i64 [%264, %$33] ; # Cmd\n  %274 = phi i32 [%265, %$33] ; # Tc\n  %275 = phi i1 [%266, %$33] ; # Fg\n  %276 = phi i32 [%267, %$33] ; # Pid\n  %277 = phi i32* [%268, %$33] ; # Res\n; # (tcsetpgrp 0 Pid)\n  %278 = call i32 @tcsetpgrp(i32 0, i32 %276)\n  br label %$40\n$40:\n  %279 = phi i64 [%261, %$33], [%270, %$39] ; # Exe\n  %280 = phi i64 [%262, %$33], [%271, %$39] ; # X\n  %281 = phi i8** [%263, %$33], [%272, %$39] ; # Av\n  %282 = phi i64 [%264, %$33], [%273, %$39] ; # Cmd\n  %283 = phi i32 [%265, %$33], [%274, %$39] ; # Tc\n  %284 = phi i1 [%266, %$33], [%275, %$39] ; # Fg\n  %285 = phi i32 [%267, %$33], [%276, %$39] ; # Pid\n  %286 = phi i32* [%268, %$33], [%277, %$39] ; # Res\n; # (val SIGCONT Sig)\n  %287 = getelementptr i32, i32* @Sig, i32 8\n  %288 = load i32, i32* %287\n; # (kill Pid (val SIGCONT Sig))\n  %289 = call i32 @kill(i32 %285, i32 %288)\n  br label %$23\n$34:\n  %290 = phi i64 [%252, %$38] ; # Exe\n  %291 = phi i64 [%253, %$38] ; # X\n  %292 = phi i8** [%254, %$38] ; # Av\n  %293 = phi i64 [%255, %$38] ; # Cmd\n  %294 = phi i32 [%256, %$38] ; # Tc\n  %295 = phi i1 [%257, %$38] ; # Fg\n  %296 = phi i32 [%258, %$38] ; # Pid\n  %297 = phi i32* [%259, %$38] ; # Res\n  %298 = phi i64 [%260, %$38] ; # ->\n  ret i64 %298\n}\n\ndefine i64 @_Ipid(i64) align 8 {\n$1:\n; # (let Io: (ioFrame (val $InFrames)) (if (and (Io: file) (> (Io: pi...\n; # (val $InFrames)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 40) to i8**)\n; # (if (and (Io: file) (> (Io: pid) 1)) (cnt (i64 (Io: pid))) $Nil)\n; # (and (Io: file) (> (Io: pid) 1))\n; # (Io: file)\n  %2 = getelementptr i8, i8* %1, i32 8\n  %3 = bitcast i8* %2 to i8**\n  %4 = load i8*, i8** %3\n  %5 = icmp ne i8* %4, null\n  br i1 %5, label %$3, label %$2\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n; # (Io: pid)\n  %7 = getelementptr i8, i8* %1, i32 24\n  %8 = bitcast i8* %7 to i32*\n  %9 = load i32, i32* %8\n; # (> (Io: pid) 1)\n  %10 = icmp sgt i32 %9, 1\n  br label %$2\n$2:\n  %11 = phi i64 [%0, %$1], [%6, %$3] ; # Exe\n  %12 = phi i1 [0, %$1], [%10, %$3] ; # ->\n  br i1 %12, label %$4, label %$5\n$4:\n  %13 = phi i64 [%11, %$2] ; # Exe\n; # (Io: pid)\n  %14 = getelementptr i8, i8* %1, i32 24\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n; # (i64 (Io: pid))\n  %17 = sext i32 %16 to i64\n; # (cnt (i64 (Io: pid)))\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  br label %$6\n$5:\n  %20 = phi i64 [%11, %$2] ; # Exe\n  br label %$6\n$6:\n  %21 = phi i64 [%13, %$4], [%20, %$5] ; # Exe\n  %22 = phi i64 [%19, %$4], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5] ; # ->\n  ret i64 %22\n}\n\ndefine i64 @_Opid(i64) align 8 {\n$1:\n; # (let Io: (ioFrame (val $OutFrames)) (if (and (Io: file) (> (Io: p...\n; # (val $OutFrames)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 48) to i8**)\n; # (if (and (Io: file) (> (Io: pid) 1)) (cnt (i64 (Io: pid))) $Nil)\n; # (and (Io: file) (> (Io: pid) 1))\n; # (Io: file)\n  %2 = getelementptr i8, i8* %1, i32 8\n  %3 = bitcast i8* %2 to i8**\n  %4 = load i8*, i8** %3\n  %5 = icmp ne i8* %4, null\n  br i1 %5, label %$3, label %$2\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n; # (Io: pid)\n  %7 = getelementptr i8, i8* %1, i32 24\n  %8 = bitcast i8* %7 to i32*\n  %9 = load i32, i32* %8\n; # (> (Io: pid) 1)\n  %10 = icmp sgt i32 %9, 1\n  br label %$2\n$2:\n  %11 = phi i64 [%0, %$1], [%6, %$3] ; # Exe\n  %12 = phi i1 [0, %$1], [%10, %$3] ; # ->\n  br i1 %12, label %$4, label %$5\n$4:\n  %13 = phi i64 [%11, %$2] ; # Exe\n; # (Io: pid)\n  %14 = getelementptr i8, i8* %1, i32 24\n  %15 = bitcast i8* %14 to i32*\n  %16 = load i32, i32* %15\n; # (i64 (Io: pid))\n  %17 = sext i32 %16 to i64\n; # (cnt (i64 (Io: pid)))\n  %18 = shl i64 %17, 4\n  %19 = or i64 %18, 2\n  br label %$6\n$5:\n  %20 = phi i64 [%11, %$2] ; # Exe\n  br label %$6\n$6:\n  %21 = phi i64 [%13, %$4], [%20, %$5] ; # Exe\n  %22 = phi i64 [%19, %$4], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5] ; # ->\n  ret i64 %22\n}\n\ndefine i64 @_Kill(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Pid (i32 (evCnt Exe X))) (if (kill Pid (if (ato...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (i32 (evCnt Exe X))\n  %5 = trunc i64 %4 to i32\n; # (if (kill Pid (if (atom (shift X)) (val SIGTERM Sig) (i32 (evCnt ...\n; # (if (atom (shift X)) (val SIGTERM Sig) (i32 (evCnt Exe X)))\n; # (shift X)\n  %6 = inttoptr i64 %3 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n; # (atom (shift X))\n  %9 = and i64 %8, 15\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$2, label %$3\n$2:\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = phi i64 [%8, %$1] ; # X\n  %13 = phi i32 [%5, %$1] ; # Pid\n; # (val SIGTERM Sig)\n  %14 = getelementptr i32, i32* @Sig, i32 6\n  %15 = load i32, i32* %14\n  br label %$4\n$3:\n  %16 = phi i64 [%0, %$1] ; # Exe\n  %17 = phi i64 [%8, %$1] ; # X\n  %18 = phi i32 [%5, %$1] ; # Pid\n; # (evCnt Exe X)\n  %19 = call i64 @evCnt(i64 %16, i64 %17)\n; # (i32 (evCnt Exe X))\n  %20 = trunc i64 %19 to i32\n  br label %$4\n$4:\n  %21 = phi i64 [%11, %$2], [%16, %$3] ; # Exe\n  %22 = phi i64 [%12, %$2], [%17, %$3] ; # X\n  %23 = phi i32 [%13, %$2], [%18, %$3] ; # Pid\n  %24 = phi i32 [%15, %$2], [%20, %$3] ; # ->\n; # (kill Pid (if (atom (shift X)) (val SIGTERM Sig) (i32 (evCnt Exe ...\n  %25 = call i32 @kill(i32 %5, i32 %24)\n  %26 = icmp ne i32 %25, 0\n  br i1 %26, label %$5, label %$6\n$5:\n  %27 = phi i64 [%21, %$4] ; # Exe\n  %28 = phi i64 [%22, %$4] ; # X\n  %29 = phi i32 [%23, %$4] ; # Pid\n  br label %$7\n$6:\n  %30 = phi i64 [%21, %$4] ; # Exe\n  %31 = phi i64 [%22, %$4] ; # X\n  %32 = phi i32 [%23, %$4] ; # Pid\n  br label %$7\n$7:\n  %33 = phi i64 [%27, %$5], [%30, %$6] ; # Exe\n  %34 = phi i64 [%28, %$5], [%31, %$6] ; # X\n  %35 = phi i32 [%29, %$5], [%32, %$6] ; # Pid\n  %36 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$6] ; # ->\n  ret i64 %36\n}\n\ndefine i64 @_Fork(i64) align 8 {\n$1:\n; # (if (forkLisp Exe) (cnt (i64 @)) $Nil)\n; # (forkLisp Exe)\n  %1 = call i32 @forkLisp(i64 %0)\n  %2 = icmp ne i32 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (i64 @)\n  %4 = sext i32 %1 to i64\n; # (cnt (i64 @))\n  %5 = shl i64 %4, 4\n  %6 = or i64 %5, 2\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$4:\n  %8 = phi i64 [%3, %$2], [%7, %$3] ; # Exe\n  %9 = phi i64 [%6, %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %9\n}\n\ndefine i64 @_Detach(i64) align 8 {\n$1:\n; # (prog1 (val $PPid) (unless (nil? @) (set $PPid $Nil) (close (val ...\n; # (val $PPid)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 216) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (unless (nil? @) (set $PPid $Nil) (close (val $Tell)) (set $Tell ...\n; # (nil? @)\n  %3 = icmp eq i64 %2, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Exe\n; # (set $PPid $Nil)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 216) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %5\n; # (val $Tell)\n  %6 = load i32, i32* @$Tell\n; # (close (val $Tell))\n  %7 = call i32 @close(i32 %6)\n; # (set $Tell 0)\n  store i32 0, i32* @$Tell\n; # (let H (val $Hear) (close H) (closeInFile H) (closeOutFile H))\n; # (val $Hear)\n  %8 = load i32, i32* @$Hear\n; # (close H)\n  %9 = call i32 @close(i32 %8)\n; # (closeInFile H)\n  call void @closeInFile(i32 %8)\n; # (closeOutFile H)\n  call void @closeOutFile(i32 %8)\n; # (set $Hear 0)\n  store i32 0, i32* @$Hear\n; # (val $Mic)\n  %10 = load i32, i32* @$Mic\n; # (close (val $Mic))\n  %11 = call i32 @close(i32 %10)\n; # (set $Mic 0)\n  store i32 0, i32* @$Mic\n; # (set $Slot 0)\n  store i32 0, i32* @$Slot\n; # (setsid)\n  %12 = call i32 @setsid()\n  br label %$3\n$3:\n  %13 = phi i64 [%0, %$1], [%4, %$2] ; # Exe\n  ret i64 %2\n}\n\ndefine i64 @_Bye(i64) align 8 {\n$1:\n; # (if (nil? (eval (cadr Exe))) 0 (i32 (xCnt Exe @)))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n; # (xCnt Exe @)\n  %22 = call i64 @xCnt(i64 %21, i64 %18)\n; # (i32 (xCnt Exe @))\n  %23 = trunc i64 %22 to i32\n  br label %$9\n$9:\n  %24 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %25 = phi i32 [0, %$7], [%23, %$8] ; # ->\n; # (bye (if (nil? (eval (cadr Exe))) 0 (i32 (xCnt Exe @))))\n  call void @bye(i32 %25)\n  unreachable\n}\n\ndefine void @makeErr(i64) align 8 {\n$1:\n; # (err Exe 0 ($ \"Not making\") null)\n  call void @err(i64 %0, i64 0, i8* bitcast ([11 x i8]* @$89 to i8*), i8* null)\n  unreachable\n}\n\ndefine i64 @_Car(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n  ret i64 %26\n}\n\ndefine i64 @_Cdr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n  ret i64 %33\n}\n\ndefine i64 @_Caar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n  ret i64 %34\n}\n\ndefine i64 @_Cadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n  ret i64 %41\n}\n\ndefine i64 @_Cdar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n  ret i64 %41\n}\n\ndefine i64 @_Cddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  ret i64 %48\n}\n\ndefine i64 @_Caaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkA (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$11:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %38, i64 %37)\n  unreachable\n$12:\n  %39 = phi i64 [%34, %$10] ; # X\n  %40 = phi i64 [%0, %$10] ; # Exe\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n  ret i64 %42\n}\n\ndefine i64 @_Caadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkA (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n  ret i64 %49\n}\n\ndefine i64 @_Cadar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkA (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n  ret i64 %49\n}\n\ndefine i64 @_Caddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkA (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$15:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %52, i64 %51)\n  unreachable\n$16:\n  %53 = phi i64 [%48, %$14] ; # X\n  %54 = phi i64 [%0, %$14] ; # Exe\n  %55 = inttoptr i64 %53 to i64*\n  %56 = load i64, i64* %55\n  ret i64 %56\n}\n\ndefine i64 @_Cdaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkD (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$12:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  %39 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %40 = phi i64 [%34, %$10], [%37, %$12] ; # X\n  %41 = phi i64 [%0, %$10], [%38, %$12] ; # Exe\n  %42 = phi i1 [1, %$10], [%39, %$12] ; # ->\n  br i1 %42, label %$14, label %$13\n$13:\n  %43 = phi i64 [%40, %$11] ; # X\n  %44 = phi i64 [%41, %$11] ; # Exe\n  call void @lstErr(i64 %44, i64 %43)\n  unreachable\n$14:\n  %45 = phi i64 [%40, %$11] ; # X\n  %46 = phi i64 [%41, %$11] ; # Exe\n  %47 = inttoptr i64 %45 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  ret i64 %49\n}\n\ndefine i64 @_Cdadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkD (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  ret i64 %56\n}\n\ndefine i64 @_Cddar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkD (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  ret i64 %56\n}\n\ndefine i64 @_Cdddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkD (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$16:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  %53 = icmp eq i64 %51, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %54 = phi i64 [%48, %$14], [%51, %$16] ; # X\n  %55 = phi i64 [%0, %$14], [%52, %$16] ; # Exe\n  %56 = phi i1 [1, %$14], [%53, %$16] ; # ->\n  br i1 %56, label %$18, label %$17\n$17:\n  %57 = phi i64 [%54, %$15] ; # X\n  %58 = phi i64 [%55, %$15] ; # Exe\n  call void @lstErr(i64 %58, i64 %57)\n  unreachable\n$18:\n  %59 = phi i64 [%54, %$15] ; # X\n  %60 = phi i64 [%55, %$15] ; # Exe\n  %61 = inttoptr i64 %59 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n  ret i64 %63\n}\n\ndefine i64 @_Caaaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkA (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$11:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %38, i64 %37)\n  unreachable\n$12:\n  %39 = phi i64 [%34, %$10] ; # X\n  %40 = phi i64 [%0, %$10] ; # Exe\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (chkA (chkA (chkA (chkA (eval (cadr Exe))))))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$14\n$13:\n  %45 = phi i64 [%42, %$12] ; # X\n  %46 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %46, i64 %45)\n  unreachable\n$14:\n  %47 = phi i64 [%42, %$12] ; # X\n  %48 = phi i64 [%0, %$12] ; # Exe\n  %49 = inttoptr i64 %47 to i64*\n  %50 = load i64, i64* %49\n  ret i64 %50\n}\n\ndefine i64 @_Caaadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkA (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n; # (chkA (chkA (chkA (chkD (eval (cadr Exe))))))\n  %50 = and i64 %49, 6\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$15:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %53, i64 %52)\n  unreachable\n$16:\n  %54 = phi i64 [%49, %$14] ; # X\n  %55 = phi i64 [%0, %$14] ; # Exe\n  %56 = inttoptr i64 %54 to i64*\n  %57 = load i64, i64* %56\n  ret i64 %57\n}\n\ndefine i64 @_Caadar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkA (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n; # (chkA (chkA (chkD (chkA (eval (cadr Exe))))))\n  %50 = and i64 %49, 6\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$15:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %53, i64 %52)\n  unreachable\n$16:\n  %54 = phi i64 [%49, %$14] ; # X\n  %55 = phi i64 [%0, %$14] ; # Exe\n  %56 = inttoptr i64 %54 to i64*\n  %57 = load i64, i64* %56\n  ret i64 %57\n}\n\ndefine i64 @_Caaddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkA (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$15:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %52, i64 %51)\n  unreachable\n$16:\n  %53 = phi i64 [%48, %$14] ; # X\n  %54 = phi i64 [%0, %$14] ; # Exe\n  %55 = inttoptr i64 %53 to i64*\n  %56 = load i64, i64* %55\n; # (chkA (chkA (chkD (chkD (eval (cadr Exe))))))\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$17:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  call void @varErr(i64 %60, i64 %59)\n  unreachable\n$18:\n  %61 = phi i64 [%56, %$16] ; # X\n  %62 = phi i64 [%0, %$16] ; # Exe\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Cadaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkD (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$12:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  %39 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %40 = phi i64 [%34, %$10], [%37, %$12] ; # X\n  %41 = phi i64 [%0, %$10], [%38, %$12] ; # Exe\n  %42 = phi i1 [1, %$10], [%39, %$12] ; # ->\n  br i1 %42, label %$14, label %$13\n$13:\n  %43 = phi i64 [%40, %$11] ; # X\n  %44 = phi i64 [%41, %$11] ; # Exe\n  call void @lstErr(i64 %44, i64 %43)\n  unreachable\n$14:\n  %45 = phi i64 [%40, %$11] ; # X\n  %46 = phi i64 [%41, %$11] ; # Exe\n  %47 = inttoptr i64 %45 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n; # (chkA (chkD (chkA (chkA (eval (cadr Exe))))))\n  %50 = and i64 %49, 6\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$15:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %53, i64 %52)\n  unreachable\n$16:\n  %54 = phi i64 [%49, %$14] ; # X\n  %55 = phi i64 [%0, %$14] ; # Exe\n  %56 = inttoptr i64 %54 to i64*\n  %57 = load i64, i64* %56\n  ret i64 %57\n}\n\ndefine i64 @_Cadadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkD (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n; # (chkA (chkD (chkA (chkD (eval (cadr Exe))))))\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$17:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  call void @varErr(i64 %60, i64 %59)\n  unreachable\n$18:\n  %61 = phi i64 [%56, %$16] ; # X\n  %62 = phi i64 [%0, %$16] ; # Exe\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Caddar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkD (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n; # (chkA (chkD (chkD (chkA (eval (cadr Exe))))))\n  %57 = and i64 %56, 6\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$17:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  call void @varErr(i64 %60, i64 %59)\n  unreachable\n$18:\n  %61 = phi i64 [%56, %$16] ; # X\n  %62 = phi i64 [%0, %$16] ; # Exe\n  %63 = inttoptr i64 %61 to i64*\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Cadddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkD (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$16:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  %53 = icmp eq i64 %51, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %54 = phi i64 [%48, %$14], [%51, %$16] ; # X\n  %55 = phi i64 [%0, %$14], [%52, %$16] ; # Exe\n  %56 = phi i1 [1, %$14], [%53, %$16] ; # ->\n  br i1 %56, label %$18, label %$17\n$17:\n  %57 = phi i64 [%54, %$15] ; # X\n  %58 = phi i64 [%55, %$15] ; # Exe\n  call void @lstErr(i64 %58, i64 %57)\n  unreachable\n$18:\n  %59 = phi i64 [%54, %$15] ; # X\n  %60 = phi i64 [%55, %$15] ; # Exe\n  %61 = inttoptr i64 %59 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n; # (chkA (chkD (chkD (chkD (eval (cadr Exe))))))\n  %64 = and i64 %63, 6\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$19, label %$20\n$19:\n  %66 = phi i64 [%63, %$18] ; # X\n  %67 = phi i64 [%0, %$18] ; # Exe\n  call void @varErr(i64 %67, i64 %66)\n  unreachable\n$20:\n  %68 = phi i64 [%63, %$18] ; # X\n  %69 = phi i64 [%0, %$18] ; # Exe\n  %70 = inttoptr i64 %68 to i64*\n  %71 = load i64, i64* %70\n  ret i64 %71\n}\n\ndefine i64 @_Cdaaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkA (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 6\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$11:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %38, i64 %37)\n  unreachable\n$12:\n  %39 = phi i64 [%34, %$10] ; # X\n  %40 = phi i64 [%0, %$10] ; # Exe\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (chkD (chkA (chkA (chkA (eval (cadr Exe))))))\n  %43 = and i64 %42, 15\n  %44 = icmp eq i64 %43, 0\n  br i1 %44, label %$13, label %$14\n$14:\n  %45 = phi i64 [%42, %$12] ; # X\n  %46 = phi i64 [%0, %$12] ; # Exe\n  %47 = icmp eq i64 %45, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %48 = phi i64 [%42, %$12], [%45, %$14] ; # X\n  %49 = phi i64 [%0, %$12], [%46, %$14] ; # Exe\n  %50 = phi i1 [1, %$12], [%47, %$14] ; # ->\n  br i1 %50, label %$16, label %$15\n$15:\n  %51 = phi i64 [%48, %$13] ; # X\n  %52 = phi i64 [%49, %$13] ; # Exe\n  call void @lstErr(i64 %52, i64 %51)\n  unreachable\n$16:\n  %53 = phi i64 [%48, %$13] ; # X\n  %54 = phi i64 [%49, %$13] ; # Exe\n  %55 = inttoptr i64 %53 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n  ret i64 %57\n}\n\ndefine i64 @_Cdaadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkA (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n; # (chkD (chkA (chkA (chkD (eval (cadr Exe))))))\n  %50 = and i64 %49, 15\n  %51 = icmp eq i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$16:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  %54 = icmp eq i64 %52, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %55 = phi i64 [%49, %$14], [%52, %$16] ; # X\n  %56 = phi i64 [%0, %$14], [%53, %$16] ; # Exe\n  %57 = phi i1 [1, %$14], [%54, %$16] ; # ->\n  br i1 %57, label %$18, label %$17\n$17:\n  %58 = phi i64 [%55, %$15] ; # X\n  %59 = phi i64 [%56, %$15] ; # Exe\n  call void @lstErr(i64 %59, i64 %58)\n  unreachable\n$18:\n  %60 = phi i64 [%55, %$15] ; # X\n  %61 = phi i64 [%56, %$15] ; # Exe\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Cdadar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkA (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  call void @varErr(i64 %45, i64 %44)\n  unreachable\n$14:\n  %46 = phi i64 [%41, %$12] ; # X\n  %47 = phi i64 [%0, %$12] ; # Exe\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n; # (chkD (chkA (chkD (chkA (eval (cadr Exe))))))\n  %50 = and i64 %49, 15\n  %51 = icmp eq i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$16:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  %54 = icmp eq i64 %52, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %55 = phi i64 [%49, %$14], [%52, %$16] ; # X\n  %56 = phi i64 [%0, %$14], [%53, %$16] ; # Exe\n  %57 = phi i1 [1, %$14], [%54, %$16] ; # ->\n  br i1 %57, label %$18, label %$17\n$17:\n  %58 = phi i64 [%55, %$15] ; # X\n  %59 = phi i64 [%56, %$15] ; # Exe\n  call void @lstErr(i64 %59, i64 %58)\n  unreachable\n$18:\n  %60 = phi i64 [%55, %$15] ; # X\n  %61 = phi i64 [%56, %$15] ; # Exe\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Cdaddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkA (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 6\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$15:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  call void @varErr(i64 %52, i64 %51)\n  unreachable\n$16:\n  %53 = phi i64 [%48, %$14] ; # X\n  %54 = phi i64 [%0, %$14] ; # Exe\n  %55 = inttoptr i64 %53 to i64*\n  %56 = load i64, i64* %55\n; # (chkD (chkA (chkD (chkD (eval (cadr Exe))))))\n  %57 = and i64 %56, 15\n  %58 = icmp eq i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$18:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  %61 = icmp eq i64 %59, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$17\n$17:\n  %62 = phi i64 [%56, %$16], [%59, %$18] ; # X\n  %63 = phi i64 [%0, %$16], [%60, %$18] ; # Exe\n  %64 = phi i1 [1, %$16], [%61, %$18] ; # ->\n  br i1 %64, label %$20, label %$19\n$19:\n  %65 = phi i64 [%62, %$17] ; # X\n  %66 = phi i64 [%63, %$17] ; # Exe\n  call void @lstErr(i64 %66, i64 %65)\n  unreachable\n$20:\n  %67 = phi i64 [%62, %$17] ; # X\n  %68 = phi i64 [%63, %$17] ; # Exe\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  ret i64 %71\n}\n\ndefine i64 @_Cddaar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkA (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 6\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$9:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  call void @varErr(i64 %30, i64 %29)\n  unreachable\n$10:\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%0, %$8] ; # Exe\n  %33 = inttoptr i64 %31 to i64*\n  %34 = load i64, i64* %33\n; # (chkD (chkA (chkA (eval (cadr Exe)))))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$12:\n  %37 = phi i64 [%34, %$10] ; # X\n  %38 = phi i64 [%0, %$10] ; # Exe\n  %39 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %40 = phi i64 [%34, %$10], [%37, %$12] ; # X\n  %41 = phi i64 [%0, %$10], [%38, %$12] ; # Exe\n  %42 = phi i1 [1, %$10], [%39, %$12] ; # ->\n  br i1 %42, label %$14, label %$13\n$13:\n  %43 = phi i64 [%40, %$11] ; # X\n  %44 = phi i64 [%41, %$11] ; # Exe\n  call void @lstErr(i64 %44, i64 %43)\n  unreachable\n$14:\n  %45 = phi i64 [%40, %$11] ; # X\n  %46 = phi i64 [%41, %$11] ; # Exe\n  %47 = inttoptr i64 %45 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n; # (chkD (chkD (chkA (chkA (eval (cadr Exe))))))\n  %50 = and i64 %49, 15\n  %51 = icmp eq i64 %50, 0\n  br i1 %51, label %$15, label %$16\n$16:\n  %52 = phi i64 [%49, %$14] ; # X\n  %53 = phi i64 [%0, %$14] ; # Exe\n  %54 = icmp eq i64 %52, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %55 = phi i64 [%49, %$14], [%52, %$16] ; # X\n  %56 = phi i64 [%0, %$14], [%53, %$16] ; # Exe\n  %57 = phi i1 [1, %$14], [%54, %$16] ; # ->\n  br i1 %57, label %$18, label %$17\n$17:\n  %58 = phi i64 [%55, %$15] ; # X\n  %59 = phi i64 [%56, %$15] ; # Exe\n  call void @lstErr(i64 %59, i64 %58)\n  unreachable\n$18:\n  %60 = phi i64 [%55, %$15] ; # X\n  %61 = phi i64 [%56, %$15] ; # Exe\n  %62 = inttoptr i64 %60 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n  ret i64 %64\n}\n\ndefine i64 @_Cddadr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkA (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$11:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  call void @varErr(i64 %37, i64 %36)\n  unreachable\n$12:\n  %38 = phi i64 [%33, %$10] ; # X\n  %39 = phi i64 [%0, %$10] ; # Exe\n  %40 = inttoptr i64 %38 to i64*\n  %41 = load i64, i64* %40\n; # (chkD (chkA (chkD (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n; # (chkD (chkD (chkA (chkD (eval (cadr Exe))))))\n  %57 = and i64 %56, 15\n  %58 = icmp eq i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$18:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  %61 = icmp eq i64 %59, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$17\n$17:\n  %62 = phi i64 [%56, %$16], [%59, %$18] ; # X\n  %63 = phi i64 [%0, %$16], [%60, %$18] ; # Exe\n  %64 = phi i1 [1, %$16], [%61, %$18] ; # ->\n  br i1 %64, label %$20, label %$19\n$19:\n  %65 = phi i64 [%62, %$17] ; # X\n  %66 = phi i64 [%63, %$17] ; # Exe\n  call void @lstErr(i64 %66, i64 %65)\n  unreachable\n$20:\n  %67 = phi i64 [%62, %$17] ; # X\n  %68 = phi i64 [%63, %$17] ; # Exe\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  ret i64 %71\n}\n\ndefine i64 @_Cdddar(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkA (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  call void @varErr(i64 %22, i64 %21)\n  unreachable\n$8:\n  %23 = phi i64 [%18, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = inttoptr i64 %23 to i64*\n  %26 = load i64, i64* %25\n; # (chkD (chkA (eval (cadr Exe))))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$9, label %$10\n$10:\n  %29 = phi i64 [%26, %$8] ; # X\n  %30 = phi i64 [%0, %$8] ; # Exe\n  %31 = icmp eq i64 %29, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$9\n$9:\n  %32 = phi i64 [%26, %$8], [%29, %$10] ; # X\n  %33 = phi i64 [%0, %$8], [%30, %$10] ; # Exe\n  %34 = phi i1 [1, %$8], [%31, %$10] ; # ->\n  br i1 %34, label %$12, label %$11\n$11:\n  %35 = phi i64 [%32, %$9] ; # X\n  %36 = phi i64 [%33, %$9] ; # Exe\n  call void @lstErr(i64 %36, i64 %35)\n  unreachable\n$12:\n  %37 = phi i64 [%32, %$9] ; # X\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = inttoptr i64 %37 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (chkD (chkD (chkA (eval (cadr Exe)))))\n  %42 = and i64 %41, 15\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$14\n$14:\n  %44 = phi i64 [%41, %$12] ; # X\n  %45 = phi i64 [%0, %$12] ; # Exe\n  %46 = icmp eq i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$13\n$13:\n  %47 = phi i64 [%41, %$12], [%44, %$14] ; # X\n  %48 = phi i64 [%0, %$12], [%45, %$14] ; # Exe\n  %49 = phi i1 [1, %$12], [%46, %$14] ; # ->\n  br i1 %49, label %$16, label %$15\n$15:\n  %50 = phi i64 [%47, %$13] ; # X\n  %51 = phi i64 [%48, %$13] ; # Exe\n  call void @lstErr(i64 %51, i64 %50)\n  unreachable\n$16:\n  %52 = phi i64 [%47, %$13] ; # X\n  %53 = phi i64 [%48, %$13] ; # Exe\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n; # (chkD (chkD (chkD (chkA (eval (cadr Exe))))))\n  %57 = and i64 %56, 15\n  %58 = icmp eq i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$18:\n  %59 = phi i64 [%56, %$16] ; # X\n  %60 = phi i64 [%0, %$16] ; # Exe\n  %61 = icmp eq i64 %59, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$17\n$17:\n  %62 = phi i64 [%56, %$16], [%59, %$18] ; # X\n  %63 = phi i64 [%0, %$16], [%60, %$18] ; # Exe\n  %64 = phi i1 [1, %$16], [%61, %$18] ; # ->\n  br i1 %64, label %$20, label %$19\n$19:\n  %65 = phi i64 [%62, %$17] ; # X\n  %66 = phi i64 [%63, %$17] ; # Exe\n  call void @lstErr(i64 %66, i64 %65)\n  unreachable\n$20:\n  %67 = phi i64 [%62, %$17] ; # X\n  %68 = phi i64 [%63, %$17] ; # Exe\n  %69 = inttoptr i64 %67 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  ret i64 %71\n}\n\ndefine i64 @_Cddddr(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (chkD (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$8:\n  %21 = phi i64 [%18, %$2] ; # X\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %24 = phi i64 [%18, %$2], [%21, %$8] ; # X\n  %25 = phi i64 [%0, %$2], [%22, %$8] ; # Exe\n  %26 = phi i1 [1, %$2], [%23, %$8] ; # ->\n  br i1 %26, label %$10, label %$9\n$9:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = phi i64 [%25, %$7] ; # Exe\n  call void @lstErr(i64 %28, i64 %27)\n  unreachable\n$10:\n  %29 = phi i64 [%24, %$7] ; # X\n  %30 = phi i64 [%25, %$7] ; # Exe\n  %31 = inttoptr i64 %29 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (chkD (chkD (eval (cadr Exe))))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$11, label %$12\n$12:\n  %36 = phi i64 [%33, %$10] ; # X\n  %37 = phi i64 [%0, %$10] ; # Exe\n  %38 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$11\n$11:\n  %39 = phi i64 [%33, %$10], [%36, %$12] ; # X\n  %40 = phi i64 [%0, %$10], [%37, %$12] ; # Exe\n  %41 = phi i1 [1, %$10], [%38, %$12] ; # ->\n  br i1 %41, label %$14, label %$13\n$13:\n  %42 = phi i64 [%39, %$11] ; # X\n  %43 = phi i64 [%40, %$11] ; # Exe\n  call void @lstErr(i64 %43, i64 %42)\n  unreachable\n$14:\n  %44 = phi i64 [%39, %$11] ; # X\n  %45 = phi i64 [%40, %$11] ; # Exe\n  %46 = inttoptr i64 %44 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (chkD (chkD (chkD (eval (cadr Exe)))))\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$15, label %$16\n$16:\n  %51 = phi i64 [%48, %$14] ; # X\n  %52 = phi i64 [%0, %$14] ; # Exe\n  %53 = icmp eq i64 %51, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$15\n$15:\n  %54 = phi i64 [%48, %$14], [%51, %$16] ; # X\n  %55 = phi i64 [%0, %$14], [%52, %$16] ; # Exe\n  %56 = phi i1 [1, %$14], [%53, %$16] ; # ->\n  br i1 %56, label %$18, label %$17\n$17:\n  %57 = phi i64 [%54, %$15] ; # X\n  %58 = phi i64 [%55, %$15] ; # Exe\n  call void @lstErr(i64 %58, i64 %57)\n  unreachable\n$18:\n  %59 = phi i64 [%54, %$15] ; # X\n  %60 = phi i64 [%55, %$15] ; # Exe\n  %61 = inttoptr i64 %59 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n; # (chkD (chkD (chkD (chkD (eval (cadr Exe))))))\n  %64 = and i64 %63, 15\n  %65 = icmp eq i64 %64, 0\n  br i1 %65, label %$19, label %$20\n$20:\n  %66 = phi i64 [%63, %$18] ; # X\n  %67 = phi i64 [%0, %$18] ; # Exe\n  %68 = icmp eq i64 %66, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$19\n$19:\n  %69 = phi i64 [%63, %$18], [%66, %$20] ; # X\n  %70 = phi i64 [%0, %$18], [%67, %$20] ; # Exe\n  %71 = phi i1 [1, %$18], [%68, %$20] ; # ->\n  br i1 %71, label %$22, label %$21\n$21:\n  %72 = phi i64 [%69, %$19] ; # X\n  %73 = phi i64 [%70, %$19] ; # Exe\n  call void @lstErr(i64 %73, i64 %72)\n  unreachable\n$22:\n  %74 = phi i64 [%69, %$19] ; # X\n  %75 = phi i64 [%70, %$19] ; # Exe\n  %76 = inttoptr i64 %74 to i64*\n  %77 = getelementptr i64, i64* %76, i32 1\n  %78 = load i64, i64* %77\n  ret i64 %78\n}\n\ndefine i64 @_Nth(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X)))) (loop (? (atom Y) Y) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (loop (? (atom Y) Y) (let C (evCnt Exe X) (? (lt0 (dec 'C)) $Nil)...\n  br label %$7\n$7:\n  %29 = phi i64 [%0, %$2], [%76, %$16] ; # Exe\n  %30 = phi i64 [%6, %$2], [%77, %$16] ; # X\n  %31 = phi i64 [%20, %$2], [%80, %$16] ; # Y\n; # (? (atom Y) Y)\n; # (atom Y)\n  %32 = and i64 %31, 15\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$10, label %$8\n$10:\n  %34 = phi i64 [%29, %$7] ; # Exe\n  %35 = phi i64 [%30, %$7] ; # X\n  %36 = phi i64 [%31, %$7] ; # Y\n  br label %$9\n$8:\n  %37 = phi i64 [%29, %$7] ; # Exe\n  %38 = phi i64 [%30, %$7] ; # X\n  %39 = phi i64 [%31, %$7] ; # Y\n; # (let C (evCnt Exe X) (? (lt0 (dec 'C)) $Nil) (while (ge0 (dec 'C)...\n; # (evCnt Exe X)\n  %40 = call i64 @evCnt(i64 %37, i64 %38)\n; # (? (lt0 (dec 'C)) $Nil)\n; # (dec 'C)\n  %41 = sub i64 %40, 1\n; # (lt0 (dec 'C))\n  %42 = icmp slt i64 %41, 0\n  br i1 %42, label %$12, label %$11\n$12:\n  %43 = phi i64 [%37, %$8] ; # Exe\n  %44 = phi i64 [%38, %$8] ; # X\n  %45 = phi i64 [%39, %$8] ; # Y\n  %46 = phi i64 [%41, %$8] ; # C\n  br label %$9\n$11:\n  %47 = phi i64 [%37, %$8] ; # Exe\n  %48 = phi i64 [%38, %$8] ; # X\n  %49 = phi i64 [%39, %$8] ; # Y\n  %50 = phi i64 [%41, %$8] ; # C\n; # (while (ge0 (dec 'C)) (shift Y))\n  br label %$13\n$13:\n  %51 = phi i64 [%47, %$11], [%57, %$14] ; # Exe\n  %52 = phi i64 [%48, %$11], [%58, %$14] ; # X\n  %53 = phi i64 [%49, %$11], [%63, %$14] ; # Y\n  %54 = phi i64 [%50, %$11], [%60, %$14] ; # C\n; # (dec 'C)\n  %55 = sub i64 %54, 1\n; # (ge0 (dec 'C))\n  %56 = icmp sge i64 %55, 0\n  br i1 %56, label %$14, label %$15\n$14:\n  %57 = phi i64 [%51, %$13] ; # Exe\n  %58 = phi i64 [%52, %$13] ; # X\n  %59 = phi i64 [%53, %$13] ; # Y\n  %60 = phi i64 [%55, %$13] ; # C\n; # (shift Y)\n  %61 = inttoptr i64 %59 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n  br label %$13\n$15:\n  %64 = phi i64 [%51, %$13] ; # Exe\n  %65 = phi i64 [%52, %$13] ; # X\n  %66 = phi i64 [%53, %$13] ; # Y\n  %67 = phi i64 [%55, %$13] ; # C\n; # (? (atom (shift X)) Y)\n; # (shift X)\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n; # (atom (shift X))\n  %71 = and i64 %70, 15\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$17, label %$16\n$17:\n  %73 = phi i64 [%64, %$15] ; # Exe\n  %74 = phi i64 [%70, %$15] ; # X\n  %75 = phi i64 [%66, %$15] ; # Y\n  br label %$9\n$16:\n  %76 = phi i64 [%64, %$15] ; # Exe\n  %77 = phi i64 [%70, %$15] ; # X\n  %78 = phi i64 [%66, %$15] ; # Y\n; # (car Y)\n  %79 = inttoptr i64 %78 to i64*\n  %80 = load i64, i64* %79\n  br label %$7\n$9:\n  %81 = phi i64 [%34, %$10], [%43, %$12], [%73, %$17] ; # Exe\n  %82 = phi i64 [%35, %$10], [%44, %$12], [%74, %$17] ; # X\n  %83 = phi i64 [%36, %$10], [%45, %$12], [%75, %$17] ; # Y\n  %84 = phi i64 [%36, %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%75, %$17] ; # ->\n; # (drop *Safe)\n  %85 = inttoptr i64 %24 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  %87 = load i64, i64* %86\n  %88 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %87, i64* %88\n  ret i64 %84\n}\n\ndefine i64 @_Con(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (set 2 (save (needPair Exe (eval (++ X)))) (eval...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (set 2 (save (needPair Exe (eval (++ X)))) (eval (car X)))\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needPair Exe (eval (++ X)))\n  %21 = and i64 %20, 15\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$7, label %$8\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @pairErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n; # (save (needPair Exe (eval (++ X))))\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %28 = load i64, i64* %27\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %25, i64* %31\n  %32 = add i64 %30, 8\n  %33 = inttoptr i64 %32 to i64*\n  store i64 %28, i64* %33\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %30, i64* %34\n; # (car X)\n  %35 = inttoptr i64 %6 to i64*\n  %36 = load i64, i64* %35\n; # (eval (car X))\n  %37 = and i64 %36, 6\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  br label %$9\n$10:\n  %40 = phi i64 [%36, %$8] ; # X\n  %41 = and i64 %40, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$13, label %$12\n$13:\n  %43 = phi i64 [%40, %$10] ; # X\n  %44 = inttoptr i64 %43 to i64*\n  %45 = load i64, i64* %44\n  br label %$9\n$12:\n  %46 = phi i64 [%40, %$10] ; # X\n  %47 = call i64 @evList(i64 %46)\n  br label %$9\n$9:\n  %48 = phi i64 [%39, %$11], [%43, %$13], [%46, %$12] ; # X\n  %49 = phi i64 [%39, %$11], [%45, %$13], [%47, %$12] ; # ->\n  %50 = inttoptr i64 %25 to i64*\n  %51 = getelementptr i64, i64* %50, i32 1\n  store i64 %49, i64* %51\n; # (drop *Safe)\n  %52 = inttoptr i64 %30 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %54, i64* %55\n  ret i64 %49\n}\n\ndefine i64 @_Cons(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (cons (eval (car X)) $Nil) R (save Y)) (while...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %19 = call i64 @cons(i64 %18, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %21 = load i64, i64* %20\n  %22 = alloca i64, i64 2, align 16\n  %23 = ptrtoint i64* %22 to i64\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %19, i64* %24\n  %25 = add i64 %23, 8\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %23, i64* %27\n; # (while (pair (cdr (shift X))) (setq Y (set 2 Y (cons (eval (car X...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$2], [%40, %$10] ; # Exe\n  %29 = phi i64 [%3, %$2], [%41, %$10] ; # X\n  %30 = phi i64 [%19, %$2], [%59, %$10] ; # Y\n  %31 = phi i64 [%19, %$2], [%43, %$10] ; # R\n; # (shift X)\n  %32 = inttoptr i64 %29 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n; # (cdr (shift X))\n  %35 = inttoptr i64 %34 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n; # (pair (cdr (shift X)))\n  %38 = and i64 %37, 15\n  %39 = icmp eq i64 %38, 0\n  br i1 %39, label %$8, label %$9\n$8:\n  %40 = phi i64 [%28, %$7] ; # Exe\n  %41 = phi i64 [%34, %$7] ; # X\n  %42 = phi i64 [%30, %$7] ; # Y\n  %43 = phi i64 [%31, %$7] ; # R\n; # (set 2 Y (cons (eval (car X)) $Nil))\n; # (car X)\n  %44 = inttoptr i64 %41 to i64*\n  %45 = load i64, i64* %44\n; # (eval (car X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$12, label %$11\n$12:\n  %48 = phi i64 [%45, %$8] ; # X\n  br label %$10\n$11:\n  %49 = phi i64 [%45, %$8] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$14, label %$13\n$14:\n  %52 = phi i64 [%49, %$11] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$10\n$13:\n  %55 = phi i64 [%49, %$11] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$10\n$10:\n  %57 = phi i64 [%48, %$12], [%52, %$14], [%55, %$13] ; # X\n  %58 = phi i64 [%48, %$12], [%54, %$14], [%56, %$13] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %59 = call i64 @cons(i64 %58, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %60 = inttoptr i64 %42 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  store i64 %59, i64* %61\n  br label %$7\n$9:\n  %62 = phi i64 [%28, %$7] ; # Exe\n  %63 = phi i64 [%34, %$7] ; # X\n  %64 = phi i64 [%30, %$7] ; # Y\n  %65 = phi i64 [%31, %$7] ; # R\n; # (set 2 Y (eval (car X)))\n; # (car X)\n  %66 = inttoptr i64 %63 to i64*\n  %67 = load i64, i64* %66\n; # (eval (car X))\n  %68 = and i64 %67, 6\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$17, label %$16\n$17:\n  %70 = phi i64 [%67, %$9] ; # X\n  br label %$15\n$16:\n  %71 = phi i64 [%67, %$9] ; # X\n  %72 = and i64 %71, 8\n  %73 = icmp ne i64 %72, 0\n  br i1 %73, label %$19, label %$18\n$19:\n  %74 = phi i64 [%71, %$16] ; # X\n  %75 = inttoptr i64 %74 to i64*\n  %76 = load i64, i64* %75\n  br label %$15\n$18:\n  %77 = phi i64 [%71, %$16] ; # X\n  %78 = call i64 @evList(i64 %77)\n  br label %$15\n$15:\n  %79 = phi i64 [%70, %$17], [%74, %$19], [%77, %$18] ; # X\n  %80 = phi i64 [%70, %$17], [%76, %$19], [%78, %$18] ; # ->\n  %81 = inttoptr i64 %64 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  store i64 %80, i64* %82\n; # (drop *Safe)\n  %83 = inttoptr i64 %23 to i64*\n  %84 = getelementptr i64, i64* %83, i32 1\n  %85 = load i64, i64* %84\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %85, i64* %86\n  ret i64 %65\n}\n\ndefine i64 @_Conc(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X)) R (save Y)) (while (pair (shif...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save Y)\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (while (pair (shift X)) (let Z (eval (car X)) (if (atom Y) (setq ...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%90, %$17] ; # Exe\n  %28 = phi i64 [%3, %$2], [%91, %$17] ; # X\n  %29 = phi i64 [%18, %$2], [%92, %$17] ; # Y\n  %30 = phi i64 [%18, %$2], [%93, %$17] ; # R\n; # (shift X)\n  %31 = inttoptr i64 %28 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (pair (shift X))\n  %34 = and i64 %33, 15\n  %35 = icmp eq i64 %34, 0\n  br i1 %35, label %$8, label %$9\n$8:\n  %36 = phi i64 [%27, %$7] ; # Exe\n  %37 = phi i64 [%33, %$7] ; # X\n  %38 = phi i64 [%29, %$7] ; # Y\n  %39 = phi i64 [%30, %$7] ; # R\n; # (let Z (eval (car X)) (if (atom Y) (setq Y (setq R (safe Z))) (wh...\n; # (car X)\n  %40 = inttoptr i64 %37 to i64*\n  %41 = load i64, i64* %40\n; # (eval (car X))\n  %42 = and i64 %41, 6\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$12, label %$11\n$12:\n  %44 = phi i64 [%41, %$8] ; # X\n  br label %$10\n$11:\n  %45 = phi i64 [%41, %$8] ; # X\n  %46 = and i64 %45, 8\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$14, label %$13\n$14:\n  %48 = phi i64 [%45, %$11] ; # X\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n  br label %$10\n$13:\n  %51 = phi i64 [%45, %$11] ; # X\n  %52 = call i64 @evList(i64 %51)\n  br label %$10\n$10:\n  %53 = phi i64 [%44, %$12], [%48, %$14], [%51, %$13] ; # X\n  %54 = phi i64 [%44, %$12], [%50, %$14], [%52, %$13] ; # ->\n; # (if (atom Y) (setq Y (setq R (safe Z))) (while (pair (cdr Y)) (se...\n; # (atom Y)\n  %55 = and i64 %38, 15\n  %56 = icmp ne i64 %55, 0\n  br i1 %56, label %$15, label %$16\n$15:\n  %57 = phi i64 [%36, %$10] ; # Exe\n  %58 = phi i64 [%37, %$10] ; # X\n  %59 = phi i64 [%38, %$10] ; # Y\n  %60 = phi i64 [%39, %$10] ; # R\n  %61 = phi i64 [%54, %$10] ; # Z\n; # (safe Z)\n  %62 = inttoptr i64 %22 to i64*\n  store i64 %61, i64* %62\n  br label %$17\n$16:\n  %63 = phi i64 [%36, %$10] ; # Exe\n  %64 = phi i64 [%37, %$10] ; # X\n  %65 = phi i64 [%38, %$10] ; # Y\n  %66 = phi i64 [%39, %$10] ; # R\n  %67 = phi i64 [%54, %$10] ; # Z\n; # (while (pair (cdr Y)) (setq Y @))\n  br label %$18\n$18:\n  %68 = phi i64 [%63, %$16], [%78, %$19] ; # Exe\n  %69 = phi i64 [%64, %$16], [%79, %$19] ; # X\n  %70 = phi i64 [%65, %$16], [%75, %$19] ; # Y\n  %71 = phi i64 [%66, %$16], [%81, %$19] ; # R\n  %72 = phi i64 [%67, %$16], [%82, %$19] ; # Z\n; # (cdr Y)\n  %73 = inttoptr i64 %70 to i64*\n  %74 = getelementptr i64, i64* %73, i32 1\n  %75 = load i64, i64* %74\n; # (pair (cdr Y))\n  %76 = and i64 %75, 15\n  %77 = icmp eq i64 %76, 0\n  br i1 %77, label %$19, label %$20\n$19:\n  %78 = phi i64 [%68, %$18] ; # Exe\n  %79 = phi i64 [%69, %$18] ; # X\n  %80 = phi i64 [%70, %$18] ; # Y\n  %81 = phi i64 [%71, %$18] ; # R\n  %82 = phi i64 [%72, %$18] ; # Z\n  br label %$18\n$20:\n  %83 = phi i64 [%68, %$18] ; # Exe\n  %84 = phi i64 [%69, %$18] ; # X\n  %85 = phi i64 [%70, %$18] ; # Y\n  %86 = phi i64 [%71, %$18] ; # R\n  %87 = phi i64 [%72, %$18] ; # Z\n; # (set 2 Y Z)\n  %88 = inttoptr i64 %85 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  store i64 %87, i64* %89\n  br label %$17\n$17:\n  %90 = phi i64 [%57, %$15], [%83, %$20] ; # Exe\n  %91 = phi i64 [%58, %$15], [%84, %$20] ; # X\n  %92 = phi i64 [%61, %$15], [%85, %$20] ; # Y\n  %93 = phi i64 [%61, %$15], [%86, %$20] ; # R\n  %94 = phi i64 [%61, %$15], [%87, %$20] ; # Z\n  %95 = phi i64 [%61, %$15], [%87, %$20] ; # ->\n  br label %$7\n$9:\n  %96 = phi i64 [%27, %$7] ; # Exe\n  %97 = phi i64 [%33, %$7] ; # X\n  %98 = phi i64 [%29, %$7] ; # Y\n  %99 = phi i64 [%30, %$7] ; # R\n; # (drop *Safe)\n  %100 = inttoptr i64 %22 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %102, i64* %103\n  ret i64 %99\n}\n\ndefine i64 @_Circ(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (cons (eval (car X)) $Nil) R (save Y)) (while...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %19 = call i64 @cons(i64 %18, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %21 = load i64, i64* %20\n  %22 = alloca i64, i64 2, align 16\n  %23 = ptrtoint i64* %22 to i64\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %19, i64* %24\n  %25 = add i64 %23, 8\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %23, i64* %27\n; # (while (pair (shift X)) (setq Y (set 2 Y (cons (eval (car X)) $Ni...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$2], [%37, %$10] ; # Exe\n  %29 = phi i64 [%3, %$2], [%38, %$10] ; # X\n  %30 = phi i64 [%19, %$2], [%56, %$10] ; # Y\n  %31 = phi i64 [%19, %$2], [%40, %$10] ; # R\n; # (shift X)\n  %32 = inttoptr i64 %29 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n; # (pair (shift X))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$8, label %$9\n$8:\n  %37 = phi i64 [%28, %$7] ; # Exe\n  %38 = phi i64 [%34, %$7] ; # X\n  %39 = phi i64 [%30, %$7] ; # Y\n  %40 = phi i64 [%31, %$7] ; # R\n; # (set 2 Y (cons (eval (car X)) $Nil))\n; # (car X)\n  %41 = inttoptr i64 %38 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$12, label %$11\n$12:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$10\n$11:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$14, label %$13\n$14:\n  %49 = phi i64 [%46, %$11] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$10\n$13:\n  %52 = phi i64 [%46, %$11] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$10\n$10:\n  %54 = phi i64 [%45, %$12], [%49, %$14], [%52, %$13] ; # X\n  %55 = phi i64 [%45, %$12], [%51, %$14], [%53, %$13] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %56 = call i64 @cons(i64 %55, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %57 = inttoptr i64 %39 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  store i64 %56, i64* %58\n  br label %$7\n$9:\n  %59 = phi i64 [%28, %$7] ; # Exe\n  %60 = phi i64 [%34, %$7] ; # X\n  %61 = phi i64 [%30, %$7] ; # Y\n  %62 = phi i64 [%31, %$7] ; # R\n; # (set 2 Y R)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  store i64 %62, i64* %64\n; # (drop *Safe)\n  %65 = inttoptr i64 %23 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  %68 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %67, i64* %68\n  ret i64 %62\n}\n\ndefine i64 @_Rot(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (eval (car X))) (when (pair R) (let (Y R A (+...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (when (pair R) (let (Y R A (++ Y)) (if (pair (shift X)) (let N (s...\n; # (pair R)\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%3, %$2] ; # X\n  %23 = phi i64 [%18, %$2] ; # R\n; # (let (Y R A (++ Y)) (if (pair (shift X)) (let N (save R (evCnt Ex...\n; # (++ Y)\n  %24 = inttoptr i64 %23 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n  %27 = load i64, i64* %24\n; # (if (pair (shift X)) (let N (save R (evCnt Exe X)) (while (and (p...\n; # (shift X)\n  %28 = inttoptr i64 %22 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n; # (pair (shift X))\n  %31 = and i64 %30, 15\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$9, label %$10\n$9:\n  %33 = phi i64 [%21, %$7] ; # Exe\n  %34 = phi i64 [%30, %$7] ; # X\n  %35 = phi i64 [%23, %$7] ; # R\n  %36 = phi i64 [%26, %$7] ; # Y\n  %37 = phi i64 [%27, %$7] ; # A\n; # (let N (save R (evCnt Exe X)) (while (and (pair Y) (gt0 (dec 'N))...\n; # (save R (evCnt Exe X))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %35, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (evCnt Exe X)\n  %46 = call i64 @evCnt(i64 %33, i64 %34)\n; # drop\n  %47 = inttoptr i64 %41 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %50\n; # (while (and (pair Y) (gt0 (dec 'N))) (let B (car Y) (set Y A) (se...\n  br label %$12\n$12:\n  %51 = phi i64 [%33, %$9], [%87, %$17] ; # Exe\n  %52 = phi i64 [%34, %$9], [%88, %$17] ; # X\n  %53 = phi i64 [%35, %$9], [%89, %$17] ; # R\n  %54 = phi i64 [%36, %$9], [%90, %$17] ; # Y\n  %55 = phi i64 [%37, %$9], [%91, %$17] ; # A\n  %56 = phi i64 [%46, %$9], [%92, %$17] ; # N\n; # (and (pair Y) (gt0 (dec 'N)))\n; # (pair Y)\n  %57 = and i64 %54, 15\n  %58 = icmp eq i64 %57, 0\n  br i1 %58, label %$14, label %$13\n$14:\n  %59 = phi i64 [%51, %$12] ; # Exe\n  %60 = phi i64 [%52, %$12] ; # X\n  %61 = phi i64 [%53, %$12] ; # R\n  %62 = phi i64 [%54, %$12] ; # Y\n  %63 = phi i64 [%55, %$12] ; # A\n  %64 = phi i64 [%56, %$12] ; # N\n; # (dec 'N)\n  %65 = sub i64 %64, 1\n; # (gt0 (dec 'N))\n  %66 = icmp sgt i64 %65, 0\n  br label %$13\n$13:\n  %67 = phi i64 [%51, %$12], [%59, %$14] ; # Exe\n  %68 = phi i64 [%52, %$12], [%60, %$14] ; # X\n  %69 = phi i64 [%53, %$12], [%61, %$14] ; # R\n  %70 = phi i64 [%54, %$12], [%62, %$14] ; # Y\n  %71 = phi i64 [%55, %$12], [%63, %$14] ; # A\n  %72 = phi i64 [%56, %$12], [%65, %$14] ; # N\n  %73 = phi i1 [0, %$12], [%66, %$14] ; # ->\n  br i1 %73, label %$15, label %$16\n$15:\n  %74 = phi i64 [%67, %$13] ; # Exe\n  %75 = phi i64 [%68, %$13] ; # X\n  %76 = phi i64 [%69, %$13] ; # R\n  %77 = phi i64 [%70, %$13] ; # Y\n  %78 = phi i64 [%71, %$13] ; # A\n  %79 = phi i64 [%72, %$13] ; # N\n; # (let B (car Y) (set Y A) (setq A B))\n; # (car Y)\n  %80 = inttoptr i64 %77 to i64*\n  %81 = load i64, i64* %80\n; # (set Y A)\n  %82 = inttoptr i64 %77 to i64*\n  store i64 %78, i64* %82\n; # (? (== R (shift Y)))\n; # (shift Y)\n  %83 = inttoptr i64 %77 to i64*\n  %84 = getelementptr i64, i64* %83, i32 1\n  %85 = load i64, i64* %84\n; # (== R (shift Y))\n  %86 = icmp eq i64 %76, %85\n  br i1 %86, label %$16, label %$17\n$17:\n  %87 = phi i64 [%74, %$15] ; # Exe\n  %88 = phi i64 [%75, %$15] ; # X\n  %89 = phi i64 [%76, %$15] ; # R\n  %90 = phi i64 [%85, %$15] ; # Y\n  %91 = phi i64 [%81, %$15] ; # A\n  %92 = phi i64 [%79, %$15] ; # N\n  br label %$12\n$16:\n  %93 = phi i64 [%67, %$13], [%74, %$15] ; # Exe\n  %94 = phi i64 [%68, %$13], [%75, %$15] ; # X\n  %95 = phi i64 [%69, %$13], [%76, %$15] ; # R\n  %96 = phi i64 [%70, %$13], [%85, %$15] ; # Y\n  %97 = phi i64 [%71, %$13], [%81, %$15] ; # A\n  %98 = phi i64 [%72, %$13], [%79, %$15] ; # N\n; # (set R A)\n  %99 = inttoptr i64 %95 to i64*\n  store i64 %97, i64* %99\n  br label %$11\n$10:\n  %100 = phi i64 [%21, %$7] ; # Exe\n  %101 = phi i64 [%30, %$7] ; # X\n  %102 = phi i64 [%23, %$7] ; # R\n  %103 = phi i64 [%26, %$7] ; # Y\n  %104 = phi i64 [%27, %$7] ; # A\n; # (while (pair Y) (let B (car Y) (set Y A) (setq A B)) (? (== R (sh...\n  br label %$18\n$18:\n  %105 = phi i64 [%100, %$10], [%124, %$21] ; # Exe\n  %106 = phi i64 [%101, %$10], [%125, %$21] ; # X\n  %107 = phi i64 [%102, %$10], [%126, %$21] ; # R\n  %108 = phi i64 [%103, %$10], [%127, %$21] ; # Y\n  %109 = phi i64 [%104, %$10], [%128, %$21] ; # A\n; # (pair Y)\n  %110 = and i64 %108, 15\n  %111 = icmp eq i64 %110, 0\n  br i1 %111, label %$19, label %$20\n$19:\n  %112 = phi i64 [%105, %$18] ; # Exe\n  %113 = phi i64 [%106, %$18] ; # X\n  %114 = phi i64 [%107, %$18] ; # R\n  %115 = phi i64 [%108, %$18] ; # Y\n  %116 = phi i64 [%109, %$18] ; # A\n; # (let B (car Y) (set Y A) (setq A B))\n; # (car Y)\n  %117 = inttoptr i64 %115 to i64*\n  %118 = load i64, i64* %117\n; # (set Y A)\n  %119 = inttoptr i64 %115 to i64*\n  store i64 %116, i64* %119\n; # (? (== R (shift Y)))\n; # (shift Y)\n  %120 = inttoptr i64 %115 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  %122 = load i64, i64* %121\n; # (== R (shift Y))\n  %123 = icmp eq i64 %114, %122\n  br i1 %123, label %$20, label %$21\n$21:\n  %124 = phi i64 [%112, %$19] ; # Exe\n  %125 = phi i64 [%113, %$19] ; # X\n  %126 = phi i64 [%114, %$19] ; # R\n  %127 = phi i64 [%122, %$19] ; # Y\n  %128 = phi i64 [%118, %$19] ; # A\n  br label %$18\n$20:\n  %129 = phi i64 [%105, %$18], [%112, %$19] ; # Exe\n  %130 = phi i64 [%106, %$18], [%113, %$19] ; # X\n  %131 = phi i64 [%107, %$18], [%114, %$19] ; # R\n  %132 = phi i64 [%108, %$18], [%122, %$19] ; # Y\n  %133 = phi i64 [%109, %$18], [%118, %$19] ; # A\n; # (set R A)\n  %134 = inttoptr i64 %131 to i64*\n  store i64 %133, i64* %134\n  br label %$11\n$11:\n  %135 = phi i64 [%93, %$16], [%129, %$20] ; # Exe\n  %136 = phi i64 [%94, %$16], [%130, %$20] ; # X\n  %137 = phi i64 [%95, %$16], [%131, %$20] ; # R\n  %138 = phi i64 [%96, %$16], [%132, %$20] ; # Y\n  %139 = phi i64 [%97, %$16], [%133, %$20] ; # A\n  %140 = phi i64 [%97, %$16], [%133, %$20] ; # ->\n  br label %$8\n$8:\n  %141 = phi i64 [%0, %$2], [%135, %$11] ; # Exe\n  %142 = phi i64 [%3, %$2], [%136, %$11] ; # X\n  %143 = phi i64 [%18, %$2], [%137, %$11] ; # R\n  ret i64 %143\n}\n\ndefine i64 @_List(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (cons (eval (car X)) $Nil) R (save Y)) (while...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %19 = call i64 @cons(i64 %18, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %21 = load i64, i64* %20\n  %22 = alloca i64, i64 2, align 16\n  %23 = ptrtoint i64* %22 to i64\n  %24 = inttoptr i64 %23 to i64*\n  store i64 %19, i64* %24\n  %25 = add i64 %23, 8\n  %26 = inttoptr i64 %25 to i64*\n  store i64 %21, i64* %26\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %23, i64* %27\n; # (while (pair (shift X)) (setq Y (set 2 Y (cons (eval (car X)) $Ni...\n  br label %$7\n$7:\n  %28 = phi i64 [%0, %$2], [%37, %$10] ; # Exe\n  %29 = phi i64 [%3, %$2], [%38, %$10] ; # X\n  %30 = phi i64 [%19, %$2], [%56, %$10] ; # Y\n  %31 = phi i64 [%19, %$2], [%40, %$10] ; # R\n; # (shift X)\n  %32 = inttoptr i64 %29 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n; # (pair (shift X))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$8, label %$9\n$8:\n  %37 = phi i64 [%28, %$7] ; # Exe\n  %38 = phi i64 [%34, %$7] ; # X\n  %39 = phi i64 [%30, %$7] ; # Y\n  %40 = phi i64 [%31, %$7] ; # R\n; # (set 2 Y (cons (eval (car X)) $Nil))\n; # (car X)\n  %41 = inttoptr i64 %38 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$12, label %$11\n$12:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$10\n$11:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$14, label %$13\n$14:\n  %49 = phi i64 [%46, %$11] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$10\n$13:\n  %52 = phi i64 [%46, %$11] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$10\n$10:\n  %54 = phi i64 [%45, %$12], [%49, %$14], [%52, %$13] ; # X\n  %55 = phi i64 [%45, %$12], [%51, %$14], [%53, %$13] ; # ->\n; # (cons (eval (car X)) $Nil)\n  %56 = call i64 @cons(i64 %55, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %57 = inttoptr i64 %39 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  store i64 %56, i64* %58\n  br label %$7\n$9:\n  %59 = phi i64 [%28, %$7] ; # Exe\n  %60 = phi i64 [%34, %$7] ; # X\n  %61 = phi i64 [%30, %$7] ; # Y\n  %62 = phi i64 [%31, %$7] ; # R\n; # (drop *Safe)\n  %63 = inttoptr i64 %23 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  %65 = load i64, i64* %64\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %65, i64* %66\n  ret i64 %62\n}\n\ndefine i64 @_Need(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) C (evCnt Exe X) R (save (eval (car (shift X))))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (shift X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (car (shift X))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (eval (car (shift X)))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$3\n$4:\n  %12 = phi i64 [%9, %$1] ; # X\n  br label %$2\n$3:\n  %13 = phi i64 [%9, %$1] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i64 [%13, %$3] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$2\n$5:\n  %19 = phi i64 [%13, %$3] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$2\n$2:\n  %21 = phi i64 [%12, %$4], [%16, %$6], [%19, %$5] ; # X\n  %22 = phi i64 [%12, %$4], [%18, %$6], [%20, %$5] ; # ->\n; # (save (eval (car (shift X))))\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %24 = load i64, i64* %23\n  %25 = alloca i64, i64 2, align 16\n  %26 = ptrtoint i64* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = add i64 %26, 8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %30\n; # (if (or (pair R) (nil? R)) (eval (cadr X)) (prog1 R (setq R $Nil)...\n; # (or (pair R) (nil? R))\n; # (pair R)\n  %31 = and i64 %22, 15\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$7, label %$8\n$8:\n  %33 = phi i64 [%0, %$2] ; # Exe\n  %34 = phi i64 [%7, %$2] ; # X\n  %35 = phi i64 [%4, %$2] ; # C\n  %36 = phi i64 [%22, %$2] ; # R\n; # (nil? R)\n  %37 = icmp eq i64 %36, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$7\n$7:\n  %38 = phi i64 [%0, %$2], [%33, %$8] ; # Exe\n  %39 = phi i64 [%7, %$2], [%34, %$8] ; # X\n  %40 = phi i64 [%4, %$2], [%35, %$8] ; # C\n  %41 = phi i64 [%22, %$2], [%36, %$8] ; # R\n  %42 = phi i1 [1, %$2], [%37, %$8] ; # ->\n  br i1 %42, label %$9, label %$10\n$9:\n  %43 = phi i64 [%38, %$7] ; # Exe\n  %44 = phi i64 [%39, %$7] ; # X\n  %45 = phi i64 [%40, %$7] ; # C\n  %46 = phi i64 [%41, %$7] ; # R\n; # (cadr X)\n  %47 = inttoptr i64 %44 to i64*\n  %48 = getelementptr i64, i64* %47, i32 1\n  %49 = load i64, i64* %48\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n; # (eval (cadr X))\n  %52 = and i64 %51, 6\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$14, label %$13\n$14:\n  %54 = phi i64 [%51, %$9] ; # X\n  br label %$12\n$13:\n  %55 = phi i64 [%51, %$9] ; # X\n  %56 = and i64 %55, 8\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$16, label %$15\n$16:\n  %58 = phi i64 [%55, %$13] ; # X\n  %59 = inttoptr i64 %58 to i64*\n  %60 = load i64, i64* %59\n  br label %$12\n$15:\n  %61 = phi i64 [%55, %$13] ; # X\n  %62 = call i64 @evList(i64 %61)\n  br label %$12\n$12:\n  %63 = phi i64 [%54, %$14], [%58, %$16], [%61, %$15] ; # X\n  %64 = phi i64 [%54, %$14], [%60, %$16], [%62, %$15] ; # ->\n  br label %$11\n$10:\n  %65 = phi i64 [%38, %$7] ; # Exe\n  %66 = phi i64 [%39, %$7] ; # X\n  %67 = phi i64 [%40, %$7] ; # C\n  %68 = phi i64 [%41, %$7] ; # R\n; # (prog1 R (setq R $Nil))\n  br label %$11\n$11:\n  %69 = phi i64 [%43, %$12], [%65, %$10] ; # Exe\n  %70 = phi i64 [%44, %$12], [%66, %$10] ; # X\n  %71 = phi i64 [%45, %$12], [%67, %$10] ; # C\n  %72 = phi i64 [%46, %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # R\n  %73 = phi i64 [%64, %$12], [%68, %$10] ; # ->\n; # (save (if (or (pair R) (nil? R)) (eval (cadr X)) (prog1 R (setq R...\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %75 = load i64, i64* %74\n  %76 = alloca i64, i64 2, align 16\n  %77 = ptrtoint i64* %76 to i64\n  %78 = inttoptr i64 %77 to i64*\n  store i64 %73, i64* %78\n  %79 = add i64 %77, 8\n  %80 = inttoptr i64 %79 to i64*\n  store i64 %75, i64* %80\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %77, i64* %81\n; # (when C (cond ((gt0 C) (while (pair Z) (dec 'C) (shift Z)) (while...\n  %82 = icmp ne i64 %71, 0\n  br i1 %82, label %$17, label %$18\n$17:\n  %83 = phi i64 [%69, %$11] ; # Exe\n  %84 = phi i64 [%70, %$11] ; # X\n  %85 = phi i64 [%71, %$11] ; # C\n  %86 = phi i64 [%72, %$11] ; # R\n  %87 = phi i64 [%73, %$11] ; # Y\n  %88 = phi i64 [%72, %$11] ; # Z\n; # (cond ((gt0 C) (while (pair Z) (dec 'C) (shift Z)) (while (ge0 (d...\n; # (gt0 C)\n  %89 = icmp sgt i64 %85, 0\n  br i1 %89, label %$21, label %$20\n$21:\n  %90 = phi i64 [%83, %$17] ; # Exe\n  %91 = phi i64 [%84, %$17] ; # X\n  %92 = phi i64 [%85, %$17] ; # C\n  %93 = phi i64 [%86, %$17] ; # R\n  %94 = phi i64 [%87, %$17] ; # Y\n  %95 = phi i64 [%88, %$17] ; # Z\n; # (while (pair Z) (dec 'C) (shift Z))\n  br label %$22\n$22:\n  %96 = phi i64 [%90, %$21], [%104, %$23] ; # Exe\n  %97 = phi i64 [%91, %$21], [%105, %$23] ; # X\n  %98 = phi i64 [%92, %$21], [%110, %$23] ; # C\n  %99 = phi i64 [%93, %$21], [%107, %$23] ; # R\n  %100 = phi i64 [%94, %$21], [%108, %$23] ; # Y\n  %101 = phi i64 [%95, %$21], [%113, %$23] ; # Z\n; # (pair Z)\n  %102 = and i64 %101, 15\n  %103 = icmp eq i64 %102, 0\n  br i1 %103, label %$23, label %$24\n$23:\n  %104 = phi i64 [%96, %$22] ; # Exe\n  %105 = phi i64 [%97, %$22] ; # X\n  %106 = phi i64 [%98, %$22] ; # C\n  %107 = phi i64 [%99, %$22] ; # R\n  %108 = phi i64 [%100, %$22] ; # Y\n  %109 = phi i64 [%101, %$22] ; # Z\n; # (dec 'C)\n  %110 = sub i64 %106, 1\n; # (shift Z)\n  %111 = inttoptr i64 %109 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  %113 = load i64, i64* %112\n  br label %$22\n$24:\n  %114 = phi i64 [%96, %$22] ; # Exe\n  %115 = phi i64 [%97, %$22] ; # X\n  %116 = phi i64 [%98, %$22] ; # C\n  %117 = phi i64 [%99, %$22] ; # R\n  %118 = phi i64 [%100, %$22] ; # Y\n  %119 = phi i64 [%101, %$22] ; # Z\n; # (while (ge0 (dec 'C)) (setq R (safe (cons Y R))))\n  br label %$25\n$25:\n  %120 = phi i64 [%114, %$24], [%128, %$26] ; # Exe\n  %121 = phi i64 [%115, %$24], [%129, %$26] ; # X\n  %122 = phi i64 [%116, %$24], [%130, %$26] ; # C\n  %123 = phi i64 [%117, %$24], [%134, %$26] ; # R\n  %124 = phi i64 [%118, %$24], [%132, %$26] ; # Y\n  %125 = phi i64 [%119, %$24], [%133, %$26] ; # Z\n; # (dec 'C)\n  %126 = sub i64 %122, 1\n; # (ge0 (dec 'C))\n  %127 = icmp sge i64 %126, 0\n  br i1 %127, label %$26, label %$27\n$26:\n  %128 = phi i64 [%120, %$25] ; # Exe\n  %129 = phi i64 [%121, %$25] ; # X\n  %130 = phi i64 [%126, %$25] ; # C\n  %131 = phi i64 [%123, %$25] ; # R\n  %132 = phi i64 [%124, %$25] ; # Y\n  %133 = phi i64 [%125, %$25] ; # Z\n; # (cons Y R)\n  %134 = call i64 @cons(i64 %132, i64 %131)\n; # (safe (cons Y R))\n  %135 = inttoptr i64 %26 to i64*\n  store i64 %134, i64* %135\n  br label %$25\n$27:\n  %136 = phi i64 [%120, %$25] ; # Exe\n  %137 = phi i64 [%121, %$25] ; # X\n  %138 = phi i64 [%126, %$25] ; # C\n  %139 = phi i64 [%123, %$25] ; # R\n  %140 = phi i64 [%124, %$25] ; # Y\n  %141 = phi i64 [%125, %$25] ; # Z\n  br label %$19\n$20:\n  %142 = phi i64 [%83, %$17] ; # Exe\n  %143 = phi i64 [%84, %$17] ; # X\n  %144 = phi i64 [%85, %$17] ; # C\n  %145 = phi i64 [%86, %$17] ; # R\n  %146 = phi i64 [%87, %$17] ; # Y\n  %147 = phi i64 [%88, %$17] ; # Z\n; # (if (atom R) (setq Z (setq R (safe (cons Y $Nil)))) (while (pair ...\n; # (atom R)\n  %148 = and i64 %145, 15\n  %149 = icmp ne i64 %148, 0\n  br i1 %149, label %$28, label %$29\n$28:\n  %150 = phi i64 [%142, %$20] ; # Exe\n  %151 = phi i64 [%143, %$20] ; # X\n  %152 = phi i64 [%144, %$20] ; # C\n  %153 = phi i64 [%145, %$20] ; # R\n  %154 = phi i64 [%146, %$20] ; # Y\n  %155 = phi i64 [%147, %$20] ; # Z\n; # (cons Y $Nil)\n  %156 = call i64 @cons(i64 %154, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (safe (cons Y $Nil))\n  %157 = inttoptr i64 %26 to i64*\n  store i64 %156, i64* %157\n  br label %$30\n$29:\n  %158 = phi i64 [%142, %$20] ; # Exe\n  %159 = phi i64 [%143, %$20] ; # X\n  %160 = phi i64 [%144, %$20] ; # C\n  %161 = phi i64 [%145, %$20] ; # R\n  %162 = phi i64 [%146, %$20] ; # Y\n  %163 = phi i64 [%147, %$20] ; # Z\n; # (while (pair (cdr Z)) (inc 'C) (shift Z))\n  br label %$31\n$31:\n  %164 = phi i64 [%158, %$29], [%175, %$32] ; # Exe\n  %165 = phi i64 [%159, %$29], [%176, %$32] ; # X\n  %166 = phi i64 [%160, %$29], [%181, %$32] ; # C\n  %167 = phi i64 [%161, %$29], [%178, %$32] ; # R\n  %168 = phi i64 [%162, %$29], [%179, %$32] ; # Y\n  %169 = phi i64 [%163, %$29], [%184, %$32] ; # Z\n; # (cdr Z)\n  %170 = inttoptr i64 %169 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n; # (pair (cdr Z))\n  %173 = and i64 %172, 15\n  %174 = icmp eq i64 %173, 0\n  br i1 %174, label %$32, label %$33\n$32:\n  %175 = phi i64 [%164, %$31] ; # Exe\n  %176 = phi i64 [%165, %$31] ; # X\n  %177 = phi i64 [%166, %$31] ; # C\n  %178 = phi i64 [%167, %$31] ; # R\n  %179 = phi i64 [%168, %$31] ; # Y\n  %180 = phi i64 [%169, %$31] ; # Z\n; # (inc 'C)\n  %181 = add i64 %177, 1\n; # (shift Z)\n  %182 = inttoptr i64 %180 to i64*\n  %183 = getelementptr i64, i64* %182, i32 1\n  %184 = load i64, i64* %183\n  br label %$31\n$33:\n  %185 = phi i64 [%164, %$31] ; # Exe\n  %186 = phi i64 [%165, %$31] ; # X\n  %187 = phi i64 [%166, %$31] ; # C\n  %188 = phi i64 [%167, %$31] ; # R\n  %189 = phi i64 [%168, %$31] ; # Y\n  %190 = phi i64 [%169, %$31] ; # Z\n  br label %$30\n$30:\n  %191 = phi i64 [%150, %$28], [%185, %$33] ; # Exe\n  %192 = phi i64 [%151, %$28], [%186, %$33] ; # X\n  %193 = phi i64 [%152, %$28], [%187, %$33] ; # C\n  %194 = phi i64 [%156, %$28], [%188, %$33] ; # R\n  %195 = phi i64 [%154, %$28], [%189, %$33] ; # Y\n  %196 = phi i64 [%156, %$28], [%190, %$33] ; # Z\n; # (while (lt0 (inc 'C)) (setq Z (set 2 Z (cons Y $Nil))))\n  br label %$34\n$34:\n  %197 = phi i64 [%191, %$30], [%205, %$35] ; # Exe\n  %198 = phi i64 [%192, %$30], [%206, %$35] ; # X\n  %199 = phi i64 [%193, %$30], [%207, %$35] ; # C\n  %200 = phi i64 [%194, %$30], [%208, %$35] ; # R\n  %201 = phi i64 [%195, %$30], [%209, %$35] ; # Y\n  %202 = phi i64 [%196, %$30], [%211, %$35] ; # Z\n; # (inc 'C)\n  %203 = add i64 %199, 1\n; # (lt0 (inc 'C))\n  %204 = icmp slt i64 %203, 0\n  br i1 %204, label %$35, label %$36\n$35:\n  %205 = phi i64 [%197, %$34] ; # Exe\n  %206 = phi i64 [%198, %$34] ; # X\n  %207 = phi i64 [%203, %$34] ; # C\n  %208 = phi i64 [%200, %$34] ; # R\n  %209 = phi i64 [%201, %$34] ; # Y\n  %210 = phi i64 [%202, %$34] ; # Z\n; # (set 2 Z (cons Y $Nil))\n; # (cons Y $Nil)\n  %211 = call i64 @cons(i64 %209, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %212 = inttoptr i64 %210 to i64*\n  %213 = getelementptr i64, i64* %212, i32 1\n  store i64 %211, i64* %213\n  br label %$34\n$36:\n  %214 = phi i64 [%197, %$34] ; # Exe\n  %215 = phi i64 [%198, %$34] ; # X\n  %216 = phi i64 [%203, %$34] ; # C\n  %217 = phi i64 [%200, %$34] ; # R\n  %218 = phi i64 [%201, %$34] ; # Y\n  %219 = phi i64 [%202, %$34] ; # Z\n  br label %$19\n$19:\n  %220 = phi i64 [%136, %$27], [%214, %$36] ; # Exe\n  %221 = phi i64 [%137, %$27], [%215, %$36] ; # X\n  %222 = phi i64 [%138, %$27], [%216, %$36] ; # C\n  %223 = phi i64 [%139, %$27], [%217, %$36] ; # R\n  %224 = phi i64 [%140, %$27], [%218, %$36] ; # Y\n  %225 = phi i64 [%141, %$27], [%219, %$36] ; # Z\n  br label %$18\n$18:\n  %226 = phi i64 [%69, %$11], [%220, %$19] ; # Exe\n  %227 = phi i64 [%70, %$11], [%221, %$19] ; # X\n  %228 = phi i64 [%71, %$11], [%222, %$19] ; # C\n  %229 = phi i64 [%72, %$11], [%223, %$19] ; # R\n  %230 = phi i64 [%73, %$11], [%224, %$19] ; # Y\n  %231 = phi i64 [%72, %$11], [%225, %$19] ; # Z\n; # (drop *Safe)\n  %232 = inttoptr i64 %26 to i64*\n  %233 = getelementptr i64, i64* %232, i32 1\n  %234 = load i64, i64* %233\n  %235 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %234, i64* %235\n  ret i64 %229\n}\n\ndefine i64 @_Range(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (needNum Exe (eval (++ X))) R (save (cons N $...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (needNum Exe (eval (++ X)))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$8, label %$7\n$7:\n  %23 = phi i64 [%20, %$2] ; # X\n  %24 = phi i64 [%0, %$2] ; # Exe\n  call void @numErr(i64 %24, i64 %23)\n  unreachable\n$8:\n  %25 = phi i64 [%20, %$2] ; # X\n  %26 = phi i64 [%0, %$2] ; # Exe\n; # (cons N $Nil)\n  %27 = call i64 @cons(i64 %25, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons N $Nil))\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %29 = load i64, i64* %28\n  %30 = alloca i64, i64 2, align 16\n  %31 = ptrtoint i64* %30 to i64\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = add i64 %31, 8\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %29, i64* %34\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %31, i64* %35\n; # (++ X)\n  %36 = inttoptr i64 %6 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n  %39 = load i64, i64* %36\n; # (eval (++ X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$11, label %$10\n$11:\n  %42 = phi i64 [%39, %$8] ; # X\n  br label %$9\n$10:\n  %43 = phi i64 [%39, %$8] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$13, label %$12\n$13:\n  %46 = phi i64 [%43, %$10] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$9\n$12:\n  %49 = phi i64 [%43, %$10] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$9\n$9:\n  %51 = phi i64 [%42, %$11], [%46, %$13], [%49, %$12] ; # X\n  %52 = phi i64 [%42, %$11], [%48, %$13], [%50, %$12] ; # ->\n; # (needNum Exe (eval (++ X)))\n  %53 = and i64 %52, 6\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$15, label %$14\n$14:\n  %55 = phi i64 [%52, %$9] ; # X\n  %56 = phi i64 [%0, %$9] ; # Exe\n  call void @numErr(i64 %56, i64 %55)\n  unreachable\n$15:\n  %57 = phi i64 [%52, %$9] ; # X\n  %58 = phi i64 [%0, %$9] ; # Exe\n; # (save (needNum Exe (eval (++ X))))\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %60 = load i64, i64* %59\n  %61 = alloca i64, i64 2, align 16\n  %62 = ptrtoint i64* %61 to i64\n  %63 = inttoptr i64 %62 to i64*\n  store i64 %57, i64* %63\n  %64 = add i64 %62, 8\n  %65 = inttoptr i64 %64 to i64*\n  store i64 %60, i64* %65\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %66\n; # (if (nil? (eval (car X))) ONE (save (needNum Exe @)))\n; # (car X)\n  %67 = inttoptr i64 %38 to i64*\n  %68 = load i64, i64* %67\n; # (eval (car X))\n  %69 = and i64 %68, 6\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$18, label %$17\n$18:\n  %71 = phi i64 [%68, %$15] ; # X\n  br label %$16\n$17:\n  %72 = phi i64 [%68, %$15] ; # X\n  %73 = and i64 %72, 8\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$20, label %$19\n$20:\n  %75 = phi i64 [%72, %$17] ; # X\n  %76 = inttoptr i64 %75 to i64*\n  %77 = load i64, i64* %76\n  br label %$16\n$19:\n  %78 = phi i64 [%72, %$17] ; # X\n  %79 = call i64 @evList(i64 %78)\n  br label %$16\n$16:\n  %80 = phi i64 [%71, %$18], [%75, %$20], [%78, %$19] ; # X\n  %81 = phi i64 [%71, %$18], [%77, %$20], [%79, %$19] ; # ->\n; # (nil? (eval (car X)))\n  %82 = icmp eq i64 %81, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %82, label %$21, label %$22\n$21:\n  %83 = phi i64 [%0, %$16] ; # Exe\n  %84 = phi i64 [%38, %$16] ; # X\n  %85 = phi i64 [%25, %$16] ; # N\n  %86 = phi i64 [%27, %$16] ; # R\n  %87 = phi i64 [%57, %$16] ; # Lim\n  br label %$23\n$22:\n  %88 = phi i64 [%0, %$16] ; # Exe\n  %89 = phi i64 [%38, %$16] ; # X\n  %90 = phi i64 [%25, %$16] ; # N\n  %91 = phi i64 [%27, %$16] ; # R\n  %92 = phi i64 [%57, %$16] ; # Lim\n; # (needNum Exe @)\n  %93 = and i64 %81, 6\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$25, label %$24\n$24:\n  %95 = phi i64 [%81, %$22] ; # X\n  %96 = phi i64 [%88, %$22] ; # Exe\n  call void @numErr(i64 %96, i64 %95)\n  unreachable\n$25:\n  %97 = phi i64 [%81, %$22] ; # X\n  %98 = phi i64 [%88, %$22] ; # Exe\n; # (save (needNum Exe @))\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %100 = load i64, i64* %99\n  %101 = alloca i64, i64 2, align 16\n  %102 = ptrtoint i64* %101 to i64\n  %103 = inttoptr i64 %102 to i64*\n  store i64 %97, i64* %103\n  %104 = add i64 %102, 8\n  %105 = inttoptr i64 %104 to i64*\n  store i64 %100, i64* %105\n  %106 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %102, i64* %106\n  br label %$23\n$23:\n  %107 = phi i64 [%83, %$21], [%88, %$25] ; # Exe\n  %108 = phi i64 [%84, %$21], [%89, %$25] ; # X\n  %109 = phi i64 [%85, %$21], [%90, %$25] ; # N\n  %110 = phi i64 [%86, %$21], [%91, %$25] ; # R\n  %111 = phi i64 [%87, %$21], [%92, %$25] ; # Lim\n  %112 = phi i64 [18, %$21], [%97, %$25] ; # ->\n; # (when (or (== Inc ZERO) (sign? Inc)) (argErr Exe Inc))\n; # (or (== Inc ZERO) (sign? Inc))\n; # (== Inc ZERO)\n  %113 = icmp eq i64 %112, 2\n  br i1 %113, label %$26, label %$27\n$27:\n  %114 = phi i64 [%107, %$23] ; # Exe\n  %115 = phi i64 [%108, %$23] ; # X\n  %116 = phi i64 [%109, %$23] ; # N\n  %117 = phi i64 [%110, %$23] ; # R\n  %118 = phi i64 [%111, %$23] ; # Lim\n  %119 = phi i64 [%112, %$23] ; # Inc\n; # (sign? Inc)\n  %120 = and i64 %119, 8\n  %121 = icmp ne i64 %120, 0\n  br label %$26\n$26:\n  %122 = phi i64 [%107, %$23], [%114, %$27] ; # Exe\n  %123 = phi i64 [%108, %$23], [%115, %$27] ; # X\n  %124 = phi i64 [%109, %$23], [%116, %$27] ; # N\n  %125 = phi i64 [%110, %$23], [%117, %$27] ; # R\n  %126 = phi i64 [%111, %$23], [%118, %$27] ; # Lim\n  %127 = phi i64 [%112, %$23], [%119, %$27] ; # Inc\n  %128 = phi i1 [1, %$23], [%121, %$27] ; # ->\n  br i1 %128, label %$28, label %$29\n$28:\n  %129 = phi i64 [%122, %$26] ; # Exe\n  %130 = phi i64 [%123, %$26] ; # X\n  %131 = phi i64 [%124, %$26] ; # N\n  %132 = phi i64 [%125, %$26] ; # R\n  %133 = phi i64 [%126, %$26] ; # Lim\n  %134 = phi i64 [%127, %$26] ; # Inc\n; # (argErr Exe Inc)\n  call void @argErr(i64 %129, i64 %134)\n  unreachable\n$29:\n  %135 = phi i64 [%122, %$26] ; # Exe\n  %136 = phi i64 [%123, %$26] ; # X\n  %137 = phi i64 [%124, %$26] ; # N\n  %138 = phi i64 [%125, %$26] ; # R\n  %139 = phi i64 [%126, %$26] ; # Lim\n  %140 = phi i64 [%127, %$26] ; # Inc\n; # (let P R (if (le0 (cmpNum N Lim)) (while (le0 (cmpNum (setq N (ad...\n; # (if (le0 (cmpNum N Lim)) (while (le0 (cmpNum (setq N (adds N Inc)...\n; # (cmpNum N Lim)\n  %141 = call i64 @cmpNum(i64 %137, i64 %139)\n; # (le0 (cmpNum N Lim))\n  %142 = icmp sle i64 %141, 0\n  br i1 %142, label %$30, label %$31\n$30:\n  %143 = phi i64 [%135, %$29] ; # Exe\n  %144 = phi i64 [%136, %$29] ; # X\n  %145 = phi i64 [%137, %$29] ; # N\n  %146 = phi i64 [%138, %$29] ; # R\n  %147 = phi i64 [%139, %$29] ; # Lim\n  %148 = phi i64 [%140, %$29] ; # Inc\n  %149 = phi i64 [%138, %$29] ; # P\n; # (while (le0 (cmpNum (setq N (adds N Inc)) Lim)) (setq P (set 2 P ...\n  br label %$33\n$33:\n  %150 = phi i64 [%143, %$30], [%160, %$34] ; # Exe\n  %151 = phi i64 [%144, %$30], [%161, %$34] ; # X\n  %152 = phi i64 [%145, %$30], [%162, %$34] ; # N\n  %153 = phi i64 [%146, %$30], [%163, %$34] ; # R\n  %154 = phi i64 [%147, %$30], [%164, %$34] ; # Lim\n  %155 = phi i64 [%148, %$30], [%165, %$34] ; # Inc\n  %156 = phi i64 [%149, %$30], [%167, %$34] ; # P\n; # (adds N Inc)\n  %157 = call i64 @adds(i64 %152, i64 %155)\n; # (cmpNum (setq N (adds N Inc)) Lim)\n  %158 = call i64 @cmpNum(i64 %157, i64 %154)\n; # (le0 (cmpNum (setq N (adds N Inc)) Lim))\n  %159 = icmp sle i64 %158, 0\n  br i1 %159, label %$34, label %$35\n$34:\n  %160 = phi i64 [%150, %$33] ; # Exe\n  %161 = phi i64 [%151, %$33] ; # X\n  %162 = phi i64 [%157, %$33] ; # N\n  %163 = phi i64 [%153, %$33] ; # R\n  %164 = phi i64 [%154, %$33] ; # Lim\n  %165 = phi i64 [%155, %$33] ; # Inc\n  %166 = phi i64 [%156, %$33] ; # P\n; # (set 2 P (cons N $Nil))\n; # (cons N $Nil)\n  %167 = call i64 @cons(i64 %162, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %168 = inttoptr i64 %166 to i64*\n  %169 = getelementptr i64, i64* %168, i32 1\n  store i64 %167, i64* %169\n  br label %$33\n$35:\n  %170 = phi i64 [%150, %$33] ; # Exe\n  %171 = phi i64 [%151, %$33] ; # X\n  %172 = phi i64 [%157, %$33] ; # N\n  %173 = phi i64 [%153, %$33] ; # R\n  %174 = phi i64 [%154, %$33] ; # Lim\n  %175 = phi i64 [%155, %$33] ; # Inc\n  %176 = phi i64 [%156, %$33] ; # P\n  br label %$32\n$31:\n  %177 = phi i64 [%135, %$29] ; # Exe\n  %178 = phi i64 [%136, %$29] ; # X\n  %179 = phi i64 [%137, %$29] ; # N\n  %180 = phi i64 [%138, %$29] ; # R\n  %181 = phi i64 [%139, %$29] ; # Lim\n  %182 = phi i64 [%140, %$29] ; # Inc\n  %183 = phi i64 [%138, %$29] ; # P\n; # (while (ge0 (cmpNum (setq N (subs N Inc)) Lim)) (setq P (set 2 P ...\n  br label %$36\n$36:\n  %184 = phi i64 [%177, %$31], [%194, %$37] ; # Exe\n  %185 = phi i64 [%178, %$31], [%195, %$37] ; # X\n  %186 = phi i64 [%179, %$31], [%196, %$37] ; # N\n  %187 = phi i64 [%180, %$31], [%197, %$37] ; # R\n  %188 = phi i64 [%181, %$31], [%198, %$37] ; # Lim\n  %189 = phi i64 [%182, %$31], [%199, %$37] ; # Inc\n  %190 = phi i64 [%183, %$31], [%201, %$37] ; # P\n; # (subs N Inc)\n  %191 = call i64 @subs(i64 %186, i64 %189)\n; # (cmpNum (setq N (subs N Inc)) Lim)\n  %192 = call i64 @cmpNum(i64 %191, i64 %188)\n; # (ge0 (cmpNum (setq N (subs N Inc)) Lim))\n  %193 = icmp sge i64 %192, 0\n  br i1 %193, label %$37, label %$38\n$37:\n  %194 = phi i64 [%184, %$36] ; # Exe\n  %195 = phi i64 [%185, %$36] ; # X\n  %196 = phi i64 [%191, %$36] ; # N\n  %197 = phi i64 [%187, %$36] ; # R\n  %198 = phi i64 [%188, %$36] ; # Lim\n  %199 = phi i64 [%189, %$36] ; # Inc\n  %200 = phi i64 [%190, %$36] ; # P\n; # (set 2 P (cons N $Nil))\n; # (cons N $Nil)\n  %201 = call i64 @cons(i64 %196, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %202 = inttoptr i64 %200 to i64*\n  %203 = getelementptr i64, i64* %202, i32 1\n  store i64 %201, i64* %203\n  br label %$36\n$38:\n  %204 = phi i64 [%184, %$36] ; # Exe\n  %205 = phi i64 [%185, %$36] ; # X\n  %206 = phi i64 [%191, %$36] ; # N\n  %207 = phi i64 [%187, %$36] ; # R\n  %208 = phi i64 [%188, %$36] ; # Lim\n  %209 = phi i64 [%189, %$36] ; # Inc\n  %210 = phi i64 [%190, %$36] ; # P\n  br label %$32\n$32:\n  %211 = phi i64 [%170, %$35], [%204, %$38] ; # Exe\n  %212 = phi i64 [%171, %$35], [%205, %$38] ; # X\n  %213 = phi i64 [%172, %$35], [%206, %$38] ; # N\n  %214 = phi i64 [%173, %$35], [%207, %$38] ; # R\n  %215 = phi i64 [%174, %$35], [%208, %$38] ; # Lim\n  %216 = phi i64 [%175, %$35], [%209, %$38] ; # Inc\n  %217 = phi i64 [%176, %$35], [%210, %$38] ; # P\n; # (drop *Safe)\n  %218 = inttoptr i64 %31 to i64*\n  %219 = getelementptr i64, i64* %218, i32 1\n  %220 = load i64, i64* %219\n  %221 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %220, i64* %221\n  ret i64 %214\n}\n\ndefine i64 @_Full(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (loop (? (atom X) $T) (? (nil? (car X)) ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (loop (? (atom X) $T) (? (nil? (car X)) $Nil) (shift X))\n  br label %$7\n$7:\n  %19 = phi i64 [%0, %$2], [%32, %$11] ; # Exe\n  %20 = phi i64 [%18, %$2], [%36, %$11] ; # X\n; # (? (atom X) $T)\n; # (atom X)\n  %21 = and i64 %20, 15\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$10, label %$8\n$10:\n  %23 = phi i64 [%19, %$7] ; # Exe\n  %24 = phi i64 [%20, %$7] ; # X\n  br label %$9\n$8:\n  %25 = phi i64 [%19, %$7] ; # Exe\n  %26 = phi i64 [%20, %$7] ; # X\n; # (? (nil? (car X)) $Nil)\n; # (car X)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (nil? (car X))\n  %29 = icmp eq i64 %28, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %29, label %$12, label %$11\n$12:\n  %30 = phi i64 [%25, %$8] ; # Exe\n  %31 = phi i64 [%26, %$8] ; # X\n  br label %$9\n$11:\n  %32 = phi i64 [%25, %$8] ; # Exe\n  %33 = phi i64 [%26, %$8] ; # X\n; # (shift X)\n  %34 = inttoptr i64 %33 to i64*\n  %35 = getelementptr i64, i64* %34, i32 1\n  %36 = load i64, i64* %35\n  br label %$7\n$9:\n  %37 = phi i64 [%23, %$10], [%30, %$12] ; # Exe\n  %38 = phi i64 [%24, %$10], [%31, %$12] ; # X\n  %39 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # ->\n  ret i64 %39\n}\n\ndefine i64 @_Make(i64) align 8 {\n$1:\n; # (let (Make (val $Make) Yoke (val $Yoke) R (link (push $Nil NIL)))...\n; # (val $Make)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (val $Yoke)\n  %3 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %4 = load i64, i64* %3\n; # (push $Nil NIL)\n  %5 = alloca i64, i64 2, align 16\n  %6 = ptrtoint i64* %5 to i64\n  %7 = inttoptr i64 %6 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %7\n; # (link (push $Nil NIL))\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %9 = load i64, i64* %8\n  %10 = inttoptr i64 %6 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  store i64 %9, i64* %11\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %6, i64* %12\n; # (set $Make (set $Yoke R))\n; # (set $Yoke R)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  store i64 %6, i64* %13\n  %14 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %6, i64* %14\n; # (cdr Exe)\n  %15 = inttoptr i64 %0 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n; # (exec (cdr Exe))\n  br label %$2\n$2:\n  %18 = phi i64 [%17, %$1], [%30, %$5] ; # Prg\n  %19 = inttoptr i64 %18 to i64*\n  %20 = getelementptr i64, i64* %19, i32 1\n  %21 = load i64, i64* %20\n  %22 = load i64, i64* %19\n  %23 = and i64 %22, 15\n  %24 = icmp eq i64 %23, 0\n  br i1 %24, label %$3, label %$4\n$3:\n  %25 = phi i64 [%21, %$2] ; # Prg\n  %26 = call i64 @evList(i64 %22)\n  br label %$4\n$4:\n  %27 = phi i64 [%21, %$2], [%25, %$3] ; # Prg\n  %28 = and i64 %27, 15\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$6, label %$5\n$5:\n  %30 = phi i64 [%27, %$4] ; # Prg\n  br label %$2\n$6:\n  %31 = phi i64 [%27, %$4] ; # Prg\n  %32 = phi i64 [0, %$4] ; # ->\n; # (set $At2 (if (pair (val R)) (ofs (val $Make) -1) $Nil))\n; # (if (pair (val R)) (ofs (val $Make) -1) $Nil)\n; # (val R)\n  %33 = inttoptr i64 %6 to i64*\n  %34 = load i64, i64* %33\n; # (pair (val R))\n  %35 = and i64 %34, 15\n  %36 = icmp eq i64 %35, 0\n  br i1 %36, label %$7, label %$8\n$7:\n  %37 = phi i64 [%0, %$6] ; # Exe\n  %38 = phi i64 [%2, %$6] ; # Make\n  %39 = phi i64 [%4, %$6] ; # Yoke\n  %40 = phi i64 [%6, %$6] ; # R\n; # (val $Make)\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %42 = load i64, i64* %41\n; # (ofs (val $Make) -1)\n  %43 = add i64 %42, -8\n  br label %$9\n$8:\n  %44 = phi i64 [%0, %$6] ; # Exe\n  %45 = phi i64 [%2, %$6] ; # Make\n  %46 = phi i64 [%4, %$6] ; # Yoke\n  %47 = phi i64 [%6, %$6] ; # R\n  br label %$9\n$9:\n  %48 = phi i64 [%37, %$7], [%44, %$8] ; # Exe\n  %49 = phi i64 [%38, %$7], [%45, %$8] ; # Make\n  %50 = phi i64 [%39, %$7], [%46, %$8] ; # Yoke\n  %51 = phi i64 [%40, %$7], [%47, %$8] ; # R\n  %52 = phi i64 [%43, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %52, i64* %53\n; # (set $Make Make $Yoke Yoke)\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %49, i64* %54\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  store i64 %50, i64* %55\n; # (pop R)\n  %56 = inttoptr i64 %51 to i64*\n  %57 = load i64, i64* %56\n  %58 = inttoptr i64 %51 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  %60 = load i64, i64* %59\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %60, i64* %61\n  ret i64 %57\n}\n\ndefine i64 @_Made(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (unless (val $Make) (makeErr Exe)) (when (pair X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (unless (val $Make) (makeErr Exe))\n; # (val $Make)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (makeErr Exe)\n  call void @makeErr(i64 %7)\n  unreachable\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n; # (when (pair X) (if (atom (set (val $Yoke) (eval (++ X)))) (set $M...\n; # (pair X)\n  %11 = and i64 %10, 15\n  %12 = icmp eq i64 %11, 0\n  br i1 %12, label %$4, label %$5\n$4:\n  %13 = phi i64 [%9, %$3] ; # Exe\n  %14 = phi i64 [%10, %$3] ; # X\n; # (if (atom (set (val $Yoke) (eval (++ X)))) (set $Make (val $Yoke)...\n; # (set (val $Yoke) (eval (++ X)))\n; # (val $Yoke)\n  %15 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %16 = load i64, i64* %15\n; # (++ X)\n  %17 = inttoptr i64 %14 to i64*\n  %18 = getelementptr i64, i64* %17, i32 1\n  %19 = load i64, i64* %18\n  %20 = load i64, i64* %17\n; # (eval (++ X))\n  %21 = and i64 %20, 6\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$8, label %$7\n$8:\n  %23 = phi i64 [%20, %$4] ; # X\n  br label %$6\n$7:\n  %24 = phi i64 [%20, %$4] ; # X\n  %25 = and i64 %24, 8\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$9\n$10:\n  %27 = phi i64 [%24, %$7] ; # X\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$6\n$9:\n  %30 = phi i64 [%24, %$7] ; # X\n  %31 = call i64 @evList(i64 %30)\n  br label %$6\n$6:\n  %32 = phi i64 [%23, %$8], [%27, %$10], [%30, %$9] ; # X\n  %33 = phi i64 [%23, %$8], [%29, %$10], [%31, %$9] ; # ->\n  %34 = inttoptr i64 %16 to i64*\n  store i64 %33, i64* %34\n; # (atom (set (val $Yoke) (eval (++ X))))\n  %35 = and i64 %33, 15\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$12\n$11:\n  %37 = phi i64 [%13, %$6] ; # Exe\n  %38 = phi i64 [%19, %$6] ; # X\n; # (set $Make (val $Yoke))\n; # (val $Yoke)\n  %39 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %40, i64* %41\n  br label %$13\n$12:\n  %42 = phi i64 [%13, %$6] ; # Exe\n  %43 = phi i64 [%19, %$6] ; # X\n; # (let Y (eval (car X)) (when (atom Y) (setq Y (val (val $Yoke))) (...\n; # (car X)\n  %44 = inttoptr i64 %43 to i64*\n  %45 = load i64, i64* %44\n; # (eval (car X))\n  %46 = and i64 %45, 6\n  %47 = icmp ne i64 %46, 0\n  br i1 %47, label %$16, label %$15\n$16:\n  %48 = phi i64 [%45, %$12] ; # X\n  br label %$14\n$15:\n  %49 = phi i64 [%45, %$12] ; # X\n  %50 = and i64 %49, 8\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$18, label %$17\n$18:\n  %52 = phi i64 [%49, %$15] ; # X\n  %53 = inttoptr i64 %52 to i64*\n  %54 = load i64, i64* %53\n  br label %$14\n$17:\n  %55 = phi i64 [%49, %$15] ; # X\n  %56 = call i64 @evList(i64 %55)\n  br label %$14\n$14:\n  %57 = phi i64 [%48, %$16], [%52, %$18], [%55, %$17] ; # X\n  %58 = phi i64 [%48, %$16], [%54, %$18], [%56, %$17] ; # ->\n; # (when (atom Y) (setq Y (val (val $Yoke))) (while (pair (cdr Y)) (...\n; # (atom Y)\n  %59 = and i64 %58, 15\n  %60 = icmp ne i64 %59, 0\n  br i1 %60, label %$19, label %$20\n$19:\n  %61 = phi i64 [%42, %$14] ; # Exe\n  %62 = phi i64 [%43, %$14] ; # X\n  %63 = phi i64 [%58, %$14] ; # Y\n; # (val $Yoke)\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %65 = load i64, i64* %64\n; # (val (val $Yoke))\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (while (pair (cdr Y)) (setq Y @))\n  br label %$21\n$21:\n  %68 = phi i64 [%61, %$19], [%76, %$22] ; # Exe\n  %69 = phi i64 [%62, %$19], [%77, %$22] ; # X\n  %70 = phi i64 [%67, %$19], [%73, %$22] ; # Y\n; # (cdr Y)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n; # (pair (cdr Y))\n  %74 = and i64 %73, 15\n  %75 = icmp eq i64 %74, 0\n  br i1 %75, label %$22, label %$23\n$22:\n  %76 = phi i64 [%68, %$21] ; # Exe\n  %77 = phi i64 [%69, %$21] ; # X\n  %78 = phi i64 [%70, %$21] ; # Y\n  br label %$21\n$23:\n  %79 = phi i64 [%68, %$21] ; # Exe\n  %80 = phi i64 [%69, %$21] ; # X\n  %81 = phi i64 [%70, %$21] ; # Y\n  br label %$20\n$20:\n  %82 = phi i64 [%42, %$14], [%79, %$23] ; # Exe\n  %83 = phi i64 [%43, %$14], [%80, %$23] ; # X\n  %84 = phi i64 [%58, %$14], [%81, %$23] ; # Y\n; # (set $Make (ofs Y 1))\n; # (ofs Y 1)\n  %85 = add i64 %84, 8\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %85, i64* %86\n  br label %$13\n$13:\n  %87 = phi i64 [%37, %$11], [%82, %$20] ; # Exe\n  %88 = phi i64 [%38, %$11], [%83, %$20] ; # X\n  %89 = phi i64 [%40, %$11], [%85, %$20] ; # ->\n  br label %$5\n$5:\n  %90 = phi i64 [%9, %$3], [%87, %$13] ; # Exe\n  %91 = phi i64 [%10, %$3], [%88, %$13] ; # X\n; # (val $Yoke)\n  %92 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %93 = load i64, i64* %92\n; # (val (val $Yoke))\n  %94 = inttoptr i64 %93 to i64*\n  %95 = load i64, i64* %94\n  ret i64 %95\n}\n\ndefine i64 @_Chain(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (unless (val $Make) (makeErr Exe)) (loop (let Y ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (unless (val $Make) (makeErr Exe))\n; # (val $Make)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (makeErr Exe)\n  call void @makeErr(i64 %7)\n  unreachable\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n; # (loop (let Y (set (val $Make) (eval (++ X))) (when (pair Y) (let ...\n  br label %$4\n$4:\n  %11 = phi i64 [%9, %$3], [%65, %$15] ; # Exe\n  %12 = phi i64 [%10, %$3], [%66, %$15] ; # X\n; # (let Y (set (val $Make) (eval (++ X))) (when (pair Y) (let Z Y (w...\n; # (set (val $Make) (eval (++ X)))\n; # (val $Make)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %14 = load i64, i64* %13\n; # (++ X)\n  %15 = inttoptr i64 %12 to i64*\n  %16 = getelementptr i64, i64* %15, i32 1\n  %17 = load i64, i64* %16\n  %18 = load i64, i64* %15\n; # (eval (++ X))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$6\n$7:\n  %21 = phi i64 [%18, %$4] ; # X\n  br label %$5\n$6:\n  %22 = phi i64 [%18, %$4] ; # X\n  %23 = and i64 %22, 8\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$9, label %$8\n$9:\n  %25 = phi i64 [%22, %$6] ; # X\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n  br label %$5\n$8:\n  %28 = phi i64 [%22, %$6] ; # X\n  %29 = call i64 @evList(i64 %28)\n  br label %$5\n$5:\n  %30 = phi i64 [%21, %$7], [%25, %$9], [%28, %$8] ; # X\n  %31 = phi i64 [%21, %$7], [%27, %$9], [%29, %$8] ; # ->\n  %32 = inttoptr i64 %14 to i64*\n  store i64 %31, i64* %32\n; # (when (pair Y) (let Z Y (while (pair (cdr Z)) (setq Z @)) (set $M...\n; # (pair Y)\n  %33 = and i64 %31, 15\n  %34 = icmp eq i64 %33, 0\n  br i1 %34, label %$10, label %$11\n$10:\n  %35 = phi i64 [%11, %$5] ; # Exe\n  %36 = phi i64 [%17, %$5] ; # X\n  %37 = phi i64 [%31, %$5] ; # Y\n; # (let Z Y (while (pair (cdr Z)) (setq Z @)) (set $Make (ofs Z 1)))...\n; # (while (pair (cdr Z)) (setq Z @))\n  br label %$12\n$12:\n  %38 = phi i64 [%35, %$10], [%47, %$13] ; # Exe\n  %39 = phi i64 [%36, %$10], [%48, %$13] ; # X\n  %40 = phi i64 [%37, %$10], [%49, %$13] ; # Y\n  %41 = phi i64 [%37, %$10], [%44, %$13] ; # Z\n; # (cdr Z)\n  %42 = inttoptr i64 %41 to i64*\n  %43 = getelementptr i64, i64* %42, i32 1\n  %44 = load i64, i64* %43\n; # (pair (cdr Z))\n  %45 = and i64 %44, 15\n  %46 = icmp eq i64 %45, 0\n  br i1 %46, label %$13, label %$14\n$13:\n  %47 = phi i64 [%38, %$12] ; # Exe\n  %48 = phi i64 [%39, %$12] ; # X\n  %49 = phi i64 [%40, %$12] ; # Y\n  %50 = phi i64 [%41, %$12] ; # Z\n  br label %$12\n$14:\n  %51 = phi i64 [%38, %$12] ; # Exe\n  %52 = phi i64 [%39, %$12] ; # X\n  %53 = phi i64 [%40, %$12] ; # Y\n  %54 = phi i64 [%41, %$12] ; # Z\n; # (set $Make (ofs Z 1))\n; # (ofs Z 1)\n  %55 = add i64 %54, 8\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %55, i64* %56\n  br label %$11\n$11:\n  %57 = phi i64 [%11, %$5], [%51, %$14] ; # Exe\n  %58 = phi i64 [%17, %$5], [%52, %$14] ; # X\n  %59 = phi i64 [%31, %$5], [%53, %$14] ; # Y\n; # (? (atom X) Y)\n; # (atom X)\n  %60 = and i64 %58, 15\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$17, label %$15\n$17:\n  %62 = phi i64 [%57, %$11] ; # Exe\n  %63 = phi i64 [%58, %$11] ; # X\n  %64 = phi i64 [%59, %$11] ; # Y\n  br label %$16\n$15:\n  %65 = phi i64 [%57, %$11] ; # Exe\n  %66 = phi i64 [%58, %$11] ; # X\n  %67 = phi i64 [%59, %$11] ; # Y\n  br label %$4\n$16:\n  %68 = phi i64 [%62, %$17] ; # Exe\n  %69 = phi i64 [%63, %$17] ; # X\n  %70 = phi i64 [%64, %$17] ; # ->\n  ret i64 %70\n}\n\ndefine i64 @_Link(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (unless (val $Make) (makeErr Exe)) (loop (let Y ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (unless (val $Make) (makeErr Exe))\n; # (val $Make)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (makeErr Exe)\n  call void @makeErr(i64 %7)\n  unreachable\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n; # (loop (let Y (eval (++ X)) (set $Make (ofs (set (val $Make) (cons...\n  br label %$4\n$4:\n  %11 = phi i64 [%9, %$3], [%41, %$10] ; # Exe\n  %12 = phi i64 [%10, %$3], [%42, %$10] ; # X\n; # (let Y (eval (++ X)) (set $Make (ofs (set (val $Make) (cons Y $Ni...\n; # (++ X)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n  %16 = load i64, i64* %13\n; # (eval (++ X))\n  %17 = and i64 %16, 6\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$7, label %$6\n$7:\n  %19 = phi i64 [%16, %$4] ; # X\n  br label %$5\n$6:\n  %20 = phi i64 [%16, %$4] ; # X\n  %21 = and i64 %20, 8\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%20, %$6] ; # X\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n  br label %$5\n$8:\n  %26 = phi i64 [%20, %$6] ; # X\n  %27 = call i64 @evList(i64 %26)\n  br label %$5\n$5:\n  %28 = phi i64 [%19, %$7], [%23, %$9], [%26, %$8] ; # X\n  %29 = phi i64 [%19, %$7], [%25, %$9], [%27, %$8] ; # ->\n; # (set $Make (ofs (set (val $Make) (cons Y $Nil)) 1))\n; # (set (val $Make) (cons Y $Nil))\n; # (val $Make)\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %31 = load i64, i64* %30\n; # (cons Y $Nil)\n  %32 = call i64 @cons(i64 %29, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %33 = inttoptr i64 %31 to i64*\n  store i64 %32, i64* %33\n; # (ofs (set (val $Make) (cons Y $Nil)) 1)\n  %34 = add i64 %32, 8\n  %35 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %34, i64* %35\n; # (? (atom X) Y)\n; # (atom X)\n  %36 = and i64 %15, 15\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$12, label %$10\n$12:\n  %38 = phi i64 [%11, %$5] ; # Exe\n  %39 = phi i64 [%15, %$5] ; # X\n  %40 = phi i64 [%29, %$5] ; # Y\n  br label %$11\n$10:\n  %41 = phi i64 [%11, %$5] ; # Exe\n  %42 = phi i64 [%15, %$5] ; # X\n  %43 = phi i64 [%29, %$5] ; # Y\n  br label %$4\n$11:\n  %44 = phi i64 [%38, %$12] ; # Exe\n  %45 = phi i64 [%39, %$12] ; # X\n  %46 = phi i64 [%40, %$12] ; # ->\n  ret i64 %46\n}\n\ndefine i64 @_Yoke(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (unless (val $Make) (makeErr Exe)) (loop (let Y ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (unless (val $Make) (makeErr Exe))\n; # (val $Make)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$3, label %$2\n$2:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n; # (makeErr Exe)\n  call void @makeErr(i64 %7)\n  unreachable\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n  %10 = phi i64 [%3, %$1] ; # X\n; # (loop (let Y (eval (++ X)) (let P (val $Yoke) (set P (cons Y (val...\n  br label %$4\n$4:\n  %11 = phi i64 [%9, %$3], [%61, %$10] ; # Exe\n  %12 = phi i64 [%10, %$3], [%62, %$10] ; # X\n; # (let Y (eval (++ X)) (let P (val $Yoke) (set P (cons Y (val P))))...\n; # (++ X)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n  %16 = load i64, i64* %13\n; # (eval (++ X))\n  %17 = and i64 %16, 6\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$7, label %$6\n$7:\n  %19 = phi i64 [%16, %$4] ; # X\n  br label %$5\n$6:\n  %20 = phi i64 [%16, %$4] ; # X\n  %21 = and i64 %20, 8\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%20, %$6] ; # X\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n  br label %$5\n$8:\n  %26 = phi i64 [%20, %$6] ; # X\n  %27 = call i64 @evList(i64 %26)\n  br label %$5\n$5:\n  %28 = phi i64 [%19, %$7], [%23, %$9], [%26, %$8] ; # X\n  %29 = phi i64 [%19, %$7], [%25, %$9], [%27, %$8] ; # ->\n; # (let P (val $Yoke) (set P (cons Y (val P))))\n; # (val $Yoke)\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 160) to i64) to i64*\n  %31 = load i64, i64* %30\n; # (set P (cons Y (val P)))\n; # (val P)\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n; # (cons Y (val P))\n  %34 = call i64 @cons(i64 %29, i64 %33)\n  %35 = inttoptr i64 %31 to i64*\n  store i64 %34, i64* %35\n; # (? (atom X) (let Z (val $Make) (while (pair (val Z)) (setq Z (ofs...\n; # (atom X)\n  %36 = and i64 %15, 15\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$12, label %$10\n$12:\n  %38 = phi i64 [%11, %$5] ; # Exe\n  %39 = phi i64 [%15, %$5] ; # X\n  %40 = phi i64 [%29, %$5] ; # Y\n; # (let Z (val $Make) (while (pair (val Z)) (setq Z (ofs @ 1))) (set...\n; # (val $Make)\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  %42 = load i64, i64* %41\n; # (while (pair (val Z)) (setq Z (ofs @ 1)))\n  br label %$13\n$13:\n  %43 = phi i64 [%38, %$12], [%51, %$14] ; # Exe\n  %44 = phi i64 [%39, %$12], [%52, %$14] ; # X\n  %45 = phi i64 [%40, %$12], [%53, %$14] ; # Y\n  %46 = phi i64 [%42, %$12], [%55, %$14] ; # Z\n; # (val Z)\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (pair (val Z))\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$14, label %$15\n$14:\n  %51 = phi i64 [%43, %$13] ; # Exe\n  %52 = phi i64 [%44, %$13] ; # X\n  %53 = phi i64 [%45, %$13] ; # Y\n  %54 = phi i64 [%46, %$13] ; # Z\n; # (ofs @ 1)\n  %55 = add i64 %48, 8\n  br label %$13\n$15:\n  %56 = phi i64 [%43, %$13] ; # Exe\n  %57 = phi i64 [%44, %$13] ; # X\n  %58 = phi i64 [%45, %$13] ; # Y\n  %59 = phi i64 [%46, %$13] ; # Z\n; # (set $Make Z)\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 152) to i64) to i64*\n  store i64 %59, i64* %60\n  br label %$11\n$10:\n  %61 = phi i64 [%11, %$5] ; # Exe\n  %62 = phi i64 [%15, %$5] ; # X\n  %63 = phi i64 [%29, %$5] ; # Y\n  br label %$4\n$11:\n  %64 = phi i64 [%56, %$15] ; # Exe\n  %65 = phi i64 [%57, %$15] ; # X\n  %66 = phi i64 [%58, %$15] ; # ->\n  ret i64 %66\n}\n\ndefine i64 @_Copy(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (atom (setq X (eval (car X)))) X (let (Y (co...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (atom (setq X (eval (car X)))) X (let (Y (cons (car X) (cdr X...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (atom (setq X (eval (car X))))\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n; # (let (Y (cons (car X) (cdr X)) R (save Y) Z X) (while (pair (setq...\n; # (car X)\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n; # (cdr X)\n  %27 = inttoptr i64 %24 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (cons (car X) (cdr X))\n  %30 = call i64 @cons(i64 %26, i64 %29)\n; # (save Y)\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %32 = load i64, i64* %31\n  %33 = alloca i64, i64 2, align 16\n  %34 = ptrtoint i64* %33 to i64\n  %35 = inttoptr i64 %34 to i64*\n  store i64 %30, i64* %35\n  %36 = add i64 %34, 8\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %32, i64* %37\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %34, i64* %38\n; # (while (pair (setq X (cdr Y))) (? (== X Z) (set 2 Y R)) (setq Y (...\n  br label %$10\n$10:\n  %39 = phi i64 [%23, %$8], [%62, %$13] ; # Exe\n  %40 = phi i64 [%24, %$8], [%63, %$13] ; # X\n  %41 = phi i64 [%30, %$8], [%72, %$13] ; # Y\n  %42 = phi i64 [%30, %$8], [%65, %$13] ; # R\n  %43 = phi i64 [%24, %$8], [%66, %$13] ; # Z\n; # (cdr Y)\n  %44 = inttoptr i64 %41 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n; # (pair (setq X (cdr Y)))\n  %47 = and i64 %46, 15\n  %48 = icmp eq i64 %47, 0\n  br i1 %48, label %$11, label %$12\n$11:\n  %49 = phi i64 [%39, %$10] ; # Exe\n  %50 = phi i64 [%46, %$10] ; # X\n  %51 = phi i64 [%41, %$10] ; # Y\n  %52 = phi i64 [%42, %$10] ; # R\n  %53 = phi i64 [%43, %$10] ; # Z\n; # (? (== X Z) (set 2 Y R))\n; # (== X Z)\n  %54 = icmp eq i64 %50, %53\n  br i1 %54, label %$14, label %$13\n$14:\n  %55 = phi i64 [%49, %$11] ; # Exe\n  %56 = phi i64 [%50, %$11] ; # X\n  %57 = phi i64 [%51, %$11] ; # Y\n  %58 = phi i64 [%52, %$11] ; # R\n  %59 = phi i64 [%53, %$11] ; # Z\n; # (set 2 Y R)\n  %60 = inttoptr i64 %57 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  store i64 %58, i64* %61\n  br label %$12\n$13:\n  %62 = phi i64 [%49, %$11] ; # Exe\n  %63 = phi i64 [%50, %$11] ; # X\n  %64 = phi i64 [%51, %$11] ; # Y\n  %65 = phi i64 [%52, %$11] ; # R\n  %66 = phi i64 [%53, %$11] ; # Z\n; # (set 2 Y (cons (car X) (cdr X)))\n; # (car X)\n  %67 = inttoptr i64 %63 to i64*\n  %68 = load i64, i64* %67\n; # (cdr X)\n  %69 = inttoptr i64 %63 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n; # (cons (car X) (cdr X))\n  %72 = call i64 @cons(i64 %68, i64 %71)\n  %73 = inttoptr i64 %64 to i64*\n  %74 = getelementptr i64, i64* %73, i32 1\n  store i64 %72, i64* %74\n  br label %$10\n$12:\n  %75 = phi i64 [%39, %$10], [%55, %$14] ; # Exe\n  %76 = phi i64 [%46, %$10], [%56, %$14] ; # X\n  %77 = phi i64 [%41, %$10], [%57, %$14] ; # Y\n  %78 = phi i64 [%42, %$10], [%58, %$14] ; # R\n  %79 = phi i64 [%43, %$10], [%59, %$14] ; # Z\n; # (drop *Safe)\n  %80 = inttoptr i64 %34 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  %82 = load i64, i64* %81\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %82, i64* %83\n  br label %$9\n$9:\n  %84 = phi i64 [%21, %$7], [%75, %$12] ; # Exe\n  %85 = phi i64 [%22, %$7], [%76, %$12] ; # X\n  %86 = phi i64 [%22, %$7], [%78, %$12] ; # ->\n  ret i64 %86\n}\n\ndefine i64 @_Mix(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (nond ((or (pair Y) (nil? Y))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nond ((or (pair Y) (nil? Y)) Y) ((pair (shift X)) $Nil) (NIL (sa...\n; # (or (pair Y) (nil? Y))\n; # (pair Y)\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$8, label %$9\n$9:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%3, %$2] ; # X\n  %23 = phi i64 [%18, %$2] ; # Y\n; # (nil? Y)\n  %24 = icmp eq i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$8\n$8:\n  %25 = phi i64 [%0, %$2], [%21, %$9] ; # Exe\n  %26 = phi i64 [%3, %$2], [%22, %$9] ; # X\n  %27 = phi i64 [%18, %$2], [%23, %$9] ; # Y\n  %28 = phi i1 [1, %$2], [%24, %$9] ; # ->\n  br i1 %28, label %$10, label %$11\n$11:\n  %29 = phi i64 [%25, %$8] ; # Exe\n  %30 = phi i64 [%26, %$8] ; # X\n  %31 = phi i64 [%27, %$8] ; # Y\n  br label %$7\n$10:\n  %32 = phi i64 [%25, %$8] ; # Exe\n  %33 = phi i64 [%26, %$8] ; # X\n  %34 = phi i64 [%27, %$8] ; # Y\n; # (shift X)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n; # (pair (shift X))\n  %38 = and i64 %37, 15\n  %39 = icmp eq i64 %38, 0\n  br i1 %39, label %$12, label %$13\n$13:\n  %40 = phi i64 [%32, %$10] ; # Exe\n  %41 = phi i64 [%37, %$10] ; # X\n  %42 = phi i64 [%34, %$10] ; # Y\n  br label %$7\n$12:\n  %43 = phi i64 [%32, %$10] ; # Exe\n  %44 = phi i64 [%37, %$10] ; # X\n  %45 = phi i64 [%34, %$10] ; # Y\n; # (save Y (let (Z (cons (if (cnt? (car X)) (nth @ Y) (eval @)) $Nil...\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = alloca i64, i64 2, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = add i64 %49, 8\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %53\n; # (let (Z (cons (if (cnt? (car X)) (nth @ Y) (eval @)) $Nil) R (sav...\n; # (if (cnt? (car X)) (nth @ Y) (eval @))\n; # (car X)\n  %54 = inttoptr i64 %44 to i64*\n  %55 = load i64, i64* %54\n; # (cnt? (car X))\n  %56 = and i64 %55, 2\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$15\n$14:\n  %58 = phi i64 [%43, %$12] ; # Exe\n  %59 = phi i64 [%44, %$12] ; # X\n  %60 = phi i64 [%45, %$12] ; # Y\n; # (nth @ Y)\n  %61 = lshr i64 %55, 4\n  br label %$17\n$17:\n  %62 = phi i64 [%60, %$14], [%72, %$18] ; # X\n  %63 = phi i64 [%55, %$14], [%68, %$18] ; # N\n  %64 = phi i64 [%61, %$14], [%69, %$18] ; # C\n  %65 = sub i64 %64, 1\n  %66 = icmp ne i64 %65, 0\n  br i1 %66, label %$18, label %$19\n$18:\n  %67 = phi i64 [%62, %$17] ; # X\n  %68 = phi i64 [%63, %$17] ; # N\n  %69 = phi i64 [%65, %$17] ; # C\n  %70 = inttoptr i64 %67 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n  br label %$17\n$19:\n  %73 = phi i64 [%62, %$17] ; # X\n  %74 = phi i64 [%63, %$17] ; # N\n  %75 = phi i64 [%65, %$17] ; # C\n  %76 = and i64 %74, 8\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$20, label %$21\n$20:\n  %78 = phi i64 [%73, %$19] ; # X\n  %79 = phi i64 [%74, %$19] ; # N\n  %80 = phi i64 [%75, %$19] ; # C\n  %81 = inttoptr i64 %78 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  br label %$22\n$21:\n  %84 = phi i64 [%73, %$19] ; # X\n  %85 = phi i64 [%74, %$19] ; # N\n  %86 = phi i64 [%75, %$19] ; # C\n  %87 = inttoptr i64 %84 to i64*\n  %88 = load i64, i64* %87\n  br label %$22\n$22:\n  %89 = phi i64 [%78, %$20], [%84, %$21] ; # X\n  %90 = phi i64 [%79, %$20], [%85, %$21] ; # N\n  %91 = phi i64 [%80, %$20], [%86, %$21] ; # C\n  %92 = phi i64 [%83, %$20], [%88, %$21] ; # ->\n  br label %$16\n$15:\n  %93 = phi i64 [%43, %$12] ; # Exe\n  %94 = phi i64 [%44, %$12] ; # X\n  %95 = phi i64 [%45, %$12] ; # Y\n; # (eval @)\n  %96 = and i64 %55, 6\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$25, label %$24\n$25:\n  %98 = phi i64 [%55, %$15] ; # X\n  br label %$23\n$24:\n  %99 = phi i64 [%55, %$15] ; # X\n  %100 = and i64 %99, 8\n  %101 = icmp ne i64 %100, 0\n  br i1 %101, label %$27, label %$26\n$27:\n  %102 = phi i64 [%99, %$24] ; # X\n  %103 = inttoptr i64 %102 to i64*\n  %104 = load i64, i64* %103\n  br label %$23\n$26:\n  %105 = phi i64 [%99, %$24] ; # X\n  %106 = call i64 @evList(i64 %105)\n  br label %$23\n$23:\n  %107 = phi i64 [%98, %$25], [%102, %$27], [%105, %$26] ; # X\n  %108 = phi i64 [%98, %$25], [%104, %$27], [%106, %$26] ; # ->\n  br label %$16\n$16:\n  %109 = phi i64 [%58, %$22], [%93, %$23] ; # Exe\n  %110 = phi i64 [%59, %$22], [%94, %$23] ; # X\n  %111 = phi i64 [%60, %$22], [%95, %$23] ; # Y\n  %112 = phi i64 [%92, %$22], [%108, %$23] ; # ->\n; # (cons (if (cnt? (car X)) (nth @ Y) (eval @)) $Nil)\n  %113 = call i64 @cons(i64 %112, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Z)\n  %114 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %115 = load i64, i64* %114\n  %116 = alloca i64, i64 2, align 16\n  %117 = ptrtoint i64* %116 to i64\n  %118 = inttoptr i64 %117 to i64*\n  store i64 %113, i64* %118\n  %119 = add i64 %117, 8\n  %120 = inttoptr i64 %119 to i64*\n  store i64 %115, i64* %120\n  %121 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %117, i64* %121\n; # (while (pair (shift X)) (setq Z (set 2 Z (cons (if (cnt? (car X))...\n  br label %$28\n$28:\n  %122 = phi i64 [%109, %$16], [%196, %$33] ; # Exe\n  %123 = phi i64 [%110, %$16], [%197, %$33] ; # X\n  %124 = phi i64 [%111, %$16], [%198, %$33] ; # Y\n  %125 = phi i64 [%113, %$16], [%202, %$33] ; # Z\n  %126 = phi i64 [%113, %$16], [%200, %$33] ; # R\n; # (shift X)\n  %127 = inttoptr i64 %123 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n; # (pair (shift X))\n  %130 = and i64 %129, 15\n  %131 = icmp eq i64 %130, 0\n  br i1 %131, label %$29, label %$30\n$29:\n  %132 = phi i64 [%122, %$28] ; # Exe\n  %133 = phi i64 [%129, %$28] ; # X\n  %134 = phi i64 [%124, %$28] ; # Y\n  %135 = phi i64 [%125, %$28] ; # Z\n  %136 = phi i64 [%126, %$28] ; # R\n; # (set 2 Z (cons (if (cnt? (car X)) (nth @ Y) (eval @)) $Nil))\n; # (if (cnt? (car X)) (nth @ Y) (eval @))\n; # (car X)\n  %137 = inttoptr i64 %133 to i64*\n  %138 = load i64, i64* %137\n; # (cnt? (car X))\n  %139 = and i64 %138, 2\n  %140 = icmp ne i64 %139, 0\n  br i1 %140, label %$31, label %$32\n$31:\n  %141 = phi i64 [%132, %$29] ; # Exe\n  %142 = phi i64 [%133, %$29] ; # X\n  %143 = phi i64 [%134, %$29] ; # Y\n  %144 = phi i64 [%135, %$29] ; # Z\n  %145 = phi i64 [%136, %$29] ; # R\n; # (nth @ Y)\n  %146 = lshr i64 %138, 4\n  br label %$34\n$34:\n  %147 = phi i64 [%143, %$31], [%157, %$35] ; # X\n  %148 = phi i64 [%138, %$31], [%153, %$35] ; # N\n  %149 = phi i64 [%146, %$31], [%154, %$35] ; # C\n  %150 = sub i64 %149, 1\n  %151 = icmp ne i64 %150, 0\n  br i1 %151, label %$35, label %$36\n$35:\n  %152 = phi i64 [%147, %$34] ; # X\n  %153 = phi i64 [%148, %$34] ; # N\n  %154 = phi i64 [%150, %$34] ; # C\n  %155 = inttoptr i64 %152 to i64*\n  %156 = getelementptr i64, i64* %155, i32 1\n  %157 = load i64, i64* %156\n  br label %$34\n$36:\n  %158 = phi i64 [%147, %$34] ; # X\n  %159 = phi i64 [%148, %$34] ; # N\n  %160 = phi i64 [%150, %$34] ; # C\n  %161 = and i64 %159, 8\n  %162 = icmp ne i64 %161, 0\n  br i1 %162, label %$37, label %$38\n$37:\n  %163 = phi i64 [%158, %$36] ; # X\n  %164 = phi i64 [%159, %$36] ; # N\n  %165 = phi i64 [%160, %$36] ; # C\n  %166 = inttoptr i64 %163 to i64*\n  %167 = getelementptr i64, i64* %166, i32 1\n  %168 = load i64, i64* %167\n  br label %$39\n$38:\n  %169 = phi i64 [%158, %$36] ; # X\n  %170 = phi i64 [%159, %$36] ; # N\n  %171 = phi i64 [%160, %$36] ; # C\n  %172 = inttoptr i64 %169 to i64*\n  %173 = load i64, i64* %172\n  br label %$39\n$39:\n  %174 = phi i64 [%163, %$37], [%169, %$38] ; # X\n  %175 = phi i64 [%164, %$37], [%170, %$38] ; # N\n  %176 = phi i64 [%165, %$37], [%171, %$38] ; # C\n  %177 = phi i64 [%168, %$37], [%173, %$38] ; # ->\n  br label %$33\n$32:\n  %178 = phi i64 [%132, %$29] ; # Exe\n  %179 = phi i64 [%133, %$29] ; # X\n  %180 = phi i64 [%134, %$29] ; # Y\n  %181 = phi i64 [%135, %$29] ; # Z\n  %182 = phi i64 [%136, %$29] ; # R\n; # (eval @)\n  %183 = and i64 %138, 6\n  %184 = icmp ne i64 %183, 0\n  br i1 %184, label %$42, label %$41\n$42:\n  %185 = phi i64 [%138, %$32] ; # X\n  br label %$40\n$41:\n  %186 = phi i64 [%138, %$32] ; # X\n  %187 = and i64 %186, 8\n  %188 = icmp ne i64 %187, 0\n  br i1 %188, label %$44, label %$43\n$44:\n  %189 = phi i64 [%186, %$41] ; # X\n  %190 = inttoptr i64 %189 to i64*\n  %191 = load i64, i64* %190\n  br label %$40\n$43:\n  %192 = phi i64 [%186, %$41] ; # X\n  %193 = call i64 @evList(i64 %192)\n  br label %$40\n$40:\n  %194 = phi i64 [%185, %$42], [%189, %$44], [%192, %$43] ; # X\n  %195 = phi i64 [%185, %$42], [%191, %$44], [%193, %$43] ; # ->\n  br label %$33\n$33:\n  %196 = phi i64 [%141, %$39], [%178, %$40] ; # Exe\n  %197 = phi i64 [%142, %$39], [%179, %$40] ; # X\n  %198 = phi i64 [%143, %$39], [%180, %$40] ; # Y\n  %199 = phi i64 [%144, %$39], [%181, %$40] ; # Z\n  %200 = phi i64 [%145, %$39], [%182, %$40] ; # R\n  %201 = phi i64 [%177, %$39], [%195, %$40] ; # ->\n; # (cons (if (cnt? (car X)) (nth @ Y) (eval @)) $Nil)\n  %202 = call i64 @cons(i64 %201, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %203 = inttoptr i64 %135 to i64*\n  %204 = getelementptr i64, i64* %203, i32 1\n  store i64 %202, i64* %204\n  br label %$28\n$30:\n  %205 = phi i64 [%122, %$28] ; # Exe\n  %206 = phi i64 [%129, %$28] ; # X\n  %207 = phi i64 [%124, %$28] ; # Y\n  %208 = phi i64 [%125, %$28] ; # Z\n  %209 = phi i64 [%126, %$28] ; # R\n; # drop\n  %210 = inttoptr i64 %49 to i64*\n  %211 = getelementptr i64, i64* %210, i32 1\n  %212 = load i64, i64* %211\n  %213 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %212, i64* %213\n  br label %$7\n$7:\n  %214 = phi i64 [%29, %$11], [%40, %$13], [%205, %$30] ; # Exe\n  %215 = phi i64 [%30, %$11], [%41, %$13], [%206, %$30] ; # X\n  %216 = phi i64 [%31, %$11], [%42, %$13], [%207, %$30] ; # Y\n  %217 = phi i64 [%31, %$11], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%209, %$30] ; # ->\n  ret i64 %217\n}\n\ndefine i64 @_Append(i64) align 8 {\n$1:\n; # (let X Exe (loop (? (atom (cdr (shift X))) (eval (car X))) (? (pa...\n; # (loop (? (atom (cdr (shift X))) (eval (car X))) (? (pair (eval (c...\n  br label %$2\n$2:\n  %1 = phi i64 [%0, %$1], [%181, %$16] ; # Exe\n  %2 = phi i64 [%0, %$1], [%182, %$16] ; # X\n; # (? (atom (cdr (shift X))) (eval (car X)))\n; # (shift X)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = getelementptr i64, i64* %3, i32 1\n  %5 = load i64, i64* %4\n; # (cdr (shift X))\n  %6 = inttoptr i64 %5 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n; # (atom (cdr (shift X)))\n  %9 = and i64 %8, 15\n  %10 = icmp ne i64 %9, 0\n  br i1 %10, label %$5, label %$3\n$5:\n  %11 = phi i64 [%1, %$2] ; # Exe\n  %12 = phi i64 [%5, %$2] ; # X\n; # (car X)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n; # (eval (car X))\n  %15 = and i64 %14, 6\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$8, label %$7\n$8:\n  %17 = phi i64 [%14, %$5] ; # X\n  br label %$6\n$7:\n  %18 = phi i64 [%14, %$5] ; # X\n  %19 = and i64 %18, 8\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$10, label %$9\n$10:\n  %21 = phi i64 [%18, %$7] ; # X\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n  br label %$6\n$9:\n  %24 = phi i64 [%18, %$7] ; # X\n  %25 = call i64 @evList(i64 %24)\n  br label %$6\n$6:\n  %26 = phi i64 [%17, %$8], [%21, %$10], [%24, %$9] ; # X\n  %27 = phi i64 [%17, %$8], [%23, %$10], [%25, %$9] ; # ->\n  br label %$4\n$3:\n  %28 = phi i64 [%1, %$2] ; # Exe\n  %29 = phi i64 [%5, %$2] ; # X\n; # (? (pair (eval (car X))) (let (Y @ R (save (cons (++ Y) Y)) Z R) ...\n; # (car X)\n  %30 = inttoptr i64 %29 to i64*\n  %31 = load i64, i64* %30\n; # (eval (car X))\n  %32 = and i64 %31, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$13, label %$12\n$13:\n  %34 = phi i64 [%31, %$3] ; # X\n  br label %$11\n$12:\n  %35 = phi i64 [%31, %$3] ; # X\n  %36 = and i64 %35, 8\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$15, label %$14\n$15:\n  %38 = phi i64 [%35, %$12] ; # X\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n  br label %$11\n$14:\n  %41 = phi i64 [%35, %$12] ; # X\n  %42 = call i64 @evList(i64 %41)\n  br label %$11\n$11:\n  %43 = phi i64 [%34, %$13], [%38, %$15], [%41, %$14] ; # X\n  %44 = phi i64 [%34, %$13], [%40, %$15], [%42, %$14] ; # ->\n; # (pair (eval (car X)))\n  %45 = and i64 %44, 15\n  %46 = icmp eq i64 %45, 0\n  br i1 %46, label %$17, label %$16\n$17:\n  %47 = phi i64 [%28, %$11] ; # Exe\n  %48 = phi i64 [%29, %$11] ; # X\n; # (let (Y @ R (save (cons (++ Y) Y)) Z R) (while (pair Y) (setq Z (...\n; # (++ Y)\n  %49 = inttoptr i64 %44 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  %51 = load i64, i64* %50\n  %52 = load i64, i64* %49\n; # (cons (++ Y) Y)\n  %53 = call i64 @cons(i64 %52, i64 %51)\n; # (save (cons (++ Y) Y))\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %55 = load i64, i64* %54\n  %56 = alloca i64, i64 2, align 16\n  %57 = ptrtoint i64* %56 to i64\n  %58 = inttoptr i64 %57 to i64*\n  store i64 %53, i64* %58\n  %59 = add i64 %57, 8\n  %60 = inttoptr i64 %59 to i64*\n  store i64 %55, i64* %60\n  %61 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %57, i64* %61\n; # (while (pair Y) (setq Z (set 2 Z (cons (++ Y) Y))))\n  br label %$18\n$18:\n  %62 = phi i64 [%47, %$17], [%69, %$19] ; # Exe\n  %63 = phi i64 [%48, %$17], [%70, %$19] ; # X\n  %64 = phi i64 [%51, %$17], [%76, %$19] ; # Y\n  %65 = phi i64 [%53, %$17], [%72, %$19] ; # R\n  %66 = phi i64 [%53, %$17], [%78, %$19] ; # Z\n; # (pair Y)\n  %67 = and i64 %64, 15\n  %68 = icmp eq i64 %67, 0\n  br i1 %68, label %$19, label %$20\n$19:\n  %69 = phi i64 [%62, %$18] ; # Exe\n  %70 = phi i64 [%63, %$18] ; # X\n  %71 = phi i64 [%64, %$18] ; # Y\n  %72 = phi i64 [%65, %$18] ; # R\n  %73 = phi i64 [%66, %$18] ; # Z\n; # (set 2 Z (cons (++ Y) Y))\n; # (++ Y)\n  %74 = inttoptr i64 %71 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  %77 = load i64, i64* %74\n; # (cons (++ Y) Y)\n  %78 = call i64 @cons(i64 %77, i64 %76)\n  %79 = inttoptr i64 %73 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  store i64 %78, i64* %80\n  br label %$18\n$20:\n  %81 = phi i64 [%62, %$18] ; # Exe\n  %82 = phi i64 [%63, %$18] ; # X\n  %83 = phi i64 [%64, %$18] ; # Y\n  %84 = phi i64 [%65, %$18] ; # R\n  %85 = phi i64 [%66, %$18] ; # Z\n; # (while (pair (cdr (shift X))) (save (setq Y (eval (car X))) (whil...\n  br label %$21\n$21:\n  %86 = phi i64 [%81, %$20], [%146, %$31] ; # Exe\n  %87 = phi i64 [%82, %$20], [%147, %$31] ; # X\n  %88 = phi i64 [%83, %$20], [%148, %$31] ; # Y\n  %89 = phi i64 [%84, %$20], [%149, %$31] ; # R\n  %90 = phi i64 [%85, %$20], [%150, %$31] ; # Z\n; # (shift X)\n  %91 = inttoptr i64 %87 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (cdr (shift X))\n  %94 = inttoptr i64 %93 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n; # (pair (cdr (shift X)))\n  %97 = and i64 %96, 15\n  %98 = icmp eq i64 %97, 0\n  br i1 %98, label %$22, label %$23\n$22:\n  %99 = phi i64 [%86, %$21] ; # Exe\n  %100 = phi i64 [%93, %$21] ; # X\n  %101 = phi i64 [%88, %$21] ; # Y\n  %102 = phi i64 [%89, %$21] ; # R\n  %103 = phi i64 [%90, %$21] ; # Z\n; # (car X)\n  %104 = inttoptr i64 %100 to i64*\n  %105 = load i64, i64* %104\n; # (eval (car X))\n  %106 = and i64 %105, 6\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$26, label %$25\n$26:\n  %108 = phi i64 [%105, %$22] ; # X\n  br label %$24\n$25:\n  %109 = phi i64 [%105, %$22] ; # X\n  %110 = and i64 %109, 8\n  %111 = icmp ne i64 %110, 0\n  br i1 %111, label %$28, label %$27\n$28:\n  %112 = phi i64 [%109, %$25] ; # X\n  %113 = inttoptr i64 %112 to i64*\n  %114 = load i64, i64* %113\n  br label %$24\n$27:\n  %115 = phi i64 [%109, %$25] ; # X\n  %116 = call i64 @evList(i64 %115)\n  br label %$24\n$24:\n  %117 = phi i64 [%108, %$26], [%112, %$28], [%115, %$27] ; # X\n  %118 = phi i64 [%108, %$26], [%114, %$28], [%116, %$27] ; # ->\n; # (save (setq Y (eval (car X))) (while (pair Y) (setq Z (set 2 Z (c...\n  %119 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %120 = load i64, i64* %119\n  %121 = alloca i64, i64 2, align 16\n  %122 = ptrtoint i64* %121 to i64\n  %123 = inttoptr i64 %122 to i64*\n  store i64 %118, i64* %123\n  %124 = add i64 %122, 8\n  %125 = inttoptr i64 %124 to i64*\n  store i64 %120, i64* %125\n  %126 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %122, i64* %126\n; # (while (pair Y) (setq Z (set 2 Z (cons (++ Y) Y))))\n  br label %$29\n$29:\n  %127 = phi i64 [%99, %$24], [%134, %$30] ; # Exe\n  %128 = phi i64 [%100, %$24], [%135, %$30] ; # X\n  %129 = phi i64 [%118, %$24], [%141, %$30] ; # Y\n  %130 = phi i64 [%102, %$24], [%137, %$30] ; # R\n  %131 = phi i64 [%103, %$24], [%143, %$30] ; # Z\n; # (pair Y)\n  %132 = and i64 %129, 15\n  %133 = icmp eq i64 %132, 0\n  br i1 %133, label %$30, label %$31\n$30:\n  %134 = phi i64 [%127, %$29] ; # Exe\n  %135 = phi i64 [%128, %$29] ; # X\n  %136 = phi i64 [%129, %$29] ; # Y\n  %137 = phi i64 [%130, %$29] ; # R\n  %138 = phi i64 [%131, %$29] ; # Z\n; # (set 2 Z (cons (++ Y) Y))\n; # (++ Y)\n  %139 = inttoptr i64 %136 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  %141 = load i64, i64* %140\n  %142 = load i64, i64* %139\n; # (cons (++ Y) Y)\n  %143 = call i64 @cons(i64 %142, i64 %141)\n  %144 = inttoptr i64 %138 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  store i64 %143, i64* %145\n  br label %$29\n$31:\n  %146 = phi i64 [%127, %$29] ; # Exe\n  %147 = phi i64 [%128, %$29] ; # X\n  %148 = phi i64 [%129, %$29] ; # Y\n  %149 = phi i64 [%130, %$29] ; # R\n  %150 = phi i64 [%131, %$29] ; # Z\n; # drop\n  %151 = inttoptr i64 %122 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  %153 = load i64, i64* %152\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %153, i64* %154\n  br label %$21\n$23:\n  %155 = phi i64 [%86, %$21] ; # Exe\n  %156 = phi i64 [%93, %$21] ; # X\n  %157 = phi i64 [%88, %$21] ; # Y\n  %158 = phi i64 [%89, %$21] ; # R\n  %159 = phi i64 [%90, %$21] ; # Z\n; # (set 2 Z (eval (car X)))\n; # (car X)\n  %160 = inttoptr i64 %156 to i64*\n  %161 = load i64, i64* %160\n; # (eval (car X))\n  %162 = and i64 %161, 6\n  %163 = icmp ne i64 %162, 0\n  br i1 %163, label %$34, label %$33\n$34:\n  %164 = phi i64 [%161, %$23] ; # X\n  br label %$32\n$33:\n  %165 = phi i64 [%161, %$23] ; # X\n  %166 = and i64 %165, 8\n  %167 = icmp ne i64 %166, 0\n  br i1 %167, label %$36, label %$35\n$36:\n  %168 = phi i64 [%165, %$33] ; # X\n  %169 = inttoptr i64 %168 to i64*\n  %170 = load i64, i64* %169\n  br label %$32\n$35:\n  %171 = phi i64 [%165, %$33] ; # X\n  %172 = call i64 @evList(i64 %171)\n  br label %$32\n$32:\n  %173 = phi i64 [%164, %$34], [%168, %$36], [%171, %$35] ; # X\n  %174 = phi i64 [%164, %$34], [%170, %$36], [%172, %$35] ; # ->\n  %175 = inttoptr i64 %159 to i64*\n  %176 = getelementptr i64, i64* %175, i32 1\n  store i64 %174, i64* %176\n; # (drop *Safe)\n  %177 = inttoptr i64 %57 to i64*\n  %178 = getelementptr i64, i64* %177, i32 1\n  %179 = load i64, i64* %178\n  %180 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %179, i64* %180\n  br label %$4\n$16:\n  %181 = phi i64 [%28, %$11] ; # Exe\n  %182 = phi i64 [%29, %$11] ; # X\n  br label %$2\n$4:\n  %183 = phi i64 [%11, %$6], [%155, %$32] ; # Exe\n  %184 = phi i64 [%12, %$6], [%156, %$32] ; # X\n  %185 = phi i64 [%27, %$6], [%158, %$32] ; # ->\n  ret i64 %185\n}\n\ndefine i64 @_Delete(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) L (save (eval (++ X))) F...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (save (eval (++ X)))\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = alloca i64, i64 2, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = add i64 %49, 8\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %53\n; # (car X)\n  %54 = inttoptr i64 %31 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$13\n$14:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$12\n$13:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$16, label %$15\n$16:\n  %62 = phi i64 [%59, %$13] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$12\n$15:\n  %65 = phi i64 [%59, %$13] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$12\n$12:\n  %67 = phi i64 [%58, %$14], [%62, %$16], [%65, %$15] ; # X\n  %68 = phi i64 [%58, %$14], [%64, %$16], [%66, %$15] ; # ->\n; # (nil? (eval (car X)))\n  %69 = icmp eq i64 %68, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (loop (? (atom L) L) (? (not (equal Y (car L))) (let R (save (set...\n  br label %$17\n$17:\n  %70 = phi i64 [%0, %$12], [%195, %$32] ; # Exe\n  %71 = phi i64 [%31, %$12], [%196, %$32] ; # X\n  %72 = phi i64 [%20, %$12], [%197, %$32] ; # Y\n  %73 = phi i64 [%45, %$12], [%198, %$32] ; # L\n  %74 = phi i1 [%69, %$12], [%199, %$32] ; # F\n; # (? (atom L) L)\n; # (atom L)\n  %75 = and i64 %73, 15\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$20, label %$18\n$20:\n  %77 = phi i64 [%70, %$17] ; # Exe\n  %78 = phi i64 [%71, %$17] ; # X\n  %79 = phi i64 [%72, %$17] ; # Y\n  %80 = phi i64 [%73, %$17] ; # L\n  %81 = phi i1 [%74, %$17] ; # F\n  br label %$19\n$18:\n  %82 = phi i64 [%70, %$17] ; # Exe\n  %83 = phi i64 [%71, %$17] ; # X\n  %84 = phi i64 [%72, %$17] ; # Y\n  %85 = phi i64 [%73, %$17] ; # L\n  %86 = phi i1 [%74, %$17] ; # F\n; # (? (not (equal Y (car L))) (let R (save (setq X (cons (car L) $Ni...\n; # (car L)\n  %87 = inttoptr i64 %85 to i64*\n  %88 = load i64, i64* %87\n; # (equal Y (car L))\n  %89 = call i1 @equal(i64 %84, i64 %88)\n; # (not (equal Y (car L)))\n  %90 = icmp eq i1 %89, 0\n  br i1 %90, label %$22, label %$21\n$22:\n  %91 = phi i64 [%82, %$18] ; # Exe\n  %92 = phi i64 [%83, %$18] ; # X\n  %93 = phi i64 [%84, %$18] ; # Y\n  %94 = phi i64 [%85, %$18] ; # L\n  %95 = phi i1 [%86, %$18] ; # F\n; # (let R (save (setq X (cons (car L) $Nil))) (loop (? (atom (shift ...\n; # (car L)\n  %96 = inttoptr i64 %94 to i64*\n  %97 = load i64, i64* %96\n; # (cons (car L) $Nil)\n  %98 = call i64 @cons(i64 %97, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (setq X (cons (car L) $Nil)))\n  %99 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %100 = load i64, i64* %99\n  %101 = alloca i64, i64 2, align 16\n  %102 = ptrtoint i64* %101 to i64\n  %103 = inttoptr i64 %102 to i64*\n  store i64 %98, i64* %103\n  %104 = add i64 %102, 8\n  %105 = inttoptr i64 %104 to i64*\n  store i64 %100, i64* %105\n  %106 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %102, i64* %106\n; # (loop (? (atom (shift L)) (set 2 X L)) (ifn (equal Y (car L)) (se...\n  br label %$23\n$23:\n  %107 = phi i64 [%91, %$22], [%169, %$29] ; # Exe\n  %108 = phi i64 [%98, %$22], [%170, %$29] ; # X\n  %109 = phi i64 [%93, %$22], [%171, %$29] ; # Y\n  %110 = phi i64 [%94, %$22], [%172, %$29] ; # L\n  %111 = phi i1 [%95, %$22], [%173, %$29] ; # F\n  %112 = phi i64 [%98, %$22], [%174, %$29] ; # R\n; # (? (atom (shift L)) (set 2 X L))\n; # (shift L)\n  %113 = inttoptr i64 %110 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n; # (atom (shift L))\n  %116 = and i64 %115, 15\n  %117 = icmp ne i64 %116, 0\n  br i1 %117, label %$26, label %$24\n$26:\n  %118 = phi i64 [%107, %$23] ; # Exe\n  %119 = phi i64 [%108, %$23] ; # X\n  %120 = phi i64 [%109, %$23] ; # Y\n  %121 = phi i64 [%115, %$23] ; # L\n  %122 = phi i1 [%111, %$23] ; # F\n  %123 = phi i64 [%112, %$23] ; # R\n; # (set 2 X L)\n  %124 = inttoptr i64 %119 to i64*\n  %125 = getelementptr i64, i64* %124, i32 1\n  store i64 %121, i64* %125\n  br label %$25\n$24:\n  %126 = phi i64 [%107, %$23] ; # Exe\n  %127 = phi i64 [%108, %$23] ; # X\n  %128 = phi i64 [%109, %$23] ; # Y\n  %129 = phi i64 [%115, %$23] ; # L\n  %130 = phi i1 [%111, %$23] ; # F\n  %131 = phi i64 [%112, %$23] ; # R\n; # (ifn (equal Y (car L)) (setq X (set 2 X (cons (car L) $Nil))) (? ...\n; # (car L)\n  %132 = inttoptr i64 %129 to i64*\n  %133 = load i64, i64* %132\n; # (equal Y (car L))\n  %134 = call i1 @equal(i64 %128, i64 %133)\n  br i1 %134, label %$28, label %$27\n$27:\n  %135 = phi i64 [%126, %$24] ; # Exe\n  %136 = phi i64 [%127, %$24] ; # X\n  %137 = phi i64 [%128, %$24] ; # Y\n  %138 = phi i64 [%129, %$24] ; # L\n  %139 = phi i1 [%130, %$24] ; # F\n  %140 = phi i64 [%131, %$24] ; # R\n; # (set 2 X (cons (car L) $Nil))\n; # (car L)\n  %141 = inttoptr i64 %138 to i64*\n  %142 = load i64, i64* %141\n; # (cons (car L) $Nil)\n  %143 = call i64 @cons(i64 %142, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %144 = inttoptr i64 %136 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  store i64 %143, i64* %145\n  br label %$29\n$28:\n  %146 = phi i64 [%126, %$24] ; # Exe\n  %147 = phi i64 [%127, %$24] ; # X\n  %148 = phi i64 [%128, %$24] ; # Y\n  %149 = phi i64 [%129, %$24] ; # L\n  %150 = phi i1 [%130, %$24] ; # F\n  %151 = phi i64 [%131, %$24] ; # R\n; # (? F (set 2 X (cdr L)))\n  br i1 %150, label %$31, label %$30\n$31:\n  %152 = phi i64 [%146, %$28] ; # Exe\n  %153 = phi i64 [%147, %$28] ; # X\n  %154 = phi i64 [%148, %$28] ; # Y\n  %155 = phi i64 [%149, %$28] ; # L\n  %156 = phi i1 [%150, %$28] ; # F\n  %157 = phi i64 [%151, %$28] ; # R\n; # (set 2 X (cdr L))\n; # (cdr L)\n  %158 = inttoptr i64 %155 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n  %161 = inttoptr i64 %153 to i64*\n  %162 = getelementptr i64, i64* %161, i32 1\n  store i64 %160, i64* %162\n  br label %$25\n$30:\n  %163 = phi i64 [%146, %$28] ; # Exe\n  %164 = phi i64 [%147, %$28] ; # X\n  %165 = phi i64 [%148, %$28] ; # Y\n  %166 = phi i64 [%149, %$28] ; # L\n  %167 = phi i1 [%150, %$28] ; # F\n  %168 = phi i64 [%151, %$28] ; # R\n  br label %$29\n$29:\n  %169 = phi i64 [%135, %$27], [%163, %$30] ; # Exe\n  %170 = phi i64 [%143, %$27], [%164, %$30] ; # X\n  %171 = phi i64 [%137, %$27], [%165, %$30] ; # Y\n  %172 = phi i64 [%138, %$27], [%166, %$30] ; # L\n  %173 = phi i1 [%139, %$27], [%167, %$30] ; # F\n  %174 = phi i64 [%140, %$27], [%168, %$30] ; # R\n  br label %$23\n$25:\n  %175 = phi i64 [%118, %$26], [%152, %$31] ; # Exe\n  %176 = phi i64 [%119, %$26], [%153, %$31] ; # X\n  %177 = phi i64 [%120, %$26], [%154, %$31] ; # Y\n  %178 = phi i64 [%121, %$26], [%155, %$31] ; # L\n  %179 = phi i1 [%122, %$26], [%156, %$31] ; # F\n  %180 = phi i64 [%123, %$26], [%157, %$31] ; # R\n  %181 = phi i64 [%121, %$26], [%160, %$31] ; # ->\n  br label %$19\n$21:\n  %182 = phi i64 [%82, %$18] ; # Exe\n  %183 = phi i64 [%83, %$18] ; # X\n  %184 = phi i64 [%84, %$18] ; # Y\n  %185 = phi i64 [%85, %$18] ; # L\n  %186 = phi i1 [%86, %$18] ; # F\n; # (shift L)\n  %187 = inttoptr i64 %185 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n; # (? F L)\n  br i1 %186, label %$33, label %$32\n$33:\n  %190 = phi i64 [%182, %$21] ; # Exe\n  %191 = phi i64 [%183, %$21] ; # X\n  %192 = phi i64 [%184, %$21] ; # Y\n  %193 = phi i64 [%189, %$21] ; # L\n  %194 = phi i1 [%186, %$21] ; # F\n  br label %$19\n$32:\n  %195 = phi i64 [%182, %$21] ; # Exe\n  %196 = phi i64 [%183, %$21] ; # X\n  %197 = phi i64 [%184, %$21] ; # Y\n  %198 = phi i64 [%189, %$21] ; # L\n  %199 = phi i1 [%186, %$21] ; # F\n  br label %$17\n$19:\n  %200 = phi i64 [%77, %$20], [%175, %$25], [%190, %$33] ; # Exe\n  %201 = phi i64 [%78, %$20], [%176, %$25], [%191, %$33] ; # X\n  %202 = phi i64 [%79, %$20], [%177, %$25], [%192, %$33] ; # Y\n  %203 = phi i64 [%80, %$20], [%178, %$25], [%193, %$33] ; # L\n  %204 = phi i1 [%81, %$20], [%179, %$25], [%194, %$33] ; # F\n  %205 = phi i64 [%80, %$20], [%180, %$25], [%193, %$33] ; # ->\n; # (drop *Safe)\n  %206 = inttoptr i64 %24 to i64*\n  %207 = getelementptr i64, i64* %206, i32 1\n  %208 = load i64, i64* %207\n  %209 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %208, i64* %209\n  ret i64 %205\n}\n\ndefine i64 @_Delq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) L (save (eval (++ X))) F...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (save (eval (++ X)))\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = alloca i64, i64 2, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = add i64 %49, 8\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %53\n; # (car X)\n  %54 = inttoptr i64 %31 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$13\n$14:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$12\n$13:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$16, label %$15\n$16:\n  %62 = phi i64 [%59, %$13] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$12\n$15:\n  %65 = phi i64 [%59, %$13] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$12\n$12:\n  %67 = phi i64 [%58, %$14], [%62, %$16], [%65, %$15] ; # X\n  %68 = phi i64 [%58, %$14], [%64, %$16], [%66, %$15] ; # ->\n; # (nil? (eval (car X)))\n  %69 = icmp eq i64 %68, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (loop (? (atom L) L) (? (<> Y (car L)) (let R (save (setq X (cons...\n  br label %$17\n$17:\n  %70 = phi i64 [%0, %$12], [%194, %$32] ; # Exe\n  %71 = phi i64 [%31, %$12], [%195, %$32] ; # X\n  %72 = phi i64 [%20, %$12], [%196, %$32] ; # Y\n  %73 = phi i64 [%45, %$12], [%197, %$32] ; # L\n  %74 = phi i1 [%69, %$12], [%198, %$32] ; # F\n; # (? (atom L) L)\n; # (atom L)\n  %75 = and i64 %73, 15\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$20, label %$18\n$20:\n  %77 = phi i64 [%70, %$17] ; # Exe\n  %78 = phi i64 [%71, %$17] ; # X\n  %79 = phi i64 [%72, %$17] ; # Y\n  %80 = phi i64 [%73, %$17] ; # L\n  %81 = phi i1 [%74, %$17] ; # F\n  br label %$19\n$18:\n  %82 = phi i64 [%70, %$17] ; # Exe\n  %83 = phi i64 [%71, %$17] ; # X\n  %84 = phi i64 [%72, %$17] ; # Y\n  %85 = phi i64 [%73, %$17] ; # L\n  %86 = phi i1 [%74, %$17] ; # F\n; # (? (<> Y (car L)) (let R (save (setq X (cons (car L) $Nil))) (loo...\n; # (car L)\n  %87 = inttoptr i64 %85 to i64*\n  %88 = load i64, i64* %87\n; # (<> Y (car L))\n  %89 = icmp ne i64 %84, %88\n  br i1 %89, label %$22, label %$21\n$22:\n  %90 = phi i64 [%82, %$18] ; # Exe\n  %91 = phi i64 [%83, %$18] ; # X\n  %92 = phi i64 [%84, %$18] ; # Y\n  %93 = phi i64 [%85, %$18] ; # L\n  %94 = phi i1 [%86, %$18] ; # F\n; # (let R (save (setq X (cons (car L) $Nil))) (loop (? (atom (shift ...\n; # (car L)\n  %95 = inttoptr i64 %93 to i64*\n  %96 = load i64, i64* %95\n; # (cons (car L) $Nil)\n  %97 = call i64 @cons(i64 %96, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (setq X (cons (car L) $Nil)))\n  %98 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %99 = load i64, i64* %98\n  %100 = alloca i64, i64 2, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = inttoptr i64 %101 to i64*\n  store i64 %97, i64* %102\n  %103 = add i64 %101, 8\n  %104 = inttoptr i64 %103 to i64*\n  store i64 %99, i64* %104\n  %105 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %101, i64* %105\n; # (loop (? (atom (shift L)) (set 2 X L)) (if (<> Y (car L)) (setq X...\n  br label %$23\n$23:\n  %106 = phi i64 [%90, %$22], [%168, %$29] ; # Exe\n  %107 = phi i64 [%97, %$22], [%169, %$29] ; # X\n  %108 = phi i64 [%92, %$22], [%170, %$29] ; # Y\n  %109 = phi i64 [%93, %$22], [%171, %$29] ; # L\n  %110 = phi i1 [%94, %$22], [%172, %$29] ; # F\n  %111 = phi i64 [%97, %$22], [%173, %$29] ; # R\n; # (? (atom (shift L)) (set 2 X L))\n; # (shift L)\n  %112 = inttoptr i64 %109 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  %114 = load i64, i64* %113\n; # (atom (shift L))\n  %115 = and i64 %114, 15\n  %116 = icmp ne i64 %115, 0\n  br i1 %116, label %$26, label %$24\n$26:\n  %117 = phi i64 [%106, %$23] ; # Exe\n  %118 = phi i64 [%107, %$23] ; # X\n  %119 = phi i64 [%108, %$23] ; # Y\n  %120 = phi i64 [%114, %$23] ; # L\n  %121 = phi i1 [%110, %$23] ; # F\n  %122 = phi i64 [%111, %$23] ; # R\n; # (set 2 X L)\n  %123 = inttoptr i64 %118 to i64*\n  %124 = getelementptr i64, i64* %123, i32 1\n  store i64 %120, i64* %124\n  br label %$25\n$24:\n  %125 = phi i64 [%106, %$23] ; # Exe\n  %126 = phi i64 [%107, %$23] ; # X\n  %127 = phi i64 [%108, %$23] ; # Y\n  %128 = phi i64 [%114, %$23] ; # L\n  %129 = phi i1 [%110, %$23] ; # F\n  %130 = phi i64 [%111, %$23] ; # R\n; # (if (<> Y (car L)) (setq X (set 2 X (cons (car L) $Nil))) (? F (s...\n; # (car L)\n  %131 = inttoptr i64 %128 to i64*\n  %132 = load i64, i64* %131\n; # (<> Y (car L))\n  %133 = icmp ne i64 %127, %132\n  br i1 %133, label %$27, label %$28\n$27:\n  %134 = phi i64 [%125, %$24] ; # Exe\n  %135 = phi i64 [%126, %$24] ; # X\n  %136 = phi i64 [%127, %$24] ; # Y\n  %137 = phi i64 [%128, %$24] ; # L\n  %138 = phi i1 [%129, %$24] ; # F\n  %139 = phi i64 [%130, %$24] ; # R\n; # (set 2 X (cons (car L) $Nil))\n; # (car L)\n  %140 = inttoptr i64 %137 to i64*\n  %141 = load i64, i64* %140\n; # (cons (car L) $Nil)\n  %142 = call i64 @cons(i64 %141, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %143 = inttoptr i64 %135 to i64*\n  %144 = getelementptr i64, i64* %143, i32 1\n  store i64 %142, i64* %144\n  br label %$29\n$28:\n  %145 = phi i64 [%125, %$24] ; # Exe\n  %146 = phi i64 [%126, %$24] ; # X\n  %147 = phi i64 [%127, %$24] ; # Y\n  %148 = phi i64 [%128, %$24] ; # L\n  %149 = phi i1 [%129, %$24] ; # F\n  %150 = phi i64 [%130, %$24] ; # R\n; # (? F (set 2 X (cdr L)))\n  br i1 %149, label %$31, label %$30\n$31:\n  %151 = phi i64 [%145, %$28] ; # Exe\n  %152 = phi i64 [%146, %$28] ; # X\n  %153 = phi i64 [%147, %$28] ; # Y\n  %154 = phi i64 [%148, %$28] ; # L\n  %155 = phi i1 [%149, %$28] ; # F\n  %156 = phi i64 [%150, %$28] ; # R\n; # (set 2 X (cdr L))\n; # (cdr L)\n  %157 = inttoptr i64 %154 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  %159 = load i64, i64* %158\n  %160 = inttoptr i64 %152 to i64*\n  %161 = getelementptr i64, i64* %160, i32 1\n  store i64 %159, i64* %161\n  br label %$25\n$30:\n  %162 = phi i64 [%145, %$28] ; # Exe\n  %163 = phi i64 [%146, %$28] ; # X\n  %164 = phi i64 [%147, %$28] ; # Y\n  %165 = phi i64 [%148, %$28] ; # L\n  %166 = phi i1 [%149, %$28] ; # F\n  %167 = phi i64 [%150, %$28] ; # R\n  br label %$29\n$29:\n  %168 = phi i64 [%134, %$27], [%162, %$30] ; # Exe\n  %169 = phi i64 [%142, %$27], [%163, %$30] ; # X\n  %170 = phi i64 [%136, %$27], [%164, %$30] ; # Y\n  %171 = phi i64 [%137, %$27], [%165, %$30] ; # L\n  %172 = phi i1 [%138, %$27], [%166, %$30] ; # F\n  %173 = phi i64 [%139, %$27], [%167, %$30] ; # R\n  br label %$23\n$25:\n  %174 = phi i64 [%117, %$26], [%151, %$31] ; # Exe\n  %175 = phi i64 [%118, %$26], [%152, %$31] ; # X\n  %176 = phi i64 [%119, %$26], [%153, %$31] ; # Y\n  %177 = phi i64 [%120, %$26], [%154, %$31] ; # L\n  %178 = phi i1 [%121, %$26], [%155, %$31] ; # F\n  %179 = phi i64 [%122, %$26], [%156, %$31] ; # R\n  %180 = phi i64 [%120, %$26], [%159, %$31] ; # ->\n  br label %$19\n$21:\n  %181 = phi i64 [%82, %$18] ; # Exe\n  %182 = phi i64 [%83, %$18] ; # X\n  %183 = phi i64 [%84, %$18] ; # Y\n  %184 = phi i64 [%85, %$18] ; # L\n  %185 = phi i1 [%86, %$18] ; # F\n; # (shift L)\n  %186 = inttoptr i64 %184 to i64*\n  %187 = getelementptr i64, i64* %186, i32 1\n  %188 = load i64, i64* %187\n; # (? F L)\n  br i1 %185, label %$33, label %$32\n$33:\n  %189 = phi i64 [%181, %$21] ; # Exe\n  %190 = phi i64 [%182, %$21] ; # X\n  %191 = phi i64 [%183, %$21] ; # Y\n  %192 = phi i64 [%188, %$21] ; # L\n  %193 = phi i1 [%185, %$21] ; # F\n  br label %$19\n$32:\n  %194 = phi i64 [%181, %$21] ; # Exe\n  %195 = phi i64 [%182, %$21] ; # X\n  %196 = phi i64 [%183, %$21] ; # Y\n  %197 = phi i64 [%188, %$21] ; # L\n  %198 = phi i1 [%185, %$21] ; # F\n  br label %$17\n$19:\n  %199 = phi i64 [%77, %$20], [%174, %$25], [%189, %$33] ; # Exe\n  %200 = phi i64 [%78, %$20], [%175, %$25], [%190, %$33] ; # X\n  %201 = phi i64 [%79, %$20], [%176, %$25], [%191, %$33] ; # Y\n  %202 = phi i64 [%80, %$20], [%177, %$25], [%192, %$33] ; # L\n  %203 = phi i1 [%81, %$20], [%178, %$25], [%193, %$33] ; # F\n  %204 = phi i64 [%80, %$20], [%179, %$25], [%192, %$33] ; # ->\n; # (drop *Safe)\n  %205 = inttoptr i64 %24 to i64*\n  %206 = getelementptr i64, i64* %205, i32 1\n  %207 = load i64, i64* %206\n  %208 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %207, i64* %208\n  ret i64 %204\n}\n\ndefine i64 @_Replace(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) L (save (eval (car X)))) (if (atom L) @ (let (A...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (if (atom L) @ (let (A $Nil N 0 R (push NIL NIL)) (while (pair (s...\n; # (atom L)\n  %27 = and i64 %18, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$7, label %$8\n$7:\n  %29 = phi i64 [%0, %$2] ; # Exe\n  %30 = phi i64 [%3, %$2] ; # X\n  %31 = phi i64 [%18, %$2] ; # L\n  br label %$9\n$8:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%3, %$2] ; # X\n  %34 = phi i64 [%18, %$2] ; # L\n; # (let (A $Nil N 0 R (push NIL NIL)) (while (pair (shift X)) (link ...\n; # (push NIL NIL)\n  %35 = alloca i64, i64 2, align 16\n  %36 = ptrtoint i64* %35 to i64\n; # (while (pair (shift X)) (link (push (eval (++ X)) NIL)) (setq A (...\n  br label %$10\n$10:\n  %37 = phi i64 [%32, %$8], [%48, %$18] ; # Exe\n  %38 = phi i64 [%33, %$8], [%56, %$18] ; # X\n  %39 = phi i64 [%34, %$8], [%50, %$18] ; # L\n  %40 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8], [%95, %$18] ; # A\n  %41 = phi i64 [0, %$8], [%102, %$18] ; # N\n  %42 = phi i64 [%36, %$8], [%53, %$18] ; # R\n; # (shift X)\n  %43 = inttoptr i64 %38 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n; # (pair (shift X))\n  %46 = and i64 %45, 15\n  %47 = icmp eq i64 %46, 0\n  br i1 %47, label %$11, label %$12\n$11:\n  %48 = phi i64 [%37, %$10] ; # Exe\n  %49 = phi i64 [%45, %$10] ; # X\n  %50 = phi i64 [%39, %$10] ; # L\n  %51 = phi i64 [%40, %$10] ; # A\n  %52 = phi i64 [%41, %$10] ; # N\n  %53 = phi i64 [%42, %$10] ; # R\n; # (++ X)\n  %54 = inttoptr i64 %49 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = load i64, i64* %54\n; # (eval (++ X))\n  %58 = and i64 %57, 6\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$15, label %$14\n$15:\n  %60 = phi i64 [%57, %$11] ; # X\n  br label %$13\n$14:\n  %61 = phi i64 [%57, %$11] ; # X\n  %62 = and i64 %61, 8\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$17, label %$16\n$17:\n  %64 = phi i64 [%61, %$14] ; # X\n  %65 = inttoptr i64 %64 to i64*\n  %66 = load i64, i64* %65\n  br label %$13\n$16:\n  %67 = phi i64 [%61, %$14] ; # X\n  %68 = call i64 @evList(i64 %67)\n  br label %$13\n$13:\n  %69 = phi i64 [%60, %$15], [%64, %$17], [%67, %$16] ; # X\n  %70 = phi i64 [%60, %$15], [%66, %$17], [%68, %$16] ; # ->\n; # (push (eval (++ X)) NIL)\n  %71 = alloca i64, i64 2, align 16\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %70, i64* %73\n; # (link (push (eval (++ X)) NIL))\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 %72 to i64*\n  %77 = getelementptr i64, i64* %76, i32 1\n  store i64 %75, i64* %77\n  %78 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %78\n; # (car X)\n  %79 = inttoptr i64 %56 to i64*\n  %80 = load i64, i64* %79\n; # (eval (car X))\n  %81 = and i64 %80, 6\n  %82 = icmp ne i64 %81, 0\n  br i1 %82, label %$20, label %$19\n$20:\n  %83 = phi i64 [%80, %$13] ; # X\n  br label %$18\n$19:\n  %84 = phi i64 [%80, %$13] ; # X\n  %85 = and i64 %84, 8\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$22, label %$21\n$22:\n  %87 = phi i64 [%84, %$19] ; # X\n  %88 = inttoptr i64 %87 to i64*\n  %89 = load i64, i64* %88\n  br label %$18\n$21:\n  %90 = phi i64 [%84, %$19] ; # X\n  %91 = call i64 @evList(i64 %90)\n  br label %$18\n$18:\n  %92 = phi i64 [%83, %$20], [%87, %$22], [%90, %$21] ; # X\n  %93 = phi i64 [%83, %$20], [%89, %$22], [%91, %$21] ; # ->\n; # (push (eval (car X)) NIL)\n  %94 = alloca i64, i64 2, align 16\n  %95 = ptrtoint i64* %94 to i64\n  %96 = inttoptr i64 %95 to i64*\n  store i64 %93, i64* %96\n; # (link (push (eval (car X)) NIL))\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %98 = load i64, i64* %97\n  %99 = inttoptr i64 %95 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  store i64 %98, i64* %100\n  %101 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %95, i64* %101\n; # (inc 'N)\n  %102 = add i64 %52, 1\n  br label %$10\n$12:\n  %103 = phi i64 [%37, %$10] ; # Exe\n  %104 = phi i64 [%45, %$10] ; # X\n  %105 = phi i64 [%39, %$10] ; # L\n  %106 = phi i64 [%40, %$10] ; # A\n  %107 = phi i64 [%41, %$10] ; # N\n  %108 = phi i64 [%42, %$10] ; # R\n; # (let (Y (++ L) Z A I N) (until (lt0 (dec 'I)) (let (V (++ Z) K (+...\n; # (++ L)\n  %109 = inttoptr i64 %105 to i64*\n  %110 = getelementptr i64, i64* %109, i32 1\n  %111 = load i64, i64* %110\n  %112 = load i64, i64* %109\n; # (until (lt0 (dec 'I)) (let (V (++ Z) K (++ Z)) (? (equal Y K) (se...\n  br label %$23\n$23:\n  %113 = phi i64 [%103, %$12], [%153, %$26] ; # Exe\n  %114 = phi i64 [%104, %$12], [%154, %$26] ; # X\n  %115 = phi i64 [%111, %$12], [%155, %$26] ; # L\n  %116 = phi i64 [%106, %$12], [%156, %$26] ; # A\n  %117 = phi i64 [%107, %$12], [%157, %$26] ; # N\n  %118 = phi i64 [%108, %$12], [%158, %$26] ; # R\n  %119 = phi i64 [%112, %$12], [%159, %$26] ; # Y\n  %120 = phi i64 [%106, %$12], [%160, %$26] ; # Z\n  %121 = phi i64 [%107, %$12], [%161, %$26] ; # I\n; # (dec 'I)\n  %122 = sub i64 %121, 1\n; # (lt0 (dec 'I))\n  %123 = icmp slt i64 %122, 0\n  br i1 %123, label %$25, label %$24\n$24:\n  %124 = phi i64 [%113, %$23] ; # Exe\n  %125 = phi i64 [%114, %$23] ; # X\n  %126 = phi i64 [%115, %$23] ; # L\n  %127 = phi i64 [%116, %$23] ; # A\n  %128 = phi i64 [%117, %$23] ; # N\n  %129 = phi i64 [%118, %$23] ; # R\n  %130 = phi i64 [%119, %$23] ; # Y\n  %131 = phi i64 [%120, %$23] ; # Z\n  %132 = phi i64 [%122, %$23] ; # I\n; # (let (V (++ Z) K (++ Z)) (? (equal Y K) (setq Y V)))\n; # (++ Z)\n  %133 = inttoptr i64 %131 to i64*\n  %134 = getelementptr i64, i64* %133, i32 1\n  %135 = load i64, i64* %134\n  %136 = load i64, i64* %133\n; # (++ Z)\n  %137 = inttoptr i64 %135 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = load i64, i64* %137\n; # (? (equal Y K) (setq Y V))\n; # (equal Y K)\n  %141 = call i1 @equal(i64 %130, i64 %140)\n  br i1 %141, label %$27, label %$26\n$27:\n  %142 = phi i64 [%124, %$24] ; # Exe\n  %143 = phi i64 [%125, %$24] ; # X\n  %144 = phi i64 [%126, %$24] ; # L\n  %145 = phi i64 [%127, %$24] ; # A\n  %146 = phi i64 [%128, %$24] ; # N\n  %147 = phi i64 [%129, %$24] ; # R\n  %148 = phi i64 [%130, %$24] ; # Y\n  %149 = phi i64 [%139, %$24] ; # Z\n  %150 = phi i64 [%132, %$24] ; # I\n  %151 = phi i64 [%136, %$24] ; # V\n  %152 = phi i64 [%140, %$24] ; # K\n  br label %$25\n$26:\n  %153 = phi i64 [%124, %$24] ; # Exe\n  %154 = phi i64 [%125, %$24] ; # X\n  %155 = phi i64 [%126, %$24] ; # L\n  %156 = phi i64 [%127, %$24] ; # A\n  %157 = phi i64 [%128, %$24] ; # N\n  %158 = phi i64 [%129, %$24] ; # R\n  %159 = phi i64 [%130, %$24] ; # Y\n  %160 = phi i64 [%139, %$24] ; # Z\n  %161 = phi i64 [%132, %$24] ; # I\n  %162 = phi i64 [%136, %$24] ; # V\n  %163 = phi i64 [%140, %$24] ; # K\n  br label %$23\n$25:\n  %164 = phi i64 [%113, %$23], [%142, %$27] ; # Exe\n  %165 = phi i64 [%114, %$23], [%143, %$27] ; # X\n  %166 = phi i64 [%115, %$23], [%144, %$27] ; # L\n  %167 = phi i64 [%116, %$23], [%145, %$27] ; # A\n  %168 = phi i64 [%117, %$23], [%146, %$27] ; # N\n  %169 = phi i64 [%118, %$23], [%147, %$27] ; # R\n  %170 = phi i64 [%119, %$23], [%151, %$27] ; # Y\n  %171 = phi i64 [%120, %$23], [%149, %$27] ; # Z\n  %172 = phi i64 [%122, %$23], [%150, %$27] ; # I\n; # (let P (set (link R) (cons Y $Nil)) (while (pair L) (setq Y (++ L...\n; # (set (link R) (cons Y $Nil))\n; # (link R)\n  %173 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %174 = load i64, i64* %173\n  %175 = inttoptr i64 %169 to i64*\n  %176 = getelementptr i64, i64* %175, i32 1\n  store i64 %174, i64* %176\n  %177 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %169, i64* %177\n; # (cons Y $Nil)\n  %178 = call i64 @cons(i64 %170, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %179 = inttoptr i64 %169 to i64*\n  store i64 %178, i64* %179\n; # (while (pair L) (setq Y (++ L) Z A I N) (until (lt0 (dec 'I)) (le...\n  br label %$28\n$28:\n  %180 = phi i64 [%164, %$25], [%261, %$33] ; # Exe\n  %181 = phi i64 [%165, %$25], [%262, %$33] ; # X\n  %182 = phi i64 [%166, %$25], [%263, %$33] ; # L\n  %183 = phi i64 [%167, %$25], [%264, %$33] ; # A\n  %184 = phi i64 [%168, %$25], [%265, %$33] ; # N\n  %185 = phi i64 [%169, %$25], [%266, %$33] ; # R\n  %186 = phi i64 [%170, %$25], [%267, %$33] ; # Y\n  %187 = phi i64 [%171, %$25], [%268, %$33] ; # Z\n  %188 = phi i64 [%172, %$25], [%269, %$33] ; # I\n  %189 = phi i64 [%178, %$25], [%271, %$33] ; # P\n; # (pair L)\n  %190 = and i64 %182, 15\n  %191 = icmp eq i64 %190, 0\n  br i1 %191, label %$29, label %$30\n$29:\n  %192 = phi i64 [%180, %$28] ; # Exe\n  %193 = phi i64 [%181, %$28] ; # X\n  %194 = phi i64 [%182, %$28] ; # L\n  %195 = phi i64 [%183, %$28] ; # A\n  %196 = phi i64 [%184, %$28] ; # N\n  %197 = phi i64 [%185, %$28] ; # R\n  %198 = phi i64 [%186, %$28] ; # Y\n  %199 = phi i64 [%187, %$28] ; # Z\n  %200 = phi i64 [%188, %$28] ; # I\n  %201 = phi i64 [%189, %$28] ; # P\n; # (++ L)\n  %202 = inttoptr i64 %194 to i64*\n  %203 = getelementptr i64, i64* %202, i32 1\n  %204 = load i64, i64* %203\n  %205 = load i64, i64* %202\n; # (until (lt0 (dec 'I)) (let (V (++ Z) K (++ Z)) (? (equal Y K) (se...\n  br label %$31\n$31:\n  %206 = phi i64 [%192, %$29], [%249, %$34] ; # Exe\n  %207 = phi i64 [%193, %$29], [%250, %$34] ; # X\n  %208 = phi i64 [%204, %$29], [%251, %$34] ; # L\n  %209 = phi i64 [%195, %$29], [%252, %$34] ; # A\n  %210 = phi i64 [%196, %$29], [%253, %$34] ; # N\n  %211 = phi i64 [%197, %$29], [%254, %$34] ; # R\n  %212 = phi i64 [%205, %$29], [%255, %$34] ; # Y\n  %213 = phi i64 [%195, %$29], [%256, %$34] ; # Z\n  %214 = phi i64 [%196, %$29], [%257, %$34] ; # I\n  %215 = phi i64 [%201, %$29], [%258, %$34] ; # P\n; # (dec 'I)\n  %216 = sub i64 %214, 1\n; # (lt0 (dec 'I))\n  %217 = icmp slt i64 %216, 0\n  br i1 %217, label %$33, label %$32\n$32:\n  %218 = phi i64 [%206, %$31] ; # Exe\n  %219 = phi i64 [%207, %$31] ; # X\n  %220 = phi i64 [%208, %$31] ; # L\n  %221 = phi i64 [%209, %$31] ; # A\n  %222 = phi i64 [%210, %$31] ; # N\n  %223 = phi i64 [%211, %$31] ; # R\n  %224 = phi i64 [%212, %$31] ; # Y\n  %225 = phi i64 [%213, %$31] ; # Z\n  %226 = phi i64 [%216, %$31] ; # I\n  %227 = phi i64 [%215, %$31] ; # P\n; # (let (V (++ Z) K (++ Z)) (? (equal Y K) (setq Y V)))\n; # (++ Z)\n  %228 = inttoptr i64 %225 to i64*\n  %229 = getelementptr i64, i64* %228, i32 1\n  %230 = load i64, i64* %229\n  %231 = load i64, i64* %228\n; # (++ Z)\n  %232 = inttoptr i64 %230 to i64*\n  %233 = getelementptr i64, i64* %232, i32 1\n  %234 = load i64, i64* %233\n  %235 = load i64, i64* %232\n; # (? (equal Y K) (setq Y V))\n; # (equal Y K)\n  %236 = call i1 @equal(i64 %224, i64 %235)\n  br i1 %236, label %$35, label %$34\n$35:\n  %237 = phi i64 [%218, %$32] ; # Exe\n  %238 = phi i64 [%219, %$32] ; # X\n  %239 = phi i64 [%220, %$32] ; # L\n  %240 = phi i64 [%221, %$32] ; # A\n  %241 = phi i64 [%222, %$32] ; # N\n  %242 = phi i64 [%223, %$32] ; # R\n  %243 = phi i64 [%224, %$32] ; # Y\n  %244 = phi i64 [%234, %$32] ; # Z\n  %245 = phi i64 [%226, %$32] ; # I\n  %246 = phi i64 [%227, %$32] ; # P\n  %247 = phi i64 [%231, %$32] ; # V\n  %248 = phi i64 [%235, %$32] ; # K\n  br label %$33\n$34:\n  %249 = phi i64 [%218, %$32] ; # Exe\n  %250 = phi i64 [%219, %$32] ; # X\n  %251 = phi i64 [%220, %$32] ; # L\n  %252 = phi i64 [%221, %$32] ; # A\n  %253 = phi i64 [%222, %$32] ; # N\n  %254 = phi i64 [%223, %$32] ; # R\n  %255 = phi i64 [%224, %$32] ; # Y\n  %256 = phi i64 [%234, %$32] ; # Z\n  %257 = phi i64 [%226, %$32] ; # I\n  %258 = phi i64 [%227, %$32] ; # P\n  %259 = phi i64 [%231, %$32] ; # V\n  %260 = phi i64 [%235, %$32] ; # K\n  br label %$31\n$33:\n  %261 = phi i64 [%206, %$31], [%237, %$35] ; # Exe\n  %262 = phi i64 [%207, %$31], [%238, %$35] ; # X\n  %263 = phi i64 [%208, %$31], [%239, %$35] ; # L\n  %264 = phi i64 [%209, %$31], [%240, %$35] ; # A\n  %265 = phi i64 [%210, %$31], [%241, %$35] ; # N\n  %266 = phi i64 [%211, %$31], [%242, %$35] ; # R\n  %267 = phi i64 [%212, %$31], [%247, %$35] ; # Y\n  %268 = phi i64 [%213, %$31], [%244, %$35] ; # Z\n  %269 = phi i64 [%216, %$31], [%245, %$35] ; # I\n  %270 = phi i64 [%215, %$31], [%246, %$35] ; # P\n; # (set 2 P (cons Y $Nil))\n; # (cons Y $Nil)\n  %271 = call i64 @cons(i64 %267, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %272 = inttoptr i64 %270 to i64*\n  %273 = getelementptr i64, i64* %272, i32 1\n  store i64 %271, i64* %273\n  br label %$28\n$30:\n  %274 = phi i64 [%180, %$28] ; # Exe\n  %275 = phi i64 [%181, %$28] ; # X\n  %276 = phi i64 [%182, %$28] ; # L\n  %277 = phi i64 [%183, %$28] ; # A\n  %278 = phi i64 [%184, %$28] ; # N\n  %279 = phi i64 [%185, %$28] ; # R\n  %280 = phi i64 [%186, %$28] ; # Y\n  %281 = phi i64 [%187, %$28] ; # Z\n  %282 = phi i64 [%188, %$28] ; # I\n  %283 = phi i64 [%189, %$28] ; # P\n; # (val R)\n  %284 = inttoptr i64 %279 to i64*\n  %285 = load i64, i64* %284\n  br label %$9\n$9:\n  %286 = phi i64 [%29, %$7], [%274, %$30] ; # Exe\n  %287 = phi i64 [%30, %$7], [%275, %$30] ; # X\n  %288 = phi i64 [%31, %$7], [%276, %$30] ; # L\n  %289 = phi i64 [%18, %$7], [%285, %$30] ; # ->\n; # (drop *Safe)\n  %290 = inttoptr i64 %22 to i64*\n  %291 = getelementptr i64, i64* %290, i32 1\n  %292 = load i64, i64* %291\n  %293 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %292, i64* %293\n  ret i64 %289\n}\n\ndefine i64 @_Insert(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X) L (save (eval (car (shift X))))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (shift X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (car (shift X))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (eval (car (shift X)))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$3\n$4:\n  %12 = phi i64 [%9, %$1] ; # X\n  br label %$2\n$3:\n  %13 = phi i64 [%9, %$1] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i64 [%13, %$3] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$2\n$5:\n  %19 = phi i64 [%13, %$3] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$2\n$2:\n  %21 = phi i64 [%12, %$4], [%16, %$6], [%19, %$5] ; # X\n  %22 = phi i64 [%12, %$4], [%18, %$6], [%20, %$5] ; # ->\n; # (save (eval (car (shift X))))\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %24 = load i64, i64* %23\n  %25 = alloca i64, i64 2, align 16\n  %26 = ptrtoint i64* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = add i64 %26, 8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %30\n; # (shift X)\n  %31 = inttoptr i64 %7 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (car (shift X))\n  %34 = inttoptr i64 %33 to i64*\n  %35 = load i64, i64* %34\n; # (eval (car (shift X)))\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$9, label %$8\n$9:\n  %38 = phi i64 [%35, %$2] ; # X\n  br label %$7\n$8:\n  %39 = phi i64 [%35, %$2] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$11, label %$10\n$11:\n  %42 = phi i64 [%39, %$8] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$7\n$10:\n  %45 = phi i64 [%39, %$8] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$7\n$7:\n  %47 = phi i64 [%38, %$9], [%42, %$11], [%45, %$10] ; # X\n  %48 = phi i64 [%38, %$9], [%44, %$11], [%46, %$10] ; # ->\n; # (if (or (atom L) (le0 (dec 'N))) (cons X L) (let (Y (cons (car L)...\n; # (or (atom L) (le0 (dec 'N)))\n; # (atom L)\n  %49 = and i64 %22, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$12, label %$13\n$13:\n  %51 = phi i64 [%0, %$7] ; # Exe\n  %52 = phi i64 [%48, %$7] ; # X\n  %53 = phi i64 [%4, %$7] ; # N\n  %54 = phi i64 [%22, %$7] ; # L\n; # (dec 'N)\n  %55 = sub i64 %53, 1\n; # (le0 (dec 'N))\n  %56 = icmp sle i64 %55, 0\n  br label %$12\n$12:\n  %57 = phi i64 [%0, %$7], [%51, %$13] ; # Exe\n  %58 = phi i64 [%48, %$7], [%52, %$13] ; # X\n  %59 = phi i64 [%4, %$7], [%55, %$13] ; # N\n  %60 = phi i64 [%22, %$7], [%54, %$13] ; # L\n  %61 = phi i1 [1, %$7], [%56, %$13] ; # ->\n  br i1 %61, label %$14, label %$15\n$14:\n  %62 = phi i64 [%57, %$12] ; # Exe\n  %63 = phi i64 [%58, %$12] ; # X\n  %64 = phi i64 [%59, %$12] ; # N\n  %65 = phi i64 [%60, %$12] ; # L\n; # (cons X L)\n  %66 = call i64 @cons(i64 %63, i64 %65)\n  br label %$16\n$15:\n  %67 = phi i64 [%57, %$12] ; # Exe\n  %68 = phi i64 [%58, %$12] ; # X\n  %69 = phi i64 [%59, %$12] ; # N\n  %70 = phi i64 [%60, %$12] ; # L\n; # (let (Y (cons (car L) $Nil) R (save Y)) (while (and (pair (shift ...\n; # (car L)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n; # (cons (car L) $Nil)\n  %73 = call i64 @cons(i64 %72, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %75 = load i64, i64* %74\n  %76 = alloca i64, i64 2, align 16\n  %77 = ptrtoint i64* %76 to i64\n  %78 = inttoptr i64 %77 to i64*\n  store i64 %73, i64* %78\n  %79 = add i64 %77, 8\n  %80 = inttoptr i64 %79 to i64*\n  store i64 %75, i64* %80\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %77, i64* %81\n; # (while (and (pair (shift L)) (dec 'N)) (setq Y (set 2 Y (cons (ca...\n  br label %$17\n$17:\n  %82 = phi i64 [%67, %$15], [%108, %$20] ; # Exe\n  %83 = phi i64 [%68, %$15], [%109, %$20] ; # X\n  %84 = phi i64 [%69, %$15], [%110, %$20] ; # N\n  %85 = phi i64 [%70, %$15], [%111, %$20] ; # L\n  %86 = phi i64 [%73, %$15], [%116, %$20] ; # Y\n  %87 = phi i64 [%73, %$15], [%113, %$20] ; # R\n; # (and (pair (shift L)) (dec 'N))\n; # (shift L)\n  %88 = inttoptr i64 %85 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n; # (pair (shift L))\n  %91 = and i64 %90, 15\n  %92 = icmp eq i64 %91, 0\n  br i1 %92, label %$19, label %$18\n$19:\n  %93 = phi i64 [%82, %$17] ; # Exe\n  %94 = phi i64 [%83, %$17] ; # X\n  %95 = phi i64 [%84, %$17] ; # N\n  %96 = phi i64 [%90, %$17] ; # L\n  %97 = phi i64 [%86, %$17] ; # Y\n  %98 = phi i64 [%87, %$17] ; # R\n; # (dec 'N)\n  %99 = sub i64 %95, 1\n  %100 = icmp ne i64 %99, 0\n  br label %$18\n$18:\n  %101 = phi i64 [%82, %$17], [%93, %$19] ; # Exe\n  %102 = phi i64 [%83, %$17], [%94, %$19] ; # X\n  %103 = phi i64 [%84, %$17], [%99, %$19] ; # N\n  %104 = phi i64 [%90, %$17], [%96, %$19] ; # L\n  %105 = phi i64 [%86, %$17], [%97, %$19] ; # Y\n  %106 = phi i64 [%87, %$17], [%98, %$19] ; # R\n  %107 = phi i1 [0, %$17], [%100, %$19] ; # ->\n  br i1 %107, label %$20, label %$21\n$20:\n  %108 = phi i64 [%101, %$18] ; # Exe\n  %109 = phi i64 [%102, %$18] ; # X\n  %110 = phi i64 [%103, %$18] ; # N\n  %111 = phi i64 [%104, %$18] ; # L\n  %112 = phi i64 [%105, %$18] ; # Y\n  %113 = phi i64 [%106, %$18] ; # R\n; # (set 2 Y (cons (car L) $Nil))\n; # (car L)\n  %114 = inttoptr i64 %111 to i64*\n  %115 = load i64, i64* %114\n; # (cons (car L) $Nil)\n  %116 = call i64 @cons(i64 %115, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %117 = inttoptr i64 %112 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  store i64 %116, i64* %118\n  br label %$17\n$21:\n  %119 = phi i64 [%101, %$18] ; # Exe\n  %120 = phi i64 [%102, %$18] ; # X\n  %121 = phi i64 [%103, %$18] ; # N\n  %122 = phi i64 [%104, %$18] ; # L\n  %123 = phi i64 [%105, %$18] ; # Y\n  %124 = phi i64 [%106, %$18] ; # R\n; # (set 2 Y (cons X L))\n; # (cons X L)\n  %125 = call i64 @cons(i64 %120, i64 %122)\n  %126 = inttoptr i64 %123 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  store i64 %125, i64* %127\n  br label %$16\n$16:\n  %128 = phi i64 [%62, %$14], [%119, %$21] ; # Exe\n  %129 = phi i64 [%63, %$14], [%120, %$21] ; # X\n  %130 = phi i64 [%64, %$14], [%121, %$21] ; # N\n  %131 = phi i64 [%65, %$14], [%122, %$21] ; # L\n  %132 = phi i64 [%66, %$14], [%124, %$21] ; # ->\n; # (drop *Safe)\n  %133 = inttoptr i64 %26 to i64*\n  %134 = getelementptr i64, i64* %133, i32 1\n  %135 = load i64, i64* %134\n  %136 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %135, i64* %136\n  ret i64 %132\n}\n\ndefine i64 @_Remove(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X) L (save (eval (car (shift X))))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (shift X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (car (shift X))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (eval (car (shift X)))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$3\n$4:\n  %12 = phi i64 [%9, %$1] ; # X\n  br label %$2\n$3:\n  %13 = phi i64 [%9, %$1] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i64 [%13, %$3] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$2\n$5:\n  %19 = phi i64 [%13, %$3] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$2\n$2:\n  %21 = phi i64 [%12, %$4], [%16, %$6], [%19, %$5] ; # X\n  %22 = phi i64 [%12, %$4], [%18, %$6], [%20, %$5] ; # ->\n; # (save (eval (car (shift X))))\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %24 = load i64, i64* %23\n  %25 = alloca i64, i64 2, align 16\n  %26 = ptrtoint i64* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = add i64 %26, 8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %30\n; # (cond ((or (atom L) (lt0 (dec 'N))) L) ((=0 N) (cdr L)) (T (let (...\n; # (or (atom L) (lt0 (dec 'N)))\n; # (atom L)\n  %31 = and i64 %22, 15\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$8, label %$9\n$9:\n  %33 = phi i64 [%0, %$2] ; # Exe\n  %34 = phi i64 [%7, %$2] ; # X\n  %35 = phi i64 [%4, %$2] ; # N\n  %36 = phi i64 [%22, %$2] ; # L\n; # (dec 'N)\n  %37 = sub i64 %35, 1\n; # (lt0 (dec 'N))\n  %38 = icmp slt i64 %37, 0\n  br label %$8\n$8:\n  %39 = phi i64 [%0, %$2], [%33, %$9] ; # Exe\n  %40 = phi i64 [%7, %$2], [%34, %$9] ; # X\n  %41 = phi i64 [%4, %$2], [%37, %$9] ; # N\n  %42 = phi i64 [%22, %$2], [%36, %$9] ; # L\n  %43 = phi i1 [1, %$2], [%38, %$9] ; # ->\n  br i1 %43, label %$11, label %$10\n$11:\n  %44 = phi i64 [%39, %$8] ; # Exe\n  %45 = phi i64 [%40, %$8] ; # X\n  %46 = phi i64 [%41, %$8] ; # N\n  %47 = phi i64 [%42, %$8] ; # L\n  br label %$7\n$10:\n  %48 = phi i64 [%39, %$8] ; # Exe\n  %49 = phi i64 [%40, %$8] ; # X\n  %50 = phi i64 [%41, %$8] ; # N\n  %51 = phi i64 [%42, %$8] ; # L\n; # (=0 N)\n  %52 = icmp eq i64 %50, 0\n  br i1 %52, label %$13, label %$12\n$13:\n  %53 = phi i64 [%48, %$10] ; # Exe\n  %54 = phi i64 [%49, %$10] ; # X\n  %55 = phi i64 [%50, %$10] ; # N\n  %56 = phi i64 [%51, %$10] ; # L\n; # (cdr L)\n  %57 = inttoptr i64 %56 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  br label %$7\n$12:\n  %60 = phi i64 [%48, %$10] ; # Exe\n  %61 = phi i64 [%49, %$10] ; # X\n  %62 = phi i64 [%50, %$10] ; # N\n  %63 = phi i64 [%51, %$10] ; # L\n; # (let (Y (cons (car L) $Nil) R (save Y)) (loop (? (atom (shift L))...\n; # (car L)\n  %64 = inttoptr i64 %63 to i64*\n  %65 = load i64, i64* %64\n; # (cons (car L) $Nil)\n  %66 = call i64 @cons(i64 %65, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %67 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %68 = load i64, i64* %67\n  %69 = alloca i64, i64 2, align 16\n  %70 = ptrtoint i64* %69 to i64\n  %71 = inttoptr i64 %70 to i64*\n  store i64 %66, i64* %71\n  %72 = add i64 %70, 8\n  %73 = inttoptr i64 %72 to i64*\n  store i64 %68, i64* %73\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %70, i64* %74\n; # (loop (? (atom (shift L)) (set 2 Y L)) (? (=0 (dec 'N)) (set 2 Y ...\n  br label %$14\n$14:\n  %75 = phi i64 [%60, %$12], [%113, %$18] ; # Exe\n  %76 = phi i64 [%61, %$12], [%114, %$18] ; # X\n  %77 = phi i64 [%62, %$12], [%115, %$18] ; # N\n  %78 = phi i64 [%63, %$12], [%116, %$18] ; # L\n  %79 = phi i64 [%66, %$12], [%121, %$18] ; # Y\n  %80 = phi i64 [%66, %$12], [%118, %$18] ; # R\n; # (? (atom (shift L)) (set 2 Y L))\n; # (shift L)\n  %81 = inttoptr i64 %78 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n; # (atom (shift L))\n  %84 = and i64 %83, 15\n  %85 = icmp ne i64 %84, 0\n  br i1 %85, label %$17, label %$15\n$17:\n  %86 = phi i64 [%75, %$14] ; # Exe\n  %87 = phi i64 [%76, %$14] ; # X\n  %88 = phi i64 [%77, %$14] ; # N\n  %89 = phi i64 [%83, %$14] ; # L\n  %90 = phi i64 [%79, %$14] ; # Y\n  %91 = phi i64 [%80, %$14] ; # R\n; # (set 2 Y L)\n  %92 = inttoptr i64 %90 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  store i64 %89, i64* %93\n  br label %$16\n$15:\n  %94 = phi i64 [%75, %$14] ; # Exe\n  %95 = phi i64 [%76, %$14] ; # X\n  %96 = phi i64 [%77, %$14] ; # N\n  %97 = phi i64 [%83, %$14] ; # L\n  %98 = phi i64 [%79, %$14] ; # Y\n  %99 = phi i64 [%80, %$14] ; # R\n; # (? (=0 (dec 'N)) (set 2 Y (cdr L)))\n; # (dec 'N)\n  %100 = sub i64 %96, 1\n; # (=0 (dec 'N))\n  %101 = icmp eq i64 %100, 0\n  br i1 %101, label %$19, label %$18\n$19:\n  %102 = phi i64 [%94, %$15] ; # Exe\n  %103 = phi i64 [%95, %$15] ; # X\n  %104 = phi i64 [%100, %$15] ; # N\n  %105 = phi i64 [%97, %$15] ; # L\n  %106 = phi i64 [%98, %$15] ; # Y\n  %107 = phi i64 [%99, %$15] ; # R\n; # (set 2 Y (cdr L))\n; # (cdr L)\n  %108 = inttoptr i64 %105 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  %110 = load i64, i64* %109\n  %111 = inttoptr i64 %106 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  store i64 %110, i64* %112\n  br label %$16\n$18:\n  %113 = phi i64 [%94, %$15] ; # Exe\n  %114 = phi i64 [%95, %$15] ; # X\n  %115 = phi i64 [%100, %$15] ; # N\n  %116 = phi i64 [%97, %$15] ; # L\n  %117 = phi i64 [%98, %$15] ; # Y\n  %118 = phi i64 [%99, %$15] ; # R\n; # (set 2 Y (cons (car L) $Nil))\n; # (car L)\n  %119 = inttoptr i64 %116 to i64*\n  %120 = load i64, i64* %119\n; # (cons (car L) $Nil)\n  %121 = call i64 @cons(i64 %120, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %122 = inttoptr i64 %117 to i64*\n  %123 = getelementptr i64, i64* %122, i32 1\n  store i64 %121, i64* %123\n  br label %$14\n$16:\n  %124 = phi i64 [%86, %$17], [%102, %$19] ; # Exe\n  %125 = phi i64 [%87, %$17], [%103, %$19] ; # X\n  %126 = phi i64 [%88, %$17], [%104, %$19] ; # N\n  %127 = phi i64 [%89, %$17], [%105, %$19] ; # L\n  %128 = phi i64 [%90, %$17], [%106, %$19] ; # Y\n  %129 = phi i64 [%91, %$17], [%107, %$19] ; # R\n  %130 = phi i64 [%89, %$17], [%110, %$19] ; # ->\n  br label %$7\n$7:\n  %131 = phi i64 [%44, %$11], [%53, %$13], [%124, %$16] ; # Exe\n  %132 = phi i64 [%45, %$11], [%54, %$13], [%125, %$16] ; # X\n  %133 = phi i64 [%46, %$11], [%55, %$13], [%126, %$16] ; # N\n  %134 = phi i64 [%47, %$11], [%56, %$13], [%127, %$16] ; # L\n  %135 = phi i64 [%47, %$11], [%59, %$13], [%129, %$16] ; # ->\n; # (drop *Safe)\n  %136 = inttoptr i64 %26 to i64*\n  %137 = getelementptr i64, i64* %136, i32 1\n  %138 = load i64, i64* %137\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %138, i64* %139\n  ret i64 %135\n}\n\ndefine i64 @_Place(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (evCnt Exe X) L (save (eval (car (shift X))))...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe X)\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (shift X)\n  %5 = inttoptr i64 %3 to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (car (shift X))\n  %8 = inttoptr i64 %7 to i64*\n  %9 = load i64, i64* %8\n; # (eval (car (shift X)))\n  %10 = and i64 %9, 6\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$4, label %$3\n$4:\n  %12 = phi i64 [%9, %$1] ; # X\n  br label %$2\n$3:\n  %13 = phi i64 [%9, %$1] ; # X\n  %14 = and i64 %13, 8\n  %15 = icmp ne i64 %14, 0\n  br i1 %15, label %$6, label %$5\n$6:\n  %16 = phi i64 [%13, %$3] ; # X\n  %17 = inttoptr i64 %16 to i64*\n  %18 = load i64, i64* %17\n  br label %$2\n$5:\n  %19 = phi i64 [%13, %$3] ; # X\n  %20 = call i64 @evList(i64 %19)\n  br label %$2\n$2:\n  %21 = phi i64 [%12, %$4], [%16, %$6], [%19, %$5] ; # X\n  %22 = phi i64 [%12, %$4], [%18, %$6], [%20, %$5] ; # ->\n; # (save (eval (car (shift X))))\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %24 = load i64, i64* %23\n  %25 = alloca i64, i64 2, align 16\n  %26 = ptrtoint i64* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = add i64 %26, 8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %30\n; # (shift X)\n  %31 = inttoptr i64 %7 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (car (shift X))\n  %34 = inttoptr i64 %33 to i64*\n  %35 = load i64, i64* %34\n; # (eval (car (shift X)))\n  %36 = and i64 %35, 6\n  %37 = icmp ne i64 %36, 0\n  br i1 %37, label %$9, label %$8\n$9:\n  %38 = phi i64 [%35, %$2] ; # X\n  br label %$7\n$8:\n  %39 = phi i64 [%35, %$2] ; # X\n  %40 = and i64 %39, 8\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$11, label %$10\n$11:\n  %42 = phi i64 [%39, %$8] ; # X\n  %43 = inttoptr i64 %42 to i64*\n  %44 = load i64, i64* %43\n  br label %$7\n$10:\n  %45 = phi i64 [%39, %$8] ; # X\n  %46 = call i64 @evList(i64 %45)\n  br label %$7\n$7:\n  %47 = phi i64 [%38, %$9], [%42, %$11], [%45, %$10] ; # X\n  %48 = phi i64 [%38, %$9], [%44, %$11], [%46, %$10] ; # ->\n; # (save (eval (car (shift X))))\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %50 = load i64, i64* %49\n  %51 = alloca i64, i64 2, align 16\n  %52 = ptrtoint i64* %51 to i64\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = add i64 %52, 8\n  %55 = inttoptr i64 %54 to i64*\n  store i64 %50, i64* %55\n  %56 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %52, i64* %56\n; # (cond ((atom L) (cons Y $Nil)) ((le0 (dec 'N)) (cons Y (cdr L))) ...\n; # (atom L)\n  %57 = and i64 %22, 15\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$14, label %$13\n$14:\n  %59 = phi i64 [%0, %$7] ; # Exe\n  %60 = phi i64 [%33, %$7] ; # X\n  %61 = phi i64 [%4, %$7] ; # N\n  %62 = phi i64 [%22, %$7] ; # L\n  %63 = phi i64 [%48, %$7] ; # Y\n; # (cons Y $Nil)\n  %64 = call i64 @cons(i64 %63, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  br label %$12\n$13:\n  %65 = phi i64 [%0, %$7] ; # Exe\n  %66 = phi i64 [%33, %$7] ; # X\n  %67 = phi i64 [%4, %$7] ; # N\n  %68 = phi i64 [%22, %$7] ; # L\n  %69 = phi i64 [%48, %$7] ; # Y\n; # (dec 'N)\n  %70 = sub i64 %67, 1\n; # (le0 (dec 'N))\n  %71 = icmp sle i64 %70, 0\n  br i1 %71, label %$16, label %$15\n$16:\n  %72 = phi i64 [%65, %$13] ; # Exe\n  %73 = phi i64 [%66, %$13] ; # X\n  %74 = phi i64 [%70, %$13] ; # N\n  %75 = phi i64 [%68, %$13] ; # L\n  %76 = phi i64 [%69, %$13] ; # Y\n; # (cdr L)\n  %77 = inttoptr i64 %75 to i64*\n  %78 = getelementptr i64, i64* %77, i32 1\n  %79 = load i64, i64* %78\n; # (cons Y (cdr L))\n  %80 = call i64 @cons(i64 %76, i64 %79)\n  br label %$12\n$15:\n  %81 = phi i64 [%65, %$13] ; # Exe\n  %82 = phi i64 [%66, %$13] ; # X\n  %83 = phi i64 [%70, %$13] ; # N\n  %84 = phi i64 [%68, %$13] ; # L\n  %85 = phi i64 [%69, %$13] ; # Y\n; # (let (Z (cons (car L) $Nil) R (save Z)) (loop (? (atom (shift L))...\n; # (car L)\n  %86 = inttoptr i64 %84 to i64*\n  %87 = load i64, i64* %86\n; # (cons (car L) $Nil)\n  %88 = call i64 @cons(i64 %87, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Z)\n  %89 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %90 = load i64, i64* %89\n  %91 = alloca i64, i64 2, align 16\n  %92 = ptrtoint i64* %91 to i64\n  %93 = inttoptr i64 %92 to i64*\n  store i64 %88, i64* %93\n  %94 = add i64 %92, 8\n  %95 = inttoptr i64 %94 to i64*\n  store i64 %90, i64* %95\n  %96 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %92, i64* %96\n; # (loop (? (atom (shift L)) (set 2 Z (cons Y L))) (? (=0 (dec 'N)) ...\n  br label %$17\n$17:\n  %97 = phi i64 [%81, %$15], [%141, %$21] ; # Exe\n  %98 = phi i64 [%82, %$15], [%142, %$21] ; # X\n  %99 = phi i64 [%83, %$15], [%143, %$21] ; # N\n  %100 = phi i64 [%84, %$15], [%144, %$21] ; # L\n  %101 = phi i64 [%85, %$15], [%145, %$21] ; # Y\n  %102 = phi i64 [%88, %$15], [%150, %$21] ; # Z\n  %103 = phi i64 [%88, %$15], [%147, %$21] ; # R\n; # (? (atom (shift L)) (set 2 Z (cons Y L)))\n; # (shift L)\n  %104 = inttoptr i64 %100 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n; # (atom (shift L))\n  %107 = and i64 %106, 15\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$20, label %$18\n$20:\n  %109 = phi i64 [%97, %$17] ; # Exe\n  %110 = phi i64 [%98, %$17] ; # X\n  %111 = phi i64 [%99, %$17] ; # N\n  %112 = phi i64 [%106, %$17] ; # L\n  %113 = phi i64 [%101, %$17] ; # Y\n  %114 = phi i64 [%102, %$17] ; # Z\n  %115 = phi i64 [%103, %$17] ; # R\n; # (set 2 Z (cons Y L))\n; # (cons Y L)\n  %116 = call i64 @cons(i64 %113, i64 %112)\n  %117 = inttoptr i64 %114 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  store i64 %116, i64* %118\n  br label %$19\n$18:\n  %119 = phi i64 [%97, %$17] ; # Exe\n  %120 = phi i64 [%98, %$17] ; # X\n  %121 = phi i64 [%99, %$17] ; # N\n  %122 = phi i64 [%106, %$17] ; # L\n  %123 = phi i64 [%101, %$17] ; # Y\n  %124 = phi i64 [%102, %$17] ; # Z\n  %125 = phi i64 [%103, %$17] ; # R\n; # (? (=0 (dec 'N)) (set 2 Z (cons Y (cdr L))))\n; # (dec 'N)\n  %126 = sub i64 %121, 1\n; # (=0 (dec 'N))\n  %127 = icmp eq i64 %126, 0\n  br i1 %127, label %$22, label %$21\n$22:\n  %128 = phi i64 [%119, %$18] ; # Exe\n  %129 = phi i64 [%120, %$18] ; # X\n  %130 = phi i64 [%126, %$18] ; # N\n  %131 = phi i64 [%122, %$18] ; # L\n  %132 = phi i64 [%123, %$18] ; # Y\n  %133 = phi i64 [%124, %$18] ; # Z\n  %134 = phi i64 [%125, %$18] ; # R\n; # (set 2 Z (cons Y (cdr L)))\n; # (cdr L)\n  %135 = inttoptr i64 %131 to i64*\n  %136 = getelementptr i64, i64* %135, i32 1\n  %137 = load i64, i64* %136\n; # (cons Y (cdr L))\n  %138 = call i64 @cons(i64 %132, i64 %137)\n  %139 = inttoptr i64 %133 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  store i64 %138, i64* %140\n  br label %$19\n$21:\n  %141 = phi i64 [%119, %$18] ; # Exe\n  %142 = phi i64 [%120, %$18] ; # X\n  %143 = phi i64 [%126, %$18] ; # N\n  %144 = phi i64 [%122, %$18] ; # L\n  %145 = phi i64 [%123, %$18] ; # Y\n  %146 = phi i64 [%124, %$18] ; # Z\n  %147 = phi i64 [%125, %$18] ; # R\n; # (set 2 Z (cons (car L) $Nil))\n; # (car L)\n  %148 = inttoptr i64 %144 to i64*\n  %149 = load i64, i64* %148\n; # (cons (car L) $Nil)\n  %150 = call i64 @cons(i64 %149, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %151 = inttoptr i64 %146 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  store i64 %150, i64* %152\n  br label %$17\n$19:\n  %153 = phi i64 [%109, %$20], [%128, %$22] ; # Exe\n  %154 = phi i64 [%110, %$20], [%129, %$22] ; # X\n  %155 = phi i64 [%111, %$20], [%130, %$22] ; # N\n  %156 = phi i64 [%112, %$20], [%131, %$22] ; # L\n  %157 = phi i64 [%113, %$20], [%132, %$22] ; # Y\n  %158 = phi i64 [%114, %$20], [%133, %$22] ; # Z\n  %159 = phi i64 [%115, %$20], [%134, %$22] ; # R\n  %160 = phi i64 [%116, %$20], [%138, %$22] ; # ->\n  br label %$12\n$12:\n  %161 = phi i64 [%59, %$14], [%72, %$16], [%153, %$19] ; # Exe\n  %162 = phi i64 [%60, %$14], [%73, %$16], [%154, %$19] ; # X\n  %163 = phi i64 [%61, %$14], [%74, %$16], [%155, %$19] ; # N\n  %164 = phi i64 [%62, %$14], [%75, %$16], [%156, %$19] ; # L\n  %165 = phi i64 [%63, %$14], [%76, %$16], [%157, %$19] ; # Y\n  %166 = phi i64 [%64, %$14], [%80, %$16], [%159, %$19] ; # ->\n; # (drop *Safe)\n  %167 = inttoptr i64 %26 to i64*\n  %168 = getelementptr i64, i64* %167, i32 1\n  %169 = load i64, i64* %168\n  %170 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %169, i64* %170\n  ret i64 %166\n}\n\ndefine i64 @_Strip(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (while (and (pair X) (== $Quote (car X))...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (while (and (pair X) (== $Quote (car X))) (? (== (cdr X) X)) (set...\n  br label %$7\n$7:\n  %19 = phi i64 [%0, %$2], [%37, %$12] ; # Exe\n  %20 = phi i64 [%18, %$2], [%35, %$12] ; # X\n; # (and (pair X) (== $Quote (car X)))\n; # (pair X)\n  %21 = and i64 %20, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%19, %$7] ; # Exe\n  %24 = phi i64 [%20, %$7] ; # X\n; # (car X)\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n; # (== $Quote (car X))\n  %27 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 264) to i64), %26\n  br label %$8\n$8:\n  %28 = phi i64 [%19, %$7], [%23, %$9] ; # Exe\n  %29 = phi i64 [%20, %$7], [%24, %$9] ; # X\n  %30 = phi i1 [0, %$7], [%27, %$9] ; # ->\n  br i1 %30, label %$10, label %$11\n$10:\n  %31 = phi i64 [%28, %$8] ; # Exe\n  %32 = phi i64 [%29, %$8] ; # X\n; # (? (== (cdr X) X))\n; # (cdr X)\n  %33 = inttoptr i64 %32 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (== (cdr X) X)\n  %36 = icmp eq i64 %35, %32\n  br i1 %36, label %$11, label %$12\n$12:\n  %37 = phi i64 [%31, %$10] ; # Exe\n  %38 = phi i64 [%32, %$10] ; # X\n  br label %$7\n$11:\n  %39 = phi i64 [%28, %$8], [%31, %$10] ; # Exe\n  %40 = phi i64 [%29, %$8], [%32, %$10] ; # X\n  ret i64 %40\n}\n\ndefine i64 @_Split(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) L (save (eval (car X)))) (if (atom L) @ (let (A...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (if (atom L) @ (let (A $Nil N 0) (while (pair (shift X)) (setq A ...\n; # (atom L)\n  %27 = and i64 %18, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$7, label %$8\n$7:\n  %29 = phi i64 [%0, %$2] ; # Exe\n  %30 = phi i64 [%3, %$2] ; # X\n  %31 = phi i64 [%18, %$2] ; # L\n  br label %$9\n$8:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%3, %$2] ; # X\n  %34 = phi i64 [%18, %$2] ; # L\n; # (let (A $Nil N 0) (while (pair (shift X)) (setq A (link (push (ev...\n; # (while (pair (shift X)) (setq A (link (push (eval (car X)) NIL)))...\n  br label %$10\n$10:\n  %35 = phi i64 [%32, %$8], [%45, %$13] ; # Exe\n  %36 = phi i64 [%33, %$8], [%46, %$13] ; # X\n  %37 = phi i64 [%34, %$8], [%47, %$13] ; # L\n  %38 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8], [%66, %$13] ; # A\n  %39 = phi i64 [0, %$8], [%73, %$13] ; # N\n; # (shift X)\n  %40 = inttoptr i64 %36 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (pair (shift X))\n  %43 = and i64 %42, 15\n  %44 = icmp eq i64 %43, 0\n  br i1 %44, label %$11, label %$12\n$11:\n  %45 = phi i64 [%35, %$10] ; # Exe\n  %46 = phi i64 [%42, %$10] ; # X\n  %47 = phi i64 [%37, %$10] ; # L\n  %48 = phi i64 [%38, %$10] ; # A\n  %49 = phi i64 [%39, %$10] ; # N\n; # (car X)\n  %50 = inttoptr i64 %46 to i64*\n  %51 = load i64, i64* %50\n; # (eval (car X))\n  %52 = and i64 %51, 6\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$15, label %$14\n$15:\n  %54 = phi i64 [%51, %$11] ; # X\n  br label %$13\n$14:\n  %55 = phi i64 [%51, %$11] ; # X\n  %56 = and i64 %55, 8\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%55, %$14] ; # X\n  %59 = inttoptr i64 %58 to i64*\n  %60 = load i64, i64* %59\n  br label %$13\n$16:\n  %61 = phi i64 [%55, %$14] ; # X\n  %62 = call i64 @evList(i64 %61)\n  br label %$13\n$13:\n  %63 = phi i64 [%54, %$15], [%58, %$17], [%61, %$16] ; # X\n  %64 = phi i64 [%54, %$15], [%60, %$17], [%62, %$16] ; # ->\n; # (push (eval (car X)) NIL)\n  %65 = alloca i64, i64 2, align 16\n  %66 = ptrtoint i64* %65 to i64\n  %67 = inttoptr i64 %66 to i64*\n  store i64 %64, i64* %67\n; # (link (push (eval (car X)) NIL))\n  %68 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %69 = load i64, i64* %68\n  %70 = inttoptr i64 %66 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  store i64 %69, i64* %71\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %66, i64* %72\n; # (inc 'N)\n  %73 = add i64 %49, 1\n  br label %$10\n$12:\n  %74 = phi i64 [%35, %$10] ; # Exe\n  %75 = phi i64 [%42, %$10] ; # X\n  %76 = phi i64 [%37, %$10] ; # L\n  %77 = phi i64 [%38, %$10] ; # A\n  %78 = phi i64 [%39, %$10] ; # N\n; # (let (P $Nil R (link (push P NIL)) Q $Nil S (link (push Q NIL))) ...\n; # (push P NIL)\n  %79 = alloca i64, i64 2, align 16\n  %80 = ptrtoint i64* %79 to i64\n  %81 = inttoptr i64 %80 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %81\n; # (link (push P NIL))\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %83 = load i64, i64* %82\n  %84 = inttoptr i64 %80 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  store i64 %83, i64* %85\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %86\n; # (push Q NIL)\n  %87 = alloca i64, i64 2, align 16\n  %88 = ptrtoint i64* %87 to i64\n  %89 = inttoptr i64 %88 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %89\n; # (link (push Q NIL))\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 %88 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  store i64 %91, i64* %93\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %88, i64* %94\n; # (loop (let (Y (++ L) Z A I N) (loop (? (lt0 (dec 'I)) (let C (con...\n  br label %$18\n$18:\n  %95 = phi i64 [%74, %$12], [%283, %$31] ; # Exe\n  %96 = phi i64 [%75, %$12], [%284, %$31] ; # X\n  %97 = phi i64 [%76, %$12], [%285, %$31] ; # L\n  %98 = phi i64 [%77, %$12], [%286, %$31] ; # A\n  %99 = phi i64 [%78, %$12], [%287, %$31] ; # N\n  %100 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%288, %$31] ; # P\n  %101 = phi i64 [%80, %$12], [%289, %$31] ; # R\n  %102 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12], [%290, %$31] ; # Q\n  %103 = phi i64 [%88, %$12], [%291, %$31] ; # S\n; # (let (Y (++ L) Z A I N) (loop (? (lt0 (dec 'I)) (let C (cons Y $N...\n; # (++ L)\n  %104 = inttoptr i64 %97 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n  %107 = load i64, i64* %104\n; # (loop (? (lt0 (dec 'I)) (let C (cons Y $Nil) (setq Q (if (nil? Q)...\n  br label %$19\n$19:\n  %108 = phi i64 [%95, %$18], [%256, %$26] ; # Exe\n  %109 = phi i64 [%96, %$18], [%257, %$26] ; # X\n  %110 = phi i64 [%106, %$18], [%258, %$26] ; # L\n  %111 = phi i64 [%98, %$18], [%259, %$26] ; # A\n  %112 = phi i64 [%99, %$18], [%260, %$26] ; # N\n  %113 = phi i64 [%100, %$18], [%261, %$26] ; # P\n  %114 = phi i64 [%101, %$18], [%262, %$26] ; # R\n  %115 = phi i64 [%102, %$18], [%263, %$26] ; # Q\n  %116 = phi i64 [%103, %$18], [%264, %$26] ; # S\n  %117 = phi i64 [%107, %$18], [%265, %$26] ; # Y\n  %118 = phi i64 [%98, %$18], [%266, %$26] ; # Z\n  %119 = phi i64 [%99, %$18], [%267, %$26] ; # I\n; # (? (lt0 (dec 'I)) (let C (cons Y $Nil) (setq Q (if (nil? Q) (set ...\n; # (dec 'I)\n  %120 = sub i64 %119, 1\n; # (lt0 (dec 'I))\n  %121 = icmp slt i64 %120, 0\n  br i1 %121, label %$22, label %$20\n$22:\n  %122 = phi i64 [%108, %$19] ; # Exe\n  %123 = phi i64 [%109, %$19] ; # X\n  %124 = phi i64 [%110, %$19] ; # L\n  %125 = phi i64 [%111, %$19] ; # A\n  %126 = phi i64 [%112, %$19] ; # N\n  %127 = phi i64 [%113, %$19] ; # P\n  %128 = phi i64 [%114, %$19] ; # R\n  %129 = phi i64 [%115, %$19] ; # Q\n  %130 = phi i64 [%116, %$19] ; # S\n  %131 = phi i64 [%117, %$19] ; # Y\n  %132 = phi i64 [%118, %$19] ; # Z\n  %133 = phi i64 [%120, %$19] ; # I\n; # (let C (cons Y $Nil) (setq Q (if (nil? Q) (set S C) (set 2 Q C)))...\n; # (cons Y $Nil)\n  %134 = call i64 @cons(i64 %131, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if (nil? Q) (set S C) (set 2 Q C))\n; # (nil? Q)\n  %135 = icmp eq i64 %129, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %135, label %$23, label %$24\n$23:\n  %136 = phi i64 [%122, %$22] ; # Exe\n  %137 = phi i64 [%123, %$22] ; # X\n  %138 = phi i64 [%124, %$22] ; # L\n  %139 = phi i64 [%125, %$22] ; # A\n  %140 = phi i64 [%126, %$22] ; # N\n  %141 = phi i64 [%127, %$22] ; # P\n  %142 = phi i64 [%128, %$22] ; # R\n  %143 = phi i64 [%129, %$22] ; # Q\n  %144 = phi i64 [%130, %$22] ; # S\n  %145 = phi i64 [%131, %$22] ; # Y\n  %146 = phi i64 [%132, %$22] ; # Z\n  %147 = phi i64 [%133, %$22] ; # I\n  %148 = phi i64 [%134, %$22] ; # C\n; # (set S C)\n  %149 = inttoptr i64 %144 to i64*\n  store i64 %148, i64* %149\n  br label %$25\n$24:\n  %150 = phi i64 [%122, %$22] ; # Exe\n  %151 = phi i64 [%123, %$22] ; # X\n  %152 = phi i64 [%124, %$22] ; # L\n  %153 = phi i64 [%125, %$22] ; # A\n  %154 = phi i64 [%126, %$22] ; # N\n  %155 = phi i64 [%127, %$22] ; # P\n  %156 = phi i64 [%128, %$22] ; # R\n  %157 = phi i64 [%129, %$22] ; # Q\n  %158 = phi i64 [%130, %$22] ; # S\n  %159 = phi i64 [%131, %$22] ; # Y\n  %160 = phi i64 [%132, %$22] ; # Z\n  %161 = phi i64 [%133, %$22] ; # I\n  %162 = phi i64 [%134, %$22] ; # C\n; # (set 2 Q C)\n  %163 = inttoptr i64 %157 to i64*\n  %164 = getelementptr i64, i64* %163, i32 1\n  store i64 %162, i64* %164\n  br label %$25\n$25:\n  %165 = phi i64 [%136, %$23], [%150, %$24] ; # Exe\n  %166 = phi i64 [%137, %$23], [%151, %$24] ; # X\n  %167 = phi i64 [%138, %$23], [%152, %$24] ; # L\n  %168 = phi i64 [%139, %$23], [%153, %$24] ; # A\n  %169 = phi i64 [%140, %$23], [%154, %$24] ; # N\n  %170 = phi i64 [%141, %$23], [%155, %$24] ; # P\n  %171 = phi i64 [%142, %$23], [%156, %$24] ; # R\n  %172 = phi i64 [%143, %$23], [%157, %$24] ; # Q\n  %173 = phi i64 [%144, %$23], [%158, %$24] ; # S\n  %174 = phi i64 [%145, %$23], [%159, %$24] ; # Y\n  %175 = phi i64 [%146, %$23], [%160, %$24] ; # Z\n  %176 = phi i64 [%147, %$23], [%161, %$24] ; # I\n  %177 = phi i64 [%148, %$23], [%162, %$24] ; # C\n  %178 = phi i64 [%148, %$23], [%162, %$24] ; # ->\n  br label %$21\n$20:\n  %179 = phi i64 [%108, %$19] ; # Exe\n  %180 = phi i64 [%109, %$19] ; # X\n  %181 = phi i64 [%110, %$19] ; # L\n  %182 = phi i64 [%111, %$19] ; # A\n  %183 = phi i64 [%112, %$19] ; # N\n  %184 = phi i64 [%113, %$19] ; # P\n  %185 = phi i64 [%114, %$19] ; # R\n  %186 = phi i64 [%115, %$19] ; # Q\n  %187 = phi i64 [%116, %$19] ; # S\n  %188 = phi i64 [%117, %$19] ; # Y\n  %189 = phi i64 [%118, %$19] ; # Z\n  %190 = phi i64 [%120, %$19] ; # I\n; # (? (equal Y (++ Z)) (let C (cons (val S) $Nil) (setq P (if (nil? ...\n; # (++ Z)\n  %191 = inttoptr i64 %189 to i64*\n  %192 = getelementptr i64, i64* %191, i32 1\n  %193 = load i64, i64* %192\n  %194 = load i64, i64* %191\n; # (equal Y (++ Z))\n  %195 = call i1 @equal(i64 %188, i64 %194)\n  br i1 %195, label %$27, label %$26\n$27:\n  %196 = phi i64 [%179, %$20] ; # Exe\n  %197 = phi i64 [%180, %$20] ; # X\n  %198 = phi i64 [%181, %$20] ; # L\n  %199 = phi i64 [%182, %$20] ; # A\n  %200 = phi i64 [%183, %$20] ; # N\n  %201 = phi i64 [%184, %$20] ; # P\n  %202 = phi i64 [%185, %$20] ; # R\n  %203 = phi i64 [%186, %$20] ; # Q\n  %204 = phi i64 [%187, %$20] ; # S\n  %205 = phi i64 [%188, %$20] ; # Y\n  %206 = phi i64 [%193, %$20] ; # Z\n  %207 = phi i64 [%190, %$20] ; # I\n; # (let C (cons (val S) $Nil) (setq P (if (nil? P) (set R C) (set 2 ...\n; # (val S)\n  %208 = inttoptr i64 %204 to i64*\n  %209 = load i64, i64* %208\n; # (cons (val S) $Nil)\n  %210 = call i64 @cons(i64 %209, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if (nil? P) (set R C) (set 2 P C))\n; # (nil? P)\n  %211 = icmp eq i64 %201, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %211, label %$28, label %$29\n$28:\n  %212 = phi i64 [%196, %$27] ; # Exe\n  %213 = phi i64 [%197, %$27] ; # X\n  %214 = phi i64 [%198, %$27] ; # L\n  %215 = phi i64 [%199, %$27] ; # A\n  %216 = phi i64 [%200, %$27] ; # N\n  %217 = phi i64 [%201, %$27] ; # P\n  %218 = phi i64 [%202, %$27] ; # R\n  %219 = phi i64 [%203, %$27] ; # Q\n  %220 = phi i64 [%204, %$27] ; # S\n  %221 = phi i64 [%205, %$27] ; # Y\n  %222 = phi i64 [%206, %$27] ; # Z\n  %223 = phi i64 [%207, %$27] ; # I\n  %224 = phi i64 [%210, %$27] ; # C\n; # (set R C)\n  %225 = inttoptr i64 %218 to i64*\n  store i64 %224, i64* %225\n  br label %$30\n$29:\n  %226 = phi i64 [%196, %$27] ; # Exe\n  %227 = phi i64 [%197, %$27] ; # X\n  %228 = phi i64 [%198, %$27] ; # L\n  %229 = phi i64 [%199, %$27] ; # A\n  %230 = phi i64 [%200, %$27] ; # N\n  %231 = phi i64 [%201, %$27] ; # P\n  %232 = phi i64 [%202, %$27] ; # R\n  %233 = phi i64 [%203, %$27] ; # Q\n  %234 = phi i64 [%204, %$27] ; # S\n  %235 = phi i64 [%205, %$27] ; # Y\n  %236 = phi i64 [%206, %$27] ; # Z\n  %237 = phi i64 [%207, %$27] ; # I\n  %238 = phi i64 [%210, %$27] ; # C\n; # (set 2 P C)\n  %239 = inttoptr i64 %231 to i64*\n  %240 = getelementptr i64, i64* %239, i32 1\n  store i64 %238, i64* %240\n  br label %$30\n$30:\n  %241 = phi i64 [%212, %$28], [%226, %$29] ; # Exe\n  %242 = phi i64 [%213, %$28], [%227, %$29] ; # X\n  %243 = phi i64 [%214, %$28], [%228, %$29] ; # L\n  %244 = phi i64 [%215, %$28], [%229, %$29] ; # A\n  %245 = phi i64 [%216, %$28], [%230, %$29] ; # N\n  %246 = phi i64 [%217, %$28], [%231, %$29] ; # P\n  %247 = phi i64 [%218, %$28], [%232, %$29] ; # R\n  %248 = phi i64 [%219, %$28], [%233, %$29] ; # Q\n  %249 = phi i64 [%220, %$28], [%234, %$29] ; # S\n  %250 = phi i64 [%221, %$28], [%235, %$29] ; # Y\n  %251 = phi i64 [%222, %$28], [%236, %$29] ; # Z\n  %252 = phi i64 [%223, %$28], [%237, %$29] ; # I\n  %253 = phi i64 [%224, %$28], [%238, %$29] ; # C\n  %254 = phi i64 [%224, %$28], [%238, %$29] ; # ->\n; # (set S $Nil)\n  %255 = inttoptr i64 %249 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %255\n  br label %$21\n$26:\n  %256 = phi i64 [%179, %$20] ; # Exe\n  %257 = phi i64 [%180, %$20] ; # X\n  %258 = phi i64 [%181, %$20] ; # L\n  %259 = phi i64 [%182, %$20] ; # A\n  %260 = phi i64 [%183, %$20] ; # N\n  %261 = phi i64 [%184, %$20] ; # P\n  %262 = phi i64 [%185, %$20] ; # R\n  %263 = phi i64 [%186, %$20] ; # Q\n  %264 = phi i64 [%187, %$20] ; # S\n  %265 = phi i64 [%188, %$20] ; # Y\n  %266 = phi i64 [%193, %$20] ; # Z\n  %267 = phi i64 [%190, %$20] ; # I\n  br label %$19\n$21:\n  %268 = phi i64 [%165, %$25], [%241, %$30] ; # Exe\n  %269 = phi i64 [%166, %$25], [%242, %$30] ; # X\n  %270 = phi i64 [%167, %$25], [%243, %$30] ; # L\n  %271 = phi i64 [%168, %$25], [%244, %$30] ; # A\n  %272 = phi i64 [%169, %$25], [%245, %$30] ; # N\n  %273 = phi i64 [%170, %$25], [%254, %$30] ; # P\n  %274 = phi i64 [%171, %$25], [%247, %$30] ; # R\n  %275 = phi i64 [%178, %$25], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$30] ; # Q\n  %276 = phi i64 [%173, %$25], [%249, %$30] ; # S\n  %277 = phi i64 [%174, %$25], [%250, %$30] ; # Y\n  %278 = phi i64 [%175, %$25], [%251, %$30] ; # Z\n  %279 = phi i64 [%176, %$25], [%252, %$30] ; # I\n  %280 = phi i64 [%178, %$25], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$30] ; # ->\n; # (? (atom L))\n; # (atom L)\n  %281 = and i64 %270, 15\n  %282 = icmp ne i64 %281, 0\n  br i1 %282, label %$32, label %$31\n$31:\n  %283 = phi i64 [%268, %$21] ; # Exe\n  %284 = phi i64 [%269, %$21] ; # X\n  %285 = phi i64 [%270, %$21] ; # L\n  %286 = phi i64 [%271, %$21] ; # A\n  %287 = phi i64 [%272, %$21] ; # N\n  %288 = phi i64 [%273, %$21] ; # P\n  %289 = phi i64 [%274, %$21] ; # R\n  %290 = phi i64 [%275, %$21] ; # Q\n  %291 = phi i64 [%276, %$21] ; # S\n  br label %$18\n$32:\n  %292 = phi i64 [%268, %$21] ; # Exe\n  %293 = phi i64 [%269, %$21] ; # X\n  %294 = phi i64 [%270, %$21] ; # L\n  %295 = phi i64 [%271, %$21] ; # A\n  %296 = phi i64 [%272, %$21] ; # N\n  %297 = phi i64 [%273, %$21] ; # P\n  %298 = phi i64 [%274, %$21] ; # R\n  %299 = phi i64 [%275, %$21] ; # Q\n  %300 = phi i64 [%276, %$21] ; # S\n  %301 = phi i64 [0, %$21] ; # ->\n; # (let C (cons (val S) $Nil) (if (nil? P) C (set 2 P C) (val R)))\n; # (val S)\n  %302 = inttoptr i64 %300 to i64*\n  %303 = load i64, i64* %302\n; # (cons (val S) $Nil)\n  %304 = call i64 @cons(i64 %303, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if (nil? P) C (set 2 P C) (val R))\n; # (nil? P)\n  %305 = icmp eq i64 %297, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %305, label %$33, label %$34\n$33:\n  %306 = phi i64 [%292, %$32] ; # Exe\n  %307 = phi i64 [%293, %$32] ; # X\n  %308 = phi i64 [%294, %$32] ; # L\n  %309 = phi i64 [%295, %$32] ; # A\n  %310 = phi i64 [%296, %$32] ; # N\n  %311 = phi i64 [%297, %$32] ; # P\n  %312 = phi i64 [%298, %$32] ; # R\n  %313 = phi i64 [%299, %$32] ; # Q\n  %314 = phi i64 [%300, %$32] ; # S\n  %315 = phi i64 [%304, %$32] ; # C\n  br label %$35\n$34:\n  %316 = phi i64 [%292, %$32] ; # Exe\n  %317 = phi i64 [%293, %$32] ; # X\n  %318 = phi i64 [%294, %$32] ; # L\n  %319 = phi i64 [%295, %$32] ; # A\n  %320 = phi i64 [%296, %$32] ; # N\n  %321 = phi i64 [%297, %$32] ; # P\n  %322 = phi i64 [%298, %$32] ; # R\n  %323 = phi i64 [%299, %$32] ; # Q\n  %324 = phi i64 [%300, %$32] ; # S\n  %325 = phi i64 [%304, %$32] ; # C\n; # (set 2 P C)\n  %326 = inttoptr i64 %321 to i64*\n  %327 = getelementptr i64, i64* %326, i32 1\n  store i64 %325, i64* %327\n; # (val R)\n  %328 = inttoptr i64 %322 to i64*\n  %329 = load i64, i64* %328\n  br label %$35\n$35:\n  %330 = phi i64 [%306, %$33], [%316, %$34] ; # Exe\n  %331 = phi i64 [%307, %$33], [%317, %$34] ; # X\n  %332 = phi i64 [%308, %$33], [%318, %$34] ; # L\n  %333 = phi i64 [%309, %$33], [%319, %$34] ; # A\n  %334 = phi i64 [%310, %$33], [%320, %$34] ; # N\n  %335 = phi i64 [%311, %$33], [%321, %$34] ; # P\n  %336 = phi i64 [%312, %$33], [%322, %$34] ; # R\n  %337 = phi i64 [%313, %$33], [%323, %$34] ; # Q\n  %338 = phi i64 [%314, %$33], [%324, %$34] ; # S\n  %339 = phi i64 [%315, %$33], [%325, %$34] ; # C\n  %340 = phi i64 [%315, %$33], [%329, %$34] ; # ->\n  br label %$9\n$9:\n  %341 = phi i64 [%29, %$7], [%330, %$35] ; # Exe\n  %342 = phi i64 [%30, %$7], [%331, %$35] ; # X\n  %343 = phi i64 [%31, %$7], [%332, %$35] ; # L\n  %344 = phi i64 [%18, %$7], [%340, %$35] ; # ->\n; # (drop *Safe)\n  %345 = inttoptr i64 %22 to i64*\n  %346 = getelementptr i64, i64* %345, i32 1\n  %347 = load i64, i64* %346\n  %348 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %347, i64* %348\n  ret i64 %344\n}\n\ndefine i64 @_Reverse(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X))) Z $Nil) (while (pair Y)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (while (pair Y) (setq Z (cons (++ Y) Z)))\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%33, %$8] ; # Exe\n  %28 = phi i64 [%3, %$2], [%34, %$8] ; # X\n  %29 = phi i64 [%18, %$2], [%39, %$8] ; # Y\n  %30 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%41, %$8] ; # Z\n; # (pair Y)\n  %31 = and i64 %29, 15\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$8, label %$9\n$8:\n  %33 = phi i64 [%27, %$7] ; # Exe\n  %34 = phi i64 [%28, %$7] ; # X\n  %35 = phi i64 [%29, %$7] ; # Y\n  %36 = phi i64 [%30, %$7] ; # Z\n; # (++ Y)\n  %37 = inttoptr i64 %35 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = load i64, i64* %37\n; # (cons (++ Y) Z)\n  %41 = call i64 @cons(i64 %40, i64 %36)\n  br label %$7\n$9:\n  %42 = phi i64 [%27, %$7] ; # Exe\n  %43 = phi i64 [%28, %$7] ; # X\n  %44 = phi i64 [%29, %$7] ; # Y\n  %45 = phi i64 [%30, %$7] ; # Z\n; # (drop *Safe)\n  %46 = inttoptr i64 %22 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n  %49 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %48, i64* %49\n  ret i64 %45\n}\n\ndefine i64 @_Flip(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (if (atom Y) Y (let Z (cdr Y)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (atom Y) Y (let Z (cdr Y) (cond ((atom Z) Y) ((atom (shift X)...\n; # (atom Y)\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%3, %$2] ; # X\n  %23 = phi i64 [%18, %$2] ; # Y\n  br label %$9\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%3, %$2] ; # X\n  %26 = phi i64 [%18, %$2] ; # Y\n; # (let Z (cdr Y) (cond ((atom Z) Y) ((atom (shift X)) (set 2 Y $Nil...\n; # (cdr Y)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (cond ((atom Z) Y) ((atom (shift X)) (set 2 Y $Nil) (loop (setq X...\n; # (atom Z)\n  %30 = and i64 %29, 15\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$12, label %$11\n$12:\n  %32 = phi i64 [%24, %$8] ; # Exe\n  %33 = phi i64 [%25, %$8] ; # X\n  %34 = phi i64 [%26, %$8] ; # Y\n  %35 = phi i64 [%29, %$8] ; # Z\n  br label %$10\n$11:\n  %36 = phi i64 [%24, %$8] ; # Exe\n  %37 = phi i64 [%25, %$8] ; # X\n  %38 = phi i64 [%26, %$8] ; # Y\n  %39 = phi i64 [%29, %$8] ; # Z\n; # (shift X)\n  %40 = inttoptr i64 %37 to i64*\n  %41 = getelementptr i64, i64* %40, i32 1\n  %42 = load i64, i64* %41\n; # (atom (shift X))\n  %43 = and i64 %42, 15\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$14, label %$13\n$14:\n  %45 = phi i64 [%36, %$11] ; # Exe\n  %46 = phi i64 [%42, %$11] ; # X\n  %47 = phi i64 [%38, %$11] ; # Y\n  %48 = phi i64 [%39, %$11] ; # Z\n; # (set 2 Y $Nil)\n  %49 = inttoptr i64 %47 to i64*\n  %50 = getelementptr i64, i64* %49, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %50\n; # (loop (setq X (cdr Z)) (set 2 Z Y) (? (atom X) Z) (setq Y Z Z X))...\n  br label %$15\n$15:\n  %51 = phi i64 [%45, %$14], [%66, %$16] ; # Exe\n  %52 = phi i64 [%46, %$14], [%67, %$16] ; # X\n  %53 = phi i64 [%47, %$14], [%69, %$16] ; # Y\n  %54 = phi i64 [%48, %$14], [%67, %$16] ; # Z\n; # (cdr Z)\n  %55 = inttoptr i64 %54 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (set 2 Z Y)\n  %58 = inttoptr i64 %54 to i64*\n  %59 = getelementptr i64, i64* %58, i32 1\n  store i64 %53, i64* %59\n; # (? (atom X) Z)\n; # (atom X)\n  %60 = and i64 %57, 15\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$18, label %$16\n$18:\n  %62 = phi i64 [%51, %$15] ; # Exe\n  %63 = phi i64 [%57, %$15] ; # X\n  %64 = phi i64 [%53, %$15] ; # Y\n  %65 = phi i64 [%54, %$15] ; # Z\n  br label %$17\n$16:\n  %66 = phi i64 [%51, %$15] ; # Exe\n  %67 = phi i64 [%57, %$15] ; # X\n  %68 = phi i64 [%53, %$15] ; # Y\n  %69 = phi i64 [%54, %$15] ; # Z\n  br label %$15\n$17:\n  %70 = phi i64 [%62, %$18] ; # Exe\n  %71 = phi i64 [%63, %$18] ; # X\n  %72 = phi i64 [%64, %$18] ; # Y\n  %73 = phi i64 [%65, %$18] ; # Z\n  %74 = phi i64 [%65, %$18] ; # ->\n  br label %$10\n$13:\n  %75 = phi i64 [%36, %$11] ; # Exe\n  %76 = phi i64 [%42, %$11] ; # X\n  %77 = phi i64 [%38, %$11] ; # Y\n  %78 = phi i64 [%39, %$11] ; # Z\n; # (let N (save Y (evCnt Exe X)) (if (le0 (dec 'N)) Y (set 2 Y (cdr ...\n; # (save Y (evCnt Exe X))\n  %79 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %80 = load i64, i64* %79\n  %81 = alloca i64, i64 2, align 16\n  %82 = ptrtoint i64* %81 to i64\n  %83 = inttoptr i64 %82 to i64*\n  store i64 %77, i64* %83\n  %84 = add i64 %82, 8\n  %85 = inttoptr i64 %84 to i64*\n  store i64 %80, i64* %85\n  %86 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %82, i64* %86\n; # (evCnt Exe X)\n  %87 = call i64 @evCnt(i64 %75, i64 %76)\n; # drop\n  %88 = inttoptr i64 %82 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %90, i64* %91\n; # (if (le0 (dec 'N)) Y (set 2 Y (cdr Z) 2 Z Y) (until (or (=0 (dec ...\n; # (dec 'N)\n  %92 = sub i64 %87, 1\n; # (le0 (dec 'N))\n  %93 = icmp sle i64 %92, 0\n  br i1 %93, label %$19, label %$20\n$19:\n  %94 = phi i64 [%75, %$13] ; # Exe\n  %95 = phi i64 [%76, %$13] ; # X\n  %96 = phi i64 [%77, %$13] ; # Y\n  %97 = phi i64 [%78, %$13] ; # Z\n  %98 = phi i64 [%92, %$13] ; # N\n  br label %$21\n$20:\n  %99 = phi i64 [%75, %$13] ; # Exe\n  %100 = phi i64 [%76, %$13] ; # X\n  %101 = phi i64 [%77, %$13] ; # Y\n  %102 = phi i64 [%78, %$13] ; # Z\n  %103 = phi i64 [%92, %$13] ; # N\n; # (set 2 Y (cdr Z) 2 Z Y)\n; # (cdr Z)\n  %104 = inttoptr i64 %102 to i64*\n  %105 = getelementptr i64, i64* %104, i32 1\n  %106 = load i64, i64* %105\n  %107 = inttoptr i64 %101 to i64*\n  %108 = getelementptr i64, i64* %107, i32 1\n  store i64 %106, i64* %108\n  %109 = inttoptr i64 %102 to i64*\n  %110 = getelementptr i64, i64* %109, i32 1\n  store i64 %101, i64* %110\n; # (until (or (=0 (dec 'N)) (atom (setq X (cdr Y)))) (set 2 Y (cdr X...\n  br label %$22\n$22:\n  %111 = phi i64 [%99, %$20], [%134, %$25] ; # Exe\n  %112 = phi i64 [%100, %$20], [%135, %$25] ; # X\n  %113 = phi i64 [%101, %$20], [%136, %$25] ; # Y\n  %114 = phi i64 [%102, %$20], [%135, %$25] ; # Z\n  %115 = phi i64 [%103, %$20], [%138, %$25] ; # N\n; # (or (=0 (dec 'N)) (atom (setq X (cdr Y))))\n; # (dec 'N)\n  %116 = sub i64 %115, 1\n; # (=0 (dec 'N))\n  %117 = icmp eq i64 %116, 0\n  br i1 %117, label %$23, label %$24\n$24:\n  %118 = phi i64 [%111, %$22] ; # Exe\n  %119 = phi i64 [%112, %$22] ; # X\n  %120 = phi i64 [%113, %$22] ; # Y\n  %121 = phi i64 [%114, %$22] ; # Z\n  %122 = phi i64 [%116, %$22] ; # N\n; # (cdr Y)\n  %123 = inttoptr i64 %120 to i64*\n  %124 = getelementptr i64, i64* %123, i32 1\n  %125 = load i64, i64* %124\n; # (atom (setq X (cdr Y)))\n  %126 = and i64 %125, 15\n  %127 = icmp ne i64 %126, 0\n  br label %$23\n$23:\n  %128 = phi i64 [%111, %$22], [%118, %$24] ; # Exe\n  %129 = phi i64 [%112, %$22], [%125, %$24] ; # X\n  %130 = phi i64 [%113, %$22], [%120, %$24] ; # Y\n  %131 = phi i64 [%114, %$22], [%121, %$24] ; # Z\n  %132 = phi i64 [%116, %$22], [%122, %$24] ; # N\n  %133 = phi i1 [1, %$22], [%127, %$24] ; # ->\n  br i1 %133, label %$26, label %$25\n$25:\n  %134 = phi i64 [%128, %$23] ; # Exe\n  %135 = phi i64 [%129, %$23] ; # X\n  %136 = phi i64 [%130, %$23] ; # Y\n  %137 = phi i64 [%131, %$23] ; # Z\n  %138 = phi i64 [%132, %$23] ; # N\n; # (set 2 Y (cdr X) 2 X Z)\n; # (cdr X)\n  %139 = inttoptr i64 %135 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  %141 = load i64, i64* %140\n  %142 = inttoptr i64 %136 to i64*\n  %143 = getelementptr i64, i64* %142, i32 1\n  store i64 %141, i64* %143\n  %144 = inttoptr i64 %135 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  store i64 %137, i64* %145\n  br label %$22\n$26:\n  %146 = phi i64 [%128, %$23] ; # Exe\n  %147 = phi i64 [%129, %$23] ; # X\n  %148 = phi i64 [%130, %$23] ; # Y\n  %149 = phi i64 [%131, %$23] ; # Z\n  %150 = phi i64 [%132, %$23] ; # N\n  br label %$21\n$21:\n  %151 = phi i64 [%94, %$19], [%146, %$26] ; # Exe\n  %152 = phi i64 [%95, %$19], [%147, %$26] ; # X\n  %153 = phi i64 [%96, %$19], [%148, %$26] ; # Y\n  %154 = phi i64 [%97, %$19], [%149, %$26] ; # Z\n  %155 = phi i64 [%98, %$19], [%150, %$26] ; # N\n  %156 = phi i64 [%96, %$19], [%149, %$26] ; # ->\n  br label %$10\n$10:\n  %157 = phi i64 [%32, %$12], [%70, %$17], [%151, %$21] ; # Exe\n  %158 = phi i64 [%33, %$12], [%71, %$17], [%152, %$21] ; # X\n  %159 = phi i64 [%34, %$12], [%72, %$17], [%153, %$21] ; # Y\n  %160 = phi i64 [%35, %$12], [%73, %$17], [%154, %$21] ; # Z\n  %161 = phi i64 [%34, %$12], [%74, %$17], [%156, %$21] ; # ->\n  br label %$9\n$9:\n  %162 = phi i64 [%21, %$7], [%157, %$10] ; # Exe\n  %163 = phi i64 [%22, %$7], [%158, %$10] ; # X\n  %164 = phi i64 [%23, %$7], [%159, %$10] ; # Y\n  %165 = phi i64 [%23, %$7], [%161, %$10] ; # ->\n  ret i64 %165\n}\n\ndefine i64 @trim(i64) align 8 {\n$1:\n; # (if (atom X) X (stkChk 0) (let Y (trim (cdr X)) (if (and (nil? Y)...\n; # (atom X)\n  %1 = and i64 %0, 15\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # X\n  br label %$4\n$3:\n  %4 = phi i64 [%0, %$1] ; # X\n; # (stkChk 0)\n  %5 = load i8*, i8** @$StkLimit\n  %6 = call i8* @llvm.stacksave()\n  %7 = icmp ugt i8* %5, %6\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [0, %$3] ; # Exe\n  call void @stkErr(i64 %8)\n  unreachable\n$6:\n  %9 = phi i64 [0, %$3] ; # Exe\n; # (let Y (trim (cdr X)) (if (and (nil? Y) (isBlank (car X))) $Nil (...\n; # (cdr X)\n  %10 = inttoptr i64 %4 to i64*\n  %11 = getelementptr i64, i64* %10, i32 1\n  %12 = load i64, i64* %11\n; # (trim (cdr X))\n  %13 = call i64 @trim(i64 %12)\n; # (if (and (nil? Y) (isBlank (car X))) $Nil (cons (car X) Y))\n; # (and (nil? Y) (isBlank (car X)))\n; # (nil? Y)\n  %14 = icmp eq i64 %13, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %14, label %$8, label %$7\n$8:\n  %15 = phi i64 [%4, %$6] ; # X\n  %16 = phi i64 [%13, %$6] ; # Y\n; # (car X)\n  %17 = inttoptr i64 %15 to i64*\n  %18 = load i64, i64* %17\n; # (isBlank (car X))\n  %19 = call i1 @isBlank(i64 %18)\n  br label %$7\n$7:\n  %20 = phi i64 [%4, %$6], [%15, %$8] ; # X\n  %21 = phi i64 [%13, %$6], [%16, %$8] ; # Y\n  %22 = phi i1 [0, %$6], [%19, %$8] ; # ->\n  br i1 %22, label %$9, label %$10\n$9:\n  %23 = phi i64 [%20, %$7] ; # X\n  %24 = phi i64 [%21, %$7] ; # Y\n  br label %$11\n$10:\n  %25 = phi i64 [%20, %$7] ; # X\n  %26 = phi i64 [%21, %$7] ; # Y\n; # (car X)\n  %27 = inttoptr i64 %25 to i64*\n  %28 = load i64, i64* %27\n; # (cons (car X) Y)\n  %29 = call i64 @cons(i64 %28, i64 %26)\n  br label %$11\n$11:\n  %30 = phi i64 [%23, %$9], [%25, %$10] ; # X\n  %31 = phi i64 [%24, %$9], [%26, %$10] ; # Y\n  %32 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$9], [%29, %$10] ; # ->\n  br label %$4\n$4:\n  %33 = phi i64 [%3, %$2], [%30, %$11] ; # X\n  %34 = phi i64 [%3, %$2], [%32, %$11] ; # ->\n  ret i64 %34\n}\n\ndefine i64 @_Trim(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (cadr Exe)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (trim (save (eval (cadr Exe))))\n  %27 = call i64 @trim(i64 %18)\n; # (drop *Safe)\n  %28 = inttoptr i64 %22 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %30, i64* %31\n  ret i64 %27\n}\n\ndefine i64 @_Clip(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (car X))) (while (and (pair Y) (isBlank...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (while (and (pair Y) (isBlank (car Y))) (shift Y))\n  br label %$7\n$7:\n  %19 = phi i64 [%0, %$2], [%34, %$10] ; # Exe\n  %20 = phi i64 [%3, %$2], [%35, %$10] ; # X\n  %21 = phi i64 [%18, %$2], [%39, %$10] ; # Y\n; # (and (pair Y) (isBlank (car Y)))\n; # (pair Y)\n  %22 = and i64 %21, 15\n  %23 = icmp eq i64 %22, 0\n  br i1 %23, label %$9, label %$8\n$9:\n  %24 = phi i64 [%19, %$7] ; # Exe\n  %25 = phi i64 [%20, %$7] ; # X\n  %26 = phi i64 [%21, %$7] ; # Y\n; # (car Y)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (isBlank (car Y))\n  %29 = call i1 @isBlank(i64 %28)\n  br label %$8\n$8:\n  %30 = phi i64 [%19, %$7], [%24, %$9] ; # Exe\n  %31 = phi i64 [%20, %$7], [%25, %$9] ; # X\n  %32 = phi i64 [%21, %$7], [%26, %$9] ; # Y\n  %33 = phi i1 [0, %$7], [%29, %$9] ; # ->\n  br i1 %33, label %$10, label %$11\n$10:\n  %34 = phi i64 [%30, %$8] ; # Exe\n  %35 = phi i64 [%31, %$8] ; # X\n  %36 = phi i64 [%32, %$8] ; # Y\n; # (shift Y)\n  %37 = inttoptr i64 %36 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  br label %$7\n$11:\n  %40 = phi i64 [%30, %$8] ; # Exe\n  %41 = phi i64 [%31, %$8] ; # X\n  %42 = phi i64 [%32, %$8] ; # Y\n; # (save Y)\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %44 = load i64, i64* %43\n  %45 = alloca i64, i64 2, align 16\n  %46 = ptrtoint i64* %45 to i64\n  %47 = inttoptr i64 %46 to i64*\n  store i64 %42, i64* %47\n  %48 = add i64 %46, 8\n  %49 = inttoptr i64 %48 to i64*\n  store i64 %44, i64* %49\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %46, i64* %50\n; # (trim (save Y))\n  %51 = call i64 @trim(i64 %42)\n; # (drop *Safe)\n  %52 = inttoptr i64 %46 to i64*\n  %53 = getelementptr i64, i64* %52, i32 1\n  %54 = load i64, i64* %53\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %54, i64* %55\n  ret i64 %51\n}\n\ndefine i64 @_Head(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((nil? Y) Y) ((pair Y) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((nil? Y) Y) ((pair Y) (save Y (let (Z Y L (eval (car X))) ...\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # Y\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i64 [%20, %$2] ; # Y\n; # (pair Y)\n  %28 = and i64 %27, 15\n  %29 = icmp eq i64 %28, 0\n  br i1 %29, label %$11, label %$10\n$11:\n  %30 = phi i64 [%25, %$8] ; # Exe\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%27, %$8] ; # Y\n; # (save Y (let (Z Y L (eval (car X))) (loop (? (or (atom L) (not (e...\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %34 = load i64, i64* %33\n  %35 = alloca i64, i64 2, align 16\n  %36 = ptrtoint i64* %35 to i64\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %32, i64* %37\n  %38 = add i64 %36, 8\n  %39 = inttoptr i64 %38 to i64*\n  store i64 %34, i64* %39\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %36, i64* %40\n; # (let (Z Y L (eval (car X))) (loop (? (or (atom L) (not (equal (ca...\n; # (car X)\n  %41 = inttoptr i64 %31 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$14, label %$13\n$14:\n  %45 = phi i64 [%42, %$11] ; # X\n  br label %$12\n$13:\n  %46 = phi i64 [%42, %$11] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$16, label %$15\n$16:\n  %49 = phi i64 [%46, %$13] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$12\n$15:\n  %52 = phi i64 [%46, %$13] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$12\n$12:\n  %54 = phi i64 [%45, %$14], [%49, %$16], [%52, %$15] ; # X\n  %55 = phi i64 [%45, %$14], [%51, %$16], [%53, %$15] ; # ->\n; # (loop (? (or (atom L) (not (equal (car Z) (car L)))) $Nil) (? (at...\n  br label %$17\n$17:\n  %56 = phi i64 [%30, %$12], [%100, %$23] ; # Exe\n  %57 = phi i64 [%31, %$12], [%101, %$23] ; # X\n  %58 = phi i64 [%32, %$12], [%102, %$23] ; # Y\n  %59 = phi i64 [%32, %$12], [%103, %$23] ; # Z\n  %60 = phi i64 [%55, %$12], [%107, %$23] ; # L\n; # (? (or (atom L) (not (equal (car Z) (car L)))) $Nil)\n; # (or (atom L) (not (equal (car Z) (car L))))\n; # (atom L)\n  %61 = and i64 %60, 15\n  %62 = icmp ne i64 %61, 0\n  br i1 %62, label %$18, label %$19\n$19:\n  %63 = phi i64 [%56, %$17] ; # Exe\n  %64 = phi i64 [%57, %$17] ; # X\n  %65 = phi i64 [%58, %$17] ; # Y\n  %66 = phi i64 [%59, %$17] ; # Z\n  %67 = phi i64 [%60, %$17] ; # L\n; # (car Z)\n  %68 = inttoptr i64 %66 to i64*\n  %69 = load i64, i64* %68\n; # (car L)\n  %70 = inttoptr i64 %67 to i64*\n  %71 = load i64, i64* %70\n; # (equal (car Z) (car L))\n  %72 = call i1 @equal(i64 %69, i64 %71)\n; # (not (equal (car Z) (car L)))\n  %73 = icmp eq i1 %72, 0\n  br label %$18\n$18:\n  %74 = phi i64 [%56, %$17], [%63, %$19] ; # Exe\n  %75 = phi i64 [%57, %$17], [%64, %$19] ; # X\n  %76 = phi i64 [%58, %$17], [%65, %$19] ; # Y\n  %77 = phi i64 [%59, %$17], [%66, %$19] ; # Z\n  %78 = phi i64 [%60, %$17], [%67, %$19] ; # L\n  %79 = phi i1 [1, %$17], [%73, %$19] ; # ->\n  br i1 %79, label %$22, label %$20\n$22:\n  %80 = phi i64 [%74, %$18] ; # Exe\n  %81 = phi i64 [%75, %$18] ; # X\n  %82 = phi i64 [%76, %$18] ; # Y\n  %83 = phi i64 [%77, %$18] ; # Z\n  %84 = phi i64 [%78, %$18] ; # L\n  br label %$21\n$20:\n  %85 = phi i64 [%74, %$18] ; # Exe\n  %86 = phi i64 [%75, %$18] ; # X\n  %87 = phi i64 [%76, %$18] ; # Y\n  %88 = phi i64 [%77, %$18] ; # Z\n  %89 = phi i64 [%78, %$18] ; # L\n; # (? (atom (shift Z)) Y)\n; # (shift Z)\n  %90 = inttoptr i64 %88 to i64*\n  %91 = getelementptr i64, i64* %90, i32 1\n  %92 = load i64, i64* %91\n; # (atom (shift Z))\n  %93 = and i64 %92, 15\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$24, label %$23\n$24:\n  %95 = phi i64 [%85, %$20] ; # Exe\n  %96 = phi i64 [%86, %$20] ; # X\n  %97 = phi i64 [%87, %$20] ; # Y\n  %98 = phi i64 [%92, %$20] ; # Z\n  %99 = phi i64 [%89, %$20] ; # L\n  br label %$21\n$23:\n  %100 = phi i64 [%85, %$20] ; # Exe\n  %101 = phi i64 [%86, %$20] ; # X\n  %102 = phi i64 [%87, %$20] ; # Y\n  %103 = phi i64 [%92, %$20] ; # Z\n  %104 = phi i64 [%89, %$20] ; # L\n; # (shift L)\n  %105 = inttoptr i64 %104 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  %107 = load i64, i64* %106\n  br label %$17\n$21:\n  %108 = phi i64 [%80, %$22], [%95, %$24] ; # Exe\n  %109 = phi i64 [%81, %$22], [%96, %$24] ; # X\n  %110 = phi i64 [%82, %$22], [%97, %$24] ; # Y\n  %111 = phi i64 [%83, %$22], [%98, %$24] ; # Z\n  %112 = phi i64 [%84, %$22], [%99, %$24] ; # L\n  %113 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22], [%97, %$24] ; # ->\n; # drop\n  %114 = inttoptr i64 %36 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %117\n  br label %$7\n$10:\n  %118 = phi i64 [%25, %$8] ; # Exe\n  %119 = phi i64 [%26, %$8] ; # X\n  %120 = phi i64 [%27, %$8] ; # Y\n; # (xCnt Exe Y)\n  %121 = call i64 @xCnt(i64 %118, i64 %120)\n; # (=0 (xCnt Exe Y))\n  %122 = icmp eq i64 %121, 0\n  br i1 %122, label %$26, label %$25\n$26:\n  %123 = phi i64 [%118, %$10] ; # Exe\n  %124 = phi i64 [%119, %$10] ; # X\n  %125 = phi i64 [%120, %$10] ; # Y\n  br label %$7\n$25:\n  %126 = phi i64 [%118, %$10] ; # Exe\n  %127 = phi i64 [%119, %$10] ; # X\n  %128 = phi i64 [%120, %$10] ; # Y\n; # (let (N @ L (eval (car X))) (cond ((atom L) L) ((and (lt0 N) (le0...\n; # (car X)\n  %129 = inttoptr i64 %127 to i64*\n  %130 = load i64, i64* %129\n; # (eval (car X))\n  %131 = and i64 %130, 6\n  %132 = icmp ne i64 %131, 0\n  br i1 %132, label %$29, label %$28\n$29:\n  %133 = phi i64 [%130, %$25] ; # X\n  br label %$27\n$28:\n  %134 = phi i64 [%130, %$25] ; # X\n  %135 = and i64 %134, 8\n  %136 = icmp ne i64 %135, 0\n  br i1 %136, label %$31, label %$30\n$31:\n  %137 = phi i64 [%134, %$28] ; # X\n  %138 = inttoptr i64 %137 to i64*\n  %139 = load i64, i64* %138\n  br label %$27\n$30:\n  %140 = phi i64 [%134, %$28] ; # X\n  %141 = call i64 @evList(i64 %140)\n  br label %$27\n$27:\n  %142 = phi i64 [%133, %$29], [%137, %$31], [%140, %$30] ; # X\n  %143 = phi i64 [%133, %$29], [%139, %$31], [%141, %$30] ; # ->\n; # (cond ((atom L) L) ((and (lt0 N) (le0 (inc 'N (length L)))) $Nil)...\n; # (atom L)\n  %144 = and i64 %143, 15\n  %145 = icmp ne i64 %144, 0\n  br i1 %145, label %$34, label %$33\n$34:\n  %146 = phi i64 [%126, %$27] ; # Exe\n  %147 = phi i64 [%127, %$27] ; # X\n  %148 = phi i64 [%128, %$27] ; # Y\n  %149 = phi i64 [%121, %$27] ; # N\n  %150 = phi i64 [%143, %$27] ; # L\n  br label %$32\n$33:\n  %151 = phi i64 [%126, %$27] ; # Exe\n  %152 = phi i64 [%127, %$27] ; # X\n  %153 = phi i64 [%128, %$27] ; # Y\n  %154 = phi i64 [%121, %$27] ; # N\n  %155 = phi i64 [%143, %$27] ; # L\n; # (and (lt0 N) (le0 (inc 'N (length L))))\n; # (lt0 N)\n  %156 = icmp slt i64 %154, 0\n  br i1 %156, label %$36, label %$35\n$36:\n  %157 = phi i64 [%151, %$33] ; # Exe\n  %158 = phi i64 [%152, %$33] ; # X\n  %159 = phi i64 [%153, %$33] ; # Y\n  %160 = phi i64 [%154, %$33] ; # N\n  %161 = phi i64 [%155, %$33] ; # L\n; # (length L)\n  br label %$37\n$37:\n  %162 = phi i64 [%161, %$36], [%171, %$38] ; # X\n  %163 = phi i64 [0, %$36], [%168, %$38] ; # N\n  %164 = and i64 %162, 15\n  %165 = icmp eq i64 %164, 0\n  br i1 %165, label %$38, label %$39\n$38:\n  %166 = phi i64 [%162, %$37] ; # X\n  %167 = phi i64 [%163, %$37] ; # N\n  %168 = add i64 %167, 1\n  %169 = inttoptr i64 %166 to i64*\n  %170 = getelementptr i64, i64* %169, i32 1\n  %171 = load i64, i64* %170\n  br label %$37\n$39:\n  %172 = phi i64 [%162, %$37] ; # X\n  %173 = phi i64 [%163, %$37] ; # N\n; # (inc 'N (length L))\n  %174 = add i64 %160, %173\n; # (le0 (inc 'N (length L)))\n  %175 = icmp sle i64 %174, 0\n  br label %$35\n$35:\n  %176 = phi i64 [%151, %$33], [%157, %$39] ; # Exe\n  %177 = phi i64 [%152, %$33], [%158, %$39] ; # X\n  %178 = phi i64 [%153, %$33], [%159, %$39] ; # Y\n  %179 = phi i64 [%154, %$33], [%174, %$39] ; # N\n  %180 = phi i64 [%155, %$33], [%161, %$39] ; # L\n  %181 = phi i1 [0, %$33], [%175, %$39] ; # ->\n  br i1 %181, label %$41, label %$40\n$41:\n  %182 = phi i64 [%176, %$35] ; # Exe\n  %183 = phi i64 [%177, %$35] ; # X\n  %184 = phi i64 [%178, %$35] ; # Y\n  %185 = phi i64 [%179, %$35] ; # N\n  %186 = phi i64 [%180, %$35] ; # L\n  br label %$32\n$40:\n  %187 = phi i64 [%176, %$35] ; # Exe\n  %188 = phi i64 [%177, %$35] ; # X\n  %189 = phi i64 [%178, %$35] ; # Y\n  %190 = phi i64 [%179, %$35] ; # N\n  %191 = phi i64 [%180, %$35] ; # L\n; # (save L (let (Z (cons (car L) $Nil) R (save Z)) (while (and (dec ...\n  %192 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %193 = load i64, i64* %192\n  %194 = alloca i64, i64 2, align 16\n  %195 = ptrtoint i64* %194 to i64\n  %196 = inttoptr i64 %195 to i64*\n  store i64 %191, i64* %196\n  %197 = add i64 %195, 8\n  %198 = inttoptr i64 %197 to i64*\n  store i64 %193, i64* %198\n  %199 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %195, i64* %199\n; # (let (Z (cons (car L) $Nil) R (save Z)) (while (and (dec 'N) (pai...\n; # (car L)\n  %200 = inttoptr i64 %191 to i64*\n  %201 = load i64, i64* %200\n; # (cons (car L) $Nil)\n  %202 = call i64 @cons(i64 %201, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Z)\n  %203 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %204 = load i64, i64* %203\n  %205 = alloca i64, i64 2, align 16\n  %206 = ptrtoint i64* %205 to i64\n  %207 = inttoptr i64 %206 to i64*\n  store i64 %202, i64* %207\n  %208 = add i64 %206, 8\n  %209 = inttoptr i64 %208 to i64*\n  store i64 %204, i64* %209\n  %210 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %206, i64* %210\n; # (while (and (dec 'N) (pair (shift L))) (setq Z (set 2 Z (cons (ca...\n  br label %$42\n$42:\n  %211 = phi i64 [%187, %$40], [%240, %$45] ; # Exe\n  %212 = phi i64 [%188, %$40], [%241, %$45] ; # X\n  %213 = phi i64 [%189, %$40], [%242, %$45] ; # Y\n  %214 = phi i64 [%190, %$40], [%243, %$45] ; # N\n  %215 = phi i64 [%191, %$40], [%244, %$45] ; # L\n  %216 = phi i64 [%202, %$40], [%249, %$45] ; # Z\n  %217 = phi i64 [%202, %$40], [%246, %$45] ; # R\n; # (and (dec 'N) (pair (shift L)))\n; # (dec 'N)\n  %218 = sub i64 %214, 1\n  %219 = icmp ne i64 %218, 0\n  br i1 %219, label %$44, label %$43\n$44:\n  %220 = phi i64 [%211, %$42] ; # Exe\n  %221 = phi i64 [%212, %$42] ; # X\n  %222 = phi i64 [%213, %$42] ; # Y\n  %223 = phi i64 [%218, %$42] ; # N\n  %224 = phi i64 [%215, %$42] ; # L\n  %225 = phi i64 [%216, %$42] ; # Z\n  %226 = phi i64 [%217, %$42] ; # R\n; # (shift L)\n  %227 = inttoptr i64 %224 to i64*\n  %228 = getelementptr i64, i64* %227, i32 1\n  %229 = load i64, i64* %228\n; # (pair (shift L))\n  %230 = and i64 %229, 15\n  %231 = icmp eq i64 %230, 0\n  br label %$43\n$43:\n  %232 = phi i64 [%211, %$42], [%220, %$44] ; # Exe\n  %233 = phi i64 [%212, %$42], [%221, %$44] ; # X\n  %234 = phi i64 [%213, %$42], [%222, %$44] ; # Y\n  %235 = phi i64 [%218, %$42], [%223, %$44] ; # N\n  %236 = phi i64 [%215, %$42], [%229, %$44] ; # L\n  %237 = phi i64 [%216, %$42], [%225, %$44] ; # Z\n  %238 = phi i64 [%217, %$42], [%226, %$44] ; # R\n  %239 = phi i1 [0, %$42], [%231, %$44] ; # ->\n  br i1 %239, label %$45, label %$46\n$45:\n  %240 = phi i64 [%232, %$43] ; # Exe\n  %241 = phi i64 [%233, %$43] ; # X\n  %242 = phi i64 [%234, %$43] ; # Y\n  %243 = phi i64 [%235, %$43] ; # N\n  %244 = phi i64 [%236, %$43] ; # L\n  %245 = phi i64 [%237, %$43] ; # Z\n  %246 = phi i64 [%238, %$43] ; # R\n; # (set 2 Z (cons (car L) $Nil))\n; # (car L)\n  %247 = inttoptr i64 %244 to i64*\n  %248 = load i64, i64* %247\n; # (cons (car L) $Nil)\n  %249 = call i64 @cons(i64 %248, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %250 = inttoptr i64 %245 to i64*\n  %251 = getelementptr i64, i64* %250, i32 1\n  store i64 %249, i64* %251\n  br label %$42\n$46:\n  %252 = phi i64 [%232, %$43] ; # Exe\n  %253 = phi i64 [%233, %$43] ; # X\n  %254 = phi i64 [%234, %$43] ; # Y\n  %255 = phi i64 [%235, %$43] ; # N\n  %256 = phi i64 [%236, %$43] ; # L\n  %257 = phi i64 [%237, %$43] ; # Z\n  %258 = phi i64 [%238, %$43] ; # R\n; # drop\n  %259 = inttoptr i64 %195 to i64*\n  %260 = getelementptr i64, i64* %259, i32 1\n  %261 = load i64, i64* %260\n  %262 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %261, i64* %262\n  br label %$32\n$32:\n  %263 = phi i64 [%146, %$34], [%182, %$41], [%252, %$46] ; # Exe\n  %264 = phi i64 [%147, %$34], [%183, %$41], [%253, %$46] ; # X\n  %265 = phi i64 [%148, %$34], [%184, %$41], [%254, %$46] ; # Y\n  %266 = phi i64 [%149, %$34], [%185, %$41], [%255, %$46] ; # N\n  %267 = phi i64 [%150, %$34], [%186, %$41], [%256, %$46] ; # L\n  %268 = phi i64 [%150, %$34], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$41], [%258, %$46] ; # ->\n  br label %$7\n$7:\n  %269 = phi i64 [%22, %$9], [%108, %$21], [%123, %$26], [%263, %$32] ; # Exe\n  %270 = phi i64 [%23, %$9], [%109, %$21], [%124, %$26], [%264, %$32] ; # X\n  %271 = phi i64 [%24, %$9], [%110, %$21], [%125, %$26], [%265, %$32] ; # Y\n  %272 = phi i64 [%24, %$9], [%113, %$21], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$26], [%268, %$32] ; # ->\n  ret i64 %272\n}\n\ndefine i64 @_Tail(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((nil? Y) Y) ((pair Y) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((nil? Y) Y) ((pair Y) (save Y (let L (eval (car X)) (loop ...\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$9, label %$8\n$9:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # Y\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i64 [%20, %$2] ; # Y\n; # (pair Y)\n  %28 = and i64 %27, 15\n  %29 = icmp eq i64 %28, 0\n  br i1 %29, label %$11, label %$10\n$11:\n  %30 = phi i64 [%25, %$8] ; # Exe\n  %31 = phi i64 [%26, %$8] ; # X\n  %32 = phi i64 [%27, %$8] ; # Y\n; # (save Y (let L (eval (car X)) (loop (? (atom L) $Nil) (? (equal L...\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %34 = load i64, i64* %33\n  %35 = alloca i64, i64 2, align 16\n  %36 = ptrtoint i64* %35 to i64\n  %37 = inttoptr i64 %36 to i64*\n  store i64 %32, i64* %37\n  %38 = add i64 %36, 8\n  %39 = inttoptr i64 %38 to i64*\n  store i64 %34, i64* %39\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %36, i64* %40\n; # (let L (eval (car X)) (loop (? (atom L) $Nil) (? (equal L Y) Y) (...\n; # (car X)\n  %41 = inttoptr i64 %31 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$14, label %$13\n$14:\n  %45 = phi i64 [%42, %$11] ; # X\n  br label %$12\n$13:\n  %46 = phi i64 [%42, %$11] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$16, label %$15\n$16:\n  %49 = phi i64 [%46, %$13] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$12\n$15:\n  %52 = phi i64 [%46, %$13] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$12\n$12:\n  %54 = phi i64 [%45, %$14], [%49, %$16], [%52, %$15] ; # X\n  %55 = phi i64 [%45, %$14], [%51, %$16], [%53, %$15] ; # ->\n; # (loop (? (atom L) $Nil) (? (equal L Y) Y) (? (atom (shift L)) $Ni...\n  br label %$17\n$17:\n  %56 = phi i64 [%30, %$12], [%88, %$23] ; # Exe\n  %57 = phi i64 [%31, %$12], [%89, %$23] ; # X\n  %58 = phi i64 [%32, %$12], [%90, %$23] ; # Y\n  %59 = phi i64 [%55, %$12], [%91, %$23] ; # L\n; # (? (atom L) $Nil)\n; # (atom L)\n  %60 = and i64 %59, 15\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$20, label %$18\n$20:\n  %62 = phi i64 [%56, %$17] ; # Exe\n  %63 = phi i64 [%57, %$17] ; # X\n  %64 = phi i64 [%58, %$17] ; # Y\n  %65 = phi i64 [%59, %$17] ; # L\n  br label %$19\n$18:\n  %66 = phi i64 [%56, %$17] ; # Exe\n  %67 = phi i64 [%57, %$17] ; # X\n  %68 = phi i64 [%58, %$17] ; # Y\n  %69 = phi i64 [%59, %$17] ; # L\n; # (? (equal L Y) Y)\n; # (equal L Y)\n  %70 = call i1 @equal(i64 %69, i64 %68)\n  br i1 %70, label %$22, label %$21\n$22:\n  %71 = phi i64 [%66, %$18] ; # Exe\n  %72 = phi i64 [%67, %$18] ; # X\n  %73 = phi i64 [%68, %$18] ; # Y\n  %74 = phi i64 [%69, %$18] ; # L\n  br label %$19\n$21:\n  %75 = phi i64 [%66, %$18] ; # Exe\n  %76 = phi i64 [%67, %$18] ; # X\n  %77 = phi i64 [%68, %$18] ; # Y\n  %78 = phi i64 [%69, %$18] ; # L\n; # (? (atom (shift L)) $Nil)\n; # (shift L)\n  %79 = inttoptr i64 %78 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n; # (atom (shift L))\n  %82 = and i64 %81, 15\n  %83 = icmp ne i64 %82, 0\n  br i1 %83, label %$24, label %$23\n$24:\n  %84 = phi i64 [%75, %$21] ; # Exe\n  %85 = phi i64 [%76, %$21] ; # X\n  %86 = phi i64 [%77, %$21] ; # Y\n  %87 = phi i64 [%81, %$21] ; # L\n  br label %$19\n$23:\n  %88 = phi i64 [%75, %$21] ; # Exe\n  %89 = phi i64 [%76, %$21] ; # X\n  %90 = phi i64 [%77, %$21] ; # Y\n  %91 = phi i64 [%81, %$21] ; # L\n  br label %$17\n$19:\n  %92 = phi i64 [%62, %$20], [%71, %$22], [%84, %$24] ; # Exe\n  %93 = phi i64 [%63, %$20], [%72, %$22], [%85, %$24] ; # X\n  %94 = phi i64 [%64, %$20], [%73, %$22], [%86, %$24] ; # Y\n  %95 = phi i64 [%65, %$20], [%74, %$22], [%87, %$24] ; # L\n  %96 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$20], [%73, %$22], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$24] ; # ->\n; # drop\n  %97 = inttoptr i64 %36 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  %99 = load i64, i64* %98\n  %100 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %99, i64* %100\n  br label %$7\n$10:\n  %101 = phi i64 [%25, %$8] ; # Exe\n  %102 = phi i64 [%26, %$8] ; # X\n  %103 = phi i64 [%27, %$8] ; # Y\n; # (xCnt Exe Y)\n  %104 = call i64 @xCnt(i64 %101, i64 %103)\n; # (=0 (xCnt Exe Y))\n  %105 = icmp eq i64 %104, 0\n  br i1 %105, label %$26, label %$25\n$26:\n  %106 = phi i64 [%101, %$10] ; # Exe\n  %107 = phi i64 [%102, %$10] ; # X\n  %108 = phi i64 [%103, %$10] ; # Y\n  br label %$7\n$25:\n  %109 = phi i64 [%101, %$10] ; # Exe\n  %110 = phi i64 [%102, %$10] ; # X\n  %111 = phi i64 [%103, %$10] ; # Y\n; # (let (N @ L (eval (car X))) (cond ((atom L) L) ((lt0 N) (loop (sh...\n; # (car X)\n  %112 = inttoptr i64 %110 to i64*\n  %113 = load i64, i64* %112\n; # (eval (car X))\n  %114 = and i64 %113, 6\n  %115 = icmp ne i64 %114, 0\n  br i1 %115, label %$29, label %$28\n$29:\n  %116 = phi i64 [%113, %$25] ; # X\n  br label %$27\n$28:\n  %117 = phi i64 [%113, %$25] ; # X\n  %118 = and i64 %117, 8\n  %119 = icmp ne i64 %118, 0\n  br i1 %119, label %$31, label %$30\n$31:\n  %120 = phi i64 [%117, %$28] ; # X\n  %121 = inttoptr i64 %120 to i64*\n  %122 = load i64, i64* %121\n  br label %$27\n$30:\n  %123 = phi i64 [%117, %$28] ; # X\n  %124 = call i64 @evList(i64 %123)\n  br label %$27\n$27:\n  %125 = phi i64 [%116, %$29], [%120, %$31], [%123, %$30] ; # X\n  %126 = phi i64 [%116, %$29], [%122, %$31], [%124, %$30] ; # ->\n; # (cond ((atom L) L) ((lt0 N) (loop (shift L) (? (=0 (inc 'N)) L)))...\n; # (atom L)\n  %127 = and i64 %126, 15\n  %128 = icmp ne i64 %127, 0\n  br i1 %128, label %$34, label %$33\n$34:\n  %129 = phi i64 [%109, %$27] ; # Exe\n  %130 = phi i64 [%110, %$27] ; # X\n  %131 = phi i64 [%111, %$27] ; # Y\n  %132 = phi i64 [%104, %$27] ; # N\n  %133 = phi i64 [%126, %$27] ; # L\n  br label %$32\n$33:\n  %134 = phi i64 [%109, %$27] ; # Exe\n  %135 = phi i64 [%110, %$27] ; # X\n  %136 = phi i64 [%111, %$27] ; # Y\n  %137 = phi i64 [%104, %$27] ; # N\n  %138 = phi i64 [%126, %$27] ; # L\n; # (lt0 N)\n  %139 = icmp slt i64 %137, 0\n  br i1 %139, label %$36, label %$35\n$36:\n  %140 = phi i64 [%134, %$33] ; # Exe\n  %141 = phi i64 [%135, %$33] ; # X\n  %142 = phi i64 [%136, %$33] ; # Y\n  %143 = phi i64 [%137, %$33] ; # N\n  %144 = phi i64 [%138, %$33] ; # L\n; # (loop (shift L) (? (=0 (inc 'N)) L))\n  br label %$37\n$37:\n  %145 = phi i64 [%140, %$36], [%160, %$38] ; # Exe\n  %146 = phi i64 [%141, %$36], [%161, %$38] ; # X\n  %147 = phi i64 [%142, %$36], [%162, %$38] ; # Y\n  %148 = phi i64 [%143, %$36], [%163, %$38] ; # N\n  %149 = phi i64 [%144, %$36], [%164, %$38] ; # L\n; # (shift L)\n  %150 = inttoptr i64 %149 to i64*\n  %151 = getelementptr i64, i64* %150, i32 1\n  %152 = load i64, i64* %151\n; # (? (=0 (inc 'N)) L)\n; # (inc 'N)\n  %153 = add i64 %148, 1\n; # (=0 (inc 'N))\n  %154 = icmp eq i64 %153, 0\n  br i1 %154, label %$40, label %$38\n$40:\n  %155 = phi i64 [%145, %$37] ; # Exe\n  %156 = phi i64 [%146, %$37] ; # X\n  %157 = phi i64 [%147, %$37] ; # Y\n  %158 = phi i64 [%153, %$37] ; # N\n  %159 = phi i64 [%152, %$37] ; # L\n  br label %$39\n$38:\n  %160 = phi i64 [%145, %$37] ; # Exe\n  %161 = phi i64 [%146, %$37] ; # X\n  %162 = phi i64 [%147, %$37] ; # Y\n  %163 = phi i64 [%153, %$37] ; # N\n  %164 = phi i64 [%152, %$37] ; # L\n  br label %$37\n$39:\n  %165 = phi i64 [%155, %$40] ; # Exe\n  %166 = phi i64 [%156, %$40] ; # X\n  %167 = phi i64 [%157, %$40] ; # Y\n  %168 = phi i64 [%158, %$40] ; # N\n  %169 = phi i64 [%159, %$40] ; # L\n  %170 = phi i64 [%159, %$40] ; # ->\n  br label %$32\n$35:\n  %171 = phi i64 [%134, %$33] ; # Exe\n  %172 = phi i64 [%135, %$33] ; # X\n  %173 = phi i64 [%136, %$33] ; # Y\n  %174 = phi i64 [%137, %$33] ; # N\n  %175 = phi i64 [%138, %$33] ; # L\n; # (let Z L (loop (? (=0 (dec 'N))) (? (atom (shift Z)))) (while (pa...\n; # (loop (? (=0 (dec 'N))) (? (atom (shift Z))))\n  br label %$41\n$41:\n  %176 = phi i64 [%171, %$35], [%195, %$44] ; # Exe\n  %177 = phi i64 [%172, %$35], [%196, %$44] ; # X\n  %178 = phi i64 [%173, %$35], [%197, %$44] ; # Y\n  %179 = phi i64 [%174, %$35], [%198, %$44] ; # N\n  %180 = phi i64 [%175, %$35], [%199, %$44] ; # L\n  %181 = phi i64 [%175, %$35], [%200, %$44] ; # Z\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %182 = sub i64 %179, 1\n; # (=0 (dec 'N))\n  %183 = icmp eq i64 %182, 0\n  br i1 %183, label %$43, label %$42\n$42:\n  %184 = phi i64 [%176, %$41] ; # Exe\n  %185 = phi i64 [%177, %$41] ; # X\n  %186 = phi i64 [%178, %$41] ; # Y\n  %187 = phi i64 [%182, %$41] ; # N\n  %188 = phi i64 [%180, %$41] ; # L\n  %189 = phi i64 [%181, %$41] ; # Z\n; # (? (atom (shift Z)))\n; # (shift Z)\n  %190 = inttoptr i64 %189 to i64*\n  %191 = getelementptr i64, i64* %190, i32 1\n  %192 = load i64, i64* %191\n; # (atom (shift Z))\n  %193 = and i64 %192, 15\n  %194 = icmp ne i64 %193, 0\n  br i1 %194, label %$43, label %$44\n$44:\n  %195 = phi i64 [%184, %$42] ; # Exe\n  %196 = phi i64 [%185, %$42] ; # X\n  %197 = phi i64 [%186, %$42] ; # Y\n  %198 = phi i64 [%187, %$42] ; # N\n  %199 = phi i64 [%188, %$42] ; # L\n  %200 = phi i64 [%192, %$42] ; # Z\n  br label %$41\n$43:\n  %201 = phi i64 [%176, %$41], [%184, %$42] ; # Exe\n  %202 = phi i64 [%177, %$41], [%185, %$42] ; # X\n  %203 = phi i64 [%178, %$41], [%186, %$42] ; # Y\n  %204 = phi i64 [%182, %$41], [%187, %$42] ; # N\n  %205 = phi i64 [%180, %$41], [%188, %$42] ; # L\n  %206 = phi i64 [%181, %$41], [%192, %$42] ; # Z\n  %207 = phi i64 [0, %$41], [0, %$42] ; # ->\n; # (while (pair (shift Z)) (shift L))\n  br label %$45\n$45:\n  %208 = phi i64 [%201, %$43], [%219, %$46] ; # Exe\n  %209 = phi i64 [%202, %$43], [%220, %$46] ; # X\n  %210 = phi i64 [%203, %$43], [%221, %$46] ; # Y\n  %211 = phi i64 [%204, %$43], [%222, %$46] ; # N\n  %212 = phi i64 [%205, %$43], [%227, %$46] ; # L\n  %213 = phi i64 [%206, %$43], [%224, %$46] ; # Z\n; # (shift Z)\n  %214 = inttoptr i64 %213 to i64*\n  %215 = getelementptr i64, i64* %214, i32 1\n  %216 = load i64, i64* %215\n; # (pair (shift Z))\n  %217 = and i64 %216, 15\n  %218 = icmp eq i64 %217, 0\n  br i1 %218, label %$46, label %$47\n$46:\n  %219 = phi i64 [%208, %$45] ; # Exe\n  %220 = phi i64 [%209, %$45] ; # X\n  %221 = phi i64 [%210, %$45] ; # Y\n  %222 = phi i64 [%211, %$45] ; # N\n  %223 = phi i64 [%212, %$45] ; # L\n  %224 = phi i64 [%216, %$45] ; # Z\n; # (shift L)\n  %225 = inttoptr i64 %223 to i64*\n  %226 = getelementptr i64, i64* %225, i32 1\n  %227 = load i64, i64* %226\n  br label %$45\n$47:\n  %228 = phi i64 [%208, %$45] ; # Exe\n  %229 = phi i64 [%209, %$45] ; # X\n  %230 = phi i64 [%210, %$45] ; # Y\n  %231 = phi i64 [%211, %$45] ; # N\n  %232 = phi i64 [%212, %$45] ; # L\n  %233 = phi i64 [%216, %$45] ; # Z\n  br label %$32\n$32:\n  %234 = phi i64 [%129, %$34], [%165, %$39], [%228, %$47] ; # Exe\n  %235 = phi i64 [%130, %$34], [%166, %$39], [%229, %$47] ; # X\n  %236 = phi i64 [%131, %$34], [%167, %$39], [%230, %$47] ; # Y\n  %237 = phi i64 [%132, %$34], [%168, %$39], [%231, %$47] ; # N\n  %238 = phi i64 [%133, %$34], [%169, %$39], [%232, %$47] ; # L\n  %239 = phi i64 [%133, %$34], [%170, %$39], [%232, %$47] ; # ->\n  br label %$7\n$7:\n  %240 = phi i64 [%22, %$9], [%92, %$19], [%106, %$26], [%234, %$32] ; # Exe\n  %241 = phi i64 [%23, %$9], [%93, %$19], [%107, %$26], [%235, %$32] ; # X\n  %242 = phi i64 [%24, %$9], [%94, %$19], [%108, %$26], [%236, %$32] ; # Y\n  %243 = phi i64 [%24, %$9], [%96, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$26], [%239, %$32] ; # ->\n  ret i64 %243\n}\n\ndefine i64 @_Stem(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) L (save (eval (++ X)))) (if (atom X) L (let (R ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (if (atom X) L (let (R L N 1 A T) (loop (setq A (link (push (eval...\n; # (atom X)\n  %29 = and i64 %6, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i64 [%0, %$2] ; # Exe\n  %32 = phi i64 [%6, %$2] ; # X\n  %33 = phi i64 [%20, %$2] ; # L\n  br label %$9\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%6, %$2] ; # X\n  %36 = phi i64 [%20, %$2] ; # L\n; # (let (R L N 1 A T) (loop (setq A (link (push (eval (car X)) NIL))...\n; # (loop (setq A (link (push (eval (car X)) NIL))) (? (atom (shift X...\n  br label %$10\n$10:\n  %37 = phi i64 [%34, %$8], [%70, %$16] ; # Exe\n  %38 = phi i64 [%35, %$8], [%71, %$16] ; # X\n  %39 = phi i64 [%36, %$8], [%72, %$16] ; # L\n  %40 = phi i64 [%36, %$8], [%73, %$16] ; # R\n  %41 = phi i64 [1, %$8], [%76, %$16] ; # N\n; # (car X)\n  %42 = inttoptr i64 %38 to i64*\n  %43 = load i64, i64* %42\n; # (eval (car X))\n  %44 = and i64 %43, 6\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$13, label %$12\n$13:\n  %46 = phi i64 [%43, %$10] ; # X\n  br label %$11\n$12:\n  %47 = phi i64 [%43, %$10] ; # X\n  %48 = and i64 %47, 8\n  %49 = icmp ne i64 %48, 0\n  br i1 %49, label %$15, label %$14\n$15:\n  %50 = phi i64 [%47, %$12] ; # X\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n  br label %$11\n$14:\n  %53 = phi i64 [%47, %$12] ; # X\n  %54 = call i64 @evList(i64 %53)\n  br label %$11\n$11:\n  %55 = phi i64 [%46, %$13], [%50, %$15], [%53, %$14] ; # X\n  %56 = phi i64 [%46, %$13], [%52, %$15], [%54, %$14] ; # ->\n; # (push (eval (car X)) NIL)\n  %57 = alloca i64, i64 2, align 16\n  %58 = ptrtoint i64* %57 to i64\n  %59 = inttoptr i64 %58 to i64*\n  store i64 %56, i64* %59\n; # (link (push (eval (car X)) NIL))\n  %60 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %61 = load i64, i64* %60\n  %62 = inttoptr i64 %58 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  store i64 %61, i64* %63\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %58, i64* %64\n; # (? (atom (shift X)))\n; # (shift X)\n  %65 = inttoptr i64 %38 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n; # (atom (shift X))\n  %68 = and i64 %67, 15\n  %69 = icmp ne i64 %68, 0\n  br i1 %69, label %$17, label %$16\n$16:\n  %70 = phi i64 [%37, %$11] ; # Exe\n  %71 = phi i64 [%67, %$11] ; # X\n  %72 = phi i64 [%39, %$11] ; # L\n  %73 = phi i64 [%40, %$11] ; # R\n  %74 = phi i64 [%41, %$11] ; # N\n  %75 = phi i64 [%58, %$11] ; # A\n; # (inc 'N)\n  %76 = add i64 %74, 1\n  br label %$10\n$17:\n  %77 = phi i64 [%37, %$11] ; # Exe\n  %78 = phi i64 [%67, %$11] ; # X\n  %79 = phi i64 [%39, %$11] ; # L\n  %80 = phi i64 [%40, %$11] ; # R\n  %81 = phi i64 [%41, %$11] ; # N\n  %82 = phi i64 [%58, %$11] ; # A\n  %83 = phi i64 [0, %$11] ; # ->\n; # (loop (let (P A I N) (loop (? (equal (car L) (car P)) (setq R (cd...\n  br label %$18\n$18:\n  %84 = phi i64 [%77, %$17], [%149, %$24] ; # Exe\n  %85 = phi i64 [%78, %$17], [%150, %$24] ; # X\n  %86 = phi i64 [%79, %$17], [%151, %$24] ; # L\n  %87 = phi i64 [%80, %$17], [%152, %$24] ; # R\n  %88 = phi i64 [%81, %$17], [%153, %$24] ; # N\n  %89 = phi i64 [%82, %$17], [%154, %$24] ; # A\n; # (let (P A I N) (loop (? (equal (car L) (car P)) (setq R (cdr L)))...\n; # (loop (? (equal (car L) (car P)) (setq R (cdr L))) (? (=0 (dec 'I...\n  br label %$19\n$19:\n  %90 = phi i64 [%84, %$18], [%124, %$23] ; # Exe\n  %91 = phi i64 [%85, %$18], [%125, %$23] ; # X\n  %92 = phi i64 [%86, %$18], [%126, %$23] ; # L\n  %93 = phi i64 [%87, %$18], [%127, %$23] ; # R\n  %94 = phi i64 [%88, %$18], [%128, %$23] ; # N\n  %95 = phi i64 [%89, %$18], [%129, %$23] ; # A\n  %96 = phi i64 [%89, %$18], [%134, %$23] ; # P\n  %97 = phi i64 [%88, %$18], [%131, %$23] ; # I\n; # (? (equal (car L) (car P)) (setq R (cdr L)))\n; # (car L)\n  %98 = inttoptr i64 %92 to i64*\n  %99 = load i64, i64* %98\n; # (car P)\n  %100 = inttoptr i64 %96 to i64*\n  %101 = load i64, i64* %100\n; # (equal (car L) (car P))\n  %102 = call i1 @equal(i64 %99, i64 %101)\n  br i1 %102, label %$22, label %$20\n$22:\n  %103 = phi i64 [%90, %$19] ; # Exe\n  %104 = phi i64 [%91, %$19] ; # X\n  %105 = phi i64 [%92, %$19] ; # L\n  %106 = phi i64 [%93, %$19] ; # R\n  %107 = phi i64 [%94, %$19] ; # N\n  %108 = phi i64 [%95, %$19] ; # A\n  %109 = phi i64 [%96, %$19] ; # P\n  %110 = phi i64 [%97, %$19] ; # I\n; # (cdr L)\n  %111 = inttoptr i64 %105 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  %113 = load i64, i64* %112\n  br label %$21\n$20:\n  %114 = phi i64 [%90, %$19] ; # Exe\n  %115 = phi i64 [%91, %$19] ; # X\n  %116 = phi i64 [%92, %$19] ; # L\n  %117 = phi i64 [%93, %$19] ; # R\n  %118 = phi i64 [%94, %$19] ; # N\n  %119 = phi i64 [%95, %$19] ; # A\n  %120 = phi i64 [%96, %$19] ; # P\n  %121 = phi i64 [%97, %$19] ; # I\n; # (? (=0 (dec 'I)))\n; # (dec 'I)\n  %122 = sub i64 %121, 1\n; # (=0 (dec 'I))\n  %123 = icmp eq i64 %122, 0\n  br i1 %123, label %$21, label %$23\n$23:\n  %124 = phi i64 [%114, %$20] ; # Exe\n  %125 = phi i64 [%115, %$20] ; # X\n  %126 = phi i64 [%116, %$20] ; # L\n  %127 = phi i64 [%117, %$20] ; # R\n  %128 = phi i64 [%118, %$20] ; # N\n  %129 = phi i64 [%119, %$20] ; # A\n  %130 = phi i64 [%120, %$20] ; # P\n  %131 = phi i64 [%122, %$20] ; # I\n; # (shift P)\n  %132 = inttoptr i64 %130 to i64*\n  %133 = getelementptr i64, i64* %132, i32 1\n  %134 = load i64, i64* %133\n  br label %$19\n$21:\n  %135 = phi i64 [%103, %$22], [%114, %$20] ; # Exe\n  %136 = phi i64 [%104, %$22], [%115, %$20] ; # X\n  %137 = phi i64 [%105, %$22], [%116, %$20] ; # L\n  %138 = phi i64 [%113, %$22], [%117, %$20] ; # R\n  %139 = phi i64 [%107, %$22], [%118, %$20] ; # N\n  %140 = phi i64 [%108, %$22], [%119, %$20] ; # A\n  %141 = phi i64 [%109, %$22], [%120, %$20] ; # P\n  %142 = phi i64 [%110, %$22], [%122, %$20] ; # I\n  %143 = phi i64 [%113, %$22], [0, %$20] ; # ->\n; # (? (atom (shift L)))\n; # (shift L)\n  %144 = inttoptr i64 %137 to i64*\n  %145 = getelementptr i64, i64* %144, i32 1\n  %146 = load i64, i64* %145\n; # (atom (shift L))\n  %147 = and i64 %146, 15\n  %148 = icmp ne i64 %147, 0\n  br i1 %148, label %$25, label %$24\n$24:\n  %149 = phi i64 [%135, %$21] ; # Exe\n  %150 = phi i64 [%136, %$21] ; # X\n  %151 = phi i64 [%146, %$21] ; # L\n  %152 = phi i64 [%138, %$21] ; # R\n  %153 = phi i64 [%139, %$21] ; # N\n  %154 = phi i64 [%140, %$21] ; # A\n  br label %$18\n$25:\n  %155 = phi i64 [%135, %$21] ; # Exe\n  %156 = phi i64 [%136, %$21] ; # X\n  %157 = phi i64 [%146, %$21] ; # L\n  %158 = phi i64 [%138, %$21] ; # R\n  %159 = phi i64 [%139, %$21] ; # N\n  %160 = phi i64 [%140, %$21] ; # A\n  %161 = phi i64 [0, %$21] ; # ->\n  br label %$9\n$9:\n  %162 = phi i64 [%31, %$7], [%155, %$25] ; # Exe\n  %163 = phi i64 [%32, %$7], [%156, %$25] ; # X\n  %164 = phi i64 [%33, %$7], [%157, %$25] ; # L\n  %165 = phi i64 [%33, %$7], [%158, %$25] ; # ->\n; # (drop *Safe)\n  %166 = inttoptr i64 %24 to i64*\n  %167 = getelementptr i64, i64* %166, i32 1\n  %168 = load i64, i64* %167\n  %169 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %168, i64* %169\n  ret i64 %165\n}\n\ndefine i64 @_Fin(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (while (pair X) (shift X)) X)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (while (pair X) (shift X))\n  br label %$7\n$7:\n  %19 = phi i64 [%0, %$2], [%23, %$8] ; # Exe\n  %20 = phi i64 [%18, %$2], [%27, %$8] ; # X\n; # (pair X)\n  %21 = and i64 %20, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$8, label %$9\n$8:\n  %23 = phi i64 [%19, %$7] ; # Exe\n  %24 = phi i64 [%20, %$7] ; # X\n; # (shift X)\n  %25 = inttoptr i64 %24 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n  br label %$7\n$9:\n  %28 = phi i64 [%19, %$7] ; # Exe\n  %29 = phi i64 [%20, %$7] ; # X\n  ret i64 %29\n}\n\ndefine i64 @_Last(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (if (atom X) X (while (pair (cdr X)) (se...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (if (atom X) X (while (pair (cdr X)) (setq X @)) (car X))\n; # (atom X)\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%18, %$2] ; # X\n; # (while (pair (cdr X)) (setq X @))\n  br label %$10\n$10:\n  %25 = phi i64 [%23, %$8], [%32, %$11] ; # Exe\n  %26 = phi i64 [%24, %$8], [%29, %$11] ; # X\n; # (cdr X)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n; # (pair (cdr X))\n  %30 = and i64 %29, 15\n  %31 = icmp eq i64 %30, 0\n  br i1 %31, label %$11, label %$12\n$11:\n  %32 = phi i64 [%25, %$10] ; # Exe\n  %33 = phi i64 [%26, %$10] ; # X\n  br label %$10\n$12:\n  %34 = phi i64 [%25, %$10] ; # Exe\n  %35 = phi i64 [%26, %$10] ; # X\n; # (car X)\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n  br label %$9\n$9:\n  %38 = phi i64 [%21, %$7], [%34, %$12] ; # Exe\n  %39 = phi i64 [%22, %$7], [%35, %$12] ; # X\n  %40 = phi i64 [%22, %$7], [%37, %$12] ; # ->\n  ret i64 %40\n}\n\ndefine i64 @_Eq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (? (<> Y (eval (car X))) $Nil))\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%60, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%61, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%62, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (? (<> Y (eval (car X))) $Nil)\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (<> Y (eval (car X)))\n  %56 = icmp ne i64 %40, %55\n  br i1 %56, label %$17, label %$16\n$17:\n  %57 = phi i64 [%38, %$11] ; # Exe\n  %58 = phi i64 [%39, %$11] ; # X\n  %59 = phi i64 [%40, %$11] ; # Y\n  br label %$9\n$16:\n  %60 = phi i64 [%38, %$11] ; # Exe\n  %61 = phi i64 [%39, %$11] ; # X\n  %62 = phi i64 [%40, %$11] ; # Y\n  br label %$7\n$9:\n  %63 = phi i64 [%35, %$10], [%57, %$17] ; # Exe\n  %64 = phi i64 [%36, %$10], [%58, %$17] ; # X\n  %65 = phi i64 [%37, %$10], [%59, %$17] ; # Y\n  %66 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %67 = inttoptr i64 %22 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %69, i64* %70\n  ret i64 %66\n}\n\ndefine i64 @_Neq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $Nil) (? (<> Y (eval (car X))) $T))\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%60, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%61, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%62, %$16] ; # Y\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (? (<> Y (eval (car X))) $T)\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (<> Y (eval (car X)))\n  %56 = icmp ne i64 %40, %55\n  br i1 %56, label %$17, label %$16\n$17:\n  %57 = phi i64 [%38, %$11] ; # Exe\n  %58 = phi i64 [%39, %$11] ; # X\n  %59 = phi i64 [%40, %$11] ; # Y\n  br label %$9\n$16:\n  %60 = phi i64 [%38, %$11] ; # Exe\n  %61 = phi i64 [%39, %$11] ; # X\n  %62 = phi i64 [%40, %$11] ; # Y\n  br label %$7\n$9:\n  %63 = phi i64 [%35, %$10], [%57, %$17] ; # Exe\n  %64 = phi i64 [%36, %$10], [%58, %$17] ; # X\n  %65 = phi i64 [%37, %$10], [%59, %$17] ; # Y\n  %66 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %67 = inttoptr i64 %22 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n  %70 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %69, i64* %70\n  ret i64 %66\n}\n\ndefine i64 @_Equal(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (? (not (equal Y (eval (car X)))) $...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%61, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%62, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%63, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (? (not (equal Y (eval (car X)))) $Nil)\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (equal Y (eval (car X)))\n  %56 = call i1 @equal(i64 %40, i64 %55)\n; # (not (equal Y (eval (car X))))\n  %57 = icmp eq i1 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  br label %$9\n$16:\n  %61 = phi i64 [%38, %$11] ; # Exe\n  %62 = phi i64 [%39, %$11] ; # X\n  %63 = phi i64 [%40, %$11] ; # Y\n  br label %$7\n$9:\n  %64 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %65 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %66 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %67 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %68 = inttoptr i64 %22 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n  %71 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %70, i64* %71\n  ret i64 %67\n}\n\ndefine i64 @_Nequal(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $Nil) (? (not (equal Y (eval (car X))))...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%61, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%62, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%63, %$16] ; # Y\n; # (? (atom (shift X)) $Nil)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (? (not (equal Y (eval (car X)))) $T)\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (equal Y (eval (car X)))\n  %56 = call i1 @equal(i64 %40, i64 %55)\n; # (not (equal Y (eval (car X))))\n  %57 = icmp eq i1 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  br label %$9\n$16:\n  %61 = phi i64 [%38, %$11] ; # Exe\n  %62 = phi i64 [%39, %$11] ; # X\n  %63 = phi i64 [%40, %$11] ; # Y\n  br label %$7\n$9:\n  %64 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %65 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %66 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %67 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %68 = inttoptr i64 %22 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n  %71 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %70, i64* %71\n  ret i64 %67\n}\n\ndefine i64 @_Eq0(i64) align 8 {\n$1:\n; # (if (== (eval (cadr Exe)) ZERO) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (== (eval (cadr Exe)) ZERO)\n  %19 = icmp eq i64 %18, 2\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_Eq1(i64) align 8 {\n$1:\n; # (if (== (eval (cadr Exe)) ONE) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (== (eval (cadr Exe)) ONE)\n  %19 = icmp eq i64 %18, 18\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_EqT(i64) align 8 {\n$1:\n; # (if (t? (eval (cadr Exe))) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (t? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_Neq0(i64) align 8 {\n$1:\n; # (if (== (eval (cadr Exe)) ZERO) $Nil $T)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (== (eval (cadr Exe)) ZERO)\n  %19 = icmp eq i64 %18, 2\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_NeqT(i64) align 8 {\n$1:\n; # (if (t? (eval (cadr Exe))) $Nil $T)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (t? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %19, label %$7, label %$8\n$7:\n  %20 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %22 = phi i64 [%20, %$7], [%21, %$8] ; # Exe\n  %23 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$8] ; # ->\n  ret i64 %23\n}\n\ndefine i64 @_Lt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (let Z (eval (car X)) (? (ge0 (comp...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%62, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%63, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%65, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (let Z (eval (car X)) (? (ge0 (compare Y Z)) $Nil) (setq Y (safe ...\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (? (ge0 (compare Y Z)) $Nil)\n; # (compare Y Z)\n  %56 = call i64 @compare(i64 %40, i64 %55)\n; # (ge0 (compare Y Z))\n  %57 = icmp sge i64 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  %61 = phi i64 [%55, %$11] ; # Z\n  br label %$9\n$16:\n  %62 = phi i64 [%38, %$11] ; # Exe\n  %63 = phi i64 [%39, %$11] ; # X\n  %64 = phi i64 [%40, %$11] ; # Y\n  %65 = phi i64 [%55, %$11] ; # Z\n; # (safe Z)\n  %66 = inttoptr i64 %22 to i64*\n  store i64 %65, i64* %66\n  br label %$7\n$9:\n  %67 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %68 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %69 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %70 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %71 = inttoptr i64 %22 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %74\n  ret i64 %70\n}\n\ndefine i64 @_Le(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (let Z (eval (car X)) (? (gt0 (comp...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%62, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%63, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%65, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (let Z (eval (car X)) (? (gt0 (compare Y Z)) $Nil) (setq Y (safe ...\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (? (gt0 (compare Y Z)) $Nil)\n; # (compare Y Z)\n  %56 = call i64 @compare(i64 %40, i64 %55)\n; # (gt0 (compare Y Z))\n  %57 = icmp sgt i64 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  %61 = phi i64 [%55, %$11] ; # Z\n  br label %$9\n$16:\n  %62 = phi i64 [%38, %$11] ; # Exe\n  %63 = phi i64 [%39, %$11] ; # X\n  %64 = phi i64 [%40, %$11] ; # Y\n  %65 = phi i64 [%55, %$11] ; # Z\n; # (safe Z)\n  %66 = inttoptr i64 %22 to i64*\n  store i64 %65, i64* %66\n  br label %$7\n$9:\n  %67 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %68 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %69 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %70 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %71 = inttoptr i64 %22 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %74\n  ret i64 %70\n}\n\ndefine i64 @_Gt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (let Z (eval (car X)) (? (le0 (comp...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%62, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%63, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%65, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (let Z (eval (car X)) (? (le0 (compare Y Z)) $Nil) (setq Y (safe ...\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (? (le0 (compare Y Z)) $Nil)\n; # (compare Y Z)\n  %56 = call i64 @compare(i64 %40, i64 %55)\n; # (le0 (compare Y Z))\n  %57 = icmp sle i64 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  %61 = phi i64 [%55, %$11] ; # Z\n  br label %$9\n$16:\n  %62 = phi i64 [%38, %$11] ; # Exe\n  %63 = phi i64 [%39, %$11] ; # X\n  %64 = phi i64 [%40, %$11] ; # Y\n  %65 = phi i64 [%55, %$11] ; # Z\n; # (safe Z)\n  %66 = inttoptr i64 %22 to i64*\n  store i64 %65, i64* %66\n  br label %$7\n$9:\n  %67 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %68 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %69 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %70 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %71 = inttoptr i64 %22 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %74\n  ret i64 %70\n}\n\ndefine i64 @_Ge(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (car X)))) (loop (? (atom (shift ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (car X)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (loop (? (atom (shift X)) $T) (let Z (eval (car X)) (? (lt0 (comp...\n  br label %$7\n$7:\n  %27 = phi i64 [%0, %$2], [%62, %$16] ; # Exe\n  %28 = phi i64 [%3, %$2], [%63, %$16] ; # X\n  %29 = phi i64 [%18, %$2], [%65, %$16] ; # Y\n; # (? (atom (shift X)) $T)\n; # (shift X)\n  %30 = inttoptr i64 %28 to i64*\n  %31 = getelementptr i64, i64* %30, i32 1\n  %32 = load i64, i64* %31\n; # (atom (shift X))\n  %33 = and i64 %32, 15\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$10, label %$8\n$10:\n  %35 = phi i64 [%27, %$7] ; # Exe\n  %36 = phi i64 [%32, %$7] ; # X\n  %37 = phi i64 [%29, %$7] ; # Y\n  br label %$9\n$8:\n  %38 = phi i64 [%27, %$7] ; # Exe\n  %39 = phi i64 [%32, %$7] ; # X\n  %40 = phi i64 [%29, %$7] ; # Y\n; # (let Z (eval (car X)) (? (lt0 (compare Y Z)) $Nil) (setq Y (safe ...\n; # (car X)\n  %41 = inttoptr i64 %39 to i64*\n  %42 = load i64, i64* %41\n; # (eval (car X))\n  %43 = and i64 %42, 6\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%42, %$8] ; # X\n  br label %$11\n$12:\n  %46 = phi i64 [%42, %$8] ; # X\n  %47 = and i64 %46, 8\n  %48 = icmp ne i64 %47, 0\n  br i1 %48, label %$15, label %$14\n$15:\n  %49 = phi i64 [%46, %$12] ; # X\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$11\n$14:\n  %52 = phi i64 [%46, %$12] ; # X\n  %53 = call i64 @evList(i64 %52)\n  br label %$11\n$11:\n  %54 = phi i64 [%45, %$13], [%49, %$15], [%52, %$14] ; # X\n  %55 = phi i64 [%45, %$13], [%51, %$15], [%53, %$14] ; # ->\n; # (? (lt0 (compare Y Z)) $Nil)\n; # (compare Y Z)\n  %56 = call i64 @compare(i64 %40, i64 %55)\n; # (lt0 (compare Y Z))\n  %57 = icmp slt i64 %56, 0\n  br i1 %57, label %$17, label %$16\n$17:\n  %58 = phi i64 [%38, %$11] ; # Exe\n  %59 = phi i64 [%39, %$11] ; # X\n  %60 = phi i64 [%40, %$11] ; # Y\n  %61 = phi i64 [%55, %$11] ; # Z\n  br label %$9\n$16:\n  %62 = phi i64 [%38, %$11] ; # Exe\n  %63 = phi i64 [%39, %$11] ; # X\n  %64 = phi i64 [%40, %$11] ; # Y\n  %65 = phi i64 [%55, %$11] ; # Z\n; # (safe Z)\n  %66 = inttoptr i64 %22 to i64*\n  store i64 %65, i64* %66\n  br label %$7\n$9:\n  %67 = phi i64 [%35, %$10], [%58, %$17] ; # Exe\n  %68 = phi i64 [%36, %$10], [%59, %$17] ; # X\n  %69 = phi i64 [%37, %$10], [%60, %$17] ; # Y\n  %70 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n; # (drop *Safe)\n  %71 = inttoptr i64 %22 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n  %74 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %73, i64* %74\n  ret i64 %70\n}\n\ndefine i64 @_Max(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((pair X) (let R (save Y...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((pair X) (let R (save Y) (loop (let Z (eval (car X)) (when...\n; # (pair X)\n  %21 = and i64 %6, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (let R (save Y) (loop (let Z (eval (car X)) (when (gt0 (compare Z...\n; # (save Y)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (loop (let Z (eval (car X)) (when (gt0 (compare Z R)) (setq R (sa...\n  br label %$10\n$10:\n  %34 = phi i64 [%23, %$9], [%75, %$18] ; # Exe\n  %35 = phi i64 [%24, %$9], [%76, %$18] ; # X\n  %36 = phi i64 [%25, %$9], [%77, %$18] ; # Y\n  %37 = phi i64 [%25, %$9], [%78, %$18] ; # R\n; # (let Z (eval (car X)) (when (gt0 (compare Z R)) (setq R (safe Z))...\n; # (car X)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = load i64, i64* %38\n; # (eval (car X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$13, label %$12\n$13:\n  %42 = phi i64 [%39, %$10] ; # X\n  br label %$11\n$12:\n  %43 = phi i64 [%39, %$10] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$15, label %$14\n$15:\n  %46 = phi i64 [%43, %$12] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$11\n$14:\n  %49 = phi i64 [%43, %$12] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$11\n$11:\n  %51 = phi i64 [%42, %$13], [%46, %$15], [%49, %$14] ; # X\n  %52 = phi i64 [%42, %$13], [%48, %$15], [%50, %$14] ; # ->\n; # (when (gt0 (compare Z R)) (setq R (safe Z)))\n; # (compare Z R)\n  %53 = call i64 @compare(i64 %52, i64 %37)\n; # (gt0 (compare Z R))\n  %54 = icmp sgt i64 %53, 0\n  br i1 %54, label %$16, label %$17\n$16:\n  %55 = phi i64 [%34, %$11] ; # Exe\n  %56 = phi i64 [%35, %$11] ; # X\n  %57 = phi i64 [%36, %$11] ; # Y\n  %58 = phi i64 [%37, %$11] ; # R\n  %59 = phi i64 [%52, %$11] ; # Z\n; # (safe Z)\n  %60 = inttoptr i64 %29 to i64*\n  store i64 %59, i64* %60\n  br label %$17\n$17:\n  %61 = phi i64 [%34, %$11], [%55, %$16] ; # Exe\n  %62 = phi i64 [%35, %$11], [%56, %$16] ; # X\n  %63 = phi i64 [%36, %$11], [%57, %$16] ; # Y\n  %64 = phi i64 [%37, %$11], [%59, %$16] ; # R\n  %65 = phi i64 [%52, %$11], [%59, %$16] ; # Z\n; # (? (atom (shift X)) R)\n; # (shift X)\n  %66 = inttoptr i64 %62 to i64*\n  %67 = getelementptr i64, i64* %66, i32 1\n  %68 = load i64, i64* %67\n; # (atom (shift X))\n  %69 = and i64 %68, 15\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$18\n$20:\n  %71 = phi i64 [%61, %$17] ; # Exe\n  %72 = phi i64 [%68, %$17] ; # X\n  %73 = phi i64 [%63, %$17] ; # Y\n  %74 = phi i64 [%64, %$17] ; # R\n  br label %$19\n$18:\n  %75 = phi i64 [%61, %$17] ; # Exe\n  %76 = phi i64 [%68, %$17] ; # X\n  %77 = phi i64 [%63, %$17] ; # Y\n  %78 = phi i64 [%64, %$17] ; # R\n  br label %$10\n$19:\n  %79 = phi i64 [%71, %$20] ; # Exe\n  %80 = phi i64 [%72, %$20] ; # X\n  %81 = phi i64 [%73, %$20] ; # Y\n  %82 = phi i64 [%74, %$20] ; # R\n  %83 = phi i64 [%74, %$20] ; # ->\n; # (drop *Safe)\n  %84 = inttoptr i64 %29 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %87\n  br label %$7\n$8:\n  %88 = phi i64 [%0, %$2] ; # Exe\n  %89 = phi i64 [%6, %$2] ; # X\n  %90 = phi i64 [%20, %$2] ; # Y\n; # (pair Y)\n  %91 = and i64 %90, 15\n  %92 = icmp eq i64 %91, 0\n  br i1 %92, label %$22, label %$21\n$22:\n  %93 = phi i64 [%88, %$8] ; # Exe\n  %94 = phi i64 [%89, %$8] ; # X\n  %95 = phi i64 [%90, %$8] ; # Y\n; # (let R (car Y) (while (pair (shift Y)) (when (gt0 (compare (car Y...\n; # (car Y)\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (while (pair (shift Y)) (when (gt0 (compare (car Y) R)) (setq R (...\n  br label %$23\n$23:\n  %98 = phi i64 [%93, %$22], [%121, %$27] ; # Exe\n  %99 = phi i64 [%94, %$22], [%122, %$27] ; # X\n  %100 = phi i64 [%95, %$22], [%123, %$27] ; # Y\n  %101 = phi i64 [%97, %$22], [%124, %$27] ; # R\n; # (shift Y)\n  %102 = inttoptr i64 %100 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n; # (pair (shift Y))\n  %105 = and i64 %104, 15\n  %106 = icmp eq i64 %105, 0\n  br i1 %106, label %$24, label %$25\n$24:\n  %107 = phi i64 [%98, %$23] ; # Exe\n  %108 = phi i64 [%99, %$23] ; # X\n  %109 = phi i64 [%104, %$23] ; # Y\n  %110 = phi i64 [%101, %$23] ; # R\n; # (when (gt0 (compare (car Y) R)) (setq R (car Y)))\n; # (car Y)\n  %111 = inttoptr i64 %109 to i64*\n  %112 = load i64, i64* %111\n; # (compare (car Y) R)\n  %113 = call i64 @compare(i64 %112, i64 %110)\n; # (gt0 (compare (car Y) R))\n  %114 = icmp sgt i64 %113, 0\n  br i1 %114, label %$26, label %$27\n$26:\n  %115 = phi i64 [%107, %$24] ; # Exe\n  %116 = phi i64 [%108, %$24] ; # X\n  %117 = phi i64 [%109, %$24] ; # Y\n  %118 = phi i64 [%110, %$24] ; # R\n; # (car Y)\n  %119 = inttoptr i64 %117 to i64*\n  %120 = load i64, i64* %119\n  br label %$27\n$27:\n  %121 = phi i64 [%107, %$24], [%115, %$26] ; # Exe\n  %122 = phi i64 [%108, %$24], [%116, %$26] ; # X\n  %123 = phi i64 [%109, %$24], [%117, %$26] ; # Y\n  %124 = phi i64 [%110, %$24], [%120, %$26] ; # R\n  br label %$23\n$25:\n  %125 = phi i64 [%98, %$23] ; # Exe\n  %126 = phi i64 [%99, %$23] ; # X\n  %127 = phi i64 [%104, %$23] ; # Y\n  %128 = phi i64 [%101, %$23] ; # R\n  br label %$7\n$21:\n  %129 = phi i64 [%88, %$8] ; # Exe\n  %130 = phi i64 [%89, %$8] ; # X\n  %131 = phi i64 [%90, %$8] ; # Y\n  br label %$7\n$7:\n  %132 = phi i64 [%79, %$19], [%125, %$25], [%129, %$21] ; # Exe\n  %133 = phi i64 [%80, %$19], [%126, %$25], [%130, %$21] ; # X\n  %134 = phi i64 [%81, %$19], [%127, %$25], [%131, %$21] ; # Y\n  %135 = phi i64 [%83, %$19], [%128, %$25], [%131, %$21] ; # ->\n  ret i64 %135\n}\n\ndefine i64 @_Min(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((pair X) (let R (save Y...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((pair X) (let R (save Y) (loop (let Z (eval (car X)) (when...\n; # (pair X)\n  %21 = and i64 %6, 15\n  %22 = icmp eq i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (let R (save Y) (loop (let Z (eval (car X)) (when (lt0 (compare Z...\n; # (save Y)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (loop (let Z (eval (car X)) (when (lt0 (compare Z R)) (setq R (sa...\n  br label %$10\n$10:\n  %34 = phi i64 [%23, %$9], [%75, %$18] ; # Exe\n  %35 = phi i64 [%24, %$9], [%76, %$18] ; # X\n  %36 = phi i64 [%25, %$9], [%77, %$18] ; # Y\n  %37 = phi i64 [%25, %$9], [%78, %$18] ; # R\n; # (let Z (eval (car X)) (when (lt0 (compare Z R)) (setq R (safe Z))...\n; # (car X)\n  %38 = inttoptr i64 %35 to i64*\n  %39 = load i64, i64* %38\n; # (eval (car X))\n  %40 = and i64 %39, 6\n  %41 = icmp ne i64 %40, 0\n  br i1 %41, label %$13, label %$12\n$13:\n  %42 = phi i64 [%39, %$10] ; # X\n  br label %$11\n$12:\n  %43 = phi i64 [%39, %$10] ; # X\n  %44 = and i64 %43, 8\n  %45 = icmp ne i64 %44, 0\n  br i1 %45, label %$15, label %$14\n$15:\n  %46 = phi i64 [%43, %$12] ; # X\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n  br label %$11\n$14:\n  %49 = phi i64 [%43, %$12] ; # X\n  %50 = call i64 @evList(i64 %49)\n  br label %$11\n$11:\n  %51 = phi i64 [%42, %$13], [%46, %$15], [%49, %$14] ; # X\n  %52 = phi i64 [%42, %$13], [%48, %$15], [%50, %$14] ; # ->\n; # (when (lt0 (compare Z R)) (setq R (safe Z)))\n; # (compare Z R)\n  %53 = call i64 @compare(i64 %52, i64 %37)\n; # (lt0 (compare Z R))\n  %54 = icmp slt i64 %53, 0\n  br i1 %54, label %$16, label %$17\n$16:\n  %55 = phi i64 [%34, %$11] ; # Exe\n  %56 = phi i64 [%35, %$11] ; # X\n  %57 = phi i64 [%36, %$11] ; # Y\n  %58 = phi i64 [%37, %$11] ; # R\n  %59 = phi i64 [%52, %$11] ; # Z\n; # (safe Z)\n  %60 = inttoptr i64 %29 to i64*\n  store i64 %59, i64* %60\n  br label %$17\n$17:\n  %61 = phi i64 [%34, %$11], [%55, %$16] ; # Exe\n  %62 = phi i64 [%35, %$11], [%56, %$16] ; # X\n  %63 = phi i64 [%36, %$11], [%57, %$16] ; # Y\n  %64 = phi i64 [%37, %$11], [%59, %$16] ; # R\n  %65 = phi i64 [%52, %$11], [%59, %$16] ; # Z\n; # (? (atom (shift X)) R)\n; # (shift X)\n  %66 = inttoptr i64 %62 to i64*\n  %67 = getelementptr i64, i64* %66, i32 1\n  %68 = load i64, i64* %67\n; # (atom (shift X))\n  %69 = and i64 %68, 15\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$20, label %$18\n$20:\n  %71 = phi i64 [%61, %$17] ; # Exe\n  %72 = phi i64 [%68, %$17] ; # X\n  %73 = phi i64 [%63, %$17] ; # Y\n  %74 = phi i64 [%64, %$17] ; # R\n  br label %$19\n$18:\n  %75 = phi i64 [%61, %$17] ; # Exe\n  %76 = phi i64 [%68, %$17] ; # X\n  %77 = phi i64 [%63, %$17] ; # Y\n  %78 = phi i64 [%64, %$17] ; # R\n  br label %$10\n$19:\n  %79 = phi i64 [%71, %$20] ; # Exe\n  %80 = phi i64 [%72, %$20] ; # X\n  %81 = phi i64 [%73, %$20] ; # Y\n  %82 = phi i64 [%74, %$20] ; # R\n  %83 = phi i64 [%74, %$20] ; # ->\n; # (drop *Safe)\n  %84 = inttoptr i64 %29 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %87\n  br label %$7\n$8:\n  %88 = phi i64 [%0, %$2] ; # Exe\n  %89 = phi i64 [%6, %$2] ; # X\n  %90 = phi i64 [%20, %$2] ; # Y\n; # (pair Y)\n  %91 = and i64 %90, 15\n  %92 = icmp eq i64 %91, 0\n  br i1 %92, label %$22, label %$21\n$22:\n  %93 = phi i64 [%88, %$8] ; # Exe\n  %94 = phi i64 [%89, %$8] ; # X\n  %95 = phi i64 [%90, %$8] ; # Y\n; # (let R (car Y) (while (pair (shift Y)) (when (lt0 (compare (car Y...\n; # (car Y)\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (while (pair (shift Y)) (when (lt0 (compare (car Y) R)) (setq R (...\n  br label %$23\n$23:\n  %98 = phi i64 [%93, %$22], [%121, %$27] ; # Exe\n  %99 = phi i64 [%94, %$22], [%122, %$27] ; # X\n  %100 = phi i64 [%95, %$22], [%123, %$27] ; # Y\n  %101 = phi i64 [%97, %$22], [%124, %$27] ; # R\n; # (shift Y)\n  %102 = inttoptr i64 %100 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n; # (pair (shift Y))\n  %105 = and i64 %104, 15\n  %106 = icmp eq i64 %105, 0\n  br i1 %106, label %$24, label %$25\n$24:\n  %107 = phi i64 [%98, %$23] ; # Exe\n  %108 = phi i64 [%99, %$23] ; # X\n  %109 = phi i64 [%104, %$23] ; # Y\n  %110 = phi i64 [%101, %$23] ; # R\n; # (when (lt0 (compare (car Y) R)) (setq R (car Y)))\n; # (car Y)\n  %111 = inttoptr i64 %109 to i64*\n  %112 = load i64, i64* %111\n; # (compare (car Y) R)\n  %113 = call i64 @compare(i64 %112, i64 %110)\n; # (lt0 (compare (car Y) R))\n  %114 = icmp slt i64 %113, 0\n  br i1 %114, label %$26, label %$27\n$26:\n  %115 = phi i64 [%107, %$24] ; # Exe\n  %116 = phi i64 [%108, %$24] ; # X\n  %117 = phi i64 [%109, %$24] ; # Y\n  %118 = phi i64 [%110, %$24] ; # R\n; # (car Y)\n  %119 = inttoptr i64 %117 to i64*\n  %120 = load i64, i64* %119\n  br label %$27\n$27:\n  %121 = phi i64 [%107, %$24], [%115, %$26] ; # Exe\n  %122 = phi i64 [%108, %$24], [%116, %$26] ; # X\n  %123 = phi i64 [%109, %$24], [%117, %$26] ; # Y\n  %124 = phi i64 [%110, %$24], [%120, %$26] ; # R\n  br label %$23\n$25:\n  %125 = phi i64 [%98, %$23] ; # Exe\n  %126 = phi i64 [%99, %$23] ; # X\n  %127 = phi i64 [%104, %$23] ; # Y\n  %128 = phi i64 [%101, %$23] ; # R\n  br label %$7\n$21:\n  %129 = phi i64 [%88, %$8] ; # Exe\n  %130 = phi i64 [%89, %$8] ; # X\n  %131 = phi i64 [%90, %$8] ; # Y\n  br label %$7\n$7:\n  %132 = phi i64 [%79, %$19], [%125, %$25], [%129, %$21] ; # Exe\n  %133 = phi i64 [%80, %$19], [%126, %$25], [%130, %$21] ; # X\n  %134 = phi i64 [%81, %$19], [%127, %$25], [%131, %$21] ; # Y\n  %135 = phi i64 [%83, %$19], [%128, %$25], [%131, %$21] ; # ->\n  ret i64 %135\n}\n\ndefine i64 @_Atom(i64) align 8 {\n$1:\n; # (if (atom (eval (cadr Exe))) $T $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (atom (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %23 = phi i64 [%21, %$7], [%22, %$8] ; # Exe\n  %24 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_Pair(i64) align 8 {\n$1:\n; # (if (pair (eval (cadr Exe))) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (pair (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %23 = phi i64 [%21, %$7], [%22, %$8] ; # Exe\n  %24 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_CircQ(i64) align 8 {\n$1:\n; # (if (circ (eval (cadr Exe))) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (circ (eval (cadr Exe)))\n  %19 = call i64 @circ(i64 %18)\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %23 = phi i64 [%21, %$7], [%22, %$8] ; # Exe\n  %24 = phi i64 [%19, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_LstQ(i64) align 8 {\n$1:\n; # (if (or (pair (eval (cadr Exe))) (nil? @)) $T $Nil)\n; # (or (pair (eval (cadr Exe))) (nil? @))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (pair (eval (cadr Exe)))\n  %19 = and i64 %18, 15\n  %20 = icmp eq i64 %19, 0\n  br i1 %20, label %$2, label %$8\n$8:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (nil? @)\n  %22 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$2\n$2:\n  %23 = phi i64 [%0, %$3], [%21, %$8] ; # Exe\n  %24 = phi i1 [1, %$3], [%22, %$8] ; # ->\n  br i1 %24, label %$9, label %$10\n$9:\n  %25 = phi i64 [%23, %$2] ; # Exe\n  br label %$11\n$10:\n  %26 = phi i64 [%23, %$2] ; # Exe\n  br label %$11\n$11:\n  %27 = phi i64 [%25, %$9], [%26, %$10] ; # Exe\n  %28 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %28\n}\n\ndefine i64 @_NumQ(i64) align 8 {\n$1:\n; # (if (num? (eval (cadr Exe))) @ $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (num? (eval (cadr Exe)))\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %23 = phi i64 [%21, %$7], [%22, %$8] ; # Exe\n  %24 = phi i64 [%18, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %24\n}\n\ndefine i64 @_SymQ(i64) align 8 {\n$1:\n; # (if (symb? (eval (cadr Exe))) $T $Nil)\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (symb? (eval (cadr Exe)))\n  %19 = xor i64 %18, 8\n  %20 = and i64 %19, 14\n  %21 = icmp eq i64 %20, 0\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  br label %$9\n$9:\n  %24 = phi i64 [%22, %$7], [%23, %$8] ; # Exe\n  %25 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  ret i64 %25\n}\n\ndefine i64 @_FlgQ(i64) align 8 {\n$1:\n; # (if (or (t? (eval (cadr Exe))) (nil? @)) $T $Nil)\n; # (or (t? (eval (cadr Exe))) (nil? @))\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (t? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %19, label %$2, label %$8\n$8:\n  %20 = phi i64 [%0, %$3] ; # Exe\n; # (nil? @)\n  %21 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$2\n$2:\n  %22 = phi i64 [%0, %$3], [%20, %$8] ; # Exe\n  %23 = phi i1 [1, %$3], [%21, %$8] ; # ->\n  br i1 %23, label %$9, label %$10\n$9:\n  %24 = phi i64 [%22, %$2] ; # Exe\n  br label %$11\n$10:\n  %25 = phi i64 [%22, %$2] ; # Exe\n  br label %$11\n$11:\n  %26 = phi i64 [%24, %$9], [%25, %$10] ; # Exe\n  %27 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$10] ; # ->\n  ret i64 %27\n}\n\ndefine i64 @_Member(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) (if (equal Y Z) Z $Nil)) (? (equal Y (car Z)) Z...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%100, %$21] ; # Exe\n  %45 = phi i64 [%6, %$7], [%101, %$21] ; # X\n  %46 = phi i64 [%20, %$7], [%102, %$21] ; # Y\n  %47 = phi i64 [%43, %$7], [%103, %$21] ; # Z\n  %48 = phi i64 [%43, %$7], [%104, %$21] ; # H\n; # (? (atom Z) (if (equal Y Z) Z $Nil))\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n; # (if (equal Y Z) Z $Nil)\n; # (equal Y Z)\n  %56 = call i1 @equal(i64 %53, i64 %54)\n  br i1 %56, label %$16, label %$17\n$16:\n  %57 = phi i64 [%51, %$15] ; # Exe\n  %58 = phi i64 [%52, %$15] ; # X\n  %59 = phi i64 [%53, %$15] ; # Y\n  %60 = phi i64 [%54, %$15] ; # Z\n  %61 = phi i64 [%55, %$15] ; # H\n  br label %$18\n$17:\n  %62 = phi i64 [%51, %$15] ; # Exe\n  %63 = phi i64 [%52, %$15] ; # X\n  %64 = phi i64 [%53, %$15] ; # Y\n  %65 = phi i64 [%54, %$15] ; # Z\n  %66 = phi i64 [%55, %$15] ; # H\n  br label %$18\n$18:\n  %67 = phi i64 [%57, %$16], [%62, %$17] ; # Exe\n  %68 = phi i64 [%58, %$16], [%63, %$17] ; # X\n  %69 = phi i64 [%59, %$16], [%64, %$17] ; # Y\n  %70 = phi i64 [%60, %$16], [%65, %$17] ; # Z\n  %71 = phi i64 [%61, %$16], [%66, %$17] ; # H\n  %72 = phi i64 [%60, %$16], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n  br label %$14\n$13:\n  %73 = phi i64 [%44, %$12] ; # Exe\n  %74 = phi i64 [%45, %$12] ; # X\n  %75 = phi i64 [%46, %$12] ; # Y\n  %76 = phi i64 [%47, %$12] ; # Z\n  %77 = phi i64 [%48, %$12] ; # H\n; # (? (equal Y (car Z)) Z)\n; # (car Z)\n  %78 = inttoptr i64 %76 to i64*\n  %79 = load i64, i64* %78\n; # (equal Y (car Z))\n  %80 = call i1 @equal(i64 %75, i64 %79)\n  br i1 %80, label %$20, label %$19\n$20:\n  %81 = phi i64 [%73, %$13] ; # Exe\n  %82 = phi i64 [%74, %$13] ; # X\n  %83 = phi i64 [%75, %$13] ; # Y\n  %84 = phi i64 [%76, %$13] ; # Z\n  %85 = phi i64 [%77, %$13] ; # H\n  br label %$14\n$19:\n  %86 = phi i64 [%73, %$13] ; # Exe\n  %87 = phi i64 [%74, %$13] ; # X\n  %88 = phi i64 [%75, %$13] ; # Y\n  %89 = phi i64 [%76, %$13] ; # Z\n  %90 = phi i64 [%77, %$13] ; # H\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %91 = inttoptr i64 %89 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (== H (shift Z))\n  %94 = icmp eq i64 %90, %93\n  br i1 %94, label %$22, label %$21\n$22:\n  %95 = phi i64 [%86, %$19] ; # Exe\n  %96 = phi i64 [%87, %$19] ; # X\n  %97 = phi i64 [%88, %$19] ; # Y\n  %98 = phi i64 [%93, %$19] ; # Z\n  %99 = phi i64 [%90, %$19] ; # H\n  br label %$14\n$21:\n  %100 = phi i64 [%86, %$19] ; # Exe\n  %101 = phi i64 [%87, %$19] ; # X\n  %102 = phi i64 [%88, %$19] ; # Y\n  %103 = phi i64 [%93, %$19] ; # Z\n  %104 = phi i64 [%90, %$19] ; # H\n  br label %$12\n$14:\n  %105 = phi i64 [%67, %$18], [%81, %$20], [%95, %$22] ; # Exe\n  %106 = phi i64 [%68, %$18], [%82, %$20], [%96, %$22] ; # X\n  %107 = phi i64 [%69, %$18], [%83, %$20], [%97, %$22] ; # Y\n  %108 = phi i64 [%70, %$18], [%84, %$20], [%98, %$22] ; # Z\n  %109 = phi i64 [%71, %$18], [%85, %$20], [%99, %$22] ; # H\n  %110 = phi i64 [%72, %$18], [%84, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22] ; # ->\n; # (drop *Safe)\n  %111 = inttoptr i64 %24 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  %113 = load i64, i64* %112\n  %114 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %113, i64* %114\n  ret i64 %110\n}\n\ndefine i64 @_Memq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) (if (== Y Z) Z $Nil)) (? (== Y (car Z)) Z) (? (...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%100, %$21] ; # Exe\n  %45 = phi i64 [%6, %$7], [%101, %$21] ; # X\n  %46 = phi i64 [%20, %$7], [%102, %$21] ; # Y\n  %47 = phi i64 [%43, %$7], [%103, %$21] ; # Z\n  %48 = phi i64 [%43, %$7], [%104, %$21] ; # H\n; # (? (atom Z) (if (== Y Z) Z $Nil))\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n; # (if (== Y Z) Z $Nil)\n; # (== Y Z)\n  %56 = icmp eq i64 %53, %54\n  br i1 %56, label %$16, label %$17\n$16:\n  %57 = phi i64 [%51, %$15] ; # Exe\n  %58 = phi i64 [%52, %$15] ; # X\n  %59 = phi i64 [%53, %$15] ; # Y\n  %60 = phi i64 [%54, %$15] ; # Z\n  %61 = phi i64 [%55, %$15] ; # H\n  br label %$18\n$17:\n  %62 = phi i64 [%51, %$15] ; # Exe\n  %63 = phi i64 [%52, %$15] ; # X\n  %64 = phi i64 [%53, %$15] ; # Y\n  %65 = phi i64 [%54, %$15] ; # Z\n  %66 = phi i64 [%55, %$15] ; # H\n  br label %$18\n$18:\n  %67 = phi i64 [%57, %$16], [%62, %$17] ; # Exe\n  %68 = phi i64 [%58, %$16], [%63, %$17] ; # X\n  %69 = phi i64 [%59, %$16], [%64, %$17] ; # Y\n  %70 = phi i64 [%60, %$16], [%65, %$17] ; # Z\n  %71 = phi i64 [%61, %$16], [%66, %$17] ; # H\n  %72 = phi i64 [%60, %$16], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17] ; # ->\n  br label %$14\n$13:\n  %73 = phi i64 [%44, %$12] ; # Exe\n  %74 = phi i64 [%45, %$12] ; # X\n  %75 = phi i64 [%46, %$12] ; # Y\n  %76 = phi i64 [%47, %$12] ; # Z\n  %77 = phi i64 [%48, %$12] ; # H\n; # (? (== Y (car Z)) Z)\n; # (car Z)\n  %78 = inttoptr i64 %76 to i64*\n  %79 = load i64, i64* %78\n; # (== Y (car Z))\n  %80 = icmp eq i64 %75, %79\n  br i1 %80, label %$20, label %$19\n$20:\n  %81 = phi i64 [%73, %$13] ; # Exe\n  %82 = phi i64 [%74, %$13] ; # X\n  %83 = phi i64 [%75, %$13] ; # Y\n  %84 = phi i64 [%76, %$13] ; # Z\n  %85 = phi i64 [%77, %$13] ; # H\n  br label %$14\n$19:\n  %86 = phi i64 [%73, %$13] ; # Exe\n  %87 = phi i64 [%74, %$13] ; # X\n  %88 = phi i64 [%75, %$13] ; # Y\n  %89 = phi i64 [%76, %$13] ; # Z\n  %90 = phi i64 [%77, %$13] ; # H\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %91 = inttoptr i64 %89 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (== H (shift Z))\n  %94 = icmp eq i64 %90, %93\n  br i1 %94, label %$22, label %$21\n$22:\n  %95 = phi i64 [%86, %$19] ; # Exe\n  %96 = phi i64 [%87, %$19] ; # X\n  %97 = phi i64 [%88, %$19] ; # Y\n  %98 = phi i64 [%93, %$19] ; # Z\n  %99 = phi i64 [%90, %$19] ; # H\n  br label %$14\n$21:\n  %100 = phi i64 [%86, %$19] ; # Exe\n  %101 = phi i64 [%87, %$19] ; # X\n  %102 = phi i64 [%88, %$19] ; # Y\n  %103 = phi i64 [%93, %$19] ; # Z\n  %104 = phi i64 [%90, %$19] ; # H\n  br label %$12\n$14:\n  %105 = phi i64 [%67, %$18], [%81, %$20], [%95, %$22] ; # Exe\n  %106 = phi i64 [%68, %$18], [%82, %$20], [%96, %$22] ; # X\n  %107 = phi i64 [%69, %$18], [%83, %$20], [%97, %$22] ; # Y\n  %108 = phi i64 [%70, %$18], [%84, %$20], [%98, %$22] ; # Z\n  %109 = phi i64 [%71, %$18], [%85, %$20], [%99, %$22] ; # H\n  %110 = phi i64 [%72, %$18], [%84, %$20], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$22] ; # ->\n; # (drop *Safe)\n  %111 = inttoptr i64 %24 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  %113 = load i64, i64* %112\n  %114 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %113, i64* %114\n  ret i64 %110\n}\n\ndefine i64 @_Mmeq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X))) (while...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (while (pair Y) (let (U (++ Y) V Z) (while (pair V) (when (== U (...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%124, %$22] ; # Exe\n  %45 = phi i64 [%6, %$7], [%125, %$22] ; # X\n  %46 = phi i64 [%20, %$7], [%126, %$22] ; # Y\n  %47 = phi i64 [%43, %$7], [%127, %$22] ; # Z\n; # (pair Y)\n  %48 = and i64 %46, 15\n  %49 = icmp eq i64 %48, 0\n  br i1 %49, label %$13, label %$14\n$13:\n  %50 = phi i64 [%44, %$12] ; # Exe\n  %51 = phi i64 [%45, %$12] ; # X\n  %52 = phi i64 [%46, %$12] ; # Y\n  %53 = phi i64 [%47, %$12] ; # Z\n; # (let (U (++ Y) V Z) (while (pair V) (when (== U (car V)) (ret V))...\n; # (++ Y)\n  %54 = inttoptr i64 %52 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n  %57 = load i64, i64* %54\n; # (while (pair V) (when (== U (car V)) (ret V)) (when (== Z (shift ...\n  br label %$15\n$15:\n  %58 = phi i64 [%50, %$13], [%105, %$21] ; # Exe\n  %59 = phi i64 [%51, %$13], [%106, %$21] ; # X\n  %60 = phi i64 [%56, %$13], [%107, %$21] ; # Y\n  %61 = phi i64 [%53, %$13], [%108, %$21] ; # Z\n  %62 = phi i64 [%57, %$13], [%109, %$21] ; # U\n  %63 = phi i64 [%53, %$13], [%110, %$21] ; # V\n; # (pair V)\n  %64 = and i64 %63, 15\n  %65 = icmp eq i64 %64, 0\n  br i1 %65, label %$16, label %$17\n$16:\n  %66 = phi i64 [%58, %$15] ; # Exe\n  %67 = phi i64 [%59, %$15] ; # X\n  %68 = phi i64 [%60, %$15] ; # Y\n  %69 = phi i64 [%61, %$15] ; # Z\n  %70 = phi i64 [%62, %$15] ; # U\n  %71 = phi i64 [%63, %$15] ; # V\n; # (when (== U (car V)) (ret V))\n; # (car V)\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n; # (== U (car V))\n  %74 = icmp eq i64 %70, %73\n  br i1 %74, label %$18, label %$19\n$18:\n  %75 = phi i64 [%66, %$16] ; # Exe\n  %76 = phi i64 [%67, %$16] ; # X\n  %77 = phi i64 [%68, %$16] ; # Y\n  %78 = phi i64 [%69, %$16] ; # Z\n  %79 = phi i64 [%70, %$16] ; # U\n  %80 = phi i64 [%71, %$16] ; # V\n; # (ret V)\n; # (drop *Safe)\n  %81 = inttoptr i64 %24 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %83, i64* %84\n  ret i64 %80\n$19:\n  %85 = phi i64 [%66, %$16] ; # Exe\n  %86 = phi i64 [%67, %$16] ; # X\n  %87 = phi i64 [%68, %$16] ; # Y\n  %88 = phi i64 [%69, %$16] ; # Z\n  %89 = phi i64 [%70, %$16] ; # U\n  %90 = phi i64 [%71, %$16] ; # V\n; # (when (== Z (shift V)) (ret $Nil))\n; # (shift V)\n  %91 = inttoptr i64 %90 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (== Z (shift V))\n  %94 = icmp eq i64 %88, %93\n  br i1 %94, label %$20, label %$21\n$20:\n  %95 = phi i64 [%85, %$19] ; # Exe\n  %96 = phi i64 [%86, %$19] ; # X\n  %97 = phi i64 [%87, %$19] ; # Y\n  %98 = phi i64 [%88, %$19] ; # Z\n  %99 = phi i64 [%89, %$19] ; # U\n  %100 = phi i64 [%93, %$19] ; # V\n; # (ret $Nil)\n; # (drop *Safe)\n  %101 = inttoptr i64 %24 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %103, i64* %104\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$21:\n  %105 = phi i64 [%85, %$19] ; # Exe\n  %106 = phi i64 [%86, %$19] ; # X\n  %107 = phi i64 [%87, %$19] ; # Y\n  %108 = phi i64 [%88, %$19] ; # Z\n  %109 = phi i64 [%89, %$19] ; # U\n  %110 = phi i64 [%93, %$19] ; # V\n  br label %$15\n$17:\n  %111 = phi i64 [%58, %$15] ; # Exe\n  %112 = phi i64 [%59, %$15] ; # X\n  %113 = phi i64 [%60, %$15] ; # Y\n  %114 = phi i64 [%61, %$15] ; # Z\n  %115 = phi i64 [%62, %$15] ; # U\n  %116 = phi i64 [%63, %$15] ; # V\n; # (? (== U V) V)\n; # (== U V)\n  %117 = icmp eq i64 %115, %116\n  br i1 %117, label %$23, label %$22\n$23:\n  %118 = phi i64 [%111, %$17] ; # Exe\n  %119 = phi i64 [%112, %$17] ; # X\n  %120 = phi i64 [%113, %$17] ; # Y\n  %121 = phi i64 [%114, %$17] ; # Z\n  %122 = phi i64 [%115, %$17] ; # U\n  %123 = phi i64 [%116, %$17] ; # V\n  br label %$14\n$22:\n  %124 = phi i64 [%111, %$17] ; # Exe\n  %125 = phi i64 [%112, %$17] ; # X\n  %126 = phi i64 [%113, %$17] ; # Y\n  %127 = phi i64 [%114, %$17] ; # Z\n  %128 = phi i64 [%115, %$17] ; # U\n  %129 = phi i64 [%116, %$17] ; # V\n  br label %$12\n$14:\n  %130 = phi i64 [%44, %$12], [%118, %$23] ; # Exe\n  %131 = phi i64 [%45, %$12], [%119, %$23] ; # X\n  %132 = phi i64 [%46, %$12], [%120, %$23] ; # Y\n  %133 = phi i64 [%47, %$12], [%121, %$23] ; # Z\n; # (drop *Safe)\n  %134 = inttoptr i64 %24 to i64*\n  %135 = getelementptr i64, i64* %134, i32 1\n  %136 = load i64, i64* %135\n  %137 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %136, i64* %137\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_Sect(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (save (eval (car X))) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (save (eval (car X)))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = alloca i64, i64 2, align 16\n  %47 = ptrtoint i64* %46 to i64\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = add i64 %47, 8\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %51\n; # (push $Nil NIL)\n  %52 = alloca i64, i64 2, align 16\n  %53 = ptrtoint i64* %52 to i64\n  %54 = inttoptr i64 %53 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %54\n; # (link (push $Nil NIL))\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %56 = load i64, i64* %55\n  %57 = inttoptr i64 %53 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  store i64 %56, i64* %58\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %53, i64* %59\n; # (while (pair Y) (let U (++ Y) (when (member U Z) (let V (cons U $...\n  br label %$12\n$12:\n  %60 = phi i64 [%0, %$7], [%136, %$22] ; # Exe\n  %61 = phi i64 [%6, %$7], [%137, %$22] ; # X\n  %62 = phi i64 [%20, %$7], [%138, %$22] ; # Y\n  %63 = phi i64 [%43, %$7], [%139, %$22] ; # Z\n  %64 = phi i64 [0, %$7], [%140, %$22] ; # P\n  %65 = phi i64 [%53, %$7], [%141, %$22] ; # R\n; # (pair Y)\n  %66 = and i64 %62, 15\n  %67 = icmp eq i64 %66, 0\n  br i1 %67, label %$13, label %$14\n$13:\n  %68 = phi i64 [%60, %$12] ; # Exe\n  %69 = phi i64 [%61, %$12] ; # X\n  %70 = phi i64 [%62, %$12] ; # Y\n  %71 = phi i64 [%63, %$12] ; # Z\n  %72 = phi i64 [%64, %$12] ; # P\n  %73 = phi i64 [%65, %$12] ; # R\n; # (let U (++ Y) (when (member U Z) (let V (cons U $Nil) (setq P (if...\n; # (++ Y)\n  %74 = inttoptr i64 %70 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  %77 = load i64, i64* %74\n; # (when (member U Z) (let V (cons U $Nil) (setq P (if P (set 2 P V)...\n; # (member U Z)\n  br label %$15\n$15:\n  %78 = phi i64 [%71, %$13], [%95, %$19] ; # L\n  %79 = phi i64 [%77, %$13], [%92, %$19] ; # X\n  %80 = and i64 %78, 15\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$18, label %$16\n$18:\n  %82 = phi i64 [%78, %$15] ; # L\n  %83 = phi i64 [%79, %$15] ; # X\n  br label %$17\n$16:\n  %84 = phi i64 [%78, %$15] ; # L\n  %85 = phi i64 [%79, %$15] ; # X\n  %86 = inttoptr i64 %84 to i64*\n  %87 = load i64, i64* %86\n  %88 = call i1 @equal(i64 %85, i64 %87)\n  br i1 %88, label %$20, label %$19\n$20:\n  %89 = phi i64 [%84, %$16] ; # L\n  %90 = phi i64 [%85, %$16] ; # X\n  br label %$17\n$19:\n  %91 = phi i64 [%84, %$16] ; # L\n  %92 = phi i64 [%85, %$16] ; # X\n  %93 = inttoptr i64 %91 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  br label %$15\n$17:\n  %96 = phi i64 [%82, %$18], [%89, %$20] ; # L\n  %97 = phi i64 [%83, %$18], [%90, %$20] ; # X\n  %98 = phi i1 [0, %$18], [1, %$20] ; # ->\n  br i1 %98, label %$21, label %$22\n$21:\n  %99 = phi i64 [%68, %$17] ; # Exe\n  %100 = phi i64 [%69, %$17] ; # X\n  %101 = phi i64 [%76, %$17] ; # Y\n  %102 = phi i64 [%71, %$17] ; # Z\n  %103 = phi i64 [%72, %$17] ; # P\n  %104 = phi i64 [%73, %$17] ; # R\n  %105 = phi i64 [%77, %$17] ; # U\n; # (let V (cons U $Nil) (setq P (if P (set 2 P V) (set R V))))\n; # (cons U $Nil)\n  %106 = call i64 @cons(i64 %105, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if P (set 2 P V) (set R V))\n  %107 = icmp ne i64 %103, 0\n  br i1 %107, label %$23, label %$24\n$23:\n  %108 = phi i64 [%99, %$21] ; # Exe\n  %109 = phi i64 [%100, %$21] ; # X\n  %110 = phi i64 [%101, %$21] ; # Y\n  %111 = phi i64 [%102, %$21] ; # Z\n  %112 = phi i64 [%103, %$21] ; # P\n  %113 = phi i64 [%104, %$21] ; # R\n  %114 = phi i64 [%105, %$21] ; # U\n  %115 = phi i64 [%106, %$21] ; # V\n; # (set 2 P V)\n  %116 = inttoptr i64 %112 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  store i64 %115, i64* %117\n  br label %$25\n$24:\n  %118 = phi i64 [%99, %$21] ; # Exe\n  %119 = phi i64 [%100, %$21] ; # X\n  %120 = phi i64 [%101, %$21] ; # Y\n  %121 = phi i64 [%102, %$21] ; # Z\n  %122 = phi i64 [%103, %$21] ; # P\n  %123 = phi i64 [%104, %$21] ; # R\n  %124 = phi i64 [%105, %$21] ; # U\n  %125 = phi i64 [%106, %$21] ; # V\n; # (set R V)\n  %126 = inttoptr i64 %123 to i64*\n  store i64 %125, i64* %126\n  br label %$25\n$25:\n  %127 = phi i64 [%108, %$23], [%118, %$24] ; # Exe\n  %128 = phi i64 [%109, %$23], [%119, %$24] ; # X\n  %129 = phi i64 [%110, %$23], [%120, %$24] ; # Y\n  %130 = phi i64 [%111, %$23], [%121, %$24] ; # Z\n  %131 = phi i64 [%112, %$23], [%122, %$24] ; # P\n  %132 = phi i64 [%113, %$23], [%123, %$24] ; # R\n  %133 = phi i64 [%114, %$23], [%124, %$24] ; # U\n  %134 = phi i64 [%115, %$23], [%125, %$24] ; # V\n  %135 = phi i64 [%115, %$23], [%125, %$24] ; # ->\n  br label %$22\n$22:\n  %136 = phi i64 [%68, %$17], [%127, %$25] ; # Exe\n  %137 = phi i64 [%69, %$17], [%128, %$25] ; # X\n  %138 = phi i64 [%76, %$17], [%129, %$25] ; # Y\n  %139 = phi i64 [%71, %$17], [%130, %$25] ; # Z\n  %140 = phi i64 [%72, %$17], [%135, %$25] ; # P\n  %141 = phi i64 [%73, %$17], [%132, %$25] ; # R\n  %142 = phi i64 [%77, %$17], [%133, %$25] ; # U\n  br label %$12\n$14:\n  %143 = phi i64 [%60, %$12] ; # Exe\n  %144 = phi i64 [%61, %$12] ; # X\n  %145 = phi i64 [%62, %$12] ; # Y\n  %146 = phi i64 [%63, %$12] ; # Z\n  %147 = phi i64 [%64, %$12] ; # P\n  %148 = phi i64 [%65, %$12] ; # R\n; # (val R)\n  %149 = inttoptr i64 %148 to i64*\n  %150 = load i64, i64* %149\n; # (drop *Safe)\n  %151 = inttoptr i64 %24 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  %153 = load i64, i64* %152\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %153, i64* %154\n  ret i64 %150\n}\n\ndefine i64 @_Diff(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (save (eval (car X))) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (save (eval (car X)))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = alloca i64, i64 2, align 16\n  %47 = ptrtoint i64* %46 to i64\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = add i64 %47, 8\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %51\n; # (push $Nil NIL)\n  %52 = alloca i64, i64 2, align 16\n  %53 = ptrtoint i64* %52 to i64\n  %54 = inttoptr i64 %53 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %54\n; # (link (push $Nil NIL))\n  %55 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %56 = load i64, i64* %55\n  %57 = inttoptr i64 %53 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  store i64 %56, i64* %58\n  %59 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %53, i64* %59\n; # (while (pair Y) (let U (++ Y) (unless (member U Z) (let V (cons U...\n  br label %$12\n$12:\n  %60 = phi i64 [%0, %$7], [%136, %$22] ; # Exe\n  %61 = phi i64 [%6, %$7], [%137, %$22] ; # X\n  %62 = phi i64 [%20, %$7], [%138, %$22] ; # Y\n  %63 = phi i64 [%43, %$7], [%139, %$22] ; # Z\n  %64 = phi i64 [0, %$7], [%140, %$22] ; # P\n  %65 = phi i64 [%53, %$7], [%141, %$22] ; # R\n; # (pair Y)\n  %66 = and i64 %62, 15\n  %67 = icmp eq i64 %66, 0\n  br i1 %67, label %$13, label %$14\n$13:\n  %68 = phi i64 [%60, %$12] ; # Exe\n  %69 = phi i64 [%61, %$12] ; # X\n  %70 = phi i64 [%62, %$12] ; # Y\n  %71 = phi i64 [%63, %$12] ; # Z\n  %72 = phi i64 [%64, %$12] ; # P\n  %73 = phi i64 [%65, %$12] ; # R\n; # (let U (++ Y) (unless (member U Z) (let V (cons U $Nil) (setq P (...\n; # (++ Y)\n  %74 = inttoptr i64 %70 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  %77 = load i64, i64* %74\n; # (unless (member U Z) (let V (cons U $Nil) (setq P (if P (set 2 P ...\n; # (member U Z)\n  br label %$15\n$15:\n  %78 = phi i64 [%71, %$13], [%95, %$19] ; # L\n  %79 = phi i64 [%77, %$13], [%92, %$19] ; # X\n  %80 = and i64 %78, 15\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$18, label %$16\n$18:\n  %82 = phi i64 [%78, %$15] ; # L\n  %83 = phi i64 [%79, %$15] ; # X\n  br label %$17\n$16:\n  %84 = phi i64 [%78, %$15] ; # L\n  %85 = phi i64 [%79, %$15] ; # X\n  %86 = inttoptr i64 %84 to i64*\n  %87 = load i64, i64* %86\n  %88 = call i1 @equal(i64 %85, i64 %87)\n  br i1 %88, label %$20, label %$19\n$20:\n  %89 = phi i64 [%84, %$16] ; # L\n  %90 = phi i64 [%85, %$16] ; # X\n  br label %$17\n$19:\n  %91 = phi i64 [%84, %$16] ; # L\n  %92 = phi i64 [%85, %$16] ; # X\n  %93 = inttoptr i64 %91 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  br label %$15\n$17:\n  %96 = phi i64 [%82, %$18], [%89, %$20] ; # L\n  %97 = phi i64 [%83, %$18], [%90, %$20] ; # X\n  %98 = phi i1 [0, %$18], [1, %$20] ; # ->\n  br i1 %98, label %$22, label %$21\n$21:\n  %99 = phi i64 [%68, %$17] ; # Exe\n  %100 = phi i64 [%69, %$17] ; # X\n  %101 = phi i64 [%76, %$17] ; # Y\n  %102 = phi i64 [%71, %$17] ; # Z\n  %103 = phi i64 [%72, %$17] ; # P\n  %104 = phi i64 [%73, %$17] ; # R\n  %105 = phi i64 [%77, %$17] ; # U\n; # (let V (cons U $Nil) (setq P (if P (set 2 P V) (set R V))))\n; # (cons U $Nil)\n  %106 = call i64 @cons(i64 %105, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if P (set 2 P V) (set R V))\n  %107 = icmp ne i64 %103, 0\n  br i1 %107, label %$23, label %$24\n$23:\n  %108 = phi i64 [%99, %$21] ; # Exe\n  %109 = phi i64 [%100, %$21] ; # X\n  %110 = phi i64 [%101, %$21] ; # Y\n  %111 = phi i64 [%102, %$21] ; # Z\n  %112 = phi i64 [%103, %$21] ; # P\n  %113 = phi i64 [%104, %$21] ; # R\n  %114 = phi i64 [%105, %$21] ; # U\n  %115 = phi i64 [%106, %$21] ; # V\n; # (set 2 P V)\n  %116 = inttoptr i64 %112 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  store i64 %115, i64* %117\n  br label %$25\n$24:\n  %118 = phi i64 [%99, %$21] ; # Exe\n  %119 = phi i64 [%100, %$21] ; # X\n  %120 = phi i64 [%101, %$21] ; # Y\n  %121 = phi i64 [%102, %$21] ; # Z\n  %122 = phi i64 [%103, %$21] ; # P\n  %123 = phi i64 [%104, %$21] ; # R\n  %124 = phi i64 [%105, %$21] ; # U\n  %125 = phi i64 [%106, %$21] ; # V\n; # (set R V)\n  %126 = inttoptr i64 %123 to i64*\n  store i64 %125, i64* %126\n  br label %$25\n$25:\n  %127 = phi i64 [%108, %$23], [%118, %$24] ; # Exe\n  %128 = phi i64 [%109, %$23], [%119, %$24] ; # X\n  %129 = phi i64 [%110, %$23], [%120, %$24] ; # Y\n  %130 = phi i64 [%111, %$23], [%121, %$24] ; # Z\n  %131 = phi i64 [%112, %$23], [%122, %$24] ; # P\n  %132 = phi i64 [%113, %$23], [%123, %$24] ; # R\n  %133 = phi i64 [%114, %$23], [%124, %$24] ; # U\n  %134 = phi i64 [%115, %$23], [%125, %$24] ; # V\n  %135 = phi i64 [%115, %$23], [%125, %$24] ; # ->\n  br label %$22\n$22:\n  %136 = phi i64 [%68, %$17], [%127, %$25] ; # Exe\n  %137 = phi i64 [%69, %$17], [%128, %$25] ; # X\n  %138 = phi i64 [%76, %$17], [%129, %$25] ; # Y\n  %139 = phi i64 [%71, %$17], [%130, %$25] ; # Z\n  %140 = phi i64 [%72, %$17], [%135, %$25] ; # P\n  %141 = phi i64 [%73, %$17], [%132, %$25] ; # R\n  %142 = phi i64 [%77, %$17], [%133, %$25] ; # U\n  br label %$12\n$14:\n  %143 = phi i64 [%60, %$12] ; # Exe\n  %144 = phi i64 [%61, %$12] ; # X\n  %145 = phi i64 [%62, %$12] ; # Y\n  %146 = phi i64 [%63, %$12] ; # Z\n  %147 = phi i64 [%64, %$12] ; # P\n  %148 = phi i64 [%65, %$12] ; # R\n; # (val R)\n  %149 = inttoptr i64 %148 to i64*\n  %150 = load i64, i64* %149\n; # (drop *Safe)\n  %151 = inttoptr i64 %24 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  %153 = load i64, i64* %152\n  %154 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %153, i64* %154\n  ret i64 %150\n}\n\ndefine i64 @_Index(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) Cnt 1 U...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (? (equal Y (car Z)) (cnt Cnt)) (inc 'Cnt...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%92, %$18] ; # Exe\n  %45 = phi i64 [%6, %$7], [%93, %$18] ; # X\n  %46 = phi i64 [%20, %$7], [%94, %$18] ; # Y\n  %47 = phi i64 [%43, %$7], [%95, %$18] ; # Z\n  %48 = phi i64 [1, %$7], [%96, %$18] ; # Cnt\n  %49 = phi i64 [%43, %$7], [%97, %$18] ; # U\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %50 = and i64 %47, 15\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$15, label %$13\n$15:\n  %52 = phi i64 [%44, %$12] ; # Exe\n  %53 = phi i64 [%45, %$12] ; # X\n  %54 = phi i64 [%46, %$12] ; # Y\n  %55 = phi i64 [%47, %$12] ; # Z\n  %56 = phi i64 [%48, %$12] ; # Cnt\n  %57 = phi i64 [%49, %$12] ; # U\n  br label %$14\n$13:\n  %58 = phi i64 [%44, %$12] ; # Exe\n  %59 = phi i64 [%45, %$12] ; # X\n  %60 = phi i64 [%46, %$12] ; # Y\n  %61 = phi i64 [%47, %$12] ; # Z\n  %62 = phi i64 [%48, %$12] ; # Cnt\n  %63 = phi i64 [%49, %$12] ; # U\n; # (? (equal Y (car Z)) (cnt Cnt))\n; # (car Z)\n  %64 = inttoptr i64 %61 to i64*\n  %65 = load i64, i64* %64\n; # (equal Y (car Z))\n  %66 = call i1 @equal(i64 %60, i64 %65)\n  br i1 %66, label %$17, label %$16\n$17:\n  %67 = phi i64 [%58, %$13] ; # Exe\n  %68 = phi i64 [%59, %$13] ; # X\n  %69 = phi i64 [%60, %$13] ; # Y\n  %70 = phi i64 [%61, %$13] ; # Z\n  %71 = phi i64 [%62, %$13] ; # Cnt\n  %72 = phi i64 [%63, %$13] ; # U\n; # (cnt Cnt)\n  %73 = shl i64 %71, 4\n  %74 = or i64 %73, 2\n  br label %$14\n$16:\n  %75 = phi i64 [%58, %$13] ; # Exe\n  %76 = phi i64 [%59, %$13] ; # X\n  %77 = phi i64 [%60, %$13] ; # Y\n  %78 = phi i64 [%61, %$13] ; # Z\n  %79 = phi i64 [%62, %$13] ; # Cnt\n  %80 = phi i64 [%63, %$13] ; # U\n; # (inc 'Cnt)\n  %81 = add i64 %79, 1\n; # (? (== U (shift Z)) $Nil)\n; # (shift Z)\n  %82 = inttoptr i64 %78 to i64*\n  %83 = getelementptr i64, i64* %82, i32 1\n  %84 = load i64, i64* %83\n; # (== U (shift Z))\n  %85 = icmp eq i64 %80, %84\n  br i1 %85, label %$19, label %$18\n$19:\n  %86 = phi i64 [%75, %$16] ; # Exe\n  %87 = phi i64 [%76, %$16] ; # X\n  %88 = phi i64 [%77, %$16] ; # Y\n  %89 = phi i64 [%84, %$16] ; # Z\n  %90 = phi i64 [%81, %$16] ; # Cnt\n  %91 = phi i64 [%80, %$16] ; # U\n  br label %$14\n$18:\n  %92 = phi i64 [%75, %$16] ; # Exe\n  %93 = phi i64 [%76, %$16] ; # X\n  %94 = phi i64 [%77, %$16] ; # Y\n  %95 = phi i64 [%84, %$16] ; # Z\n  %96 = phi i64 [%81, %$16] ; # Cnt\n  %97 = phi i64 [%80, %$16] ; # U\n  br label %$12\n$14:\n  %98 = phi i64 [%52, %$15], [%67, %$17], [%86, %$19] ; # Exe\n  %99 = phi i64 [%53, %$15], [%68, %$17], [%87, %$19] ; # X\n  %100 = phi i64 [%54, %$15], [%69, %$17], [%88, %$19] ; # Y\n  %101 = phi i64 [%55, %$15], [%70, %$17], [%89, %$19] ; # Z\n  %102 = phi i64 [%56, %$15], [%71, %$17], [%90, %$19] ; # Cnt\n  %103 = phi i64 [%57, %$15], [%72, %$17], [%91, %$19] ; # U\n  %104 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%74, %$17], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$19] ; # ->\n; # (drop *Safe)\n  %105 = inttoptr i64 %24 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  %107 = load i64, i64* %106\n  %108 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %107, i64* %108\n  ret i64 %104\n}\n\ndefine i64 @_Offset(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) Cnt 1) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (? (equal Y Z) (cnt Cnt)) (inc 'Cnt) (shi...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%69, %$16] ; # Exe\n  %45 = phi i64 [%6, %$7], [%70, %$16] ; # X\n  %46 = phi i64 [%20, %$7], [%71, %$16] ; # Y\n  %47 = phi i64 [%43, %$7], [%77, %$16] ; # Z\n  %48 = phi i64 [1, %$7], [%74, %$16] ; # Cnt\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # Cnt\n  br label %$14\n$13:\n  %56 = phi i64 [%44, %$12] ; # Exe\n  %57 = phi i64 [%45, %$12] ; # X\n  %58 = phi i64 [%46, %$12] ; # Y\n  %59 = phi i64 [%47, %$12] ; # Z\n  %60 = phi i64 [%48, %$12] ; # Cnt\n; # (? (equal Y Z) (cnt Cnt))\n; # (equal Y Z)\n  %61 = call i1 @equal(i64 %58, i64 %59)\n  br i1 %61, label %$17, label %$16\n$17:\n  %62 = phi i64 [%56, %$13] ; # Exe\n  %63 = phi i64 [%57, %$13] ; # X\n  %64 = phi i64 [%58, %$13] ; # Y\n  %65 = phi i64 [%59, %$13] ; # Z\n  %66 = phi i64 [%60, %$13] ; # Cnt\n; # (cnt Cnt)\n  %67 = shl i64 %66, 4\n  %68 = or i64 %67, 2\n  br label %$14\n$16:\n  %69 = phi i64 [%56, %$13] ; # Exe\n  %70 = phi i64 [%57, %$13] ; # X\n  %71 = phi i64 [%58, %$13] ; # Y\n  %72 = phi i64 [%59, %$13] ; # Z\n  %73 = phi i64 [%60, %$13] ; # Cnt\n; # (inc 'Cnt)\n  %74 = add i64 %73, 1\n; # (shift Z)\n  %75 = inttoptr i64 %72 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  %77 = load i64, i64* %76\n  br label %$12\n$14:\n  %78 = phi i64 [%51, %$15], [%62, %$17] ; # Exe\n  %79 = phi i64 [%52, %$15], [%63, %$17] ; # X\n  %80 = phi i64 [%53, %$15], [%64, %$17] ; # Y\n  %81 = phi i64 [%54, %$15], [%65, %$17] ; # Z\n  %82 = phi i64 [%55, %$15], [%66, %$17] ; # Cnt\n  %83 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%68, %$17] ; # ->\n; # (drop *Safe)\n  %84 = inttoptr i64 %24 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %86, i64* %87\n  ret i64 %83\n}\n\ndefine i64 @_Prior(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X))) (when ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (when (and (pair Y) (<> Y Z)) (while (pair Z) (when (== (cdr Z) Y...\n; # (and (pair Y) (<> Y Z))\n; # (pair Y)\n  %44 = and i64 %20, 15\n  %45 = icmp eq i64 %44, 0\n  br i1 %45, label %$13, label %$12\n$13:\n  %46 = phi i64 [%0, %$7] ; # Exe\n  %47 = phi i64 [%6, %$7] ; # X\n  %48 = phi i64 [%20, %$7] ; # Y\n  %49 = phi i64 [%43, %$7] ; # Z\n; # (<> Y Z)\n  %50 = icmp ne i64 %48, %49\n  br label %$12\n$12:\n  %51 = phi i64 [%0, %$7], [%46, %$13] ; # Exe\n  %52 = phi i64 [%6, %$7], [%47, %$13] ; # X\n  %53 = phi i64 [%20, %$7], [%48, %$13] ; # Y\n  %54 = phi i64 [%43, %$7], [%49, %$13] ; # Z\n  %55 = phi i1 [0, %$7], [%50, %$13] ; # ->\n  br i1 %55, label %$14, label %$15\n$14:\n  %56 = phi i64 [%51, %$12] ; # Exe\n  %57 = phi i64 [%52, %$12] ; # X\n  %58 = phi i64 [%53, %$12] ; # Y\n  %59 = phi i64 [%54, %$12] ; # Z\n; # (while (pair Z) (when (== (cdr Z) Y) (ret Z)) (setq Z @))\n  br label %$16\n$16:\n  %60 = phi i64 [%56, %$14], [%82, %$20] ; # Exe\n  %61 = phi i64 [%57, %$14], [%83, %$20] ; # X\n  %62 = phi i64 [%58, %$14], [%84, %$20] ; # Y\n  %63 = phi i64 [%59, %$14], [%72, %$20] ; # Z\n; # (pair Z)\n  %64 = and i64 %63, 15\n  %65 = icmp eq i64 %64, 0\n  br i1 %65, label %$17, label %$18\n$17:\n  %66 = phi i64 [%60, %$16] ; # Exe\n  %67 = phi i64 [%61, %$16] ; # X\n  %68 = phi i64 [%62, %$16] ; # Y\n  %69 = phi i64 [%63, %$16] ; # Z\n; # (when (== (cdr Z) Y) (ret Z))\n; # (cdr Z)\n  %70 = inttoptr i64 %69 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n; # (== (cdr Z) Y)\n  %73 = icmp eq i64 %72, %68\n  br i1 %73, label %$19, label %$20\n$19:\n  %74 = phi i64 [%66, %$17] ; # Exe\n  %75 = phi i64 [%67, %$17] ; # X\n  %76 = phi i64 [%68, %$17] ; # Y\n  %77 = phi i64 [%69, %$17] ; # Z\n; # (ret Z)\n; # (drop *Safe)\n  %78 = inttoptr i64 %24 to i64*\n  %79 = getelementptr i64, i64* %78, i32 1\n  %80 = load i64, i64* %79\n  %81 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %80, i64* %81\n  ret i64 %77\n$20:\n  %82 = phi i64 [%66, %$17] ; # Exe\n  %83 = phi i64 [%67, %$17] ; # X\n  %84 = phi i64 [%68, %$17] ; # Y\n  %85 = phi i64 [%69, %$17] ; # Z\n  br label %$16\n$18:\n  %86 = phi i64 [%60, %$16] ; # Exe\n  %87 = phi i64 [%61, %$16] ; # X\n  %88 = phi i64 [%62, %$16] ; # Y\n  %89 = phi i64 [%63, %$16] ; # Z\n  br label %$15\n$15:\n  %90 = phi i64 [%51, %$12], [%86, %$18] ; # Exe\n  %91 = phi i64 [%52, %$12], [%87, %$18] ; # X\n  %92 = phi i64 [%53, %$12], [%88, %$18] ; # Y\n  %93 = phi i64 [%54, %$12], [%89, %$18] ; # Z\n; # (drop *Safe)\n  %94 = inttoptr i64 %24 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n  %97 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %96, i64* %97\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n}\n\ndefine i64 @_Length(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (cond ((num? X) (fmtNum X -1 0 0 null)) ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((num? X) (fmtNum X -1 0 0 null)) ((pair X) (let (C ONE Y X...\n; # (num? X)\n  %19 = and i64 %18, 6\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n; # (fmtNum X -1 0 0 null)\n  %23 = call i64 @fmtNum(i64 %22, i64 -1, i8 0, i8 0, i64* null)\n  br label %$7\n$8:\n  %24 = phi i64 [%0, %$2] ; # Exe\n  %25 = phi i64 [%18, %$2] ; # X\n; # (pair X)\n  %26 = and i64 %25, 15\n  %27 = icmp eq i64 %26, 0\n  br i1 %27, label %$11, label %$10\n$11:\n  %28 = phi i64 [%24, %$8] ; # Exe\n  %29 = phi i64 [%25, %$8] ; # X\n; # (let (C ONE Y X) (loop (set X (| (car X) 1)) (? (atom (shift X)) ...\n; # (loop (set X (| (car X) 1)) (? (atom (shift X)) (loop (set Y (& (...\n  br label %$12\n$12:\n  %30 = phi i64 [%28, %$11], [%121, %$19] ; # Exe\n  %31 = phi i64 [%29, %$11], [%122, %$19] ; # X\n  %32 = phi i64 [18, %$11], [%125, %$19] ; # C\n  %33 = phi i64 [%29, %$11], [%124, %$19] ; # Y\n; # (set X (| (car X) 1))\n; # (car X)\n  %34 = inttoptr i64 %31 to i64*\n  %35 = load i64, i64* %34\n; # (| (car X) 1)\n  %36 = or i64 %35, 1\n  %37 = inttoptr i64 %31 to i64*\n  store i64 %36, i64* %37\n; # (? (atom (shift X)) (loop (set Y (& (car Y) -2)) (? (== X (shift ...\n; # (shift X)\n  %38 = inttoptr i64 %31 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n; # (atom (shift X))\n  %41 = and i64 %40, 15\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$15, label %$13\n$15:\n  %43 = phi i64 [%30, %$12] ; # Exe\n  %44 = phi i64 [%40, %$12] ; # X\n  %45 = phi i64 [%32, %$12] ; # C\n  %46 = phi i64 [%33, %$12] ; # Y\n; # (loop (set Y (& (car Y) -2)) (? (== X (shift Y))))\n  br label %$16\n$16:\n  %47 = phi i64 [%43, %$15], [%59, %$17] ; # Exe\n  %48 = phi i64 [%44, %$15], [%60, %$17] ; # X\n  %49 = phi i64 [%45, %$15], [%61, %$17] ; # C\n  %50 = phi i64 [%46, %$15], [%62, %$17] ; # Y\n; # (set Y (& (car Y) -2))\n; # (car Y)\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n; # (& (car Y) -2)\n  %53 = and i64 %52, -2\n  %54 = inttoptr i64 %50 to i64*\n  store i64 %53, i64* %54\n; # (? (== X (shift Y)))\n; # (shift Y)\n  %55 = inttoptr i64 %50 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (== X (shift Y))\n  %58 = icmp eq i64 %48, %57\n  br i1 %58, label %$18, label %$17\n$17:\n  %59 = phi i64 [%47, %$16] ; # Exe\n  %60 = phi i64 [%48, %$16] ; # X\n  %61 = phi i64 [%49, %$16] ; # C\n  %62 = phi i64 [%57, %$16] ; # Y\n  br label %$16\n$18:\n  %63 = phi i64 [%47, %$16] ; # Exe\n  %64 = phi i64 [%48, %$16] ; # X\n  %65 = phi i64 [%49, %$16] ; # C\n  %66 = phi i64 [%57, %$16] ; # Y\n  %67 = phi i64 [0, %$16] ; # ->\n  br label %$14\n$13:\n  %68 = phi i64 [%30, %$12] ; # Exe\n  %69 = phi i64 [%40, %$12] ; # X\n  %70 = phi i64 [%32, %$12] ; # C\n  %71 = phi i64 [%33, %$12] ; # Y\n; # (? (& (car X) 1) (until (== X Y) (set Y (& (car Y) -2)) (shift Y)...\n; # (car X)\n  %72 = inttoptr i64 %69 to i64*\n  %73 = load i64, i64* %72\n; # (& (car X) 1)\n  %74 = and i64 %73, 1\n  %75 = icmp ne i64 %74, 0\n  br i1 %75, label %$20, label %$19\n$20:\n  %76 = phi i64 [%68, %$13] ; # Exe\n  %77 = phi i64 [%69, %$13] ; # X\n  %78 = phi i64 [%70, %$13] ; # C\n  %79 = phi i64 [%71, %$13] ; # Y\n; # (until (== X Y) (set Y (& (car Y) -2)) (shift Y))\n  br label %$21\n$21:\n  %80 = phi i64 [%76, %$20], [%85, %$22] ; # Exe\n  %81 = phi i64 [%77, %$20], [%86, %$22] ; # X\n  %82 = phi i64 [%78, %$20], [%87, %$22] ; # C\n  %83 = phi i64 [%79, %$20], [%95, %$22] ; # Y\n; # (== X Y)\n  %84 = icmp eq i64 %81, %83\n  br i1 %84, label %$23, label %$22\n$22:\n  %85 = phi i64 [%80, %$21] ; # Exe\n  %86 = phi i64 [%81, %$21] ; # X\n  %87 = phi i64 [%82, %$21] ; # C\n  %88 = phi i64 [%83, %$21] ; # Y\n; # (set Y (& (car Y) -2))\n; # (car Y)\n  %89 = inttoptr i64 %88 to i64*\n  %90 = load i64, i64* %89\n; # (& (car Y) -2)\n  %91 = and i64 %90, -2\n  %92 = inttoptr i64 %88 to i64*\n  store i64 %91, i64* %92\n; # (shift Y)\n  %93 = inttoptr i64 %88 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  br label %$21\n$23:\n  %96 = phi i64 [%80, %$21] ; # Exe\n  %97 = phi i64 [%81, %$21] ; # X\n  %98 = phi i64 [%82, %$21] ; # C\n  %99 = phi i64 [%83, %$21] ; # Y\n; # (loop (set Y (& (car Y) -2)) (? (== X (shift Y))))\n  br label %$24\n$24:\n  %100 = phi i64 [%96, %$23], [%112, %$25] ; # Exe\n  %101 = phi i64 [%97, %$23], [%113, %$25] ; # X\n  %102 = phi i64 [%98, %$23], [%114, %$25] ; # C\n  %103 = phi i64 [%99, %$23], [%115, %$25] ; # Y\n; # (set Y (& (car Y) -2))\n; # (car Y)\n  %104 = inttoptr i64 %103 to i64*\n  %105 = load i64, i64* %104\n; # (& (car Y) -2)\n  %106 = and i64 %105, -2\n  %107 = inttoptr i64 %103 to i64*\n  store i64 %106, i64* %107\n; # (? (== X (shift Y)))\n; # (shift Y)\n  %108 = inttoptr i64 %103 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  %110 = load i64, i64* %109\n; # (== X (shift Y))\n  %111 = icmp eq i64 %101, %110\n  br i1 %111, label %$26, label %$25\n$25:\n  %112 = phi i64 [%100, %$24] ; # Exe\n  %113 = phi i64 [%101, %$24] ; # X\n  %114 = phi i64 [%102, %$24] ; # C\n  %115 = phi i64 [%110, %$24] ; # Y\n  br label %$24\n$26:\n  %116 = phi i64 [%100, %$24] ; # Exe\n  %117 = phi i64 [%101, %$24] ; # X\n  %118 = phi i64 [%102, %$24] ; # C\n  %119 = phi i64 [%110, %$24] ; # Y\n  %120 = phi i64 [0, %$24] ; # ->\n  br label %$14\n$19:\n  %121 = phi i64 [%68, %$13] ; # Exe\n  %122 = phi i64 [%69, %$13] ; # X\n  %123 = phi i64 [%70, %$13] ; # C\n  %124 = phi i64 [%71, %$13] ; # Y\n; # (inc 'C (hex \"10\"))\n  %125 = add i64 %123, 16\n  br label %$12\n$14:\n  %126 = phi i64 [%63, %$18], [%116, %$26] ; # Exe\n  %127 = phi i64 [%64, %$18], [%117, %$26] ; # X\n  %128 = phi i64 [%65, %$18], [%118, %$26] ; # C\n  %129 = phi i64 [%66, %$18], [%119, %$26] ; # Y\n  %130 = phi i64 [%65, %$18], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$26] ; # ->\n  br label %$7\n$10:\n  %131 = phi i64 [%24, %$8] ; # Exe\n  %132 = phi i64 [%25, %$8] ; # X\n; # (nil? X)\n  %133 = icmp eq i64 %132, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %133, label %$28, label %$27\n$28:\n  %134 = phi i64 [%131, %$10] ; # Exe\n  %135 = phi i64 [%132, %$10] ; # X\n  br label %$7\n$27:\n  %136 = phi i64 [%131, %$10] ; # Exe\n  %137 = phi i64 [%132, %$10] ; # X\n; # (tail X)\n  %138 = add i64 %137, -8\n; # (val (tail X))\n  %139 = inttoptr i64 %138 to i64*\n  %140 = load i64, i64* %139\n; # (sym? (val (tail X)))\n  %141 = and i64 %140, 8\n  %142 = icmp ne i64 %141, 0\n  br i1 %142, label %$30, label %$29\n$30:\n  %143 = phi i64 [%136, %$27] ; # Exe\n  %144 = phi i64 [%137, %$27] ; # X\n  br label %$7\n$29:\n  %145 = phi i64 [%136, %$27] ; # Exe\n  %146 = phi i64 [%137, %$27] ; # X\n; # (let (C ZERO P (push 0 (name @))) (while (symChar P) (inc 'C (hex...\n; # (name @)\n  br label %$31\n$31:\n  %147 = phi i64 [%140, %$29], [%153, %$32] ; # Tail\n  %148 = and i64 %147, 6\n  %149 = icmp ne i64 %148, 0\n  br i1 %149, label %$33, label %$32\n$32:\n  %150 = phi i64 [%147, %$31] ; # Tail\n  %151 = inttoptr i64 %150 to i64*\n  %152 = getelementptr i64, i64* %151, i32 1\n  %153 = load i64, i64* %152\n  br label %$31\n$33:\n  %154 = phi i64 [%147, %$31] ; # Tail\n; # (push 0 (name @))\n  %155 = alloca i64, i64 2, align 16\n  store i64 0, i64* %155\n  %156 = getelementptr i64, i64* %155, i32 1\n  store i64 %154, i64* %156\n; # (while (symChar P) (inc 'C (hex \"10\")))\n  br label %$34\n$34:\n  %157 = phi i64 [%145, %$33], [%163, %$35] ; # Exe\n  %158 = phi i64 [%146, %$33], [%164, %$35] ; # X\n  %159 = phi i64 [2, %$33], [%167, %$35] ; # C\n  %160 = phi i64* [%155, %$33], [%166, %$35] ; # P\n; # (symChar P)\n  %161 = call i32 @symChar(i64* %160)\n  %162 = icmp ne i32 %161, 0\n  br i1 %162, label %$35, label %$36\n$35:\n  %163 = phi i64 [%157, %$34] ; # Exe\n  %164 = phi i64 [%158, %$34] ; # X\n  %165 = phi i64 [%159, %$34] ; # C\n  %166 = phi i64* [%160, %$34] ; # P\n; # (inc 'C (hex \"10\"))\n  %167 = add i64 %165, 16\n  br label %$34\n$36:\n  %168 = phi i64 [%157, %$34] ; # Exe\n  %169 = phi i64 [%158, %$34] ; # X\n  %170 = phi i64 [%159, %$34] ; # C\n  %171 = phi i64* [%160, %$34] ; # P\n  br label %$7\n$7:\n  %172 = phi i64 [%21, %$9], [%126, %$14], [%134, %$28], [%143, %$30], [%168, %$36] ; # Exe\n  %173 = phi i64 [%22, %$9], [%127, %$14], [%135, %$28], [%144, %$30], [%169, %$36] ; # X\n  %174 = phi i64 [%23, %$9], [%130, %$14], [2, %$28], [2, %$30], [%170, %$36] ; # ->\n  ret i64 %174\n}\n\ndefine i64 @size(i64) align 8 {\n$1:\n; # (let (C 1 X L Y (car X)) (loop (when (pair Y) (stkChk 0) (inc 'C ...\n; # (car X)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = load i64, i64* %1\n; # (loop (when (pair Y) (stkChk 0) (inc 'C (size Y))) (set X (| Y 1)...\n  br label %$2\n$2:\n  %3 = phi i64 [%0, %$1], [%109, %$13] ; # L\n  %4 = phi i64 [1, %$1], [%113, %$13] ; # C\n  %5 = phi i64 [%0, %$1], [%111, %$13] ; # X\n  %6 = phi i64 [%2, %$1], [%112, %$13] ; # Y\n; # (when (pair Y) (stkChk 0) (inc 'C (size Y)))\n; # (pair Y)\n  %7 = and i64 %6, 15\n  %8 = icmp eq i64 %7, 0\n  br i1 %8, label %$3, label %$4\n$3:\n  %9 = phi i64 [%3, %$2] ; # L\n  %10 = phi i64 [%4, %$2] ; # C\n  %11 = phi i64 [%5, %$2] ; # X\n  %12 = phi i64 [%6, %$2] ; # Y\n; # (stkChk 0)\n  %13 = load i8*, i8** @$StkLimit\n  %14 = call i8* @llvm.stacksave()\n  %15 = icmp ugt i8* %13, %14\n  br i1 %15, label %$5, label %$6\n$5:\n  %16 = phi i64 [0, %$3] ; # Exe\n  call void @stkErr(i64 %16)\n  unreachable\n$6:\n  %17 = phi i64 [0, %$3] ; # Exe\n; # (size Y)\n  %18 = call i64 @size(i64 %12)\n; # (inc 'C (size Y))\n  %19 = add i64 %10, %18\n  br label %$4\n$4:\n  %20 = phi i64 [%3, %$2], [%9, %$6] ; # L\n  %21 = phi i64 [%4, %$2], [%19, %$6] ; # C\n  %22 = phi i64 [%5, %$2], [%11, %$6] ; # X\n  %23 = phi i64 [%6, %$2], [%12, %$6] ; # Y\n; # (set X (| Y 1))\n; # (| Y 1)\n  %24 = or i64 %23, 1\n  %25 = inttoptr i64 %22 to i64*\n  store i64 %24, i64* %25\n; # (? (atom (shift X)) (loop (set L (& (car L) -2)) (? (== X (shift ...\n; # (shift X)\n  %26 = inttoptr i64 %22 to i64*\n  %27 = getelementptr i64, i64* %26, i32 1\n  %28 = load i64, i64* %27\n; # (atom (shift X))\n  %29 = and i64 %28, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$9, label %$7\n$9:\n  %31 = phi i64 [%20, %$4] ; # L\n  %32 = phi i64 [%21, %$4] ; # C\n  %33 = phi i64 [%28, %$4] ; # X\n  %34 = phi i64 [%23, %$4] ; # Y\n; # (loop (set L (& (car L) -2)) (? (== X (shift L))))\n  br label %$10\n$10:\n  %35 = phi i64 [%31, %$9], [%47, %$11] ; # L\n  %36 = phi i64 [%32, %$9], [%48, %$11] ; # C\n  %37 = phi i64 [%33, %$9], [%49, %$11] ; # X\n  %38 = phi i64 [%34, %$9], [%50, %$11] ; # Y\n; # (set L (& (car L) -2))\n; # (car L)\n  %39 = inttoptr i64 %35 to i64*\n  %40 = load i64, i64* %39\n; # (& (car L) -2)\n  %41 = and i64 %40, -2\n  %42 = inttoptr i64 %35 to i64*\n  store i64 %41, i64* %42\n; # (? (== X (shift L)))\n; # (shift L)\n  %43 = inttoptr i64 %35 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n; # (== X (shift L))\n  %46 = icmp eq i64 %37, %45\n  br i1 %46, label %$12, label %$11\n$11:\n  %47 = phi i64 [%45, %$10] ; # L\n  %48 = phi i64 [%36, %$10] ; # C\n  %49 = phi i64 [%37, %$10] ; # X\n  %50 = phi i64 [%38, %$10] ; # Y\n  br label %$10\n$12:\n  %51 = phi i64 [%45, %$10] ; # L\n  %52 = phi i64 [%36, %$10] ; # C\n  %53 = phi i64 [%37, %$10] ; # X\n  %54 = phi i64 [%38, %$10] ; # Y\n  %55 = phi i64 [0, %$10] ; # ->\n  br label %$8\n$7:\n  %56 = phi i64 [%20, %$4] ; # L\n  %57 = phi i64 [%21, %$4] ; # C\n  %58 = phi i64 [%28, %$4] ; # X\n  %59 = phi i64 [%23, %$4] ; # Y\n; # (? (& (setq Y (car X)) 1) (until (== X L) (set L (& (car L) -2)) ...\n; # (car X)\n  %60 = inttoptr i64 %58 to i64*\n  %61 = load i64, i64* %60\n; # (& (setq Y (car X)) 1)\n  %62 = and i64 %61, 1\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$14, label %$13\n$14:\n  %64 = phi i64 [%56, %$7] ; # L\n  %65 = phi i64 [%57, %$7] ; # C\n  %66 = phi i64 [%58, %$7] ; # X\n  %67 = phi i64 [%61, %$7] ; # Y\n; # (until (== X L) (set L (& (car L) -2)) (shift L))\n  br label %$15\n$15:\n  %68 = phi i64 [%64, %$14], [%83, %$16] ; # L\n  %69 = phi i64 [%65, %$14], [%74, %$16] ; # C\n  %70 = phi i64 [%66, %$14], [%75, %$16] ; # X\n  %71 = phi i64 [%67, %$14], [%76, %$16] ; # Y\n; # (== X L)\n  %72 = icmp eq i64 %70, %68\n  br i1 %72, label %$17, label %$16\n$16:\n  %73 = phi i64 [%68, %$15] ; # L\n  %74 = phi i64 [%69, %$15] ; # C\n  %75 = phi i64 [%70, %$15] ; # X\n  %76 = phi i64 [%71, %$15] ; # Y\n; # (set L (& (car L) -2))\n; # (car L)\n  %77 = inttoptr i64 %73 to i64*\n  %78 = load i64, i64* %77\n; # (& (car L) -2)\n  %79 = and i64 %78, -2\n  %80 = inttoptr i64 %73 to i64*\n  store i64 %79, i64* %80\n; # (shift L)\n  %81 = inttoptr i64 %73 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  br label %$15\n$17:\n  %84 = phi i64 [%68, %$15] ; # L\n  %85 = phi i64 [%69, %$15] ; # C\n  %86 = phi i64 [%70, %$15] ; # X\n  %87 = phi i64 [%71, %$15] ; # Y\n; # (loop (set L (& (car L) -2)) (? (== X (shift L))))\n  br label %$18\n$18:\n  %88 = phi i64 [%84, %$17], [%100, %$19] ; # L\n  %89 = phi i64 [%85, %$17], [%101, %$19] ; # C\n  %90 = phi i64 [%86, %$17], [%102, %$19] ; # X\n  %91 = phi i64 [%87, %$17], [%103, %$19] ; # Y\n; # (set L (& (car L) -2))\n; # (car L)\n  %92 = inttoptr i64 %88 to i64*\n  %93 = load i64, i64* %92\n; # (& (car L) -2)\n  %94 = and i64 %93, -2\n  %95 = inttoptr i64 %88 to i64*\n  store i64 %94, i64* %95\n; # (? (== X (shift L)))\n; # (shift L)\n  %96 = inttoptr i64 %88 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  %98 = load i64, i64* %97\n; # (== X (shift L))\n  %99 = icmp eq i64 %90, %98\n  br i1 %99, label %$20, label %$19\n$19:\n  %100 = phi i64 [%98, %$18] ; # L\n  %101 = phi i64 [%89, %$18] ; # C\n  %102 = phi i64 [%90, %$18] ; # X\n  %103 = phi i64 [%91, %$18] ; # Y\n  br label %$18\n$20:\n  %104 = phi i64 [%98, %$18] ; # L\n  %105 = phi i64 [%89, %$18] ; # C\n  %106 = phi i64 [%90, %$18] ; # X\n  %107 = phi i64 [%91, %$18] ; # Y\n  %108 = phi i64 [0, %$18] ; # ->\n  br label %$8\n$13:\n  %109 = phi i64 [%56, %$7] ; # L\n  %110 = phi i64 [%57, %$7] ; # C\n  %111 = phi i64 [%58, %$7] ; # X\n  %112 = phi i64 [%61, %$7] ; # Y\n; # (inc 'C)\n  %113 = add i64 %110, 1\n  br label %$2\n$8:\n  %114 = phi i64 [%51, %$12], [%104, %$20] ; # L\n  %115 = phi i64 [%52, %$12], [%105, %$20] ; # C\n  %116 = phi i64 [%53, %$12], [%106, %$20] ; # X\n  %117 = phi i64 [%54, %$12], [%107, %$20] ; # Y\n  %118 = phi i64 [%52, %$12], [%105, %$20] ; # ->\n  ret i64 %118\n}\n\ndefine i64 @binSize(i64) align 8 {\n$1:\n; # (cond ((cnt? X) (setq X (shr X 3)) (: 1 (let C 2 (while (setq X (...\n; # (cnt? X)\n  %1 = and i64 %0, 2\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n; # (shr X 3)\n  %4 = lshr i64 %3, 3\n; # (: 1 (let C 2 (while (setq X (shr X 8)) (inc 'C)) C))\n  br label %$-1\n$-1:\n  %5 = phi i64 [%4, %$4], [%98, %$32] ; # X\n; # (let C 2 (while (setq X (shr X 8)) (inc 'C)) C)\n; # (while (setq X (shr X 8)) (inc 'C))\n  br label %$5\n$5:\n  %6 = phi i64 [%5, %$-1], [%10, %$6] ; # X\n  %7 = phi i64 [2, %$-1], [%12, %$6] ; # C\n; # (shr X 8)\n  %8 = lshr i64 %6, 8\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$6, label %$7\n$6:\n  %10 = phi i64 [%8, %$5] ; # X\n  %11 = phi i64 [%7, %$5] ; # C\n; # (inc 'C)\n  %12 = add i64 %11, 1\n  br label %$5\n$7:\n  %13 = phi i64 [%8, %$5] ; # X\n  %14 = phi i64 [%7, %$5] ; # C\n  br label %$2\n$3:\n  %15 = phi i64 [%0, %$1] ; # X\n; # (big? X)\n  %16 = and i64 %15, 4\n  %17 = icmp ne i64 %16, 0\n  br i1 %17, label %$9, label %$8\n$9:\n  %18 = phi i64 [%15, %$3] ; # X\n; # (pos X)\n  %19 = and i64 %18, -9\n; # (let C 9 (loop (setq D (val (dig X))) (? (cnt? (setq X (val (big ...\n; # (loop (setq D (val (dig X))) (? (cnt? (setq X (val (big X))))) (i...\n  br label %$10\n$10:\n  %20 = phi i64 [%19, %$9], [%30, %$11] ; # X\n  %21 = phi i64 [9, %$9], [%32, %$11] ; # C\n; # (dig X)\n  %22 = add i64 %20, -4\n; # (val (dig X))\n  %23 = inttoptr i64 %22 to i64*\n  %24 = load i64, i64* %23\n; # (? (cnt? (setq X (val (big X)))))\n; # (big X)\n  %25 = add i64 %20, 4\n; # (val (big X))\n  %26 = inttoptr i64 %25 to i64*\n  %27 = load i64, i64* %26\n; # (cnt? (setq X (val (big X))))\n  %28 = and i64 %27, 2\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$12, label %$11\n$11:\n  %30 = phi i64 [%27, %$10] ; # X\n  %31 = phi i64 [%21, %$10] ; # C\n; # (inc 'C 8)\n  %32 = add i64 %31, 8\n  br label %$10\n$12:\n  %33 = phi i64 [%27, %$10] ; # X\n  %34 = phi i64 [%21, %$10] ; # C\n  %35 = phi i64 [0, %$10] ; # ->\n; # (int X)\n  %36 = lshr i64 %33, 4\n; # (add D D)\n  %37 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %24, i64 %24)\n  %38 = extractvalue {i64, i1} %37, 1\n  %39 = extractvalue {i64, i1} %37, 0\n; # (+ X X @@)\n  %40 = add i64 %36, %36\n  %41 = zext i1 %38 to i64\n  %42 = add i64 %40, %41\n; # (: 2 (when X (loop (inc 'C) (? (=0 (setq X (shr X 8)))))) (if (>=...\n  br label %$-2\n$-2:\n  %43 = phi i64 [%42, %$12], [%112, %$35] ; # X\n  %44 = phi i64 [%34, %$12], [%111, %$35] ; # C\n; # (when X (loop (inc 'C) (? (=0 (setq X (shr X 8))))))\n  %45 = icmp ne i64 %43, 0\n  br i1 %45, label %$13, label %$14\n$13:\n  %46 = phi i64 [%43, %$-2] ; # X\n  %47 = phi i64 [%44, %$-2] ; # C\n; # (loop (inc 'C) (? (=0 (setq X (shr X 8)))))\n  br label %$15\n$15:\n  %48 = phi i64 [%46, %$13], [%53, %$16] ; # X\n  %49 = phi i64 [%47, %$13], [%54, %$16] ; # C\n; # (inc 'C)\n  %50 = add i64 %49, 1\n; # (? (=0 (setq X (shr X 8))))\n; # (shr X 8)\n  %51 = lshr i64 %48, 8\n; # (=0 (setq X (shr X 8)))\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$17, label %$16\n$16:\n  %53 = phi i64 [%51, %$15] ; # X\n  %54 = phi i64 [%50, %$15] ; # C\n  br label %$15\n$17:\n  %55 = phi i64 [%51, %$15] ; # X\n  %56 = phi i64 [%50, %$15] ; # C\n  %57 = phi i64 [0, %$15] ; # ->\n  br label %$14\n$14:\n  %58 = phi i64 [%43, %$-2], [%55, %$17] ; # X\n  %59 = phi i64 [%44, %$-2], [%56, %$17] ; # C\n; # (if (>= C (+ 63 1)) (+ C (/ (- C 64) 255) 1) C)\n; # (+ 63 1)\n; # (>= C (+ 63 1))\n  %60 = icmp uge i64 %59, 64\n  br i1 %60, label %$18, label %$19\n$18:\n  %61 = phi i64 [%58, %$14] ; # X\n  %62 = phi i64 [%59, %$14] ; # C\n; # (- C 64)\n  %63 = sub i64 %62, 64\n; # (/ (- C 64) 255)\n  %64 = udiv i64 %63, 255\n; # (+ C (/ (- C 64) 255) 1)\n  %65 = add i64 %62, %64\n  %66 = add i64 %65, 1\n  br label %$20\n$19:\n  %67 = phi i64 [%58, %$14] ; # X\n  %68 = phi i64 [%59, %$14] ; # C\n  br label %$20\n$20:\n  %69 = phi i64 [%61, %$18], [%67, %$19] ; # X\n  %70 = phi i64 [%62, %$18], [%68, %$19] ; # C\n  %71 = phi i64 [%66, %$18], [%68, %$19] ; # ->\n  br label %$2\n$8:\n  %72 = phi i64 [%15, %$3] ; # X\n; # (sym? X)\n  %73 = and i64 %72, 8\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$22, label %$21\n$22:\n  %75 = phi i64 [%72, %$8] ; # X\n; # (cond ((nil? X) 1) ((== (name (& (val (tail X)) -9)) ZERO) 1) ((c...\n; # (nil? X)\n  %76 = icmp eq i64 %75, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %76, label %$25, label %$24\n$25:\n  %77 = phi i64 [%75, %$22] ; # X\n  br label %$23\n$24:\n  %78 = phi i64 [%75, %$22] ; # X\n; # (tail X)\n  %79 = add i64 %78, -8\n; # (val (tail X))\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n; # (& (val (tail X)) -9)\n  %82 = and i64 %81, -9\n; # (name (& (val (tail X)) -9))\n  br label %$26\n$26:\n  %83 = phi i64 [%82, %$24], [%89, %$27] ; # Tail\n  %84 = and i64 %83, 6\n  %85 = icmp ne i64 %84, 0\n  br i1 %85, label %$28, label %$27\n$27:\n  %86 = phi i64 [%83, %$26] ; # Tail\n  %87 = inttoptr i64 %86 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  %89 = load i64, i64* %88\n  br label %$26\n$28:\n  %90 = phi i64 [%83, %$26] ; # Tail\n; # (== (name (& (val (tail X)) -9)) ZERO)\n  %91 = icmp eq i64 %90, 2\n  br i1 %91, label %$30, label %$29\n$30:\n  %92 = phi i64 [%78, %$28] ; # X\n  br label %$23\n$29:\n  %93 = phi i64 [%78, %$28] ; # X\n; # (cnt? (setq X @))\n  %94 = and i64 %90, 2\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$32, label %$31\n$32:\n  %96 = phi i64 [%90, %$29] ; # X\n; # (shl X 2)\n  %97 = shl i64 %96, 2\n; # (shr (shl X 2) 6)\n  %98 = lshr i64 %97, 6\n; # (goto 1)\n  br label %$-1\n$31:\n  %99 = phi i64 [%90, %$29] ; # X\n; # (let C 9 (until (cnt? (setq X (val (big X)))) (inc 'C 8)) (setq X...\n; # (until (cnt? (setq X (val (big X)))) (inc 'C 8))\n  br label %$33\n$33:\n  %100 = phi i64 [%99, %$31], [%107, %$34] ; # X\n  %101 = phi i64 [9, %$31], [%109, %$34] ; # C\n; # (big X)\n  %102 = add i64 %100, 4\n; # (val (big X))\n  %103 = inttoptr i64 %102 to i64*\n  %104 = load i64, i64* %103\n; # (cnt? (setq X (val (big X))))\n  %105 = and i64 %104, 2\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$35, label %$34\n$34:\n  %107 = phi i64 [%104, %$33] ; # X\n  %108 = phi i64 [%101, %$33] ; # C\n; # (inc 'C 8)\n  %109 = add i64 %108, 8\n  br label %$33\n$35:\n  %110 = phi i64 [%104, %$33] ; # X\n  %111 = phi i64 [%101, %$33] ; # C\n; # (int X)\n  %112 = lshr i64 %110, 4\n; # (goto 2)\n  br label %$-2\n$23:\n  %113 = phi i64 [%77, %$25], [%92, %$30] ; # X\n  %114 = phi i64 [1, %$25], [1, %$30] ; # ->\n  br label %$2\n$21:\n  %115 = phi i64 [%72, %$8] ; # X\n; # (let (C 2 Y X) (loop (inc 'C (binSize (++ X))) (? (nil? X) C) (? ...\n; # (loop (inc 'C (binSize (++ X))) (? (nil? X) C) (? (== Y X) (inc C...\n  br label %$36\n$36:\n  %116 = phi i64 [%115, %$21], [%147, %$42] ; # X\n  %117 = phi i64 [2, %$21], [%148, %$42] ; # C\n  %118 = phi i64 [%115, %$21], [%149, %$42] ; # Y\n; # (++ X)\n  %119 = inttoptr i64 %116 to i64*\n  %120 = getelementptr i64, i64* %119, i32 1\n  %121 = load i64, i64* %120\n  %122 = load i64, i64* %119\n; # (binSize (++ X))\n  %123 = call i64 @binSize(i64 %122)\n; # (inc 'C (binSize (++ X)))\n  %124 = add i64 %117, %123\n; # (? (nil? X) C)\n; # (nil? X)\n  %125 = icmp eq i64 %121, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %125, label %$39, label %$37\n$39:\n  %126 = phi i64 [%121, %$36] ; # X\n  %127 = phi i64 [%124, %$36] ; # C\n  %128 = phi i64 [%118, %$36] ; # Y\n  br label %$38\n$37:\n  %129 = phi i64 [%121, %$36] ; # X\n  %130 = phi i64 [%124, %$36] ; # C\n  %131 = phi i64 [%118, %$36] ; # Y\n; # (? (== Y X) (inc C))\n; # (== Y X)\n  %132 = icmp eq i64 %131, %129\n  br i1 %132, label %$41, label %$40\n$41:\n  %133 = phi i64 [%129, %$37] ; # X\n  %134 = phi i64 [%130, %$37] ; # C\n  %135 = phi i64 [%131, %$37] ; # Y\n; # (inc C)\n  %136 = add i64 %134, 1\n  br label %$38\n$40:\n  %137 = phi i64 [%129, %$37] ; # X\n  %138 = phi i64 [%130, %$37] ; # C\n  %139 = phi i64 [%131, %$37] ; # Y\n; # (? (atom X) (+ C (binSize X)))\n; # (atom X)\n  %140 = and i64 %137, 15\n  %141 = icmp ne i64 %140, 0\n  br i1 %141, label %$43, label %$42\n$43:\n  %142 = phi i64 [%137, %$40] ; # X\n  %143 = phi i64 [%138, %$40] ; # C\n  %144 = phi i64 [%139, %$40] ; # Y\n; # (binSize X)\n  %145 = call i64 @binSize(i64 %142)\n; # (+ C (binSize X))\n  %146 = add i64 %143, %145\n  br label %$38\n$42:\n  %147 = phi i64 [%137, %$40] ; # X\n  %148 = phi i64 [%138, %$40] ; # C\n  %149 = phi i64 [%139, %$40] ; # Y\n  br label %$36\n$38:\n  %150 = phi i64 [%126, %$39], [%133, %$41], [%142, %$43] ; # X\n  %151 = phi i64 [%127, %$39], [%134, %$41], [%143, %$43] ; # C\n  %152 = phi i64 [%128, %$39], [%135, %$41], [%144, %$43] ; # Y\n  %153 = phi i64 [%127, %$39], [%136, %$41], [%146, %$43] ; # ->\n  br label %$2\n$2:\n  %154 = phi i64 [%13, %$7], [%69, %$20], [%113, %$23], [%150, %$38] ; # X\n  %155 = phi i64 [%14, %$7], [%71, %$20], [%114, %$23], [%153, %$38] ; # ->\n  ret i64 %155\n}\n\ndefine i64 @_Size(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (cond ((cnt? X) (setq X (shr X 3)) (let ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((cnt? X) (setq X (shr X 3)) (let C ONE (while (setq X (shr...\n; # (cnt? X)\n  %19 = and i64 %18, 2\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n; # (shr X 3)\n  %23 = lshr i64 %22, 3\n; # (let C ONE (while (setq X (shr X 8)) (inc 'C (hex \"10\"))) C)\n; # (while (setq X (shr X 8)) (inc 'C (hex \"10\")))\n  br label %$10\n$10:\n  %24 = phi i64 [%21, %$9], [%29, %$11] ; # Exe\n  %25 = phi i64 [%23, %$9], [%30, %$11] ; # X\n  %26 = phi i64 [18, %$9], [%32, %$11] ; # C\n; # (shr X 8)\n  %27 = lshr i64 %25, 8\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$11, label %$12\n$11:\n  %29 = phi i64 [%24, %$10] ; # Exe\n  %30 = phi i64 [%27, %$10] ; # X\n  %31 = phi i64 [%26, %$10] ; # C\n; # (inc 'C (hex \"10\"))\n  %32 = add i64 %31, 16\n  br label %$10\n$12:\n  %33 = phi i64 [%24, %$10] ; # Exe\n  %34 = phi i64 [%27, %$10] ; # X\n  %35 = phi i64 [%26, %$10] ; # C\n  br label %$7\n$8:\n  %36 = phi i64 [%0, %$2] ; # Exe\n  %37 = phi i64 [%18, %$2] ; # X\n; # (big? X)\n  %38 = and i64 %37, 4\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$14, label %$13\n$14:\n  %40 = phi i64 [%36, %$8] ; # Exe\n  %41 = phi i64 [%37, %$8] ; # X\n; # (pos X)\n  %42 = and i64 %41, -9\n; # (let (C (hex \"82\") D T) (loop (setq D (val (dig X))) (? (cnt? (se...\n; # (loop (setq D (val (dig X))) (? (cnt? (setq X (val (big X))))) (i...\n  br label %$15\n$15:\n  %43 = phi i64 [%40, %$14], [%54, %$16] ; # Exe\n  %44 = phi i64 [%42, %$14], [%55, %$16] ; # X\n  %45 = phi i64 [130, %$14], [%58, %$16] ; # C\n; # (dig X)\n  %46 = add i64 %44, -4\n; # (val (dig X))\n  %47 = inttoptr i64 %46 to i64*\n  %48 = load i64, i64* %47\n; # (? (cnt? (setq X (val (big X)))))\n; # (big X)\n  %49 = add i64 %44, 4\n; # (val (big X))\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n; # (cnt? (setq X (val (big X))))\n  %52 = and i64 %51, 2\n  %53 = icmp ne i64 %52, 0\n  br i1 %53, label %$17, label %$16\n$16:\n  %54 = phi i64 [%43, %$15] ; # Exe\n  %55 = phi i64 [%51, %$15] ; # X\n  %56 = phi i64 [%45, %$15] ; # C\n  %57 = phi i64 [%48, %$15] ; # D\n; # (inc 'C (hex \"80\"))\n  %58 = add i64 %56, 128\n  br label %$15\n$17:\n  %59 = phi i64 [%43, %$15] ; # Exe\n  %60 = phi i64 [%51, %$15] ; # X\n  %61 = phi i64 [%45, %$15] ; # C\n  %62 = phi i64 [%48, %$15] ; # D\n  %63 = phi i64 [0, %$15] ; # ->\n; # (int X)\n  %64 = lshr i64 %60, 4\n; # (add D D)\n  %65 = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %62, i64 %62)\n  %66 = extractvalue {i64, i1} %65, 1\n  %67 = extractvalue {i64, i1} %65, 0\n; # (when (setq X (+ X X @@)) (loop (inc 'C (hex \"10\")) (? (=0 (setq ...\n; # (+ X X @@)\n  %68 = add i64 %64, %64\n  %69 = zext i1 %66 to i64\n  %70 = add i64 %68, %69\n  %71 = icmp ne i64 %70, 0\n  br i1 %71, label %$18, label %$19\n$18:\n  %72 = phi i64 [%59, %$17] ; # Exe\n  %73 = phi i64 [%70, %$17] ; # X\n  %74 = phi i64 [%61, %$17] ; # C\n  %75 = phi i64 [%62, %$17] ; # D\n; # (loop (inc 'C (hex \"10\")) (? (=0 (setq X (shr X 8)))))\n  br label %$20\n$20:\n  %76 = phi i64 [%72, %$18], [%83, %$21] ; # Exe\n  %77 = phi i64 [%73, %$18], [%84, %$21] ; # X\n  %78 = phi i64 [%74, %$18], [%85, %$21] ; # C\n  %79 = phi i64 [%75, %$18], [%86, %$21] ; # D\n; # (inc 'C (hex \"10\"))\n  %80 = add i64 %78, 16\n; # (? (=0 (setq X (shr X 8))))\n; # (shr X 8)\n  %81 = lshr i64 %77, 8\n; # (=0 (setq X (shr X 8)))\n  %82 = icmp eq i64 %81, 0\n  br i1 %82, label %$22, label %$21\n$21:\n  %83 = phi i64 [%76, %$20] ; # Exe\n  %84 = phi i64 [%81, %$20] ; # X\n  %85 = phi i64 [%80, %$20] ; # C\n  %86 = phi i64 [%79, %$20] ; # D\n  br label %$20\n$22:\n  %87 = phi i64 [%76, %$20] ; # Exe\n  %88 = phi i64 [%81, %$20] ; # X\n  %89 = phi i64 [%80, %$20] ; # C\n  %90 = phi i64 [%79, %$20] ; # D\n  %91 = phi i64 [0, %$20] ; # ->\n  br label %$19\n$19:\n  %92 = phi i64 [%59, %$17], [%87, %$22] ; # Exe\n  %93 = phi i64 [%70, %$17], [%88, %$22] ; # X\n  %94 = phi i64 [%61, %$17], [%89, %$22] ; # C\n  %95 = phi i64 [%62, %$17], [%90, %$22] ; # D\n  br label %$7\n$13:\n  %96 = phi i64 [%36, %$8] ; # Exe\n  %97 = phi i64 [%37, %$8] ; # X\n; # (pair X)\n  %98 = and i64 %97, 15\n  %99 = icmp eq i64 %98, 0\n  br i1 %99, label %$24, label %$23\n$24:\n  %100 = phi i64 [%96, %$13] ; # Exe\n  %101 = phi i64 [%97, %$13] ; # X\n; # (size X)\n  %102 = call i64 @size(i64 %101)\n; # (cnt (size X))\n  %103 = shl i64 %102, 4\n  %104 = or i64 %103, 2\n  br label %$7\n$23:\n  %105 = phi i64 [%96, %$13] ; # Exe\n  %106 = phi i64 [%97, %$13] ; # X\n; # (nil? X)\n  %107 = icmp eq i64 %106, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %107, label %$26, label %$25\n$26:\n  %108 = phi i64 [%105, %$23] ; # Exe\n  %109 = phi i64 [%106, %$23] ; # X\n  br label %$7\n$25:\n  %110 = phi i64 [%105, %$23] ; # Exe\n  %111 = phi i64 [%106, %$23] ; # X\n; # (tail X)\n  %112 = add i64 %111, -8\n; # (val (tail X))\n  %113 = inttoptr i64 %112 to i64*\n  %114 = load i64, i64* %113\n; # (sym? (val (tail X)))\n  %115 = and i64 %114, 8\n  %116 = icmp ne i64 %115, 0\n  br i1 %116, label %$28, label %$27\n$28:\n  %117 = phi i64 [%110, %$25] ; # Exe\n  %118 = phi i64 [%111, %$25] ; # X\n; # (dbFetch Exe X)\n  call void @dbFetch(i64 %117, i64 %118)\n; # (let (C (+ (binSize (val X)) (inc BLK)) Y (& (val (tail X)) -9)) ...\n; # (val X)\n  %119 = inttoptr i64 %118 to i64*\n  %120 = load i64, i64* %119\n; # (binSize (val X))\n  %121 = call i64 @binSize(i64 %120)\n; # (inc BLK)\n; # (+ (binSize (val X)) (inc BLK))\n  %122 = add i64 %121, 7\n; # (tail X)\n  %123 = add i64 %118, -8\n; # (val (tail X))\n  %124 = inttoptr i64 %123 to i64*\n  %125 = load i64, i64* %124\n; # (& (val (tail X)) -9)\n  %126 = and i64 %125, -9\n; # (while (pair Y) (let Z (++ Y) (setq C (+ C (if (atom Z) (+ (binSi...\n  br label %$29\n$29:\n  %127 = phi i64 [%117, %$28], [%163, %$34] ; # Exe\n  %128 = phi i64 [%118, %$28], [%164, %$34] ; # X\n  %129 = phi i64 [%122, %$28], [%169, %$34] ; # C\n  %130 = phi i64 [%126, %$28], [%166, %$34] ; # Y\n; # (pair Y)\n  %131 = and i64 %130, 15\n  %132 = icmp eq i64 %131, 0\n  br i1 %132, label %$30, label %$31\n$30:\n  %133 = phi i64 [%127, %$29] ; # Exe\n  %134 = phi i64 [%128, %$29] ; # X\n  %135 = phi i64 [%129, %$29] ; # C\n  %136 = phi i64 [%130, %$29] ; # Y\n; # (let Z (++ Y) (setq C (+ C (if (atom Z) (+ (binSize Z) 2) (+ (bin...\n; # (++ Y)\n  %137 = inttoptr i64 %136 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  %139 = load i64, i64* %138\n  %140 = load i64, i64* %137\n; # (if (atom Z) (+ (binSize Z) 2) (+ (binSize (car Z)) (binSize (cdr...\n; # (atom Z)\n  %141 = and i64 %140, 15\n  %142 = icmp ne i64 %141, 0\n  br i1 %142, label %$32, label %$33\n$32:\n  %143 = phi i64 [%133, %$30] ; # Exe\n  %144 = phi i64 [%134, %$30] ; # X\n  %145 = phi i64 [%135, %$30] ; # C\n  %146 = phi i64 [%139, %$30] ; # Y\n  %147 = phi i64 [%140, %$30] ; # Z\n; # (binSize Z)\n  %148 = call i64 @binSize(i64 %147)\n; # (+ (binSize Z) 2)\n  %149 = add i64 %148, 2\n  br label %$34\n$33:\n  %150 = phi i64 [%133, %$30] ; # Exe\n  %151 = phi i64 [%134, %$30] ; # X\n  %152 = phi i64 [%135, %$30] ; # C\n  %153 = phi i64 [%139, %$30] ; # Y\n  %154 = phi i64 [%140, %$30] ; # Z\n; # (car Z)\n  %155 = inttoptr i64 %154 to i64*\n  %156 = load i64, i64* %155\n; # (binSize (car Z))\n  %157 = call i64 @binSize(i64 %156)\n; # (cdr Z)\n  %158 = inttoptr i64 %154 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n; # (binSize (cdr Z))\n  %161 = call i64 @binSize(i64 %160)\n; # (+ (binSize (car Z)) (binSize (cdr Z)))\n  %162 = add i64 %157, %161\n  br label %$34\n$34:\n  %163 = phi i64 [%143, %$32], [%150, %$33] ; # Exe\n  %164 = phi i64 [%144, %$32], [%151, %$33] ; # X\n  %165 = phi i64 [%145, %$32], [%152, %$33] ; # C\n  %166 = phi i64 [%146, %$32], [%153, %$33] ; # Y\n  %167 = phi i64 [%147, %$32], [%154, %$33] ; # Z\n  %168 = phi i64 [%149, %$32], [%162, %$33] ; # ->\n; # (+ C (if (atom Z) (+ (binSize Z) 2) (+ (binSize (car Z)) (binSize...\n  %169 = add i64 %135, %168\n  br label %$29\n$31:\n  %170 = phi i64 [%127, %$29] ; # Exe\n  %171 = phi i64 [%128, %$29] ; # X\n  %172 = phi i64 [%129, %$29] ; # C\n  %173 = phi i64 [%130, %$29] ; # Y\n; # (cnt C)\n  %174 = shl i64 %172, 4\n  %175 = or i64 %174, 2\n  br label %$7\n$27:\n  %176 = phi i64 [%110, %$25] ; # Exe\n  %177 = phi i64 [%111, %$25] ; # X\n; # (name @)\n  br label %$35\n$35:\n  %178 = phi i64 [%114, %$27], [%184, %$36] ; # Tail\n  %179 = and i64 %178, 6\n  %180 = icmp ne i64 %179, 0\n  br i1 %180, label %$37, label %$36\n$36:\n  %181 = phi i64 [%178, %$35] ; # Tail\n  %182 = inttoptr i64 %181 to i64*\n  %183 = getelementptr i64, i64* %182, i32 1\n  %184 = load i64, i64* %183\n  br label %$35\n$37:\n  %185 = phi i64 [%178, %$35] ; # Tail\n; # (== (name @) ZERO)\n  %186 = icmp eq i64 %185, 2\n  br i1 %186, label %$39, label %$38\n$39:\n  %187 = phi i64 [%176, %$37] ; # Exe\n  %188 = phi i64 [%177, %$37] ; # X\n  br label %$7\n$38:\n  %189 = phi i64 [%176, %$37] ; # Exe\n  %190 = phi i64 [%177, %$37] ; # X\n; # (cnt? @)\n  %191 = and i64 %185, 2\n  %192 = icmp ne i64 %191, 0\n  br i1 %192, label %$41, label %$40\n$41:\n  %193 = phi i64 [%189, %$38] ; # Exe\n  %194 = phi i64 [%190, %$38] ; # X\n; # (let (C ONE Z (int @)) (while (setq Z (shr Z 8)) (inc 'C (hex \"10...\n; # (int @)\n  %195 = lshr i64 %185, 4\n; # (while (setq Z (shr Z 8)) (inc 'C (hex \"10\")))\n  br label %$42\n$42:\n  %196 = phi i64 [%193, %$41], [%202, %$43] ; # Exe\n  %197 = phi i64 [%194, %$41], [%203, %$43] ; # X\n  %198 = phi i64 [18, %$41], [%206, %$43] ; # C\n  %199 = phi i64 [%195, %$41], [%205, %$43] ; # Z\n; # (shr Z 8)\n  %200 = lshr i64 %199, 8\n  %201 = icmp ne i64 %200, 0\n  br i1 %201, label %$43, label %$44\n$43:\n  %202 = phi i64 [%196, %$42] ; # Exe\n  %203 = phi i64 [%197, %$42] ; # X\n  %204 = phi i64 [%198, %$42] ; # C\n  %205 = phi i64 [%200, %$42] ; # Z\n; # (inc 'C (hex \"10\"))\n  %206 = add i64 %204, 16\n  br label %$42\n$44:\n  %207 = phi i64 [%196, %$42] ; # Exe\n  %208 = phi i64 [%197, %$42] ; # X\n  %209 = phi i64 [%198, %$42] ; # C\n  %210 = phi i64 [%200, %$42] ; # Z\n  br label %$7\n$40:\n  %211 = phi i64 [%189, %$38] ; # Exe\n  %212 = phi i64 [%190, %$38] ; # X\n; # (let (C (hex \"82\") Z @) (until (cnt? (setq Z (val (big Z)))) (inc...\n; # (until (cnt? (setq Z (val (big Z)))) (inc 'C (hex \"80\")))\n  br label %$45\n$45:\n  %213 = phi i64 [%211, %$40], [%222, %$46] ; # Exe\n  %214 = phi i64 [%212, %$40], [%223, %$46] ; # X\n  %215 = phi i64 [130, %$40], [%226, %$46] ; # C\n  %216 = phi i64 [%185, %$40], [%225, %$46] ; # Z\n; # (big Z)\n  %217 = add i64 %216, 4\n; # (val (big Z))\n  %218 = inttoptr i64 %217 to i64*\n  %219 = load i64, i64* %218\n; # (cnt? (setq Z (val (big Z))))\n  %220 = and i64 %219, 2\n  %221 = icmp ne i64 %220, 0\n  br i1 %221, label %$47, label %$46\n$46:\n  %222 = phi i64 [%213, %$45] ; # Exe\n  %223 = phi i64 [%214, %$45] ; # X\n  %224 = phi i64 [%215, %$45] ; # C\n  %225 = phi i64 [%219, %$45] ; # Z\n; # (inc 'C (hex \"80\"))\n  %226 = add i64 %224, 128\n  br label %$45\n$47:\n  %227 = phi i64 [%213, %$45] ; # Exe\n  %228 = phi i64 [%214, %$45] ; # X\n  %229 = phi i64 [%215, %$45] ; # C\n  %230 = phi i64 [%219, %$45] ; # Z\n; # (when (setq Z (int Z)) (loop (inc 'C (hex \"10\")) (? (=0 (setq Z (...\n; # (int Z)\n  %231 = lshr i64 %230, 4\n  %232 = icmp ne i64 %231, 0\n  br i1 %232, label %$48, label %$49\n$48:\n  %233 = phi i64 [%227, %$47] ; # Exe\n  %234 = phi i64 [%228, %$47] ; # X\n  %235 = phi i64 [%229, %$47] ; # C\n  %236 = phi i64 [%231, %$47] ; # Z\n; # (loop (inc 'C (hex \"10\")) (? (=0 (setq Z (shr Z 8)))))\n  br label %$50\n$50:\n  %237 = phi i64 [%233, %$48], [%244, %$51] ; # Exe\n  %238 = phi i64 [%234, %$48], [%245, %$51] ; # X\n  %239 = phi i64 [%235, %$48], [%246, %$51] ; # C\n  %240 = phi i64 [%236, %$48], [%247, %$51] ; # Z\n; # (inc 'C (hex \"10\"))\n  %241 = add i64 %239, 16\n; # (? (=0 (setq Z (shr Z 8))))\n; # (shr Z 8)\n  %242 = lshr i64 %240, 8\n; # (=0 (setq Z (shr Z 8)))\n  %243 = icmp eq i64 %242, 0\n  br i1 %243, label %$52, label %$51\n$51:\n  %244 = phi i64 [%237, %$50] ; # Exe\n  %245 = phi i64 [%238, %$50] ; # X\n  %246 = phi i64 [%241, %$50] ; # C\n  %247 = phi i64 [%242, %$50] ; # Z\n  br label %$50\n$52:\n  %248 = phi i64 [%237, %$50] ; # Exe\n  %249 = phi i64 [%238, %$50] ; # X\n  %250 = phi i64 [%241, %$50] ; # C\n  %251 = phi i64 [%242, %$50] ; # Z\n  %252 = phi i64 [0, %$50] ; # ->\n  br label %$49\n$49:\n  %253 = phi i64 [%227, %$47], [%248, %$52] ; # Exe\n  %254 = phi i64 [%228, %$47], [%249, %$52] ; # X\n  %255 = phi i64 [%229, %$47], [%250, %$52] ; # C\n  %256 = phi i64 [%231, %$47], [%251, %$52] ; # Z\n  br label %$7\n$7:\n  %257 = phi i64 [%33, %$12], [%92, %$19], [%100, %$24], [%108, %$26], [%170, %$31], [%187, %$39], [%207, %$44], [%253, %$49] ; # Exe\n  %258 = phi i64 [%34, %$12], [%93, %$19], [%101, %$24], [%109, %$26], [%171, %$31], [%188, %$39], [%208, %$44], [%254, %$49] ; # X\n  %259 = phi i64 [%35, %$12], [%94, %$19], [%104, %$24], [2, %$26], [%175, %$31], [%185, %$39], [%209, %$44], [%255, %$49] ; # ->\n  ret i64 %259\n}\n\ndefine i64 @_Bytes(i64) align 8 {\n$1:\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (binSize (eval (cadr Exe)))\n  %19 = call i64 @binSize(i64 %18)\n; # (cnt (binSize (eval (cadr Exe))))\n  %20 = shl i64 %19, 4\n  %21 = or i64 %20, 2\n  ret i64 %21\n}\n\ndefine i64 @_Assoc(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (let C (car Z) (? (and (pair C) (equal Y ...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%102, %$20] ; # Exe\n  %45 = phi i64 [%6, %$7], [%103, %$20] ; # X\n  %46 = phi i64 [%20, %$7], [%104, %$20] ; # Y\n  %47 = phi i64 [%43, %$7], [%105, %$20] ; # Z\n  %48 = phi i64 [%43, %$7], [%106, %$20] ; # H\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n  br label %$14\n$13:\n  %56 = phi i64 [%44, %$12] ; # Exe\n  %57 = phi i64 [%45, %$12] ; # X\n  %58 = phi i64 [%46, %$12] ; # Y\n  %59 = phi i64 [%47, %$12] ; # Z\n  %60 = phi i64 [%48, %$12] ; # H\n; # (let C (car Z) (? (and (pair C) (equal Y (car C))) C))\n; # (car Z)\n  %61 = inttoptr i64 %59 to i64*\n  %62 = load i64, i64* %61\n; # (? (and (pair C) (equal Y (car C))) C)\n; # (and (pair C) (equal Y (car C)))\n; # (pair C)\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%56, %$13] ; # Exe\n  %66 = phi i64 [%57, %$13] ; # X\n  %67 = phi i64 [%58, %$13] ; # Y\n  %68 = phi i64 [%59, %$13] ; # Z\n  %69 = phi i64 [%60, %$13] ; # H\n  %70 = phi i64 [%62, %$13] ; # C\n; # (car C)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n; # (equal Y (car C))\n  %73 = call i1 @equal(i64 %67, i64 %72)\n  br label %$16\n$16:\n  %74 = phi i64 [%56, %$13], [%65, %$17] ; # Exe\n  %75 = phi i64 [%57, %$13], [%66, %$17] ; # X\n  %76 = phi i64 [%58, %$13], [%67, %$17] ; # Y\n  %77 = phi i64 [%59, %$13], [%68, %$17] ; # Z\n  %78 = phi i64 [%60, %$13], [%69, %$17] ; # H\n  %79 = phi i64 [%62, %$13], [%70, %$17] ; # C\n  %80 = phi i1 [0, %$13], [%73, %$17] ; # ->\n  br i1 %80, label %$19, label %$18\n$19:\n  %81 = phi i64 [%74, %$16] ; # Exe\n  %82 = phi i64 [%75, %$16] ; # X\n  %83 = phi i64 [%76, %$16] ; # Y\n  %84 = phi i64 [%77, %$16] ; # Z\n  %85 = phi i64 [%78, %$16] ; # H\n  %86 = phi i64 [%79, %$16] ; # C\n  br label %$14\n$18:\n  %87 = phi i64 [%74, %$16] ; # Exe\n  %88 = phi i64 [%75, %$16] ; # X\n  %89 = phi i64 [%76, %$16] ; # Y\n  %90 = phi i64 [%77, %$16] ; # Z\n  %91 = phi i64 [%78, %$16] ; # H\n  %92 = phi i64 [%79, %$16] ; # C\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %93 = inttoptr i64 %90 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n; # (== H (shift Z))\n  %96 = icmp eq i64 %91, %95\n  br i1 %96, label %$21, label %$20\n$21:\n  %97 = phi i64 [%87, %$18] ; # Exe\n  %98 = phi i64 [%88, %$18] ; # X\n  %99 = phi i64 [%89, %$18] ; # Y\n  %100 = phi i64 [%95, %$18] ; # Z\n  %101 = phi i64 [%91, %$18] ; # H\n  br label %$14\n$20:\n  %102 = phi i64 [%87, %$18] ; # Exe\n  %103 = phi i64 [%88, %$18] ; # X\n  %104 = phi i64 [%89, %$18] ; # Y\n  %105 = phi i64 [%95, %$18] ; # Z\n  %106 = phi i64 [%91, %$18] ; # H\n  br label %$12\n$14:\n  %107 = phi i64 [%51, %$15], [%81, %$19], [%97, %$21] ; # Exe\n  %108 = phi i64 [%52, %$15], [%82, %$19], [%98, %$21] ; # X\n  %109 = phi i64 [%53, %$15], [%83, %$19], [%99, %$21] ; # Y\n  %110 = phi i64 [%54, %$15], [%84, %$19], [%100, %$21] ; # Z\n  %111 = phi i64 [%55, %$15], [%85, %$19], [%101, %$21] ; # H\n  %112 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%86, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (drop *Safe)\n  %113 = inttoptr i64 %24 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n  %116 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %115, i64* %116\n  ret i64 %112\n}\n\ndefine i64 @_Rassoc(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (let C (car Z) (? (and (pair C) (equal Y ...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%103, %$20] ; # Exe\n  %45 = phi i64 [%6, %$7], [%104, %$20] ; # X\n  %46 = phi i64 [%20, %$7], [%105, %$20] ; # Y\n  %47 = phi i64 [%43, %$7], [%106, %$20] ; # Z\n  %48 = phi i64 [%43, %$7], [%107, %$20] ; # H\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n  br label %$14\n$13:\n  %56 = phi i64 [%44, %$12] ; # Exe\n  %57 = phi i64 [%45, %$12] ; # X\n  %58 = phi i64 [%46, %$12] ; # Y\n  %59 = phi i64 [%47, %$12] ; # Z\n  %60 = phi i64 [%48, %$12] ; # H\n; # (let C (car Z) (? (and (pair C) (equal Y (cdr C))) C))\n; # (car Z)\n  %61 = inttoptr i64 %59 to i64*\n  %62 = load i64, i64* %61\n; # (? (and (pair C) (equal Y (cdr C))) C)\n; # (and (pair C) (equal Y (cdr C)))\n; # (pair C)\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%56, %$13] ; # Exe\n  %66 = phi i64 [%57, %$13] ; # X\n  %67 = phi i64 [%58, %$13] ; # Y\n  %68 = phi i64 [%59, %$13] ; # Z\n  %69 = phi i64 [%60, %$13] ; # H\n  %70 = phi i64 [%62, %$13] ; # C\n; # (cdr C)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n; # (equal Y (cdr C))\n  %74 = call i1 @equal(i64 %67, i64 %73)\n  br label %$16\n$16:\n  %75 = phi i64 [%56, %$13], [%65, %$17] ; # Exe\n  %76 = phi i64 [%57, %$13], [%66, %$17] ; # X\n  %77 = phi i64 [%58, %$13], [%67, %$17] ; # Y\n  %78 = phi i64 [%59, %$13], [%68, %$17] ; # Z\n  %79 = phi i64 [%60, %$13], [%69, %$17] ; # H\n  %80 = phi i64 [%62, %$13], [%70, %$17] ; # C\n  %81 = phi i1 [0, %$13], [%74, %$17] ; # ->\n  br i1 %81, label %$19, label %$18\n$19:\n  %82 = phi i64 [%75, %$16] ; # Exe\n  %83 = phi i64 [%76, %$16] ; # X\n  %84 = phi i64 [%77, %$16] ; # Y\n  %85 = phi i64 [%78, %$16] ; # Z\n  %86 = phi i64 [%79, %$16] ; # H\n  %87 = phi i64 [%80, %$16] ; # C\n  br label %$14\n$18:\n  %88 = phi i64 [%75, %$16] ; # Exe\n  %89 = phi i64 [%76, %$16] ; # X\n  %90 = phi i64 [%77, %$16] ; # Y\n  %91 = phi i64 [%78, %$16] ; # Z\n  %92 = phi i64 [%79, %$16] ; # H\n  %93 = phi i64 [%80, %$16] ; # C\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %94 = inttoptr i64 %91 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n; # (== H (shift Z))\n  %97 = icmp eq i64 %92, %96\n  br i1 %97, label %$21, label %$20\n$21:\n  %98 = phi i64 [%88, %$18] ; # Exe\n  %99 = phi i64 [%89, %$18] ; # X\n  %100 = phi i64 [%90, %$18] ; # Y\n  %101 = phi i64 [%96, %$18] ; # Z\n  %102 = phi i64 [%92, %$18] ; # H\n  br label %$14\n$20:\n  %103 = phi i64 [%88, %$18] ; # Exe\n  %104 = phi i64 [%89, %$18] ; # X\n  %105 = phi i64 [%90, %$18] ; # Y\n  %106 = phi i64 [%96, %$18] ; # Z\n  %107 = phi i64 [%92, %$18] ; # H\n  br label %$12\n$14:\n  %108 = phi i64 [%51, %$15], [%82, %$19], [%98, %$21] ; # Exe\n  %109 = phi i64 [%52, %$15], [%83, %$19], [%99, %$21] ; # X\n  %110 = phi i64 [%53, %$15], [%84, %$19], [%100, %$21] ; # Y\n  %111 = phi i64 [%54, %$15], [%85, %$19], [%101, %$21] ; # Z\n  %112 = phi i64 [%55, %$15], [%86, %$19], [%102, %$21] ; # H\n  %113 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%87, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (drop *Safe)\n  %114 = inttoptr i64 %24 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %117\n  ret i64 %113\n}\n\ndefine i64 @_Asoq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (let C (car Z) (? (and (pair C) (== Y (ca...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%102, %$20] ; # Exe\n  %45 = phi i64 [%6, %$7], [%103, %$20] ; # X\n  %46 = phi i64 [%20, %$7], [%104, %$20] ; # Y\n  %47 = phi i64 [%43, %$7], [%105, %$20] ; # Z\n  %48 = phi i64 [%43, %$7], [%106, %$20] ; # H\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n  br label %$14\n$13:\n  %56 = phi i64 [%44, %$12] ; # Exe\n  %57 = phi i64 [%45, %$12] ; # X\n  %58 = phi i64 [%46, %$12] ; # Y\n  %59 = phi i64 [%47, %$12] ; # Z\n  %60 = phi i64 [%48, %$12] ; # H\n; # (let C (car Z) (? (and (pair C) (== Y (car C))) C))\n; # (car Z)\n  %61 = inttoptr i64 %59 to i64*\n  %62 = load i64, i64* %61\n; # (? (and (pair C) (== Y (car C))) C)\n; # (and (pair C) (== Y (car C)))\n; # (pair C)\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%56, %$13] ; # Exe\n  %66 = phi i64 [%57, %$13] ; # X\n  %67 = phi i64 [%58, %$13] ; # Y\n  %68 = phi i64 [%59, %$13] ; # Z\n  %69 = phi i64 [%60, %$13] ; # H\n  %70 = phi i64 [%62, %$13] ; # C\n; # (car C)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = load i64, i64* %71\n; # (== Y (car C))\n  %73 = icmp eq i64 %67, %72\n  br label %$16\n$16:\n  %74 = phi i64 [%56, %$13], [%65, %$17] ; # Exe\n  %75 = phi i64 [%57, %$13], [%66, %$17] ; # X\n  %76 = phi i64 [%58, %$13], [%67, %$17] ; # Y\n  %77 = phi i64 [%59, %$13], [%68, %$17] ; # Z\n  %78 = phi i64 [%60, %$13], [%69, %$17] ; # H\n  %79 = phi i64 [%62, %$13], [%70, %$17] ; # C\n  %80 = phi i1 [0, %$13], [%73, %$17] ; # ->\n  br i1 %80, label %$19, label %$18\n$19:\n  %81 = phi i64 [%74, %$16] ; # Exe\n  %82 = phi i64 [%75, %$16] ; # X\n  %83 = phi i64 [%76, %$16] ; # Y\n  %84 = phi i64 [%77, %$16] ; # Z\n  %85 = phi i64 [%78, %$16] ; # H\n  %86 = phi i64 [%79, %$16] ; # C\n  br label %$14\n$18:\n  %87 = phi i64 [%74, %$16] ; # Exe\n  %88 = phi i64 [%75, %$16] ; # X\n  %89 = phi i64 [%76, %$16] ; # Y\n  %90 = phi i64 [%77, %$16] ; # Z\n  %91 = phi i64 [%78, %$16] ; # H\n  %92 = phi i64 [%79, %$16] ; # C\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %93 = inttoptr i64 %90 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n; # (== H (shift Z))\n  %96 = icmp eq i64 %91, %95\n  br i1 %96, label %$21, label %$20\n$21:\n  %97 = phi i64 [%87, %$18] ; # Exe\n  %98 = phi i64 [%88, %$18] ; # X\n  %99 = phi i64 [%89, %$18] ; # Y\n  %100 = phi i64 [%95, %$18] ; # Z\n  %101 = phi i64 [%91, %$18] ; # H\n  br label %$14\n$20:\n  %102 = phi i64 [%87, %$18] ; # Exe\n  %103 = phi i64 [%88, %$18] ; # X\n  %104 = phi i64 [%89, %$18] ; # Y\n  %105 = phi i64 [%95, %$18] ; # Z\n  %106 = phi i64 [%91, %$18] ; # H\n  br label %$12\n$14:\n  %107 = phi i64 [%51, %$15], [%81, %$19], [%97, %$21] ; # Exe\n  %108 = phi i64 [%52, %$15], [%82, %$19], [%98, %$21] ; # X\n  %109 = phi i64 [%53, %$15], [%83, %$19], [%99, %$21] ; # Y\n  %110 = phi i64 [%54, %$15], [%84, %$19], [%100, %$21] ; # Z\n  %111 = phi i64 [%55, %$15], [%85, %$19], [%101, %$21] ; # H\n  %112 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%86, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (drop *Safe)\n  %113 = inttoptr i64 %24 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n  %116 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %115, i64* %116\n  ret i64 %112\n}\n\ndefine i64 @_Rasoq(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (eval (car X)) H Z) (l...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (loop (? (atom Z) $Nil) (let C (car Z) (? (and (pair C) (== Y (cd...\n  br label %$12\n$12:\n  %44 = phi i64 [%0, %$7], [%103, %$20] ; # Exe\n  %45 = phi i64 [%6, %$7], [%104, %$20] ; # X\n  %46 = phi i64 [%20, %$7], [%105, %$20] ; # Y\n  %47 = phi i64 [%43, %$7], [%106, %$20] ; # Z\n  %48 = phi i64 [%43, %$7], [%107, %$20] ; # H\n; # (? (atom Z) $Nil)\n; # (atom Z)\n  %49 = and i64 %47, 15\n  %50 = icmp ne i64 %49, 0\n  br i1 %50, label %$15, label %$13\n$15:\n  %51 = phi i64 [%44, %$12] ; # Exe\n  %52 = phi i64 [%45, %$12] ; # X\n  %53 = phi i64 [%46, %$12] ; # Y\n  %54 = phi i64 [%47, %$12] ; # Z\n  %55 = phi i64 [%48, %$12] ; # H\n  br label %$14\n$13:\n  %56 = phi i64 [%44, %$12] ; # Exe\n  %57 = phi i64 [%45, %$12] ; # X\n  %58 = phi i64 [%46, %$12] ; # Y\n  %59 = phi i64 [%47, %$12] ; # Z\n  %60 = phi i64 [%48, %$12] ; # H\n; # (let C (car Z) (? (and (pair C) (== Y (cdr C))) C))\n; # (car Z)\n  %61 = inttoptr i64 %59 to i64*\n  %62 = load i64, i64* %61\n; # (? (and (pair C) (== Y (cdr C))) C)\n; # (and (pair C) (== Y (cdr C)))\n; # (pair C)\n  %63 = and i64 %62, 15\n  %64 = icmp eq i64 %63, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%56, %$13] ; # Exe\n  %66 = phi i64 [%57, %$13] ; # X\n  %67 = phi i64 [%58, %$13] ; # Y\n  %68 = phi i64 [%59, %$13] ; # Z\n  %69 = phi i64 [%60, %$13] ; # H\n  %70 = phi i64 [%62, %$13] ; # C\n; # (cdr C)\n  %71 = inttoptr i64 %70 to i64*\n  %72 = getelementptr i64, i64* %71, i32 1\n  %73 = load i64, i64* %72\n; # (== Y (cdr C))\n  %74 = icmp eq i64 %67, %73\n  br label %$16\n$16:\n  %75 = phi i64 [%56, %$13], [%65, %$17] ; # Exe\n  %76 = phi i64 [%57, %$13], [%66, %$17] ; # X\n  %77 = phi i64 [%58, %$13], [%67, %$17] ; # Y\n  %78 = phi i64 [%59, %$13], [%68, %$17] ; # Z\n  %79 = phi i64 [%60, %$13], [%69, %$17] ; # H\n  %80 = phi i64 [%62, %$13], [%70, %$17] ; # C\n  %81 = phi i1 [0, %$13], [%74, %$17] ; # ->\n  br i1 %81, label %$19, label %$18\n$19:\n  %82 = phi i64 [%75, %$16] ; # Exe\n  %83 = phi i64 [%76, %$16] ; # X\n  %84 = phi i64 [%77, %$16] ; # Y\n  %85 = phi i64 [%78, %$16] ; # Z\n  %86 = phi i64 [%79, %$16] ; # H\n  %87 = phi i64 [%80, %$16] ; # C\n  br label %$14\n$18:\n  %88 = phi i64 [%75, %$16] ; # Exe\n  %89 = phi i64 [%76, %$16] ; # X\n  %90 = phi i64 [%77, %$16] ; # Y\n  %91 = phi i64 [%78, %$16] ; # Z\n  %92 = phi i64 [%79, %$16] ; # H\n  %93 = phi i64 [%80, %$16] ; # C\n; # (? (== H (shift Z)) $Nil)\n; # (shift Z)\n  %94 = inttoptr i64 %91 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  %96 = load i64, i64* %95\n; # (== H (shift Z))\n  %97 = icmp eq i64 %92, %96\n  br i1 %97, label %$21, label %$20\n$21:\n  %98 = phi i64 [%88, %$18] ; # Exe\n  %99 = phi i64 [%89, %$18] ; # X\n  %100 = phi i64 [%90, %$18] ; # Y\n  %101 = phi i64 [%96, %$18] ; # Z\n  %102 = phi i64 [%92, %$18] ; # H\n  br label %$14\n$20:\n  %103 = phi i64 [%88, %$18] ; # Exe\n  %104 = phi i64 [%89, %$18] ; # X\n  %105 = phi i64 [%90, %$18] ; # Y\n  %106 = phi i64 [%96, %$18] ; # Z\n  %107 = phi i64 [%92, %$18] ; # H\n  br label %$12\n$14:\n  %108 = phi i64 [%51, %$15], [%82, %$19], [%98, %$21] ; # Exe\n  %109 = phi i64 [%52, %$15], [%83, %$19], [%99, %$21] ; # X\n  %110 = phi i64 [%53, %$15], [%84, %$19], [%100, %$21] ; # Y\n  %111 = phi i64 [%54, %$15], [%85, %$19], [%101, %$21] ; # Z\n  %112 = phi i64 [%55, %$15], [%86, %$19], [%102, %$21] ; # H\n  %113 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%87, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$21] ; # ->\n; # (drop *Safe)\n  %114 = inttoptr i64 %24 to i64*\n  %115 = getelementptr i64, i64* %114, i32 1\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %117\n  ret i64 %113\n}\n\ndefine i64 @_Rank(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (save (eval (++ X))) R...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (save (eval (++ X)))\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = alloca i64, i64 2, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = add i64 %49, 8\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %53\n; # (if (nil? (eval (car X))) (until (gt0 (compare (caar Z) Y)) (setq...\n; # (car X)\n  %54 = inttoptr i64 %31 to i64*\n  %55 = load i64, i64* %54\n; # (eval (car X))\n  %56 = and i64 %55, 6\n  %57 = icmp ne i64 %56, 0\n  br i1 %57, label %$14, label %$13\n$14:\n  %58 = phi i64 [%55, %$7] ; # X\n  br label %$12\n$13:\n  %59 = phi i64 [%55, %$7] ; # X\n  %60 = and i64 %59, 8\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$16, label %$15\n$16:\n  %62 = phi i64 [%59, %$13] ; # X\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n  br label %$12\n$15:\n  %65 = phi i64 [%59, %$13] ; # X\n  %66 = call i64 @evList(i64 %65)\n  br label %$12\n$12:\n  %67 = phi i64 [%58, %$14], [%62, %$16], [%65, %$15] ; # X\n  %68 = phi i64 [%58, %$14], [%64, %$16], [%66, %$15] ; # ->\n; # (nil? (eval (car X)))\n  %69 = icmp eq i64 %68, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %69, label %$17, label %$18\n$17:\n  %70 = phi i64 [%0, %$12] ; # Exe\n  %71 = phi i64 [%31, %$12] ; # X\n  %72 = phi i64 [%20, %$12] ; # Y\n  %73 = phi i64 [%45, %$12] ; # Z\n  %74 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # R\n; # (until (gt0 (compare (caar Z) Y)) (setq R Z) (? (atom (shift Z)))...\n  br label %$20\n$20:\n  %75 = phi i64 [%70, %$17], [%96, %$23] ; # Exe\n  %76 = phi i64 [%71, %$17], [%97, %$23] ; # X\n  %77 = phi i64 [%72, %$17], [%98, %$23] ; # Y\n  %78 = phi i64 [%73, %$17], [%99, %$23] ; # Z\n  %79 = phi i64 [%74, %$17], [%100, %$23] ; # R\n; # (caar Z)\n  %80 = inttoptr i64 %78 to i64*\n  %81 = load i64, i64* %80\n  %82 = inttoptr i64 %81 to i64*\n  %83 = load i64, i64* %82\n; # (compare (caar Z) Y)\n  %84 = call i64 @compare(i64 %83, i64 %77)\n; # (gt0 (compare (caar Z) Y))\n  %85 = icmp sgt i64 %84, 0\n  br i1 %85, label %$22, label %$21\n$21:\n  %86 = phi i64 [%75, %$20] ; # Exe\n  %87 = phi i64 [%76, %$20] ; # X\n  %88 = phi i64 [%77, %$20] ; # Y\n  %89 = phi i64 [%78, %$20] ; # Z\n  %90 = phi i64 [%79, %$20] ; # R\n; # (? (atom (shift Z)))\n; # (shift Z)\n  %91 = inttoptr i64 %89 to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (atom (shift Z))\n  %94 = and i64 %93, 15\n  %95 = icmp ne i64 %94, 0\n  br i1 %95, label %$22, label %$23\n$23:\n  %96 = phi i64 [%86, %$21] ; # Exe\n  %97 = phi i64 [%87, %$21] ; # X\n  %98 = phi i64 [%88, %$21] ; # Y\n  %99 = phi i64 [%93, %$21] ; # Z\n  %100 = phi i64 [%89, %$21] ; # R\n  br label %$20\n$22:\n  %101 = phi i64 [%75, %$20], [%86, %$21] ; # Exe\n  %102 = phi i64 [%76, %$20], [%87, %$21] ; # X\n  %103 = phi i64 [%77, %$20], [%88, %$21] ; # Y\n  %104 = phi i64 [%78, %$20], [%93, %$21] ; # Z\n  %105 = phi i64 [%79, %$20], [%89, %$21] ; # R\n  br label %$19\n$18:\n  %106 = phi i64 [%0, %$12] ; # Exe\n  %107 = phi i64 [%31, %$12] ; # X\n  %108 = phi i64 [%20, %$12] ; # Y\n  %109 = phi i64 [%45, %$12] ; # Z\n  %110 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$12] ; # R\n; # (until (lt0 (compare (caar Z) Y)) (setq R Z) (? (atom (shift Z)))...\n  br label %$24\n$24:\n  %111 = phi i64 [%106, %$18], [%132, %$27] ; # Exe\n  %112 = phi i64 [%107, %$18], [%133, %$27] ; # X\n  %113 = phi i64 [%108, %$18], [%134, %$27] ; # Y\n  %114 = phi i64 [%109, %$18], [%135, %$27] ; # Z\n  %115 = phi i64 [%110, %$18], [%136, %$27] ; # R\n; # (caar Z)\n  %116 = inttoptr i64 %114 to i64*\n  %117 = load i64, i64* %116\n  %118 = inttoptr i64 %117 to i64*\n  %119 = load i64, i64* %118\n; # (compare (caar Z) Y)\n  %120 = call i64 @compare(i64 %119, i64 %113)\n; # (lt0 (compare (caar Z) Y))\n  %121 = icmp slt i64 %120, 0\n  br i1 %121, label %$26, label %$25\n$25:\n  %122 = phi i64 [%111, %$24] ; # Exe\n  %123 = phi i64 [%112, %$24] ; # X\n  %124 = phi i64 [%113, %$24] ; # Y\n  %125 = phi i64 [%114, %$24] ; # Z\n  %126 = phi i64 [%115, %$24] ; # R\n; # (? (atom (shift Z)))\n; # (shift Z)\n  %127 = inttoptr i64 %125 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n; # (atom (shift Z))\n  %130 = and i64 %129, 15\n  %131 = icmp ne i64 %130, 0\n  br i1 %131, label %$26, label %$27\n$27:\n  %132 = phi i64 [%122, %$25] ; # Exe\n  %133 = phi i64 [%123, %$25] ; # X\n  %134 = phi i64 [%124, %$25] ; # Y\n  %135 = phi i64 [%129, %$25] ; # Z\n  %136 = phi i64 [%125, %$25] ; # R\n  br label %$24\n$26:\n  %137 = phi i64 [%111, %$24], [%122, %$25] ; # Exe\n  %138 = phi i64 [%112, %$24], [%123, %$25] ; # X\n  %139 = phi i64 [%113, %$24], [%124, %$25] ; # Y\n  %140 = phi i64 [%114, %$24], [%129, %$25] ; # Z\n  %141 = phi i64 [%115, %$24], [%125, %$25] ; # R\n  br label %$19\n$19:\n  %142 = phi i64 [%101, %$22], [%137, %$26] ; # Exe\n  %143 = phi i64 [%102, %$22], [%138, %$26] ; # X\n  %144 = phi i64 [%103, %$22], [%139, %$26] ; # Y\n  %145 = phi i64 [%104, %$22], [%140, %$26] ; # Z\n  %146 = phi i64 [%105, %$22], [%141, %$26] ; # R\n; # (car R)\n  %147 = inttoptr i64 %146 to i64*\n  %148 = load i64, i64* %147\n; # (drop *Safe)\n  %149 = inttoptr i64 %24 to i64*\n  %150 = getelementptr i64, i64* %149, i32 1\n  %151 = load i64, i64* %150\n  %152 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %151, i64* %152\n  ret i64 %148\n}\n\ndefine i1 @match(i64, i64) align 8 {\n$1:\n; # (loop (? (atom Pat) (if (or (num? Pat) (<> (firstByte Pat) (char ...\n  br label %$2\n$2:\n  %2 = phi i64 [%0, %$1], [%138, %$29] ; # Pat\n  %3 = phi i64 [%1, %$1], [%141, %$29] ; # Dat\n; # (? (atom Pat) (if (or (num? Pat) (<> (firstByte Pat) (char \"@\")))...\n; # (atom Pat)\n  %4 = and i64 %2, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$5, label %$3\n$5:\n  %6 = phi i64 [%2, %$2] ; # Pat\n  %7 = phi i64 [%3, %$2] ; # Dat\n; # (if (or (num? Pat) (<> (firstByte Pat) (char \"@\"))) (equal Pat Da...\n; # (or (num? Pat) (<> (firstByte Pat) (char \"@\")))\n; # (num? Pat)\n  %8 = and i64 %6, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$6, label %$7\n$7:\n  %10 = phi i64 [%6, %$5] ; # Pat\n  %11 = phi i64 [%7, %$5] ; # Dat\n; # (firstByte Pat)\n  %12 = call i8 @firstByte(i64 %10)\n; # (<> (firstByte Pat) (char \"@\"))\n  %13 = icmp ne i8 %12, 64\n  br label %$6\n$6:\n  %14 = phi i64 [%6, %$5], [%10, %$7] ; # Pat\n  %15 = phi i64 [%7, %$5], [%11, %$7] ; # Dat\n  %16 = phi i1 [1, %$5], [%13, %$7] ; # ->\n  br i1 %16, label %$8, label %$9\n$8:\n  %17 = phi i64 [%14, %$6] ; # Pat\n  %18 = phi i64 [%15, %$6] ; # Dat\n; # (equal Pat Dat)\n  %19 = call i1 @equal(i64 %17, i64 %18)\n  br label %$10\n$9:\n  %20 = phi i64 [%14, %$6] ; # Pat\n  %21 = phi i64 [%15, %$6] ; # Dat\n; # (set Pat Dat)\n  %22 = inttoptr i64 %20 to i64*\n  store i64 %21, i64* %22\n  br label %$10\n$10:\n  %23 = phi i64 [%17, %$8], [%20, %$9] ; # Pat\n  %24 = phi i64 [%18, %$8], [%21, %$9] ; # Dat\n  %25 = phi i1 [%19, %$8], [1, %$9] ; # ->\n  br label %$4\n$3:\n  %26 = phi i64 [%2, %$2] ; # Pat\n  %27 = phi i64 [%3, %$2] ; # Dat\n; # (stkChk 0)\n  %28 = load i8*, i8** @$StkLimit\n  %29 = call i8* @llvm.stacksave()\n  %30 = icmp ugt i8* %28, %29\n  br i1 %30, label %$11, label %$12\n$11:\n  %31 = phi i64 [0, %$3] ; # Exe\n  call void @stkErr(i64 %31)\n  unreachable\n$12:\n  %32 = phi i64 [0, %$3] ; # Exe\n; # (let X (car Pat) (when (and (symb? X) (== (firstByte X) (char \"@\"...\n; # (car Pat)\n  %33 = inttoptr i64 %26 to i64*\n  %34 = load i64, i64* %33\n; # (when (and (symb? X) (== (firstByte X) (char \"@\"))) (? (atom Dat)...\n; # (and (symb? X) (== (firstByte X) (char \"@\")))\n; # (symb? X)\n  %35 = xor i64 %34, 8\n  %36 = and i64 %35, 14\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$14, label %$13\n$14:\n  %38 = phi i64 [%26, %$12] ; # Pat\n  %39 = phi i64 [%27, %$12] ; # Dat\n  %40 = phi i64 [%34, %$12] ; # X\n; # (firstByte X)\n  %41 = call i8 @firstByte(i64 %40)\n; # (== (firstByte X) (char \"@\"))\n  %42 = icmp eq i8 %41, 64\n  br label %$13\n$13:\n  %43 = phi i64 [%26, %$12], [%38, %$14] ; # Pat\n  %44 = phi i64 [%27, %$12], [%39, %$14] ; # Dat\n  %45 = phi i64 [%34, %$12], [%40, %$14] ; # X\n  %46 = phi i1 [0, %$12], [%42, %$14] ; # ->\n  br i1 %46, label %$15, label %$16\n$15:\n  %47 = phi i64 [%43, %$13] ; # Pat\n  %48 = phi i64 [%44, %$13] ; # Dat\n  %49 = phi i64 [%45, %$13] ; # X\n; # (? (atom Dat) (and (equal (cdr Pat) Dat) (prog (set X $Nil) YES))...\n; # (atom Dat)\n  %50 = and i64 %48, 15\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$18, label %$17\n$18:\n  %52 = phi i64 [%47, %$15] ; # Pat\n  %53 = phi i64 [%48, %$15] ; # Dat\n  %54 = phi i64 [%49, %$15] ; # X\n; # (and (equal (cdr Pat) Dat) (prog (set X $Nil) YES))\n; # (cdr Pat)\n  %55 = inttoptr i64 %52 to i64*\n  %56 = getelementptr i64, i64* %55, i32 1\n  %57 = load i64, i64* %56\n; # (equal (cdr Pat) Dat)\n  %58 = call i1 @equal(i64 %57, i64 %53)\n  br i1 %58, label %$20, label %$19\n$20:\n  %59 = phi i64 [%52, %$18] ; # Pat\n  %60 = phi i64 [%53, %$18] ; # Dat\n  %61 = phi i64 [%54, %$18] ; # X\n; # (set X $Nil)\n  %62 = inttoptr i64 %61 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %62\n  br label %$19\n$19:\n  %63 = phi i64 [%52, %$18], [%59, %$20] ; # Pat\n  %64 = phi i64 [%53, %$18], [%60, %$20] ; # Dat\n  %65 = phi i64 [%54, %$18], [%61, %$20] ; # X\n  %66 = phi i1 [0, %$18], [1, %$20] ; # ->\n  br label %$4\n$17:\n  %67 = phi i64 [%47, %$15] ; # Pat\n  %68 = phi i64 [%48, %$15] ; # Dat\n  %69 = phi i64 [%49, %$15] ; # X\n; # (? (match (cdr Pat) (cdr Dat)) (set X (cons (car Dat) $Nil)) YES)...\n; # (cdr Pat)\n  %70 = inttoptr i64 %67 to i64*\n  %71 = getelementptr i64, i64* %70, i32 1\n  %72 = load i64, i64* %71\n; # (cdr Dat)\n  %73 = inttoptr i64 %68 to i64*\n  %74 = getelementptr i64, i64* %73, i32 1\n  %75 = load i64, i64* %74\n; # (match (cdr Pat) (cdr Dat))\n  %76 = call i1 @match(i64 %72, i64 %75)\n  br i1 %76, label %$22, label %$21\n$22:\n  %77 = phi i64 [%67, %$17] ; # Pat\n  %78 = phi i64 [%68, %$17] ; # Dat\n  %79 = phi i64 [%69, %$17] ; # X\n; # (set X (cons (car Dat) $Nil))\n; # (car Dat)\n  %80 = inttoptr i64 %78 to i64*\n  %81 = load i64, i64* %80\n; # (cons (car Dat) $Nil)\n  %82 = call i64 @cons(i64 %81, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %83 = inttoptr i64 %79 to i64*\n  store i64 %82, i64* %83\n  br label %$4\n$21:\n  %84 = phi i64 [%67, %$17] ; # Pat\n  %85 = phi i64 [%68, %$17] ; # Dat\n  %86 = phi i64 [%69, %$17] ; # X\n; # (? (match (cdr Pat) Dat) (set X $Nil) YES)\n; # (cdr Pat)\n  %87 = inttoptr i64 %84 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  %89 = load i64, i64* %88\n; # (match (cdr Pat) Dat)\n  %90 = call i1 @match(i64 %89, i64 %85)\n  br i1 %90, label %$24, label %$23\n$24:\n  %91 = phi i64 [%84, %$21] ; # Pat\n  %92 = phi i64 [%85, %$21] ; # Dat\n  %93 = phi i64 [%86, %$21] ; # X\n; # (set X $Nil)\n  %94 = inttoptr i64 %93 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %94\n  br label %$4\n$23:\n  %95 = phi i64 [%84, %$21] ; # Pat\n  %96 = phi i64 [%85, %$21] ; # Dat\n  %97 = phi i64 [%86, %$21] ; # X\n; # (? (match Pat (cdr Dat)) (set X (cons (car Dat) (val X))) YES)\n; # (cdr Dat)\n  %98 = inttoptr i64 %96 to i64*\n  %99 = getelementptr i64, i64* %98, i32 1\n  %100 = load i64, i64* %99\n; # (match Pat (cdr Dat))\n  %101 = call i1 @match(i64 %95, i64 %100)\n  br i1 %101, label %$26, label %$25\n$26:\n  %102 = phi i64 [%95, %$23] ; # Pat\n  %103 = phi i64 [%96, %$23] ; # Dat\n  %104 = phi i64 [%97, %$23] ; # X\n; # (set X (cons (car Dat) (val X)))\n; # (car Dat)\n  %105 = inttoptr i64 %103 to i64*\n  %106 = load i64, i64* %105\n; # (val X)\n  %107 = inttoptr i64 %104 to i64*\n  %108 = load i64, i64* %107\n; # (cons (car Dat) (val X))\n  %109 = call i64 @cons(i64 %106, i64 %108)\n  %110 = inttoptr i64 %104 to i64*\n  store i64 %109, i64* %110\n  br label %$4\n$25:\n  %111 = phi i64 [%95, %$23] ; # Pat\n  %112 = phi i64 [%96, %$23] ; # Dat\n  %113 = phi i64 [%97, %$23] ; # X\n  br label %$16\n$16:\n  %114 = phi i64 [%43, %$13], [%111, %$25] ; # Pat\n  %115 = phi i64 [%44, %$13], [%112, %$25] ; # Dat\n  %116 = phi i64 [%45, %$13], [%113, %$25] ; # X\n; # (? (or (atom Dat) (not (match X (car Dat)))) NO)\n; # (or (atom Dat) (not (match X (car Dat))))\n; # (atom Dat)\n  %117 = and i64 %115, 15\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$27, label %$28\n$28:\n  %119 = phi i64 [%114, %$16] ; # Pat\n  %120 = phi i64 [%115, %$16] ; # Dat\n  %121 = phi i64 [%116, %$16] ; # X\n; # (car Dat)\n  %122 = inttoptr i64 %120 to i64*\n  %123 = load i64, i64* %122\n; # (match X (car Dat))\n  %124 = call i1 @match(i64 %121, i64 %123)\n; # (not (match X (car Dat)))\n  %125 = icmp eq i1 %124, 0\n  br label %$27\n$27:\n  %126 = phi i64 [%114, %$16], [%119, %$28] ; # Pat\n  %127 = phi i64 [%115, %$16], [%120, %$28] ; # Dat\n  %128 = phi i64 [%116, %$16], [%121, %$28] ; # X\n  %129 = phi i1 [1, %$16], [%125, %$28] ; # ->\n  br i1 %129, label %$30, label %$29\n$30:\n  %130 = phi i64 [%126, %$27] ; # Pat\n  %131 = phi i64 [%127, %$27] ; # Dat\n  %132 = phi i64 [%128, %$27] ; # X\n  br label %$4\n$29:\n  %133 = phi i64 [%126, %$27] ; # Pat\n  %134 = phi i64 [%127, %$27] ; # Dat\n  %135 = phi i64 [%128, %$27] ; # X\n; # (shift Pat)\n  %136 = inttoptr i64 %133 to i64*\n  %137 = getelementptr i64, i64* %136, i32 1\n  %138 = load i64, i64* %137\n; # (shift Dat)\n  %139 = inttoptr i64 %134 to i64*\n  %140 = getelementptr i64, i64* %139, i32 1\n  %141 = load i64, i64* %140\n  br label %$2\n$4:\n  %142 = phi i64 [%23, %$10], [%63, %$19], [%77, %$22], [%91, %$24], [%102, %$26], [%130, %$30] ; # Pat\n  %143 = phi i64 [%24, %$10], [%64, %$19], [%78, %$22], [%92, %$24], [%103, %$26], [%131, %$30] ; # Dat\n  %144 = phi i1 [%25, %$10], [%66, %$19], [1, %$22], [1, %$24], [1, %$26], [0, %$30] ; # ->\n  ret i1 %144\n}\n\ndefine i64 @_Match(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (match (save (eval (++ X))) (save (eval (car...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (match (save (eval (++ X))) (save (eval (car X)))) $T $Nil)\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (save (eval (car X)))\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %45 = load i64, i64* %44\n  %46 = alloca i64, i64 2, align 16\n  %47 = ptrtoint i64* %46 to i64\n  %48 = inttoptr i64 %47 to i64*\n  store i64 %43, i64* %48\n  %49 = add i64 %47, 8\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %47, i64* %51\n; # (match (save (eval (++ X))) (save (eval (car X))))\n  %52 = call i1 @match(i64 %20, i64 %43)\n  br i1 %52, label %$12, label %$13\n$12:\n  %53 = phi i64 [%0, %$7] ; # Exe\n  %54 = phi i64 [%6, %$7] ; # X\n  br label %$14\n$13:\n  %55 = phi i64 [%0, %$7] ; # Exe\n  %56 = phi i64 [%6, %$7] ; # X\n  br label %$14\n$14:\n  %57 = phi i64 [%53, %$12], [%55, %$13] ; # Exe\n  %58 = phi i64 [%54, %$12], [%56, %$13] ; # X\n  %59 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13] ; # ->\n; # (drop *Safe)\n  %60 = inttoptr i64 %24 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %63\n  ret i64 %59\n}\n\ndefine i64 @fill2(i64, i64) align 8 {\n$1:\n; # (cond ((num? X) 0) ((sym? X) (let V (val X) (cond ((== X V) 0) ((...\n; # (num? X)\n  %2 = and i64 %0, 6\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$4, label %$3\n$4:\n  %4 = phi i64 [%0, %$1] ; # X\n  %5 = phi i64 [%1, %$1] ; # Y\n  br label %$2\n$3:\n  %6 = phi i64 [%0, %$1] ; # X\n  %7 = phi i64 [%1, %$1] ; # Y\n; # (sym? X)\n  %8 = and i64 %6, 8\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$6, label %$5\n$6:\n  %10 = phi i64 [%6, %$3] ; # X\n  %11 = phi i64 [%7, %$3] ; # Y\n; # (let V (val X) (cond ((== X V) 0) ((nil? Y) (cond ((== X $At) 0) ...\n; # (val X)\n  %12 = inttoptr i64 %10 to i64*\n  %13 = load i64, i64* %12\n; # (cond ((== X V) 0) ((nil? Y) (cond ((== X $At) 0) ((== (firstByte...\n; # (== X V)\n  %14 = icmp eq i64 %10, %13\n  br i1 %14, label %$9, label %$8\n$9:\n  %15 = phi i64 [%10, %$6] ; # X\n  %16 = phi i64 [%11, %$6] ; # Y\n  %17 = phi i64 [%13, %$6] ; # V\n  br label %$7\n$8:\n  %18 = phi i64 [%10, %$6] ; # X\n  %19 = phi i64 [%11, %$6] ; # Y\n  %20 = phi i64 [%13, %$6] ; # V\n; # (nil? Y)\n  %21 = icmp eq i64 %19, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$11, label %$10\n$11:\n  %22 = phi i64 [%18, %$8] ; # X\n  %23 = phi i64 [%19, %$8] ; # Y\n  %24 = phi i64 [%20, %$8] ; # V\n; # (cond ((== X $At) 0) ((== (firstByte X) (char \"@\")) V) (T 0))\n; # (== X $At)\n  %25 = icmp eq i64 %22, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %25, label %$14, label %$13\n$14:\n  %26 = phi i64 [%22, %$11] ; # X\n  %27 = phi i64 [%23, %$11] ; # Y\n  %28 = phi i64 [%24, %$11] ; # V\n  br label %$12\n$13:\n  %29 = phi i64 [%22, %$11] ; # X\n  %30 = phi i64 [%23, %$11] ; # Y\n  %31 = phi i64 [%24, %$11] ; # V\n; # (firstByte X)\n  %32 = call i8 @firstByte(i64 %29)\n; # (== (firstByte X) (char \"@\"))\n  %33 = icmp eq i8 %32, 64\n  br i1 %33, label %$16, label %$15\n$16:\n  %34 = phi i64 [%29, %$13] ; # X\n  %35 = phi i64 [%30, %$13] ; # Y\n  %36 = phi i64 [%31, %$13] ; # V\n  br label %$12\n$15:\n  %37 = phi i64 [%29, %$13] ; # X\n  %38 = phi i64 [%30, %$13] ; # Y\n  %39 = phi i64 [%31, %$13] ; # V\n  br label %$12\n$12:\n  %40 = phi i64 [%26, %$14], [%34, %$16], [%37, %$15] ; # X\n  %41 = phi i64 [%27, %$14], [%35, %$16], [%38, %$15] ; # Y\n  %42 = phi i64 [%28, %$14], [%36, %$16], [%39, %$15] ; # V\n  %43 = phi i64 [0, %$14], [%36, %$16], [0, %$15] ; # ->\n  br label %$7\n$10:\n  %44 = phi i64 [%18, %$8] ; # X\n  %45 = phi i64 [%19, %$8] ; # Y\n  %46 = phi i64 [%20, %$8] ; # V\n; # (or (== X Y) (memq X Y))\n; # (== X Y)\n  %47 = icmp eq i64 %44, %45\n  br i1 %47, label %$17, label %$18\n$18:\n  %48 = phi i64 [%44, %$10] ; # X\n  %49 = phi i64 [%45, %$10] ; # Y\n  %50 = phi i64 [%46, %$10] ; # V\n; # (memq X Y)\n  br label %$19\n$19:\n  %51 = phi i64 [%49, %$18], [%68, %$23] ; # L\n  %52 = phi i64 [%48, %$18], [%65, %$23] ; # X\n  %53 = and i64 %51, 15\n  %54 = icmp ne i64 %53, 0\n  br i1 %54, label %$22, label %$20\n$22:\n  %55 = phi i64 [%51, %$19] ; # L\n  %56 = phi i64 [%52, %$19] ; # X\n  br label %$21\n$20:\n  %57 = phi i64 [%51, %$19] ; # L\n  %58 = phi i64 [%52, %$19] ; # X\n  %59 = inttoptr i64 %57 to i64*\n  %60 = load i64, i64* %59\n  %61 = icmp eq i64 %58, %60\n  br i1 %61, label %$24, label %$23\n$24:\n  %62 = phi i64 [%57, %$20] ; # L\n  %63 = phi i64 [%58, %$20] ; # X\n  br label %$21\n$23:\n  %64 = phi i64 [%57, %$20] ; # L\n  %65 = phi i64 [%58, %$20] ; # X\n  %66 = inttoptr i64 %64 to i64*\n  %67 = getelementptr i64, i64* %66, i32 1\n  %68 = load i64, i64* %67\n  br label %$19\n$21:\n  %69 = phi i64 [%55, %$22], [%62, %$24] ; # L\n  %70 = phi i64 [%56, %$22], [%63, %$24] ; # X\n  %71 = phi i1 [0, %$22], [1, %$24] ; # ->\n  br label %$17\n$17:\n  %72 = phi i64 [%44, %$10], [%48, %$21] ; # X\n  %73 = phi i64 [%45, %$10], [%49, %$21] ; # Y\n  %74 = phi i64 [%46, %$10], [%50, %$21] ; # V\n  %75 = phi i1 [1, %$10], [%71, %$21] ; # ->\n  br i1 %75, label %$26, label %$25\n$26:\n  %76 = phi i64 [%72, %$17] ; # X\n  %77 = phi i64 [%73, %$17] ; # Y\n  %78 = phi i64 [%74, %$17] ; # V\n  br label %$7\n$25:\n  %79 = phi i64 [%72, %$17] ; # X\n  %80 = phi i64 [%73, %$17] ; # Y\n  %81 = phi i64 [%74, %$17] ; # V\n  br label %$7\n$7:\n  %82 = phi i64 [%15, %$9], [%40, %$12], [%76, %$26], [%79, %$25] ; # X\n  %83 = phi i64 [%16, %$9], [%41, %$12], [%77, %$26], [%80, %$25] ; # Y\n  %84 = phi i64 [%17, %$9], [%42, %$12], [%78, %$26], [%81, %$25] ; # V\n  %85 = phi i64 [0, %$9], [%43, %$12], [%78, %$26], [0, %$25] ; # ->\n  br label %$2\n$5:\n  %86 = phi i64 [%6, %$3] ; # X\n  %87 = phi i64 [%7, %$3] ; # Y\n; # (stkChk 0)\n  %88 = load i8*, i8** @$StkLimit\n  %89 = call i8* @llvm.stacksave()\n  %90 = icmp ugt i8* %88, %89\n  br i1 %90, label %$27, label %$28\n$27:\n  %91 = phi i64 [0, %$5] ; # Exe\n  call void @stkErr(i64 %91)\n  unreachable\n$28:\n  %92 = phi i64 [0, %$5] ; # Exe\n; # (let Z (++ X) (if (== Z $Up) (let V (eval (++ X)) (if (nil? V) (i...\n; # (++ X)\n  %93 = inttoptr i64 %86 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  %95 = load i64, i64* %94\n  %96 = load i64, i64* %93\n; # (if (== Z $Up) (let V (eval (++ X)) (if (nil? V) (if (fill2 X Y) ...\n; # (== Z $Up)\n  %97 = icmp eq i64 %96, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64)\n  br i1 %97, label %$29, label %$30\n$29:\n  %98 = phi i64 [%95, %$28] ; # X\n  %99 = phi i64 [%87, %$28] ; # Y\n  %100 = phi i64 [%96, %$28] ; # Z\n; # (let V (eval (++ X)) (if (nil? V) (if (fill2 X Y) @ X) (save (set...\n; # (++ X)\n  %101 = inttoptr i64 %98 to i64*\n  %102 = getelementptr i64, i64* %101, i32 1\n  %103 = load i64, i64* %102\n  %104 = load i64, i64* %101\n; # (eval (++ X))\n  %105 = and i64 %104, 6\n  %106 = icmp ne i64 %105, 0\n  br i1 %106, label %$34, label %$33\n$34:\n  %107 = phi i64 [%104, %$29] ; # X\n  br label %$32\n$33:\n  %108 = phi i64 [%104, %$29] ; # X\n  %109 = and i64 %108, 8\n  %110 = icmp ne i64 %109, 0\n  br i1 %110, label %$36, label %$35\n$36:\n  %111 = phi i64 [%108, %$33] ; # X\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n  br label %$32\n$35:\n  %114 = phi i64 [%108, %$33] ; # X\n  %115 = call i64 @evList(i64 %114)\n  br label %$32\n$32:\n  %116 = phi i64 [%107, %$34], [%111, %$36], [%114, %$35] ; # X\n  %117 = phi i64 [%107, %$34], [%113, %$36], [%115, %$35] ; # ->\n; # (if (nil? V) (if (fill2 X Y) @ X) (save (setq Z V) (if (atom V) (...\n; # (nil? V)\n  %118 = icmp eq i64 %117, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %118, label %$37, label %$38\n$37:\n  %119 = phi i64 [%103, %$32] ; # X\n  %120 = phi i64 [%99, %$32] ; # Y\n  %121 = phi i64 [%100, %$32] ; # Z\n  %122 = phi i64 [%117, %$32] ; # V\n; # (if (fill2 X Y) @ X)\n; # (fill2 X Y)\n  %123 = call i64 @fill2(i64 %119, i64 %120)\n  %124 = icmp ne i64 %123, 0\n  br i1 %124, label %$40, label %$41\n$40:\n  %125 = phi i64 [%119, %$37] ; # X\n  %126 = phi i64 [%120, %$37] ; # Y\n  %127 = phi i64 [%121, %$37] ; # Z\n  %128 = phi i64 [%122, %$37] ; # V\n  br label %$42\n$41:\n  %129 = phi i64 [%119, %$37] ; # X\n  %130 = phi i64 [%120, %$37] ; # Y\n  %131 = phi i64 [%121, %$37] ; # Z\n  %132 = phi i64 [%122, %$37] ; # V\n  br label %$42\n$42:\n  %133 = phi i64 [%125, %$40], [%129, %$41] ; # X\n  %134 = phi i64 [%126, %$40], [%130, %$41] ; # Y\n  %135 = phi i64 [%127, %$40], [%131, %$41] ; # Z\n  %136 = phi i64 [%128, %$40], [%132, %$41] ; # V\n  %137 = phi i64 [%123, %$40], [%129, %$41] ; # ->\n  br label %$39\n$38:\n  %138 = phi i64 [%103, %$32] ; # X\n  %139 = phi i64 [%99, %$32] ; # Y\n  %140 = phi i64 [%100, %$32] ; # Z\n  %141 = phi i64 [%117, %$32] ; # V\n; # (save (setq Z V) (if (atom V) (safe (setq Z (setq V (cons V $Nil)...\n  %142 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %143 = load i64, i64* %142\n  %144 = alloca i64, i64 2, align 16\n  %145 = ptrtoint i64* %144 to i64\n  %146 = inttoptr i64 %145 to i64*\n  store i64 %141, i64* %146\n  %147 = add i64 %145, 8\n  %148 = inttoptr i64 %147 to i64*\n  store i64 %143, i64* %148\n  %149 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %145, i64* %149\n; # (if (atom V) (safe (setq Z (setq V (cons V $Nil)))) (while (pair ...\n; # (atom V)\n  %150 = and i64 %141, 15\n  %151 = icmp ne i64 %150, 0\n  br i1 %151, label %$43, label %$44\n$43:\n  %152 = phi i64 [%138, %$38] ; # X\n  %153 = phi i64 [%139, %$38] ; # Y\n  %154 = phi i64 [%141, %$38] ; # Z\n  %155 = phi i64 [%141, %$38] ; # V\n; # (cons V $Nil)\n  %156 = call i64 @cons(i64 %155, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (safe (setq Z (setq V (cons V $Nil))))\n  %157 = inttoptr i64 %145 to i64*\n  store i64 %156, i64* %157\n  br label %$45\n$44:\n  %158 = phi i64 [%138, %$38] ; # X\n  %159 = phi i64 [%139, %$38] ; # Y\n  %160 = phi i64 [%141, %$38] ; # Z\n  %161 = phi i64 [%141, %$38] ; # V\n; # (while (pair (cdr V)) (setq V @))\n  br label %$46\n$46:\n  %162 = phi i64 [%158, %$44], [%171, %$47] ; # X\n  %163 = phi i64 [%159, %$44], [%172, %$47] ; # Y\n  %164 = phi i64 [%160, %$44], [%173, %$47] ; # Z\n  %165 = phi i64 [%161, %$44], [%168, %$47] ; # V\n; # (cdr V)\n  %166 = inttoptr i64 %165 to i64*\n  %167 = getelementptr i64, i64* %166, i32 1\n  %168 = load i64, i64* %167\n; # (pair (cdr V))\n  %169 = and i64 %168, 15\n  %170 = icmp eq i64 %169, 0\n  br i1 %170, label %$47, label %$48\n$47:\n  %171 = phi i64 [%162, %$46] ; # X\n  %172 = phi i64 [%163, %$46] ; # Y\n  %173 = phi i64 [%164, %$46] ; # Z\n  %174 = phi i64 [%165, %$46] ; # V\n  br label %$46\n$48:\n  %175 = phi i64 [%162, %$46] ; # X\n  %176 = phi i64 [%163, %$46] ; # Y\n  %177 = phi i64 [%164, %$46] ; # Z\n  %178 = phi i64 [%165, %$46] ; # V\n  br label %$45\n$45:\n  %179 = phi i64 [%152, %$43], [%175, %$48] ; # X\n  %180 = phi i64 [%153, %$43], [%176, %$48] ; # Y\n  %181 = phi i64 [%156, %$43], [%177, %$48] ; # Z\n  %182 = phi i64 [%156, %$43], [%178, %$48] ; # V\n; # (set 2 V (if (fill2 X Y) @ X))\n; # (if (fill2 X Y) @ X)\n; # (fill2 X Y)\n  %183 = call i64 @fill2(i64 %179, i64 %180)\n  %184 = icmp ne i64 %183, 0\n  br i1 %184, label %$49, label %$50\n$49:\n  %185 = phi i64 [%179, %$45] ; # X\n  %186 = phi i64 [%180, %$45] ; # Y\n  %187 = phi i64 [%181, %$45] ; # Z\n  %188 = phi i64 [%182, %$45] ; # V\n  br label %$51\n$50:\n  %189 = phi i64 [%179, %$45] ; # X\n  %190 = phi i64 [%180, %$45] ; # Y\n  %191 = phi i64 [%181, %$45] ; # Z\n  %192 = phi i64 [%182, %$45] ; # V\n  br label %$51\n$51:\n  %193 = phi i64 [%185, %$49], [%189, %$50] ; # X\n  %194 = phi i64 [%186, %$49], [%190, %$50] ; # Y\n  %195 = phi i64 [%187, %$49], [%191, %$50] ; # Z\n  %196 = phi i64 [%188, %$49], [%192, %$50] ; # V\n  %197 = phi i64 [%183, %$49], [%189, %$50] ; # ->\n  %198 = inttoptr i64 %182 to i64*\n  %199 = getelementptr i64, i64* %198, i32 1\n  store i64 %197, i64* %199\n; # drop\n  %200 = inttoptr i64 %145 to i64*\n  %201 = getelementptr i64, i64* %200, i32 1\n  %202 = load i64, i64* %201\n  %203 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %202, i64* %203\n  br label %$39\n$39:\n  %204 = phi i64 [%133, %$42], [%193, %$51] ; # X\n  %205 = phi i64 [%134, %$42], [%194, %$51] ; # Y\n  %206 = phi i64 [%135, %$42], [%195, %$51] ; # Z\n  %207 = phi i64 [%136, %$42], [%196, %$51] ; # V\n  %208 = phi i64 [%137, %$42], [%195, %$51] ; # ->\n  br label %$31\n$30:\n  %209 = phi i64 [%95, %$28] ; # X\n  %210 = phi i64 [%87, %$28] ; # Y\n  %211 = phi i64 [%96, %$28] ; # Z\n; # (cond ((fill2 Z Y) (save @ (cons @ (if (fill2 X Y) @ X)))) ((fill...\n; # (fill2 Z Y)\n  %212 = call i64 @fill2(i64 %211, i64 %210)\n  %213 = icmp ne i64 %212, 0\n  br i1 %213, label %$54, label %$53\n$54:\n  %214 = phi i64 [%209, %$30] ; # X\n  %215 = phi i64 [%210, %$30] ; # Y\n  %216 = phi i64 [%211, %$30] ; # Z\n; # (save @ (cons @ (if (fill2 X Y) @ X)))\n  %217 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %218 = load i64, i64* %217\n  %219 = alloca i64, i64 2, align 16\n  %220 = ptrtoint i64* %219 to i64\n  %221 = inttoptr i64 %220 to i64*\n  store i64 %212, i64* %221\n  %222 = add i64 %220, 8\n  %223 = inttoptr i64 %222 to i64*\n  store i64 %218, i64* %223\n  %224 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %220, i64* %224\n; # (if (fill2 X Y) @ X)\n; # (fill2 X Y)\n  %225 = call i64 @fill2(i64 %214, i64 %215)\n  %226 = icmp ne i64 %225, 0\n  br i1 %226, label %$55, label %$56\n$55:\n  %227 = phi i64 [%214, %$54] ; # X\n  %228 = phi i64 [%215, %$54] ; # Y\n  %229 = phi i64 [%216, %$54] ; # Z\n  br label %$57\n$56:\n  %230 = phi i64 [%214, %$54] ; # X\n  %231 = phi i64 [%215, %$54] ; # Y\n  %232 = phi i64 [%216, %$54] ; # Z\n  br label %$57\n$57:\n  %233 = phi i64 [%227, %$55], [%230, %$56] ; # X\n  %234 = phi i64 [%228, %$55], [%231, %$56] ; # Y\n  %235 = phi i64 [%229, %$55], [%232, %$56] ; # Z\n  %236 = phi i64 [%225, %$55], [%230, %$56] ; # ->\n; # (cons @ (if (fill2 X Y) @ X))\n  %237 = call i64 @cons(i64 %212, i64 %236)\n; # drop\n  %238 = inttoptr i64 %220 to i64*\n  %239 = getelementptr i64, i64* %238, i32 1\n  %240 = load i64, i64* %239\n  %241 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %240, i64* %241\n  br label %$52\n$53:\n  %242 = phi i64 [%209, %$30] ; # X\n  %243 = phi i64 [%210, %$30] ; # Y\n  %244 = phi i64 [%211, %$30] ; # Z\n; # (fill2 X Y)\n  %245 = call i64 @fill2(i64 %242, i64 %243)\n  %246 = icmp ne i64 %245, 0\n  br i1 %246, label %$59, label %$58\n$59:\n  %247 = phi i64 [%242, %$53] ; # X\n  %248 = phi i64 [%243, %$53] ; # Y\n  %249 = phi i64 [%244, %$53] ; # Z\n; # (cons Z @)\n  %250 = call i64 @cons(i64 %249, i64 %245)\n  br label %$52\n$58:\n  %251 = phi i64 [%242, %$53] ; # X\n  %252 = phi i64 [%243, %$53] ; # Y\n  %253 = phi i64 [%244, %$53] ; # Z\n  br label %$52\n$52:\n  %254 = phi i64 [%233, %$57], [%247, %$59], [%251, %$58] ; # X\n  %255 = phi i64 [%234, %$57], [%248, %$59], [%252, %$58] ; # Y\n  %256 = phi i64 [%235, %$57], [%249, %$59], [%253, %$58] ; # Z\n  %257 = phi i64 [%237, %$57], [%250, %$59], [0, %$58] ; # ->\n  br label %$31\n$31:\n  %258 = phi i64 [%204, %$39], [%254, %$52] ; # X\n  %259 = phi i64 [%205, %$39], [%255, %$52] ; # Y\n  %260 = phi i64 [%206, %$39], [%256, %$52] ; # Z\n  %261 = phi i64 [%208, %$39], [%257, %$52] ; # ->\n  br label %$2\n$2:\n  %262 = phi i64 [%4, %$4], [%82, %$7], [%258, %$31] ; # X\n  %263 = phi i64 [%5, %$4], [%83, %$7], [%259, %$31] ; # Y\n  %264 = phi i64 [0, %$4], [%85, %$7], [%261, %$31] ; # ->\n  ret i64 %264\n}\n\ndefine i64 @fill3(i64, i64, i64) align 8 {\n$1:\n; # (if (atom X) (if (== X Y) Z 0) (stkChk 0) (let A (++ X) (cond ((f...\n; # (atom X)\n  %3 = and i64 %0, 15\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # X\n  %6 = phi i64 [%1, %$1] ; # Y\n  %7 = phi i64 [%2, %$1] ; # Z\n; # (if (== X Y) Z 0)\n; # (== X Y)\n  %8 = icmp eq i64 %5, %6\n  br i1 %8, label %$5, label %$6\n$5:\n  %9 = phi i64 [%5, %$2] ; # X\n  %10 = phi i64 [%6, %$2] ; # Y\n  %11 = phi i64 [%7, %$2] ; # Z\n  br label %$7\n$6:\n  %12 = phi i64 [%5, %$2] ; # X\n  %13 = phi i64 [%6, %$2] ; # Y\n  %14 = phi i64 [%7, %$2] ; # Z\n  br label %$7\n$7:\n  %15 = phi i64 [%9, %$5], [%12, %$6] ; # X\n  %16 = phi i64 [%10, %$5], [%13, %$6] ; # Y\n  %17 = phi i64 [%11, %$5], [%14, %$6] ; # Z\n  %18 = phi i64 [%11, %$5], [0, %$6] ; # ->\n  br label %$4\n$3:\n  %19 = phi i64 [%0, %$1] ; # X\n  %20 = phi i64 [%1, %$1] ; # Y\n  %21 = phi i64 [%2, %$1] ; # Z\n; # (stkChk 0)\n  %22 = load i8*, i8** @$StkLimit\n  %23 = call i8* @llvm.stacksave()\n  %24 = icmp ugt i8* %22, %23\n  br i1 %24, label %$8, label %$9\n$8:\n  %25 = phi i64 [0, %$3] ; # Exe\n  call void @stkErr(i64 %25)\n  unreachable\n$9:\n  %26 = phi i64 [0, %$3] ; # Exe\n; # (let A (++ X) (cond ((fill3 A Y Z) (save @ (cons @ (if (fill3 X Y...\n; # (++ X)\n  %27 = inttoptr i64 %19 to i64*\n  %28 = getelementptr i64, i64* %27, i32 1\n  %29 = load i64, i64* %28\n  %30 = load i64, i64* %27\n; # (cond ((fill3 A Y Z) (save @ (cons @ (if (fill3 X Y Z) @ X)))) ((...\n; # (fill3 A Y Z)\n  %31 = call i64 @fill3(i64 %30, i64 %20, i64 %21)\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$12, label %$11\n$12:\n  %33 = phi i64 [%29, %$9] ; # X\n  %34 = phi i64 [%20, %$9] ; # Y\n  %35 = phi i64 [%21, %$9] ; # Z\n  %36 = phi i64 [%30, %$9] ; # A\n; # (save @ (cons @ (if (fill3 X Y Z) @ X)))\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %38 = load i64, i64* %37\n  %39 = alloca i64, i64 2, align 16\n  %40 = ptrtoint i64* %39 to i64\n  %41 = inttoptr i64 %40 to i64*\n  store i64 %31, i64* %41\n  %42 = add i64 %40, 8\n  %43 = inttoptr i64 %42 to i64*\n  store i64 %38, i64* %43\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %44\n; # (if (fill3 X Y Z) @ X)\n; # (fill3 X Y Z)\n  %45 = call i64 @fill3(i64 %33, i64 %34, i64 %35)\n  %46 = icmp ne i64 %45, 0\n  br i1 %46, label %$13, label %$14\n$13:\n  %47 = phi i64 [%33, %$12] ; # X\n  %48 = phi i64 [%34, %$12] ; # Y\n  %49 = phi i64 [%35, %$12] ; # Z\n  %50 = phi i64 [%36, %$12] ; # A\n  br label %$15\n$14:\n  %51 = phi i64 [%33, %$12] ; # X\n  %52 = phi i64 [%34, %$12] ; # Y\n  %53 = phi i64 [%35, %$12] ; # Z\n  %54 = phi i64 [%36, %$12] ; # A\n  br label %$15\n$15:\n  %55 = phi i64 [%47, %$13], [%51, %$14] ; # X\n  %56 = phi i64 [%48, %$13], [%52, %$14] ; # Y\n  %57 = phi i64 [%49, %$13], [%53, %$14] ; # Z\n  %58 = phi i64 [%50, %$13], [%54, %$14] ; # A\n  %59 = phi i64 [%45, %$13], [%51, %$14] ; # ->\n; # (cons @ (if (fill3 X Y Z) @ X))\n  %60 = call i64 @cons(i64 %31, i64 %59)\n; # drop\n  %61 = inttoptr i64 %40 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %63, i64* %64\n  br label %$10\n$11:\n  %65 = phi i64 [%29, %$9] ; # X\n  %66 = phi i64 [%20, %$9] ; # Y\n  %67 = phi i64 [%21, %$9] ; # Z\n  %68 = phi i64 [%30, %$9] ; # A\n; # (fill3 X Y Z)\n  %69 = call i64 @fill3(i64 %65, i64 %66, i64 %67)\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$17, label %$16\n$17:\n  %71 = phi i64 [%65, %$11] ; # X\n  %72 = phi i64 [%66, %$11] ; # Y\n  %73 = phi i64 [%67, %$11] ; # Z\n  %74 = phi i64 [%68, %$11] ; # A\n; # (cons A @)\n  %75 = call i64 @cons(i64 %74, i64 %69)\n  br label %$10\n$16:\n  %76 = phi i64 [%65, %$11] ; # X\n  %77 = phi i64 [%66, %$11] ; # Y\n  %78 = phi i64 [%67, %$11] ; # Z\n  %79 = phi i64 [%68, %$11] ; # A\n  br label %$10\n$10:\n  %80 = phi i64 [%55, %$15], [%71, %$17], [%76, %$16] ; # X\n  %81 = phi i64 [%56, %$15], [%72, %$17], [%77, %$16] ; # Y\n  %82 = phi i64 [%57, %$15], [%73, %$17], [%78, %$16] ; # Z\n  %83 = phi i64 [%58, %$15], [%74, %$17], [%79, %$16] ; # A\n  %84 = phi i64 [%60, %$15], [%75, %$17], [0, %$16] ; # ->\n  br label %$4\n$4:\n  %85 = phi i64 [%15, %$7], [%80, %$10] ; # X\n  %86 = phi i64 [%16, %$7], [%81, %$10] ; # Y\n  %87 = phi i64 [%17, %$7], [%82, %$10] ; # Z\n  %88 = phi i64 [%18, %$7], [%84, %$10] ; # ->\n  ret i64 %88\n}\n\ndefine i64 @_Fill(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (save (eval (++ X))) Z (save (eval (++ X)))) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (save (eval (++ X)))\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %47 = load i64, i64* %46\n  %48 = alloca i64, i64 2, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = inttoptr i64 %49 to i64*\n  store i64 %45, i64* %50\n  %51 = add i64 %49, 8\n  %52 = inttoptr i64 %51 to i64*\n  store i64 %47, i64* %52\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %49, i64* %53\n; # (if (if (pair X) (fill3 Y Z (save (eval (car X)))) (fill2 Y Z)) @...\n; # (if (pair X) (fill3 Y Z (save (eval (car X)))) (fill2 Y Z))\n; # (pair X)\n  %54 = and i64 %31, 15\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$12, label %$13\n$12:\n  %56 = phi i64 [%0, %$7] ; # Exe\n  %57 = phi i64 [%31, %$7] ; # X\n  %58 = phi i64 [%20, %$7] ; # Y\n  %59 = phi i64 [%45, %$7] ; # Z\n; # (car X)\n  %60 = inttoptr i64 %57 to i64*\n  %61 = load i64, i64* %60\n; # (eval (car X))\n  %62 = and i64 %61, 6\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$17, label %$16\n$17:\n  %64 = phi i64 [%61, %$12] ; # X\n  br label %$15\n$16:\n  %65 = phi i64 [%61, %$12] ; # X\n  %66 = and i64 %65, 8\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$19, label %$18\n$19:\n  %68 = phi i64 [%65, %$16] ; # X\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n  br label %$15\n$18:\n  %71 = phi i64 [%65, %$16] ; # X\n  %72 = call i64 @evList(i64 %71)\n  br label %$15\n$15:\n  %73 = phi i64 [%64, %$17], [%68, %$19], [%71, %$18] ; # X\n  %74 = phi i64 [%64, %$17], [%70, %$19], [%72, %$18] ; # ->\n; # (save (eval (car X)))\n  %75 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %76 = load i64, i64* %75\n  %77 = alloca i64, i64 2, align 16\n  %78 = ptrtoint i64* %77 to i64\n  %79 = inttoptr i64 %78 to i64*\n  store i64 %74, i64* %79\n  %80 = add i64 %78, 8\n  %81 = inttoptr i64 %80 to i64*\n  store i64 %76, i64* %81\n  %82 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %78, i64* %82\n; # (fill3 Y Z (save (eval (car X))))\n  %83 = call i64 @fill3(i64 %58, i64 %59, i64 %74)\n  br label %$14\n$13:\n  %84 = phi i64 [%0, %$7] ; # Exe\n  %85 = phi i64 [%31, %$7] ; # X\n  %86 = phi i64 [%20, %$7] ; # Y\n  %87 = phi i64 [%45, %$7] ; # Z\n; # (fill2 Y Z)\n  %88 = call i64 @fill2(i64 %86, i64 %87)\n  br label %$14\n$14:\n  %89 = phi i64 [%56, %$15], [%84, %$13] ; # Exe\n  %90 = phi i64 [%57, %$15], [%85, %$13] ; # X\n  %91 = phi i64 [%58, %$15], [%86, %$13] ; # Y\n  %92 = phi i64 [%59, %$15], [%87, %$13] ; # Z\n  %93 = phi i64 [%83, %$15], [%88, %$13] ; # ->\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$20, label %$21\n$20:\n  %95 = phi i64 [%89, %$14] ; # Exe\n  %96 = phi i64 [%90, %$14] ; # X\n  %97 = phi i64 [%91, %$14] ; # Y\n  %98 = phi i64 [%92, %$14] ; # Z\n  br label %$22\n$21:\n  %99 = phi i64 [%89, %$14] ; # Exe\n  %100 = phi i64 [%90, %$14] ; # X\n  %101 = phi i64 [%91, %$14] ; # Y\n  %102 = phi i64 [%92, %$14] ; # Z\n  br label %$22\n$22:\n  %103 = phi i64 [%95, %$20], [%99, %$21] ; # Exe\n  %104 = phi i64 [%96, %$20], [%100, %$21] ; # X\n  %105 = phi i64 [%97, %$20], [%101, %$21] ; # Y\n  %106 = phi i64 [%98, %$20], [%102, %$21] ; # Z\n  %107 = phi i64 [%93, %$20], [%101, %$21] ; # ->\n; # (drop *Safe)\n  %108 = inttoptr i64 %24 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  %110 = load i64, i64* %109\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %110, i64* %111\n  ret i64 %107\n}\n@$Penv = global i64 0\n@$Pnl = global i64 0\n\ndefine i1 @unify(i64, i64, i64, i64) align 8 {\n$1:\n; # (let Penv (val $Penv) (: 1 (when (and (symb? X1) (== (firstByte X...\n; # (val $Penv)\n  %4 = load i64, i64* @$Penv\n; # (: 1 (when (and (symb? X1) (== (firstByte X1) (char \"@\"))) (let X...\n  br label %$-1\n$-1:\n  %5 = phi i64 [%0, %$1], [%87, %$11] ; # N1\n  %6 = phi i64 [%1, %$1], [%90, %$11] ; # X1\n  %7 = phi i64 [%2, %$1], [%77, %$11] ; # N2\n  %8 = phi i64 [%3, %$1], [%78, %$11] ; # X2\n  %9 = phi i64 [%4, %$1], [%79, %$11] ; # Penv\n; # (when (and (symb? X1) (== (firstByte X1) (char \"@\"))) (let X (val...\n; # (and (symb? X1) (== (firstByte X1) (char \"@\")))\n; # (symb? X1)\n  %10 = xor i64 %6, 8\n  %11 = and i64 %10, 14\n  %12 = icmp eq i64 %11, 0\n  br i1 %12, label %$3, label %$2\n$3:\n  %13 = phi i64 [%5, %$-1] ; # N1\n  %14 = phi i64 [%6, %$-1] ; # X1\n  %15 = phi i64 [%7, %$-1] ; # N2\n  %16 = phi i64 [%8, %$-1] ; # X2\n  %17 = phi i64 [%9, %$-1] ; # Penv\n; # (firstByte X1)\n  %18 = call i8 @firstByte(i64 %14)\n; # (== (firstByte X1) (char \"@\"))\n  %19 = icmp eq i8 %18, 64\n  br label %$2\n$2:\n  %20 = phi i64 [%5, %$-1], [%13, %$3] ; # N1\n  %21 = phi i64 [%6, %$-1], [%14, %$3] ; # X1\n  %22 = phi i64 [%7, %$-1], [%15, %$3] ; # N2\n  %23 = phi i64 [%8, %$-1], [%16, %$3] ; # X2\n  %24 = phi i64 [%9, %$-1], [%17, %$3] ; # Penv\n  %25 = phi i1 [0, %$-1], [%19, %$3] ; # ->\n  br i1 %25, label %$4, label %$5\n$4:\n  %26 = phi i64 [%20, %$2] ; # N1\n  %27 = phi i64 [%21, %$2] ; # X1\n  %28 = phi i64 [%22, %$2] ; # N2\n  %29 = phi i64 [%23, %$2] ; # X2\n  %30 = phi i64 [%24, %$2] ; # Penv\n; # (let X (val Penv) (while (pair (car X)) (let (Y @ Z (car Y)) (whe...\n; # (val Penv)\n  %31 = inttoptr i64 %30 to i64*\n  %32 = load i64, i64* %31\n; # (while (pair (car X)) (let (Y @ Z (car Y)) (when (and (== N1 (car...\n  br label %$6\n$6:\n  %33 = phi i64 [%26, %$4], [%91, %$12] ; # N1\n  %34 = phi i64 [%27, %$4], [%92, %$12] ; # X1\n  %35 = phi i64 [%28, %$4], [%93, %$12] ; # N2\n  %36 = phi i64 [%29, %$4], [%94, %$12] ; # X2\n  %37 = phi i64 [%30, %$4], [%95, %$12] ; # Penv\n  %38 = phi i64 [%32, %$4], [%101, %$12] ; # X\n; # (car X)\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (pair (car X))\n  %41 = and i64 %40, 15\n  %42 = icmp eq i64 %41, 0\n  br i1 %42, label %$7, label %$8\n$7:\n  %43 = phi i64 [%33, %$6] ; # N1\n  %44 = phi i64 [%34, %$6] ; # X1\n  %45 = phi i64 [%35, %$6] ; # N2\n  %46 = phi i64 [%36, %$6] ; # X2\n  %47 = phi i64 [%37, %$6] ; # Penv\n  %48 = phi i64 [%38, %$6] ; # X\n; # (let (Y @ Z (car Y)) (when (and (== N1 (car Z)) (== X1 (cdr Z))) ...\n; # (car Y)\n  %49 = inttoptr i64 %40 to i64*\n  %50 = load i64, i64* %49\n; # (when (and (== N1 (car Z)) (== X1 (cdr Z))) (setq Z (cdr Y) N1 (c...\n; # (and (== N1 (car Z)) (== X1 (cdr Z)))\n; # (car Z)\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n; # (== N1 (car Z))\n  %53 = icmp eq i64 %43, %52\n  br i1 %53, label %$10, label %$9\n$10:\n  %54 = phi i64 [%43, %$7] ; # N1\n  %55 = phi i64 [%44, %$7] ; # X1\n  %56 = phi i64 [%45, %$7] ; # N2\n  %57 = phi i64 [%46, %$7] ; # X2\n  %58 = phi i64 [%47, %$7] ; # Penv\n  %59 = phi i64 [%48, %$7] ; # X\n  %60 = phi i64 [%40, %$7] ; # Y\n  %61 = phi i64 [%50, %$7] ; # Z\n; # (cdr Z)\n  %62 = inttoptr i64 %61 to i64*\n  %63 = getelementptr i64, i64* %62, i32 1\n  %64 = load i64, i64* %63\n; # (== X1 (cdr Z))\n  %65 = icmp eq i64 %55, %64\n  br label %$9\n$9:\n  %66 = phi i64 [%43, %$7], [%54, %$10] ; # N1\n  %67 = phi i64 [%44, %$7], [%55, %$10] ; # X1\n  %68 = phi i64 [%45, %$7], [%56, %$10] ; # N2\n  %69 = phi i64 [%46, %$7], [%57, %$10] ; # X2\n  %70 = phi i64 [%47, %$7], [%58, %$10] ; # Penv\n  %71 = phi i64 [%48, %$7], [%59, %$10] ; # X\n  %72 = phi i64 [%40, %$7], [%60, %$10] ; # Y\n  %73 = phi i64 [%50, %$7], [%61, %$10] ; # Z\n  %74 = phi i1 [0, %$7], [%65, %$10] ; # ->\n  br i1 %74, label %$11, label %$12\n$11:\n  %75 = phi i64 [%66, %$9] ; # N1\n  %76 = phi i64 [%67, %$9] ; # X1\n  %77 = phi i64 [%68, %$9] ; # N2\n  %78 = phi i64 [%69, %$9] ; # X2\n  %79 = phi i64 [%70, %$9] ; # Penv\n  %80 = phi i64 [%71, %$9] ; # X\n  %81 = phi i64 [%72, %$9] ; # Y\n  %82 = phi i64 [%73, %$9] ; # Z\n; # (cdr Y)\n  %83 = inttoptr i64 %81 to i64*\n  %84 = getelementptr i64, i64* %83, i32 1\n  %85 = load i64, i64* %84\n; # (car Z)\n  %86 = inttoptr i64 %85 to i64*\n  %87 = load i64, i64* %86\n; # (cdr Z)\n  %88 = inttoptr i64 %85 to i64*\n  %89 = getelementptr i64, i64* %88, i32 1\n  %90 = load i64, i64* %89\n; # (goto 1)\n  br label %$-1\n$12:\n  %91 = phi i64 [%66, %$9] ; # N1\n  %92 = phi i64 [%67, %$9] ; # X1\n  %93 = phi i64 [%68, %$9] ; # N2\n  %94 = phi i64 [%69, %$9] ; # X2\n  %95 = phi i64 [%70, %$9] ; # Penv\n  %96 = phi i64 [%71, %$9] ; # X\n  %97 = phi i64 [%72, %$9] ; # Y\n  %98 = phi i64 [%73, %$9] ; # Z\n; # (shift X)\n  %99 = inttoptr i64 %96 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  br label %$6\n$8:\n  %102 = phi i64 [%33, %$6] ; # N1\n  %103 = phi i64 [%34, %$6] ; # X1\n  %104 = phi i64 [%35, %$6] ; # N2\n  %105 = phi i64 [%36, %$6] ; # X2\n  %106 = phi i64 [%37, %$6] ; # Penv\n  %107 = phi i64 [%38, %$6] ; # X\n  br label %$5\n$5:\n  %108 = phi i64 [%20, %$2], [%102, %$8] ; # N1\n  %109 = phi i64 [%21, %$2], [%103, %$8] ; # X1\n  %110 = phi i64 [%22, %$2], [%104, %$8] ; # N2\n  %111 = phi i64 [%23, %$2], [%105, %$8] ; # X2\n  %112 = phi i64 [%24, %$2], [%106, %$8] ; # Penv\n; # (: 2 (when (and (symb? X2) (== (firstByte X2) (char \"@\"))) (let X...\n  br label %$-2\n$-2:\n  %113 = phi i64 [%108, %$5], [%183, %$22] ; # N1\n  %114 = phi i64 [%109, %$5], [%184, %$22] ; # X1\n  %115 = phi i64 [%110, %$5], [%195, %$22] ; # N2\n  %116 = phi i64 [%111, %$5], [%198, %$22] ; # X2\n  %117 = phi i64 [%112, %$5], [%187, %$22] ; # Penv\n; # (when (and (symb? X2) (== (firstByte X2) (char \"@\"))) (let X (val...\n; # (and (symb? X2) (== (firstByte X2) (char \"@\")))\n; # (symb? X2)\n  %118 = xor i64 %116, 8\n  %119 = and i64 %118, 14\n  %120 = icmp eq i64 %119, 0\n  br i1 %120, label %$14, label %$13\n$14:\n  %121 = phi i64 [%113, %$-2] ; # N1\n  %122 = phi i64 [%114, %$-2] ; # X1\n  %123 = phi i64 [%115, %$-2] ; # N2\n  %124 = phi i64 [%116, %$-2] ; # X2\n  %125 = phi i64 [%117, %$-2] ; # Penv\n; # (firstByte X2)\n  %126 = call i8 @firstByte(i64 %124)\n; # (== (firstByte X2) (char \"@\"))\n  %127 = icmp eq i8 %126, 64\n  br label %$13\n$13:\n  %128 = phi i64 [%113, %$-2], [%121, %$14] ; # N1\n  %129 = phi i64 [%114, %$-2], [%122, %$14] ; # X1\n  %130 = phi i64 [%115, %$-2], [%123, %$14] ; # N2\n  %131 = phi i64 [%116, %$-2], [%124, %$14] ; # X2\n  %132 = phi i64 [%117, %$-2], [%125, %$14] ; # Penv\n  %133 = phi i1 [0, %$-2], [%127, %$14] ; # ->\n  br i1 %133, label %$15, label %$16\n$15:\n  %134 = phi i64 [%128, %$13] ; # N1\n  %135 = phi i64 [%129, %$13] ; # X1\n  %136 = phi i64 [%130, %$13] ; # N2\n  %137 = phi i64 [%131, %$13] ; # X2\n  %138 = phi i64 [%132, %$13] ; # Penv\n; # (let X (val Penv) (while (pair (car X)) (let (Y @ Z (car Y)) (whe...\n; # (val Penv)\n  %139 = inttoptr i64 %138 to i64*\n  %140 = load i64, i64* %139\n; # (while (pair (car X)) (let (Y @ Z (car Y)) (when (and (== N2 (car...\n  br label %$17\n$17:\n  %141 = phi i64 [%134, %$15], [%199, %$23] ; # N1\n  %142 = phi i64 [%135, %$15], [%200, %$23] ; # X1\n  %143 = phi i64 [%136, %$15], [%201, %$23] ; # N2\n  %144 = phi i64 [%137, %$15], [%202, %$23] ; # X2\n  %145 = phi i64 [%138, %$15], [%203, %$23] ; # Penv\n  %146 = phi i64 [%140, %$15], [%209, %$23] ; # X\n; # (car X)\n  %147 = inttoptr i64 %146 to i64*\n  %148 = load i64, i64* %147\n; # (pair (car X))\n  %149 = and i64 %148, 15\n  %150 = icmp eq i64 %149, 0\n  br i1 %150, label %$18, label %$19\n$18:\n  %151 = phi i64 [%141, %$17] ; # N1\n  %152 = phi i64 [%142, %$17] ; # X1\n  %153 = phi i64 [%143, %$17] ; # N2\n  %154 = phi i64 [%144, %$17] ; # X2\n  %155 = phi i64 [%145, %$17] ; # Penv\n  %156 = phi i64 [%146, %$17] ; # X\n; # (let (Y @ Z (car Y)) (when (and (== N2 (car Z)) (== X2 (cdr Z))) ...\n; # (car Y)\n  %157 = inttoptr i64 %148 to i64*\n  %158 = load i64, i64* %157\n; # (when (and (== N2 (car Z)) (== X2 (cdr Z))) (setq Z (cdr Y) N2 (c...\n; # (and (== N2 (car Z)) (== X2 (cdr Z)))\n; # (car Z)\n  %159 = inttoptr i64 %158 to i64*\n  %160 = load i64, i64* %159\n; # (== N2 (car Z))\n  %161 = icmp eq i64 %153, %160\n  br i1 %161, label %$21, label %$20\n$21:\n  %162 = phi i64 [%151, %$18] ; # N1\n  %163 = phi i64 [%152, %$18] ; # X1\n  %164 = phi i64 [%153, %$18] ; # N2\n  %165 = phi i64 [%154, %$18] ; # X2\n  %166 = phi i64 [%155, %$18] ; # Penv\n  %167 = phi i64 [%156, %$18] ; # X\n  %168 = phi i64 [%148, %$18] ; # Y\n  %169 = phi i64 [%158, %$18] ; # Z\n; # (cdr Z)\n  %170 = inttoptr i64 %169 to i64*\n  %171 = getelementptr i64, i64* %170, i32 1\n  %172 = load i64, i64* %171\n; # (== X2 (cdr Z))\n  %173 = icmp eq i64 %165, %172\n  br label %$20\n$20:\n  %174 = phi i64 [%151, %$18], [%162, %$21] ; # N1\n  %175 = phi i64 [%152, %$18], [%163, %$21] ; # X1\n  %176 = phi i64 [%153, %$18], [%164, %$21] ; # N2\n  %177 = phi i64 [%154, %$18], [%165, %$21] ; # X2\n  %178 = phi i64 [%155, %$18], [%166, %$21] ; # Penv\n  %179 = phi i64 [%156, %$18], [%167, %$21] ; # X\n  %180 = phi i64 [%148, %$18], [%168, %$21] ; # Y\n  %181 = phi i64 [%158, %$18], [%169, %$21] ; # Z\n  %182 = phi i1 [0, %$18], [%173, %$21] ; # ->\n  br i1 %182, label %$22, label %$23\n$22:\n  %183 = phi i64 [%174, %$20] ; # N1\n  %184 = phi i64 [%175, %$20] ; # X1\n  %185 = phi i64 [%176, %$20] ; # N2\n  %186 = phi i64 [%177, %$20] ; # X2\n  %187 = phi i64 [%178, %$20] ; # Penv\n  %188 = phi i64 [%179, %$20] ; # X\n  %189 = phi i64 [%180, %$20] ; # Y\n  %190 = phi i64 [%181, %$20] ; # Z\n; # (cdr Y)\n  %191 = inttoptr i64 %189 to i64*\n  %192 = getelementptr i64, i64* %191, i32 1\n  %193 = load i64, i64* %192\n; # (car Z)\n  %194 = inttoptr i64 %193 to i64*\n  %195 = load i64, i64* %194\n; # (cdr Z)\n  %196 = inttoptr i64 %193 to i64*\n  %197 = getelementptr i64, i64* %196, i32 1\n  %198 = load i64, i64* %197\n; # (goto 2)\n  br label %$-2\n$23:\n  %199 = phi i64 [%174, %$20] ; # N1\n  %200 = phi i64 [%175, %$20] ; # X1\n  %201 = phi i64 [%176, %$20] ; # N2\n  %202 = phi i64 [%177, %$20] ; # X2\n  %203 = phi i64 [%178, %$20] ; # Penv\n  %204 = phi i64 [%179, %$20] ; # X\n  %205 = phi i64 [%180, %$20] ; # Y\n  %206 = phi i64 [%181, %$20] ; # Z\n; # (shift X)\n  %207 = inttoptr i64 %204 to i64*\n  %208 = getelementptr i64, i64* %207, i32 1\n  %209 = load i64, i64* %208\n  br label %$17\n$19:\n  %210 = phi i64 [%141, %$17] ; # N1\n  %211 = phi i64 [%142, %$17] ; # X1\n  %212 = phi i64 [%143, %$17] ; # N2\n  %213 = phi i64 [%144, %$17] ; # X2\n  %214 = phi i64 [%145, %$17] ; # Penv\n  %215 = phi i64 [%146, %$17] ; # X\n  br label %$16\n$16:\n  %216 = phi i64 [%128, %$13], [%210, %$19] ; # N1\n  %217 = phi i64 [%129, %$13], [%211, %$19] ; # X1\n  %218 = phi i64 [%130, %$13], [%212, %$19] ; # N2\n  %219 = phi i64 [%131, %$13], [%213, %$19] ; # X2\n  %220 = phi i64 [%132, %$13], [%214, %$19] ; # Penv\n; # (cond ((and (== N1 N2) (equal X1 X2)) YES) ((and (symb? X1) (== (...\n; # (and (== N1 N2) (equal X1 X2))\n; # (== N1 N2)\n  %221 = icmp eq i64 %216, %218\n  br i1 %221, label %$26, label %$25\n$26:\n  %222 = phi i64 [%216, %$16] ; # N1\n  %223 = phi i64 [%217, %$16] ; # X1\n  %224 = phi i64 [%218, %$16] ; # N2\n  %225 = phi i64 [%219, %$16] ; # X2\n  %226 = phi i64 [%220, %$16] ; # Penv\n; # (equal X1 X2)\n  %227 = call i1 @equal(i64 %223, i64 %225)\n  br label %$25\n$25:\n  %228 = phi i64 [%216, %$16], [%222, %$26] ; # N1\n  %229 = phi i64 [%217, %$16], [%223, %$26] ; # X1\n  %230 = phi i64 [%218, %$16], [%224, %$26] ; # N2\n  %231 = phi i64 [%219, %$16], [%225, %$26] ; # X2\n  %232 = phi i64 [%220, %$16], [%226, %$26] ; # Penv\n  %233 = phi i1 [0, %$16], [%227, %$26] ; # ->\n  br i1 %233, label %$28, label %$27\n$28:\n  %234 = phi i64 [%228, %$25] ; # N1\n  %235 = phi i64 [%229, %$25] ; # X1\n  %236 = phi i64 [%230, %$25] ; # N2\n  %237 = phi i64 [%231, %$25] ; # X2\n  %238 = phi i64 [%232, %$25] ; # Penv\n  br label %$24\n$27:\n  %239 = phi i64 [%228, %$25] ; # N1\n  %240 = phi i64 [%229, %$25] ; # X1\n  %241 = phi i64 [%230, %$25] ; # N2\n  %242 = phi i64 [%231, %$25] ; # X2\n  %243 = phi i64 [%232, %$25] ; # Penv\n; # (and (symb? X1) (== (firstByte X1) (char \"@\")))\n; # (symb? X1)\n  %244 = xor i64 %240, 8\n  %245 = and i64 %244, 14\n  %246 = icmp eq i64 %245, 0\n  br i1 %246, label %$30, label %$29\n$30:\n  %247 = phi i64 [%239, %$27] ; # N1\n  %248 = phi i64 [%240, %$27] ; # X1\n  %249 = phi i64 [%241, %$27] ; # N2\n  %250 = phi i64 [%242, %$27] ; # X2\n  %251 = phi i64 [%243, %$27] ; # Penv\n; # (firstByte X1)\n  %252 = call i8 @firstByte(i64 %248)\n; # (== (firstByte X1) (char \"@\"))\n  %253 = icmp eq i8 %252, 64\n  br label %$29\n$29:\n  %254 = phi i64 [%239, %$27], [%247, %$30] ; # N1\n  %255 = phi i64 [%240, %$27], [%248, %$30] ; # X1\n  %256 = phi i64 [%241, %$27], [%249, %$30] ; # N2\n  %257 = phi i64 [%242, %$27], [%250, %$30] ; # X2\n  %258 = phi i64 [%243, %$27], [%251, %$30] ; # Penv\n  %259 = phi i1 [0, %$27], [%253, %$30] ; # ->\n  br i1 %259, label %$32, label %$31\n$32:\n  %260 = phi i64 [%254, %$29] ; # N1\n  %261 = phi i64 [%255, %$29] ; # X1\n  %262 = phi i64 [%256, %$29] ; # N2\n  %263 = phi i64 [%257, %$29] ; # X2\n  %264 = phi i64 [%258, %$29] ; # Penv\n; # (unless (== X1 $At) (set Penv (cons (cons3 N1 X1 N2 X2) (val Penv...\n; # (== X1 $At)\n  %265 = icmp eq i64 %261, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %265, label %$34, label %$33\n$33:\n  %266 = phi i64 [%260, %$32] ; # N1\n  %267 = phi i64 [%261, %$32] ; # X1\n  %268 = phi i64 [%262, %$32] ; # N2\n  %269 = phi i64 [%263, %$32] ; # X2\n  %270 = phi i64 [%264, %$32] ; # Penv\n; # (set Penv (cons (cons3 N1 X1 N2 X2) (val Penv)))\n; # (cons3 N1 X1 N2 X2)\n  %271 = call i64 @cons3(i64 %266, i64 %267, i64 %268, i64 %269)\n; # (val Penv)\n  %272 = inttoptr i64 %270 to i64*\n  %273 = load i64, i64* %272\n; # (cons (cons3 N1 X1 N2 X2) (val Penv))\n  %274 = call i64 @cons(i64 %271, i64 %273)\n  %275 = inttoptr i64 %270 to i64*\n  store i64 %274, i64* %275\n  br label %$34\n$34:\n  %276 = phi i64 [%260, %$32], [%266, %$33] ; # N1\n  %277 = phi i64 [%261, %$32], [%267, %$33] ; # X1\n  %278 = phi i64 [%262, %$32], [%268, %$33] ; # N2\n  %279 = phi i64 [%263, %$32], [%269, %$33] ; # X2\n  %280 = phi i64 [%264, %$32], [%270, %$33] ; # Penv\n  br label %$24\n$31:\n  %281 = phi i64 [%254, %$29] ; # N1\n  %282 = phi i64 [%255, %$29] ; # X1\n  %283 = phi i64 [%256, %$29] ; # N2\n  %284 = phi i64 [%257, %$29] ; # X2\n  %285 = phi i64 [%258, %$29] ; # Penv\n; # (and (symb? X2) (== (firstByte X2) (char \"@\")))\n; # (symb? X2)\n  %286 = xor i64 %284, 8\n  %287 = and i64 %286, 14\n  %288 = icmp eq i64 %287, 0\n  br i1 %288, label %$36, label %$35\n$36:\n  %289 = phi i64 [%281, %$31] ; # N1\n  %290 = phi i64 [%282, %$31] ; # X1\n  %291 = phi i64 [%283, %$31] ; # N2\n  %292 = phi i64 [%284, %$31] ; # X2\n  %293 = phi i64 [%285, %$31] ; # Penv\n; # (firstByte X2)\n  %294 = call i8 @firstByte(i64 %292)\n; # (== (firstByte X2) (char \"@\"))\n  %295 = icmp eq i8 %294, 64\n  br label %$35\n$35:\n  %296 = phi i64 [%281, %$31], [%289, %$36] ; # N1\n  %297 = phi i64 [%282, %$31], [%290, %$36] ; # X1\n  %298 = phi i64 [%283, %$31], [%291, %$36] ; # N2\n  %299 = phi i64 [%284, %$31], [%292, %$36] ; # X2\n  %300 = phi i64 [%285, %$31], [%293, %$36] ; # Penv\n  %301 = phi i1 [0, %$31], [%295, %$36] ; # ->\n  br i1 %301, label %$38, label %$37\n$38:\n  %302 = phi i64 [%296, %$35] ; # N1\n  %303 = phi i64 [%297, %$35] ; # X1\n  %304 = phi i64 [%298, %$35] ; # N2\n  %305 = phi i64 [%299, %$35] ; # X2\n  %306 = phi i64 [%300, %$35] ; # Penv\n; # (unless (== X2 $At) (set Penv (cons (cons3 N2 X2 N1 X1) (val Penv...\n; # (== X2 $At)\n  %307 = icmp eq i64 %305, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %307, label %$40, label %$39\n$39:\n  %308 = phi i64 [%302, %$38] ; # N1\n  %309 = phi i64 [%303, %$38] ; # X1\n  %310 = phi i64 [%304, %$38] ; # N2\n  %311 = phi i64 [%305, %$38] ; # X2\n  %312 = phi i64 [%306, %$38] ; # Penv\n; # (set Penv (cons (cons3 N2 X2 N1 X1) (val Penv)))\n; # (cons3 N2 X2 N1 X1)\n  %313 = call i64 @cons3(i64 %310, i64 %311, i64 %308, i64 %309)\n; # (val Penv)\n  %314 = inttoptr i64 %312 to i64*\n  %315 = load i64, i64* %314\n; # (cons (cons3 N2 X2 N1 X1) (val Penv))\n  %316 = call i64 @cons(i64 %313, i64 %315)\n  %317 = inttoptr i64 %312 to i64*\n  store i64 %316, i64* %317\n  br label %$40\n$40:\n  %318 = phi i64 [%302, %$38], [%308, %$39] ; # N1\n  %319 = phi i64 [%303, %$38], [%309, %$39] ; # X1\n  %320 = phi i64 [%304, %$38], [%310, %$39] ; # N2\n  %321 = phi i64 [%305, %$38], [%311, %$39] ; # X2\n  %322 = phi i64 [%306, %$38], [%312, %$39] ; # Penv\n  br label %$24\n$37:\n  %323 = phi i64 [%296, %$35] ; # N1\n  %324 = phi i64 [%297, %$35] ; # X1\n  %325 = phi i64 [%298, %$35] ; # N2\n  %326 = phi i64 [%299, %$35] ; # X2\n  %327 = phi i64 [%300, %$35] ; # Penv\n; # (or (atom X1) (atom X2))\n; # (atom X1)\n  %328 = and i64 %324, 15\n  %329 = icmp ne i64 %328, 0\n  br i1 %329, label %$41, label %$42\n$42:\n  %330 = phi i64 [%323, %$37] ; # N1\n  %331 = phi i64 [%324, %$37] ; # X1\n  %332 = phi i64 [%325, %$37] ; # N2\n  %333 = phi i64 [%326, %$37] ; # X2\n  %334 = phi i64 [%327, %$37] ; # Penv\n; # (atom X2)\n  %335 = and i64 %333, 15\n  %336 = icmp ne i64 %335, 0\n  br label %$41\n$41:\n  %337 = phi i64 [%323, %$37], [%330, %$42] ; # N1\n  %338 = phi i64 [%324, %$37], [%331, %$42] ; # X1\n  %339 = phi i64 [%325, %$37], [%332, %$42] ; # N2\n  %340 = phi i64 [%326, %$37], [%333, %$42] ; # X2\n  %341 = phi i64 [%327, %$37], [%334, %$42] ; # Penv\n  %342 = phi i1 [1, %$37], [%336, %$42] ; # ->\n  br i1 %342, label %$44, label %$43\n$44:\n  %343 = phi i64 [%337, %$41] ; # N1\n  %344 = phi i64 [%338, %$41] ; # X1\n  %345 = phi i64 [%339, %$41] ; # N2\n  %346 = phi i64 [%340, %$41] ; # X2\n  %347 = phi i64 [%341, %$41] ; # Penv\n; # (equal X1 X2)\n  %348 = call i1 @equal(i64 %344, i64 %346)\n  br label %$24\n$43:\n  %349 = phi i64 [%337, %$41] ; # N1\n  %350 = phi i64 [%338, %$41] ; # X1\n  %351 = phi i64 [%339, %$41] ; # N2\n  %352 = phi i64 [%340, %$41] ; # X2\n  %353 = phi i64 [%341, %$41] ; # Penv\n; # (stkChk 0)\n  %354 = load i8*, i8** @$StkLimit\n  %355 = call i8* @llvm.stacksave()\n  %356 = icmp ugt i8* %354, %355\n  br i1 %356, label %$45, label %$46\n$45:\n  %357 = phi i64 [0, %$43] ; # Exe\n  call void @stkErr(i64 %357)\n  unreachable\n$46:\n  %358 = phi i64 [0, %$43] ; # Exe\n; # (let Env (val Penv) (or (and (unify N1 (car X1) N2 (car X2)) (uni...\n; # (val Penv)\n  %359 = inttoptr i64 %353 to i64*\n  %360 = load i64, i64* %359\n; # (or (and (unify N1 (car X1) N2 (car X2)) (unify N1 (cdr X1) N2 (c...\n; # (and (unify N1 (car X1) N2 (car X2)) (unify N1 (cdr X1) N2 (cdr X...\n; # (car X1)\n  %361 = inttoptr i64 %350 to i64*\n  %362 = load i64, i64* %361\n; # (car X2)\n  %363 = inttoptr i64 %352 to i64*\n  %364 = load i64, i64* %363\n; # (unify N1 (car X1) N2 (car X2))\n  %365 = call i1 @unify(i64 %349, i64 %362, i64 %351, i64 %364)\n  br i1 %365, label %$49, label %$48\n$49:\n  %366 = phi i64 [%349, %$46] ; # N1\n  %367 = phi i64 [%350, %$46] ; # X1\n  %368 = phi i64 [%351, %$46] ; # N2\n  %369 = phi i64 [%352, %$46] ; # X2\n  %370 = phi i64 [%353, %$46] ; # Penv\n  %371 = phi i64 [%360, %$46] ; # Env\n; # (cdr X1)\n  %372 = inttoptr i64 %367 to i64*\n  %373 = getelementptr i64, i64* %372, i32 1\n  %374 = load i64, i64* %373\n; # (cdr X2)\n  %375 = inttoptr i64 %369 to i64*\n  %376 = getelementptr i64, i64* %375, i32 1\n  %377 = load i64, i64* %376\n; # (unify N1 (cdr X1) N2 (cdr X2))\n  %378 = call i1 @unify(i64 %366, i64 %374, i64 %368, i64 %377)\n  br label %$48\n$48:\n  %379 = phi i64 [%349, %$46], [%366, %$49] ; # N1\n  %380 = phi i64 [%350, %$46], [%367, %$49] ; # X1\n  %381 = phi i64 [%351, %$46], [%368, %$49] ; # N2\n  %382 = phi i64 [%352, %$46], [%369, %$49] ; # X2\n  %383 = phi i64 [%353, %$46], [%370, %$49] ; # Penv\n  %384 = phi i64 [%360, %$46], [%371, %$49] ; # Env\n  %385 = phi i1 [0, %$46], [%378, %$49] ; # ->\n  br i1 %385, label %$47, label %$50\n$50:\n  %386 = phi i64 [%379, %$48] ; # N1\n  %387 = phi i64 [%380, %$48] ; # X1\n  %388 = phi i64 [%381, %$48] ; # N2\n  %389 = phi i64 [%382, %$48] ; # X2\n  %390 = phi i64 [%383, %$48] ; # Penv\n  %391 = phi i64 [%384, %$48] ; # Env\n; # (set Penv Env)\n  %392 = inttoptr i64 %390 to i64*\n  store i64 %391, i64* %392\n  br label %$47\n$47:\n  %393 = phi i64 [%379, %$48], [%386, %$50] ; # N1\n  %394 = phi i64 [%380, %$48], [%387, %$50] ; # X1\n  %395 = phi i64 [%381, %$48], [%388, %$50] ; # N2\n  %396 = phi i64 [%382, %$48], [%389, %$50] ; # X2\n  %397 = phi i64 [%383, %$48], [%390, %$50] ; # Penv\n  %398 = phi i64 [%384, %$48], [%391, %$50] ; # Env\n  %399 = phi i1 [1, %$48], [0, %$50] ; # ->\n  br label %$24\n$24:\n  %400 = phi i64 [%234, %$28], [%276, %$34], [%318, %$40], [%343, %$44], [%393, %$47] ; # N1\n  %401 = phi i64 [%235, %$28], [%277, %$34], [%319, %$40], [%344, %$44], [%394, %$47] ; # X1\n  %402 = phi i64 [%236, %$28], [%278, %$34], [%320, %$40], [%345, %$44], [%395, %$47] ; # N2\n  %403 = phi i64 [%237, %$28], [%279, %$34], [%321, %$40], [%346, %$44], [%396, %$47] ; # X2\n  %404 = phi i64 [%238, %$28], [%280, %$34], [%322, %$40], [%347, %$44], [%397, %$47] ; # Penv\n  %405 = phi i1 [1, %$28], [1, %$34], [1, %$40], [%348, %$44], [%399, %$47] ; # ->\n  ret i1 %405\n}\n\ndefine i64 @lup(i64, i64) align 8 {\n$1:\n; # (let Penv (val $Penv) (: 1 (when (and (symb? X) (== (firstByte X)...\n; # (val $Penv)\n  %2 = load i64, i64* @$Penv\n; # (: 1 (when (and (symb? X) (== (firstByte X) (char \"@\"))) (let V (...\n  br label %$-1\n$-1:\n  %3 = phi i64 [%0, %$1], [%67, %$11] ; # N\n  %4 = phi i64 [%1, %$1], [%70, %$11] ; # X\n  %5 = phi i64 [%2, %$1], [%59, %$11] ; # Penv\n; # (when (and (symb? X) (== (firstByte X) (char \"@\"))) (let V (val P...\n; # (and (symb? X) (== (firstByte X) (char \"@\")))\n; # (symb? X)\n  %6 = xor i64 %4, 8\n  %7 = and i64 %6, 14\n  %8 = icmp eq i64 %7, 0\n  br i1 %8, label %$3, label %$2\n$3:\n  %9 = phi i64 [%3, %$-1] ; # N\n  %10 = phi i64 [%4, %$-1] ; # X\n  %11 = phi i64 [%5, %$-1] ; # Penv\n; # (firstByte X)\n  %12 = call i8 @firstByte(i64 %10)\n; # (== (firstByte X) (char \"@\"))\n  %13 = icmp eq i8 %12, 64\n  br label %$2\n$2:\n  %14 = phi i64 [%3, %$-1], [%9, %$3] ; # N\n  %15 = phi i64 [%4, %$-1], [%10, %$3] ; # X\n  %16 = phi i64 [%5, %$-1], [%11, %$3] ; # Penv\n  %17 = phi i1 [0, %$-1], [%13, %$3] ; # ->\n  br i1 %17, label %$4, label %$5\n$4:\n  %18 = phi i64 [%14, %$2] ; # N\n  %19 = phi i64 [%15, %$2] ; # X\n  %20 = phi i64 [%16, %$2] ; # Penv\n; # (let V (val Penv) (while (pair (car V)) (let (Y @ Z (car Y)) (whe...\n; # (val Penv)\n  %21 = inttoptr i64 %20 to i64*\n  %22 = load i64, i64* %21\n; # (while (pair (car V)) (let (Y @ Z (car Y)) (when (and (== N (car ...\n  br label %$6\n$6:\n  %23 = phi i64 [%18, %$4], [%71, %$12] ; # N\n  %24 = phi i64 [%19, %$4], [%72, %$12] ; # X\n  %25 = phi i64 [%20, %$4], [%73, %$12] ; # Penv\n  %26 = phi i64 [%22, %$4], [%79, %$12] ; # V\n; # (car V)\n  %27 = inttoptr i64 %26 to i64*\n  %28 = load i64, i64* %27\n; # (pair (car V))\n  %29 = and i64 %28, 15\n  %30 = icmp eq i64 %29, 0\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i64 [%23, %$6] ; # N\n  %32 = phi i64 [%24, %$6] ; # X\n  %33 = phi i64 [%25, %$6] ; # Penv\n  %34 = phi i64 [%26, %$6] ; # V\n; # (let (Y @ Z (car Y)) (when (and (== N (car Z)) (== X (cdr Z))) (s...\n; # (car Y)\n  %35 = inttoptr i64 %28 to i64*\n  %36 = load i64, i64* %35\n; # (when (and (== N (car Z)) (== X (cdr Z))) (setq Z (cdr Y) N (car ...\n; # (and (== N (car Z)) (== X (cdr Z)))\n; # (car Z)\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n; # (== N (car Z))\n  %39 = icmp eq i64 %31, %38\n  br i1 %39, label %$10, label %$9\n$10:\n  %40 = phi i64 [%31, %$7] ; # N\n  %41 = phi i64 [%32, %$7] ; # X\n  %42 = phi i64 [%33, %$7] ; # Penv\n  %43 = phi i64 [%34, %$7] ; # V\n  %44 = phi i64 [%28, %$7] ; # Y\n  %45 = phi i64 [%36, %$7] ; # Z\n; # (cdr Z)\n  %46 = inttoptr i64 %45 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (== X (cdr Z))\n  %49 = icmp eq i64 %41, %48\n  br label %$9\n$9:\n  %50 = phi i64 [%31, %$7], [%40, %$10] ; # N\n  %51 = phi i64 [%32, %$7], [%41, %$10] ; # X\n  %52 = phi i64 [%33, %$7], [%42, %$10] ; # Penv\n  %53 = phi i64 [%34, %$7], [%43, %$10] ; # V\n  %54 = phi i64 [%28, %$7], [%44, %$10] ; # Y\n  %55 = phi i64 [%36, %$7], [%45, %$10] ; # Z\n  %56 = phi i1 [0, %$7], [%49, %$10] ; # ->\n  br i1 %56, label %$11, label %$12\n$11:\n  %57 = phi i64 [%50, %$9] ; # N\n  %58 = phi i64 [%51, %$9] ; # X\n  %59 = phi i64 [%52, %$9] ; # Penv\n  %60 = phi i64 [%53, %$9] ; # V\n  %61 = phi i64 [%54, %$9] ; # Y\n  %62 = phi i64 [%55, %$9] ; # Z\n; # (cdr Y)\n  %63 = inttoptr i64 %61 to i64*\n  %64 = getelementptr i64, i64* %63, i32 1\n  %65 = load i64, i64* %64\n; # (car Z)\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (cdr Z)\n  %68 = inttoptr i64 %65 to i64*\n  %69 = getelementptr i64, i64* %68, i32 1\n  %70 = load i64, i64* %69\n; # (goto 1)\n  br label %$-1\n$12:\n  %71 = phi i64 [%50, %$9] ; # N\n  %72 = phi i64 [%51, %$9] ; # X\n  %73 = phi i64 [%52, %$9] ; # Penv\n  %74 = phi i64 [%53, %$9] ; # V\n  %75 = phi i64 [%54, %$9] ; # Y\n  %76 = phi i64 [%55, %$9] ; # Z\n; # (shift V)\n  %77 = inttoptr i64 %74 to i64*\n  %78 = getelementptr i64, i64* %77, i32 1\n  %79 = load i64, i64* %78\n  br label %$6\n$8:\n  %80 = phi i64 [%23, %$6] ; # N\n  %81 = phi i64 [%24, %$6] ; # X\n  %82 = phi i64 [%25, %$6] ; # Penv\n  %83 = phi i64 [%26, %$6] ; # V\n  br label %$5\n$5:\n  %84 = phi i64 [%14, %$2], [%80, %$8] ; # N\n  %85 = phi i64 [%15, %$2], [%81, %$8] ; # X\n  %86 = phi i64 [%16, %$2], [%82, %$8] ; # Penv\n; # (if (or (atom X) (cnt? (car X)) (== @ $Up)) X (stkChk 0) (let Z (...\n; # (or (atom X) (cnt? (car X)) (== @ $Up))\n; # (atom X)\n  %87 = and i64 %85, 15\n  %88 = icmp ne i64 %87, 0\n  br i1 %88, label %$13, label %$14\n$14:\n  %89 = phi i64 [%84, %$5] ; # N\n  %90 = phi i64 [%85, %$5] ; # X\n; # (car X)\n  %91 = inttoptr i64 %90 to i64*\n  %92 = load i64, i64* %91\n; # (cnt? (car X))\n  %93 = and i64 %92, 2\n  %94 = icmp ne i64 %93, 0\n  br i1 %94, label %$13, label %$15\n$15:\n  %95 = phi i64 [%89, %$14] ; # N\n  %96 = phi i64 [%90, %$14] ; # X\n; # (== @ $Up)\n  %97 = icmp eq i64 %92, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64)\n  br label %$13\n$13:\n  %98 = phi i64 [%84, %$5], [%89, %$14], [%95, %$15] ; # N\n  %99 = phi i64 [%85, %$5], [%90, %$14], [%96, %$15] ; # X\n  %100 = phi i1 [1, %$5], [1, %$14], [%97, %$15] ; # ->\n  br i1 %100, label %$16, label %$17\n$16:\n  %101 = phi i64 [%98, %$13] ; # N\n  %102 = phi i64 [%99, %$13] ; # X\n  br label %$18\n$17:\n  %103 = phi i64 [%98, %$13] ; # N\n  %104 = phi i64 [%99, %$13] ; # X\n; # (stkChk 0)\n  %105 = load i8*, i8** @$StkLimit\n  %106 = call i8* @llvm.stacksave()\n  %107 = icmp ugt i8* %105, %106\n  br i1 %107, label %$19, label %$20\n$19:\n  %108 = phi i64 [0, %$17] ; # Exe\n  call void @stkErr(i64 %108)\n  unreachable\n$20:\n  %109 = phi i64 [0, %$17] ; # Exe\n; # (let Z (save (lup N (car X))) (cons Z (lup N (cdr X))))\n; # (car X)\n  %110 = inttoptr i64 %104 to i64*\n  %111 = load i64, i64* %110\n; # (lup N (car X))\n  %112 = call i64 @lup(i64 %103, i64 %111)\n; # (save (lup N (car X)))\n  %113 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %114 = load i64, i64* %113\n  %115 = alloca i64, i64 2, align 16\n  %116 = ptrtoint i64* %115 to i64\n  %117 = inttoptr i64 %116 to i64*\n  store i64 %112, i64* %117\n  %118 = add i64 %116, 8\n  %119 = inttoptr i64 %118 to i64*\n  store i64 %114, i64* %119\n  %120 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %116, i64* %120\n; # (cdr X)\n  %121 = inttoptr i64 %104 to i64*\n  %122 = getelementptr i64, i64* %121, i32 1\n  %123 = load i64, i64* %122\n; # (lup N (cdr X))\n  %124 = call i64 @lup(i64 %103, i64 %123)\n; # (cons Z (lup N (cdr X)))\n  %125 = call i64 @cons(i64 %112, i64 %124)\n; # (drop *Safe)\n  %126 = inttoptr i64 %116 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %128, i64* %129\n  br label %$18\n$18:\n  %130 = phi i64 [%101, %$16], [%103, %$20] ; # N\n  %131 = phi i64 [%102, %$16], [%104, %$20] ; # X\n  %132 = phi i64 [%102, %$16], [%125, %$20] ; # ->\n  ret i64 %132\n}\n\ndefine i64 @lookup(i64, i64) align 8 {\n$1:\n; # (if (and (symb? (setq X (lup N X))) (== (firstByte X) (char \"@\"))...\n; # (and (symb? (setq X (lup N X))) (== (firstByte X) (char \"@\")))\n; # (lup N X)\n  %2 = call i64 @lup(i64 %0, i64 %1)\n; # (symb? (setq X (lup N X)))\n  %3 = xor i64 %2, 8\n  %4 = and i64 %3, 14\n  %5 = icmp eq i64 %4, 0\n  br i1 %5, label %$3, label %$2\n$3:\n  %6 = phi i64 [%0, %$1] ; # N\n  %7 = phi i64 [%2, %$1] ; # X\n; # (firstByte X)\n  %8 = call i8 @firstByte(i64 %7)\n; # (== (firstByte X) (char \"@\"))\n  %9 = icmp eq i8 %8, 64\n  br label %$2\n$2:\n  %10 = phi i64 [%0, %$1], [%6, %$3] ; # N\n  %11 = phi i64 [%2, %$1], [%7, %$3] ; # X\n  %12 = phi i1 [0, %$1], [%9, %$3] ; # ->\n  br i1 %12, label %$4, label %$5\n$4:\n  %13 = phi i64 [%10, %$2] ; # N\n  %14 = phi i64 [%11, %$2] ; # X\n  br label %$6\n$5:\n  %15 = phi i64 [%10, %$2] ; # N\n  %16 = phi i64 [%11, %$2] ; # X\n  br label %$6\n$6:\n  %17 = phi i64 [%13, %$4], [%15, %$5] ; # N\n  %18 = phi i64 [%14, %$4], [%16, %$5] ; # X\n  %19 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [%16, %$5] ; # ->\n  ret i64 %19\n}\n\ndefine i64 @uniFill(i64) align 8 {\n$1:\n; # (cond ((num? X) X) ((sym? X) (lup (car (val (val $Pnl))) X)) (T (...\n; # (num? X)\n  %1 = and i64 %0, 6\n  %2 = icmp ne i64 %1, 0\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # X\n  br label %$2\n$3:\n  %4 = phi i64 [%0, %$1] ; # X\n; # (sym? X)\n  %5 = and i64 %4, 8\n  %6 = icmp ne i64 %5, 0\n  br i1 %6, label %$6, label %$5\n$6:\n  %7 = phi i64 [%4, %$3] ; # X\n; # (val $Pnl)\n  %8 = load i64, i64* @$Pnl\n; # (val (val $Pnl))\n  %9 = inttoptr i64 %8 to i64*\n  %10 = load i64, i64* %9\n; # (car (val (val $Pnl)))\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (lup (car (val (val $Pnl))) X)\n  %13 = call i64 @lup(i64 %12, i64 %7)\n  br label %$2\n$5:\n  %14 = phi i64 [%4, %$3] ; # X\n; # (stkChk 0)\n  %15 = load i8*, i8** @$StkLimit\n  %16 = call i8* @llvm.stacksave()\n  %17 = icmp ugt i8* %15, %16\n  br i1 %17, label %$7, label %$8\n$7:\n  %18 = phi i64 [0, %$5] ; # Exe\n  call void @stkErr(i64 %18)\n  unreachable\n$8:\n  %19 = phi i64 [0, %$5] ; # Exe\n; # (let Y (save (uniFill (car X))) (cons Y (uniFill (cdr X))))\n; # (car X)\n  %20 = inttoptr i64 %14 to i64*\n  %21 = load i64, i64* %20\n; # (uniFill (car X))\n  %22 = call i64 @uniFill(i64 %21)\n; # (save (uniFill (car X)))\n  %23 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %24 = load i64, i64* %23\n  %25 = alloca i64, i64 2, align 16\n  %26 = ptrtoint i64* %25 to i64\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = add i64 %26, 8\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %24, i64* %29\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %26, i64* %30\n; # (cdr X)\n  %31 = inttoptr i64 %14 to i64*\n  %32 = getelementptr i64, i64* %31, i32 1\n  %33 = load i64, i64* %32\n; # (uniFill (cdr X))\n  %34 = call i64 @uniFill(i64 %33)\n; # (cons Y (uniFill (cdr X)))\n  %35 = call i64 @cons(i64 %22, i64 %34)\n; # (drop *Safe)\n  %36 = inttoptr i64 %26 to i64*\n  %37 = getelementptr i64, i64* %36, i32 1\n  %38 = load i64, i64* %37\n  %39 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %38, i64* %39\n  br label %$2\n$2:\n  %40 = phi i64 [%3, %$4], [%7, %$6], [%14, %$8] ; # X\n  %41 = phi i64 [%3, %$4], [%13, %$6], [%35, %$8] ; # ->\n  ret i64 %41\n}\n\ndefine i64 @uniRun(i64) align 8 {\n$1:\n; # (let (P (val $Bind) Q P Z Prg Tos 0) (loop (until (atom (car Z)) ...\n; # (val $Bind)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (loop (until (atom (car Z)) (let U Z (setq Z @) (set U Tos) (setq...\n  br label %$2\n$2:\n  %3 = phi i64 [%0, %$1], [%313, %$13] ; # Prg\n  %4 = phi i64 [%2, %$1], [%314, %$13] ; # P\n  %5 = phi i64 [%2, %$1], [%315, %$13] ; # Q\n  %6 = phi i64 [%0, %$1], [%316, %$13] ; # Z\n  %7 = phi i64 [0, %$1], [%317, %$13] ; # Tos\n; # (until (atom (car Z)) (let U Z (setq Z @) (set U Tos) (setq Tos U...\n  br label %$3\n$3:\n  %8 = phi i64 [%3, %$2], [%17, %$4] ; # Prg\n  %9 = phi i64 [%4, %$2], [%18, %$4] ; # P\n  %10 = phi i64 [%5, %$2], [%19, %$4] ; # Q\n  %11 = phi i64 [%6, %$2], [%14, %$4] ; # Z\n  %12 = phi i64 [%7, %$2], [%20, %$4] ; # Tos\n; # (car Z)\n  %13 = inttoptr i64 %11 to i64*\n  %14 = load i64, i64* %13\n; # (atom (car Z))\n  %15 = and i64 %14, 15\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$5, label %$4\n$4:\n  %17 = phi i64 [%8, %$3] ; # Prg\n  %18 = phi i64 [%9, %$3] ; # P\n  %19 = phi i64 [%10, %$3] ; # Q\n  %20 = phi i64 [%11, %$3] ; # Z\n  %21 = phi i64 [%12, %$3] ; # Tos\n; # (let U Z (setq Z @) (set U Tos) (setq Tos U))\n; # (set U Tos)\n  %22 = inttoptr i64 %20 to i64*\n  store i64 %21, i64* %22\n  br label %$3\n$5:\n  %23 = phi i64 [%8, %$3] ; # Prg\n  %24 = phi i64 [%9, %$3] ; # P\n  %25 = phi i64 [%10, %$3] ; # Q\n  %26 = phi i64 [%11, %$3] ; # Z\n  %27 = phi i64 [%12, %$3] ; # Tos\n; # (let Y (car Z) (when (and (symb? Y) (<> -ZERO (val Y)) (== (first...\n; # (car Z)\n  %28 = inttoptr i64 %26 to i64*\n  %29 = load i64, i64* %28\n; # (when (and (symb? Y) (<> -ZERO (val Y)) (== (firstByte Y) (char \"...\n; # (and (symb? Y) (<> -ZERO (val Y)) (== (firstByte Y) (char \"@\")))\n; # (symb? Y)\n  %30 = xor i64 %29, 8\n  %31 = and i64 %30, 14\n  %32 = icmp eq i64 %31, 0\n  br i1 %32, label %$7, label %$6\n$7:\n  %33 = phi i64 [%23, %$5] ; # Prg\n  %34 = phi i64 [%24, %$5] ; # P\n  %35 = phi i64 [%25, %$5] ; # Q\n  %36 = phi i64 [%26, %$5] ; # Z\n  %37 = phi i64 [%27, %$5] ; # Tos\n  %38 = phi i64 [%29, %$5] ; # Y\n; # (val Y)\n  %39 = inttoptr i64 %38 to i64*\n  %40 = load i64, i64* %39\n; # (<> -ZERO (val Y))\n  %41 = icmp ne i64 10, %40\n  br i1 %41, label %$8, label %$6\n$8:\n  %42 = phi i64 [%33, %$7] ; # Prg\n  %43 = phi i64 [%34, %$7] ; # P\n  %44 = phi i64 [%35, %$7] ; # Q\n  %45 = phi i64 [%36, %$7] ; # Z\n  %46 = phi i64 [%37, %$7] ; # Tos\n  %47 = phi i64 [%38, %$7] ; # Y\n; # (firstByte Y)\n  %48 = call i8 @firstByte(i64 %47)\n; # (== (firstByte Y) (char \"@\"))\n  %49 = icmp eq i8 %48, 64\n  br label %$6\n$6:\n  %50 = phi i64 [%23, %$5], [%33, %$7], [%42, %$8] ; # Prg\n  %51 = phi i64 [%24, %$5], [%34, %$7], [%43, %$8] ; # P\n  %52 = phi i64 [%25, %$5], [%35, %$7], [%44, %$8] ; # Q\n  %53 = phi i64 [%26, %$5], [%36, %$7], [%45, %$8] ; # Z\n  %54 = phi i64 [%27, %$5], [%37, %$7], [%46, %$8] ; # Tos\n  %55 = phi i64 [%29, %$5], [%38, %$7], [%47, %$8] ; # Y\n  %56 = phi i1 [0, %$5], [0, %$7], [%49, %$8] ; # ->\n  br i1 %56, label %$9, label %$10\n$9:\n  %57 = phi i64 [%50, %$6] ; # Prg\n  %58 = phi i64 [%51, %$6] ; # P\n  %59 = phi i64 [%52, %$6] ; # Q\n  %60 = phi i64 [%53, %$6] ; # Z\n  %61 = phi i64 [%54, %$6] ; # Tos\n  %62 = phi i64 [%55, %$6] ; # Y\n; # (set $Bind (setq P (push (val Y) Y P)))\n; # (val Y)\n  %63 = inttoptr i64 %62 to i64*\n  %64 = load i64, i64* %63\n; # (push (val Y) Y P)\n  %65 = alloca i64, i64 3, align 16\n  %66 = ptrtoint i64* %65 to i64\n  %67 = inttoptr i64 %66 to i64*\n  store i64 %64, i64* %67\n  %68 = add i64 %66, 8\n  %69 = inttoptr i64 %68 to i64*\n  store i64 %62, i64* %69\n  %70 = add i64 %66, 16\n  %71 = inttoptr i64 %70 to i64*\n  store i64 %58, i64* %71\n  %72 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %66, i64* %72\n; # (set Y -ZERO)\n  %73 = inttoptr i64 %62 to i64*\n  store i64 10, i64* %73\n  br label %$10\n$10:\n  %74 = phi i64 [%50, %$6], [%57, %$9] ; # Prg\n  %75 = phi i64 [%51, %$6], [%66, %$9] ; # P\n  %76 = phi i64 [%52, %$6], [%59, %$9] ; # Q\n  %77 = phi i64 [%53, %$6], [%60, %$9] ; # Z\n  %78 = phi i64 [%54, %$6], [%61, %$9] ; # Tos\n  %79 = phi i64 [%55, %$6], [%62, %$9] ; # Y\n; # (loop (? (pair (cdr Z)) (let U Z (setq Z @) (set 2 U Tos) (setq T...\n  br label %$11\n$11:\n  %80 = phi i64 [%74, %$10], [%307, %$40] ; # Prg\n  %81 = phi i64 [%75, %$10], [%308, %$40] ; # P\n  %82 = phi i64 [%76, %$10], [%309, %$40] ; # Q\n  %83 = phi i64 [%77, %$10], [%310, %$40] ; # Z\n  %84 = phi i64 [%78, %$10], [%311, %$40] ; # Tos\n; # (? (pair (cdr Z)) (let U Z (setq Z @) (set 2 U Tos) (setq Tos (| ...\n; # (cdr Z)\n  %85 = inttoptr i64 %83 to i64*\n  %86 = getelementptr i64, i64* %85, i32 1\n  %87 = load i64, i64* %86\n; # (pair (cdr Z))\n  %88 = and i64 %87, 15\n  %89 = icmp eq i64 %88, 0\n  br i1 %89, label %$14, label %$12\n$14:\n  %90 = phi i64 [%80, %$11] ; # Prg\n  %91 = phi i64 [%81, %$11] ; # P\n  %92 = phi i64 [%82, %$11] ; # Q\n  %93 = phi i64 [%83, %$11] ; # Z\n  %94 = phi i64 [%84, %$11] ; # Tos\n; # (let U Z (setq Z @) (set 2 U Tos) (setq Tos (| U 8)))\n; # (set 2 U Tos)\n  %95 = inttoptr i64 %93 to i64*\n  %96 = getelementptr i64, i64* %95, i32 1\n  store i64 %94, i64* %96\n; # (| U 8)\n  %97 = or i64 %93, 8\n  br label %$13\n$12:\n  %98 = phi i64 [%80, %$11] ; # Prg\n  %99 = phi i64 [%81, %$11] ; # P\n  %100 = phi i64 [%82, %$11] ; # Q\n  %101 = phi i64 [%83, %$11] ; # Z\n  %102 = phi i64 [%84, %$11] ; # Tos\n; # (let Y @ (when (and (symb? Y) (<> -ZERO (val Y)) (== (firstByte Y...\n; # (when (and (symb? Y) (<> -ZERO (val Y)) (== (firstByte Y) (char \"...\n; # (and (symb? Y) (<> -ZERO (val Y)) (== (firstByte Y) (char \"@\")))\n; # (symb? Y)\n  %103 = xor i64 %87, 8\n  %104 = and i64 %103, 14\n  %105 = icmp eq i64 %104, 0\n  br i1 %105, label %$16, label %$15\n$16:\n  %106 = phi i64 [%98, %$12] ; # Prg\n  %107 = phi i64 [%99, %$12] ; # P\n  %108 = phi i64 [%100, %$12] ; # Q\n  %109 = phi i64 [%101, %$12] ; # Z\n  %110 = phi i64 [%102, %$12] ; # Tos\n  %111 = phi i64 [%87, %$12] ; # Y\n; # (val Y)\n  %112 = inttoptr i64 %111 to i64*\n  %113 = load i64, i64* %112\n; # (<> -ZERO (val Y))\n  %114 = icmp ne i64 10, %113\n  br i1 %114, label %$17, label %$15\n$17:\n  %115 = phi i64 [%106, %$16] ; # Prg\n  %116 = phi i64 [%107, %$16] ; # P\n  %117 = phi i64 [%108, %$16] ; # Q\n  %118 = phi i64 [%109, %$16] ; # Z\n  %119 = phi i64 [%110, %$16] ; # Tos\n  %120 = phi i64 [%111, %$16] ; # Y\n; # (firstByte Y)\n  %121 = call i8 @firstByte(i64 %120)\n; # (== (firstByte Y) (char \"@\"))\n  %122 = icmp eq i8 %121, 64\n  br label %$15\n$15:\n  %123 = phi i64 [%98, %$12], [%106, %$16], [%115, %$17] ; # Prg\n  %124 = phi i64 [%99, %$12], [%107, %$16], [%116, %$17] ; # P\n  %125 = phi i64 [%100, %$12], [%108, %$16], [%117, %$17] ; # Q\n  %126 = phi i64 [%101, %$12], [%109, %$16], [%118, %$17] ; # Z\n  %127 = phi i64 [%102, %$12], [%110, %$16], [%119, %$17] ; # Tos\n  %128 = phi i64 [%87, %$12], [%111, %$16], [%120, %$17] ; # Y\n  %129 = phi i1 [0, %$12], [0, %$16], [%122, %$17] ; # ->\n  br i1 %129, label %$18, label %$19\n$18:\n  %130 = phi i64 [%123, %$15] ; # Prg\n  %131 = phi i64 [%124, %$15] ; # P\n  %132 = phi i64 [%125, %$15] ; # Q\n  %133 = phi i64 [%126, %$15] ; # Z\n  %134 = phi i64 [%127, %$15] ; # Tos\n  %135 = phi i64 [%128, %$15] ; # Y\n; # (set $Bind (setq P (push (val Y) Y P)))\n; # (val Y)\n  %136 = inttoptr i64 %135 to i64*\n  %137 = load i64, i64* %136\n; # (push (val Y) Y P)\n  %138 = alloca i64, i64 3, align 16\n  %139 = ptrtoint i64* %138 to i64\n  %140 = inttoptr i64 %139 to i64*\n  store i64 %137, i64* %140\n  %141 = add i64 %139, 8\n  %142 = inttoptr i64 %141 to i64*\n  store i64 %135, i64* %142\n  %143 = add i64 %139, 16\n  %144 = inttoptr i64 %143 to i64*\n  store i64 %131, i64* %144\n  %145 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %139, i64* %145\n; # (set Y -ZERO)\n  %146 = inttoptr i64 %135 to i64*\n  store i64 10, i64* %146\n  br label %$19\n$19:\n  %147 = phi i64 [%123, %$15], [%130, %$18] ; # Prg\n  %148 = phi i64 [%124, %$15], [%139, %$18] ; # P\n  %149 = phi i64 [%125, %$15], [%132, %$18] ; # Q\n  %150 = phi i64 [%126, %$15], [%133, %$18] ; # Z\n  %151 = phi i64 [%127, %$15], [%134, %$18] ; # Tos\n  %152 = phi i64 [%128, %$15], [%135, %$18] ; # Y\n; # (loop (unless Tos (let (X P N (car (val (val $Pnl)))) (until (== ...\n  br label %$20\n$20:\n  %153 = phi i64 [%147, %$19], [%296, %$39] ; # Prg\n  %154 = phi i64 [%148, %$19], [%297, %$39] ; # P\n  %155 = phi i64 [%149, %$19], [%298, %$39] ; # Q\n  %156 = phi i64 [%150, %$19], [%301, %$39] ; # Z\n  %157 = phi i64 [%151, %$19], [%304, %$39] ; # Tos\n; # (unless Tos (let (X P N (car (val (val $Pnl)))) (until (== Q X) (...\n  %158 = icmp ne i64 %157, 0\n  br i1 %158, label %$22, label %$21\n$21:\n  %159 = phi i64 [%153, %$20] ; # Prg\n  %160 = phi i64 [%154, %$20] ; # P\n  %161 = phi i64 [%155, %$20] ; # Q\n  %162 = phi i64 [%156, %$20] ; # Z\n  %163 = phi i64 [%157, %$20] ; # Tos\n; # (let (X P N (car (val (val $Pnl)))) (until (== Q X) (let Y (val 2...\n; # (val $Pnl)\n  %164 = load i64, i64* @$Pnl\n; # (val (val $Pnl))\n  %165 = inttoptr i64 %164 to i64*\n  %166 = load i64, i64* %165\n; # (car (val (val $Pnl)))\n  %167 = inttoptr i64 %166 to i64*\n  %168 = load i64, i64* %167\n; # (until (== Q X) (let Y (val 2 X) (set Y (lookup N Y))) (setq X (v...\n  br label %$23\n$23:\n  %169 = phi i64 [%159, %$21], [%177, %$24] ; # Prg\n  %170 = phi i64 [%160, %$21], [%178, %$24] ; # P\n  %171 = phi i64 [%161, %$21], [%179, %$24] ; # Q\n  %172 = phi i64 [%162, %$21], [%180, %$24] ; # Z\n  %173 = phi i64 [%163, %$21], [%181, %$24] ; # Tos\n  %174 = phi i64 [%160, %$21], [%191, %$24] ; # X\n  %175 = phi i64 [%168, %$21], [%183, %$24] ; # N\n; # (== Q X)\n  %176 = icmp eq i64 %171, %174\n  br i1 %176, label %$25, label %$24\n$24:\n  %177 = phi i64 [%169, %$23] ; # Prg\n  %178 = phi i64 [%170, %$23] ; # P\n  %179 = phi i64 [%171, %$23] ; # Q\n  %180 = phi i64 [%172, %$23] ; # Z\n  %181 = phi i64 [%173, %$23] ; # Tos\n  %182 = phi i64 [%174, %$23] ; # X\n  %183 = phi i64 [%175, %$23] ; # N\n; # (let Y (val 2 X) (set Y (lookup N Y)))\n; # (val 2 X)\n  %184 = inttoptr i64 %182 to i64*\n  %185 = getelementptr i64, i64* %184, i32 1\n  %186 = load i64, i64* %185\n; # (set Y (lookup N Y))\n; # (lookup N Y)\n  %187 = call i64 @lookup(i64 %183, i64 %186)\n  %188 = inttoptr i64 %186 to i64*\n  store i64 %187, i64* %188\n; # (val 3 X)\n  %189 = inttoptr i64 %182 to i64*\n  %190 = getelementptr i64, i64* %189, i32 2\n  %191 = load i64, i64* %190\n  br label %$23\n$25:\n  %192 = phi i64 [%169, %$23] ; # Prg\n  %193 = phi i64 [%170, %$23] ; # P\n  %194 = phi i64 [%171, %$23] ; # Q\n  %195 = phi i64 [%172, %$23] ; # Z\n  %196 = phi i64 [%173, %$23] ; # Tos\n  %197 = phi i64 [%174, %$23] ; # X\n  %198 = phi i64 [%175, %$23] ; # N\n; # (loop (let X (++ Prg) (when (atom Prg) (setq X (eval X)) (until (...\n  br label %$26\n$26:\n  %199 = phi i64 [%192, %$25], [%274, %$37] ; # Prg\n  %200 = phi i64 [%193, %$25], [%275, %$37] ; # P\n  %201 = phi i64 [%194, %$25], [%276, %$37] ; # Q\n  %202 = phi i64 [%195, %$25], [%277, %$37] ; # Z\n  %203 = phi i64 [%196, %$25], [%278, %$37] ; # Tos\n; # (let X (++ Prg) (when (atom Prg) (setq X (eval X)) (until (== Q P...\n; # (++ Prg)\n  %204 = inttoptr i64 %199 to i64*\n  %205 = getelementptr i64, i64* %204, i32 1\n  %206 = load i64, i64* %205\n  %207 = load i64, i64* %204\n; # (when (atom Prg) (setq X (eval X)) (until (== Q P) (set (val 2 P)...\n; # (atom Prg)\n  %208 = and i64 %206, 15\n  %209 = icmp ne i64 %208, 0\n  br i1 %209, label %$27, label %$28\n$27:\n  %210 = phi i64 [%206, %$26] ; # Prg\n  %211 = phi i64 [%200, %$26] ; # P\n  %212 = phi i64 [%201, %$26] ; # Q\n  %213 = phi i64 [%202, %$26] ; # Z\n  %214 = phi i64 [%203, %$26] ; # Tos\n  %215 = phi i64 [%207, %$26] ; # X\n; # (eval X)\n  %216 = and i64 %215, 6\n  %217 = icmp ne i64 %216, 0\n  br i1 %217, label %$31, label %$30\n$31:\n  %218 = phi i64 [%215, %$27] ; # X\n  br label %$29\n$30:\n  %219 = phi i64 [%215, %$27] ; # X\n  %220 = and i64 %219, 8\n  %221 = icmp ne i64 %220, 0\n  br i1 %221, label %$33, label %$32\n$33:\n  %222 = phi i64 [%219, %$30] ; # X\n  %223 = inttoptr i64 %222 to i64*\n  %224 = load i64, i64* %223\n  br label %$29\n$32:\n  %225 = phi i64 [%219, %$30] ; # X\n  %226 = call i64 @evList(i64 %225)\n  br label %$29\n$29:\n  %227 = phi i64 [%218, %$31], [%222, %$33], [%225, %$32] ; # X\n  %228 = phi i64 [%218, %$31], [%224, %$33], [%226, %$32] ; # ->\n; # (until (== Q P) (set (val 2 P) (val P)) (setq P (val 3 P)))\n  br label %$34\n$34:\n  %229 = phi i64 [%210, %$29], [%236, %$35] ; # Prg\n  %230 = phi i64 [%211, %$29], [%250, %$35] ; # P\n  %231 = phi i64 [%212, %$29], [%238, %$35] ; # Q\n  %232 = phi i64 [%213, %$29], [%239, %$35] ; # Z\n  %233 = phi i64 [%214, %$29], [%240, %$35] ; # Tos\n  %234 = phi i64 [%228, %$29], [%241, %$35] ; # X\n; # (== Q P)\n  %235 = icmp eq i64 %231, %230\n  br i1 %235, label %$36, label %$35\n$35:\n  %236 = phi i64 [%229, %$34] ; # Prg\n  %237 = phi i64 [%230, %$34] ; # P\n  %238 = phi i64 [%231, %$34] ; # Q\n  %239 = phi i64 [%232, %$34] ; # Z\n  %240 = phi i64 [%233, %$34] ; # Tos\n  %241 = phi i64 [%234, %$34] ; # X\n; # (set (val 2 P) (val P))\n; # (val 2 P)\n  %242 = inttoptr i64 %237 to i64*\n  %243 = getelementptr i64, i64* %242, i32 1\n  %244 = load i64, i64* %243\n; # (val P)\n  %245 = inttoptr i64 %237 to i64*\n  %246 = load i64, i64* %245\n  %247 = inttoptr i64 %244 to i64*\n  store i64 %246, i64* %247\n; # (val 3 P)\n  %248 = inttoptr i64 %237 to i64*\n  %249 = getelementptr i64, i64* %248, i32 2\n  %250 = load i64, i64* %249\n  br label %$34\n$36:\n  %251 = phi i64 [%229, %$34] ; # Prg\n  %252 = phi i64 [%230, %$34] ; # P\n  %253 = phi i64 [%231, %$34] ; # Q\n  %254 = phi i64 [%232, %$34] ; # Z\n  %255 = phi i64 [%233, %$34] ; # Tos\n  %256 = phi i64 [%234, %$34] ; # X\n; # (set $Bind P)\n  %257 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  store i64 %252, i64* %257\n; # (ret X)\n  ret i64 %256\n$28:\n  %258 = phi i64 [%206, %$26] ; # Prg\n  %259 = phi i64 [%200, %$26] ; # P\n  %260 = phi i64 [%201, %$26] ; # Q\n  %261 = phi i64 [%202, %$26] ; # Z\n  %262 = phi i64 [%203, %$26] ; # Tos\n  %263 = phi i64 [%207, %$26] ; # X\n; # (and (pair X) (evList X))\n; # (pair X)\n  %264 = and i64 %263, 15\n  %265 = icmp eq i64 %264, 0\n  br i1 %265, label %$38, label %$37\n$38:\n  %266 = phi i64 [%258, %$28] ; # Prg\n  %267 = phi i64 [%259, %$28] ; # P\n  %268 = phi i64 [%260, %$28] ; # Q\n  %269 = phi i64 [%261, %$28] ; # Z\n  %270 = phi i64 [%262, %$28] ; # Tos\n  %271 = phi i64 [%263, %$28] ; # X\n; # (evList X)\n  %272 = call i64 @evList(i64 %271)\n  %273 = icmp ne i64 %272, 0\n  br label %$37\n$37:\n  %274 = phi i64 [%258, %$28], [%266, %$38] ; # Prg\n  %275 = phi i64 [%259, %$28], [%267, %$38] ; # P\n  %276 = phi i64 [%260, %$28], [%268, %$38] ; # Q\n  %277 = phi i64 [%261, %$28], [%269, %$38] ; # Z\n  %278 = phi i64 [%262, %$28], [%270, %$38] ; # Tos\n  %279 = phi i64 [%263, %$28], [%271, %$38] ; # X\n  %280 = phi i1 [0, %$28], [%273, %$38] ; # ->\n  br label %$26\n$22:\n  %281 = phi i64 [%153, %$20] ; # Prg\n  %282 = phi i64 [%154, %$20] ; # P\n  %283 = phi i64 [%155, %$20] ; # Q\n  %284 = phi i64 [%156, %$20] ; # Z\n  %285 = phi i64 [%157, %$20] ; # Tos\n; # (? (=0 (& Tos 8)) (let U Tos (setq Tos (car U)) (set U Z) (setq Z...\n; # (& Tos 8)\n  %286 = and i64 %285, 8\n; # (=0 (& Tos 8))\n  %287 = icmp eq i64 %286, 0\n  br i1 %287, label %$41, label %$39\n$41:\n  %288 = phi i64 [%281, %$22] ; # Prg\n  %289 = phi i64 [%282, %$22] ; # P\n  %290 = phi i64 [%283, %$22] ; # Q\n  %291 = phi i64 [%284, %$22] ; # Z\n  %292 = phi i64 [%285, %$22] ; # Tos\n; # (let U Tos (setq Tos (car U)) (set U Z) (setq Z U))\n; # (car U)\n  %293 = inttoptr i64 %292 to i64*\n  %294 = load i64, i64* %293\n; # (set U Z)\n  %295 = inttoptr i64 %292 to i64*\n  store i64 %291, i64* %295\n  br label %$40\n$39:\n  %296 = phi i64 [%281, %$22] ; # Prg\n  %297 = phi i64 [%282, %$22] ; # P\n  %298 = phi i64 [%283, %$22] ; # Q\n  %299 = phi i64 [%284, %$22] ; # Z\n  %300 = phi i64 [%285, %$22] ; # Tos\n; # (let U (& Tos -9) (setq Tos (cdr U)) (set 2 U Z) (setq Z U))\n; # (& Tos -9)\n  %301 = and i64 %300, -9\n; # (cdr U)\n  %302 = inttoptr i64 %301 to i64*\n  %303 = getelementptr i64, i64* %302, i32 1\n  %304 = load i64, i64* %303\n; # (set 2 U Z)\n  %305 = inttoptr i64 %301 to i64*\n  %306 = getelementptr i64, i64* %305, i32 1\n  store i64 %299, i64* %306\n  br label %$20\n$40:\n  %307 = phi i64 [%288, %$41] ; # Prg\n  %308 = phi i64 [%289, %$41] ; # P\n  %309 = phi i64 [%290, %$41] ; # Q\n  %310 = phi i64 [%292, %$41] ; # Z\n  %311 = phi i64 [%294, %$41] ; # Tos\n  %312 = phi i64 [%292, %$41] ; # ->\n  br label %$11\n$13:\n  %313 = phi i64 [%90, %$14] ; # Prg\n  %314 = phi i64 [%91, %$14] ; # P\n  %315 = phi i64 [%92, %$14] ; # Q\n  %316 = phi i64 [%87, %$14] ; # Z\n  %317 = phi i64 [%97, %$14] ; # Tos\n  %318 = phi i64 [%97, %$14] ; # ->\n  br label %$2\n}\n\ndefine i64 @_Prove(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (atom (eval (car X))) $Nil (let (Q (save @) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (atom (eval (car X))) $Nil (let (Q (save @) Dbg (if (nil? (ev...\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (car X))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (atom (eval (car X)))\n  %19 = and i64 %18, 15\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%3, %$2] ; # X\n  br label %$9\n$8:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%3, %$2] ; # X\n; # (let (Q (save @) Dbg (if (nil? (eval (cadr X))) 0 (save @)) P (pr...\n; # (save @)\n  %25 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %26 = load i64, i64* %25\n  %27 = alloca i64, i64 2, align 16\n  %28 = ptrtoint i64* %27 to i64\n  %29 = inttoptr i64 %28 to i64*\n  store i64 %18, i64* %29\n  %30 = add i64 %28, 8\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %26, i64* %31\n  %32 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %28, i64* %32\n; # (if (nil? (eval (cadr X))) 0 (save @))\n; # (cadr X)\n  %33 = inttoptr i64 %24 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (eval (cadr X))\n  %38 = and i64 %37, 6\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$12, label %$11\n$12:\n  %40 = phi i64 [%37, %$8] ; # X\n  br label %$10\n$11:\n  %41 = phi i64 [%37, %$8] ; # X\n  %42 = and i64 %41, 8\n  %43 = icmp ne i64 %42, 0\n  br i1 %43, label %$14, label %$13\n$14:\n  %44 = phi i64 [%41, %$11] ; # X\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n  br label %$10\n$13:\n  %47 = phi i64 [%41, %$11] ; # X\n  %48 = call i64 @evList(i64 %47)\n  br label %$10\n$10:\n  %49 = phi i64 [%40, %$12], [%44, %$14], [%47, %$13] ; # X\n  %50 = phi i64 [%40, %$12], [%46, %$14], [%48, %$13] ; # ->\n; # (nil? (eval (cadr X)))\n  %51 = icmp eq i64 %50, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %51, label %$15, label %$16\n$15:\n  %52 = phi i64 [%23, %$10] ; # Exe\n  %53 = phi i64 [%24, %$10] ; # X\n  %54 = phi i64 [%18, %$10] ; # Q\n  br label %$17\n$16:\n  %55 = phi i64 [%23, %$10] ; # Exe\n  %56 = phi i64 [%24, %$10] ; # X\n  %57 = phi i64 [%18, %$10] ; # Q\n; # (save @)\n  %58 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %59 = load i64, i64* %58\n  %60 = alloca i64, i64 2, align 16\n  %61 = ptrtoint i64* %60 to i64\n  %62 = inttoptr i64 %61 to i64*\n  store i64 %50, i64* %62\n  %63 = add i64 %61, 8\n  %64 = inttoptr i64 %63 to i64*\n  store i64 %59, i64* %64\n  %65 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %61, i64* %65\n  br label %$17\n$17:\n  %66 = phi i64 [%52, %$15], [%55, %$16] ; # Exe\n  %67 = phi i64 [%53, %$15], [%56, %$16] ; # X\n  %68 = phi i64 [%54, %$15], [%57, %$16] ; # Q\n  %69 = phi i64 [0, %$15], [%50, %$16] ; # ->\n; # (prog1 (caar Q) (set Q (cdar Q)))\n; # (caar Q)\n  %70 = inttoptr i64 %68 to i64*\n  %71 = load i64, i64* %70\n  %72 = inttoptr i64 %71 to i64*\n  %73 = load i64, i64* %72\n; # (set Q (cdar Q))\n; # (cdar Q)\n  %74 = inttoptr i64 %68 to i64*\n  %75 = load i64, i64* %74\n  %76 = inttoptr i64 %75 to i64*\n  %77 = getelementptr i64, i64* %76, i32 1\n  %78 = load i64, i64* %77\n  %79 = inttoptr i64 %68 to i64*\n  store i64 %78, i64* %79\n; # (++ P)\n  %80 = inttoptr i64 %73 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  %82 = load i64, i64* %81\n  %83 = load i64, i64* %80\n; # (++ P)\n  %84 = inttoptr i64 %82 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n  %87 = load i64, i64* %84\n; # (push (++ P) NIL)\n  %88 = alloca i64, i64 2, align 16\n  %89 = ptrtoint i64* %88 to i64\n  %90 = inttoptr i64 %89 to i64*\n  store i64 %87, i64* %90\n; # (link (push (++ P) NIL))\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %92 = load i64, i64* %91\n  %93 = inttoptr i64 %89 to i64*\n  %94 = getelementptr i64, i64* %93, i32 1\n  store i64 %92, i64* %94\n  %95 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %89, i64* %95\n; # (++ P)\n  %96 = inttoptr i64 %86 to i64*\n  %97 = getelementptr i64, i64* %96, i32 1\n  %98 = load i64, i64* %97\n  %99 = load i64, i64* %96\n; # (push (++ P) NIL)\n  %100 = alloca i64, i64 2, align 16\n  %101 = ptrtoint i64* %100 to i64\n  %102 = inttoptr i64 %101 to i64*\n  store i64 %99, i64* %102\n; # (link (push (++ P) NIL))\n  %103 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %104 = load i64, i64* %103\n  %105 = inttoptr i64 %101 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  store i64 %104, i64* %106\n  %107 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %101, i64* %107\n; # (++ P)\n  %108 = inttoptr i64 %98 to i64*\n  %109 = getelementptr i64, i64* %108, i32 1\n  %110 = load i64, i64* %109\n  %111 = load i64, i64* %108\n; # (push (++ P) NIL)\n  %112 = alloca i64, i64 2, align 16\n  %113 = ptrtoint i64* %112 to i64\n  %114 = inttoptr i64 %113 to i64*\n  store i64 %111, i64* %114\n; # (link (push (++ P) NIL))\n  %115 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %116 = load i64, i64* %115\n  %117 = inttoptr i64 %113 to i64*\n  %118 = getelementptr i64, i64* %117, i32 1\n  store i64 %116, i64* %118\n  %119 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %113, i64* %119\n; # (++ P)\n  %120 = inttoptr i64 %110 to i64*\n  %121 = getelementptr i64, i64* %120, i32 1\n  %122 = load i64, i64* %121\n  %123 = load i64, i64* %120\n; # (push (++ P) NIL)\n  %124 = alloca i64, i64 2, align 16\n  %125 = ptrtoint i64* %124 to i64\n  %126 = inttoptr i64 %125 to i64*\n  store i64 %123, i64* %126\n; # (link (push (++ P) NIL))\n  %127 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 %125 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  store i64 %128, i64* %130\n  %131 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %125, i64* %131\n; # (push P NIL)\n  %132 = alloca i64, i64 2, align 16\n  %133 = ptrtoint i64* %132 to i64\n  %134 = inttoptr i64 %133 to i64*\n  store i64 %122, i64* %134\n; # (link (push P NIL))\n  %135 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %136 = load i64, i64* %135\n  %137 = inttoptr i64 %133 to i64*\n  %138 = getelementptr i64, i64* %137, i32 1\n  store i64 %136, i64* %138\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %133, i64* %139\n; # (push $Nil NIL)\n  %140 = alloca i64, i64 2, align 16\n  %141 = ptrtoint i64* %140 to i64\n  %142 = inttoptr i64 %141 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %142\n; # (link (push $Nil NIL))\n  %143 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %144 = load i64, i64* %143\n  %145 = inttoptr i64 %141 to i64*\n  %146 = getelementptr i64, i64* %145, i32 1\n  store i64 %144, i64* %146\n  %147 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %141, i64* %147\n; # (val $At)\n  %148 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  %149 = load i64, i64* %148\n; # (save (val $At))\n  %150 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %151 = load i64, i64* %150\n  %152 = alloca i64, i64 2, align 16\n  %153 = ptrtoint i64* %152 to i64\n  %154 = inttoptr i64 %153 to i64*\n  store i64 %149, i64* %154\n  %155 = add i64 %153, 8\n  %156 = inttoptr i64 %155 to i64*\n  store i64 %151, i64* %156\n  %157 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %153, i64* %157\n; # (val $Penv)\n  %158 = load i64, i64* @$Penv\n; # (val $Pnl)\n  %159 = load i64, i64* @$Pnl\n; # (set $Penv Env $Pnl Nl)\n  store i64 %133, i64* @$Penv\n  store i64 %89, i64* @$Pnl\n; # (while (or (pair (val Tp1)) (pair (val Tp2))) (sigChk Exe) (cond ...\n  br label %$18\n$18:\n  %160 = phi i64 [%66, %$17], [%1235, %$25] ; # Exe\n  %161 = phi i64 [%67, %$17], [%1236, %$25] ; # X\n  %162 = phi i64 [%68, %$17], [%1237, %$25] ; # Q\n  %163 = phi i64 [%69, %$17], [%1238, %$25] ; # Dbg\n  %164 = phi i64 [%122, %$17], [%1239, %$25] ; # P\n  %165 = phi i64 [%83, %$17], [%1240, %$25] ; # N\n  %166 = phi i64 [%89, %$17], [%1241, %$25] ; # Nl\n  %167 = phi i64 [%101, %$17], [%1242, %$25] ; # Alt\n  %168 = phi i64 [%113, %$17], [%1243, %$25] ; # Tp1\n  %169 = phi i64 [%125, %$17], [%1244, %$25] ; # Tp2\n  %170 = phi i64 [%133, %$17], [%1245, %$25] ; # Env\n  %171 = phi i64 [%141, %$17], [%1246, %$25] ; # E\n  %172 = phi i64 [%149, %$17], [%1247, %$25] ; # At\n  %173 = phi i64 [%158, %$17], [%1248, %$25] ; # Penv\n  %174 = phi i64 [%159, %$17], [%1249, %$25] ; # Pnl\n; # (or (pair (val Tp1)) (pair (val Tp2)))\n; # (val Tp1)\n  %175 = inttoptr i64 %168 to i64*\n  %176 = load i64, i64* %175\n; # (pair (val Tp1))\n  %177 = and i64 %176, 15\n  %178 = icmp eq i64 %177, 0\n  br i1 %178, label %$19, label %$20\n$20:\n  %179 = phi i64 [%160, %$18] ; # Exe\n  %180 = phi i64 [%161, %$18] ; # X\n  %181 = phi i64 [%162, %$18] ; # Q\n  %182 = phi i64 [%163, %$18] ; # Dbg\n  %183 = phi i64 [%164, %$18] ; # P\n  %184 = phi i64 [%165, %$18] ; # N\n  %185 = phi i64 [%166, %$18] ; # Nl\n  %186 = phi i64 [%167, %$18] ; # Alt\n  %187 = phi i64 [%168, %$18] ; # Tp1\n  %188 = phi i64 [%169, %$18] ; # Tp2\n  %189 = phi i64 [%170, %$18] ; # Env\n  %190 = phi i64 [%171, %$18] ; # E\n  %191 = phi i64 [%172, %$18] ; # At\n  %192 = phi i64 [%173, %$18] ; # Penv\n  %193 = phi i64 [%174, %$18] ; # Pnl\n; # (val Tp2)\n  %194 = inttoptr i64 %188 to i64*\n  %195 = load i64, i64* %194\n; # (pair (val Tp2))\n  %196 = and i64 %195, 15\n  %197 = icmp eq i64 %196, 0\n  br label %$19\n$19:\n  %198 = phi i64 [%160, %$18], [%179, %$20] ; # Exe\n  %199 = phi i64 [%161, %$18], [%180, %$20] ; # X\n  %200 = phi i64 [%162, %$18], [%181, %$20] ; # Q\n  %201 = phi i64 [%163, %$18], [%182, %$20] ; # Dbg\n  %202 = phi i64 [%164, %$18], [%183, %$20] ; # P\n  %203 = phi i64 [%165, %$18], [%184, %$20] ; # N\n  %204 = phi i64 [%166, %$18], [%185, %$20] ; # Nl\n  %205 = phi i64 [%167, %$18], [%186, %$20] ; # Alt\n  %206 = phi i64 [%168, %$18], [%187, %$20] ; # Tp1\n  %207 = phi i64 [%169, %$18], [%188, %$20] ; # Tp2\n  %208 = phi i64 [%170, %$18], [%189, %$20] ; # Env\n  %209 = phi i64 [%171, %$18], [%190, %$20] ; # E\n  %210 = phi i64 [%172, %$18], [%191, %$20] ; # At\n  %211 = phi i64 [%173, %$18], [%192, %$20] ; # Penv\n  %212 = phi i64 [%174, %$18], [%193, %$20] ; # Pnl\n  %213 = phi i1 [1, %$18], [%197, %$20] ; # ->\n  br i1 %213, label %$21, label %$22\n$21:\n  %214 = phi i64 [%198, %$19] ; # Exe\n  %215 = phi i64 [%199, %$19] ; # X\n  %216 = phi i64 [%200, %$19] ; # Q\n  %217 = phi i64 [%201, %$19] ; # Dbg\n  %218 = phi i64 [%202, %$19] ; # P\n  %219 = phi i64 [%203, %$19] ; # N\n  %220 = phi i64 [%204, %$19] ; # Nl\n  %221 = phi i64 [%205, %$19] ; # Alt\n  %222 = phi i64 [%206, %$19] ; # Tp1\n  %223 = phi i64 [%207, %$19] ; # Tp2\n  %224 = phi i64 [%208, %$19] ; # Env\n  %225 = phi i64 [%209, %$19] ; # E\n  %226 = phi i64 [%210, %$19] ; # At\n  %227 = phi i64 [%211, %$19] ; # Penv\n  %228 = phi i64 [%212, %$19] ; # Pnl\n; # (sigChk Exe)\n  %229 = load volatile i32, i32* bitcast ([16 x i32]* @$Signal to i32*)\n  %230 = icmp ne i32 %229, 0\n  br i1 %230, label %$23, label %$24\n$23:\n  %231 = phi i64 [%214, %$21] ; # Exe\n  call void @sighandler(i64 %231)\n  br label %$24\n$24:\n  %232 = phi i64 [%214, %$21], [%231, %$23] ; # Exe\n; # (cond ((pair (val Alt)) (set E (val Env)) (ifn (unify (car (val N...\n; # (val Alt)\n  %233 = inttoptr i64 %221 to i64*\n  %234 = load i64, i64* %233\n; # (pair (val Alt))\n  %235 = and i64 %234, 15\n  %236 = icmp eq i64 %235, 0\n  br i1 %236, label %$27, label %$26\n$27:\n  %237 = phi i64 [%214, %$24] ; # Exe\n  %238 = phi i64 [%215, %$24] ; # X\n  %239 = phi i64 [%216, %$24] ; # Q\n  %240 = phi i64 [%217, %$24] ; # Dbg\n  %241 = phi i64 [%218, %$24] ; # P\n  %242 = phi i64 [%219, %$24] ; # N\n  %243 = phi i64 [%220, %$24] ; # Nl\n  %244 = phi i64 [%221, %$24] ; # Alt\n  %245 = phi i64 [%222, %$24] ; # Tp1\n  %246 = phi i64 [%223, %$24] ; # Tp2\n  %247 = phi i64 [%224, %$24] ; # Env\n  %248 = phi i64 [%225, %$24] ; # E\n  %249 = phi i64 [%226, %$24] ; # At\n  %250 = phi i64 [%227, %$24] ; # Penv\n  %251 = phi i64 [%228, %$24] ; # Pnl\n; # (set E (val Env))\n; # (val Env)\n  %252 = inttoptr i64 %247 to i64*\n  %253 = load i64, i64* %252\n  %254 = inttoptr i64 %248 to i64*\n  store i64 %253, i64* %254\n; # (ifn (unify (car (val Nl)) (cdar (val Tp1)) N (caar (val Alt))) (...\n; # (val Nl)\n  %255 = inttoptr i64 %243 to i64*\n  %256 = load i64, i64* %255\n; # (car (val Nl))\n  %257 = inttoptr i64 %256 to i64*\n  %258 = load i64, i64* %257\n; # (val Tp1)\n  %259 = inttoptr i64 %245 to i64*\n  %260 = load i64, i64* %259\n; # (cdar (val Tp1))\n  %261 = inttoptr i64 %260 to i64*\n  %262 = load i64, i64* %261\n  %263 = inttoptr i64 %262 to i64*\n  %264 = getelementptr i64, i64* %263, i32 1\n  %265 = load i64, i64* %264\n; # (val Alt)\n  %266 = inttoptr i64 %244 to i64*\n  %267 = load i64, i64* %266\n; # (caar (val Alt))\n  %268 = inttoptr i64 %267 to i64*\n  %269 = load i64, i64* %268\n  %270 = inttoptr i64 %269 to i64*\n  %271 = load i64, i64* %270\n; # (unify (car (val Nl)) (cdar (val Tp1)) N (caar (val Alt)))\n  %272 = call i1 @unify(i64 %258, i64 %265, i64 %242, i64 %271)\n  br i1 %272, label %$29, label %$28\n$28:\n  %273 = phi i64 [%237, %$27] ; # Exe\n  %274 = phi i64 [%238, %$27] ; # X\n  %275 = phi i64 [%239, %$27] ; # Q\n  %276 = phi i64 [%240, %$27] ; # Dbg\n  %277 = phi i64 [%241, %$27] ; # P\n  %278 = phi i64 [%242, %$27] ; # N\n  %279 = phi i64 [%243, %$27] ; # Nl\n  %280 = phi i64 [%244, %$27] ; # Alt\n  %281 = phi i64 [%245, %$27] ; # Tp1\n  %282 = phi i64 [%246, %$27] ; # Tp2\n  %283 = phi i64 [%247, %$27] ; # Env\n  %284 = phi i64 [%248, %$27] ; # E\n  %285 = phi i64 [%249, %$27] ; # At\n  %286 = phi i64 [%250, %$27] ; # Penv\n  %287 = phi i64 [%251, %$27] ; # Pnl\n; # (when (atom (set Alt (cdr (val Alt)))) (setq P (caar Q)) (set Q (...\n; # (set Alt (cdr (val Alt)))\n; # (val Alt)\n  %288 = inttoptr i64 %280 to i64*\n  %289 = load i64, i64* %288\n; # (cdr (val Alt))\n  %290 = inttoptr i64 %289 to i64*\n  %291 = getelementptr i64, i64* %290, i32 1\n  %292 = load i64, i64* %291\n  %293 = inttoptr i64 %280 to i64*\n  store i64 %292, i64* %293\n; # (atom (set Alt (cdr (val Alt))))\n  %294 = and i64 %292, 15\n  %295 = icmp ne i64 %294, 0\n  br i1 %295, label %$31, label %$32\n$31:\n  %296 = phi i64 [%273, %$28] ; # Exe\n  %297 = phi i64 [%274, %$28] ; # X\n  %298 = phi i64 [%275, %$28] ; # Q\n  %299 = phi i64 [%276, %$28] ; # Dbg\n  %300 = phi i64 [%277, %$28] ; # P\n  %301 = phi i64 [%278, %$28] ; # N\n  %302 = phi i64 [%279, %$28] ; # Nl\n  %303 = phi i64 [%280, %$28] ; # Alt\n  %304 = phi i64 [%281, %$28] ; # Tp1\n  %305 = phi i64 [%282, %$28] ; # Tp2\n  %306 = phi i64 [%283, %$28] ; # Env\n  %307 = phi i64 [%284, %$28] ; # E\n  %308 = phi i64 [%285, %$28] ; # At\n  %309 = phi i64 [%286, %$28] ; # Penv\n  %310 = phi i64 [%287, %$28] ; # Pnl\n; # (caar Q)\n  %311 = inttoptr i64 %298 to i64*\n  %312 = load i64, i64* %311\n  %313 = inttoptr i64 %312 to i64*\n  %314 = load i64, i64* %313\n; # (set Q (cdar Q))\n; # (cdar Q)\n  %315 = inttoptr i64 %298 to i64*\n  %316 = load i64, i64* %315\n  %317 = inttoptr i64 %316 to i64*\n  %318 = getelementptr i64, i64* %317, i32 1\n  %319 = load i64, i64* %318\n  %320 = inttoptr i64 %298 to i64*\n  store i64 %319, i64* %320\n; # (++ P)\n  %321 = inttoptr i64 %314 to i64*\n  %322 = getelementptr i64, i64* %321, i32 1\n  %323 = load i64, i64* %322\n  %324 = load i64, i64* %321\n; # (set Nl (++ P) Alt (++ P) Tp1 (++ P) Tp2 (++ P) Env P)\n; # (++ P)\n  %325 = inttoptr i64 %323 to i64*\n  %326 = getelementptr i64, i64* %325, i32 1\n  %327 = load i64, i64* %326\n  %328 = load i64, i64* %325\n  %329 = inttoptr i64 %302 to i64*\n  store i64 %328, i64* %329\n; # (++ P)\n  %330 = inttoptr i64 %327 to i64*\n  %331 = getelementptr i64, i64* %330, i32 1\n  %332 = load i64, i64* %331\n  %333 = load i64, i64* %330\n  %334 = inttoptr i64 %303 to i64*\n  store i64 %333, i64* %334\n; # (++ P)\n  %335 = inttoptr i64 %332 to i64*\n  %336 = getelementptr i64, i64* %335, i32 1\n  %337 = load i64, i64* %336\n  %338 = load i64, i64* %335\n  %339 = inttoptr i64 %304 to i64*\n  store i64 %338, i64* %339\n; # (++ P)\n  %340 = inttoptr i64 %337 to i64*\n  %341 = getelementptr i64, i64* %340, i32 1\n  %342 = load i64, i64* %341\n  %343 = load i64, i64* %340\n  %344 = inttoptr i64 %305 to i64*\n  store i64 %343, i64* %344\n  %345 = inttoptr i64 %306 to i64*\n  store i64 %342, i64* %345\n  br label %$32\n$32:\n  %346 = phi i64 [%273, %$28], [%296, %$31] ; # Exe\n  %347 = phi i64 [%274, %$28], [%297, %$31] ; # X\n  %348 = phi i64 [%275, %$28], [%298, %$31] ; # Q\n  %349 = phi i64 [%276, %$28], [%299, %$31] ; # Dbg\n  %350 = phi i64 [%277, %$28], [%342, %$31] ; # P\n  %351 = phi i64 [%278, %$28], [%324, %$31] ; # N\n  %352 = phi i64 [%279, %$28], [%302, %$31] ; # Nl\n  %353 = phi i64 [%280, %$28], [%303, %$31] ; # Alt\n  %354 = phi i64 [%281, %$28], [%304, %$31] ; # Tp1\n  %355 = phi i64 [%282, %$28], [%305, %$31] ; # Tp2\n  %356 = phi i64 [%283, %$28], [%306, %$31] ; # Env\n  %357 = phi i64 [%284, %$28], [%307, %$31] ; # E\n  %358 = phi i64 [%285, %$28], [%308, %$31] ; # At\n  %359 = phi i64 [%286, %$28], [%309, %$31] ; # Penv\n  %360 = phi i64 [%287, %$28], [%310, %$31] ; # Pnl\n  br label %$30\n$29:\n  %361 = phi i64 [%237, %$27] ; # Exe\n  %362 = phi i64 [%238, %$27] ; # X\n  %363 = phi i64 [%239, %$27] ; # Q\n  %364 = phi i64 [%240, %$27] ; # Dbg\n  %365 = phi i64 [%241, %$27] ; # P\n  %366 = phi i64 [%242, %$27] ; # N\n  %367 = phi i64 [%243, %$27] ; # Nl\n  %368 = phi i64 [%244, %$27] ; # Alt\n  %369 = phi i64 [%245, %$27] ; # Tp1\n  %370 = phi i64 [%246, %$27] ; # Tp2\n  %371 = phi i64 [%247, %$27] ; # Env\n  %372 = phi i64 [%248, %$27] ; # E\n  %373 = phi i64 [%249, %$27] ; # At\n  %374 = phi i64 [%250, %$27] ; # Penv\n  %375 = phi i64 [%251, %$27] ; # Pnl\n; # (when Dbg (let Y (car (val Tp1)) (when (memq (car Y) Dbg) (let (L...\n  %376 = icmp ne i64 %364, 0\n  br i1 %376, label %$33, label %$34\n$33:\n  %377 = phi i64 [%361, %$29] ; # Exe\n  %378 = phi i64 [%362, %$29] ; # X\n  %379 = phi i64 [%363, %$29] ; # Q\n  %380 = phi i64 [%364, %$29] ; # Dbg\n  %381 = phi i64 [%365, %$29] ; # P\n  %382 = phi i64 [%366, %$29] ; # N\n  %383 = phi i64 [%367, %$29] ; # Nl\n  %384 = phi i64 [%368, %$29] ; # Alt\n  %385 = phi i64 [%369, %$29] ; # Tp1\n  %386 = phi i64 [%370, %$29] ; # Tp2\n  %387 = phi i64 [%371, %$29] ; # Env\n  %388 = phi i64 [%372, %$29] ; # E\n  %389 = phi i64 [%373, %$29] ; # At\n  %390 = phi i64 [%374, %$29] ; # Penv\n  %391 = phi i64 [%375, %$29] ; # Pnl\n; # (let Y (car (val Tp1)) (when (memq (car Y) Dbg) (let (L (get (car...\n; # (val Tp1)\n  %392 = inttoptr i64 %385 to i64*\n  %393 = load i64, i64* %392\n; # (car (val Tp1))\n  %394 = inttoptr i64 %393 to i64*\n  %395 = load i64, i64* %394\n; # (when (memq (car Y) Dbg) (let (L (get (car Y) $T) I 1) (until (eq...\n; # (car Y)\n  %396 = inttoptr i64 %395 to i64*\n  %397 = load i64, i64* %396\n; # (memq (car Y) Dbg)\n  br label %$35\n$35:\n  %398 = phi i64 [%380, %$33], [%415, %$39] ; # L\n  %399 = phi i64 [%397, %$33], [%412, %$39] ; # X\n  %400 = and i64 %398, 15\n  %401 = icmp ne i64 %400, 0\n  br i1 %401, label %$38, label %$36\n$38:\n  %402 = phi i64 [%398, %$35] ; # L\n  %403 = phi i64 [%399, %$35] ; # X\n  br label %$37\n$36:\n  %404 = phi i64 [%398, %$35] ; # L\n  %405 = phi i64 [%399, %$35] ; # X\n  %406 = inttoptr i64 %404 to i64*\n  %407 = load i64, i64* %406\n  %408 = icmp eq i64 %405, %407\n  br i1 %408, label %$40, label %$39\n$40:\n  %409 = phi i64 [%404, %$36] ; # L\n  %410 = phi i64 [%405, %$36] ; # X\n  br label %$37\n$39:\n  %411 = phi i64 [%404, %$36] ; # L\n  %412 = phi i64 [%405, %$36] ; # X\n  %413 = inttoptr i64 %411 to i64*\n  %414 = getelementptr i64, i64* %413, i32 1\n  %415 = load i64, i64* %414\n  br label %$35\n$37:\n  %416 = phi i64 [%402, %$38], [%409, %$40] ; # L\n  %417 = phi i64 [%403, %$38], [%410, %$40] ; # X\n  %418 = phi i1 [0, %$38], [1, %$40] ; # ->\n  br i1 %418, label %$41, label %$42\n$41:\n  %419 = phi i64 [%377, %$37] ; # Exe\n  %420 = phi i64 [%378, %$37] ; # X\n  %421 = phi i64 [%379, %$37] ; # Q\n  %422 = phi i64 [%380, %$37] ; # Dbg\n  %423 = phi i64 [%381, %$37] ; # P\n  %424 = phi i64 [%382, %$37] ; # N\n  %425 = phi i64 [%383, %$37] ; # Nl\n  %426 = phi i64 [%384, %$37] ; # Alt\n  %427 = phi i64 [%385, %$37] ; # Tp1\n  %428 = phi i64 [%386, %$37] ; # Tp2\n  %429 = phi i64 [%387, %$37] ; # Env\n  %430 = phi i64 [%388, %$37] ; # E\n  %431 = phi i64 [%389, %$37] ; # At\n  %432 = phi i64 [%390, %$37] ; # Penv\n  %433 = phi i64 [%391, %$37] ; # Pnl\n  %434 = phi i64 [%395, %$37] ; # Y\n; # (let (L (get (car Y) $T) I 1) (until (equal (car (val Alt)) (car ...\n; # (car Y)\n  %435 = inttoptr i64 %434 to i64*\n  %436 = load i64, i64* %435\n; # (get (car Y) $T)\n  %437 = call i64 @get(i64 %436, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64))\n; # (until (equal (car (val Alt)) (car L)) (inc 'I) (shift L))\n  br label %$43\n$43:\n  %438 = phi i64 [%419, %$41], [%463, %$44] ; # Exe\n  %439 = phi i64 [%420, %$41], [%464, %$44] ; # X\n  %440 = phi i64 [%421, %$41], [%465, %$44] ; # Q\n  %441 = phi i64 [%422, %$41], [%466, %$44] ; # Dbg\n  %442 = phi i64 [%423, %$41], [%467, %$44] ; # P\n  %443 = phi i64 [%424, %$41], [%468, %$44] ; # N\n  %444 = phi i64 [%425, %$41], [%469, %$44] ; # Nl\n  %445 = phi i64 [%426, %$41], [%470, %$44] ; # Alt\n  %446 = phi i64 [%427, %$41], [%471, %$44] ; # Tp1\n  %447 = phi i64 [%428, %$41], [%472, %$44] ; # Tp2\n  %448 = phi i64 [%429, %$41], [%473, %$44] ; # Env\n  %449 = phi i64 [%430, %$41], [%474, %$44] ; # E\n  %450 = phi i64 [%431, %$41], [%475, %$44] ; # At\n  %451 = phi i64 [%432, %$41], [%476, %$44] ; # Penv\n  %452 = phi i64 [%433, %$41], [%477, %$44] ; # Pnl\n  %453 = phi i64 [%434, %$41], [%478, %$44] ; # Y\n  %454 = phi i64 [%437, %$41], [%484, %$44] ; # L\n  %455 = phi i64 [1, %$41], [%481, %$44] ; # I\n; # (val Alt)\n  %456 = inttoptr i64 %445 to i64*\n  %457 = load i64, i64* %456\n; # (car (val Alt))\n  %458 = inttoptr i64 %457 to i64*\n  %459 = load i64, i64* %458\n; # (car L)\n  %460 = inttoptr i64 %454 to i64*\n  %461 = load i64, i64* %460\n; # (equal (car (val Alt)) (car L))\n  %462 = call i1 @equal(i64 %459, i64 %461)\n  br i1 %462, label %$45, label %$44\n$44:\n  %463 = phi i64 [%438, %$43] ; # Exe\n  %464 = phi i64 [%439, %$43] ; # X\n  %465 = phi i64 [%440, %$43] ; # Q\n  %466 = phi i64 [%441, %$43] ; # Dbg\n  %467 = phi i64 [%442, %$43] ; # P\n  %468 = phi i64 [%443, %$43] ; # N\n  %469 = phi i64 [%444, %$43] ; # Nl\n  %470 = phi i64 [%445, %$43] ; # Alt\n  %471 = phi i64 [%446, %$43] ; # Tp1\n  %472 = phi i64 [%447, %$43] ; # Tp2\n  %473 = phi i64 [%448, %$43] ; # Env\n  %474 = phi i64 [%449, %$43] ; # E\n  %475 = phi i64 [%450, %$43] ; # At\n  %476 = phi i64 [%451, %$43] ; # Penv\n  %477 = phi i64 [%452, %$43] ; # Pnl\n  %478 = phi i64 [%453, %$43] ; # Y\n  %479 = phi i64 [%454, %$43] ; # L\n  %480 = phi i64 [%455, %$43] ; # I\n; # (inc 'I)\n  %481 = add i64 %480, 1\n; # (shift L)\n  %482 = inttoptr i64 %479 to i64*\n  %483 = getelementptr i64, i64* %482, i32 1\n  %484 = load i64, i64* %483\n  br label %$43\n$45:\n  %485 = phi i64 [%438, %$43] ; # Exe\n  %486 = phi i64 [%439, %$43] ; # X\n  %487 = phi i64 [%440, %$43] ; # Q\n  %488 = phi i64 [%441, %$43] ; # Dbg\n  %489 = phi i64 [%442, %$43] ; # P\n  %490 = phi i64 [%443, %$43] ; # N\n  %491 = phi i64 [%444, %$43] ; # Nl\n  %492 = phi i64 [%445, %$43] ; # Alt\n  %493 = phi i64 [%446, %$43] ; # Tp1\n  %494 = phi i64 [%447, %$43] ; # Tp2\n  %495 = phi i64 [%448, %$43] ; # Env\n  %496 = phi i64 [%449, %$43] ; # E\n  %497 = phi i64 [%450, %$43] ; # At\n  %498 = phi i64 [%451, %$43] ; # Penv\n  %499 = phi i64 [%452, %$43] ; # Pnl\n  %500 = phi i64 [%453, %$43] ; # Y\n  %501 = phi i64 [%454, %$43] ; # L\n  %502 = phi i64 [%455, %$43] ; # I\n; # (outWord I)\n  call void @outWord(i64 %502)\n; # (space)\n  call void @space()\n; # (uniFill Y)\n  %503 = call i64 @uniFill(i64 %500)\n; # (print (uniFill Y))\n  call void @print(i64 %503)\n; # (newline)\n  call void @newline()\n  br label %$42\n$42:\n  %504 = phi i64 [%377, %$37], [%485, %$45] ; # Exe\n  %505 = phi i64 [%378, %$37], [%486, %$45] ; # X\n  %506 = phi i64 [%379, %$37], [%487, %$45] ; # Q\n  %507 = phi i64 [%380, %$37], [%488, %$45] ; # Dbg\n  %508 = phi i64 [%381, %$37], [%489, %$45] ; # P\n  %509 = phi i64 [%382, %$37], [%490, %$45] ; # N\n  %510 = phi i64 [%383, %$37], [%491, %$45] ; # Nl\n  %511 = phi i64 [%384, %$37], [%492, %$45] ; # Alt\n  %512 = phi i64 [%385, %$37], [%493, %$45] ; # Tp1\n  %513 = phi i64 [%386, %$37], [%494, %$45] ; # Tp2\n  %514 = phi i64 [%387, %$37], [%495, %$45] ; # Env\n  %515 = phi i64 [%388, %$37], [%496, %$45] ; # E\n  %516 = phi i64 [%389, %$37], [%497, %$45] ; # At\n  %517 = phi i64 [%390, %$37], [%498, %$45] ; # Penv\n  %518 = phi i64 [%391, %$37], [%499, %$45] ; # Pnl\n  %519 = phi i64 [%395, %$37], [%500, %$45] ; # Y\n  br label %$34\n$34:\n  %520 = phi i64 [%361, %$29], [%504, %$42] ; # Exe\n  %521 = phi i64 [%362, %$29], [%505, %$42] ; # X\n  %522 = phi i64 [%363, %$29], [%506, %$42] ; # Q\n  %523 = phi i64 [%364, %$29], [%507, %$42] ; # Dbg\n  %524 = phi i64 [%365, %$29], [%508, %$42] ; # P\n  %525 = phi i64 [%366, %$29], [%509, %$42] ; # N\n  %526 = phi i64 [%367, %$29], [%510, %$42] ; # Nl\n  %527 = phi i64 [%368, %$29], [%511, %$42] ; # Alt\n  %528 = phi i64 [%369, %$29], [%512, %$42] ; # Tp1\n  %529 = phi i64 [%370, %$29], [%513, %$42] ; # Tp2\n  %530 = phi i64 [%371, %$29], [%514, %$42] ; # Env\n  %531 = phi i64 [%372, %$29], [%515, %$42] ; # E\n  %532 = phi i64 [%373, %$29], [%516, %$42] ; # At\n  %533 = phi i64 [%374, %$29], [%517, %$42] ; # Penv\n  %534 = phi i64 [%375, %$29], [%518, %$42] ; # Pnl\n; # (when (pair (cdr (val Alt))) (set Q (cons (cons N (cons (val Nl) ...\n; # (val Alt)\n  %535 = inttoptr i64 %527 to i64*\n  %536 = load i64, i64* %535\n; # (cdr (val Alt))\n  %537 = inttoptr i64 %536 to i64*\n  %538 = getelementptr i64, i64* %537, i32 1\n  %539 = load i64, i64* %538\n; # (pair (cdr (val Alt)))\n  %540 = and i64 %539, 15\n  %541 = icmp eq i64 %540, 0\n  br i1 %541, label %$46, label %$47\n$46:\n  %542 = phi i64 [%520, %$34] ; # Exe\n  %543 = phi i64 [%521, %$34] ; # X\n  %544 = phi i64 [%522, %$34] ; # Q\n  %545 = phi i64 [%523, %$34] ; # Dbg\n  %546 = phi i64 [%524, %$34] ; # P\n  %547 = phi i64 [%525, %$34] ; # N\n  %548 = phi i64 [%526, %$34] ; # Nl\n  %549 = phi i64 [%527, %$34] ; # Alt\n  %550 = phi i64 [%528, %$34] ; # Tp1\n  %551 = phi i64 [%529, %$34] ; # Tp2\n  %552 = phi i64 [%530, %$34] ; # Env\n  %553 = phi i64 [%531, %$34] ; # E\n  %554 = phi i64 [%532, %$34] ; # At\n  %555 = phi i64 [%533, %$34] ; # Penv\n  %556 = phi i64 [%534, %$34] ; # Pnl\n; # (set Q (cons (cons N (cons (val Nl) (cons @ (cons (val Tp1) (cons...\n; # (val Nl)\n  %557 = inttoptr i64 %548 to i64*\n  %558 = load i64, i64* %557\n; # (val Tp1)\n  %559 = inttoptr i64 %550 to i64*\n  %560 = load i64, i64* %559\n; # (val Tp2)\n  %561 = inttoptr i64 %551 to i64*\n  %562 = load i64, i64* %561\n; # (val E)\n  %563 = inttoptr i64 %553 to i64*\n  %564 = load i64, i64* %563\n; # (cons (val Tp2) (val E))\n  %565 = call i64 @cons(i64 %562, i64 %564)\n; # (cons (val Tp1) (cons (val Tp2) (val E)))\n  %566 = call i64 @cons(i64 %560, i64 %565)\n; # (cons @ (cons (val Tp1) (cons (val Tp2) (val E))))\n  %567 = call i64 @cons(i64 %539, i64 %566)\n; # (cons (val Nl) (cons @ (cons (val Tp1) (cons (val Tp2) (val E))))...\n  %568 = call i64 @cons(i64 %558, i64 %567)\n; # (cons N (cons (val Nl) (cons @ (cons (val Tp1) (cons (val Tp2) (v...\n  %569 = call i64 @cons(i64 %547, i64 %568)\n; # (car Q)\n  %570 = inttoptr i64 %544 to i64*\n  %571 = load i64, i64* %570\n; # (cons (cons N (cons (val Nl) (cons @ (cons (val Tp1) (cons (val T...\n  %572 = call i64 @cons(i64 %569, i64 %571)\n  %573 = inttoptr i64 %544 to i64*\n  store i64 %572, i64* %573\n  br label %$47\n$47:\n  %574 = phi i64 [%520, %$34], [%542, %$46] ; # Exe\n  %575 = phi i64 [%521, %$34], [%543, %$46] ; # X\n  %576 = phi i64 [%522, %$34], [%544, %$46] ; # Q\n  %577 = phi i64 [%523, %$34], [%545, %$46] ; # Dbg\n  %578 = phi i64 [%524, %$34], [%546, %$46] ; # P\n  %579 = phi i64 [%525, %$34], [%547, %$46] ; # N\n  %580 = phi i64 [%526, %$34], [%548, %$46] ; # Nl\n  %581 = phi i64 [%527, %$34], [%549, %$46] ; # Alt\n  %582 = phi i64 [%528, %$34], [%550, %$46] ; # Tp1\n  %583 = phi i64 [%529, %$34], [%551, %$46] ; # Tp2\n  %584 = phi i64 [%530, %$34], [%552, %$46] ; # Env\n  %585 = phi i64 [%531, %$34], [%553, %$46] ; # E\n  %586 = phi i64 [%532, %$34], [%554, %$46] ; # At\n  %587 = phi i64 [%533, %$34], [%555, %$46] ; # Penv\n  %588 = phi i64 [%534, %$34], [%556, %$46] ; # Pnl\n; # (set Nl (cons N (val Nl)) Tp2 (cons (cdr (val Tp1)) (val Tp2)) Tp...\n; # (val Nl)\n  %589 = inttoptr i64 %580 to i64*\n  %590 = load i64, i64* %589\n; # (cons N (val Nl))\n  %591 = call i64 @cons(i64 %579, i64 %590)\n  %592 = inttoptr i64 %580 to i64*\n  store i64 %591, i64* %592\n; # (val Tp1)\n  %593 = inttoptr i64 %582 to i64*\n  %594 = load i64, i64* %593\n; # (cdr (val Tp1))\n  %595 = inttoptr i64 %594 to i64*\n  %596 = getelementptr i64, i64* %595, i32 1\n  %597 = load i64, i64* %596\n; # (val Tp2)\n  %598 = inttoptr i64 %583 to i64*\n  %599 = load i64, i64* %598\n; # (cons (cdr (val Tp1)) (val Tp2))\n  %600 = call i64 @cons(i64 %597, i64 %599)\n  %601 = inttoptr i64 %583 to i64*\n  store i64 %600, i64* %601\n; # (val Alt)\n  %602 = inttoptr i64 %581 to i64*\n  %603 = load i64, i64* %602\n; # (cdar (val Alt))\n  %604 = inttoptr i64 %603 to i64*\n  %605 = load i64, i64* %604\n  %606 = inttoptr i64 %605 to i64*\n  %607 = getelementptr i64, i64* %606, i32 1\n  %608 = load i64, i64* %607\n  %609 = inttoptr i64 %582 to i64*\n  store i64 %608, i64* %609\n  %610 = inttoptr i64 %581 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %610\n; # (inc 'N (hex \"10\"))\n  %611 = add i64 %579, 16\n  br label %$30\n$30:\n  %612 = phi i64 [%346, %$32], [%574, %$47] ; # Exe\n  %613 = phi i64 [%347, %$32], [%575, %$47] ; # X\n  %614 = phi i64 [%348, %$32], [%576, %$47] ; # Q\n  %615 = phi i64 [%349, %$32], [%577, %$47] ; # Dbg\n  %616 = phi i64 [%350, %$32], [%578, %$47] ; # P\n  %617 = phi i64 [%351, %$32], [%611, %$47] ; # N\n  %618 = phi i64 [%352, %$32], [%580, %$47] ; # Nl\n  %619 = phi i64 [%353, %$32], [%581, %$47] ; # Alt\n  %620 = phi i64 [%354, %$32], [%582, %$47] ; # Tp1\n  %621 = phi i64 [%355, %$32], [%583, %$47] ; # Tp2\n  %622 = phi i64 [%356, %$32], [%584, %$47] ; # Env\n  %623 = phi i64 [%357, %$32], [%585, %$47] ; # E\n  %624 = phi i64 [%358, %$32], [%586, %$47] ; # At\n  %625 = phi i64 [%359, %$32], [%587, %$47] ; # Penv\n  %626 = phi i64 [%360, %$32], [%588, %$47] ; # Pnl\n  br label %$25\n$26:\n  %627 = phi i64 [%214, %$24] ; # Exe\n  %628 = phi i64 [%215, %$24] ; # X\n  %629 = phi i64 [%216, %$24] ; # Q\n  %630 = phi i64 [%217, %$24] ; # Dbg\n  %631 = phi i64 [%218, %$24] ; # P\n  %632 = phi i64 [%219, %$24] ; # N\n  %633 = phi i64 [%220, %$24] ; # Nl\n  %634 = phi i64 [%221, %$24] ; # Alt\n  %635 = phi i64 [%222, %$24] ; # Tp1\n  %636 = phi i64 [%223, %$24] ; # Tp2\n  %637 = phi i64 [%224, %$24] ; # Env\n  %638 = phi i64 [%225, %$24] ; # E\n  %639 = phi i64 [%226, %$24] ; # At\n  %640 = phi i64 [%227, %$24] ; # Penv\n  %641 = phi i64 [%228, %$24] ; # Pnl\n; # (val Tp1)\n  %642 = inttoptr i64 %635 to i64*\n  %643 = load i64, i64* %642\n; # (atom (setq X (val Tp1)))\n  %644 = and i64 %643, 15\n  %645 = icmp ne i64 %644, 0\n  br i1 %645, label %$49, label %$48\n$49:\n  %646 = phi i64 [%627, %$26] ; # Exe\n  %647 = phi i64 [%643, %$26] ; # X\n  %648 = phi i64 [%629, %$26] ; # Q\n  %649 = phi i64 [%630, %$26] ; # Dbg\n  %650 = phi i64 [%631, %$26] ; # P\n  %651 = phi i64 [%632, %$26] ; # N\n  %652 = phi i64 [%633, %$26] ; # Nl\n  %653 = phi i64 [%634, %$26] ; # Alt\n  %654 = phi i64 [%635, %$26] ; # Tp1\n  %655 = phi i64 [%636, %$26] ; # Tp2\n  %656 = phi i64 [%637, %$26] ; # Env\n  %657 = phi i64 [%638, %$26] ; # E\n  %658 = phi i64 [%639, %$26] ; # At\n  %659 = phi i64 [%640, %$26] ; # Penv\n  %660 = phi i64 [%641, %$26] ; # Pnl\n; # (set Tp1 (car (val Tp2)) Tp2 (cdr (val Tp2)) Nl (cdr (val Nl)))\n; # (val Tp2)\n  %661 = inttoptr i64 %655 to i64*\n  %662 = load i64, i64* %661\n; # (car (val Tp2))\n  %663 = inttoptr i64 %662 to i64*\n  %664 = load i64, i64* %663\n  %665 = inttoptr i64 %654 to i64*\n  store i64 %664, i64* %665\n; # (val Tp2)\n  %666 = inttoptr i64 %655 to i64*\n  %667 = load i64, i64* %666\n; # (cdr (val Tp2))\n  %668 = inttoptr i64 %667 to i64*\n  %669 = getelementptr i64, i64* %668, i32 1\n  %670 = load i64, i64* %669\n  %671 = inttoptr i64 %655 to i64*\n  store i64 %670, i64* %671\n; # (val Nl)\n  %672 = inttoptr i64 %652 to i64*\n  %673 = load i64, i64* %672\n; # (cdr (val Nl))\n  %674 = inttoptr i64 %673 to i64*\n  %675 = getelementptr i64, i64* %674, i32 1\n  %676 = load i64, i64* %675\n  %677 = inttoptr i64 %652 to i64*\n  store i64 %676, i64* %677\n  br label %$25\n$48:\n  %678 = phi i64 [%627, %$26] ; # Exe\n  %679 = phi i64 [%643, %$26] ; # X\n  %680 = phi i64 [%629, %$26] ; # Q\n  %681 = phi i64 [%630, %$26] ; # Dbg\n  %682 = phi i64 [%631, %$26] ; # P\n  %683 = phi i64 [%632, %$26] ; # N\n  %684 = phi i64 [%633, %$26] ; # Nl\n  %685 = phi i64 [%634, %$26] ; # Alt\n  %686 = phi i64 [%635, %$26] ; # Tp1\n  %687 = phi i64 [%636, %$26] ; # Tp2\n  %688 = phi i64 [%637, %$26] ; # Env\n  %689 = phi i64 [%638, %$26] ; # E\n  %690 = phi i64 [%639, %$26] ; # At\n  %691 = phi i64 [%640, %$26] ; # Penv\n  %692 = phi i64 [%641, %$26] ; # Pnl\n; # (car X)\n  %693 = inttoptr i64 %679 to i64*\n  %694 = load i64, i64* %693\n; # (atom (car X))\n  %695 = and i64 %694, 15\n  %696 = icmp ne i64 %695, 0\n  br i1 %696, label %$51, label %$50\n$51:\n  %697 = phi i64 [%678, %$48] ; # Exe\n  %698 = phi i64 [%679, %$48] ; # X\n  %699 = phi i64 [%680, %$48] ; # Q\n  %700 = phi i64 [%681, %$48] ; # Dbg\n  %701 = phi i64 [%682, %$48] ; # P\n  %702 = phi i64 [%683, %$48] ; # N\n  %703 = phi i64 [%684, %$48] ; # Nl\n  %704 = phi i64 [%685, %$48] ; # Alt\n  %705 = phi i64 [%686, %$48] ; # Tp1\n  %706 = phi i64 [%687, %$48] ; # Tp2\n  %707 = phi i64 [%688, %$48] ; # Env\n  %708 = phi i64 [%689, %$48] ; # E\n  %709 = phi i64 [%690, %$48] ; # At\n  %710 = phi i64 [%691, %$48] ; # Penv\n  %711 = phi i64 [%692, %$48] ; # Pnl\n; # (while (and (pair (car Q)) (>= (caar @) (car (val Nl)))) (set Q (...\n  br label %$52\n$52:\n  %712 = phi i64 [%697, %$51], [%771, %$55] ; # Exe\n  %713 = phi i64 [%698, %$51], [%772, %$55] ; # X\n  %714 = phi i64 [%699, %$51], [%773, %$55] ; # Q\n  %715 = phi i64 [%700, %$51], [%774, %$55] ; # Dbg\n  %716 = phi i64 [%701, %$51], [%775, %$55] ; # P\n  %717 = phi i64 [%702, %$51], [%776, %$55] ; # N\n  %718 = phi i64 [%703, %$51], [%777, %$55] ; # Nl\n  %719 = phi i64 [%704, %$51], [%778, %$55] ; # Alt\n  %720 = phi i64 [%705, %$51], [%779, %$55] ; # Tp1\n  %721 = phi i64 [%706, %$51], [%780, %$55] ; # Tp2\n  %722 = phi i64 [%707, %$51], [%781, %$55] ; # Env\n  %723 = phi i64 [%708, %$51], [%782, %$55] ; # E\n  %724 = phi i64 [%709, %$51], [%783, %$55] ; # At\n  %725 = phi i64 [%710, %$51], [%784, %$55] ; # Penv\n  %726 = phi i64 [%711, %$51], [%785, %$55] ; # Pnl\n; # (and (pair (car Q)) (>= (caar @) (car (val Nl))))\n; # (car Q)\n  %727 = inttoptr i64 %714 to i64*\n  %728 = load i64, i64* %727\n; # (pair (car Q))\n  %729 = and i64 %728, 15\n  %730 = icmp eq i64 %729, 0\n  br i1 %730, label %$54, label %$53\n$54:\n  %731 = phi i64 [%712, %$52] ; # Exe\n  %732 = phi i64 [%713, %$52] ; # X\n  %733 = phi i64 [%714, %$52] ; # Q\n  %734 = phi i64 [%715, %$52] ; # Dbg\n  %735 = phi i64 [%716, %$52] ; # P\n  %736 = phi i64 [%717, %$52] ; # N\n  %737 = phi i64 [%718, %$52] ; # Nl\n  %738 = phi i64 [%719, %$52] ; # Alt\n  %739 = phi i64 [%720, %$52] ; # Tp1\n  %740 = phi i64 [%721, %$52] ; # Tp2\n  %741 = phi i64 [%722, %$52] ; # Env\n  %742 = phi i64 [%723, %$52] ; # E\n  %743 = phi i64 [%724, %$52] ; # At\n  %744 = phi i64 [%725, %$52] ; # Penv\n  %745 = phi i64 [%726, %$52] ; # Pnl\n; # (caar @)\n  %746 = inttoptr i64 %728 to i64*\n  %747 = load i64, i64* %746\n  %748 = inttoptr i64 %747 to i64*\n  %749 = load i64, i64* %748\n; # (val Nl)\n  %750 = inttoptr i64 %737 to i64*\n  %751 = load i64, i64* %750\n; # (car (val Nl))\n  %752 = inttoptr i64 %751 to i64*\n  %753 = load i64, i64* %752\n; # (>= (caar @) (car (val Nl)))\n  %754 = icmp uge i64 %749, %753\n  br label %$53\n$53:\n  %755 = phi i64 [%712, %$52], [%731, %$54] ; # Exe\n  %756 = phi i64 [%713, %$52], [%732, %$54] ; # X\n  %757 = phi i64 [%714, %$52], [%733, %$54] ; # Q\n  %758 = phi i64 [%715, %$52], [%734, %$54] ; # Dbg\n  %759 = phi i64 [%716, %$52], [%735, %$54] ; # P\n  %760 = phi i64 [%717, %$52], [%736, %$54] ; # N\n  %761 = phi i64 [%718, %$52], [%737, %$54] ; # Nl\n  %762 = phi i64 [%719, %$52], [%738, %$54] ; # Alt\n  %763 = phi i64 [%720, %$52], [%739, %$54] ; # Tp1\n  %764 = phi i64 [%721, %$52], [%740, %$54] ; # Tp2\n  %765 = phi i64 [%722, %$52], [%741, %$54] ; # Env\n  %766 = phi i64 [%723, %$52], [%742, %$54] ; # E\n  %767 = phi i64 [%724, %$52], [%743, %$54] ; # At\n  %768 = phi i64 [%725, %$52], [%744, %$54] ; # Penv\n  %769 = phi i64 [%726, %$52], [%745, %$54] ; # Pnl\n  %770 = phi i1 [0, %$52], [%754, %$54] ; # ->\n  br i1 %770, label %$55, label %$56\n$55:\n  %771 = phi i64 [%755, %$53] ; # Exe\n  %772 = phi i64 [%756, %$53] ; # X\n  %773 = phi i64 [%757, %$53] ; # Q\n  %774 = phi i64 [%758, %$53] ; # Dbg\n  %775 = phi i64 [%759, %$53] ; # P\n  %776 = phi i64 [%760, %$53] ; # N\n  %777 = phi i64 [%761, %$53] ; # Nl\n  %778 = phi i64 [%762, %$53] ; # Alt\n  %779 = phi i64 [%763, %$53] ; # Tp1\n  %780 = phi i64 [%764, %$53] ; # Tp2\n  %781 = phi i64 [%765, %$53] ; # Env\n  %782 = phi i64 [%766, %$53] ; # E\n  %783 = phi i64 [%767, %$53] ; # At\n  %784 = phi i64 [%768, %$53] ; # Penv\n  %785 = phi i64 [%769, %$53] ; # Pnl\n; # (set Q (cdar Q))\n; # (cdar Q)\n  %786 = inttoptr i64 %773 to i64*\n  %787 = load i64, i64* %786\n  %788 = inttoptr i64 %787 to i64*\n  %789 = getelementptr i64, i64* %788, i32 1\n  %790 = load i64, i64* %789\n  %791 = inttoptr i64 %773 to i64*\n  store i64 %790, i64* %791\n  br label %$52\n$56:\n  %792 = phi i64 [%755, %$53] ; # Exe\n  %793 = phi i64 [%756, %$53] ; # X\n  %794 = phi i64 [%757, %$53] ; # Q\n  %795 = phi i64 [%758, %$53] ; # Dbg\n  %796 = phi i64 [%759, %$53] ; # P\n  %797 = phi i64 [%760, %$53] ; # N\n  %798 = phi i64 [%761, %$53] ; # Nl\n  %799 = phi i64 [%762, %$53] ; # Alt\n  %800 = phi i64 [%763, %$53] ; # Tp1\n  %801 = phi i64 [%764, %$53] ; # Tp2\n  %802 = phi i64 [%765, %$53] ; # Env\n  %803 = phi i64 [%766, %$53] ; # E\n  %804 = phi i64 [%767, %$53] ; # At\n  %805 = phi i64 [%768, %$53] ; # Penv\n  %806 = phi i64 [%769, %$53] ; # Pnl\n; # (set Tp1 (cdr X))\n; # (cdr X)\n  %807 = inttoptr i64 %793 to i64*\n  %808 = getelementptr i64, i64* %807, i32 1\n  %809 = load i64, i64* %808\n  %810 = inttoptr i64 %800 to i64*\n  store i64 %809, i64* %810\n  br label %$25\n$50:\n  %811 = phi i64 [%678, %$48] ; # Exe\n  %812 = phi i64 [%679, %$48] ; # X\n  %813 = phi i64 [%680, %$48] ; # Q\n  %814 = phi i64 [%681, %$48] ; # Dbg\n  %815 = phi i64 [%682, %$48] ; # P\n  %816 = phi i64 [%683, %$48] ; # N\n  %817 = phi i64 [%684, %$48] ; # Nl\n  %818 = phi i64 [%685, %$48] ; # Alt\n  %819 = phi i64 [%686, %$48] ; # Tp1\n  %820 = phi i64 [%687, %$48] ; # Tp2\n  %821 = phi i64 [%688, %$48] ; # Env\n  %822 = phi i64 [%689, %$48] ; # E\n  %823 = phi i64 [%690, %$48] ; # At\n  %824 = phi i64 [%691, %$48] ; # Penv\n  %825 = phi i64 [%692, %$48] ; # Pnl\n; # (car @)\n  %826 = inttoptr i64 %694 to i64*\n  %827 = load i64, i64* %826\n; # (cnt? (car @))\n  %828 = and i64 %827, 2\n  %829 = icmp ne i64 %828, 0\n  br i1 %829, label %$58, label %$57\n$58:\n  %830 = phi i64 [%811, %$50] ; # Exe\n  %831 = phi i64 [%812, %$50] ; # X\n  %832 = phi i64 [%813, %$50] ; # Q\n  %833 = phi i64 [%814, %$50] ; # Dbg\n  %834 = phi i64 [%815, %$50] ; # P\n  %835 = phi i64 [%816, %$50] ; # N\n  %836 = phi i64 [%817, %$50] ; # Nl\n  %837 = phi i64 [%818, %$50] ; # Alt\n  %838 = phi i64 [%819, %$50] ; # Tp1\n  %839 = phi i64 [%820, %$50] ; # Tp2\n  %840 = phi i64 [%821, %$50] ; # Env\n  %841 = phi i64 [%822, %$50] ; # E\n  %842 = phi i64 [%823, %$50] ; # At\n  %843 = phi i64 [%824, %$50] ; # Penv\n  %844 = phi i64 [%825, %$50] ; # Pnl\n; # (set E (uniRun (cdar X)))\n; # (cdar X)\n  %845 = inttoptr i64 %831 to i64*\n  %846 = load i64, i64* %845\n  %847 = inttoptr i64 %846 to i64*\n  %848 = getelementptr i64, i64* %847, i32 1\n  %849 = load i64, i64* %848\n; # (uniRun (cdar X))\n  %850 = call i64 @uniRun(i64 %849)\n  %851 = inttoptr i64 %841 to i64*\n  store i64 %850, i64* %851\n; # (let (I (int (caar X)) Y (val Nl)) (while (gt0 (dec 'I)) (shift Y...\n; # (caar X)\n  %852 = inttoptr i64 %831 to i64*\n  %853 = load i64, i64* %852\n  %854 = inttoptr i64 %853 to i64*\n  %855 = load i64, i64* %854\n; # (int (caar X))\n  %856 = lshr i64 %855, 4\n; # (val Nl)\n  %857 = inttoptr i64 %836 to i64*\n  %858 = load i64, i64* %857\n; # (while (gt0 (dec 'I)) (shift Y))\n  br label %$59\n$59:\n  %859 = phi i64 [%830, %$58], [%878, %$60] ; # Exe\n  %860 = phi i64 [%831, %$58], [%879, %$60] ; # X\n  %861 = phi i64 [%832, %$58], [%880, %$60] ; # Q\n  %862 = phi i64 [%833, %$58], [%881, %$60] ; # Dbg\n  %863 = phi i64 [%834, %$58], [%882, %$60] ; # P\n  %864 = phi i64 [%835, %$58], [%883, %$60] ; # N\n  %865 = phi i64 [%836, %$58], [%884, %$60] ; # Nl\n  %866 = phi i64 [%837, %$58], [%885, %$60] ; # Alt\n  %867 = phi i64 [%838, %$58], [%886, %$60] ; # Tp1\n  %868 = phi i64 [%839, %$58], [%887, %$60] ; # Tp2\n  %869 = phi i64 [%840, %$58], [%888, %$60] ; # Env\n  %870 = phi i64 [%841, %$58], [%889, %$60] ; # E\n  %871 = phi i64 [%842, %$58], [%890, %$60] ; # At\n  %872 = phi i64 [%843, %$58], [%891, %$60] ; # Penv\n  %873 = phi i64 [%844, %$58], [%892, %$60] ; # Pnl\n  %874 = phi i64 [%856, %$58], [%893, %$60] ; # I\n  %875 = phi i64 [%858, %$58], [%897, %$60] ; # Y\n; # (dec 'I)\n  %876 = sub i64 %874, 1\n; # (gt0 (dec 'I))\n  %877 = icmp sgt i64 %876, 0\n  br i1 %877, label %$60, label %$61\n$60:\n  %878 = phi i64 [%859, %$59] ; # Exe\n  %879 = phi i64 [%860, %$59] ; # X\n  %880 = phi i64 [%861, %$59] ; # Q\n  %881 = phi i64 [%862, %$59] ; # Dbg\n  %882 = phi i64 [%863, %$59] ; # P\n  %883 = phi i64 [%864, %$59] ; # N\n  %884 = phi i64 [%865, %$59] ; # Nl\n  %885 = phi i64 [%866, %$59] ; # Alt\n  %886 = phi i64 [%867, %$59] ; # Tp1\n  %887 = phi i64 [%868, %$59] ; # Tp2\n  %888 = phi i64 [%869, %$59] ; # Env\n  %889 = phi i64 [%870, %$59] ; # E\n  %890 = phi i64 [%871, %$59] ; # At\n  %891 = phi i64 [%872, %$59] ; # Penv\n  %892 = phi i64 [%873, %$59] ; # Pnl\n  %893 = phi i64 [%876, %$59] ; # I\n  %894 = phi i64 [%875, %$59] ; # Y\n; # (shift Y)\n  %895 = inttoptr i64 %894 to i64*\n  %896 = getelementptr i64, i64* %895, i32 1\n  %897 = load i64, i64* %896\n  br label %$59\n$61:\n  %898 = phi i64 [%859, %$59] ; # Exe\n  %899 = phi i64 [%860, %$59] ; # X\n  %900 = phi i64 [%861, %$59] ; # Q\n  %901 = phi i64 [%862, %$59] ; # Dbg\n  %902 = phi i64 [%863, %$59] ; # P\n  %903 = phi i64 [%864, %$59] ; # N\n  %904 = phi i64 [%865, %$59] ; # Nl\n  %905 = phi i64 [%866, %$59] ; # Alt\n  %906 = phi i64 [%867, %$59] ; # Tp1\n  %907 = phi i64 [%868, %$59] ; # Tp2\n  %908 = phi i64 [%869, %$59] ; # Env\n  %909 = phi i64 [%870, %$59] ; # E\n  %910 = phi i64 [%871, %$59] ; # At\n  %911 = phi i64 [%872, %$59] ; # Penv\n  %912 = phi i64 [%873, %$59] ; # Pnl\n  %913 = phi i64 [%876, %$59] ; # I\n  %914 = phi i64 [%875, %$59] ; # Y\n; # (set Nl (cons (car Y) (val Nl)) Tp2 (cons (cdr X) (val Tp2)) Tp1 ...\n; # (car Y)\n  %915 = inttoptr i64 %914 to i64*\n  %916 = load i64, i64* %915\n; # (val Nl)\n  %917 = inttoptr i64 %904 to i64*\n  %918 = load i64, i64* %917\n; # (cons (car Y) (val Nl))\n  %919 = call i64 @cons(i64 %916, i64 %918)\n  %920 = inttoptr i64 %904 to i64*\n  store i64 %919, i64* %920\n; # (cdr X)\n  %921 = inttoptr i64 %899 to i64*\n  %922 = getelementptr i64, i64* %921, i32 1\n  %923 = load i64, i64* %922\n; # (val Tp2)\n  %924 = inttoptr i64 %907 to i64*\n  %925 = load i64, i64* %924\n; # (cons (cdr X) (val Tp2))\n  %926 = call i64 @cons(i64 %923, i64 %925)\n  %927 = inttoptr i64 %907 to i64*\n  store i64 %926, i64* %927\n; # (val E)\n  %928 = inttoptr i64 %909 to i64*\n  %929 = load i64, i64* %928\n  %930 = inttoptr i64 %906 to i64*\n  store i64 %929, i64* %930\n  br label %$25\n$57:\n  %931 = phi i64 [%811, %$50] ; # Exe\n  %932 = phi i64 [%812, %$50] ; # X\n  %933 = phi i64 [%813, %$50] ; # Q\n  %934 = phi i64 [%814, %$50] ; # Dbg\n  %935 = phi i64 [%815, %$50] ; # P\n  %936 = phi i64 [%816, %$50] ; # N\n  %937 = phi i64 [%817, %$50] ; # Nl\n  %938 = phi i64 [%818, %$50] ; # Alt\n  %939 = phi i64 [%819, %$50] ; # Tp1\n  %940 = phi i64 [%820, %$50] ; # Tp2\n  %941 = phi i64 [%821, %$50] ; # Env\n  %942 = phi i64 [%822, %$50] ; # E\n  %943 = phi i64 [%823, %$50] ; # At\n  %944 = phi i64 [%824, %$50] ; # Penv\n  %945 = phi i64 [%825, %$50] ; # Pnl\n; # (== @ $Up)\n  %946 = icmp eq i64 %827, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 744) to i64)\n  br i1 %946, label %$63, label %$62\n$63:\n  %947 = phi i64 [%931, %$57] ; # Exe\n  %948 = phi i64 [%932, %$57] ; # X\n  %949 = phi i64 [%933, %$57] ; # Q\n  %950 = phi i64 [%934, %$57] ; # Dbg\n  %951 = phi i64 [%935, %$57] ; # P\n  %952 = phi i64 [%936, %$57] ; # N\n  %953 = phi i64 [%937, %$57] ; # Nl\n  %954 = phi i64 [%938, %$57] ; # Alt\n  %955 = phi i64 [%939, %$57] ; # Tp1\n  %956 = phi i64 [%940, %$57] ; # Tp2\n  %957 = phi i64 [%941, %$57] ; # Env\n  %958 = phi i64 [%942, %$57] ; # E\n  %959 = phi i64 [%943, %$57] ; # At\n  %960 = phi i64 [%944, %$57] ; # Penv\n  %961 = phi i64 [%945, %$57] ; # Pnl\n; # (if (and (not (nil? (set E (uniRun (cddr (car X)))))) (unify (car...\n; # (and (not (nil? (set E (uniRun (cddr (car X)))))) (unify (car (va...\n; # (set E (uniRun (cddr (car X))))\n; # (car X)\n  %962 = inttoptr i64 %948 to i64*\n  %963 = load i64, i64* %962\n; # (cddr (car X))\n  %964 = inttoptr i64 %963 to i64*\n  %965 = getelementptr i64, i64* %964, i32 1\n  %966 = load i64, i64* %965\n  %967 = inttoptr i64 %966 to i64*\n  %968 = getelementptr i64, i64* %967, i32 1\n  %969 = load i64, i64* %968\n; # (uniRun (cddr (car X)))\n  %970 = call i64 @uniRun(i64 %969)\n  %971 = inttoptr i64 %958 to i64*\n  store i64 %970, i64* %971\n; # (nil? (set E (uniRun (cddr (car X)))))\n  %972 = icmp eq i64 %970, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (set E (uniRun (cddr (car X))))))\n  %973 = icmp eq i1 %972, 0\n  br i1 %973, label %$65, label %$64\n$65:\n  %974 = phi i64 [%947, %$63] ; # Exe\n  %975 = phi i64 [%948, %$63] ; # X\n  %976 = phi i64 [%949, %$63] ; # Q\n  %977 = phi i64 [%950, %$63] ; # Dbg\n  %978 = phi i64 [%951, %$63] ; # P\n  %979 = phi i64 [%952, %$63] ; # N\n  %980 = phi i64 [%953, %$63] ; # Nl\n  %981 = phi i64 [%954, %$63] ; # Alt\n  %982 = phi i64 [%955, %$63] ; # Tp1\n  %983 = phi i64 [%956, %$63] ; # Tp2\n  %984 = phi i64 [%957, %$63] ; # Env\n  %985 = phi i64 [%958, %$63] ; # E\n  %986 = phi i64 [%959, %$63] ; # At\n  %987 = phi i64 [%960, %$63] ; # Penv\n  %988 = phi i64 [%961, %$63] ; # Pnl\n; # (val Nl)\n  %989 = inttoptr i64 %980 to i64*\n  %990 = load i64, i64* %989\n; # (car (val Nl))\n  %991 = inttoptr i64 %990 to i64*\n  %992 = load i64, i64* %991\n; # (car X)\n  %993 = inttoptr i64 %975 to i64*\n  %994 = load i64, i64* %993\n; # (cadr (car X))\n  %995 = inttoptr i64 %994 to i64*\n  %996 = getelementptr i64, i64* %995, i32 1\n  %997 = load i64, i64* %996\n  %998 = inttoptr i64 %997 to i64*\n  %999 = load i64, i64* %998\n; # (val Nl)\n  %1000 = inttoptr i64 %980 to i64*\n  %1001 = load i64, i64* %1000\n; # (car (val Nl))\n  %1002 = inttoptr i64 %1001 to i64*\n  %1003 = load i64, i64* %1002\n; # (val E)\n  %1004 = inttoptr i64 %985 to i64*\n  %1005 = load i64, i64* %1004\n; # (unify (car (val Nl)) (cadr (car X)) (car (val Nl)) (val E))\n  %1006 = call i1 @unify(i64 %992, i64 %999, i64 %1003, i64 %1005)\n  br label %$64\n$64:\n  %1007 = phi i64 [%947, %$63], [%974, %$65] ; # Exe\n  %1008 = phi i64 [%948, %$63], [%975, %$65] ; # X\n  %1009 = phi i64 [%949, %$63], [%976, %$65] ; # Q\n  %1010 = phi i64 [%950, %$63], [%977, %$65] ; # Dbg\n  %1011 = phi i64 [%951, %$63], [%978, %$65] ; # P\n  %1012 = phi i64 [%952, %$63], [%979, %$65] ; # N\n  %1013 = phi i64 [%953, %$63], [%980, %$65] ; # Nl\n  %1014 = phi i64 [%954, %$63], [%981, %$65] ; # Alt\n  %1015 = phi i64 [%955, %$63], [%982, %$65] ; # Tp1\n  %1016 = phi i64 [%956, %$63], [%983, %$65] ; # Tp2\n  %1017 = phi i64 [%957, %$63], [%984, %$65] ; # Env\n  %1018 = phi i64 [%958, %$63], [%985, %$65] ; # E\n  %1019 = phi i64 [%959, %$63], [%986, %$65] ; # At\n  %1020 = phi i64 [%960, %$63], [%987, %$65] ; # Penv\n  %1021 = phi i64 [%961, %$63], [%988, %$65] ; # Pnl\n  %1022 = phi i1 [0, %$63], [%1006, %$65] ; # ->\n  br i1 %1022, label %$66, label %$67\n$66:\n  %1023 = phi i64 [%1007, %$64] ; # Exe\n  %1024 = phi i64 [%1008, %$64] ; # X\n  %1025 = phi i64 [%1009, %$64] ; # Q\n  %1026 = phi i64 [%1010, %$64] ; # Dbg\n  %1027 = phi i64 [%1011, %$64] ; # P\n  %1028 = phi i64 [%1012, %$64] ; # N\n  %1029 = phi i64 [%1013, %$64] ; # Nl\n  %1030 = phi i64 [%1014, %$64] ; # Alt\n  %1031 = phi i64 [%1015, %$64] ; # Tp1\n  %1032 = phi i64 [%1016, %$64] ; # Tp2\n  %1033 = phi i64 [%1017, %$64] ; # Env\n  %1034 = phi i64 [%1018, %$64] ; # E\n  %1035 = phi i64 [%1019, %$64] ; # At\n  %1036 = phi i64 [%1020, %$64] ; # Penv\n  %1037 = phi i64 [%1021, %$64] ; # Pnl\n; # (set Tp1 (cdr X))\n; # (cdr X)\n  %1038 = inttoptr i64 %1024 to i64*\n  %1039 = getelementptr i64, i64* %1038, i32 1\n  %1040 = load i64, i64* %1039\n  %1041 = inttoptr i64 %1031 to i64*\n  store i64 %1040, i64* %1041\n  br label %$68\n$67:\n  %1042 = phi i64 [%1007, %$64] ; # Exe\n  %1043 = phi i64 [%1008, %$64] ; # X\n  %1044 = phi i64 [%1009, %$64] ; # Q\n  %1045 = phi i64 [%1010, %$64] ; # Dbg\n  %1046 = phi i64 [%1011, %$64] ; # P\n  %1047 = phi i64 [%1012, %$64] ; # N\n  %1048 = phi i64 [%1013, %$64] ; # Nl\n  %1049 = phi i64 [%1014, %$64] ; # Alt\n  %1050 = phi i64 [%1015, %$64] ; # Tp1\n  %1051 = phi i64 [%1016, %$64] ; # Tp2\n  %1052 = phi i64 [%1017, %$64] ; # Env\n  %1053 = phi i64 [%1018, %$64] ; # E\n  %1054 = phi i64 [%1019, %$64] ; # At\n  %1055 = phi i64 [%1020, %$64] ; # Penv\n  %1056 = phi i64 [%1021, %$64] ; # Pnl\n; # (caar Q)\n  %1057 = inttoptr i64 %1044 to i64*\n  %1058 = load i64, i64* %1057\n  %1059 = inttoptr i64 %1058 to i64*\n  %1060 = load i64, i64* %1059\n; # (set Q (cdar Q))\n; # (cdar Q)\n  %1061 = inttoptr i64 %1044 to i64*\n  %1062 = load i64, i64* %1061\n  %1063 = inttoptr i64 %1062 to i64*\n  %1064 = getelementptr i64, i64* %1063, i32 1\n  %1065 = load i64, i64* %1064\n  %1066 = inttoptr i64 %1044 to i64*\n  store i64 %1065, i64* %1066\n; # (++ P)\n  %1067 = inttoptr i64 %1060 to i64*\n  %1068 = getelementptr i64, i64* %1067, i32 1\n  %1069 = load i64, i64* %1068\n  %1070 = load i64, i64* %1067\n; # (set Nl (++ P) Alt (++ P) Tp1 (++ P) Tp2 (++ P) Env P)\n; # (++ P)\n  %1071 = inttoptr i64 %1069 to i64*\n  %1072 = getelementptr i64, i64* %1071, i32 1\n  %1073 = load i64, i64* %1072\n  %1074 = load i64, i64* %1071\n  %1075 = inttoptr i64 %1048 to i64*\n  store i64 %1074, i64* %1075\n; # (++ P)\n  %1076 = inttoptr i64 %1073 to i64*\n  %1077 = getelementptr i64, i64* %1076, i32 1\n  %1078 = load i64, i64* %1077\n  %1079 = load i64, i64* %1076\n  %1080 = inttoptr i64 %1049 to i64*\n  store i64 %1079, i64* %1080\n; # (++ P)\n  %1081 = inttoptr i64 %1078 to i64*\n  %1082 = getelementptr i64, i64* %1081, i32 1\n  %1083 = load i64, i64* %1082\n  %1084 = load i64, i64* %1081\n  %1085 = inttoptr i64 %1050 to i64*\n  store i64 %1084, i64* %1085\n; # (++ P)\n  %1086 = inttoptr i64 %1083 to i64*\n  %1087 = getelementptr i64, i64* %1086, i32 1\n  %1088 = load i64, i64* %1087\n  %1089 = load i64, i64* %1086\n  %1090 = inttoptr i64 %1051 to i64*\n  store i64 %1089, i64* %1090\n  %1091 = inttoptr i64 %1052 to i64*\n  store i64 %1088, i64* %1091\n  br label %$68\n$68:\n  %1092 = phi i64 [%1023, %$66], [%1042, %$67] ; # Exe\n  %1093 = phi i64 [%1024, %$66], [%1043, %$67] ; # X\n  %1094 = phi i64 [%1025, %$66], [%1044, %$67] ; # Q\n  %1095 = phi i64 [%1026, %$66], [%1045, %$67] ; # Dbg\n  %1096 = phi i64 [%1027, %$66], [%1088, %$67] ; # P\n  %1097 = phi i64 [%1028, %$66], [%1070, %$67] ; # N\n  %1098 = phi i64 [%1029, %$66], [%1048, %$67] ; # Nl\n  %1099 = phi i64 [%1030, %$66], [%1049, %$67] ; # Alt\n  %1100 = phi i64 [%1031, %$66], [%1050, %$67] ; # Tp1\n  %1101 = phi i64 [%1032, %$66], [%1051, %$67] ; # Tp2\n  %1102 = phi i64 [%1033, %$66], [%1052, %$67] ; # Env\n  %1103 = phi i64 [%1034, %$66], [%1053, %$67] ; # E\n  %1104 = phi i64 [%1035, %$66], [%1054, %$67] ; # At\n  %1105 = phi i64 [%1036, %$66], [%1055, %$67] ; # Penv\n  %1106 = phi i64 [%1037, %$66], [%1056, %$67] ; # Pnl\n  %1107 = phi i64 [%1040, %$66], [%1088, %$67] ; # ->\n  br label %$25\n$62:\n  %1108 = phi i64 [%931, %$57] ; # Exe\n  %1109 = phi i64 [%932, %$57] ; # X\n  %1110 = phi i64 [%933, %$57] ; # Q\n  %1111 = phi i64 [%934, %$57] ; # Dbg\n  %1112 = phi i64 [%935, %$57] ; # P\n  %1113 = phi i64 [%936, %$57] ; # N\n  %1114 = phi i64 [%937, %$57] ; # Nl\n  %1115 = phi i64 [%938, %$57] ; # Alt\n  %1116 = phi i64 [%939, %$57] ; # Tp1\n  %1117 = phi i64 [%940, %$57] ; # Tp2\n  %1118 = phi i64 [%941, %$57] ; # Env\n  %1119 = phi i64 [%942, %$57] ; # E\n  %1120 = phi i64 [%943, %$57] ; # At\n  %1121 = phi i64 [%944, %$57] ; # Penv\n  %1122 = phi i64 [%945, %$57] ; # Pnl\n; # (let S (caar X) (when (sym? (val (tail S))) (dbFetch Exe S)) (whe...\n; # (caar X)\n  %1123 = inttoptr i64 %1109 to i64*\n  %1124 = load i64, i64* %1123\n  %1125 = inttoptr i64 %1124 to i64*\n  %1126 = load i64, i64* %1125\n; # (when (sym? (val (tail S))) (dbFetch Exe S))\n; # (tail S)\n  %1127 = add i64 %1126, -8\n; # (val (tail S))\n  %1128 = inttoptr i64 %1127 to i64*\n  %1129 = load i64, i64* %1128\n; # (sym? (val (tail S)))\n  %1130 = and i64 %1129, 8\n  %1131 = icmp ne i64 %1130, 0\n  br i1 %1131, label %$69, label %$70\n$69:\n  %1132 = phi i64 [%1108, %$62] ; # Exe\n  %1133 = phi i64 [%1109, %$62] ; # X\n  %1134 = phi i64 [%1110, %$62] ; # Q\n  %1135 = phi i64 [%1111, %$62] ; # Dbg\n  %1136 = phi i64 [%1112, %$62] ; # P\n  %1137 = phi i64 [%1113, %$62] ; # N\n  %1138 = phi i64 [%1114, %$62] ; # Nl\n  %1139 = phi i64 [%1115, %$62] ; # Alt\n  %1140 = phi i64 [%1116, %$62] ; # Tp1\n  %1141 = phi i64 [%1117, %$62] ; # Tp2\n  %1142 = phi i64 [%1118, %$62] ; # Env\n  %1143 = phi i64 [%1119, %$62] ; # E\n  %1144 = phi i64 [%1120, %$62] ; # At\n  %1145 = phi i64 [%1121, %$62] ; # Penv\n  %1146 = phi i64 [%1122, %$62] ; # Pnl\n  %1147 = phi i64 [%1126, %$62] ; # S\n; # (dbFetch Exe S)\n  call void @dbFetch(i64 %1132, i64 %1147)\n  br label %$70\n$70:\n  %1148 = phi i64 [%1108, %$62], [%1132, %$69] ; # Exe\n  %1149 = phi i64 [%1109, %$62], [%1133, %$69] ; # X\n  %1150 = phi i64 [%1110, %$62], [%1134, %$69] ; # Q\n  %1151 = phi i64 [%1111, %$62], [%1135, %$69] ; # Dbg\n  %1152 = phi i64 [%1112, %$62], [%1136, %$69] ; # P\n  %1153 = phi i64 [%1113, %$62], [%1137, %$69] ; # N\n  %1154 = phi i64 [%1114, %$62], [%1138, %$69] ; # Nl\n  %1155 = phi i64 [%1115, %$62], [%1139, %$69] ; # Alt\n  %1156 = phi i64 [%1116, %$62], [%1140, %$69] ; # Tp1\n  %1157 = phi i64 [%1117, %$62], [%1141, %$69] ; # Tp2\n  %1158 = phi i64 [%1118, %$62], [%1142, %$69] ; # Env\n  %1159 = phi i64 [%1119, %$62], [%1143, %$69] ; # E\n  %1160 = phi i64 [%1120, %$62], [%1144, %$69] ; # At\n  %1161 = phi i64 [%1121, %$62], [%1145, %$69] ; # Penv\n  %1162 = phi i64 [%1122, %$62], [%1146, %$69] ; # Pnl\n  %1163 = phi i64 [%1126, %$62], [%1147, %$69] ; # S\n; # (when (atom (set Alt (get S $T))) (setq P (caar Q)) (set Q (cdar ...\n; # (set Alt (get S $T))\n; # (get S $T)\n  %1164 = call i64 @get(i64 %1163, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64))\n  %1165 = inttoptr i64 %1155 to i64*\n  store i64 %1164, i64* %1165\n; # (atom (set Alt (get S $T)))\n  %1166 = and i64 %1164, 15\n  %1167 = icmp ne i64 %1166, 0\n  br i1 %1167, label %$71, label %$72\n$71:\n  %1168 = phi i64 [%1148, %$70] ; # Exe\n  %1169 = phi i64 [%1149, %$70] ; # X\n  %1170 = phi i64 [%1150, %$70] ; # Q\n  %1171 = phi i64 [%1151, %$70] ; # Dbg\n  %1172 = phi i64 [%1152, %$70] ; # P\n  %1173 = phi i64 [%1153, %$70] ; # N\n  %1174 = phi i64 [%1154, %$70] ; # Nl\n  %1175 = phi i64 [%1155, %$70] ; # Alt\n  %1176 = phi i64 [%1156, %$70] ; # Tp1\n  %1177 = phi i64 [%1157, %$70] ; # Tp2\n  %1178 = phi i64 [%1158, %$70] ; # Env\n  %1179 = phi i64 [%1159, %$70] ; # E\n  %1180 = phi i64 [%1160, %$70] ; # At\n  %1181 = phi i64 [%1161, %$70] ; # Penv\n  %1182 = phi i64 [%1162, %$70] ; # Pnl\n  %1183 = phi i64 [%1163, %$70] ; # S\n; # (caar Q)\n  %1184 = inttoptr i64 %1170 to i64*\n  %1185 = load i64, i64* %1184\n  %1186 = inttoptr i64 %1185 to i64*\n  %1187 = load i64, i64* %1186\n; # (set Q (cdar Q))\n; # (cdar Q)\n  %1188 = inttoptr i64 %1170 to i64*\n  %1189 = load i64, i64* %1188\n  %1190 = inttoptr i64 %1189 to i64*\n  %1191 = getelementptr i64, i64* %1190, i32 1\n  %1192 = load i64, i64* %1191\n  %1193 = inttoptr i64 %1170 to i64*\n  store i64 %1192, i64* %1193\n; # (++ P)\n  %1194 = inttoptr i64 %1187 to i64*\n  %1195 = getelementptr i64, i64* %1194, i32 1\n  %1196 = load i64, i64* %1195\n  %1197 = load i64, i64* %1194\n; # (set Nl (++ P) Alt (++ P) Tp1 (++ P) Tp2 (++ P) Env P)\n; # (++ P)\n  %1198 = inttoptr i64 %1196 to i64*\n  %1199 = getelementptr i64, i64* %1198, i32 1\n  %1200 = load i64, i64* %1199\n  %1201 = load i64, i64* %1198\n  %1202 = inttoptr i64 %1174 to i64*\n  store i64 %1201, i64* %1202\n; # (++ P)\n  %1203 = inttoptr i64 %1200 to i64*\n  %1204 = getelementptr i64, i64* %1203, i32 1\n  %1205 = load i64, i64* %1204\n  %1206 = load i64, i64* %1203\n  %1207 = inttoptr i64 %1175 to i64*\n  store i64 %1206, i64* %1207\n; # (++ P)\n  %1208 = inttoptr i64 %1205 to i64*\n  %1209 = getelementptr i64, i64* %1208, i32 1\n  %1210 = load i64, i64* %1209\n  %1211 = load i64, i64* %1208\n  %1212 = inttoptr i64 %1176 to i64*\n  store i64 %1211, i64* %1212\n; # (++ P)\n  %1213 = inttoptr i64 %1210 to i64*\n  %1214 = getelementptr i64, i64* %1213, i32 1\n  %1215 = load i64, i64* %1214\n  %1216 = load i64, i64* %1213\n  %1217 = inttoptr i64 %1177 to i64*\n  store i64 %1216, i64* %1217\n  %1218 = inttoptr i64 %1178 to i64*\n  store i64 %1215, i64* %1218\n  br label %$72\n$72:\n  %1219 = phi i64 [%1148, %$70], [%1168, %$71] ; # Exe\n  %1220 = phi i64 [%1149, %$70], [%1169, %$71] ; # X\n  %1221 = phi i64 [%1150, %$70], [%1170, %$71] ; # Q\n  %1222 = phi i64 [%1151, %$70], [%1171, %$71] ; # Dbg\n  %1223 = phi i64 [%1152, %$70], [%1215, %$71] ; # P\n  %1224 = phi i64 [%1153, %$70], [%1197, %$71] ; # N\n  %1225 = phi i64 [%1154, %$70], [%1174, %$71] ; # Nl\n  %1226 = phi i64 [%1155, %$70], [%1175, %$71] ; # Alt\n  %1227 = phi i64 [%1156, %$70], [%1176, %$71] ; # Tp1\n  %1228 = phi i64 [%1157, %$70], [%1177, %$71] ; # Tp2\n  %1229 = phi i64 [%1158, %$70], [%1178, %$71] ; # Env\n  %1230 = phi i64 [%1159, %$70], [%1179, %$71] ; # E\n  %1231 = phi i64 [%1160, %$70], [%1180, %$71] ; # At\n  %1232 = phi i64 [%1161, %$70], [%1181, %$71] ; # Penv\n  %1233 = phi i64 [%1162, %$70], [%1182, %$71] ; # Pnl\n  %1234 = phi i64 [%1163, %$70], [%1183, %$71] ; # S\n  br label %$25\n$25:\n  %1235 = phi i64 [%612, %$30], [%646, %$49], [%792, %$56], [%898, %$61], [%1092, %$68], [%1219, %$72] ; # Exe\n  %1236 = phi i64 [%613, %$30], [%647, %$49], [%793, %$56], [%899, %$61], [%1093, %$68], [%1220, %$72] ; # X\n  %1237 = phi i64 [%614, %$30], [%648, %$49], [%794, %$56], [%900, %$61], [%1094, %$68], [%1221, %$72] ; # Q\n  %1238 = phi i64 [%615, %$30], [%649, %$49], [%795, %$56], [%901, %$61], [%1095, %$68], [%1222, %$72] ; # Dbg\n  %1239 = phi i64 [%616, %$30], [%650, %$49], [%796, %$56], [%902, %$61], [%1096, %$68], [%1223, %$72] ; # P\n  %1240 = phi i64 [%617, %$30], [%651, %$49], [%797, %$56], [%903, %$61], [%1097, %$68], [%1224, %$72] ; # N\n  %1241 = phi i64 [%618, %$30], [%652, %$49], [%798, %$56], [%904, %$61], [%1098, %$68], [%1225, %$72] ; # Nl\n  %1242 = phi i64 [%619, %$30], [%653, %$49], [%799, %$56], [%905, %$61], [%1099, %$68], [%1226, %$72] ; # Alt\n  %1243 = phi i64 [%620, %$30], [%654, %$49], [%800, %$56], [%906, %$61], [%1100, %$68], [%1227, %$72] ; # Tp1\n  %1244 = phi i64 [%621, %$30], [%655, %$49], [%801, %$56], [%907, %$61], [%1101, %$68], [%1228, %$72] ; # Tp2\n  %1245 = phi i64 [%622, %$30], [%656, %$49], [%802, %$56], [%908, %$61], [%1102, %$68], [%1229, %$72] ; # Env\n  %1246 = phi i64 [%623, %$30], [%657, %$49], [%803, %$56], [%909, %$61], [%1103, %$68], [%1230, %$72] ; # E\n  %1247 = phi i64 [%624, %$30], [%658, %$49], [%804, %$56], [%910, %$61], [%1104, %$68], [%1231, %$72] ; # At\n  %1248 = phi i64 [%625, %$30], [%659, %$49], [%805, %$56], [%911, %$61], [%1105, %$68], [%1232, %$72] ; # Penv\n  %1249 = phi i64 [%626, %$30], [%660, %$49], [%806, %$56], [%912, %$61], [%1106, %$68], [%1233, %$72] ; # Pnl\n  br label %$18\n$22:\n  %1250 = phi i64 [%198, %$19] ; # Exe\n  %1251 = phi i64 [%199, %$19] ; # X\n  %1252 = phi i64 [%200, %$19] ; # Q\n  %1253 = phi i64 [%201, %$19] ; # Dbg\n  %1254 = phi i64 [%202, %$19] ; # P\n  %1255 = phi i64 [%203, %$19] ; # N\n  %1256 = phi i64 [%204, %$19] ; # Nl\n  %1257 = phi i64 [%205, %$19] ; # Alt\n  %1258 = phi i64 [%206, %$19] ; # Tp1\n  %1259 = phi i64 [%207, %$19] ; # Tp2\n  %1260 = phi i64 [%208, %$19] ; # Env\n  %1261 = phi i64 [%209, %$19] ; # E\n  %1262 = phi i64 [%210, %$19] ; # At\n  %1263 = phi i64 [%211, %$19] ; # Penv\n  %1264 = phi i64 [%212, %$19] ; # Pnl\n; # (set E $Nil)\n  %1265 = inttoptr i64 %1261 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %1265\n; # (let Y (val Env) (while (pair (cdr Y)) (let Z (caar Y) (when (== ...\n; # (val Env)\n  %1266 = inttoptr i64 %1260 to i64*\n  %1267 = load i64, i64* %1266\n; # (while (pair (cdr Y)) (let Z (caar Y) (when (== (car Z) ZERO) (se...\n  br label %$73\n$73:\n  %1268 = phi i64 [%1250, %$22], [%1338, %$77] ; # Exe\n  %1269 = phi i64 [%1251, %$22], [%1339, %$77] ; # X\n  %1270 = phi i64 [%1252, %$22], [%1340, %$77] ; # Q\n  %1271 = phi i64 [%1253, %$22], [%1341, %$77] ; # Dbg\n  %1272 = phi i64 [%1254, %$22], [%1342, %$77] ; # P\n  %1273 = phi i64 [%1255, %$22], [%1343, %$77] ; # N\n  %1274 = phi i64 [%1256, %$22], [%1344, %$77] ; # Nl\n  %1275 = phi i64 [%1257, %$22], [%1345, %$77] ; # Alt\n  %1276 = phi i64 [%1258, %$22], [%1346, %$77] ; # Tp1\n  %1277 = phi i64 [%1259, %$22], [%1347, %$77] ; # Tp2\n  %1278 = phi i64 [%1260, %$22], [%1348, %$77] ; # Env\n  %1279 = phi i64 [%1261, %$22], [%1349, %$77] ; # E\n  %1280 = phi i64 [%1262, %$22], [%1350, %$77] ; # At\n  %1281 = phi i64 [%1263, %$22], [%1351, %$77] ; # Penv\n  %1282 = phi i64 [%1264, %$22], [%1352, %$77] ; # Pnl\n  %1283 = phi i64 [%1267, %$22], [%1357, %$77] ; # Y\n; # (cdr Y)\n  %1284 = inttoptr i64 %1283 to i64*\n  %1285 = getelementptr i64, i64* %1284, i32 1\n  %1286 = load i64, i64* %1285\n; # (pair (cdr Y))\n  %1287 = and i64 %1286, 15\n  %1288 = icmp eq i64 %1287, 0\n  br i1 %1288, label %$74, label %$75\n$74:\n  %1289 = phi i64 [%1268, %$73] ; # Exe\n  %1290 = phi i64 [%1269, %$73] ; # X\n  %1291 = phi i64 [%1270, %$73] ; # Q\n  %1292 = phi i64 [%1271, %$73] ; # Dbg\n  %1293 = phi i64 [%1272, %$73] ; # P\n  %1294 = phi i64 [%1273, %$73] ; # N\n  %1295 = phi i64 [%1274, %$73] ; # Nl\n  %1296 = phi i64 [%1275, %$73] ; # Alt\n  %1297 = phi i64 [%1276, %$73] ; # Tp1\n  %1298 = phi i64 [%1277, %$73] ; # Tp2\n  %1299 = phi i64 [%1278, %$73] ; # Env\n  %1300 = phi i64 [%1279, %$73] ; # E\n  %1301 = phi i64 [%1280, %$73] ; # At\n  %1302 = phi i64 [%1281, %$73] ; # Penv\n  %1303 = phi i64 [%1282, %$73] ; # Pnl\n  %1304 = phi i64 [%1283, %$73] ; # Y\n; # (let Z (caar Y) (when (== (car Z) ZERO) (set E (cons (cons (shift...\n; # (caar Y)\n  %1305 = inttoptr i64 %1304 to i64*\n  %1306 = load i64, i64* %1305\n  %1307 = inttoptr i64 %1306 to i64*\n  %1308 = load i64, i64* %1307\n; # (when (== (car Z) ZERO) (set E (cons (cons (shift Z) (lookup ZERO...\n; # (car Z)\n  %1309 = inttoptr i64 %1308 to i64*\n  %1310 = load i64, i64* %1309\n; # (== (car Z) ZERO)\n  %1311 = icmp eq i64 %1310, 2\n  br i1 %1311, label %$76, label %$77\n$76:\n  %1312 = phi i64 [%1289, %$74] ; # Exe\n  %1313 = phi i64 [%1290, %$74] ; # X\n  %1314 = phi i64 [%1291, %$74] ; # Q\n  %1315 = phi i64 [%1292, %$74] ; # Dbg\n  %1316 = phi i64 [%1293, %$74] ; # P\n  %1317 = phi i64 [%1294, %$74] ; # N\n  %1318 = phi i64 [%1295, %$74] ; # Nl\n  %1319 = phi i64 [%1296, %$74] ; # Alt\n  %1320 = phi i64 [%1297, %$74] ; # Tp1\n  %1321 = phi i64 [%1298, %$74] ; # Tp2\n  %1322 = phi i64 [%1299, %$74] ; # Env\n  %1323 = phi i64 [%1300, %$74] ; # E\n  %1324 = phi i64 [%1301, %$74] ; # At\n  %1325 = phi i64 [%1302, %$74] ; # Penv\n  %1326 = phi i64 [%1303, %$74] ; # Pnl\n  %1327 = phi i64 [%1304, %$74] ; # Y\n  %1328 = phi i64 [%1308, %$74] ; # Z\n; # (set E (cons (cons (shift Z) (lookup ZERO Z)) (val E)))\n; # (shift Z)\n  %1329 = inttoptr i64 %1328 to i64*\n  %1330 = getelementptr i64, i64* %1329, i32 1\n  %1331 = load i64, i64* %1330\n; # (lookup ZERO Z)\n  %1332 = call i64 @lookup(i64 2, i64 %1331)\n; # (cons (shift Z) (lookup ZERO Z))\n  %1333 = call i64 @cons(i64 %1331, i64 %1332)\n; # (val E)\n  %1334 = inttoptr i64 %1323 to i64*\n  %1335 = load i64, i64* %1334\n; # (cons (cons (shift Z) (lookup ZERO Z)) (val E))\n  %1336 = call i64 @cons(i64 %1333, i64 %1335)\n  %1337 = inttoptr i64 %1323 to i64*\n  store i64 %1336, i64* %1337\n  br label %$77\n$77:\n  %1338 = phi i64 [%1289, %$74], [%1312, %$76] ; # Exe\n  %1339 = phi i64 [%1290, %$74], [%1313, %$76] ; # X\n  %1340 = phi i64 [%1291, %$74], [%1314, %$76] ; # Q\n  %1341 = phi i64 [%1292, %$74], [%1315, %$76] ; # Dbg\n  %1342 = phi i64 [%1293, %$74], [%1316, %$76] ; # P\n  %1343 = phi i64 [%1294, %$74], [%1317, %$76] ; # N\n  %1344 = phi i64 [%1295, %$74], [%1318, %$76] ; # Nl\n  %1345 = phi i64 [%1296, %$74], [%1319, %$76] ; # Alt\n  %1346 = phi i64 [%1297, %$74], [%1320, %$76] ; # Tp1\n  %1347 = phi i64 [%1298, %$74], [%1321, %$76] ; # Tp2\n  %1348 = phi i64 [%1299, %$74], [%1322, %$76] ; # Env\n  %1349 = phi i64 [%1300, %$74], [%1323, %$76] ; # E\n  %1350 = phi i64 [%1301, %$74], [%1324, %$76] ; # At\n  %1351 = phi i64 [%1302, %$74], [%1325, %$76] ; # Penv\n  %1352 = phi i64 [%1303, %$74], [%1326, %$76] ; # Pnl\n  %1353 = phi i64 [%1304, %$74], [%1327, %$76] ; # Y\n  %1354 = phi i64 [%1308, %$74], [%1331, %$76] ; # Z\n; # (shift Y)\n  %1355 = inttoptr i64 %1353 to i64*\n  %1356 = getelementptr i64, i64* %1355, i32 1\n  %1357 = load i64, i64* %1356\n  br label %$73\n$75:\n  %1358 = phi i64 [%1268, %$73] ; # Exe\n  %1359 = phi i64 [%1269, %$73] ; # X\n  %1360 = phi i64 [%1270, %$73] ; # Q\n  %1361 = phi i64 [%1271, %$73] ; # Dbg\n  %1362 = phi i64 [%1272, %$73] ; # P\n  %1363 = phi i64 [%1273, %$73] ; # N\n  %1364 = phi i64 [%1274, %$73] ; # Nl\n  %1365 = phi i64 [%1275, %$73] ; # Alt\n  %1366 = phi i64 [%1276, %$73] ; # Tp1\n  %1367 = phi i64 [%1277, %$73] ; # Tp2\n  %1368 = phi i64 [%1278, %$73] ; # Env\n  %1369 = phi i64 [%1279, %$73] ; # E\n  %1370 = phi i64 [%1280, %$73] ; # At\n  %1371 = phi i64 [%1281, %$73] ; # Penv\n  %1372 = phi i64 [%1282, %$73] ; # Pnl\n  %1373 = phi i64 [%1283, %$73] ; # Y\n; # (set $Pnl Pnl $Penv Penv $At At)\n  store i64 %1372, i64* @$Pnl\n  store i64 %1371, i64* @$Penv\n  %1374 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64) to i64*\n  store i64 %1370, i64* %1374\n; # (cond ((pair (val E)) @) ((pair (val Env)) $T) (T $Nil))\n; # (val E)\n  %1375 = inttoptr i64 %1369 to i64*\n  %1376 = load i64, i64* %1375\n; # (pair (val E))\n  %1377 = and i64 %1376, 15\n  %1378 = icmp eq i64 %1377, 0\n  br i1 %1378, label %$80, label %$79\n$80:\n  %1379 = phi i64 [%1358, %$75] ; # Exe\n  %1380 = phi i64 [%1359, %$75] ; # X\n  %1381 = phi i64 [%1360, %$75] ; # Q\n  %1382 = phi i64 [%1361, %$75] ; # Dbg\n  %1383 = phi i64 [%1362, %$75] ; # P\n  %1384 = phi i64 [%1363, %$75] ; # N\n  %1385 = phi i64 [%1364, %$75] ; # Nl\n  %1386 = phi i64 [%1365, %$75] ; # Alt\n  %1387 = phi i64 [%1366, %$75] ; # Tp1\n  %1388 = phi i64 [%1367, %$75] ; # Tp2\n  %1389 = phi i64 [%1368, %$75] ; # Env\n  %1390 = phi i64 [%1369, %$75] ; # E\n  %1391 = phi i64 [%1370, %$75] ; # At\n  %1392 = phi i64 [%1371, %$75] ; # Penv\n  %1393 = phi i64 [%1372, %$75] ; # Pnl\n  br label %$78\n$79:\n  %1394 = phi i64 [%1358, %$75] ; # Exe\n  %1395 = phi i64 [%1359, %$75] ; # X\n  %1396 = phi i64 [%1360, %$75] ; # Q\n  %1397 = phi i64 [%1361, %$75] ; # Dbg\n  %1398 = phi i64 [%1362, %$75] ; # P\n  %1399 = phi i64 [%1363, %$75] ; # N\n  %1400 = phi i64 [%1364, %$75] ; # Nl\n  %1401 = phi i64 [%1365, %$75] ; # Alt\n  %1402 = phi i64 [%1366, %$75] ; # Tp1\n  %1403 = phi i64 [%1367, %$75] ; # Tp2\n  %1404 = phi i64 [%1368, %$75] ; # Env\n  %1405 = phi i64 [%1369, %$75] ; # E\n  %1406 = phi i64 [%1370, %$75] ; # At\n  %1407 = phi i64 [%1371, %$75] ; # Penv\n  %1408 = phi i64 [%1372, %$75] ; # Pnl\n; # (val Env)\n  %1409 = inttoptr i64 %1404 to i64*\n  %1410 = load i64, i64* %1409\n; # (pair (val Env))\n  %1411 = and i64 %1410, 15\n  %1412 = icmp eq i64 %1411, 0\n  br i1 %1412, label %$82, label %$81\n$82:\n  %1413 = phi i64 [%1394, %$79] ; # Exe\n  %1414 = phi i64 [%1395, %$79] ; # X\n  %1415 = phi i64 [%1396, %$79] ; # Q\n  %1416 = phi i64 [%1397, %$79] ; # Dbg\n  %1417 = phi i64 [%1398, %$79] ; # P\n  %1418 = phi i64 [%1399, %$79] ; # N\n  %1419 = phi i64 [%1400, %$79] ; # Nl\n  %1420 = phi i64 [%1401, %$79] ; # Alt\n  %1421 = phi i64 [%1402, %$79] ; # Tp1\n  %1422 = phi i64 [%1403, %$79] ; # Tp2\n  %1423 = phi i64 [%1404, %$79] ; # Env\n  %1424 = phi i64 [%1405, %$79] ; # E\n  %1425 = phi i64 [%1406, %$79] ; # At\n  %1426 = phi i64 [%1407, %$79] ; # Penv\n  %1427 = phi i64 [%1408, %$79] ; # Pnl\n  br label %$78\n$81:\n  %1428 = phi i64 [%1394, %$79] ; # Exe\n  %1429 = phi i64 [%1395, %$79] ; # X\n  %1430 = phi i64 [%1396, %$79] ; # Q\n  %1431 = phi i64 [%1397, %$79] ; # Dbg\n  %1432 = phi i64 [%1398, %$79] ; # P\n  %1433 = phi i64 [%1399, %$79] ; # N\n  %1434 = phi i64 [%1400, %$79] ; # Nl\n  %1435 = phi i64 [%1401, %$79] ; # Alt\n  %1436 = phi i64 [%1402, %$79] ; # Tp1\n  %1437 = phi i64 [%1403, %$79] ; # Tp2\n  %1438 = phi i64 [%1404, %$79] ; # Env\n  %1439 = phi i64 [%1405, %$79] ; # E\n  %1440 = phi i64 [%1406, %$79] ; # At\n  %1441 = phi i64 [%1407, %$79] ; # Penv\n  %1442 = phi i64 [%1408, %$79] ; # Pnl\n  br label %$78\n$78:\n  %1443 = phi i64 [%1379, %$80], [%1413, %$82], [%1428, %$81] ; # Exe\n  %1444 = phi i64 [%1380, %$80], [%1414, %$82], [%1429, %$81] ; # X\n  %1445 = phi i64 [%1381, %$80], [%1415, %$82], [%1430, %$81] ; # Q\n  %1446 = phi i64 [%1382, %$80], [%1416, %$82], [%1431, %$81] ; # Dbg\n  %1447 = phi i64 [%1383, %$80], [%1417, %$82], [%1432, %$81] ; # P\n  %1448 = phi i64 [%1384, %$80], [%1418, %$82], [%1433, %$81] ; # N\n  %1449 = phi i64 [%1385, %$80], [%1419, %$82], [%1434, %$81] ; # Nl\n  %1450 = phi i64 [%1386, %$80], [%1420, %$82], [%1435, %$81] ; # Alt\n  %1451 = phi i64 [%1387, %$80], [%1421, %$82], [%1436, %$81] ; # Tp1\n  %1452 = phi i64 [%1388, %$80], [%1422, %$82], [%1437, %$81] ; # Tp2\n  %1453 = phi i64 [%1389, %$80], [%1423, %$82], [%1438, %$81] ; # Env\n  %1454 = phi i64 [%1390, %$80], [%1424, %$82], [%1439, %$81] ; # E\n  %1455 = phi i64 [%1391, %$80], [%1425, %$82], [%1440, %$81] ; # At\n  %1456 = phi i64 [%1392, %$80], [%1426, %$82], [%1441, %$81] ; # Penv\n  %1457 = phi i64 [%1393, %$80], [%1427, %$82], [%1442, %$81] ; # Pnl\n  %1458 = phi i64 [%1376, %$80], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$82], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$81] ; # ->\n; # (drop *Safe)\n  %1459 = inttoptr i64 %28 to i64*\n  %1460 = getelementptr i64, i64* %1459, i32 1\n  %1461 = load i64, i64* %1460\n  %1462 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1461, i64* %1462\n  br label %$9\n$9:\n  %1463 = phi i64 [%21, %$7], [%1443, %$78] ; # Exe\n  %1464 = phi i64 [%22, %$7], [%1444, %$78] ; # X\n  %1465 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [%1458, %$78] ; # ->\n  ret i64 %1465\n}\n\ndefine i64 @_Arrow(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) L (val (val $Pnl))) (when (cnt? (cadr X)) (let ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $Pnl)\n  %4 = load i64, i64* @$Pnl\n; # (val (val $Pnl))\n  %5 = inttoptr i64 %4 to i64*\n  %6 = load i64, i64* %5\n; # (when (cnt? (cadr X)) (let I (int @) (while (gt0 (dec 'I)) (shift...\n; # (cadr X)\n  %7 = inttoptr i64 %3 to i64*\n  %8 = getelementptr i64, i64* %7, i32 1\n  %9 = load i64, i64* %8\n  %10 = inttoptr i64 %9 to i64*\n  %11 = load i64, i64* %10\n; # (cnt? (cadr X))\n  %12 = and i64 %11, 2\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%3, %$1] ; # X\n  %16 = phi i64 [%6, %$1] ; # L\n; # (let I (int @) (while (gt0 (dec 'I)) (shift L)))\n; # (int @)\n  %17 = lshr i64 %11, 4\n; # (while (gt0 (dec 'I)) (shift L))\n  br label %$4\n$4:\n  %18 = phi i64 [%14, %$2], [%24, %$5] ; # Exe\n  %19 = phi i64 [%15, %$2], [%25, %$5] ; # X\n  %20 = phi i64 [%16, %$2], [%30, %$5] ; # L\n  %21 = phi i64 [%17, %$2], [%27, %$5] ; # I\n; # (dec 'I)\n  %22 = sub i64 %21, 1\n; # (gt0 (dec 'I))\n  %23 = icmp sgt i64 %22, 0\n  br i1 %23, label %$5, label %$6\n$5:\n  %24 = phi i64 [%18, %$4] ; # Exe\n  %25 = phi i64 [%19, %$4] ; # X\n  %26 = phi i64 [%20, %$4] ; # L\n  %27 = phi i64 [%22, %$4] ; # I\n; # (shift L)\n  %28 = inttoptr i64 %26 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n  br label %$4\n$6:\n  %31 = phi i64 [%18, %$4] ; # Exe\n  %32 = phi i64 [%19, %$4] ; # X\n  %33 = phi i64 [%20, %$4] ; # L\n  %34 = phi i64 [%22, %$4] ; # I\n  br label %$3\n$3:\n  %35 = phi i64 [%0, %$1], [%31, %$6] ; # Exe\n  %36 = phi i64 [%3, %$1], [%32, %$6] ; # X\n  %37 = phi i64 [%6, %$1], [%33, %$6] ; # L\n; # (car L)\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n; # (car X)\n  %40 = inttoptr i64 %36 to i64*\n  %41 = load i64, i64* %40\n; # (lookup (car L) (car X))\n  %42 = call i64 @lookup(i64 %39, i64 %41)\n  ret i64 %42\n}\n\ndefine i64 @_Unify(i64) align 8 {\n$1:\n; # (let (X (eval (cadr Exe)) Pnl (val (val $Pnl)) N (car Pnl)) (ifn ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (val $Pnl)\n  %19 = load i64, i64* @$Pnl\n; # (val (val $Pnl))\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n; # (car Pnl)\n  %22 = inttoptr i64 %21 to i64*\n  %23 = load i64, i64* %22\n; # (ifn (cnt? X) (save X (if (unify (cadr Pnl) X N X) (val (val $Pen...\n; # (cnt? X)\n  %24 = and i64 %18, 2\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$8, label %$7\n$7:\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = phi i64 [%18, %$2] ; # X\n  %28 = phi i64 [%21, %$2] ; # Pnl\n  %29 = phi i64 [%23, %$2] ; # N\n; # (save X (if (unify (cadr Pnl) X N X) (val (val $Penv)) $Nil))\n  %30 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %31 = load i64, i64* %30\n  %32 = alloca i64, i64 2, align 16\n  %33 = ptrtoint i64* %32 to i64\n  %34 = inttoptr i64 %33 to i64*\n  store i64 %27, i64* %34\n  %35 = add i64 %33, 8\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %31, i64* %36\n  %37 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %33, i64* %37\n; # (if (unify (cadr Pnl) X N X) (val (val $Penv)) $Nil)\n; # (cadr Pnl)\n  %38 = inttoptr i64 %28 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n; # (unify (cadr Pnl) X N X)\n  %43 = call i1 @unify(i64 %42, i64 %27, i64 %29, i64 %27)\n  br i1 %43, label %$10, label %$11\n$10:\n  %44 = phi i64 [%26, %$7] ; # Exe\n  %45 = phi i64 [%27, %$7] ; # X\n  %46 = phi i64 [%28, %$7] ; # Pnl\n  %47 = phi i64 [%29, %$7] ; # N\n; # (val $Penv)\n  %48 = load i64, i64* @$Penv\n; # (val (val $Penv))\n  %49 = inttoptr i64 %48 to i64*\n  %50 = load i64, i64* %49\n  br label %$12\n$11:\n  %51 = phi i64 [%26, %$7] ; # Exe\n  %52 = phi i64 [%27, %$7] ; # X\n  %53 = phi i64 [%28, %$7] ; # Pnl\n  %54 = phi i64 [%29, %$7] ; # N\n  br label %$12\n$12:\n  %55 = phi i64 [%44, %$10], [%51, %$11] ; # Exe\n  %56 = phi i64 [%45, %$10], [%52, %$11] ; # X\n  %57 = phi i64 [%46, %$10], [%53, %$11] ; # Pnl\n  %58 = phi i64 [%47, %$10], [%54, %$11] ; # N\n  %59 = phi i64 [%50, %$10], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11] ; # ->\n; # drop\n  %60 = inttoptr i64 %33 to i64*\n  %61 = getelementptr i64, i64* %60, i32 1\n  %62 = load i64, i64* %61\n  %63 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %62, i64* %63\n  br label %$9\n$8:\n  %64 = phi i64 [%0, %$2] ; # Exe\n  %65 = phi i64 [%18, %$2] ; # X\n  %66 = phi i64 [%21, %$2] ; # Pnl\n  %67 = phi i64 [%23, %$2] ; # N\n; # (let (I (int @) Penv (val (val $Penv))) (while (gt0 (dec 'I)) (sh...\n; # (int @)\n  %68 = lshr i64 %18, 4\n; # (val $Penv)\n  %69 = load i64, i64* @$Penv\n; # (val (val $Penv))\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n; # (while (gt0 (dec 'I)) (shift Pnl))\n  br label %$13\n$13:\n  %72 = phi i64 [%64, %$8], [%80, %$14] ; # Exe\n  %73 = phi i64 [%65, %$8], [%81, %$14] ; # X\n  %74 = phi i64 [%66, %$8], [%88, %$14] ; # Pnl\n  %75 = phi i64 [%67, %$8], [%83, %$14] ; # N\n  %76 = phi i64 [%68, %$8], [%84, %$14] ; # I\n  %77 = phi i64 [%71, %$8], [%85, %$14] ; # Penv\n; # (dec 'I)\n  %78 = sub i64 %76, 1\n; # (gt0 (dec 'I))\n  %79 = icmp sgt i64 %78, 0\n  br i1 %79, label %$14, label %$15\n$14:\n  %80 = phi i64 [%72, %$13] ; # Exe\n  %81 = phi i64 [%73, %$13] ; # X\n  %82 = phi i64 [%74, %$13] ; # Pnl\n  %83 = phi i64 [%75, %$13] ; # N\n  %84 = phi i64 [%78, %$13] ; # I\n  %85 = phi i64 [%77, %$13] ; # Penv\n; # (shift Pnl)\n  %86 = inttoptr i64 %82 to i64*\n  %87 = getelementptr i64, i64* %86, i32 1\n  %88 = load i64, i64* %87\n  br label %$13\n$15:\n  %89 = phi i64 [%72, %$13] ; # Exe\n  %90 = phi i64 [%73, %$13] ; # X\n  %91 = phi i64 [%74, %$13] ; # Pnl\n  %92 = phi i64 [%75, %$13] ; # N\n  %93 = phi i64 [%78, %$13] ; # I\n  %94 = phi i64 [%77, %$13] ; # Penv\n; # (let M (car Pnl) (while (pair (car Penv)) (let Y (car @) (when (=...\n; # (car Pnl)\n  %95 = inttoptr i64 %91 to i64*\n  %96 = load i64, i64* %95\n; # (while (pair (car Penv)) (let Y (car @) (when (== (car Y) M) (let...\n  br label %$16\n$16:\n  %97 = phi i64 [%89, %$15], [%132, %$20] ; # Exe\n  %98 = phi i64 [%90, %$15], [%133, %$20] ; # X\n  %99 = phi i64 [%91, %$15], [%134, %$20] ; # Pnl\n  %100 = phi i64 [%92, %$15], [%135, %$20] ; # N\n  %101 = phi i64 [%93, %$15], [%136, %$20] ; # I\n  %102 = phi i64 [%94, %$15], [%142, %$20] ; # Penv\n  %103 = phi i64 [%96, %$15], [%138, %$20] ; # M\n; # (car Penv)\n  %104 = inttoptr i64 %102 to i64*\n  %105 = load i64, i64* %104\n; # (pair (car Penv))\n  %106 = and i64 %105, 15\n  %107 = icmp eq i64 %106, 0\n  br i1 %107, label %$17, label %$18\n$17:\n  %108 = phi i64 [%97, %$16] ; # Exe\n  %109 = phi i64 [%98, %$16] ; # X\n  %110 = phi i64 [%99, %$16] ; # Pnl\n  %111 = phi i64 [%100, %$16] ; # N\n  %112 = phi i64 [%101, %$16] ; # I\n  %113 = phi i64 [%102, %$16] ; # Penv\n  %114 = phi i64 [%103, %$16] ; # M\n; # (let Y (car @) (when (== (car Y) M) (let S (cdr Y) (unify M S N S...\n; # (car @)\n  %115 = inttoptr i64 %105 to i64*\n  %116 = load i64, i64* %115\n; # (when (== (car Y) M) (let S (cdr Y) (unify M S N S)))\n; # (car Y)\n  %117 = inttoptr i64 %116 to i64*\n  %118 = load i64, i64* %117\n; # (== (car Y) M)\n  %119 = icmp eq i64 %118, %114\n  br i1 %119, label %$19, label %$20\n$19:\n  %120 = phi i64 [%108, %$17] ; # Exe\n  %121 = phi i64 [%109, %$17] ; # X\n  %122 = phi i64 [%110, %$17] ; # Pnl\n  %123 = phi i64 [%111, %$17] ; # N\n  %124 = phi i64 [%112, %$17] ; # I\n  %125 = phi i64 [%113, %$17] ; # Penv\n  %126 = phi i64 [%114, %$17] ; # M\n  %127 = phi i64 [%116, %$17] ; # Y\n; # (let S (cdr Y) (unify M S N S))\n; # (cdr Y)\n  %128 = inttoptr i64 %127 to i64*\n  %129 = getelementptr i64, i64* %128, i32 1\n  %130 = load i64, i64* %129\n; # (unify M S N S)\n  %131 = call i1 @unify(i64 %126, i64 %130, i64 %123, i64 %130)\n  br label %$20\n$20:\n  %132 = phi i64 [%108, %$17], [%120, %$19] ; # Exe\n  %133 = phi i64 [%109, %$17], [%121, %$19] ; # X\n  %134 = phi i64 [%110, %$17], [%122, %$19] ; # Pnl\n  %135 = phi i64 [%111, %$17], [%123, %$19] ; # N\n  %136 = phi i64 [%112, %$17], [%124, %$19] ; # I\n  %137 = phi i64 [%113, %$17], [%125, %$19] ; # Penv\n  %138 = phi i64 [%114, %$17], [%126, %$19] ; # M\n  %139 = phi i64 [%116, %$17], [%127, %$19] ; # Y\n; # (shift Penv)\n  %140 = inttoptr i64 %137 to i64*\n  %141 = getelementptr i64, i64* %140, i32 1\n  %142 = load i64, i64* %141\n  br label %$16\n$18:\n  %143 = phi i64 [%97, %$16] ; # Exe\n  %144 = phi i64 [%98, %$16] ; # X\n  %145 = phi i64 [%99, %$16] ; # Pnl\n  %146 = phi i64 [%100, %$16] ; # N\n  %147 = phi i64 [%101, %$16] ; # I\n  %148 = phi i64 [%102, %$16] ; # Penv\n  %149 = phi i64 [%103, %$16] ; # M\n  br label %$9\n$9:\n  %150 = phi i64 [%55, %$12], [%143, %$18] ; # Exe\n  %151 = phi i64 [%56, %$12], [%144, %$18] ; # X\n  %152 = phi i64 [%57, %$12], [%145, %$18] ; # Pnl\n  %153 = phi i64 [%58, %$12], [%146, %$18] ; # N\n  %154 = phi i64 [%59, %$12], [%144, %$18] ; # ->\n  ret i64 %154\n}\n\ndefine i64 @_Group(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) L (save (eval (++ X)))) (if (atom L) $Nil (let ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (if (atom L) $Nil (let Y (cons (cdar L) $Nil) (setq Y (cons (cons...\n; # (atom L)\n  %29 = and i64 %20, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$7, label %$8\n$7:\n  %31 = phi i64 [%0, %$2] ; # Exe\n  %32 = phi i64 [%6, %$2] ; # X\n  %33 = phi i64 [%20, %$2] ; # L\n  br label %$9\n$8:\n  %34 = phi i64 [%0, %$2] ; # Exe\n  %35 = phi i64 [%6, %$2] ; # X\n  %36 = phi i64 [%20, %$2] ; # L\n; # (let Y (cons (cdar L) $Nil) (setq Y (cons (cons (caar L) (cons Y ...\n; # (cdar L)\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n  %39 = inttoptr i64 %38 to i64*\n  %40 = getelementptr i64, i64* %39, i32 1\n  %41 = load i64, i64* %40\n; # (cons (cdar L) $Nil)\n  %42 = call i64 @cons(i64 %41, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (caar L)\n  %43 = inttoptr i64 %36 to i64*\n  %44 = load i64, i64* %43\n  %45 = inttoptr i64 %44 to i64*\n  %46 = load i64, i64* %45\n; # (cons Y Y)\n  %47 = call i64 @cons(i64 %42, i64 %42)\n; # (cons (caar L) (cons Y Y))\n  %48 = call i64 @cons(i64 %46, i64 %47)\n; # (cons (cons (caar L) (cons Y Y)) $Nil)\n  %49 = call i64 @cons(i64 %48, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (let R (save Y) (if (nil? (eval (car X))) (while (pair (shift L))...\n; # (save Y)\n  %50 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %51 = load i64, i64* %50\n  %52 = alloca i64, i64 2, align 16\n  %53 = ptrtoint i64* %52 to i64\n  %54 = inttoptr i64 %53 to i64*\n  store i64 %49, i64* %54\n  %55 = add i64 %53, 8\n  %56 = inttoptr i64 %55 to i64*\n  store i64 %51, i64* %56\n  %57 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %53, i64* %57\n; # (if (nil? (eval (car X))) (while (pair (shift L)) (let K (caar L)...\n; # (car X)\n  %58 = inttoptr i64 %35 to i64*\n  %59 = load i64, i64* %58\n; # (eval (car X))\n  %60 = and i64 %59, 6\n  %61 = icmp ne i64 %60, 0\n  br i1 %61, label %$12, label %$11\n$12:\n  %62 = phi i64 [%59, %$8] ; # X\n  br label %$10\n$11:\n  %63 = phi i64 [%59, %$8] ; # X\n  %64 = and i64 %63, 8\n  %65 = icmp ne i64 %64, 0\n  br i1 %65, label %$14, label %$13\n$14:\n  %66 = phi i64 [%63, %$11] ; # X\n  %67 = inttoptr i64 %66 to i64*\n  %68 = load i64, i64* %67\n  br label %$10\n$13:\n  %69 = phi i64 [%63, %$11] ; # X\n  %70 = call i64 @evList(i64 %69)\n  br label %$10\n$10:\n  %71 = phi i64 [%62, %$12], [%66, %$14], [%69, %$13] ; # X\n  %72 = phi i64 [%62, %$12], [%68, %$14], [%70, %$13] ; # ->\n; # (nil? (eval (car X)))\n  %73 = icmp eq i64 %72, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %73, label %$15, label %$16\n$15:\n  %74 = phi i64 [%34, %$10] ; # Exe\n  %75 = phi i64 [%35, %$10] ; # X\n  %76 = phi i64 [%36, %$10] ; # L\n  %77 = phi i64 [%49, %$10] ; # Y\n  %78 = phi i64 [%49, %$10] ; # R\n; # (while (pair (shift L)) (let K (caar L) (setq Y (cons (cdar L) $N...\n  br label %$18\n$18:\n  %79 = phi i64 [%74, %$15], [%166, %$23] ; # Exe\n  %80 = phi i64 [%75, %$15], [%167, %$23] ; # X\n  %81 = phi i64 [%76, %$15], [%168, %$23] ; # L\n  %82 = phi i64 [%77, %$15], [%169, %$23] ; # Y\n  %83 = phi i64 [%78, %$15], [%170, %$23] ; # R\n; # (shift L)\n  %84 = inttoptr i64 %81 to i64*\n  %85 = getelementptr i64, i64* %84, i32 1\n  %86 = load i64, i64* %85\n; # (pair (shift L))\n  %87 = and i64 %86, 15\n  %88 = icmp eq i64 %87, 0\n  br i1 %88, label %$19, label %$20\n$19:\n  %89 = phi i64 [%79, %$18] ; # Exe\n  %90 = phi i64 [%80, %$18] ; # X\n  %91 = phi i64 [%86, %$18] ; # L\n  %92 = phi i64 [%82, %$18] ; # Y\n  %93 = phi i64 [%83, %$18] ; # R\n; # (let K (caar L) (setq Y (cons (cdar L) $Nil)) (let Z R (loop (let...\n; # (caar L)\n  %94 = inttoptr i64 %91 to i64*\n  %95 = load i64, i64* %94\n  %96 = inttoptr i64 %95 to i64*\n  %97 = load i64, i64* %96\n; # (cdar L)\n  %98 = inttoptr i64 %91 to i64*\n  %99 = load i64, i64* %98\n  %100 = inttoptr i64 %99 to i64*\n  %101 = getelementptr i64, i64* %100, i32 1\n  %102 = load i64, i64* %101\n; # (cons (cdar L) $Nil)\n  %103 = call i64 @cons(i64 %102, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (let Z R (loop (let V (car Z) (? (equal K (car V)) (set (shift V)...\n; # (loop (let V (car Z) (? (equal K (car V)) (set (shift V) (set 2 (...\n  br label %$21\n$21:\n  %104 = phi i64 [%89, %$19], [%158, %$25] ; # Exe\n  %105 = phi i64 [%90, %$19], [%159, %$25] ; # X\n  %106 = phi i64 [%91, %$19], [%160, %$25] ; # L\n  %107 = phi i64 [%103, %$19], [%161, %$25] ; # Y\n  %108 = phi i64 [%93, %$19], [%162, %$25] ; # R\n  %109 = phi i64 [%97, %$19], [%163, %$25] ; # K\n  %110 = phi i64 [%93, %$19], [%142, %$25] ; # Z\n; # (let V (car Z) (? (equal K (car V)) (set (shift V) (set 2 (car V)...\n; # (car Z)\n  %111 = inttoptr i64 %110 to i64*\n  %112 = load i64, i64* %111\n; # (? (equal K (car V)) (set (shift V) (set 2 (car V) Y)))\n; # (car V)\n  %113 = inttoptr i64 %112 to i64*\n  %114 = load i64, i64* %113\n; # (equal K (car V))\n  %115 = call i1 @equal(i64 %109, i64 %114)\n  br i1 %115, label %$24, label %$22\n$24:\n  %116 = phi i64 [%104, %$21] ; # Exe\n  %117 = phi i64 [%105, %$21] ; # X\n  %118 = phi i64 [%106, %$21] ; # L\n  %119 = phi i64 [%107, %$21] ; # Y\n  %120 = phi i64 [%108, %$21] ; # R\n  %121 = phi i64 [%109, %$21] ; # K\n  %122 = phi i64 [%110, %$21] ; # Z\n  %123 = phi i64 [%112, %$21] ; # V\n; # (set (shift V) (set 2 (car V) Y))\n; # (shift V)\n  %124 = inttoptr i64 %123 to i64*\n  %125 = getelementptr i64, i64* %124, i32 1\n  %126 = load i64, i64* %125\n; # (set 2 (car V) Y)\n; # (car V)\n  %127 = inttoptr i64 %126 to i64*\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  store i64 %119, i64* %130\n  %131 = inttoptr i64 %126 to i64*\n  store i64 %119, i64* %131\n  br label %$23\n$22:\n  %132 = phi i64 [%104, %$21] ; # Exe\n  %133 = phi i64 [%105, %$21] ; # X\n  %134 = phi i64 [%106, %$21] ; # L\n  %135 = phi i64 [%107, %$21] ; # Y\n  %136 = phi i64 [%108, %$21] ; # R\n  %137 = phi i64 [%109, %$21] ; # K\n  %138 = phi i64 [%110, %$21] ; # Z\n  %139 = phi i64 [%112, %$21] ; # V\n; # (? (atom (cdr Z)) (set 2 Z (cons (cons K (cons Y Y)) $Nil)))\n; # (cdr Z)\n  %140 = inttoptr i64 %138 to i64*\n  %141 = getelementptr i64, i64* %140, i32 1\n  %142 = load i64, i64* %141\n; # (atom (cdr Z))\n  %143 = and i64 %142, 15\n  %144 = icmp ne i64 %143, 0\n  br i1 %144, label %$26, label %$25\n$26:\n  %145 = phi i64 [%132, %$22] ; # Exe\n  %146 = phi i64 [%133, %$22] ; # X\n  %147 = phi i64 [%134, %$22] ; # L\n  %148 = phi i64 [%135, %$22] ; # Y\n  %149 = phi i64 [%136, %$22] ; # R\n  %150 = phi i64 [%137, %$22] ; # K\n  %151 = phi i64 [%138, %$22] ; # Z\n  %152 = phi i64 [%139, %$22] ; # V\n; # (set 2 Z (cons (cons K (cons Y Y)) $Nil))\n; # (cons Y Y)\n  %153 = call i64 @cons(i64 %148, i64 %148)\n; # (cons K (cons Y Y))\n  %154 = call i64 @cons(i64 %150, i64 %153)\n; # (cons (cons K (cons Y Y)) $Nil)\n  %155 = call i64 @cons(i64 %154, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %156 = inttoptr i64 %151 to i64*\n  %157 = getelementptr i64, i64* %156, i32 1\n  store i64 %155, i64* %157\n  br label %$23\n$25:\n  %158 = phi i64 [%132, %$22] ; # Exe\n  %159 = phi i64 [%133, %$22] ; # X\n  %160 = phi i64 [%134, %$22] ; # L\n  %161 = phi i64 [%135, %$22] ; # Y\n  %162 = phi i64 [%136, %$22] ; # R\n  %163 = phi i64 [%137, %$22] ; # K\n  %164 = phi i64 [%138, %$22] ; # Z\n  %165 = phi i64 [%139, %$22] ; # V\n  br label %$21\n$23:\n  %166 = phi i64 [%116, %$24], [%145, %$26] ; # Exe\n  %167 = phi i64 [%117, %$24], [%146, %$26] ; # X\n  %168 = phi i64 [%118, %$24], [%147, %$26] ; # L\n  %169 = phi i64 [%119, %$24], [%148, %$26] ; # Y\n  %170 = phi i64 [%120, %$24], [%149, %$26] ; # R\n  %171 = phi i64 [%121, %$24], [%150, %$26] ; # K\n  %172 = phi i64 [%122, %$24], [%151, %$26] ; # Z\n  %173 = phi i64 [%119, %$24], [%155, %$26] ; # ->\n  br label %$18\n$20:\n  %174 = phi i64 [%79, %$18] ; # Exe\n  %175 = phi i64 [%80, %$18] ; # X\n  %176 = phi i64 [%86, %$18] ; # L\n  %177 = phi i64 [%82, %$18] ; # Y\n  %178 = phi i64 [%83, %$18] ; # R\n  br label %$17\n$16:\n  %179 = phi i64 [%34, %$10] ; # Exe\n  %180 = phi i64 [%35, %$10] ; # X\n  %181 = phi i64 [%36, %$10] ; # L\n  %182 = phi i64 [%49, %$10] ; # Y\n  %183 = phi i64 [%49, %$10] ; # R\n; # (let Z R (while (pair (shift L)) (let (K (caar L) V (car Z)) (set...\n; # (while (pair (shift L)) (let (K (caar L) V (car Z)) (setq Y (cons...\n  br label %$27\n$27:\n  %184 = phi i64 [%179, %$16], [%248, %$32] ; # Exe\n  %185 = phi i64 [%180, %$16], [%249, %$32] ; # X\n  %186 = phi i64 [%181, %$16], [%250, %$32] ; # L\n  %187 = phi i64 [%182, %$16], [%251, %$32] ; # Y\n  %188 = phi i64 [%183, %$16], [%252, %$32] ; # R\n  %189 = phi i64 [%183, %$16], [%253, %$32] ; # Z\n; # (shift L)\n  %190 = inttoptr i64 %186 to i64*\n  %191 = getelementptr i64, i64* %190, i32 1\n  %192 = load i64, i64* %191\n; # (pair (shift L))\n  %193 = and i64 %192, 15\n  %194 = icmp eq i64 %193, 0\n  br i1 %194, label %$28, label %$29\n$28:\n  %195 = phi i64 [%184, %$27] ; # Exe\n  %196 = phi i64 [%185, %$27] ; # X\n  %197 = phi i64 [%192, %$27] ; # L\n  %198 = phi i64 [%187, %$27] ; # Y\n  %199 = phi i64 [%188, %$27] ; # R\n  %200 = phi i64 [%189, %$27] ; # Z\n; # (let (K (caar L) V (car Z)) (setq Y (cons (cdar L) $Nil)) (if (eq...\n; # (caar L)\n  %201 = inttoptr i64 %197 to i64*\n  %202 = load i64, i64* %201\n  %203 = inttoptr i64 %202 to i64*\n  %204 = load i64, i64* %203\n; # (car Z)\n  %205 = inttoptr i64 %200 to i64*\n  %206 = load i64, i64* %205\n; # (cdar L)\n  %207 = inttoptr i64 %197 to i64*\n  %208 = load i64, i64* %207\n  %209 = inttoptr i64 %208 to i64*\n  %210 = getelementptr i64, i64* %209, i32 1\n  %211 = load i64, i64* %210\n; # (cons (cdar L) $Nil)\n  %212 = call i64 @cons(i64 %211, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (if (equal K (car V)) (set (shift V) (set 2 (car V) Y)) (set 2 Z ...\n; # (car V)\n  %213 = inttoptr i64 %206 to i64*\n  %214 = load i64, i64* %213\n; # (equal K (car V))\n  %215 = call i1 @equal(i64 %204, i64 %214)\n  br i1 %215, label %$30, label %$31\n$30:\n  %216 = phi i64 [%195, %$28] ; # Exe\n  %217 = phi i64 [%196, %$28] ; # X\n  %218 = phi i64 [%197, %$28] ; # L\n  %219 = phi i64 [%212, %$28] ; # Y\n  %220 = phi i64 [%199, %$28] ; # R\n  %221 = phi i64 [%200, %$28] ; # Z\n  %222 = phi i64 [%204, %$28] ; # K\n  %223 = phi i64 [%206, %$28] ; # V\n; # (set (shift V) (set 2 (car V) Y))\n; # (shift V)\n  %224 = inttoptr i64 %223 to i64*\n  %225 = getelementptr i64, i64* %224, i32 1\n  %226 = load i64, i64* %225\n; # (set 2 (car V) Y)\n; # (car V)\n  %227 = inttoptr i64 %226 to i64*\n  %228 = load i64, i64* %227\n  %229 = inttoptr i64 %228 to i64*\n  %230 = getelementptr i64, i64* %229, i32 1\n  store i64 %219, i64* %230\n  %231 = inttoptr i64 %226 to i64*\n  store i64 %219, i64* %231\n  br label %$32\n$31:\n  %232 = phi i64 [%195, %$28] ; # Exe\n  %233 = phi i64 [%196, %$28] ; # X\n  %234 = phi i64 [%197, %$28] ; # L\n  %235 = phi i64 [%212, %$28] ; # Y\n  %236 = phi i64 [%199, %$28] ; # R\n  %237 = phi i64 [%200, %$28] ; # Z\n  %238 = phi i64 [%204, %$28] ; # K\n  %239 = phi i64 [%206, %$28] ; # V\n; # (set 2 Z (cons (cons K (cons Y Y)) $Nil))\n; # (cons Y Y)\n  %240 = call i64 @cons(i64 %235, i64 %235)\n; # (cons K (cons Y Y))\n  %241 = call i64 @cons(i64 %238, i64 %240)\n; # (cons (cons K (cons Y Y)) $Nil)\n  %242 = call i64 @cons(i64 %241, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %243 = inttoptr i64 %237 to i64*\n  %244 = getelementptr i64, i64* %243, i32 1\n  store i64 %242, i64* %244\n; # (shift Z)\n  %245 = inttoptr i64 %237 to i64*\n  %246 = getelementptr i64, i64* %245, i32 1\n  %247 = load i64, i64* %246\n  br label %$32\n$32:\n  %248 = phi i64 [%216, %$30], [%232, %$31] ; # Exe\n  %249 = phi i64 [%217, %$30], [%233, %$31] ; # X\n  %250 = phi i64 [%218, %$30], [%234, %$31] ; # L\n  %251 = phi i64 [%219, %$30], [%235, %$31] ; # Y\n  %252 = phi i64 [%220, %$30], [%236, %$31] ; # R\n  %253 = phi i64 [%221, %$30], [%247, %$31] ; # Z\n  %254 = phi i64 [%222, %$30], [%238, %$31] ; # K\n  %255 = phi i64 [%226, %$30], [%239, %$31] ; # V\n  %256 = phi i64 [%219, %$30], [%247, %$31] ; # ->\n  br label %$27\n$29:\n  %257 = phi i64 [%184, %$27] ; # Exe\n  %258 = phi i64 [%185, %$27] ; # X\n  %259 = phi i64 [%192, %$27] ; # L\n  %260 = phi i64 [%187, %$27] ; # Y\n  %261 = phi i64 [%188, %$27] ; # R\n  %262 = phi i64 [%189, %$27] ; # Z\n  br label %$17\n$17:\n  %263 = phi i64 [%174, %$20], [%257, %$29] ; # Exe\n  %264 = phi i64 [%175, %$20], [%258, %$29] ; # X\n  %265 = phi i64 [%176, %$20], [%259, %$29] ; # L\n  %266 = phi i64 [%177, %$20], [%260, %$29] ; # Y\n  %267 = phi i64 [%178, %$20], [%261, %$29] ; # R\n; # (let Z R (loop (let V (car Z) (set 2 V (cddr V))) (? (atom (shift...\n; # (loop (let V (car Z) (set 2 V (cddr V))) (? (atom (shift Z))))\n  br label %$33\n$33:\n  %268 = phi i64 [%263, %$17], [%289, %$34] ; # Exe\n  %269 = phi i64 [%264, %$17], [%290, %$34] ; # X\n  %270 = phi i64 [%265, %$17], [%291, %$34] ; # L\n  %271 = phi i64 [%266, %$17], [%292, %$34] ; # Y\n  %272 = phi i64 [%267, %$17], [%293, %$34] ; # R\n  %273 = phi i64 [%267, %$17], [%294, %$34] ; # Z\n; # (let V (car Z) (set 2 V (cddr V)))\n; # (car Z)\n  %274 = inttoptr i64 %273 to i64*\n  %275 = load i64, i64* %274\n; # (set 2 V (cddr V))\n; # (cddr V)\n  %276 = inttoptr i64 %275 to i64*\n  %277 = getelementptr i64, i64* %276, i32 1\n  %278 = load i64, i64* %277\n  %279 = inttoptr i64 %278 to i64*\n  %280 = getelementptr i64, i64* %279, i32 1\n  %281 = load i64, i64* %280\n  %282 = inttoptr i64 %275 to i64*\n  %283 = getelementptr i64, i64* %282, i32 1\n  store i64 %281, i64* %283\n; # (? (atom (shift Z)))\n; # (shift Z)\n  %284 = inttoptr i64 %273 to i64*\n  %285 = getelementptr i64, i64* %284, i32 1\n  %286 = load i64, i64* %285\n; # (atom (shift Z))\n  %287 = and i64 %286, 15\n  %288 = icmp ne i64 %287, 0\n  br i1 %288, label %$35, label %$34\n$34:\n  %289 = phi i64 [%268, %$33] ; # Exe\n  %290 = phi i64 [%269, %$33] ; # X\n  %291 = phi i64 [%270, %$33] ; # L\n  %292 = phi i64 [%271, %$33] ; # Y\n  %293 = phi i64 [%272, %$33] ; # R\n  %294 = phi i64 [%286, %$33] ; # Z\n  br label %$33\n$35:\n  %295 = phi i64 [%268, %$33] ; # Exe\n  %296 = phi i64 [%269, %$33] ; # X\n  %297 = phi i64 [%270, %$33] ; # L\n  %298 = phi i64 [%271, %$33] ; # Y\n  %299 = phi i64 [%272, %$33] ; # R\n  %300 = phi i64 [%286, %$33] ; # Z\n  %301 = phi i64 [0, %$33] ; # ->\n  br label %$9\n$9:\n  %302 = phi i64 [%31, %$7], [%295, %$35] ; # Exe\n  %303 = phi i64 [%32, %$7], [%296, %$35] ; # X\n  %304 = phi i64 [%33, %$7], [%297, %$35] ; # L\n  %305 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [%299, %$35] ; # ->\n; # (drop *Safe)\n  %306 = inttoptr i64 %24 to i64*\n  %307 = getelementptr i64, i64* %306, i32 1\n  %308 = load i64, i64* %307\n  %309 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %308, i64* %309\n  ret i64 %305\n}\n\ndefine i64 @_Sort(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X))) (cond ((atom Y) @) ((atom X) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((atom Y) @) ((atom X) (let (Out0 Y Out1 $Nil) (loop (let (...\n; # (atom Y)\n  %21 = and i64 %20, 15\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n  br label %$7\n$8:\n  %26 = phi i64 [%0, %$2] ; # Exe\n  %27 = phi i64 [%6, %$2] ; # X\n  %28 = phi i64 [%20, %$2] ; # Y\n; # (atom X)\n  %29 = and i64 %27, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%26, %$8] ; # Exe\n  %32 = phi i64 [%27, %$8] ; # X\n  %33 = phi i64 [%28, %$8] ; # Y\n; # (let (Out0 Y Out1 $Nil) (loop (let (In0 Out0 In1 Out1 P) (if (and...\n; # (loop (let (In0 Out0 In1 Out1 P) (if (and (pair In1) (ge0 (compar...\n  br label %$12\n$12:\n  %34 = phi i64 [%31, %$11], [%497, %$47] ; # Exe\n  %35 = phi i64 [%32, %$11], [%498, %$47] ; # X\n  %36 = phi i64 [%33, %$11], [%499, %$47] ; # Y\n  %37 = phi i64 [%33, %$11], [%500, %$47] ; # Out0\n  %38 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11], [%501, %$47] ; # Out1\n; # (let (In0 Out0 In1 Out1 P) (if (and (pair In1) (ge0 (compare (car...\n; # (if (and (pair In1) (ge0 (compare (car In0) (car In1)))) (setq In...\n; # (and (pair In1) (ge0 (compare (car In0) (car In1))))\n; # (pair In1)\n  %39 = and i64 %38, 15\n  %40 = icmp eq i64 %39, 0\n  br i1 %40, label %$14, label %$13\n$14:\n  %41 = phi i64 [%34, %$12] ; # Exe\n  %42 = phi i64 [%35, %$12] ; # X\n  %43 = phi i64 [%36, %$12] ; # Y\n  %44 = phi i64 [%37, %$12] ; # Out0\n  %45 = phi i64 [%38, %$12] ; # Out1\n  %46 = phi i64 [%37, %$12] ; # In0\n  %47 = phi i64 [%38, %$12] ; # In1\n; # (car In0)\n  %48 = inttoptr i64 %46 to i64*\n  %49 = load i64, i64* %48\n; # (car In1)\n  %50 = inttoptr i64 %47 to i64*\n  %51 = load i64, i64* %50\n; # (compare (car In0) (car In1))\n  %52 = call i64 @compare(i64 %49, i64 %51)\n; # (ge0 (compare (car In0) (car In1)))\n  %53 = icmp sge i64 %52, 0\n  br label %$13\n$13:\n  %54 = phi i64 [%34, %$12], [%41, %$14] ; # Exe\n  %55 = phi i64 [%35, %$12], [%42, %$14] ; # X\n  %56 = phi i64 [%36, %$12], [%43, %$14] ; # Y\n  %57 = phi i64 [%37, %$12], [%44, %$14] ; # Out0\n  %58 = phi i64 [%38, %$12], [%45, %$14] ; # Out1\n  %59 = phi i64 [%37, %$12], [%46, %$14] ; # In0\n  %60 = phi i64 [%38, %$12], [%47, %$14] ; # In1\n  %61 = phi i1 [0, %$12], [%53, %$14] ; # ->\n  br i1 %61, label %$15, label %$16\n$15:\n  %62 = phi i64 [%54, %$13] ; # Exe\n  %63 = phi i64 [%55, %$13] ; # X\n  %64 = phi i64 [%56, %$13] ; # Y\n  %65 = phi i64 [%57, %$13] ; # Out0\n  %66 = phi i64 [%58, %$13] ; # Out1\n  %67 = phi i64 [%59, %$13] ; # In0\n  %68 = phi i64 [%60, %$13] ; # In1\n; # (cdr (setq P In1))\n  %69 = inttoptr i64 %68 to i64*\n  %70 = getelementptr i64, i64* %69, i32 1\n  %71 = load i64, i64* %70\n  br label %$17\n$16:\n  %72 = phi i64 [%54, %$13] ; # Exe\n  %73 = phi i64 [%55, %$13] ; # X\n  %74 = phi i64 [%56, %$13] ; # Y\n  %75 = phi i64 [%57, %$13] ; # Out0\n  %76 = phi i64 [%58, %$13] ; # Out1\n  %77 = phi i64 [%59, %$13] ; # In0\n  %78 = phi i64 [%60, %$13] ; # In1\n; # (cdr (setq P In0))\n  %79 = inttoptr i64 %77 to i64*\n  %80 = getelementptr i64, i64* %79, i32 1\n  %81 = load i64, i64* %80\n  br label %$17\n$17:\n  %82 = phi i64 [%62, %$15], [%72, %$16] ; # Exe\n  %83 = phi i64 [%63, %$15], [%73, %$16] ; # X\n  %84 = phi i64 [%64, %$15], [%74, %$16] ; # Y\n  %85 = phi i64 [%65, %$15], [%75, %$16] ; # Out0\n  %86 = phi i64 [%66, %$15], [%76, %$16] ; # Out1\n  %87 = phi i64 [%67, %$15], [%81, %$16] ; # In0\n  %88 = phi i64 [%71, %$15], [%78, %$16] ; # In1\n  %89 = phi i64 [%68, %$15], [%77, %$16] ; # P\n  %90 = phi i64 [%71, %$15], [%81, %$16] ; # ->\n; # (let (Tail0 (ofs P 1) Tail1 0 Last (car P)) (setq Out0 P Out1 $Ni...\n; # (ofs P 1)\n  %91 = add i64 %89, 8\n; # (car P)\n  %92 = inttoptr i64 %89 to i64*\n  %93 = load i64, i64* %92\n; # (set 2 P $Nil)\n  %94 = inttoptr i64 %89 to i64*\n  %95 = getelementptr i64, i64* %94, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %95\n; # (while (or (pair In0) (pair In1)) (cond ((atom In1) (setq In0 (cd...\n  br label %$18\n$18:\n  %96 = phi i64 [%82, %$17], [%462, %$46] ; # Exe\n  %97 = phi i64 [%83, %$17], [%463, %$46] ; # X\n  %98 = phi i64 [%84, %$17], [%464, %$46] ; # Y\n  %99 = phi i64 [%89, %$17], [%465, %$46] ; # Out0\n  %100 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$17], [%466, %$46] ; # Out1\n  %101 = phi i64 [%87, %$17], [%467, %$46] ; # In0\n  %102 = phi i64 [%88, %$17], [%468, %$46] ; # In1\n  %103 = phi i64 [%89, %$17], [%469, %$46] ; # P\n  %104 = phi i64 [%91, %$17], [%474, %$46] ; # Tail0\n  %105 = phi i64 [0, %$17], [%471, %$46] ; # Tail1\n  %106 = phi i64 [%93, %$17], [%478, %$46] ; # Last\n; # (or (pair In0) (pair In1))\n; # (pair In0)\n  %107 = and i64 %101, 15\n  %108 = icmp eq i64 %107, 0\n  br i1 %108, label %$19, label %$20\n$20:\n  %109 = phi i64 [%96, %$18] ; # Exe\n  %110 = phi i64 [%97, %$18] ; # X\n  %111 = phi i64 [%98, %$18] ; # Y\n  %112 = phi i64 [%99, %$18] ; # Out0\n  %113 = phi i64 [%100, %$18] ; # Out1\n  %114 = phi i64 [%101, %$18] ; # In0\n  %115 = phi i64 [%102, %$18] ; # In1\n  %116 = phi i64 [%103, %$18] ; # P\n  %117 = phi i64 [%104, %$18] ; # Tail0\n  %118 = phi i64 [%105, %$18] ; # Tail1\n  %119 = phi i64 [%106, %$18] ; # Last\n; # (pair In1)\n  %120 = and i64 %115, 15\n  %121 = icmp eq i64 %120, 0\n  br label %$19\n$19:\n  %122 = phi i64 [%96, %$18], [%109, %$20] ; # Exe\n  %123 = phi i64 [%97, %$18], [%110, %$20] ; # X\n  %124 = phi i64 [%98, %$18], [%111, %$20] ; # Y\n  %125 = phi i64 [%99, %$18], [%112, %$20] ; # Out0\n  %126 = phi i64 [%100, %$18], [%113, %$20] ; # Out1\n  %127 = phi i64 [%101, %$18], [%114, %$20] ; # In0\n  %128 = phi i64 [%102, %$18], [%115, %$20] ; # In1\n  %129 = phi i64 [%103, %$18], [%116, %$20] ; # P\n  %130 = phi i64 [%104, %$18], [%117, %$20] ; # Tail0\n  %131 = phi i64 [%105, %$18], [%118, %$20] ; # Tail1\n  %132 = phi i64 [%106, %$18], [%119, %$20] ; # Last\n  %133 = phi i1 [1, %$18], [%121, %$20] ; # ->\n  br i1 %133, label %$21, label %$22\n$21:\n  %134 = phi i64 [%122, %$19] ; # Exe\n  %135 = phi i64 [%123, %$19] ; # X\n  %136 = phi i64 [%124, %$19] ; # Y\n  %137 = phi i64 [%125, %$19] ; # Out0\n  %138 = phi i64 [%126, %$19] ; # Out1\n  %139 = phi i64 [%127, %$19] ; # In0\n  %140 = phi i64 [%128, %$19] ; # In1\n  %141 = phi i64 [%129, %$19] ; # P\n  %142 = phi i64 [%130, %$19] ; # Tail0\n  %143 = phi i64 [%131, %$19] ; # Tail1\n  %144 = phi i64 [%132, %$19] ; # Last\n; # (cond ((atom In1) (setq In0 (cdr (setq P In0))) (when (lt0 (compa...\n; # (atom In1)\n  %145 = and i64 %140, 15\n  %146 = icmp ne i64 %145, 0\n  br i1 %146, label %$25, label %$24\n$25:\n  %147 = phi i64 [%134, %$21] ; # Exe\n  %148 = phi i64 [%135, %$21] ; # X\n  %149 = phi i64 [%136, %$21] ; # Y\n  %150 = phi i64 [%137, %$21] ; # Out0\n  %151 = phi i64 [%138, %$21] ; # Out1\n  %152 = phi i64 [%139, %$21] ; # In0\n  %153 = phi i64 [%140, %$21] ; # In1\n  %154 = phi i64 [%141, %$21] ; # P\n  %155 = phi i64 [%142, %$21] ; # Tail0\n  %156 = phi i64 [%143, %$21] ; # Tail1\n  %157 = phi i64 [%144, %$21] ; # Last\n; # (cdr (setq P In0))\n  %158 = inttoptr i64 %152 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n; # (when (lt0 (compare (car P) Last)) (xchg 'Tail0 'Tail1))\n; # (car P)\n  %161 = inttoptr i64 %152 to i64*\n  %162 = load i64, i64* %161\n; # (compare (car P) Last)\n  %163 = call i64 @compare(i64 %162, i64 %157)\n; # (lt0 (compare (car P) Last))\n  %164 = icmp slt i64 %163, 0\n  br i1 %164, label %$26, label %$27\n$26:\n  %165 = phi i64 [%147, %$25] ; # Exe\n  %166 = phi i64 [%148, %$25] ; # X\n  %167 = phi i64 [%149, %$25] ; # Y\n  %168 = phi i64 [%150, %$25] ; # Out0\n  %169 = phi i64 [%151, %$25] ; # Out1\n  %170 = phi i64 [%160, %$25] ; # In0\n  %171 = phi i64 [%153, %$25] ; # In1\n  %172 = phi i64 [%152, %$25] ; # P\n  %173 = phi i64 [%155, %$25] ; # Tail0\n  %174 = phi i64 [%156, %$25] ; # Tail1\n  %175 = phi i64 [%157, %$25] ; # Last\n; # (xchg 'Tail0 'Tail1)\n  br label %$27\n$27:\n  %176 = phi i64 [%147, %$25], [%165, %$26] ; # Exe\n  %177 = phi i64 [%148, %$25], [%166, %$26] ; # X\n  %178 = phi i64 [%149, %$25], [%167, %$26] ; # Y\n  %179 = phi i64 [%150, %$25], [%168, %$26] ; # Out0\n  %180 = phi i64 [%151, %$25], [%169, %$26] ; # Out1\n  %181 = phi i64 [%160, %$25], [%170, %$26] ; # In0\n  %182 = phi i64 [%153, %$25], [%171, %$26] ; # In1\n  %183 = phi i64 [%152, %$25], [%172, %$26] ; # P\n  %184 = phi i64 [%155, %$25], [%174, %$26] ; # Tail0\n  %185 = phi i64 [%156, %$25], [%173, %$26] ; # Tail1\n  %186 = phi i64 [%157, %$25], [%175, %$26] ; # Last\n  br label %$23\n$24:\n  %187 = phi i64 [%134, %$21] ; # Exe\n  %188 = phi i64 [%135, %$21] ; # X\n  %189 = phi i64 [%136, %$21] ; # Y\n  %190 = phi i64 [%137, %$21] ; # Out0\n  %191 = phi i64 [%138, %$21] ; # Out1\n  %192 = phi i64 [%139, %$21] ; # In0\n  %193 = phi i64 [%140, %$21] ; # In1\n  %194 = phi i64 [%141, %$21] ; # P\n  %195 = phi i64 [%142, %$21] ; # Tail0\n  %196 = phi i64 [%143, %$21] ; # Tail1\n  %197 = phi i64 [%144, %$21] ; # Last\n; # (atom In0)\n  %198 = and i64 %192, 15\n  %199 = icmp ne i64 %198, 0\n  br i1 %199, label %$29, label %$28\n$29:\n  %200 = phi i64 [%187, %$24] ; # Exe\n  %201 = phi i64 [%188, %$24] ; # X\n  %202 = phi i64 [%189, %$24] ; # Y\n  %203 = phi i64 [%190, %$24] ; # Out0\n  %204 = phi i64 [%191, %$24] ; # Out1\n  %205 = phi i64 [%192, %$24] ; # In0\n  %206 = phi i64 [%193, %$24] ; # In1\n  %207 = phi i64 [%194, %$24] ; # P\n  %208 = phi i64 [%195, %$24] ; # Tail0\n  %209 = phi i64 [%196, %$24] ; # Tail1\n  %210 = phi i64 [%197, %$24] ; # Last\n; # (cdr (setq P In1))\n  %211 = inttoptr i64 %206 to i64*\n  %212 = getelementptr i64, i64* %211, i32 1\n  %213 = load i64, i64* %212\n; # (when (lt0 (compare (car P) Last)) (xchg 'Tail0 'Tail1))\n; # (car P)\n  %214 = inttoptr i64 %206 to i64*\n  %215 = load i64, i64* %214\n; # (compare (car P) Last)\n  %216 = call i64 @compare(i64 %215, i64 %210)\n; # (lt0 (compare (car P) Last))\n  %217 = icmp slt i64 %216, 0\n  br i1 %217, label %$30, label %$31\n$30:\n  %218 = phi i64 [%200, %$29] ; # Exe\n  %219 = phi i64 [%201, %$29] ; # X\n  %220 = phi i64 [%202, %$29] ; # Y\n  %221 = phi i64 [%203, %$29] ; # Out0\n  %222 = phi i64 [%204, %$29] ; # Out1\n  %223 = phi i64 [%205, %$29] ; # In0\n  %224 = phi i64 [%213, %$29] ; # In1\n  %225 = phi i64 [%206, %$29] ; # P\n  %226 = phi i64 [%208, %$29] ; # Tail0\n  %227 = phi i64 [%209, %$29] ; # Tail1\n  %228 = phi i64 [%210, %$29] ; # Last\n; # (xchg 'Tail0 'Tail1)\n  br label %$31\n$31:\n  %229 = phi i64 [%200, %$29], [%218, %$30] ; # Exe\n  %230 = phi i64 [%201, %$29], [%219, %$30] ; # X\n  %231 = phi i64 [%202, %$29], [%220, %$30] ; # Y\n  %232 = phi i64 [%203, %$29], [%221, %$30] ; # Out0\n  %233 = phi i64 [%204, %$29], [%222, %$30] ; # Out1\n  %234 = phi i64 [%205, %$29], [%223, %$30] ; # In0\n  %235 = phi i64 [%213, %$29], [%224, %$30] ; # In1\n  %236 = phi i64 [%206, %$29], [%225, %$30] ; # P\n  %237 = phi i64 [%208, %$29], [%227, %$30] ; # Tail0\n  %238 = phi i64 [%209, %$29], [%226, %$30] ; # Tail1\n  %239 = phi i64 [%210, %$29], [%228, %$30] ; # Last\n  br label %$23\n$28:\n  %240 = phi i64 [%187, %$24] ; # Exe\n  %241 = phi i64 [%188, %$24] ; # X\n  %242 = phi i64 [%189, %$24] ; # Y\n  %243 = phi i64 [%190, %$24] ; # Out0\n  %244 = phi i64 [%191, %$24] ; # Out1\n  %245 = phi i64 [%192, %$24] ; # In0\n  %246 = phi i64 [%193, %$24] ; # In1\n  %247 = phi i64 [%194, %$24] ; # P\n  %248 = phi i64 [%195, %$24] ; # Tail0\n  %249 = phi i64 [%196, %$24] ; # Tail1\n  %250 = phi i64 [%197, %$24] ; # Last\n; # (car In0)\n  %251 = inttoptr i64 %245 to i64*\n  %252 = load i64, i64* %251\n; # (compare (car In0) Last)\n  %253 = call i64 @compare(i64 %252, i64 %250)\n; # (lt0 (compare (car In0) Last))\n  %254 = icmp slt i64 %253, 0\n  br i1 %254, label %$33, label %$32\n$33:\n  %255 = phi i64 [%240, %$28] ; # Exe\n  %256 = phi i64 [%241, %$28] ; # X\n  %257 = phi i64 [%242, %$28] ; # Y\n  %258 = phi i64 [%243, %$28] ; # Out0\n  %259 = phi i64 [%244, %$28] ; # Out1\n  %260 = phi i64 [%245, %$28] ; # In0\n  %261 = phi i64 [%246, %$28] ; # In1\n  %262 = phi i64 [%247, %$28] ; # P\n  %263 = phi i64 [%248, %$28] ; # Tail0\n  %264 = phi i64 [%249, %$28] ; # Tail1\n  %265 = phi i64 [%250, %$28] ; # Last\n; # (if (ge0 (compare (car In1) Last)) (setq In1 (cdr (setq P In1))) ...\n; # (car In1)\n  %266 = inttoptr i64 %261 to i64*\n  %267 = load i64, i64* %266\n; # (compare (car In1) Last)\n  %268 = call i64 @compare(i64 %267, i64 %265)\n; # (ge0 (compare (car In1) Last))\n  %269 = icmp sge i64 %268, 0\n  br i1 %269, label %$34, label %$35\n$34:\n  %270 = phi i64 [%255, %$33] ; # Exe\n  %271 = phi i64 [%256, %$33] ; # X\n  %272 = phi i64 [%257, %$33] ; # Y\n  %273 = phi i64 [%258, %$33] ; # Out0\n  %274 = phi i64 [%259, %$33] ; # Out1\n  %275 = phi i64 [%260, %$33] ; # In0\n  %276 = phi i64 [%261, %$33] ; # In1\n  %277 = phi i64 [%262, %$33] ; # P\n  %278 = phi i64 [%263, %$33] ; # Tail0\n  %279 = phi i64 [%264, %$33] ; # Tail1\n  %280 = phi i64 [%265, %$33] ; # Last\n; # (cdr (setq P In1))\n  %281 = inttoptr i64 %276 to i64*\n  %282 = getelementptr i64, i64* %281, i32 1\n  %283 = load i64, i64* %282\n  br label %$36\n$35:\n  %284 = phi i64 [%255, %$33] ; # Exe\n  %285 = phi i64 [%256, %$33] ; # X\n  %286 = phi i64 [%257, %$33] ; # Y\n  %287 = phi i64 [%258, %$33] ; # Out0\n  %288 = phi i64 [%259, %$33] ; # Out1\n  %289 = phi i64 [%260, %$33] ; # In0\n  %290 = phi i64 [%261, %$33] ; # In1\n  %291 = phi i64 [%262, %$33] ; # P\n  %292 = phi i64 [%263, %$33] ; # Tail0\n  %293 = phi i64 [%264, %$33] ; # Tail1\n  %294 = phi i64 [%265, %$33] ; # Last\n; # (if (lt0 (compare (car In0) (car In1))) (setq In0 (cdr (setq P In...\n; # (car In0)\n  %295 = inttoptr i64 %289 to i64*\n  %296 = load i64, i64* %295\n; # (car In1)\n  %297 = inttoptr i64 %290 to i64*\n  %298 = load i64, i64* %297\n; # (compare (car In0) (car In1))\n  %299 = call i64 @compare(i64 %296, i64 %298)\n; # (lt0 (compare (car In0) (car In1)))\n  %300 = icmp slt i64 %299, 0\n  br i1 %300, label %$37, label %$38\n$37:\n  %301 = phi i64 [%284, %$35] ; # Exe\n  %302 = phi i64 [%285, %$35] ; # X\n  %303 = phi i64 [%286, %$35] ; # Y\n  %304 = phi i64 [%287, %$35] ; # Out0\n  %305 = phi i64 [%288, %$35] ; # Out1\n  %306 = phi i64 [%289, %$35] ; # In0\n  %307 = phi i64 [%290, %$35] ; # In1\n  %308 = phi i64 [%291, %$35] ; # P\n  %309 = phi i64 [%292, %$35] ; # Tail0\n  %310 = phi i64 [%293, %$35] ; # Tail1\n  %311 = phi i64 [%294, %$35] ; # Last\n; # (cdr (setq P In0))\n  %312 = inttoptr i64 %306 to i64*\n  %313 = getelementptr i64, i64* %312, i32 1\n  %314 = load i64, i64* %313\n  br label %$39\n$38:\n  %315 = phi i64 [%284, %$35] ; # Exe\n  %316 = phi i64 [%285, %$35] ; # X\n  %317 = phi i64 [%286, %$35] ; # Y\n  %318 = phi i64 [%287, %$35] ; # Out0\n  %319 = phi i64 [%288, %$35] ; # Out1\n  %320 = phi i64 [%289, %$35] ; # In0\n  %321 = phi i64 [%290, %$35] ; # In1\n  %322 = phi i64 [%291, %$35] ; # P\n  %323 = phi i64 [%292, %$35] ; # Tail0\n  %324 = phi i64 [%293, %$35] ; # Tail1\n  %325 = phi i64 [%294, %$35] ; # Last\n; # (cdr (setq P In1))\n  %326 = inttoptr i64 %321 to i64*\n  %327 = getelementptr i64, i64* %326, i32 1\n  %328 = load i64, i64* %327\n  br label %$39\n$39:\n  %329 = phi i64 [%301, %$37], [%315, %$38] ; # Exe\n  %330 = phi i64 [%302, %$37], [%316, %$38] ; # X\n  %331 = phi i64 [%303, %$37], [%317, %$38] ; # Y\n  %332 = phi i64 [%304, %$37], [%318, %$38] ; # Out0\n  %333 = phi i64 [%305, %$37], [%319, %$38] ; # Out1\n  %334 = phi i64 [%314, %$37], [%320, %$38] ; # In0\n  %335 = phi i64 [%307, %$37], [%328, %$38] ; # In1\n  %336 = phi i64 [%306, %$37], [%321, %$38] ; # P\n  %337 = phi i64 [%309, %$37], [%323, %$38] ; # Tail0\n  %338 = phi i64 [%310, %$37], [%324, %$38] ; # Tail1\n  %339 = phi i64 [%311, %$37], [%325, %$38] ; # Last\n  %340 = phi i64 [%314, %$37], [%328, %$38] ; # ->\n; # (xchg 'Tail0 'Tail1)\n  br label %$36\n$36:\n  %341 = phi i64 [%270, %$34], [%329, %$39] ; # Exe\n  %342 = phi i64 [%271, %$34], [%330, %$39] ; # X\n  %343 = phi i64 [%272, %$34], [%331, %$39] ; # Y\n  %344 = phi i64 [%273, %$34], [%332, %$39] ; # Out0\n  %345 = phi i64 [%274, %$34], [%333, %$39] ; # Out1\n  %346 = phi i64 [%275, %$34], [%334, %$39] ; # In0\n  %347 = phi i64 [%283, %$34], [%335, %$39] ; # In1\n  %348 = phi i64 [%276, %$34], [%336, %$39] ; # P\n  %349 = phi i64 [%278, %$34], [%338, %$39] ; # Tail0\n  %350 = phi i64 [%279, %$34], [%337, %$39] ; # Tail1\n  %351 = phi i64 [%280, %$34], [%339, %$39] ; # Last\n  %352 = phi i64 [%283, %$34], [%337, %$39] ; # ->\n  br label %$23\n$32:\n  %353 = phi i64 [%240, %$28] ; # Exe\n  %354 = phi i64 [%241, %$28] ; # X\n  %355 = phi i64 [%242, %$28] ; # Y\n  %356 = phi i64 [%243, %$28] ; # Out0\n  %357 = phi i64 [%244, %$28] ; # Out1\n  %358 = phi i64 [%245, %$28] ; # In0\n  %359 = phi i64 [%246, %$28] ; # In1\n  %360 = phi i64 [%247, %$28] ; # P\n  %361 = phi i64 [%248, %$28] ; # Tail0\n  %362 = phi i64 [%249, %$28] ; # Tail1\n  %363 = phi i64 [%250, %$28] ; # Last\n; # (car In1)\n  %364 = inttoptr i64 %359 to i64*\n  %365 = load i64, i64* %364\n; # (compare (car In1) Last)\n  %366 = call i64 @compare(i64 %365, i64 %363)\n; # (lt0 (compare (car In1) Last))\n  %367 = icmp slt i64 %366, 0\n  br i1 %367, label %$41, label %$40\n$41:\n  %368 = phi i64 [%353, %$32] ; # Exe\n  %369 = phi i64 [%354, %$32] ; # X\n  %370 = phi i64 [%355, %$32] ; # Y\n  %371 = phi i64 [%356, %$32] ; # Out0\n  %372 = phi i64 [%357, %$32] ; # Out1\n  %373 = phi i64 [%358, %$32] ; # In0\n  %374 = phi i64 [%359, %$32] ; # In1\n  %375 = phi i64 [%360, %$32] ; # P\n  %376 = phi i64 [%361, %$32] ; # Tail0\n  %377 = phi i64 [%362, %$32] ; # Tail1\n  %378 = phi i64 [%363, %$32] ; # Last\n; # (cdr (setq P In0))\n  %379 = inttoptr i64 %373 to i64*\n  %380 = getelementptr i64, i64* %379, i32 1\n  %381 = load i64, i64* %380\n  br label %$23\n$40:\n  %382 = phi i64 [%353, %$32] ; # Exe\n  %383 = phi i64 [%354, %$32] ; # X\n  %384 = phi i64 [%355, %$32] ; # Y\n  %385 = phi i64 [%356, %$32] ; # Out0\n  %386 = phi i64 [%357, %$32] ; # Out1\n  %387 = phi i64 [%358, %$32] ; # In0\n  %388 = phi i64 [%359, %$32] ; # In1\n  %389 = phi i64 [%360, %$32] ; # P\n  %390 = phi i64 [%361, %$32] ; # Tail0\n  %391 = phi i64 [%362, %$32] ; # Tail1\n  %392 = phi i64 [%363, %$32] ; # Last\n; # (car In0)\n  %393 = inttoptr i64 %387 to i64*\n  %394 = load i64, i64* %393\n; # (car In1)\n  %395 = inttoptr i64 %388 to i64*\n  %396 = load i64, i64* %395\n; # (compare (car In0) (car In1))\n  %397 = call i64 @compare(i64 %394, i64 %396)\n; # (lt0 (compare (car In0) (car In1)))\n  %398 = icmp slt i64 %397, 0\n  br i1 %398, label %$43, label %$42\n$43:\n  %399 = phi i64 [%382, %$40] ; # Exe\n  %400 = phi i64 [%383, %$40] ; # X\n  %401 = phi i64 [%384, %$40] ; # Y\n  %402 = phi i64 [%385, %$40] ; # Out0\n  %403 = phi i64 [%386, %$40] ; # Out1\n  %404 = phi i64 [%387, %$40] ; # In0\n  %405 = phi i64 [%388, %$40] ; # In1\n  %406 = phi i64 [%389, %$40] ; # P\n  %407 = phi i64 [%390, %$40] ; # Tail0\n  %408 = phi i64 [%391, %$40] ; # Tail1\n  %409 = phi i64 [%392, %$40] ; # Last\n; # (cdr (setq P In0))\n  %410 = inttoptr i64 %404 to i64*\n  %411 = getelementptr i64, i64* %410, i32 1\n  %412 = load i64, i64* %411\n  br label %$23\n$42:\n  %413 = phi i64 [%382, %$40] ; # Exe\n  %414 = phi i64 [%383, %$40] ; # X\n  %415 = phi i64 [%384, %$40] ; # Y\n  %416 = phi i64 [%385, %$40] ; # Out0\n  %417 = phi i64 [%386, %$40] ; # Out1\n  %418 = phi i64 [%387, %$40] ; # In0\n  %419 = phi i64 [%388, %$40] ; # In1\n  %420 = phi i64 [%389, %$40] ; # P\n  %421 = phi i64 [%390, %$40] ; # Tail0\n  %422 = phi i64 [%391, %$40] ; # Tail1\n  %423 = phi i64 [%392, %$40] ; # Last\n; # (cdr (setq P In1))\n  %424 = inttoptr i64 %419 to i64*\n  %425 = getelementptr i64, i64* %424, i32 1\n  %426 = load i64, i64* %425\n  br label %$23\n$23:\n  %427 = phi i64 [%176, %$27], [%229, %$31], [%341, %$36], [%368, %$41], [%399, %$43], [%413, %$42] ; # Exe\n  %428 = phi i64 [%177, %$27], [%230, %$31], [%342, %$36], [%369, %$41], [%400, %$43], [%414, %$42] ; # X\n  %429 = phi i64 [%178, %$27], [%231, %$31], [%343, %$36], [%370, %$41], [%401, %$43], [%415, %$42] ; # Y\n  %430 = phi i64 [%179, %$27], [%232, %$31], [%344, %$36], [%371, %$41], [%402, %$43], [%416, %$42] ; # Out0\n  %431 = phi i64 [%180, %$27], [%233, %$31], [%345, %$36], [%372, %$41], [%403, %$43], [%417, %$42] ; # Out1\n  %432 = phi i64 [%181, %$27], [%234, %$31], [%346, %$36], [%381, %$41], [%412, %$43], [%418, %$42] ; # In0\n  %433 = phi i64 [%182, %$27], [%235, %$31], [%347, %$36], [%374, %$41], [%405, %$43], [%426, %$42] ; # In1\n  %434 = phi i64 [%183, %$27], [%236, %$31], [%348, %$36], [%373, %$41], [%404, %$43], [%419, %$42] ; # P\n  %435 = phi i64 [%184, %$27], [%237, %$31], [%349, %$36], [%376, %$41], [%407, %$43], [%421, %$42] ; # Tail0\n  %436 = phi i64 [%185, %$27], [%238, %$31], [%350, %$36], [%377, %$41], [%408, %$43], [%422, %$42] ; # Tail1\n  %437 = phi i64 [%186, %$27], [%239, %$31], [%351, %$36], [%378, %$41], [%409, %$43], [%423, %$42] ; # Last\n; # (if Tail0 (set Tail0 P) (setq Out1 P))\n  %438 = icmp ne i64 %435, 0\n  br i1 %438, label %$44, label %$45\n$44:\n  %439 = phi i64 [%427, %$23] ; # Exe\n  %440 = phi i64 [%428, %$23] ; # X\n  %441 = phi i64 [%429, %$23] ; # Y\n  %442 = phi i64 [%430, %$23] ; # Out0\n  %443 = phi i64 [%431, %$23] ; # Out1\n  %444 = phi i64 [%432, %$23] ; # In0\n  %445 = phi i64 [%433, %$23] ; # In1\n  %446 = phi i64 [%434, %$23] ; # P\n  %447 = phi i64 [%435, %$23] ; # Tail0\n  %448 = phi i64 [%436, %$23] ; # Tail1\n  %449 = phi i64 [%437, %$23] ; # Last\n; # (set Tail0 P)\n  %450 = inttoptr i64 %447 to i64*\n  store i64 %446, i64* %450\n  br label %$46\n$45:\n  %451 = phi i64 [%427, %$23] ; # Exe\n  %452 = phi i64 [%428, %$23] ; # X\n  %453 = phi i64 [%429, %$23] ; # Y\n  %454 = phi i64 [%430, %$23] ; # Out0\n  %455 = phi i64 [%431, %$23] ; # Out1\n  %456 = phi i64 [%432, %$23] ; # In0\n  %457 = phi i64 [%433, %$23] ; # In1\n  %458 = phi i64 [%434, %$23] ; # P\n  %459 = phi i64 [%435, %$23] ; # Tail0\n  %460 = phi i64 [%436, %$23] ; # Tail1\n  %461 = phi i64 [%437, %$23] ; # Last\n  br label %$46\n$46:\n  %462 = phi i64 [%439, %$44], [%451, %$45] ; # Exe\n  %463 = phi i64 [%440, %$44], [%452, %$45] ; # X\n  %464 = phi i64 [%441, %$44], [%453, %$45] ; # Y\n  %465 = phi i64 [%442, %$44], [%454, %$45] ; # Out0\n  %466 = phi i64 [%443, %$44], [%458, %$45] ; # Out1\n  %467 = phi i64 [%444, %$44], [%456, %$45] ; # In0\n  %468 = phi i64 [%445, %$44], [%457, %$45] ; # In1\n  %469 = phi i64 [%446, %$44], [%458, %$45] ; # P\n  %470 = phi i64 [%447, %$44], [%459, %$45] ; # Tail0\n  %471 = phi i64 [%448, %$44], [%460, %$45] ; # Tail1\n  %472 = phi i64 [%449, %$44], [%461, %$45] ; # Last\n  %473 = phi i64 [%446, %$44], [%458, %$45] ; # ->\n; # (ofs (if Tail0 (set Tail0 P) (setq Out1 P)) 1)\n  %474 = add i64 %473, 8\n; # (set 2 P $Nil)\n  %475 = inttoptr i64 %469 to i64*\n  %476 = getelementptr i64, i64* %475, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %476\n; # (car P)\n  %477 = inttoptr i64 %469 to i64*\n  %478 = load i64, i64* %477\n  br label %$18\n$22:\n  %479 = phi i64 [%122, %$19] ; # Exe\n  %480 = phi i64 [%123, %$19] ; # X\n  %481 = phi i64 [%124, %$19] ; # Y\n  %482 = phi i64 [%125, %$19] ; # Out0\n  %483 = phi i64 [%126, %$19] ; # Out1\n  %484 = phi i64 [%127, %$19] ; # In0\n  %485 = phi i64 [%128, %$19] ; # In1\n  %486 = phi i64 [%129, %$19] ; # P\n  %487 = phi i64 [%130, %$19] ; # Tail0\n  %488 = phi i64 [%131, %$19] ; # Tail1\n  %489 = phi i64 [%132, %$19] ; # Last\n; # (? (atom Out1) Out0)\n; # (atom Out1)\n  %490 = and i64 %483, 15\n  %491 = icmp ne i64 %490, 0\n  br i1 %491, label %$49, label %$47\n$49:\n  %492 = phi i64 [%479, %$22] ; # Exe\n  %493 = phi i64 [%480, %$22] ; # X\n  %494 = phi i64 [%481, %$22] ; # Y\n  %495 = phi i64 [%482, %$22] ; # Out0\n  %496 = phi i64 [%483, %$22] ; # Out1\n  br label %$48\n$47:\n  %497 = phi i64 [%479, %$22] ; # Exe\n  %498 = phi i64 [%480, %$22] ; # X\n  %499 = phi i64 [%481, %$22] ; # Y\n  %500 = phi i64 [%482, %$22] ; # Out0\n  %501 = phi i64 [%483, %$22] ; # Out1\n  br label %$12\n$48:\n  %502 = phi i64 [%492, %$49] ; # Exe\n  %503 = phi i64 [%493, %$49] ; # X\n  %504 = phi i64 [%494, %$49] ; # Y\n  %505 = phi i64 [%495, %$49] ; # Out0\n  %506 = phi i64 [%496, %$49] ; # Out1\n  %507 = phi i64 [%495, %$49] ; # ->\n  br label %$7\n$10:\n  %508 = phi i64 [%26, %$8] ; # Exe\n  %509 = phi i64 [%27, %$8] ; # X\n  %510 = phi i64 [%28, %$8] ; # Y\n; # (let (Out0 (link (push Y NIL) T) Out1 (link (push $Nil NIL)) In0 ...\n; # (push Y NIL)\n  %511 = alloca i64, i64 2, align 16\n  %512 = ptrtoint i64* %511 to i64\n  %513 = inttoptr i64 %512 to i64*\n  store i64 %510, i64* %513\n; # (link (push Y NIL) T)\n  %514 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %515 = load i64, i64* %514\n  %516 = inttoptr i64 %512 to i64*\n  %517 = getelementptr i64, i64* %516, i32 1\n  store i64 %515, i64* %517\n  %518 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %512, i64* %518\n; # (push $Nil NIL)\n  %519 = alloca i64, i64 2, align 16\n  %520 = ptrtoint i64* %519 to i64\n  %521 = inttoptr i64 %520 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %521\n; # (link (push $Nil NIL))\n  %522 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %523 = load i64, i64* %522\n  %524 = inttoptr i64 %520 to i64*\n  %525 = getelementptr i64, i64* %524, i32 1\n  store i64 %523, i64* %525\n  %526 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %520, i64* %526\n; # (push -ZERO NIL)\n  %527 = alloca i64, i64 2, align 16\n  %528 = ptrtoint i64* %527 to i64\n  %529 = inttoptr i64 %528 to i64*\n  store i64 10, i64* %529\n; # (link (push -ZERO NIL))\n  %530 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %531 = load i64, i64* %530\n  %532 = inttoptr i64 %528 to i64*\n  %533 = getelementptr i64, i64* %532, i32 1\n  store i64 %531, i64* %533\n  %534 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %528, i64* %534\n; # (push -ZERO NIL)\n  %535 = alloca i64, i64 2, align 16\n  %536 = ptrtoint i64* %535 to i64\n  %537 = inttoptr i64 %536 to i64*\n  store i64 10, i64* %537\n; # (link (push -ZERO NIL))\n  %538 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %539 = load i64, i64* %538\n  %540 = inttoptr i64 %536 to i64*\n  %541 = getelementptr i64, i64* %540, i32 1\n  store i64 %539, i64* %541\n  %542 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %536, i64* %542\n; # (push -ZERO NIL)\n  %543 = alloca i64, i64 2, align 16\n  %544 = ptrtoint i64* %543 to i64\n  %545 = inttoptr i64 %544 to i64*\n  store i64 10, i64* %545\n; # (link (push -ZERO NIL))\n  %546 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %547 = load i64, i64* %546\n  %548 = inttoptr i64 %544 to i64*\n  %549 = getelementptr i64, i64* %548, i32 1\n  store i64 %547, i64* %549\n  %550 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %544, i64* %550\n; # (push NIL $Nil ZERO NIL NIL)\n  %551 = alloca i64, i64 5, align 16\n  %552 = ptrtoint i64* %551 to i64\n  %553 = add i64 %552, 8\n  %554 = inttoptr i64 %553 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %554\n  %555 = add i64 %552, 16\n  %556 = inttoptr i64 %555 to i64*\n  store i64 2, i64* %556\n; # (push NIL B ZERO NIL NIL)\n  %557 = alloca i64, i64 5, align 16\n  %558 = ptrtoint i64* %557 to i64\n  %559 = add i64 %558, 8\n  %560 = inttoptr i64 %559 to i64*\n  store i64 %552, i64* %560\n  %561 = add i64 %558, 16\n  %562 = inttoptr i64 %561 to i64*\n  store i64 2, i64* %562\n; # (car X)\n  %563 = inttoptr i64 %509 to i64*\n  %564 = load i64, i64* %563\n; # (eval (car X))\n  %565 = and i64 %564, 6\n  %566 = icmp ne i64 %565, 0\n  br i1 %566, label %$52, label %$51\n$52:\n  %567 = phi i64 [%564, %$10] ; # X\n  br label %$50\n$51:\n  %568 = phi i64 [%564, %$10] ; # X\n  %569 = and i64 %568, 8\n  %570 = icmp ne i64 %569, 0\n  br i1 %570, label %$54, label %$53\n$54:\n  %571 = phi i64 [%568, %$51] ; # X\n  %572 = inttoptr i64 %571 to i64*\n  %573 = load i64, i64* %572\n  br label %$50\n$53:\n  %574 = phi i64 [%568, %$51] ; # X\n  %575 = call i64 @evList(i64 %574)\n  br label %$50\n$50:\n  %576 = phi i64 [%567, %$52], [%571, %$54], [%574, %$53] ; # X\n  %577 = phi i64 [%567, %$52], [%573, %$54], [%575, %$53] ; # ->\n; # (push NIL A ZERO (eval (car X)) NIL)\n  %578 = alloca i64, i64 5, align 16\n  %579 = ptrtoint i64* %578 to i64\n  %580 = add i64 %579, 8\n  %581 = inttoptr i64 %580 to i64*\n  store i64 %558, i64* %581\n  %582 = add i64 %579, 16\n  %583 = inttoptr i64 %582 to i64*\n  store i64 2, i64* %583\n  %584 = add i64 %579, 24\n  %585 = inttoptr i64 %584 to i64*\n  store i64 %577, i64* %585\n; # (set B (link (ofs B 3)) A (link (ofs A 3)) E (link (ofs E 3)))\n; # (ofs B 3)\n  %586 = add i64 %552, 24\n; # (link (ofs B 3))\n  %587 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %588 = load i64, i64* %587\n  %589 = inttoptr i64 %586 to i64*\n  %590 = getelementptr i64, i64* %589, i32 1\n  store i64 %588, i64* %590\n  %591 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %586, i64* %591\n  %592 = inttoptr i64 %552 to i64*\n  store i64 %586, i64* %592\n; # (ofs A 3)\n  %593 = add i64 %558, 24\n; # (link (ofs A 3))\n  %594 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %595 = load i64, i64* %594\n  %596 = inttoptr i64 %593 to i64*\n  %597 = getelementptr i64, i64* %596, i32 1\n  store i64 %595, i64* %597\n  %598 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %593, i64* %598\n  %599 = inttoptr i64 %558 to i64*\n  store i64 %593, i64* %599\n; # (ofs E 3)\n  %600 = add i64 %579, 24\n; # (link (ofs E 3))\n  %601 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %602 = load i64, i64* %601\n  %603 = inttoptr i64 %600 to i64*\n  %604 = getelementptr i64, i64* %603, i32 1\n  store i64 %602, i64* %604\n  %605 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %600, i64* %605\n  %606 = inttoptr i64 %579 to i64*\n  store i64 %600, i64* %606\n; # (loop (set In0 (val Out0) In1 (val Out1)) (if (and (pair (val In1...\n  br label %$55\n$55:\n  %607 = phi i64 [%508, %$50], [%1385, %$114] ; # Exe\n  %608 = phi i64 [%509, %$50], [%1386, %$114] ; # X\n  %609 = phi i64 [%510, %$50], [%1387, %$114] ; # Y\n  %610 = phi i64 [%512, %$50], [%1388, %$114] ; # Out0\n  %611 = phi i64 [%520, %$50], [%1389, %$114] ; # Out1\n  %612 = phi i64 [%528, %$50], [%1390, %$114] ; # In0\n  %613 = phi i64 [%536, %$50], [%1391, %$114] ; # In1\n  %614 = phi i64 [%544, %$50], [%1392, %$114] ; # P\n  %615 = phi i64 [%552, %$50], [%1393, %$114] ; # B\n  %616 = phi i64 [%558, %$50], [%1394, %$114] ; # A\n  %617 = phi i64 [%579, %$50], [%1395, %$114] ; # E\n; # (set In0 (val Out0) In1 (val Out1))\n; # (val Out0)\n  %618 = inttoptr i64 %610 to i64*\n  %619 = load i64, i64* %618\n  %620 = inttoptr i64 %612 to i64*\n  store i64 %619, i64* %620\n; # (val Out1)\n  %621 = inttoptr i64 %611 to i64*\n  %622 = load i64, i64* %621\n  %623 = inttoptr i64 %613 to i64*\n  store i64 %622, i64* %623\n; # (if (and (pair (val In1)) (ge0 (cmpSort (caar In0) (caar In1)))) ...\n; # (and (pair (val In1)) (ge0 (cmpSort (caar In0) (caar In1))))\n; # (val In1)\n  %624 = inttoptr i64 %613 to i64*\n  %625 = load i64, i64* %624\n; # (pair (val In1))\n  %626 = and i64 %625, 15\n  %627 = icmp eq i64 %626, 0\n  br i1 %627, label %$57, label %$56\n$57:\n  %628 = phi i64 [%607, %$55] ; # Exe\n  %629 = phi i64 [%608, %$55] ; # X\n  %630 = phi i64 [%609, %$55] ; # Y\n  %631 = phi i64 [%610, %$55] ; # Out0\n  %632 = phi i64 [%611, %$55] ; # Out1\n  %633 = phi i64 [%612, %$55] ; # In0\n  %634 = phi i64 [%613, %$55] ; # In1\n  %635 = phi i64 [%614, %$55] ; # P\n  %636 = phi i64 [%615, %$55] ; # B\n  %637 = phi i64 [%616, %$55] ; # A\n  %638 = phi i64 [%617, %$55] ; # E\n; # (caar In0)\n  %639 = inttoptr i64 %633 to i64*\n  %640 = load i64, i64* %639\n  %641 = inttoptr i64 %640 to i64*\n  %642 = load i64, i64* %641\n; # (caar In1)\n  %643 = inttoptr i64 %634 to i64*\n  %644 = load i64, i64* %643\n  %645 = inttoptr i64 %644 to i64*\n  %646 = load i64, i64* %645\n; # (cmpSort (caar In0) (caar In1))\n  %647 = inttoptr i64 %637 to i64*\n  %648 = getelementptr i64, i64* %647, i32 3\n  store i64 %642, i64* %648\n  %649 = inttoptr i64 %636 to i64*\n  %650 = getelementptr i64, i64* %649, i32 3\n  store i64 %646, i64* %650\n  %651 = call i64 @evList(i64 %638)\n  %652 = icmp eq i64 %651, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %652, label %$58, label %$59\n$58:\n  %653 = phi i64 [%646, %$57] ; # Y\n  %654 = phi i64 [%642, %$57] ; # X\n  br label %$60\n$59:\n  %655 = phi i64 [%646, %$57] ; # Y\n  %656 = phi i64 [%642, %$57] ; # X\n  br label %$60\n$60:\n  %657 = phi i64 [%653, %$58], [%655, %$59] ; # Y\n  %658 = phi i64 [%654, %$58], [%656, %$59] ; # X\n  %659 = phi i64 [0, %$58], [-1, %$59] ; # ->\n; # (ge0 (cmpSort (caar In0) (caar In1)))\n  %660 = icmp sge i64 %659, 0\n  br label %$56\n$56:\n  %661 = phi i64 [%607, %$55], [%628, %$60] ; # Exe\n  %662 = phi i64 [%608, %$55], [%629, %$60] ; # X\n  %663 = phi i64 [%609, %$55], [%630, %$60] ; # Y\n  %664 = phi i64 [%610, %$55], [%631, %$60] ; # Out0\n  %665 = phi i64 [%611, %$55], [%632, %$60] ; # Out1\n  %666 = phi i64 [%612, %$55], [%633, %$60] ; # In0\n  %667 = phi i64 [%613, %$55], [%634, %$60] ; # In1\n  %668 = phi i64 [%614, %$55], [%635, %$60] ; # P\n  %669 = phi i64 [%615, %$55], [%636, %$60] ; # B\n  %670 = phi i64 [%616, %$55], [%637, %$60] ; # A\n  %671 = phi i64 [%617, %$55], [%638, %$60] ; # E\n  %672 = phi i1 [0, %$55], [%660, %$60] ; # ->\n  br i1 %672, label %$61, label %$62\n$61:\n  %673 = phi i64 [%661, %$56] ; # Exe\n  %674 = phi i64 [%662, %$56] ; # X\n  %675 = phi i64 [%663, %$56] ; # Y\n  %676 = phi i64 [%664, %$56] ; # Out0\n  %677 = phi i64 [%665, %$56] ; # Out1\n  %678 = phi i64 [%666, %$56] ; # In0\n  %679 = phi i64 [%667, %$56] ; # In1\n  %680 = phi i64 [%668, %$56] ; # P\n  %681 = phi i64 [%669, %$56] ; # B\n  %682 = phi i64 [%670, %$56] ; # A\n  %683 = phi i64 [%671, %$56] ; # E\n; # (set In1 (cdr (set P (val In1))))\n; # (set P (val In1))\n; # (val In1)\n  %684 = inttoptr i64 %679 to i64*\n  %685 = load i64, i64* %684\n  %686 = inttoptr i64 %680 to i64*\n  store i64 %685, i64* %686\n; # (cdr (set P (val In1)))\n  %687 = inttoptr i64 %685 to i64*\n  %688 = getelementptr i64, i64* %687, i32 1\n  %689 = load i64, i64* %688\n  %690 = inttoptr i64 %679 to i64*\n  store i64 %689, i64* %690\n  br label %$63\n$62:\n  %691 = phi i64 [%661, %$56] ; # Exe\n  %692 = phi i64 [%662, %$56] ; # X\n  %693 = phi i64 [%663, %$56] ; # Y\n  %694 = phi i64 [%664, %$56] ; # Out0\n  %695 = phi i64 [%665, %$56] ; # Out1\n  %696 = phi i64 [%666, %$56] ; # In0\n  %697 = phi i64 [%667, %$56] ; # In1\n  %698 = phi i64 [%668, %$56] ; # P\n  %699 = phi i64 [%669, %$56] ; # B\n  %700 = phi i64 [%670, %$56] ; # A\n  %701 = phi i64 [%671, %$56] ; # E\n; # (set In0 (cdr (set P (val In0))))\n; # (set P (val In0))\n; # (val In0)\n  %702 = inttoptr i64 %696 to i64*\n  %703 = load i64, i64* %702\n  %704 = inttoptr i64 %698 to i64*\n  store i64 %703, i64* %704\n; # (cdr (set P (val In0)))\n  %705 = inttoptr i64 %703 to i64*\n  %706 = getelementptr i64, i64* %705, i32 1\n  %707 = load i64, i64* %706\n  %708 = inttoptr i64 %696 to i64*\n  store i64 %707, i64* %708\n  br label %$63\n$63:\n  %709 = phi i64 [%673, %$61], [%691, %$62] ; # Exe\n  %710 = phi i64 [%674, %$61], [%692, %$62] ; # X\n  %711 = phi i64 [%675, %$61], [%693, %$62] ; # Y\n  %712 = phi i64 [%676, %$61], [%694, %$62] ; # Out0\n  %713 = phi i64 [%677, %$61], [%695, %$62] ; # Out1\n  %714 = phi i64 [%678, %$61], [%696, %$62] ; # In0\n  %715 = phi i64 [%679, %$61], [%697, %$62] ; # In1\n  %716 = phi i64 [%680, %$61], [%698, %$62] ; # P\n  %717 = phi i64 [%681, %$61], [%699, %$62] ; # B\n  %718 = phi i64 [%682, %$61], [%700, %$62] ; # A\n  %719 = phi i64 [%683, %$61], [%701, %$62] ; # E\n  %720 = phi i64 [%689, %$61], [%707, %$62] ; # ->\n; # (let (Tail0 (ofs (val P) 1) Tail1 0 Last (caar P)) (set Out0 (val...\n; # (val P)\n  %721 = inttoptr i64 %716 to i64*\n  %722 = load i64, i64* %721\n; # (ofs (val P) 1)\n  %723 = add i64 %722, 8\n; # (caar P)\n  %724 = inttoptr i64 %716 to i64*\n  %725 = load i64, i64* %724\n  %726 = inttoptr i64 %725 to i64*\n  %727 = load i64, i64* %726\n; # (set Out0 (val P) Out1 $Nil)\n; # (val P)\n  %728 = inttoptr i64 %716 to i64*\n  %729 = load i64, i64* %728\n  %730 = inttoptr i64 %712 to i64*\n  store i64 %729, i64* %730\n  %731 = inttoptr i64 %713 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %731\n; # (set 2 (val P) $Nil)\n; # (val P)\n  %732 = inttoptr i64 %716 to i64*\n  %733 = load i64, i64* %732\n  %734 = inttoptr i64 %733 to i64*\n  %735 = getelementptr i64, i64* %734, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %735\n; # (while (or (pair (val In0)) (pair (val In1))) (cond ((atom (val I...\n  br label %$64\n$64:\n  %736 = phi i64 [%709, %$63], [%1330, %$113] ; # Exe\n  %737 = phi i64 [%710, %$63], [%1331, %$113] ; # X\n  %738 = phi i64 [%711, %$63], [%1332, %$113] ; # Y\n  %739 = phi i64 [%712, %$63], [%1333, %$113] ; # Out0\n  %740 = phi i64 [%713, %$63], [%1334, %$113] ; # Out1\n  %741 = phi i64 [%714, %$63], [%1335, %$113] ; # In0\n  %742 = phi i64 [%715, %$63], [%1336, %$113] ; # In1\n  %743 = phi i64 [%716, %$63], [%1337, %$113] ; # P\n  %744 = phi i64 [%717, %$63], [%1338, %$113] ; # B\n  %745 = phi i64 [%718, %$63], [%1339, %$113] ; # A\n  %746 = phi i64 [%719, %$63], [%1340, %$113] ; # E\n  %747 = phi i64 [%723, %$63], [%1345, %$113] ; # Tail0\n  %748 = phi i64 [0, %$63], [%1342, %$113] ; # Tail1\n  %749 = phi i64 [%727, %$63], [%1353, %$113] ; # Last\n; # (or (pair (val In0)) (pair (val In1)))\n; # (val In0)\n  %750 = inttoptr i64 %741 to i64*\n  %751 = load i64, i64* %750\n; # (pair (val In0))\n  %752 = and i64 %751, 15\n  %753 = icmp eq i64 %752, 0\n  br i1 %753, label %$65, label %$66\n$66:\n  %754 = phi i64 [%736, %$64] ; # Exe\n  %755 = phi i64 [%737, %$64] ; # X\n  %756 = phi i64 [%738, %$64] ; # Y\n  %757 = phi i64 [%739, %$64] ; # Out0\n  %758 = phi i64 [%740, %$64] ; # Out1\n  %759 = phi i64 [%741, %$64] ; # In0\n  %760 = phi i64 [%742, %$64] ; # In1\n  %761 = phi i64 [%743, %$64] ; # P\n  %762 = phi i64 [%744, %$64] ; # B\n  %763 = phi i64 [%745, %$64] ; # A\n  %764 = phi i64 [%746, %$64] ; # E\n  %765 = phi i64 [%747, %$64] ; # Tail0\n  %766 = phi i64 [%748, %$64] ; # Tail1\n  %767 = phi i64 [%749, %$64] ; # Last\n; # (val In1)\n  %768 = inttoptr i64 %760 to i64*\n  %769 = load i64, i64* %768\n; # (pair (val In1))\n  %770 = and i64 %769, 15\n  %771 = icmp eq i64 %770, 0\n  br label %$65\n$65:\n  %772 = phi i64 [%736, %$64], [%754, %$66] ; # Exe\n  %773 = phi i64 [%737, %$64], [%755, %$66] ; # X\n  %774 = phi i64 [%738, %$64], [%756, %$66] ; # Y\n  %775 = phi i64 [%739, %$64], [%757, %$66] ; # Out0\n  %776 = phi i64 [%740, %$64], [%758, %$66] ; # Out1\n  %777 = phi i64 [%741, %$64], [%759, %$66] ; # In0\n  %778 = phi i64 [%742, %$64], [%760, %$66] ; # In1\n  %779 = phi i64 [%743, %$64], [%761, %$66] ; # P\n  %780 = phi i64 [%744, %$64], [%762, %$66] ; # B\n  %781 = phi i64 [%745, %$64], [%763, %$66] ; # A\n  %782 = phi i64 [%746, %$64], [%764, %$66] ; # E\n  %783 = phi i64 [%747, %$64], [%765, %$66] ; # Tail0\n  %784 = phi i64 [%748, %$64], [%766, %$66] ; # Tail1\n  %785 = phi i64 [%749, %$64], [%767, %$66] ; # Last\n  %786 = phi i1 [1, %$64], [%771, %$66] ; # ->\n  br i1 %786, label %$67, label %$68\n$67:\n  %787 = phi i64 [%772, %$65] ; # Exe\n  %788 = phi i64 [%773, %$65] ; # X\n  %789 = phi i64 [%774, %$65] ; # Y\n  %790 = phi i64 [%775, %$65] ; # Out0\n  %791 = phi i64 [%776, %$65] ; # Out1\n  %792 = phi i64 [%777, %$65] ; # In0\n  %793 = phi i64 [%778, %$65] ; # In1\n  %794 = phi i64 [%779, %$65] ; # P\n  %795 = phi i64 [%780, %$65] ; # B\n  %796 = phi i64 [%781, %$65] ; # A\n  %797 = phi i64 [%782, %$65] ; # E\n  %798 = phi i64 [%783, %$65] ; # Tail0\n  %799 = phi i64 [%784, %$65] ; # Tail1\n  %800 = phi i64 [%785, %$65] ; # Last\n; # (cond ((atom (val In1)) (set In0 (cdr (set P (val In0)))) (when (...\n; # (val In1)\n  %801 = inttoptr i64 %793 to i64*\n  %802 = load i64, i64* %801\n; # (atom (val In1))\n  %803 = and i64 %802, 15\n  %804 = icmp ne i64 %803, 0\n  br i1 %804, label %$71, label %$70\n$71:\n  %805 = phi i64 [%787, %$67] ; # Exe\n  %806 = phi i64 [%788, %$67] ; # X\n  %807 = phi i64 [%789, %$67] ; # Y\n  %808 = phi i64 [%790, %$67] ; # Out0\n  %809 = phi i64 [%791, %$67] ; # Out1\n  %810 = phi i64 [%792, %$67] ; # In0\n  %811 = phi i64 [%793, %$67] ; # In1\n  %812 = phi i64 [%794, %$67] ; # P\n  %813 = phi i64 [%795, %$67] ; # B\n  %814 = phi i64 [%796, %$67] ; # A\n  %815 = phi i64 [%797, %$67] ; # E\n  %816 = phi i64 [%798, %$67] ; # Tail0\n  %817 = phi i64 [%799, %$67] ; # Tail1\n  %818 = phi i64 [%800, %$67] ; # Last\n; # (set In0 (cdr (set P (val In0))))\n; # (set P (val In0))\n; # (val In0)\n  %819 = inttoptr i64 %810 to i64*\n  %820 = load i64, i64* %819\n  %821 = inttoptr i64 %812 to i64*\n  store i64 %820, i64* %821\n; # (cdr (set P (val In0)))\n  %822 = inttoptr i64 %820 to i64*\n  %823 = getelementptr i64, i64* %822, i32 1\n  %824 = load i64, i64* %823\n  %825 = inttoptr i64 %810 to i64*\n  store i64 %824, i64* %825\n; # (when (lt0 (cmpSort (caar P) Last)) (xchg 'Tail0 'Tail1))\n; # (caar P)\n  %826 = inttoptr i64 %812 to i64*\n  %827 = load i64, i64* %826\n  %828 = inttoptr i64 %827 to i64*\n  %829 = load i64, i64* %828\n; # (cmpSort (caar P) Last)\n  %830 = inttoptr i64 %814 to i64*\n  %831 = getelementptr i64, i64* %830, i32 3\n  store i64 %829, i64* %831\n  %832 = inttoptr i64 %813 to i64*\n  %833 = getelementptr i64, i64* %832, i32 3\n  store i64 %818, i64* %833\n  %834 = call i64 @evList(i64 %815)\n  %835 = icmp eq i64 %834, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %835, label %$72, label %$73\n$72:\n  %836 = phi i64 [%818, %$71] ; # Y\n  %837 = phi i64 [%829, %$71] ; # X\n  br label %$74\n$73:\n  %838 = phi i64 [%818, %$71] ; # Y\n  %839 = phi i64 [%829, %$71] ; # X\n  br label %$74\n$74:\n  %840 = phi i64 [%836, %$72], [%838, %$73] ; # Y\n  %841 = phi i64 [%837, %$72], [%839, %$73] ; # X\n  %842 = phi i64 [0, %$72], [-1, %$73] ; # ->\n; # (lt0 (cmpSort (caar P) Last))\n  %843 = icmp slt i64 %842, 0\n  br i1 %843, label %$75, label %$76\n$75:\n  %844 = phi i64 [%805, %$74] ; # Exe\n  %845 = phi i64 [%806, %$74] ; # X\n  %846 = phi i64 [%807, %$74] ; # Y\n  %847 = phi i64 [%808, %$74] ; # Out0\n  %848 = phi i64 [%809, %$74] ; # Out1\n  %849 = phi i64 [%810, %$74] ; # In0\n  %850 = phi i64 [%811, %$74] ; # In1\n  %851 = phi i64 [%812, %$74] ; # P\n  %852 = phi i64 [%813, %$74] ; # B\n  %853 = phi i64 [%814, %$74] ; # A\n  %854 = phi i64 [%815, %$74] ; # E\n  %855 = phi i64 [%816, %$74] ; # Tail0\n  %856 = phi i64 [%817, %$74] ; # Tail1\n  %857 = phi i64 [%818, %$74] ; # Last\n; # (xchg 'Tail0 'Tail1)\n  br label %$76\n$76:\n  %858 = phi i64 [%805, %$74], [%844, %$75] ; # Exe\n  %859 = phi i64 [%806, %$74], [%845, %$75] ; # X\n  %860 = phi i64 [%807, %$74], [%846, %$75] ; # Y\n  %861 = phi i64 [%808, %$74], [%847, %$75] ; # Out0\n  %862 = phi i64 [%809, %$74], [%848, %$75] ; # Out1\n  %863 = phi i64 [%810, %$74], [%849, %$75] ; # In0\n  %864 = phi i64 [%811, %$74], [%850, %$75] ; # In1\n  %865 = phi i64 [%812, %$74], [%851, %$75] ; # P\n  %866 = phi i64 [%813, %$74], [%852, %$75] ; # B\n  %867 = phi i64 [%814, %$74], [%853, %$75] ; # A\n  %868 = phi i64 [%815, %$74], [%854, %$75] ; # E\n  %869 = phi i64 [%816, %$74], [%856, %$75] ; # Tail0\n  %870 = phi i64 [%817, %$74], [%855, %$75] ; # Tail1\n  %871 = phi i64 [%818, %$74], [%857, %$75] ; # Last\n  br label %$69\n$70:\n  %872 = phi i64 [%787, %$67] ; # Exe\n  %873 = phi i64 [%788, %$67] ; # X\n  %874 = phi i64 [%789, %$67] ; # Y\n  %875 = phi i64 [%790, %$67] ; # Out0\n  %876 = phi i64 [%791, %$67] ; # Out1\n  %877 = phi i64 [%792, %$67] ; # In0\n  %878 = phi i64 [%793, %$67] ; # In1\n  %879 = phi i64 [%794, %$67] ; # P\n  %880 = phi i64 [%795, %$67] ; # B\n  %881 = phi i64 [%796, %$67] ; # A\n  %882 = phi i64 [%797, %$67] ; # E\n  %883 = phi i64 [%798, %$67] ; # Tail0\n  %884 = phi i64 [%799, %$67] ; # Tail1\n  %885 = phi i64 [%800, %$67] ; # Last\n; # (val In0)\n  %886 = inttoptr i64 %877 to i64*\n  %887 = load i64, i64* %886\n; # (atom (val In0))\n  %888 = and i64 %887, 15\n  %889 = icmp ne i64 %888, 0\n  br i1 %889, label %$78, label %$77\n$78:\n  %890 = phi i64 [%872, %$70] ; # Exe\n  %891 = phi i64 [%873, %$70] ; # X\n  %892 = phi i64 [%874, %$70] ; # Y\n  %893 = phi i64 [%875, %$70] ; # Out0\n  %894 = phi i64 [%876, %$70] ; # Out1\n  %895 = phi i64 [%877, %$70] ; # In0\n  %896 = phi i64 [%878, %$70] ; # In1\n  %897 = phi i64 [%879, %$70] ; # P\n  %898 = phi i64 [%880, %$70] ; # B\n  %899 = phi i64 [%881, %$70] ; # A\n  %900 = phi i64 [%882, %$70] ; # E\n  %901 = phi i64 [%883, %$70] ; # Tail0\n  %902 = phi i64 [%884, %$70] ; # Tail1\n  %903 = phi i64 [%885, %$70] ; # Last\n; # (set In1 (cdr (set P (val In1))))\n; # (set P (val In1))\n; # (val In1)\n  %904 = inttoptr i64 %896 to i64*\n  %905 = load i64, i64* %904\n  %906 = inttoptr i64 %897 to i64*\n  store i64 %905, i64* %906\n; # (cdr (set P (val In1)))\n  %907 = inttoptr i64 %905 to i64*\n  %908 = getelementptr i64, i64* %907, i32 1\n  %909 = load i64, i64* %908\n  %910 = inttoptr i64 %896 to i64*\n  store i64 %909, i64* %910\n; # (when (lt0 (cmpSort (caar P) Last)) (xchg 'Tail0 'Tail1))\n; # (caar P)\n  %911 = inttoptr i64 %897 to i64*\n  %912 = load i64, i64* %911\n  %913 = inttoptr i64 %912 to i64*\n  %914 = load i64, i64* %913\n; # (cmpSort (caar P) Last)\n  %915 = inttoptr i64 %899 to i64*\n  %916 = getelementptr i64, i64* %915, i32 3\n  store i64 %914, i64* %916\n  %917 = inttoptr i64 %898 to i64*\n  %918 = getelementptr i64, i64* %917, i32 3\n  store i64 %903, i64* %918\n  %919 = call i64 @evList(i64 %900)\n  %920 = icmp eq i64 %919, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %920, label %$79, label %$80\n$79:\n  %921 = phi i64 [%903, %$78] ; # Y\n  %922 = phi i64 [%914, %$78] ; # X\n  br label %$81\n$80:\n  %923 = phi i64 [%903, %$78] ; # Y\n  %924 = phi i64 [%914, %$78] ; # X\n  br label %$81\n$81:\n  %925 = phi i64 [%921, %$79], [%923, %$80] ; # Y\n  %926 = phi i64 [%922, %$79], [%924, %$80] ; # X\n  %927 = phi i64 [0, %$79], [-1, %$80] ; # ->\n; # (lt0 (cmpSort (caar P) Last))\n  %928 = icmp slt i64 %927, 0\n  br i1 %928, label %$82, label %$83\n$82:\n  %929 = phi i64 [%890, %$81] ; # Exe\n  %930 = phi i64 [%891, %$81] ; # X\n  %931 = phi i64 [%892, %$81] ; # Y\n  %932 = phi i64 [%893, %$81] ; # Out0\n  %933 = phi i64 [%894, %$81] ; # Out1\n  %934 = phi i64 [%895, %$81] ; # In0\n  %935 = phi i64 [%896, %$81] ; # In1\n  %936 = phi i64 [%897, %$81] ; # P\n  %937 = phi i64 [%898, %$81] ; # B\n  %938 = phi i64 [%899, %$81] ; # A\n  %939 = phi i64 [%900, %$81] ; # E\n  %940 = phi i64 [%901, %$81] ; # Tail0\n  %941 = phi i64 [%902, %$81] ; # Tail1\n  %942 = phi i64 [%903, %$81] ; # Last\n; # (xchg 'Tail0 'Tail1)\n  br label %$83\n$83:\n  %943 = phi i64 [%890, %$81], [%929, %$82] ; # Exe\n  %944 = phi i64 [%891, %$81], [%930, %$82] ; # X\n  %945 = phi i64 [%892, %$81], [%931, %$82] ; # Y\n  %946 = phi i64 [%893, %$81], [%932, %$82] ; # Out0\n  %947 = phi i64 [%894, %$81], [%933, %$82] ; # Out1\n  %948 = phi i64 [%895, %$81], [%934, %$82] ; # In0\n  %949 = phi i64 [%896, %$81], [%935, %$82] ; # In1\n  %950 = phi i64 [%897, %$81], [%936, %$82] ; # P\n  %951 = phi i64 [%898, %$81], [%937, %$82] ; # B\n  %952 = phi i64 [%899, %$81], [%938, %$82] ; # A\n  %953 = phi i64 [%900, %$81], [%939, %$82] ; # E\n  %954 = phi i64 [%901, %$81], [%941, %$82] ; # Tail0\n  %955 = phi i64 [%902, %$81], [%940, %$82] ; # Tail1\n  %956 = phi i64 [%903, %$81], [%942, %$82] ; # Last\n  br label %$69\n$77:\n  %957 = phi i64 [%872, %$70] ; # Exe\n  %958 = phi i64 [%873, %$70] ; # X\n  %959 = phi i64 [%874, %$70] ; # Y\n  %960 = phi i64 [%875, %$70] ; # Out0\n  %961 = phi i64 [%876, %$70] ; # Out1\n  %962 = phi i64 [%877, %$70] ; # In0\n  %963 = phi i64 [%878, %$70] ; # In1\n  %964 = phi i64 [%879, %$70] ; # P\n  %965 = phi i64 [%880, %$70] ; # B\n  %966 = phi i64 [%881, %$70] ; # A\n  %967 = phi i64 [%882, %$70] ; # E\n  %968 = phi i64 [%883, %$70] ; # Tail0\n  %969 = phi i64 [%884, %$70] ; # Tail1\n  %970 = phi i64 [%885, %$70] ; # Last\n; # (caar In0)\n  %971 = inttoptr i64 %962 to i64*\n  %972 = load i64, i64* %971\n  %973 = inttoptr i64 %972 to i64*\n  %974 = load i64, i64* %973\n; # (cmpSort (caar In0) Last)\n  %975 = inttoptr i64 %966 to i64*\n  %976 = getelementptr i64, i64* %975, i32 3\n  store i64 %974, i64* %976\n  %977 = inttoptr i64 %965 to i64*\n  %978 = getelementptr i64, i64* %977, i32 3\n  store i64 %970, i64* %978\n  %979 = call i64 @evList(i64 %967)\n  %980 = icmp eq i64 %979, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %980, label %$84, label %$85\n$84:\n  %981 = phi i64 [%970, %$77] ; # Y\n  %982 = phi i64 [%974, %$77] ; # X\n  br label %$86\n$85:\n  %983 = phi i64 [%970, %$77] ; # Y\n  %984 = phi i64 [%974, %$77] ; # X\n  br label %$86\n$86:\n  %985 = phi i64 [%981, %$84], [%983, %$85] ; # Y\n  %986 = phi i64 [%982, %$84], [%984, %$85] ; # X\n  %987 = phi i64 [0, %$84], [-1, %$85] ; # ->\n; # (lt0 (cmpSort (caar In0) Last))\n  %988 = icmp slt i64 %987, 0\n  br i1 %988, label %$88, label %$87\n$88:\n  %989 = phi i64 [%957, %$86] ; # Exe\n  %990 = phi i64 [%958, %$86] ; # X\n  %991 = phi i64 [%959, %$86] ; # Y\n  %992 = phi i64 [%960, %$86] ; # Out0\n  %993 = phi i64 [%961, %$86] ; # Out1\n  %994 = phi i64 [%962, %$86] ; # In0\n  %995 = phi i64 [%963, %$86] ; # In1\n  %996 = phi i64 [%964, %$86] ; # P\n  %997 = phi i64 [%965, %$86] ; # B\n  %998 = phi i64 [%966, %$86] ; # A\n  %999 = phi i64 [%967, %$86] ; # E\n  %1000 = phi i64 [%968, %$86] ; # Tail0\n  %1001 = phi i64 [%969, %$86] ; # Tail1\n  %1002 = phi i64 [%970, %$86] ; # Last\n; # (if (ge0 (cmpSort (caar In1) Last)) (set In1 (cdr (set P (val In1...\n; # (caar In1)\n  %1003 = inttoptr i64 %995 to i64*\n  %1004 = load i64, i64* %1003\n  %1005 = inttoptr i64 %1004 to i64*\n  %1006 = load i64, i64* %1005\n; # (cmpSort (caar In1) Last)\n  %1007 = inttoptr i64 %998 to i64*\n  %1008 = getelementptr i64, i64* %1007, i32 3\n  store i64 %1006, i64* %1008\n  %1009 = inttoptr i64 %997 to i64*\n  %1010 = getelementptr i64, i64* %1009, i32 3\n  store i64 %1002, i64* %1010\n  %1011 = call i64 @evList(i64 %999)\n  %1012 = icmp eq i64 %1011, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1012, label %$89, label %$90\n$89:\n  %1013 = phi i64 [%1002, %$88] ; # Y\n  %1014 = phi i64 [%1006, %$88] ; # X\n  br label %$91\n$90:\n  %1015 = phi i64 [%1002, %$88] ; # Y\n  %1016 = phi i64 [%1006, %$88] ; # X\n  br label %$91\n$91:\n  %1017 = phi i64 [%1013, %$89], [%1015, %$90] ; # Y\n  %1018 = phi i64 [%1014, %$89], [%1016, %$90] ; # X\n  %1019 = phi i64 [0, %$89], [-1, %$90] ; # ->\n; # (ge0 (cmpSort (caar In1) Last))\n  %1020 = icmp sge i64 %1019, 0\n  br i1 %1020, label %$92, label %$93\n$92:\n  %1021 = phi i64 [%989, %$91] ; # Exe\n  %1022 = phi i64 [%990, %$91] ; # X\n  %1023 = phi i64 [%991, %$91] ; # Y\n  %1024 = phi i64 [%992, %$91] ; # Out0\n  %1025 = phi i64 [%993, %$91] ; # Out1\n  %1026 = phi i64 [%994, %$91] ; # In0\n  %1027 = phi i64 [%995, %$91] ; # In1\n  %1028 = phi i64 [%996, %$91] ; # P\n  %1029 = phi i64 [%997, %$91] ; # B\n  %1030 = phi i64 [%998, %$91] ; # A\n  %1031 = phi i64 [%999, %$91] ; # E\n  %1032 = phi i64 [%1000, %$91] ; # Tail0\n  %1033 = phi i64 [%1001, %$91] ; # Tail1\n  %1034 = phi i64 [%1002, %$91] ; # Last\n; # (set In1 (cdr (set P (val In1))))\n; # (set P (val In1))\n; # (val In1)\n  %1035 = inttoptr i64 %1027 to i64*\n  %1036 = load i64, i64* %1035\n  %1037 = inttoptr i64 %1028 to i64*\n  store i64 %1036, i64* %1037\n; # (cdr (set P (val In1)))\n  %1038 = inttoptr i64 %1036 to i64*\n  %1039 = getelementptr i64, i64* %1038, i32 1\n  %1040 = load i64, i64* %1039\n  %1041 = inttoptr i64 %1027 to i64*\n  store i64 %1040, i64* %1041\n  br label %$94\n$93:\n  %1042 = phi i64 [%989, %$91] ; # Exe\n  %1043 = phi i64 [%990, %$91] ; # X\n  %1044 = phi i64 [%991, %$91] ; # Y\n  %1045 = phi i64 [%992, %$91] ; # Out0\n  %1046 = phi i64 [%993, %$91] ; # Out1\n  %1047 = phi i64 [%994, %$91] ; # In0\n  %1048 = phi i64 [%995, %$91] ; # In1\n  %1049 = phi i64 [%996, %$91] ; # P\n  %1050 = phi i64 [%997, %$91] ; # B\n  %1051 = phi i64 [%998, %$91] ; # A\n  %1052 = phi i64 [%999, %$91] ; # E\n  %1053 = phi i64 [%1000, %$91] ; # Tail0\n  %1054 = phi i64 [%1001, %$91] ; # Tail1\n  %1055 = phi i64 [%1002, %$91] ; # Last\n; # (if (lt0 (cmpSort (caar In0) (caar In1))) (set In0 (cdr (set P (v...\n; # (caar In0)\n  %1056 = inttoptr i64 %1047 to i64*\n  %1057 = load i64, i64* %1056\n  %1058 = inttoptr i64 %1057 to i64*\n  %1059 = load i64, i64* %1058\n; # (caar In1)\n  %1060 = inttoptr i64 %1048 to i64*\n  %1061 = load i64, i64* %1060\n  %1062 = inttoptr i64 %1061 to i64*\n  %1063 = load i64, i64* %1062\n; # (cmpSort (caar In0) (caar In1))\n  %1064 = inttoptr i64 %1051 to i64*\n  %1065 = getelementptr i64, i64* %1064, i32 3\n  store i64 %1059, i64* %1065\n  %1066 = inttoptr i64 %1050 to i64*\n  %1067 = getelementptr i64, i64* %1066, i32 3\n  store i64 %1063, i64* %1067\n  %1068 = call i64 @evList(i64 %1052)\n  %1069 = icmp eq i64 %1068, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1069, label %$95, label %$96\n$95:\n  %1070 = phi i64 [%1063, %$93] ; # Y\n  %1071 = phi i64 [%1059, %$93] ; # X\n  br label %$97\n$96:\n  %1072 = phi i64 [%1063, %$93] ; # Y\n  %1073 = phi i64 [%1059, %$93] ; # X\n  br label %$97\n$97:\n  %1074 = phi i64 [%1070, %$95], [%1072, %$96] ; # Y\n  %1075 = phi i64 [%1071, %$95], [%1073, %$96] ; # X\n  %1076 = phi i64 [0, %$95], [-1, %$96] ; # ->\n; # (lt0 (cmpSort (caar In0) (caar In1)))\n  %1077 = icmp slt i64 %1076, 0\n  br i1 %1077, label %$98, label %$99\n$98:\n  %1078 = phi i64 [%1042, %$97] ; # Exe\n  %1079 = phi i64 [%1043, %$97] ; # X\n  %1080 = phi i64 [%1044, %$97] ; # Y\n  %1081 = phi i64 [%1045, %$97] ; # Out0\n  %1082 = phi i64 [%1046, %$97] ; # Out1\n  %1083 = phi i64 [%1047, %$97] ; # In0\n  %1084 = phi i64 [%1048, %$97] ; # In1\n  %1085 = phi i64 [%1049, %$97] ; # P\n  %1086 = phi i64 [%1050, %$97] ; # B\n  %1087 = phi i64 [%1051, %$97] ; # A\n  %1088 = phi i64 [%1052, %$97] ; # E\n  %1089 = phi i64 [%1053, %$97] ; # Tail0\n  %1090 = phi i64 [%1054, %$97] ; # Tail1\n  %1091 = phi i64 [%1055, %$97] ; # Last\n; # (set In0 (cdr (set P (val In0))))\n; # (set P (val In0))\n; # (val In0)\n  %1092 = inttoptr i64 %1083 to i64*\n  %1093 = load i64, i64* %1092\n  %1094 = inttoptr i64 %1085 to i64*\n  store i64 %1093, i64* %1094\n; # (cdr (set P (val In0)))\n  %1095 = inttoptr i64 %1093 to i64*\n  %1096 = getelementptr i64, i64* %1095, i32 1\n  %1097 = load i64, i64* %1096\n  %1098 = inttoptr i64 %1083 to i64*\n  store i64 %1097, i64* %1098\n  br label %$100\n$99:\n  %1099 = phi i64 [%1042, %$97] ; # Exe\n  %1100 = phi i64 [%1043, %$97] ; # X\n  %1101 = phi i64 [%1044, %$97] ; # Y\n  %1102 = phi i64 [%1045, %$97] ; # Out0\n  %1103 = phi i64 [%1046, %$97] ; # Out1\n  %1104 = phi i64 [%1047, %$97] ; # In0\n  %1105 = phi i64 [%1048, %$97] ; # In1\n  %1106 = phi i64 [%1049, %$97] ; # P\n  %1107 = phi i64 [%1050, %$97] ; # B\n  %1108 = phi i64 [%1051, %$97] ; # A\n  %1109 = phi i64 [%1052, %$97] ; # E\n  %1110 = phi i64 [%1053, %$97] ; # Tail0\n  %1111 = phi i64 [%1054, %$97] ; # Tail1\n  %1112 = phi i64 [%1055, %$97] ; # Last\n; # (set In1 (cdr (set P (val In1))))\n; # (set P (val In1))\n; # (val In1)\n  %1113 = inttoptr i64 %1105 to i64*\n  %1114 = load i64, i64* %1113\n  %1115 = inttoptr i64 %1106 to i64*\n  store i64 %1114, i64* %1115\n; # (cdr (set P (val In1)))\n  %1116 = inttoptr i64 %1114 to i64*\n  %1117 = getelementptr i64, i64* %1116, i32 1\n  %1118 = load i64, i64* %1117\n  %1119 = inttoptr i64 %1105 to i64*\n  store i64 %1118, i64* %1119\n  br label %$100\n$100:\n  %1120 = phi i64 [%1078, %$98], [%1099, %$99] ; # Exe\n  %1121 = phi i64 [%1079, %$98], [%1100, %$99] ; # X\n  %1122 = phi i64 [%1080, %$98], [%1101, %$99] ; # Y\n  %1123 = phi i64 [%1081, %$98], [%1102, %$99] ; # Out0\n  %1124 = phi i64 [%1082, %$98], [%1103, %$99] ; # Out1\n  %1125 = phi i64 [%1083, %$98], [%1104, %$99] ; # In0\n  %1126 = phi i64 [%1084, %$98], [%1105, %$99] ; # In1\n  %1127 = phi i64 [%1085, %$98], [%1106, %$99] ; # P\n  %1128 = phi i64 [%1086, %$98], [%1107, %$99] ; # B\n  %1129 = phi i64 [%1087, %$98], [%1108, %$99] ; # A\n  %1130 = phi i64 [%1088, %$98], [%1109, %$99] ; # E\n  %1131 = phi i64 [%1089, %$98], [%1110, %$99] ; # Tail0\n  %1132 = phi i64 [%1090, %$98], [%1111, %$99] ; # Tail1\n  %1133 = phi i64 [%1091, %$98], [%1112, %$99] ; # Last\n  %1134 = phi i64 [%1097, %$98], [%1118, %$99] ; # ->\n; # (xchg 'Tail0 'Tail1)\n  br label %$94\n$94:\n  %1135 = phi i64 [%1021, %$92], [%1120, %$100] ; # Exe\n  %1136 = phi i64 [%1022, %$92], [%1121, %$100] ; # X\n  %1137 = phi i64 [%1023, %$92], [%1122, %$100] ; # Y\n  %1138 = phi i64 [%1024, %$92], [%1123, %$100] ; # Out0\n  %1139 = phi i64 [%1025, %$92], [%1124, %$100] ; # Out1\n  %1140 = phi i64 [%1026, %$92], [%1125, %$100] ; # In0\n  %1141 = phi i64 [%1027, %$92], [%1126, %$100] ; # In1\n  %1142 = phi i64 [%1028, %$92], [%1127, %$100] ; # P\n  %1143 = phi i64 [%1029, %$92], [%1128, %$100] ; # B\n  %1144 = phi i64 [%1030, %$92], [%1129, %$100] ; # A\n  %1145 = phi i64 [%1031, %$92], [%1130, %$100] ; # E\n  %1146 = phi i64 [%1032, %$92], [%1132, %$100] ; # Tail0\n  %1147 = phi i64 [%1033, %$92], [%1131, %$100] ; # Tail1\n  %1148 = phi i64 [%1034, %$92], [%1133, %$100] ; # Last\n  %1149 = phi i64 [%1040, %$92], [%1131, %$100] ; # ->\n  br label %$69\n$87:\n  %1150 = phi i64 [%957, %$86] ; # Exe\n  %1151 = phi i64 [%958, %$86] ; # X\n  %1152 = phi i64 [%959, %$86] ; # Y\n  %1153 = phi i64 [%960, %$86] ; # Out0\n  %1154 = phi i64 [%961, %$86] ; # Out1\n  %1155 = phi i64 [%962, %$86] ; # In0\n  %1156 = phi i64 [%963, %$86] ; # In1\n  %1157 = phi i64 [%964, %$86] ; # P\n  %1158 = phi i64 [%965, %$86] ; # B\n  %1159 = phi i64 [%966, %$86] ; # A\n  %1160 = phi i64 [%967, %$86] ; # E\n  %1161 = phi i64 [%968, %$86] ; # Tail0\n  %1162 = phi i64 [%969, %$86] ; # Tail1\n  %1163 = phi i64 [%970, %$86] ; # Last\n; # (caar In1)\n  %1164 = inttoptr i64 %1156 to i64*\n  %1165 = load i64, i64* %1164\n  %1166 = inttoptr i64 %1165 to i64*\n  %1167 = load i64, i64* %1166\n; # (cmpSort (caar In1) Last)\n  %1168 = inttoptr i64 %1159 to i64*\n  %1169 = getelementptr i64, i64* %1168, i32 3\n  store i64 %1167, i64* %1169\n  %1170 = inttoptr i64 %1158 to i64*\n  %1171 = getelementptr i64, i64* %1170, i32 3\n  store i64 %1163, i64* %1171\n  %1172 = call i64 @evList(i64 %1160)\n  %1173 = icmp eq i64 %1172, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1173, label %$101, label %$102\n$101:\n  %1174 = phi i64 [%1163, %$87] ; # Y\n  %1175 = phi i64 [%1167, %$87] ; # X\n  br label %$103\n$102:\n  %1176 = phi i64 [%1163, %$87] ; # Y\n  %1177 = phi i64 [%1167, %$87] ; # X\n  br label %$103\n$103:\n  %1178 = phi i64 [%1174, %$101], [%1176, %$102] ; # Y\n  %1179 = phi i64 [%1175, %$101], [%1177, %$102] ; # X\n  %1180 = phi i64 [0, %$101], [-1, %$102] ; # ->\n; # (lt0 (cmpSort (caar In1) Last))\n  %1181 = icmp slt i64 %1180, 0\n  br i1 %1181, label %$105, label %$104\n$105:\n  %1182 = phi i64 [%1150, %$103] ; # Exe\n  %1183 = phi i64 [%1151, %$103] ; # X\n  %1184 = phi i64 [%1152, %$103] ; # Y\n  %1185 = phi i64 [%1153, %$103] ; # Out0\n  %1186 = phi i64 [%1154, %$103] ; # Out1\n  %1187 = phi i64 [%1155, %$103] ; # In0\n  %1188 = phi i64 [%1156, %$103] ; # In1\n  %1189 = phi i64 [%1157, %$103] ; # P\n  %1190 = phi i64 [%1158, %$103] ; # B\n  %1191 = phi i64 [%1159, %$103] ; # A\n  %1192 = phi i64 [%1160, %$103] ; # E\n  %1193 = phi i64 [%1161, %$103] ; # Tail0\n  %1194 = phi i64 [%1162, %$103] ; # Tail1\n  %1195 = phi i64 [%1163, %$103] ; # Last\n; # (set In0 (cdr (set P (val In0))))\n; # (set P (val In0))\n; # (val In0)\n  %1196 = inttoptr i64 %1187 to i64*\n  %1197 = load i64, i64* %1196\n  %1198 = inttoptr i64 %1189 to i64*\n  store i64 %1197, i64* %1198\n; # (cdr (set P (val In0)))\n  %1199 = inttoptr i64 %1197 to i64*\n  %1200 = getelementptr i64, i64* %1199, i32 1\n  %1201 = load i64, i64* %1200\n  %1202 = inttoptr i64 %1187 to i64*\n  store i64 %1201, i64* %1202\n  br label %$69\n$104:\n  %1203 = phi i64 [%1150, %$103] ; # Exe\n  %1204 = phi i64 [%1151, %$103] ; # X\n  %1205 = phi i64 [%1152, %$103] ; # Y\n  %1206 = phi i64 [%1153, %$103] ; # Out0\n  %1207 = phi i64 [%1154, %$103] ; # Out1\n  %1208 = phi i64 [%1155, %$103] ; # In0\n  %1209 = phi i64 [%1156, %$103] ; # In1\n  %1210 = phi i64 [%1157, %$103] ; # P\n  %1211 = phi i64 [%1158, %$103] ; # B\n  %1212 = phi i64 [%1159, %$103] ; # A\n  %1213 = phi i64 [%1160, %$103] ; # E\n  %1214 = phi i64 [%1161, %$103] ; # Tail0\n  %1215 = phi i64 [%1162, %$103] ; # Tail1\n  %1216 = phi i64 [%1163, %$103] ; # Last\n; # (caar In0)\n  %1217 = inttoptr i64 %1208 to i64*\n  %1218 = load i64, i64* %1217\n  %1219 = inttoptr i64 %1218 to i64*\n  %1220 = load i64, i64* %1219\n; # (caar In1)\n  %1221 = inttoptr i64 %1209 to i64*\n  %1222 = load i64, i64* %1221\n  %1223 = inttoptr i64 %1222 to i64*\n  %1224 = load i64, i64* %1223\n; # (cmpSort (caar In0) (caar In1))\n  %1225 = inttoptr i64 %1212 to i64*\n  %1226 = getelementptr i64, i64* %1225, i32 3\n  store i64 %1220, i64* %1226\n  %1227 = inttoptr i64 %1211 to i64*\n  %1228 = getelementptr i64, i64* %1227, i32 3\n  store i64 %1224, i64* %1228\n  %1229 = call i64 @evList(i64 %1213)\n  %1230 = icmp eq i64 %1229, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1230, label %$106, label %$107\n$106:\n  %1231 = phi i64 [%1224, %$104] ; # Y\n  %1232 = phi i64 [%1220, %$104] ; # X\n  br label %$108\n$107:\n  %1233 = phi i64 [%1224, %$104] ; # Y\n  %1234 = phi i64 [%1220, %$104] ; # X\n  br label %$108\n$108:\n  %1235 = phi i64 [%1231, %$106], [%1233, %$107] ; # Y\n  %1236 = phi i64 [%1232, %$106], [%1234, %$107] ; # X\n  %1237 = phi i64 [0, %$106], [-1, %$107] ; # ->\n; # (lt0 (cmpSort (caar In0) (caar In1)))\n  %1238 = icmp slt i64 %1237, 0\n  br i1 %1238, label %$110, label %$109\n$110:\n  %1239 = phi i64 [%1203, %$108] ; # Exe\n  %1240 = phi i64 [%1204, %$108] ; # X\n  %1241 = phi i64 [%1205, %$108] ; # Y\n  %1242 = phi i64 [%1206, %$108] ; # Out0\n  %1243 = phi i64 [%1207, %$108] ; # Out1\n  %1244 = phi i64 [%1208, %$108] ; # In0\n  %1245 = phi i64 [%1209, %$108] ; # In1\n  %1246 = phi i64 [%1210, %$108] ; # P\n  %1247 = phi i64 [%1211, %$108] ; # B\n  %1248 = phi i64 [%1212, %$108] ; # A\n  %1249 = phi i64 [%1213, %$108] ; # E\n  %1250 = phi i64 [%1214, %$108] ; # Tail0\n  %1251 = phi i64 [%1215, %$108] ; # Tail1\n  %1252 = phi i64 [%1216, %$108] ; # Last\n; # (set In0 (cdr (set P (val In0))))\n; # (set P (val In0))\n; # (val In0)\n  %1253 = inttoptr i64 %1244 to i64*\n  %1254 = load i64, i64* %1253\n  %1255 = inttoptr i64 %1246 to i64*\n  store i64 %1254, i64* %1255\n; # (cdr (set P (val In0)))\n  %1256 = inttoptr i64 %1254 to i64*\n  %1257 = getelementptr i64, i64* %1256, i32 1\n  %1258 = load i64, i64* %1257\n  %1259 = inttoptr i64 %1244 to i64*\n  store i64 %1258, i64* %1259\n  br label %$69\n$109:\n  %1260 = phi i64 [%1203, %$108] ; # Exe\n  %1261 = phi i64 [%1204, %$108] ; # X\n  %1262 = phi i64 [%1205, %$108] ; # Y\n  %1263 = phi i64 [%1206, %$108] ; # Out0\n  %1264 = phi i64 [%1207, %$108] ; # Out1\n  %1265 = phi i64 [%1208, %$108] ; # In0\n  %1266 = phi i64 [%1209, %$108] ; # In1\n  %1267 = phi i64 [%1210, %$108] ; # P\n  %1268 = phi i64 [%1211, %$108] ; # B\n  %1269 = phi i64 [%1212, %$108] ; # A\n  %1270 = phi i64 [%1213, %$108] ; # E\n  %1271 = phi i64 [%1214, %$108] ; # Tail0\n  %1272 = phi i64 [%1215, %$108] ; # Tail1\n  %1273 = phi i64 [%1216, %$108] ; # Last\n; # (set In1 (cdr (set P (val In1))))\n; # (set P (val In1))\n; # (val In1)\n  %1274 = inttoptr i64 %1266 to i64*\n  %1275 = load i64, i64* %1274\n  %1276 = inttoptr i64 %1267 to i64*\n  store i64 %1275, i64* %1276\n; # (cdr (set P (val In1)))\n  %1277 = inttoptr i64 %1275 to i64*\n  %1278 = getelementptr i64, i64* %1277, i32 1\n  %1279 = load i64, i64* %1278\n  %1280 = inttoptr i64 %1266 to i64*\n  store i64 %1279, i64* %1280\n  br label %$69\n$69:\n  %1281 = phi i64 [%858, %$76], [%943, %$83], [%1135, %$94], [%1182, %$105], [%1239, %$110], [%1260, %$109] ; # Exe\n  %1282 = phi i64 [%859, %$76], [%944, %$83], [%1136, %$94], [%1183, %$105], [%1240, %$110], [%1261, %$109] ; # X\n  %1283 = phi i64 [%860, %$76], [%945, %$83], [%1137, %$94], [%1184, %$105], [%1241, %$110], [%1262, %$109] ; # Y\n  %1284 = phi i64 [%861, %$76], [%946, %$83], [%1138, %$94], [%1185, %$105], [%1242, %$110], [%1263, %$109] ; # Out0\n  %1285 = phi i64 [%862, %$76], [%947, %$83], [%1139, %$94], [%1186, %$105], [%1243, %$110], [%1264, %$109] ; # Out1\n  %1286 = phi i64 [%863, %$76], [%948, %$83], [%1140, %$94], [%1187, %$105], [%1244, %$110], [%1265, %$109] ; # In0\n  %1287 = phi i64 [%864, %$76], [%949, %$83], [%1141, %$94], [%1188, %$105], [%1245, %$110], [%1266, %$109] ; # In1\n  %1288 = phi i64 [%865, %$76], [%950, %$83], [%1142, %$94], [%1189, %$105], [%1246, %$110], [%1267, %$109] ; # P\n  %1289 = phi i64 [%866, %$76], [%951, %$83], [%1143, %$94], [%1190, %$105], [%1247, %$110], [%1268, %$109] ; # B\n  %1290 = phi i64 [%867, %$76], [%952, %$83], [%1144, %$94], [%1191, %$105], [%1248, %$110], [%1269, %$109] ; # A\n  %1291 = phi i64 [%868, %$76], [%953, %$83], [%1145, %$94], [%1192, %$105], [%1249, %$110], [%1270, %$109] ; # E\n  %1292 = phi i64 [%869, %$76], [%954, %$83], [%1146, %$94], [%1193, %$105], [%1250, %$110], [%1271, %$109] ; # Tail0\n  %1293 = phi i64 [%870, %$76], [%955, %$83], [%1147, %$94], [%1194, %$105], [%1251, %$110], [%1272, %$109] ; # Tail1\n  %1294 = phi i64 [%871, %$76], [%956, %$83], [%1148, %$94], [%1195, %$105], [%1252, %$110], [%1273, %$109] ; # Last\n; # (if Tail0 (set Tail0 (val P)) (set Out1 (val P)))\n  %1295 = icmp ne i64 %1292, 0\n  br i1 %1295, label %$111, label %$112\n$111:\n  %1296 = phi i64 [%1281, %$69] ; # Exe\n  %1297 = phi i64 [%1282, %$69] ; # X\n  %1298 = phi i64 [%1283, %$69] ; # Y\n  %1299 = phi i64 [%1284, %$69] ; # Out0\n  %1300 = phi i64 [%1285, %$69] ; # Out1\n  %1301 = phi i64 [%1286, %$69] ; # In0\n  %1302 = phi i64 [%1287, %$69] ; # In1\n  %1303 = phi i64 [%1288, %$69] ; # P\n  %1304 = phi i64 [%1289, %$69] ; # B\n  %1305 = phi i64 [%1290, %$69] ; # A\n  %1306 = phi i64 [%1291, %$69] ; # E\n  %1307 = phi i64 [%1292, %$69] ; # Tail0\n  %1308 = phi i64 [%1293, %$69] ; # Tail1\n  %1309 = phi i64 [%1294, %$69] ; # Last\n; # (set Tail0 (val P))\n; # (val P)\n  %1310 = inttoptr i64 %1303 to i64*\n  %1311 = load i64, i64* %1310\n  %1312 = inttoptr i64 %1307 to i64*\n  store i64 %1311, i64* %1312\n  br label %$113\n$112:\n  %1313 = phi i64 [%1281, %$69] ; # Exe\n  %1314 = phi i64 [%1282, %$69] ; # X\n  %1315 = phi i64 [%1283, %$69] ; # Y\n  %1316 = phi i64 [%1284, %$69] ; # Out0\n  %1317 = phi i64 [%1285, %$69] ; # Out1\n  %1318 = phi i64 [%1286, %$69] ; # In0\n  %1319 = phi i64 [%1287, %$69] ; # In1\n  %1320 = phi i64 [%1288, %$69] ; # P\n  %1321 = phi i64 [%1289, %$69] ; # B\n  %1322 = phi i64 [%1290, %$69] ; # A\n  %1323 = phi i64 [%1291, %$69] ; # E\n  %1324 = phi i64 [%1292, %$69] ; # Tail0\n  %1325 = phi i64 [%1293, %$69] ; # Tail1\n  %1326 = phi i64 [%1294, %$69] ; # Last\n; # (set Out1 (val P))\n; # (val P)\n  %1327 = inttoptr i64 %1320 to i64*\n  %1328 = load i64, i64* %1327\n  %1329 = inttoptr i64 %1317 to i64*\n  store i64 %1328, i64* %1329\n  br label %$113\n$113:\n  %1330 = phi i64 [%1296, %$111], [%1313, %$112] ; # Exe\n  %1331 = phi i64 [%1297, %$111], [%1314, %$112] ; # X\n  %1332 = phi i64 [%1298, %$111], [%1315, %$112] ; # Y\n  %1333 = phi i64 [%1299, %$111], [%1316, %$112] ; # Out0\n  %1334 = phi i64 [%1300, %$111], [%1317, %$112] ; # Out1\n  %1335 = phi i64 [%1301, %$111], [%1318, %$112] ; # In0\n  %1336 = phi i64 [%1302, %$111], [%1319, %$112] ; # In1\n  %1337 = phi i64 [%1303, %$111], [%1320, %$112] ; # P\n  %1338 = phi i64 [%1304, %$111], [%1321, %$112] ; # B\n  %1339 = phi i64 [%1305, %$111], [%1322, %$112] ; # A\n  %1340 = phi i64 [%1306, %$111], [%1323, %$112] ; # E\n  %1341 = phi i64 [%1307, %$111], [%1324, %$112] ; # Tail0\n  %1342 = phi i64 [%1308, %$111], [%1325, %$112] ; # Tail1\n  %1343 = phi i64 [%1309, %$111], [%1326, %$112] ; # Last\n  %1344 = phi i64 [%1311, %$111], [%1328, %$112] ; # ->\n; # (ofs (if Tail0 (set Tail0 (val P)) (set Out1 (val P))) 1)\n  %1345 = add i64 %1344, 8\n; # (set 2 (val P) $Nil)\n; # (val P)\n  %1346 = inttoptr i64 %1337 to i64*\n  %1347 = load i64, i64* %1346\n  %1348 = inttoptr i64 %1347 to i64*\n  %1349 = getelementptr i64, i64* %1348, i32 1\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %1349\n; # (caar P)\n  %1350 = inttoptr i64 %1337 to i64*\n  %1351 = load i64, i64* %1350\n  %1352 = inttoptr i64 %1351 to i64*\n  %1353 = load i64, i64* %1352\n  br label %$64\n$68:\n  %1354 = phi i64 [%772, %$65] ; # Exe\n  %1355 = phi i64 [%773, %$65] ; # X\n  %1356 = phi i64 [%774, %$65] ; # Y\n  %1357 = phi i64 [%775, %$65] ; # Out0\n  %1358 = phi i64 [%776, %$65] ; # Out1\n  %1359 = phi i64 [%777, %$65] ; # In0\n  %1360 = phi i64 [%778, %$65] ; # In1\n  %1361 = phi i64 [%779, %$65] ; # P\n  %1362 = phi i64 [%780, %$65] ; # B\n  %1363 = phi i64 [%781, %$65] ; # A\n  %1364 = phi i64 [%782, %$65] ; # E\n  %1365 = phi i64 [%783, %$65] ; # Tail0\n  %1366 = phi i64 [%784, %$65] ; # Tail1\n  %1367 = phi i64 [%785, %$65] ; # Last\n; # (? (atom (val Out1)) (val Out0))\n; # (val Out1)\n  %1368 = inttoptr i64 %1358 to i64*\n  %1369 = load i64, i64* %1368\n; # (atom (val Out1))\n  %1370 = and i64 %1369, 15\n  %1371 = icmp ne i64 %1370, 0\n  br i1 %1371, label %$116, label %$114\n$116:\n  %1372 = phi i64 [%1354, %$68] ; # Exe\n  %1373 = phi i64 [%1355, %$68] ; # X\n  %1374 = phi i64 [%1356, %$68] ; # Y\n  %1375 = phi i64 [%1357, %$68] ; # Out0\n  %1376 = phi i64 [%1358, %$68] ; # Out1\n  %1377 = phi i64 [%1359, %$68] ; # In0\n  %1378 = phi i64 [%1360, %$68] ; # In1\n  %1379 = phi i64 [%1361, %$68] ; # P\n  %1380 = phi i64 [%1362, %$68] ; # B\n  %1381 = phi i64 [%1363, %$68] ; # A\n  %1382 = phi i64 [%1364, %$68] ; # E\n; # (val Out0)\n  %1383 = inttoptr i64 %1375 to i64*\n  %1384 = load i64, i64* %1383\n  br label %$115\n$114:\n  %1385 = phi i64 [%1354, %$68] ; # Exe\n  %1386 = phi i64 [%1355, %$68] ; # X\n  %1387 = phi i64 [%1356, %$68] ; # Y\n  %1388 = phi i64 [%1357, %$68] ; # Out0\n  %1389 = phi i64 [%1358, %$68] ; # Out1\n  %1390 = phi i64 [%1359, %$68] ; # In0\n  %1391 = phi i64 [%1360, %$68] ; # In1\n  %1392 = phi i64 [%1361, %$68] ; # P\n  %1393 = phi i64 [%1362, %$68] ; # B\n  %1394 = phi i64 [%1363, %$68] ; # A\n  %1395 = phi i64 [%1364, %$68] ; # E\n  br label %$55\n$115:\n  %1396 = phi i64 [%1372, %$116] ; # Exe\n  %1397 = phi i64 [%1373, %$116] ; # X\n  %1398 = phi i64 [%1374, %$116] ; # Y\n  %1399 = phi i64 [%1375, %$116] ; # Out0\n  %1400 = phi i64 [%1376, %$116] ; # Out1\n  %1401 = phi i64 [%1377, %$116] ; # In0\n  %1402 = phi i64 [%1378, %$116] ; # In1\n  %1403 = phi i64 [%1379, %$116] ; # P\n  %1404 = phi i64 [%1380, %$116] ; # B\n  %1405 = phi i64 [%1381, %$116] ; # A\n  %1406 = phi i64 [%1382, %$116] ; # E\n  %1407 = phi i64 [%1384, %$116] ; # ->\n; # (drop *Safe)\n  %1408 = inttoptr i64 %512 to i64*\n  %1409 = getelementptr i64, i64* %1408, i32 1\n  %1410 = load i64, i64* %1409\n  %1411 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %1410, i64* %1411\n  br label %$7\n$7:\n  %1412 = phi i64 [%23, %$9], [%502, %$48], [%1396, %$115] ; # Exe\n  %1413 = phi i64 [%24, %$9], [%503, %$48], [%1397, %$115] ; # X\n  %1414 = phi i64 [%25, %$9], [%504, %$48], [%1398, %$115] ; # Y\n  %1415 = phi i64 [%20, %$9], [%507, %$48], [%1407, %$115] ; # ->\n  ret i64 %1415\n}\n\ndefine i64 @_Quit(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (evSym X)) Msg (bufString Nm (b8 (buf...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (bufSize Nm)\n  %6 = call i64 @bufSize(i64 %5)\n; # (b8 (bufSize Nm))\n  %7 = alloca i8, i64 %6\n; # (bufString Nm (b8 (bufSize Nm)))\n  %8 = call i8* @bufString(i64 %5, i8* %7)\n; # (if (atom (shift X)) 0 (eval (car X)))\n; # (shift X)\n  %9 = inttoptr i64 %3 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (atom (shift X))\n  %12 = and i64 %11, 15\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%11, %$1] ; # X\n  %16 = phi i64 [%5, %$1] ; # Nm\n  %17 = phi i8* [%8, %$1] ; # Msg\n  br label %$4\n$3:\n  %18 = phi i64 [%0, %$1] ; # Exe\n  %19 = phi i64 [%11, %$1] ; # X\n  %20 = phi i64 [%5, %$1] ; # Nm\n  %21 = phi i8* [%8, %$1] ; # Msg\n; # (car X)\n  %22 = inttoptr i64 %19 to i64*\n  %23 = load i64, i64* %22\n; # (eval (car X))\n  %24 = and i64 %23, 6\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$7, label %$6\n$7:\n  %26 = phi i64 [%23, %$3] ; # X\n  br label %$5\n$6:\n  %27 = phi i64 [%23, %$3] ; # X\n  %28 = and i64 %27, 8\n  %29 = icmp ne i64 %28, 0\n  br i1 %29, label %$9, label %$8\n$9:\n  %30 = phi i64 [%27, %$6] ; # X\n  %31 = inttoptr i64 %30 to i64*\n  %32 = load i64, i64* %31\n  br label %$5\n$8:\n  %33 = phi i64 [%27, %$6] ; # X\n  %34 = call i64 @evList(i64 %33)\n  br label %$5\n$5:\n  %35 = phi i64 [%26, %$7], [%30, %$9], [%33, %$8] ; # X\n  %36 = phi i64 [%26, %$7], [%32, %$9], [%34, %$8] ; # ->\n  br label %$4\n$4:\n  %37 = phi i64 [%14, %$2], [%18, %$5] ; # Exe\n  %38 = phi i64 [%15, %$2], [%19, %$5] ; # X\n  %39 = phi i64 [%16, %$2], [%20, %$5] ; # Nm\n  %40 = phi i8* [%17, %$2], [%21, %$5] ; # Msg\n  %41 = phi i64 [0, %$2], [%36, %$5] ; # ->\n; # (err 0 (if (atom (shift X)) 0 (eval (car X))) ($ \"%s\") Msg)\n  call void @err(i64 0, i64 %41, i8* bitcast ([3 x i8]* @$90 to i8*), i8* %40)\n  unreachable\n}\n\ndefine i64 @_Sys(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (evSym X)) S (bufString Nm (b8 (bufSi...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (bufSize Nm)\n  %6 = call i64 @bufSize(i64 %5)\n; # (b8 (bufSize Nm))\n  %7 = alloca i8, i64 %6\n; # (bufString Nm (b8 (bufSize Nm)))\n  %8 = call i8* @bufString(i64 %5, i8* %7)\n; # (if (atom (shift X)) (mkStr (getenv S)) (let (Y (evSym X) Nm2 (xN...\n; # (shift X)\n  %9 = inttoptr i64 %3 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (atom (shift X))\n  %12 = and i64 %11, 15\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%11, %$1] ; # X\n  %16 = phi i64 [%5, %$1] ; # Nm\n  %17 = phi i8* [%8, %$1] ; # S\n; # (getenv S)\n  %18 = call i8* @getenv(i8* %17)\n; # (mkStr (getenv S))\n  %19 = call i64 @mkStr(i8* %18)\n  br label %$4\n$3:\n  %20 = phi i64 [%0, %$1] ; # Exe\n  %21 = phi i64 [%11, %$1] ; # X\n  %22 = phi i64 [%5, %$1] ; # Nm\n  %23 = phi i8* [%8, %$1] ; # S\n; # (let (Y (evSym X) Nm2 (xName Y)) (if (setenv S (bufString Nm2 (b8...\n; # (evSym X)\n  %24 = call i64 @evSym(i64 %21)\n; # (xName Y)\n  %25 = call i64 @xName(i64 %24)\n; # (if (setenv S (bufString Nm2 (b8 (bufSize Nm2))) 1) $Nil Y)\n; # (bufSize Nm2)\n  %26 = call i64 @bufSize(i64 %25)\n; # (b8 (bufSize Nm2))\n  %27 = alloca i8, i64 %26\n; # (bufString Nm2 (b8 (bufSize Nm2)))\n  %28 = call i8* @bufString(i64 %25, i8* %27)\n; # (setenv S (bufString Nm2 (b8 (bufSize Nm2))) 1)\n  %29 = call i32 @setenv(i8* %23, i8* %28, i32 1)\n  %30 = icmp ne i32 %29, 0\n  br i1 %30, label %$5, label %$6\n$5:\n  %31 = phi i64 [%20, %$3] ; # Exe\n  %32 = phi i64 [%21, %$3] ; # X\n  %33 = phi i64 [%22, %$3] ; # Nm\n  %34 = phi i8* [%23, %$3] ; # S\n  %35 = phi i64 [%24, %$3] ; # Y\n  %36 = phi i64 [%25, %$3] ; # Nm2\n  br label %$7\n$6:\n  %37 = phi i64 [%20, %$3] ; # Exe\n  %38 = phi i64 [%21, %$3] ; # X\n  %39 = phi i64 [%22, %$3] ; # Nm\n  %40 = phi i8* [%23, %$3] ; # S\n  %41 = phi i64 [%24, %$3] ; # Y\n  %42 = phi i64 [%25, %$3] ; # Nm2\n  br label %$7\n$7:\n  %43 = phi i64 [%31, %$5], [%37, %$6] ; # Exe\n  %44 = phi i64 [%32, %$5], [%38, %$6] ; # X\n  %45 = phi i64 [%33, %$5], [%39, %$6] ; # Nm\n  %46 = phi i8* [%34, %$5], [%40, %$6] ; # S\n  %47 = phi i64 [%35, %$5], [%41, %$6] ; # Y\n  %48 = phi i64 [%36, %$5], [%42, %$6] ; # Nm2\n  %49 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%41, %$6] ; # ->\n  br label %$4\n$4:\n  %50 = phi i64 [%14, %$2], [%43, %$7] ; # Exe\n  %51 = phi i64 [%15, %$2], [%44, %$7] ; # X\n  %52 = phi i64 [%16, %$2], [%45, %$7] ; # Nm\n  %53 = phi i8* [%17, %$2], [%46, %$7] ; # S\n  %54 = phi i64 [%19, %$2], [%49, %$7] ; # ->\n  ret i64 %54\n}\n\ndefine i64 @_Pwd(i64) align 8 {\n$1:\n; # (let P (getcwd null 0) (if P (prog1 (mkStr P) (free P)) $Nil))\n; # (getcwd null 0)\n  %1 = call i8* @getcwd(i8* null, i64 0)\n; # (if P (prog1 (mkStr P) (free P)) $Nil)\n  %2 = icmp ne i8* %1, null\n  br i1 %2, label %$2, label %$3\n$2:\n  %3 = phi i64 [%0, %$1] ; # Exe\n  %4 = phi i8* [%1, %$1] ; # P\n; # (prog1 (mkStr P) (free P))\n; # (mkStr P)\n  %5 = call i64 @mkStr(i8* %4)\n; # (free P)\n  call void @free(i8* %4)\n  br label %$4\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i8* [%1, %$1] ; # P\n  br label %$4\n$4:\n  %8 = phi i64 [%3, %$2], [%6, %$3] ; # Exe\n  %9 = phi i8* [%4, %$2], [%7, %$3] ; # P\n  %10 = phi i64 [%5, %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %10\n}\n\ndefine i64 @_Cd(i64) align 8 {\n$1:\n; # (let (Nm (xName (evSym (cdr Exe))) P (getcwd null 0)) (if P (prog...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym (cdr Exe))\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym (cdr Exe)))\n  %5 = call i64 @xName(i64 %4)\n; # (getcwd null 0)\n  %6 = call i8* @getcwd(i8* null, i64 0)\n; # (if P (prog1 (if (lt0 (chdir (dirString Nm (b8 (pathSize Nm))))) ...\n  %7 = icmp ne i8* %6, null\n  br i1 %7, label %$2, label %$3\n$2:\n  %8 = phi i64 [%0, %$1] ; # Exe\n  %9 = phi i64 [%5, %$1] ; # Nm\n  %10 = phi i8* [%6, %$1] ; # P\n; # (prog1 (if (lt0 (chdir (dirString Nm (b8 (pathSize Nm))))) $Nil (...\n; # (if (lt0 (chdir (dirString Nm (b8 (pathSize Nm))))) $Nil (mkStr P...\n; # (pathSize Nm)\n  %11 = call i64 @pathSize(i64 %9)\n; # (b8 (pathSize Nm))\n  %12 = alloca i8, i64 %11\n; # (dirString Nm (b8 (pathSize Nm)))\n  %13 = call i8* @dirString(i64 %9, i8* %12)\n; # (chdir (dirString Nm (b8 (pathSize Nm))))\n  %14 = call i32 @chdir(i8* %13)\n; # (lt0 (chdir (dirString Nm (b8 (pathSize Nm)))))\n  %15 = icmp slt i32 %14, 0\n  br i1 %15, label %$5, label %$6\n$5:\n  %16 = phi i64 [%8, %$2] ; # Exe\n  %17 = phi i64 [%9, %$2] ; # Nm\n  %18 = phi i8* [%10, %$2] ; # P\n  br label %$7\n$6:\n  %19 = phi i64 [%8, %$2] ; # Exe\n  %20 = phi i64 [%9, %$2] ; # Nm\n  %21 = phi i8* [%10, %$2] ; # P\n; # (mkStr P)\n  %22 = call i64 @mkStr(i8* %21)\n  br label %$7\n$7:\n  %23 = phi i64 [%16, %$5], [%19, %$6] ; # Exe\n  %24 = phi i64 [%17, %$5], [%20, %$6] ; # Nm\n  %25 = phi i8* [%18, %$5], [%21, %$6] ; # P\n  %26 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$5], [%22, %$6] ; # ->\n; # (free P)\n  call void @free(i8* %25)\n  br label %$4\n$3:\n  %27 = phi i64 [%0, %$1] ; # Exe\n  %28 = phi i64 [%5, %$1] ; # Nm\n  %29 = phi i8* [%6, %$1] ; # P\n  br label %$4\n$4:\n  %30 = phi i64 [%23, %$7], [%27, %$3] ; # Exe\n  %31 = phi i64 [%24, %$7], [%28, %$3] ; # Nm\n  %32 = phi i8* [%25, %$7], [%29, %$3] ; # P\n  %33 = phi i64 [%26, %$7], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %33\n}\n\ndefine i64 @_Ctty(i64) align 8 {\n$1:\n; # (let X (eval (cadr Exe)) (cond ((cnt? X) (set $TtyPid (i32 (int @...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (cond ((cnt? X) (set $TtyPid (i32 (int @))) X) ((nil? X) (let Pty...\n; # (cnt? X)\n  %19 = and i64 %18, 2\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%0, %$2] ; # Exe\n  %22 = phi i64 [%18, %$2] ; # X\n; # (set $TtyPid (i32 (int @)))\n; # (int @)\n  %23 = lshr i64 %18, 4\n; # (i32 (int @))\n  %24 = trunc i64 %23 to i32\n  store i32 %24, i32* @$TtyPid\n  br label %$7\n$8:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%18, %$2] ; # X\n; # (nil? X)\n  %27 = icmp eq i64 %26, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %27, label %$11, label %$10\n$11:\n  %28 = phi i64 [%25, %$8] ; # Exe\n  %29 = phi i64 [%26, %$8] ; # X\n; # (let Pty (b32 2) (when (lt0 (openpty Pty (ofs Pty 1) null null nu...\n; # (b32 2)\n  %30 = alloca i32, i64 2\n; # (when (lt0 (openpty Pty (ofs Pty 1) null null null)) (err Exe 0 (...\n; # (ofs Pty 1)\n  %31 = getelementptr i32, i32* %30, i32 1\n; # (openpty Pty (ofs Pty 1) null null null)\n  %32 = call i32 @openpty(i32* %30, i32* %31, i8* null, i8* null, i8* null)\n; # (lt0 (openpty Pty (ofs Pty 1) null null null))\n  %33 = icmp slt i32 %32, 0\n  br i1 %33, label %$12, label %$13\n$12:\n  %34 = phi i64 [%28, %$11] ; # Exe\n  %35 = phi i64 [%29, %$11] ; # X\n  %36 = phi i32* [%30, %$11] ; # Pty\n; # (strErrno)\n  %37 = call i8* @strErrno()\n; # (err Exe 0 ($ \"Can't open PTY: %s\") (strErrno))\n  call void @err(i64 %34, i64 0, i8* bitcast ([19 x i8]* @$91 to i8*), i8* %37)\n  unreachable\n$13:\n  %38 = phi i64 [%28, %$11] ; # Exe\n  %39 = phi i64 [%29, %$11] ; # X\n  %40 = phi i32* [%30, %$11] ; # Pty\n; # (cond ((lt0 (fork)) (forkErr Exe)) ((=0 @) (close (val 2 Pty)) (l...\n; # (fork)\n  %41 = call i32 @fork()\n; # (lt0 (fork))\n  %42 = icmp slt i32 %41, 0\n  br i1 %42, label %$16, label %$15\n$16:\n  %43 = phi i64 [%38, %$13] ; # Exe\n  %44 = phi i64 [%39, %$13] ; # X\n  %45 = phi i32* [%40, %$13] ; # Pty\n; # (forkErr Exe)\n  call void @forkErr(i64 %43)\n  unreachable\n$15:\n  %46 = phi i64 [%38, %$13] ; # Exe\n  %47 = phi i64 [%39, %$13] ; # X\n  %48 = phi i32* [%40, %$13] ; # Pty\n; # (=0 @)\n  %49 = icmp eq i32 %41, 0\n  br i1 %49, label %$18, label %$17\n$18:\n  %50 = phi i64 [%46, %$15] ; # Exe\n  %51 = phi i64 [%47, %$15] ; # X\n  %52 = phi i32* [%48, %$15] ; # Pty\n; # (val 2 Pty)\n  %53 = getelementptr i32, i32* %52, i32 1\n  %54 = load i32, i32* %53\n; # (close (val 2 Pty))\n  %55 = call i32 @close(i32 %54)\n; # (let (Fd (val Pty) Poll (b64 2) Buf (b8 BUFSIZ)) (loop (pollIn 0 ...\n; # (val Pty)\n  %56 = load i32, i32* %52\n; # (b64 2)\n  %57 = alloca i64, i64 2\n; # (b8 BUFSIZ)\n  %58 = alloca i8, i64 4096\n; # (loop (pollIn 0 Poll) (pollIn Fd (ofs Poll 1)) (if (lt0 (poll Pol...\n  br label %$19\n$19:\n  %59 = phi i64 [%50, %$18], [%135, %$22] ; # Exe\n  %60 = phi i64 [%51, %$18], [%136, %$22] ; # X\n  %61 = phi i32* [%52, %$18], [%137, %$22] ; # Pty\n  %62 = phi i32 [%56, %$18], [%138, %$22] ; # Fd\n  %63 = phi i64* [%57, %$18], [%139, %$22] ; # Poll\n  %64 = phi i8* [%58, %$18], [%140, %$22] ; # Buf\n; # (pollIn 0 Poll)\n  call void @pollIn(i32 0, i64* %63)\n; # (ofs Poll 1)\n  %65 = getelementptr i64, i64* %63, i32 1\n; # (pollIn Fd (ofs Poll 1))\n  call void @pollIn(i32 %62, i64* %65)\n; # (if (lt0 (poll Poll 2 -1)) (? (<> (gErrno) EINTR)) (when (readyIn...\n; # (poll Poll 2 -1)\n  %66 = call i32 @poll(i64* %63, i32 2, i64 -1)\n; # (lt0 (poll Poll 2 -1))\n  %67 = icmp slt i32 %66, 0\n  br i1 %67, label %$20, label %$21\n$20:\n  %68 = phi i64 [%59, %$19] ; # Exe\n  %69 = phi i64 [%60, %$19] ; # X\n  %70 = phi i32* [%61, %$19] ; # Pty\n  %71 = phi i32 [%62, %$19] ; # Fd\n  %72 = phi i64* [%63, %$19] ; # Poll\n  %73 = phi i8* [%64, %$19] ; # Buf\n; # (? (<> (gErrno) EINTR))\n; # (gErrno)\n  %74 = call i32 @gErrno()\n; # (<> (gErrno) EINTR)\n  %75 = icmp ne i32 %74, 2\n  br i1 %75, label %$24, label %$23\n$23:\n  %76 = phi i64 [%68, %$20] ; # Exe\n  %77 = phi i64 [%69, %$20] ; # X\n  %78 = phi i32* [%70, %$20] ; # Pty\n  %79 = phi i32 [%71, %$20] ; # Fd\n  %80 = phi i64* [%72, %$20] ; # Poll\n  %81 = phi i8* [%73, %$20] ; # Buf\n  br label %$22\n$21:\n  %82 = phi i64 [%59, %$19] ; # Exe\n  %83 = phi i64 [%60, %$19] ; # X\n  %84 = phi i32* [%61, %$19] ; # Pty\n  %85 = phi i32 [%62, %$19] ; # Fd\n  %86 = phi i64* [%63, %$19] ; # Poll\n  %87 = phi i8* [%64, %$19] ; # Buf\n; # (when (readyIn Poll) (let N (read 0 Buf BUFSIZ) (? (le0 N)) (writ...\n; # (readyIn Poll)\n  %88 = call i1 @readyIn(i64* %86)\n  br i1 %88, label %$25, label %$26\n$25:\n  %89 = phi i64 [%82, %$21] ; # Exe\n  %90 = phi i64 [%83, %$21] ; # X\n  %91 = phi i32* [%84, %$21] ; # Pty\n  %92 = phi i32 [%85, %$21] ; # Fd\n  %93 = phi i64* [%86, %$21] ; # Poll\n  %94 = phi i8* [%87, %$21] ; # Buf\n; # (let N (read 0 Buf BUFSIZ) (? (le0 N)) (write Fd Buf N))\n; # (read 0 Buf BUFSIZ)\n  %95 = call i64 @read(i32 0, i8* %94, i64 4096)\n; # (? (le0 N))\n; # (le0 N)\n  %96 = icmp sle i64 %95, 0\n  br i1 %96, label %$24, label %$27\n$27:\n  %97 = phi i64 [%89, %$25] ; # Exe\n  %98 = phi i64 [%90, %$25] ; # X\n  %99 = phi i32* [%91, %$25] ; # Pty\n  %100 = phi i32 [%92, %$25] ; # Fd\n  %101 = phi i64* [%93, %$25] ; # Poll\n  %102 = phi i8* [%94, %$25] ; # Buf\n  %103 = phi i64 [%95, %$25] ; # N\n; # (write Fd Buf N)\n  %104 = call i64 @write(i32 %100, i8* %102, i64 %103)\n  br label %$26\n$26:\n  %105 = phi i64 [%82, %$21], [%97, %$27] ; # Exe\n  %106 = phi i64 [%83, %$21], [%98, %$27] ; # X\n  %107 = phi i32* [%84, %$21], [%99, %$27] ; # Pty\n  %108 = phi i32 [%85, %$21], [%100, %$27] ; # Fd\n  %109 = phi i64* [%86, %$21], [%101, %$27] ; # Poll\n  %110 = phi i8* [%87, %$21], [%102, %$27] ; # Buf\n; # (when (readyIn (ofs Poll 1)) (let N (read Fd Buf BUFSIZ) (? (le0 ...\n; # (ofs Poll 1)\n  %111 = getelementptr i64, i64* %109, i32 1\n; # (readyIn (ofs Poll 1))\n  %112 = call i1 @readyIn(i64* %111)\n  br i1 %112, label %$28, label %$29\n$28:\n  %113 = phi i64 [%105, %$26] ; # Exe\n  %114 = phi i64 [%106, %$26] ; # X\n  %115 = phi i32* [%107, %$26] ; # Pty\n  %116 = phi i32 [%108, %$26] ; # Fd\n  %117 = phi i64* [%109, %$26] ; # Poll\n  %118 = phi i8* [%110, %$26] ; # Buf\n; # (let N (read Fd Buf BUFSIZ) (? (le0 N)) (write 1 Buf N))\n; # (read Fd Buf BUFSIZ)\n  %119 = call i64 @read(i32 %116, i8* %118, i64 4096)\n; # (? (le0 N))\n; # (le0 N)\n  %120 = icmp sle i64 %119, 0\n  br i1 %120, label %$24, label %$30\n$30:\n  %121 = phi i64 [%113, %$28] ; # Exe\n  %122 = phi i64 [%114, %$28] ; # X\n  %123 = phi i32* [%115, %$28] ; # Pty\n  %124 = phi i32 [%116, %$28] ; # Fd\n  %125 = phi i64* [%117, %$28] ; # Poll\n  %126 = phi i8* [%118, %$28] ; # Buf\n  %127 = phi i64 [%119, %$28] ; # N\n; # (write 1 Buf N)\n  %128 = call i64 @write(i32 1, i8* %126, i64 %127)\n  br label %$29\n$29:\n  %129 = phi i64 [%105, %$26], [%121, %$30] ; # Exe\n  %130 = phi i64 [%106, %$26], [%122, %$30] ; # X\n  %131 = phi i32* [%107, %$26], [%123, %$30] ; # Pty\n  %132 = phi i32 [%108, %$26], [%124, %$30] ; # Fd\n  %133 = phi i64* [%109, %$26], [%125, %$30] ; # Poll\n  %134 = phi i8* [%110, %$26], [%126, %$30] ; # Buf\n  br label %$22\n$22:\n  %135 = phi i64 [%76, %$23], [%129, %$29] ; # Exe\n  %136 = phi i64 [%77, %$23], [%130, %$29] ; # X\n  %137 = phi i32* [%78, %$23], [%131, %$29] ; # Pty\n  %138 = phi i32 [%79, %$23], [%132, %$29] ; # Fd\n  %139 = phi i64* [%80, %$23], [%133, %$29] ; # Poll\n  %140 = phi i8* [%81, %$23], [%134, %$29] ; # Buf\n  br label %$19\n$24:\n  %141 = phi i64 [%68, %$20], [%89, %$25], [%113, %$28] ; # Exe\n  %142 = phi i64 [%69, %$20], [%90, %$25], [%114, %$28] ; # X\n  %143 = phi i32* [%70, %$20], [%91, %$25], [%115, %$28] ; # Pty\n  %144 = phi i32 [%71, %$20], [%92, %$25], [%116, %$28] ; # Fd\n  %145 = phi i64* [%72, %$20], [%93, %$25], [%117, %$28] ; # Poll\n  %146 = phi i8* [%73, %$20], [%94, %$25], [%118, %$28] ; # Buf\n  %147 = phi i64 [0, %$20], [0, %$25], [0, %$28] ; # ->\n; # (exit 0)\n  call void @exit(i32 0)\n  unreachable\n$17:\n  %148 = phi i64 [%46, %$15] ; # Exe\n  %149 = phi i64 [%47, %$15] ; # X\n  %150 = phi i32* [%48, %$15] ; # Pty\n  br label %$14\n$14:\n  %151 = phi i64 [%148, %$17] ; # Exe\n  %152 = phi i64 [%149, %$17] ; # X\n  %153 = phi i32* [%150, %$17] ; # Pty\n  %154 = phi i64 [0, %$17] ; # ->\n; # (val Pty)\n  %155 = load i32, i32* %153\n; # (close (val Pty))\n  %156 = call i32 @close(i32 %155)\n; # (val 2 Pty)\n  %157 = getelementptr i32, i32* %153, i32 1\n  %158 = load i32, i32* %157\n; # (login_tty (val 2 Pty))\n  %159 = call i32 @login_tty(i32 %158)\n; # (val SIGINT Sig)\n  %160 = getelementptr i32, i32* @Sig, i32 1\n  %161 = load i32, i32* %160\n; # (val SigIgn)\n  %162 = load i8*, i8** @SigIgn\n; # (signal (val SIGINT Sig) (val SigIgn))\n  %163 = call i8* @signal(i32 %161, i8* %162)\n; # (val $InFiles)\n  %164 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %165 = load i8*, i8** %164\n; # ((inFile (val (val $InFiles))) tty YES)\n  %166 = getelementptr i8, i8* %165, i32 4128\n  %167 = bitcast i8* %166 to i1*\n  store i1 1, i1* %167\n; # (val $OutFiles)\n  %168 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %169 = getelementptr i8*, i8** %168, i32 1\n  %170 = load i8*, i8** %169\n; # ((outFile (val 2 (val $OutFiles))) tty YES)\n  %171 = getelementptr i8, i8* %170, i32 4104\n  %172 = bitcast i8* %171 to i1*\n  store i1 1, i1* %172\n; # (val $OutFiles)\n  %173 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %174 = getelementptr i8*, i8** %173, i32 2\n  %175 = load i8*, i8** %174\n; # ((outFile (val 3 (val $OutFiles))) tty YES)\n  %176 = getelementptr i8, i8* %175, i32 4104\n  %177 = bitcast i8* %176 to i1*\n  store i1 1, i1* %177\n; # (set Tio (=0 (tcgetattr 0 OrgTermio)))\n; # (tcgetattr 0 OrgTermio)\n  %178 = call i32 @tcgetattr(i32 0, i8* @OrgTermio)\n; # (=0 (tcgetattr 0 OrgTermio))\n  %179 = icmp eq i32 %178, 0\n  store i1 %179, i1* @Tio\n  br label %$7\n$10:\n  %180 = phi i64 [%25, %$8] ; # Exe\n  %181 = phi i64 [%26, %$8] ; # X\n; # (let Nm (xName (xSym X)) (if (reopenTty (bufString Nm (b8 (bufSiz...\n; # (xSym X)\n  %182 = call i64 @xSym(i64 %181)\n; # (xName (xSym X))\n  %183 = call i64 @xName(i64 %182)\n; # (if (reopenTty (bufString Nm (b8 (bufSize Nm)))) (let (In: (inFil...\n; # (bufSize Nm)\n  %184 = call i64 @bufSize(i64 %183)\n; # (b8 (bufSize Nm))\n  %185 = alloca i8, i64 %184\n; # (bufString Nm (b8 (bufSize Nm)))\n  %186 = call i8* @bufString(i64 %183, i8* %185)\n; # (reopenTty (bufString Nm (b8 (bufSize Nm))))\n  %187 = call i1 @reopenTty(i8* %186)\n  br i1 %187, label %$31, label %$32\n$31:\n  %188 = phi i64 [%180, %$10] ; # Exe\n  %189 = phi i64 [%181, %$10] ; # X\n  %190 = phi i64 [%183, %$10] ; # Nm\n; # (let (In: (inFile (val (val $InFiles))) Out: (outFile (val 2 (val...\n; # (val $InFiles)\n  %191 = load i8**, i8*** @$InFiles\n; # (val (val $InFiles))\n  %192 = load i8*, i8** %191\n; # (val $OutFiles)\n  %193 = load i8**, i8*** @$OutFiles\n; # (val 2 (val $OutFiles))\n  %194 = getelementptr i8*, i8** %193, i32 1\n  %195 = load i8*, i8** %194\n; # (In: chr 0)\n  %196 = getelementptr i8, i8* %192, i32 12\n  %197 = bitcast i8* %196 to i32*\n  store i32 0, i32* %197\n; # (In: ix (In: cnt 0))\n  %198 = getelementptr i8, i8* %192, i32 24\n  %199 = bitcast i8* %198 to i32*\n  %200 = getelementptr i8, i8* %192, i32 28\n  %201 = bitcast i8* %200 to i32*\n  store i32 0, i32* %201\n  store i32 0, i32* %199\n; # (In: tty YES)\n  %202 = getelementptr i8, i8* %192, i32 4128\n  %203 = bitcast i8* %202 to i1*\n  store i1 1, i1* %203\n; # (set Tio (=0 (tcgetattr 0 OrgTermio)))\n; # (tcgetattr 0 OrgTermio)\n  %204 = call i32 @tcgetattr(i32 0, i8* @OrgTermio)\n; # (=0 (tcgetattr 0 OrgTermio))\n  %205 = icmp eq i32 %204, 0\n  store i1 %205, i1* @Tio\n; # (Out: ix 0)\n  %206 = getelementptr i8, i8* %195, i32 4\n  %207 = bitcast i8* %206 to i32*\n  store i32 0, i32* %207\n; # (Out: tty YES)\n  %208 = getelementptr i8, i8* %195, i32 4104\n  %209 = bitcast i8* %208 to i1*\n  store i1 1, i1* %209\n; # (val $OutFiles)\n  %210 = load i8**, i8*** @$OutFiles\n; # (val 3 (val $OutFiles))\n  %211 = getelementptr i8*, i8** %210, i32 2\n  %212 = load i8*, i8** %211\n; # ((outFile (val 3 (val $OutFiles))) tty YES)\n  %213 = getelementptr i8, i8* %212, i32 4104\n  %214 = bitcast i8* %213 to i1*\n  store i1 1, i1* %214\n  br label %$33\n$32:\n  %215 = phi i64 [%180, %$10] ; # Exe\n  %216 = phi i64 [%181, %$10] ; # X\n  %217 = phi i64 [%183, %$10] ; # Nm\n  br label %$33\n$33:\n  %218 = phi i64 [%188, %$31], [%215, %$32] ; # Exe\n  %219 = phi i64 [%189, %$31], [%216, %$32] ; # X\n  %220 = phi i64 [%190, %$31], [%217, %$32] ; # Nm\n  %221 = phi i64 [%189, %$31], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$32] ; # ->\n  br label %$7\n$7:\n  %222 = phi i64 [%21, %$9], [%151, %$14], [%218, %$33] ; # Exe\n  %223 = phi i64 [%22, %$9], [%152, %$14], [%219, %$33] ; # X\n  %224 = phi i64 [%22, %$9], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$14], [%221, %$33] ; # ->\n  ret i64 %224\n}\n\ndefine i64 @_Cmd(i64) align 8 {\n$1:\n; # (if (nil? (evSym (cdr Exe))) (mkStr (val $AV0)) (bufString (xName...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym (cdr Exe))\n  %4 = call i64 @evSym(i64 %3)\n; # (nil? (evSym (cdr Exe)))\n  %5 = icmp eq i64 %4, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n; # (val $AV0)\n  %7 = load i8*, i8** @$AV0\n; # (mkStr (val $AV0))\n  %8 = call i64 @mkStr(i8* %7)\n  br label %$4\n$3:\n  %9 = phi i64 [%0, %$1] ; # Exe\n; # (xName @)\n  %10 = call i64 @xName(i64 %4)\n; # (val $AV0)\n  %11 = load i8*, i8** @$AV0\n; # (bufString (xName @) (val $AV0))\n  %12 = call i8* @bufString(i64 %10, i8* %11)\n  br label %$4\n$4:\n  %13 = phi i64 [%6, %$2], [%9, %$3] ; # Exe\n  %14 = phi i64 [%8, %$2], [%4, %$3] ; # ->\n  ret i64 %14\n}\n\ndefine i64 @_Dir(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (getDir (let Nm (xName (evSym X)) (dirString...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (getDir (let Nm (xName (evSym X)) (dirString Nm (b8 (pathSize...\n; # (let Nm (xName (evSym X)) (dirString Nm (b8 (pathSize Nm))))\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (xName (evSym X))\n  %5 = call i64 @xName(i64 %4)\n; # (pathSize Nm)\n  %6 = call i64 @pathSize(i64 %5)\n; # (b8 (pathSize Nm))\n  %7 = alloca i8, i64 %6\n; # (dirString Nm (b8 (pathSize Nm)))\n  %8 = call i8* @dirString(i64 %5, i8* %7)\n; # (getDir (let Nm (xName (evSym X)) (dirString Nm (b8 (pathSize Nm)...\n  %9 = call i8* @getDir(i8* %8)\n  %10 = icmp ne i8* %9, null\n  br i1 %10, label %$2, label %$3\n$2:\n  %11 = phi i64 [%0, %$1] ; # Exe\n  %12 = phi i64 [%3, %$1] ; # X\n; # (let (P @ F (eval (car (shift X)))) (when (nil? F) (while (== (va...\n; # (shift X)\n  %13 = inttoptr i64 %12 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n; # (car (shift X))\n  %16 = inttoptr i64 %15 to i64*\n  %17 = load i64, i64* %16\n; # (eval (car (shift X)))\n  %18 = and i64 %17, 6\n  %19 = icmp ne i64 %18, 0\n  br i1 %19, label %$7, label %$6\n$7:\n  %20 = phi i64 [%17, %$2] ; # X\n  br label %$5\n$6:\n  %21 = phi i64 [%17, %$2] ; # X\n  %22 = and i64 %21, 8\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$9, label %$8\n$9:\n  %24 = phi i64 [%21, %$6] ; # X\n  %25 = inttoptr i64 %24 to i64*\n  %26 = load i64, i64* %25\n  br label %$5\n$8:\n  %27 = phi i64 [%21, %$6] ; # X\n  %28 = call i64 @evList(i64 %27)\n  br label %$5\n$5:\n  %29 = phi i64 [%20, %$7], [%24, %$9], [%27, %$8] ; # X\n  %30 = phi i64 [%20, %$7], [%26, %$9], [%28, %$8] ; # ->\n; # (when (nil? F) (while (== (val P) (char \".\")) (unless (setq P (ge...\n; # (nil? F)\n  %31 = icmp eq i64 %30, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %31, label %$10, label %$11\n$10:\n  %32 = phi i64 [%11, %$5] ; # Exe\n  %33 = phi i64 [%15, %$5] ; # X\n  %34 = phi i8* [%9, %$5] ; # P\n  %35 = phi i64 [%30, %$5] ; # F\n; # (while (== (val P) (char \".\")) (unless (setq P (getDir null)) (re...\n  br label %$12\n$12:\n  %36 = phi i64 [%32, %$10], [%52, %$16] ; # Exe\n  %37 = phi i64 [%33, %$10], [%53, %$16] ; # X\n  %38 = phi i8* [%34, %$10], [%54, %$16] ; # P\n  %39 = phi i64 [%35, %$10], [%55, %$16] ; # F\n; # (val P)\n  %40 = load i8, i8* %38\n; # (== (val P) (char \".\"))\n  %41 = icmp eq i8 %40, 46\n  br i1 %41, label %$13, label %$14\n$13:\n  %42 = phi i64 [%36, %$12] ; # Exe\n  %43 = phi i64 [%37, %$12] ; # X\n  %44 = phi i8* [%38, %$12] ; # P\n  %45 = phi i64 [%39, %$12] ; # F\n; # (unless (setq P (getDir null)) (ret $Nil))\n; # (getDir null)\n  %46 = call i8* @getDir(i8* null)\n  %47 = icmp ne i8* %46, null\n  br i1 %47, label %$16, label %$15\n$15:\n  %48 = phi i64 [%42, %$13] ; # Exe\n  %49 = phi i64 [%43, %$13] ; # X\n  %50 = phi i8* [%46, %$13] ; # P\n  %51 = phi i64 [%45, %$13] ; # F\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$16:\n  %52 = phi i64 [%42, %$13] ; # Exe\n  %53 = phi i64 [%43, %$13] ; # X\n  %54 = phi i8* [%46, %$13] ; # P\n  %55 = phi i64 [%45, %$13] ; # F\n  br label %$12\n$14:\n  %56 = phi i64 [%36, %$12] ; # Exe\n  %57 = phi i64 [%37, %$12] ; # X\n  %58 = phi i8* [%38, %$12] ; # P\n  %59 = phi i64 [%39, %$12] ; # F\n  br label %$11\n$11:\n  %60 = phi i64 [%11, %$5], [%56, %$14] ; # Exe\n  %61 = phi i64 [%15, %$5], [%57, %$14] ; # X\n  %62 = phi i8* [%9, %$5], [%58, %$14] ; # P\n  %63 = phi i64 [%30, %$5], [%59, %$14] ; # F\n; # (let (Y (cons (mkStr P) $Nil) R (save Y)) (while (setq P (getDir ...\n; # (mkStr P)\n  %64 = call i64 @mkStr(i8* %62)\n; # (cons (mkStr P) $Nil)\n  %65 = call i64 @cons(i64 %64, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %67 = load i64, i64* %66\n  %68 = alloca i64, i64 2, align 16\n  %69 = ptrtoint i64* %68 to i64\n  %70 = inttoptr i64 %69 to i64*\n  store i64 %65, i64* %70\n  %71 = add i64 %69, 8\n  %72 = inttoptr i64 %71 to i64*\n  store i64 %67, i64* %72\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %69, i64* %73\n; # (while (setq P (getDir null)) (unless (and (nil? F) (== (val P) (...\n  br label %$17\n$17:\n  %74 = phi i64 [%60, %$11], [%114, %$23] ; # Exe\n  %75 = phi i64 [%61, %$11], [%115, %$23] ; # X\n  %76 = phi i8* [%62, %$11], [%116, %$23] ; # P\n  %77 = phi i64 [%63, %$11], [%117, %$23] ; # F\n  %78 = phi i64 [%65, %$11], [%118, %$23] ; # Y\n  %79 = phi i64 [%65, %$11], [%119, %$23] ; # R\n; # (getDir null)\n  %80 = call i8* @getDir(i8* null)\n  %81 = icmp ne i8* %80, null\n  br i1 %81, label %$18, label %$19\n$18:\n  %82 = phi i64 [%74, %$17] ; # Exe\n  %83 = phi i64 [%75, %$17] ; # X\n  %84 = phi i8* [%80, %$17] ; # P\n  %85 = phi i64 [%77, %$17] ; # F\n  %86 = phi i64 [%78, %$17] ; # Y\n  %87 = phi i64 [%79, %$17] ; # R\n; # (unless (and (nil? F) (== (val P) (char \".\"))) (setq Y (set 2 Y (...\n; # (and (nil? F) (== (val P) (char \".\")))\n; # (nil? F)\n  %88 = icmp eq i64 %85, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %88, label %$21, label %$20\n$21:\n  %89 = phi i64 [%82, %$18] ; # Exe\n  %90 = phi i64 [%83, %$18] ; # X\n  %91 = phi i8* [%84, %$18] ; # P\n  %92 = phi i64 [%85, %$18] ; # F\n  %93 = phi i64 [%86, %$18] ; # Y\n  %94 = phi i64 [%87, %$18] ; # R\n; # (val P)\n  %95 = load i8, i8* %91\n; # (== (val P) (char \".\"))\n  %96 = icmp eq i8 %95, 46\n  br label %$20\n$20:\n  %97 = phi i64 [%82, %$18], [%89, %$21] ; # Exe\n  %98 = phi i64 [%83, %$18], [%90, %$21] ; # X\n  %99 = phi i8* [%84, %$18], [%91, %$21] ; # P\n  %100 = phi i64 [%85, %$18], [%92, %$21] ; # F\n  %101 = phi i64 [%86, %$18], [%93, %$21] ; # Y\n  %102 = phi i64 [%87, %$18], [%94, %$21] ; # R\n  %103 = phi i1 [0, %$18], [%96, %$21] ; # ->\n  br i1 %103, label %$23, label %$22\n$22:\n  %104 = phi i64 [%97, %$20] ; # Exe\n  %105 = phi i64 [%98, %$20] ; # X\n  %106 = phi i8* [%99, %$20] ; # P\n  %107 = phi i64 [%100, %$20] ; # F\n  %108 = phi i64 [%101, %$20] ; # Y\n  %109 = phi i64 [%102, %$20] ; # R\n; # (set 2 Y (cons (mkStr P) $Nil))\n; # (mkStr P)\n  %110 = call i64 @mkStr(i8* %106)\n; # (cons (mkStr P) $Nil)\n  %111 = call i64 @cons(i64 %110, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %112 = inttoptr i64 %108 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  store i64 %111, i64* %113\n  br label %$23\n$23:\n  %114 = phi i64 [%97, %$20], [%104, %$22] ; # Exe\n  %115 = phi i64 [%98, %$20], [%105, %$22] ; # X\n  %116 = phi i8* [%99, %$20], [%106, %$22] ; # P\n  %117 = phi i64 [%100, %$20], [%107, %$22] ; # F\n  %118 = phi i64 [%101, %$20], [%111, %$22] ; # Y\n  %119 = phi i64 [%102, %$20], [%109, %$22] ; # R\n  br label %$17\n$19:\n  %120 = phi i64 [%74, %$17] ; # Exe\n  %121 = phi i64 [%75, %$17] ; # X\n  %122 = phi i8* [%80, %$17] ; # P\n  %123 = phi i64 [%77, %$17] ; # F\n  %124 = phi i64 [%78, %$17] ; # Y\n  %125 = phi i64 [%79, %$17] ; # R\n; # (drop *Safe)\n  %126 = inttoptr i64 %69 to i64*\n  %127 = getelementptr i64, i64* %126, i32 1\n  %128 = load i64, i64* %127\n  %129 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %128, i64* %129\n  br label %$4\n$3:\n  %130 = phi i64 [%0, %$1] ; # Exe\n  %131 = phi i64 [%3, %$1] ; # X\n  br label %$4\n$4:\n  %132 = phi i64 [%120, %$19], [%130, %$3] ; # Exe\n  %133 = phi i64 [%121, %$19], [%131, %$3] ; # X\n  %134 = phi i64 [%125, %$19], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %134\n}\n\ndefine i64 @_Info(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Nm (xName (set $At2 (evSym X))) Size (b64 1)) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (set $At2 (evSym X))\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 472) to i64) to i64*\n  store i64 %4, i64* %5\n; # (xName (set $At2 (evSym X)))\n  %6 = call i64 @xName(i64 %4)\n; # (b64 1)\n  %7 = alloca i64, i64 1\n; # (if (lt0 (fileInfo (nil? (eval (car (shift X)))) (== ZERO @) (dir...\n; # (shift X)\n  %8 = inttoptr i64 %3 to i64*\n  %9 = getelementptr i64, i64* %8, i32 1\n  %10 = load i64, i64* %9\n; # (car (shift X))\n  %11 = inttoptr i64 %10 to i64*\n  %12 = load i64, i64* %11\n; # (eval (car (shift X)))\n  %13 = and i64 %12, 6\n  %14 = icmp ne i64 %13, 0\n  br i1 %14, label %$4, label %$3\n$4:\n  %15 = phi i64 [%12, %$1] ; # X\n  br label %$2\n$3:\n  %16 = phi i64 [%12, %$1] ; # X\n  %17 = and i64 %16, 8\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$6, label %$5\n$6:\n  %19 = phi i64 [%16, %$3] ; # X\n  %20 = inttoptr i64 %19 to i64*\n  %21 = load i64, i64* %20\n  br label %$2\n$5:\n  %22 = phi i64 [%16, %$3] ; # X\n  %23 = call i64 @evList(i64 %22)\n  br label %$2\n$2:\n  %24 = phi i64 [%15, %$4], [%19, %$6], [%22, %$5] ; # X\n  %25 = phi i64 [%15, %$4], [%21, %$6], [%23, %$5] ; # ->\n; # (nil? (eval (car (shift X))))\n  %26 = icmp eq i64 %25, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (== ZERO @)\n  %27 = icmp eq i64 2, %25\n; # (pathSize Nm)\n  %28 = call i64 @pathSize(i64 %6)\n; # (b8 (pathSize Nm))\n  %29 = alloca i8, i64 %28\n; # (dirString Nm (b8 (pathSize Nm)))\n  %30 = call i8* @dirString(i64 %6, i8* %29)\n; # (fileInfo (nil? (eval (car (shift X)))) (== ZERO @) (dirString Nm...\n  %31 = call i64 @fileInfo(i1 %26, i1 %27, i8* %30, i64* %7)\n; # (lt0 (fileInfo (nil? (eval (car (shift X)))) (== ZERO @) (dirStri...\n  %32 = icmp slt i64 %31, 0\n  br i1 %32, label %$7, label %$8\n$7:\n  %33 = phi i64 [%0, %$2] ; # Exe\n  %34 = phi i64 [%10, %$2] ; # X\n  %35 = phi i64 [%6, %$2] ; # Nm\n  %36 = phi i64* [%7, %$2] ; # Size\n  br label %$9\n$8:\n  %37 = phi i64 [%0, %$2] ; # Exe\n  %38 = phi i64 [%10, %$2] ; # X\n  %39 = phi i64 [%6, %$2] ; # Nm\n  %40 = phi i64* [%7, %$2] ; # Size\n; # (let N @ (cons (case (& N 3) (1 $T) (2 $Nil) (T (box64 (val Size)...\n; # (case (& N 3) (1 $T) (2 $Nil) (T (box64 (val Size))))\n; # (& N 3)\n  %41 = and i64 %31, 3\n  switch i64 %41, label %$10 [\n    i64 1, label %$12\n    i64 2, label %$13\n  ]\n$12:\n  %42 = phi i64 [%37, %$8] ; # Exe\n  %43 = phi i64 [%38, %$8] ; # X\n  %44 = phi i64 [%39, %$8] ; # Nm\n  %45 = phi i64* [%40, %$8] ; # Size\n  %46 = phi i64 [%31, %$8] ; # N\n  br label %$11\n$13:\n  %47 = phi i64 [%37, %$8] ; # Exe\n  %48 = phi i64 [%38, %$8] ; # X\n  %49 = phi i64 [%39, %$8] ; # Nm\n  %50 = phi i64* [%40, %$8] ; # Size\n  %51 = phi i64 [%31, %$8] ; # N\n  br label %$11\n$10:\n  %52 = phi i64 [%37, %$8] ; # Exe\n  %53 = phi i64 [%38, %$8] ; # X\n  %54 = phi i64 [%39, %$8] ; # Nm\n  %55 = phi i64* [%40, %$8] ; # Size\n  %56 = phi i64 [%31, %$8] ; # N\n; # (val Size)\n  %57 = load i64, i64* %55\n; # (box64 (val Size))\n  %58 = and i64 %57, 17293822569102704640\n  %59 = icmp ne i64 %58, 0\n  br i1 %59, label %$14, label %$15\n$14:\n  %60 = phi i64 [%57, %$10] ; # N\n  %61 = call i64 @boxNum(i64 %60)\n  br label %$16\n$15:\n  %62 = phi i64 [%57, %$10] ; # N\n  %63 = shl i64 %62, 4\n  %64 = or i64 %63, 2\n  br label %$16\n$16:\n  %65 = phi i64 [%60, %$14], [%62, %$15] ; # N\n  %66 = phi i64 [%61, %$14], [%64, %$15] ; # ->\n  br label %$11\n$11:\n  %67 = phi i64 [%42, %$12], [%47, %$13], [%52, %$16] ; # Exe\n  %68 = phi i64 [%43, %$12], [%48, %$13], [%53, %$16] ; # X\n  %69 = phi i64 [%44, %$12], [%49, %$13], [%54, %$16] ; # Nm\n  %70 = phi i64* [%45, %$12], [%50, %$13], [%55, %$16] ; # Size\n  %71 = phi i64 [%46, %$12], [%51, %$13], [%56, %$16] ; # N\n  %72 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%66, %$16] ; # ->\n; # (shr N 2)\n  %73 = lshr i64 %71, 2\n; # (& (setq N (shr N 2)) (hex \"FFFF\"))\n  %74 = and i64 %73, 65535\n; # (shr N 16)\n  %75 = lshr i64 %73, 16\n; # (& (setq N (shr N 16)) (hex \"FF\"))\n  %76 = and i64 %75, 255\n; # (shr N 8)\n  %77 = lshr i64 %75, 8\n; # (& (setq N (shr N 8)) (hex \"FF\"))\n  %78 = and i64 %77, 255\n; # (tmDate (& (setq N (shr N 2)) (hex \"FFFF\")) (& (setq N (shr N 16)...\n  %79 = call i64 @tmDate(i64 %74, i64 %76, i64 %78)\n; # (shr N 8)\n  %80 = lshr i64 %77, 8\n; # (cnt (shr N 8))\n  %81 = shl i64 %80, 4\n  %82 = or i64 %81, 2\n; # (cons (tmDate (& (setq N (shr N 2)) (hex \"FFFF\")) (& (setq N (shr...\n  %83 = call i64 @cons(i64 %79, i64 %82)\n; # (cons (case (& N 3) (1 $T) (2 $Nil) (T (box64 (val Size)))) (cons...\n  %84 = call i64 @cons(i64 %72, i64 %83)\n  br label %$9\n$9:\n  %85 = phi i64 [%33, %$7], [%67, %$11] ; # Exe\n  %86 = phi i64 [%34, %$7], [%68, %$11] ; # X\n  %87 = phi i64 [%35, %$7], [%69, %$11] ; # Nm\n  %88 = phi i64* [%36, %$7], [%70, %$11] ; # Size\n  %89 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$7], [%84, %$11] ; # ->\n  ret i64 %89\n}\n\ndefine i64 @_File(i64) align 8 {\n$1:\n; # (let In: (inFile (val $InFile)) (ifn (and (In:) (In: name)) $Nil ...\n; # (val $InFile)\n  %1 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 72) to i8**)\n; # (ifn (and (In:) (In: name)) $Nil (let (N (cnt (i64 (In: src))) S ...\n; # (and (In:) (In: name))\n; # (In:)\n  %2 = icmp ne i8* %1, null\n  br i1 %2, label %$3, label %$2\n$3:\n  %3 = phi i64 [%0, %$1] ; # Exe\n; # (In: name)\n  %4 = bitcast i8* %1 to i8**\n  %5 = load i8*, i8** %4\n  %6 = icmp ne i8* %5, null\n  br label %$2\n$2:\n  %7 = phi i64 [%0, %$1], [%3, %$3] ; # Exe\n  %8 = phi i1 [0, %$1], [%6, %$3] ; # ->\n  br i1 %8, label %$5, label %$4\n$4:\n  %9 = phi i64 [%7, %$2] ; # Exe\n  br label %$6\n$5:\n  %10 = phi i64 [%7, %$2] ; # Exe\n; # (let (N (cnt (i64 (In: src))) S (In: name) P (strrchr S (char \"/\"...\n; # (In: src)\n  %11 = getelementptr i8, i8* %1, i32 20\n  %12 = bitcast i8* %11 to i32*\n  %13 = load i32, i32* %12\n; # (i64 (In: src))\n  %14 = sext i32 %13 to i64\n; # (cnt (i64 (In: src)))\n  %15 = shl i64 %14, 4\n  %16 = or i64 %15, 2\n; # (In: name)\n  %17 = bitcast i8* %1 to i8**\n  %18 = load i8*, i8** %17\n; # (strrchr S (char \"/\"))\n  %19 = call i8* @strrchr(i8* %18, i32 47)\n; # (if P (let X (save (mkStrE S (inc 'P))) (cons X (cons (mkStr P) N...\n  %20 = icmp ne i8* %19, null\n  br i1 %20, label %$7, label %$8\n$7:\n  %21 = phi i64 [%10, %$5] ; # Exe\n  %22 = phi i64 [%16, %$5] ; # N\n  %23 = phi i8* [%18, %$5] ; # S\n  %24 = phi i8* [%19, %$5] ; # P\n; # (let X (save (mkStrE S (inc 'P))) (cons X (cons (mkStr P) N)))\n; # (inc 'P)\n  %25 = getelementptr i8, i8* %24, i32 1\n; # (mkStrE S (inc 'P))\n  %26 = call i64 @mkStrE(i8* %23, i8* %25)\n; # (save (mkStrE S (inc 'P)))\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %28 = load i64, i64* %27\n  %29 = alloca i64, i64 2, align 16\n  %30 = ptrtoint i64* %29 to i64\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %26, i64* %31\n  %32 = add i64 %30, 8\n  %33 = inttoptr i64 %32 to i64*\n  store i64 %28, i64* %33\n  %34 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %30, i64* %34\n; # (mkStr P)\n  %35 = call i64 @mkStr(i8* %25)\n; # (cons (mkStr P) N)\n  %36 = call i64 @cons(i64 %35, i64 %22)\n; # (cons X (cons (mkStr P) N))\n  %37 = call i64 @cons(i64 %26, i64 %36)\n; # (drop *Safe)\n  %38 = inttoptr i64 %30 to i64*\n  %39 = getelementptr i64, i64* %38, i32 1\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %40, i64* %41\n  br label %$9\n$8:\n  %42 = phi i64 [%10, %$5] ; # Exe\n  %43 = phi i64 [%16, %$5] ; # N\n  %44 = phi i8* [%18, %$5] ; # S\n  %45 = phi i8* [%19, %$5] ; # P\n; # (mkStr S)\n  %46 = call i64 @mkStr(i8* %44)\n; # (cons (mkStr S) N)\n  %47 = call i64 @cons(i64 %46, i64 %43)\n; # (cons $Nil (cons (mkStr S) N))\n  %48 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64 %47)\n  br label %$9\n$9:\n  %49 = phi i64 [%21, %$7], [%42, %$8] ; # Exe\n  %50 = phi i64 [%22, %$7], [%43, %$8] ; # N\n  %51 = phi i8* [%23, %$7], [%44, %$8] ; # S\n  %52 = phi i8* [%25, %$7], [%45, %$8] ; # P\n  %53 = phi i64 [%37, %$7], [%48, %$8] ; # ->\n  br label %$6\n$6:\n  %54 = phi i64 [%9, %$4], [%49, %$9] ; # Exe\n  %55 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$4], [%53, %$9] ; # ->\n  ret i64 %55\n}\n\ndefine i64 @_Argv(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) A (val $AV) P (val A)) (when (and P (== (val P)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (val $AV)\n  %4 = load i8**, i8*** @$AV\n; # (val A)\n  %5 = load i8*, i8** %4\n; # (when (and P (== (val P) (char \"-\")) (=0 (val 2 P))) (inc 'A))\n; # (and P (== (val P) (char \"-\")) (=0 (val 2 P)))\n  %6 = icmp ne i8* %5, null\n  br i1 %6, label %$3, label %$2\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%3, %$1] ; # X\n  %9 = phi i8** [%4, %$1] ; # A\n  %10 = phi i8* [%5, %$1] ; # P\n; # (val P)\n  %11 = load i8, i8* %10\n; # (== (val P) (char \"-\"))\n  %12 = icmp eq i8 %11, 45\n  br i1 %12, label %$4, label %$2\n$4:\n  %13 = phi i64 [%7, %$3] ; # Exe\n  %14 = phi i64 [%8, %$3] ; # X\n  %15 = phi i8** [%9, %$3] ; # A\n  %16 = phi i8* [%10, %$3] ; # P\n; # (val 2 P)\n  %17 = getelementptr i8, i8* %16, i32 1\n  %18 = load i8, i8* %17\n; # (=0 (val 2 P))\n  %19 = icmp eq i8 %18, 0\n  br label %$2\n$2:\n  %20 = phi i64 [%0, %$1], [%7, %$3], [%13, %$4] ; # Exe\n  %21 = phi i64 [%3, %$1], [%8, %$3], [%14, %$4] ; # X\n  %22 = phi i8** [%4, %$1], [%9, %$3], [%15, %$4] ; # A\n  %23 = phi i8* [%5, %$1], [%10, %$3], [%16, %$4] ; # P\n  %24 = phi i1 [0, %$1], [0, %$3], [%19, %$4] ; # ->\n  br i1 %24, label %$5, label %$6\n$5:\n  %25 = phi i64 [%20, %$2] ; # Exe\n  %26 = phi i64 [%21, %$2] ; # X\n  %27 = phi i8** [%22, %$2] ; # A\n  %28 = phi i8* [%23, %$2] ; # P\n; # (inc 'A)\n  %29 = getelementptr i8*, i8** %27, i32 1\n  br label %$6\n$6:\n  %30 = phi i64 [%20, %$2], [%25, %$5] ; # Exe\n  %31 = phi i64 [%21, %$2], [%26, %$5] ; # X\n  %32 = phi i8** [%22, %$2], [%29, %$5] ; # A\n  %33 = phi i8* [%23, %$2], [%28, %$5] ; # P\n; # (if (nil? X) (if (setq P (val A)) (let (Y (cons (mkStr P) $Nil) R...\n; # (nil? X)\n  %34 = icmp eq i64 %31, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %34, label %$7, label %$8\n$7:\n  %35 = phi i64 [%30, %$6] ; # Exe\n  %36 = phi i64 [%31, %$6] ; # X\n  %37 = phi i8** [%32, %$6] ; # A\n  %38 = phi i8* [%33, %$6] ; # P\n; # (if (setq P (val A)) (let (Y (cons (mkStr P) $Nil) R (save Y)) (w...\n; # (val A)\n  %39 = load i8*, i8** %37\n  %40 = icmp ne i8* %39, null\n  br i1 %40, label %$10, label %$11\n$10:\n  %41 = phi i64 [%35, %$7] ; # Exe\n  %42 = phi i64 [%36, %$7] ; # X\n  %43 = phi i8** [%37, %$7] ; # A\n  %44 = phi i8* [%39, %$7] ; # P\n; # (let (Y (cons (mkStr P) $Nil) R (save Y)) (while (setq P (val (in...\n; # (mkStr P)\n  %45 = call i64 @mkStr(i8* %44)\n; # (cons (mkStr P) $Nil)\n  %46 = call i64 @cons(i64 %45, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = alloca i64, i64 2, align 16\n  %50 = ptrtoint i64* %49 to i64\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %46, i64* %51\n  %52 = add i64 %50, 8\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %50, i64* %54\n; # (while (setq P (val (inc 'A))) (setq Y (set 2 Y (cons (mkStr P) $...\n  br label %$13\n$13:\n  %55 = phi i64 [%41, %$10], [%64, %$14] ; # Exe\n  %56 = phi i64 [%42, %$10], [%65, %$14] ; # X\n  %57 = phi i8** [%43, %$10], [%66, %$14] ; # A\n  %58 = phi i8* [%44, %$10], [%67, %$14] ; # P\n  %59 = phi i64 [%46, %$10], [%71, %$14] ; # Y\n  %60 = phi i64 [%46, %$10], [%69, %$14] ; # R\n; # (inc 'A)\n  %61 = getelementptr i8*, i8** %57, i32 1\n; # (val (inc 'A))\n  %62 = load i8*, i8** %61\n  %63 = icmp ne i8* %62, null\n  br i1 %63, label %$14, label %$15\n$14:\n  %64 = phi i64 [%55, %$13] ; # Exe\n  %65 = phi i64 [%56, %$13] ; # X\n  %66 = phi i8** [%61, %$13] ; # A\n  %67 = phi i8* [%62, %$13] ; # P\n  %68 = phi i64 [%59, %$13] ; # Y\n  %69 = phi i64 [%60, %$13] ; # R\n; # (set 2 Y (cons (mkStr P) $Nil))\n; # (mkStr P)\n  %70 = call i64 @mkStr(i8* %67)\n; # (cons (mkStr P) $Nil)\n  %71 = call i64 @cons(i64 %70, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %72 = inttoptr i64 %68 to i64*\n  %73 = getelementptr i64, i64* %72, i32 1\n  store i64 %71, i64* %73\n  br label %$13\n$15:\n  %74 = phi i64 [%55, %$13] ; # Exe\n  %75 = phi i64 [%56, %$13] ; # X\n  %76 = phi i8** [%61, %$13] ; # A\n  %77 = phi i8* [%62, %$13] ; # P\n  %78 = phi i64 [%59, %$13] ; # Y\n  %79 = phi i64 [%60, %$13] ; # R\n; # (drop *Safe)\n  %80 = inttoptr i64 %50 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  %82 = load i64, i64* %81\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %82, i64* %83\n  br label %$12\n$11:\n  %84 = phi i64 [%35, %$7] ; # Exe\n  %85 = phi i64 [%36, %$7] ; # X\n  %86 = phi i8** [%37, %$7] ; # A\n  %87 = phi i8* [%39, %$7] ; # P\n  br label %$12\n$12:\n  %88 = phi i64 [%74, %$15], [%84, %$11] ; # Exe\n  %89 = phi i64 [%75, %$15], [%85, %$11] ; # X\n  %90 = phi i8** [%76, %$15], [%86, %$11] ; # A\n  %91 = phi i8* [%77, %$15], [%87, %$11] ; # P\n  %92 = phi i64 [%79, %$15], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$11] ; # ->\n  br label %$9\n$8:\n  %93 = phi i64 [%30, %$6] ; # Exe\n  %94 = phi i64 [%31, %$6] ; # X\n  %95 = phi i8** [%32, %$6] ; # A\n  %96 = phi i8* [%33, %$6] ; # P\n; # (loop (? (atom X) (set (needChkVar Exe X) (if (setq P (val A)) (l...\n  br label %$16\n$16:\n  %97 = phi i64 [%93, %$8], [%228, %$41] ; # Exe\n  %98 = phi i64 [%94, %$8], [%229, %$41] ; # X\n  %99 = phi i8** [%95, %$8], [%230, %$41] ; # A\n  %100 = phi i8* [%96, %$8], [%231, %$41] ; # P\n; # (? (atom X) (set (needChkVar Exe X) (if (setq P (val A)) (let (Y ...\n; # (atom X)\n  %101 = and i64 %98, 15\n  %102 = icmp ne i64 %101, 0\n  br i1 %102, label %$19, label %$17\n$19:\n  %103 = phi i64 [%97, %$16] ; # Exe\n  %104 = phi i64 [%98, %$16] ; # X\n  %105 = phi i8** [%99, %$16] ; # A\n  %106 = phi i8* [%100, %$16] ; # P\n; # (set (needChkVar Exe X) (if (setq P (val A)) (let (Y (cons (mkStr...\n; # (needChkVar Exe X)\n  %107 = and i64 %104, 6\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$20, label %$21\n$20:\n  %109 = phi i64 [%104, %$19] ; # X\n  %110 = phi i64 [%103, %$19] ; # Exe\n  call void @varErr(i64 %110, i64 %109)\n  unreachable\n$21:\n  %111 = phi i64 [%104, %$19] ; # X\n  %112 = phi i64 [%103, %$19] ; # Exe\n  %113 = icmp uge i64 %111, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %113, label %$23, label %$22\n$23:\n  %114 = phi i64 [%111, %$21] ; # X\n  %115 = phi i64 [%112, %$21] ; # Exe\n  %116 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %114\n  br label %$22\n$22:\n  %117 = phi i64 [%111, %$21], [%114, %$23] ; # X\n  %118 = phi i64 [%112, %$21], [%115, %$23] ; # Exe\n  %119 = phi i1 [0, %$21], [%116, %$23] ; # ->\n  br i1 %119, label %$24, label %$25\n$24:\n  %120 = phi i64 [%117, %$22] ; # X\n  %121 = phi i64 [%118, %$22] ; # Exe\n  call void @protErr(i64 %121, i64 %120)\n  unreachable\n$25:\n  %122 = phi i64 [%117, %$22] ; # X\n  %123 = phi i64 [%118, %$22] ; # Exe\n; # (if (setq P (val A)) (let (Y (cons (mkStr P) $Nil) R Y) (save R (...\n; # (val A)\n  %124 = load i8*, i8** %105\n  %125 = icmp ne i8* %124, null\n  br i1 %125, label %$26, label %$27\n$26:\n  %126 = phi i64 [%103, %$25] ; # Exe\n  %127 = phi i64 [%104, %$25] ; # X\n  %128 = phi i8** [%105, %$25] ; # A\n  %129 = phi i8* [%124, %$25] ; # P\n; # (let (Y (cons (mkStr P) $Nil) R Y) (save R (while (setq P (val (i...\n; # (mkStr P)\n  %130 = call i64 @mkStr(i8* %129)\n; # (cons (mkStr P) $Nil)\n  %131 = call i64 @cons(i64 %130, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save R (while (setq P (val (inc 'A))) (setq Y (set 2 Y (cons (mk...\n  %132 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %133 = load i64, i64* %132\n  %134 = alloca i64, i64 2, align 16\n  %135 = ptrtoint i64* %134 to i64\n  %136 = inttoptr i64 %135 to i64*\n  store i64 %131, i64* %136\n  %137 = add i64 %135, 8\n  %138 = inttoptr i64 %137 to i64*\n  store i64 %133, i64* %138\n  %139 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %135, i64* %139\n; # (while (setq P (val (inc 'A))) (setq Y (set 2 Y (cons (mkStr P) $...\n  br label %$29\n$29:\n  %140 = phi i64 [%126, %$26], [%149, %$30] ; # Exe\n  %141 = phi i64 [%127, %$26], [%150, %$30] ; # X\n  %142 = phi i8** [%128, %$26], [%151, %$30] ; # A\n  %143 = phi i8* [%129, %$26], [%152, %$30] ; # P\n  %144 = phi i64 [%131, %$26], [%156, %$30] ; # Y\n  %145 = phi i64 [%131, %$26], [%154, %$30] ; # R\n; # (inc 'A)\n  %146 = getelementptr i8*, i8** %142, i32 1\n; # (val (inc 'A))\n  %147 = load i8*, i8** %146\n  %148 = icmp ne i8* %147, null\n  br i1 %148, label %$30, label %$31\n$30:\n  %149 = phi i64 [%140, %$29] ; # Exe\n  %150 = phi i64 [%141, %$29] ; # X\n  %151 = phi i8** [%146, %$29] ; # A\n  %152 = phi i8* [%147, %$29] ; # P\n  %153 = phi i64 [%144, %$29] ; # Y\n  %154 = phi i64 [%145, %$29] ; # R\n; # (set 2 Y (cons (mkStr P) $Nil))\n; # (mkStr P)\n  %155 = call i64 @mkStr(i8* %152)\n; # (cons (mkStr P) $Nil)\n  %156 = call i64 @cons(i64 %155, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %157 = inttoptr i64 %153 to i64*\n  %158 = getelementptr i64, i64* %157, i32 1\n  store i64 %156, i64* %158\n  br label %$29\n$31:\n  %159 = phi i64 [%140, %$29] ; # Exe\n  %160 = phi i64 [%141, %$29] ; # X\n  %161 = phi i8** [%146, %$29] ; # A\n  %162 = phi i8* [%147, %$29] ; # P\n  %163 = phi i64 [%144, %$29] ; # Y\n  %164 = phi i64 [%145, %$29] ; # R\n; # drop\n  %165 = inttoptr i64 %135 to i64*\n  %166 = getelementptr i64, i64* %165, i32 1\n  %167 = load i64, i64* %166\n  %168 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %167, i64* %168\n  br label %$28\n$27:\n  %169 = phi i64 [%103, %$25] ; # Exe\n  %170 = phi i64 [%104, %$25] ; # X\n  %171 = phi i8** [%105, %$25] ; # A\n  %172 = phi i8* [%124, %$25] ; # P\n  br label %$28\n$28:\n  %173 = phi i64 [%159, %$31], [%169, %$27] ; # Exe\n  %174 = phi i64 [%160, %$31], [%170, %$27] ; # X\n  %175 = phi i8** [%161, %$31], [%171, %$27] ; # A\n  %176 = phi i8* [%162, %$31], [%172, %$27] ; # P\n  %177 = phi i64 [%164, %$31], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$27] ; # ->\n  %178 = inttoptr i64 %111 to i64*\n  store i64 %177, i64* %178\n  br label %$18\n$17:\n  %179 = phi i64 [%97, %$16] ; # Exe\n  %180 = phi i64 [%98, %$16] ; # X\n  %181 = phi i8** [%99, %$16] ; # A\n  %182 = phi i8* [%100, %$16] ; # P\n; # (let Y (ifn (setq P (val A)) $Nil (inc 'A) (mkStr P)) (set (needC...\n; # (ifn (setq P (val A)) $Nil (inc 'A) (mkStr P))\n; # (val A)\n  %183 = load i8*, i8** %181\n  %184 = icmp ne i8* %183, null\n  br i1 %184, label %$33, label %$32\n$32:\n  %185 = phi i64 [%179, %$17] ; # Exe\n  %186 = phi i64 [%180, %$17] ; # X\n  %187 = phi i8** [%181, %$17] ; # A\n  %188 = phi i8* [%183, %$17] ; # P\n  br label %$34\n$33:\n  %189 = phi i64 [%179, %$17] ; # Exe\n  %190 = phi i64 [%180, %$17] ; # X\n  %191 = phi i8** [%181, %$17] ; # A\n  %192 = phi i8* [%183, %$17] ; # P\n; # (inc 'A)\n  %193 = getelementptr i8*, i8** %191, i32 1\n; # (mkStr P)\n  %194 = call i64 @mkStr(i8* %192)\n  br label %$34\n$34:\n  %195 = phi i64 [%185, %$32], [%189, %$33] ; # Exe\n  %196 = phi i64 [%186, %$32], [%190, %$33] ; # X\n  %197 = phi i8** [%187, %$32], [%193, %$33] ; # A\n  %198 = phi i8* [%188, %$32], [%192, %$33] ; # P\n  %199 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$32], [%194, %$33] ; # ->\n; # (set (needChkVar Exe (++ X)) Y)\n; # (++ X)\n  %200 = inttoptr i64 %196 to i64*\n  %201 = getelementptr i64, i64* %200, i32 1\n  %202 = load i64, i64* %201\n  %203 = load i64, i64* %200\n; # (needChkVar Exe (++ X))\n  %204 = and i64 %203, 6\n  %205 = icmp ne i64 %204, 0\n  br i1 %205, label %$35, label %$36\n$35:\n  %206 = phi i64 [%203, %$34] ; # X\n  %207 = phi i64 [%195, %$34] ; # Exe\n  call void @varErr(i64 %207, i64 %206)\n  unreachable\n$36:\n  %208 = phi i64 [%203, %$34] ; # X\n  %209 = phi i64 [%195, %$34] ; # Exe\n  %210 = icmp uge i64 %208, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %210, label %$38, label %$37\n$38:\n  %211 = phi i64 [%208, %$36] ; # X\n  %212 = phi i64 [%209, %$36] ; # Exe\n  %213 = icmp uge i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %211\n  br label %$37\n$37:\n  %214 = phi i64 [%208, %$36], [%211, %$38] ; # X\n  %215 = phi i64 [%209, %$36], [%212, %$38] ; # Exe\n  %216 = phi i1 [0, %$36], [%213, %$38] ; # ->\n  br i1 %216, label %$39, label %$40\n$39:\n  %217 = phi i64 [%214, %$37] ; # X\n  %218 = phi i64 [%215, %$37] ; # Exe\n  call void @protErr(i64 %218, i64 %217)\n  unreachable\n$40:\n  %219 = phi i64 [%214, %$37] ; # X\n  %220 = phi i64 [%215, %$37] ; # Exe\n  %221 = inttoptr i64 %208 to i64*\n  store i64 %199, i64* %221\n; # (? (nil? X) Y)\n; # (nil? X)\n  %222 = icmp eq i64 %202, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %222, label %$42, label %$41\n$42:\n  %223 = phi i64 [%195, %$40] ; # Exe\n  %224 = phi i64 [%202, %$40] ; # X\n  %225 = phi i8** [%197, %$40] ; # A\n  %226 = phi i8* [%198, %$40] ; # P\n  %227 = phi i64 [%199, %$40] ; # Y\n  br label %$18\n$41:\n  %228 = phi i64 [%195, %$40] ; # Exe\n  %229 = phi i64 [%202, %$40] ; # X\n  %230 = phi i8** [%197, %$40] ; # A\n  %231 = phi i8* [%198, %$40] ; # P\n  %232 = phi i64 [%199, %$40] ; # Y\n  br label %$16\n$18:\n  %233 = phi i64 [%173, %$28], [%223, %$42] ; # Exe\n  %234 = phi i64 [%174, %$28], [%224, %$42] ; # X\n  %235 = phi i8** [%175, %$28], [%225, %$42] ; # A\n  %236 = phi i8* [%176, %$28], [%226, %$42] ; # P\n  %237 = phi i64 [%177, %$28], [%227, %$42] ; # ->\n  br label %$9\n$9:\n  %238 = phi i64 [%88, %$12], [%233, %$18] ; # Exe\n  %239 = phi i64 [%89, %$12], [%234, %$18] ; # X\n  %240 = phi i8** [%90, %$12], [%235, %$18] ; # A\n  %241 = phi i8* [%91, %$12], [%236, %$18] ; # P\n  %242 = phi i64 [%92, %$12], [%237, %$18] ; # ->\n  ret i64 %242\n}\n\ndefine i64 @_Opt(i64) align 8 {\n$1:\n; # (let (A (val $AV) P (val A)) (if (or (=0 P) (and (== (val P) (cha...\n; # (val $AV)\n  %1 = load i8**, i8*** @$AV\n; # (val A)\n  %2 = load i8*, i8** %1\n; # (if (or (=0 P) (and (== (val P) (char \"-\")) (=0 (val 2 P)))) $Nil...\n; # (or (=0 P) (and (== (val P) (char \"-\")) (=0 (val 2 P))))\n; # (=0 P)\n  %3 = icmp eq i8* %2, null\n  br i1 %3, label %$2, label %$3\n$3:\n  %4 = phi i64 [%0, %$1] ; # Exe\n  %5 = phi i8** [%1, %$1] ; # A\n  %6 = phi i8* [%2, %$1] ; # P\n; # (and (== (val P) (char \"-\")) (=0 (val 2 P)))\n; # (val P)\n  %7 = load i8, i8* %6\n; # (== (val P) (char \"-\"))\n  %8 = icmp eq i8 %7, 45\n  br i1 %8, label %$5, label %$4\n$5:\n  %9 = phi i64 [%4, %$3] ; # Exe\n  %10 = phi i8** [%5, %$3] ; # A\n  %11 = phi i8* [%6, %$3] ; # P\n; # (val 2 P)\n  %12 = getelementptr i8, i8* %11, i32 1\n  %13 = load i8, i8* %12\n; # (=0 (val 2 P))\n  %14 = icmp eq i8 %13, 0\n  br label %$4\n$4:\n  %15 = phi i64 [%4, %$3], [%9, %$5] ; # Exe\n  %16 = phi i8** [%5, %$3], [%10, %$5] ; # A\n  %17 = phi i8* [%6, %$3], [%11, %$5] ; # P\n  %18 = phi i1 [0, %$3], [%14, %$5] ; # ->\n  br label %$2\n$2:\n  %19 = phi i64 [%0, %$1], [%15, %$4] ; # Exe\n  %20 = phi i8** [%1, %$1], [%16, %$4] ; # A\n  %21 = phi i8* [%2, %$1], [%17, %$4] ; # P\n  %22 = phi i1 [1, %$1], [%18, %$4] ; # ->\n  br i1 %22, label %$6, label %$7\n$6:\n  %23 = phi i64 [%19, %$2] ; # Exe\n  %24 = phi i8** [%20, %$2] ; # A\n  %25 = phi i8* [%21, %$2] ; # P\n  br label %$8\n$7:\n  %26 = phi i64 [%19, %$2] ; # Exe\n  %27 = phi i8** [%20, %$2] ; # A\n  %28 = phi i8* [%21, %$2] ; # P\n; # (set $AV (inc A))\n; # (inc A)\n  %29 = getelementptr i8*, i8** %27, i32 1\n  store i8** %29, i8*** @$AV\n; # (mkStr P)\n  %30 = call i64 @mkStr(i8* %28)\n  br label %$8\n$8:\n  %31 = phi i64 [%23, %$6], [%26, %$7] ; # Exe\n  %32 = phi i8** [%24, %$6], [%27, %$7] ; # A\n  %33 = phi i8* [%25, %$6], [%28, %$7] ; # P\n  %34 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6], [%30, %$7] ; # ->\n  ret i64 %34\n}\n\ndefine i64 @_Errno(i64) align 8 {\n$1:\n; # (nErrno)\n  %1 = call i32 @nErrno()\n; # (i64 (nErrno))\n  %2 = sext i32 %1 to i64\n; # (cnt (i64 (nErrno)))\n  %3 = shl i64 %2, 4\n  %4 = or i64 %3, 2\n  ret i64 %4\n}\n\ndefine i32 @fetchChar(i8**) align 8 {\n$1:\n; # (let (P (val Ptr) C (i32 (val P))) (prog2 (inc 'P) (cond ((>= 127...\n; # (val Ptr)\n  %1 = load i8*, i8** %0\n; # (val P)\n  %2 = load i8, i8* %1\n; # (i32 (val P))\n  %3 = zext i8 %2 to i32\n; # (prog2 (inc 'P) (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)...\n; # (inc 'P)\n  %4 = getelementptr i8, i8* %1, i32 1\n; # (cond ((>= 127 C) C) ((== C (hex \"FF\")) (i32 TOP)) (T (| (shl (if...\n; # (>= 127 C)\n  %5 = icmp sge i32 127, %3\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i8** [%0, %$1] ; # Ptr\n  %7 = phi i8* [%4, %$1] ; # P\n  %8 = phi i32 [%3, %$1] ; # C\n  br label %$2\n$3:\n  %9 = phi i8** [%0, %$1] ; # Ptr\n  %10 = phi i8* [%4, %$1] ; # P\n  %11 = phi i32 [%3, %$1] ; # C\n; # (== C (hex \"FF\"))\n  %12 = icmp eq i32 %11, 255\n  br i1 %12, label %$6, label %$5\n$6:\n  %13 = phi i8** [%9, %$3] ; # Ptr\n  %14 = phi i8* [%10, %$3] ; # P\n  %15 = phi i32 [%11, %$3] ; # C\n; # (i32 TOP)\n  br label %$2\n$5:\n  %16 = phi i8** [%9, %$3] ; # Ptr\n  %17 = phi i8* [%10, %$3] ; # P\n  %18 = phi i32 [%11, %$3] ; # C\n; # (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C (hex \"10...\n; # (& C (hex \"20\"))\n  %19 = and i32 %18, 32\n  %20 = icmp ne i32 %19, 0\n  br i1 %20, label %$8, label %$7\n$7:\n  %21 = phi i8** [%16, %$5] ; # Ptr\n  %22 = phi i8* [%17, %$5] ; # P\n  %23 = phi i32 [%18, %$5] ; # C\n; # (& C (hex \"1F\"))\n  %24 = and i32 %23, 31\n  br label %$9\n$8:\n  %25 = phi i8** [%16, %$5] ; # Ptr\n  %26 = phi i8* [%17, %$5] ; # P\n  %27 = phi i32 [%18, %$5] ; # C\n; # (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex \"7\")) 6)...\n; # (& C (hex \"10\"))\n  %28 = and i32 %27, 16\n  %29 = icmp ne i32 %28, 0\n  br i1 %29, label %$11, label %$10\n$10:\n  %30 = phi i8** [%25, %$8] ; # Ptr\n  %31 = phi i8* [%26, %$8] ; # P\n  %32 = phi i32 [%27, %$8] ; # C\n; # (& C (hex \"0F\"))\n  %33 = and i32 %32, 15\n  br label %$12\n$11:\n  %34 = phi i8** [%25, %$8] ; # Ptr\n  %35 = phi i8* [%26, %$8] ; # P\n  %36 = phi i32 [%27, %$8] ; # C\n; # (& C (hex \"7\"))\n  %37 = and i32 %36, 7\n; # (shl (& C (hex \"7\")) 6)\n  %38 = shl i32 %37, 6\n; # (prog1 (val P) (inc 'P))\n; # (val P)\n  %39 = load i8, i8* %35\n; # (inc 'P)\n  %40 = getelementptr i8, i8* %35, i32 1\n; # (i32 (prog1 (val P) (inc 'P)))\n  %41 = zext i8 %39 to i32\n; # (& (i32 (prog1 (val P) (inc 'P))) (hex \"3F\"))\n  %42 = and i32 %41, 63\n; # (| (shl (& C (hex \"7\")) 6) (& (i32 (prog1 (val P) (inc 'P))) (hex...\n  %43 = or i32 %38, %42\n  br label %$12\n$12:\n  %44 = phi i8** [%30, %$10], [%34, %$11] ; # Ptr\n  %45 = phi i8* [%31, %$10], [%40, %$11] ; # P\n  %46 = phi i32 [%32, %$10], [%36, %$11] ; # C\n  %47 = phi i32 [%33, %$10], [%43, %$11] ; # ->\n; # (shl (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex \"7\"...\n  %48 = shl i32 %47, 6\n; # (prog1 (val P) (inc 'P))\n; # (val P)\n  %49 = load i8, i8* %45\n; # (inc 'P)\n  %50 = getelementptr i8, i8* %45, i32 1\n; # (i32 (prog1 (val P) (inc 'P)))\n  %51 = zext i8 %49 to i32\n; # (& (i32 (prog1 (val P) (inc 'P))) (hex \"3F\"))\n  %52 = and i32 %51, 63\n; # (| (shl (ifn (& C (hex \"10\")) (& C (hex \"0F\")) (| (shl (& C (hex ...\n  %53 = or i32 %48, %52\n  br label %$9\n$9:\n  %54 = phi i8** [%21, %$7], [%44, %$12] ; # Ptr\n  %55 = phi i8* [%22, %$7], [%50, %$12] ; # P\n  %56 = phi i32 [%23, %$7], [%46, %$12] ; # C\n  %57 = phi i32 [%24, %$7], [%53, %$12] ; # ->\n; # (shl (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C (he...\n  %58 = shl i32 %57, 6\n; # (prog1 (val P) (inc 'P))\n; # (val P)\n  %59 = load i8, i8* %55\n; # (inc 'P)\n  %60 = getelementptr i8, i8* %55, i32 1\n; # (i32 (prog1 (val P) (inc 'P)))\n  %61 = zext i8 %59 to i32\n; # (& (i32 (prog1 (val P) (inc 'P))) (hex \"3F\"))\n  %62 = and i32 %61, 63\n; # (| (shl (ifn (& C (hex \"20\")) (& C (hex \"1F\")) (| (shl (ifn (& C ...\n  %63 = or i32 %58, %62\n  br label %$2\n$2:\n  %64 = phi i8** [%6, %$4], [%13, %$6], [%54, %$9] ; # Ptr\n  %65 = phi i8* [%7, %$4], [%14, %$6], [%60, %$9] ; # P\n  %66 = phi i32 [%8, %$4], [%15, %$6], [%56, %$9] ; # C\n  %67 = phi i32 [%8, %$4], [1114112, %$6], [%63, %$9] ; # ->\n; # (set Ptr P)\n  store i8* %65, i8** %64\n  ret i32 %67\n}\n\ndefine i64 @natBuf(i64, i8*) align 8 {\n$1:\n; # (if (atom Val) (if (sign? Val) (let P (i32* Ptr) (set P (i32 (int...\n; # (atom Val)\n  %2 = and i64 %0, 15\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Val\n  %5 = phi i8* [%1, %$1] ; # Ptr\n; # (if (sign? Val) (let P (i32* Ptr) (set P (i32 (int Val))) 4) (set...\n; # (sign? Val)\n  %6 = and i64 %4, 8\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$6\n$5:\n  %8 = phi i64 [%4, %$2] ; # Val\n  %9 = phi i8* [%5, %$2] ; # Ptr\n; # (let P (i32* Ptr) (set P (i32 (int Val))) 4)\n; # (i32* Ptr)\n  %10 = bitcast i8* %9 to i32*\n; # (set P (i32 (int Val)))\n; # (int Val)\n  %11 = lshr i64 %8, 4\n; # (i32 (int Val))\n  %12 = trunc i64 %11 to i32\n  store i32 %12, i32* %10\n  br label %$7\n$6:\n  %13 = phi i64 [%4, %$2] ; # Val\n  %14 = phi i8* [%5, %$2] ; # Ptr\n; # (set Ptr (i8 (int Val)))\n; # (int Val)\n  %15 = lshr i64 %13, 4\n; # (i8 (int Val))\n  %16 = trunc i64 %15 to i8\n  store i8 %16, i8* %14\n  br label %$7\n$7:\n  %17 = phi i64 [%8, %$5], [%13, %$6] ; # Val\n  %18 = phi i8* [%9, %$5], [%14, %$6] ; # Ptr\n  %19 = phi i64 [4, %$5], [1, %$6] ; # ->\n  br label %$4\n$3:\n  %20 = phi i64 [%0, %$1] ; # Val\n  %21 = phi i8* [%1, %$1] ; # Ptr\n; # (let X (++ Val) (if (cnt? Val) (let Siz (int Val) (cond ((num? X)...\n; # (++ Val)\n  %22 = inttoptr i64 %20 to i64*\n  %23 = getelementptr i64, i64* %22, i32 1\n  %24 = load i64, i64* %23\n  %25 = load i64, i64* %22\n; # (if (cnt? Val) (let Siz (int Val) (cond ((num? X) (let N (if (cnt...\n; # (cnt? Val)\n  %26 = and i64 %24, 2\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$8, label %$9\n$8:\n  %28 = phi i64 [%24, %$3] ; # Val\n  %29 = phi i8* [%21, %$3] ; # Ptr\n  %30 = phi i64 [%25, %$3] ; # X\n; # (let Siz (int Val) (cond ((num? X) (let N (if (cnt? X) (int @) (v...\n; # (int Val)\n  %31 = lshr i64 %28, 4\n; # (cond ((num? X) (let N (if (cnt? X) (int @) (val (dig @))) (when ...\n; # (num? X)\n  %32 = and i64 %30, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$13, label %$12\n$13:\n  %34 = phi i64 [%28, %$8] ; # Val\n  %35 = phi i8* [%29, %$8] ; # Ptr\n  %36 = phi i64 [%30, %$8] ; # X\n  %37 = phi i64 [%31, %$8] ; # Siz\n; # (let N (if (cnt? X) (int @) (val (dig @))) (when (sign? X) (setq ...\n; # (if (cnt? X) (int @) (val (dig @)))\n; # (cnt? X)\n  %38 = and i64 %36, 2\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$14, label %$15\n$14:\n  %40 = phi i64 [%34, %$13] ; # Val\n  %41 = phi i8* [%35, %$13] ; # Ptr\n  %42 = phi i64 [%36, %$13] ; # X\n  %43 = phi i64 [%37, %$13] ; # Siz\n; # (int @)\n  %44 = lshr i64 %36, 4\n  br label %$16\n$15:\n  %45 = phi i64 [%34, %$13] ; # Val\n  %46 = phi i8* [%35, %$13] ; # Ptr\n  %47 = phi i64 [%36, %$13] ; # X\n  %48 = phi i64 [%37, %$13] ; # Siz\n; # (dig @)\n  %49 = add i64 %36, -4\n; # (val (dig @))\n  %50 = inttoptr i64 %49 to i64*\n  %51 = load i64, i64* %50\n  br label %$16\n$16:\n  %52 = phi i64 [%40, %$14], [%45, %$15] ; # Val\n  %53 = phi i8* [%41, %$14], [%46, %$15] ; # Ptr\n  %54 = phi i64 [%42, %$14], [%47, %$15] ; # X\n  %55 = phi i64 [%43, %$14], [%48, %$15] ; # Siz\n  %56 = phi i64 [%44, %$14], [%51, %$15] ; # ->\n; # (when (sign? X) (setq N (- N)))\n; # (sign? X)\n  %57 = and i64 %54, 8\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$17:\n  %59 = phi i64 [%52, %$16] ; # Val\n  %60 = phi i8* [%53, %$16] ; # Ptr\n  %61 = phi i64 [%54, %$16] ; # X\n  %62 = phi i64 [%55, %$16] ; # Siz\n  %63 = phi i64 [%56, %$16] ; # N\n; # (- N)\n  %64 = sub i64 0, %63\n  br label %$18\n$18:\n  %65 = phi i64 [%52, %$16], [%59, %$17] ; # Val\n  %66 = phi i8* [%53, %$16], [%60, %$17] ; # Ptr\n  %67 = phi i64 [%54, %$16], [%61, %$17] ; # X\n  %68 = phi i64 [%55, %$16], [%62, %$17] ; # Siz\n  %69 = phi i64 [%56, %$16], [%64, %$17] ; # N\n; # (case Siz (1 (set Ptr (i8 N))) (2 (set (i16* Ptr) (i16 N))) (4 (s...\n  switch i64 %68, label %$19 [\n    i64 1, label %$21\n    i64 2, label %$22\n    i64 4, label %$23\n  ]\n$21:\n  %70 = phi i64 [%65, %$18] ; # Val\n  %71 = phi i8* [%66, %$18] ; # Ptr\n  %72 = phi i64 [%67, %$18] ; # X\n  %73 = phi i64 [%68, %$18] ; # Siz\n  %74 = phi i64 [%69, %$18] ; # N\n; # (set Ptr (i8 N))\n; # (i8 N)\n  %75 = trunc i64 %74 to i8\n  store i8 %75, i8* %71\n  br label %$20\n$22:\n  %76 = phi i64 [%65, %$18] ; # Val\n  %77 = phi i8* [%66, %$18] ; # Ptr\n  %78 = phi i64 [%67, %$18] ; # X\n  %79 = phi i64 [%68, %$18] ; # Siz\n  %80 = phi i64 [%69, %$18] ; # N\n; # (set (i16* Ptr) (i16 N))\n; # (i16* Ptr)\n  %81 = bitcast i8* %77 to i16*\n; # (i16 N)\n  %82 = trunc i64 %80 to i16\n  store i16 %82, i16* %81\n  br label %$20\n$23:\n  %83 = phi i64 [%65, %$18] ; # Val\n  %84 = phi i8* [%66, %$18] ; # Ptr\n  %85 = phi i64 [%67, %$18] ; # X\n  %86 = phi i64 [%68, %$18] ; # Siz\n  %87 = phi i64 [%69, %$18] ; # N\n; # (set (i32* Ptr) (i32 N))\n; # (i32* Ptr)\n  %88 = bitcast i8* %84 to i32*\n; # (i32 N)\n  %89 = trunc i64 %87 to i32\n  store i32 %89, i32* %88\n  br label %$20\n$19:\n  %90 = phi i64 [%65, %$18] ; # Val\n  %91 = phi i8* [%66, %$18] ; # Ptr\n  %92 = phi i64 [%67, %$18] ; # X\n  %93 = phi i64 [%68, %$18] ; # Siz\n  %94 = phi i64 [%69, %$18] ; # N\n; # (set (i64* Ptr) N)\n; # (i64* Ptr)\n  %95 = bitcast i8* %91 to i64*\n  store i64 %94, i64* %95\n  br label %$20\n$20:\n  %96 = phi i64 [%70, %$21], [%76, %$22], [%83, %$23], [%90, %$19] ; # Val\n  %97 = phi i8* [%71, %$21], [%77, %$22], [%84, %$23], [%91, %$19] ; # Ptr\n  %98 = phi i64 [%72, %$21], [%78, %$22], [%85, %$23], [%92, %$19] ; # X\n  %99 = phi i64 [%73, %$21], [%79, %$22], [%86, %$23], [%93, %$19] ; # Siz\n  %100 = phi i64 [%74, %$21], [%80, %$22], [%87, %$23], [%94, %$19] ; # N\n  br label %$11\n$12:\n  %101 = phi i64 [%28, %$8] ; # Val\n  %102 = phi i8* [%29, %$8] ; # Ptr\n  %103 = phi i64 [%30, %$8] ; # X\n  %104 = phi i64 [%31, %$8] ; # Siz\n; # (nil? X)\n  %105 = icmp eq i64 %103, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %105, label %$25, label %$24\n$25:\n  %106 = phi i64 [%101, %$12] ; # Val\n  %107 = phi i8* [%102, %$12] ; # Ptr\n  %108 = phi i64 [%103, %$12] ; # X\n  %109 = phi i64 [%104, %$12] ; # Siz\n; # (set Ptr (i8 0))\n; # (i8 0)\n  store i8 0, i8* %107\n  br label %$11\n$24:\n  %110 = phi i64 [%101, %$12] ; # Val\n  %111 = phi i8* [%102, %$12] ; # Ptr\n  %112 = phi i64 [%103, %$12] ; # X\n  %113 = phi i64 [%104, %$12] ; # Siz\n; # (sym? X)\n  %114 = and i64 %112, 8\n  %115 = icmp ne i64 %114, 0\n  br i1 %115, label %$27, label %$26\n$27:\n  %116 = phi i64 [%110, %$24] ; # Val\n  %117 = phi i8* [%111, %$24] ; # Ptr\n  %118 = phi i64 [%112, %$24] ; # X\n  %119 = phi i64 [%113, %$24] ; # Siz\n; # (tail X)\n  %120 = add i64 %118, -8\n; # (val (tail X))\n  %121 = inttoptr i64 %120 to i64*\n  %122 = load i64, i64* %121\n; # (name (val (tail X)))\n  br label %$28\n$28:\n  %123 = phi i64 [%122, %$27], [%129, %$29] ; # Tail\n  %124 = and i64 %123, 6\n  %125 = icmp ne i64 %124, 0\n  br i1 %125, label %$30, label %$29\n$29:\n  %126 = phi i64 [%123, %$28] ; # Tail\n  %127 = inttoptr i64 %126 to i64*\n  %128 = getelementptr i64, i64* %127, i32 1\n  %129 = load i64, i64* %128\n  br label %$28\n$30:\n  %130 = phi i64 [%123, %$28] ; # Tail\n; # (bufString X Ptr)\n  %131 = call i8* @bufString(i64 %130, i8* %117)\n  br label %$11\n$26:\n  %132 = phi i64 [%110, %$24] ; # Val\n  %133 = phi i8* [%111, %$24] ; # Ptr\n  %134 = phi i64 [%112, %$24] ; # X\n  %135 = phi i64 [%113, %$24] ; # Siz\n  br label %$11\n$11:\n  %136 = phi i64 [%96, %$20], [%106, %$25], [%116, %$30], [%132, %$26] ; # Val\n  %137 = phi i8* [%97, %$20], [%107, %$25], [%117, %$30], [%133, %$26] ; # Ptr\n  %138 = phi i64 [%98, %$20], [%108, %$25], [%130, %$30], [%134, %$26] ; # X\n  %139 = phi i64 [%99, %$20], [%109, %$25], [%119, %$30], [%135, %$26] ; # Siz\n  br label %$10\n$9:\n  %140 = phi i64 [%24, %$3] ; # Val\n  %141 = phi i8* [%21, %$3] ; # Ptr\n  %142 = phi i64 [%25, %$3] ; # X\n; # (let (N 0 Scl (int X)) (if (sign? X) (while (pair Val) (bufFloat ...\n; # (int X)\n  %143 = lshr i64 %142, 4\n; # (if (sign? X) (while (pair Val) (bufFloat (++ Val) Scl (i32* Ptr)...\n; # (sign? X)\n  %144 = and i64 %142, 8\n  %145 = icmp ne i64 %144, 0\n  br i1 %145, label %$31, label %$32\n$31:\n  %146 = phi i64 [%140, %$9] ; # Val\n  %147 = phi i8* [%141, %$9] ; # Ptr\n  %148 = phi i64 [%142, %$9] ; # X\n  %149 = phi i64 [0, %$9] ; # N\n  %150 = phi i64 [%143, %$9] ; # Scl\n; # (while (pair Val) (bufFloat (++ Val) Scl (i32* Ptr)) (inc 'N 4) (...\n  br label %$34\n$34:\n  %151 = phi i64 [%146, %$31], [%165, %$35] ; # Val\n  %152 = phi i8* [%147, %$31], [%169, %$35] ; # Ptr\n  %153 = phi i64 [%148, %$31], [%160, %$35] ; # X\n  %154 = phi i64 [%149, %$31], [%168, %$35] ; # N\n  %155 = phi i64 [%150, %$31], [%162, %$35] ; # Scl\n; # (pair Val)\n  %156 = and i64 %151, 15\n  %157 = icmp eq i64 %156, 0\n  br i1 %157, label %$35, label %$36\n$35:\n  %158 = phi i64 [%151, %$34] ; # Val\n  %159 = phi i8* [%152, %$34] ; # Ptr\n  %160 = phi i64 [%153, %$34] ; # X\n  %161 = phi i64 [%154, %$34] ; # N\n  %162 = phi i64 [%155, %$34] ; # Scl\n; # (++ Val)\n  %163 = inttoptr i64 %158 to i64*\n  %164 = getelementptr i64, i64* %163, i32 1\n  %165 = load i64, i64* %164\n  %166 = load i64, i64* %163\n; # (i32* Ptr)\n  %167 = bitcast i8* %159 to i32*\n; # (bufFloat (++ Val) Scl (i32* Ptr))\n  call void @bufFloat(i64 %166, i64 %162, i32* %167)\n; # (inc 'N 4)\n  %168 = add i64 %161, 4\n; # (ofs Ptr 4)\n  %169 = getelementptr i8, i8* %159, i32 4\n  br label %$34\n$36:\n  %170 = phi i64 [%151, %$34] ; # Val\n  %171 = phi i8* [%152, %$34] ; # Ptr\n  %172 = phi i64 [%153, %$34] ; # X\n  %173 = phi i64 [%154, %$34] ; # N\n  %174 = phi i64 [%155, %$34] ; # Scl\n  br label %$33\n$32:\n  %175 = phi i64 [%140, %$9] ; # Val\n  %176 = phi i8* [%141, %$9] ; # Ptr\n  %177 = phi i64 [%142, %$9] ; # X\n  %178 = phi i64 [0, %$9] ; # N\n  %179 = phi i64 [%143, %$9] ; # Scl\n; # (while (pair Val) (bufDouble (++ Val) Scl (i64* Ptr)) (inc 'N 8) ...\n  br label %$37\n$37:\n  %180 = phi i64 [%175, %$32], [%194, %$38] ; # Val\n  %181 = phi i8* [%176, %$32], [%198, %$38] ; # Ptr\n  %182 = phi i64 [%177, %$32], [%189, %$38] ; # X\n  %183 = phi i64 [%178, %$32], [%197, %$38] ; # N\n  %184 = phi i64 [%179, %$32], [%191, %$38] ; # Scl\n; # (pair Val)\n  %185 = and i64 %180, 15\n  %186 = icmp eq i64 %185, 0\n  br i1 %186, label %$38, label %$39\n$38:\n  %187 = phi i64 [%180, %$37] ; # Val\n  %188 = phi i8* [%181, %$37] ; # Ptr\n  %189 = phi i64 [%182, %$37] ; # X\n  %190 = phi i64 [%183, %$37] ; # N\n  %191 = phi i64 [%184, %$37] ; # Scl\n; # (++ Val)\n  %192 = inttoptr i64 %187 to i64*\n  %193 = getelementptr i64, i64* %192, i32 1\n  %194 = load i64, i64* %193\n  %195 = load i64, i64* %192\n; # (i64* Ptr)\n  %196 = bitcast i8* %188 to i64*\n; # (bufDouble (++ Val) Scl (i64* Ptr))\n  call void @bufDouble(i64 %195, i64 %191, i64* %196)\n; # (inc 'N 8)\n  %197 = add i64 %190, 8\n; # (ofs Ptr 8)\n  %198 = getelementptr i8, i8* %188, i32 8\n  br label %$37\n$39:\n  %199 = phi i64 [%180, %$37] ; # Val\n  %200 = phi i8* [%181, %$37] ; # Ptr\n  %201 = phi i64 [%182, %$37] ; # X\n  %202 = phi i64 [%183, %$37] ; # N\n  %203 = phi i64 [%184, %$37] ; # Scl\n  br label %$33\n$33:\n  %204 = phi i64 [%170, %$36], [%199, %$39] ; # Val\n  %205 = phi i8* [%171, %$36], [%200, %$39] ; # Ptr\n  %206 = phi i64 [%172, %$36], [%201, %$39] ; # X\n  %207 = phi i64 [%173, %$36], [%202, %$39] ; # N\n  %208 = phi i64 [%174, %$36], [%203, %$39] ; # Scl\n  br label %$10\n$10:\n  %209 = phi i64 [%136, %$11], [%204, %$33] ; # Val\n  %210 = phi i8* [%137, %$11], [%205, %$33] ; # Ptr\n  %211 = phi i64 [%138, %$11], [%206, %$33] ; # X\n  %212 = phi i64 [%139, %$11], [%207, %$33] ; # ->\n  br label %$4\n$4:\n  %213 = phi i64 [%17, %$7], [%209, %$10] ; # Val\n  %214 = phi i8* [%18, %$7], [%210, %$10] ; # Ptr\n  %215 = phi i64 [%19, %$7], [%212, %$10] ; # ->\n  ret i64 %215\n}\n\ndefine void @natErr(i64) align 8 {\n$1:\n; # (err 0 Spec ($ \"Bad result spec\") null)\n  call void @err(i64 0, i64 %0, i8* bitcast ([16 x i8]* @$92 to i8*), i8* null)\n  unreachable\n}\n\ndefine i64 @natRetFloat(i32, i64) align 8 {\n$1:\n; # (let R (boxFloat Val Scl) (unless R (let X (setq R (save (boxNum ...\n; # (boxFloat Val Scl)\n  %2 = call i64 @boxFloat(i32 %0, i64 %1)\n; # (unless R (let X (setq R (save (boxNum (val Fdigit)))) (until (bo...\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i32 [%0, %$1] ; # Val\n  %5 = phi i64 [%1, %$1] ; # Scl\n  %6 = phi i64 [%2, %$1] ; # R\n; # (let X (setq R (save (boxNum (val Fdigit)))) (until (boxFlt) (set...\n; # (val Fdigit)\n  %7 = load i64, i64* @Fdigit\n; # (boxNum (val Fdigit))\n  %8 = call i64 @boxNum(i64 %7)\n; # (save (boxNum (val Fdigit)))\n  %9 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %10 = load i64, i64* %9\n  %11 = alloca i64, i64 2, align 16\n  %12 = ptrtoint i64* %11 to i64\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = add i64 %12, 8\n  %15 = inttoptr i64 %14 to i64*\n  store i64 %10, i64* %15\n  %16 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %12, i64* %16\n; # (until (boxFlt) (setq X (set (big X) (boxNum (val Fdigit)))))\n  br label %$4\n$4:\n  %17 = phi i32 [%4, %$2], [%23, %$5] ; # Val\n  %18 = phi i64 [%5, %$2], [%24, %$5] ; # Scl\n  %19 = phi i64 [%8, %$2], [%25, %$5] ; # R\n  %20 = phi i64 [%8, %$2], [%29, %$5] ; # X\n; # (boxFlt)\n  %21 = call i64 @boxFlt()\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$6, label %$5\n$5:\n  %23 = phi i32 [%17, %$4] ; # Val\n  %24 = phi i64 [%18, %$4] ; # Scl\n  %25 = phi i64 [%19, %$4] ; # R\n  %26 = phi i64 [%20, %$4] ; # X\n; # (set (big X) (boxNum (val Fdigit)))\n; # (big X)\n  %27 = add i64 %26, 4\n; # (val Fdigit)\n  %28 = load i64, i64* @Fdigit\n; # (boxNum (val Fdigit))\n  %29 = call i64 @boxNum(i64 %28)\n  %30 = inttoptr i64 %27 to i64*\n  store i64 %29, i64* %30\n  br label %$4\n$6:\n  %31 = phi i32 [%17, %$4] ; # Val\n  %32 = phi i64 [%18, %$4] ; # Scl\n  %33 = phi i64 [%19, %$4] ; # R\n  %34 = phi i64 [%20, %$4] ; # X\n; # (set (big X) @)\n; # (big X)\n  %35 = add i64 %34, 4\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %21, i64* %36\n; # (drop *Safe)\n  %37 = inttoptr i64 %12 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %40\n  br label %$3\n$3:\n  %41 = phi i32 [%0, %$1], [%31, %$6] ; # Val\n  %42 = phi i64 [%1, %$1], [%32, %$6] ; # Scl\n  %43 = phi i64 [%2, %$1], [%33, %$6] ; # R\n; # (if (val Fsign) (neg R) R)\n; # (val Fsign)\n  %44 = load i1, i1* @Fsign\n  br i1 %44, label %$7, label %$8\n$7:\n  %45 = phi i32 [%41, %$3] ; # Val\n  %46 = phi i64 [%42, %$3] ; # Scl\n  %47 = phi i64 [%43, %$3] ; # R\n; # (neg R)\n  %48 = icmp eq i64 %47, 2\n  br i1 %48, label %$10, label %$11\n$10:\n  %49 = phi i64 [%47, %$7] ; # N\n  br label %$12\n$11:\n  %50 = phi i64 [%47, %$7] ; # N\n  %51 = xor i64 %50, 8\n  br label %$12\n$12:\n  %52 = phi i64 [%49, %$10], [%50, %$11] ; # N\n  %53 = phi i64 [%49, %$10], [%51, %$11] ; # ->\n  br label %$9\n$8:\n  %54 = phi i32 [%41, %$3] ; # Val\n  %55 = phi i64 [%42, %$3] ; # Scl\n  %56 = phi i64 [%43, %$3] ; # R\n  br label %$9\n$9:\n  %57 = phi i32 [%45, %$12], [%54, %$8] ; # Val\n  %58 = phi i64 [%46, %$12], [%55, %$8] ; # Scl\n  %59 = phi i64 [%47, %$12], [%56, %$8] ; # R\n  %60 = phi i64 [%53, %$12], [%56, %$8] ; # ->\n  ret i64 %60\n}\n\ndefine i64 @natRetDouble(i64, i64) align 8 {\n$1:\n; # (let R (boxDouble Val Scl) (unless R (let X (setq R (save (boxNum...\n; # (boxDouble Val Scl)\n  %2 = call i64 @boxDouble(i64 %0, i64 %1)\n; # (unless R (let X (setq R (save (boxNum (val Fdigit)))) (until (bo...\n  %3 = icmp ne i64 %2, 0\n  br i1 %3, label %$3, label %$2\n$2:\n  %4 = phi i64 [%0, %$1] ; # Val\n  %5 = phi i64 [%1, %$1] ; # Scl\n  %6 = phi i64 [%2, %$1] ; # R\n; # (let X (setq R (save (boxNum (val Fdigit)))) (until (boxDbl) (set...\n; # (val Fdigit)\n  %7 = load i64, i64* @Fdigit\n; # (boxNum (val Fdigit))\n  %8 = call i64 @boxNum(i64 %7)\n; # (save (boxNum (val Fdigit)))\n  %9 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %10 = load i64, i64* %9\n  %11 = alloca i64, i64 2, align 16\n  %12 = ptrtoint i64* %11 to i64\n  %13 = inttoptr i64 %12 to i64*\n  store i64 %8, i64* %13\n  %14 = add i64 %12, 8\n  %15 = inttoptr i64 %14 to i64*\n  store i64 %10, i64* %15\n  %16 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %12, i64* %16\n; # (until (boxDbl) (setq X (set (big X) (boxNum (val Fdigit)))))\n  br label %$4\n$4:\n  %17 = phi i64 [%4, %$2], [%23, %$5] ; # Val\n  %18 = phi i64 [%5, %$2], [%24, %$5] ; # Scl\n  %19 = phi i64 [%8, %$2], [%25, %$5] ; # R\n  %20 = phi i64 [%8, %$2], [%29, %$5] ; # X\n; # (boxDbl)\n  %21 = call i64 @boxDbl()\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$6, label %$5\n$5:\n  %23 = phi i64 [%17, %$4] ; # Val\n  %24 = phi i64 [%18, %$4] ; # Scl\n  %25 = phi i64 [%19, %$4] ; # R\n  %26 = phi i64 [%20, %$4] ; # X\n; # (set (big X) (boxNum (val Fdigit)))\n; # (big X)\n  %27 = add i64 %26, 4\n; # (val Fdigit)\n  %28 = load i64, i64* @Fdigit\n; # (boxNum (val Fdigit))\n  %29 = call i64 @boxNum(i64 %28)\n  %30 = inttoptr i64 %27 to i64*\n  store i64 %29, i64* %30\n  br label %$4\n$6:\n  %31 = phi i64 [%17, %$4] ; # Val\n  %32 = phi i64 [%18, %$4] ; # Scl\n  %33 = phi i64 [%19, %$4] ; # R\n  %34 = phi i64 [%20, %$4] ; # X\n; # (set (big X) @)\n; # (big X)\n  %35 = add i64 %34, 4\n  %36 = inttoptr i64 %35 to i64*\n  store i64 %21, i64* %36\n; # (drop *Safe)\n  %37 = inttoptr i64 %12 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  %39 = load i64, i64* %38\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %39, i64* %40\n  br label %$3\n$3:\n  %41 = phi i64 [%0, %$1], [%31, %$6] ; # Val\n  %42 = phi i64 [%1, %$1], [%32, %$6] ; # Scl\n  %43 = phi i64 [%2, %$1], [%33, %$6] ; # R\n; # (if (val Fsign) (neg R) R)\n; # (val Fsign)\n  %44 = load i1, i1* @Fsign\n  br i1 %44, label %$7, label %$8\n$7:\n  %45 = phi i64 [%41, %$3] ; # Val\n  %46 = phi i64 [%42, %$3] ; # Scl\n  %47 = phi i64 [%43, %$3] ; # R\n; # (neg R)\n  %48 = icmp eq i64 %47, 2\n  br i1 %48, label %$10, label %$11\n$10:\n  %49 = phi i64 [%47, %$7] ; # N\n  br label %$12\n$11:\n  %50 = phi i64 [%47, %$7] ; # N\n  %51 = xor i64 %50, 8\n  br label %$12\n$12:\n  %52 = phi i64 [%49, %$10], [%50, %$11] ; # N\n  %53 = phi i64 [%49, %$10], [%51, %$11] ; # ->\n  br label %$9\n$8:\n  %54 = phi i64 [%41, %$3] ; # Val\n  %55 = phi i64 [%42, %$3] ; # Scl\n  %56 = phi i64 [%43, %$3] ; # R\n  br label %$9\n$9:\n  %57 = phi i64 [%45, %$12], [%54, %$8] ; # Val\n  %58 = phi i64 [%46, %$12], [%55, %$8] ; # Scl\n  %59 = phi i64 [%47, %$12], [%56, %$8] ; # R\n  %60 = phi i64 [%53, %$12], [%56, %$8] ; # ->\n  ret i64 %60\n}\n\ndefine i64 @natRetBuf(i64, i8**) align 8 {\n$1:\n; # (cond ((t? Spec) (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) ...\n; # (t? Spec)\n  %2 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %2, label %$4, label %$3\n$4:\n  %3 = phi i64 [%0, %$1] ; # Spec\n  %4 = phi i8** [%1, %$1] ; # Ptr\n; # (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) (val P))\n; # (val Ptr)\n  %5 = load i8*, i8** %4\n; # (i64* (val Ptr))\n  %6 = bitcast i8* %5 to i64*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %7 = getelementptr i64, i64* %6, i32 1\n; # (i8* (inc P))\n  %8 = bitcast i64* %7 to i8*\n  store i8* %8, i8** %4\n; # (val P)\n  %9 = load i64, i64* %6\n  br label %$2\n$3:\n  %10 = phi i64 [%0, %$1] ; # Spec\n  %11 = phi i8** [%1, %$1] ; # Ptr\n; # (== Spec $N)\n  %12 = icmp eq i64 %10, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 328) to i64)\n  br i1 %12, label %$6, label %$5\n$6:\n  %13 = phi i64 [%10, %$3] ; # Spec\n  %14 = phi i8** [%11, %$3] ; # Ptr\n; # (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) (box (val P)))\n; # (val Ptr)\n  %15 = load i8*, i8** %14\n; # (i64* (val Ptr))\n  %16 = bitcast i8* %15 to i64*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %17 = getelementptr i64, i64* %16, i32 1\n; # (i8* (inc P))\n  %18 = bitcast i64* %17 to i8*\n  store i8* %18, i8** %14\n; # (val P)\n  %19 = load i64, i64* %16\n; # (box (val P))\n  %20 = call i64 @box(i64 %19)\n  br label %$2\n$5:\n  %21 = phi i64 [%10, %$3] ; # Spec\n  %22 = phi i8** [%11, %$3] ; # Ptr\n; # (== Spec $P)\n  %23 = icmp eq i64 %21, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 312) to i64)\n  br i1 %23, label %$8, label %$7\n$8:\n  %24 = phi i64 [%21, %$5] ; # Spec\n  %25 = phi i8** [%22, %$5] ; # Ptr\n; # (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) (box64 (val P)))\n; # (val Ptr)\n  %26 = load i8*, i8** %25\n; # (i64* (val Ptr))\n  %27 = bitcast i8* %26 to i64*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %28 = getelementptr i64, i64* %27, i32 1\n; # (i8* (inc P))\n  %29 = bitcast i64* %28 to i8*\n  store i8* %29, i8** %25\n; # (val P)\n  %30 = load i64, i64* %27\n; # (box64 (val P))\n  %31 = and i64 %30, 17293822569102704640\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$10\n$9:\n  %33 = phi i64 [%30, %$8] ; # N\n  %34 = call i64 @boxNum(i64 %33)\n  br label %$11\n$10:\n  %35 = phi i64 [%30, %$8] ; # N\n  %36 = shl i64 %35, 4\n  %37 = or i64 %36, 2\n  br label %$11\n$11:\n  %38 = phi i64 [%33, %$9], [%35, %$10] ; # N\n  %39 = phi i64 [%34, %$9], [%37, %$10] ; # ->\n  br label %$2\n$7:\n  %40 = phi i64 [%21, %$5] ; # Spec\n  %41 = phi i8** [%22, %$5] ; # Ptr\n; # (== Spec $I)\n  %42 = icmp eq i64 %40, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 360) to i64)\n  br i1 %42, label %$13, label %$12\n$13:\n  %43 = phi i64 [%40, %$7] ; # Spec\n  %44 = phi i8** [%41, %$7] ; # Ptr\n; # (if (ge0 (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (val P))...\n; # (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (val P))\n; # (val Ptr)\n  %45 = load i8*, i8** %44\n; # (i32* (val Ptr))\n  %46 = bitcast i8* %45 to i32*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %47 = getelementptr i32, i32* %46, i32 1\n; # (i8* (inc P))\n  %48 = bitcast i32* %47 to i8*\n  store i8* %48, i8** %44\n; # (val P)\n  %49 = load i32, i32* %46\n; # (ge0 (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (val P)))\n  %50 = icmp sge i32 %49, 0\n  br i1 %50, label %$14, label %$15\n$14:\n  %51 = phi i64 [%43, %$13] ; # Spec\n  %52 = phi i8** [%44, %$13] ; # Ptr\n; # (i64 @)\n  %53 = sext i32 %49 to i64\n; # (cnt (i64 @))\n  %54 = shl i64 %53, 4\n  %55 = or i64 %54, 2\n  br label %$16\n$15:\n  %56 = phi i64 [%43, %$13] ; # Spec\n  %57 = phi i8** [%44, %$13] ; # Ptr\n; # (- @)\n  %58 = sub i32 0, %49\n; # (i64 (- @))\n  %59 = sext i32 %58 to i64\n; # (cnt (i64 (- @)))\n  %60 = shl i64 %59, 4\n  %61 = or i64 %60, 2\n; # (sign (cnt (i64 (- @))))\n  %62 = or i64 %61, 8\n  br label %$16\n$16:\n  %63 = phi i64 [%51, %$14], [%56, %$15] ; # Spec\n  %64 = phi i8** [%52, %$14], [%57, %$15] ; # Ptr\n  %65 = phi i64 [%55, %$14], [%62, %$15] ; # ->\n  br label %$2\n$12:\n  %66 = phi i64 [%40, %$7] ; # Spec\n  %67 = phi i8** [%41, %$7] ; # Ptr\n; # (== Spec $U)\n  %68 = icmp eq i64 %66, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 344) to i64)\n  br i1 %68, label %$18, label %$17\n$18:\n  %69 = phi i64 [%66, %$12] ; # Spec\n  %70 = phi i8** [%67, %$12] ; # Ptr\n; # (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (cnt (i64u (val P...\n; # (val Ptr)\n  %71 = load i8*, i8** %70\n; # (i32* (val Ptr))\n  %72 = bitcast i8* %71 to i32*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %73 = getelementptr i32, i32* %72, i32 1\n; # (i8* (inc P))\n  %74 = bitcast i32* %73 to i8*\n  store i8* %74, i8** %70\n; # (val P)\n  %75 = load i32, i32* %72\n; # (i64u (val P))\n  %76 = zext i32 %75 to i64\n; # (cnt (i64u (val P)))\n  %77 = shl i64 %76, 4\n  %78 = or i64 %77, 2\n  br label %$2\n$17:\n  %79 = phi i64 [%66, %$12] ; # Spec\n  %80 = phi i8** [%67, %$12] ; # Ptr\n; # (== Spec $W)\n  %81 = icmp eq i64 %79, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 376) to i64)\n  br i1 %81, label %$20, label %$19\n$20:\n  %82 = phi i64 [%79, %$17] ; # Spec\n  %83 = phi i8** [%80, %$17] ; # Ptr\n; # (if (ge0 (let P (i16* (val Ptr)) (set Ptr (i8* (inc P))) (val P))...\n; # (let P (i16* (val Ptr)) (set Ptr (i8* (inc P))) (val P))\n; # (val Ptr)\n  %84 = load i8*, i8** %83\n; # (i16* (val Ptr))\n  %85 = bitcast i8* %84 to i16*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %86 = getelementptr i16, i16* %85, i32 1\n; # (i8* (inc P))\n  %87 = bitcast i16* %86 to i8*\n  store i8* %87, i8** %83\n; # (val P)\n  %88 = load i16, i16* %85\n; # (ge0 (let P (i16* (val Ptr)) (set Ptr (i8* (inc P))) (val P)))\n  %89 = icmp sge i16 %88, 0\n  br i1 %89, label %$21, label %$22\n$21:\n  %90 = phi i64 [%82, %$20] ; # Spec\n  %91 = phi i8** [%83, %$20] ; # Ptr\n; # (i64 @)\n  %92 = sext i16 %88 to i64\n; # (cnt (i64 @))\n  %93 = shl i64 %92, 4\n  %94 = or i64 %93, 2\n  br label %$23\n$22:\n  %95 = phi i64 [%82, %$20] ; # Spec\n  %96 = phi i8** [%83, %$20] ; # Ptr\n; # (- @)\n  %97 = sub i16 0, %88\n; # (i64 (- @))\n  %98 = sext i16 %97 to i64\n; # (cnt (i64 (- @)))\n  %99 = shl i64 %98, 4\n  %100 = or i64 %99, 2\n; # (sign (cnt (i64 (- @))))\n  %101 = or i64 %100, 8\n  br label %$23\n$23:\n  %102 = phi i64 [%90, %$21], [%95, %$22] ; # Spec\n  %103 = phi i8** [%91, %$21], [%96, %$22] ; # Ptr\n  %104 = phi i64 [%94, %$21], [%101, %$22] ; # ->\n  br label %$2\n$19:\n  %105 = phi i64 [%79, %$17] ; # Spec\n  %106 = phi i8** [%80, %$17] ; # Ptr\n; # (== Spec $C)\n  %107 = icmp eq i64 %105, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br i1 %107, label %$25, label %$24\n$25:\n  %108 = phi i64 [%105, %$19] ; # Spec\n  %109 = phi i8** [%106, %$19] ; # Ptr\n; # (if (fetchChar Ptr) (mkChar @) $Nil)\n; # (fetchChar Ptr)\n  %110 = call i32 @fetchChar(i8** %109)\n  %111 = icmp ne i32 %110, 0\n  br i1 %111, label %$26, label %$27\n$26:\n  %112 = phi i64 [%108, %$25] ; # Spec\n  %113 = phi i8** [%109, %$25] ; # Ptr\n; # (mkChar @)\n  %114 = call i64 @mkChar(i32 %110)\n  br label %$28\n$27:\n  %115 = phi i64 [%108, %$25] ; # Spec\n  %116 = phi i8** [%109, %$25] ; # Ptr\n  br label %$28\n$28:\n  %117 = phi i64 [%112, %$26], [%115, %$27] ; # Spec\n  %118 = phi i8** [%113, %$26], [%116, %$27] ; # Ptr\n  %119 = phi i64 [%114, %$26], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$27] ; # ->\n  br label %$2\n$24:\n  %120 = phi i64 [%105, %$19] ; # Spec\n  %121 = phi i8** [%106, %$19] ; # Ptr\n; # (== Spec $B)\n  %122 = icmp eq i64 %120, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 408) to i64)\n  br i1 %122, label %$30, label %$29\n$30:\n  %123 = phi i64 [%120, %$24] ; # Spec\n  %124 = phi i8** [%121, %$24] ; # Ptr\n; # (let P (val Ptr) (set Ptr (inc P)) (cnt (i64 (val P))))\n; # (val Ptr)\n  %125 = load i8*, i8** %124\n; # (set Ptr (inc P))\n; # (inc P)\n  %126 = getelementptr i8, i8* %125, i32 1\n  store i8* %126, i8** %124\n; # (val P)\n  %127 = load i8, i8* %125\n; # (i64 (val P))\n  %128 = zext i8 %127 to i64\n; # (cnt (i64 (val P)))\n  %129 = shl i64 %128, 4\n  %130 = or i64 %129, 2\n  br label %$2\n$29:\n  %131 = phi i64 [%120, %$24] ; # Spec\n  %132 = phi i8** [%121, %$24] ; # Ptr\n; # (== Spec $S)\n  %133 = icmp eq i64 %131, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 296) to i64)\n  br i1 %133, label %$32, label %$31\n$32:\n  %134 = phi i64 [%131, %$29] ; # Spec\n  %135 = phi i8** [%132, %$29] ; # Ptr\n; # (let P (i8** (val Ptr)) (set Ptr (i8* (inc P))) (mkStr (val P)))\n; # (val Ptr)\n  %136 = load i8*, i8** %135\n; # (i8** (val Ptr))\n  %137 = bitcast i8* %136 to i8**\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %138 = getelementptr i8*, i8** %137, i32 1\n; # (i8* (inc P))\n  %139 = bitcast i8** %138 to i8*\n  store i8* %139, i8** %135\n; # (val P)\n  %140 = load i8*, i8** %137\n; # (mkStr (val P))\n  %141 = call i64 @mkStr(i8* %140)\n  br label %$2\n$31:\n  %142 = phi i64 [%131, %$29] ; # Spec\n  %143 = phi i8** [%132, %$29] ; # Ptr\n; # (cnt? Spec)\n  %144 = and i64 %142, 2\n  %145 = icmp ne i64 %144, 0\n  br i1 %145, label %$34, label %$33\n$34:\n  %146 = phi i64 [%142, %$31] ; # Spec\n  %147 = phi i8** [%143, %$31] ; # Ptr\n; # (if (sign? Spec) (natRetFloat (let P (i32* (val Ptr)) (set Ptr (i...\n; # (sign? Spec)\n  %148 = and i64 %146, 8\n  %149 = icmp ne i64 %148, 0\n  br i1 %149, label %$35, label %$36\n$35:\n  %150 = phi i64 [%146, %$34] ; # Spec\n  %151 = phi i8** [%147, %$34] ; # Ptr\n; # (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (val P))\n; # (val Ptr)\n  %152 = load i8*, i8** %151\n; # (i32* (val Ptr))\n  %153 = bitcast i8* %152 to i32*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %154 = getelementptr i32, i32* %153, i32 1\n; # (i8* (inc P))\n  %155 = bitcast i32* %154 to i8*\n  store i8* %155, i8** %151\n; # (val P)\n  %156 = load i32, i32* %153\n; # (int Spec)\n  %157 = lshr i64 %150, 4\n; # (natRetFloat (let P (i32* (val Ptr)) (set Ptr (i8* (inc P))) (val...\n  %158 = call i64 @natRetFloat(i32 %156, i64 %157)\n  br label %$37\n$36:\n  %159 = phi i64 [%146, %$34] ; # Spec\n  %160 = phi i8** [%147, %$34] ; # Ptr\n; # (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) (val P))\n; # (val Ptr)\n  %161 = load i8*, i8** %160\n; # (i64* (val Ptr))\n  %162 = bitcast i8* %161 to i64*\n; # (set Ptr (i8* (inc P)))\n; # (inc P)\n  %163 = getelementptr i64, i64* %162, i32 1\n; # (i8* (inc P))\n  %164 = bitcast i64* %163 to i8*\n  store i8* %164, i8** %160\n; # (val P)\n  %165 = load i64, i64* %162\n; # (int Spec)\n  %166 = lshr i64 %159, 4\n; # (natRetDouble (let P (i64* (val Ptr)) (set Ptr (i8* (inc P))) (va...\n  %167 = call i64 @natRetDouble(i64 %165, i64 %166)\n  br label %$37\n$37:\n  %168 = phi i64 [%150, %$35], [%159, %$36] ; # Spec\n  %169 = phi i8** [%151, %$35], [%160, %$36] ; # Ptr\n  %170 = phi i64 [%158, %$35], [%167, %$36] ; # ->\n  br label %$2\n$33:\n  %171 = phi i64 [%142, %$31] ; # Spec\n  %172 = phi i8** [%143, %$31] ; # Ptr\n; # (pair Spec)\n  %173 = and i64 %171, 15\n  %174 = icmp eq i64 %173, 0\n  br i1 %174, label %$39, label %$38\n$39:\n  %175 = phi i64 [%171, %$33] ; # Spec\n  %176 = phi i8** [%172, %$33] ; # Ptr\n; # (let (S (++ Spec) R (natRetBuf S Ptr)) (unless (and (nil? R) (== ...\n; # (++ Spec)\n  %177 = inttoptr i64 %175 to i64*\n  %178 = getelementptr i64, i64* %177, i32 1\n  %179 = load i64, i64* %178\n  %180 = load i64, i64* %177\n; # (natRetBuf S Ptr)\n  %181 = call i64 @natRetBuf(i64 %180, i8** %176)\n; # (unless (and (nil? R) (== S $C)) (let X (setq R (save (cons R $Ni...\n; # (and (nil? R) (== S $C))\n; # (nil? R)\n  %182 = icmp eq i64 %181, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %182, label %$41, label %$40\n$41:\n  %183 = phi i64 [%179, %$39] ; # Spec\n  %184 = phi i8** [%176, %$39] ; # Ptr\n  %185 = phi i64 [%180, %$39] ; # S\n  %186 = phi i64 [%181, %$39] ; # R\n; # (== S $C)\n  %187 = icmp eq i64 %185, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$40\n$40:\n  %188 = phi i64 [%179, %$39], [%183, %$41] ; # Spec\n  %189 = phi i8** [%176, %$39], [%184, %$41] ; # Ptr\n  %190 = phi i64 [%180, %$39], [%185, %$41] ; # S\n  %191 = phi i64 [%181, %$39], [%186, %$41] ; # R\n  %192 = phi i1 [0, %$39], [%187, %$41] ; # ->\n  br i1 %192, label %$43, label %$42\n$42:\n  %193 = phi i64 [%188, %$40] ; # Spec\n  %194 = phi i8** [%189, %$40] ; # Ptr\n  %195 = phi i64 [%190, %$40] ; # S\n  %196 = phi i64 [%191, %$40] ; # R\n; # (let X (setq R (save (cons R $Nil))) (loop (? (cnt? Spec) (let C ...\n; # (cons R $Nil)\n  %197 = call i64 @cons(i64 %196, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons R $Nil))\n  %198 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %199 = load i64, i64* %198\n  %200 = alloca i64, i64 2, align 16\n  %201 = ptrtoint i64* %200 to i64\n  %202 = inttoptr i64 %201 to i64*\n  store i64 %197, i64* %202\n  %203 = add i64 %201, 8\n  %204 = inttoptr i64 %203 to i64*\n  store i64 %199, i64* %204\n  %205 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %201, i64* %205\n; # (loop (? (cnt? Spec) (let C (int Spec) (while (dec 'C) (let Y (na...\n  br label %$44\n$44:\n  %206 = phi i64 [%193, %$42], [%299, %$57] ; # Spec\n  %207 = phi i8** [%194, %$42], [%300, %$57] ; # Ptr\n  %208 = phi i64 [%195, %$42], [%301, %$57] ; # S\n  %209 = phi i64 [%197, %$42], [%302, %$57] ; # R\n  %210 = phi i64 [%197, %$42], [%305, %$57] ; # X\n; # (? (cnt? Spec) (let C (int Spec) (while (dec 'C) (let Y (natRetBu...\n; # (cnt? Spec)\n  %211 = and i64 %206, 2\n  %212 = icmp ne i64 %211, 0\n  br i1 %212, label %$47, label %$45\n$47:\n  %213 = phi i64 [%206, %$44] ; # Spec\n  %214 = phi i8** [%207, %$44] ; # Ptr\n  %215 = phi i64 [%208, %$44] ; # S\n  %216 = phi i64 [%209, %$44] ; # R\n  %217 = phi i64 [%210, %$44] ; # X\n; # (let C (int Spec) (while (dec 'C) (let Y (natRetBuf S Ptr) (? (an...\n; # (int Spec)\n  %218 = lshr i64 %213, 4\n; # (while (dec 'C) (let Y (natRetBuf S Ptr) (? (and (nil? Y) (== S $...\n  br label %$48\n$48:\n  %219 = phi i64 [%213, %$47], [%251, %$53] ; # Spec\n  %220 = phi i8** [%214, %$47], [%252, %$53] ; # Ptr\n  %221 = phi i64 [%215, %$47], [%253, %$53] ; # S\n  %222 = phi i64 [%216, %$47], [%254, %$53] ; # R\n  %223 = phi i64 [%217, %$47], [%258, %$53] ; # X\n  %224 = phi i64 [%218, %$47], [%256, %$53] ; # C\n; # (dec 'C)\n  %225 = sub i64 %224, 1\n  %226 = icmp ne i64 %225, 0\n  br i1 %226, label %$49, label %$50\n$49:\n  %227 = phi i64 [%219, %$48] ; # Spec\n  %228 = phi i8** [%220, %$48] ; # Ptr\n  %229 = phi i64 [%221, %$48] ; # S\n  %230 = phi i64 [%222, %$48] ; # R\n  %231 = phi i64 [%223, %$48] ; # X\n  %232 = phi i64 [%225, %$48] ; # C\n; # (let Y (natRetBuf S Ptr) (? (and (nil? Y) (== S $C))) (setq X (se...\n; # (natRetBuf S Ptr)\n  %233 = call i64 @natRetBuf(i64 %229, i8** %228)\n; # (? (and (nil? Y) (== S $C)))\n; # (and (nil? Y) (== S $C))\n; # (nil? Y)\n  %234 = icmp eq i64 %233, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %234, label %$52, label %$51\n$52:\n  %235 = phi i64 [%227, %$49] ; # Spec\n  %236 = phi i8** [%228, %$49] ; # Ptr\n  %237 = phi i64 [%229, %$49] ; # S\n  %238 = phi i64 [%230, %$49] ; # R\n  %239 = phi i64 [%231, %$49] ; # X\n  %240 = phi i64 [%232, %$49] ; # C\n  %241 = phi i64 [%233, %$49] ; # Y\n; # (== S $C)\n  %242 = icmp eq i64 %237, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$51\n$51:\n  %243 = phi i64 [%227, %$49], [%235, %$52] ; # Spec\n  %244 = phi i8** [%228, %$49], [%236, %$52] ; # Ptr\n  %245 = phi i64 [%229, %$49], [%237, %$52] ; # S\n  %246 = phi i64 [%230, %$49], [%238, %$52] ; # R\n  %247 = phi i64 [%231, %$49], [%239, %$52] ; # X\n  %248 = phi i64 [%232, %$49], [%240, %$52] ; # C\n  %249 = phi i64 [%233, %$49], [%241, %$52] ; # Y\n  %250 = phi i1 [0, %$49], [%242, %$52] ; # ->\n  br i1 %250, label %$50, label %$53\n$53:\n  %251 = phi i64 [%243, %$51] ; # Spec\n  %252 = phi i8** [%244, %$51] ; # Ptr\n  %253 = phi i64 [%245, %$51] ; # S\n  %254 = phi i64 [%246, %$51] ; # R\n  %255 = phi i64 [%247, %$51] ; # X\n  %256 = phi i64 [%248, %$51] ; # C\n  %257 = phi i64 [%249, %$51] ; # Y\n; # (set 2 X (cons Y $Nil))\n; # (cons Y $Nil)\n  %258 = call i64 @cons(i64 %257, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %259 = inttoptr i64 %255 to i64*\n  %260 = getelementptr i64, i64* %259, i32 1\n  store i64 %258, i64* %260\n  br label %$48\n$50:\n  %261 = phi i64 [%219, %$48], [%243, %$51] ; # Spec\n  %262 = phi i8** [%220, %$48], [%244, %$51] ; # Ptr\n  %263 = phi i64 [%221, %$48], [%245, %$51] ; # S\n  %264 = phi i64 [%222, %$48], [%246, %$51] ; # R\n  %265 = phi i64 [%223, %$48], [%247, %$51] ; # X\n  %266 = phi i64 [%225, %$48], [%248, %$51] ; # C\n  br label %$46\n$45:\n  %267 = phi i64 [%206, %$44] ; # Spec\n  %268 = phi i8** [%207, %$44] ; # Ptr\n  %269 = phi i64 [%208, %$44] ; # S\n  %270 = phi i64 [%209, %$44] ; # R\n  %271 = phi i64 [%210, %$44] ; # X\n; # (? (atom Spec))\n; # (atom Spec)\n  %272 = and i64 %267, 15\n  %273 = icmp ne i64 %272, 0\n  br i1 %273, label %$46, label %$54\n$54:\n  %274 = phi i64 [%267, %$45] ; # Spec\n  %275 = phi i8** [%268, %$45] ; # Ptr\n  %276 = phi i64 [%269, %$45] ; # S\n  %277 = phi i64 [%270, %$45] ; # R\n  %278 = phi i64 [%271, %$45] ; # X\n; # (let Y (natRetBuf (setq S (++ Spec)) Ptr) (? (and (nil? Y) (== S ...\n; # (++ Spec)\n  %279 = inttoptr i64 %274 to i64*\n  %280 = getelementptr i64, i64* %279, i32 1\n  %281 = load i64, i64* %280\n  %282 = load i64, i64* %279\n; # (natRetBuf (setq S (++ Spec)) Ptr)\n  %283 = call i64 @natRetBuf(i64 %282, i8** %275)\n; # (? (and (nil? Y) (== S $C)))\n; # (and (nil? Y) (== S $C))\n; # (nil? Y)\n  %284 = icmp eq i64 %283, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %284, label %$56, label %$55\n$56:\n  %285 = phi i64 [%281, %$54] ; # Spec\n  %286 = phi i8** [%275, %$54] ; # Ptr\n  %287 = phi i64 [%282, %$54] ; # S\n  %288 = phi i64 [%277, %$54] ; # R\n  %289 = phi i64 [%278, %$54] ; # X\n  %290 = phi i64 [%283, %$54] ; # Y\n; # (== S $C)\n  %291 = icmp eq i64 %287, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$55\n$55:\n  %292 = phi i64 [%281, %$54], [%285, %$56] ; # Spec\n  %293 = phi i8** [%275, %$54], [%286, %$56] ; # Ptr\n  %294 = phi i64 [%282, %$54], [%287, %$56] ; # S\n  %295 = phi i64 [%277, %$54], [%288, %$56] ; # R\n  %296 = phi i64 [%278, %$54], [%289, %$56] ; # X\n  %297 = phi i64 [%283, %$54], [%290, %$56] ; # Y\n  %298 = phi i1 [0, %$54], [%291, %$56] ; # ->\n  br i1 %298, label %$46, label %$57\n$57:\n  %299 = phi i64 [%292, %$55] ; # Spec\n  %300 = phi i8** [%293, %$55] ; # Ptr\n  %301 = phi i64 [%294, %$55] ; # S\n  %302 = phi i64 [%295, %$55] ; # R\n  %303 = phi i64 [%296, %$55] ; # X\n  %304 = phi i64 [%297, %$55] ; # Y\n; # (set 2 X (cons Y $Nil))\n; # (cons Y $Nil)\n  %305 = call i64 @cons(i64 %304, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %306 = inttoptr i64 %303 to i64*\n  %307 = getelementptr i64, i64* %306, i32 1\n  store i64 %305, i64* %307\n  br label %$44\n$46:\n  %308 = phi i64 [%261, %$50], [%267, %$45], [%292, %$55] ; # Spec\n  %309 = phi i8** [%262, %$50], [%268, %$45], [%293, %$55] ; # Ptr\n  %310 = phi i64 [%263, %$50], [%269, %$45], [%294, %$55] ; # S\n  %311 = phi i64 [%264, %$50], [%270, %$45], [%295, %$55] ; # R\n  %312 = phi i64 [%265, %$50], [%271, %$45], [%296, %$55] ; # X\n; # (drop *Safe)\n  %313 = inttoptr i64 %201 to i64*\n  %314 = getelementptr i64, i64* %313, i32 1\n  %315 = load i64, i64* %314\n  %316 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %315, i64* %316\n  br label %$43\n$43:\n  %317 = phi i64 [%188, %$40], [%308, %$46] ; # Spec\n  %318 = phi i8** [%189, %$40], [%309, %$46] ; # Ptr\n  %319 = phi i64 [%190, %$40], [%310, %$46] ; # S\n  %320 = phi i64 [%191, %$40], [%311, %$46] ; # R\n  br label %$2\n$38:\n  %321 = phi i64 [%171, %$33] ; # Spec\n  %322 = phi i8** [%172, %$33] ; # Ptr\n; # (natErr Spec)\n  call void @natErr(i64 %321)\n  unreachable\n$2:\n  %323 = phi i64 [%3, %$4], [%13, %$6], [%24, %$11], [%63, %$16], [%69, %$18], [%102, %$23], [%117, %$28], [%123, %$30], [%134, %$32], [%168, %$37], [%317, %$43] ; # Spec\n  %324 = phi i8** [%4, %$4], [%14, %$6], [%25, %$11], [%64, %$16], [%70, %$18], [%103, %$23], [%118, %$28], [%124, %$30], [%135, %$32], [%169, %$37], [%318, %$43] ; # Ptr\n  %325 = phi i64 [%9, %$4], [%20, %$6], [%39, %$11], [%65, %$16], [%78, %$18], [%104, %$23], [%119, %$28], [%130, %$30], [%141, %$32], [%170, %$37], [%320, %$43] ; # ->\n  ret i64 %325\n}\n\ndefine i64 @ffi(i64, i8*, i64, i64) align 8 {\n$1:\n; # (let (Spec (car Args) Val (ffiCall (cond ((cnt? Fun) (i8* (int Fu...\n; # (car Args)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (cond ((cnt? Fun) (i8* (int Fun))) ((big? Fun) (i8* (val (dig Fun...\n; # (cnt? Fun)\n  %6 = and i64 %2, 2\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%0, %$1] ; # Exe\n  %9 = phi i8* [%1, %$1] ; # Lib\n  %10 = phi i64 [%2, %$1] ; # Fun\n  %11 = phi i64 [%3, %$1] ; # Args\n  %12 = phi i64 [%5, %$1] ; # Spec\n; # (int Fun)\n  %13 = lshr i64 %10, 4\n; # (i8* (int Fun))\n  %14 = inttoptr i64 %13 to i8*\n  br label %$2\n$3:\n  %15 = phi i64 [%0, %$1] ; # Exe\n  %16 = phi i8* [%1, %$1] ; # Lib\n  %17 = phi i64 [%2, %$1] ; # Fun\n  %18 = phi i64 [%3, %$1] ; # Args\n  %19 = phi i64 [%5, %$1] ; # Spec\n; # (big? Fun)\n  %20 = and i64 %17, 4\n  %21 = icmp ne i64 %20, 0\n  br i1 %21, label %$6, label %$5\n$6:\n  %22 = phi i64 [%15, %$3] ; # Exe\n  %23 = phi i8* [%16, %$3] ; # Lib\n  %24 = phi i64 [%17, %$3] ; # Fun\n  %25 = phi i64 [%18, %$3] ; # Args\n  %26 = phi i64 [%19, %$3] ; # Spec\n; # (dig Fun)\n  %27 = add i64 %24, -4\n; # (val (dig Fun))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n; # (i8* (val (dig Fun)))\n  %30 = inttoptr i64 %29 to i8*\n  br label %$2\n$5:\n  %31 = phi i64 [%15, %$3] ; # Exe\n  %32 = phi i8* [%16, %$3] ; # Lib\n  %33 = phi i64 [%17, %$3] ; # Fun\n  %34 = phi i64 [%18, %$3] ; # Args\n  %35 = phi i64 [%19, %$3] ; # Spec\n; # (pair Fun)\n  %36 = and i64 %33, 15\n  %37 = icmp eq i64 %36, 0\n  br i1 %37, label %$8, label %$7\n$8:\n  %38 = phi i64 [%31, %$5] ; # Exe\n  %39 = phi i8* [%32, %$5] ; # Lib\n  %40 = phi i64 [%33, %$5] ; # Fun\n  %41 = phi i64 [%34, %$5] ; # Args\n  %42 = phi i64 [%35, %$5] ; # Spec\n; # (argErr Exe Fun)\n  call void @argErr(i64 %38, i64 %40)\n  unreachable\n$7:\n  %43 = phi i64 [%31, %$5] ; # Exe\n  %44 = phi i8* [%32, %$5] ; # Lib\n  %45 = phi i64 [%33, %$5] ; # Fun\n  %46 = phi i64 [%34, %$5] ; # Args\n  %47 = phi i64 [%35, %$5] ; # Spec\n; # (let Nm (xName Fun) (unless (ffiPrep Lib (bufString Nm (b8 (bufSi...\n; # (xName Fun)\n  %48 = call i64 @xName(i64 %45)\n; # (unless (ffiPrep Lib (bufString Nm (b8 (bufSize Nm))) Args) (err ...\n; # (bufSize Nm)\n  %49 = call i64 @bufSize(i64 %48)\n; # (b8 (bufSize Nm))\n  %50 = alloca i8, i64 %49\n; # (bufString Nm (b8 (bufSize Nm)))\n  %51 = call i8* @bufString(i64 %48, i8* %50)\n; # (ffiPrep Lib (bufString Nm (b8 (bufSize Nm))) Args)\n  %52 = call i8* @ffiPrep(i8* %44, i8* %51, i64 %46)\n  %53 = icmp ne i8* %52, null\n  br i1 %53, label %$10, label %$9\n$9:\n  %54 = phi i64 [%43, %$7] ; # Exe\n  %55 = phi i8* [%44, %$7] ; # Lib\n  %56 = phi i64 [%45, %$7] ; # Fun\n  %57 = phi i64 [%46, %$7] ; # Args\n  %58 = phi i64 [%47, %$7] ; # Spec\n  %59 = phi i64 [%48, %$7] ; # Nm\n; # (err Exe 0 ($ \"Bad ffi\") null)\n  call void @err(i64 %54, i64 0, i8* bitcast ([8 x i8]* @$93 to i8*), i8* null)\n  unreachable\n$10:\n  %60 = phi i64 [%43, %$7] ; # Exe\n  %61 = phi i8* [%44, %$7] ; # Lib\n  %62 = phi i64 [%45, %$7] ; # Fun\n  %63 = phi i64 [%46, %$7] ; # Args\n  %64 = phi i64 [%47, %$7] ; # Spec\n  %65 = phi i64 [%48, %$7] ; # Nm\n; # (set Fun (box64 (i64 @)))\n; # (i64 @)\n  %66 = ptrtoint i8* %52 to i64\n; # (box64 (i64 @))\n  %67 = and i64 %66, 17293822569102704640\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$11, label %$12\n$11:\n  %69 = phi i64 [%66, %$10] ; # N\n  %70 = call i64 @boxNum(i64 %69)\n  br label %$13\n$12:\n  %71 = phi i64 [%66, %$10] ; # N\n  %72 = shl i64 %71, 4\n  %73 = or i64 %72, 2\n  br label %$13\n$13:\n  %74 = phi i64 [%69, %$11], [%71, %$12] ; # N\n  %75 = phi i64 [%70, %$11], [%73, %$12] ; # ->\n  %76 = inttoptr i64 %62 to i64*\n  store i64 %75, i64* %76\n  br label %$2\n$2:\n  %77 = phi i64 [%8, %$4], [%22, %$6], [%60, %$13] ; # Exe\n  %78 = phi i8* [%9, %$4], [%23, %$6], [%61, %$13] ; # Lib\n  %79 = phi i64 [%10, %$4], [%24, %$6], [%62, %$13] ; # Fun\n  %80 = phi i64 [%11, %$4], [%25, %$6], [%63, %$13] ; # Args\n  %81 = phi i64 [%12, %$4], [%26, %$6], [%64, %$13] ; # Spec\n  %82 = phi i8* [%14, %$4], [%30, %$6], [%52, %$13] ; # ->\n; # (cdr Args)\n  %83 = inttoptr i64 %80 to i64*\n  %84 = getelementptr i64, i64* %83, i32 1\n  %85 = load i64, i64* %84\n; # (ffiCall (cond ((cnt? Fun) (i8* (int Fun))) ((big? Fun) (i8* (val...\n  %86 = call i64 @ffiCall(i8* %82, i64 %85)\n; # (cond ((nil? Spec) $Nil) ((== Spec $T) Val) ((== Spec $N) (box Va...\n; # (nil? Spec)\n  %87 = icmp eq i64 %81, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %87, label %$16, label %$15\n$16:\n  %88 = phi i64 [%77, %$2] ; # Exe\n  %89 = phi i8* [%78, %$2] ; # Lib\n  %90 = phi i64 [%79, %$2] ; # Fun\n  %91 = phi i64 [%80, %$2] ; # Args\n  %92 = phi i64 [%81, %$2] ; # Spec\n  %93 = phi i64 [%86, %$2] ; # Val\n  br label %$14\n$15:\n  %94 = phi i64 [%77, %$2] ; # Exe\n  %95 = phi i8* [%78, %$2] ; # Lib\n  %96 = phi i64 [%79, %$2] ; # Fun\n  %97 = phi i64 [%80, %$2] ; # Args\n  %98 = phi i64 [%81, %$2] ; # Spec\n  %99 = phi i64 [%86, %$2] ; # Val\n; # (== Spec $T)\n  %100 = icmp eq i64 %98, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %100, label %$18, label %$17\n$18:\n  %101 = phi i64 [%94, %$15] ; # Exe\n  %102 = phi i8* [%95, %$15] ; # Lib\n  %103 = phi i64 [%96, %$15] ; # Fun\n  %104 = phi i64 [%97, %$15] ; # Args\n  %105 = phi i64 [%98, %$15] ; # Spec\n  %106 = phi i64 [%99, %$15] ; # Val\n  br label %$14\n$17:\n  %107 = phi i64 [%94, %$15] ; # Exe\n  %108 = phi i8* [%95, %$15] ; # Lib\n  %109 = phi i64 [%96, %$15] ; # Fun\n  %110 = phi i64 [%97, %$15] ; # Args\n  %111 = phi i64 [%98, %$15] ; # Spec\n  %112 = phi i64 [%99, %$15] ; # Val\n; # (== Spec $N)\n  %113 = icmp eq i64 %111, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 328) to i64)\n  br i1 %113, label %$20, label %$19\n$20:\n  %114 = phi i64 [%107, %$17] ; # Exe\n  %115 = phi i8* [%108, %$17] ; # Lib\n  %116 = phi i64 [%109, %$17] ; # Fun\n  %117 = phi i64 [%110, %$17] ; # Args\n  %118 = phi i64 [%111, %$17] ; # Spec\n  %119 = phi i64 [%112, %$17] ; # Val\n; # (box Val)\n  %120 = call i64 @box(i64 %119)\n  br label %$14\n$19:\n  %121 = phi i64 [%107, %$17] ; # Exe\n  %122 = phi i8* [%108, %$17] ; # Lib\n  %123 = phi i64 [%109, %$17] ; # Fun\n  %124 = phi i64 [%110, %$17] ; # Args\n  %125 = phi i64 [%111, %$17] ; # Spec\n  %126 = phi i64 [%112, %$17] ; # Val\n; # (== Spec $P)\n  %127 = icmp eq i64 %125, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 312) to i64)\n  br i1 %127, label %$22, label %$21\n$22:\n  %128 = phi i64 [%121, %$19] ; # Exe\n  %129 = phi i8* [%122, %$19] ; # Lib\n  %130 = phi i64 [%123, %$19] ; # Fun\n  %131 = phi i64 [%124, %$19] ; # Args\n  %132 = phi i64 [%125, %$19] ; # Spec\n  %133 = phi i64 [%126, %$19] ; # Val\n; # (box64 Val)\n  %134 = and i64 %133, 17293822569102704640\n  %135 = icmp ne i64 %134, 0\n  br i1 %135, label %$23, label %$24\n$23:\n  %136 = phi i64 [%133, %$22] ; # N\n  %137 = call i64 @boxNum(i64 %136)\n  br label %$25\n$24:\n  %138 = phi i64 [%133, %$22] ; # N\n  %139 = shl i64 %138, 4\n  %140 = or i64 %139, 2\n  br label %$25\n$25:\n  %141 = phi i64 [%136, %$23], [%138, %$24] ; # N\n  %142 = phi i64 [%137, %$23], [%140, %$24] ; # ->\n  br label %$14\n$21:\n  %143 = phi i64 [%121, %$19] ; # Exe\n  %144 = phi i8* [%122, %$19] ; # Lib\n  %145 = phi i64 [%123, %$19] ; # Fun\n  %146 = phi i64 [%124, %$19] ; # Args\n  %147 = phi i64 [%125, %$19] ; # Spec\n  %148 = phi i64 [%126, %$19] ; # Val\n; # (== Spec $I)\n  %149 = icmp eq i64 %147, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 360) to i64)\n  br i1 %149, label %$27, label %$26\n$27:\n  %150 = phi i64 [%143, %$21] ; # Exe\n  %151 = phi i8* [%144, %$21] ; # Lib\n  %152 = phi i64 [%145, %$21] ; # Fun\n  %153 = phi i64 [%146, %$21] ; # Args\n  %154 = phi i64 [%147, %$21] ; # Spec\n  %155 = phi i64 [%148, %$21] ; # Val\n; # (if (ge0 (i32 Val)) (cnt (i64 @)) (sign (cnt (i64 (- @)))))\n; # (i32 Val)\n  %156 = trunc i64 %155 to i32\n; # (ge0 (i32 Val))\n  %157 = icmp sge i32 %156, 0\n  br i1 %157, label %$28, label %$29\n$28:\n  %158 = phi i64 [%150, %$27] ; # Exe\n  %159 = phi i8* [%151, %$27] ; # Lib\n  %160 = phi i64 [%152, %$27] ; # Fun\n  %161 = phi i64 [%153, %$27] ; # Args\n  %162 = phi i64 [%154, %$27] ; # Spec\n  %163 = phi i64 [%155, %$27] ; # Val\n; # (i64 @)\n  %164 = sext i32 %156 to i64\n; # (cnt (i64 @))\n  %165 = shl i64 %164, 4\n  %166 = or i64 %165, 2\n  br label %$30\n$29:\n  %167 = phi i64 [%150, %$27] ; # Exe\n  %168 = phi i8* [%151, %$27] ; # Lib\n  %169 = phi i64 [%152, %$27] ; # Fun\n  %170 = phi i64 [%153, %$27] ; # Args\n  %171 = phi i64 [%154, %$27] ; # Spec\n  %172 = phi i64 [%155, %$27] ; # Val\n; # (- @)\n  %173 = sub i32 0, %156\n; # (i64 (- @))\n  %174 = sext i32 %173 to i64\n; # (cnt (i64 (- @)))\n  %175 = shl i64 %174, 4\n  %176 = or i64 %175, 2\n; # (sign (cnt (i64 (- @))))\n  %177 = or i64 %176, 8\n  br label %$30\n$30:\n  %178 = phi i64 [%158, %$28], [%167, %$29] ; # Exe\n  %179 = phi i8* [%159, %$28], [%168, %$29] ; # Lib\n  %180 = phi i64 [%160, %$28], [%169, %$29] ; # Fun\n  %181 = phi i64 [%161, %$28], [%170, %$29] ; # Args\n  %182 = phi i64 [%162, %$28], [%171, %$29] ; # Spec\n  %183 = phi i64 [%163, %$28], [%172, %$29] ; # Val\n  %184 = phi i64 [%166, %$28], [%177, %$29] ; # ->\n  br label %$14\n$26:\n  %185 = phi i64 [%143, %$21] ; # Exe\n  %186 = phi i8* [%144, %$21] ; # Lib\n  %187 = phi i64 [%145, %$21] ; # Fun\n  %188 = phi i64 [%146, %$21] ; # Args\n  %189 = phi i64 [%147, %$21] ; # Spec\n  %190 = phi i64 [%148, %$21] ; # Val\n; # (== Spec $U)\n  %191 = icmp eq i64 %189, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 344) to i64)\n  br i1 %191, label %$32, label %$31\n$32:\n  %192 = phi i64 [%185, %$26] ; # Exe\n  %193 = phi i8* [%186, %$26] ; # Lib\n  %194 = phi i64 [%187, %$26] ; # Fun\n  %195 = phi i64 [%188, %$26] ; # Args\n  %196 = phi i64 [%189, %$26] ; # Spec\n  %197 = phi i64 [%190, %$26] ; # Val\n; # (cnt Val)\n  %198 = shl i64 %197, 4\n  %199 = or i64 %198, 2\n  br label %$14\n$31:\n  %200 = phi i64 [%185, %$26] ; # Exe\n  %201 = phi i8* [%186, %$26] ; # Lib\n  %202 = phi i64 [%187, %$26] ; # Fun\n  %203 = phi i64 [%188, %$26] ; # Args\n  %204 = phi i64 [%189, %$26] ; # Spec\n  %205 = phi i64 [%190, %$26] ; # Val\n; # (== Spec $W)\n  %206 = icmp eq i64 %204, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 376) to i64)\n  br i1 %206, label %$34, label %$33\n$34:\n  %207 = phi i64 [%200, %$31] ; # Exe\n  %208 = phi i8* [%201, %$31] ; # Lib\n  %209 = phi i64 [%202, %$31] ; # Fun\n  %210 = phi i64 [%203, %$31] ; # Args\n  %211 = phi i64 [%204, %$31] ; # Spec\n  %212 = phi i64 [%205, %$31] ; # Val\n; # (if (ge0 (i16 Val)) (cnt (i64 @)) (sign (cnt (i64 (- @)))))\n; # (i16 Val)\n  %213 = trunc i64 %212 to i16\n; # (ge0 (i16 Val))\n  %214 = icmp sge i16 %213, 0\n  br i1 %214, label %$35, label %$36\n$35:\n  %215 = phi i64 [%207, %$34] ; # Exe\n  %216 = phi i8* [%208, %$34] ; # Lib\n  %217 = phi i64 [%209, %$34] ; # Fun\n  %218 = phi i64 [%210, %$34] ; # Args\n  %219 = phi i64 [%211, %$34] ; # Spec\n  %220 = phi i64 [%212, %$34] ; # Val\n; # (i64 @)\n  %221 = sext i16 %213 to i64\n; # (cnt (i64 @))\n  %222 = shl i64 %221, 4\n  %223 = or i64 %222, 2\n  br label %$37\n$36:\n  %224 = phi i64 [%207, %$34] ; # Exe\n  %225 = phi i8* [%208, %$34] ; # Lib\n  %226 = phi i64 [%209, %$34] ; # Fun\n  %227 = phi i64 [%210, %$34] ; # Args\n  %228 = phi i64 [%211, %$34] ; # Spec\n  %229 = phi i64 [%212, %$34] ; # Val\n; # (- @)\n  %230 = sub i16 0, %213\n; # (i64 (- @))\n  %231 = sext i16 %230 to i64\n; # (cnt (i64 (- @)))\n  %232 = shl i64 %231, 4\n  %233 = or i64 %232, 2\n; # (sign (cnt (i64 (- @))))\n  %234 = or i64 %233, 8\n  br label %$37\n$37:\n  %235 = phi i64 [%215, %$35], [%224, %$36] ; # Exe\n  %236 = phi i8* [%216, %$35], [%225, %$36] ; # Lib\n  %237 = phi i64 [%217, %$35], [%226, %$36] ; # Fun\n  %238 = phi i64 [%218, %$35], [%227, %$36] ; # Args\n  %239 = phi i64 [%219, %$35], [%228, %$36] ; # Spec\n  %240 = phi i64 [%220, %$35], [%229, %$36] ; # Val\n  %241 = phi i64 [%223, %$35], [%234, %$36] ; # ->\n  br label %$14\n$33:\n  %242 = phi i64 [%200, %$31] ; # Exe\n  %243 = phi i8* [%201, %$31] ; # Lib\n  %244 = phi i64 [%202, %$31] ; # Fun\n  %245 = phi i64 [%203, %$31] ; # Args\n  %246 = phi i64 [%204, %$31] ; # Spec\n  %247 = phi i64 [%205, %$31] ; # Val\n; # (== Spec $C)\n  %248 = icmp eq i64 %246, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br i1 %248, label %$39, label %$38\n$39:\n  %249 = phi i64 [%242, %$33] ; # Exe\n  %250 = phi i8* [%243, %$33] ; # Lib\n  %251 = phi i64 [%244, %$33] ; # Fun\n  %252 = phi i64 [%245, %$33] ; # Args\n  %253 = phi i64 [%246, %$33] ; # Spec\n  %254 = phi i64 [%247, %$33] ; # Val\n; # (if (i32 Val) (mkChar @) $Nil)\n; # (i32 Val)\n  %255 = trunc i64 %254 to i32\n  %256 = icmp ne i32 %255, 0\n  br i1 %256, label %$40, label %$41\n$40:\n  %257 = phi i64 [%249, %$39] ; # Exe\n  %258 = phi i8* [%250, %$39] ; # Lib\n  %259 = phi i64 [%251, %$39] ; # Fun\n  %260 = phi i64 [%252, %$39] ; # Args\n  %261 = phi i64 [%253, %$39] ; # Spec\n  %262 = phi i64 [%254, %$39] ; # Val\n; # (mkChar @)\n  %263 = call i64 @mkChar(i32 %255)\n  br label %$42\n$41:\n  %264 = phi i64 [%249, %$39] ; # Exe\n  %265 = phi i8* [%250, %$39] ; # Lib\n  %266 = phi i64 [%251, %$39] ; # Fun\n  %267 = phi i64 [%252, %$39] ; # Args\n  %268 = phi i64 [%253, %$39] ; # Spec\n  %269 = phi i64 [%254, %$39] ; # Val\n  br label %$42\n$42:\n  %270 = phi i64 [%257, %$40], [%264, %$41] ; # Exe\n  %271 = phi i8* [%258, %$40], [%265, %$41] ; # Lib\n  %272 = phi i64 [%259, %$40], [%266, %$41] ; # Fun\n  %273 = phi i64 [%260, %$40], [%267, %$41] ; # Args\n  %274 = phi i64 [%261, %$40], [%268, %$41] ; # Spec\n  %275 = phi i64 [%262, %$40], [%269, %$41] ; # Val\n  %276 = phi i64 [%263, %$40], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$41] ; # ->\n  br label %$14\n$38:\n  %277 = phi i64 [%242, %$33] ; # Exe\n  %278 = phi i8* [%243, %$33] ; # Lib\n  %279 = phi i64 [%244, %$33] ; # Fun\n  %280 = phi i64 [%245, %$33] ; # Args\n  %281 = phi i64 [%246, %$33] ; # Spec\n  %282 = phi i64 [%247, %$33] ; # Val\n; # (== Spec $B)\n  %283 = icmp eq i64 %281, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 408) to i64)\n  br i1 %283, label %$44, label %$43\n$44:\n  %284 = phi i64 [%277, %$38] ; # Exe\n  %285 = phi i8* [%278, %$38] ; # Lib\n  %286 = phi i64 [%279, %$38] ; # Fun\n  %287 = phi i64 [%280, %$38] ; # Args\n  %288 = phi i64 [%281, %$38] ; # Spec\n  %289 = phi i64 [%282, %$38] ; # Val\n; # (i8 Val)\n  %290 = trunc i64 %289 to i8\n; # (i64 (i8 Val))\n  %291 = zext i8 %290 to i64\n; # (cnt (i64 (i8 Val)))\n  %292 = shl i64 %291, 4\n  %293 = or i64 %292, 2\n  br label %$14\n$43:\n  %294 = phi i64 [%277, %$38] ; # Exe\n  %295 = phi i8* [%278, %$38] ; # Lib\n  %296 = phi i64 [%279, %$38] ; # Fun\n  %297 = phi i64 [%280, %$38] ; # Args\n  %298 = phi i64 [%281, %$38] ; # Spec\n  %299 = phi i64 [%282, %$38] ; # Val\n; # (== Spec $S)\n  %300 = icmp eq i64 %298, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 296) to i64)\n  br i1 %300, label %$46, label %$45\n$46:\n  %301 = phi i64 [%294, %$43] ; # Exe\n  %302 = phi i8* [%295, %$43] ; # Lib\n  %303 = phi i64 [%296, %$43] ; # Fun\n  %304 = phi i64 [%297, %$43] ; # Args\n  %305 = phi i64 [%298, %$43] ; # Spec\n  %306 = phi i64 [%299, %$43] ; # Val\n; # (i8* Val)\n  %307 = inttoptr i64 %306 to i8*\n; # (mkStr (i8* Val))\n  %308 = call i64 @mkStr(i8* %307)\n  br label %$14\n$45:\n  %309 = phi i64 [%294, %$43] ; # Exe\n  %310 = phi i8* [%295, %$43] ; # Lib\n  %311 = phi i64 [%296, %$43] ; # Fun\n  %312 = phi i64 [%297, %$43] ; # Args\n  %313 = phi i64 [%298, %$43] ; # Spec\n  %314 = phi i64 [%299, %$43] ; # Val\n; # (cnt? Spec)\n  %315 = and i64 %313, 2\n  %316 = icmp ne i64 %315, 0\n  br i1 %316, label %$48, label %$47\n$48:\n  %317 = phi i64 [%309, %$45] ; # Exe\n  %318 = phi i8* [%310, %$45] ; # Lib\n  %319 = phi i64 [%311, %$45] ; # Fun\n  %320 = phi i64 [%312, %$45] ; # Args\n  %321 = phi i64 [%313, %$45] ; # Spec\n  %322 = phi i64 [%314, %$45] ; # Val\n; # (if (sign? Spec) (natRetFloat (i32 Val) (int Spec)) (natRetDouble...\n; # (sign? Spec)\n  %323 = and i64 %321, 8\n  %324 = icmp ne i64 %323, 0\n  br i1 %324, label %$49, label %$50\n$49:\n  %325 = phi i64 [%317, %$48] ; # Exe\n  %326 = phi i8* [%318, %$48] ; # Lib\n  %327 = phi i64 [%319, %$48] ; # Fun\n  %328 = phi i64 [%320, %$48] ; # Args\n  %329 = phi i64 [%321, %$48] ; # Spec\n  %330 = phi i64 [%322, %$48] ; # Val\n; # (i32 Val)\n  %331 = trunc i64 %330 to i32\n; # (int Spec)\n  %332 = lshr i64 %329, 4\n; # (natRetFloat (i32 Val) (int Spec))\n  %333 = call i64 @natRetFloat(i32 %331, i64 %332)\n  br label %$51\n$50:\n  %334 = phi i64 [%317, %$48] ; # Exe\n  %335 = phi i8* [%318, %$48] ; # Lib\n  %336 = phi i64 [%319, %$48] ; # Fun\n  %337 = phi i64 [%320, %$48] ; # Args\n  %338 = phi i64 [%321, %$48] ; # Spec\n  %339 = phi i64 [%322, %$48] ; # Val\n; # (int Spec)\n  %340 = lshr i64 %338, 4\n; # (natRetDouble Val (int Spec))\n  %341 = call i64 @natRetDouble(i64 %339, i64 %340)\n  br label %$51\n$51:\n  %342 = phi i64 [%325, %$49], [%334, %$50] ; # Exe\n  %343 = phi i8* [%326, %$49], [%335, %$50] ; # Lib\n  %344 = phi i64 [%327, %$49], [%336, %$50] ; # Fun\n  %345 = phi i64 [%328, %$49], [%337, %$50] ; # Args\n  %346 = phi i64 [%329, %$49], [%338, %$50] ; # Spec\n  %347 = phi i64 [%330, %$49], [%339, %$50] ; # Val\n  %348 = phi i64 [%333, %$49], [%341, %$50] ; # ->\n  br label %$14\n$47:\n  %349 = phi i64 [%309, %$45] ; # Exe\n  %350 = phi i8* [%310, %$45] ; # Lib\n  %351 = phi i64 [%311, %$45] ; # Fun\n  %352 = phi i64 [%312, %$45] ; # Args\n  %353 = phi i64 [%313, %$45] ; # Spec\n  %354 = phi i64 [%314, %$45] ; # Val\n; # (and (pair Spec) Val)\n; # (pair Spec)\n  %355 = and i64 %353, 15\n  %356 = icmp eq i64 %355, 0\n  br i1 %356, label %$53, label %$52\n$53:\n  %357 = phi i64 [%349, %$47] ; # Exe\n  %358 = phi i8* [%350, %$47] ; # Lib\n  %359 = phi i64 [%351, %$47] ; # Fun\n  %360 = phi i64 [%352, %$47] ; # Args\n  %361 = phi i64 [%353, %$47] ; # Spec\n  %362 = phi i64 [%354, %$47] ; # Val\n  %363 = icmp ne i64 %362, 0\n  br label %$52\n$52:\n  %364 = phi i64 [%349, %$47], [%357, %$53] ; # Exe\n  %365 = phi i8* [%350, %$47], [%358, %$53] ; # Lib\n  %366 = phi i64 [%351, %$47], [%359, %$53] ; # Fun\n  %367 = phi i64 [%352, %$47], [%360, %$53] ; # Args\n  %368 = phi i64 [%353, %$47], [%361, %$53] ; # Spec\n  %369 = phi i64 [%354, %$47], [%362, %$53] ; # Val\n  %370 = phi i1 [0, %$47], [%363, %$53] ; # ->\n  br i1 %370, label %$55, label %$54\n$55:\n  %371 = phi i64 [%364, %$52] ; # Exe\n  %372 = phi i8* [%365, %$52] ; # Lib\n  %373 = phi i64 [%366, %$52] ; # Fun\n  %374 = phi i64 [%367, %$52] ; # Args\n  %375 = phi i64 [%368, %$52] ; # Spec\n  %376 = phi i64 [%369, %$52] ; # Val\n; # (let (Ptr (i8** (push Val)) S (++ Spec) R (natRetBuf S Ptr)) (unl...\n; # (push Val)\n  %377 = alloca i64, i64 1\n  store i64 %376, i64* %377\n; # (i8** (push Val))\n  %378 = bitcast i64* %377 to i8**\n; # (++ Spec)\n  %379 = inttoptr i64 %375 to i64*\n  %380 = getelementptr i64, i64* %379, i32 1\n  %381 = load i64, i64* %380\n  %382 = load i64, i64* %379\n; # (natRetBuf S Ptr)\n  %383 = call i64 @natRetBuf(i64 %382, i8** %378)\n; # (unless (and (nil? R) (== S $C)) (let X (setq R (save (cons R $Ni...\n; # (and (nil? R) (== S $C))\n; # (nil? R)\n  %384 = icmp eq i64 %383, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %384, label %$57, label %$56\n$57:\n  %385 = phi i64 [%371, %$55] ; # Exe\n  %386 = phi i8* [%372, %$55] ; # Lib\n  %387 = phi i64 [%373, %$55] ; # Fun\n  %388 = phi i64 [%374, %$55] ; # Args\n  %389 = phi i64 [%381, %$55] ; # Spec\n  %390 = phi i64 [%376, %$55] ; # Val\n  %391 = phi i8** [%378, %$55] ; # Ptr\n  %392 = phi i64 [%382, %$55] ; # S\n  %393 = phi i64 [%383, %$55] ; # R\n; # (== S $C)\n  %394 = icmp eq i64 %392, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$56\n$56:\n  %395 = phi i64 [%371, %$55], [%385, %$57] ; # Exe\n  %396 = phi i8* [%372, %$55], [%386, %$57] ; # Lib\n  %397 = phi i64 [%373, %$55], [%387, %$57] ; # Fun\n  %398 = phi i64 [%374, %$55], [%388, %$57] ; # Args\n  %399 = phi i64 [%381, %$55], [%389, %$57] ; # Spec\n  %400 = phi i64 [%376, %$55], [%390, %$57] ; # Val\n  %401 = phi i8** [%378, %$55], [%391, %$57] ; # Ptr\n  %402 = phi i64 [%382, %$55], [%392, %$57] ; # S\n  %403 = phi i64 [%383, %$55], [%393, %$57] ; # R\n  %404 = phi i1 [0, %$55], [%394, %$57] ; # ->\n  br i1 %404, label %$59, label %$58\n$58:\n  %405 = phi i64 [%395, %$56] ; # Exe\n  %406 = phi i8* [%396, %$56] ; # Lib\n  %407 = phi i64 [%397, %$56] ; # Fun\n  %408 = phi i64 [%398, %$56] ; # Args\n  %409 = phi i64 [%399, %$56] ; # Spec\n  %410 = phi i64 [%400, %$56] ; # Val\n  %411 = phi i8** [%401, %$56] ; # Ptr\n  %412 = phi i64 [%402, %$56] ; # S\n  %413 = phi i64 [%403, %$56] ; # R\n; # (let X (setq R (save (cons R $Nil))) (loop (? (cnt? Spec) (let C ...\n; # (cons R $Nil)\n  %414 = call i64 @cons(i64 %413, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons R $Nil))\n  %415 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %416 = load i64, i64* %415\n  %417 = alloca i64, i64 2, align 16\n  %418 = ptrtoint i64* %417 to i64\n  %419 = inttoptr i64 %418 to i64*\n  store i64 %414, i64* %419\n  %420 = add i64 %418, 8\n  %421 = inttoptr i64 %420 to i64*\n  store i64 %416, i64* %421\n  %422 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %418, i64* %422\n; # (loop (? (cnt? Spec) (let C (int Spec) (while (dec 'C) (let Y (na...\n  br label %$60\n$60:\n  %423 = phi i64 [%405, %$58], [%576, %$73] ; # Exe\n  %424 = phi i8* [%406, %$58], [%577, %$73] ; # Lib\n  %425 = phi i64 [%407, %$58], [%578, %$73] ; # Fun\n  %426 = phi i64 [%408, %$58], [%579, %$73] ; # Args\n  %427 = phi i64 [%409, %$58], [%580, %$73] ; # Spec\n  %428 = phi i64 [%410, %$58], [%581, %$73] ; # Val\n  %429 = phi i8** [%411, %$58], [%582, %$73] ; # Ptr\n  %430 = phi i64 [%412, %$58], [%583, %$73] ; # S\n  %431 = phi i64 [%414, %$58], [%584, %$73] ; # R\n  %432 = phi i64 [%414, %$58], [%587, %$73] ; # X\n; # (? (cnt? Spec) (let C (int Spec) (while (dec 'C) (let Y (natRetBu...\n; # (cnt? Spec)\n  %433 = and i64 %427, 2\n  %434 = icmp ne i64 %433, 0\n  br i1 %434, label %$63, label %$61\n$63:\n  %435 = phi i64 [%423, %$60] ; # Exe\n  %436 = phi i8* [%424, %$60] ; # Lib\n  %437 = phi i64 [%425, %$60] ; # Fun\n  %438 = phi i64 [%426, %$60] ; # Args\n  %439 = phi i64 [%427, %$60] ; # Spec\n  %440 = phi i64 [%428, %$60] ; # Val\n  %441 = phi i8** [%429, %$60] ; # Ptr\n  %442 = phi i64 [%430, %$60] ; # S\n  %443 = phi i64 [%431, %$60] ; # R\n  %444 = phi i64 [%432, %$60] ; # X\n; # (let C (int Spec) (while (dec 'C) (let Y (natRetBuf S Ptr) (? (an...\n; # (int Spec)\n  %445 = lshr i64 %439, 4\n; # (while (dec 'C) (let Y (natRetBuf S Ptr) (? (and (nil? Y) (== S $...\n  br label %$64\n$64:\n  %446 = phi i64 [%435, %$63], [%498, %$69] ; # Exe\n  %447 = phi i8* [%436, %$63], [%499, %$69] ; # Lib\n  %448 = phi i64 [%437, %$63], [%500, %$69] ; # Fun\n  %449 = phi i64 [%438, %$63], [%501, %$69] ; # Args\n  %450 = phi i64 [%439, %$63], [%502, %$69] ; # Spec\n  %451 = phi i64 [%440, %$63], [%503, %$69] ; # Val\n  %452 = phi i8** [%441, %$63], [%504, %$69] ; # Ptr\n  %453 = phi i64 [%442, %$63], [%505, %$69] ; # S\n  %454 = phi i64 [%443, %$63], [%506, %$69] ; # R\n  %455 = phi i64 [%444, %$63], [%510, %$69] ; # X\n  %456 = phi i64 [%445, %$63], [%508, %$69] ; # C\n; # (dec 'C)\n  %457 = sub i64 %456, 1\n  %458 = icmp ne i64 %457, 0\n  br i1 %458, label %$65, label %$66\n$65:\n  %459 = phi i64 [%446, %$64] ; # Exe\n  %460 = phi i8* [%447, %$64] ; # Lib\n  %461 = phi i64 [%448, %$64] ; # Fun\n  %462 = phi i64 [%449, %$64] ; # Args\n  %463 = phi i64 [%450, %$64] ; # Spec\n  %464 = phi i64 [%451, %$64] ; # Val\n  %465 = phi i8** [%452, %$64] ; # Ptr\n  %466 = phi i64 [%453, %$64] ; # S\n  %467 = phi i64 [%454, %$64] ; # R\n  %468 = phi i64 [%455, %$64] ; # X\n  %469 = phi i64 [%457, %$64] ; # C\n; # (let Y (natRetBuf S Ptr) (? (and (nil? Y) (== S $C))) (setq X (se...\n; # (natRetBuf S Ptr)\n  %470 = call i64 @natRetBuf(i64 %466, i8** %465)\n; # (? (and (nil? Y) (== S $C)))\n; # (and (nil? Y) (== S $C))\n; # (nil? Y)\n  %471 = icmp eq i64 %470, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %471, label %$68, label %$67\n$68:\n  %472 = phi i64 [%459, %$65] ; # Exe\n  %473 = phi i8* [%460, %$65] ; # Lib\n  %474 = phi i64 [%461, %$65] ; # Fun\n  %475 = phi i64 [%462, %$65] ; # Args\n  %476 = phi i64 [%463, %$65] ; # Spec\n  %477 = phi i64 [%464, %$65] ; # Val\n  %478 = phi i8** [%465, %$65] ; # Ptr\n  %479 = phi i64 [%466, %$65] ; # S\n  %480 = phi i64 [%467, %$65] ; # R\n  %481 = phi i64 [%468, %$65] ; # X\n  %482 = phi i64 [%469, %$65] ; # C\n  %483 = phi i64 [%470, %$65] ; # Y\n; # (== S $C)\n  %484 = icmp eq i64 %479, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$67\n$67:\n  %485 = phi i64 [%459, %$65], [%472, %$68] ; # Exe\n  %486 = phi i8* [%460, %$65], [%473, %$68] ; # Lib\n  %487 = phi i64 [%461, %$65], [%474, %$68] ; # Fun\n  %488 = phi i64 [%462, %$65], [%475, %$68] ; # Args\n  %489 = phi i64 [%463, %$65], [%476, %$68] ; # Spec\n  %490 = phi i64 [%464, %$65], [%477, %$68] ; # Val\n  %491 = phi i8** [%465, %$65], [%478, %$68] ; # Ptr\n  %492 = phi i64 [%466, %$65], [%479, %$68] ; # S\n  %493 = phi i64 [%467, %$65], [%480, %$68] ; # R\n  %494 = phi i64 [%468, %$65], [%481, %$68] ; # X\n  %495 = phi i64 [%469, %$65], [%482, %$68] ; # C\n  %496 = phi i64 [%470, %$65], [%483, %$68] ; # Y\n  %497 = phi i1 [0, %$65], [%484, %$68] ; # ->\n  br i1 %497, label %$66, label %$69\n$69:\n  %498 = phi i64 [%485, %$67] ; # Exe\n  %499 = phi i8* [%486, %$67] ; # Lib\n  %500 = phi i64 [%487, %$67] ; # Fun\n  %501 = phi i64 [%488, %$67] ; # Args\n  %502 = phi i64 [%489, %$67] ; # Spec\n  %503 = phi i64 [%490, %$67] ; # Val\n  %504 = phi i8** [%491, %$67] ; # Ptr\n  %505 = phi i64 [%492, %$67] ; # S\n  %506 = phi i64 [%493, %$67] ; # R\n  %507 = phi i64 [%494, %$67] ; # X\n  %508 = phi i64 [%495, %$67] ; # C\n  %509 = phi i64 [%496, %$67] ; # Y\n; # (set 2 X (cons Y $Nil))\n; # (cons Y $Nil)\n  %510 = call i64 @cons(i64 %509, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %511 = inttoptr i64 %507 to i64*\n  %512 = getelementptr i64, i64* %511, i32 1\n  store i64 %510, i64* %512\n  br label %$64\n$66:\n  %513 = phi i64 [%446, %$64], [%485, %$67] ; # Exe\n  %514 = phi i8* [%447, %$64], [%486, %$67] ; # Lib\n  %515 = phi i64 [%448, %$64], [%487, %$67] ; # Fun\n  %516 = phi i64 [%449, %$64], [%488, %$67] ; # Args\n  %517 = phi i64 [%450, %$64], [%489, %$67] ; # Spec\n  %518 = phi i64 [%451, %$64], [%490, %$67] ; # Val\n  %519 = phi i8** [%452, %$64], [%491, %$67] ; # Ptr\n  %520 = phi i64 [%453, %$64], [%492, %$67] ; # S\n  %521 = phi i64 [%454, %$64], [%493, %$67] ; # R\n  %522 = phi i64 [%455, %$64], [%494, %$67] ; # X\n  %523 = phi i64 [%457, %$64], [%495, %$67] ; # C\n  br label %$62\n$61:\n  %524 = phi i64 [%423, %$60] ; # Exe\n  %525 = phi i8* [%424, %$60] ; # Lib\n  %526 = phi i64 [%425, %$60] ; # Fun\n  %527 = phi i64 [%426, %$60] ; # Args\n  %528 = phi i64 [%427, %$60] ; # Spec\n  %529 = phi i64 [%428, %$60] ; # Val\n  %530 = phi i8** [%429, %$60] ; # Ptr\n  %531 = phi i64 [%430, %$60] ; # S\n  %532 = phi i64 [%431, %$60] ; # R\n  %533 = phi i64 [%432, %$60] ; # X\n; # (? (atom Spec))\n; # (atom Spec)\n  %534 = and i64 %528, 15\n  %535 = icmp ne i64 %534, 0\n  br i1 %535, label %$62, label %$70\n$70:\n  %536 = phi i64 [%524, %$61] ; # Exe\n  %537 = phi i8* [%525, %$61] ; # Lib\n  %538 = phi i64 [%526, %$61] ; # Fun\n  %539 = phi i64 [%527, %$61] ; # Args\n  %540 = phi i64 [%528, %$61] ; # Spec\n  %541 = phi i64 [%529, %$61] ; # Val\n  %542 = phi i8** [%530, %$61] ; # Ptr\n  %543 = phi i64 [%531, %$61] ; # S\n  %544 = phi i64 [%532, %$61] ; # R\n  %545 = phi i64 [%533, %$61] ; # X\n; # (let Y (natRetBuf (setq S (++ Spec)) Ptr) (? (and (nil? Y) (== S ...\n; # (++ Spec)\n  %546 = inttoptr i64 %540 to i64*\n  %547 = getelementptr i64, i64* %546, i32 1\n  %548 = load i64, i64* %547\n  %549 = load i64, i64* %546\n; # (natRetBuf (setq S (++ Spec)) Ptr)\n  %550 = call i64 @natRetBuf(i64 %549, i8** %542)\n; # (? (and (nil? Y) (== S $C)))\n; # (and (nil? Y) (== S $C))\n; # (nil? Y)\n  %551 = icmp eq i64 %550, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %551, label %$72, label %$71\n$72:\n  %552 = phi i64 [%536, %$70] ; # Exe\n  %553 = phi i8* [%537, %$70] ; # Lib\n  %554 = phi i64 [%538, %$70] ; # Fun\n  %555 = phi i64 [%539, %$70] ; # Args\n  %556 = phi i64 [%548, %$70] ; # Spec\n  %557 = phi i64 [%541, %$70] ; # Val\n  %558 = phi i8** [%542, %$70] ; # Ptr\n  %559 = phi i64 [%549, %$70] ; # S\n  %560 = phi i64 [%544, %$70] ; # R\n  %561 = phi i64 [%545, %$70] ; # X\n  %562 = phi i64 [%550, %$70] ; # Y\n; # (== S $C)\n  %563 = icmp eq i64 %559, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 392) to i64)\n  br label %$71\n$71:\n  %564 = phi i64 [%536, %$70], [%552, %$72] ; # Exe\n  %565 = phi i8* [%537, %$70], [%553, %$72] ; # Lib\n  %566 = phi i64 [%538, %$70], [%554, %$72] ; # Fun\n  %567 = phi i64 [%539, %$70], [%555, %$72] ; # Args\n  %568 = phi i64 [%548, %$70], [%556, %$72] ; # Spec\n  %569 = phi i64 [%541, %$70], [%557, %$72] ; # Val\n  %570 = phi i8** [%542, %$70], [%558, %$72] ; # Ptr\n  %571 = phi i64 [%549, %$70], [%559, %$72] ; # S\n  %572 = phi i64 [%544, %$70], [%560, %$72] ; # R\n  %573 = phi i64 [%545, %$70], [%561, %$72] ; # X\n  %574 = phi i64 [%550, %$70], [%562, %$72] ; # Y\n  %575 = phi i1 [0, %$70], [%563, %$72] ; # ->\n  br i1 %575, label %$62, label %$73\n$73:\n  %576 = phi i64 [%564, %$71] ; # Exe\n  %577 = phi i8* [%565, %$71] ; # Lib\n  %578 = phi i64 [%566, %$71] ; # Fun\n  %579 = phi i64 [%567, %$71] ; # Args\n  %580 = phi i64 [%568, %$71] ; # Spec\n  %581 = phi i64 [%569, %$71] ; # Val\n  %582 = phi i8** [%570, %$71] ; # Ptr\n  %583 = phi i64 [%571, %$71] ; # S\n  %584 = phi i64 [%572, %$71] ; # R\n  %585 = phi i64 [%573, %$71] ; # X\n  %586 = phi i64 [%574, %$71] ; # Y\n; # (set 2 X (cons Y $Nil))\n; # (cons Y $Nil)\n  %587 = call i64 @cons(i64 %586, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %588 = inttoptr i64 %585 to i64*\n  %589 = getelementptr i64, i64* %588, i32 1\n  store i64 %587, i64* %589\n  br label %$60\n$62:\n  %590 = phi i64 [%513, %$66], [%524, %$61], [%564, %$71] ; # Exe\n  %591 = phi i8* [%514, %$66], [%525, %$61], [%565, %$71] ; # Lib\n  %592 = phi i64 [%515, %$66], [%526, %$61], [%566, %$71] ; # Fun\n  %593 = phi i64 [%516, %$66], [%527, %$61], [%567, %$71] ; # Args\n  %594 = phi i64 [%517, %$66], [%528, %$61], [%568, %$71] ; # Spec\n  %595 = phi i64 [%518, %$66], [%529, %$61], [%569, %$71] ; # Val\n  %596 = phi i8** [%519, %$66], [%530, %$61], [%570, %$71] ; # Ptr\n  %597 = phi i64 [%520, %$66], [%531, %$61], [%571, %$71] ; # S\n  %598 = phi i64 [%521, %$66], [%532, %$61], [%572, %$71] ; # R\n  %599 = phi i64 [%522, %$66], [%533, %$61], [%573, %$71] ; # X\n; # (drop *Safe)\n  %600 = inttoptr i64 %418 to i64*\n  %601 = getelementptr i64, i64* %600, i32 1\n  %602 = load i64, i64* %601\n  %603 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %602, i64* %603\n  br label %$59\n$59:\n  %604 = phi i64 [%395, %$56], [%590, %$62] ; # Exe\n  %605 = phi i8* [%396, %$56], [%591, %$62] ; # Lib\n  %606 = phi i64 [%397, %$56], [%592, %$62] ; # Fun\n  %607 = phi i64 [%398, %$56], [%593, %$62] ; # Args\n  %608 = phi i64 [%399, %$56], [%594, %$62] ; # Spec\n  %609 = phi i64 [%400, %$56], [%595, %$62] ; # Val\n  %610 = phi i8** [%401, %$56], [%596, %$62] ; # Ptr\n  %611 = phi i64 [%402, %$56], [%597, %$62] ; # S\n  %612 = phi i64 [%403, %$56], [%598, %$62] ; # R\n  br label %$14\n$54:\n  %613 = phi i64 [%364, %$52] ; # Exe\n  %614 = phi i8* [%365, %$52] ; # Lib\n  %615 = phi i64 [%366, %$52] ; # Fun\n  %616 = phi i64 [%367, %$52] ; # Args\n  %617 = phi i64 [%368, %$52] ; # Spec\n  %618 = phi i64 [%369, %$52] ; # Val\n; # (natErr Spec)\n  call void @natErr(i64 %617)\n  unreachable\n$14:\n  %619 = phi i64 [%88, %$16], [%101, %$18], [%114, %$20], [%128, %$25], [%178, %$30], [%192, %$32], [%235, %$37], [%270, %$42], [%284, %$44], [%301, %$46], [%342, %$51], [%604, %$59] ; # Exe\n  %620 = phi i8* [%89, %$16], [%102, %$18], [%115, %$20], [%129, %$25], [%179, %$30], [%193, %$32], [%236, %$37], [%271, %$42], [%285, %$44], [%302, %$46], [%343, %$51], [%605, %$59] ; # Lib\n  %621 = phi i64 [%90, %$16], [%103, %$18], [%116, %$20], [%130, %$25], [%180, %$30], [%194, %$32], [%237, %$37], [%272, %$42], [%286, %$44], [%303, %$46], [%344, %$51], [%606, %$59] ; # Fun\n  %622 = phi i64 [%91, %$16], [%104, %$18], [%117, %$20], [%131, %$25], [%181, %$30], [%195, %$32], [%238, %$37], [%273, %$42], [%287, %$44], [%304, %$46], [%345, %$51], [%607, %$59] ; # Args\n  %623 = phi i64 [%92, %$16], [%105, %$18], [%118, %$20], [%132, %$25], [%182, %$30], [%196, %$32], [%239, %$37], [%274, %$42], [%288, %$44], [%305, %$46], [%346, %$51], [%608, %$59] ; # Spec\n  %624 = phi i64 [%93, %$16], [%106, %$18], [%119, %$20], [%133, %$25], [%183, %$30], [%197, %$32], [%240, %$37], [%275, %$42], [%289, %$44], [%306, %$46], [%347, %$51], [%609, %$59] ; # Val\n  %625 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$16], [%106, %$18], [%120, %$20], [%142, %$25], [%184, %$30], [%199, %$32], [%241, %$37], [%276, %$42], [%293, %$44], [%308, %$46], [%348, %$51], [%612, %$59] ; # ->\n  ret i64 %625\n}\n\ndefine i64 @_Nat(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Fun (save (eval (++ X))) Args (save (cons (eval...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (++ X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = getelementptr i64, i64* %29, i32 1\n  %31 = load i64, i64* %30\n  %32 = load i64, i64* %29\n; # (eval (++ X))\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$9, label %$8\n$9:\n  %35 = phi i64 [%32, %$2] ; # X\n  br label %$7\n$8:\n  %36 = phi i64 [%32, %$2] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$10\n$11:\n  %39 = phi i64 [%36, %$8] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$7\n$10:\n  %42 = phi i64 [%36, %$8] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$7\n$7:\n  %44 = phi i64 [%35, %$9], [%39, %$11], [%42, %$10] ; # X\n  %45 = phi i64 [%35, %$9], [%41, %$11], [%43, %$10] ; # ->\n; # (cons (eval (++ X)) $Nil)\n  %46 = call i64 @cons(i64 %45, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons (eval (++ X)) $Nil))\n  %47 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %48 = load i64, i64* %47\n  %49 = alloca i64, i64 2, align 16\n  %50 = ptrtoint i64* %49 to i64\n  %51 = inttoptr i64 %50 to i64*\n  store i64 %46, i64* %51\n  %52 = add i64 %50, 8\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %48, i64* %53\n  %54 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %50, i64* %54\n; # (while (pair X) (let Z (push (save (eval (++ X))) $Nil) (set 2 L ...\n  br label %$12\n$12:\n  %55 = phi i64 [%0, %$7], [%62, %$15] ; # Exe\n  %56 = phi i64 [%31, %$7], [%69, %$15] ; # X\n  %57 = phi i64 [%20, %$7], [%64, %$15] ; # Fun\n  %58 = phi i64 [%46, %$7], [%65, %$15] ; # Args\n  %59 = phi i64 [%46, %$7], [%93, %$15] ; # L\n; # (pair X)\n  %60 = and i64 %56, 15\n  %61 = icmp eq i64 %60, 0\n  br i1 %61, label %$13, label %$14\n$13:\n  %62 = phi i64 [%55, %$12] ; # Exe\n  %63 = phi i64 [%56, %$12] ; # X\n  %64 = phi i64 [%57, %$12] ; # Fun\n  %65 = phi i64 [%58, %$12] ; # Args\n  %66 = phi i64 [%59, %$12] ; # L\n; # (let Z (push (save (eval (++ X))) $Nil) (set 2 L Z) (setq L Z))\n; # (++ X)\n  %67 = inttoptr i64 %63 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n  %70 = load i64, i64* %67\n; # (eval (++ X))\n  %71 = and i64 %70, 6\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$17, label %$16\n$17:\n  %73 = phi i64 [%70, %$13] ; # X\n  br label %$15\n$16:\n  %74 = phi i64 [%70, %$13] ; # X\n  %75 = and i64 %74, 8\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$19, label %$18\n$19:\n  %77 = phi i64 [%74, %$16] ; # X\n  %78 = inttoptr i64 %77 to i64*\n  %79 = load i64, i64* %78\n  br label %$15\n$18:\n  %80 = phi i64 [%74, %$16] ; # X\n  %81 = call i64 @evList(i64 %80)\n  br label %$15\n$15:\n  %82 = phi i64 [%73, %$17], [%77, %$19], [%80, %$18] ; # X\n  %83 = phi i64 [%73, %$17], [%79, %$19], [%81, %$18] ; # ->\n; # (save (eval (++ X)))\n  %84 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %85 = load i64, i64* %84\n  %86 = alloca i64, i64 2, align 16\n  %87 = ptrtoint i64* %86 to i64\n  %88 = inttoptr i64 %87 to i64*\n  store i64 %83, i64* %88\n  %89 = add i64 %87, 8\n  %90 = inttoptr i64 %89 to i64*\n  store i64 %85, i64* %90\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %87, i64* %91\n; # (push (save (eval (++ X))) $Nil)\n  %92 = alloca i64, i64 2, align 16\n  %93 = ptrtoint i64* %92 to i64\n  %94 = inttoptr i64 %93 to i64*\n  store i64 %83, i64* %94\n  %95 = add i64 %93, 8\n  %96 = inttoptr i64 %95 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %96\n; # (set 2 L Z)\n  %97 = inttoptr i64 %66 to i64*\n  %98 = getelementptr i64, i64* %97, i32 1\n  store i64 %93, i64* %98\n  br label %$12\n$14:\n  %99 = phi i64 [%55, %$12] ; # Exe\n  %100 = phi i64 [%56, %$12] ; # X\n  %101 = phi i64 [%57, %$12] ; # Fun\n  %102 = phi i64 [%58, %$12] ; # Args\n  %103 = phi i64 [%59, %$12] ; # L\n; # (ffi Exe null Fun Args)\n  %104 = tail call i64 @ffi(i64 %99, i8* null, i64 %101, i64 %102)\n; # (drop *Safe)\n  %105 = inttoptr i64 %24 to i64*\n  %106 = getelementptr i64, i64* %105, i32 1\n  %107 = load i64, i64* %106\n  %108 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %107, i64* %108\n  ret i64 %104\n}\n\ndefine i64 @_Native(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (eval (++ X)) Lib (cond ((cnt? Y) (i8* (int Y...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (cond ((cnt? Y) (i8* (int Y))) ((big? Y) (i8* (val (dig Y)))) ((p...\n; # (cnt? Y)\n  %21 = and i64 %20, 2\n  %22 = icmp ne i64 %21, 0\n  br i1 %22, label %$9, label %$8\n$9:\n  %23 = phi i64 [%0, %$2] ; # Exe\n  %24 = phi i64 [%6, %$2] ; # X\n  %25 = phi i64 [%20, %$2] ; # Y\n; # (int Y)\n  %26 = lshr i64 %25, 4\n; # (i8* (int Y))\n  %27 = inttoptr i64 %26 to i8*\n  br label %$7\n$8:\n  %28 = phi i64 [%0, %$2] ; # Exe\n  %29 = phi i64 [%6, %$2] ; # X\n  %30 = phi i64 [%20, %$2] ; # Y\n; # (big? Y)\n  %31 = and i64 %30, 4\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$11, label %$10\n$11:\n  %33 = phi i64 [%28, %$8] ; # Exe\n  %34 = phi i64 [%29, %$8] ; # X\n  %35 = phi i64 [%30, %$8] ; # Y\n; # (dig Y)\n  %36 = add i64 %35, -4\n; # (val (dig Y))\n  %37 = inttoptr i64 %36 to i64*\n  %38 = load i64, i64* %37\n; # (i8* (val (dig Y)))\n  %39 = inttoptr i64 %38 to i8*\n  br label %$7\n$10:\n  %40 = phi i64 [%28, %$8] ; # Exe\n  %41 = phi i64 [%29, %$8] ; # X\n  %42 = phi i64 [%30, %$8] ; # Y\n; # (pair Y)\n  %43 = and i64 %42, 15\n  %44 = icmp eq i64 %43, 0\n  br i1 %44, label %$13, label %$12\n$13:\n  %45 = phi i64 [%40, %$10] ; # Exe\n  %46 = phi i64 [%41, %$10] ; # X\n  %47 = phi i64 [%42, %$10] ; # Y\n; # (argErr Exe Y)\n  call void @argErr(i64 %45, i64 %47)\n  unreachable\n$12:\n  %48 = phi i64 [%40, %$10] ; # Exe\n  %49 = phi i64 [%41, %$10] ; # X\n  %50 = phi i64 [%42, %$10] ; # Y\n; # (xName Y)\n  %51 = call i64 @xName(i64 %50)\n; # (| 2 (>> -4 (char \"@\")))\n; # (== (xName Y) (| 2 (>> -4 (char \"@\"))))\n  %52 = icmp eq i64 %51, 1026\n  br i1 %52, label %$15, label %$14\n$15:\n  %53 = phi i64 [%48, %$12] ; # Exe\n  %54 = phi i64 [%49, %$12] ; # X\n  %55 = phi i64 [%50, %$12] ; # Y\n; # (set Y ZERO)\n  %56 = inttoptr i64 %55 to i64*\n  store i64 2, i64* %56\n  br label %$7\n$14:\n  %57 = phi i64 [%48, %$12] ; # Exe\n  %58 = phi i64 [%49, %$12] ; # X\n  %59 = phi i64 [%50, %$12] ; # Y\n; # (unless (dlOpen (pathString @ (b8 (pathSize @)))) (err Exe Y ($ \"...\n; # (pathSize @)\n  %60 = call i64 @pathSize(i64 %51)\n; # (b8 (pathSize @))\n  %61 = alloca i8, i64 %60\n; # (pathString @ (b8 (pathSize @)))\n  %62 = call i8* @pathString(i64 %51, i8* %61)\n; # (dlOpen (pathString @ (b8 (pathSize @))))\n  %63 = call i8* @dlOpen(i8* %62)\n  %64 = icmp ne i8* %63, null\n  br i1 %64, label %$17, label %$16\n$16:\n  %65 = phi i64 [%57, %$14] ; # Exe\n  %66 = phi i64 [%58, %$14] ; # X\n  %67 = phi i64 [%59, %$14] ; # Y\n; # (dlerror)\n  %68 = call i8* @dlerror()\n; # (err Exe Y ($ \"[DLL] %s\") (dlerror))\n  call void @err(i64 %65, i64 %67, i8* bitcast ([9 x i8]* @$94 to i8*), i8* %68)\n  unreachable\n$17:\n  %69 = phi i64 [%57, %$14] ; # Exe\n  %70 = phi i64 [%58, %$14] ; # X\n  %71 = phi i64 [%59, %$14] ; # Y\n; # (set Y (box64 (i64 @)))\n; # (i64 @)\n  %72 = ptrtoint i8* %63 to i64\n; # (box64 (i64 @))\n  %73 = and i64 %72, 17293822569102704640\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$18, label %$19\n$18:\n  %75 = phi i64 [%72, %$17] ; # N\n  %76 = call i64 @boxNum(i64 %75)\n  br label %$20\n$19:\n  %77 = phi i64 [%72, %$17] ; # N\n  %78 = shl i64 %77, 4\n  %79 = or i64 %78, 2\n  br label %$20\n$20:\n  %80 = phi i64 [%75, %$18], [%77, %$19] ; # N\n  %81 = phi i64 [%76, %$18], [%79, %$19] ; # ->\n  %82 = inttoptr i64 %71 to i64*\n  store i64 %81, i64* %82\n  br label %$7\n$7:\n  %83 = phi i64 [%23, %$9], [%33, %$11], [%53, %$15], [%69, %$20] ; # Exe\n  %84 = phi i64 [%24, %$9], [%34, %$11], [%54, %$15], [%70, %$20] ; # X\n  %85 = phi i64 [%25, %$9], [%35, %$11], [%55, %$15], [%71, %$20] ; # Y\n  %86 = phi i8* [%27, %$9], [%39, %$11], [null, %$15], [%63, %$20] ; # ->\n; # (++ X)\n  %87 = inttoptr i64 %84 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  %89 = load i64, i64* %88\n  %90 = load i64, i64* %87\n; # (eval (++ X))\n  %91 = and i64 %90, 6\n  %92 = icmp ne i64 %91, 0\n  br i1 %92, label %$23, label %$22\n$23:\n  %93 = phi i64 [%90, %$7] ; # X\n  br label %$21\n$22:\n  %94 = phi i64 [%90, %$7] ; # X\n  %95 = and i64 %94, 8\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$25, label %$24\n$25:\n  %97 = phi i64 [%94, %$22] ; # X\n  %98 = inttoptr i64 %97 to i64*\n  %99 = load i64, i64* %98\n  br label %$21\n$24:\n  %100 = phi i64 [%94, %$22] ; # X\n  %101 = call i64 @evList(i64 %100)\n  br label %$21\n$21:\n  %102 = phi i64 [%93, %$23], [%97, %$25], [%100, %$24] ; # X\n  %103 = phi i64 [%93, %$23], [%99, %$25], [%101, %$24] ; # ->\n; # (save (eval (++ X)))\n  %104 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %105 = load i64, i64* %104\n  %106 = alloca i64, i64 2, align 16\n  %107 = ptrtoint i64* %106 to i64\n  %108 = inttoptr i64 %107 to i64*\n  store i64 %103, i64* %108\n  %109 = add i64 %107, 8\n  %110 = inttoptr i64 %109 to i64*\n  store i64 %105, i64* %110\n  %111 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %107, i64* %111\n; # (++ X)\n  %112 = inttoptr i64 %89 to i64*\n  %113 = getelementptr i64, i64* %112, i32 1\n  %114 = load i64, i64* %113\n  %115 = load i64, i64* %112\n; # (eval (++ X))\n  %116 = and i64 %115, 6\n  %117 = icmp ne i64 %116, 0\n  br i1 %117, label %$28, label %$27\n$28:\n  %118 = phi i64 [%115, %$21] ; # X\n  br label %$26\n$27:\n  %119 = phi i64 [%115, %$21] ; # X\n  %120 = and i64 %119, 8\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$30, label %$29\n$30:\n  %122 = phi i64 [%119, %$27] ; # X\n  %123 = inttoptr i64 %122 to i64*\n  %124 = load i64, i64* %123\n  br label %$26\n$29:\n  %125 = phi i64 [%119, %$27] ; # X\n  %126 = call i64 @evList(i64 %125)\n  br label %$26\n$26:\n  %127 = phi i64 [%118, %$28], [%122, %$30], [%125, %$29] ; # X\n  %128 = phi i64 [%118, %$28], [%124, %$30], [%126, %$29] ; # ->\n; # (cons (eval (++ X)) $Nil)\n  %129 = call i64 @cons(i64 %128, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save (cons (eval (++ X)) $Nil))\n  %130 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %131 = load i64, i64* %130\n  %132 = alloca i64, i64 2, align 16\n  %133 = ptrtoint i64* %132 to i64\n  %134 = inttoptr i64 %133 to i64*\n  store i64 %129, i64* %134\n  %135 = add i64 %133, 8\n  %136 = inttoptr i64 %135 to i64*\n  store i64 %131, i64* %136\n  %137 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %133, i64* %137\n; # (while (pair X) (let Z (push (save (eval (++ X))) $Nil) (set 2 L ...\n  br label %$31\n$31:\n  %138 = phi i64 [%83, %$26], [%147, %$34] ; # Exe\n  %139 = phi i64 [%114, %$26], [%156, %$34] ; # X\n  %140 = phi i64 [%85, %$26], [%149, %$34] ; # Y\n  %141 = phi i8* [%86, %$26], [%150, %$34] ; # Lib\n  %142 = phi i64 [%103, %$26], [%151, %$34] ; # Fun\n  %143 = phi i64 [%129, %$26], [%152, %$34] ; # Args\n  %144 = phi i64 [%129, %$26], [%180, %$34] ; # L\n; # (pair X)\n  %145 = and i64 %139, 15\n  %146 = icmp eq i64 %145, 0\n  br i1 %146, label %$32, label %$33\n$32:\n  %147 = phi i64 [%138, %$31] ; # Exe\n  %148 = phi i64 [%139, %$31] ; # X\n  %149 = phi i64 [%140, %$31] ; # Y\n  %150 = phi i8* [%141, %$31] ; # Lib\n  %151 = phi i64 [%142, %$31] ; # Fun\n  %152 = phi i64 [%143, %$31] ; # Args\n  %153 = phi i64 [%144, %$31] ; # L\n; # (let Z (push (save (eval (++ X))) $Nil) (set 2 L Z) (setq L Z))\n; # (++ X)\n  %154 = inttoptr i64 %148 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  %156 = load i64, i64* %155\n  %157 = load i64, i64* %154\n; # (eval (++ X))\n  %158 = and i64 %157, 6\n  %159 = icmp ne i64 %158, 0\n  br i1 %159, label %$36, label %$35\n$36:\n  %160 = phi i64 [%157, %$32] ; # X\n  br label %$34\n$35:\n  %161 = phi i64 [%157, %$32] ; # X\n  %162 = and i64 %161, 8\n  %163 = icmp ne i64 %162, 0\n  br i1 %163, label %$38, label %$37\n$38:\n  %164 = phi i64 [%161, %$35] ; # X\n  %165 = inttoptr i64 %164 to i64*\n  %166 = load i64, i64* %165\n  br label %$34\n$37:\n  %167 = phi i64 [%161, %$35] ; # X\n  %168 = call i64 @evList(i64 %167)\n  br label %$34\n$34:\n  %169 = phi i64 [%160, %$36], [%164, %$38], [%167, %$37] ; # X\n  %170 = phi i64 [%160, %$36], [%166, %$38], [%168, %$37] ; # ->\n; # (save (eval (++ X)))\n  %171 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %172 = load i64, i64* %171\n  %173 = alloca i64, i64 2, align 16\n  %174 = ptrtoint i64* %173 to i64\n  %175 = inttoptr i64 %174 to i64*\n  store i64 %170, i64* %175\n  %176 = add i64 %174, 8\n  %177 = inttoptr i64 %176 to i64*\n  store i64 %172, i64* %177\n  %178 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %174, i64* %178\n; # (push (save (eval (++ X))) $Nil)\n  %179 = alloca i64, i64 2, align 16\n  %180 = ptrtoint i64* %179 to i64\n  %181 = inttoptr i64 %180 to i64*\n  store i64 %170, i64* %181\n  %182 = add i64 %180, 8\n  %183 = inttoptr i64 %182 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %183\n; # (set 2 L Z)\n  %184 = inttoptr i64 %153 to i64*\n  %185 = getelementptr i64, i64* %184, i32 1\n  store i64 %180, i64* %185\n  br label %$31\n$33:\n  %186 = phi i64 [%138, %$31] ; # Exe\n  %187 = phi i64 [%139, %$31] ; # X\n  %188 = phi i64 [%140, %$31] ; # Y\n  %189 = phi i8* [%141, %$31] ; # Lib\n  %190 = phi i64 [%142, %$31] ; # Fun\n  %191 = phi i64 [%143, %$31] ; # Args\n  %192 = phi i64 [%144, %$31] ; # L\n; # (ffi Exe Lib Fun Args)\n  %193 = tail call i64 @ffi(i64 %186, i8* %189, i64 %190, i64 %191)\n; # (drop *Safe)\n  %194 = inttoptr i64 %107 to i64*\n  %195 = getelementptr i64, i64* %194, i32 1\n  %196 = load i64, i64* %195\n  %197 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %196, i64* %197\n  ret i64 %193\n}\n\ndefine i64 @_Struct(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) N (xCnt64 Exe (eval (++ X))) P (i8* N) Y (save ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (xCnt64 Exe (eval (++ X)))\n  %21 = call i64 @xCnt64(i64 %0, i64 %20)\n; # (i8* N)\n  %22 = inttoptr i64 %21 to i8*\n; # (car X)\n  %23 = inttoptr i64 %6 to i64*\n  %24 = load i64, i64* %23\n; # (eval (car X))\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$9, label %$8\n$9:\n  %27 = phi i64 [%24, %$2] ; # X\n  br label %$7\n$8:\n  %28 = phi i64 [%24, %$2] ; # X\n  %29 = and i64 %28, 8\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$11, label %$10\n$11:\n  %31 = phi i64 [%28, %$8] ; # X\n  %32 = inttoptr i64 %31 to i64*\n  %33 = load i64, i64* %32\n  br label %$7\n$10:\n  %34 = phi i64 [%28, %$8] ; # X\n  %35 = call i64 @evList(i64 %34)\n  br label %$7\n$7:\n  %36 = phi i64 [%27, %$9], [%31, %$11], [%34, %$10] ; # X\n  %37 = phi i64 [%27, %$9], [%33, %$11], [%35, %$10] ; # ->\n; # (save (eval (car X)))\n  %38 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %39 = load i64, i64* %38\n  %40 = alloca i64, i64 2, align 16\n  %41 = ptrtoint i64* %40 to i64\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %37, i64* %42\n  %43 = add i64 %41, 8\n  %44 = inttoptr i64 %43 to i64*\n  store i64 %39, i64* %44\n  %45 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %41, i64* %45\n; # (while (pair (shift X)) (setq P (ofs P (natBuf (eval (car X)) P))...\n  br label %$12\n$12:\n  %46 = phi i64 [%0, %$7], [%56, %$15] ; # Exe\n  %47 = phi i64 [%6, %$7], [%57, %$15] ; # X\n  %48 = phi i64 [%21, %$7], [%58, %$15] ; # N\n  %49 = phi i8* [%22, %$7], [%77, %$15] ; # P\n  %50 = phi i64 [%37, %$7], [%60, %$15] ; # Y\n; # (shift X)\n  %51 = inttoptr i64 %47 to i64*\n  %52 = getelementptr i64, i64* %51, i32 1\n  %53 = load i64, i64* %52\n; # (pair (shift X))\n  %54 = and i64 %53, 15\n  %55 = icmp eq i64 %54, 0\n  br i1 %55, label %$13, label %$14\n$13:\n  %56 = phi i64 [%46, %$12] ; # Exe\n  %57 = phi i64 [%53, %$12] ; # X\n  %58 = phi i64 [%48, %$12] ; # N\n  %59 = phi i8* [%49, %$12] ; # P\n  %60 = phi i64 [%50, %$12] ; # Y\n; # (car X)\n  %61 = inttoptr i64 %57 to i64*\n  %62 = load i64, i64* %61\n; # (eval (car X))\n  %63 = and i64 %62, 6\n  %64 = icmp ne i64 %63, 0\n  br i1 %64, label %$17, label %$16\n$17:\n  %65 = phi i64 [%62, %$13] ; # X\n  br label %$15\n$16:\n  %66 = phi i64 [%62, %$13] ; # X\n  %67 = and i64 %66, 8\n  %68 = icmp ne i64 %67, 0\n  br i1 %68, label %$19, label %$18\n$19:\n  %69 = phi i64 [%66, %$16] ; # X\n  %70 = inttoptr i64 %69 to i64*\n  %71 = load i64, i64* %70\n  br label %$15\n$18:\n  %72 = phi i64 [%66, %$16] ; # X\n  %73 = call i64 @evList(i64 %72)\n  br label %$15\n$15:\n  %74 = phi i64 [%65, %$17], [%69, %$19], [%72, %$18] ; # X\n  %75 = phi i64 [%65, %$17], [%71, %$19], [%73, %$18] ; # ->\n; # (natBuf (eval (car X)) P)\n  %76 = call i64 @natBuf(i64 %75, i8* %59)\n; # (ofs P (natBuf (eval (car X)) P))\n  %77 = getelementptr i8, i8* %59, i64 %76\n  br label %$12\n$14:\n  %78 = phi i64 [%46, %$12] ; # Exe\n  %79 = phi i64 [%53, %$12] ; # X\n  %80 = phi i64 [%48, %$12] ; # N\n  %81 = phi i8* [%49, %$12] ; # P\n  %82 = phi i64 [%50, %$12] ; # Y\n; # (cond ((nil? Y) @) ((== Y $S) (mkStr (i8* N))) (T (natRetBuf Y (i...\n; # (nil? Y)\n  %83 = icmp eq i64 %82, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %83, label %$22, label %$21\n$22:\n  %84 = phi i64 [%78, %$14] ; # Exe\n  %85 = phi i64 [%79, %$14] ; # X\n  %86 = phi i64 [%80, %$14] ; # N\n  %87 = phi i8* [%81, %$14] ; # P\n  %88 = phi i64 [%82, %$14] ; # Y\n  br label %$20\n$21:\n  %89 = phi i64 [%78, %$14] ; # Exe\n  %90 = phi i64 [%79, %$14] ; # X\n  %91 = phi i64 [%80, %$14] ; # N\n  %92 = phi i8* [%81, %$14] ; # P\n  %93 = phi i64 [%82, %$14] ; # Y\n; # (== Y $S)\n  %94 = icmp eq i64 %93, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 296) to i64)\n  br i1 %94, label %$24, label %$23\n$24:\n  %95 = phi i64 [%89, %$21] ; # Exe\n  %96 = phi i64 [%90, %$21] ; # X\n  %97 = phi i64 [%91, %$21] ; # N\n  %98 = phi i8* [%92, %$21] ; # P\n  %99 = phi i64 [%93, %$21] ; # Y\n; # (i8* N)\n  %100 = inttoptr i64 %97 to i8*\n; # (mkStr (i8* N))\n  %101 = call i64 @mkStr(i8* %100)\n  br label %$20\n$23:\n  %102 = phi i64 [%89, %$21] ; # Exe\n  %103 = phi i64 [%90, %$21] ; # X\n  %104 = phi i64 [%91, %$21] ; # N\n  %105 = phi i8* [%92, %$21] ; # P\n  %106 = phi i64 [%93, %$21] ; # Y\n; # (push N)\n  %107 = alloca i64, i64 1\n  store i64 %104, i64* %107\n; # (i8** (push N))\n  %108 = bitcast i64* %107 to i8**\n; # (natRetBuf Y (i8** (push N)))\n  %109 = call i64 @natRetBuf(i64 %106, i8** %108)\n  br label %$20\n$20:\n  %110 = phi i64 [%84, %$22], [%95, %$24], [%102, %$23] ; # Exe\n  %111 = phi i64 [%85, %$22], [%96, %$24], [%103, %$23] ; # X\n  %112 = phi i64 [%86, %$22], [%97, %$24], [%104, %$23] ; # N\n  %113 = phi i8* [%87, %$22], [%98, %$24], [%105, %$23] ; # P\n  %114 = phi i64 [%88, %$22], [%99, %$24], [%106, %$23] ; # Y\n  %115 = phi i64 [%82, %$22], [%101, %$24], [%109, %$23] ; # ->\n; # (drop *Safe)\n  %116 = inttoptr i64 %41 to i64*\n  %117 = getelementptr i64, i64* %116, i32 1\n  %118 = load i64, i64* %117\n  %119 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %118, i64* %119\n  ret i64 %115\n}\n\ndefine i64 @cbl(i64, i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (let Exe (push NIL NIL ZERO Fun) (set Exe (ofs Exe 3)) (let P (se...\n; # (push NIL NIL ZERO Fun)\n  %6 = alloca i64, i64 4, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = add i64 %7, 16\n  %9 = inttoptr i64 %8 to i64*\n  store i64 2, i64* %9\n  %10 = add i64 %7, 24\n  %11 = inttoptr i64 %10 to i64*\n  store i64 %0, i64* %11\n; # (set Exe (ofs Exe 3))\n; # (ofs Exe 3)\n  %12 = add i64 %7, 24\n  %13 = inttoptr i64 %7 to i64*\n  store i64 %12, i64* %13\n; # (let P (set 2 Exe (push NIL NIL ZERO (box A))) (set P (ofs P 3)) ...\n; # (set 2 Exe (push NIL NIL ZERO (box A)))\n; # (box A)\n  %14 = call i64 @box(i64 %1)\n; # (push NIL NIL ZERO (box A))\n  %15 = alloca i64, i64 4, align 16\n  %16 = ptrtoint i64* %15 to i64\n  %17 = add i64 %16, 16\n  %18 = inttoptr i64 %17 to i64*\n  store i64 2, i64* %18\n  %19 = add i64 %16, 24\n  %20 = inttoptr i64 %19 to i64*\n  store i64 %14, i64* %20\n  %21 = inttoptr i64 %7 to i64*\n  %22 = getelementptr i64, i64* %21, i32 1\n  store i64 %16, i64* %22\n; # (set P (ofs P 3))\n; # (ofs P 3)\n  %23 = add i64 %16, 24\n  %24 = inttoptr i64 %16 to i64*\n  store i64 %23, i64* %24\n; # (set 2 P (push NIL NIL ZERO (box B)))\n; # (box B)\n  %25 = call i64 @box(i64 %2)\n; # (push NIL NIL ZERO (box B))\n  %26 = alloca i64, i64 4, align 16\n  %27 = ptrtoint i64* %26 to i64\n  %28 = add i64 %27, 16\n  %29 = inttoptr i64 %28 to i64*\n  store i64 2, i64* %29\n  %30 = add i64 %27, 24\n  %31 = inttoptr i64 %30 to i64*\n  store i64 %25, i64* %31\n  %32 = inttoptr i64 %16 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  store i64 %27, i64* %33\n; # (set P (ofs P 3))\n; # (ofs P 3)\n  %34 = add i64 %27, 24\n  %35 = inttoptr i64 %27 to i64*\n  store i64 %34, i64* %35\n; # (set 2 P (push NIL NIL ZERO (box C)))\n; # (box C)\n  %36 = call i64 @box(i64 %3)\n; # (push NIL NIL ZERO (box C))\n  %37 = alloca i64, i64 4, align 16\n  %38 = ptrtoint i64* %37 to i64\n  %39 = add i64 %38, 16\n  %40 = inttoptr i64 %39 to i64*\n  store i64 2, i64* %40\n  %41 = add i64 %38, 24\n  %42 = inttoptr i64 %41 to i64*\n  store i64 %36, i64* %42\n  %43 = inttoptr i64 %27 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  store i64 %38, i64* %44\n; # (set P (ofs P 3))\n; # (ofs P 3)\n  %45 = add i64 %38, 24\n  %46 = inttoptr i64 %38 to i64*\n  store i64 %45, i64* %46\n; # (set 2 P (push NIL NIL ZERO (box D)))\n; # (box D)\n  %47 = call i64 @box(i64 %4)\n; # (push NIL NIL ZERO (box D))\n  %48 = alloca i64, i64 4, align 16\n  %49 = ptrtoint i64* %48 to i64\n  %50 = add i64 %49, 16\n  %51 = inttoptr i64 %50 to i64*\n  store i64 2, i64* %51\n  %52 = add i64 %49, 24\n  %53 = inttoptr i64 %52 to i64*\n  store i64 %47, i64* %53\n  %54 = inttoptr i64 %38 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  store i64 %49, i64* %55\n; # (set P (ofs P 3))\n; # (ofs P 3)\n  %56 = add i64 %49, 24\n  %57 = inttoptr i64 %49 to i64*\n  store i64 %56, i64* %57\n; # (set 2 P (push NIL $Nil ZERO (box E)))\n; # (box E)\n  %58 = call i64 @box(i64 %5)\n; # (push NIL $Nil ZERO (box E))\n  %59 = alloca i64, i64 4, align 16\n  %60 = ptrtoint i64* %59 to i64\n  %61 = add i64 %60, 8\n  %62 = inttoptr i64 %61 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %62\n  %63 = add i64 %60, 16\n  %64 = inttoptr i64 %63 to i64*\n  store i64 2, i64* %64\n  %65 = add i64 %60, 24\n  %66 = inttoptr i64 %65 to i64*\n  store i64 %58, i64* %66\n  %67 = inttoptr i64 %49 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  store i64 %60, i64* %68\n; # (set P (ofs P 3))\n; # (ofs P 3)\n  %69 = add i64 %60, 24\n  %70 = inttoptr i64 %60 to i64*\n  store i64 %69, i64* %70\n; # (evList Exe)\n  %71 = call i64 @evList(i64 %7)\n; # (xCnt 0 (evList Exe))\n  %72 = call i64 @xCnt(i64 0, i64 %71)\n  ret i64 %72\n}\n\ndefine i64 @_Cb1(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 2 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 1\n  %7 = load i64, i64* %6\n; # (cbl (val 2 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb2(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 4 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 3\n  %7 = load i64, i64* %6\n; # (cbl (val 4 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb3(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 6 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 5\n  %7 = load i64, i64* %6\n; # (cbl (val 6 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb4(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 8 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 7\n  %7 = load i64, i64* %6\n; # (cbl (val 8 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb5(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 10 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 9\n  %7 = load i64, i64* %6\n; # (cbl (val 10 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb6(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 12 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 11\n  %7 = load i64, i64* %6\n; # (cbl (val 12 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb7(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 14 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 13\n  %7 = load i64, i64* %6\n; # (cbl (val 14 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb8(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 16 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 15\n  %7 = load i64, i64* %6\n; # (cbl (val 16 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb9(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 18 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 17\n  %7 = load i64, i64* %6\n; # (cbl (val 18 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb10(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 20 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 19\n  %7 = load i64, i64* %6\n; # (cbl (val 20 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb11(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 22 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 21\n  %7 = load i64, i64* %6\n; # (cbl (val 22 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb12(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 24 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 23\n  %7 = load i64, i64* %6\n; # (cbl (val 24 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb13(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 26 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 25\n  %7 = load i64, i64* %6\n; # (cbl (val 26 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb14(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 28 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 27\n  %7 = load i64, i64* %6\n; # (cbl (val 28 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb15(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 30 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 29\n  %7 = load i64, i64* %6\n; # (cbl (val 30 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb16(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 32 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 31\n  %7 = load i64, i64* %6\n; # (cbl (val 32 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb17(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 34 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 33\n  %7 = load i64, i64* %6\n; # (cbl (val 34 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb18(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 36 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 35\n  %7 = load i64, i64* %6\n; # (cbl (val 36 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb19(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 38 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 37\n  %7 = load i64, i64* %6\n; # (cbl (val 38 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb20(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 40 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 39\n  %7 = load i64, i64* %6\n; # (cbl (val 40 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb21(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 42 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 41\n  %7 = load i64, i64* %6\n; # (cbl (val 42 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb22(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 44 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 43\n  %7 = load i64, i64* %6\n; # (cbl (val 44 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb23(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 46 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 45\n  %7 = load i64, i64* %6\n; # (cbl (val 46 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Cb24(i64, i64, i64, i64, i64) align 8 {\n$1:\n; # (val 48 $Lisp)\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64) to i64*\n  %6 = getelementptr i64, i64* %5, i32 47\n  %7 = load i64, i64* %6\n; # (cbl (val 48 $Lisp) A B C D E)\n  %8 = call i64 @cbl(i64 %7, i64 %0, i64 %1, i64 %2, i64 %3, i64 %4)\n  ret i64 %8\n}\n\ndefine i64 @_Lisp(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (evSym X)) (let (P $Lisp Q (i8** (cbFuns))) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (let (P $Lisp Q (i8** (cbFuns))) (loop (? (== Y (val P))) (setq P...\n; # (i8* $Cb)\n  %5 = bitcast i64(i64,i64,i64,i64,i64)** bitcast (i8* getelementptr (i8, i8* bitcast ([24 x i64]* @cbFuns to i8*), i32 0) to i64(i64,i64,i64,i64,i64)**) to i8*\n; # (i8** (cbFuns))\n  %6 = bitcast i8* %5 to i8**\n; # (loop (? (== Y (val P))) (setq P (ofs P 2) Q (ofs Q 1)) (? (> P $...\n  br label %$2\n$2:\n  %7 = phi i64 [%0, %$1], [%63, %$5] ; # Exe\n  %8 = phi i64 [%3, %$1], [%64, %$5] ; # X\n  %9 = phi i64 [%4, %$1], [%65, %$5] ; # Y\n  %10 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64), %$1], [%66, %$5] ; # P\n  %11 = phi i8** [%6, %$1], [%67, %$5] ; # Q\n; # (? (== Y (val P)))\n; # (val P)\n  %12 = inttoptr i64 %10 to i64*\n  %13 = load i64, i64* %12\n; # (== Y (val P))\n  %14 = icmp eq i64 %9, %13\n  br i1 %14, label %$4, label %$3\n$3:\n  %15 = phi i64 [%7, %$2] ; # Exe\n  %16 = phi i64 [%8, %$2] ; # X\n  %17 = phi i64 [%9, %$2] ; # Y\n  %18 = phi i64 [%10, %$2] ; # P\n  %19 = phi i8** [%11, %$2] ; # Q\n; # (ofs P 2)\n  %20 = add i64 %18, 16\n; # (ofs Q 1)\n  %21 = getelementptr i8*, i8** %19, i32 1\n; # (? (> P $LispEnd) (setq P $Lisp Q (i8** (cbFuns))) (until (nil? (...\n; # (> P $LispEnd)\n  %22 = icmp ugt i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 416) to i64)\n  br i1 %22, label %$6, label %$5\n$6:\n  %23 = phi i64 [%15, %$3] ; # Exe\n  %24 = phi i64 [%16, %$3] ; # X\n  %25 = phi i64 [%17, %$3] ; # Y\n  %26 = phi i64 [%20, %$3] ; # P\n  %27 = phi i8** [%21, %$3] ; # Q\n; # (i8* $Cb)\n  %28 = bitcast i64(i64,i64,i64,i64,i64)** bitcast (i8* getelementptr (i8, i8* bitcast ([24 x i64]* @cbFuns to i8*), i32 0) to i64(i64,i64,i64,i64,i64)**) to i8*\n; # (i8** (cbFuns))\n  %29 = bitcast i8* %28 to i8**\n; # (until (nil? (val 2 P)) (setq P (ofs P 2) Q (ofs Q 1)) (when (> P...\n  br label %$7\n$7:\n  %30 = phi i64 [%23, %$6], [%52, %$11] ; # Exe\n  %31 = phi i64 [%24, %$6], [%53, %$11] ; # X\n  %32 = phi i64 [%25, %$6], [%54, %$11] ; # Y\n  %33 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 40) to i64), %$6], [%55, %$11] ; # P\n  %34 = phi i8** [%29, %$6], [%56, %$11] ; # Q\n; # (val 2 P)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n; # (nil? (val 2 P))\n  %38 = icmp eq i64 %37, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %38, label %$9, label %$8\n$8:\n  %39 = phi i64 [%30, %$7] ; # Exe\n  %40 = phi i64 [%31, %$7] ; # X\n  %41 = phi i64 [%32, %$7] ; # Y\n  %42 = phi i64 [%33, %$7] ; # P\n  %43 = phi i8** [%34, %$7] ; # Q\n; # (ofs P 2)\n  %44 = add i64 %42, 16\n; # (ofs Q 1)\n  %45 = getelementptr i8*, i8** %43, i32 1\n; # (when (> P $LispEnd) (err Exe 0 ($ \"Too many callbacks\") null))\n; # (> P $LispEnd)\n  %46 = icmp ugt i64 %44, ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 416) to i64)\n  br i1 %46, label %$10, label %$11\n$10:\n  %47 = phi i64 [%39, %$8] ; # Exe\n  %48 = phi i64 [%40, %$8] ; # X\n  %49 = phi i64 [%41, %$8] ; # Y\n  %50 = phi i64 [%44, %$8] ; # P\n  %51 = phi i8** [%45, %$8] ; # Q\n; # (err Exe 0 ($ \"Too many callbacks\") null)\n  call void @err(i64 %47, i64 0, i8* bitcast ([19 x i8]* @$95 to i8*), i8* null)\n  unreachable\n$11:\n  %52 = phi i64 [%39, %$8] ; # Exe\n  %53 = phi i64 [%40, %$8] ; # X\n  %54 = phi i64 [%41, %$8] ; # Y\n  %55 = phi i64 [%44, %$8] ; # P\n  %56 = phi i8** [%45, %$8] ; # Q\n  br label %$7\n$9:\n  %57 = phi i64 [%30, %$7] ; # Exe\n  %58 = phi i64 [%31, %$7] ; # X\n  %59 = phi i64 [%32, %$7] ; # Y\n  %60 = phi i64 [%33, %$7] ; # P\n  %61 = phi i8** [%34, %$7] ; # Q\n; # (set P Y)\n  %62 = inttoptr i64 %60 to i64*\n  store i64 %59, i64* %62\n  br label %$4\n$5:\n  %63 = phi i64 [%15, %$3] ; # Exe\n  %64 = phi i64 [%16, %$3] ; # X\n  %65 = phi i64 [%17, %$3] ; # Y\n  %66 = phi i64 [%20, %$3] ; # P\n  %67 = phi i8** [%21, %$3] ; # Q\n  br label %$2\n$4:\n  %68 = phi i64 [%7, %$2], [%57, %$9] ; # Exe\n  %69 = phi i64 [%8, %$2], [%58, %$9] ; # X\n  %70 = phi i64 [%9, %$2], [%59, %$9] ; # Y\n  %71 = phi i64 [%10, %$2], [%60, %$9] ; # P\n  %72 = phi i8** [%11, %$2], [%61, %$9] ; # Q\n  %73 = phi i64 [0, %$2], [%59, %$9] ; # ->\n; # (set 2 P (eval (cadr X)))\n; # (cadr X)\n  %74 = inttoptr i64 %69 to i64*\n  %75 = getelementptr i64, i64* %74, i32 1\n  %76 = load i64, i64* %75\n  %77 = inttoptr i64 %76 to i64*\n  %78 = load i64, i64* %77\n; # (eval (cadr X))\n  %79 = and i64 %78, 6\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$14, label %$13\n$14:\n  %81 = phi i64 [%78, %$4] ; # X\n  br label %$12\n$13:\n  %82 = phi i64 [%78, %$4] ; # X\n  %83 = and i64 %82, 8\n  %84 = icmp ne i64 %83, 0\n  br i1 %84, label %$16, label %$15\n$16:\n  %85 = phi i64 [%82, %$13] ; # X\n  %86 = inttoptr i64 %85 to i64*\n  %87 = load i64, i64* %86\n  br label %$12\n$15:\n  %88 = phi i64 [%82, %$13] ; # X\n  %89 = call i64 @evList(i64 %88)\n  br label %$12\n$12:\n  %90 = phi i64 [%81, %$14], [%85, %$16], [%88, %$15] ; # X\n  %91 = phi i64 [%81, %$14], [%87, %$16], [%89, %$15] ; # ->\n  %92 = inttoptr i64 %71 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  store i64 %91, i64* %93\n; # (val Q)\n  %94 = load i8*, i8** %72\n; # (i64 (val Q))\n  %95 = ptrtoint i8* %94 to i64\n; # (box64 (i64 (val Q)))\n  %96 = and i64 %95, 17293822569102704640\n  %97 = icmp ne i64 %96, 0\n  br i1 %97, label %$17, label %$18\n$17:\n  %98 = phi i64 [%95, %$12] ; # N\n  %99 = call i64 @boxNum(i64 %98)\n  br label %$19\n$18:\n  %100 = phi i64 [%95, %$12] ; # N\n  %101 = shl i64 %100, 4\n  %102 = or i64 %101, 2\n  br label %$19\n$19:\n  %103 = phi i64 [%98, %$17], [%100, %$18] ; # N\n  %104 = phi i64 [%99, %$17], [%102, %$18] ; # ->\n  ret i64 %104\n}\n\ndefine i64 @_Args(i64) align 8 {\n$1:\n; # (if (pair (val $Next)) $T $Nil)\n; # (val $Next)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (pair (val $Next))\n  %3 = and i64 %2, 15\n  %4 = icmp eq i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$4:\n  %7 = phi i64 [%5, %$2], [%6, %$3] ; # Exe\n  %8 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$2], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$3] ; # ->\n  ret i64 %8\n}\n\ndefine i64 @_Next(i64) align 8 {\n$1:\n; # (let X (val $Next) (set $Next (car X)) (val 2 X))\n; # (val $Next)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (set $Next (car X))\n; # (car X)\n  %3 = inttoptr i64 %2 to i64*\n  %4 = load i64, i64* %3\n  %5 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  store i64 %4, i64* %5\n; # (val 2 X)\n  %6 = inttoptr i64 %2 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  ret i64 %8\n}\n\ndefine i64 @_Arg(i64) align 8 {\n$1:\n; # (if (le0 (evCnt Exe (cdr Exe))) $Nil (let (N @ X (val $Next)) (wh...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe (cdr Exe))\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (le0 (evCnt Exe (cdr Exe)))\n  %5 = icmp sle i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n; # (let (N @ X (val $Next)) (while (gt0 (dec 'N)) (setq X (car X))) ...\n; # (val $Next)\n  %8 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %9 = load i64, i64* %8\n; # (while (gt0 (dec 'N)) (setq X (car X)))\n  br label %$5\n$5:\n  %10 = phi i64 [%7, %$3], [%15, %$6] ; # Exe\n  %11 = phi i64 [%4, %$3], [%16, %$6] ; # N\n  %12 = phi i64 [%9, %$3], [%19, %$6] ; # X\n; # (dec 'N)\n  %13 = sub i64 %11, 1\n; # (gt0 (dec 'N))\n  %14 = icmp sgt i64 %13, 0\n  br i1 %14, label %$6, label %$7\n$6:\n  %15 = phi i64 [%10, %$5] ; # Exe\n  %16 = phi i64 [%13, %$5] ; # N\n  %17 = phi i64 [%12, %$5] ; # X\n; # (car X)\n  %18 = inttoptr i64 %17 to i64*\n  %19 = load i64, i64* %18\n  br label %$5\n$7:\n  %20 = phi i64 [%10, %$5] ; # Exe\n  %21 = phi i64 [%13, %$5] ; # N\n  %22 = phi i64 [%12, %$5] ; # X\n; # (val 2 X)\n  %23 = inttoptr i64 %22 to i64*\n  %24 = getelementptr i64, i64* %23, i32 1\n  %25 = load i64, i64* %24\n  br label %$4\n$4:\n  %26 = phi i64 [%6, %$2], [%20, %$7] ; # Exe\n  %27 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%25, %$7] ; # ->\n  ret i64 %27\n}\n\ndefine i64 @_Rest(i64) align 8 {\n$1:\n; # (let X (val $Next) (if (atom X) X (let (Y (cons (val 2 X) $Nil) R...\n; # (val $Next)\n  %1 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 128) to i64) to i64*\n  %2 = load i64, i64* %1\n; # (if (atom X) X (let (Y (cons (val 2 X) $Nil) R (save Y)) (while (...\n; # (atom X)\n  %3 = and i64 %2, 15\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i64 [%0, %$1] ; # Exe\n  %6 = phi i64 [%2, %$1] ; # X\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%2, %$1] ; # X\n; # (let (Y (cons (val 2 X) $Nil) R (save Y)) (while (pair (setq X (c...\n; # (val 2 X)\n  %9 = inttoptr i64 %8 to i64*\n  %10 = getelementptr i64, i64* %9, i32 1\n  %11 = load i64, i64* %10\n; # (cons (val 2 X) $Nil)\n  %12 = call i64 @cons(i64 %11, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %13 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %14 = load i64, i64* %13\n  %15 = alloca i64, i64 2, align 16\n  %16 = ptrtoint i64* %15 to i64\n  %17 = inttoptr i64 %16 to i64*\n  store i64 %12, i64* %17\n  %18 = add i64 %16, 8\n  %19 = inttoptr i64 %18 to i64*\n  store i64 %14, i64* %19\n  %20 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %16, i64* %20\n; # (while (pair (setq X (car X))) (setq Y (set 2 Y (cons (val 2 X) $...\n  br label %$5\n$5:\n  %21 = phi i64 [%7, %$3], [%29, %$6] ; # Exe\n  %22 = phi i64 [%8, %$3], [%30, %$6] ; # X\n  %23 = phi i64 [%12, %$3], [%36, %$6] ; # Y\n  %24 = phi i64 [%12, %$3], [%32, %$6] ; # R\n; # (car X)\n  %25 = inttoptr i64 %22 to i64*\n  %26 = load i64, i64* %25\n; # (pair (setq X (car X)))\n  %27 = and i64 %26, 15\n  %28 = icmp eq i64 %27, 0\n  br i1 %28, label %$6, label %$7\n$6:\n  %29 = phi i64 [%21, %$5] ; # Exe\n  %30 = phi i64 [%26, %$5] ; # X\n  %31 = phi i64 [%23, %$5] ; # Y\n  %32 = phi i64 [%24, %$5] ; # R\n; # (set 2 Y (cons (val 2 X) $Nil))\n; # (val 2 X)\n  %33 = inttoptr i64 %30 to i64*\n  %34 = getelementptr i64, i64* %33, i32 1\n  %35 = load i64, i64* %34\n; # (cons (val 2 X) $Nil)\n  %36 = call i64 @cons(i64 %35, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %37 = inttoptr i64 %31 to i64*\n  %38 = getelementptr i64, i64* %37, i32 1\n  store i64 %36, i64* %38\n  br label %$5\n$7:\n  %39 = phi i64 [%21, %$5] ; # Exe\n  %40 = phi i64 [%26, %$5] ; # X\n  %41 = phi i64 [%23, %$5] ; # Y\n  %42 = phi i64 [%24, %$5] ; # R\n; # (drop *Safe)\n  %43 = inttoptr i64 %16 to i64*\n  %44 = getelementptr i64, i64* %43, i32 1\n  %45 = load i64, i64* %44\n  %46 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %45, i64* %46\n  br label %$4\n$4:\n  %47 = phi i64 [%5, %$2], [%39, %$7] ; # Exe\n  %48 = phi i64 [%6, %$2], [%40, %$7] ; # X\n  %49 = phi i64 [%6, %$2], [%42, %$7] ; # ->\n  ret i64 %49\n}\n\ndefine i64 @_Adr(i64) align 8 {\n$1:\n; # (cond ((cnt? (eval (cadr Exe))) (int @)) ((big? @) (val (dig @)))...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$5, label %$4\n$5:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$3\n$4:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$7, label %$6\n$7:\n  %12 = phi i64 [%9, %$4] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$3\n$6:\n  %15 = phi i64 [%9, %$4] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$3\n$3:\n  %17 = phi i64 [%8, %$5], [%12, %$7], [%15, %$6] ; # X\n  %18 = phi i64 [%8, %$5], [%14, %$7], [%16, %$6] ; # ->\n; # (cnt? (eval (cadr Exe)))\n  %19 = and i64 %18, 2\n  %20 = icmp ne i64 %19, 0\n  br i1 %20, label %$9, label %$8\n$9:\n  %21 = phi i64 [%0, %$3] ; # Exe\n; # (int @)\n  %22 = lshr i64 %18, 4\n  br label %$2\n$8:\n  %23 = phi i64 [%0, %$3] ; # Exe\n; # (big? @)\n  %24 = and i64 %18, 4\n  %25 = icmp ne i64 %24, 0\n  br i1 %25, label %$11, label %$10\n$11:\n  %26 = phi i64 [%23, %$8] ; # Exe\n; # (dig @)\n  %27 = add i64 %18, -4\n; # (val (dig @))\n  %28 = inttoptr i64 %27 to i64*\n  %29 = load i64, i64* %28\n  br label %$2\n$10:\n  %30 = phi i64 [%23, %$8] ; # Exe\n; # (box64 @)\n  %31 = and i64 %18, 17293822569102704640\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$12, label %$13\n$12:\n  %33 = phi i64 [%18, %$10] ; # N\n  %34 = call i64 @boxNum(i64 %33)\n  br label %$14\n$13:\n  %35 = phi i64 [%18, %$10] ; # N\n  %36 = shl i64 %35, 4\n  %37 = or i64 %36, 2\n  br label %$14\n$14:\n  %38 = phi i64 [%33, %$12], [%35, %$13] ; # N\n  %39 = phi i64 [%34, %$12], [%37, %$13] ; # ->\n  br label %$2\n$2:\n  %40 = phi i64 [%21, %$9], [%26, %$11], [%30, %$14] ; # Exe\n  %41 = phi i64 [%22, %$9], [%29, %$11], [%39, %$14] ; # ->\n  ret i64 %41\n}\n\ndefine i64 @_Byte(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) P (i8* (xCnt64 Exe (eval (++ X))))) (if (atom X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (xCnt64 Exe (eval (++ X)))\n  %21 = call i64 @xCnt64(i64 %0, i64 %20)\n; # (i8* (xCnt64 Exe (eval (++ X))))\n  %22 = inttoptr i64 %21 to i8*\n; # (if (atom X) (cnt (i64 (val P))) (let (Y (needCnt Exe (eval (car ...\n; # (atom X)\n  %23 = and i64 %6, 15\n  %24 = icmp ne i64 %23, 0\n  br i1 %24, label %$7, label %$8\n$7:\n  %25 = phi i64 [%0, %$2] ; # Exe\n  %26 = phi i64 [%6, %$2] ; # X\n  %27 = phi i8* [%22, %$2] ; # P\n; # (val P)\n  %28 = load i8, i8* %27\n; # (i64 (val P))\n  %29 = zext i8 %28 to i64\n; # (cnt (i64 (val P)))\n  %30 = shl i64 %29, 4\n  %31 = or i64 %30, 2\n  br label %$9\n$8:\n  %32 = phi i64 [%0, %$2] ; # Exe\n  %33 = phi i64 [%6, %$2] ; # X\n  %34 = phi i8* [%22, %$2] ; # P\n; # (let (Y (needCnt Exe (eval (car X))) N (int @)) (set P (i8 (if (s...\n; # (car X)\n  %35 = inttoptr i64 %33 to i64*\n  %36 = load i64, i64* %35\n; # (eval (car X))\n  %37 = and i64 %36, 6\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$12, label %$11\n$12:\n  %39 = phi i64 [%36, %$8] ; # X\n  br label %$10\n$11:\n  %40 = phi i64 [%36, %$8] ; # X\n  %41 = and i64 %40, 8\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$14, label %$13\n$14:\n  %43 = phi i64 [%40, %$11] ; # X\n  %44 = inttoptr i64 %43 to i64*\n  %45 = load i64, i64* %44\n  br label %$10\n$13:\n  %46 = phi i64 [%40, %$11] ; # X\n  %47 = call i64 @evList(i64 %46)\n  br label %$10\n$10:\n  %48 = phi i64 [%39, %$12], [%43, %$14], [%46, %$13] ; # X\n  %49 = phi i64 [%39, %$12], [%45, %$14], [%47, %$13] ; # ->\n; # (needCnt Exe (eval (car X)))\n  %50 = and i64 %49, 2\n  %51 = icmp ne i64 %50, 0\n  br i1 %51, label %$16, label %$15\n$15:\n  %52 = phi i64 [%49, %$10] ; # X\n  %53 = phi i64 [%32, %$10] ; # Exe\n  call void @cntErr(i64 %53, i64 %52)\n  unreachable\n$16:\n  %54 = phi i64 [%49, %$10] ; # X\n  %55 = phi i64 [%32, %$10] ; # Exe\n; # (int @)\n  %56 = lshr i64 %49, 4\n; # (set P (i8 (if (sign? Y) (- N) N)))\n; # (if (sign? Y) (- N) N)\n; # (sign? Y)\n  %57 = and i64 %54, 8\n  %58 = icmp ne i64 %57, 0\n  br i1 %58, label %$17, label %$18\n$17:\n  %59 = phi i64 [%32, %$16] ; # Exe\n  %60 = phi i64 [%33, %$16] ; # X\n  %61 = phi i8* [%34, %$16] ; # P\n  %62 = phi i64 [%54, %$16] ; # Y\n  %63 = phi i64 [%56, %$16] ; # N\n; # (- N)\n  %64 = sub i64 0, %63\n  br label %$19\n$18:\n  %65 = phi i64 [%32, %$16] ; # Exe\n  %66 = phi i64 [%33, %$16] ; # X\n  %67 = phi i8* [%34, %$16] ; # P\n  %68 = phi i64 [%54, %$16] ; # Y\n  %69 = phi i64 [%56, %$16] ; # N\n  br label %$19\n$19:\n  %70 = phi i64 [%59, %$17], [%65, %$18] ; # Exe\n  %71 = phi i64 [%60, %$17], [%66, %$18] ; # X\n  %72 = phi i8* [%61, %$17], [%67, %$18] ; # P\n  %73 = phi i64 [%62, %$17], [%68, %$18] ; # Y\n  %74 = phi i64 [%63, %$17], [%69, %$18] ; # N\n  %75 = phi i64 [%64, %$17], [%69, %$18] ; # ->\n; # (i8 (if (sign? Y) (- N) N))\n  %76 = trunc i64 %75 to i8\n  store i8 %76, i8* %34\n  br label %$9\n$9:\n  %77 = phi i64 [%25, %$7], [%70, %$19] ; # Exe\n  %78 = phi i64 [%26, %$7], [%71, %$19] ; # X\n  %79 = phi i8* [%27, %$7], [%72, %$19] ; # P\n  %80 = phi i64 [%31, %$7], [%73, %$19] ; # ->\n  ret i64 %80\n}\n\ndefine i64 @_Env(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) R (save $Nil)) (if (atom X) (let Bnd (val $Bind...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (save $Nil)\n  %4 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %5 = load i64, i64* %4\n  %6 = alloca i64, i64 2, align 16\n  %7 = ptrtoint i64* %6 to i64\n  %8 = inttoptr i64 %7 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %8\n  %9 = add i64 %7, 8\n  %10 = inttoptr i64 %9 to i64*\n  store i64 %5, i64* %10\n  %11 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %7, i64* %11\n; # (if (atom X) (let Bnd (val $Bind) (while Bnd (let (S (val 2 Bnd) ...\n; # (atom X)\n  %12 = and i64 %3, 15\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$2, label %$3\n$2:\n  %14 = phi i64 [%0, %$1] ; # Exe\n  %15 = phi i64 [%3, %$1] ; # X\n  %16 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1] ; # R\n; # (let Bnd (val $Bind) (while Bnd (let (S (val 2 Bnd) Y R) (loop (?...\n; # (val $Bind)\n  %17 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %18 = load i64, i64* %17\n; # (while Bnd (let (S (val 2 Bnd) Y R) (loop (? (atom Y) (setq R (sa...\n  br label %$5\n$5:\n  %19 = phi i64 [%14, %$2], [%70, %$10] ; # Exe\n  %20 = phi i64 [%15, %$2], [%71, %$10] ; # X\n  %21 = phi i64 [%16, %$2], [%72, %$10] ; # R\n  %22 = phi i64 [%18, %$2], [%79, %$10] ; # Bnd\n  %23 = icmp ne i64 %22, 0\n  br i1 %23, label %$6, label %$7\n$6:\n  %24 = phi i64 [%19, %$5] ; # Exe\n  %25 = phi i64 [%20, %$5] ; # X\n  %26 = phi i64 [%21, %$5] ; # R\n  %27 = phi i64 [%22, %$5] ; # Bnd\n; # (let (S (val 2 Bnd) Y R) (loop (? (atom Y) (setq R (safe (cons (c...\n; # (val 2 Bnd)\n  %28 = inttoptr i64 %27 to i64*\n  %29 = getelementptr i64, i64* %28, i32 1\n  %30 = load i64, i64* %29\n; # (loop (? (atom Y) (setq R (safe (cons (cons S (val S)) R)))) (? (...\n  br label %$8\n$8:\n  %31 = phi i64 [%24, %$6], [%61, %$12] ; # Exe\n  %32 = phi i64 [%25, %$6], [%62, %$12] ; # X\n  %33 = phi i64 [%26, %$6], [%63, %$12] ; # R\n  %34 = phi i64 [%27, %$6], [%64, %$12] ; # Bnd\n  %35 = phi i64 [%30, %$6], [%65, %$12] ; # S\n  %36 = phi i64 [%26, %$6], [%69, %$12] ; # Y\n; # (? (atom Y) (setq R (safe (cons (cons S (val S)) R))))\n; # (atom Y)\n  %37 = and i64 %36, 15\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$11, label %$9\n$11:\n  %39 = phi i64 [%31, %$8] ; # Exe\n  %40 = phi i64 [%32, %$8] ; # X\n  %41 = phi i64 [%33, %$8] ; # R\n  %42 = phi i64 [%34, %$8] ; # Bnd\n  %43 = phi i64 [%35, %$8] ; # S\n  %44 = phi i64 [%36, %$8] ; # Y\n; # (val S)\n  %45 = inttoptr i64 %43 to i64*\n  %46 = load i64, i64* %45\n; # (cons S (val S))\n  %47 = call i64 @cons(i64 %43, i64 %46)\n; # (cons (cons S (val S)) R)\n  %48 = call i64 @cons(i64 %47, i64 %41)\n; # (safe (cons (cons S (val S)) R))\n  %49 = inttoptr i64 %7 to i64*\n  store i64 %48, i64* %49\n  br label %$10\n$9:\n  %50 = phi i64 [%31, %$8] ; # Exe\n  %51 = phi i64 [%32, %$8] ; # X\n  %52 = phi i64 [%33, %$8] ; # R\n  %53 = phi i64 [%34, %$8] ; # Bnd\n  %54 = phi i64 [%35, %$8] ; # S\n  %55 = phi i64 [%36, %$8] ; # Y\n; # (? (== S (caar Y)))\n; # (caar Y)\n  %56 = inttoptr i64 %55 to i64*\n  %57 = load i64, i64* %56\n  %58 = inttoptr i64 %57 to i64*\n  %59 = load i64, i64* %58\n; # (== S (caar Y))\n  %60 = icmp eq i64 %54, %59\n  br i1 %60, label %$10, label %$12\n$12:\n  %61 = phi i64 [%50, %$9] ; # Exe\n  %62 = phi i64 [%51, %$9] ; # X\n  %63 = phi i64 [%52, %$9] ; # R\n  %64 = phi i64 [%53, %$9] ; # Bnd\n  %65 = phi i64 [%54, %$9] ; # S\n  %66 = phi i64 [%55, %$9] ; # Y\n; # (shift Y)\n  %67 = inttoptr i64 %66 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n  br label %$8\n$10:\n  %70 = phi i64 [%39, %$11], [%50, %$9] ; # Exe\n  %71 = phi i64 [%40, %$11], [%51, %$9] ; # X\n  %72 = phi i64 [%48, %$11], [%52, %$9] ; # R\n  %73 = phi i64 [%42, %$11], [%53, %$9] ; # Bnd\n  %74 = phi i64 [%43, %$11], [%54, %$9] ; # S\n  %75 = phi i64 [%44, %$11], [%55, %$9] ; # Y\n  %76 = phi i64 [%48, %$11], [0, %$9] ; # ->\n; # (val 3 Bnd)\n  %77 = inttoptr i64 %73 to i64*\n  %78 = getelementptr i64, i64* %77, i32 2\n  %79 = load i64, i64* %78\n  br label %$5\n$7:\n  %80 = phi i64 [%19, %$5] ; # Exe\n  %81 = phi i64 [%20, %$5] ; # X\n  %82 = phi i64 [%21, %$5] ; # R\n  %83 = phi i64 [%22, %$5] ; # Bnd\n  br label %$4\n$3:\n  %84 = phi i64 [%0, %$1] ; # Exe\n  %85 = phi i64 [%3, %$1] ; # X\n  %86 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$1] ; # R\n; # (let Y (link (push $Nil NIL)) (loop (let Z (set Y (eval (++ X))) ...\n; # (push $Nil NIL)\n  %87 = alloca i64, i64 2, align 16\n  %88 = ptrtoint i64* %87 to i64\n  %89 = inttoptr i64 %88 to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i64* %89\n; # (link (push $Nil NIL))\n  %90 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %91 = load i64, i64* %90\n  %92 = inttoptr i64 %88 to i64*\n  %93 = getelementptr i64, i64* %92, i32 1\n  store i64 %91, i64* %93\n  %94 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %88, i64* %94\n; # (loop (let Z (set Y (eval (++ X))) (nond ((atom Z) (loop (let V (...\n  br label %$13\n$13:\n  %95 = phi i64 [%84, %$3], [%222, %$35] ; # Exe\n  %96 = phi i64 [%85, %$3], [%223, %$35] ; # X\n  %97 = phi i64 [%86, %$3], [%224, %$35] ; # R\n  %98 = phi i64 [%88, %$3], [%225, %$35] ; # Y\n; # (let Z (set Y (eval (++ X))) (nond ((atom Z) (loop (let V (++ Z) ...\n; # (set Y (eval (++ X)))\n; # (++ X)\n  %99 = inttoptr i64 %96 to i64*\n  %100 = getelementptr i64, i64* %99, i32 1\n  %101 = load i64, i64* %100\n  %102 = load i64, i64* %99\n; # (eval (++ X))\n  %103 = and i64 %102, 6\n  %104 = icmp ne i64 %103, 0\n  br i1 %104, label %$16, label %$15\n$16:\n  %105 = phi i64 [%102, %$13] ; # X\n  br label %$14\n$15:\n  %106 = phi i64 [%102, %$13] ; # X\n  %107 = and i64 %106, 8\n  %108 = icmp ne i64 %107, 0\n  br i1 %108, label %$18, label %$17\n$18:\n  %109 = phi i64 [%106, %$15] ; # X\n  %110 = inttoptr i64 %109 to i64*\n  %111 = load i64, i64* %110\n  br label %$14\n$17:\n  %112 = phi i64 [%106, %$15] ; # X\n  %113 = call i64 @evList(i64 %112)\n  br label %$14\n$14:\n  %114 = phi i64 [%105, %$16], [%109, %$18], [%112, %$17] ; # X\n  %115 = phi i64 [%105, %$16], [%111, %$18], [%113, %$17] ; # ->\n  %116 = inttoptr i64 %98 to i64*\n  store i64 %115, i64* %116\n; # (nond ((atom Z) (loop (let V (++ Z) (setq R (safe (cons (if (pair...\n; # (atom Z)\n  %117 = and i64 %115, 15\n  %118 = icmp ne i64 %117, 0\n  br i1 %118, label %$20, label %$21\n$21:\n  %119 = phi i64 [%95, %$14] ; # Exe\n  %120 = phi i64 [%101, %$14] ; # X\n  %121 = phi i64 [%97, %$14] ; # R\n  %122 = phi i64 [%98, %$14] ; # Y\n  %123 = phi i64 [%115, %$14] ; # Z\n; # (loop (let V (++ Z) (setq R (safe (cons (if (pair V) (cons (car V...\n  br label %$22\n$22:\n  %124 = phi i64 [%119, %$21], [%167, %$26] ; # Exe\n  %125 = phi i64 [%120, %$21], [%168, %$26] ; # X\n  %126 = phi i64 [%121, %$21], [%169, %$26] ; # R\n  %127 = phi i64 [%122, %$21], [%170, %$26] ; # Y\n  %128 = phi i64 [%123, %$21], [%171, %$26] ; # Z\n; # (let V (++ Z) (setq R (safe (cons (if (pair V) (cons (car V) (cdr...\n; # (++ Z)\n  %129 = inttoptr i64 %128 to i64*\n  %130 = getelementptr i64, i64* %129, i32 1\n  %131 = load i64, i64* %130\n  %132 = load i64, i64* %129\n; # (if (pair V) (cons (car V) (cdr V)) (cons V (val V)))\n; # (pair V)\n  %133 = and i64 %132, 15\n  %134 = icmp eq i64 %133, 0\n  br i1 %134, label %$23, label %$24\n$23:\n  %135 = phi i64 [%124, %$22] ; # Exe\n  %136 = phi i64 [%125, %$22] ; # X\n  %137 = phi i64 [%126, %$22] ; # R\n  %138 = phi i64 [%127, %$22] ; # Y\n  %139 = phi i64 [%131, %$22] ; # Z\n  %140 = phi i64 [%132, %$22] ; # V\n; # (car V)\n  %141 = inttoptr i64 %140 to i64*\n  %142 = load i64, i64* %141\n; # (cdr V)\n  %143 = inttoptr i64 %140 to i64*\n  %144 = getelementptr i64, i64* %143, i32 1\n  %145 = load i64, i64* %144\n; # (cons (car V) (cdr V))\n  %146 = call i64 @cons(i64 %142, i64 %145)\n  br label %$25\n$24:\n  %147 = phi i64 [%124, %$22] ; # Exe\n  %148 = phi i64 [%125, %$22] ; # X\n  %149 = phi i64 [%126, %$22] ; # R\n  %150 = phi i64 [%127, %$22] ; # Y\n  %151 = phi i64 [%131, %$22] ; # Z\n  %152 = phi i64 [%132, %$22] ; # V\n; # (val V)\n  %153 = inttoptr i64 %152 to i64*\n  %154 = load i64, i64* %153\n; # (cons V (val V))\n  %155 = call i64 @cons(i64 %152, i64 %154)\n  br label %$25\n$25:\n  %156 = phi i64 [%135, %$23], [%147, %$24] ; # Exe\n  %157 = phi i64 [%136, %$23], [%148, %$24] ; # X\n  %158 = phi i64 [%137, %$23], [%149, %$24] ; # R\n  %159 = phi i64 [%138, %$23], [%150, %$24] ; # Y\n  %160 = phi i64 [%139, %$23], [%151, %$24] ; # Z\n  %161 = phi i64 [%140, %$23], [%152, %$24] ; # V\n  %162 = phi i64 [%146, %$23], [%155, %$24] ; # ->\n; # (cons (if (pair V) (cons (car V) (cdr V)) (cons V (val V))) R)\n  %163 = call i64 @cons(i64 %162, i64 %158)\n; # (safe (cons (if (pair V) (cons (car V) (cdr V)) (cons V (val V)))...\n  %164 = inttoptr i64 %7 to i64*\n  store i64 %163, i64* %164\n; # (? (atom Z))\n; # (atom Z)\n  %165 = and i64 %160, 15\n  %166 = icmp ne i64 %165, 0\n  br i1 %166, label %$27, label %$26\n$26:\n  %167 = phi i64 [%156, %$25] ; # Exe\n  %168 = phi i64 [%157, %$25] ; # X\n  %169 = phi i64 [%163, %$25] ; # R\n  %170 = phi i64 [%159, %$25] ; # Y\n  %171 = phi i64 [%160, %$25] ; # Z\n  br label %$22\n$27:\n  %172 = phi i64 [%156, %$25] ; # Exe\n  %173 = phi i64 [%157, %$25] ; # X\n  %174 = phi i64 [%163, %$25] ; # R\n  %175 = phi i64 [%159, %$25] ; # Y\n  %176 = phi i64 [%160, %$25] ; # Z\n  %177 = phi i64 [0, %$25] ; # ->\n  br label %$19\n$20:\n  %178 = phi i64 [%95, %$14] ; # Exe\n  %179 = phi i64 [%101, %$14] ; # X\n  %180 = phi i64 [%97, %$14] ; # R\n  %181 = phi i64 [%98, %$14] ; # Y\n  %182 = phi i64 [%115, %$14] ; # Z\n; # (nil? Z)\n  %183 = icmp eq i64 %182, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %183, label %$28, label %$29\n$29:\n  %184 = phi i64 [%178, %$20] ; # Exe\n  %185 = phi i64 [%179, %$20] ; # X\n  %186 = phi i64 [%180, %$20] ; # R\n  %187 = phi i64 [%181, %$20] ; # Y\n  %188 = phi i64 [%182, %$20] ; # Z\n; # (++ X)\n  %189 = inttoptr i64 %185 to i64*\n  %190 = getelementptr i64, i64* %189, i32 1\n  %191 = load i64, i64* %190\n  %192 = load i64, i64* %189\n; # (eval (++ X))\n  %193 = and i64 %192, 6\n  %194 = icmp ne i64 %193, 0\n  br i1 %194, label %$32, label %$31\n$32:\n  %195 = phi i64 [%192, %$29] ; # X\n  br label %$30\n$31:\n  %196 = phi i64 [%192, %$29] ; # X\n  %197 = and i64 %196, 8\n  %198 = icmp ne i64 %197, 0\n  br i1 %198, label %$34, label %$33\n$34:\n  %199 = phi i64 [%196, %$31] ; # X\n  %200 = inttoptr i64 %199 to i64*\n  %201 = load i64, i64* %200\n  br label %$30\n$33:\n  %202 = phi i64 [%196, %$31] ; # X\n  %203 = call i64 @evList(i64 %202)\n  br label %$30\n$30:\n  %204 = phi i64 [%195, %$32], [%199, %$34], [%202, %$33] ; # X\n  %205 = phi i64 [%195, %$32], [%201, %$34], [%203, %$33] ; # ->\n; # (cons Z (eval (++ X)))\n  %206 = call i64 @cons(i64 %188, i64 %205)\n; # (cons (cons Z (eval (++ X))) R)\n  %207 = call i64 @cons(i64 %206, i64 %186)\n; # (safe (cons (cons Z (eval (++ X))) R))\n  %208 = inttoptr i64 %7 to i64*\n  store i64 %207, i64* %208\n  br label %$19\n$28:\n  %209 = phi i64 [%178, %$20] ; # Exe\n  %210 = phi i64 [%179, %$20] ; # X\n  %211 = phi i64 [%180, %$20] ; # R\n  %212 = phi i64 [%181, %$20] ; # Y\n  %213 = phi i64 [%182, %$20] ; # Z\n  br label %$19\n$19:\n  %214 = phi i64 [%172, %$27], [%184, %$30], [%209, %$28] ; # Exe\n  %215 = phi i64 [%173, %$27], [%191, %$30], [%210, %$28] ; # X\n  %216 = phi i64 [%174, %$27], [%207, %$30], [%211, %$28] ; # R\n  %217 = phi i64 [%175, %$27], [%187, %$30], [%212, %$28] ; # Y\n  %218 = phi i64 [%176, %$27], [%188, %$30], [%213, %$28] ; # Z\n  %219 = phi i64 [%177, %$27], [%207, %$30], [0, %$28] ; # ->\n; # (? (atom X))\n; # (atom X)\n  %220 = and i64 %215, 15\n  %221 = icmp ne i64 %220, 0\n  br i1 %221, label %$36, label %$35\n$35:\n  %222 = phi i64 [%214, %$19] ; # Exe\n  %223 = phi i64 [%215, %$19] ; # X\n  %224 = phi i64 [%216, %$19] ; # R\n  %225 = phi i64 [%217, %$19] ; # Y\n  br label %$13\n$36:\n  %226 = phi i64 [%214, %$19] ; # Exe\n  %227 = phi i64 [%215, %$19] ; # X\n  %228 = phi i64 [%216, %$19] ; # R\n  %229 = phi i64 [%217, %$19] ; # Y\n  %230 = phi i64 [0, %$19] ; # ->\n  br label %$4\n$4:\n  %231 = phi i64 [%80, %$7], [%226, %$36] ; # Exe\n  %232 = phi i64 [%81, %$7], [%227, %$36] ; # X\n  %233 = phi i64 [%82, %$7], [%228, %$36] ; # R\n; # (drop *Safe)\n  %234 = inttoptr i64 %7 to i64*\n  %235 = getelementptr i64, i64* %234, i32 1\n  %236 = load i64, i64* %235\n  %237 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %236, i64* %237\n  ret i64 %233\n}\n\ndefine i64 @_Trail(i64) align 8 {\n$1:\n; # (let (F (not (nil? (eval (cadr Exe)))) Bnd (val $Bind) R $Nil) (w...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (nil? (eval (cadr Exe)))\n  %19 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (not (nil? (eval (cadr Exe))))\n  %20 = icmp eq i1 %19, 0\n; # (val $Bind)\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %22 = load i64, i64* %21\n; # (while Bnd (let S (val 2 Bnd) (cond ((== S $At) (when (val 4 Bnd)...\n  br label %$7\n$7:\n  %23 = phi i64 [%0, %$2], [%78, %$10] ; # Exe\n  %24 = phi i1 [%20, %$2], [%79, %$10] ; # F\n  %25 = phi i64 [%22, %$2], [%85, %$10] ; # Bnd\n  %26 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$2], [%81, %$10] ; # R\n  %27 = icmp ne i64 %25, 0\n  br i1 %27, label %$8, label %$9\n$8:\n  %28 = phi i64 [%23, %$7] ; # Exe\n  %29 = phi i1 [%24, %$7] ; # F\n  %30 = phi i64 [%25, %$7] ; # Bnd\n  %31 = phi i64 [%26, %$7] ; # R\n; # (let S (val 2 Bnd) (cond ((== S $At) (when (val 4 Bnd) (setq R (c...\n; # (val 2 Bnd)\n  %32 = inttoptr i64 %30 to i64*\n  %33 = getelementptr i64, i64* %32, i32 1\n  %34 = load i64, i64* %33\n; # (cond ((== S $At) (when (val 4 Bnd) (setq R (cons @ R)))) (F (set...\n; # (== S $At)\n  %35 = icmp eq i64 %34, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64)\n  br i1 %35, label %$12, label %$11\n$12:\n  %36 = phi i64 [%28, %$8] ; # Exe\n  %37 = phi i1 [%29, %$8] ; # F\n  %38 = phi i64 [%30, %$8] ; # Bnd\n  %39 = phi i64 [%31, %$8] ; # R\n  %40 = phi i64 [%34, %$8] ; # S\n; # (when (val 4 Bnd) (setq R (cons @ R)))\n; # (val 4 Bnd)\n  %41 = inttoptr i64 %38 to i64*\n  %42 = getelementptr i64, i64* %41, i32 3\n  %43 = load i64, i64* %42\n  %44 = icmp ne i64 %43, 0\n  br i1 %44, label %$13, label %$14\n$13:\n  %45 = phi i64 [%36, %$12] ; # Exe\n  %46 = phi i1 [%37, %$12] ; # F\n  %47 = phi i64 [%38, %$12] ; # Bnd\n  %48 = phi i64 [%39, %$12] ; # R\n  %49 = phi i64 [%40, %$12] ; # S\n; # (cons @ R)\n  %50 = call i64 @cons(i64 %43, i64 %48)\n  br label %$14\n$14:\n  %51 = phi i64 [%36, %$12], [%45, %$13] ; # Exe\n  %52 = phi i1 [%37, %$12], [%46, %$13] ; # F\n  %53 = phi i64 [%38, %$12], [%47, %$13] ; # Bnd\n  %54 = phi i64 [%39, %$12], [%50, %$13] ; # R\n  %55 = phi i64 [%40, %$12], [%49, %$13] ; # S\n  br label %$10\n$11:\n  %56 = phi i64 [%28, %$8] ; # Exe\n  %57 = phi i1 [%29, %$8] ; # F\n  %58 = phi i64 [%30, %$8] ; # Bnd\n  %59 = phi i64 [%31, %$8] ; # R\n  %60 = phi i64 [%34, %$8] ; # S\n  br i1 %57, label %$16, label %$15\n$16:\n  %61 = phi i64 [%56, %$11] ; # Exe\n  %62 = phi i1 [%57, %$11] ; # F\n  %63 = phi i64 [%58, %$11] ; # Bnd\n  %64 = phi i64 [%59, %$11] ; # R\n  %65 = phi i64 [%60, %$11] ; # S\n; # (val S)\n  %66 = inttoptr i64 %65 to i64*\n  %67 = load i64, i64* %66\n; # (cons (val S) R)\n  %68 = call i64 @cons(i64 %67, i64 %64)\n; # (cons S (cons (val S) R))\n  %69 = call i64 @cons(i64 %65, i64 %68)\n; # (set S (val Bnd))\n; # (val Bnd)\n  %70 = inttoptr i64 %63 to i64*\n  %71 = load i64, i64* %70\n  %72 = inttoptr i64 %65 to i64*\n  store i64 %71, i64* %72\n  br label %$10\n$15:\n  %73 = phi i64 [%56, %$11] ; # Exe\n  %74 = phi i1 [%57, %$11] ; # F\n  %75 = phi i64 [%58, %$11] ; # Bnd\n  %76 = phi i64 [%59, %$11] ; # R\n  %77 = phi i64 [%60, %$11] ; # S\n  br label %$10\n$10:\n  %78 = phi i64 [%51, %$14], [%61, %$16], [%73, %$15] ; # Exe\n  %79 = phi i1 [%52, %$14], [%62, %$16], [%74, %$15] ; # F\n  %80 = phi i64 [%53, %$14], [%63, %$16], [%75, %$15] ; # Bnd\n  %81 = phi i64 [%54, %$14], [%69, %$16], [%76, %$15] ; # R\n  %82 = phi i64 [%55, %$14], [%65, %$16], [%77, %$15] ; # S\n; # (val 3 Bnd)\n  %83 = inttoptr i64 %80 to i64*\n  %84 = getelementptr i64, i64* %83, i32 2\n  %85 = load i64, i64* %84\n  br label %$7\n$9:\n  %86 = phi i64 [%23, %$7] ; # Exe\n  %87 = phi i1 [%24, %$7] ; # F\n  %88 = phi i64 [%25, %$7] ; # Bnd\n  %89 = phi i64 [%26, %$7] ; # R\n; # (let X R (until (atom X) (when (atom (++ X)) (set @ (++ X)))))\n; # (until (atom X) (when (atom (++ X)) (set @ (++ X))))\n  br label %$17\n$17:\n  %90 = phi i64 [%86, %$9], [%118, %$21] ; # Exe\n  %91 = phi i1 [%87, %$9], [%119, %$21] ; # F\n  %92 = phi i64 [%88, %$9], [%120, %$21] ; # Bnd\n  %93 = phi i64 [%89, %$9], [%121, %$21] ; # R\n  %94 = phi i64 [%89, %$9], [%122, %$21] ; # X\n; # (atom X)\n  %95 = and i64 %94, 15\n  %96 = icmp ne i64 %95, 0\n  br i1 %96, label %$19, label %$18\n$18:\n  %97 = phi i64 [%90, %$17] ; # Exe\n  %98 = phi i1 [%91, %$17] ; # F\n  %99 = phi i64 [%92, %$17] ; # Bnd\n  %100 = phi i64 [%93, %$17] ; # R\n  %101 = phi i64 [%94, %$17] ; # X\n; # (when (atom (++ X)) (set @ (++ X)))\n; # (++ X)\n  %102 = inttoptr i64 %101 to i64*\n  %103 = getelementptr i64, i64* %102, i32 1\n  %104 = load i64, i64* %103\n  %105 = load i64, i64* %102\n; # (atom (++ X))\n  %106 = and i64 %105, 15\n  %107 = icmp ne i64 %106, 0\n  br i1 %107, label %$20, label %$21\n$20:\n  %108 = phi i64 [%97, %$18] ; # Exe\n  %109 = phi i1 [%98, %$18] ; # F\n  %110 = phi i64 [%99, %$18] ; # Bnd\n  %111 = phi i64 [%100, %$18] ; # R\n  %112 = phi i64 [%104, %$18] ; # X\n; # (set @ (++ X))\n; # (++ X)\n  %113 = inttoptr i64 %112 to i64*\n  %114 = getelementptr i64, i64* %113, i32 1\n  %115 = load i64, i64* %114\n  %116 = load i64, i64* %113\n  %117 = inttoptr i64 %105 to i64*\n  store i64 %116, i64* %117\n  br label %$21\n$21:\n  %118 = phi i64 [%97, %$18], [%108, %$20] ; # Exe\n  %119 = phi i1 [%98, %$18], [%109, %$20] ; # F\n  %120 = phi i64 [%99, %$18], [%110, %$20] ; # Bnd\n  %121 = phi i64 [%100, %$18], [%111, %$20] ; # R\n  %122 = phi i64 [%104, %$18], [%115, %$20] ; # X\n  br label %$17\n$19:\n  %123 = phi i64 [%90, %$17] ; # Exe\n  %124 = phi i1 [%91, %$17] ; # F\n  %125 = phi i64 [%92, %$17] ; # Bnd\n  %126 = phi i64 [%93, %$17] ; # R\n  %127 = phi i64 [%94, %$17] ; # X\n  ret i64 %126\n}\n\ndefine i64 @_Up(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Y (car X) N 1 Bnd (val $Bind)) (when (num? Y) (...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (car X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (val $Bind)\n  %6 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 8) to i64) to i64*\n  %7 = load i64, i64* %6\n; # (when (num? Y) (setq N (int Y) Y (car (shift X))))\n; # (num? Y)\n  %8 = and i64 %5, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$2, label %$3\n$2:\n  %10 = phi i64 [%0, %$1] ; # Exe\n  %11 = phi i64 [%3, %$1] ; # X\n  %12 = phi i64 [%5, %$1] ; # Y\n  %13 = phi i64 [1, %$1] ; # N\n  %14 = phi i64 [%7, %$1] ; # Bnd\n; # (int Y)\n  %15 = lshr i64 %12, 4\n; # (shift X)\n  %16 = inttoptr i64 %11 to i64*\n  %17 = getelementptr i64, i64* %16, i32 1\n  %18 = load i64, i64* %17\n; # (car (shift X))\n  %19 = inttoptr i64 %18 to i64*\n  %20 = load i64, i64* %19\n  br label %$3\n$3:\n  %21 = phi i64 [%0, %$1], [%10, %$2] ; # Exe\n  %22 = phi i64 [%3, %$1], [%18, %$2] ; # X\n  %23 = phi i64 [%5, %$1], [%20, %$2] ; # Y\n  %24 = phi i64 [1, %$1], [%15, %$2] ; # N\n  %25 = phi i64 [%7, %$1], [%14, %$2] ; # Bnd\n; # (if (nil? Y) (if N (loop (? (=0 Bnd) $Nil) (? (and (== $At (val 2...\n; # (nil? Y)\n  %26 = icmp eq i64 %23, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %26, label %$4, label %$5\n$4:\n  %27 = phi i64 [%21, %$3] ; # Exe\n  %28 = phi i64 [%22, %$3] ; # X\n  %29 = phi i64 [%23, %$3] ; # Y\n  %30 = phi i64 [%24, %$3] ; # N\n  %31 = phi i64 [%25, %$3] ; # Bnd\n; # (if N (loop (? (=0 Bnd) $Nil) (? (and (== $At (val 2 Bnd)) (=0 (d...\n  %32 = icmp ne i64 %30, 0\n  br i1 %32, label %$7, label %$8\n$7:\n  %33 = phi i64 [%27, %$4] ; # Exe\n  %34 = phi i64 [%28, %$4] ; # X\n  %35 = phi i64 [%29, %$4] ; # Y\n  %36 = phi i64 [%30, %$4] ; # N\n  %37 = phi i64 [%31, %$4] ; # Bnd\n; # (loop (? (=0 Bnd) $Nil) (? (and (== $At (val 2 Bnd)) (=0 (dec 'N)...\n  br label %$10\n$10:\n  %38 = phi i64 [%33, %$7], [%96, %$16] ; # Exe\n  %39 = phi i64 [%34, %$7], [%97, %$16] ; # X\n  %40 = phi i64 [%35, %$7], [%98, %$16] ; # Y\n  %41 = phi i64 [%36, %$7], [%99, %$16] ; # N\n  %42 = phi i64 [%37, %$7], [%103, %$16] ; # Bnd\n; # (? (=0 Bnd) $Nil)\n; # (=0 Bnd)\n  %43 = icmp eq i64 %42, 0\n  br i1 %43, label %$13, label %$11\n$13:\n  %44 = phi i64 [%38, %$10] ; # Exe\n  %45 = phi i64 [%39, %$10] ; # X\n  %46 = phi i64 [%40, %$10] ; # Y\n  %47 = phi i64 [%41, %$10] ; # N\n  %48 = phi i64 [%42, %$10] ; # Bnd\n  br label %$12\n$11:\n  %49 = phi i64 [%38, %$10] ; # Exe\n  %50 = phi i64 [%39, %$10] ; # X\n  %51 = phi i64 [%40, %$10] ; # Y\n  %52 = phi i64 [%41, %$10] ; # N\n  %53 = phi i64 [%42, %$10] ; # Bnd\n; # (? (and (== $At (val 2 Bnd)) (=0 (dec 'N))) (if (val 4 Bnd) @ $Ni...\n; # (and (== $At (val 2 Bnd)) (=0 (dec 'N)))\n; # (val 2 Bnd)\n  %54 = inttoptr i64 %53 to i64*\n  %55 = getelementptr i64, i64* %54, i32 1\n  %56 = load i64, i64* %55\n; # (== $At (val 2 Bnd))\n  %57 = icmp eq i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 456) to i64), %56\n  br i1 %57, label %$15, label %$14\n$15:\n  %58 = phi i64 [%49, %$11] ; # Exe\n  %59 = phi i64 [%50, %$11] ; # X\n  %60 = phi i64 [%51, %$11] ; # Y\n  %61 = phi i64 [%52, %$11] ; # N\n  %62 = phi i64 [%53, %$11] ; # Bnd\n; # (dec 'N)\n  %63 = sub i64 %61, 1\n; # (=0 (dec 'N))\n  %64 = icmp eq i64 %63, 0\n  br label %$14\n$14:\n  %65 = phi i64 [%49, %$11], [%58, %$15] ; # Exe\n  %66 = phi i64 [%50, %$11], [%59, %$15] ; # X\n  %67 = phi i64 [%51, %$11], [%60, %$15] ; # Y\n  %68 = phi i64 [%52, %$11], [%63, %$15] ; # N\n  %69 = phi i64 [%53, %$11], [%62, %$15] ; # Bnd\n  %70 = phi i1 [0, %$11], [%64, %$15] ; # ->\n  br i1 %70, label %$17, label %$16\n$17:\n  %71 = phi i64 [%65, %$14] ; # Exe\n  %72 = phi i64 [%66, %$14] ; # X\n  %73 = phi i64 [%67, %$14] ; # Y\n  %74 = phi i64 [%68, %$14] ; # N\n  %75 = phi i64 [%69, %$14] ; # Bnd\n; # (if (val 4 Bnd) @ $Nil)\n; # (val 4 Bnd)\n  %76 = inttoptr i64 %75 to i64*\n  %77 = getelementptr i64, i64* %76, i32 3\n  %78 = load i64, i64* %77\n  %79 = icmp ne i64 %78, 0\n  br i1 %79, label %$18, label %$19\n$18:\n  %80 = phi i64 [%71, %$17] ; # Exe\n  %81 = phi i64 [%72, %$17] ; # X\n  %82 = phi i64 [%73, %$17] ; # Y\n  %83 = phi i64 [%74, %$17] ; # N\n  %84 = phi i64 [%75, %$17] ; # Bnd\n  br label %$20\n$19:\n  %85 = phi i64 [%71, %$17] ; # Exe\n  %86 = phi i64 [%72, %$17] ; # X\n  %87 = phi i64 [%73, %$17] ; # Y\n  %88 = phi i64 [%74, %$17] ; # N\n  %89 = phi i64 [%75, %$17] ; # Bnd\n  br label %$20\n$20:\n  %90 = phi i64 [%80, %$18], [%85, %$19] ; # Exe\n  %91 = phi i64 [%81, %$18], [%86, %$19] ; # X\n  %92 = phi i64 [%82, %$18], [%87, %$19] ; # Y\n  %93 = phi i64 [%83, %$18], [%88, %$19] ; # N\n  %94 = phi i64 [%84, %$18], [%89, %$19] ; # Bnd\n  %95 = phi i64 [%78, %$18], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$19] ; # ->\n  br label %$12\n$16:\n  %96 = phi i64 [%65, %$14] ; # Exe\n  %97 = phi i64 [%66, %$14] ; # X\n  %98 = phi i64 [%67, %$14] ; # Y\n  %99 = phi i64 [%68, %$14] ; # N\n  %100 = phi i64 [%69, %$14] ; # Bnd\n; # (val 3 Bnd)\n  %101 = inttoptr i64 %100 to i64*\n  %102 = getelementptr i64, i64* %101, i32 2\n  %103 = load i64, i64* %102\n  br label %$10\n$12:\n  %104 = phi i64 [%44, %$13], [%90, %$20] ; # Exe\n  %105 = phi i64 [%45, %$13], [%91, %$20] ; # X\n  %106 = phi i64 [%46, %$13], [%92, %$20] ; # Y\n  %107 = phi i64 [%47, %$13], [%93, %$20] ; # N\n  %108 = phi i64 [%48, %$13], [%94, %$20] ; # Bnd\n  %109 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$13], [%95, %$20] ; # ->\n  br label %$9\n$8:\n  %110 = phi i64 [%27, %$4] ; # Exe\n  %111 = phi i64 [%28, %$4] ; # X\n  %112 = phi i64 [%29, %$4] ; # Y\n  %113 = phi i64 [%30, %$4] ; # N\n  %114 = phi i64 [%31, %$4] ; # Bnd\n  br label %$9\n$9:\n  %115 = phi i64 [%104, %$12], [%110, %$8] ; # Exe\n  %116 = phi i64 [%105, %$12], [%111, %$8] ; # X\n  %117 = phi i64 [%106, %$12], [%112, %$8] ; # Y\n  %118 = phi i64 [%107, %$12], [%113, %$8] ; # N\n  %119 = phi i64 [%108, %$12], [%114, %$8] ; # Bnd\n  %120 = phi i64 [%109, %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  br label %$6\n$5:\n  %121 = phi i64 [%21, %$3] ; # Exe\n  %122 = phi i64 [%22, %$3] ; # X\n  %123 = phi i64 [%23, %$3] ; # Y\n  %124 = phi i64 [%24, %$3] ; # N\n  %125 = phi i64 [%25, %$3] ; # Bnd\n; # (let Z Y (when N (loop (? (=0 Bnd)) (? (and (== Y (val 2 Bnd)) (p...\n; # (when N (loop (? (=0 Bnd)) (? (and (== Y (val 2 Bnd)) (prog (setq...\n  %126 = icmp ne i64 %124, 0\n  br i1 %126, label %$21, label %$22\n$21:\n  %127 = phi i64 [%121, %$5] ; # Exe\n  %128 = phi i64 [%122, %$5] ; # X\n  %129 = phi i64 [%123, %$5] ; # Y\n  %130 = phi i64 [%124, %$5] ; # N\n  %131 = phi i64 [%125, %$5] ; # Bnd\n  %132 = phi i64 [%123, %$5] ; # Z\n; # (loop (? (=0 Bnd)) (? (and (== Y (val 2 Bnd)) (prog (setq Z Bnd) ...\n  br label %$23\n$23:\n  %133 = phi i64 [%127, %$21], [%165, %$28] ; # Exe\n  %134 = phi i64 [%128, %$21], [%166, %$28] ; # X\n  %135 = phi i64 [%129, %$21], [%167, %$28] ; # Y\n  %136 = phi i64 [%130, %$21], [%168, %$28] ; # N\n  %137 = phi i64 [%131, %$21], [%173, %$28] ; # Bnd\n  %138 = phi i64 [%132, %$21], [%170, %$28] ; # Z\n; # (? (=0 Bnd))\n; # (=0 Bnd)\n  %139 = icmp eq i64 %137, 0\n  br i1 %139, label %$25, label %$24\n$24:\n  %140 = phi i64 [%133, %$23] ; # Exe\n  %141 = phi i64 [%134, %$23] ; # X\n  %142 = phi i64 [%135, %$23] ; # Y\n  %143 = phi i64 [%136, %$23] ; # N\n  %144 = phi i64 [%137, %$23] ; # Bnd\n  %145 = phi i64 [%138, %$23] ; # Z\n; # (? (and (== Y (val 2 Bnd)) (prog (setq Z Bnd) (=0 (dec 'N)))))\n; # (and (== Y (val 2 Bnd)) (prog (setq Z Bnd) (=0 (dec 'N))))\n; # (val 2 Bnd)\n  %146 = inttoptr i64 %144 to i64*\n  %147 = getelementptr i64, i64* %146, i32 1\n  %148 = load i64, i64* %147\n; # (== Y (val 2 Bnd))\n  %149 = icmp eq i64 %142, %148\n  br i1 %149, label %$27, label %$26\n$27:\n  %150 = phi i64 [%140, %$24] ; # Exe\n  %151 = phi i64 [%141, %$24] ; # X\n  %152 = phi i64 [%142, %$24] ; # Y\n  %153 = phi i64 [%143, %$24] ; # N\n  %154 = phi i64 [%144, %$24] ; # Bnd\n  %155 = phi i64 [%145, %$24] ; # Z\n; # (dec 'N)\n  %156 = sub i64 %153, 1\n; # (=0 (dec 'N))\n  %157 = icmp eq i64 %156, 0\n  br label %$26\n$26:\n  %158 = phi i64 [%140, %$24], [%150, %$27] ; # Exe\n  %159 = phi i64 [%141, %$24], [%151, %$27] ; # X\n  %160 = phi i64 [%142, %$24], [%152, %$27] ; # Y\n  %161 = phi i64 [%143, %$24], [%156, %$27] ; # N\n  %162 = phi i64 [%144, %$24], [%154, %$27] ; # Bnd\n  %163 = phi i64 [%145, %$24], [%154, %$27] ; # Z\n  %164 = phi i1 [0, %$24], [%157, %$27] ; # ->\n  br i1 %164, label %$25, label %$28\n$28:\n  %165 = phi i64 [%158, %$26] ; # Exe\n  %166 = phi i64 [%159, %$26] ; # X\n  %167 = phi i64 [%160, %$26] ; # Y\n  %168 = phi i64 [%161, %$26] ; # N\n  %169 = phi i64 [%162, %$26] ; # Bnd\n  %170 = phi i64 [%163, %$26] ; # Z\n; # (val 3 Bnd)\n  %171 = inttoptr i64 %169 to i64*\n  %172 = getelementptr i64, i64* %171, i32 2\n  %173 = load i64, i64* %172\n  br label %$23\n$25:\n  %174 = phi i64 [%133, %$23], [%158, %$26] ; # Exe\n  %175 = phi i64 [%134, %$23], [%159, %$26] ; # X\n  %176 = phi i64 [%135, %$23], [%160, %$26] ; # Y\n  %177 = phi i64 [%136, %$23], [%161, %$26] ; # N\n  %178 = phi i64 [%137, %$23], [%162, %$26] ; # Bnd\n  %179 = phi i64 [%138, %$23], [%163, %$26] ; # Z\n  %180 = phi i64 [0, %$23], [0, %$26] ; # ->\n  br label %$22\n$22:\n  %181 = phi i64 [%121, %$5], [%174, %$25] ; # Exe\n  %182 = phi i64 [%122, %$5], [%175, %$25] ; # X\n  %183 = phi i64 [%123, %$5], [%176, %$25] ; # Y\n  %184 = phi i64 [%124, %$5], [%177, %$25] ; # N\n  %185 = phi i64 [%125, %$5], [%178, %$25] ; # Bnd\n  %186 = phi i64 [%123, %$5], [%179, %$25] ; # Z\n; # (if (atom (shift X)) (val Z) (set Z (eval (car X))))\n; # (shift X)\n  %187 = inttoptr i64 %182 to i64*\n  %188 = getelementptr i64, i64* %187, i32 1\n  %189 = load i64, i64* %188\n; # (atom (shift X))\n  %190 = and i64 %189, 15\n  %191 = icmp ne i64 %190, 0\n  br i1 %191, label %$29, label %$30\n$29:\n  %192 = phi i64 [%181, %$22] ; # Exe\n  %193 = phi i64 [%189, %$22] ; # X\n  %194 = phi i64 [%183, %$22] ; # Y\n  %195 = phi i64 [%184, %$22] ; # N\n  %196 = phi i64 [%185, %$22] ; # Bnd\n  %197 = phi i64 [%186, %$22] ; # Z\n; # (val Z)\n  %198 = inttoptr i64 %197 to i64*\n  %199 = load i64, i64* %198\n  br label %$31\n$30:\n  %200 = phi i64 [%181, %$22] ; # Exe\n  %201 = phi i64 [%189, %$22] ; # X\n  %202 = phi i64 [%183, %$22] ; # Y\n  %203 = phi i64 [%184, %$22] ; # N\n  %204 = phi i64 [%185, %$22] ; # Bnd\n  %205 = phi i64 [%186, %$22] ; # Z\n; # (set Z (eval (car X)))\n; # (car X)\n  %206 = inttoptr i64 %201 to i64*\n  %207 = load i64, i64* %206\n; # (eval (car X))\n  %208 = and i64 %207, 6\n  %209 = icmp ne i64 %208, 0\n  br i1 %209, label %$34, label %$33\n$34:\n  %210 = phi i64 [%207, %$30] ; # X\n  br label %$32\n$33:\n  %211 = phi i64 [%207, %$30] ; # X\n  %212 = and i64 %211, 8\n  %213 = icmp ne i64 %212, 0\n  br i1 %213, label %$36, label %$35\n$36:\n  %214 = phi i64 [%211, %$33] ; # X\n  %215 = inttoptr i64 %214 to i64*\n  %216 = load i64, i64* %215\n  br label %$32\n$35:\n  %217 = phi i64 [%211, %$33] ; # X\n  %218 = call i64 @evList(i64 %217)\n  br label %$32\n$32:\n  %219 = phi i64 [%210, %$34], [%214, %$36], [%217, %$35] ; # X\n  %220 = phi i64 [%210, %$34], [%216, %$36], [%218, %$35] ; # ->\n  %221 = inttoptr i64 %205 to i64*\n  store i64 %220, i64* %221\n  br label %$31\n$31:\n  %222 = phi i64 [%192, %$29], [%200, %$32] ; # Exe\n  %223 = phi i64 [%193, %$29], [%201, %$32] ; # X\n  %224 = phi i64 [%194, %$29], [%202, %$32] ; # Y\n  %225 = phi i64 [%195, %$29], [%203, %$32] ; # N\n  %226 = phi i64 [%196, %$29], [%204, %$32] ; # Bnd\n  %227 = phi i64 [%197, %$29], [%205, %$32] ; # Z\n  %228 = phi i64 [%199, %$29], [%220, %$32] ; # ->\n  br label %$6\n$6:\n  %229 = phi i64 [%115, %$9], [%222, %$31] ; # Exe\n  %230 = phi i64 [%116, %$9], [%223, %$31] ; # X\n  %231 = phi i64 [%117, %$9], [%224, %$31] ; # Y\n  %232 = phi i64 [%118, %$9], [%225, %$31] ; # N\n  %233 = phi i64 [%119, %$9], [%226, %$31] ; # Bnd\n  %234 = phi i64 [%120, %$9], [%228, %$31] ; # ->\n  ret i64 %234\n}\n\ndefine i64 @_History(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (atom X) (let P (history_list) (if (and P (v...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (atom X) (let P (history_list) (if (and P (val P)) (let (Y (c...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (let P (history_list) (if (and P (val P)) (let (Y (cons (mkStr (v...\n; # (history_list)\n  %8 = call i8*** @history_list()\n; # (if (and P (val P)) (let (Y (cons (mkStr (val (val P))) $Nil) R (...\n; # (and P (val P))\n  %9 = icmp ne i8*** %8, null\n  br i1 %9, label %$6, label %$5\n$6:\n  %10 = phi i64 [%6, %$2] ; # Exe\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = phi i8*** [%8, %$2] ; # P\n; # (val P)\n  %13 = load i8**, i8*** %12\n  %14 = icmp ne i8** %13, null\n  br label %$5\n$5:\n  %15 = phi i64 [%6, %$2], [%10, %$6] ; # Exe\n  %16 = phi i64 [%7, %$2], [%11, %$6] ; # X\n  %17 = phi i8*** [%8, %$2], [%12, %$6] ; # P\n  %18 = phi i1 [0, %$2], [%14, %$6] ; # ->\n  br i1 %18, label %$7, label %$8\n$7:\n  %19 = phi i64 [%15, %$5] ; # Exe\n  %20 = phi i64 [%16, %$5] ; # X\n  %21 = phi i8*** [%17, %$5] ; # P\n; # (let (Y (cons (mkStr (val (val P))) $Nil) R (save Y) I 0) (while ...\n; # (val P)\n  %22 = load i8**, i8*** %21\n; # (val (val P))\n  %23 = load i8*, i8** %22\n; # (mkStr (val (val P)))\n  %24 = call i64 @mkStr(i8* %23)\n; # (cons (mkStr (val (val P))) $Nil)\n  %25 = call i64 @cons(i64 %24, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save Y)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 %25, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (while (val (ofs P (inc 'I))) (setq Y (set 2 Y (cons (mkStr (val ...\n  br label %$10\n$10:\n  %34 = phi i64 [%19, %$7], [%44, %$11] ; # Exe\n  %35 = phi i64 [%20, %$7], [%45, %$11] ; # X\n  %36 = phi i8*** [%21, %$7], [%46, %$11] ; # P\n  %37 = phi i64 [%25, %$7], [%52, %$11] ; # Y\n  %38 = phi i64 [%25, %$7], [%48, %$11] ; # R\n  %39 = phi i64 [0, %$7], [%49, %$11] ; # I\n; # (inc 'I)\n  %40 = add i64 %39, 1\n; # (ofs P (inc 'I))\n  %41 = getelementptr i8**, i8*** %36, i64 %40\n; # (val (ofs P (inc 'I)))\n  %42 = load i8**, i8*** %41\n  %43 = icmp ne i8** %42, null\n  br i1 %43, label %$11, label %$12\n$11:\n  %44 = phi i64 [%34, %$10] ; # Exe\n  %45 = phi i64 [%35, %$10] ; # X\n  %46 = phi i8*** [%36, %$10] ; # P\n  %47 = phi i64 [%37, %$10] ; # Y\n  %48 = phi i64 [%38, %$10] ; # R\n  %49 = phi i64 [%40, %$10] ; # I\n; # (set 2 Y (cons (mkStr (val @)) $Nil))\n; # (val @)\n  %50 = load i8*, i8** %42\n; # (mkStr (val @))\n  %51 = call i64 @mkStr(i8* %50)\n; # (cons (mkStr (val @)) $Nil)\n  %52 = call i64 @cons(i64 %51, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %53 = inttoptr i64 %47 to i64*\n  %54 = getelementptr i64, i64* %53, i32 1\n  store i64 %52, i64* %54\n  br label %$10\n$12:\n  %55 = phi i64 [%34, %$10] ; # Exe\n  %56 = phi i64 [%35, %$10] ; # X\n  %57 = phi i8*** [%36, %$10] ; # P\n  %58 = phi i64 [%37, %$10] ; # Y\n  %59 = phi i64 [%38, %$10] ; # R\n  %60 = phi i64 [%40, %$10] ; # I\n; # (drop *Safe)\n  %61 = inttoptr i64 %29 to i64*\n  %62 = getelementptr i64, i64* %61, i32 1\n  %63 = load i64, i64* %62\n  %64 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %63, i64* %64\n  br label %$9\n$8:\n  %65 = phi i64 [%15, %$5] ; # Exe\n  %66 = phi i64 [%16, %$5] ; # X\n  %67 = phi i8*** [%17, %$5] ; # P\n  br label %$9\n$9:\n  %68 = phi i64 [%55, %$12], [%65, %$8] ; # Exe\n  %69 = phi i64 [%56, %$12], [%66, %$8] ; # X\n  %70 = phi i8*** [%57, %$12], [%67, %$8] ; # P\n  %71 = phi i64 [%59, %$12], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$8] ; # ->\n  br label %$4\n$3:\n  %72 = phi i64 [%0, %$1] ; # Exe\n  %73 = phi i64 [%3, %$1] ; # X\n; # (let (Y (needLst Exe (eval (car X))) Z Y) (clear_history) (while ...\n; # (car X)\n  %74 = inttoptr i64 %73 to i64*\n  %75 = load i64, i64* %74\n; # (eval (car X))\n  %76 = and i64 %75, 6\n  %77 = icmp ne i64 %76, 0\n  br i1 %77, label %$15, label %$14\n$15:\n  %78 = phi i64 [%75, %$3] ; # X\n  br label %$13\n$14:\n  %79 = phi i64 [%75, %$3] ; # X\n  %80 = and i64 %79, 8\n  %81 = icmp ne i64 %80, 0\n  br i1 %81, label %$17, label %$16\n$17:\n  %82 = phi i64 [%79, %$14] ; # X\n  %83 = inttoptr i64 %82 to i64*\n  %84 = load i64, i64* %83\n  br label %$13\n$16:\n  %85 = phi i64 [%79, %$14] ; # X\n  %86 = call i64 @evList(i64 %85)\n  br label %$13\n$13:\n  %87 = phi i64 [%78, %$15], [%82, %$17], [%85, %$16] ; # X\n  %88 = phi i64 [%78, %$15], [%84, %$17], [%86, %$16] ; # ->\n; # (needLst Exe (eval (car X)))\n  %89 = and i64 %88, 15\n  %90 = icmp eq i64 %89, 0\n  br i1 %90, label %$18, label %$19\n$19:\n  %91 = phi i64 [%88, %$13] ; # X\n  %92 = phi i64 [%72, %$13] ; # Exe\n  %93 = icmp eq i64 %91, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br label %$18\n$18:\n  %94 = phi i64 [%88, %$13], [%91, %$19] ; # X\n  %95 = phi i64 [%72, %$13], [%92, %$19] ; # Exe\n  %96 = phi i1 [1, %$13], [%93, %$19] ; # ->\n  br i1 %96, label %$21, label %$20\n$20:\n  %97 = phi i64 [%94, %$18] ; # X\n  %98 = phi i64 [%95, %$18] ; # Exe\n  call void @lstErr(i64 %98, i64 %97)\n  unreachable\n$21:\n  %99 = phi i64 [%94, %$18] ; # X\n  %100 = phi i64 [%95, %$18] ; # Exe\n; # (clear_history)\n  call void @clear_history()\n; # (while (pair Z) (let (Nm (xName (xSym (++ Z))) Stk (stack)) (add_...\n  br label %$22\n$22:\n  %101 = phi i64 [%72, %$21], [%107, %$23] ; # Exe\n  %102 = phi i64 [%73, %$21], [%108, %$23] ; # X\n  %103 = phi i64 [%99, %$21], [%109, %$23] ; # Y\n  %104 = phi i64 [%99, %$21], [%113, %$23] ; # Z\n; # (pair Z)\n  %105 = and i64 %104, 15\n  %106 = icmp eq i64 %105, 0\n  br i1 %106, label %$23, label %$24\n$23:\n  %107 = phi i64 [%101, %$22] ; # Exe\n  %108 = phi i64 [%102, %$22] ; # X\n  %109 = phi i64 [%103, %$22] ; # Y\n  %110 = phi i64 [%104, %$22] ; # Z\n; # (let (Nm (xName (xSym (++ Z))) Stk (stack)) (add_history (bufStri...\n; # (++ Z)\n  %111 = inttoptr i64 %110 to i64*\n  %112 = getelementptr i64, i64* %111, i32 1\n  %113 = load i64, i64* %112\n  %114 = load i64, i64* %111\n; # (xSym (++ Z))\n  %115 = call i64 @xSym(i64 %114)\n; # (xName (xSym (++ Z)))\n  %116 = call i64 @xName(i64 %115)\n; # (stack)\n  %117 = call i8* @llvm.stacksave()\n; # (bufSize Nm)\n  %118 = call i64 @bufSize(i64 %116)\n; # (b8 (bufSize Nm))\n  %119 = alloca i8, i64 %118\n; # (bufString Nm (b8 (bufSize Nm)))\n  %120 = call i8* @bufString(i64 %116, i8* %119)\n; # (add_history (bufString Nm (b8 (bufSize Nm))))\n  call void @add_history(i8* %120)\n; # (stack Stk)\n  call void @llvm.stackrestore(i8* %117)\n  br label %$22\n$24:\n  %121 = phi i64 [%101, %$22] ; # Exe\n  %122 = phi i64 [%102, %$22] ; # X\n  %123 = phi i64 [%103, %$22] ; # Y\n  %124 = phi i64 [%104, %$22] ; # Z\n  br label %$4\n$4:\n  %125 = phi i64 [%68, %$9], [%121, %$24] ; # Exe\n  %126 = phi i64 [%69, %$9], [%122, %$24] ; # X\n  %127 = phi i64 [%71, %$9], [%123, %$24] ; # ->\n  ret i64 %127\n}\n\ndefine void @init(i32, i8**) align 8 {\n$1:\n; # (set $AV0 (val Av) $AV (setq Av (ofs Av 1)))\n; # (val Av)\n  %2 = load i8*, i8** %1\n  store i8* %2, i8** @$AV0\n; # (ofs Av 1)\n  %3 = getelementptr i8*, i8** %1, i32 1\n  store i8** %3, i8*** @$AV\n; # (let P (ofs Av (- Ac 2)) (unless (strcmp (val P) ($ \"+\")) (set $D...\n; # (- Ac 2)\n  %4 = sub i32 %0, 2\n; # (ofs Av (- Ac 2))\n  %5 = getelementptr i8*, i8** %3, i32 %4\n; # (unless (strcmp (val P) ($ \"+\")) (set $Dbg $T P null))\n; # (val P)\n  %6 = load i8*, i8** %5\n; # (strcmp (val P) ($ \"+\"))\n  %7 = call i32 @strcmp(i8* %6, i8* bitcast ([2 x i8]* @$96 to i8*))\n  %8 = icmp ne i32 %7, 0\n  br i1 %8, label %$3, label %$2\n$2:\n  %9 = phi i32 [%0, %$1] ; # Ac\n  %10 = phi i8** [%3, %$1] ; # Av\n  %11 = phi i8** [%5, %$1] ; # P\n; # (set $Dbg $T P null)\n  %12 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 840) to i64) to i64*\n  store i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), i64* %12\n  store i8* null, i8** %11\n  br label %$3\n$3:\n  %13 = phi i32 [%0, %$1], [%9, %$2] ; # Ac\n  %14 = phi i8** [%3, %$1], [%10, %$2] ; # Av\n  %15 = phi i8** [%5, %$1], [%11, %$2] ; # P\n; # (let P (val Av) (when (and P (<> (val P) (char \"-\"))) (let Q (str...\n; # (val Av)\n  %16 = load i8*, i8** %14\n; # (when (and P (<> (val P) (char \"-\"))) (let Q (strrchr P (char \"/\"...\n; # (and P (<> (val P) (char \"-\")))\n  %17 = icmp ne i8* %16, null\n  br i1 %17, label %$5, label %$4\n$5:\n  %18 = phi i32 [%13, %$3] ; # Ac\n  %19 = phi i8** [%14, %$3] ; # Av\n  %20 = phi i8* [%16, %$3] ; # P\n; # (val P)\n  %21 = load i8, i8* %20\n; # (<> (val P) (char \"-\"))\n  %22 = icmp ne i8 %21, 45\n  br label %$4\n$4:\n  %23 = phi i32 [%13, %$3], [%18, %$5] ; # Ac\n  %24 = phi i8** [%14, %$3], [%19, %$5] ; # Av\n  %25 = phi i8* [%16, %$3], [%20, %$5] ; # P\n  %26 = phi i1 [0, %$3], [%22, %$5] ; # ->\n  br i1 %26, label %$6, label %$7\n$6:\n  %27 = phi i32 [%23, %$4] ; # Ac\n  %28 = phi i8** [%24, %$4] ; # Av\n  %29 = phi i8* [%25, %$4] ; # P\n; # (let Q (strrchr P (char \"/\")) (unless (or (=0 Q) (and (== Q (+ P ...\n; # (strrchr P (char \"/\"))\n  %30 = call i8* @strrchr(i8* %29, i32 47)\n; # (unless (or (=0 Q) (and (== Q (+ P 1)) (== (val P) (char \".\")))) ...\n; # (or (=0 Q) (and (== Q (+ P 1)) (== (val P) (char \".\"))))\n; # (=0 Q)\n  %31 = icmp eq i8* %30, null\n  br i1 %31, label %$8, label %$9\n$9:\n  %32 = phi i32 [%27, %$6] ; # Ac\n  %33 = phi i8** [%28, %$6] ; # Av\n  %34 = phi i8* [%29, %$6] ; # P\n  %35 = phi i8* [%30, %$6] ; # Q\n; # (and (== Q (+ P 1)) (== (val P) (char \".\")))\n; # (+ P 1)\n  %36 = getelementptr i8, i8* %34, i32 1\n; # (== Q (+ P 1))\n  %37 = icmp eq i8* %35, %36\n  br i1 %37, label %$11, label %$10\n$11:\n  %38 = phi i32 [%32, %$9] ; # Ac\n  %39 = phi i8** [%33, %$9] ; # Av\n  %40 = phi i8* [%34, %$9] ; # P\n  %41 = phi i8* [%35, %$9] ; # Q\n; # (val P)\n  %42 = load i8, i8* %40\n; # (== (val P) (char \".\"))\n  %43 = icmp eq i8 %42, 46\n  br label %$10\n$10:\n  %44 = phi i32 [%32, %$9], [%38, %$11] ; # Ac\n  %45 = phi i8** [%33, %$9], [%39, %$11] ; # Av\n  %46 = phi i8* [%34, %$9], [%40, %$11] ; # P\n  %47 = phi i8* [%35, %$9], [%41, %$11] ; # Q\n  %48 = phi i1 [0, %$9], [%43, %$11] ; # ->\n  br label %$8\n$8:\n  %49 = phi i32 [%27, %$6], [%44, %$10] ; # Ac\n  %50 = phi i8** [%28, %$6], [%45, %$10] ; # Av\n  %51 = phi i8* [%29, %$6], [%46, %$10] ; # P\n  %52 = phi i8* [%30, %$6], [%47, %$10] ; # Q\n  %53 = phi i1 [1, %$6], [%48, %$10] ; # ->\n  br i1 %53, label %$13, label %$12\n$12:\n  %54 = phi i32 [%49, %$8] ; # Ac\n  %55 = phi i8** [%50, %$8] ; # Av\n  %56 = phi i8* [%51, %$8] ; # P\n  %57 = phi i8* [%52, %$8] ; # Q\n; # (let (N (+ (- Q P) 1) H (malloc (+ N 1))) (set $PilHome H $PilLen...\n; # (- Q P)\n  %58 = ptrtoint i8* %57 to i64\n  %59 = ptrtoint i8* %56 to i64\n  %60 = sub i64 %58, %59\n; # (+ (- Q P) 1)\n  %61 = add i64 %60, 1\n; # (+ N 1)\n  %62 = add i64 %61, 1\n; # (malloc (+ N 1))\n  %63 = call i8* @malloc(i64 %62)\n; # (set $PilHome H $PilLen N)\n  store i8* %63, i8** @$PilHome\n  store i64 %61, i64* @$PilLen\n; # (memcpy H P N)\n  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %63, i8* %56, i64 %61, i1 0)\n; # (set (ofs H N) 0)\n; # (ofs H N)\n  %64 = getelementptr i8, i8* %63, i64 %61\n  store i8 0, i8* %64\n  br label %$13\n$13:\n  %65 = phi i32 [%49, %$8], [%54, %$12] ; # Ac\n  %66 = phi i8** [%50, %$8], [%55, %$12] ; # Av\n  %67 = phi i8* [%51, %$8], [%56, %$12] ; # P\n  %68 = phi i8* [%52, %$8], [%57, %$12] ; # Q\n  br label %$7\n$7:\n  %69 = phi i32 [%23, %$4], [%65, %$13] ; # Ac\n  %70 = phi i8** [%24, %$4], [%66, %$13] ; # Av\n  %71 = phi i8* [%25, %$4], [%67, %$13] ; # P\n; # (when (getenv ($ \"HOME\")) (set $UsrHome @ $UsrLen (strlen @)))\n; # (getenv ($ \"HOME\"))\n  %72 = call i8* @getenv(i8* bitcast ([5 x i8]* @$97 to i8*))\n  %73 = icmp ne i8* %72, null\n  br i1 %73, label %$14, label %$15\n$14:\n  %74 = phi i32 [%69, %$7] ; # Ac\n  %75 = phi i8** [%70, %$7] ; # Av\n; # (set $UsrHome @ $UsrLen (strlen @))\n  store i8* %72, i8** @$UsrHome\n; # (strlen @)\n  %76 = call i64 @strlen(i8* %72)\n  store i64 %76, i64* @$UsrLen\n  br label %$15\n$15:\n  %77 = phi i32 [%69, %$7], [%74, %$14] ; # Ac\n  %78 = phi i8** [%70, %$7], [%75, %$14] ; # Av\n; # (heapAlloc)\n  call void @heapAlloc()\n; # (let P $Nil (loop (let Nm (val (tail P)) (when (num? Nm) (intern ...\n; # (loop (let Nm (val (tail P)) (when (num? Nm) (intern P 0 @ (cdr $...\n  br label %$16\n$16:\n  %79 = phi i32 [%77, %$15], [%111, %$18] ; # Ac\n  %80 = phi i8** [%78, %$15], [%112, %$18] ; # Av\n  %81 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%115, %$18] ; # P\n; # (let Nm (val (tail P)) (when (num? Nm) (intern P 0 @ (cdr $Pico) ...\n; # (tail P)\n  %82 = add i64 %81, -8\n; # (val (tail P))\n  %83 = inttoptr i64 %82 to i64*\n  %84 = load i64, i64* %83\n; # (when (num? Nm) (intern P 0 @ (cdr $Pico) $Nil NO) (? (== P $Last...\n; # (num? Nm)\n  %85 = and i64 %84, 6\n  %86 = icmp ne i64 %85, 0\n  br i1 %86, label %$17, label %$18\n$17:\n  %87 = phi i32 [%79, %$16] ; # Ac\n  %88 = phi i8** [%80, %$16] ; # Av\n  %89 = phi i64 [%81, %$16] ; # P\n  %90 = phi i64 [%84, %$16] ; # Nm\n; # (cdr $Pico)\n  %91 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 64) to i64) to i64*\n  %92 = getelementptr i64, i64* %91, i32 1\n  %93 = load i64, i64* %92\n; # (intern P 0 @ (cdr $Pico) $Nil NO)\n  %94 = call i64 @intern(i64 %89, i64 0, i64 %84, i64 %93, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), i1 0)\n; # (? (== P $LastSym))\n; # (== P $LastSym)\n  %95 = icmp eq i64 %89, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 7176) to i64)\n  br i1 %95, label %$20, label %$19\n$19:\n  %96 = phi i32 [%87, %$17] ; # Ac\n  %97 = phi i8** [%88, %$17] ; # Av\n  %98 = phi i64 [%89, %$17] ; # P\n  %99 = phi i64 [%90, %$17] ; # Nm\n; # (when (big? Nm) (setq P (ofs P 2)))\n; # (big? Nm)\n  %100 = and i64 %99, 4\n  %101 = icmp ne i64 %100, 0\n  br i1 %101, label %$21, label %$22\n$21:\n  %102 = phi i32 [%96, %$19] ; # Ac\n  %103 = phi i8** [%97, %$19] ; # Av\n  %104 = phi i64 [%98, %$19] ; # P\n  %105 = phi i64 [%99, %$19] ; # Nm\n; # (ofs P 2)\n  %106 = add i64 %104, 16\n  br label %$22\n$22:\n  %107 = phi i32 [%96, %$19], [%102, %$21] ; # Ac\n  %108 = phi i8** [%97, %$19], [%103, %$21] ; # Av\n  %109 = phi i64 [%98, %$19], [%106, %$21] ; # P\n  %110 = phi i64 [%99, %$19], [%105, %$21] ; # Nm\n  br label %$18\n$18:\n  %111 = phi i32 [%79, %$16], [%107, %$22] ; # Ac\n  %112 = phi i8** [%80, %$16], [%108, %$22] ; # Av\n  %113 = phi i64 [%81, %$16], [%109, %$22] ; # P\n  %114 = phi i64 [%84, %$16], [%110, %$22] ; # Nm\n; # (ofs P 2)\n  %115 = add i64 %113, 16\n  br label %$16\n$20:\n  %116 = phi i32 [%87, %$17] ; # Ac\n  %117 = phi i8** [%88, %$17] ; # Av\n  %118 = phi i64 [%89, %$17] ; # P\n  %119 = phi i64 [0, %$17] ; # ->\n; # (set $OS (mkStr TgOS) $CPU (mkStr TgCPU) $Pid (cnt (i64 (getpid))...\n; # (mkStr TgOS)\n  %120 = call i64 @mkStr(i8* @TgOS)\n  %121 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 168) to i64) to i64*\n  store i64 %120, i64* %121\n; # (mkStr TgCPU)\n  %122 = call i64 @mkStr(i8* @TgCPU)\n  %123 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 184) to i64) to i64*\n  store i64 %122, i64* %123\n; # (getpid)\n  %124 = call i32 @getpid()\n; # (i64 (getpid))\n  %125 = sext i32 %124 to i64\n; # (cnt (i64 (getpid)))\n  %126 = shl i64 %125, 4\n  %127 = or i64 %126, 2\n  %128 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 200) to i64) to i64*\n  store i64 %127, i64* %128\n; # (tail $Db1)\n  %129 = add i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64), -8\n  %130 = inttoptr i64 %129 to i64*\n  store i64 26, i64* %130\n; # (cons $Db1 $Nil)\n  %131 = call i64 @cons(i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 424) to i64), i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  store i64 %131, i64* @$Extern\n; # (set $USec (getUsec YES))\n; # (getUsec YES)\n  %132 = call i64 @getUsec(i1 1)\n  store i64 %132, i64* @$USec\n  ret void\n}\n\ndefine void @signals() align 8 {\n$1:\n; # (sigUnblock 0)\n  call void @sigUnblock(i32 0)\n; # (val SIGHUP Sig)\n  %0 = getelementptr i32, i32* @Sig, i32 0\n  %1 = load i32, i32* %0\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %2 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGHUP Sig) (fun sig))\n  call void @iSignal(i32 %1, i8* %2)\n; # (val SIGUSR1 Sig)\n  %3 = getelementptr i32, i32* @Sig, i32 2\n  %4 = load i32, i32* %3\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %5 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGUSR1 Sig) (fun sig))\n  call void @iSignal(i32 %4, i8* %5)\n; # (val SIGUSR2 Sig)\n  %6 = getelementptr i32, i32* @Sig, i32 3\n  %7 = load i32, i32* %6\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %8 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGUSR2 Sig) (fun sig))\n  call void @iSignal(i32 %7, i8* %8)\n; # (val SIGALRM Sig)\n  %9 = getelementptr i32, i32* @Sig, i32 5\n  %10 = load i32, i32* %9\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %11 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGALRM Sig) (fun sig))\n  call void @iSignal(i32 %10, i8* %11)\n; # (val SIGTERM Sig)\n  %12 = getelementptr i32, i32* @Sig, i32 6\n  %13 = load i32, i32* %12\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %14 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGTERM Sig) (fun sig))\n  call void @iSignal(i32 %13, i8* %14)\n; # (val SIGWINCH Sig)\n  %15 = getelementptr i32, i32* @Sig, i32 13\n  %16 = load i32, i32* %15\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %17 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGWINCH Sig) (fun sig))\n  call void @iSignal(i32 %16, i8* %17)\n; # (val SIGIO Sig)\n  %18 = getelementptr i32, i32* @Sig, i32 14\n  %19 = load i32, i32* %18\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %20 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGIO Sig) (fun sig))\n  call void @iSignal(i32 %19, i8* %20)\n; # (when (== (signal (val SIGTSTP Sig) (val SigIgn)) (val SigDfl)) (...\n; # (val SIGTSTP Sig)\n  %21 = getelementptr i32, i32* @Sig, i32 10\n  %22 = load i32, i32* %21\n; # (val SigIgn)\n  %23 = load i8*, i8** @SigIgn\n; # (signal (val SIGTSTP Sig) (val SigIgn))\n  %24 = call i8* @signal(i32 %22, i8* %23)\n; # (val SigDfl)\n  %25 = load i8*, i8** @SigDfl\n; # (== (signal (val SIGTSTP Sig) (val SigIgn)) (val SigDfl))\n  %26 = icmp eq i8* %24, %25\n  br i1 %26, label %$2, label %$3\n$2:\n; # (val SIGTSTP Sig)\n  %27 = getelementptr i32, i32* @Sig, i32 10\n  %28 = load i32, i32* %27\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %29 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGTSTP Sig) (fun sig))\n  call void @iSignal(i32 %28, i8* %29)\n  br label %$3\n$3:\n; # (val SIGINT Sig)\n  %30 = getelementptr i32, i32* @Sig, i32 1\n  %31 = load i32, i32* %30\n; # (fun sigTerm)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %32 = bitcast void(i32)* @sigTerm to i8*\n; # (iSignal (val SIGINT Sig) (fun sigTerm))\n  call void @iSignal(i32 %31, i8* %32)\n; # (val SIGCHLD Sig)\n  %33 = getelementptr i32, i32* @Sig, i32 7\n  %34 = load i32, i32* %33\n; # (fun sigChld)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %35 = bitcast void(i32)* @sigChld to i8*\n; # (signal (val SIGCHLD Sig) (fun sigChld))\n  %36 = call i8* @signal(i32 %34, i8* %35)\n; # (val SIGPIPE Sig)\n  %37 = getelementptr i32, i32* @Sig, i32 4\n  %38 = load i32, i32* %37\n; # (val SigIgn)\n  %39 = load i8*, i8** @SigIgn\n; # (signal (val SIGPIPE Sig) (val SigIgn))\n  %40 = call i8* @signal(i32 %38, i8* %39)\n; # (val SIGTTIN Sig)\n  %41 = getelementptr i32, i32* @Sig, i32 11\n  %42 = load i32, i32* %41\n; # (val SigIgn)\n  %43 = load i8*, i8** @SigIgn\n; # (signal (val SIGTTIN Sig) (val SigIgn))\n  %44 = call i8* @signal(i32 %42, i8* %43)\n; # (val SIGTTOU Sig)\n  %45 = getelementptr i32, i32* @Sig, i32 12\n  %46 = load i32, i32* %45\n; # (val SigIgn)\n  %47 = load i8*, i8** @SigIgn\n; # (signal (val SIGTTOU Sig) (val SigIgn))\n  %48 = call i8* @signal(i32 %46, i8* %47)\n  ret void\n}\n\ndefine i32 @main(i32, i8**) align 8 {\n$1:\n; # (set $StkLimit (ulimStk))\n; # (ulimStk)\n  %2 = call i8* @ulimStk()\n  store i8* %2, i8** @$StkLimit\n; # (init Ac Av)\n  call void @init(i32 %0, i8** %1)\n; # (b8+ (ioFrame T))\n  %3 = alloca i8, i64 28, align 8\n; # (initOutFile 2)\n  %4 = call i8* @initOutFile(i32 2)\n; # (pushOutFile (b8+ (ioFrame T)) (initOutFile 2) 0)\n  call void @pushOutFile(i8* %3, i8* %4, i32 0)\n; # (set $Stdout (b8+ (ioFrame T)))\n; # (b8+ (ioFrame T))\n  %5 = alloca i8, i64 28, align 8\n  store i8* %5, i8** @$Stdout\n; # (initOutFile 1)\n  %6 = call i8* @initOutFile(i32 1)\n; # (pushOutFile (set $Stdout (b8+ (ioFrame T))) (initOutFile 1) 0)\n  call void @pushOutFile(i8* %5, i8* %6, i32 0)\n; # (set $Stdin (b8+ (ioFrame T)))\n; # (b8+ (ioFrame T))\n  %7 = alloca i8, i64 28, align 8\n  store i8* %7, i8** @$Stdin\n; # (initInFile 0 null)\n  %8 = call i8* @initInFile(i32 0, i8* null)\n; # (pushInFile (set $Stdin (b8+ (ioFrame T))) (initInFile 0 null) 0)...\n  call void @pushInFile(i8* %7, i8* %8, i32 0)\n; # (set Tio (=0 (tcgetattr 0 OrgTermio)))\n; # (tcgetattr 0 OrgTermio)\n  %9 = call i32 @tcgetattr(i32 0, i8* @OrgTermio)\n; # (=0 (tcgetattr 0 OrgTermio))\n  %10 = icmp eq i32 %9, 0\n  store i1 %10, i1* @Tio\n; # (signals)\n  call void @signals()\n; # (initReadline)\n  call void @initReadline()\n; # (unless (setjmp QuitRst) (loadAll 0))\n; # (setjmp QuitRst)\n  %11 = call i32 @setjmp(i8* @QuitRst)\n  %12 = icmp ne i32 %11, 0\n  br i1 %12, label %$3, label %$2\n$2:\n  %13 = phi i32 [%0, %$1] ; # Ac\n  %14 = phi i8** [%1, %$1] ; # Av\n; # (loadAll 0)\n  %15 = call i64 @loadAll(i64 0)\n  br label %$3\n$3:\n  %16 = phi i32 [%0, %$1], [%13, %$2] ; # Ac\n  %17 = phi i8** [%1, %$1], [%14, %$2] ; # Av\n; # (unless (val $Repl) (set $Repl YES) (iSignal (val SIGINT Sig) (fu...\n; # (val $Repl)\n  %18 = load i1, i1* @$Repl\n  br i1 %18, label %$5, label %$4\n$4:\n  %19 = phi i32 [%16, %$3] ; # Ac\n  %20 = phi i8** [%17, %$3] ; # Av\n; # (set $Repl YES)\n  store i1 1, i1* @$Repl\n; # (val SIGINT Sig)\n  %21 = getelementptr i32, i32* @Sig, i32 1\n  %22 = load i32, i32* %21\n; # (fun sig)\n; # (i8* (def (pico~pack \"@\" (pico~car cross~Args)) (func (; cross~Ar...\n  %23 = bitcast void(i32)* @sig to i8*\n; # (iSignal (val SIGINT Sig) (fun sig))\n  call void @iSignal(i32 %22, i8* %23)\n  br label %$5\n$5:\n  %24 = phi i32 [%16, %$3], [%19, %$4] ; # Ac\n  %25 = phi i8** [%17, %$3], [%20, %$4] ; # Av\n; # (save -ZERO)\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %27 = load i64, i64* %26\n  %28 = alloca i64, i64 2, align 16\n  %29 = ptrtoint i64* %28 to i64\n  %30 = inttoptr i64 %29 to i64*\n  store i64 10, i64* %30\n  %31 = add i64 %29, 8\n  %32 = inttoptr i64 %31 to i64*\n  store i64 %27, i64* %32\n  %33 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %29, i64* %33\n; # (loop (let X (safe (stdRead ($ \": \"))) (cond ((lt0 (val $Chr)) (b...\n  br label %$6\n$6:\n  %34 = phi i32 [%24, %$5], [%75, %$7] ; # Ac\n  %35 = phi i8** [%25, %$5], [%76, %$7] ; # Av\n; # (let X (safe (stdRead ($ \": \"))) (cond ((lt0 (val $Chr)) (bye 0))...\n; # (stdRead ($ \": \"))\n  %36 = call i64 @stdRead(i8* bitcast ([3 x i8]* @$98 to i8*))\n; # (safe (stdRead ($ \": \")))\n  %37 = inttoptr i64 %29 to i64*\n  store i64 %36, i64* %37\n; # (cond ((lt0 (val $Chr)) (bye 0)) ((=0 (val $Chr)) (unless (nil? X...\n; # (val $Chr)\n  %38 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (lt0 (val $Chr))\n  %39 = icmp slt i32 %38, 0\n  br i1 %39, label %$9, label %$8\n$9:\n  %40 = phi i32 [%34, %$6] ; # Ac\n  %41 = phi i8** [%35, %$6] ; # Av\n  %42 = phi i64 [%36, %$6] ; # X\n; # (bye 0)\n  call void @bye(i32 0)\n  unreachable\n$8:\n  %43 = phi i32 [%34, %$6] ; # Ac\n  %44 = phi i8** [%35, %$6] ; # Av\n  %45 = phi i64 [%36, %$6] ; # X\n; # (val $Chr)\n  %46 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (=0 (val $Chr))\n  %47 = icmp eq i32 %46, 0\n  br i1 %47, label %$11, label %$10\n$11:\n  %48 = phi i32 [%43, %$8] ; # Ac\n  %49 = phi i8** [%44, %$8] ; # Av\n  %50 = phi i64 [%45, %$8] ; # X\n; # (unless (nil? X) (stdEval X))\n; # (nil? X)\n  %51 = icmp eq i64 %50, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %51, label %$13, label %$12\n$12:\n  %52 = phi i32 [%48, %$11] ; # Ac\n  %53 = phi i8** [%49, %$11] ; # Av\n  %54 = phi i64 [%50, %$11] ; # X\n; # (stdEval X)\n  %55 = call i64 @stdEval(i64 %54)\n  br label %$13\n$13:\n  %56 = phi i32 [%48, %$11], [%52, %$12] ; # Ac\n  %57 = phi i8** [%49, %$11], [%53, %$12] ; # Av\n  %58 = phi i64 [%50, %$11], [%54, %$12] ; # X\n  br label %$7\n$10:\n  %59 = phi i32 [%43, %$8] ; # Ac\n  %60 = phi i8** [%44, %$8] ; # Av\n  %61 = phi i64 [%45, %$8] ; # X\n; # (eval X)\n  %62 = and i64 %61, 6\n  %63 = icmp ne i64 %62, 0\n  br i1 %63, label %$16, label %$15\n$16:\n  %64 = phi i64 [%61, %$10] ; # X\n  br label %$14\n$15:\n  %65 = phi i64 [%61, %$10] ; # X\n  %66 = and i64 %65, 8\n  %67 = icmp ne i64 %66, 0\n  br i1 %67, label %$18, label %$17\n$18:\n  %68 = phi i64 [%65, %$15] ; # X\n  %69 = inttoptr i64 %68 to i64*\n  %70 = load i64, i64* %69\n  br label %$14\n$17:\n  %71 = phi i64 [%65, %$15] ; # X\n  %72 = call i64 @evList(i64 %71)\n  br label %$14\n$14:\n  %73 = phi i64 [%64, %$16], [%68, %$18], [%71, %$17] ; # X\n  %74 = phi i64 [%64, %$16], [%70, %$18], [%72, %$17] ; # ->\n  br label %$7\n$7:\n  %75 = phi i32 [%56, %$13], [%59, %$14] ; # Ac\n  %76 = phi i8** [%57, %$13], [%60, %$14] ; # Av\n  %77 = phi i64 [%58, %$13], [%61, %$14] ; # X\n  br label %$6\n}\n\ndefine i64 @_Version(i64) align 8 {\n$1:\n; # (let (X (save (eval (cadr Exe))) V (cons (val $Y) (cons (val $M) ...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (save (eval (cadr Exe)))\n  %19 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %20 = load i64, i64* %19\n  %21 = alloca i64, i64 2, align 16\n  %22 = ptrtoint i64* %21 to i64\n  %23 = inttoptr i64 %22 to i64*\n  store i64 %18, i64* %23\n  %24 = add i64 %22, 8\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %22, i64* %26\n; # (val $Y)\n  %27 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 0) to i64) to i64*\n  %28 = load i64, i64* %27\n; # (val $M)\n  %29 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 8) to i64) to i64*\n  %30 = load i64, i64* %29\n; # (val $D)\n  %31 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 16) to i64) to i64*\n  %32 = load i64, i64* %31\n; # (cons (val $D) $Nil)\n  %33 = call i64 @cons(i64 %32, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (cons (val $M) (cons (val $D) $Nil))\n  %34 = call i64 @cons(i64 %30, i64 %33)\n; # (cons (val $Y) (cons (val $M) (cons (val $D) $Nil)))\n  %35 = call i64 @cons(i64 %28, i64 %34)\n; # (cond ((nil? X) (outWord (int (val $Y))) (call $Put (char \".\")) (...\n; # (nil? X)\n  %36 = icmp eq i64 %18, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %36, label %$9, label %$8\n$9:\n  %37 = phi i64 [%0, %$2] ; # Exe\n  %38 = phi i64 [%18, %$2] ; # X\n  %39 = phi i64 [%35, %$2] ; # V\n; # (val $Y)\n  %40 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 0) to i64) to i64*\n  %41 = load i64, i64* %40\n; # (int (val $Y))\n  %42 = lshr i64 %41, 4\n; # (outWord (int (val $Y)))\n  call void @outWord(i64 %42)\n; # (call $Put (char \".\"))\n  %43 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %43(i8 46)\n; # (val $M)\n  %44 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 8) to i64) to i64*\n  %45 = load i64, i64* %44\n; # (int (val $M))\n  %46 = lshr i64 %45, 4\n; # (outWord (int (val $M)))\n  call void @outWord(i64 %46)\n; # (call $Put (char \".\"))\n  %47 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %47(i8 46)\n; # (val $D)\n  %48 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([3 x i64]* @$Version to i8*), i32 16) to i64) to i64*\n  %49 = load i64, i64* %48\n; # (int (val $D))\n  %50 = lshr i64 %49, 4\n; # (outWord (int (val $D)))\n  call void @outWord(i64 %50)\n; # (newline)\n  call void @newline()\n  br label %$7\n$8:\n  %51 = phi i64 [%0, %$2] ; # Exe\n  %52 = phi i64 [%18, %$2] ; # X\n  %53 = phi i64 [%35, %$2] ; # V\n; # (== ZERO X)\n  %54 = icmp eq i64 2, %52\n  br i1 %54, label %$11, label %$10\n$11:\n  %55 = phi i64 [%51, %$8] ; # Exe\n  %56 = phi i64 [%52, %$8] ; # X\n  %57 = phi i64 [%53, %$8] ; # V\n; # (prName 11985897847159960594)\n  call void @prName(i64 11985897847159960594)\n  br label %$7\n$10:\n  %58 = phi i64 [%51, %$8] ; # Exe\n  %59 = phi i64 [%52, %$8] ; # X\n  %60 = phi i64 [%53, %$8] ; # V\n; # (pair X)\n  %61 = and i64 %59, 15\n  %62 = icmp eq i64 %61, 0\n  br i1 %62, label %$13, label %$12\n$13:\n  %63 = phi i64 [%58, %$10] ; # Exe\n  %64 = phi i64 [%59, %$10] ; # X\n  %65 = phi i64 [%60, %$10] ; # V\n; # (unless (ge0 (compare V X)) (err Exe V ($ \"Inadequate PicoLisp ve...\n; # (compare V X)\n  %66 = call i64 @compare(i64 %65, i64 %64)\n; # (ge0 (compare V X))\n  %67 = icmp sge i64 %66, 0\n  br i1 %67, label %$15, label %$14\n$14:\n  %68 = phi i64 [%63, %$13] ; # Exe\n  %69 = phi i64 [%64, %$13] ; # X\n  %70 = phi i64 [%65, %$13] ; # V\n; # (err Exe V ($ \"Inadequate PicoLisp version\") null)\n  call void @err(i64 %68, i64 %70, i8* bitcast ([28 x i8]* @$99 to i8*), i8* null)\n  unreachable\n$15:\n  %71 = phi i64 [%63, %$13] ; # Exe\n  %72 = phi i64 [%64, %$13] ; # X\n  %73 = phi i64 [%65, %$13] ; # V\n  br label %$7\n$12:\n  %74 = phi i64 [%58, %$10] ; # Exe\n  %75 = phi i64 [%59, %$10] ; # X\n  %76 = phi i64 [%60, %$10] ; # V\n  br label %$7\n$7:\n  %77 = phi i64 [%37, %$9], [%55, %$11], [%71, %$15], [%74, %$12] ; # Exe\n  %78 = phi i64 [%38, %$9], [%56, %$11], [%72, %$15], [%75, %$12] ; # X\n  %79 = phi i64 [%39, %$9], [%57, %$11], [%73, %$15], [%76, %$12] ; # V\n; # (drop *Safe)\n  %80 = inttoptr i64 %22 to i64*\n  %81 = getelementptr i64, i64* %80, i32 1\n  %82 = load i64, i64* %81\n  %83 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %82, i64* %83\n  ret i64 %79\n}\n\n@$99 = private constant [28 x i8] c\"Inadequate PicoLisp version\\00\"\n@$98 = private constant [3 x i8] c\": \\00\"\n@$97 = private constant [5 x i8] c\"HOME\\00\"\n@$96 = private constant [2 x i8] c\"+\\00\"\n@$95 = private constant [19 x i8] c\"Too many callbacks\\00\"\n@$94 = private constant [9 x i8] c\"[DLL] %s\\00\"\n@$93 = private constant [8 x i8] c\"Bad ffi\\00\"\n@$92 = private constant [16 x i8] c\"Bad result spec\\00\"\n@$91 = private constant [19 x i8] c\"Can't open PTY: %s\\00\"\n@$90 = private constant [3 x i8] c\"%s\\00\"\n@$89 = private constant [11 x i8] c\"Not making\\00\"\n@$88 = private constant [3 x i8] c\"+ \\00\"\n@$87 = private constant [9 x i8] c\"wait pid\\00\"\n@$86 = private constant [4 x i8] c\" = \\00\"\n@$85 = private constant [3 x i8] c\" :\\00\"\n@$84 = private constant [9 x i8] c\"No Break\\00\"\n@$83 = private constant [3 x i8] c\"! \\00\"\n@$82 = private constant [14 x i8] c\"No coroutines\\00\"\n@$81 = private constant [18 x i8] c\"Running coroutine\\00\"\n@$80 = private constant [18 x i8] c\"Stack overwritten\\00\"\n@$79 = private constant [13 x i8] c\"Tag expected\\00\"\n@$78 = private constant [20 x i8] c\"Reentrant coroutine\\00\"\n@$77 = private constant [20 x i8] c\"Coroutine not found\\00\"\n@$76 = private constant [14 x i8] c\"Tag not found\\00\"\n@$75 = private constant [10 x i8] c\"Bad extra\\00\"\n@$74 = private constant [10 x i8] c\"Bad super\\00\"\n@$73 = private constant [12 x i8] c\"Bad message\\00\"\n@$72 = private constant [12 x i8] c\" redefined\\0A\\00\"\n@$71 = private constant [3 x i8] c\"# \\00\"\n@$70 = private constant [10 x i8] c\"Bad count\\00\"\n@$69 = private constant [10 x i8] c\"Bad chain\\00\"\n@$68 = private constant [19 x i8] c\"Circular free list\\00\"\n@$67 = private constant [28 x i8] c\"Transaction fsync error: %s\\00\"\n@$66 = private constant [7 x i8] c\"Bad ID\\00\"\n@$65 = private constant [2 x i8] c\"r\\00\"\n@$64 = private constant [3 x i8] c\"a+\\00\"\n@$63 = private constant [2 x i8] c\"a\\00\"\n@$62 = private constant [23 x i8] c\"Log truncate error: %s\\00\"\n@$61 = private constant [42 x i8] c\"Last transaction not completed: Rollback\\0A\\00\"\n@$60 = private constant [35 x i8] c\"Discarding incomplete transaction\\0A\\00\"\n@$59 = private constant [12 x i8] c\"DB Oversize\\00\"\n@$58 = private constant [14 x i8] c\"Log write: %s\\00\"\n@$57 = private constant [18 x i8] c\"Journal write: %s\\00\"\n@$56 = private constant [19 x i8] c\"DB fsync error: %s\\00\"\n@$55 = private constant [12 x i8] c\"Bad Journal\\00\"\n@$54 = private constant [13 x i8] c\"DB write: %s\\00\"\n@$53 = private constant [12 x i8] c\"DB read: %s\\00\"\n@$52 = private constant [12 x i8] c\"Bad DB file\\00\"\n@$51 = private constant [3 x i8] c\"> \\00\"\n@$50 = private constant [4 x i8] c\"-> \\00\"\n@$49 = private constant [4 x i8] c\"   \\00\"\n@$48 = private constant [4 x i8] c\". (\\00\"\n@$47 = private constant [4 x i8] c\" . \\00\"\n@$46 = private constant [6 x i8] c\"priv~\\00\"\n@$45 = private constant [27 x i8] c\"Super parentheses mismatch\\00\"\n@$44 = private constant [16 x i8] c\"Bad dotted pair\\00\"\n@$43 = private constant [15 x i8] c\"sync write: %s\\00\"\n@$42 = private constant [14 x i8] c\"No current fd\\00\"\n@$41 = private constant [14 x i8] c\"Tell PIPE_BUF\\00\"\n@$40 = private constant [16 x i8] c\"child write: %s\\00\"\n@$39 = private constant [16 x i8] c\"bytes write: %s\\00\"\n@$38 = private constant [9 x i8] c\"SETFD %s\\00\"\n@$37 = private constant [17 x i8] c\"Select error: %s\\00\"\n@$36 = private constant [7 x i8] c\"Bad FD\\00\"\n@$35 = private constant [15 x i8] c\"Bad input '%s'\\00\"\n@$34 = private constant [12 x i8] c\"EOF Overrun\\00\"\n@$33 = private constant [14 x i8] c\"Size overflow\\00\"\n@$32 = private constant [15 x i8] c\"Pipe error: %s\\00\"\n@$31 = private constant [16 x i8] c\"Close error: %s\\00\"\n@$30 = private constant [15 x i8] c\"Open error: %s\\00\"\n@$29 = private constant [10 x i8] c\"Undefined\\00\"\n@$28 = private constant [2 x i8] c\".\\00\"\n@$27 = private constant [6 x i8] c\"Div/0\\00\"\n@$26 = private constant [4 x i8] c\".so\\00\"\n@$25 = private constant [5 x i8] c\"lib/\\00\"\n@$24 = private constant [21 x i8] c\"Bad symbol namespace\\00\"\n@$23 = private constant [11 x i8] c\"Can't fork\\00\"\n@$22 = private constant [14 x i8] c\"File lock: %s\\00\"\n@$21 = private constant [10 x i8] c\"Protected\\00\"\n@$20 = private constant [15 x i8] c\"Item not found\\00\"\n@$19 = private constant [18 x i8] c\"Variable expected\\00\"\n@$18 = private constant [14 x i8] c\"List expected\\00\"\n@$17 = private constant [19 x i8] c\"Cons pair expected\\00\"\n@$16 = private constant [14 x i8] c\"Atom expected\\00\"\n@$15 = private constant [25 x i8] c\"External symbol expected\\00\"\n@$14 = private constant [14 x i8] c\"Char expected\\00\"\n@$13 = private constant [16 x i8] c\"Symbol expected\\00\"\n@$12 = private constant [16 x i8] c\"Number expected\\00\"\n@$11 = private constant [22 x i8] c\"Small number expected\\00\"\n@$10 = private constant [13 x i8] c\"Bad argument\\00\"\n@$9 = private constant [15 x i8] c\"Stack overflow\\00\"\n@$8 = private constant [9 x i8] c\"No stack\\00\"\n@$7 = private constant [3 x i8] c\"? \\00\"\n@$6 = private constant [5 x i8] c\" -- \\00\"\n@$5 = private constant [4 x i8] c\"!? \\00\"\n@$4 = private constant [10 x i8] c\"No memory\\00\"\n@$3 = private constant [16 x i8] c\"%s: Can't exec\\0A\\00\"\n@$2 = private constant [13 x i8] c\"Give up: %s\\0A\\00\"\n@$1 = private constant [2 x i8] c\"\\0A\\00\"\n"
  },
  {
    "path": "src/big.l",
    "content": "# 01sep25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (pos neg divErr)\n\n(inline pos (N)\n   (any (& N -9)) )\n\n(inline neg (N)\n   (if (== N ZERO)\n      N\n      (any (x| N 8)) ) )\n\n(de NIL divErr (Exe)\n   (err Exe 0 ($ \"Div/0\") null) )\n\n### Bignum byte access ###\n(local) (symByte symChar byteNum byteSym charSym)\n\n(de i8 symByte ((i64* . P))  # [cnt name]\n   (let C (val P)  # Get cnt\n      (unless C  # New round\n         (let Nm (val 2 P)\n            (cond\n               ((== Nm ZERO) (ret (i8 0)))  # Done\n               ((cnt? Nm)  # Short\n                  (setq C (int Nm))\n                  (set 2 P ZERO) )\n               (T  # Big: Next digit\n                  (setq C (set P (val (dig Nm))))\n                  (set 2 P (val (big Nm))) ) ) ) )\n      (set P (shr C 8))\n      (i8 C) ) )\n\n(de i32 symChar ((i64* . P))  # [cnt name]\n   (let C (i32 (symByte P))\n      (cond\n         ((>= 127 C) C)  # Single byte\n         ((== C (hex \"FF\")) (i32 TOP))  # Infinite\n         (T\n            (|\n               (shl\n                  (ifn (& C (hex \"20\"))\n                     (& C (hex \"1F\"))\n                     (|\n                        (shl\n                           (ifn (& C (hex \"10\"))\n                              (& C (hex \"0F\"))\n                              (|\n                                 (shl (& C (hex \"7\")) 6)\n                                 (& (i32 (symByte P)) (hex \"3F\")) ) )\n                           6 )\n                        (& (i32 (symByte P)) (hex \"3F\")) ) )\n                  6 )\n               (& (i32 (symByte P)) (hex \"3F\")) ) ) ) ) )\n\n(de void byteNum ((i8 . B) (i64* . P))  # [cnt last name link]\n   (let (Cnt (val P)  Nm (val 3 P))\n      (if (cnt? Nm)\n         # xxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxS010\n         #    59      51      43      35      27      19      11       3\n         (cond\n            ((== Cnt 67)  # Short full\n               (set 3 P\n                  (set 2 P\n                     (consNum (shr Nm 3) (cnt (i64 B))) ) )\n               (set P 12) )  # Next digit in bignum\n            ((and (== Cnt 59) (>= B 32))  # Fit into 5 bits\n               (set 3 P\n                  (set 2 P\n                     (boxNum\n                        (| (shr Nm 3) (shl (i64 B) 56)) ) ) )\n               (set P 4) )  # Start next digit in bignum\n            (T\n               (set\n                  3 P (| Nm (shl (i64 B) Cnt))\n                  P (+ Cnt 8) ) ) )\n         (let (Q (val 2 P)  N (val (big Q)))\n            (cond\n               ((== Cnt 68)  # Last short full\n                  (set 2 P\n                     (set (big Q)\n                        (consNum (int N) (cnt (i64 B))) ) )\n                  (set P 12) )  # Next digit in bignum\n               ((and (== Cnt 60) (>= B 16))  # Fit into 4 bits\n                  (set 2 P\n                     (set (big Q)\n                        (boxNum\n                           (| (int N) (shl (i64 B) 56)) ) ) )\n                  (set P 4) )  # Start next digit in bignum\n               (T\n                  (set\n                     (big Q) (| N (shl (i64 B) Cnt))\n                     P (+ Cnt 8) ) ) ) ) ) ) )\n\n(de void byteSym ((i8 . B) (i64* . P))  # [cnt last name link]\n   (let (Cnt (val P)  Nm (val 3 P))\n      (if (cnt? Nm)\n         # 0000.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx.xxxxxxx0010\n         #   60      52      44      36      28      20      12       4\n         (if (> 60 Cnt)  # Digit not full\n            (set\n               3 P (| Nm (shl (i64 B) Cnt))\n               P (+ Cnt 8) )\n            (set 3 P\n               (set 2 P\n                  (boxNum  # Make big\n                     (| (int Nm) (shl (i64 B) 56)) ) ) )\n            (set P 4) )  # Start new digit\n         (let (Q (val 2 P)  N (val (big Q)))\n            (if (> 60 Cnt)  # Digit not full\n               (set\n                  (big Q) (| N (shl (i64 B) Cnt))\n                  P (+ Cnt 8) )\n               (set 2 P\n                  (set (big Q)\n                     (boxNum  # Make big\n                        (| (int N) (shl (i64 B) 56)) ) ) )\n               (set P 4) ) ) ) ) )  # Start new digit\n\n(de void charSym ((i32 . C) (i64* . P))  # [cnt last name link]\n   (cond\n      ((>= 127 C) (byteSym (i8 C) P))  # Single byte\n      ((== TOP C) (byteSym (hex \"FF\") P))  # Infinite\n      (T\n         (cond\n            ((> (hex \"800\") C)  # Double-byte\n               (byteSym (i8 (| (hex \"C0\") (& (shr C 6) (hex \"1F\")))) P) )  # 10xxxxx 10xxxxxx\n            ((> (hex \"10000\") C)  # Three bytes\n               (byteSym (i8 (| (hex \"E0\") (& (shr C 12) (hex \"0F\")))) P)  # 1110xxxx 10xxxxxx 10xxxxxx\n               (byteSym (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\")))) P) )\n            (T\n               (byteSym (i8 (| (hex \"F0\") (& (shr C 18) (hex \"07\")))) P)  # 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n               (byteSym (i8 (| (hex \"80\") (& (shr C 12) (hex \"3F\")))) P)\n               (byteSym (i8 (| (hex \"80\") (& (shr C 6) (hex \"3F\")))) P) ) )\n         (byteSym (i8 (| (hex \"80\") (& C (hex \"3F\")))) P) ) ) )\n\n### Destructive primitives ###\n(local) (zapZero twiceBig twice half tenfold)\n\n# Remove leading zeroes\n(de zapZero (N)\n   (let (P (push N)  X P  Y P  Z T)\n      (until (cnt? (setq Z (val (big N))))  # Last cell\n         (when (val (dig N))  # Null digit?\n            (setq X Y) )  # New null-tail\n         (setq\n            Y (big N)  # New short-tail\n            N (val Y) ) )  # Next cell\n      (when (== Z ZERO)\n         (cond\n            ((setq N (val (dig N)))  # Final digit\n               (unless (& N (hex \"F000000000000000\"))\n                  (set Y (cnt N)) ) )  # Store in short-tail\n            ((&\n                  (setq N (val (dig (val X))))  # Digit in null-tail\n                  (hex \"F000000000000000\") )\n               (set (big (val X)) ZERO) )  # Trim null-tail\n            (T (set X (cnt N))) ) )  # Store in null-tail\n      (val P) ) )\n\n# Multiply (unsigned) number by 2\n(de twiceBig (N)\n   (let (X N  A (val (dig X))  Y (val (big X)))\n      (set (dig X) (shl A 1))\n      (while (big? Y)\n         (let B (val (dig Y))\n            (set (dig (setq X Y))\n               (| (shl B 1) (shl 0 A 1)) )\n            (setq A B  Y (val (big Y))) ) )\n      (set (big X)\n         (box64\n            (| (shl (int Y) 1) (shl 0 A 1)) ) ) )\n   N )\n\n(de twice (N)\n   (if (cnt? N)\n      (let X (add N N)  # Shift left\n         (if @@  # Overflow\n            (boxNum (shr N 3))  # Make big\n            (x| X 6) ) )  # Fix tag bit\n      (twiceBig N) ) )\n\n# Divide (unsigned) number by 2\n(de half (N)\n   (if (cnt? N)\n      (| (& (shr N 1) -10) 2)  # Clear lowest bit and tag\n      (let (X N  A (shr (val (dig X)) 1)  Y (val (big X)))\n         (if (big? Y)\n            (let Z (val (big Y))\n               (loop\n                  (let B (val (dig Y))\n                     (set (dig X) (| (shr B 0 1) A))\n                     (setq A (shr B 1)) )\n                  (? (cnt? Z))\n                  (setq X Y  Y Z  Z (val (big Z))) )\n               (setq\n                  Z (int Z)\n                  A (| (shr Z 0 1) A) )\n               (ifn\n                  (or\n                     (setq Z (shr Z 1))\n                     (& A (hex \"F000000000000000\")) )\n                  (set (big X) (cnt A))\n                  (set (dig Y) A)\n                  (set (big Y) (cnt Z)) ) )\n            (setq\n               Y (int Y)\n               A (| (shr Y 0 1) A) )\n            (unless\n               (or\n                  (setq Y (shr Y 1))\n                  (& A (hex \"F000000000000000\")) )\n               (ret (cnt A)) )\n            (set (dig X) A)\n            (set (big X) (cnt Y)) )\n         N ) ) )\n\n# Multiply (unsigned) number by 10\n(de tenfold (N)\n   (if (cnt? N)\n      (box64 (* 10 (int N)))\n      (let (X N  Lo (mul 10 (val (dig X)))  Hi @@@)\n         (loop\n            (set (dig X) Lo)\n            (? (cnt? (val (big X)))\n               (set (big X)\n                  (box64 (+ Hi (* 10 (int @)))) ) )\n            (setq X @)\n            (setq\n               Lo (add (mul 10 (val (dig X))) Hi)\n               Hi (+ @@@ @@) ) )\n         N ) ) )\n\n### Non-destructive unsigned primitives ###\n(local) (shlu shru andu oru xoru addu sub1 subu mulAddHiLo mulu div1 divu remu)\n\n# Multiply (unsigned) number by 2\n(de shlu (N)\n   (if (cnt? N)\n      (let X (add N N)  # Shift left\n         (if @@  # Overflow\n            (boxNum (shr N 3))  # Make big\n            (x| X 6) ) )  # Fix tag bit\n      (let\n         (A (val (dig N))\n            X (boxNum (shl A 1))\n            Y (val (big N))\n            R (save X) )\n         (while (big? Y)\n            (let B (val (dig Y))\n               (setq X\n                  (set (big X)\n                     (boxNum (| (shl B 1) (shl 0 A 1))) ) )\n               (setq A B  Y (val (big Y))) ) )\n         (set (big X)\n            (box64\n               (| (shl (int Y) 1) (shl 0 A 1)) ) )\n         R ) ) )\n\n# Divide (unsigned) number by 2\n(de shru (N)\n   (if (cnt? N)\n      (| (& (shr N 1) -10) 2)  # Clear lowest bit and tag\n      (let A (shr (val (dig N)) 1)\n         (if (big? (setq N (val (big N))))\n            (let\n               (B (val (dig N))\n                  P (boxNum (| (shr B 0 1) A))\n                  R (save P) )\n               (loop\n                  (setq A (shr B 1))\n                  (? (cnt? (setq N (val (big N)))))\n                  (setq\n                     B (val (dig N))\n                     P\n                     (set (big P)\n                        (boxNum (| (shr B 0 1) A)) ) ) )\n               (setq\n                  N (int N)\n                  A (| (shr N 0 1) A) )\n               (set (big P)\n                  (ifn\n                     (or\n                        (setq N (shr N 1))\n                        (& A (hex \"F000000000000000\")) )\n                     (cnt A)\n                     (prog1\n                        (boxNum A)\n                        (set (big @) (cnt N)) ) ) )\n               R )\n            (setq\n               N (int N)\n               A (| (shr N 0 1) A) )\n            (ifn\n               (or\n                  (setq N (shr N 1))\n                  (& A (hex \"F000000000000000\")) )\n               (cnt A)\n               (prog1\n                  (boxNum A)\n                  (set (big @) (cnt N)) ) ) ) ) ) )\n\n# Bitwise AND of two (unsigned) numbers\n(de andu (A B)\n   (cond\n      ((cnt? A)\n         (& A\n            (if (cnt? B) B (cnt (val (dig B)))) ) )\n      ((cnt? B)  # A is big\n         (& B (cnt (val (dig A)))) )\n      (T  # Both are big\n         (let\n            (P\n               (boxNum\n                  (& (val (dig A)) (val (dig B))) )\n               R (save P) )\n            (loop\n               (setq A (val (big A))  B (val (big B)))\n               (? (cnt? A)\n                  (set (big P)\n                     (& A\n                        (if (cnt? B) B (cnt (val (dig B)))) ) ) )\n               (? (cnt? B)\n                  (set (big P)\n                     (& B (cnt (val (dig A)))) ) )\n               (setq P\n                  (set (big P)\n                     (boxNum\n                        (& (val (dig A)) (val (dig B))) ) ) ) )\n            (zapZero R) ) ) ) )\n\n# Bitwise OR of two (unsigned) numbers\n(de oru (A B)\n   (cond\n      ((cnt? A)\n         (if (cnt? B)\n            (| A B)\n            (consNum\n               (| (int A) (val (dig B)))\n               (val (big B)) ) ) )\n      ((cnt? B)  # A is big\n         (consNum\n            (| (int B) (val (dig A)))\n            (val (big A)) ) )\n      (T  # Both are big\n         (let\n            (P\n               (boxNum\n                  (| (val (dig A)) (val (dig B))) )\n               R (save P) )\n            (loop\n               (setq A (val (big A))  B (val (big B)))\n               (? (cnt? A)\n                  (set (big P)\n                     (if (cnt? B)\n                        (| A B)\n                        (consNum\n                           (| (int A) (val (dig B)))\n                           (val (big B)) ) ) ) )\n               (? (cnt? B)\n                  (set (big P)\n                     (consNum\n                        (| (int B) (val (dig A)))\n                        (val (big A)) ) ) )\n               (setq P\n                  (set (big P)\n                     (boxNum\n                        (| (val (dig A)) (val (dig B))) ) ) ) )\n            R ) ) ) )\n\n# Bitwise XOR of two (unsigned) numbers\n(de xoru (A B)\n   (cond\n      ((cnt? A)\n         (if (cnt? B)\n            (| (x| A B) 2)\n            (zapZero\n               (consNum\n                  (x| (int A) (val (dig B)))\n                  (val (big B)) ) ) ) )\n      ((cnt? B)  # A is big\n         (zapZero\n            (consNum\n               (x| (int B) (val (dig A)))\n               (val (big A)) ) ) )\n      (T  # Both are big\n         (let\n            (P\n               (boxNum\n                  (x| (val (dig A)) (val (dig B))) )\n               R (save P) )\n            (loop\n               (setq A (val (big A))  B (val (big B)))\n               (? (cnt? A)\n                  (set (big P)\n                     (if (cnt? B)\n                        (| (x| A B) 2)\n                        (consNum\n                           (x| (int A) (val (dig B)))\n                           (val (big B)) ) ) ) )\n               (? (cnt? B)\n                  (set (big P)\n                     (consNum\n                        (x| (int B) (val (dig A)))\n                        (val (big A)) ) ) )\n               (setq P\n                  (set (big P)\n                     (boxNum\n                        (x| (val (dig A)) (val (dig B))) ) ) ) )\n            (zapZero R) ) ) ) )\n\n# Add two (unsigned) numbers\n(de addu (A B)\n   (cond\n      ((cnt? A)\n         (if (cnt? B)\n            (box64 (+ (int A) (int B)))\n            (xchg 'A 'B)\n            (goto 1) ) )\n      ((cnt? B)  # A is big\n         (: 1\n            (let N (val (big A))\n               (setq B (add (int B) (val (dig A))))\n               (ifn @@\n                  (consNum B N)  # No carry\n                  (let R (save (setq B (consNum B N)))  # Else build new head\n                     (loop\n                        (? (cnt? N)\n                           (setq N (add N (hex \"10\")))  # Add carry\n                           (set (big B)\n                              (ifn @@  # No further carry\n                                 N  # Append it\n                                 (boxNum (| (int N) (hex \"1000000000000000\"))) ) ) )  # Set top bit\n                        (let D (val (dig N))  # Next digit\n                           (setq\n                              N (val (big N))\n                              D (add D 1) )  # Add carry\n                           (? (not @@)  # No carry\n                              (set (big B) (consNum D N)) )\n                           (setq B (set (big B) (consNum D N))) ) )\n                     R ) ) ) ) )\n      (T  # Both are big\n         (let\n            (N (add (val (dig A)) (val (dig B)))\n               C @@\n               P (boxNum N)\n               R (save P) )\n            (loop\n               (setq A (val (big A))  B (val (big B)))\n               (? (cnt? A)\n                  (if (cnt? B)\n                     (set (big P)\n                        (box64 (add (int A) (int B) C)) )\n                     (xchg 'A 'B)\n                     (goto 2) ) )\n               (? (cnt? B)\n                  (: 2\n                     (setq\n                        N (add (int B) (val (dig A)) C)\n                        C @@ )\n                     (loop\n                        (setq P\n                           (set (big P)\n                              (consNum N (setq A (val (big A)))) ) )\n                        (? (not C))\n                        (? (cnt? A)\n                           (set (big P) (box64 (+ (int A) C))) )\n                        (setq\n                           N (add (val (dig A)) 1)\n                           C @@ ) ) ) )\n               (setq\n                  N (add (val (dig A)) (val (dig B)) C)\n                  C @@\n                  P (set (big P) (boxNum N)) ) )\n            R ) ) ) )\n\n# Subtract short from big number\n(de sub1 (B N)\n   (setq\n      N (sub (val (dig B)) (int N))\n      B (val (big B)) )\n   (nond\n      (@@  # No borrow\n         (if (== B ZERO)\n            (box64 N)\n            (consNum N B) ) )\n      ((big? B)  # Single cell\n         (setq B (sub B (hex \"10\")))  # Subtract borrow\n         (if @@  # Again borrow\n            (sign (cnt (- N)))  # Lowest digit\n            (zapZero (consNum N B)) ) )\n      (NIL\n         (let (P (boxNum N B)  R (save P))\n            (loop\n               (setq\n                  N (sub (val (dig B)) 1)  # Subtract borrow\n                  B (val (big B)) )\n               (? (not @@)\n                  (set (big P) (consNum N B)) )\n               (setq P (set (big P) (consNum N B)))\n               (? (cnt? B)\n                  (set (big P) (sub B (hex \"10\"))) ) )  # Subtract borrow\n            (zapZero R) ) ) ) )\n\n# Subtract two (unsigned) numbers\n(de subu (A B)\n   (cond\n      ((cnt? A)\n         (if (cnt? B)\n            (let N (sub A (& B -3))  # Clear tag\n               (if @@\n                  (+ (x| N -16) (hex \"18\"))  # 2-complement\n                  N ) )\n            (neg (sub1 B A)) ) )\n      ((cnt? B)  # A is big\n         (sub1 A B) )\n      (T  # Both are big\n         (let\n            (N (sub (val (dig A)) (val (dig B)))\n               C @@\n               P (boxNum N)\n               R (save P) )\n            (loop\n               (setq A (val (big A))  B (val (big B)))\n               (? (cnt? B)\n                  (setq B (int B))\n                  (until (cnt? A)\n                     (setq\n                        N (sub (val (dig A)) B C)\n                        C @@\n                        A (val (big A))\n                        P (set (big P) (consNum N A)) )\n                     (unless C\n                        (ret (zapZero R)) )\n                     (setq B 0) )\n                  (setq A (int A)) )\n               (? (cnt? A)\n                  (setq A (int A))\n                  (loop\n                     (setq\n                        N (sub A (val (dig B)) C)\n                        C @@\n                        P (set (big P) (boxNum N)) )\n                     (setq A 0)\n                     (? (cnt? (setq B (val (big B))))) )\n                  (setq B (int B)) )\n               (setq\n                  N (sub (val (dig A)) (val (dig B)) C)\n                  C @@\n                  P (set (big P) (boxNum N)) ) )\n            (set (big P) (cnt (sub A B C)))  # Subtract final shorts with borrow\n            (ifn @@\n               (zapZero R)\n               # 2-complement\n               (let Q R\n                  (loop  # Invert\n                     (set (dig Q) (x| (val (dig Q)) -1))\n                     (? (cnt? (setq N (val (big Q)))))\n                     (setq Q N) )\n                  (set (big Q) (x| N -16)) )\n               (let Q R\n                  (loop  # Increment\n                     (set (dig Q) (add (val (dig Q)) 1))\n                     (unless @@\n                        (goto 9) )\n                     (? (cnt? (setq N (val (big Q)))))\n                     (setq Q N) )\n                  (set (big Q) (+ N (hex \"10\"))) )\n               (: 9\n                  (sign (zapZero R)) ) ) ) ) ) )\n\n# Multiply two (unsigned) numbers\n(inline mulAddHiLo (X Y P)\n   (let H Hi\n      (setq\n         Lo (add (mul X Y) (val (dig P)))\n         Hi (+ @@@ @@)\n         Lo (add Lo H)\n         Hi (+ Hi @@) ) ) )\n\n(de mulu (A B)\n   (cond\n      ((== A ZERO) A)\n      ((cnt? A)\n         (setq A (int A))\n         (if (cnt? B)\n            (let N (mul A (int B))\n               (if (or @@@ (& N (hex \"F000000000000000\")))  # Fit in short number\n                  (consNum N (cnt @@@))\n                  (cnt N) ) )\n            (: 1\n               (let\n                  (Lo (mul A (val (dig B)))\n                     Hi @@@\n                     P (boxNum Lo)\n                     R (save P) )\n                  (while (big? (setq B (val (big B))))\n                     (setq\n                        Lo (add (mul A (val (dig B))) Hi)\n                        Hi (+ @@@ @@)\n                        P (set (big P) (boxNum Lo)) ) )\n                  (setq\n                     Lo (add (mul A (int B)) Hi)\n                     Hi (+ @@@ @@) )\n                  (set (big P)\n                     (if (or Hi (& Lo (hex \"F000000000000000\")))  # Fit in short number\n                        (consNum Lo (cnt Hi))\n                        (cnt Lo) ) )\n                  R ) ) ) )\n      ((== B ZERO) B)\n      ((cnt? B)  # A is big\n         (setq B (int B))\n         (xchg 'A 'B)\n         (goto 1) )\n      (T  # Both are big\n         (let (P (boxNum 0)  R (save P))\n            (loop\n               (let\n                  (X A\n                     Q P\n                     Lo\n                     (add\n                        (mul (val (dig X)) (val (dig B)))\n                        (val (dig Q)) )\n                     Hi (+ @@@ @@) )\n                  (loop\n                     (set (dig Q) Lo)\n                     (setq Q\n                        (if (cnt? (val (big Q)))\n                           (set (big Q) (boxNum 0))\n                           @ ) )\n                     (? (cnt? (setq X (val (big X)))))\n                     (mulAddHiLo (val (dig X)) (val (dig B)) Q) )\n                  (mulAddHiLo (int X) (val (dig B)) Q)\n                  (set (dig Q) Lo)\n                  (when Hi\n                     (if (cnt? (val (big Q)))\n                        (set (big Q) (boxNum Hi))\n                        (set (big @) Hi) ) ) )\n               (setq P (val (big P)))\n               (? (cnt? (setq B (val (big B))))) )\n            (setq B (int B))\n            (let\n               (Lo\n                  (add\n                     (mul (val (dig A)) B)\n                     (val (dig P)) )\n                  Hi (+ @@@ @@) )\n               (loop\n                  (set (dig P) Lo)\n                  (setq P\n                     (if (cnt? (val (big P)))\n                        (set (big P) (boxNum 0))\n                        @ ) )\n                  (? (cnt? (setq A (val (big A)))))\n                  (mulAddHiLo (val (dig A)) B P) )\n               (mulAddHiLo (int A) B P)\n               (set (dig P) Lo)\n               (when Hi\n                  (if (cnt? (val (big P)))\n                     (set (big P) (boxNum Hi))\n                     (set (big @) Hi) ) ) )\n            (zapZero R) ) ) ) )\n\n# Divide big number (Knuth Vol.2, p.257)\n(de div1 (A B (i1 . Rem))\n   (let\n      (R (save ZERO)  # Quotient\n         P (boxNum (val (dig A)))\n         U (link (push P NIL))  # Dividend 'u'\n         V (link (push B NIL))  # Divisor 'v'\n         V1 T\n         V2 0  # Last cell\n         M 0  # 'm'\n         N 1  # 'n'\n         D 0\n         Q T )\n      # Copy dividend\n      (while (big? (setq A (val (big A))))\n         (setq P\n            (set (big P) (boxNum (val (dig A)))) )\n         (inc 'M) )  # Calculate 'm'\n      (unless (== A ZERO)\n         (setq P (set (big P) (boxNum (int A))))\n         (inc 'M) )\n      # Copy divisor\n      (if (cnt? B)\n         (setq Q (set V (boxNum (int B))))\n         (setq Q\n            (set V (boxNum (val (dig B)))) )\n         (while (big? (setq B (val (big B))))\n            (setq\n               V2 Q  # Keep last cell\n               Q (set (big Q) (boxNum (val (dig B)))) )\n            (dec 'M)  # Decrement 'm'\n            (inc 'N) )  # Calculate 'n'\n         (unless (== B ZERO)\n            (setq\n               V2 Q  # Keep last cell\n               Q (set (big Q) (boxNum (int B))))\n            (dec 'M)\n            (inc 'N) )\n         (when (lt0 M)\n            (ret\n               (if Rem\n                  (zapZero (val U))\n                  ZERO ) ) ) )\n      (set (big P) (boxNum 0))\n      (while (ge0 (val (dig Q)))  # Shift to max left position\n         (twiceBig (val U))\n         (twiceBig (val V))\n         (inc 'D) )\n      (setq V1 (val (dig Q)))\n      (when V2\n         (setq V2 (val (dig V2))) )\n      (loop\n         (let (X (val U)  U1 0  U2 0  U3 T)\n            (let I M  # Index X -> 'u'\n               (while (ge0 (dec 'I))\n                  (setq X (val (big X))) ) )\n            (let (I N  Y X)\n               (loop\n                  (setq\n                     U3 U2\n                     U2 U1\n                     U1 (val (dig Y))\n                     Y (val (big Y)) )\n                  (? (lt0 (dec 'I))) ) )\n            (let (Hi U1  Lo U2)  # 'r'\n               (setq Q\n                  (if (== U1 V1)  # 'u1' = 'v1'\n                     -1  # 'q' = MAX\n                     (div Hi Lo V1) ) )  # 'q' = 'r' / 'v1'\n               (setq\n                  Lo (sub Lo (mul Q V1))  # 'r' - 'q' * 'v1'\n                  Hi (sub Hi @@@ @@) )\n               (until Hi  # 'r' <= MAX  and\n                  (let L (mul Q V2)  # 'q' * 'v2 '> [lo(r) u3]\n                     (? (> Lo @@@))\n                     (? (and (== Lo @@@) (>= U3 L))) )\n                  (dec 'Q)\n                  (setq   # Increment 'r' by 'v1'\n                     Lo (add Lo V1)\n                     Hi (+ Hi @@) ) )\n               (let (Z X  Y (val V))\n                  (set (dig Z)\n                     (sub\n                        (val (dig Z))\n                        (mul Q (val (dig Y))) ) )\n                  (setq Hi (+ @@@ @@))  # Borrow\n                  (while (big? (setq Y (val (big Y))))  # More in 'v'\n                     (setq Z (val (big Z)))\n                     (set (dig Z) (sub (val (dig Z)) Hi))  # Subtract borrow\n                     (setq Hi (- Hi Hi @@))  # New borrow\n                     (set (dig Z)\n                        (sub\n                           (val (dig Z))\n                           (mul Q (val (dig Y))) ) )\n                     (setq Hi (- (sub Hi @@@ @@))) )\n                  (when Hi  # Borrow\n                     (setq Z (val (big Z)))\n                     (set (dig Z) (sub (val (dig Z)) Hi))  # Subtract borrow\n                     (when @@\n                        (dec 'Q)\n                        (when (or Rem M)\n                           (setq Y (val V))\n                           (set (dig X)  # 'x' += 'v'\n                              (add (val (dig X)) (val (dig Y))) )\n                           (let C @@\n                              (loop\n                                 (setq X (val (big X)))\n                                 (? (cnt? (setq Y (val (big Y)))))\n                                 (set (dig X)\n                                    (add (val (dig X)) (val (dig Y)) C) )\n                                 (setq C @@) )\n                              (set (dig X) (+ (val (dig X)) C)) ) ) ) ) ) ) )\n         (setq R (safe (consNum Q R)))\n         (? (lt0 (dec 'M))) )\n      (ifn Rem\n         (zapZero R)\n         (setq A (zapZero (val U)))\n         (while D\n            (setq A (half A))  # Shift right (destructive)\n            (dec 'D) )\n         A ) ) )\n\n# Divide two (unsigned) numbers\n(de divu (A B)\n   (cond\n      ((big? A) (div1 A B NO))\n      ((big? B) ZERO)\n      (T (cnt (/ (int A) (int B)))) ) )\n\n# Remainder of two (unsigned) numbers\n(de remu (A B)\n   (cond\n      ((big? A) (div1 A B YES))\n      ((big? B) A)\n      (T (cnt (% (int A) (int B)))) ) )\n\n### Non-destructive signed primitives ###\n(local) (incs decs adds subs)\n\n# Increment a (signed) number\n(de incs (A)\n   (if (sign? A)\n      (neg (subu (pos A) ONE))\n      (addu A ONE) ) )\n\n# Decrement a (signed) number\n(de decs (A)\n   (if (sign? A)\n      (neg (addu (pos A) ONE))\n      (subu A ONE) ) )\n\n# Add two (signed) numbers\n(de adds (A B)\n   (ifn (sign? A)\n      (ifn (sign? B)\n         (addu A B)\n         (subu A (pos B)) )\n      (neg\n         (ifn (sign? B)\n            (subu (pos A) B)\n            (addu (pos A) (pos B)) ) ) ) )\n\n# Subtract to (signed) numbers\n(de subs (A B)\n   (ifn (sign? A)\n      (ifn (sign? B)\n         (subu A B)\n         (addu A (pos B)) )\n      (neg\n         (ifn (sign? B)\n            (addu (pos A) B)\n            (subu (pos A) (pos B)) ) ) ) )\n\n### Comparisons ###\n(local) (cmpu cmpNum)\n\n(de i64 cmpu (A B)\n   (if (cnt? A)\n      (cond\n         ((or (big? B) (> B A)) -1)\n         ((== B A) 0)\n         (T +1) )\n      # A is big\n      (if (cnt? B)\n         +1\n         # Both are big\n         (let (X 0  Y 0)\n            (prog1\n               (loop\n                  (let (C (val (big A))  D (val (big B)))\n                     (? (== C D)  # Tails equal\n                        (loop\n                           (setq\n                              C (val (dig A))\n                              D (val (dig B)) )\n                           (? (> D C) -1)\n                           (? (> C D) +1)\n                           (? (=0 X) 0)\n                           (let Z (val (big X))\n                              (set (big X) A)  # Restore A\n                              (setq A X  X Z) )\n                           (let Z (val (big Y))\n                              (set (big Y) B)  # Restore B\n                              (setq B Y  Y Z) ) ) )\n                     (? (cnt? C)  # End of A\n                        (cond\n                           ((or (big? D) (> D C)) -1)\n                           ((== D C) 0)\n                           (T +1) ) )\n                     (? (cnt? D) +1)  # End of B\n                     (set (big A) X)  # Reverse A\n                     (setq X A  A C)\n                     (set (big B) Y)  # Reverse B\n                     (setq Y B  B D) ) )\n               (while X  # Revert\n                  (let Z (val (big X))\n                     (set (big X) A)  # Restore A\n                     (setq A X  X Z) )\n                  (let Z (val (big Y))\n                     (set (big Y) B)  # Restore B\n                     (setq B Y  Y Z) ) ) ) ) ) ) )\n\n(de i64 cmpNum (A B)\n   (ifn (sign? A)\n      (ifn (sign? B)\n         (cmpu A B)\n         +1 )\n      (ifn (sign? B)\n         -1\n         (cmpu (pos B) (pos A)) ) ) )\n\n### Formatting ###\n(local) (symToNum fmtScl outScl fmtNum)\n\n# Make number from symbol\n(de symToNum (Name (i64 . Scl) (i8 . Sep) (i8 . Ign))\n   (let\n      (P (push 0 Name)  # [cnt name]\n         Num (push ZERO NIL)  # Result\n         Sign NO\n         Frac NO\n         B T )\n      (until (> (setq B (symByte P)) (char \" \"))  # Skip white space\n         (unless B  # None\n            (ret 0) ) )\n      (cond\n         ((== B (char \"+\"))\n            (goto 1) )\n         ((== B (char \"-\"))\n            (setq Sign YES)\n            (: 1\n               (unless (setq B (symByte P))\n                  (ret 0) ) ) ) )\n      (when (> (dec 'B (char \"0\")) 9)\n         (ret 0) )\n      (set (link Num T) (cnt (i64 B)))\n      (while (setq B (symByte P))\n         (? (and Frac (=0 Scl))\n            (when (> (dec 'B (char \"0\")) 9)\n               (ret 0) )\n            (when (>= B 5)  # Round\n               (set Num (addu (val Num) ONE)) )\n            (while (setq B (symByte P))\n               (when (> (dec 'B (char \"0\")) 9)\n                  (ret 0) ) ) )\n         (cond\n            ((== B Sep)\n               (when Frac\n                  (ret 0) )\n               (setq Frac YES) )\n            ((<> B Ign)\n               (when (> (dec 'B (char \"0\")) 9)\n                  (ret 0) )\n               (set Num\n                  (addu\n                     (tenfold (val Num))\n                     (cnt (i64 B)) ) )\n               (when Frac\n                  (dec 'Scl) ) ) ) )\n      (when Frac\n         (while (ge0 (dec 'Scl))\n            (set Num (tenfold (val Num))) ) )\n      (setq Num (val Num))\n      (if Sign (neg Num) Num) ) )\n\n(de i64 fmtScl ((i64 . N) (i64 . Scl) (i8 . Sep) (i8 . Ign) (i64* . P))\n   (when (> N 9)\n      (setq Scl (fmtScl (/ N 10) Scl Sep Ign P))\n      (cond\n         ((=0 Scl) (byteSym Sep P))\n         ((and Ign (gt0 Scl) (=0 (% Scl 3)))\n            (byteSym Ign P) ) )\n      (dec 'Scl)\n      (setq N (% N 10)) )\n   (byteSym (+ (i8 N) (char \"0\")) P)\n   Scl )\n\n(de i64 outScl ((i64 . N) (i64 . Scl) (i8 . Sep))\n   (when (> N 9)\n      (setq Scl (outScl (/ N 10) Scl Sep))\n      (when (=0 Scl)\n         (call $Put Sep) )\n      (dec 'Scl)\n      (setq N (% N 10)) )\n   (call $Put (+ (i8 N) (char \"0\")))\n   Scl )\n\n# Format number to output, length, or symbol\n(de fmtNum (Num (i64 . Scl) (i8 . Sep) (i8 . Ign) (i64* . P))\n   (let (Sign (sign? Num)  Len (+ 19 17))  # Length of 'cnt' (60 bit) plus round up div/18\n      # Calculate buffer size\n      (let N (setq Num (& Num -9))  # Clear sign bit\n         (until (cnt? N)  # Calculate length\n            (inc 'Len 20)\n            (setq N (val (big N))) ) )  # Add length of 'digit'\n      (setq Len (/ Len 18))  # Divide by 18 (rounded), word count\n      (let (Acc (b64 Len)  TopA Acc)\n         # Build BCD\n         (let (Inc (b64 Len)  TopI Inc)\n            (set Acc 0  Inc 1)  # Init accumulator to 0 and incrementor to 1\n            (loop\n               (let (Dig Num  Mask 16)\n                  (when (big? Num)  # and first digit and mask\n                     (setq Dig (val (dig Num))  Mask 1) )\n                  (loop\n                     (when (& Dig Mask)  # Bit is set\n                        # Add incrementor to accumulator\n                        (let (A Acc  I Inc  C 0)  # Carry for BCD addition\n                           (loop\n                              (let N (+ (val A) (val I) C)  # Add BCDs and Carry\n                                 (setq C\n                                    (if (> 1000000000000000000 N)\n                                       0\n                                       (dec 'N 1000000000000000000)  # BCD overflow\n                                       1 ) )\n                                 (set A N) )\n                              (? (> (inc 'I) TopI))\n                              (when (> (inc 'A) TopA)\n                                 (inc 'TopA)  # Extend accumulator\n                                 (set A 0) ) )  # with 0\n                           (when C  # BCD-Carry\n                              (set (inc 'TopA) 1) ) ) )  # Extend accumulator with 1\n                     # Shift incrementor left\n                     (let (I Inc  C 0)\n                        (loop\n                           (let N (val I)\n                              (setq C\n                                 (if (> 1000000000000000000 (setq N (+ N N C)))  # Double digit\n                                    0\n                                    (dec 'N 1000000000000000000)  # BCD overflow\n                                    1 ) )\n                              (set I N) )\n                           (? (> (inc 'I) TopI)) )\n                        (when C  # BCD-Carry\n                           (inc 'TopI)  # Extend incrementor\n                           (set I 1) ) )  # with 1\n                     (? (=0 (setq Mask (shl Mask 1)))) ) )\n               (? (cnt? Num))\n               (setq Num (val (big Num))) ) )\n         (let (N (* (shr (- TopA Acc) 3) 18)  D (val TopA))  # Calculate length~1\n            (cond\n               (P  # Build symbol\n                  (when Sign\n                     (byteSym (char \"-\") P) )\n                  (while (setq D (/ D 10))\n                     (inc 'N) )\n                  (when (lt0 (setq Scl (- N Scl)))\n                     (byteSym (char \"0\") P)\n                     (byteSym Sep P)\n                     (while (> -1 Scl)\n                        (inc 'Scl)\n                        (byteSym (char \"0\") P) ) )\n                  (setq Scl (fmtScl (val TopA) Scl Sep Ign P))  # Pack highest word\n                  (while (>= (dec 'TopA) Acc)\n                     (let (N (val TopA)  D 100000000000000000)\n                        (loop\n                           (cond\n                              ((=0 Scl) (byteSym Sep P))\n                              ((and Ign (gt0 Scl) (=0 (% Scl 3)))\n                                 (byteSym Ign P) ) )\n                           (dec 'Scl)\n                           (byteSym (+ (i8 (/ N D)) (char \"0\")) P)\n                           (setq N (% N D))\n                           (? (== 1 (setq D (/ D 10)))) )\n                        (byteSym (+ (i8 N) (char \"0\")) P) ) )\n                  0 )\n               ((== Scl -1)  # Calculate length\n                  (loop\n                     (inc 'N)\n                     (? (=0 (setq D (/ D 10)))) )\n                  (when Sign\n                     (inc 'N) )\n                  (cnt N) )\n               (T  # Direct print\n                  (when Sign\n                     (call $Put (char \"-\")) )  # Output sign\n                  (if (=0 Sep)\n                     (outWord (val TopA))  # Output highest word\n                     (while (setq D (/ D 10))\n                        (inc 'N) )\n                     (when (lt0 (setq Scl (- N Scl)))\n                        (call $Put (char \"0\"))\n                        (call $Put Sep)\n                        (while (> -1 Scl)\n                           (inc 'Scl)\n                           (call $Put (char \"0\")) ) )\n                     (setq Scl (outScl (val TopA) Scl Sep)) )\n                  (while (>= (dec 'TopA) Acc)\n                     (let (N (val TopA)  D 100000000000000000)\n                        (loop\n                           (when (and Sep (=0 Scl))\n                              (call $Put Sep) )\n                           (dec 'Scl)\n                           (call $Put (+ (i8 (/ N D)) (char \"0\")))  # Output next digit\n                           (setq N (% N D))\n                           (? (== 1 (setq D (/ D 10)))) )\n                        (call $Put (+ (i8 N) (char \"0\"))) ) )  # Output last digit\n                  0 ) ) ) ) ) )\n\n# (format 'num ['cnt ['sym1 ['sym2]]]) -> sym\n# (format 'sym|lst ['cnt ['sym1 ['sym2]]]) -> num\n(de _Format (Exe)\n   (let\n      (X (cdr Exe)\n         A (save (eval (++ X)))\n         Y (eval (++ X))\n         Scl (if (nil? Y) 0 (xCnt Exe Y))\n         Sep (i8 (char \".\"))\n         Ign (i8 0) )\n      (when (pair X)\n         (setq Sep (firstByte (needSymb Exe (eval (++ X)))))\n         (when (pair X)\n            (setq Ign (firstByte (needSymb Exe (eval (car X))))) ) )\n      (cond\n         ((num? A)\n            (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n               (link (ofs P 2))\n               (fmtNum A Scl Sep Ign P)\n               (consStr (val 3 P)) ) )\n         ((sym? A)\n            (cond\n               ((sym? (val (tail A))) $Nil)\n               ((=0 (symToNum (name @) Scl Sep Ign)) $Nil)\n               (T @) ) )\n         (T\n            (if\n               (symToNum\n                  (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                     (link (ofs P 2))\n                     (pack A P)\n                     (val 3 P) )\n                  Scl Sep Ign )\n               @\n               $Nil ) ) ) ) )\n\n### Arithmetics ###\n# (+ 'num ..) -> num\n(de _Add (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let R (link (push (needNum Exe @) NIL))\n               (loop\n                  (? (atom (shift X)) (val R))\n                  (? (nil? (eval (car X))) @)\n                  (safe (needNum Exe @))\n                  (set R (adds (val R) @)) ) ) ) ) ) )\n\n# (- 'num ..) -> num\n(de _Sub (Exe)\n   (let (X (cdr Exe)  N (eval (++ X)))\n      (if (nil? N)\n         N\n         (needNum Exe N)\n         (if (atom X)  # Unary minus\n            (neg N)\n            (save -ZERO\n               (let R (link (push N NIL))\n                  (loop\n                     (? (nil? (eval (++ X))) @)\n                     (safe (needNum Exe @))\n                     (set R (subs (val R) @))\n                     (? (atom X) (val R)) ) ) ) ) ) ) )\n\n# (inc 'num) -> num\n# (inc 'var ['num]) -> num\n(de _Inc (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((nil? (eval (car X))) @)\n         ((num? @) (incs @))\n         (T\n            (let Y (save (chkVar Exe @))  # Symbol or cell\n               (when (and (sym? Y) (sym? (val (tail Y))))  # External\n                  (dbTouch Exe Y) )\n               (if (atom (shift X))\n                  (set Y\n                     (if (nil? (val Y))\n                        ONE\n                        (incs (needNum Exe @)) ) )\n                  (let (D (save (eval (car X)))  N (val Y))\n                     (if (nil? D)\n                        D\n                        (needNum Exe D)\n                        (set Y\n                           (if (nil? N) D (adds (needNum Exe N) D)) ) ) ) ) ) ) ) ) )\n\n# (dec 'num) -> num\n# (dec 'var ['num]) -> num\n(de _Dec (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((nil? (eval (car X))) @)\n         ((num? @) (decs @))\n         (T\n            (let Y (save (chkVar Exe @))  # Symbol or cell\n               (when (and (sym? Y) (sym? (val (tail Y))))  # External\n                  (dbTouch Exe Y) )\n               (if (atom (shift X))\n                  (set Y\n                     (if (nil? (val Y))\n                        -ONE\n                        (decs (needNum Exe @)) ) )\n                  (let (D (save (eval (car X)))  N (val Y))\n                     (if (nil? D)\n                        D\n                        (needNum Exe D)\n                        (set Y\n                           (if (nil? N)\n                              (- D)\n                              (subs (needNum Exe N) D) ) ) ) ) ) ) ) ) ) )\n\n# (* 'num ..) -> num\n(de _Mul (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let\n               (Sign (sign? (needNum Exe @))\n                  R (link (push (pos @) NIL)) )\n               (loop\n                  (? (atom (shift X))\n                     (let N (val R)\n                        (if Sign (neg N) N) ) )\n                  (let N (eval (car X))\n                     (? (nil? N) N)\n                     (? (== N ZERO) N)\n                     (when (sign? (needNum Exe N))\n                        (setq Sign (not Sign)  N (pos N)) )\n                     (safe N)\n                     (set R (mulu (val R) N)) ) ) ) ) ) ) )\n\n# (*/ 'num1 ['num2 ..] 'num3) -> num\n(de _MulDiv (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let\n               (Sign (sign? (needNum Exe @))\n                  R (link (push (pos @) NIL)) )\n               (shift X)\n               (loop\n                  (let N (eval (car X))\n                     (? (nil? N) N)\n                     (when (sign? (needNum Exe N))\n                        (setq Sign (not Sign)  N (pos N)) )\n                     (safe N)\n                     (? (atom (shift X))\n                        (when (== N ZERO)\n                           (divErr Exe) )\n                        (let Half (save (shru N))\n                           (setq N\n                              (divu  # Divide by last arg\n                                 (set R (addu (val R) Half))  # Round\n                                 N ) ) )\n                        (if Sign (neg N) N) )\n                     (? (== N ZERO) N)\n                     (set R (mulu (val R) N)) ) ) ) ) ) ) )\n\n# (/ 'num ..) -> num\n(de _Div (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let\n               (Sign (sign? (needNum Exe @))\n                  R (link (push (pos @) NIL)) )\n               (loop\n                  (? (atom (shift X))\n                     (let N (val R)\n                        (if Sign (neg N) N) ) )\n                  (let N (eval (car X))\n                     (? (nil? N) N)\n                     (when (== N ZERO)\n                        (divErr Exe) )\n                     (when (sign? (needNum Exe N))\n                        (setq Sign (not Sign)  N (pos N)) )\n                     (safe N)\n                     (set R (divu (val R) N)) ) ) ) ) ) ) )\n\n# (% 'num ..) -> num\n(de _Rem (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let\n               (Sign (sign? (needNum Exe @))\n                  R (link (push (pos @) NIL)) )\n               (loop\n                  (? (atom (shift X))\n                     (let N (val R)\n                        (if Sign (neg N) N) ) )\n                  (let N (eval (car X))\n                     (? (nil? N) N)\n                     (when (== N ZERO)\n                        (divErr Exe) )\n                     (set R\n                        (remu\n                           (val R)\n                           (safe (pos (needNum Exe N))) ) ) ) ) ) ) ) ) )\n\n# (>> 'cnt 'num) -> num\n(de _Shr (Exe)\n   (let\n      (X (cdr Exe)\n         N (evCnt Exe X)\n         Y (eval (cadr X)) )\n      (if\n         (or\n            (=0 N)\n            (nil? Y)\n            (== ZERO (needNum Exe Y)) )\n         Y\n         (let Sign (sign? Y)\n            (setq Y (save (pos Y)))\n            (cond\n               ((gt0 N)\n                  (while (and (big? Y) (>= N 64))  # Large shift count\n                     (setq Y (val (big Y)))  # Discard 64 bits\n                     (unless (dec 'N 64)\n                        (goto 9) ) )\n                  (setq Y (safe (shru Y)))  # Non-destructive\n                  (while (dec 'N)\n                     (setq Y (half Y)) ) )  # Shift right (destructive)\n               (T\n                  (while (>= -64 N)\n                     (setq Y (safe (consNum 0 Y)))\n                     (unless (inc 'N 64)\n                        (goto 9) ) )\n                  (setq Y (safe (shlu Y)))  # Non-destructive\n                  (while (inc 'N)\n                     (setq Y (safe (twice Y))) ) ) )  # Shift left (destructive)\n            (: 9\n               (if Sign (neg Y) Y) ) ) ) ) )\n\n# (rev 'cnt1 'cnt2) -> cnt\n(de _Rev (Exe)\n   (let\n      (X (cdr Exe)\n         C (evCnt Exe X)\n         N (evCnt Exe (cdr X))\n         R 0 )\n      (loop\n         (setq\n            R (+ R R (& N 1))\n            N (shr N 1) )\n         (? (=0 (dec 'C))) )\n      (cnt R) ) )\n\n# (lt0 'any) -> num | NIL\n(de _Lt0 (Exe)\n   (if (and (num? (eval (cadr Exe))) (sign? @))\n      @\n      $Nil ) )\n\n# (le0 'any) -> num | NIL\n(de _Le0 (Exe)\n   (if\n      (and\n         (num? (eval (cadr Exe)))\n         (or (== @ ZERO) (sign? @)) )\n      @\n      $Nil ) )\n\n# (ge0 'any) -> num | NIL\n(de _Ge0 (Exe)\n   (if\n      (and\n         (num? (eval (cadr Exe)))\n         (not (sign? @)) )\n      @\n      $Nil ) )\n\n# (gt0 'any) -> num | NIL\n(de _Gt0 (Exe)\n   (if\n      (and\n         (num? (eval (cadr Exe)))\n         (<> @ ZERO)\n         (not (sign? @)) )\n      @\n      $Nil ) )\n\n# (abs 'num) -> num\n(de _Abs (Exe)\n   (if (nil? (eval (cadr Exe)))\n      @\n      (pos (needNum Exe @)) ) )\n\n### Bit operations ###\n# (bit? 'num ..) -> num | NIL\n(de _BitQ (Exe)\n   (let\n      (X (cdr Exe)\n         N (save (pos (needNum Exe (eval (++ X))))) )\n      (loop\n         (? (atom X) N)  # All matched\n         (let Y (eval (++ X))\n            (? (nil? Y) Y)  # Abort with NIL\n            (setq Y (pos (needNum Exe Y)))\n            (let Z N\n               (while (big? Z)\n                  (unless (big? Y)\n                     (ret $Nil) )\n                  (let A (val (dig Z))\n                     (unless (== A (& A (val (dig Y))))\n                        (ret $Nil) ) )\n                  (setq\n                     Y (val (big Y))\n                     Z (val (big Z)) ) )\n               (when (big? Y)\n                  (setq Z (int Z)  Y (val (dig Y))) )\n               (? (<> Z (& Y Z)) $Nil) ) ) ) ) )\n\n# (& 'num ..) -> num\n(de _BitAnd (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let R (link (push (pos (needNum Exe @)) NIL))\n               (loop\n                  (? (atom (shift X)) (val R))\n                  (? (nil? (eval (car X))) @)\n                  (safe (needNum Exe @))\n                  (set R (andu (val R) (pos @))) ) ) ) ) ) )\n\n# (| 'num ..) -> num\n(de _BitOr (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let R (link (push (pos (needNum Exe @)) NIL))\n               (loop\n                  (? (atom (shift X)) (val R))\n                  (? (nil? (eval (car X))) @)\n                  (safe (needNum Exe @))\n                  (set R (oru (val R) (pos @))) ) ) ) ) ) )\n\n# (x| 'num ..) -> num\n(de _BitXor (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (save -ZERO\n            (let R (link (push (pos (needNum Exe @)) NIL))\n               (loop\n                  (? (atom (shift X)) (val R))\n                  (? (nil? (eval (car X))) @)\n                  (safe (needNum Exe @))\n                  (set R (xoru (val R) (pos @))) ) ) ) ) ) )\n\n# (sq 'num1 ['num2]) -> num\n(de _Sq (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (let Y (save (pos (needNum Exe @)))\n            (setq Y (mulu Y Y))\n            (if (atom (shift X))\n               Y\n               (safe Y)\n               (let N (eval (car X))\n                  (cond\n                     ((nil? N) N)\n                     ((== N ZERO) (divErr Exe))\n                     (T\n                        (let\n                           (Sign (sign? (needNum Exe N))\n                              Half (save (shru (setq N (save (pos N))))) )\n                           (setq N (divu (safe (addu Y Half)) N))\n                           (if Sign (neg N) N) ) ) ) ) ) ) ) ) )\n\n# (sqrt 'num ['flg|num]) -> num\n(de _Sqrt (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (when (sign? (needNum Exe @))\n            (argErr Exe @) )\n         (let (Y (save @)  Z (save (eval (cadr X))))\n            (when (num? Z)\n               (setq Y (safe (mulu Y Z))) )\n            (prog1\n               (if (cnt? Y)\n                  (let (M (hex \"400000000000000\")  R 0)\n                     (setq Y (int Y))\n                     (loop\n                        (let N (+ R M)\n                           (when (>= Y N)\n                              (dec 'Y N)\n                              (setq R (+ N M)) ) )\n                        (setq R (shr R 1))\n                        (? (=0 (setq M (shr M 2)))) )\n                     (or (nil? Z) (>= R Y) (inc 'R))  # Round\n                     (cnt R) )\n                  (let\n                     (M (consNum 0 ONE)\n                        M* (link (push M NIL))\n                        R (link (push ZERO NIL))\n                        C (boxNum (val (dig Y)))  # Copy number\n                        C* (link (push C NIL)) )\n                     (while (big? (setq Y (val (big Y))))\n                        (setq C\n                           (set (big C) (boxNum (val (dig Y)))) )\n                        (setq M (set M* (consNum 0 M))) )\n                     (set (big C) Y)\n                     (setq Y (safe (val C*)))\n                     (while (le0 (cmpu M Y))\n                        (twiceBig M)\n                        (twiceBig M) )\n                     (loop\n                        (let N (set C* (addu (val R) M))\n                           (when (ge0 (cmpu Y N))\n                              (setq Y (safe (subu Y N)))\n                              (set R (addu N M)) ) )\n                        (set R (half (val R)))\n                        (?\n                           (==\n                              ZERO\n                              (setq M (set M* (half (half M)))) ) ) )\n                     (setq R (val R))\n                     (if (or (nil? Z) (ge0 (cmpu R Y)))\n                        R\n                        (addu R ONE) ) ) ) ) ) ) ) )  # Round\n\n\n### Random generator ###\n(local) initSeed\n\n(de i64 initSeed (X)\n   (let C 0\n      (while (pair X)\n         (inc 'C (initSeed (++ X))) )\n      (unless (nil? X)\n         (unless (num? X)  # Need number\n            (setq X\n               (&\n                  (name (& (val (tail X)) -9))\n                  (hex \"3FFFFFFFFFFFFFF7\") ) ) )  # Mask status and extern bits\n         (if (cnt? X)\n            (inc 'C (shr X 3))  # Keep sign\n            (when (sign? X)\n               (inc 'C)\n               (setq X (pos X)) )\n            (loop\n               (inc 'C (val (dig X)))\n               (? (cnt? (setq X (val (big X))))) )\n            (inc 'C (int X)) ) )\n      C ) )\n\n# (seed 'any) -> cnt\n(de _Seed (Exe)\n   (let N (mul 6364136223846793005 (initSeed (eval (cadr Exe))))\n      (set $SeedL N  $SeedH @@@)\n      (| (& (shr N (- 32 3)) -8) 2) ) )  # Get higher 32 bits\n\n# (hash 'any) -> cnt\n(de _Hash (Exe)\n   (cnt\n      (inc\n         (shr  # Get higher 20 bits\n            (mul 6364136223846793005 (initSeed (eval (cadr Exe))))\n            44 ) ) ) )\n\n# (rand ['cnt1 'cnt2] | ['T]) -> cnt | flg\n(de _Rand (Exe)\n   (let\n      (X (cdr Exe)\n         Y (eval (++ X))\n         N (add (mul 6364136223846793005 (val $SeedL)) 1) )\n      (set $SeedL N  $SeedH (+ @@@ @@))\n      (cond\n         ((nil? Y)\n            (| (& (shr N (- 32 3)) -8) 2) )  # Get higher 32 bits\n         ((t? Y)\n            (add N N)\n            (if @@ Y $Nil) )\n         (T\n            (when (sign? (needCnt Exe Y))\n               (argErr Exe Y) )\n            (let A (int Y)\n               (when (sign? (needCnt Exe (setq Y (eval (car X)))))\n                  (argErr Exe Y) )\n               (let B (inc (int Y))  # Seed % (cnt2 + 1 - cnt1) + cnt1\n                  (when (>= A B)\n                     (argErr Exe Y) )\n                  (setq N\n                     (+\n                        (%\n                           (shr (val $SeedH) (val $SeedL) 32)  # Get middle 64 bits\n                           (- B A) )\n                        A ) )\n                  (if (lt0 N)\n                     (sign (cnt (- N)))\n                     (cnt N) ) ) ) ) ) ) )\n"
  },
  {
    "path": "src/db.l",
    "content": "# 27aug25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (dbfErr dbRdErr dbWrErr jnlErr dbSyncErr)\n\n(de NIL dbfErr (Exe)\n   (err Exe 0 ($ \"Bad DB file\") null) )\n\n(de NIL dbRdErr ()\n   (err 0 0 ($ \"DB read: %s\") (strErrno)) )\n\n(de NIL dbWrErr ()\n   (err 0 0 ($ \"DB write: %s\") (strErrno)) )\n\n(de NIL jnlErr (Exe)\n   (err Exe 0 ($ \"Bad Journal\") null) )\n\n(de NIL dbSyncErr (Exe)\n   (err Exe 0 ($ \"DB fsync error: %s\") (strErrno)) )\n\n(local) (getAdr setAdr dbfBuf)\n\n# 6 bytes in little endian format\n# Get block address from buffer\n(de i64 getAdr ((i8* . P))\n   (|\n      (shl\n         (|\n            (shl\n               (|\n                  (shl\n                     (|\n                        (shl\n                           (|\n                              (shl (i64 (val 6 P)) 8)\n                              (i64 (val 5 P)) )\n                           8 )\n                        (i64 (val 4 P)) )\n                     8 )\n                  (i64 (val 3 P)) )\n               8 )\n            (i64 (val 2 P)) )\n         8 )\n      (i64 (val P)) ) )\n\n# Set block address in buffer\n(de void setAdr ((i64 . N) (i8* . P))\n   (set P (i8 N))\n   (set 2 P (i8 (setq N (shr N 8))))\n   (set 3 P (i8 (setq N (shr N 8))))\n   (set 4 P (i8 (setq N (shr N 8))))\n   (set 5 P (i8 (setq N (shr N 8))))\n   (set 6 P (i8 (shr N 8))) )\n\n# Read file number from buffer into '$DbFile'\n(de i8* dbfBuf ((i8* . P))\n   (let N\n      (|  # Two bytes little endian\n         (shl (i32 (val 2 P)) 8)\n         (i32 (val P)) )\n      (if (> (val $DBs) N)  # Local file\n         (set $DbFile  # Set current file\n            (ofs (val $DbFiles) (* N (dbFile T))) )\n         null ) ) )\n\n# Locking\n(local) (rdLockDb wrLockDb unLockDb tryLock lockJnl unLockJnl)\n\n(de void rdLockDb ()\n   (unless (t? (val $Solo))  # Not already locked whole DB\n      (rdLockWait ((dbFile (val $DbFiles)) fd) 1) ) )  # Descriptor of first file\n\n(de void wrLockDb ()\n   (unless (t? (val $Solo))  # Not already locked whole DB\n      (wrLockWait ((dbFile (val $DbFiles)) fd) 1) ) )  # Descriptor of first file\n\n(de void unLockDb ((i64 . Len))\n   (unless (t? (val $Solo))  # Not already locked whole DB\n      (unless Len\n         (let (Db (val $DbFiles)  C (val $DBs))  # Iterate DB files\n            (while (dec 'C)\n               (let Db: (dbFile (setq Db (ofs Db (dbFile T))))  # Skip first, increment by size of dbFile\n                  (when (Db: lck)\n                     (unLock (Db: fd) 0 0)\n                     (Db: lck NO) ) ) ) )\n         (set $Solo ZERO) )\n      (unLock ((dbFile (val $DbFiles)) fd) 0 Len) ) )  # Descriptor of first file\n\n(de i32 tryLock ((i8* . DbFile) (i64 . N) (i64 . Len))\n   (let Db: (dbFile DbFile)\n      (loop\n         (? (ge0 (wrLock (Db: fd) N Len NO))  # Try to lock\n            (Db: lck YES)  # Set lock flag\n            (nond\n               (N (set $Solo $T))  # Set solo mode\n               ((t? (val $Solo)) (set $Solo $Nil)) )  # Clear solo mode\n            0 )\n         (unless\n            (or\n               (== (gErrno) EINTR)  # Interrupted\n               (== @ EACCES)  # Locked by another process\n               (== @ EAGAIN) )  # Memory-mapped by another process\n            (lockErr) )\n         (while (lt0 (getLock (Db: fd) N Len))\n            (unless (== (gErrno) EINTR)\n               (lockErr) ) )\n         (? (gt0 @) @) ) ) )\n\n(de void lockJnl ()\n   (wrLockWait (fileno (val $DbJnl)) 0) )\n\n(de void unLockJnl ()\n   (let Jnl (val $DbJnl)\n      (fflush Jnl)\n      (unLock (fileno Jnl) 0 0) ) )\n\n(local) (blkPeek rdBlock blkPoke wrBlock logBlock)\n\n(de void blkPeek ((i64 . Pos) (i8* . Buf) (i32 . Siz))\n   (let (S (i64 Siz)  Db: (dbFile (val $DbFile)))\n      (unless (== S (pread (Db: fd) Buf S Pos))\n         (dbRdErr) ) ) )\n\n(de i8* rdBlock ((i64 . N))\n   (let (Db: (dbFile (val $DbFile))  Blk (val $DbBlock))\n      (blkPeek  # Read block\n         (shl (set $BlkIndex N) (i64 (Db: sh)))\n         Blk\n         (Db: siz) )\n      (set\n         $BlkLink (& (getAdr Blk) BLKMASK)\n         $BlkEnd (ofs Blk (Db: siz))\n         $BlkPtr (ofs Blk BLK) )  # Pointer to data\n      Blk ) )  # Pointer to block\n\n(de void blkPoke ((i64 . Pos) (i8* . Buf) (i32 . Siz))\n   (let Db: (dbFile (val $DbFile))\n      (unless (== Siz (i32 (pwrite (Db: fd) Buf (i64 Siz) Pos)))\n         (dbWrErr) )\n      (when (val $DbJnl)\n         (let Jnl @\n            (putc_unlocked (if (== Siz (Db: siz)) 0 Siz) Jnl)\n            (let P (b8 (+ BLK 2))  # Allocate buffer\n               (set P (i8 (Db: db)))  # Store file number\n               (set 2 P (i8 (shr (Db: db) 8)))\n               (setAdr\n                  (shr Pos (i64 (Db: sh)))  # Un-shift position\n                  (ofs P 2) )\n               (unless\n                  (and\n                     (== 1 (fwrite P (+ BLK 2) 1 Jnl))  # Write file number and address\n                     (== 1 (fwrite Buf (i64 Siz) 1 Jnl)) )  # Write 'Buf'\n                  (err 0 0 ($ \"Journal write: %s\") (strErrno)) ) ) ) ) ) )\n\n(de void wrBlock ()\n   (let Db: (dbFile (val $DbFile))\n      (blkPoke\n         (shl (val $BlkIndex) (i64 (Db: sh)))\n         (val $DbBlock)\n         (Db: siz) ) ) )\n\n(de void logBlock ()\n   (let\n      (Db: (dbFile (val $DbFile))\n         Log (val $DbLog)\n         P (b8 (+ BLK 2)) )\n      (set P (i8 (Db: db)))  # Store file number\n      (set 2 P (i8 (shr (Db: db) 8)))\n      (setAdr (val $BlkIndex) (ofs P 2))  # and block\n      (unless\n         (and\n            (== 1 (fwrite P (+ BLK 2) 1 Log))  # Write file number and address\n            (== 1 (fwrite (val $DbBlock) (i64 (Db: siz)) 1 Log)) )  # Write block\n         (err 0 0 ($ \"Log write: %s\") (strErrno)) ) ) )\n\n(local) (newBlock newId isLife cleanUp getBlock putBlock)\n\n(de i64 newBlock ()\n   (let\n      (Db: (dbFile (val $DbFile))\n         Siz (Db: siz)\n         P (b8 Siz) )\n      (blkPeek 0 P (* 2 BLK))  # Read 'free' and 'next' from block zero\n      (let N (getAdr P)\n         (cond\n            ((and N (Db: flu))\n               (blkPeek (shl N (i64 (Db: sh))) P BLK)  # Get free link\n               (Db: flu (dec (Db: flu))) )\n            ((== (setq N (getAdr (ofs P BLK))) (hex \"FFFFFFFFFFC0\"))  # Max object ID\n               (err 0 0 ($ \"DB Oversize\") null) )\n            (T (setAdr (+ N BLKSIZE) (ofs P BLK))) )  # Increment next\n         (blkPoke 0 P (* 2 BLK))  # Write back\n         (memset P 0 (i64 Siz) T)  # Init new block\n         (blkPoke (shl N (i64 (Db: sh))) P Siz)\n         N ) ) )\n\n(de newId (Exe (i32 . N))\n   (when (>= (dec 'N) (val $DBs))\n      (dbfErr Exe) )\n   (set $DbFile  # Set current file\n      (ofs (val $DbFiles) (* N (dbFile T))) )\n   (set $Protect (inc (val $Protect)))\n   (wrLockDb)\n   (when (val $DbJnl)\n      (lockJnl) )\n   (prog1\n      (extNm\n         ((dbFile (val $DbFile)) db)\n         (shr (newBlock) 6) )\n      (when (val $DbJnl)\n         (unLockJnl) )\n      (unLockDb 1)\n      (set $Protect (dec (val $Protect))) ) )\n\n(de i1 isLife (Sym)\n   (let\n      (Nm (name (& (val (tail Sym)) -9))\n         F (objFile Nm)\n         N (shl (objId Nm) 6) )\n      (when N\n         (cond\n            ((> (val $DBs) F)  # Local file\n               (setq Nm (add Nm Nm))\n               (when @@  # Dirty\n                  (ret YES) )\n               (add Nm Nm)\n               (when @@  # Loaded\n                  (ret YES) )\n               (let\n                  (Db:\n                     (dbFile\n                        (set $DbFile  # Set current file\n                           (ofs (val $DbFiles) (* F (dbFile T))) ) )\n                     P (b8 (* BLK 2)) )\n                  (blkPeek BLK P BLK)  # Read 'next'\n                  (when (> (getAdr P) N)\n                     (blkPeek (shl N (i64 (Db: sh))) P BLK)  # Read link field\n                     (when (== 1 (& (val P) BLKTAG))  # ID-Block\n                        (ret YES) ) ) ) )\n            ((pair (val $Ext))\n               (ret YES) ) ) )\n      NO ) )\n\n# (ext? 'any ['flg]) -> sym | NIL\n(de _ExtQ (Exe)\n   (let (X (cdr Exe)  Y (save (eval (++ X))))\n      (if\n         (and\n            (symb? Y)\n            (sym? (val (tail Y)))\n            (or (nil? (eval (car X))) (isLife Y)) )\n         Y\n         $Nil ) ) )\n\n(de void cleanUp ((i64 . N))\n   (let (P (b8 BLK)  Db: (dbFile (val $DbFile)))\n      (blkPeek 0 P BLK)  # Read 'free'\n      (let Free (getAdr P)\n         (setAdr N P)\n         (blkPoke 0 P BLK)  # Set new 'free'\n         (loop\n            (let Pos (shl N (i64 (Db: sh)))\n               (blkPeek Pos P BLK)  # Get block link\n               (set P (& (val P) BLKMASK))  # Clear tag\n               (? (=0 (setq N (getAdr P)))  # No more links\n                  (setAdr Free P)  # Append old 'free' list\n                  (blkPoke Pos P BLK) )\n               (blkPoke Pos P BLK) ) ) ) ) )\n\n(de i32 getBlock ()\n   (let P (val $BlkPtr)\n      (when (== P (val $BlkEnd))\n         (unless (val $BlkLink)\n            (ret -1) )\n         (setq P (ofs (rdBlock @) BLK)) )\n      (set $BlkPtr (inc P))\n      (i32 (val P)) ) )\n\n(de void putBlock ((i8 . B))\n   (let P (val $BlkPtr)\n      (when (== P (val $BlkEnd))\n         (let Link (val $BlkLink)\n            (ifn Link\n               (let\n                  (New (newBlock)\n                     Cnt (i64 (val (setq P (val $DbBlock)))) )  # Block count (link is zero)\n                  (setAdr (| New Cnt) P)\n                  (wrBlock)  # Write new block\n                  (set $BlkIndex New)  # Set new block index\n                  (setAdr (if (== Cnt BLKTAG) Cnt (inc Cnt)) P)\n                  (setq P (ofs P BLK)) )\n               (wrBlock)  # Write current block\n               (setq P (ofs (rdBlock Link) BLK)) ) ) )  # Read next block\n      (set P B)\n      (set $BlkPtr (inc P)) ) )\n\n# (rollback) -> flg\n(de _Rollback (Exe)\n   (if (and (=0 (val $DBs)) (atom (val $Ext)))\n      $Nil\n      (let (Tos 0  P (val $Extern))  # Iterate external symbol tree\n         (loop\n            (loop\n               (let X (cdr P)  # Get subtrees\n                  (? (atom (cdr X)))  # Right subtree\n                  (let Y P  # Go right\n                     (setq P @)  # Invert tree\n                     (set 2 X Tos)\n                     (setq Tos Y) ) ) )\n            (loop\n               (let (S (val P)  Tail (val (tail S)))  # Get external symbol\n                  (unless (num? Tail)  # Any properties\n                     (setq Tail (& Tail -9))  # Clear 'extern' tag\n                     (loop\n                        (? (num? (shift Tail))) )  # Find name\n                     (setq Tail (sym Tail)) )  # Set 'extern' tag\n                  (set (tail S) (shr (shl Tail 2) 2))  # Strip status bits\n                  (set S $Nil) )  # Clear value\n               (let X (cdr P)\n                  (? (pair (car X))  # Left subtree\n                     (let Y P  # Go left\n                        (setq P @)  # Invert tree\n                        (set X Tos)\n                        (setq Tos (| Y 8)) ) ) )  # First visit\n               (loop\n                  (unless Tos\n                     (goto 1) )\n                  (? (=0 (& Tos 8))  # Second visit\n                     (let (X Tos  Y (cdr X))  # Nodes\n                        (setq Tos (cdr Y))  # TOS on up link\n                        (set 2 Y P)\n                        (setq P X) ) )\n                  (setq Tos (& Tos -9))  # Clear visit bit\n                  (let (X Tos  Y (cdr X))  # Nodes\n                     (setq Tos (car Y))\n                     (set Y P)\n                     (setq P X) ) ) ) ) )\n      (: 1\n         (when (pair (val $Zap))  # Objects to delete\n            (set @ $Nil) ) )  # Clear zap list\n      (when (val $DBs)  # DB open\n         (unLockDb 0) )  # Unlock all\n      (unsync)\n      $T ) )\n\n# (extern 'sym) -> sym | NIL\n(de _Extern (Exe)\n   (let\n      (Sym (needSymb Exe (eval (cadr Exe)))\n         Nm (name (& (val (tail Sym)) -9)) )\n      (when (== Nm ZERO)\n         (ret $Nil) )\n      (let\n         (P (push 0 Nm)  # [cnt name]\n            C (symChar P)\n            F (i32 0) )\n         (when (== C (char \"{\"))\n            (setq C (symChar P)) )\n         (while (>= C (char \"@\"))\n            (when (> C (char \"O\"))  # A-O range\n               (ret $Nil) )\n            (setq\n               F (| (shl F 4) (- C (char \"@\")))\n               C (symChar P) ) )\n         (let N 0\n            (loop\n               (unless (and (>= C (char \"0\")) (>= (char \"7\") C))\n                  (ret $Nil) )\n               (setq N\n                  (|\n                     (shl N 3)\n                     (i64 (- C (char \"0\"))) ) )\n               (?\n                  (or\n                     (=0 (setq C (symChar P)))\n                     (== C (char \"}\")) ) ) )\n            (if (isLife (setq Sym (extern (extNm F N))))\n               Sym\n               $Nil ) ) ) ) )\n\n(local) (ignLog transaction fsyncDB restore truncLog)\n\n(de void ignLog ()\n   (stderrMsg ($ \"Discarding incomplete transaction\\n\") null) )\n\n# Test for existing transaction\n(de i1 transaction ()\n   (let (Log (val $DbLog)  Blk (b8 BLK))\n      (fseek0 Log)\n      (if (fread Blk 2 1 Log)  # Read first file number\n         (loop\n            (? (== (val (i16* Blk)) (hex \"FFFF\")) YES)  # Byte order doesn't matter\n            (?\n               (or\n                  (=0 (dbfBuf Blk))\n                  (<> (fread Blk BLK 1 Log) 1)\n                  (not (fseekOfs Log ((dbFile (val $DbFile)) siz)))\n                  (<> (fread Blk 2 1 Log) 1) )\n               (ignLog)\n               NO ) )\n         (unless (feof Log)\n            (ignLog) )  # Discard incomplete transaction\n         NO ) ) )\n\n(de void fsyncDB (Exe)\n   (let (Db (val $DbFiles)  C (val $DBs))  # Iterate DB files\n      (loop\n         (let Db: (dbFile Db)\n            (when (and (Db: drt) (lt0 (fsync (Db: fd))))\n               (dbSyncErr Exe) ) )\n         (? (=0 (dec 'C)))\n         (setq Db (ofs Db (dbFile T))) ) ) )\n\n(de void restore (Exe)\n   (stderrMsg ($ \"Last transaction not completed: Rollback\\n\") null)\n   (let Log (val $DbLog)\n      (fseek0 Log)\n      (let (Db (val $DbFiles)  C (val $DBs))  # Iterate DB files\n         (loop\n            ((dbFile Db) drt NO)\n            (? (=0 (dec 'C)))\n            (setq Db (ofs Db (dbFile T))) ) )\n      (let (Blk (b8 BLK)  Buf (b8 (val $MaxBlkSize)))\n         (loop\n            (unless (== (fread Blk 2 1 Log) 1)  # Get file number\n               (jnlErr Exe) )\n            (? (== (val (i16* Blk)) (hex \"FFFF\")))  # Byte order doesn't matter\n            (if (dbfBuf Blk)\n               (let Db: (dbFile @)\n                  (unless\n                     (and\n                        (== (fread Blk BLK 1 Log) 1)\n                        (== (fread Buf (i64 (Db: siz)) 1 Log) 1) )\n                     (jnlErr Exe) )\n                  (unless\n                     (==\n                        (pwrite\n                           (Db: fd)\n                           Buf\n                           (i64 (Db: siz))\n                           (shl (getAdr Blk) (i64 (Db: sh))) )\n                        (i64 (Db: siz)) )\n                     (dbWrErr) )\n                  (Db: drt YES) )\n               (jnlErr Exe) ) )\n         (fsyncDB Exe) ) ) )\n\n(de void truncLog (Exe)\n   (let Log (val $DbLog)\n      (unless (and (fseek0 Log) (truncate0 (fileno Log)))\n         (err Exe 0 ($ \"Log truncate error: %s\") (strErrno)) ) ) )\n\n# (pool ['sym1 ['lst] ['sym2] ['sym3]]) -> T\n(de _Pool (Exe)\n   (let\n      (X (cdr Exe)\n         Sym1 (save (evSym X))  # Database name\n         Dbs (save (evLst (shift X)))  # Database sizes\n         Sym2 (save (evSym (shift X)))  # Replication journal\n         Sym3 (save (evSym (shift X))) )  # Transaction log\n      (set $Solo ZERO)  # Reset solo mode\n      (when (val $DBs)\n         (_Rollback ZERO)\n         (let (Db (val $DbFiles)  C @)  # Iterate DB files\n            (loop\n               (let Db: (dbFile Db)\n                  (close (Db: fd))\n                  (free (Db: mark)) )\n               (? (=0 (dec 'C)))\n               (setq Db (ofs Db (dbFile T))) ) )\n         (set $DBs 0  $DB $Nil)\n         (when (val $DbJnl)\n            (fclose @)\n            (set $DbJnl null) )\n         (when (val $DbLog)\n            (fclose @)\n            (set $DbLog null) ) )\n      (unless (nil? Sym1)\n         (let\n            (Nm (xName Sym1)  # DB name\n               Len (pathSize Nm)\n               Buf (pathString Nm (b8 (+ Len 4)))  # 4 bytes for AO file number\n               End (ofs Buf (dec Len))\n               Siz (dbFile T) )  # Default to single dbFile\n            (when (pair Dbs)\n               (let L Dbs\n                  (while (pair (shift L))\n                     (inc 'Siz (dbFile T)) ) ) )\n            (let\n               (Db (set $DbFiles (alloc (val $DbFiles) Siz))\n                  P (b8 (+ BLK BLK 1))\n                  Fnr (i32 0)\n                  Max (i32 0) )\n               (loop\n                  (let Db: (dbFile (set $DbFile Db))  # Set current file\n                     (Db: db Fnr)\n                     (if (atom Dbs)\n                        (Db: sh 2)\n                        (set (bufAo End Fnr) 0)\n                        (Db: sh (i32 (int (++ Dbs)))) )\n                     (cond\n                        ((ge0 (Db: fd (openRdWr Buf)))  # Exists\n                           (blkPeek 0 P (+ BLK BLK 1))  # Read block shift from block zero\n                           (Db: siz\n                              (shl\n                                 (i32 BLKSIZE)\n                                 (Db: sh (i32 (val (+ BLK BLK 1) P))) ) ) )  # Override block shift from 'Dbs'\n                        ((and\n                              (== (gErrno) ENOENT)\n                              (ge0 (Db: fd (openRdWrExcl Buf))) )\n                           (let\n                              (N (shl (i32 BLKSIZE) (Db: sh))\n                                 Stk (stack)\n                                 Blk (b8 (Db: siz N)) )\n                              (memset Blk 0 (i64 N) T)  # 'free' is null\n                              (setAdr\n                                 (if (== (Db:) (val $DbFiles))  # First file\n                                    (* 2 BLKSIZE)  # Block zero plus DB root\n                                    BLKSIZE )\n                                 (ofs Blk BLK) )  # Address of 'next' in buffer\n                              (set  # Set block shift in block zero\n                                 (inc (* 2 BLK)) Blk\n                                 (i8 (Db: sh)) )\n                              (blkPoke 0 Blk N)  # Write DB block zero\n                              (when (== (Db:) (val $DbFiles))  # First file\n                                 (memset Blk 0 16 T)  # Clear 'next' link in buffer\n                                 (setAdr 1 Blk)  # First block for DB root into link field\n                                 (blkPoke (i64 (Db: siz)) Blk N) )  # has block size position\n                              (stack Stk) ) )\n                        (T (openErr Exe Sym1)) )\n                     (closeOnExec Exe (Db: fd))\n                     (when (> (Db: siz) Max)\n                        (setq Max @) )\n                     (Db: mark null)\n                     (Db: mrks 0)\n                     (Db: flu -1)\n                     (Db: lck (Db: drt NO))\n                     (inc 'Fnr)\n                     (? (atom Dbs))\n                     (setq Db (ofs Db (dbFile T))) ) )\n               (set\n                  $DB $Db1\n                  $DBs Fnr\n                  $MaxBlkSize Max\n                  $DbBlock (alloc (val $DbBlock) (i64 Max)) ) ) )\n         (unless (nil? Sym2)  # Replication journal\n            (let Nm (xName Sym2)  # Journal name\n               (unless (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a\"))\n                  (openErr Exe Sym2) )\n               (set $DbJnl @)\n               (closeOnExec Exe (fileno @)) ) )\n         (unless (nil? Sym3)  # Transaction log\n            (let Nm (xName Sym3)  # Transaction log name\n               (unless (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"a+\"))\n                  (openErr Exe Sym3) )\n               (set $DbLog @)\n               (closeOnExec Exe (fileno @))\n               (when (transaction)\n                  (restore Exe) )\n               (truncLog Exe)  ) ) ) )\n   $T )\n\n# (pool2 'sym . prg) -> any\n(de _Pool2 (Exe)\n   (let\n      (X (cdr Exe)\n         Sym (evSym X)\n         Nm (xName Sym)\n         Jnl (val $DbJnl)\n         Log (val $DbLog)\n         C (val $DBs)\n         FDs (b32 C) )\n      (set $DbJnl null  $DbLog null)  # Stop journal and transaction log\n      (let (Db (val $DbFiles)  I (i32 0))  # Iterate DB files\n         (loop\n            (let Db: (dbFile Db)\n               (set (ofs FDs I) (Db: fd)) )  # Save file descriptor\n            (? (== C (inc 'I)))\n            (setq Db (ofs Db (dbFile T))) ) )\n      (let\n         (Len (pathSize Nm)\n            Buf (pathString Nm (b8 (+ Len 4)))  # 4 bytes for AO file number\n            End (ofs Buf (dec Len)) )\n         (let (Db (val $DbFiles)  I (i32 0))  # Iterate DB files\n            (loop\n               (let Db: (dbFile Db)\n                  (set (bufAo End (Db: db)) 0)\n                  (when (lt0 (Db: fd (openRdWr Buf)))  # Try to open\n                     (openErr Exe Sym) )\n                  (closeOnExec Exe @) )\n               (? (== C (inc 'I)))\n               (setq Db (ofs Db (dbFile T))) ) ) )\n      (prog1\n         (run (cdr X)\n            (let (Db (val $DbFiles)  I (i32 0))  # Iterate DB files\n               (loop\n                  (let Db: (dbFile Db)\n                     (close (Db: fd))  # Close file\n                     (Db: fd (val (ofs FDs I))) )  # Restore file descriptor\n                  (? (== C (inc 'I)))\n                  (setq Db (ofs Db (dbFile T))) ) )\n            (set $DbLog Log  $DbJnl Jnl) ) ) ) )\n\n# (journal ['T] 'any ..) -> T\n(de _Journal (Exe)\n   (let\n      (X (cdr Exe)\n         Sym (evSym X)\n         Jnl (val $DbJnl)\n         Log (val $DbLog)\n         Buf (b8 (val $MaxBlkSize))\n         Blk (b8 BLK) )\n      (stkChk Exe)\n      (when (t? Sym)\n         (set $DbJnl null  $DbLog null)  # Stop journal and transaction log\n         (setq Sym (evSym (shift X))) )\n      (loop\n         (let\n            (Nm (xName Sym)  # Journal name\n               Fp (fopen (pathString Nm (b8 (pathSize Nm))) ($ \"r\")) )\n            (unless Fp\n               (openErr Exe Sym) )\n            (while (ge0 (getc_unlocked Fp))\n               (let Siz @\n                  (unless (== (fread Blk 2 1 Fp) 1)  # Read file number\n                     (jnlErr Exe) )\n                  (if (dbfBuf Blk)  # Get file number from 'Buf' to 'DbFile'\n                     (let Db: (dbFile @)\n                        #! Temporary backward compatibility\n                        (when (== Siz BLKSIZE)\n                           (setq Siz (Db: siz)) )\n                        #!\n                        (unless Siz\n                           (setq Siz (Db: siz)) )\n                        (unless\n                           (and\n                              (== (fread Blk BLK 1 Fp) 1)\n                              (== (fread Buf (i64 Siz) 1 Fp) 1) )\n                           (jnlErr Exe) )\n                        (blkPoke\n                           (shl (getAdr Blk) (i64 (Db: sh)))\n                           Buf\n                           Siz ) )\n                     (dbfErr Exe) ) ) )  # No local file\n            (fclose Fp)\n            (? (atom (shift X)))\n            (setq Sym (evSym X)) ) )\n      (set $DbLog Log  $DbJnl Jnl)\n      $T ) )\n\n# (id 'num ['num]) -> sym\n# (id 'sym [NIL]) -> num\n# (id 'sym T) -> (num . num)\n(de _Id (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (if (cnt? Y)  # File number or object ID\n         (extern\n            (if (nil? (eval (car X)))\n               (extNm 0 (int Y))\n               (extNm (dec (i32 (int Y))) (xCnt Exe @)) ) )\n         (needSymb Exe Y)\n         (unless (sym? (val (tail (needSymb Exe Y))))\n            (extErr Exe Y) )\n         (let\n            (Nm (name (& (val (tail Y)) -9))\n               Z (cnt (objId Nm)) )\n            (if (nil? (eval (car X)))  # Return only object ID\n               Z\n               (cons\n                  (cnt (i64 (inc (objFile Nm))))\n                  Z ) ) ) ) ) )\n\n# (blk 'fd 'cnt 'siz ['fd2]) -> lst\n# (blk 'fd 0) -> (cnt . siz)\n(de _Blk (Exe)\n   (let (X (cdr Exe)  Db: (dbFile (b8+ (dbFile T))))\n      (Db: fd (i32 (evCnt Exe X)))  # File descriptor\n      (if (=0 (evCnt Exe (shift X)))  # Block number\n         (let Buf (b8 BLK)\n            (unless\n               (==\n                  (+ BLK 1)\n                  (pread (Db: fd) Buf (+ BLK 1) BLK) )\n               (dbRdErr) )\n            (cons\n               (cnt (shr (getAdr Buf) 6))  # Block count\n               (cnt (i64 (val (ofs Buf BLK)))) ) )  # Block shift\n         (let\n            (N (shl @ 6)  # Block index\n               P (val $DbBlock)  # Block buffer\n               Siz  # Block size\n               (shl\n                  (i32 BLKSIZE)\n                  (Db: sh (i32 (evCnt Exe (shift X)))) )  # 'siz' scale factor\n               Fd\n               (i32\n                  (if (atom (shift X))\n                     -1\n                     (evCnt Exe @)) ) )\n            (when (> (Db: siz Siz) (val $MaxBlkSize))\n               (set $MaxBlkSize Siz  $DbBlock (alloc P (i64 Siz))) )\n            (set $DbFile (Db:))\n            (when (ge0 Fd)\n               (rdLockWait Fd 1) )  # Lock for reading\n            (prog1\n               (let Blk (rdBlock N)  # Read first block\n                  (if (<> 1 (& (val Blk) BLKTAG))  # ID-Block\n                     $Nil\n                     (set\n                        $GetBin (fun (i32) getBlock)\n                        $Extn (val $ExtN) )\n                     (let\n                        (L (cons (binRead) $Nil)  # Read symbol value\n                           R (save L) )\n                        (until (nil? (binRead))  # Property key\n                           (setq L (set 2 L (cons @ $Nil)))\n                           (unless (t? (binRead))  # Next property value\n                              (set L (cons @ (car L))) ) )\n                        R ) ) )\n               (when (ge0 Fd)\n                  (unLock @ 0 0) ) ) ) ) ) )\n\n# (seq 'cnt|sym1) -> sym | NIL\n(de _Seq (Exe)\n   (let\n      (X (eval (cadr Exe))\n         F (dec (i32 (int X)))\n         N 0\n         Buf (b8 BLK) )\n      (unless (cnt? X)\n         (unless (sym? (val (tail (needSymb Exe X))))\n            (extErr Exe X) )\n         (let Nm (name (& (val (tail X)) -9))\n            (setq\n               F (objFile Nm)\n               N (shl (objId Nm) 6) ) ) )\n      (when (>= F (val $DBs))\n         (dbfErr Exe) )\n      (let Db:\n         (dbFile\n            (set $DbFile\n               (ofs (val $DbFiles) (* F (dbFile T))) ) )\n         (rdLockDb)  # Lock for reading\n         (blkPeek BLK Buf BLK)  # Read 'next' from block zero\n         (let Next (getAdr Buf)\n            (prog1\n               (loop\n                  (? (>= (inc 'N BLKSIZE) Next) $Nil)\n                  (blkPeek (shl N (i64 (Db: sh))) Buf BLK)  # Read link field\n                  (? (== 1 (& (val Buf) BLKTAG))  # ID-Block\n                     (extern (extNm F (shr N 6))) ) )\n               (unLockDb 1) ) ) ) ) )  # Unlock\n\n# (lieu 'any) -> sym | NIL\n(de _Lieu (Exe)\n   (let X (eval (cadr Exe))\n      (nond\n         ((symb? X) $Nil)\n         ((sym? (val (tail X))) $Nil)\n         (NIL\n            (let Nm (name (& (val (tail X)) -9))\n               (setq Nm (add Nm Nm))\n               (cond\n                  (@@  # Dirty\n                     (setq Nm (add Nm Nm))\n                     (if @@ $Nil X) )  # Deleted\n                  (T\n                     (setq Nm (add Nm Nm))\n                     (if @@ X $Nil) ) ) ) ) ) ) )  # Loaded\n\n# (lock ['sym]) -> cnt | NIL\n(de _Lock (Exe)\n   (if\n      (if (nil? (eval (cadr Exe)))\n         (tryLock (val $DbFiles) 0 0)  # Use first dbFile\n         (let X (needSymb Exe @)\n            (unless (sym? (val (tail (needSymb Exe X))))\n               (extErr Exe X) )\n            (let\n               (Nm (name (& (val (tail X)) -9))\n                  F (objFile Nm)\n                  N (objId Nm) )\n               (when (>= F (val $DBs))\n                  (dbfErr Exe) )\n               (let Db: (dbFile (ofs (val $DbFiles) (* F (dbFile T))))\n                  (tryLock (Db:) (* N (i64 (Db: siz))) 1) ) ) ) )\n      (cnt (i64 @))\n      $Nil ) )\n\n(local) (db dbFetch dbTouch dbZap)\n\n(de void db (Exe Sym Nm)\n   (save Sym)\n   (let F (objFile Nm)  # Get file number\n      (if (>= F (val $DBs))\n         (let Ext (val $Ext)  # Non-local file\n            (if\n               (or\n                  (atom Ext)  # First offset\n                  (> (i32 (int (caar @))) (inc 'F)) )  # too big\n               (dbfErr Exe)\n               (while  # Find DB extension\n                  (and\n                     (pair (cdr Ext))\n                     (>= F (i32 (int (caar @)))) )\n                  (shift Ext) )\n               (let\n                  (V (push NIL $Nil ZERO Sym)  # [car cdr name arg]\n                     E (push NIL V ZERO (cdar Ext)) )  # [car cdr name fun]\n                  (set V (ofs V 3)  E (ofs E 3))\n                  (let X (evList E)\n                     (set Sym (++ X))  # Set value\n                     (if (atom X)\n                        (set (tail Sym) Nm)  # Set status/name\n                        (set (tail Sym) (sym X))  # Set property list\n                        (while (pair (cdr X))  # Find end\n                           (setq X @) )\n                        (set 2 X Nm) ) ) ) ) )  # Set status/name\n         # Local file\n         (set $DbFile\n            (ofs (val $DbFiles) (* F (dbFile T))) )\n         (rdLockDb)  # Lock for reading\n         (let Blk (rdBlock (shl (objId Nm) 6))  # Read first block\n            (unless (== 1 (& (val Blk) BLKTAG))  # ID-Block\n               (err Exe Sym ($ \"Bad ID\") null) ) )\n         (set\n            $GetBin (fun (i32) getBlock)\n            $Extn 0 )\n         (set Sym (binRead))  # Read symbol value\n         (if (nil? (binRead))  # First property key\n            (set (tail Sym) Nm)  # Set status/name\n            (set (tail Sym)  # Set tail\n               (sym (setq Nm (cons @ Nm))) )\n            (unless (t? (binRead))  # First property value\n               (set Nm (cons @ (val Nm))) )  # Cons with key\n            (until (nil? (binRead))  # Next property key\n               (set 2 Nm (cons @ (val 2 Nm)))\n               (shift Nm)\n               (unless (t? (binRead))  # Next property value\n                  (set Nm (cons @ (val Nm))) ) ) )  # Cons with key\n         (unLockDb 1) ) ) )  # Unlock\n\n(de void dbFetch (Exe Sym)\n   (let Nm (val (tail Sym))\n      (when\n         (and\n            (num? Nm)  # No properties\n            (prog (setq Nm (add Nm Nm)) (not @@))  # Not dirty\n            (prog (setq Nm (add Nm Nm)) (not @@)) )  # Not loaded\n         (set (tail Sym) (setq Nm (shr 1 Nm 2)))  # Set \"loaded\"\n         (tailcall (db Exe Sym Nm)) ) ) )\n\n(de void dbTouch (Exe Sym)\n   (let (Q (tail Sym)  Nm (val Q))\n      (unless (num? Nm)  # Has properties\n         (setq Nm (any (& Nm -9)))  # Clear 'extern' tag\n         (loop\n            (setq Q (ofs Nm 1))  # Skip property\n            (? (num? (setq Nm (val Q)))) ) )  # Find name\n      (setq Nm (add Nm Nm))\n      (unless @@  # Not yet dirty\n         (setq Nm (add Nm Nm))\n         (set Q (setq Nm (shr 2 Nm 2)))  # Set \"dirty\"\n         (unless @@  # Not loaded\n            (tailcall (db Exe Sym Nm)) ) ) ) )\n\n# (touch 'sym) -> sym\n(de _Touch (Exe)\n   (let X (eval (cadr Exe))\n      (when (and (symb? X) (sym? (val (tail X))))\n         (dbTouch Exe X) )\n      X ) )\n\n(de void dbZap (Sym)\n   (let Tail (val (tail Sym))  # Get tail\n      (unless (num? Tail)  # Any properties\n         (setq Tail (& Tail -9))  # Clear 'extern' tag\n         (loop\n            (? (num? (shift Tail))) )  # Find name\n         (setq Tail (sym Tail)) )  # Set 'extern' tag\n      (set (tail Sym) (shr 3 (shl Tail 2) 2))  # Set \"deleted\"\n      (set Sym $Nil) ) )  # Clear value\n\n# (commit ['any] [exe1] [exe2]) -> T\n(de _Commit (Exe)\n   (let (Args (cdr Exe)  Rpc (save (eval (++ Args)))  Notify NO)\n      (set $Protect (inc (val $Protect)))\n      (wrLockDb)\n      (when (val $DbJnl)\n         (lockJnl) )\n      (when (val $DbLog)\n         (let (Db (val $DbFiles)  C (val $DBs))  # Iterate DB files\n            (loop\n               (let Db: (dbFile Db)\n                  (Db: drt NO)  # Clear dirty flag\n                  (Db: flu 0) )  # and free list use count\n               (? (=0 (dec 'C)))\n               (setq Db (ofs Db (dbFile T))) ) )\n         (let (Tos 0  P (val $Extern))  # Iterate external symbol tree\n            (loop\n               (loop\n                  (let X (cdr P)  # Get subtrees\n                     (? (atom (car X)))  # Left subtree\n                     (let Y P  # Go left\n                        (setq P @)  # Invert tree\n                        (set X Tos)\n                        (setq Tos Y) ) ) )\n               (loop\n                  (let\n                     (Nm (name (& (val (tail (val P))) -9))  # Get external symbol name\n                        N (add Nm Nm) )\n                     (when @@  # Dirty or deleted\n                        (let F (objFile Nm)  # Get file number\n                           (when (> (val $DBs) F)  # Local file\n                              (set $DbFile\n                                 (ofs (val $DbFiles) (* F (dbFile T))) )\n                              (rdBlock (shl (objId Nm) 6))\n                              (loop\n                                 (logBlock)\n                                 (? (=0 (val $BlkLink)))\n                                 (rdBlock @) )\n                              (let Db: (dbFile (val $DbFile))\n                                 (Db: drt YES)\n                                 (add N N)\n                                 (unless @@  # Not deleted\n                                    (Db: flu (inc (Db: flu))) ) ) ) ) ) )\n                  (let X (cdr P)\n                     (? (pair (cdr X))  # Right subtree\n                        (let Y P  # Go right\n                           (setq P @)  # Invert tree\n                           (set 2 X Tos)\n                           (setq Tos (| Y 8)) ) ) )  # First visit\n                  (loop\n                     (unless Tos\n                        (goto 1) )\n                     (? (=0 (& Tos 8))  # Second visit\n                        (let (X Tos  Y (cdr X))  # Nodes\n                           (setq Tos (car Y))  # TOS on up link\n                           (set Y P)\n                           (setq P X) ) )\n                     (setq Tos (& Tos -9))  # Clear visit bit\n                     (let (X Tos  Y (cdr X))  # Nodes\n                        (setq Tos (cdr Y))\n                        (set 2 Y P)\n                        (setq P X) ) ) ) ) )\n         (: 1\n            (let (P (val $DbFiles)  C (val $DBs))  # Iterate DB files\n               (loop\n                  (when ((dbFile P) flu)\n                     (let N @\n                        (set $DbFile P)\n                        (rdBlock 0)  # Save Block 0\n                        (loop  # and free list\n                           (logBlock)\n                           (? (=0 (dec 'N)))\n                           (? (=0 (val $BlkLink)))\n                           (rdBlock @) ) ) )\n                  (? (=0 (dec 'C)))\n                  (setq P (ofs P (dbFile T))) ) )\n            (let Log (val $DbLog)\n               (putc_unlocked (hex \"FF\") Log)  # Write end marker\n               (putc_unlocked (hex \"FF\") Log)\n               (fflush Log)\n               (when (lt0 (fsync (fileno Log)))\n                  (err Exe 0 ($ \"Transaction fsync error: %s\") (strErrno)) ) ) ) )\n      (eval (++ Args)) # Eval pre-expression\n      (when (and (not (nil? Rpc)) (or (val $Tell) (val $Children)))\n         (setq Notify YES)\n         (set\n            $BufX (val $TellBuf)  # Save current 'tell' env\n            $PtrX (val $Ptr)\n            $EndX (val $End) )\n         (tellBeg (b8 (val PipeBufSize)))  # Start 'tell' message\n         (prTell Rpc) )\n      (let (Tos 0  P (val $Extern))  # Iterate external symbol tree\n         (loop\n            (loop\n               (let X (cdr P)  # Get subtrees\n                  (? (atom (car X)))  # Left subtree\n                  (let Y P  # Go left\n                     (setq P @)  # Invert tree\n                     (set X Tos)\n                     (setq Tos Y) ) ) )\n            (loop\n               (let (Sym (val P)  Q (tail Sym)  Nm (val Q))  # Get external symbol\n                  (unless (num? Nm)  # Any properties\n                     (setq Nm (any (& Nm -9)))  # Clear 'extern' tag\n                     (loop\n                        (setq Q (ofs Nm 1))  # Skip property\n                        (? (num? (setq Nm (val Q)))) ) )  # Find name\n                  (let N (add Nm Nm)\n                     (when @@  # Dirty or deleted\n                        (let F (objFile Nm)  # Get file number\n                           (setq N (add N N))\n                           (cond\n                              (@@  # Deleted\n                                 (set Q (shr N 2))  # Set \"not loaded\"\n                                 (when (> (val $DBs) F)  # Local file\n                                    (set $DbFile\n                                       (ofs (val $DbFiles) (* F (dbFile T))) )\n                                    (cleanUp (shl (objId Nm) 6))\n                                    (when Notify\n                                       (let P (val $TellBuf)\n                                          (when\n                                             (>=  # Space for EXTERN+<8>+END\n                                                (val $Ptr)\n                                                (ofs P (- (val PipeBufSize) 10)) )\n                                             (tellEnd -1)  # Send close 'tell' to all PIDs\n                                             (set  # Partial 'tellBeg'\n                                                (inc 'P 8) BEG  # 8 bytes space (PID and count)\n                                                $Ptr (inc P) )  # Begin a list\n                                             (prTell Rpc) ) )\n                                       (prTell Sym) ) ) )  # Send external symbol to 'tell'\n                              (T  # Dirty\n                                 (set Q (shr 1 N 2))  # Set \"loaded\"\n                                 (when (> (val $DBs) F)  # Local file\n                                    (set $DbFile\n                                       (ofs (val $DbFiles) (* F (dbFile T))) )\n                                    (let Blk (rdBlock (shl (objId Nm) 6))  # Read first block\n                                       (set\n                                          Blk (| (val Blk) 1)  # First block in object (might be new)\n                                          $PutBin (fun (void i8) putBlock)\n                                          $Extn 0 )\n                                       (binPrint (val Sym))  # Print value\n                                       (let L (& (val (tail Sym)) -9)  # Get Properties\n                                          (until (num? L)\n                                             (let V (++ L)\n                                                (nond\n                                                   ((atom V)  # Not boolean\n                                                      (unless (nil? (cdr V))  # Not volatile property\n                                                         (binPrint @)  # Print key\n                                                         (binPrint (car V)) ) )  # and value\n                                                   ((nil? V)  # Not volatile property\n                                                      (binPrint V)  # Print key\n                                                      (binPrint $T) ) ) ) ) )  # and 'T'\n                                       (putBlock NIX)\n                                       (setAdr  # Clear link\n                                          (i64 (& (val (val $DbBlock)) BLKTAG))  # Lowest byte of link field\n                                          Blk )\n                                       (wrBlock)  # Write block\n                                       (when (val $BlkLink)  # More blocks\n                                          (cleanUp @) )  # Clean up\n                                       (when Notify\n                                          (let P (val $TellBuf)\n                                             (when\n                                                (>=  # Space for EXTERN+<8>+END\n                                                   (val $Ptr)\n                                                   (ofs P (- (val PipeBufSize) 10)) )\n                                                (tellEnd -1)  # Send close 'tell' to all PIDs\n                                                (set  # Partial 'tellBeg'\n                                                   (inc 'P 8) BEG  # 8 bytes space (PID and count)\n                                                   $Ptr (inc P) )  # Begin a list\n                                                (prTell Rpc) ) )\n                                          (prTell Sym) ) ) ) ) ) ) ) ) )  # Send external symbol to 'tell'\n               (let X (cdr P)\n                  (? (pair (cdr X))  # Right subtree\n                     (let Y P  # Go right\n                        (setq P @)  # Invert tree\n                        (set 2 X Tos)\n                        (setq Tos (| Y 8)) ) ) )  # First visit\n               (loop\n                  (unless Tos\n                     (goto 2) )\n                  (? (=0 (& Tos 8))  # Second visit\n                     (let (X Tos  Y (cdr X))  # Nodes\n                        (setq Tos (car Y))  # TOS on up link\n                        (set Y P)\n                        (setq P X) ) )\n                  (setq Tos (& Tos -9))  # Clear visit bit\n                  (let (X Tos  Y (cdr X))  # Nodes\n                     (setq Tos (cdr Y))\n                     (set 2 Y P)\n                     (setq P X) ) ) ) ) )\n      (: 2\n         (when Notify\n            (tellEnd -1)\n            (set\n               $TellBuf (val $BufX)\n               $Ptr (val $PtrX)\n               $End (val $EndX) ) ) )\n      (eval (car Args)) # Eval post-expression\n      (when (val $DbJnl)\n         (unLockJnl) )\n      (when (pair (val $Zap))  # Objects to delete\n         (let\n            (Z @\n               Out (val $OutFile)\n               Nm (xName (cdr Z))\n               S (pathString Nm (b8 (pathSize Nm)))\n               Out: (outFile (b8+ (outFile T))) )\n            (when (lt0 (openWrAppend S))\n               (openErr Exe (cdr Z)) )\n            (Out: fd @)\n            (Out: ix 0)\n            (Out: tty NO)\n            (set\n               $OutFile (Out:)\n               $PutBin (fun (void i8) _putStdout)\n               $Extn 0 )\n            (let Y (car Z)  # Print zap list\n               (while (pair Y)\n                  (binPrint (++ Y) ) )\n               (flush (Out:))\n               (close (Out: fd))\n               (set Z $Nil)  # Clear zap list\n               (set $OutFile Out) ) ) )  # Restore output channel\n      (when (val $DbLog)\n         (fsyncDB Exe)\n         (truncLog Exe) )\n      (unLockDb 0)  # Unlock all\n      (unsync)\n      (set $Protect (dec (val $Protect)))\n      (let (P (val $DbFiles)  C (val $DBs))  # Iterate DB files\n         (loop\n            ((dbFile P) flu -1)  # Init free list use count\n            (? (=0 (dec 'C)))\n            (setq P (ofs P (dbFile T))) ) )\n      $T ) )\n\n# (mark 'sym|0 [NIL | T | 0]) -> flg\n(de _Mark (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (if (== Y ZERO)  # Clear all marks\n         (let (Db (val $DbFiles)  C (val $DBs))  # Iterate DB files\n            (while (ge0 (dec 'C))\n               (let Db: (dbFile Db)\n                  (Db: mrks 0)  # Set mark vector size to zero\n                  (free (Db: mark))  # Free mark bit vector\n                  (Db: mark null) )  # and set to null\n               (setq Db (ofs Db (dbFile T))) )\n            $Nil )\n         (unless (sym? (val (tail (needSymb Exe Y))))\n            (extErr Exe Y) )\n         (let\n            (Nm (name (& (val (tail Y)) -9))\n               F (objFile Nm)\n               N (objId Nm) )\n            (if (>= F (val $DBs))\n               $T  # Non-local file\n               (let\n                  (Flg (eval (car X))  # Second arg\n                     Db: (dbFile (ofs (val $DbFiles) (* F (dbFile T))))\n                     P (Db: mark)  # Mark bit vector\n                     I (shr N 3) )  # Byte index\n                  (when (>= I (Db: mrks))  # Greater or equal to mark vector size\n                     (let J (inc I)\n                        (memset\n                           (ofs\n                              (setq P (Db: mark (alloc P J)))  # Increase mark bit vector\n                              (Db: mrks) )\n                           0  # Clear new area\n                           (- J (Db: mrks)) )\n                        (Db: mrks J) ) )  # New mark vector size\n                  (setq\n                     P (ofs P I)  # Byte position in bit vector\n                     N (i8 (shl 1 (& N 7))) )  # Bit position\n                  (let B (val P)  # Old value\n                     (cond\n                        ((& B N)  # Bit is set\n                           (when (== ZERO Flg)\n                              (set P (& B (x| N -1))) )  # Clear mark\n                           $T )  # Return T\n                        (T  # Bit is not set\n                           (when (== $T Flg)\n                              (set P (| B N)) )  # Set mark\n                           $Nil ) ) ) ) ) ) ) ) )  # Return NIL\n\n# (free 'cnt) -> (sym . lst)\n(de _Free (Exe)\n   (let\n      (X (cdr Exe)\n         F (dec (i32 (evCnt Exe X)))\n         Buf (b8 (* BLK 2)) )\n      (when (>= F (val $DBs))\n         (dbfErr Exe) )\n      (set $DbFile\n         (ofs (val $DbFiles) (* F (dbFile T))) )\n      (rdLockDb)  # Lock for reading\n      (blkPeek 0 Buf (* 2 BLK))  # Read 'free' and 'next' from block zero\n      (set $BlkLink (getAdr Buf))  # free' as next block\n      (let\n         (Y\n            (cons  # CAR of result list\n               (extern  # 'next' symbol\n                  (extNm F (shr (getAdr (ofs Buf BLK)) 6)) )\n               $Nil )\n            R (save Y) )\n         (while (val $BlkLink)  # Collect free list\n            (setq Y\n               (set 2 Y\n                  (cons (extern (extNm F (shr @ 6))) $Nil) ) )\n            (rdBlock @) )\n         (unLockDb 1)  # Unlock\n         R ) ) )\n\n# (dbck ['cnt] 'flg) -> any\n(de _Dbck (Exe)\n   (let\n      (X (cdr Exe)\n         Y (eval (car X))\n         Jnl (val $DbJnl)\n         Buf (b8 (* BLK 2))\n         Cnt BLKSIZE\n         Syms 0\n         Blks 0 )\n      (if (cnt? Y)\n         (let F (dec (i32 (int Y)))\n            (when (>= F (val $DBs))\n               (dbfErr Exe) )\n            (set $DbFile\n               (ofs (val $DbFiles) (* F (dbFile T))) )\n            (setq Y (eval (cadr X))) )  # Use first dbFile\n         (set $DbFile (val $DbFiles)) )\n      (set $Protect (inc (val $Protect)))\n      (wrLockDb)\n      (when Jnl\n         (lockJnl)  # Write lock journal\n         (set $DbJnl null) )  # Disable Journal\n      (blkPeek 0 Buf (* 2 BLK))  # Read 'free' and 'next' from block zero\n      (set $BlkLink (getAdr Buf))  # free' as next block\n      (let Next (getAdr (ofs Buf BLK))  # Get 'next'\n         (while (val $BlkLink)  # Check free list\n            (let Blk (rdBlock @)\n               (set Blk (| (val Blk) BLKTAG)) )  # Mark free list\n            (when (> (inc 'Cnt BLKSIZE) Next)\n               (setq Y (mkStr ($ \"Circular free list\")))\n               (goto 9) )\n            (wrBlock) )\n         (set $DbJnl Jnl)  # Restore Journal\n         (let P BLKSIZE\n            (until (== P Next)  # Check all chains\n               (let Blk (rdBlock P)\n                  (case (& (val Blk) BLKTAG)\n                     (0  # Free block\n                        (inc 'Cnt BLKSIZE)\n                        (memcpy Blk Buf BLK T)\n                        (wrBlock)\n                        (setAdr P Buf)\n                        (blkPoke 0 Buf BLK) )\n                     (1  # ID-block of symbol\n                        (inc 'Syms)\n                        (let I (i8 2)\n                           (loop  # Check chains\n                              (inc 'Blks)\n                              (inc 'Cnt BLKSIZE)\n                              (? (=0 (val $BlkLink)))\n                              (unless\n                                 (== I\n                                    (& (val (rdBlock @)) BLKTAG) )\n                                 (setq Y (mkStr ($ \"Bad chain\")))\n                                 (goto 9) )\n                              (when (> BLKTAG I)\n                                 (inc 'I) ) ) ) ) ) )\n               (inc 'P BLKSIZE) ) )\n         (set $BlkLink (getAdr Buf))\n         (set $DbJnl null)  # Disable Journal\n         (while (val $BlkLink)  # Unmark free list\n            (let Blk (rdBlock @)\n               (when (& (val Blk) BLKTAG)\n                  (set Blk (& (val Blk) BLKMASK))\n                  (wrBlock) ) ) )\n         (nond\n            ((== Cnt Next)\n               (setq Y (mkStr ($ \"Bad count\"))) )\n            ((nil? Y)\n               (setq Y (cons (cnt Blks) (cnt Syms))) ) ) )\n      (: 9\n         (when (set $DbJnl Jnl)\n            (unLockJnl) )\n         (unLockDb 1)  # Unlock\n         (set $Protect (dec (val $Protect)))\n         Y ) ) )\n"
  },
  {
    "path": "src/dec.l",
    "content": "# 10nov25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (inFile outFile ioFrame ioxFrame ctFrame dbFile)\n\n# I/O\n(struct inFile\n   (name 8 i8*)         # File name\n   (fd 4 i32)           # File descriptor\n   (chr 4 i32)          # Next character\n   (line 4 i32)         # Current line number\n   (src 4 i32)          # Source start line\n   (ix 4 i32)           # Buffer index\n   (cnt 4 i32)          # Buffer byte count\n   (buf BUFSIZ i8)      # Buffer\n   (tty 1 i1) )         # TTY flag\n\n(struct outFile\n   (fd 4 i32)           # File descriptor\n   (ix 4 i32)           # Buffer index\n   (buf BUFSIZ i8)      # Buffer\n   (tty 1 i1) )         # TTY flag\n\n(struct ioFrame\n   (link 8 i8*)         # Frame link\n   (file 8 i8*)         # File structure\n   (fun 8 i8*)          # I/O function\n   (pid 4 i32) )        # Process ID\n\n(struct ioxFrame\n   (link 8 i8*)         # Frame link\n   (file 8 i8*)         # NULL\n   (fun 8 i8*)          # I/O function\n   (exe 8 any)          # Expression\n   (chr 4 i32) )        # Saved $Chr\n\n(struct ctFrame\n   (link 8 i8*)         # Frame link\n   (fd 4 i32) )         # File descriptor\n\n(struct dbFile\n   (fd 4 i32)           # File descriptor\n   (db 4 i32)           # File number\n   (sh 4 i32)           # Block shift\n   (siz 4 i32)          # Block size (64 << sh)\n   (mark 8 i8*)         # Mark bit vector\n   (mrks 8 i64)         # Mark vector size\n   (flu 8 i64)          # Free list use count\n   (lck 1 i1)           # Lock flag\n   (drt 1 i1)           # Dirty flag\n   (pad 6 i8) )         # Padding\n\n# Catch/throw\n(local) caFrame\n\n(struct caFrame\n   (link 8 i8*)         # Frame link\n   (tag 8 any)          # Catch tag\n   (fin 8 any)          # 'finally' expression\n   (co 8 i8*)           # Current coroutine\n   (intrn 8 any)        # Internal symbols\n   (trns1 8 any)        # Transient symbols\n   (trns2 8 any)\n   (priv1 8 any)        # Private symbols\n   (priv2 8 any)\n   (env (env T) i8)     # Saved environment\n   (rst 0 i8) )         # Restart jmp_buf (JmpBufSize)\n\n# Coroutines\n(local) coroutine\n\n(struct coroutine\n   (tag 8 any)          # Coroutine tag\n   (nxt 8 i8*)          # Next coroutine\n   (org 8 i8*)          # Originator\n   (otg 8 any)          # Originator tag\n   (prg 8 any)          # Code body\n   (lim 8 i8*)          # Stack limit / Free link\n   (at 8 any)           # Saved [@]\n   (lnk 8 any)          # Link marker\n   (bnd 8 any)          # Bind marker\n   (ca 8 i8*)           # Catch marker\n   (in 8 i8*)           # InFrames marker\n   (out 8 i8*)          # OutFrames marker\n   (err 8 i8*)          # ErrFrames marker\n   (ctl 8 i8*)          # CtlFrames marker\n   (intrn 8 any)        # Internal symbols\n   (trns1 8 any)        # Transient symbols\n   (trns2 8 any)\n   (priv1 8 any)        # Private symbols\n   (priv2 8 any)\n   (env (env T) i8)     # Saved environment\n   (rst 0 i8) )         # Restart jmp_buf (JmpBufSize)\n\n# Family IPC\n(local) child\n\n(struct child\n   (buf 8 i8*)          # Buffer\n   (ofs 4 i32)          # Buffer offset\n   (cnt 4 i32)          # Buffer byte count\n   (pid 4 i32)          # Process ID\n   (hear 4 i32)         # Hear pipe\n   (tell 4 i32)         # Tell pipe\n   (pad 4 i8) )         # Padding\n\n# libc\n(local) (malloc realloc free fork getenv setenv getpid getpgrp setsid alarm\nsetpgid execvp isatty openpty login_tty tcgetattr tcgetpgrp tcsetpgrp read write\npread pwrite fread fwrite putc_unlocked getc_unlocked fopen fflush feof fclose\nfileno fsync pipe memcmp strlen strcpy strdup strcmp strchr strrchr dlsym\ndlerror dup dup2 close signal waitpid poll setjmp longjmp kill exit)\n\n(de T i8* malloc (i64))\n(de T i8* realloc (i8* i64))\n(de T void free (i8*))\n(de T i32 fork ())\n(de T i8* getenv (i8*))\n(de T i32 setenv (i8* i8* i32))\n(de T i8* getcwd (i8* i64))\n(de T i32 chdir (i8*))\n(de T i32 getpid ())\n(de T i32 getpgrp ())\n(de T i32 setsid ())\n(de T i32 alarm (i32))\n(de T i32 setpgid (i32 i32))\n(de T i32 execvp (i8* i8**))\n(de T i32 isatty (i32))\n(de T i32 openpty (i32* i32* i8* i8* i8*))\n(de T i32 login_tty (i32))\n(de T i32 tcgetattr (i32 i8*))\n(de T i32 tcgetpgrp (i32))\n(de T i32 tcsetpgrp (i32 i32))\n(de T i64 read (i32 i8* i64))\n(de T i64 write (i32 i8* i64))\n(de T i64 pread (i32 i8* i64 i64))\n(de T i64 pwrite (i32 i8* i64 i64))\n(de T i32 fread (i8* i64 i64 i8*))\n(de T i32 fwrite (i8* i64 i64 i8*))\n(de T i32 putc_unlocked (i32 i8*))\n(de T i32 getc_unlocked (i8*))\n(de T i8* fopen (i8* i8*))\n(de T i32 fflush (i8*))\n(de T i32 feof (i8*))\n(de T i32 fclose (i8*))\n(de T i32 fileno (i8*))\n(de T i32 fsync (i32))\n(de T i32 pipe (i32*))\n(de T i32 memcmp (i8* i8* i64))\n(de T i64 strlen (i8*))\n(de T i8* strcpy (i8* i8*))\n(de T i8* strdup (i8*))\n(de T i32 strcmp (i8* i8*))\n(de T i8* strchr (i8* i32))\n(de T i8* strrchr (i8* i32))\n(de T i8* dlsym (i8* i8*))\n(de T i8* dlerror ())\n(de T i32 dup (i32))\n(de T i32 dup2 (i32 i32))\n(de T i32 close (i32))\n(de T i8* signal (i32 i8*))\n(de T i32 waitpid (i32 i32* i32))\n(de T i32 poll (i64* i32 i64))\n(de T i32 setjmp (i8*))\n(de T NIL longjmp (i8* i32))\n(de T i32 kill (i32 i32))\n(de T NIL exit (i32))\n\n# libreadline\n(local) (add_history history_list clear_history)\n\n(de T void add_history (i8*))\n(de T i8*** history_list ())\n(de T void clear_history ())\n\n# Glue lib.c\n(local) (TgOS TgCPU PipeBufSize)\n\n(var TgOS i8 NIL)  # Target OS\n(var TgCPU i8 NIL)  # Target CPU\n(var PipeBufSize i32 NIL)  # PIPE_BUF\n(var Fsign i1 NIL)  # Float conversion\n(var Fdigit i64 NIL)\n\n(local) (stderrMsg gPrintf strErrno openRd openWr openRdWr openRdWrExcl\nopenRdWrCreate openRdWrAppend openWrAppend fseekOfs fseek0 seek0 truncate0\nsocketPair fcntlCloExec fcntlSetFl nonBlocking fcntlSetOwn getDir)\n\n(de T i8* stderrMsg (i8* i8*))\n(de T void gPrintf (i8* i32 i8* i8*))\n(de T i8* strErrno ())\n(de T i32 openRd (i8*))\n(de T i32 openWr (i8*))\n(de T i32 openRdWr (i8*))\n(de T i32 openRdWrExcl (i8*))\n(de T i32 openRdWrCreate (i8*))\n(de T i32 openRdWrAppend (i8*))\n(de T i32 openWrAppend (i8*))\n(de T i1 fseekOfs (i8* i32))\n(de T i1 fseek0 (i8*))\n(de T i1 seek0 (i32))\n(de T i1 truncate0 (i32))\n(de T i32 socketPair (i32*))\n(de T i32 fcntlCloExec (i32))\n(de T void fcntlSetFl (i32 i32))\n(de T i32 nonBlocking (i32))\n(de T void fcntlSetOwn (i32 i32))\n(de T i8* getDir (i8*))\n\n(local) (initReadline gReadline rlHide rlShow rlSigBeg rlSigEnd currentLine)\n\n(de T void initReadline ())\n(de T i8* gReadline (i8*))\n(de T void rlHide ())\n(de T void rlShow ())\n(de T void rlSigBeg ())\n(de T void rlSigEnd ())\n(de T i8* currentLine ())\n\n# Signals\n(local) (Sig SigDfl SigIgn)\n\n(var Sig i32 NIL)\n(var SigDfl i8* NIL)\n(var SigIgn i8* NIL)\n\n(local) (gSignal sigUnblock iSignal sigChld waitWuntraced wifStopped)\n\n(de T i32 gSignal (i32))\n(de T void iSignal (i32 i8*))\n(de T void sigUnblock (i32))\n(de T void sigChld (i32))\n(de T i32 waitWuntraced (i32 i32*))\n(de T i32 wifStopped (i32*))\n\n(local) (nErrno gErrno)\n\n(de T i32 nErrno ())\n(de T i32 gErrno ())\n\n# Terminal\n(local) (Tio OrgTermio Termio stopTerm setRaw setCooked reopenTty)\n\n(var Tio i1 NIL)\n(var OrgTermio i8 NIL)\n(var Termio i8* NIL)\n\n(de T void stopTerm ())\n(de T void setRaw ())\n(de T void setCooked ())\n(de T i1 reopenTty (i8*))\n\n# System\n(local) (getUsec getMsec getDate getGmDate getTime getGmTime ulimStk fileInfo)\n\n(de T i64 getUsec (i1))\n(de T i64 getMsec ())\n(de T i64 getDate ())\n(de T i64 getGmDate ())\n(de T i64 getTime ())\n(de T i64 getGmTime ())\n(de T i8* ulimStk ())\n(de T i64 fileInfo (i1 i1 i8* i64*))\n\n# Polling\n(local) (pollIn pollOut pollIgn gPoll readyIn readyOut)\n\n(de T void pollIn (i32 i64*))\n(de T void pollOut (i32 i64*))\n(de T void pollIgn (i64*))\n(de T i32 gPoll (i64* i32 i64))\n(de T i1 readyIn (i64*))\n(de T i1 readyOut (i64*))\n\n# Locking\n(local) (rdLock wrLock unLock getLock)\n\n(de T i32 rdLock (i32 i64 i64 i1))\n(de T i32 wrLock (i32 i64 i64 i1))\n(de T i32 unLock (i32 i64 i64))\n(de T i32 getLock (i32 i64 i64))\n\n# Catch and Throw\n(local) (JmpBufSize QuitRst SoRst)\n\n(var JmpBufSize i64 NIL)  # sizeof(jmp_buf)\n(var QuitRst i8 NIL)\n(var SoRst i8 NIL)\n\n# Native lib.c\n(local) (dlOpen ffiPrep ffiCall)\n\n(de T i8* dlOpen (i8*))\n(de T i8* ffiPrep (i8* i8* i64))\n(de T i64 ffiCall (i8* i64))\n\n(local) (boxFloat boxFlt boxDouble boxDbl bufFloat bufDouble)\n\n(de T i64 boxFloat (i32 i64))\n(de T i64 boxFlt ())\n(de T i64 boxDouble (i64 i64))\n(de T i64 boxDbl ())\n(de T void bufFloat (i64 i64 i32*))\n(de T void bufDouble (i64 i64 i64*))\n\n# Util\n(local) chance\n\n(de T i1 chance (i64))\n\n# Case mappings lib.c\n(local) (isLowc isUppc isLetterOrDigit toUpperCase toLowerCase)\n\n(de T i1 isLowc (i32))\n(de T i1 isUppc (i32))\n(de T i1 isLetterOrDigit (i32))\n(de T i32 toUpperCase (i32))\n(de T i32 toLowerCase (i32))\n\n### Forward references ###\n\n# main.l\n(local) (dbg equal compare evList)\n\n(de dbg (i64 any))\n(de i1 equal (any any))\n(de i64 compare (any any))\n(de evList (any))\n\n# gc.l\n(local) (cons cons2 cons3 consStr)\n\n(de cons (any any))\n(de cons2 (any any any))\n(de cons3 (any any any any))\n(de consStr (any))\n\n# sym.l\n(local) (bufSize bufString mkStr firstByte pack xSym subStr)\n\n(de i64 bufSize (any))\n(de i8* bufString (any i8*))\n(de mkStr (i8*))\n(de i8 firstByte (any))\n(de void pack (any i64*))\n(de i64 subStr (any any i64))\n\n# io.l\n(local) (flush flushAll newline space outWord outString print repl)\n\n(de i1 flush (i8*))\n(de void flushAll ())\n(de void newline ())\n(de void space ())\n(de void outWord (i64))\n(de void outString (i8*))\n(de void print (any))\n(de repl (any i8* any))\n\n# db.l\n(local) (dbFetch dbTouch dbZap)\n\n(de void dbFetch (any any))\n(de void dbTouch (any any))\n(de void dbZap (any))\n\n# flow.l\n(local) (putSrc brkLoad)\n\n(de void putSrc (any any))\n(de brkLoad (any))\n\n### Primitives ###\n(local) (caar cadr cdar cddr int cnt sign sym name memq member length boxNum\nbox64 eval run)\n\n(inline caar (X)\n   (car (car X)) )\n\n(inline cadr (X)\n   (car (cdr X)) )\n\n(inline cdar (X)\n   (cdr (car X)) )\n\n(inline cddr (X)\n   (cdr (cdr X)) )\n\n(inline int (X)\n   (shr X 4) )\n\n(inline cnt (X)\n   (any (| (shl X 4) 2)) )\n\n(inline sign (X)\n   (any (| X 8)) )\n\n(inline sym (X)\n   (any (| X 8)) )\n\n(inline name (Tail)\n   (until (num? Tail)\n      (shift Tail) )\n   Tail )\n\n(inline memq (X L)\n   (use @\n      (loop\n         (? (atom L) NO)\n         (? (== X (car L)) YES)\n         (shift L) ) ) )\n\n(inline member (X L)\n   (use @\n      (loop\n         (? (atom L) NO)\n         (? (equal X (car L)) YES)\n         (shift L) ) ) )\n\n(inline nth (N X)\n   (use @\n      (let C (int N)\n         (while (dec 'C)\n            (shift X) )\n         (if (sign? N)\n            (cdr X)\n            (car X) ) ) ) )\n\n(inline length (X)\n   (use @\n      (let N 0\n         (while (pair X)\n            (inc 'N)\n            (shift X) )\n         N ) ) )\n\n(inline box64 (N)\n   (use @\n      (if (& N (hex \"F000000000000000\"))\n         (boxNum N)\n         (cnt N) ) ) )\n\n(inline eval (X)\n   (use @\n      (cond\n         ((num? X) X)\n         ((sym? X) (val X))\n         (T (evList X)) ) ) )\n\n(inline exec (Prg)\n   (use @\n      (loop\n         (when (pair (++ Prg))\n            (evList @) )\n         (? (atom Prg)) ) ) )\n\n(inline run (Prg)\n   (use @\n      (loop\n         (let X (++ Prg)\n            (? (atom Prg) (eval X))\n            (and (pair X) (evList X)) ) ) ) )\n\n# Runtime checks\n(local) (stkChk sigChk)\n\n(inline stkChk (Exe)\n   (when (> (val $StkLimit) (stack))\n      (stkErr Exe) ) )\n\n(inline sigChk (Exe)\n   (when (volatile $Signal)\n      (sighandler Exe) ) )\n\n# Argument checks\n(local) (needCnt needNum needSymb needPair needLst needVar chkVar needChkVar needNsp)\n\n(inline needCnt (Exe X)\n   (unless (cnt? X)\n      (cntErr Exe X) )\n   X )\n\n(inline needNum (Exe X)\n   (unless (num? X)\n      (numErr Exe X) )\n   X )\n\n(inline needSymb (Exe X)\n   (unless (symb? X)\n      (symErr Exe X) )\n   X )\n\n(inline needPair (Exe X)\n   (when (atom X)\n      (pairErr Exe X) )\n   X )\n\n(inline needLst (Exe X)\n   (unless (or (pair X) (nil? X))\n      (lstErr Exe X) )\n   X )\n\n(inline needVar (Exe X)\n   (when (num? X)\n      (varErr Exe X) )\n   X )\n\n(inline chkVar (Exe X)\n   (when (and (>= X $Nil) (>= $T X))\n      (protErr Exe X) )\n   X )\n\n(inline needChkVar (Exe X)\n   (when (num? X)\n      (varErr Exe X) )\n   (chkVar Exe X)\n   X )\n\n(inline needNsp (Exe X)\n   (unless (and (pair (val X)) (== $Tilde (car @)))\n      (symNspErr Exe X) )\n   X )\n\n# Copy environments\n(inline putCaEnv (Ca)\n   (let Ca: (caFrame Ca)\n      (memcpy (Ca: (env)) (env) (env T) T)\n      (Ca: intrn (val $Intern))\n      (Ca: trns1 (val $Transient))\n      (Ca: trns2 (val 2 $Transient))\n      (Ca: priv1 (val $PrivT))\n      (Ca: priv2 (val 2 $PrivT)) ) )\n\n(inline getCaEnv (Ca)\n   (let Ca: (caFrame Ca)\n      (memcpy (env) (Ca: (env)) (env T) T)\n      (set $Intern (Ca: intrn))\n      (set $Transient (Ca: trns1))\n      (set 2 $Transient (Ca: trns2))\n      (set $PrivT (Ca: priv1))\n      (set 2 $PrivT (Ca: priv2)) ) )\n\n(inline putCrtEnv (Crt)\n   (let Crt: (coroutine Crt)\n      (memcpy (Crt: (env)) (env) (env T) T)\n      (Crt: intrn (val $Intern))\n      (Crt: trns1 (val $Transient))\n      (Crt: trns2 (val 2 $Transient))\n      (Crt: priv1 (val $PrivT))\n      (Crt: priv2 (val 2 $PrivT)) ) )\n\n(inline getCrtEnv (Crt)\n   (let Crt: (coroutine Crt)\n      (set $Intern (Crt: intrn))\n      (set $Transient (Crt: trns1))\n      (set 2 $Transient (Crt: trns2))\n      (set $PrivT (Crt: priv1))\n      (set 2 $PrivT (Crt: priv2)) ) )\n"
  },
  {
    "path": "src/defs.l",
    "content": "# 28sep20 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n# Constants\n(local) (HEAP CELLS STACK TOP BUFSIZ DB1)\n\n(equ\n   HEAP (*/ 1024 1024 8)      # Heap size (number of pointers)\n   CELLS (/ HEAP 2)           # Number of cells in a heap (65536)\n   STACK (* 64 1024)          # Default coroutine stack size (64 kB)\n   TOP (hex \"110000\")         # Character top\n   BUFSIZ 4096                # I/O buffer size\n   DB1 (hex \"1A\")             # Name of '{1}'\n   292MY (dec (** 2 63)) )    # 292 million years\n\n# PLIO Tokens\n(local) (NIX BEG DOT END NUMBER INTERN TRANSIENT EXTERN)\n\n(equ\n   NIX 0        # NIL\n   BEG 1        # Begin list\n   DOT 2        # Dotted pair\n   END 3        # End list\n   NUMBER 0     # Number\n   INTERN 1     # Internal symbol\n   TRANSIENT 2  # Transient symbol\n   EXTERN 3 )   # External symbol\n\n# DB-I/O\n(local) (BLK BLKSIZE BLKMASK BLKTAG)\n\n(equ\n   BLK 6        # Block address size\n   BLKSIZE 64   # DB block unit size\n   BLKMASK -64  # Block address mask\n   BLKTAG 63 )  # Block tag mask\n\n## Sync src/lib.c 'gSignal' and src/glob.l '$Signal'\n(local) (SIGHUP SIGINT SIGUSR1 SIGUSR2 SIGPIPE SIGALRM SIGTERM SIGCHLD SIGCONT\nSIGSTOP SIGTSTP SIGTTIN SIGTTOU SIGWINCH SIGIO)\n\n(equ\n   SIGHUP    1\n   SIGINT    2\n   SIGUSR1   3\n   SIGUSR2   4\n   SIGPIPE   5\n   SIGALRM   6\n   SIGTERM   7\n   SIGCHLD   8\n   SIGCONT   9\n   SIGSTOP  10\n   SIGTSTP  11\n   SIGTTIN  12\n   SIGTTOU  13\n   SIGWINCH 14\n   SIGIO    15 )\n\n## Sync src/lib.c 'gErrno'\n(local) (ENOENT EINTR EBADF EAGAIN EACCES EPIPE ECONNRESET)\n\n(equ\n   ENOENT     1      # No such file or directory\n   EINTR      2      # Interrupted system call\n   EBADF      3      # Bad file number\n   EAGAIN     4      # Try again\n   EACCES     5      # Permission denied\n   EPIPE      6      # Broken pipe\n   ECONNRESET 7 )    # Connection reset by peer\n"
  },
  {
    "path": "src/ext.l",
    "content": "# 09jul24 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(begin \"ext\" T\n   \"vers.l\" \"defs.l\" \"glob.l\" \"dec.l\" )\n\n(local) (SNXBASE SNXSIZE Snx FD)\n\n# External declarations\n(local) (xCnt evCnt evSym xName symChar charSym initInFile initOutFile)\n\n(de T i64 xCnt (any any))\n(de T i64 evCnt (any any))\n(de T evSym (any))\n(de T xName (any))\n(de T i32 symChar (i64*))\n(de T void charSym (i32 i64*))\n(de T i8* initInFile (i32 i8*))\n(de T i8* initOutFile (i32))\n\n# Soundex Algorithm\n(array $SnxTab i8\n   (char \"0\") (char \"1\") (char \"2\") (char \"3\") (char \"4\") (char \"5\") (char \"6\") (char \"7\")  # 48\n   (char \"8\") (char \"9\")        0          0          0          0          0          0\n          0          0   (char \"F\") (char \"S\") (char \"T\")        0   (char \"F\") (char \"S\")  # 64\n          0          0   (char \"S\") (char \"S\") (char \"L\") (char \"N\") (char \"N\")        0\n   (char \"F\") (char \"S\") (char \"R\") (char \"S\") (char \"T\")        0   (char \"F\") (char \"F\")\n   (char \"S\")        0   (char \"S\")        0          0          0          0          0\n          0          0   (char \"F\") (char \"S\") (char \"T\")        0   (char \"F\") (char \"S\")  # 96\n          0          0   (char \"S\") (char \"S\") (char \"L\") (char \"N\") (char \"N\")        0\n   (char \"F\") (char \"S\") (char \"R\") (char \"S\") (char \"T\")        0   (char \"F\") (char \"F\")\n   (char \"S\")        0   (char \"S\")        0          0          0          0          0\n          0          0          0          0          0          0          0          0  # 128\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0          0  # 160\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0          0\n          0          0          0          0          0          0          0   (char \"S\")  # 192\n          0          0          0          0          0          0          0          0\n   (char \"T\") (char \"N\")   0    0          0          0          0   (char \"S\")\n          0          0          0          0          0          0          0   (char \"S\")\n          0          0          0          0          0          0          0   (char \"S\")  # 224\n          0          0          0          0          0          0          0          0\n          0   (char \"N\") )\n\n(setq\n   SNXBASE 48\n   SNXSIZE (+ (* 24 8) 2) )\n\n# (ext:Snx 'any ['cnt]) -> sym\n(de Snx (Exe)\n   (let X (cdr Exe)\n      (if (nil? (evSym X))\n         @\n         (let\n            (P (push 0 (xName @) NIL)  # [cnt name link]\n               C (symChar P) )\n            (while (> SNXBASE C)\n               (unless (setq C (symChar P))\n                  (ret $Nil) ) )\n            (let\n               (Q (link (ofs P 1) T)\n                  R (push 4 NIL ZERO NIL)  # [cnt last name link]\n                  N (if (pair (shift X)) (evCnt Exe X) 24) )\n               (link (ofs R 2))\n               (when\n                  (or\n                     (and (>= C (char \"a\")) (>= (char \"z\") C))\n                     (== C 128)\n                     (and (>= C 224) (>= 255 C)) )\n                  (setq C (& C -33)) )  # Convert to lower case\n               (charSym C R)\n               (let Last C\n                  (loop\n                     (? (=0 (setq C (symChar P))))\n                     (when (> C 32)  # Non-white\n                        (cond\n                           ((or\n                                 (lt0 (dec 'C SNXBASE))  # Too small\n                                 (>= C SNXSIZE)  # Too big\n                                 (=0 (setq C (i32 (val (ofs $SnxTab C))))) )  # No entry\n                              (setq Last 0) )\n                           ((<> C Last)\n                              (? (=0 (dec 'N)))\n                              (charSym (setq Last C) R) ) ) ) )\n                  (consStr (val 3 R)) ) ) ) ) ) )\n\n# File Descriptor\n# (ext:FD 'cnt) -> fd\n(de FD (Exe)\n   (prog1\n      (eval (cadr Exe))\n      (when (ge0 (i32 (xCnt Exe @)))\n         (initInFile @ null)\n         (initOutFile @) ) ) )\n\n# Base64 Encoding\n(local) ($Chr64 $Stat64 $Next64)\n\n(str $Chr64 \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\")\n(var $Stat64 i32 0)  # State\n(var $Next64 i32 0)  # Next value\n\n# (ext:Base64) -> num|NIL\n# (ext:Base64 'num1|NIL ['num2|NIL ['num3|NIL]]) -> flg\n(de Base64 (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((atom X)  # No arguments\n            (let C (val $Chr)\n               (while (and (ge0 C) (>= (char \" \") C))\n                  (setq C (call $Get)) )\n               (if (strchr $Chr64 C)\n                  (let N (i32 (- @ $Chr64))  # Legal character\n                     (setq C (call $Get))\n                     (case (val $Stat64)  # Initial state\n                        (0\n                           (unless (strchr $Chr64 C)\n                              (set $Stat64 0)\n                              (ret $Nil) )\n                           (set $Next64 (i32 (- @ $Chr64)))\n                           (call $Get)\n                           (set $Stat64 (inc (val $Stat64)))\n                           (cnt\n                              (i64\n                                 (| (shl N 2) (shr (val $Next64) 4)) ) ) )\n                        (1\n                           (prog1\n                              (cnt\n                                 (i64\n                                    (|\n                                       (shl (& (val $Next64) 15) 4)\n                                       (shr N 2) ) ) )\n                              (set\n                                 $Next64 N\n                                 $Stat64 (inc (val $Stat64)) ) ) )\n                        (T\n                           (set $Stat64 0)\n                           (cnt\n                              (i64\n                                 (| (shl (& (val $Next64) 3) 6) N) ) ) ) ) )\n                  (when (== C (char \"=\"))  # Filler\n                     (call $Get)\n                     (when (== (val $Stat64) 1)\n                        (call $Get) ) )\n                  (set $Stat64 0)\n                  $Nil ) ) )\n         ((nil? (eval (car X))) @)\n         (T\n            (let N (xCnt Exe @)\n               (call $Put (val (ofs $Chr64 (shr N 2))))\n               (when (nil? (eval (car (shift X))))\n                  (call $Put\n                     (val (ofs $Chr64 (shl (& N 3) 4))) )\n                  (call $Put (char \"=\"))\n                  (call $Put (char \"=\"))\n                  (ret $Nil) )\n               (let M (xCnt Exe @)\n                  (call $Put\n                     (val\n                        (ofs $Chr64\n                           (| (shl (& N 3) 4) (shr M 4)) ) ) )\n                  (when (nil? (eval (cadr X)))\n                     (call $Put\n                        (val (ofs $Chr64 (shl (& M 15) 2))) )\n                     (call $Put (char \"=\"))\n                     (ret $Nil) )\n                  (setq N (xCnt Exe @))\n                  (call $Put\n                     (val\n                        (ofs $Chr64\n                           (| (shl (& M 15) 2) (shr N 6)) ) ) )\n                  (call $Put (val (ofs $Chr64 (& N 63))))\n                  $T ) ) ) ) ) )\n\n(end)\n"
  },
  {
    "path": "src/ext.ll",
    "content": "source_filename = \"ext.l\"\n\ndeclare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)\ndeclare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64)\ndeclare i64 @llvm.fshl.i64(i64, i64, i64)\ndeclare i64 @llvm.fshr.i64(i64, i64, i64)\ndeclare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i1)\ndeclare void @llvm.memset.p0i8.i64(i8*, i8, i64, i1)\ndeclare i8* @llvm.stacksave()\ndeclare void @llvm.stackrestore(i8*)\ndeclare void @llvm.donothing() nounwind readnone\n\n@$AV0 = external global i8*\n@$AV = external global i8**\n@$PilHome = external global i8*\n@$PilLen = external global i64\n@$UsrHome = external global i8*\n@$UsrLen = external global i64\n@$Heaps = external global i64\n@$Avail = external global i64\n@$Extern = external global i64\n@$ExtCnt = external global i64\n@$ExtSkip = external global i64\n@$Coroutines = external global i8*\n@$Current = external global i8*\n@$CrtLast = external global i8*\n@$CrtFree = external global i8*\n@$SysStkLimit = external global i8*\n@$StkLimit = external global i8*\n@$StkSizeT = external global i64\n@$StkSize = external global i64\n@$Stdin = external global i8*\n@$Stdout = external global i8*\n@$LinePtr = external global i8*\n@$LineBuf = external global i8*\n@$LinePrmt = external global i8*\n@$ReplPrmt = external global i8*\n@$ContPrmt = external global i8*\n@$Ret = external global i64\n@$Ret2 = external global i64\n@$TtyPid = external global i32\n@$InFDs = external global i32\n@$InFiles = external global i8**\n@$OutFiles = external global i8**\n@$IoCnt = external global i32\n@$IoIx = external global i64\n@$InChar = external global i64\n@$OutChar = external global i64\n@$PutBin = external global void(i8)*\n@$GetBin = external global i32()*\n@$OutFDs = external global i32\n@$Nfds = external global i32\n@$Poll = external global i64*\n@$SeedL = external global i64\n@$SeedH = external global i64\n@$USec = external global i64\n@$Rt = external global i64\n@$Child = external global i8*\n@$Children = external global i32\n@$Slot = external global i32\n@$Spkr = external global i32\n@$Mic = external global i32\n@$SpMiPipe = external global [2 x i32]\n@$Talking = external global i32\n@$Hear = external global i32\n@$Tell = external global i32\n@$TellBuf = external global i8*\n@$Ptr = external global i8*\n@$End = external global i8*\n@$BufX = external global i8*\n@$PtrX = external global i8*\n@$EndX = external global i8*\n@$ExtN = external global i32\n@$Extn = external global i32\n@$StrP = external global i64*\n@$GcCount = external global i64\n@$DbFiles = external global i8*\n@$DbFile = external global i8*\n@$DBs = external global i32\n@$MaxBlkSize = external global i32\n@$DbBlock = external global i8*\n@$BlkIndex = external global i64\n@$BlkLink = external global i64\n@$BlkPtr = external global i8*\n@$BlkEnd = external global i8*\n@$DbJnl = external global i8*\n@$DbLog = external global i8*\n@$Signal = external global [16 x i32]\n@SymTab = external global [898 x i64]\n@gcData = external global [53 x i64]\n@cbFuns = external global [24 x i64]\n@env = external global [25 x i64]\n@$Cell = external global [2 x i64]\n@$Version = external global [3 x i64]\n@$TBuf = external global [2 x i8]\n@$Month = external global [13 x i8]\n@$Repl = external global i1\n@$PRepl = external global i1\n@$Tc = external global i1\n@$Jam = external global i1\n@$InBye = external global i1\n@$Sync = external global i1\n@$Empty = constant [1 x i8] c\"\\00\"\n@$Delim = constant [16 x i8] c\" \\09\\0A\\0D\\22'(),[]`{}~\\00\"\ndeclare i8* @malloc(i64)\ndeclare i8* @realloc(i8*, i64)\ndeclare void @free(i8*)\ndeclare i32 @fork()\ndeclare i8* @getenv(i8*)\ndeclare i32 @setenv(i8*, i8*, i32)\ndeclare i8* @getcwd(i8*, i64)\ndeclare i32 @chdir(i8*)\ndeclare i32 @getpid()\ndeclare i32 @getpgrp()\ndeclare i32 @setsid()\ndeclare i32 @alarm(i32)\ndeclare i32 @setpgid(i32, i32)\ndeclare i32 @execvp(i8*, i8**)\ndeclare i32 @isatty(i32)\ndeclare i32 @openpty(i32*, i32*, i8*, i8*, i8*)\ndeclare i32 @login_tty(i32)\ndeclare i32 @tcgetattr(i32, i8*)\ndeclare i32 @tcgetpgrp(i32)\ndeclare i32 @tcsetpgrp(i32, i32)\ndeclare i64 @read(i32, i8*, i64)\ndeclare i64 @write(i32, i8*, i64)\ndeclare i64 @pread(i32, i8*, i64, i64)\ndeclare i64 @pwrite(i32, i8*, i64, i64)\ndeclare i32 @fread(i8*, i64, i64, i8*)\ndeclare i32 @fwrite(i8*, i64, i64, i8*)\ndeclare i32 @putc_unlocked(i32, i8*)\ndeclare i32 @getc_unlocked(i8*)\ndeclare i8* @fopen(i8*, i8*)\ndeclare i32 @fflush(i8*)\ndeclare i32 @feof(i8*)\ndeclare i32 @fclose(i8*)\ndeclare i32 @fileno(i8*)\ndeclare i32 @fsync(i32)\ndeclare i32 @pipe(i32*)\ndeclare i32 @memcmp(i8*, i8*, i64)\ndeclare i64 @strlen(i8*)\ndeclare i8* @strcpy(i8*, i8*)\ndeclare i8* @strdup(i8*)\ndeclare i32 @strcmp(i8*, i8*)\ndeclare i8* @strchr(i8*, i32)\ndeclare i8* @strrchr(i8*, i32)\ndeclare i8* @dlsym(i8*, i8*)\ndeclare i8* @dlerror()\ndeclare i32 @dup(i32)\ndeclare i32 @dup2(i32, i32)\ndeclare i32 @close(i32)\ndeclare i8* @signal(i32, i8*)\ndeclare i32 @waitpid(i32, i32*, i32)\ndeclare i32 @poll(i64*, i32, i64)\ndeclare i32 @setjmp(i8*)\ndeclare void @longjmp(i8*, i32)\ndeclare i32 @kill(i32, i32)\ndeclare void @exit(i32)\ndeclare void @add_history(i8*)\ndeclare i8*** @history_list()\ndeclare void @clear_history()\n@TgOS = external global i8\n@TgCPU = external global i8\n@PipeBufSize = external global i32\n@Fsign = external global i1\n@Fdigit = external global i64\ndeclare i8* @stderrMsg(i8*, i8*)\ndeclare void @gPrintf(i8*, i32, i8*, i8*)\ndeclare i8* @strErrno()\ndeclare i32 @openRd(i8*)\ndeclare i32 @openWr(i8*)\ndeclare i32 @openRdWr(i8*)\ndeclare i32 @openRdWrExcl(i8*)\ndeclare i32 @openRdWrCreate(i8*)\ndeclare i32 @openRdWrAppend(i8*)\ndeclare i32 @openWrAppend(i8*)\ndeclare i1 @fseekOfs(i8*, i32)\ndeclare i1 @fseek0(i8*)\ndeclare i1 @seek0(i32)\ndeclare i1 @truncate0(i32)\ndeclare i32 @socketPair(i32*)\ndeclare i32 @fcntlCloExec(i32)\ndeclare void @fcntlSetFl(i32, i32)\ndeclare i32 @nonBlocking(i32)\ndeclare void @fcntlSetOwn(i32, i32)\ndeclare i8* @getDir(i8*)\ndeclare void @initReadline()\ndeclare i8* @gReadline(i8*)\ndeclare void @rlHide()\ndeclare void @rlShow()\ndeclare void @rlSigBeg()\ndeclare void @rlSigEnd()\ndeclare i8* @currentLine()\n@Sig = external global i32\n@SigDfl = external global i8*\n@SigIgn = external global i8*\ndeclare i32 @gSignal(i32)\ndeclare void @iSignal(i32, i8*)\ndeclare void @sigUnblock(i32)\ndeclare void @sigChld(i32)\ndeclare i32 @waitWuntraced(i32, i32*)\ndeclare i32 @wifStopped(i32*)\ndeclare i32 @nErrno()\ndeclare i32 @gErrno()\n@Tio = external global i1\n@OrgTermio = external global i8\n@Termio = external global i8*\ndeclare void @stopTerm()\ndeclare void @setRaw()\ndeclare void @setCooked()\ndeclare i1 @reopenTty(i8*)\ndeclare i64 @getUsec(i1)\ndeclare i64 @getMsec()\ndeclare i64 @getDate()\ndeclare i64 @getGmDate()\ndeclare i64 @getTime()\ndeclare i64 @getGmTime()\ndeclare i8* @ulimStk()\ndeclare i64 @fileInfo(i1, i1, i8*, i64*)\ndeclare void @pollIn(i32, i64*)\ndeclare void @pollOut(i32, i64*)\ndeclare void @pollIgn(i64*)\ndeclare i32 @gPoll(i64*, i32, i64)\ndeclare i1 @readyIn(i64*)\ndeclare i1 @readyOut(i64*)\ndeclare i32 @rdLock(i32, i64, i64, i1)\ndeclare i32 @wrLock(i32, i64, i64, i1)\ndeclare i32 @unLock(i32, i64, i64)\ndeclare i32 @getLock(i32, i64, i64)\n@JmpBufSize = external global i64\n@QuitRst = external global i8\n@SoRst = external global i8\ndeclare i8* @dlOpen(i8*)\ndeclare i8* @ffiPrep(i8*, i8*, i64)\ndeclare i64 @ffiCall(i8*, i64)\ndeclare i64 @boxFloat(i32, i64)\ndeclare i64 @boxFlt()\ndeclare i64 @boxDouble(i64, i64)\ndeclare i64 @boxDbl()\ndeclare void @bufFloat(i64, i64, i32*)\ndeclare void @bufDouble(i64, i64, i64*)\ndeclare i1 @chance(i64)\ndeclare i1 @isLowc(i32)\ndeclare i1 @isUppc(i32)\ndeclare i1 @isLetterOrDigit(i32)\ndeclare i32 @toUpperCase(i32)\ndeclare i32 @toLowerCase(i32)\ndeclare i64 @dbg(i64, i64)\ndeclare i1 @equal(i64, i64)\ndeclare i64 @compare(i64, i64)\ndeclare i64 @evList(i64)\ndeclare i64 @cons(i64, i64)\ndeclare i64 @cons2(i64, i64, i64)\ndeclare i64 @cons3(i64, i64, i64, i64)\ndeclare i64 @consStr(i64)\ndeclare i64 @bufSize(i64)\ndeclare i8* @bufString(i64, i8*)\ndeclare i64 @mkStr(i8*)\ndeclare i8 @firstByte(i64)\ndeclare void @pack(i64, i64*)\ndeclare i64 @subStr(i64, i64, i64)\ndeclare i1 @flush(i8*)\ndeclare void @flushAll()\ndeclare void @newline()\ndeclare void @space()\ndeclare void @outWord(i64)\ndeclare void @outString(i8*)\ndeclare void @print(i64)\ndeclare i64 @repl(i64, i8*, i64)\ndeclare void @dbFetch(i64, i64)\ndeclare void @dbTouch(i64, i64)\ndeclare void @dbZap(i64)\ndeclare void @putSrc(i64, i64)\ndeclare i64 @brkLoad(i64)\ndeclare i64 @xCnt(i64, i64)\ndeclare i64 @evCnt(i64, i64)\ndeclare i64 @evSym(i64)\ndeclare i64 @xName(i64)\ndeclare i32 @symChar(i64*)\ndeclare void @charSym(i32, i64*)\ndeclare i8* @initInFile(i32, i8*)\ndeclare i8* @initOutFile(i32)\n@$SnxTab = global [194 x i8] [\n  i8 48,\n  i8 49,\n  i8 50,\n  i8 51,\n  i8 52,\n  i8 53,\n  i8 54,\n  i8 55,\n  i8 56,\n  i8 57,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 84,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 83,\n  i8 76,\n  i8 78,\n  i8 78,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 82,\n  i8 83,\n  i8 84,\n  i8 0,\n  i8 70,\n  i8 70,\n  i8 83,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 84,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 83,\n  i8 76,\n  i8 78,\n  i8 78,\n  i8 0,\n  i8 70,\n  i8 83,\n  i8 82,\n  i8 83,\n  i8 84,\n  i8 0,\n  i8 70,\n  i8 70,\n  i8 83,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 84,\n  i8 78,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 83,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 0,\n  i8 78\n]\n\ndefine i64 @Snx(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (evSym X)) @ (let (P (push 0 (xName @)...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (evSym X)) @ (let (P (push 0 (xName @) NIL) C (symChar ...\n; # (evSym X)\n  %4 = call i64 @evSym(i64 %3)\n; # (nil? (evSym X))\n  %5 = icmp eq i64 %4, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %5, label %$2, label %$3\n$2:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n  br label %$4\n$3:\n  %8 = phi i64 [%0, %$1] ; # Exe\n  %9 = phi i64 [%3, %$1] ; # X\n; # (let (P (push 0 (xName @) NIL) C (symChar P)) (while (> SNXBASE C...\n; # (xName @)\n  %10 = call i64 @xName(i64 %4)\n; # (push 0 (xName @) NIL)\n  %11 = alloca i64, i64 3, align 16\n  store i64 0, i64* %11\n  %12 = getelementptr i64, i64* %11, i32 1\n  store i64 %10, i64* %12\n; # (symChar P)\n  %13 = call i32 @symChar(i64* %11)\n; # (while (> SNXBASE C) (unless (setq C (symChar P)) (ret $Nil)))\n  br label %$5\n$5:\n  %14 = phi i64 [%8, %$3], [%29, %$9] ; # Exe\n  %15 = phi i64 [%9, %$3], [%30, %$9] ; # X\n  %16 = phi i64* [%11, %$3], [%31, %$9] ; # P\n  %17 = phi i32 [%13, %$3], [%32, %$9] ; # C\n; # (> SNXBASE C)\n  %18 = icmp sgt i32 48, %17\n  br i1 %18, label %$6, label %$7\n$6:\n  %19 = phi i64 [%14, %$5] ; # Exe\n  %20 = phi i64 [%15, %$5] ; # X\n  %21 = phi i64* [%16, %$5] ; # P\n  %22 = phi i32 [%17, %$5] ; # C\n; # (unless (setq C (symChar P)) (ret $Nil))\n; # (symChar P)\n  %23 = call i32 @symChar(i64* %21)\n  %24 = icmp ne i32 %23, 0\n  br i1 %24, label %$9, label %$8\n$8:\n  %25 = phi i64 [%19, %$6] ; # Exe\n  %26 = phi i64 [%20, %$6] ; # X\n  %27 = phi i64* [%21, %$6] ; # P\n  %28 = phi i32 [%23, %$6] ; # C\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$9:\n  %29 = phi i64 [%19, %$6] ; # Exe\n  %30 = phi i64 [%20, %$6] ; # X\n  %31 = phi i64* [%21, %$6] ; # P\n  %32 = phi i32 [%23, %$6] ; # C\n  br label %$5\n$7:\n  %33 = phi i64 [%14, %$5] ; # Exe\n  %34 = phi i64 [%15, %$5] ; # X\n  %35 = phi i64* [%16, %$5] ; # P\n  %36 = phi i32 [%17, %$5] ; # C\n; # (let (Q (link (ofs P 1) T) R (push 4 NIL ZERO NIL) N (if (pair (s...\n; # (ofs P 1)\n  %37 = getelementptr i64, i64* %35, i32 1\n; # (link (ofs P 1) T)\n  %38 = ptrtoint i64* %37 to i64\n  %39 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %40 = load i64, i64* %39\n  %41 = inttoptr i64 %38 to i64*\n  %42 = getelementptr i64, i64* %41, i32 1\n  store i64 %40, i64* %42\n  %43 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %38, i64* %43\n; # (push 4 NIL ZERO NIL)\n  %44 = alloca i64, i64 4, align 16\n  store i64 4, i64* %44\n  %45 = getelementptr i64, i64* %44, i32 2\n  store i64 2, i64* %45\n; # (if (pair (shift X)) (evCnt Exe X) 24)\n; # (shift X)\n  %46 = inttoptr i64 %34 to i64*\n  %47 = getelementptr i64, i64* %46, i32 1\n  %48 = load i64, i64* %47\n; # (pair (shift X))\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$10, label %$11\n$10:\n  %51 = phi i64 [%33, %$7] ; # Exe\n  %52 = phi i64 [%48, %$7] ; # X\n  %53 = phi i64* [%35, %$7] ; # P\n  %54 = phi i32 [%36, %$7] ; # C\n  %55 = phi i64 [%38, %$7] ; # Q\n  %56 = phi i64* [%44, %$7] ; # R\n; # (evCnt Exe X)\n  %57 = call i64 @evCnt(i64 %51, i64 %52)\n  br label %$12\n$11:\n  %58 = phi i64 [%33, %$7] ; # Exe\n  %59 = phi i64 [%48, %$7] ; # X\n  %60 = phi i64* [%35, %$7] ; # P\n  %61 = phi i32 [%36, %$7] ; # C\n  %62 = phi i64 [%38, %$7] ; # Q\n  %63 = phi i64* [%44, %$7] ; # R\n  br label %$12\n$12:\n  %64 = phi i64 [%51, %$10], [%58, %$11] ; # Exe\n  %65 = phi i64 [%52, %$10], [%59, %$11] ; # X\n  %66 = phi i64* [%53, %$10], [%60, %$11] ; # P\n  %67 = phi i32 [%54, %$10], [%61, %$11] ; # C\n  %68 = phi i64 [%55, %$10], [%62, %$11] ; # Q\n  %69 = phi i64* [%56, %$10], [%63, %$11] ; # R\n  %70 = phi i64 [%57, %$10], [24, %$11] ; # ->\n; # (ofs R 2)\n  %71 = getelementptr i64, i64* %69, i32 2\n; # (link (ofs R 2))\n  %72 = ptrtoint i64* %71 to i64\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %74 = load i64, i64* %73\n  %75 = inttoptr i64 %72 to i64*\n  %76 = getelementptr i64, i64* %75, i32 1\n  store i64 %74, i64* %76\n  %77 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %72, i64* %77\n; # (when (or (and (>= C (char \"a\")) (>= (char \"z\") C)) (== C 128) (a...\n; # (or (and (>= C (char \"a\")) (>= (char \"z\") C)) (== C 128) (and (>=...\n; # (and (>= C (char \"a\")) (>= (char \"z\") C))\n; # (>= C (char \"a\"))\n  %78 = icmp sge i32 %67, 97\n  br i1 %78, label %$15, label %$14\n$15:\n  %79 = phi i64 [%64, %$12] ; # Exe\n  %80 = phi i64 [%65, %$12] ; # X\n  %81 = phi i64* [%66, %$12] ; # P\n  %82 = phi i32 [%67, %$12] ; # C\n  %83 = phi i64 [%68, %$12] ; # Q\n  %84 = phi i64* [%69, %$12] ; # R\n  %85 = phi i64 [%70, %$12] ; # N\n; # (>= (char \"z\") C)\n  %86 = icmp sge i32 122, %82\n  br label %$14\n$14:\n  %87 = phi i64 [%64, %$12], [%79, %$15] ; # Exe\n  %88 = phi i64 [%65, %$12], [%80, %$15] ; # X\n  %89 = phi i64* [%66, %$12], [%81, %$15] ; # P\n  %90 = phi i32 [%67, %$12], [%82, %$15] ; # C\n  %91 = phi i64 [%68, %$12], [%83, %$15] ; # Q\n  %92 = phi i64* [%69, %$12], [%84, %$15] ; # R\n  %93 = phi i64 [%70, %$12], [%85, %$15] ; # N\n  %94 = phi i1 [0, %$12], [%86, %$15] ; # ->\n  br i1 %94, label %$13, label %$16\n$16:\n  %95 = phi i64 [%87, %$14] ; # Exe\n  %96 = phi i64 [%88, %$14] ; # X\n  %97 = phi i64* [%89, %$14] ; # P\n  %98 = phi i32 [%90, %$14] ; # C\n  %99 = phi i64 [%91, %$14] ; # Q\n  %100 = phi i64* [%92, %$14] ; # R\n  %101 = phi i64 [%93, %$14] ; # N\n; # (== C 128)\n  %102 = icmp eq i32 %98, 128\n  br i1 %102, label %$13, label %$17\n$17:\n  %103 = phi i64 [%95, %$16] ; # Exe\n  %104 = phi i64 [%96, %$16] ; # X\n  %105 = phi i64* [%97, %$16] ; # P\n  %106 = phi i32 [%98, %$16] ; # C\n  %107 = phi i64 [%99, %$16] ; # Q\n  %108 = phi i64* [%100, %$16] ; # R\n  %109 = phi i64 [%101, %$16] ; # N\n; # (and (>= C 224) (>= 255 C))\n; # (>= C 224)\n  %110 = icmp sge i32 %106, 224\n  br i1 %110, label %$19, label %$18\n$19:\n  %111 = phi i64 [%103, %$17] ; # Exe\n  %112 = phi i64 [%104, %$17] ; # X\n  %113 = phi i64* [%105, %$17] ; # P\n  %114 = phi i32 [%106, %$17] ; # C\n  %115 = phi i64 [%107, %$17] ; # Q\n  %116 = phi i64* [%108, %$17] ; # R\n  %117 = phi i64 [%109, %$17] ; # N\n; # (>= 255 C)\n  %118 = icmp sge i32 255, %114\n  br label %$18\n$18:\n  %119 = phi i64 [%103, %$17], [%111, %$19] ; # Exe\n  %120 = phi i64 [%104, %$17], [%112, %$19] ; # X\n  %121 = phi i64* [%105, %$17], [%113, %$19] ; # P\n  %122 = phi i32 [%106, %$17], [%114, %$19] ; # C\n  %123 = phi i64 [%107, %$17], [%115, %$19] ; # Q\n  %124 = phi i64* [%108, %$17], [%116, %$19] ; # R\n  %125 = phi i64 [%109, %$17], [%117, %$19] ; # N\n  %126 = phi i1 [0, %$17], [%118, %$19] ; # ->\n  br label %$13\n$13:\n  %127 = phi i64 [%87, %$14], [%95, %$16], [%119, %$18] ; # Exe\n  %128 = phi i64 [%88, %$14], [%96, %$16], [%120, %$18] ; # X\n  %129 = phi i64* [%89, %$14], [%97, %$16], [%121, %$18] ; # P\n  %130 = phi i32 [%90, %$14], [%98, %$16], [%122, %$18] ; # C\n  %131 = phi i64 [%91, %$14], [%99, %$16], [%123, %$18] ; # Q\n  %132 = phi i64* [%92, %$14], [%100, %$16], [%124, %$18] ; # R\n  %133 = phi i64 [%93, %$14], [%101, %$16], [%125, %$18] ; # N\n  %134 = phi i1 [1, %$14], [1, %$16], [%126, %$18] ; # ->\n  br i1 %134, label %$20, label %$21\n$20:\n  %135 = phi i64 [%127, %$13] ; # Exe\n  %136 = phi i64 [%128, %$13] ; # X\n  %137 = phi i64* [%129, %$13] ; # P\n  %138 = phi i32 [%130, %$13] ; # C\n  %139 = phi i64 [%131, %$13] ; # Q\n  %140 = phi i64* [%132, %$13] ; # R\n  %141 = phi i64 [%133, %$13] ; # N\n; # (& C -33)\n  %142 = and i32 %138, -33\n  br label %$21\n$21:\n  %143 = phi i64 [%127, %$13], [%135, %$20] ; # Exe\n  %144 = phi i64 [%128, %$13], [%136, %$20] ; # X\n  %145 = phi i64* [%129, %$13], [%137, %$20] ; # P\n  %146 = phi i32 [%130, %$13], [%142, %$20] ; # C\n  %147 = phi i64 [%131, %$13], [%139, %$20] ; # Q\n  %148 = phi i64* [%132, %$13], [%140, %$20] ; # R\n  %149 = phi i64 [%133, %$13], [%141, %$20] ; # N\n; # (charSym C R)\n  call void @charSym(i32 %146, i64* %148)\n; # (let Last C (loop (? (=0 (setq C (symChar P)))) (when (> C 32) (c...\n; # (loop (? (=0 (setq C (symChar P)))) (when (> C 32) (cond ((or (lt...\n  br label %$22\n$22:\n  %150 = phi i64 [%143, %$21], [%260, %$26] ; # Exe\n  %151 = phi i64 [%144, %$21], [%261, %$26] ; # X\n  %152 = phi i64* [%145, %$21], [%262, %$26] ; # P\n  %153 = phi i32 [%146, %$21], [%263, %$26] ; # C\n  %154 = phi i64 [%147, %$21], [%264, %$26] ; # Q\n  %155 = phi i64* [%148, %$21], [%265, %$26] ; # R\n  %156 = phi i64 [%149, %$21], [%266, %$26] ; # N\n  %157 = phi i32 [%146, %$21], [%267, %$26] ; # Last\n; # (? (=0 (setq C (symChar P))))\n; # (symChar P)\n  %158 = call i32 @symChar(i64* %152)\n; # (=0 (setq C (symChar P)))\n  %159 = icmp eq i32 %158, 0\n  br i1 %159, label %$24, label %$23\n$23:\n  %160 = phi i64 [%150, %$22] ; # Exe\n  %161 = phi i64 [%151, %$22] ; # X\n  %162 = phi i64* [%152, %$22] ; # P\n  %163 = phi i32 [%158, %$22] ; # C\n  %164 = phi i64 [%154, %$22] ; # Q\n  %165 = phi i64* [%155, %$22] ; # R\n  %166 = phi i64 [%156, %$22] ; # N\n  %167 = phi i32 [%157, %$22] ; # Last\n; # (when (> C 32) (cond ((or (lt0 (dec 'C SNXBASE)) (>= C SNXSIZE) (...\n; # (> C 32)\n  %168 = icmp sgt i32 %163, 32\n  br i1 %168, label %$25, label %$26\n$25:\n  %169 = phi i64 [%160, %$23] ; # Exe\n  %170 = phi i64 [%161, %$23] ; # X\n  %171 = phi i64* [%162, %$23] ; # P\n  %172 = phi i32 [%163, %$23] ; # C\n  %173 = phi i64 [%164, %$23] ; # Q\n  %174 = phi i64* [%165, %$23] ; # R\n  %175 = phi i64 [%166, %$23] ; # N\n  %176 = phi i32 [%167, %$23] ; # Last\n; # (cond ((or (lt0 (dec 'C SNXBASE)) (>= C SNXSIZE) (=0 (setq C (i32...\n; # (or (lt0 (dec 'C SNXBASE)) (>= C SNXSIZE) (=0 (setq C (i32 (val (...\n; # (dec 'C SNXBASE)\n  %177 = sub i32 %172, 48\n; # (lt0 (dec 'C SNXBASE))\n  %178 = icmp slt i32 %177, 0\n  br i1 %178, label %$28, label %$29\n$29:\n  %179 = phi i64 [%169, %$25] ; # Exe\n  %180 = phi i64 [%170, %$25] ; # X\n  %181 = phi i64* [%171, %$25] ; # P\n  %182 = phi i32 [%177, %$25] ; # C\n  %183 = phi i64 [%173, %$25] ; # Q\n  %184 = phi i64* [%174, %$25] ; # R\n  %185 = phi i64 [%175, %$25] ; # N\n  %186 = phi i32 [%176, %$25] ; # Last\n; # (>= C SNXSIZE)\n  %187 = icmp sge i32 %182, 194\n  br i1 %187, label %$28, label %$30\n$30:\n  %188 = phi i64 [%179, %$29] ; # Exe\n  %189 = phi i64 [%180, %$29] ; # X\n  %190 = phi i64* [%181, %$29] ; # P\n  %191 = phi i32 [%182, %$29] ; # C\n  %192 = phi i64 [%183, %$29] ; # Q\n  %193 = phi i64* [%184, %$29] ; # R\n  %194 = phi i64 [%185, %$29] ; # N\n  %195 = phi i32 [%186, %$29] ; # Last\n; # (ofs $SnxTab C)\n  %196 = getelementptr i8, i8* bitcast ([194 x i8]* @$SnxTab to i8*), i32 %191\n; # (val (ofs $SnxTab C))\n  %197 = load i8, i8* %196\n; # (i32 (val (ofs $SnxTab C)))\n  %198 = zext i8 %197 to i32\n; # (=0 (setq C (i32 (val (ofs $SnxTab C)))))\n  %199 = icmp eq i32 %198, 0\n  br label %$28\n$28:\n  %200 = phi i64 [%169, %$25], [%179, %$29], [%188, %$30] ; # Exe\n  %201 = phi i64 [%170, %$25], [%180, %$29], [%189, %$30] ; # X\n  %202 = phi i64* [%171, %$25], [%181, %$29], [%190, %$30] ; # P\n  %203 = phi i32 [%177, %$25], [%182, %$29], [%198, %$30] ; # C\n  %204 = phi i64 [%173, %$25], [%183, %$29], [%192, %$30] ; # Q\n  %205 = phi i64* [%174, %$25], [%184, %$29], [%193, %$30] ; # R\n  %206 = phi i64 [%175, %$25], [%185, %$29], [%194, %$30] ; # N\n  %207 = phi i32 [%176, %$25], [%186, %$29], [%195, %$30] ; # Last\n  %208 = phi i1 [1, %$25], [1, %$29], [%199, %$30] ; # ->\n  br i1 %208, label %$32, label %$31\n$32:\n  %209 = phi i64 [%200, %$28] ; # Exe\n  %210 = phi i64 [%201, %$28] ; # X\n  %211 = phi i64* [%202, %$28] ; # P\n  %212 = phi i32 [%203, %$28] ; # C\n  %213 = phi i64 [%204, %$28] ; # Q\n  %214 = phi i64* [%205, %$28] ; # R\n  %215 = phi i64 [%206, %$28] ; # N\n  %216 = phi i32 [%207, %$28] ; # Last\n  br label %$27\n$31:\n  %217 = phi i64 [%200, %$28] ; # Exe\n  %218 = phi i64 [%201, %$28] ; # X\n  %219 = phi i64* [%202, %$28] ; # P\n  %220 = phi i32 [%203, %$28] ; # C\n  %221 = phi i64 [%204, %$28] ; # Q\n  %222 = phi i64* [%205, %$28] ; # R\n  %223 = phi i64 [%206, %$28] ; # N\n  %224 = phi i32 [%207, %$28] ; # Last\n; # (<> C Last)\n  %225 = icmp ne i32 %220, %224\n  br i1 %225, label %$34, label %$33\n$34:\n  %226 = phi i64 [%217, %$31] ; # Exe\n  %227 = phi i64 [%218, %$31] ; # X\n  %228 = phi i64* [%219, %$31] ; # P\n  %229 = phi i32 [%220, %$31] ; # C\n  %230 = phi i64 [%221, %$31] ; # Q\n  %231 = phi i64* [%222, %$31] ; # R\n  %232 = phi i64 [%223, %$31] ; # N\n  %233 = phi i32 [%224, %$31] ; # Last\n; # (? (=0 (dec 'N)))\n; # (dec 'N)\n  %234 = sub i64 %232, 1\n; # (=0 (dec 'N))\n  %235 = icmp eq i64 %234, 0\n  br i1 %235, label %$24, label %$35\n$35:\n  %236 = phi i64 [%226, %$34] ; # Exe\n  %237 = phi i64 [%227, %$34] ; # X\n  %238 = phi i64* [%228, %$34] ; # P\n  %239 = phi i32 [%229, %$34] ; # C\n  %240 = phi i64 [%230, %$34] ; # Q\n  %241 = phi i64* [%231, %$34] ; # R\n  %242 = phi i64 [%234, %$34] ; # N\n  %243 = phi i32 [%233, %$34] ; # Last\n; # (charSym (setq Last C) R)\n  call void @charSym(i32 %239, i64* %241)\n  br label %$27\n$33:\n  %244 = phi i64 [%217, %$31] ; # Exe\n  %245 = phi i64 [%218, %$31] ; # X\n  %246 = phi i64* [%219, %$31] ; # P\n  %247 = phi i32 [%220, %$31] ; # C\n  %248 = phi i64 [%221, %$31] ; # Q\n  %249 = phi i64* [%222, %$31] ; # R\n  %250 = phi i64 [%223, %$31] ; # N\n  %251 = phi i32 [%224, %$31] ; # Last\n  br label %$27\n$27:\n  %252 = phi i64 [%209, %$32], [%236, %$35], [%244, %$33] ; # Exe\n  %253 = phi i64 [%210, %$32], [%237, %$35], [%245, %$33] ; # X\n  %254 = phi i64* [%211, %$32], [%238, %$35], [%246, %$33] ; # P\n  %255 = phi i32 [%212, %$32], [%239, %$35], [%247, %$33] ; # C\n  %256 = phi i64 [%213, %$32], [%240, %$35], [%248, %$33] ; # Q\n  %257 = phi i64* [%214, %$32], [%241, %$35], [%249, %$33] ; # R\n  %258 = phi i64 [%215, %$32], [%242, %$35], [%250, %$33] ; # N\n  %259 = phi i32 [0, %$32], [%239, %$35], [%251, %$33] ; # Last\n  br label %$26\n$26:\n  %260 = phi i64 [%160, %$23], [%252, %$27] ; # Exe\n  %261 = phi i64 [%161, %$23], [%253, %$27] ; # X\n  %262 = phi i64* [%162, %$23], [%254, %$27] ; # P\n  %263 = phi i32 [%163, %$23], [%255, %$27] ; # C\n  %264 = phi i64 [%164, %$23], [%256, %$27] ; # Q\n  %265 = phi i64* [%165, %$23], [%257, %$27] ; # R\n  %266 = phi i64 [%166, %$23], [%258, %$27] ; # N\n  %267 = phi i32 [%167, %$23], [%259, %$27] ; # Last\n  br label %$22\n$24:\n  %268 = phi i64 [%150, %$22], [%226, %$34] ; # Exe\n  %269 = phi i64 [%151, %$22], [%227, %$34] ; # X\n  %270 = phi i64* [%152, %$22], [%228, %$34] ; # P\n  %271 = phi i32 [%158, %$22], [%229, %$34] ; # C\n  %272 = phi i64 [%154, %$22], [%230, %$34] ; # Q\n  %273 = phi i64* [%155, %$22], [%231, %$34] ; # R\n  %274 = phi i64 [%156, %$22], [%234, %$34] ; # N\n  %275 = phi i32 [%157, %$22], [%233, %$34] ; # Last\n  %276 = phi i64 [0, %$22], [0, %$34] ; # ->\n; # (val 3 R)\n  %277 = getelementptr i64, i64* %273, i32 2\n  %278 = load i64, i64* %277\n; # (consStr (val 3 R))\n  %279 = call i64 @consStr(i64 %278)\n; # (drop *Safe)\n  %280 = inttoptr i64 %38 to i64*\n  %281 = getelementptr i64, i64* %280, i32 1\n  %282 = load i64, i64* %281\n  %283 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %282, i64* %283\n  br label %$4\n$4:\n  %284 = phi i64 [%6, %$2], [%268, %$24] ; # Exe\n  %285 = phi i64 [%7, %$2], [%269, %$24] ; # X\n  %286 = phi i64 [%4, %$2], [%279, %$24] ; # ->\n  ret i64 %286\n}\n\ndefine i64 @FD(i64) align 8 {\n$1:\n; # (prog1 (eval (cadr Exe)) (when (ge0 (i32 (xCnt Exe @))) (initInFi...\n; # (cadr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n  %4 = inttoptr i64 %3 to i64*\n  %5 = load i64, i64* %4\n; # (eval (cadr Exe))\n  %6 = and i64 %5, 6\n  %7 = icmp ne i64 %6, 0\n  br i1 %7, label %$4, label %$3\n$4:\n  %8 = phi i64 [%5, %$1] ; # X\n  br label %$2\n$3:\n  %9 = phi i64 [%5, %$1] ; # X\n  %10 = and i64 %9, 8\n  %11 = icmp ne i64 %10, 0\n  br i1 %11, label %$6, label %$5\n$6:\n  %12 = phi i64 [%9, %$3] ; # X\n  %13 = inttoptr i64 %12 to i64*\n  %14 = load i64, i64* %13\n  br label %$2\n$5:\n  %15 = phi i64 [%9, %$3] ; # X\n  %16 = call i64 @evList(i64 %15)\n  br label %$2\n$2:\n  %17 = phi i64 [%8, %$4], [%12, %$6], [%15, %$5] ; # X\n  %18 = phi i64 [%8, %$4], [%14, %$6], [%16, %$5] ; # ->\n; # (when (ge0 (i32 (xCnt Exe @))) (initInFile @ null) (initOutFile @...\n; # (xCnt Exe @)\n  %19 = call i64 @xCnt(i64 %0, i64 %18)\n; # (i32 (xCnt Exe @))\n  %20 = trunc i64 %19 to i32\n; # (ge0 (i32 (xCnt Exe @)))\n  %21 = icmp sge i32 %20, 0\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n; # (initInFile @ null)\n  %23 = call i8* @initInFile(i32 %20, i8* null)\n; # (initOutFile @)\n  %24 = call i8* @initOutFile(i32 %20)\n  br label %$8\n$8:\n  %25 = phi i64 [%0, %$2], [%22, %$7] ; # Exe\n  ret i64 %18\n}\n@$Chr64 = constant [65 x i8] c\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\\00\"\n@$Stat64 = global i32 0\n@$Next64 = global i32 0\n\ndefine i64 @Base64(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (cond ((atom X) (let C (val $Chr) (while (and (g...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (cond ((atom X) (let C (val $Chr) (while (and (ge0 C) (>= (char \"...\n; # (atom X)\n  %4 = and i64 %3, 15\n  %5 = icmp ne i64 %4, 0\n  br i1 %5, label %$4, label %$3\n$4:\n  %6 = phi i64 [%0, %$1] ; # Exe\n  %7 = phi i64 [%3, %$1] ; # X\n; # (let C (val $Chr) (while (and (ge0 C) (>= (char \" \") C)) (setq C ...\n; # (val $Chr)\n  %8 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (while (and (ge0 C) (>= (char \" \") C)) (setq C (call $Get)))\n  br label %$5\n$5:\n  %9 = phi i64 [%6, %$4], [%21, %$8] ; # Exe\n  %10 = phi i64 [%7, %$4], [%22, %$8] ; # X\n  %11 = phi i32 [%8, %$4], [%25, %$8] ; # C\n; # (and (ge0 C) (>= (char \" \") C))\n; # (ge0 C)\n  %12 = icmp sge i32 %11, 0\n  br i1 %12, label %$7, label %$6\n$7:\n  %13 = phi i64 [%9, %$5] ; # Exe\n  %14 = phi i64 [%10, %$5] ; # X\n  %15 = phi i32 [%11, %$5] ; # C\n; # (>= (char \" \") C)\n  %16 = icmp sge i32 32, %15\n  br label %$6\n$6:\n  %17 = phi i64 [%9, %$5], [%13, %$7] ; # Exe\n  %18 = phi i64 [%10, %$5], [%14, %$7] ; # X\n  %19 = phi i32 [%11, %$5], [%15, %$7] ; # C\n  %20 = phi i1 [0, %$5], [%16, %$7] ; # ->\n  br i1 %20, label %$8, label %$9\n$8:\n  %21 = phi i64 [%17, %$6] ; # Exe\n  %22 = phi i64 [%18, %$6] ; # X\n  %23 = phi i32 [%19, %$6] ; # C\n; # (call $Get)\n  %24 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %25 = call i32 %24()\n  br label %$5\n$9:\n  %26 = phi i64 [%17, %$6] ; # Exe\n  %27 = phi i64 [%18, %$6] ; # X\n  %28 = phi i32 [%19, %$6] ; # C\n; # (if (strchr $Chr64 C) (let N (i32 (- @ $Chr64)) (setq C (call $Ge...\n; # (strchr $Chr64 C)\n  %29 = call i8* @strchr(i8* bitcast ([65 x i8]* @$Chr64 to i8*), i32 %28)\n  %30 = icmp ne i8* %29, null\n  br i1 %30, label %$10, label %$11\n$10:\n  %31 = phi i64 [%26, %$9] ; # Exe\n  %32 = phi i64 [%27, %$9] ; # X\n  %33 = phi i32 [%28, %$9] ; # C\n; # (let N (i32 (- @ $Chr64)) (setq C (call $Get)) (case (val $Stat64...\n; # (- @ $Chr64)\n  %34 = ptrtoint i8* %29 to i64\n  %35 = ptrtoint i8* bitcast ([65 x i8]* @$Chr64 to i8*) to i64\n  %36 = sub i64 %34, %35\n; # (i32 (- @ $Chr64))\n  %37 = trunc i64 %36 to i32\n; # (call $Get)\n  %38 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %39 = call i32 %38()\n; # (case (val $Stat64) (0 (unless (strchr $Chr64 C) (set $Stat64 0) ...\n; # (val $Stat64)\n  %40 = load i32, i32* @$Stat64\n  switch i32 %40, label %$13 [\n    i32 0, label %$15\n    i32 1, label %$16\n  ]\n$15:\n  %41 = phi i64 [%31, %$10] ; # Exe\n  %42 = phi i64 [%32, %$10] ; # X\n  %43 = phi i32 [%39, %$10] ; # C\n  %44 = phi i32 [%37, %$10] ; # N\n; # (unless (strchr $Chr64 C) (set $Stat64 0) (ret $Nil))\n; # (strchr $Chr64 C)\n  %45 = call i8* @strchr(i8* bitcast ([65 x i8]* @$Chr64 to i8*), i32 %43)\n  %46 = icmp ne i8* %45, null\n  br i1 %46, label %$18, label %$17\n$17:\n  %47 = phi i64 [%41, %$15] ; # Exe\n  %48 = phi i64 [%42, %$15] ; # X\n  %49 = phi i32 [%43, %$15] ; # C\n  %50 = phi i32 [%44, %$15] ; # N\n; # (set $Stat64 0)\n  store i32 0, i32* @$Stat64\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$18:\n  %51 = phi i64 [%41, %$15] ; # Exe\n  %52 = phi i64 [%42, %$15] ; # X\n  %53 = phi i32 [%43, %$15] ; # C\n  %54 = phi i32 [%44, %$15] ; # N\n; # (set $Next64 (i32 (- @ $Chr64)))\n; # (- @ $Chr64)\n  %55 = ptrtoint i8* %45 to i64\n  %56 = ptrtoint i8* bitcast ([65 x i8]* @$Chr64 to i8*) to i64\n  %57 = sub i64 %55, %56\n; # (i32 (- @ $Chr64))\n  %58 = trunc i64 %57 to i32\n  store i32 %58, i32* @$Next64\n; # (call $Get)\n  %59 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %60 = call i32 %59()\n; # (set $Stat64 (inc (val $Stat64)))\n; # (val $Stat64)\n  %61 = load i32, i32* @$Stat64\n; # (inc (val $Stat64))\n  %62 = add i32 %61, 1\n  store i32 %62, i32* @$Stat64\n; # (shl N 2)\n  %63 = shl i32 %54, 2\n; # (val $Next64)\n  %64 = load i32, i32* @$Next64\n; # (shr (val $Next64) 4)\n  %65 = lshr i32 %64, 4\n; # (| (shl N 2) (shr (val $Next64) 4))\n  %66 = or i32 %63, %65\n; # (i64 (| (shl N 2) (shr (val $Next64) 4)))\n  %67 = sext i32 %66 to i64\n; # (cnt (i64 (| (shl N 2) (shr (val $Next64) 4))))\n  %68 = shl i64 %67, 4\n  %69 = or i64 %68, 2\n  br label %$14\n$16:\n  %70 = phi i64 [%31, %$10] ; # Exe\n  %71 = phi i64 [%32, %$10] ; # X\n  %72 = phi i32 [%39, %$10] ; # C\n  %73 = phi i32 [%37, %$10] ; # N\n; # (prog1 (cnt (i64 (| (shl (& (val $Next64) 15) 4) (shr N 2)))) (se...\n; # (val $Next64)\n  %74 = load i32, i32* @$Next64\n; # (& (val $Next64) 15)\n  %75 = and i32 %74, 15\n; # (shl (& (val $Next64) 15) 4)\n  %76 = shl i32 %75, 4\n; # (shr N 2)\n  %77 = lshr i32 %73, 2\n; # (| (shl (& (val $Next64) 15) 4) (shr N 2))\n  %78 = or i32 %76, %77\n; # (i64 (| (shl (& (val $Next64) 15) 4) (shr N 2)))\n  %79 = sext i32 %78 to i64\n; # (cnt (i64 (| (shl (& (val $Next64) 15) 4) (shr N 2))))\n  %80 = shl i64 %79, 4\n  %81 = or i64 %80, 2\n; # (set $Next64 N $Stat64 (inc (val $Stat64)))\n  store i32 %73, i32* @$Next64\n; # (val $Stat64)\n  %82 = load i32, i32* @$Stat64\n; # (inc (val $Stat64))\n  %83 = add i32 %82, 1\n  store i32 %83, i32* @$Stat64\n  br label %$14\n$13:\n  %84 = phi i64 [%31, %$10] ; # Exe\n  %85 = phi i64 [%32, %$10] ; # X\n  %86 = phi i32 [%39, %$10] ; # C\n  %87 = phi i32 [%37, %$10] ; # N\n; # (set $Stat64 0)\n  store i32 0, i32* @$Stat64\n; # (val $Next64)\n  %88 = load i32, i32* @$Next64\n; # (& (val $Next64) 3)\n  %89 = and i32 %88, 3\n; # (shl (& (val $Next64) 3) 6)\n  %90 = shl i32 %89, 6\n; # (| (shl (& (val $Next64) 3) 6) N)\n  %91 = or i32 %90, %87\n; # (i64 (| (shl (& (val $Next64) 3) 6) N))\n  %92 = sext i32 %91 to i64\n; # (cnt (i64 (| (shl (& (val $Next64) 3) 6) N)))\n  %93 = shl i64 %92, 4\n  %94 = or i64 %93, 2\n  br label %$14\n$14:\n  %95 = phi i64 [%51, %$18], [%70, %$16], [%84, %$13] ; # Exe\n  %96 = phi i64 [%52, %$18], [%71, %$16], [%85, %$13] ; # X\n  %97 = phi i32 [%53, %$18], [%72, %$16], [%86, %$13] ; # C\n  %98 = phi i32 [%54, %$18], [%73, %$16], [%87, %$13] ; # N\n  %99 = phi i64 [%69, %$18], [%81, %$16], [%94, %$13] ; # ->\n  br label %$12\n$11:\n  %100 = phi i64 [%26, %$9] ; # Exe\n  %101 = phi i64 [%27, %$9] ; # X\n  %102 = phi i32 [%28, %$9] ; # C\n; # (when (== C (char \"=\")) (call $Get) (when (== (val $Stat64) 1) (c...\n; # (== C (char \"=\"))\n  %103 = icmp eq i32 %102, 61\n  br i1 %103, label %$19, label %$20\n$19:\n  %104 = phi i64 [%100, %$11] ; # Exe\n  %105 = phi i64 [%101, %$11] ; # X\n  %106 = phi i32 [%102, %$11] ; # C\n; # (call $Get)\n  %107 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %108 = call i32 %107()\n; # (when (== (val $Stat64) 1) (call $Get))\n; # (val $Stat64)\n  %109 = load i32, i32* @$Stat64\n; # (== (val $Stat64) 1)\n  %110 = icmp eq i32 %109, 1\n  br i1 %110, label %$21, label %$22\n$21:\n  %111 = phi i64 [%104, %$19] ; # Exe\n  %112 = phi i64 [%105, %$19] ; # X\n  %113 = phi i32 [%106, %$19] ; # C\n; # (call $Get)\n  %114 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %115 = call i32 %114()\n  br label %$22\n$22:\n  %116 = phi i64 [%104, %$19], [%111, %$21] ; # Exe\n  %117 = phi i64 [%105, %$19], [%112, %$21] ; # X\n  %118 = phi i32 [%106, %$19], [%113, %$21] ; # C\n  br label %$20\n$20:\n  %119 = phi i64 [%100, %$11], [%116, %$22] ; # Exe\n  %120 = phi i64 [%101, %$11], [%117, %$22] ; # X\n  %121 = phi i32 [%102, %$11], [%118, %$22] ; # C\n; # (set $Stat64 0)\n  store i32 0, i32* @$Stat64\n  br label %$12\n$12:\n  %122 = phi i64 [%95, %$14], [%119, %$20] ; # Exe\n  %123 = phi i64 [%96, %$14], [%120, %$20] ; # X\n  %124 = phi i32 [%97, %$14], [%121, %$20] ; # C\n  %125 = phi i64 [%99, %$14], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$20] ; # ->\n  br label %$2\n$3:\n  %126 = phi i64 [%0, %$1] ; # Exe\n  %127 = phi i64 [%3, %$1] ; # X\n; # (car X)\n  %128 = inttoptr i64 %127 to i64*\n  %129 = load i64, i64* %128\n; # (eval (car X))\n  %130 = and i64 %129, 6\n  %131 = icmp ne i64 %130, 0\n  br i1 %131, label %$25, label %$24\n$25:\n  %132 = phi i64 [%129, %$3] ; # X\n  br label %$23\n$24:\n  %133 = phi i64 [%129, %$3] ; # X\n  %134 = and i64 %133, 8\n  %135 = icmp ne i64 %134, 0\n  br i1 %135, label %$27, label %$26\n$27:\n  %136 = phi i64 [%133, %$24] ; # X\n  %137 = inttoptr i64 %136 to i64*\n  %138 = load i64, i64* %137\n  br label %$23\n$26:\n  %139 = phi i64 [%133, %$24] ; # X\n  %140 = call i64 @evList(i64 %139)\n  br label %$23\n$23:\n  %141 = phi i64 [%132, %$25], [%136, %$27], [%139, %$26] ; # X\n  %142 = phi i64 [%132, %$25], [%138, %$27], [%140, %$26] ; # ->\n; # (nil? (eval (car X)))\n  %143 = icmp eq i64 %142, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %143, label %$29, label %$28\n$29:\n  %144 = phi i64 [%126, %$23] ; # Exe\n  %145 = phi i64 [%127, %$23] ; # X\n  br label %$2\n$28:\n  %146 = phi i64 [%126, %$23] ; # Exe\n  %147 = phi i64 [%127, %$23] ; # X\n; # (let N (xCnt Exe @) (call $Put (val (ofs $Chr64 (shr N 2)))) (whe...\n; # (xCnt Exe @)\n  %148 = call i64 @xCnt(i64 %146, i64 %142)\n; # (shr N 2)\n  %149 = lshr i64 %148, 2\n; # (ofs $Chr64 (shr N 2))\n  %150 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %149\n; # (val (ofs $Chr64 (shr N 2)))\n  %151 = load i8, i8* %150\n; # (call $Put (val (ofs $Chr64 (shr N 2))))\n  %152 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %152(i8 %151)\n; # (when (nil? (eval (car (shift X)))) (call $Put (val (ofs $Chr64 (...\n; # (shift X)\n  %153 = inttoptr i64 %147 to i64*\n  %154 = getelementptr i64, i64* %153, i32 1\n  %155 = load i64, i64* %154\n; # (car (shift X))\n  %156 = inttoptr i64 %155 to i64*\n  %157 = load i64, i64* %156\n; # (eval (car (shift X)))\n  %158 = and i64 %157, 6\n  %159 = icmp ne i64 %158, 0\n  br i1 %159, label %$32, label %$31\n$32:\n  %160 = phi i64 [%157, %$28] ; # X\n  br label %$30\n$31:\n  %161 = phi i64 [%157, %$28] ; # X\n  %162 = and i64 %161, 8\n  %163 = icmp ne i64 %162, 0\n  br i1 %163, label %$34, label %$33\n$34:\n  %164 = phi i64 [%161, %$31] ; # X\n  %165 = inttoptr i64 %164 to i64*\n  %166 = load i64, i64* %165\n  br label %$30\n$33:\n  %167 = phi i64 [%161, %$31] ; # X\n  %168 = call i64 @evList(i64 %167)\n  br label %$30\n$30:\n  %169 = phi i64 [%160, %$32], [%164, %$34], [%167, %$33] ; # X\n  %170 = phi i64 [%160, %$32], [%166, %$34], [%168, %$33] ; # ->\n; # (nil? (eval (car (shift X))))\n  %171 = icmp eq i64 %170, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %171, label %$35, label %$36\n$35:\n  %172 = phi i64 [%146, %$30] ; # Exe\n  %173 = phi i64 [%155, %$30] ; # X\n  %174 = phi i64 [%148, %$30] ; # N\n; # (& N 3)\n  %175 = and i64 %174, 3\n; # (shl (& N 3) 4)\n  %176 = shl i64 %175, 4\n; # (ofs $Chr64 (shl (& N 3) 4))\n  %177 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %176\n; # (val (ofs $Chr64 (shl (& N 3) 4)))\n  %178 = load i8, i8* %177\n; # (call $Put (val (ofs $Chr64 (shl (& N 3) 4))))\n  %179 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %179(i8 %178)\n; # (call $Put (char \"=\"))\n  %180 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %180(i8 61)\n; # (call $Put (char \"=\"))\n  %181 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %181(i8 61)\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$36:\n  %182 = phi i64 [%146, %$30] ; # Exe\n  %183 = phi i64 [%155, %$30] ; # X\n  %184 = phi i64 [%148, %$30] ; # N\n; # (let M (xCnt Exe @) (call $Put (val (ofs $Chr64 (| (shl (& N 3) 4...\n; # (xCnt Exe @)\n  %185 = call i64 @xCnt(i64 %182, i64 %170)\n; # (& N 3)\n  %186 = and i64 %184, 3\n; # (shl (& N 3) 4)\n  %187 = shl i64 %186, 4\n; # (shr M 4)\n  %188 = lshr i64 %185, 4\n; # (| (shl (& N 3) 4) (shr M 4))\n  %189 = or i64 %187, %188\n; # (ofs $Chr64 (| (shl (& N 3) 4) (shr M 4)))\n  %190 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %189\n; # (val (ofs $Chr64 (| (shl (& N 3) 4) (shr M 4))))\n  %191 = load i8, i8* %190\n; # (call $Put (val (ofs $Chr64 (| (shl (& N 3) 4) (shr M 4)))))\n  %192 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %192(i8 %191)\n; # (when (nil? (eval (cadr X))) (call $Put (val (ofs $Chr64 (shl (& ...\n; # (cadr X)\n  %193 = inttoptr i64 %183 to i64*\n  %194 = getelementptr i64, i64* %193, i32 1\n  %195 = load i64, i64* %194\n  %196 = inttoptr i64 %195 to i64*\n  %197 = load i64, i64* %196\n; # (eval (cadr X))\n  %198 = and i64 %197, 6\n  %199 = icmp ne i64 %198, 0\n  br i1 %199, label %$39, label %$38\n$39:\n  %200 = phi i64 [%197, %$36] ; # X\n  br label %$37\n$38:\n  %201 = phi i64 [%197, %$36] ; # X\n  %202 = and i64 %201, 8\n  %203 = icmp ne i64 %202, 0\n  br i1 %203, label %$41, label %$40\n$41:\n  %204 = phi i64 [%201, %$38] ; # X\n  %205 = inttoptr i64 %204 to i64*\n  %206 = load i64, i64* %205\n  br label %$37\n$40:\n  %207 = phi i64 [%201, %$38] ; # X\n  %208 = call i64 @evList(i64 %207)\n  br label %$37\n$37:\n  %209 = phi i64 [%200, %$39], [%204, %$41], [%207, %$40] ; # X\n  %210 = phi i64 [%200, %$39], [%206, %$41], [%208, %$40] ; # ->\n; # (nil? (eval (cadr X)))\n  %211 = icmp eq i64 %210, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %211, label %$42, label %$43\n$42:\n  %212 = phi i64 [%182, %$37] ; # Exe\n  %213 = phi i64 [%183, %$37] ; # X\n  %214 = phi i64 [%184, %$37] ; # N\n  %215 = phi i64 [%185, %$37] ; # M\n; # (& M 15)\n  %216 = and i64 %215, 15\n; # (shl (& M 15) 2)\n  %217 = shl i64 %216, 2\n; # (ofs $Chr64 (shl (& M 15) 2))\n  %218 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %217\n; # (val (ofs $Chr64 (shl (& M 15) 2)))\n  %219 = load i8, i8* %218\n; # (call $Put (val (ofs $Chr64 (shl (& M 15) 2))))\n  %220 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %220(i8 %219)\n; # (call $Put (char \"=\"))\n  %221 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %221(i8 61)\n; # (ret $Nil)\n  ret i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n$43:\n  %222 = phi i64 [%182, %$37] ; # Exe\n  %223 = phi i64 [%183, %$37] ; # X\n  %224 = phi i64 [%184, %$37] ; # N\n  %225 = phi i64 [%185, %$37] ; # M\n; # (xCnt Exe @)\n  %226 = call i64 @xCnt(i64 %222, i64 %210)\n; # (& M 15)\n  %227 = and i64 %225, 15\n; # (shl (& M 15) 2)\n  %228 = shl i64 %227, 2\n; # (shr N 6)\n  %229 = lshr i64 %226, 6\n; # (| (shl (& M 15) 2) (shr N 6))\n  %230 = or i64 %228, %229\n; # (ofs $Chr64 (| (shl (& M 15) 2) (shr N 6)))\n  %231 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %230\n; # (val (ofs $Chr64 (| (shl (& M 15) 2) (shr N 6))))\n  %232 = load i8, i8* %231\n; # (call $Put (val (ofs $Chr64 (| (shl (& M 15) 2) (shr N 6)))))\n  %233 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %233(i8 %232)\n; # (& N 63)\n  %234 = and i64 %226, 63\n; # (ofs $Chr64 (& N 63))\n  %235 = getelementptr i8, i8* bitcast ([65 x i8]* @$Chr64 to i8*), i64 %234\n; # (val (ofs $Chr64 (& N 63)))\n  %236 = load i8, i8* %235\n; # (call $Put (val (ofs $Chr64 (& N 63))))\n  %237 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %237(i8 %236)\n  br label %$2\n$2:\n  %238 = phi i64 [%122, %$12], [%144, %$29], [%222, %$43] ; # Exe\n  %239 = phi i64 [%123, %$12], [%145, %$29], [%223, %$43] ; # X\n  %240 = phi i64 [%125, %$12], [%142, %$29], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64), %$43] ; # ->\n  ret i64 %240\n}\n\n"
  },
  {
    "path": "src/flow.l",
    "content": "# 09dec25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (redefMsg putSrc redefine)\n\n(de void redefMsg (Sym Sym2)\n   (let (Out (val $OutFile)  Put (val (i8** $Put)))\n      (set\n         $OutFile (val 3 (val $OutFiles))  # Stderr\n         $Put (fun (void i8) _putStdout) )\n      (outString ($ \"# \"))\n      (print Sym)\n      (when Sym2\n         (space)\n         (print @) )\n      (outString ($ \" redefined\\n\"))\n      (set (i8** $Put) Put  $OutFile Out) ) )\n\n(de void putSrc (Sym Key)\n   (unless\n      (or\n         (nil? (val $Dbg))\n         (sym? (val (tail Sym))) )\n      (let In: (inFile (val $InFile))\n         (when (and (In:) (In: name))\n            (let\n               (Dbg (get Sym $Dbg)\n                  Src\n                  (cons\n                     (cnt (i64 (In: src)))\n                     (cons (mkStr (In: name)) (val $Intern)) ) )\n               (cond\n                  ((=0 Key)\n                     (if (nil? Dbg)\n                        (put Sym $Dbg (cons Src $Nil))  # Put initial '*Dbg' properties\n                        (set Dbg Src) ) )  # Set first '*Dbg' property\n                  ((nil? Dbg)\n                     (put Sym $Dbg\n                        (cons $Nil (cons (cons Key Src) $Nil)) ) )\n                  (T\n                     (let X Dbg\n                        (loop\n                           (? (atom (shift X))\n                              (set 2 Dbg (cons (cons Key Src) (cdr Dbg))) )\n                           (? (== (caar X) Key)\n                              (set 2 (car X) Src) ) ) ) ) ) ) ) ) ) )\n\n(de void redefine (Exe Sym Val)\n   (needChkVar Exe Sym)\n   (let V (val Sym)\n      (unless (or (nil? V) (== V Sym) (equal V Val))\n         (redefMsg Sym 0) ) )\n   (set Sym Val)\n   (putSrc Sym 0) )\n\n# (quote . any) -> any\n(de _Quote (Exe)\n   (cdr Exe) )\n\n# (as 'any1 . any2) -> any2 | NIL\n(de _As (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (car X)))\n         @\n         (cdr X) ) ) )\n\n# (lit 'any) -> any\n(de _Lit (Exe)\n   (let X (eval (cadr Exe))\n      (if\n         (or\n            (num? X)\n            (nil? X)\n            (t? X)\n            (and (pair X) (num? (car X))) )\n         X\n         (cons $Quote X) ) ) )\n\n# (eval 'any ['cnt]) -> any\n(de _Eval (Exe)\n   (let (X (cdr Exe)  E (save (eval (car X))))\n      (when (pair (cdr X))\n         (let N (needCnt Exe (eval (car @)))\n            (when (setq N (int N))\n               (let Bnd (val $Bind)\n                  (loop\n                     (? (=0 Bnd))\n                     (?\n                        (and\n                           (== $At (val 2 Bnd))\n                           (prog\n                              (set $At (val Bnd))\n                              (=0 (dec 'N)) ) ) )\n                     (setq Bnd (val 3 Bnd)) ) ) ) ) )\n      (eval E) ) )\n\n# (run 'any ['cnt]) -> any\n(de _Run (Exe)\n   (let (X (cdr Exe)  E (eval (car X)))\n      (cond\n         ((num? E) E)\n         ((sym? E) (val E))\n         (T\n            (save E\n               (when (pair (cdr X))\n                  (let N (needCnt Exe (eval (car @)))\n                     (when (setq N (int N))\n                        (let Bnd (val $Bind)\n                           (loop\n                              (? (=0 Bnd))\n                              (?\n                                 (and\n                                    (== $At (val 2 Bnd))\n                                    (prog\n                                       (set $At (val Bnd))\n                                       (=0 (dec 'N)) ) ) )\n                              (setq Bnd (val 3 Bnd)) ) ) ) ) )\n               (runAt E) ) ) ) ) )\n\n# (def 'sym 'any) -> sym\n# (def 'sym 'sym|cnt 'any) -> sym\n(de _Def (Exe)\n   (let\n      (X (cdr Exe)\n         Sym (save (needSymb Exe (eval (++ X))))\n         Y (save (eval (++ X))) )\n      (if (pair X)\n         (let Val (save (eval (car X)))\n            (when (== Y ZERO)\n               (setq Y Val)\n               (goto 1) )\n            (when (sym? (val (tail Sym)))\n               (if (nil? Y)\n                  (dbFetch Exe Sym)  # Volatile property\n                  (dbTouch Exe Sym) ) )\n            (let V (get Sym Y)\n               (unless (or (nil? V) (equal V Val))\n                  (redefMsg Sym Y) ) )\n            (put Sym Y Val)\n            (putSrc Sym Y) )\n         (: 1\n            (chkVar Exe Sym)\n            (when (sym? (val (tail Sym)))\n               (dbTouch Exe Sym) )\n            (let V (val Sym)\n               (unless (or (nil? V) (== V Sym) (equal V Y))\n                  (redefMsg Sym 0) ) )\n            (set Sym Y)\n            (putSrc Sym 0) ) )\n      Sym ) )\n\n# (de sym . any) -> sym\n(de _De (Exe)\n   (let S (cadr Exe)\n      (redefine Exe S (cddr Exe))\n      S ) )\n\n# (dm sym . fun|cls2) -> sym\n# (dm (sym . cls) . fun|cls2) -> sym\n# (dm (sym sym2 [. cls]) . fun|cls2) -> sym\n(de _Dm (Exe)\n   (let\n      (X (cdr Exe)\n         Y (car X)\n         Fun (cdr X)\n         Msg (if (atom Y) Y (car Y))\n         Cls\n         (cond\n            ((atom Y) (val $Class))\n            ((atom (cdr Y)) @)\n            (T\n               (let Z @\n                  (get\n                     (if (nil? (cdr Z)) (val $Class) @)\n                     (needSymb Exe (car Z)) ) ) ) ) )\n      (chkVar Exe Cls)\n      (unless (t? Msg)\n         (redefine Exe Msg (val $Meth)) )\n      (when (symb? Fun)\n         (let L (val Fun)\n            (loop\n               (when (or (atom L) (atom (car L)))\n                  (err Exe Msg ($ \"Bad message\") null) )\n               (? (== Msg (caar L))  # Found in 'cls2'\n                  (setq\n                     X (car L)\n                     Fun (cdr X) ) )\n               (shift L) ) ) )\n      (let (V (val Cls)  L V)\n         (loop\n            (? (or (atom L) (atom (car L)))  # New method\n               (set Cls\n                  (cons\n                     (if (atom (car X))\n                        X\n                        (cons Msg Fun) )\n                     V ) ) )\n            (? (== Msg (caar L))  # Redefine method\n               (let Z (car L)\n                  (unless (equal Fun (cdr Z))\n                     (redefMsg Msg Cls) )\n                  (set 2 Z Fun) ) )\n            (shift L) ) )\n      (putSrc Cls Msg)\n      Msg ) )\n\n# Apply METH to CDR of list\n(local) (evMethod method)\n\n(de evMethod (Obj Typ Key Exe X)\n   (let\n      (Y (car Exe)  # Parameters\n         P (set $Bind (push (val $At) $At (val $Bind) Exe)) )  # [[@] @ LINK Expr]\n      (set $Bind (setq P (push Obj $This P)))\n      (while (pair Y)\n         (let (V (eval (++ X))  Z (++ Y))  # Evaluate next argument\n            (if (atom Z)\n               (set $Bind\n                  (setq P (push V (needChkVar Exe Z) P)) )  # [val sym LINK]\n               (loop\n                  (set $Bind\n                     (setq P\n                        (push  # [val sym LINK]\n                           (if (pair V) (++ V) $Nil)\n                           (needChkVar Exe (++ Z))\n                           P ) ) )\n                  (? (atom Z)) )\n               (unless (nil? Z)\n                  (set $Bind\n                     (setq P (push V (needChkVar Exe Z) P)) ) ) ) ) )  # [val sym LINK]\n      (prog1\n         (if (== Y $At)  # VarArgs\n            (if (pair X)\n               (let (L (push NIL (eval (car X)) NIL)  Q L)\n                  (link (ofs L 1))\n                  (while (pair (shift X))\n                     (setq L\n                        (set L (push NIL (eval (car X)) NIL)) )\n                     (link (ofs L 1)) )\n                  (let Next (val $Next)\n                     (set L $Nil  $Next Q)\n                     (loop\n                        (let Sym (val 2 P)\n                           (xchg Sym P)  # Exchange symbol value\n                           (? (== $At Sym))\n                           (setq P (val 3 P)) ) )\n                     (let (TypS (val $Typ)  KeyS (val $Key))\n                        (prog2\n                           (set $Typ Typ  $Key Key)\n                           (run (cdr Exe))  # Run body\n                           (set $Key KeyS  $Typ TypS  $Next Next)\n                           (drop (ofs Q 1)) ) ) ) )\n               (let Next (val $Next)\n                  (set $Next $Nil)\n                  (loop\n                     (let Sym (val 2 P)\n                        (xchg Sym P)  # Exchange symbol value\n                        (? (== $At Sym))\n                        (setq P (val 3 P)) ) )\n                  (let (TypS (val $Typ)  KeyS (val $Key))\n                     (prog2\n                        (set $Typ Typ  $Key Key)\n                        (run (cdr Exe))  # Run body\n                        (set $Key KeyS  $Typ TypS  $Next Next) ) ) ) )\n            (unless (nil? Y)\n               (needChkVar Exe Y)\n               (set\n                  $Bind (push (val Y) Y P)  # Last parameter\n                  Y X ) )  # Set to unevaluated argument(s)\n            (loop\n               (let Sym (val 2 P)\n                  (xchg Sym P)  # Exchange symbol value\n                  (? (== $At Sym))\n                  (setq P (val 3 P)) ) )\n            (let (TypS (val $Typ)  KeyS (val $Key))\n               (prog2\n                  (set $Typ Typ  $Key Key)\n                  (run (cdr Exe))  # Run body\n                  (set $Key KeyS  $Typ TypS) ) ) )\n         (setq P (val $Bind))\n         (loop\n            (let Sym (val 2 P)\n               (set Sym (val P))  # Restore values\n               (? (== $At Sym))\n               (setq P (val 3 P)) ) )\n         (set $Bind (val 3 P)) ) ) )\n\n(de method (Obj Key)\n   (when (pair (val Obj))  # Class definition (methods and superclasses)\n      (let L @\n         (while (pair (car L))  # Method definition\n            (let Y @\n               (when (== Key (car Y))  # Found\n                  (ret (cdr Y)) ) )\n            (when (atom (shift L))\n               (ret 0) ) )\n         (stkChk 0)\n         (loop\n            (when (method (car (set $Ret L)) Key)  # Set class list\n               (ret @) )\n            (? (atom (shift L))) ) ) )\n   0 )\n\n# (meth 'obj ['any ..]) -> any\n(de __Meth (Exe Key)\n   (let (X (cdr Exe)  Obj (save (eval (car X))))\n      (when (sym? (val (tail (needSymb Exe Obj))))\n         (dbFetch Exe Obj) )\n      (set $Ret 0)  # Preset to \"No classes\"\n      (if (method Obj Key)\n         (evMethod Obj (val $Ret) Key @ (cdr X))\n         (err Exe Key ($ \"Bad message\") null) ) ) )\n\n# (box 'any) -> sym\n(de _Box (Exe)\n   (consSym ZERO (eval (cadr Exe))) )\n\n# (new ['flg|num|sym] ['typ ['any ..]]) -> obj\n(de _New (Exe)\n   (let\n      (X (cdr Exe)\n         Y (eval (++ X))\n         Obj\n         (save\n            (cond\n               ((pair Y) (consSym ZERO Y))  # Anonymous with type\n               ((nil? Y) (consSym ZERO ZERO))  # Anonymous with placeholder\n               ((or (t? Y) (num? Y))\n                  (let Nm\n                     (newId Exe  # External\n                        (if (num? Y) (i32 (int @)) 1) )\n                     (prog1\n                        (extern Nm)\n                        (set (tail @)\n                           (sign (shr 1 (add Nm Nm) 1)) ) ) ) )  # Set \"dirty\"\n               (T Y) ) ) )  # Explicit symbol\n      (unless (pair Y)\n         (set Obj (eval (++ X))) )\n      (set $Ret 0)  # Preset to \"No classes\"\n      (cond\n         ((method Obj $T)\n            (evMethod Obj (val $Ret) $T @ X) )\n         ((pair X)\n            (let K (link (push NIL NIL))\n               (loop\n                  (when (== ZERO (set K (eval (++ X))))\n                     (argErr Exe ZERO) )\n                  (put Obj (val K) (eval (++ X)))\n                  (? (atom X)) ) ) ) )\n      Obj ) )\n\n# (type 'any) -> lst\n(de _Type (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))\n      (ifn (symb? Y)\n         $Nil\n         (when (sym? (val (tail Y)))\n            (dbFetch Exe Y) )\n         (let (V (val Y)  Z V)\n            (loop\n               (? (atom V) $Nil)\n               (? (atom (car V))  # Class\n                  (let R V\n                     (loop\n                        (? (not (symb? (car V))) $Nil)\n                        (? (atom (shift V))\n                           (if (nil? V) R $Nil) )\n                        (? (== Z V) $Nil) ) ) )\n               (? (== Z (shift V)) $Nil) ) ) ) ) )\n\n(local) isa\n\n(de i1 isa (Cls Obj)\n   (let (V (val Obj)  Z V)\n      (loop\n         (? (atom V) NO)\n         (? (atom (car V))  # Class\n            (stkChk 0)\n            (loop\n               (? (not (symb? (car V))) NO)\n               (? (== @ Cls) YES)\n               (? (isa Cls @) YES)\n               (? (atom (shift V)) NO)\n               (? (== Z V) NO) ) )\n         (? (== Z (shift V)) NO) ) ) )\n\n# (isa 'cls|typ 'any) -> obj | NIL\n(de _Isa (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X)) )\n      (ifn (symb? Z)\n         $Nil\n         (when (sym? (val (tail Z)))\n            (dbFetch Exe Z) )\n         (cond\n            ((pair Y)\n               (loop\n                  (? (not (isa (car Y) Z)) $Nil)\n                  (? (atom (shift Y)) Z) ) )\n            ((isa Y Z) Z)\n            (T $Nil) ) ) ) )\n\n# (method 'msg 'obj) -> fun\n(de _Method (Exe)\n   (let\n      (X (cdr Exe)\n         Msg (save (eval (++ X)))\n         Obj (needSymb Exe (eval (car X))) )\n      (when (sym? (val (tail Obj)))\n         (dbFetch Exe Obj) )\n      (if (method Obj Msg) @ $Nil) ) )\n\n# (send 'msg 'obj ['any ..]) -> any\n(de _Send (Exe)\n   (let\n      (X (cdr Exe)\n         Msg (save (eval (++ X)))\n         Obj (save (needSymb Exe (eval (car X)))) )\n      (when (sym? (val (tail Obj)))\n         (dbFetch Exe Obj) )\n      (set $Ret 0)  # Preset to \"No classes\"\n      (if (method Obj Msg)\n         (evMethod Obj (val $Ret) Msg @ (cdr X))\n         (err Exe Msg ($ \"Bad message\") null) ) ) )\n\n# (try 'msg 'obj ['any ..]) -> any\n(de _Try (Exe)\n   (let\n      (X (cdr Exe)\n         Msg (save (eval (++ X)))\n         Obj (save (eval (car X))) )\n      (ifn (symb? Obj)\n         $Nil\n         (when (sym? (val (tail Obj)))\n            (unless (isLife Obj)\n               (goto 1) )\n            (dbFetch Exe Obj) )\n         (set $Ret 0)  # Preset to \"No classes\"\n         (if (method Obj Msg)\n            (evMethod Obj (val $Ret) Msg @ (cdr X))\n            (: 1 $Nil) ) ) ) )\n\n# (super ['any ..]) -> any\n(de _Super (Exe)\n   (let\n      (Lst (val (if (val $Typ) (car @) (val $This)))\n         Key (val $Key) )\n      (while (pair (car Lst))  # Skip methods\n         (shift Lst) )\n      (loop\n         (when (atom Lst)  # No classes\n            (err Exe Key ($ \"Bad super\") null) )\n         (? (method (car (set $Ret Lst)) Key)  # Found\n            (let (TypS (val $Typ)  KeyS (val $Key))\n               (set $Typ (val $Ret)  $Key Key)  # Set class and key\n               (prog1\n                  (evExpr @ Exe)  # Evaluate expression\n                  (set $Key KeyS  $Typ TypS) ) ) )  # Restore class and key\n         (shift Lst) ) ) )\n\n(local) extra\n\n(de extra (Obj Key)\n   (let Lst (val Obj)\n      (while (pair (car Lst))  # Skip methods\n         (shift Lst) )\n      (loop  # Classes\n         (? (atom Lst) 1)  # Not found on this level\n         (? (== Lst (val $Typ))  # Hit current class list\n            (loop  # Locate method in extra classes\n               (? (atom (shift Lst)) 0)  # Try further\n               (? (method (car (set $Ret Lst)) Key) @) ) )  # Found in superclass\n         (stkChk 0)\n         (? (> (extra (car Lst) Key) 1) @)  # Found on this level\n         (? (=0 @)\n            (loop\n               (? (atom (shift Lst)) 0)\n               (? (method (car (set $Ret Lst)) Key) @) ) )  # Found in superclass\n         (shift Lst) ) ) )  # Try next in class list\n\n# (extra ['any ..]) -> any\n(de _Extra (Exe)\n   (let Key (val $Key)\n      (unless (> (extra (val $This) Key) 1)\n         (err Exe Key ($ \"Bad extra\") null) )\n      (let (TypS (val $Typ)  KeyS (val $Key))\n         (set $Typ (val $Ret)  $Key Key)  # Set class and key\n         (prog1\n            (evExpr @ Exe)  # Evaluate expression\n            (set $Key KeyS  $Typ TypS) ) ) ) )  # Restore class and key\n\n# (and 'any ..) -> any\n(de _And (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (car X))\n            (? (nil? Y) Y)\n            (set $At Y)\n            (? (atom (shift X)) Y) ) ) ) )\n\n# (or 'any ..) -> any\n(de _Or (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (car X))\n            (? (not (nil? Y))\n               (set $At Y) )\n            (? (atom (shift X)) Y) ) ) ) )\n\n# (nand 'any ..) -> flg\n(de _Nand (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (car X))\n            (? (nil? Y) $T)\n            (set $At Y)\n            (? (atom (shift X)) $Nil) ) ) ) )\n\n# (nor 'any ..) -> flg\n(de _Nor (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (car X))\n            (? (not (nil? Y))\n               (set $At Y)\n               $Nil )\n            (? (atom (shift X)) $T) ) ) ) )\n\n# (xor 'any 'any) -> flg\n(de _Xor (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         (if (nil? (eval (car X))) @ $T)\n         (if (nil? (eval (car X))) $T $Nil) ) ) )\n\n# (bool 'any) -> flg\n(de _Bool (Exe)\n   (if (nil? (eval (cadr Exe))) @ $T) )\n\n# (not 'any) -> flg\n(de _Not (Exe)\n   (if (nil? (eval (cadr Exe)))\n      $T\n      (set $At @)\n      $Nil ) )\n\n# (nil . prg) -> NIL\n(de _Nil (Exe)\n   (exec (cdr Exe))\n   $Nil )\n\n# (t . prg) -> T\n(de _T (Exe)\n   (exec (cdr Exe))\n   $T )\n\n# (prog . prg) -> any\n(de _Prog (Exe)\n   (run (cdr Exe)) )\n\n# (prog1 'any1 . prg) -> any1\n(de _Prog1 (Exe)\n   (let X (cdr Exe)\n      (prog1\n         (set $At (save (eval (++ X))))\n         (exec X) ) ) )\n\n# (prog2 'any1 'any2 . prg) -> any2\n(de _Prog2 (Exe)\n   (let X (cdr Exe)\n      (prog2\n         (eval (++ X))\n         (set $At (save (eval (++ X))))\n         (exec X) ) ) )\n\n# (if 'any1 any2 . prg) -> any\n(de _If (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         (run (cdr X))\n         (set $At @)\n         (eval (car X)) ) ) )\n\n# (ifn 'any1 any2 . prg) -> any\n(de _Ifn (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         (eval (car X))\n         (set $At @)\n         (run (cdr X)) ) ) )\n\n# (if2 'any1 'any2 any3 any4 any5 . prg) -> any\n(de _If2 (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         (if (nil? (eval (++ X)))\n            (run (cdr (cddr X)))\n            (set $At @)\n            (eval (car (cddr X))) )\n         (set $At @)\n         (if (nil? (eval (++ X)))\n            (eval (cadr X))\n            (set $At @)\n            (eval (car X)) ) ) ) )\n\n# (if@@ 'any1 any2 . prg) -> any\n(de _IfAt2 (Exe)\n   (let X (cdr Exe)\n      (set $At (eval (++ X)))\n      (if (nil? (val $At2))\n         (run (cdr X))\n         (eval (car X)) ) ) )\n\n# (when 'any . prg) -> any\n(de _When (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         @\n         (set $At @)\n         (run X) ) ) )\n\n# (unless 'any . prg) -> any\n(de _Unless (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))\n         (run X)\n         (set $At @)\n         $Nil ) ) )\n\n# (cond ('any1 . prg1) ('any2 . prg2) ..) -> any\n(de _Cond (Exe)\n   (let X Exe\n      (loop\n         (? (atom (shift X)) $Nil)\n         (let Y (car X)\n            (? (not (nil? (eval (car Y))))\n               (set $At @)\n               (run (cdr Y)) ) ) ) ) )\n\n# (nond ('any1 . prg1) ('any2 . prg2) ..) -> any\n(de _Nond (Exe)\n   (let X Exe\n      (loop\n         (? (atom (shift X)) $Nil)\n         (let Y (car X)\n            (? (nil? (eval (car Y)))\n               (run (cdr Y)) ) )\n         (set $At @) ) ) )\n\n# (case 'any (any1 . prg1) (any2 . prg2) ..) -> any\n(de _Case (Exe)\n   (let (X (cdr Exe)  A (set $At (eval (car X))))\n      (loop\n         (? (atom (shift X)) $Nil)\n         (let (Y (car X)  Z (car Y))\n            (?\n               (or\n                  (t? Z)\n                  (if (atom Z) (equal Z A) (member A Z)) )\n               (run (cdr Y)) ) ) ) ) )\n\n# (casq 'any (any1 . prg1) (any2 . prg2) ..) -> any\n(de _Casq (Exe)\n   (let (X (cdr Exe)  A (set $At (eval (car X))))\n      (loop\n         (? (atom (shift X)) $Nil)\n         (let (Y (car X)  Z (car Y))\n            (? (or (t? Z) (== Z A) (memq A Z))\n               (run (cdr Y)) ) ) ) ) )\n\n# (state 'var (sym|lst exe [. prg]) ..) -> any\n(de _State (Exe)\n   (let\n      (X (cdr Exe)\n         Var (save (needChkVar Exe (eval (car X)))) )\n      (loop\n         (? (atom (shift X)) $Nil)\n         (let (Y (car X)  Z (car Y))\n            (when\n               (or\n                  (t? Z)\n                  (let V (val Var)\n                     (or (== Z V) (memq V Z)) ) )\n               (? (not (nil? (eval (car (shift Y)))))\n                  (set Var (set $At @))\n                  (run (cdr Y)) ) ) ) ) ) )\n\n# (while 'any . prg) -> any\n(de _While (Exe)\n   (let (X (cdr Exe)  E (++ X)  R (save $Nil))\n      (until (nil? (eval E))\n         (set $At @)\n         (setq R (safe (run X))) )\n      R ) )\n\n# (until 'any . prg) -> any\n(de _Until (Exe)\n   (let (X (cdr Exe)  E (++ X)  R (save $Nil))\n      (while (nil? (eval E))\n         (setq R (safe (run X))) )\n      (set $At @)\n      R ) )\n\n# (at '(cnt1 . cnt2|NIL) . prg) -> any\n(de _At (Exe)\n   (let\n      (X (cdr Exe)\n         Y (needPair Exe (eval (car X)))\n         Z (cdr Y) )\n      (cond\n         ((nil? Z) @)\n         ((< (+ (car Y) (hex \"10\")) Z)  # Increment\n            (set Y @)\n            $Nil )\n         (T\n            (set Y ZERO)\n            (run (cdr X)) ) ) ) )\n\n(local) (loop1 loop2)\n\n(de loop1 (X)\n   (loop\n      (let E (car X)\n         (unless (num? E)\n            (setq E\n               (cond\n                  ((sym? E) (val E))\n                  ((nil? (car E))\n                     (? (nil? (eval (car (shift E))))\n                        (run (cdr E)) )\n                     (set $At @)\n                     $Nil )\n                  ((t? (car E))\n                     (? (not (nil? (eval (car (shift E)))))\n                        (set $At @)\n                        (run (cdr E)) )\n                     @ )  # NIL\n                  (T (evList E)) ) ) )\n         (? (atom (shift X)) (| E 1)) ) ) )\n\n(de loop2 (Y)\n   (loop\n      (let X Y\n         (loop\n            (let E (car X)\n               (when (pair E)\n                  (cond\n                     ((nil? (car E))\n                        (when (nil? (eval (car (shift E))))\n                           (ret (run (cdr E))) )\n                        (set $At @) )\n                     ((t? (car E))\n                        (unless (nil? (eval (car (shift E))))\n                           (set $At @)\n                           (ret (run (cdr E))) ) )\n                     (T (evList E)) ) ) )\n            (? (atom (shift X))) ) ) ) )\n\n# (do 'flg|cnt ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any\n(de _Do (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((nil? Y) Y)\n         ((cnt? Y)\n            (let N (int Y)\n               (if (or (sign? Y) (=0 N))\n                  $Nil\n                  (loop\n                     (let R (loop1 X)\n                        (? (=0 (& R 1)) R)\n                        (? (=0 (dec 'N)) (& R -2)) ) ) ) ) )\n         (T (loop2 X)) ) ) )  # Non-NIL 'flg'\n\n# (loop ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any\n(de _Loop (Exe)\n   (tailcall (loop2 (cdr Exe))) )\n\n# (for sym 'cnt ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any\n# (for sym|(sym2 . sym) 'lst ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any\n# (for (sym|(sym2 . sym) 'any1 'any2 [. prg]) ['any | (NIL 'any . prg) | (T 'any . prg) ..]) -> any\n(de _For (Exe)\n   (let\n      (X (cdr Exe)\n         Y (++ X)\n         R $Nil )\n      (cond\n         ((atom Y)  # (for sym 'cnt|lst ..)\n            (needChkVar Exe Y)\n            (let P (set $Bind (push NIL NIL (val $Bind)))  # [[sym] sym LINK]\n               (set P (val Y)  2 P Y)\n               (let V (eval (++ X))\n                  (if (num? V)  # (for sym 'cnt ..)\n                     (unless (sign? V)\n                        (set Y ZERO)\n                        (loop\n                           (? (> (+ (val Y) (hex \"10\")) V)  # Increment\n                              (setq R (& R -2)) )\n                           (set Y @)\n                           (? (=0 (& (setq R (loop1 X)) 1))) ) )\n                     (save V\n                        (loop  # (for sym 'lst ..)\n                           (? (atom V) (setq R (& R -2)))\n                           (set Y (car V))\n                           (? (=0 (& (setq R (loop1 X)) 1)))\n                           (safe (shift V)) ) ) ) )\n               (set Y (val P)  $Bind (val 3 P)) ) )\n         ((atom (cdr Y))  # (for (sym2 . sym) 'lst ..)\n            (let Sym2 (needChkVar Exe @)\n               (needChkVar Exe (setq Y (car Y)))\n               (let P (set $Bind (push NIL NIL (val $Bind)))  # [[sym] sym LINK]\n                  (set P (val Y)  2 P Y)\n                  (let\n                     (Q (set $Bind (push (val Sym2) Sym2 (val $Bind)))  # [[sym] sym LINK]\n                        V (save (eval (++ X))) )\n                     (set Y ONE)\n                     (loop\n                        (? (atom V) (setq R (& R -2)))\n                        (set Sym2 (car V))\n                        (? (=0 (& (setq R (loop1 X)) 1)))\n                        (set Y (+ (val Y) (hex \"10\")))\n                        (safe (shift V)) )\n                     (set Sym2 (val Q)) )\n                  (set Y (val P)  $Bind (val 3 P)) ) ) )\n         ((atom (car Y))  # (for (sym ..) ..)\n            (let Z (cdr Y)\n               (needChkVar Exe (setq Y @))\n               (let P (set $Bind (push NIL NIL (val $Bind)))  # [[sym] sym LINK]\n                  (set\n                     P (val Y)\n                     2 P Y\n                     Y (eval (++ Z)) )\n                  (save R\n                     (loop  # (any2 . prg)\n                        (? (nil? (eval (car Z))))\n                        (set $At @)\n                        (? (=0 (& (setq R (loop1 X)) 1)))\n                        (safe (setq R (& R -2)))\n                        (when (pair (cdr Z))\n                           (set Y (run @)) ) ) )\n                  (set Y (val P)  $Bind (val 3 P)) ) ) )\n         (T  # (for ((sym2 . sym) ..) ..)\n            (let (Sym2 (cdr @)  Z (cdr Y))\n               (setq Y (car @))\n               (needChkVar Exe Y)\n               (needChkVar Exe Sym2)\n               (let P (set $Bind (push NIL NIL (val $Bind)))  # [[sym] sym LINK]\n                  (set P (val Y)  2 P Y)\n                  (save R\n                     (let Q (set $Bind (push (val Sym2) Sym2 (val $Bind)))  # [[sym] sym LINK]\n                        (set\n                           Sym2 (save (eval (++ Z)))\n                           Y ONE )\n                        (loop\n                           (? (nil? (eval (car Z))))\n                           (set $At @)\n                           (? (=0 (& (setq R (loop1 X)) 1)))\n                           (safe (setq R (& R -2)))\n                           (when (pair (cdr Z))\n                              (set Sym2 (run @)) )\n                           (set Y (+ (val Y) (hex \"10\"))) )\n                        (set Sym2 (val Q)) ) )\n                  (set Y (val P)  $Bind (val 3 P)) ) ) ) )\n      R ) )\n\n# (this 'any) -> any\n(de _This (Exe)\n   (set $This (eval (cadr Exe))) )\n\n# (with 'any . prg) -> any\n(de _With (Exe)\n   (let (X (cdr Exe)  Y (needVar Exe (eval (++ X))))\n      (if (nil? Y)\n         Y\n         (let P (set $Bind (push (val $This) $This (val $Bind)))  # [[This] This LINK]\n            (set $This Y)\n            (prog1\n               (run X)\n               (set $This (val P)  $Bind (val 3 P)) ) ) ) ) )\n\n# (bind 'sym|lst . prg) -> any\n(de _Bind (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((num? Y) (argErr Exe Y))\n         ((nil? Y) (run X))\n         ((sym? Y)  # Single symbol\n            (chkVar Exe Y)\n            (let P (set $Bind (push (val Y) Y (val $Bind)))  # [[sym] sym LINK]\n               (prog1\n                  (run X)\n                  (set Y (val P)  $Bind (val 3 P)) ) ) )\n         (T\n            (let (P (val $Bind)  Q P)\n               (loop\n                  (let Z (++ Y)\n                     (when (num? Z)\n                        (argErr Exe Y) )\n                     (if (sym? Z)\n                        (set $Bind\n                           (setq P (push (val Z) (chkVar Exe Z) P)) )\n                        (let S (car Z)\n                           (needChkVar Exe S)\n                           (set\n                              $Bind (setq P (push (val S) S P))\n                              S (cdr Z) ) ) ) )\n                  (? (atom Y)) )\n               (prog1\n                  (run X)\n                  (loop\n                     (set (val 2 P) (val P))  # Restore values\n                     (? (== Q (setq P (val 3 P)) ) ) )\n                  (set $Bind P) ) ) ) ) ) )\n\n# (job 'lst . prg) -> any\n(de _Job (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         P (val $Bind)\n         Q P )\n      (while (pair Y)\n         (let (Z (++ Y)  S (car Z))\n            (needChkVar Exe S)\n            (set\n               $Bind (setq P (push (val S) S P Z))  # [[sym] sym LINK (sym . val)]\n               S (cdr Z) ) ) )\n      (prog1\n         (run X)\n         (until (== Q P)\n            (let S (val 2 P)\n               (set 2 (val 4 P) (val S))\n               (set S (val P)) )  # Restore values\n            (setq P (val 3 P)) )\n         (set $Bind P) ) ) )\n\n(local) setDestruct\n\n(de void setDestruct (Pat Val)\n   (loop\n      (when (atom Val)  # Default non-list to NIL\n         (setq Val $Nil) )\n      (let (P (++ Pat)  V (++ Val))\n         (if (atom P)\n            (unless (nil? P)\n               (set P V) )\n            (setDestruct P V) ) )\n      (? (atom Pat)\n         (unless (nil? Pat)\n            (set Pat Val) ) ) ) )\n\n# (let sym 'any . prg) -> any\n# (let (sym|lst 'any ..) . prg) -> any\n(de _Let (Exe)\n   (let (X (cdr Exe)  Y (++ X))\n      (if (atom Y)\n         (let P\n            (set $Bind\n               (push (val (needChkVar Exe Y)) Y (val $Bind)) )  # [[sym] sym LINK]\n            (set Y (eval (++ X)))\n            (prog1\n               (run X)\n               (set Y (val P)  $Bind (val 3 P)) ) )\n         (let (P (val $Bind)  Q P)\n            (loop\n               (let Z (++ Y)\n                  (if (atom Z)  # Single symbol\n                     (set\n                        $Bind (setq P (push (val (needChkVar Exe Z)) Z P))\n                        Z (eval (car Y)) )\n                     (let Tos 0  # List structure\n                        (loop\n                           (until (atom (car Z))\n                              (let U Z  # Go left\n                                 (setq Z @)  # Invert tree\n                                 (set U Tos)\n                                 (setq Tos U) ) )\n                           (unless (nil? (car Z))  # Skip NIL\n                              (let S (needChkVar Exe @)\n                                 (set $Bind (setq P (push (val S) S P))) ) )\n                           (loop\n                              (? (pair (cdr Z))  # Right subtree\n                                 (let U Z  # Go right\n                                    (setq Z @)  # Invert tree\n                                    (set 2 U Tos)\n                                    (setq Tos (| U 8)) ) )\n                              (unless (nil? @)  # Dotted structure symbol\n                                 (let S (needChkVar Exe @)\n                                    (set $Bind (setq P (push (val S) S P))) ) )\n                              (loop\n                                 (unless Tos\n                                    (goto 1) )\n                                 (? (=0 (& Tos 8))  # Second visit\n                                    (let U Tos\n                                       (setq Tos (car U))  # TOS on up link\n                                       (set U Z)\n                                       (setq Z U) ) )\n                                 (let U (& Tos -9)  # Set second visit\n                                    (setq Tos (cdr U))\n                                    (set 2 U Z)\n                                    (setq Z U) ) ) ) ) )\n                     (: 1\n                        (setDestruct Z (eval (car Y))) ) ) )\n               (? (atom (shift Y))) )\n            (prog1\n               (run X)\n               (loop\n                  (set (val 2 P) (val P))  # Restore values\n                  (? (== Q (setq P (val 3 P)) ) ) )\n               (set $Bind P) ) ) ) ) )\n\n# (let? sym 'any . prg) -> any\n(de _LetQ (Exe)\n   (let (X (cdr Exe)  Y (needChkVar Exe (++ X)))\n      (if (nil? (eval (car X)))\n         @\n         (let P (set $Bind (push (val Y) Y (val $Bind)))  # [[sym] sym LINK]\n            (set Y @)\n            (prog1\n               (run (cdr X))\n               (set Y (val P)  $Bind (val 3 P)) ) ) ) ) )\n\n# (use sym . prg) -> any\n# (use (sym ..) . prg) -> any\n(de _Use (Exe)\n   (let (X (cdr Exe)  Y (++ X))\n      (if (atom Y)\n         (let P (set $Bind (push (val Y) Y (val $Bind)))  # [[sym] sym LINK]\n            (prog1\n               (run X)\n               (set Y (val P)  $Bind (val 3 P)) ) )\n         (let (P (val $Bind)  Q P)\n            (loop\n               (let Z (car Y)\n                  (set $Bind (setq P (push (val Z) Z P))) )\n               (? (atom (shift Y))) )\n            (prog1\n               (run X)\n               (loop\n                  (set (val 2 P) (val P))  # Restore values\n                  (? (== Q (setq P (val 3 P)) ) ) )\n               (set $Bind P) ) ) ) ) )\n\n# (buf sym 'cnt . prg) -> any\n(de _Buf (Exe)\n   (let\n      (X (cdr Exe)\n         Y (needChkVar Exe (++ X))\n         Z (needCnt Exe (eval (++ X)))\n         P (set $Bind (push (val Y) Y (val $Bind))) )  # [[sym] sym LINK]\n      (set Y (box64 (i64 (b8+ (int Z)))))\n      (stkChk Exe)\n      (prog1\n         (run X)\n         (set Y (val P)  $Bind (val 3 P)) ) ) )\n\n# (tco lst . prg) -> any\n(de _Tco (Exe)\n   (let\n      (X (cdr Exe)\n         Y (car X)\n         Z (val $Link)\n         Par (val $TcoPar)\n         Lnk (val $TcoLnk) )\n      (set $TcoPar Y)\n      (while (pair Y)\n         (set $Link (push $Nil (val $Link)))\n         (shift Y) )\n      (set $TcoLnk (val $Link))\n      (loop\n         (setq Y (car X))\n         (let V (run (cdr X))\n            (? (not (prog1 (val $Tc) (set $Tc NO)))\n               (set $TcoLnk Lnk  $TcoPar Par  $Link Z)\n               V ) )\n         (let L (val $Link)\n            (while (pair Y)\n               (set (++ Y) (++ L)) ) ) ) ) )\n\n# (tc ['any ..])\n(de _Tc (Exe)\n   (let (X Exe  P (val $TcoPar)  L (val $TcoLnk))\n      (set $Tc YES)\n      (while (pair P)\n         (set L (eval (car (shift X))))\n         (shift L)\n         (shift P) ) )\n   $Nil )\n\n# (catch 'any . prg) -> any\n(de _Catch (Exe)\n   (let\n      (X (cdr Exe)\n         Ca: (caFrame (b8+ (+ (val JmpBufSize) (caFrame T)))) )\n      (stkChk Exe)\n      (Ca: tag (eval (++ X)))\n      (Ca: link (val $Catch))\n      (set $Catch (Ca:))\n      (Ca: fin ZERO)\n      (Ca: co (val $Current))\n      (putCaEnv (Ca:))\n      (prog1\n         (ifn (setjmp (Ca: (rst)))\n            (prog1 (run X) (set $At2 $Nil))\n            (set $At2 $T)\n            (val $Ret) )\n         (set $Catch (Ca: link)) ) ) )\n\n# (throw 'sym 'any)\n(de _Throw (Exe)\n   (let\n      (X (cdr Exe)\n         Tag (save (eval (++ X)))\n         R (save (eval (car X))) )\n      (let Ca (val $Catch)\n         (while Ca\n            (let Ca: (caFrame Ca)\n               (when (or (t? (Ca: tag)) (== Tag (Ca: tag)))\n                  (unwind Ca)\n                  (set $Ret R)\n                  (longjmp (Ca: (rst)) 1) )\n               (setq Ca (Ca: link)) ) ) )\n      (err Exe Tag ($ \"Tag not found\") null) ) )\n\n# (finally exe . prg) -> any\n(de _Finally (Exe)\n   (let\n      (X (cdr Exe)\n         Ca: (caFrame (b8+ (+ (val JmpBufSize) (caFrame T)))) )\n      (stkChk Exe)\n      (Ca: tag 0)\n      (Ca: link (val $Catch))\n      (set $Catch (Ca:))\n      (Ca: fin (++ X))\n      (Ca: co (val $Current))\n      (putCaEnv (Ca:))\n      (prog1\n         (save (run X))\n         (eval (Ca: fin))\n         (set $Catch (Ca: link)) ) ) )\n\n# Coroutines\n(local) (coErr reentErr tagErr stkOverErr saveCoEnv loadCoEnv runCo)\n\n(de NIL coErr (Exe Tag)\n   (err Exe Tag ($ \"Coroutine not found\") null) )\n\n(de NIL reentErr (Exe Tag)\n   (err Exe Tag ($ \"Reentrant coroutine\") null) )\n\n(de NIL tagErr (Exe)\n   (err Exe 0 ($ \"Tag expected\") null) )\n\n(de NIL stkOverErr (Tag)\n   (set $StkLimit null)\n   (err 0 Tag ($ \"Stack overwritten\") null) )\n\n# Switch coroutines\n(de void saveCoEnv ((i8* . Crt))\n   (let Crt: (coroutine Crt)\n      (unless (== (hex \"0707070707070707\") (val (i64* (Crt: lim))))\n         (stkOverErr (Crt: tag)) )\n      (Crt: at (val $At))  # Not running\n      (putCrtEnv (Crt:)) ) )\n\n(de loadCoEnv ((i8* . Crt) Ret2)\n   (let Crt: (coroutine (set $Current Crt))\n      (memcpy (env) (Crt: (env)) (env T) T)\n      (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n      (getCrtEnv (Crt:))\n      (set $At (Crt: at))\n      (Crt: at 0)  # Running\n      (and Ret2 (run @))\n      (val $Ret) ) )\n\n(de NIL runCo (Exe Tag (i8* . Src) (i8* . Dst) X)\n   (let (Src: (coroutine Src)  Dst: (coroutine Dst))\n      (Dst: tag Tag)\n      (Dst: org (Src:))\n      (Dst: otg (Src: tag))\n      (Dst: prg X)\n      (let (Siz (val $StkSize)  Stk (stack))\n         (memset\n            (Dst: lim (stack (ofs Dst (- Siz))))\n            7 (- Siz 256) T )\n         (stack Stk) )\n      (Dst: at 0)\n      (Dst: lnk (val $Link))\n      (set $Bind\n         (push (val $This) $This  # [[This] This LINK]\n            (Dst: bnd (push ZERO $At (val $Bind) Exe)) ) )  # [0 @ LINK Expr]\n      (Dst: ca (val $Catch))\n      (Dst: in (val $InFrames))\n      (Dst: out (val $OutFrames))\n      (Dst: err (val $ErrFrames))\n      (Dst: ctl (val $CtlFrames))\n      (putCrtEnv (Dst:))\n      (set  # Init local env\n         $Next $Nil\n         $Make 0\n         $Yoke 0\n         $Current (Dst:)\n         $StkLimit (ofs (Dst: lim) (shr (val $StkSize) 6)) )\n      (when (symb? Tag)\n         (put Tag ZERO (| (i64 (Dst:)) 2)) )\n      (set $Ret (run X)  $Ret2 0)\n      (unless (== (hex \"0707070707070707\") (val (i64* (Dst: lim))))\n         (stkOverErr (Dst: tag)) )\n      (set $This (val -3 (Dst: bnd)))\n      (stop (Dst:))  # Stop coroutine\n      (let Org: (coroutine (Dst: org))\n         (unless (and (Org:) (== (Org: tag) (Dst: otg)))\n            (coErr Exe (Dst: otg)) )\n         (longjmp (Org: (rst)) 1) ) ) )\n\n# (co ['any [. prg]]) -> any\n(de _Co (Exe)\n   (let X (cdr Exe)\n      (if (atom X)\n         (if (val $Current)\n            ((coroutine @) tag)\n            $Nil )\n         (let Tag (eval (++ X))\n            (cond\n               ((nil? Tag) (tagErr Exe))\n               ((t? Tag)\n                  (when (pair X)  # 'prg'\n                     (reentErr Exe Tag) )\n                  (let Crt (val $Coroutines)\n                     (when Crt\n                        (while (setq Crt ((coroutine Crt) nxt))\n                           (when ((coroutine Crt) tag)\n                              (err Exe @ ($ \"Running coroutine\") null) ) )\n                        (free (val $Coroutines))\n                        (set $Coroutines (set $Current (set $CrtLast (set $CrtFree null))))\n                        (set $StkLimit (val $SysStkLimit)) ) )\n                  $T )\n               (T\n                  (let Crt (val $Current)\n                     (loop\n                        (? (=0 Crt))\n                        (when (== Tag ((coroutine Crt) tag))  # Found coroutine\n                           (reentErr Exe Tag) )\n                        (setq Crt ((coroutine Crt) org)) ) )\n                  (cond\n                     ((pair X)  # 'prg'\n                        (unless (val $Coroutines)  # First call\n                           (let Main: (coroutine (alloc null (+ (val JmpBufSize) (coroutine T))))\n                              (Main: tag $T)  # Tag 'T'\n                              (Main: nxt null)\n                              (Main: org null)\n                              (Main: otg $Nil)\n                              (Main: prg $Nil)\n                              (let (Siz (val $StkSizeT)  Stk (stack))\n                                 (memset\n                                    (Main: lim (stack (ofs Stk (- Siz))))\n                                    7 (- Siz 256) T )\n                                 (stack Stk) )\n                              (Main: at 0)\n                              (set $Coroutines (set $Current (set $CrtLast (Main:)))) ) )\n                        (let (Src: (coroutine (val $Current))  Crt (val $Coroutines))\n                           (saveCoEnv (Src:))\n                           (cond\n                              ((not (symb? Tag))\n                                 (loop\n                                    (let Crt: (coroutine Crt)\n                                       (when (== Tag (Crt: tag))  # Found running coroutine\n                                          (when (setjmp (Src: (rst)))\n                                             (ret (loadCoEnv (Src:) (val $Ret2))) )\n                                          (set $Ret $Nil  $Ret2 0)\n                                          (Crt: org (Src:))\n                                          (Crt: otg (Src: tag))\n                                          (longjmp (Crt: (rst)) 1) )\n                                       (? (=0 (Crt: nxt)))\n                                       (setq Crt @) ) ) )\n                              ((cnt? (get Tag ZERO))  # Already running\n                                 (let Crt: (coroutine (i8* (& @ -3)))\n                                    (unless (== Tag (Crt: tag))\n                                       (coErr Exe Tag) )\n                                    (when (setjmp (Src: (rst)))\n                                       (ret (loadCoEnv (Src:) (val $Ret2))) )\n                                    (set $Ret $Nil  $Ret2 0)\n                                    (Crt: org (Src:))\n                                    (Crt: otg (Src: tag))\n                                    (longjmp (Crt: (rst)) 1) ) ) )\n                           # Start new coroutine\n                           (when (setjmp (Src: (rst)))\n                              (ret (loadCoEnv (Src:) (val $Ret2))) )\n                           (let P (val $CrtFree)\n                              (if P\n                                 (set $CrtFree ((coroutine (stack P)) lim))  # Use free slot\n                                 (stack ((coroutine (setq Crt (val $CrtLast))) lim))  # Allocate new slot\n                                 (set $CrtLast\n                                    (setq P (b8+ (+ (val JmpBufSize) (coroutine T)))) )\n                                 ((coroutine Crt) nxt P)\n                                 ((coroutine P) nxt null) )\n                              (runCo Exe Tag (Src:) P X) ) ) )\n                     ((val $Coroutines)  # Stop coroutine\n                        (let Crt @\n                           (if (symb? Tag)\n                              (when (cnt? (get Tag ZERO))\n                                 (setq Crt (i8* (& @ -3)))\n                                 (unless (== Tag ((coroutine Crt) tag))\n                                    (coErr Exe Tag) )\n                                 (: 1\n                                    (let P ((coroutine Crt) (env $ErrFrames i8*))  # Close ErrFrames\n                                       (while P\n                                          (let Err: (ctFrame P)\n                                             (when (ge0 (Err: fd))\n                                                (close @) )\n                                             (setq P (Err: link)) ) ) )\n                                    (let P ((coroutine Crt) (env $OutFrames i8*))  # Close OutFrames\n                                       (until (== P (val $Stdout))\n                                          (let Io: (ioFrame P)\n                                             (when (Io: file)\n                                                (let Out: (outFile @)\n                                                   (flush (Out:))\n                                                   (when (and (ge0 (Out: fd)) (Io: pid))\n                                                      (close (Out: fd))\n                                                      (closeOutFile (Out: fd))\n                                                      (when (> (Io: pid) 1)\n                                                         (waitFile @) ) ) ) )\n                                             (setq P (Io: link)) ) ) )\n                                    (let P ((coroutine Crt) (env $InFrames i8*))  # Close InFrames\n                                       (until (== P (val $Stdin))\n                                          (let Io: (ioFrame P)\n                                             (when (Io: file)\n                                                (let In: (inFile @)\n                                                   (when (and (ge0 (In: fd)) (Io: pid))\n                                                      (close (In: fd))\n                                                      (closeInFile (In: fd))\n                                                      (when (> (Io: pid) 1)\n                                                         (waitFile @) ) ) ) )\n                                             (setq P (Io: link)) ) ) )\n                                    (stop Crt) ) )  # Stop it\n                              (loop  # Numeric tag\n                                 (when (== Tag ((coroutine Crt) tag))  # Found coroutine\n                                    (goto 1) )\n                                 (? (=0 (setq Crt ((coroutine Crt) nxt)))) ) ) )\n                        Tag )\n                     (T $Nil) ) ) ) ) ) ) )\n\n# (yield 'any ['any2] [. prg]) -> any\n(de _Yield (Exe)\n   (let\n      (X (cdr Exe)\n         Val (save (eval (++ X)))\n         Tag (eval (++ X))\n         Crt (val $Coroutines) )\n      (unless Crt\n         (err Exe 0 ($ \"No coroutines\") null) )\n      (let\n         (Src: (coroutine (val $Current))\n            Org: (coroutine (Src: org))\n            Dst:\n            (coroutine\n               (cond\n                  ((not (nil? Tag))\n                     (cond\n                        ((t? Tag) (val $Coroutines))\n                        ((not (symb? Tag))\n                           (loop\n                              (let Crt: (coroutine Crt)\n                                 (? (== Tag (Crt: tag)) Crt)\n                                 (unless (setq Crt (Crt: nxt))\n                                    (coErr Exe Tag) ) ) ) )\n                        ((cnt? (get Tag ZERO))\n                           (prog1\n                              (i8* (& @ -3))\n                              (unless (== Tag ((coroutine @) tag))\n                                 (coErr Exe Tag) ) ) )\n                        (T (coErr Exe Tag)) ) )\n                  ((Org:)\n                     (prog1\n                        @\n                        (unless (== (Org: tag) (Src: otg))\n                           (coErr Exe (Src: otg)) ) ) )\n                  (T (tagErr Exe)) ) )\n            Lnk (any 0)\n            Bnd (any 0)\n            Ca (i8* null)\n            In (val $Stdin)\n            Out (val $Stdout)\n            Err (i8* null)\n            Ctl (i8* null) )\n         (unless (t? (Src: tag))\n            (let P (val $Link)  # Reverse Stack(s)\n               (until (== P (Src: lnk))\n                  (let Q P\n                     (setq P (val 2 Q))\n                     (set 2 Q Lnk)\n                     (setq Lnk Q) ) )\n               (set $Link Lnk) )\n            (let P (val $Bind)  # Reverse bindings\n               (until (== P (Src: bnd))\n                  (let Q P\n                     (xchg (val 2 Q) Q)\n                     (setq P (val 3 Q))\n                     (set 3 Q Bnd)\n                     (setq Bnd Q) ) )\n               (set 3 P Bnd  $Bind P) )\n            (let P (val $Catch)  # Reverse CaFrames\n               (until (== P (Src: ca))\n                  (let Ca: (caFrame P)\n                     (setq P (Ca: link))\n                     (Ca: link Ca)\n                     (setq Ca (Ca:)) ) )\n               (set $Catch Ca) )\n            (let P (val $InFrames)  # Reverse InFrames\n               (until (== P (Src: in))\n                  (let In: (ioFrame P)\n                     (setq P (In: link))\n                     (In: link In)\n                     (setq In (In:)) ) )\n               (set $InFrames In) )\n            (let P (val $OutFrames)  # Reverse OutFrames\n               (until (== P (Src: out))\n                  (let Out: (ioFrame P)\n                     (setq P (Out: link))\n                     (Out: link Out)\n                     (setq Out (Out:)) ) )\n               (set $OutFrames Out) )\n            (let P (val $ErrFrames)  # Reverse ErrFrames\n               (until (== P (Src: err))\n                  (let Err: (ctFrame P)\n                     (setq P (Err: link))\n                     (Err: link Err)\n                     (setq Err (Err:)) ) )\n               (set $ErrFrames Err) )\n            (let P (val $CtlFrames)  # Reverse CtlFrames\n               (until (== P (Src: ctl))\n                  (let Ctl: (ctFrame P)\n                     (setq P (Ctl: link))\n                     (Ctl: link Ctl)\n                     (setq Ctl (Ctl:)) ) )\n               (set $CtlFrames Ctl) ) )\n         (saveCoEnv (Src:))\n         (unless (setjmp (Src: (rst)))\n            (set\n               $Ret Val\n               $Ret2 (if (pair X) @ 0) )\n            (longjmp (Dst: (rst)) 1) )\n         (unless (t? (Src: tag))\n            (unless\n               (and\n                  ((setq Org: (coroutine (Src: org))))\n                  (== (Org: tag) (Src: otg)) )\n               (loadCoEnv (Src:) 0)  # Originator terminated\n               (coErr Exe (Src: otg)) )\n            (let P (Org: (env $CtlFrames i8*))  # Restore CtlFrames\n               (Src: ctl P)\n               (while Ctl\n                  (let Ctl: (ctFrame Ctl)\n                     (setq Ctl (Ctl: link))\n                     (Ctl: link P)\n                     (setq P (Ctl:)) ) )\n               (Src: (env $CtlFrames i8*) P) )\n            (let P (Org: (env $ErrFrames i8*))  # Restore ErrFrames\n               (Src: err P)\n               (while Err\n                  (let Err: (ctFrame Err)\n                     (setq Err (Err: link))\n                     (Err: link P)\n                     (setq P (Err:)) ) )\n               (Src: (env $ErrFrames i8*) P) )\n            (let P (Org: (env $OutFrames i8*))  # Restore OutFrames\n               (Src: out P)\n               (until (== Out (val $Stdout))\n                  (let Out: (ioFrame Out)\n                     (setq Out (Out: link))\n                     (Out: link P)\n                     (setq P (Out:)) ) )\n               (Src: (env $OutFrames i8*) P) )\n            (let P (Org: (env $InFrames i8*))  # Restore InFrames\n               (Src: in P)\n               (until (== In (val $Stdin))\n                  (let In: (ioFrame In)\n                     (setq In (In: link))\n                     (In: link P)\n                     (setq P (In:)) ) )\n               (Src: (env $InFrames i8*) P) )\n            (let P (Org: (env $Catch i8*))  # Restore CaFrames\n               (Src: ca P)\n               (while Ca\n                  (let Ca: (caFrame Ca)\n                     (setq Ca (Ca: link))\n                     (Ca: link P)\n                     (setq P (Ca:)) ) )\n               (Src: (env $Catch i8*) P) )\n            (let P (Src: bnd)  # Restore bindings\n               (set 3 P (Org: (env $Bind any)))\n               (while Bnd\n                  (let Q Bnd\n                     (xchg (val 2 Q) Q)\n                     (setq Bnd (val 3 Q))\n                     (set 3 Q P)\n                     (setq P Q) ) )\n               (Src: (env $Bind any) P) )\n            (let P (Org: (env $Link any))  # Restore Stack(s)\n               (Src: lnk P)\n               (while Lnk\n                  (let Q Lnk\n                     (setq Lnk (val 2 Q))\n                     (set 2 Q P)\n                     (setq P Q) ) )\n               (Src: (env $Link any) P) ) )\n         (loadCoEnv (Src:) (val $Ret2)) ) ) )\n\n(de brkLoad (Exe)\n   (when\n      (and\n         ((inFile (val (val $InFiles))) tty)\n         ((outFile (val 2 (val $OutFiles))) tty)\n         (=0 (val $Break)) )\n      (let P (val $Bind)\n         (setq P (push (val $At) $At P 0))  # [[@] @ LINK Expr]\n         (setq P (push (val $Up) $Up P))\n         (set $Up Exe)\n         (set $Break (set $Bind (push (val $Run) $Run P)))\n         (set $Run $Nil) )\n      (pushOutFile (b8+ (ioFrame T)) (val 2 (val $OutFiles)) 0)  # Stdout\n      (print Exe)\n      (newline)\n      (repl 0 ($ \"! \") $Nil)\n      (popOutFiles)\n      (setq Exe (val $Up))\n      (let P (val $Bind)\n         (set $Run (val P))\n         (setq P (val 3 P))\n         (set $Up (val P))\n         (setq P (val 3 P))\n         (set $At (val P))\n         (set $Bind (val 3 P)) )\n      (set $Break 0) )\n   Exe )\n\n# (! . exe) -> any\n(de _Break (Exe)\n   (let X (cdr Exe)\n      (unless (nil? (val $Dbg))\n         (setq X (brkLoad X)) )\n      (eval X) ) )\n\n# (!! 'any . exe) -> any\n(de _BreakIf (Exe)\n   (let (X (cdr Exe)  Y (cdr X))\n      (unless\n         (or\n            (nil? (val $Dbg))\n            (nil? (eval (car X))) )\n         (setq Y (brkLoad Y)) )\n      (eval Y) ) )\n\n# (e . prg) -> any\n(de _E (Exe)\n   (let P (val $Break)\n      (unless P\n         (err Exe 0 ($ \"No Break\")  null) )\n      (let\n         (Dbg (save (val $Dbg))\n            At (save (val $At))\n            Run (save (val $Run)) )\n         (set\n            $Dbg $Nil\n            $Run (val P)\n            $At (val (val 3 (val 3 P))) )\n         (let (In: (ioFrame (val $InFrames))  Out: (ioFrame (val $OutFrames)))\n            (popInFiles)\n            (popOutFiles)\n            (prog1\n               (if (pair (cdr Exe))\n                  (run @)\n                  (eval (val $Up)) )\n               (if (Out: file)\n                  (pushOutFile (Out:) (Out: file) (Out: pid))\n                  (pushOutput (Out:) ((ioxFrame (Out:)) exe)) )\n               (if (In: file)\n                  (pushInFile (In:) (In: file) (In: pid))\n                  (pushInput (In:) ((ioxFrame (In:)) exe)) )\n               (set $Run Run  $At At  $Dbg Dbg) ) ) ) ) )\n\n(local) trace\n\n(de void trace ((i32 . C) X)\n   (when (> C 64)\n      (setq C 64) )\n   (while (ge0 (dec 'C))\n      (space) )\n   (if (atom X)  # Symbol\n      (print @)\n      (print (car X))  # Method\n      (space)\n      (print (cdr X))  # Class\n      (space)\n      (print (val $This)) ) )  # 'This'\n\n# ($ sym|lst lst . prg) -> any\n(de _Trace (Exe)\n   (let X (cdr Exe)\n      (if (nil? (val $Dbg))\n         (run (cddr X))\n         (let (Out (val $OutFile)  Put (val (i8** $Put)))\n            (set\n               $OutFile (val 3 (val $OutFiles))  # Stderr\n               $Put (fun (void i8) _putStdout) )\n            (let (Y (++ X)  Z (++ X))\n               (trace (set $Trace (inc (val $Trace))) Y)\n               (outString ($ \" :\"))\n               (while (pair Z)\n                  (space)\n                  (print (val (++ Z))) )\n               (cond\n                  ((== Z $At)\n                     (setq Z (val $Next))\n                     (while (pair Z)\n                        (space)\n                        (print (cdr Z))\n                        (setq Z (car Z)) ) )\n                  ((not (nil? Z))\n                     (space)\n                     (print (val Z)) ) )\n               (newline)\n               (set (i8** $Put) Put  $OutFile Out)\n               (prog1\n                  (run X)\n                  (set\n                     $OutFile (val 3 (val $OutFiles))  # Stderr\n                     $Put (fun (void i8) _putStdout) )\n                  (let I (val $Trace)\n                     (trace I Y)\n                     (set $Trace (dec I)) )\n                  (outString ($ \" = \"))\n                  (print @)\n                  (newline)\n                  (set (i8** $Put) Put  $OutFile Out) ) ) ) ) ) )\n\n# (exec 'any ..)\n(de _Exec (Exe)\n   (let\n      (X (cdr Exe)\n         Av (b8* (inc (length X)))\n         Cmd (xName (evSym X)) )\n      (set Av (pathString Cmd (b8 (pathSize Cmd))))\n      (stkChk Exe)\n      (let A Av\n         (while (pair (shift X))\n            (let Nm (xName (evSym X))\n               (set (inc 'A)\n                  (bufString Nm (b8 (bufSize Nm))) ) )\n            (stkChk Exe) )\n         (set (inc 'A) null) )\n      (flushAll)\n      (execvp (val Av) Av)  # Execute program\n      (execErr (val Av)) ) )  # Error if failed\n\n# (call 'any ..) -> flg\n(de _Call (Exe)\n   (let\n      (X (cdr Exe)\n         Av (b8* (inc (length X)))\n         Cmd (xName (evSym X)) )\n      (set Av (pathString Cmd (b8 (pathSize Cmd))))\n      (stkChk Exe)\n      (let A Av\n         (while (pair (shift X))\n            (let Nm (xName (evSym X))\n               (set (inc 'A)\n                  (bufString Nm (b8 (bufSize Nm))) ) )\n            (stkChk Exe) )\n         (set (inc 'A) null) )\n      (flushAll)\n      (let\n         (Tc (tcgetpgrp 0)\n            Fg (and (val Tio) (== Tc (getpgrp))) )\n         (cond\n            ((lt0 (fork)) (forkErr Exe))\n            ((=0 @)  # In child\n               (setpgid 0 0)  # Set process group\n               (when Fg\n                  (tcsetpgrp 0 (getpid)) )\n               (execvp (val Av) Av)  # Execute program\n               (execErr (val Av)) ) )  # Error if failed\n         # In parent\n         (let (Pid @  Res (b32 1))\n            (setpgid Pid 0)  # Set process group\n            (when Fg\n               (tcsetpgrp 0 Pid) )\n            (loop\n               (while (lt0 (waitWuntraced Pid Res))\n                  (unless (== (gErrno) EINTR)\n                     (err Exe 0 ($ \"wait pid\") null) )\n                  (sigChk Exe) )\n               (when Fg\n                  (tcsetpgrp 0 Tc) )\n               (? (=0 (wifStopped Res))\n                  (set $At2 (cnt (i64 (val Res))))\n                  (if (val Res) $Nil $T) )\n               (repl 0 ($ \"+ \") $Nil)\n               (when Fg\n                  (tcsetpgrp 0 Pid) )\n               (kill Pid (val SIGCONT Sig)) ) ) ) ) )\n\n# (ipid) -> pid | NIL\n(de _Ipid (Exe)\n   (let Io: (ioFrame (val $InFrames))\n      (if (and (Io: file) (> (Io: pid) 1))\n         (cnt (i64 (Io: pid)))\n         $Nil ) ) )\n\n# (opid) -> pid | NIL\n(de _Opid (Exe)\n   (let Io: (ioFrame (val $OutFrames))\n      (if (and (Io: file) (> (Io: pid) 1))\n         (cnt (i64 (Io: pid)))\n         $Nil ) ) )\n\n# (kill 'pid ['cnt]) -> flg\n(de _Kill (Exe)\n   (let (X (cdr Exe)  Pid (i32 (evCnt Exe X)))\n      (if\n         (kill\n            Pid\n            (if (atom (shift X))\n               (val SIGTERM Sig)\n               (i32 (evCnt Exe X)) ) )\n         $Nil\n         $T ) ) )\n\n# (fork) -> pid | NIL\n(de _Fork (Exe)\n   (if (forkLisp Exe)\n      (cnt (i64 @))\n      $Nil ) )\n\n# (detach) -> pid | NIL\n(de _Detach (Exe)\n   (prog1\n      (val $PPid)\n      (unless (nil? @)\n         (set $PPid $Nil)\n         (close (val $Tell))\n         (set $Tell 0)\n         (let H (val $Hear)\n            (close H)\n            (closeInFile H)\n            (closeOutFile H) )\n         (set $Hear 0)\n         (close (val $Mic))\n         (set $Mic 0)\n         (set $Slot 0)\n         (setsid) ) ) )\n\n# (bye ['cnt])\n(de _Bye (Exe)\n   (bye\n      (if (nil? (eval (cadr Exe)))\n         0\n         (i32 (xCnt Exe @)) ) ) )\n"
  },
  {
    "path": "src/gc.l",
    "content": "# 28aug25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (mark gc need3)\n\n(de void mark (E)\n   (let Tos 0  # Clear\n      (loop\n         (until (cnt? E)\n            (let (P (any (& E -16))  Q (val 2 P))  # Cell pointer\n               (? (=0 (& Q 1)))  # Already marked\n               (set 2 P (setq Q (& Q -2)))  # Mark cell\n               (? (big? E)\n                  (until (cnt? Q)\n                     (let N (val (big Q))\n                        (? (=0 (& N 1)))  # Already marked\n                        (setq Q (set (big Q) (& N -2))) ) ) )  # Mark big digits\n               (let X E  # Current item\n                  (setq E (val P))  # Get CAR\n                  (set P (| Tos 1))  # First visit\n                  (setq Tos X) ) ) )  # TOS on previous\n         (loop\n            (let P (any (& Tos -16))  # TOS cell pointer\n               (unless P  # Empty\n                  (ret) )\n               (let Q (val P)  # Up pointer\n                  (? (& Q 1)  # Second visit\n                     (set P E)  # Restore CAR\n                     (setq E (val 2 P))  # Get CDR\n                     (set 2 P (& Q -2)) ) )  # Store up pointer\n               (let X Tos\n                  (setq Tos (val 2 P))  # TOS up\n                  (set 2 P E)  # Restore CDR\n                  (setq E X) ) ) ) ) ) )  # Go up\n\n(de void gc ()\n   (set $DB $Nil)  # Cut off DB root\n   # Prepare\n   (let P $Nil  # Symbol table\n      (set P (| (val P) 1))  # Set mark bit\n      (setq P (ofs P 4))  # Skip NIL tail\n      (loop\n         (set P (| (val P) 1))  # Set mark bit\n         (? (== P $LastSym))\n         (setq P (ofs P 2)) ) )  # Next symbol\n   (let P (val $Heaps)\n      (loop\n         (let C CELLS\n            (loop\n               (set 2 P (| (val 2 P) 1))  # Set mark bit\n               (setq P (ofs P 2))  # Next cell\n               (? (=0 (dec 'C))) ) )\n         (? (=0 (setq P (val P)))) ) )  # Next heap\n   # Mark\n   (let P (any (gcData))  # Globals\n      (loop\n         (mark (val P))  # Mark\n         (? (== P $LispEnd))\n         (setq P (ofs P 1)) ) )  # Next global\n   (let P (val $Link)  # Stack(s)\n      (while P\n         (mark (val P))  # Mark item\n         (setq P (val 2 P)) ) )\n   (let P (val $Bind)  # Bind frames\n      (while P\n         (mark (val P))  # Mark saved value\n         (mark (val 2 P))  # Mark symbol\n         (setq P (val 3 P)) ) )\n   (let Ca (val $Catch)  # Catch frames\n      (while Ca\n         (let Ca: (caFrame Ca)\n            (when (Ca: tag)  # Mark 'tag'\n               (mark @) )\n            (mark (Ca: fin))  # Mark 'fin'\n            (mark (Ca: intrn))\n            (mark (Ca: trns1))\n            (mark (Ca: trns2))\n            (mark (Ca: priv1))\n            (mark (Ca: priv2))\n            (setq Ca (Ca: link)) ) ) )\n   (let Crt (val $Coroutines)\n      (while Crt\n         (let Crt: (coroutine Crt)\n            (when (Crt: tag)\n               (mark (Crt: tag))\n               (mark (Crt: otg))\n               (mark (Crt: prg))\n               (when (Crt: at)\n                  (mark (Crt: at))\n                  (mark (Crt: intrn))\n                  (mark (Crt: trns1))\n                  (mark (Crt: trns2))\n                  (mark (Crt: priv1))\n                  (mark (Crt: priv2))\n                  (let P (Crt: (env $Link any))  # Stack(s)\n                     (while P\n                        (mark (val P))  # Mark item\n                        (setq P (val 2 P)) ) )\n                  (let P (Crt: (env $Bind any))  # Bind frames\n                     (while P\n                        (mark (val P))  # Mark saved value\n                        (mark (val 2 P))  # Mark symbol\n                        (setq P (val 3 P)) ) )\n                  (let Ca (Crt: (env $Catch i8*))\n                     (while Ca\n                        (let Ca: (caFrame Ca)\n                           (when (Ca: tag)  # Mark 'tag'\n                              (mark (Ca: tag)) )\n                           (mark (Ca: fin))\n                           (mark (Ca: intrn))\n                           (mark (Ca: trns1))\n                           (mark (Ca: trns2))\n                           (mark (Ca: priv1))\n                           (mark (Ca: priv2))\n                           (setq Ca (Ca: link)) ) ) ) ) )\n            (setq Crt (Crt: nxt)) ) ) )\n   (let (Tos 0  P (val $Extern))  # Externals\n      (loop\n         (loop\n            (let X (any (& (val 2 P) -2))\n               (set 2 P X)  # Clear mark bit\n               (let Y (any (& (val 2 X) -2))  # Right subtree\n                  (set 2 X Y)  # Clear mark bit\n                  (? (atom Y))\n                  (let Z P  # Go right\n                     (setq P Y)  # Invert tree\n                     (set 2 X Tos)\n                     (setq Tos Z) ) ) ) )\n         (loop\n            (let S (val P)  # Get external symbol\n               (when (& (val S) 1)  # Not marked\n                  (let Tail (val (tail S))\n                     (unless (num? Tail)  # Has properties\n                        (setq Tail (& Tail -10))  # Clear 'extern' tag and mark bit\n                        (until (num? (setq Tail (val 2 Tail)))  # Skip property\n                           (setq Tail (& Tail -2)) ) )  # Clear mark bit\n                     (add Tail Tail)  # Get carry\n                     (when @@  # Dirty or deleted\n                        (mark S) ) ) ) )\n            (let X (val 2 P)  # Left subtree\n               (? (pair (val X))\n                  (let Z P  # Go left\n                     (setq P @)  # Invert tree\n                     (set X Tos)\n                     (setq Tos (| Z 8)) ) ) )  # First visit\n            (loop\n               (unless Tos\n                  (goto 1) )\n               (? (=0 (& Tos 8))  # Second visit\n                  (let (X Tos  Y (val 2 X))  # Nodes\n                     (setq Tos (val 2 Y))  # TOS on up link\n                     (set 2 Y P)\n                     (setq P X) ) )\n               (setq Tos (& Tos -9))  # Clear visit bit\n               (let (X Tos  Y (val 2 X))  # Nodes\n                  (setq Tos (val Y))\n                  (set Y P)\n                  (setq P X) ) ) ) ) )\n   (: 1\n      (when (val $DBs)\n         (set $DB $Db1) )  # Restore DB root\n      (when (& (val $Db1) 1)  # Not marked\n         (set\n            $Db1 $Nil  # Clear\n            (tail $Db1) DB1 ) ) )  # Set to \"not loaded\"\n   (let (Tos 0  P (val $Extern))  # Externals\n      (: 2\n         (loop\n            (loop\n               (let X (val 2 P)  # Right subtree\n                  (? (atom (val 2 X)))\n                  (let Z P  # Go right\n                     (setq P @)  # Invert tree\n                     (set 2 X Tos)\n                     (setq Tos Z) ) ) )\n            (loop\n               (when (& (val (val P)) 1)  # External symbol not marked\n                  (set $ExtCnt (- (val $ExtCnt) 1))  # Remove it\n                  (let X (val 2 P)\n                     (when (atom X)  # No subtrees\n                        (set 2 P (| X 1))  # Set mark bit again\n                        (setq P X)  # Use NIL\n                        (goto 4) )  # Already traversed\n                     (when (atom (val X))  # No left branch\n                        (set 2 P (| X 1))  # Set mark bit again\n                        (setq P (val 2 X))  # Use right branch\n                        (set 2 X (| P 1))\n                        (goto 4) )  # Already traversed\n                     (when (atom (val 2 X))  # No right branch\n                        (set 2 P (| X 1))  # Set mark bit again\n                        (setq P (val X))  # Use left branch\n                        (set 2 X (| (val 2 X) 1))\n                        (goto 2) )\n                     (let Y (val 2 (setq X (val 2 X)))  # X on right branch\n                        (when (atom (val Y))  # No left sub-branches\n                           (set\n                              P (val X)  # Insert right sub-branch\n                              2 (val 2 P) (val 2 Y) )\n                           (goto 3) )\n                        (setq Y (val Y))  # Left sub-branch\n                        (loop\n                           (? (atom (val (val 2 Y)))  # No more left branches\n                              (set  # Insert left sub-branch\n                                 P (val Y)\n                                 (val 2 X) (val 2 (val 2 Y)) ) )\n                           (setq X Y  Y @) ) ) ) )  # Go down left\n               (: 3\n                  (let X (val 2 P)  # Left subtree\n                     (? (pair (val X))\n                        (let Z P  # Go left\n                           (setq P @)  # Invert tree\n                           (set X Tos)\n                           (setq Tos (| Z 8)) ) ) ) )  # First visit\n               (: 4\n                  (loop\n                     (unless Tos\n                        (goto 5) )\n                     (? (=0 (& Tos 8))  # Second visit\n                        (let (X Tos  Y (val 2 X))  # Nodes\n                           (setq Tos (val 2 Y))  # TOS on up link\n                           (set 2 Y P)\n                           (setq P X) ) )\n                     (let (X (& Tos -9)  Y (val 2 X))  # Clear visit bit\n                        (setq Tos (val Y))\n                        (set Y P)\n                        (setq P X) ) ) ) ) ) )\n      (: 5 (set $Extern P)) )\n   # Sweep\n   (let (Avail 0  Heap (val $Heaps)  Cnt (val $GcCount))\n      (ifn Cnt\n         (let H (any $Heaps)  # Try to free heaps\n            (loop\n               (let (A Avail  P (ofs Heap (- HEAP 2)))  # P on last cell in chunk\n                  (setq Cnt CELLS)\n                  (loop\n                     (when (& (val 2 P) 1)  # Free cell\n                        (set P Avail)  # Link avail\n                        (setq Avail P)\n                        (dec 'Cnt) )\n                     (? (== P Heap))\n                     (setq P (ofs P -2)) )  # Back one cell\n                  (if Cnt\n                     (setq Heap (val (setq H (ofs Heap HEAP))))  # Next heap\n                     (setq Avail A  Heap (val (inc HEAP) Heap))  # Reset avail list\n                     (free (i8* (val H)))  # Free empty heap\n                     (set H Heap) ) )  # Store next heap in list link\n               (? (=0 Heap)) )\n            (set $Avail Avail) )\n         (loop\n            (let P (ofs Heap (- HEAP 2))  # P on last cell in chunk\n               (loop\n                  (when (& (val 2 P) 1)  # Free cell\n                     (set P Avail)  # Link avail\n                     (setq Avail P)\n                     (dec 'Cnt) )\n                  (? (== P Heap))\n                  (setq P (ofs P -2)) ) )  # Back one cell\n            (? (=0 (setq Heap (val (inc HEAP) Heap)))) )\n         (set $Avail Avail)\n         (when (gt0 Cnt)  # Ensure enough free cells\n            (set $GcCount (+ Cnt (val $GcCount)))\n            (inc 'Cnt Cnt)\n            (loop\n               (heapAlloc)\n               (? (le0 (dec 'Cnt CELLS))) ) ) ) ) )\n\n(de void need3 ()\n   (let P (val $Avail)\n      (unless (and P (setq P (val P)) (val P))\n         (gc) ) ) )\n\n# (gc ['cnt [cnt2]]) -> cnt | NIL\n(de _Gc (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))  # MiBs\n      (if (nil? Y)\n         (gc)\n         (set $GcCount (shl (xCnt Exe Y) 16))  # Multiply with CELLS\n         (gc)\n         (set $GcCount\n            (if (atom (shift X))\n               CELLS\n               (shl (evCnt Exe X) 16) ) ) )  # New default\n      Y ) )\n\n# Cell allocation (consing)\n(local) (cons cons2 cons3 consSym consStr consExt boxNum consNum box)\n\n(de cons (Car Cdr)\n   (let P (val $Avail)\n      (unless P\n         (save2 Car Cdr\n            (gc) )\n         (setq P (val $Avail)) )\n      (set $Avail (val P))\n      (set P Car)\n      (set 2 P Cdr)\n      P ) )\n\n(de cons2 (Car1 Cdr1 Cdr2)\n   (let P (val $Avail)\n      (when P\n         (let Q (val P)\n            (when Q\n               (set $Avail (val Q))\n               (set P Car1)\n               (set 2 P Cdr1)\n               (set Q P)\n               (set 2 Q Cdr2)\n               (ret Q) ) ) ) )\n   (save2 Car1 Cdr1\n      (save Cdr2\n         (gc) ) )\n   (let (P (val $Avail)  Q (val P))\n      (set $Avail (val Q))\n      (set P Car1)\n      (set 2 P Cdr1)\n      (set Q P)\n      (set 2 Q Cdr2)\n      Q ) )\n\n(de cons3 (Car1 Cdr1 Car2 Cdr2)\n   (let P (val $Avail)\n      (when P\n         (let Q (val P)\n            (when Q\n               (let R (val Q)\n                  (when R\n                     (set $Avail (val R))\n                     (set P Car1)\n                     (set 2 P Cdr1)\n                     (set Q Car2)\n                     (set 2 Q Cdr2)\n                     (set R P)\n                     (set 2 R Q)\n                     (ret R) ) ) ) ) ) )\n   (save2 Car1 Cdr1\n      (save2 Car2 Cdr2\n         (gc) ) )\n   (let (P (val $Avail)  Q (val P)  R (val Q))\n      (set $Avail (val R))\n      (set P Car1)\n      (set 2 P Cdr1)\n      (set Q Car2)\n      (set 2 Q Cdr2)\n      (set R P)\n      (set 2 R Q)\n      R ) )\n\n(de consSym (Name Val)\n   (let P (val $Avail)\n      (unless P\n         (if Val\n            (save2 Name Val\n               (gc) )\n            (save Name\n               (gc) ) )\n         (setq P (val $Avail)) )\n      (set $Avail (val P))\n      (set P Name)\n      (let S (sym P)\n         (set S (if Val @ S))\n         S ) ) )\n\n(de consStr (Name)\n   (if (== Name ZERO)\n      $Nil\n      (tailcall (consSym Name 0)) ) )\n\n(de consExt (Name)\n   (set $ExtCnt (+ (val $ExtCnt) 1))\n   (tailcall (consSym (sign Name) $Nil)) )\n\n(de boxNum (Dig)\n   (let P (val $Avail)\n      (unless P\n         (gc)\n         (setq P (val $Avail)) )\n      (set $Avail (val P))\n      (set P Dig)\n      (set 2 P ZERO)\n      (big P) ) )\n\n(de consNum (Dig Big)\n   (let P (val $Avail)\n      (unless P\n         (save Big\n            (gc) )\n         (setq P (val $Avail)) )\n      (set $Avail (val P))\n      (set P Dig)\n      (set 2 P Big)\n      (big P) ) )\n\n(de box (N)\n   (if (ge0 N)\n      (box64 N)\n      (sign (box64 (- N))) ) )\n"
  },
  {
    "path": "src/glob.l",
    "content": "# 17mar26 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(var $AV0 i8* null)                    # Command name\n(var $AV i8** null)                    # Command line argument vector\n(var $PilHome i8* null)                # Picolisp home directory\n(var $PilLen i64 0)                    # $PilHome length\n(var $UsrHome i8* null)                # User home directory\n(var $UsrLen i64 0)                    # $UsrHome length\n(var $Heaps 0)                         # Heap list\n(var $Avail 0)                         # Avail list\n(var $Extern 0)                        # External symbol tree\n(var $ExtCnt i64 1)                    # External symbol count\n(var $ExtSkip i64 0)                   # External tree skip\n(var $Coroutines i8* null)             # Coroutines\n(var $Current i8* null)                # Current coroutine\n(var $CrtLast i8* null)                # Last Coroutine\n(var $CrtFree i8* null)                # Coroutine free list link\n(var $SysStkLimit i8* null)            # System stack limit\n(var $StkLimit i8* null)               # Current stack limit\n(var $StkSizeT i64 (* 4 STACK))        # Coroutine main stack segment size\n(var $StkSize i64 STACK)               # Coroutine stack segment size\n(var $Stdin i8* null)                  # Stdin frame\n(var $Stdout i8* null)                 # Stdout frame\n(var $LinePtr i8* null)                # Console line pointer\n(var $LineBuf i8* null)                # Console line buffer\n(var $LinePrmt i8* null)               # Console line prompt\n(var $ReplPrmt i8* null)               # REPL console prompt\n(var $ContPrmt i8* null)               # REPL continue prompt\n(var $Ret 0)                           # Secondary return values\n(var $Ret2 0)\n(var $TtyPid i32 0)                    # Terminal process ID\n(var $InFDs i32 0)                     # Number of input files\n(var $InFiles i8** null)               # Input files\n(var $OutFiles i8** null)              # Output files\n(var $IoCnt i32 0)                     # 'output' count\n(var $IoIx i64 0)                      # 'output' index\n(var $InChar i64 0)                    # 'input' char\n(var $OutChar i64 0)                   # 'output' char\n(var $PutBin (void i8) null)           # Binary output function\n(var $GetBin (i32) null)               # Binary input function\n(var $OutFDs i32 0)                    # Number of ourput files\n(var $Nfds i32 0)                      # Number of poll entries\n(var $Poll i64* null)                  # Poll entries\n(var $SeedL i64 0)                     # Random seed low\n(var $SeedH i64 0)                     # Random seed high\n(var $USec i64 0)                      # Startup microseconds\n(var $Rt i64 0)                        # Real/Runtime [microseconds]\n(var $Child i8* null)                  # Child array\n(var $Children i32 0)                  # Number of children\n(var $Slot i32 0)                      # Child index\n(var $Spkr i32 0)                      # RPC loadspeaker\n(var $Mic i32 0)                       # RPC microphone\n(array $SpMiPipe i32 0 0)              # Speaker/microphone pipe\n(var $Talking i32 0)                   # Active child\n(var $Hear i32 0)                      # RPC listener\n(var $Tell i32 0)                      # RPC broadcaster\n(var $TellBuf i8* null)                # RPC buffer\n(var $Ptr i8* null)                    # Byte buffer pointer\n(var $End i8* null)                    # Buffer end pointer\n(var $BufX i8* null)                   # Exchange buffer\n(var $PtrX i8* null)                   # Exchange buffer pointer\n(var $EndX i8* null)                   # Exchange end pointer\n(var $ExtN i32 0)                      # External symbol offset\n(var $Extn i32 0)\n(var $StrP i64* null)                  # String status\n(var $GcCount i64 CELLS)               # Collector count\n\n# Database\n(var $DbFiles i8* null)                # DB files\n(var $DbFile i8* null)                 # DB file\n(var $DBs i32 0)                       # Number of DB files\n(var $MaxBlkSize i32 0)                # Maximum block size\n(var $DbBlock i8* null)                # Block buffer\n(var $BlkIndex i64 0)                  # Block index\n(var $BlkLink i64 0)                   # Next block\n(var $BlkPtr i8* null)                 # Block byte buffer pointer\n(var $BlkEnd i8* null)                 # Block buffer end pointer\n(var $DbJnl i8* null)                  # Journal file\n(var $DbLog i8* null)                  # Transaction log file\n\n# Signals\n(array $Signal i32  # Sync src/lib.c 'gSignal'\n   0    # Count\n   0    # SIGHUP\n   0    # SIGINT\n   0    # SIGUSR1\n   0    # SIGUSR2\n   0    # SIGPIPE\n   0    # SIGALRM\n   0    # SIGTERM\n   0    # SIGCHLD\n   0    # SIGCONT\n   0    # SIGSTOP\n   0    # SIGTSTP\n   0    # SIGTTIN\n   0    # SIGTTOU\n   0    # SIGWINCH\n   0 )  # SIGIO\n\n# Symbol Table\n(symTab\n   ($Nil \"NIL\" $Nil)          # NIL symbol\n   (NIL $Nil 0)               # CDR of NIL as empty list\n   ($Tilde \"~\" $Tilde)        # Tilde symbol\n   ($PicoT $Nil $Nil 0)       # Pico trees\n   ($Pico $Tilde $PicoT 0)    # Initial namespace\n   ($pico \"pico\" $Pico)\n   ($Pico1 $pico $Nil 0)\n   ($PrivT $Nil $Nil 0)       # Private trees\n   ($Priv $Tilde $PrivT 0)    # Private namespace\n   ($priv \"priv\" $Priv)\n   ($OS \"*OS\" 0)              # Operating system\n   ($CPU \"*CPU\" 0)            # Processor\n   ($Pid \"*Pid\" 0)            # Process ID\n   ($PPid \"*PPid\" $Nil)       # Parent Process ID\n   ($DB \"*DB\" $Nil)           # Database root\n   ($Meth \"meth\" __Meth)      # Method template\n   ($Quote \"quote\" _Quote)    # 'quote' function\n   ($T \"T\" $T)  ### Sync src/pico.h 'T' (17*2+1) ###\n   ($S \"S\" $Nil)\n   ($P \"P\" $Nil)\n   ($N \"N\" $Nil)\n   ($U \"U\" $Nil)\n   ($I \"I\" $Nil)\n   ($W \"W\" $Nil)\n   ($C \"C\" $Nil)\n   ($B \"B\" $Nil)\n   ($Db1 0 $Nil)              # Database root symbol '{1}'\n   ($Solo \"*Solo\" ZERO)\n   ($At \"@\" $Nil)\n   ($At2 \"@@\" $Nil)\n   ($At3 \"@@@\" $Nil)\n   ($This \"This\" $Nil)\n   ($Prompt \"*Prompt\" $Nil)\n   ($Zap \"*Zap\" $Nil)\n   ($Ext \"*Ext\" $Nil)\n   ($Scl \"*Scl\" ZERO)\n   ($Rule \"*Rule\" $Nil)\n   ($Class \"*Class\" $Nil)\n   ($Run \"*Run\" $Nil)\n   ($Hup \"*Hup\" $Nil)\n   ($Sig1 \"*Sig1\" $Nil)\n   ($Sig2 \"*Sig2\" $Nil)\n   ($Winch \"*Winch\" $Nil)\n   ($TStp1 \"*TStp1\" $Nil)\n   ($TStp2 \"*TStp2\" $Nil)\n   ($Term \"*Term\" $Nil)\n   ($Up \"\\^\" $Nil)\n   ($Err \"*Err\" $Nil)\n   ($Msg \"*Msg\" $Nil)\n   ($Uni \"*Uni\" $Nil)\n   ($Fork \"*Fork\" $Nil)\n   ($Bye \"*Bye\" $Nil)\n   ($Dbg \"*Dbg\" $Nil)\n   ($Remark \"remark\" $Nil)\n   ($Complete \"complete\" $Nil)\n   ($Reflect \"reflect\" $Nil)\n   (NIL \"gc\" _Gc)\n   (NIL \"format\" _Format)     # Arithmetics\n   (NIL \"+\" _Add)\n   (NIL \"-\" _Sub)\n   (NIL \"inc\" _Inc)\n   (NIL \"dec\" _Dec)\n   (NIL \"*\" _Mul)\n   (NIL \"*/\" _MulDiv)\n   (NIL \"/\" _Div)\n   ($rem \"%\" _Rem)\n   (NIL \">>\" _Shr)\n   (NIL \"rev\" _Rev)\n   (NIL \"lt0\" _Lt0)\n   (NIL \"le0\" _Le0)\n   (NIL \"ge0\" _Ge0)\n   (NIL \"gt0\" _Gt0)\n   (NIL \"abs\" _Abs)\n   (NIL \"bit?\"_BitQ)\n   (NIL \"&\" _BitAnd)\n   (NIL \"|\" _BitOr)\n   (NIL \"x|\" _BitXor)\n   (NIL \"sq\" _Sq)\n   (NIL \"sqrt\" _Sqrt)\n   (NIL \"seed\" _Seed)\n   (NIL \"hash\" _Hash)\n   (NIL \"rand\" _Rand)\n   (NIL \"name\" _Name)         # Symbol functions\n   (NIL \"nsp\" _Nsp)\n   (NIL \"sp?\" _SpQ)\n   (NIL \"pat?\" _PatQ)\n   (NIL \"fun?\" _FunQ)\n   (NIL \"getd\" _Getd)\n   (NIL \"all\" _All)\n   (NIL \"symbols\" _Symbols)\n   (NIL \"intern\" _Intern)\n   (NIL \"====\" _Hide)\n   (NIL \"box?\" _BoxQ)\n   (NIL \"str?\" _StrQ)\n   (NIL \"zap\" _Zap)\n   (NIL \"chop\" _Chop)\n   (NIL \"pack\" _Pack)\n   (NIL \"glue\" _Glue)\n   (NIL \"text\" _Text)\n   (NIL \"pre?\" _PreQ)\n   (NIL \"sub?\" _SubQ)\n   (NIL \"val\" _Val)\n   (NIL \"set\" _Set)\n   (NIL \"setq\" _Setq)\n   (NIL \"swap\" _Swap)\n   (NIL \"xchg\" _Xchg)\n   (NIL \"on\" _On)\n   (NIL \"off\" _Off)\n   (NIL \"onOff\" _OnOff)\n   (NIL \"zero\" _Zero)\n   (NIL \"one\" _One)\n   (NIL \"default\" _Default)\n   (NIL \"push\" _Push)\n   (NIL \"push1\" _Push1)\n   (NIL \"push1q\" _Push1q)\n   (NIL \"pop\" _Pop)\n   (NIL \"++\" _Popq)\n   (NIL \"shift\" _Shift)\n   (NIL \"cut\" _Cut)\n   (NIL \"del\" _Del)\n   (NIL \"queue\" _Queue)\n   (NIL \"fifo\" _Fifo)\n   (NIL \"rid\" _Rid)\n   (NIL \"enum\" _Enum)\n   (NIL \"enum?\" _EnumQ)\n   (NIL \"idx\" _Idx)\n   (NIL \"lup\" _Lup)\n   (NIL \"put\" _Put)\n   (NIL \"get\" _Get)\n   (NIL \"prop\" _Prop)\n   (NIL \";\" _Semicol)\n   (NIL \"=:\" _SetCol)\n   (NIL \":\" _Col)\n   (NIL \"::\" _PropCol)\n   (NIL \"putl\" _Putl)\n   (NIL \"getl\" _Getl)\n   (NIL \"wipe\" _Wipe)\n   (NIL \"meta\" _Meta)\n   (NIL \"low?\" _LowQ)\n   (NIL \"upp?\" _UppQ)\n   (NIL \"lowc\" _Lowc)\n   (NIL \"uppc\" _Uppc)\n   (NIL \"fold\" _Fold)\n   (NIL \"path\" _Path)         # Input/Output\n   (NIL \"wait\" _Wait)\n   (NIL \"sync\" _Sync)\n   (NIL \"hear\" _Hear)\n   (NIL \"tell\" _Tell)\n   (NIL \"poll\" _Poll)\n   (NIL \"read\" _Read)\n   (NIL \"key\" _Key)\n   (NIL \"peek\" _Peek)\n   (NIL \"char\" _Char)\n   (NIL \"skip\" _Skip)\n   (NIL \"eol\" _Eol)\n   (NIL \"eof\" _Eof)\n   (NIL \"from\" _From)\n   (NIL \"till\" _Till)\n   (NIL \"line\" _Line)\n   (NIL \"in\" _In)\n   (NIL \"out\" _Out)\n   (NIL \"err\" _Err)\n   (NIL \"ctl\" _Ctl)\n   (NIL \"input\" _Input)\n   (NIL \"output\" _Output)\n   (NIL \"fd\" _Fd)\n   (NIL \"pipe\" _Pipe)\n   (NIL \"open\" _Open)\n   (NIL \"close\" _Close)\n   (NIL \"echo\" _Echo)\n   (NIL \"prin\" _Prin)\n   (NIL \"prinl\" _Prinl)\n   (NIL \"space\" _Space)\n   (NIL \"print\" _Print)\n   (NIL \"printsp\" _Printsp)\n   (NIL \"println\" _Println)\n   (NIL \"flush\" _Flush)\n   (NIL \"rewind\" _Rewind)\n   (NIL \"ext\" _Ext)\n   (NIL \"plio\" _Plio)\n   (NIL \"rd\" _Rd)\n   (NIL \"pr\" _Pr)\n   (NIL \"wr\" _Wr)\n   (NIL \"any\" _Any)\n   (NIL \"sym\" _Sym)\n   (NIL \"str\" _Str)\n   (NIL \"load\" _Load)\n   (NIL \"ext?\" _ExtQ)         # Database\n   (NIL \"rollback\" _Rollback)\n   (NIL \"extern\" _Extern)\n   (NIL \"pool\" _Pool)\n   (NIL \"pool2\" _Pool2)\n   (NIL \"journal\" _Journal)\n   (NIL \"id\" _Id)\n   (NIL \"blk\" _Blk)\n   (NIL \"seq\" _Seq)\n   (NIL \"lieu\" _Lieu)\n   (NIL \"lock\" _Lock)\n   (NIL \"touch\" _Touch)\n   (NIL \"commit\" _Commit)\n   (NIL \"mark\" _Mark)\n   (NIL \"free\" _Free)\n   (NIL \"dbck\" _Dbck)\n   (NIL \"apply\" _Apply)       # Mapping\n   (NIL \"pass\" _Pass)\n   (NIL \"fun\" _Fun)\n   (NIL \"maps\" _Maps)\n   (NIL \"map\" _Map)\n   (NIL \"mapc\" _Mapc)\n   (NIL \"maplist\" _Maplist)\n   (NIL \"mapcar\" _Mapcar)\n   (NIL \"mapcon\" _Mapcon)\n   (NIL \"mapcan\" _Mapcan)\n   (NIL \"filter\" _Filter)\n   (NIL \"extract\" _Extract)\n   (NIL \"seek\" _Seek)\n   (NIL \"find\" _Find)\n   (NIL \"pick\" _Pick)\n   (NIL \"fully\" _Fully)\n   (NIL \"cnt\" _Cnt)\n   (NIL \"sum\" _Sum)\n   (NIL \"maxi\" _Maxi)\n   (NIL \"mini\" _Mini)\n   (NIL \"fish\" _Fish)\n   (NIL \"by\" _By)\n   (NIL \"as\" _As)             # Control flow\n   (NIL \"lit\" _Lit)\n   (NIL \"eval\" _Eval)\n   (NIL \"run\" _Run)\n   (NIL \"def\" _Def)\n   (NIL \"de\" _De)\n   (NIL \"dm\" _Dm)\n   (NIL \"box\" _Box)\n   (NIL \"new\" _New)\n   (NIL \"type\" _Type)\n   (NIL \"isa\" _Isa)\n   (NIL \"method\" _Method)\n   (NIL \"send\" _Send)\n   (NIL \"try\" _Try)\n   (NIL \"super\" _Super)\n   (NIL \"extra\" _Extra)\n   (NIL \"and\" _And)\n   (NIL \"or\" _Or)\n   (NIL \"nand\" _Nand)\n   (NIL \"nor\" _Nor)\n   (NIL \"xor\" _Xor)\n   (NIL \"bool\" _Bool)\n   (NIL \"not\" _Not)\n   (NIL \"nil\" _Nil)\n   (NIL \"t\" _T)\n   (NIL \"prog\" _Prog)\n   (NIL \"prog1\" _Prog1)\n   (NIL \"prog2\" _Prog2)\n   (NIL \"if\" _If)\n   (NIL \"ifn\" _Ifn)\n   (NIL \"if2\" _If2)\n   (NIL \"if@@\" _IfAt2)\n   (NIL \"when\" _When)\n   (NIL \"unless\" _Unless)\n   (NIL \"cond\" _Cond)\n   (NIL \"nond\" _Nond)\n   (NIL \"case\" _Case)\n   (NIL \"casq\" _Casq)\n   (NIL \"state\" _State)\n   (NIL \"while\" _While)\n   (NIL \"until\" _Until)\n   (NIL \"at\" _At)\n   (NIL \"do\" _Do)\n   (NIL \"loop\" _Loop)\n   (NIL \"for\" _For)\n   (NIL \"this\" _This)\n   (NIL \"with\" _With)\n   (NIL \"bind\" _Bind)\n   (NIL \"job\" _Job)\n   (NIL \"let\" _Let)\n   (NIL \"let?\" _LetQ)\n   (NIL \"use\" _Use)\n   (NIL \"buf\" _Buf)\n   (NIL \"tco\" _Tco)\n   (NIL \"tc\" _Tc)\n   (NIL \"catch\" _Catch)\n   (NIL \"throw\" _Throw)\n   (NIL \"finally\" _Finally)\n   (NIL \"co\" _Co)\n   (NIL \"yield\" _Yield)\n   (NIL \"!\" _Break)\n   (NIL \"!!\" _BreakIf)\n   (NIL \"e\" _E)\n   (NIL \"$\" _Trace)\n   (NIL \"exec\" _Exec)\n   (NIL \"call\" _Call)\n   (NIL \"ipid\" _Ipid)\n   (NIL \"opid\" _Opid)\n   (NIL \"kill\" _Kill)\n   (NIL \"fork\" _Fork)\n   (NIL \"detach\" _Detach)\n   (NIL \"bye\" _Bye)\n   (NIL \"car\" _Car)           # List processing\n   (NIL \"cdr\" _Cdr)\n   (NIL \"caar\" _Caar)\n   (NIL \"cadr\" _Cadr)\n   (NIL \"cdar\" _Cdar)\n   (NIL \"cddr\" _Cddr)\n   (NIL \"caaar\" _Caaar)\n   (NIL \"caadr\" _Caadr)\n   (NIL \"cadar\" _Cadar)\n   (NIL \"caddr\" _Caddr)\n   (NIL \"cdaar\" _Cdaar)\n   (NIL \"cdadr\" _Cdadr)\n   (NIL \"cddar\" _Cddar)\n   (NIL \"cdddr\" _Cdddr)\n   (NIL \"caaaar\" _Caaaar)\n   (NIL \"caaadr\" _Caaadr)\n   (NIL \"caadar\" _Caadar)\n   (NIL \"caaddr\" _Caaddr)\n   (NIL \"cadaar\" _Cadaar)\n   (NIL \"cadadr\" _Cadadr)\n   (NIL \"caddar\" _Caddar)\n   (NIL \"cadddr\" _Cadddr)\n   (NIL \"cdaaar\" _Cdaaar)\n   (NIL \"cdaadr\" _Cdaadr)\n   (NIL \"cdadar\" _Cdadar)\n   (NIL \"cdaddr\" _Cdaddr)\n   (NIL \"cddaar\" _Cddaar)\n   (NIL \"cddadr\" _Cddadr)\n   (NIL \"cdddar\" _Cdddar)\n   (NIL \"cddddr\" _Cddddr)\n   (NIL \"nth\" _Nth)\n   (NIL \"con\" _Con)\n   (NIL \"cons\" _Cons)\n   (NIL \"conc\" _Conc)\n   (NIL \"circ\" _Circ)\n   (NIL \"rot\" _Rot)\n   (NIL \"list\" _List)\n   (NIL \"need\" _Need)\n   (NIL \"range\" _Range)\n   (NIL \"full\" _Full)\n   (NIL \"make\" _Make)\n   (NIL \"made\" _Made)\n   (NIL \"chain\" _Chain)\n   (NIL \"link\" _Link)\n   (NIL \"yoke\" _Yoke)\n   (NIL \"copy\" _Copy)\n   (NIL \"mix\" _Mix)\n   (NIL \"append\" _Append)\n   (NIL \"delete\" _Delete)\n   (NIL \"delq\" _Delq)\n   (NIL \"replace\" _Replace)\n   (NIL \"insert\" _Insert)\n   (NIL \"remove\" _Remove)\n   (NIL \"place\" _Place)\n   (NIL \"strip\" _Strip)\n   (NIL \"split\" _Split)\n   (NIL \"reverse\" _Reverse)\n   (NIL \"flip\" _Flip)\n   (NIL \"trim\" _Trim)\n   (NIL \"clip\" _Clip)\n   (NIL \"head\" _Head)\n   (NIL \"tail\" _Tail)\n   (NIL \"stem\" _Stem)\n   (NIL \"fin\" _Fin)\n   (NIL \"last\" _Last)\n   (NIL \"==\" _Eq)\n   (NIL \"n==\" _Neq)\n   (NIL \"=\" _Equal)\n   (NIL \"<>\" _Nequal)\n   (NIL \"=0\" _Eq0)\n   (NIL \"=1\" _Eq1)\n   (NIL \"=T\" _EqT)\n   (NIL \"n0\" _Neq0)\n   (NIL \"nT\" _NeqT)\n   (NIL \"<\" _Lt)\n   (NIL \"<=\" _Le)\n   (NIL \">\" _Gt)\n   (NIL \">=\" _Ge)\n   (NIL \"max\" _Max)\n   (NIL \"min\" _Min)\n   (NIL \"atom\" _Atom)\n   (NIL \"pair\" _Pair)\n   (NIL \"circ?\" _CircQ)\n   (NIL \"lst?\" _LstQ)\n   (NIL \"num?\" _NumQ)\n   (NIL \"sym?\" _SymQ)\n   (NIL \"flg?\" _FlgQ)\n   (NIL \"member\" _Member)\n   (NIL \"memq\" _Memq)\n   (NIL \"mmeq\" _Mmeq)\n   (NIL \"sect\" _Sect)\n   (NIL \"diff\" _Diff)\n   (NIL \"index\" _Index)\n   (NIL \"offset\" _Offset)\n   (NIL \"prior\" _Prior)\n   (NIL \"length\" _Length)\n   (NIL \"size\" _Size)\n   (NIL \"bytes\" _Bytes)\n   (NIL \"assoc\" _Assoc)\n   (NIL \"rassoc\" _Rassoc)\n   (NIL \"asoq\" _Asoq)\n   (NIL \"rasoq\" _Rasoq)\n   (NIL \"rank\" _Rank)\n   (NIL \"match\" _Match)\n   (NIL \"fill\" _Fill)\n   (NIL \"prove\" _Prove)\n   (NIL \"->\" _Arrow)\n   (NIL \"unify\" _Unify)\n   (NIL \"group\" _Group)\n   (NIL \"sort\" _Sort)\n   (NIL \"tty\" _Tty)           # System functions\n   (NIL \"prompt\" _Prompt)\n   (NIL \"raw\" _Raw)\n   (NIL \"alarm\" _Alarm)\n   (NIL \"sigio\" _Sigio)\n   (NIL \"kids\" _Kids)\n   (NIL \"protect\" _Protect)\n   (NIL \"heap\" _Heap)\n   (NIL \"stack\" _Stack)\n   (NIL \"byte\" _Byte)\n   (NIL \"env\" _Env)\n   (NIL \"date\" _Date)\n   (NIL \"time\" _Time)\n   (NIL \"usec\" _Usec)\n   (NIL \"rt\" _Rt)\n   (NIL \"quit\" _Quit)\n   (NIL \"sys\" _Sys)\n   (NIL \"pwd\" _Pwd)\n   (NIL \"cd\" _Cd)\n   (NIL \"ctty\" _Ctty)\n   (NIL \"cmd\" _Cmd)\n   (NIL \"dir\" _Dir)\n   (NIL \"info\" _Info)\n   (NIL \"file\" _File)\n   (NIL \"argv\" _Argv)\n   (NIL \"opt\" _Opt)\n   (NIL \"errno\" _Errno)\n   (NIL \"%@\" _Nat)\n   (NIL \"native\" _Native)\n   (NIL \"struct\" _Struct)\n   (NIL \"lisp\" _Lisp)\n   (NIL \"args\" _Args)\n   (NIL \"next\" _Next)\n   (NIL \"arg\" _Arg)\n   (NIL \"rest\" _Rest)\n   (NIL \"adr\" _Adr)\n   (NIL \"trail\" _Trail)\n   (NIL \"up\" _Up)\n   (NIL \"history\" _History)\n   ($LastSym \"version\" _Version) )\n\n# GC relevant data\n(local) (gcData cbFuns)\n\n(table gcData\n   ($Intern $Pico1)     # Current namespaces of internal symbols\n   ($Transient $Nil)    # Short transient names\n   (NIL $Nil)           # Long transient names\n   ($Alarm $Nil)        # Alarm handler\n   ($Sigio $Nil)        # Sigio handler\n   ($Lisp $Nil)         # Lisp callbacks: tag+fun\n   (NIL $Nil)\n   (NIL $Nil)           # 2\n   (NIL $Nil)\n   (NIL $Nil)           # 3\n   (NIL $Nil)\n   (NIL $Nil)           # 4\n   (NIL $Nil)\n   (NIL $Nil)           # 5\n   (NIL $Nil)\n   (NIL $Nil)           # 6\n   (NIL $Nil)\n   (NIL $Nil)           # 7\n   (NIL $Nil)\n   (NIL $Nil)           # 8\n   (NIL $Nil)\n   (NIL $Nil)           # 9\n   (NIL $Nil)\n   (NIL $Nil)           # 10\n   (NIL $Nil)\n   (NIL $Nil)           # 11\n   (NIL $Nil)\n   (NIL $Nil)           # 12\n   (NIL $Nil)\n   (NIL $Nil)           # 13\n   (NIL $Nil)\n   (NIL $Nil)           # 14\n   (NIL $Nil)\n   (NIL $Nil)           # 15\n   (NIL $Nil)\n   (NIL $Nil)           # 16\n   (NIL $Nil)\n   (NIL $Nil)           # 17\n   (NIL $Nil)\n   (NIL $Nil)           # 18\n   (NIL $Nil)\n   (NIL $Nil)           # 19\n   (NIL $Nil)\n   (NIL $Nil)           # 20\n   (NIL $Nil)\n   (NIL $Nil)           # 21\n   (NIL $Nil)\n   (NIL $Nil)           # 22\n   (NIL $Nil)\n   (NIL $Nil)           # 23\n   (NIL $Nil)\n   (NIL $Nil)           # 24\n   ($LispEnd $Nil) )\n\n(table cbFuns\n   ($Cb (i64 i64 i64 i64 i64 i64) _Cb1)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb2)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb3)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb4)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb5)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb6)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb7)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb8)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb9)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb10)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb11)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb12)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb13)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb14)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb15)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb16)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb17)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb18)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb19)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb20)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb21)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb22)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb23)\n   (NIL (i64 i64 i64 i64 i64 i64) _Cb24) )\n\n# Environment\n(local) env\n\n(table env\n   ($Link 0)                     # Link register\n   ($Bind 0)                     # Bind frames\n   ($Break 0)                    # Breakpoint\n   ($NsLink 0)                   # Namespace list link\n   ($Catch i8* null)             # Catch frames\n   ($InFrames i8* null)          # Input frames\n   ($OutFrames i8* null)         # Output frames\n   ($ErrFrames i8* null)         # Error frames\n   ($CtlFrames i8* null)         # Control frames\n   ($InFile i8* null)            # Input file\n   ($OutFile i8* null)           # Output file\n   ($Put (void i8) null)         # Character output function\n   ($Get (i32) null)             # Character input function\n   ($Parser i64* null)           # String parser\n   ($TcoPar $Nil)                # Tail call parameters\n   ($TcoLnk 0)                   # Tail call link\n   ($Next $Nil)                  # Next vararg\n   ($Typ 0)                      # Method type\n   ($Key 0)                      # Method key\n   ($Make 0)                     # 'make' environment\n   ($Yoke 0)\n   ($Chr i32 0)                  # Single-char look ahead\n   ($Protect i32 0)              # Signal protection\n   ($Trace i32 0)                # Trace level\n   ($EnvPad i32 0) )             # Pad to 64 bit\n\n# Temporary cell\n(array $Cell any\n   $Nil\n   $Nil )\n\n# Version number\n(table $Version\n   ($Y (short (pico~car *Version)))\n   ($M (short (pico~cadr *Version)))\n   ($D (short (pico~caddr *Version))) )\n\n# 'T' in PLIO format\n(array $TBuf i8\n   (+ INTERN 4)\n   (char \"T\") )\n\n# Bytes\n(array $Month i8\n   31 31 28 31 30 31 30 31 31 30 31 30 31 )\n\n# Booleans\n(var $Repl i1 NO)                # REPL flag\n(var $PRepl i1 NO)               # Parent REPL\n(var $Tc i1 NO)                  # Tail call\n(var $Jam i1 NO)                 # Error jam\n(var $InBye i1 NO)               # Exit status\n(var $Sync i1 NO)                # Family IPC synchronization\n\n# Strings\n(str $Empty \"\")\n(str $Delim \" \\t\\n\\r\\\"'(),[]`{}~\")\n"
  },
  {
    "path": "src/ht.l",
    "content": "# 15jul24 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(begin \"ht\" T\n   \"vers.l\" \"defs.l\" \"glob.l\" \"dec.l\" )\n\n(local) (Prin Fmt Pack Read In Out)\n\n# External declarations\n(local) (prin symByte prExt begString tglString endString findSym prSym\nmkChar evCnt getChar)\n\n(de T void prin (any))\n(de T i8 symByte (i64*))\n(de T void prExt (any))\n(de T void begString (i64*))\n(de T void tglString (i64*))\n(de T endString ())\n(de T i1 findSym (any any any))\n(de T void prSym (any))\n(de T mkChar (i32))\n(de T i64 evCnt (any any))\n(de T i32 getChar (i32))\n\n# (ht:Prin 'sym ..) -> sym\n(de Prin (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (car X))\n            (unless (nil? Y)\n               (if\n                  (or\n                     (num? Y)\n                     (pair Y)\n                     (sym? (val (tail Y))) )\n                  (prin Y)\n                  (let P (push 0 (name (val (tail Y))))  # [cnt name]\n                     (while (symByte P)\n                        (case @\n                           ((char \"<\") (outString ($ \"&lt;\")))\n                           ((char \">\") (outString ($ \"&gt;\")))\n                           ((char \"&\") (outString ($ \"&amp;\")))\n                           ((char \"\\\"\") (outString ($ \"&quot;\")))\n                           ((hex \"FF\")\n                              (call $Put (hex \"F7\"))\n                              (call $Put (hex \"BF\"))\n                              (call $Put (hex \"BF\"))\n                              (call $Put (hex \"BF\")) )\n                           (T\n                              (let B @\n                                 (call $Put B)\n                                 (when (& B (hex \"80\"))  # Multi-byte\n                                    (call $Put (symByte P))  # Second byte\n                                    (when (& B (hex \"20\"))\n                                       (call $Put (symByte P))  # Third byte\n                                       (when (& B (hex \"10\"))\n                                          (call $Put (symByte P)) ) ) ) ) ) ) ) ) ) )  # Fourth byte\n            (? (atom (shift X)) Y) ) ) ) )\n\n(local) (putHex htEncode htFmt)\n\n(de void putHex ((i8 . B))\n   (call $Put (char \"%\"))  # Prefix with \"%\"\n   (call $Put  # Upper nibble\n      (+\n         (if (> (& (shr B 4) 15) 9)\n            (+ @ 7)\n            @ )\n         (char \"0\") ) )\n   (call $Put  # Lower nibble\n      (+\n         (if (> (& B 15) 9)\n            (+ @ 7)\n            @ )\n         (char \"0\") ) ) )\n\n(de void htEncode ((i8 . B) (i64* . P))\n   (while B\n      (if (strchr ($ \" \\\"#%&:;<=>?\\\\_\") (i32 B))\n         (putHex B)\n         (call $Put B)\n         (when (& B (hex \"80\"))  # Multi-byte\n            (call $Put (symByte P))  # Second byte\n            (when (& B (hex \"20\"))\n               (call $Put (symByte P))  # Third byte\n               (when (& B (hex \"10\"))\n                  (call $Put (symByte P)) ) ) ) )  # Fourth byte\n      (setq B (symByte P)) ) )\n\n(de void htFmt (X)\n   (cond\n      ((nil? X))\n      ((num? X)\n         (call $Put (char \"+\"))  # Prefix with \"+\"\n         (prin X) )\n      ((pair X)\n         (loop\n            (call $Put (char \"_\"))  # Prefix with \"_\"\n            (htFmt (++ X))\n            (? (atom X)) ) )\n      ((sym? (val (tail X)))  # External symbol\n         (call $Put (char \"-\"))  # Prefix with \"-\"\n         (prExt (name (& @ -9))) )\n      ((== (name @) ZERO))\n      (T\n         (let (Nm @  P (push 0 Nm)  B (symByte P))  # [cnt name]\n            (cond\n               ((findSym X Nm (val $Intern))  # Internal symbol\n                  (call $Put (char \"$\"))  # Prefix with \"$\"\n                  (htEncode B P) )\n               ((or  # Special\n                     (== B (char \"$\"))\n                     (== B (char \"+\"))\n                     (== B (char \"-\")) )\n                  (putHex B)\n                  (htEncode (symByte P) P) )\n               (T (htEncode B P)) ) ) ) ) )\n\n# (ht:Fmt 'any ..) -> sym\n(de Fmt (Exe)\n   (let (X (cdr Exe)  P (push 4 NIL ZERO NIL NIL NIL))  # [cnt last name link fun ptr]\n      (begString P)\n      (loop\n         (htFmt\n            (prog2\n               (tglString P)\n               (eval (car X))\n               (tglString P) ) )\n         (? (atom (shift X)))\n         (call $Put (char \"&\")) )\n      (endString) ) )\n\n(local) (getHex head)\n\n(de i8 getHex (Sym)\n   (if (> (- (firstByte Sym) (char \"0\")) 9)\n      (- (& @ (hex \"DF\")) 7)\n      @ ) )\n\n(de head ((i8* . S) Lst)\n   (let B (val S)\n      (loop\n         (? (<> B (firstByte (++ Lst))) 0)\n         (? (=0 (setq B (val (inc 'S)))) Lst) ) ) )\n\n# (ht:Pack 'lst ['flg']) -> sym\n(de Pack (Exe)\n   (let\n      (X (cdr Exe)\n         Lst (save (eval (++ X)))\n         Flg (nil? (eval (car X))) )\n      (begString (push 4 NIL ZERO NIL NIL NIL))  # [cnt last name link fun ptr]\n      (while (pair Lst)\n         (let (C (++ Lst)  B (firstByte C))\n            (cond\n               ((== B (char \"%\"))  # Hex-escaped\n                  (call $Put\n                     (if Flg\n                        B\n                        (|\n                           (shl (getHex (++ Lst)) 4)  # Upper nibble\n                           (getHex (++ Lst)) ) ) ) )  # Lower nibble\n               ((<> B (char \"&\")) (prSym C))  # Normal character\n               ((head ($ \"lt;\") Lst)\n                  (call $Put (char \"<\"))\n                  (setq Lst @) )\n               ((head ($ \"gt;\") Lst)\n                  (call $Put (char \">\"))\n                  (setq Lst @) )\n               ((head ($ \"amp;\") Lst)\n                  (call $Put (char \"&\"))\n                  (setq Lst @) )\n               ((head ($ \"quot;\") Lst)\n                  (call $Put (char \"\\\"\"))\n                  (setq Lst @) )\n               ((head ($ \"nbsp;\") Lst)\n                  (call $Put (char \" \"))\n                  (setq Lst @) )\n               ((== (firstByte (car Lst)) (char \"#\"))\n                  (let\n                     (L (shift Lst)\n                        D (firstByte (++ L))  # Digit\n                        N (i32 (- D (char \"0\"))) )  # Character\n                     (loop\n                        (?\n                           (or\n                              (> (char \"0\") D)\n                              (> D (char \"9\")) )\n                           (call $Put (char \"&\"))\n                           (call $Put (char \"#\")) )\n                        (? (== (setq D (firstByte (++ L))) (char \";\"))\n                           (prSym (mkChar N))\n                           (setq Lst L) )\n                        (setq N\n                           (+\n                              (* N 10)\n                              (i32 (- D (char \"0\"))) ) ) ) ) )\n               (T (call $Put (char \"&\"))) ) ) )\n      (endString) ) )\n\n# Read content length bytes\n# (ht:Read 'cnt) -> lst\n(de Read (Exe)\n   (let (N (evCnt Exe (cdr Exe))  C (val $Chr))\n      (if\n         (or\n            (le0 N)\n            (and\n               (=0 C)\n               (lt0 (setq C (call $Get))) ) )\n         $Nil\n         (let C (getChar C)\n            (when (>= C (hex \"80\"))  # Multi-byte\n               (dec 'N)\n               (when (>= C (hex \"800\"))\n                  (dec 'N)\n                  (when (>= C (hex \"10000\"))\n                     (dec 'N) ) ) )\n            (if (lt0 (dec 'N))\n               $Nil\n               (let (X (cons (mkChar C) $Nil)  R (save X))\n                  (loop\n                     (? (=0 N) (set $Chr 0) R)\n                     (? (lt0 (setq C (call $Get))) $Nil)\n                     (setq C (getChar C))\n                     (when (>= C (hex \"80\"))  # Multi-byte\n                        (dec 'N)\n                        (when (>= C (hex \"800\"))\n                           (dec 'N)\n                           (when (>= C (hex \"10000\"))\n                              (dec 'N) ) ) )\n                     (? (lt0 (dec 'N)) $Nil)\n                     (setq X\n                        (set 2 X (cons (mkChar C) $Nil)) ) ) ) ) ) ) ) )\n\n# Chunked Encoding\n(local) (CHUNK $CnkCnt $SvGet $SvPut $CnkBuf)\n\n(setq CHUNK 4000)\n(var $CnkCnt i32 0)  # Chunk size count\n(var $SvGet (i32) null)  # Saved $Get function\n(var $SvPut (void i8) null)  # Saved $Put function\n(array $CnkBuf i8 . CHUNK)  # Chunk buffer\n\n(local) (chrHex chunkSize getChunked)\n\n(de i32 chrHex ((i32 . C))\n   (cond\n      ((and\n            (>= C (char \"0\"))\n            (>= (char \"9\") C) )\n         (- C 48) )  # Decimal digit\n      ((and\n            (>=\n               (setq C (& C (hex \"DF\")))\n               (char \"A\") )\n            (>= (char \"F\") C) )\n         (- C 55) )  # Hex letter\n      (T -1) ) )\n\n(de void chunkSize ()\n   (let C (if (val $Chr) @ (call $SvGet))\n      (when (ge0 (set $CnkCnt (chrHex C)))\n         (while (ge0 (chrHex (setq C (call $SvGet))))\n            (set $CnkCnt (| @ (shl (val $CnkCnt) 4))) )\n         (loop\n            (? (== C (char \"\\n\"))\n               (call $SvGet)\n               (when (=0 (val $CnkCnt))\n                  (call $SvGet)  # Skip '\\r' of empty line\n                  (set $Chr 0) ) )\n            (? (lt0 C))\n            (setq C (call $SvGet)) ) ) ) )\n\n(de i32 getChunked ()\n   (if (le0 (val $CnkCnt))\n      (set $Chr -1)  # Return EOF\n      (call $SvGet)\n      (when (=0 (set $CnkCnt (dec @)))  # Decrement count\n         (call $SvGet)  # Skip '\\n' and '\\r'\n         (call $SvGet)\n         (chunkSize) )\n      (val $Chr) ) )\n\n# (ht:In 'flg . prg) -> any\n(de In (Exe)\n   (let X (cdr Exe)\n      (if (nil? (eval (++ X)))  # 'flg'\n         (run X)  # 'prg'\n         (set\n            (i8** $SvGet) (val (i8** $Get))\n            $Get (fun (i32) getChunked) )\n         (chunkSize)\n         (prog1\n            (run X)  # 'prg'\n            (set (i8** $Get) (val (i8** $SvGet)))\n            (set $Chr 0) ) ) ) )\n\n(local) (outHex wrChunk putChunked)\n\n(de void outHex ((i32 . N))\n   (when (> N 15)\n      (outHex (shr N 4))\n      (setq N (& N 15)) )\n   (when (> N 9)\n      (setq N (+ N 39)) )  # Make lower case letter\n   (call $SvPut (+ (i8 N) (char \"0\"))) )\n\n(de void wrChunk ((i32 . Cnt))\n   (outHex Cnt)  # Print count as hex\n   (call $SvPut (char \"\\r\"))\n   (call $SvPut (char \"\\n\"))\n   (let P $CnkBuf  # Output chunk buffer\n      (loop\n         (call $SvPut (val P))\n         (? (=0 (dec 'Cnt)))\n         (inc 'P) ) )\n   (call $SvPut (char \"\\r\"))\n   (call $SvPut (char \"\\n\")) )\n\n(de void putChunked ((i8 . B))\n   (let I (val $CnkCnt)\n      (set (ofs $CnkBuf I) B)\n      (ifn (== (inc I) CHUNK)\n         (set $CnkCnt @)\n         (wrChunk @)\n         (set $CnkCnt 0) ) ) )\n\n# (ht:Out 'flg . prg) -> any\n(de Out (Exe)\n   (let (X (cdr Exe)  F (eval (++ X)))\n      (if (nil? F)  # 'flg'\n         (setq X (run X))  # 'prg'\n         (set\n            $CnkCnt 0  # Clear count\n            (i8** $SvPut) (val (i8** $Put))\n            $Put (fun (void i8) putChunked) )\n         (setq X (run X))  # 'prg'\n         (when (val $CnkCnt)\n            (wrChunk @) )\n         (set (i8** $Put) (val (i8** $SvPut)))\n         (unless (t? F)\n            (outString ($ \"0\\r\\n\\r\\n\")) ) )\n      (flush (val $OutFile))\n      X ) )\n\n(end)\n"
  },
  {
    "path": "src/ht.ll",
    "content": "source_filename = \"ht.l\"\n\ndeclare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)\ndeclare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64)\ndeclare i64 @llvm.fshl.i64(i64, i64, i64)\ndeclare i64 @llvm.fshr.i64(i64, i64, i64)\ndeclare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i1)\ndeclare void @llvm.memset.p0i8.i64(i8*, i8, i64, i1)\ndeclare i8* @llvm.stacksave()\ndeclare void @llvm.stackrestore(i8*)\ndeclare void @llvm.donothing() nounwind readnone\n\n@$AV0 = external global i8*\n@$AV = external global i8**\n@$PilHome = external global i8*\n@$PilLen = external global i64\n@$UsrHome = external global i8*\n@$UsrLen = external global i64\n@$Heaps = external global i64\n@$Avail = external global i64\n@$Extern = external global i64\n@$ExtCnt = external global i64\n@$ExtSkip = external global i64\n@$Coroutines = external global i8*\n@$Current = external global i8*\n@$CrtLast = external global i8*\n@$CrtFree = external global i8*\n@$SysStkLimit = external global i8*\n@$StkLimit = external global i8*\n@$StkSizeT = external global i64\n@$StkSize = external global i64\n@$Stdin = external global i8*\n@$Stdout = external global i8*\n@$LinePtr = external global i8*\n@$LineBuf = external global i8*\n@$LinePrmt = external global i8*\n@$ReplPrmt = external global i8*\n@$ContPrmt = external global i8*\n@$Ret = external global i64\n@$Ret2 = external global i64\n@$TtyPid = external global i32\n@$InFDs = external global i32\n@$InFiles = external global i8**\n@$OutFiles = external global i8**\n@$IoCnt = external global i32\n@$IoIx = external global i64\n@$InChar = external global i64\n@$OutChar = external global i64\n@$PutBin = external global void(i8)*\n@$GetBin = external global i32()*\n@$OutFDs = external global i32\n@$Nfds = external global i32\n@$Poll = external global i64*\n@$SeedL = external global i64\n@$SeedH = external global i64\n@$USec = external global i64\n@$Rt = external global i64\n@$Child = external global i8*\n@$Children = external global i32\n@$Slot = external global i32\n@$Spkr = external global i32\n@$Mic = external global i32\n@$SpMiPipe = external global [2 x i32]\n@$Talking = external global i32\n@$Hear = external global i32\n@$Tell = external global i32\n@$TellBuf = external global i8*\n@$Ptr = external global i8*\n@$End = external global i8*\n@$BufX = external global i8*\n@$PtrX = external global i8*\n@$EndX = external global i8*\n@$ExtN = external global i32\n@$Extn = external global i32\n@$StrP = external global i64*\n@$GcCount = external global i64\n@$DbFiles = external global i8*\n@$DbFile = external global i8*\n@$DBs = external global i32\n@$MaxBlkSize = external global i32\n@$DbBlock = external global i8*\n@$BlkIndex = external global i64\n@$BlkLink = external global i64\n@$BlkPtr = external global i8*\n@$BlkEnd = external global i8*\n@$DbJnl = external global i8*\n@$DbLog = external global i8*\n@$Signal = external global [16 x i32]\n@SymTab = external global [898 x i64]\n@gcData = external global [53 x i64]\n@cbFuns = external global [24 x i64]\n@env = external global [25 x i64]\n@$Cell = external global [2 x i64]\n@$Version = external global [3 x i64]\n@$TBuf = external global [2 x i8]\n@$Month = external global [13 x i8]\n@$Repl = external global i1\n@$PRepl = external global i1\n@$Tc = external global i1\n@$Jam = external global i1\n@$InBye = external global i1\n@$Sync = external global i1\n@$Empty = constant [1 x i8] c\"\\00\"\n@$Delim = constant [16 x i8] c\" \\09\\0A\\0D\\22'(),[]`{}~\\00\"\ndeclare i8* @malloc(i64)\ndeclare i8* @realloc(i8*, i64)\ndeclare void @free(i8*)\ndeclare i32 @fork()\ndeclare i8* @getenv(i8*)\ndeclare i32 @setenv(i8*, i8*, i32)\ndeclare i8* @getcwd(i8*, i64)\ndeclare i32 @chdir(i8*)\ndeclare i32 @getpid()\ndeclare i32 @getpgrp()\ndeclare i32 @setsid()\ndeclare i32 @alarm(i32)\ndeclare i32 @setpgid(i32, i32)\ndeclare i32 @execvp(i8*, i8**)\ndeclare i32 @isatty(i32)\ndeclare i32 @openpty(i32*, i32*, i8*, i8*, i8*)\ndeclare i32 @login_tty(i32)\ndeclare i32 @tcgetattr(i32, i8*)\ndeclare i32 @tcgetpgrp(i32)\ndeclare i32 @tcsetpgrp(i32, i32)\ndeclare i64 @read(i32, i8*, i64)\ndeclare i64 @write(i32, i8*, i64)\ndeclare i64 @pread(i32, i8*, i64, i64)\ndeclare i64 @pwrite(i32, i8*, i64, i64)\ndeclare i32 @fread(i8*, i64, i64, i8*)\ndeclare i32 @fwrite(i8*, i64, i64, i8*)\ndeclare i32 @putc_unlocked(i32, i8*)\ndeclare i32 @getc_unlocked(i8*)\ndeclare i8* @fopen(i8*, i8*)\ndeclare i32 @fflush(i8*)\ndeclare i32 @feof(i8*)\ndeclare i32 @fclose(i8*)\ndeclare i32 @fileno(i8*)\ndeclare i32 @fsync(i32)\ndeclare i32 @pipe(i32*)\ndeclare i32 @memcmp(i8*, i8*, i64)\ndeclare i64 @strlen(i8*)\ndeclare i8* @strcpy(i8*, i8*)\ndeclare i8* @strdup(i8*)\ndeclare i32 @strcmp(i8*, i8*)\ndeclare i8* @strchr(i8*, i32)\ndeclare i8* @strrchr(i8*, i32)\ndeclare i8* @dlsym(i8*, i8*)\ndeclare i8* @dlerror()\ndeclare i32 @dup(i32)\ndeclare i32 @dup2(i32, i32)\ndeclare i32 @close(i32)\ndeclare i8* @signal(i32, i8*)\ndeclare i32 @waitpid(i32, i32*, i32)\ndeclare i32 @poll(i64*, i32, i64)\ndeclare i32 @setjmp(i8*)\ndeclare void @longjmp(i8*, i32)\ndeclare i32 @kill(i32, i32)\ndeclare void @exit(i32)\ndeclare void @add_history(i8*)\ndeclare i8*** @history_list()\ndeclare void @clear_history()\n@TgOS = external global i8\n@TgCPU = external global i8\n@PipeBufSize = external global i32\n@Fsign = external global i1\n@Fdigit = external global i64\ndeclare i8* @stderrMsg(i8*, i8*)\ndeclare void @gPrintf(i8*, i32, i8*, i8*)\ndeclare i8* @strErrno()\ndeclare i32 @openRd(i8*)\ndeclare i32 @openWr(i8*)\ndeclare i32 @openRdWr(i8*)\ndeclare i32 @openRdWrExcl(i8*)\ndeclare i32 @openRdWrCreate(i8*)\ndeclare i32 @openRdWrAppend(i8*)\ndeclare i32 @openWrAppend(i8*)\ndeclare i1 @fseekOfs(i8*, i32)\ndeclare i1 @fseek0(i8*)\ndeclare i1 @seek0(i32)\ndeclare i1 @truncate0(i32)\ndeclare i32 @socketPair(i32*)\ndeclare i32 @fcntlCloExec(i32)\ndeclare void @fcntlSetFl(i32, i32)\ndeclare i32 @nonBlocking(i32)\ndeclare void @fcntlSetOwn(i32, i32)\ndeclare i8* @getDir(i8*)\ndeclare void @initReadline()\ndeclare i8* @gReadline(i8*)\ndeclare void @rlHide()\ndeclare void @rlShow()\ndeclare void @rlSigBeg()\ndeclare void @rlSigEnd()\ndeclare i8* @currentLine()\n@Sig = external global i32\n@SigDfl = external global i8*\n@SigIgn = external global i8*\ndeclare i32 @gSignal(i32)\ndeclare void @iSignal(i32, i8*)\ndeclare void @sigUnblock(i32)\ndeclare void @sigChld(i32)\ndeclare i32 @waitWuntraced(i32, i32*)\ndeclare i32 @wifStopped(i32*)\ndeclare i32 @nErrno()\ndeclare i32 @gErrno()\n@Tio = external global i1\n@OrgTermio = external global i8\n@Termio = external global i8*\ndeclare void @stopTerm()\ndeclare void @setRaw()\ndeclare void @setCooked()\ndeclare i1 @reopenTty(i8*)\ndeclare i64 @getUsec(i1)\ndeclare i64 @getMsec()\ndeclare i64 @getDate()\ndeclare i64 @getGmDate()\ndeclare i64 @getTime()\ndeclare i64 @getGmTime()\ndeclare i8* @ulimStk()\ndeclare i64 @fileInfo(i1, i1, i8*, i64*)\ndeclare void @pollIn(i32, i64*)\ndeclare void @pollOut(i32, i64*)\ndeclare void @pollIgn(i64*)\ndeclare i32 @gPoll(i64*, i32, i64)\ndeclare i1 @readyIn(i64*)\ndeclare i1 @readyOut(i64*)\ndeclare i32 @rdLock(i32, i64, i64, i1)\ndeclare i32 @wrLock(i32, i64, i64, i1)\ndeclare i32 @unLock(i32, i64, i64)\ndeclare i32 @getLock(i32, i64, i64)\n@JmpBufSize = external global i64\n@QuitRst = external global i8\n@SoRst = external global i8\ndeclare i8* @dlOpen(i8*)\ndeclare i8* @ffiPrep(i8*, i8*, i64)\ndeclare i64 @ffiCall(i8*, i64)\ndeclare i64 @boxFloat(i32, i64)\ndeclare i64 @boxFlt()\ndeclare i64 @boxDouble(i64, i64)\ndeclare i64 @boxDbl()\ndeclare void @bufFloat(i64, i64, i32*)\ndeclare void @bufDouble(i64, i64, i64*)\ndeclare i1 @chance(i64)\ndeclare i1 @isLowc(i32)\ndeclare i1 @isUppc(i32)\ndeclare i1 @isLetterOrDigit(i32)\ndeclare i32 @toUpperCase(i32)\ndeclare i32 @toLowerCase(i32)\ndeclare i64 @dbg(i64, i64)\ndeclare i1 @equal(i64, i64)\ndeclare i64 @compare(i64, i64)\ndeclare i64 @evList(i64)\ndeclare i64 @cons(i64, i64)\ndeclare i64 @cons2(i64, i64, i64)\ndeclare i64 @cons3(i64, i64, i64, i64)\ndeclare i64 @consStr(i64)\ndeclare i64 @bufSize(i64)\ndeclare i8* @bufString(i64, i8*)\ndeclare i64 @mkStr(i8*)\ndeclare i8 @firstByte(i64)\ndeclare void @pack(i64, i64*)\ndeclare i64 @subStr(i64, i64, i64)\ndeclare i1 @flush(i8*)\ndeclare void @flushAll()\ndeclare void @newline()\ndeclare void @space()\ndeclare void @outWord(i64)\ndeclare void @outString(i8*)\ndeclare void @print(i64)\ndeclare i64 @repl(i64, i8*, i64)\ndeclare void @dbFetch(i64, i64)\ndeclare void @dbTouch(i64, i64)\ndeclare void @dbZap(i64)\ndeclare void @putSrc(i64, i64)\ndeclare i64 @brkLoad(i64)\ndeclare void @prin(i64)\ndeclare i8 @symByte(i64*)\ndeclare void @prExt(i64)\ndeclare void @begString(i64*)\ndeclare void @tglString(i64*)\ndeclare i64 @endString()\ndeclare i1 @findSym(i64, i64, i64)\ndeclare void @prSym(i64)\ndeclare i64 @mkChar(i32)\ndeclare i64 @evCnt(i64, i64)\ndeclare i32 @getChar(i32)\n\ndefine i64 @Prin(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (loop (let Y (eval (car X)) (unless (nil? Y) (if...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (loop (let Y (eval (car X)) (unless (nil? Y) (if (or (num? Y) (pa...\n  br label %$2\n$2:\n  %4 = phi i64 [%0, %$1], [%166, %$35] ; # Exe\n  %5 = phi i64 [%3, %$1], [%167, %$35] ; # X\n; # (let Y (eval (car X)) (unless (nil? Y) (if (or (num? Y) (pair Y) ...\n; # (car X)\n  %6 = inttoptr i64 %5 to i64*\n  %7 = load i64, i64* %6\n; # (eval (car X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$5, label %$4\n$5:\n  %10 = phi i64 [%7, %$2] ; # X\n  br label %$3\n$4:\n  %11 = phi i64 [%7, %$2] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$7, label %$6\n$7:\n  %14 = phi i64 [%11, %$4] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$3\n$6:\n  %17 = phi i64 [%11, %$4] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$3\n$3:\n  %19 = phi i64 [%10, %$5], [%14, %$7], [%17, %$6] ; # X\n  %20 = phi i64 [%10, %$5], [%16, %$7], [%18, %$6] ; # ->\n; # (unless (nil? Y) (if (or (num? Y) (pair Y) (sym? (val (tail Y))))...\n; # (nil? Y)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$9, label %$8\n$8:\n  %22 = phi i64 [%4, %$3] ; # Exe\n  %23 = phi i64 [%5, %$3] ; # X\n  %24 = phi i64 [%20, %$3] ; # Y\n; # (if (or (num? Y) (pair Y) (sym? (val (tail Y)))) (prin Y) (let P ...\n; # (or (num? Y) (pair Y) (sym? (val (tail Y))))\n; # (num? Y)\n  %25 = and i64 %24, 6\n  %26 = icmp ne i64 %25, 0\n  br i1 %26, label %$10, label %$11\n$11:\n  %27 = phi i64 [%22, %$8] ; # Exe\n  %28 = phi i64 [%23, %$8] ; # X\n  %29 = phi i64 [%24, %$8] ; # Y\n; # (pair Y)\n  %30 = and i64 %29, 15\n  %31 = icmp eq i64 %30, 0\n  br i1 %31, label %$10, label %$12\n$12:\n  %32 = phi i64 [%27, %$11] ; # Exe\n  %33 = phi i64 [%28, %$11] ; # X\n  %34 = phi i64 [%29, %$11] ; # Y\n; # (tail Y)\n  %35 = add i64 %34, -8\n; # (val (tail Y))\n  %36 = inttoptr i64 %35 to i64*\n  %37 = load i64, i64* %36\n; # (sym? (val (tail Y)))\n  %38 = and i64 %37, 8\n  %39 = icmp ne i64 %38, 0\n  br label %$10\n$10:\n  %40 = phi i64 [%22, %$8], [%27, %$11], [%32, %$12] ; # Exe\n  %41 = phi i64 [%23, %$8], [%28, %$11], [%33, %$12] ; # X\n  %42 = phi i64 [%24, %$8], [%29, %$11], [%34, %$12] ; # Y\n  %43 = phi i1 [1, %$8], [1, %$11], [%39, %$12] ; # ->\n  br i1 %43, label %$13, label %$14\n$13:\n  %44 = phi i64 [%40, %$10] ; # Exe\n  %45 = phi i64 [%41, %$10] ; # X\n  %46 = phi i64 [%42, %$10] ; # Y\n; # (prin Y)\n  call void @prin(i64 %46)\n  br label %$15\n$14:\n  %47 = phi i64 [%40, %$10] ; # Exe\n  %48 = phi i64 [%41, %$10] ; # X\n  %49 = phi i64 [%42, %$10] ; # Y\n; # (let P (push 0 (name (val (tail Y)))) (while (symByte P) (case @ ...\n; # (tail Y)\n  %50 = add i64 %49, -8\n; # (val (tail Y))\n  %51 = inttoptr i64 %50 to i64*\n  %52 = load i64, i64* %51\n; # (name (val (tail Y)))\n  br label %$16\n$16:\n  %53 = phi i64 [%52, %$14], [%59, %$17] ; # Tail\n  %54 = and i64 %53, 6\n  %55 = icmp ne i64 %54, 0\n  br i1 %55, label %$18, label %$17\n$17:\n  %56 = phi i64 [%53, %$16] ; # Tail\n  %57 = inttoptr i64 %56 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  br label %$16\n$18:\n  %60 = phi i64 [%53, %$16] ; # Tail\n; # (push 0 (name (val (tail Y))))\n  %61 = alloca i64, i64 2, align 16\n  store i64 0, i64* %61\n  %62 = getelementptr i64, i64* %61, i32 1\n  store i64 %60, i64* %62\n; # (while (symByte P) (case @ ((char \"<\") (outString ($ \"&lt;\"))) ((...\n  br label %$19\n$19:\n  %63 = phi i64 [%47, %$18], [%144, %$23] ; # Exe\n  %64 = phi i64 [%48, %$18], [%145, %$23] ; # X\n  %65 = phi i64 [%49, %$18], [%146, %$23] ; # Y\n  %66 = phi i64* [%61, %$18], [%147, %$23] ; # P\n; # (symByte P)\n  %67 = call i8 @symByte(i64* %66)\n  %68 = icmp ne i8 %67, 0\n  br i1 %68, label %$20, label %$21\n$20:\n  %69 = phi i64 [%63, %$19] ; # Exe\n  %70 = phi i64 [%64, %$19] ; # X\n  %71 = phi i64 [%65, %$19] ; # Y\n  %72 = phi i64* [%66, %$19] ; # P\n; # (case @ ((char \"<\") (outString ($ \"&lt;\"))) ((char \">\") (outStrin...\n  switch i8 %67, label %$22 [\n    i8 60, label %$24\n    i8 62, label %$25\n    i8 38, label %$26\n    i8 34, label %$27\n    i8 255, label %$28\n  ]\n$24:\n  %73 = phi i64 [%69, %$20] ; # Exe\n  %74 = phi i64 [%70, %$20] ; # X\n  %75 = phi i64 [%71, %$20] ; # Y\n  %76 = phi i64* [%72, %$20] ; # P\n; # (outString ($ \"&lt;\"))\n  call void @outString(i8* bitcast ([5 x i8]* @$1 to i8*))\n  br label %$23\n$25:\n  %77 = phi i64 [%69, %$20] ; # Exe\n  %78 = phi i64 [%70, %$20] ; # X\n  %79 = phi i64 [%71, %$20] ; # Y\n  %80 = phi i64* [%72, %$20] ; # P\n; # (outString ($ \"&gt;\"))\n  call void @outString(i8* bitcast ([5 x i8]* @$2 to i8*))\n  br label %$23\n$26:\n  %81 = phi i64 [%69, %$20] ; # Exe\n  %82 = phi i64 [%70, %$20] ; # X\n  %83 = phi i64 [%71, %$20] ; # Y\n  %84 = phi i64* [%72, %$20] ; # P\n; # (outString ($ \"&amp;\"))\n  call void @outString(i8* bitcast ([6 x i8]* @$3 to i8*))\n  br label %$23\n$27:\n  %85 = phi i64 [%69, %$20] ; # Exe\n  %86 = phi i64 [%70, %$20] ; # X\n  %87 = phi i64 [%71, %$20] ; # Y\n  %88 = phi i64* [%72, %$20] ; # P\n; # (outString ($ \"&quot;\"))\n  call void @outString(i8* bitcast ([7 x i8]* @$4 to i8*))\n  br label %$23\n$28:\n  %89 = phi i64 [%69, %$20] ; # Exe\n  %90 = phi i64 [%70, %$20] ; # X\n  %91 = phi i64 [%71, %$20] ; # Y\n  %92 = phi i64* [%72, %$20] ; # P\n; # (call $Put (hex \"F7\"))\n  %93 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %93(i8 247)\n; # (call $Put (hex \"BF\"))\n  %94 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %94(i8 191)\n; # (call $Put (hex \"BF\"))\n  %95 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %95(i8 191)\n; # (call $Put (hex \"BF\"))\n  %96 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %96(i8 191)\n  br label %$23\n$22:\n  %97 = phi i64 [%69, %$20] ; # Exe\n  %98 = phi i64 [%70, %$20] ; # X\n  %99 = phi i64 [%71, %$20] ; # Y\n  %100 = phi i64* [%72, %$20] ; # P\n; # (let B @ (call $Put B) (when (& B (hex \"80\")) (call $Put (symByte...\n; # (call $Put B)\n  %101 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %101(i8 %67)\n; # (when (& B (hex \"80\")) (call $Put (symByte P)) (when (& B (hex \"2...\n; # (& B (hex \"80\"))\n  %102 = and i8 %67, 128\n  %103 = icmp ne i8 %102, 0\n  br i1 %103, label %$29, label %$30\n$29:\n  %104 = phi i64 [%97, %$22] ; # Exe\n  %105 = phi i64 [%98, %$22] ; # X\n  %106 = phi i64 [%99, %$22] ; # Y\n  %107 = phi i64* [%100, %$22] ; # P\n  %108 = phi i8 [%67, %$22] ; # B\n; # (symByte P)\n  %109 = call i8 @symByte(i64* %107)\n; # (call $Put (symByte P))\n  %110 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %110(i8 %109)\n; # (when (& B (hex \"20\")) (call $Put (symByte P)) (when (& B (hex \"1...\n; # (& B (hex \"20\"))\n  %111 = and i8 %108, 32\n  %112 = icmp ne i8 %111, 0\n  br i1 %112, label %$31, label %$32\n$31:\n  %113 = phi i64 [%104, %$29] ; # Exe\n  %114 = phi i64 [%105, %$29] ; # X\n  %115 = phi i64 [%106, %$29] ; # Y\n  %116 = phi i64* [%107, %$29] ; # P\n  %117 = phi i8 [%108, %$29] ; # B\n; # (symByte P)\n  %118 = call i8 @symByte(i64* %116)\n; # (call $Put (symByte P))\n  %119 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %119(i8 %118)\n; # (when (& B (hex \"10\")) (call $Put (symByte P)))\n; # (& B (hex \"10\"))\n  %120 = and i8 %117, 16\n  %121 = icmp ne i8 %120, 0\n  br i1 %121, label %$33, label %$34\n$33:\n  %122 = phi i64 [%113, %$31] ; # Exe\n  %123 = phi i64 [%114, %$31] ; # X\n  %124 = phi i64 [%115, %$31] ; # Y\n  %125 = phi i64* [%116, %$31] ; # P\n  %126 = phi i8 [%117, %$31] ; # B\n; # (symByte P)\n  %127 = call i8 @symByte(i64* %125)\n; # (call $Put (symByte P))\n  %128 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %128(i8 %127)\n  br label %$34\n$34:\n  %129 = phi i64 [%113, %$31], [%122, %$33] ; # Exe\n  %130 = phi i64 [%114, %$31], [%123, %$33] ; # X\n  %131 = phi i64 [%115, %$31], [%124, %$33] ; # Y\n  %132 = phi i64* [%116, %$31], [%125, %$33] ; # P\n  %133 = phi i8 [%117, %$31], [%126, %$33] ; # B\n  br label %$32\n$32:\n  %134 = phi i64 [%104, %$29], [%129, %$34] ; # Exe\n  %135 = phi i64 [%105, %$29], [%130, %$34] ; # X\n  %136 = phi i64 [%106, %$29], [%131, %$34] ; # Y\n  %137 = phi i64* [%107, %$29], [%132, %$34] ; # P\n  %138 = phi i8 [%108, %$29], [%133, %$34] ; # B\n  br label %$30\n$30:\n  %139 = phi i64 [%97, %$22], [%134, %$32] ; # Exe\n  %140 = phi i64 [%98, %$22], [%135, %$32] ; # X\n  %141 = phi i64 [%99, %$22], [%136, %$32] ; # Y\n  %142 = phi i64* [%100, %$22], [%137, %$32] ; # P\n  %143 = phi i8 [%67, %$22], [%138, %$32] ; # B\n  br label %$23\n$23:\n  %144 = phi i64 [%73, %$24], [%77, %$25], [%81, %$26], [%85, %$27], [%89, %$28], [%139, %$30] ; # Exe\n  %145 = phi i64 [%74, %$24], [%78, %$25], [%82, %$26], [%86, %$27], [%90, %$28], [%140, %$30] ; # X\n  %146 = phi i64 [%75, %$24], [%79, %$25], [%83, %$26], [%87, %$27], [%91, %$28], [%141, %$30] ; # Y\n  %147 = phi i64* [%76, %$24], [%80, %$25], [%84, %$26], [%88, %$27], [%92, %$28], [%142, %$30] ; # P\n  br label %$19\n$21:\n  %148 = phi i64 [%63, %$19] ; # Exe\n  %149 = phi i64 [%64, %$19] ; # X\n  %150 = phi i64 [%65, %$19] ; # Y\n  %151 = phi i64* [%66, %$19] ; # P\n  br label %$15\n$15:\n  %152 = phi i64 [%44, %$13], [%148, %$21] ; # Exe\n  %153 = phi i64 [%45, %$13], [%149, %$21] ; # X\n  %154 = phi i64 [%46, %$13], [%150, %$21] ; # Y\n  br label %$9\n$9:\n  %155 = phi i64 [%4, %$3], [%152, %$15] ; # Exe\n  %156 = phi i64 [%5, %$3], [%153, %$15] ; # X\n  %157 = phi i64 [%20, %$3], [%154, %$15] ; # Y\n; # (? (atom (shift X)) Y)\n; # (shift X)\n  %158 = inttoptr i64 %156 to i64*\n  %159 = getelementptr i64, i64* %158, i32 1\n  %160 = load i64, i64* %159\n; # (atom (shift X))\n  %161 = and i64 %160, 15\n  %162 = icmp ne i64 %161, 0\n  br i1 %162, label %$37, label %$35\n$37:\n  %163 = phi i64 [%155, %$9] ; # Exe\n  %164 = phi i64 [%160, %$9] ; # X\n  %165 = phi i64 [%157, %$9] ; # Y\n  br label %$36\n$35:\n  %166 = phi i64 [%155, %$9] ; # Exe\n  %167 = phi i64 [%160, %$9] ; # X\n  %168 = phi i64 [%157, %$9] ; # Y\n  br label %$2\n$36:\n  %169 = phi i64 [%163, %$37] ; # Exe\n  %170 = phi i64 [%164, %$37] ; # X\n  %171 = phi i64 [%165, %$37] ; # ->\n  ret i64 %171\n}\n\ndefine void @putHex(i8) align 8 {\n$1:\n; # (call $Put (char \"%\"))\n  %1 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %1(i8 37)\n; # (if (> (& (shr B 4) 15) 9) (+ @ 7) @)\n; # (shr B 4)\n  %2 = lshr i8 %0, 4\n; # (& (shr B 4) 15)\n  %3 = and i8 %2, 15\n; # (> (& (shr B 4) 15) 9)\n  %4 = icmp ugt i8 %3, 9\n  br i1 %4, label %$2, label %$3\n$2:\n  %5 = phi i8 [%0, %$1] ; # B\n; # (+ @ 7)\n  %6 = add i8 %3, 7\n  br label %$4\n$3:\n  %7 = phi i8 [%0, %$1] ; # B\n  br label %$4\n$4:\n  %8 = phi i8 [%5, %$2], [%7, %$3] ; # B\n  %9 = phi i8 [%6, %$2], [%3, %$3] ; # ->\n; # (+ (if (> (& (shr B 4) 15) 9) (+ @ 7) @) (char \"0\"))\n  %10 = add i8 %9, 48\n; # (call $Put (+ (if (> (& (shr B 4) 15) 9) (+ @ 7) @) (char \"0\")))\n  %11 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %11(i8 %10)\n; # (if (> (& B 15) 9) (+ @ 7) @)\n; # (& B 15)\n  %12 = and i8 %8, 15\n; # (> (& B 15) 9)\n  %13 = icmp ugt i8 %12, 9\n  br i1 %13, label %$5, label %$6\n$5:\n  %14 = phi i8 [%8, %$4] ; # B\n; # (+ @ 7)\n  %15 = add i8 %12, 7\n  br label %$7\n$6:\n  %16 = phi i8 [%8, %$4] ; # B\n  br label %$7\n$7:\n  %17 = phi i8 [%14, %$5], [%16, %$6] ; # B\n  %18 = phi i8 [%15, %$5], [%12, %$6] ; # ->\n; # (+ (if (> (& B 15) 9) (+ @ 7) @) (char \"0\"))\n  %19 = add i8 %18, 48\n; # (call $Put (+ (if (> (& B 15) 9) (+ @ 7) @) (char \"0\")))\n  %20 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %20(i8 %19)\n  ret void\n}\n\ndefine void @htEncode(i8, i64*) align 8 {\n$1:\n; # (while B (if (strchr ($ \" \\\"#%&:;<=>?\\\\_\") (i32 B)) (putHex B) (c...\n  br label %$2\n$2:\n  %2 = phi i8 [%0, %$1], [%41, %$7] ; # B\n  %3 = phi i64* [%1, %$1], [%40, %$7] ; # P\n  %4 = icmp ne i8 %2, 0\n  br i1 %4, label %$3, label %$4\n$3:\n  %5 = phi i8 [%2, %$2] ; # B\n  %6 = phi i64* [%3, %$2] ; # P\n; # (if (strchr ($ \" \\\"#%&:;<=>?\\\\_\") (i32 B)) (putHex B) (call $Put ...\n; # (i32 B)\n  %7 = zext i8 %5 to i32\n; # (strchr ($ \" \\\"#%&:;<=>?\\\\_\") (i32 B))\n  %8 = call i8* @strchr(i8* bitcast ([14 x i8]* @$5 to i8*), i32 %7)\n  %9 = icmp ne i8* %8, null\n  br i1 %9, label %$5, label %$6\n$5:\n  %10 = phi i8 [%5, %$3] ; # B\n  %11 = phi i64* [%6, %$3] ; # P\n; # (putHex B)\n  call void @putHex(i8 %10)\n  br label %$7\n$6:\n  %12 = phi i8 [%5, %$3] ; # B\n  %13 = phi i64* [%6, %$3] ; # P\n; # (call $Put B)\n  %14 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %14(i8 %12)\n; # (when (& B (hex \"80\")) (call $Put (symByte P)) (when (& B (hex \"2...\n; # (& B (hex \"80\"))\n  %15 = and i8 %12, 128\n  %16 = icmp ne i8 %15, 0\n  br i1 %16, label %$8, label %$9\n$8:\n  %17 = phi i8 [%12, %$6] ; # B\n  %18 = phi i64* [%13, %$6] ; # P\n; # (symByte P)\n  %19 = call i8 @symByte(i64* %18)\n; # (call $Put (symByte P))\n  %20 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %20(i8 %19)\n; # (when (& B (hex \"20\")) (call $Put (symByte P)) (when (& B (hex \"1...\n; # (& B (hex \"20\"))\n  %21 = and i8 %17, 32\n  %22 = icmp ne i8 %21, 0\n  br i1 %22, label %$10, label %$11\n$10:\n  %23 = phi i8 [%17, %$8] ; # B\n  %24 = phi i64* [%18, %$8] ; # P\n; # (symByte P)\n  %25 = call i8 @symByte(i64* %24)\n; # (call $Put (symByte P))\n  %26 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %26(i8 %25)\n; # (when (& B (hex \"10\")) (call $Put (symByte P)))\n; # (& B (hex \"10\"))\n  %27 = and i8 %23, 16\n  %28 = icmp ne i8 %27, 0\n  br i1 %28, label %$12, label %$13\n$12:\n  %29 = phi i8 [%23, %$10] ; # B\n  %30 = phi i64* [%24, %$10] ; # P\n; # (symByte P)\n  %31 = call i8 @symByte(i64* %30)\n; # (call $Put (symByte P))\n  %32 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %32(i8 %31)\n  br label %$13\n$13:\n  %33 = phi i8 [%23, %$10], [%29, %$12] ; # B\n  %34 = phi i64* [%24, %$10], [%30, %$12] ; # P\n  br label %$11\n$11:\n  %35 = phi i8 [%17, %$8], [%33, %$13] ; # B\n  %36 = phi i64* [%18, %$8], [%34, %$13] ; # P\n  br label %$9\n$9:\n  %37 = phi i8 [%12, %$6], [%35, %$11] ; # B\n  %38 = phi i64* [%13, %$6], [%36, %$11] ; # P\n  br label %$7\n$7:\n  %39 = phi i8 [%10, %$5], [%37, %$9] ; # B\n  %40 = phi i64* [%11, %$5], [%38, %$9] ; # P\n; # (symByte P)\n  %41 = call i8 @symByte(i64* %40)\n  br label %$2\n$4:\n  %42 = phi i8 [%2, %$2] ; # B\n  %43 = phi i64* [%3, %$2] ; # P\n  ret void\n}\n\ndefine void @htFmt(i64) align 8 {\n$1:\n; # (cond ((nil? X)) ((num? X) (call $Put (char \"+\")) (prin X)) ((pai...\n; # (nil? X)\n  %1 = icmp eq i64 %0, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %1, label %$2, label %$3\n$3:\n  %2 = phi i64 [%0, %$1] ; # X\n; # (num? X)\n  %3 = and i64 %2, 6\n  %4 = icmp ne i64 %3, 0\n  br i1 %4, label %$5, label %$4\n$5:\n  %5 = phi i64 [%2, %$3] ; # X\n; # (call $Put (char \"+\"))\n  %6 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %6(i8 43)\n; # (prin X)\n  call void @prin(i64 %5)\n  br label %$2\n$4:\n  %7 = phi i64 [%2, %$3] ; # X\n; # (pair X)\n  %8 = and i64 %7, 15\n  %9 = icmp eq i64 %8, 0\n  br i1 %9, label %$7, label %$6\n$7:\n  %10 = phi i64 [%7, %$4] ; # X\n; # (loop (call $Put (char \"_\")) (htFmt (++ X)) (? (atom X)))\n  br label %$8\n$8:\n  %11 = phi i64 [%10, %$7], [%19, %$9] ; # X\n; # (call $Put (char \"_\"))\n  %12 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %12(i8 95)\n; # (++ X)\n  %13 = inttoptr i64 %11 to i64*\n  %14 = getelementptr i64, i64* %13, i32 1\n  %15 = load i64, i64* %14\n  %16 = load i64, i64* %13\n; # (htFmt (++ X))\n  call void @htFmt(i64 %16)\n; # (? (atom X))\n; # (atom X)\n  %17 = and i64 %15, 15\n  %18 = icmp ne i64 %17, 0\n  br i1 %18, label %$10, label %$9\n$9:\n  %19 = phi i64 [%15, %$8] ; # X\n  br label %$8\n$10:\n  %20 = phi i64 [%15, %$8] ; # X\n  %21 = phi i64 [0, %$8] ; # ->\n  br label %$2\n$6:\n  %22 = phi i64 [%7, %$4] ; # X\n; # (tail X)\n  %23 = add i64 %22, -8\n; # (val (tail X))\n  %24 = inttoptr i64 %23 to i64*\n  %25 = load i64, i64* %24\n; # (sym? (val (tail X)))\n  %26 = and i64 %25, 8\n  %27 = icmp ne i64 %26, 0\n  br i1 %27, label %$12, label %$11\n$12:\n  %28 = phi i64 [%22, %$6] ; # X\n; # (call $Put (char \"-\"))\n  %29 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %29(i8 45)\n; # (& @ -9)\n  %30 = and i64 %25, -9\n; # (name (& @ -9))\n  br label %$13\n$13:\n  %31 = phi i64 [%30, %$12], [%37, %$14] ; # Tail\n  %32 = and i64 %31, 6\n  %33 = icmp ne i64 %32, 0\n  br i1 %33, label %$15, label %$14\n$14:\n  %34 = phi i64 [%31, %$13] ; # Tail\n  %35 = inttoptr i64 %34 to i64*\n  %36 = getelementptr i64, i64* %35, i32 1\n  %37 = load i64, i64* %36\n  br label %$13\n$15:\n  %38 = phi i64 [%31, %$13] ; # Tail\n; # (prExt (name (& @ -9)))\n  call void @prExt(i64 %38)\n  br label %$2\n$11:\n  %39 = phi i64 [%22, %$6] ; # X\n; # (name @)\n  br label %$16\n$16:\n  %40 = phi i64 [%25, %$11], [%46, %$17] ; # Tail\n  %41 = and i64 %40, 6\n  %42 = icmp ne i64 %41, 0\n  br i1 %42, label %$18, label %$17\n$17:\n  %43 = phi i64 [%40, %$16] ; # Tail\n  %44 = inttoptr i64 %43 to i64*\n  %45 = getelementptr i64, i64* %44, i32 1\n  %46 = load i64, i64* %45\n  br label %$16\n$18:\n  %47 = phi i64 [%40, %$16] ; # Tail\n; # (== (name @) ZERO)\n  %48 = icmp eq i64 %47, 2\n  br i1 %48, label %$2, label %$19\n$19:\n  %49 = phi i64 [%39, %$18] ; # X\n; # (let (Nm @ P (push 0 Nm) B (symByte P)) (cond ((findSym X Nm (val...\n; # (push 0 Nm)\n  %50 = alloca i64, i64 2, align 16\n  store i64 0, i64* %50\n  %51 = getelementptr i64, i64* %50, i32 1\n  store i64 %47, i64* %51\n; # (symByte P)\n  %52 = call i8 @symByte(i64* %50)\n; # (cond ((findSym X Nm (val $Intern)) (call $Put (char \"$\")) (htEnc...\n; # (val $Intern)\n  %53 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([53 x i64]* @gcData to i8*), i32 0) to i64) to i64*\n  %54 = load i64, i64* %53\n; # (findSym X Nm (val $Intern))\n  %55 = call i1 @findSym(i64 %49, i64 %47, i64 %54)\n  br i1 %55, label %$22, label %$21\n$22:\n  %56 = phi i64 [%49, %$19] ; # X\n  %57 = phi i64 [%47, %$19] ; # Nm\n  %58 = phi i64* [%50, %$19] ; # P\n  %59 = phi i8 [%52, %$19] ; # B\n; # (call $Put (char \"$\"))\n  %60 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %60(i8 36)\n; # (htEncode B P)\n  call void @htEncode(i8 %59, i64* %58)\n  br label %$20\n$21:\n  %61 = phi i64 [%49, %$19] ; # X\n  %62 = phi i64 [%47, %$19] ; # Nm\n  %63 = phi i64* [%50, %$19] ; # P\n  %64 = phi i8 [%52, %$19] ; # B\n; # (or (== B (char \"$\")) (== B (char \"+\")) (== B (char \"-\")))\n; # (== B (char \"$\"))\n  %65 = icmp eq i8 %64, 36\n  br i1 %65, label %$23, label %$24\n$24:\n  %66 = phi i64 [%61, %$21] ; # X\n  %67 = phi i64 [%62, %$21] ; # Nm\n  %68 = phi i64* [%63, %$21] ; # P\n  %69 = phi i8 [%64, %$21] ; # B\n; # (== B (char \"+\"))\n  %70 = icmp eq i8 %69, 43\n  br i1 %70, label %$23, label %$25\n$25:\n  %71 = phi i64 [%66, %$24] ; # X\n  %72 = phi i64 [%67, %$24] ; # Nm\n  %73 = phi i64* [%68, %$24] ; # P\n  %74 = phi i8 [%69, %$24] ; # B\n; # (== B (char \"-\"))\n  %75 = icmp eq i8 %74, 45\n  br label %$23\n$23:\n  %76 = phi i64 [%61, %$21], [%66, %$24], [%71, %$25] ; # X\n  %77 = phi i64 [%62, %$21], [%67, %$24], [%72, %$25] ; # Nm\n  %78 = phi i64* [%63, %$21], [%68, %$24], [%73, %$25] ; # P\n  %79 = phi i8 [%64, %$21], [%69, %$24], [%74, %$25] ; # B\n  %80 = phi i1 [1, %$21], [1, %$24], [%75, %$25] ; # ->\n  br i1 %80, label %$27, label %$26\n$27:\n  %81 = phi i64 [%76, %$23] ; # X\n  %82 = phi i64 [%77, %$23] ; # Nm\n  %83 = phi i64* [%78, %$23] ; # P\n  %84 = phi i8 [%79, %$23] ; # B\n; # (putHex B)\n  call void @putHex(i8 %84)\n; # (symByte P)\n  %85 = call i8 @symByte(i64* %83)\n; # (htEncode (symByte P) P)\n  call void @htEncode(i8 %85, i64* %83)\n  br label %$20\n$26:\n  %86 = phi i64 [%76, %$23] ; # X\n  %87 = phi i64 [%77, %$23] ; # Nm\n  %88 = phi i64* [%78, %$23] ; # P\n  %89 = phi i8 [%79, %$23] ; # B\n; # (htEncode B P)\n  call void @htEncode(i8 %89, i64* %88)\n  br label %$20\n$20:\n  %90 = phi i64 [%56, %$22], [%81, %$27], [%86, %$26] ; # X\n  %91 = phi i64 [%57, %$22], [%82, %$27], [%87, %$26] ; # Nm\n  %92 = phi i64* [%58, %$22], [%83, %$27], [%88, %$26] ; # P\n  %93 = phi i8 [%59, %$22], [%84, %$27], [%89, %$26] ; # B\n  br label %$2\n$2:\n  %94 = phi i64 [%0, %$1], [%5, %$5], [%20, %$10], [%28, %$15], [%39, %$18], [%90, %$20] ; # X\n  ret void\n}\n\ndefine i64 @Fmt(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) P (push 4 NIL ZERO NIL NIL NIL)) (begString P) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (push 4 NIL ZERO NIL NIL NIL)\n  %4 = alloca i64, i64 6, align 16\n  store i64 4, i64* %4\n  %5 = getelementptr i64, i64* %4, i32 2\n  store i64 2, i64* %5\n; # (begString P)\n  call void @begString(i64* %4)\n; # (loop (htFmt (prog2 (tglString P) (eval (car X)) (tglString P))) ...\n  br label %$2\n$2:\n  %6 = phi i64 [%0, %$1], [%29, %$8] ; # Exe\n  %7 = phi i64 [%3, %$1], [%30, %$8] ; # X\n  %8 = phi i64* [%4, %$1], [%31, %$8] ; # P\n; # (prog2 (tglString P) (eval (car X)) (tglString P))\n; # (tglString P)\n  call void @tglString(i64* %8)\n; # (car X)\n  %9 = inttoptr i64 %7 to i64*\n  %10 = load i64, i64* %9\n; # (eval (car X))\n  %11 = and i64 %10, 6\n  %12 = icmp ne i64 %11, 0\n  br i1 %12, label %$5, label %$4\n$5:\n  %13 = phi i64 [%10, %$2] ; # X\n  br label %$3\n$4:\n  %14 = phi i64 [%10, %$2] ; # X\n  %15 = and i64 %14, 8\n  %16 = icmp ne i64 %15, 0\n  br i1 %16, label %$7, label %$6\n$7:\n  %17 = phi i64 [%14, %$4] ; # X\n  %18 = inttoptr i64 %17 to i64*\n  %19 = load i64, i64* %18\n  br label %$3\n$6:\n  %20 = phi i64 [%14, %$4] ; # X\n  %21 = call i64 @evList(i64 %20)\n  br label %$3\n$3:\n  %22 = phi i64 [%13, %$5], [%17, %$7], [%20, %$6] ; # X\n  %23 = phi i64 [%13, %$5], [%19, %$7], [%21, %$6] ; # ->\n; # (tglString P)\n  call void @tglString(i64* %8)\n; # (htFmt (prog2 (tglString P) (eval (car X)) (tglString P)))\n  call void @htFmt(i64 %23)\n; # (? (atom (shift X)))\n; # (shift X)\n  %24 = inttoptr i64 %7 to i64*\n  %25 = getelementptr i64, i64* %24, i32 1\n  %26 = load i64, i64* %25\n; # (atom (shift X))\n  %27 = and i64 %26, 15\n  %28 = icmp ne i64 %27, 0\n  br i1 %28, label %$9, label %$8\n$8:\n  %29 = phi i64 [%6, %$3] ; # Exe\n  %30 = phi i64 [%26, %$3] ; # X\n  %31 = phi i64* [%8, %$3] ; # P\n; # (call $Put (char \"&\"))\n  %32 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %32(i8 38)\n  br label %$2\n$9:\n  %33 = phi i64 [%6, %$3] ; # Exe\n  %34 = phi i64 [%26, %$3] ; # X\n  %35 = phi i64* [%8, %$3] ; # P\n  %36 = phi i64 [0, %$3] ; # ->\n; # (endString)\n  %37 = call i64 @endString()\n  ret i64 %37\n}\n\ndefine i8 @getHex(i64) align 8 {\n$1:\n; # (if (> (- (firstByte Sym) (char \"0\")) 9) (- (& @ (hex \"DF\")) 7) @...\n; # (firstByte Sym)\n  %1 = call i8 @firstByte(i64 %0)\n; # (- (firstByte Sym) (char \"0\"))\n  %2 = sub i8 %1, 48\n; # (> (- (firstByte Sym) (char \"0\")) 9)\n  %3 = icmp ugt i8 %2, 9\n  br i1 %3, label %$2, label %$3\n$2:\n  %4 = phi i64 [%0, %$1] ; # Sym\n; # (& @ (hex \"DF\"))\n  %5 = and i8 %2, 223\n; # (- (& @ (hex \"DF\")) 7)\n  %6 = sub i8 %5, 7\n  br label %$4\n$3:\n  %7 = phi i64 [%0, %$1] ; # Sym\n  br label %$4\n$4:\n  %8 = phi i64 [%4, %$2], [%7, %$3] ; # Sym\n  %9 = phi i8 [%6, %$2], [%2, %$3] ; # ->\n  ret i8 %9\n}\n\ndefine i64 @head(i8*, i64) align 8 {\n$1:\n; # (let B (val S) (loop (? (<> B (firstByte (++ Lst))) 0) (? (=0 (se...\n; # (val S)\n  %2 = load i8, i8* %0\n; # (loop (? (<> B (firstByte (++ Lst))) 0) (? (=0 (setq B (val (inc ...\n  br label %$2\n$2:\n  %3 = phi i8* [%0, %$1], [%24, %$6] ; # S\n  %4 = phi i64 [%1, %$1], [%25, %$6] ; # Lst\n  %5 = phi i8 [%2, %$1], [%26, %$6] ; # B\n; # (? (<> B (firstByte (++ Lst))) 0)\n; # (++ Lst)\n  %6 = inttoptr i64 %4 to i64*\n  %7 = getelementptr i64, i64* %6, i32 1\n  %8 = load i64, i64* %7\n  %9 = load i64, i64* %6\n; # (firstByte (++ Lst))\n  %10 = call i8 @firstByte(i64 %9)\n; # (<> B (firstByte (++ Lst)))\n  %11 = icmp ne i8 %5, %10\n  br i1 %11, label %$5, label %$3\n$5:\n  %12 = phi i8* [%3, %$2] ; # S\n  %13 = phi i64 [%8, %$2] ; # Lst\n  %14 = phi i8 [%5, %$2] ; # B\n  br label %$4\n$3:\n  %15 = phi i8* [%3, %$2] ; # S\n  %16 = phi i64 [%8, %$2] ; # Lst\n  %17 = phi i8 [%5, %$2] ; # B\n; # (? (=0 (setq B (val (inc 'S)))) Lst)\n; # (inc 'S)\n  %18 = getelementptr i8, i8* %15, i32 1\n; # (val (inc 'S))\n  %19 = load i8, i8* %18\n; # (=0 (setq B (val (inc 'S))))\n  %20 = icmp eq i8 %19, 0\n  br i1 %20, label %$7, label %$6\n$7:\n  %21 = phi i8* [%18, %$3] ; # S\n  %22 = phi i64 [%16, %$3] ; # Lst\n  %23 = phi i8 [%19, %$3] ; # B\n  br label %$4\n$6:\n  %24 = phi i8* [%18, %$3] ; # S\n  %25 = phi i64 [%16, %$3] ; # Lst\n  %26 = phi i8 [%19, %$3] ; # B\n  br label %$2\n$4:\n  %27 = phi i8* [%12, %$5], [%21, %$7] ; # S\n  %28 = phi i64 [%13, %$5], [%22, %$7] ; # Lst\n  %29 = phi i8 [%14, %$5], [%23, %$7] ; # B\n  %30 = phi i64 [0, %$5], [%22, %$7] ; # ->\n  ret i64 %30\n}\n\ndefine i64 @Pack(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) Lst (save (eval (++ X))) Flg (nil? (eval (car X...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (save (eval (++ X)))\n  %21 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %22 = load i64, i64* %21\n  %23 = alloca i64, i64 2, align 16\n  %24 = ptrtoint i64* %23 to i64\n  %25 = inttoptr i64 %24 to i64*\n  store i64 %20, i64* %25\n  %26 = add i64 %24, 8\n  %27 = inttoptr i64 %26 to i64*\n  store i64 %22, i64* %27\n  %28 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %24, i64* %28\n; # (car X)\n  %29 = inttoptr i64 %6 to i64*\n  %30 = load i64, i64* %29\n; # (eval (car X))\n  %31 = and i64 %30, 6\n  %32 = icmp ne i64 %31, 0\n  br i1 %32, label %$9, label %$8\n$9:\n  %33 = phi i64 [%30, %$2] ; # X\n  br label %$7\n$8:\n  %34 = phi i64 [%30, %$2] ; # X\n  %35 = and i64 %34, 8\n  %36 = icmp ne i64 %35, 0\n  br i1 %36, label %$11, label %$10\n$11:\n  %37 = phi i64 [%34, %$8] ; # X\n  %38 = inttoptr i64 %37 to i64*\n  %39 = load i64, i64* %38\n  br label %$7\n$10:\n  %40 = phi i64 [%34, %$8] ; # X\n  %41 = call i64 @evList(i64 %40)\n  br label %$7\n$7:\n  %42 = phi i64 [%33, %$9], [%37, %$11], [%40, %$10] ; # X\n  %43 = phi i64 [%33, %$9], [%39, %$11], [%41, %$10] ; # ->\n; # (nil? (eval (car X)))\n  %44 = icmp eq i64 %43, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n; # (push 4 NIL ZERO NIL NIL NIL)\n  %45 = alloca i64, i64 6, align 16\n  store i64 4, i64* %45\n  %46 = getelementptr i64, i64* %45, i32 2\n  store i64 2, i64* %46\n; # (begString (push 4 NIL ZERO NIL NIL NIL))\n  call void @begString(i64* %45)\n; # (while (pair Lst) (let (C (++ Lst) B (firstByte C)) (cond ((== B ...\n  br label %$12\n$12:\n  %47 = phi i64 [%0, %$7], [%310, %$15] ; # Exe\n  %48 = phi i64 [%6, %$7], [%311, %$15] ; # X\n  %49 = phi i64 [%20, %$7], [%312, %$15] ; # Lst\n  %50 = phi i1 [%44, %$7], [%313, %$15] ; # Flg\n; # (pair Lst)\n  %51 = and i64 %49, 15\n  %52 = icmp eq i64 %51, 0\n  br i1 %52, label %$13, label %$14\n$13:\n  %53 = phi i64 [%47, %$12] ; # Exe\n  %54 = phi i64 [%48, %$12] ; # X\n  %55 = phi i64 [%49, %$12] ; # Lst\n  %56 = phi i1 [%50, %$12] ; # Flg\n; # (let (C (++ Lst) B (firstByte C)) (cond ((== B (char \"%\")) (call ...\n; # (++ Lst)\n  %57 = inttoptr i64 %55 to i64*\n  %58 = getelementptr i64, i64* %57, i32 1\n  %59 = load i64, i64* %58\n  %60 = load i64, i64* %57\n; # (firstByte C)\n  %61 = call i8 @firstByte(i64 %60)\n; # (cond ((== B (char \"%\")) (call $Put (if Flg B (| (shl (getHex (++...\n; # (== B (char \"%\"))\n  %62 = icmp eq i8 %61, 37\n  br i1 %62, label %$17, label %$16\n$17:\n  %63 = phi i64 [%53, %$13] ; # Exe\n  %64 = phi i64 [%54, %$13] ; # X\n  %65 = phi i64 [%59, %$13] ; # Lst\n  %66 = phi i1 [%56, %$13] ; # Flg\n  %67 = phi i64 [%60, %$13] ; # C\n  %68 = phi i8 [%61, %$13] ; # B\n; # (if Flg B (| (shl (getHex (++ Lst)) 4) (getHex (++ Lst))))\n  br i1 %66, label %$18, label %$19\n$18:\n  %69 = phi i64 [%63, %$17] ; # Exe\n  %70 = phi i64 [%64, %$17] ; # X\n  %71 = phi i64 [%65, %$17] ; # Lst\n  %72 = phi i1 [%66, %$17] ; # Flg\n  %73 = phi i64 [%67, %$17] ; # C\n  %74 = phi i8 [%68, %$17] ; # B\n  br label %$20\n$19:\n  %75 = phi i64 [%63, %$17] ; # Exe\n  %76 = phi i64 [%64, %$17] ; # X\n  %77 = phi i64 [%65, %$17] ; # Lst\n  %78 = phi i1 [%66, %$17] ; # Flg\n  %79 = phi i64 [%67, %$17] ; # C\n  %80 = phi i8 [%68, %$17] ; # B\n; # (++ Lst)\n  %81 = inttoptr i64 %77 to i64*\n  %82 = getelementptr i64, i64* %81, i32 1\n  %83 = load i64, i64* %82\n  %84 = load i64, i64* %81\n; # (getHex (++ Lst))\n  %85 = call i8 @getHex(i64 %84)\n; # (shl (getHex (++ Lst)) 4)\n  %86 = shl i8 %85, 4\n; # (++ Lst)\n  %87 = inttoptr i64 %83 to i64*\n  %88 = getelementptr i64, i64* %87, i32 1\n  %89 = load i64, i64* %88\n  %90 = load i64, i64* %87\n; # (getHex (++ Lst))\n  %91 = call i8 @getHex(i64 %90)\n; # (| (shl (getHex (++ Lst)) 4) (getHex (++ Lst)))\n  %92 = or i8 %86, %91\n  br label %$20\n$20:\n  %93 = phi i64 [%69, %$18], [%75, %$19] ; # Exe\n  %94 = phi i64 [%70, %$18], [%76, %$19] ; # X\n  %95 = phi i64 [%71, %$18], [%89, %$19] ; # Lst\n  %96 = phi i1 [%72, %$18], [%78, %$19] ; # Flg\n  %97 = phi i64 [%73, %$18], [%79, %$19] ; # C\n  %98 = phi i8 [%74, %$18], [%80, %$19] ; # B\n  %99 = phi i8 [%74, %$18], [%92, %$19] ; # ->\n; # (call $Put (if Flg B (| (shl (getHex (++ Lst)) 4) (getHex (++ Lst...\n  %100 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %100(i8 %99)\n  br label %$15\n$16:\n  %101 = phi i64 [%53, %$13] ; # Exe\n  %102 = phi i64 [%54, %$13] ; # X\n  %103 = phi i64 [%59, %$13] ; # Lst\n  %104 = phi i1 [%56, %$13] ; # Flg\n  %105 = phi i64 [%60, %$13] ; # C\n  %106 = phi i8 [%61, %$13] ; # B\n; # (<> B (char \"&\"))\n  %107 = icmp ne i8 %106, 38\n  br i1 %107, label %$22, label %$21\n$22:\n  %108 = phi i64 [%101, %$16] ; # Exe\n  %109 = phi i64 [%102, %$16] ; # X\n  %110 = phi i64 [%103, %$16] ; # Lst\n  %111 = phi i1 [%104, %$16] ; # Flg\n  %112 = phi i64 [%105, %$16] ; # C\n  %113 = phi i8 [%106, %$16] ; # B\n; # (prSym C)\n  call void @prSym(i64 %112)\n  br label %$15\n$21:\n  %114 = phi i64 [%101, %$16] ; # Exe\n  %115 = phi i64 [%102, %$16] ; # X\n  %116 = phi i64 [%103, %$16] ; # Lst\n  %117 = phi i1 [%104, %$16] ; # Flg\n  %118 = phi i64 [%105, %$16] ; # C\n  %119 = phi i8 [%106, %$16] ; # B\n; # (head ($ \"lt;\") Lst)\n  %120 = call i64 @head(i8* bitcast ([4 x i8]* @$6 to i8*), i64 %116)\n  %121 = icmp ne i64 %120, 0\n  br i1 %121, label %$24, label %$23\n$24:\n  %122 = phi i64 [%114, %$21] ; # Exe\n  %123 = phi i64 [%115, %$21] ; # X\n  %124 = phi i64 [%116, %$21] ; # Lst\n  %125 = phi i1 [%117, %$21] ; # Flg\n  %126 = phi i64 [%118, %$21] ; # C\n  %127 = phi i8 [%119, %$21] ; # B\n; # (call $Put (char \"<\"))\n  %128 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %128(i8 60)\n  br label %$15\n$23:\n  %129 = phi i64 [%114, %$21] ; # Exe\n  %130 = phi i64 [%115, %$21] ; # X\n  %131 = phi i64 [%116, %$21] ; # Lst\n  %132 = phi i1 [%117, %$21] ; # Flg\n  %133 = phi i64 [%118, %$21] ; # C\n  %134 = phi i8 [%119, %$21] ; # B\n; # (head ($ \"gt;\") Lst)\n  %135 = call i64 @head(i8* bitcast ([4 x i8]* @$7 to i8*), i64 %131)\n  %136 = icmp ne i64 %135, 0\n  br i1 %136, label %$26, label %$25\n$26:\n  %137 = phi i64 [%129, %$23] ; # Exe\n  %138 = phi i64 [%130, %$23] ; # X\n  %139 = phi i64 [%131, %$23] ; # Lst\n  %140 = phi i1 [%132, %$23] ; # Flg\n  %141 = phi i64 [%133, %$23] ; # C\n  %142 = phi i8 [%134, %$23] ; # B\n; # (call $Put (char \">\"))\n  %143 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %143(i8 62)\n  br label %$15\n$25:\n  %144 = phi i64 [%129, %$23] ; # Exe\n  %145 = phi i64 [%130, %$23] ; # X\n  %146 = phi i64 [%131, %$23] ; # Lst\n  %147 = phi i1 [%132, %$23] ; # Flg\n  %148 = phi i64 [%133, %$23] ; # C\n  %149 = phi i8 [%134, %$23] ; # B\n; # (head ($ \"amp;\") Lst)\n  %150 = call i64 @head(i8* bitcast ([5 x i8]* @$8 to i8*), i64 %146)\n  %151 = icmp ne i64 %150, 0\n  br i1 %151, label %$28, label %$27\n$28:\n  %152 = phi i64 [%144, %$25] ; # Exe\n  %153 = phi i64 [%145, %$25] ; # X\n  %154 = phi i64 [%146, %$25] ; # Lst\n  %155 = phi i1 [%147, %$25] ; # Flg\n  %156 = phi i64 [%148, %$25] ; # C\n  %157 = phi i8 [%149, %$25] ; # B\n; # (call $Put (char \"&\"))\n  %158 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %158(i8 38)\n  br label %$15\n$27:\n  %159 = phi i64 [%144, %$25] ; # Exe\n  %160 = phi i64 [%145, %$25] ; # X\n  %161 = phi i64 [%146, %$25] ; # Lst\n  %162 = phi i1 [%147, %$25] ; # Flg\n  %163 = phi i64 [%148, %$25] ; # C\n  %164 = phi i8 [%149, %$25] ; # B\n; # (head ($ \"quot;\") Lst)\n  %165 = call i64 @head(i8* bitcast ([6 x i8]* @$9 to i8*), i64 %161)\n  %166 = icmp ne i64 %165, 0\n  br i1 %166, label %$30, label %$29\n$30:\n  %167 = phi i64 [%159, %$27] ; # Exe\n  %168 = phi i64 [%160, %$27] ; # X\n  %169 = phi i64 [%161, %$27] ; # Lst\n  %170 = phi i1 [%162, %$27] ; # Flg\n  %171 = phi i64 [%163, %$27] ; # C\n  %172 = phi i8 [%164, %$27] ; # B\n; # (call $Put (char \"\\\"\"))\n  %173 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %173(i8 34)\n  br label %$15\n$29:\n  %174 = phi i64 [%159, %$27] ; # Exe\n  %175 = phi i64 [%160, %$27] ; # X\n  %176 = phi i64 [%161, %$27] ; # Lst\n  %177 = phi i1 [%162, %$27] ; # Flg\n  %178 = phi i64 [%163, %$27] ; # C\n  %179 = phi i8 [%164, %$27] ; # B\n; # (head ($ \"nbsp;\") Lst)\n  %180 = call i64 @head(i8* bitcast ([6 x i8]* @$10 to i8*), i64 %176)\n  %181 = icmp ne i64 %180, 0\n  br i1 %181, label %$32, label %$31\n$32:\n  %182 = phi i64 [%174, %$29] ; # Exe\n  %183 = phi i64 [%175, %$29] ; # X\n  %184 = phi i64 [%176, %$29] ; # Lst\n  %185 = phi i1 [%177, %$29] ; # Flg\n  %186 = phi i64 [%178, %$29] ; # C\n  %187 = phi i8 [%179, %$29] ; # B\n; # (call $Put (char \" \"))\n  %188 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %188(i8 32)\n  br label %$15\n$31:\n  %189 = phi i64 [%174, %$29] ; # Exe\n  %190 = phi i64 [%175, %$29] ; # X\n  %191 = phi i64 [%176, %$29] ; # Lst\n  %192 = phi i1 [%177, %$29] ; # Flg\n  %193 = phi i64 [%178, %$29] ; # C\n  %194 = phi i8 [%179, %$29] ; # B\n; # (car Lst)\n  %195 = inttoptr i64 %191 to i64*\n  %196 = load i64, i64* %195\n; # (firstByte (car Lst))\n  %197 = call i8 @firstByte(i64 %196)\n; # (== (firstByte (car Lst)) (char \"#\"))\n  %198 = icmp eq i8 %197, 35\n  br i1 %198, label %$34, label %$33\n$34:\n  %199 = phi i64 [%189, %$31] ; # Exe\n  %200 = phi i64 [%190, %$31] ; # X\n  %201 = phi i64 [%191, %$31] ; # Lst\n  %202 = phi i1 [%192, %$31] ; # Flg\n  %203 = phi i64 [%193, %$31] ; # C\n  %204 = phi i8 [%194, %$31] ; # B\n; # (let (L (shift Lst) D (firstByte (++ L)) N (i32 (- D (char \"0\")))...\n; # (shift Lst)\n  %205 = inttoptr i64 %201 to i64*\n  %206 = getelementptr i64, i64* %205, i32 1\n  %207 = load i64, i64* %206\n; # (++ L)\n  %208 = inttoptr i64 %207 to i64*\n  %209 = getelementptr i64, i64* %208, i32 1\n  %210 = load i64, i64* %209\n  %211 = load i64, i64* %208\n; # (firstByte (++ L))\n  %212 = call i8 @firstByte(i64 %211)\n; # (- D (char \"0\"))\n  %213 = sub i8 %212, 48\n; # (i32 (- D (char \"0\")))\n  %214 = zext i8 %213 to i32\n; # (loop (? (or (> (char \"0\") D) (> D (char \"9\"))) (call $Put (char ...\n  br label %$35\n$35:\n  %215 = phi i64 [%199, %$34], [%281, %$41] ; # Exe\n  %216 = phi i64 [%200, %$34], [%282, %$41] ; # X\n  %217 = phi i64 [%207, %$34], [%283, %$41] ; # Lst\n  %218 = phi i1 [%202, %$34], [%284, %$41] ; # Flg\n  %219 = phi i64 [%203, %$34], [%285, %$41] ; # C\n  %220 = phi i8 [%204, %$34], [%286, %$41] ; # B\n  %221 = phi i64 [%210, %$34], [%287, %$41] ; # L\n  %222 = phi i8 [%212, %$34], [%288, %$41] ; # D\n  %223 = phi i32 [%214, %$34], [%293, %$41] ; # N\n; # (? (or (> (char \"0\") D) (> D (char \"9\"))) (call $Put (char \"&\")) ...\n; # (or (> (char \"0\") D) (> D (char \"9\")))\n; # (> (char \"0\") D)\n  %224 = icmp ugt i8 48, %222\n  br i1 %224, label %$36, label %$37\n$37:\n  %225 = phi i64 [%215, %$35] ; # Exe\n  %226 = phi i64 [%216, %$35] ; # X\n  %227 = phi i64 [%217, %$35] ; # Lst\n  %228 = phi i1 [%218, %$35] ; # Flg\n  %229 = phi i64 [%219, %$35] ; # C\n  %230 = phi i8 [%220, %$35] ; # B\n  %231 = phi i64 [%221, %$35] ; # L\n  %232 = phi i8 [%222, %$35] ; # D\n  %233 = phi i32 [%223, %$35] ; # N\n; # (> D (char \"9\"))\n  %234 = icmp ugt i8 %232, 57\n  br label %$36\n$36:\n  %235 = phi i64 [%215, %$35], [%225, %$37] ; # Exe\n  %236 = phi i64 [%216, %$35], [%226, %$37] ; # X\n  %237 = phi i64 [%217, %$35], [%227, %$37] ; # Lst\n  %238 = phi i1 [%218, %$35], [%228, %$37] ; # Flg\n  %239 = phi i64 [%219, %$35], [%229, %$37] ; # C\n  %240 = phi i8 [%220, %$35], [%230, %$37] ; # B\n  %241 = phi i64 [%221, %$35], [%231, %$37] ; # L\n  %242 = phi i8 [%222, %$35], [%232, %$37] ; # D\n  %243 = phi i32 [%223, %$35], [%233, %$37] ; # N\n  %244 = phi i1 [1, %$35], [%234, %$37] ; # ->\n  br i1 %244, label %$40, label %$38\n$40:\n  %245 = phi i64 [%235, %$36] ; # Exe\n  %246 = phi i64 [%236, %$36] ; # X\n  %247 = phi i64 [%237, %$36] ; # Lst\n  %248 = phi i1 [%238, %$36] ; # Flg\n  %249 = phi i64 [%239, %$36] ; # C\n  %250 = phi i8 [%240, %$36] ; # B\n  %251 = phi i64 [%241, %$36] ; # L\n  %252 = phi i8 [%242, %$36] ; # D\n  %253 = phi i32 [%243, %$36] ; # N\n; # (call $Put (char \"&\"))\n  %254 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %254(i8 38)\n; # (call $Put (char \"#\"))\n  %255 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %255(i8 35)\n  br label %$39\n$38:\n  %256 = phi i64 [%235, %$36] ; # Exe\n  %257 = phi i64 [%236, %$36] ; # X\n  %258 = phi i64 [%237, %$36] ; # Lst\n  %259 = phi i1 [%238, %$36] ; # Flg\n  %260 = phi i64 [%239, %$36] ; # C\n  %261 = phi i8 [%240, %$36] ; # B\n  %262 = phi i64 [%241, %$36] ; # L\n  %263 = phi i8 [%242, %$36] ; # D\n  %264 = phi i32 [%243, %$36] ; # N\n; # (? (== (setq D (firstByte (++ L))) (char \";\")) (prSym (mkChar N))...\n; # (++ L)\n  %265 = inttoptr i64 %262 to i64*\n  %266 = getelementptr i64, i64* %265, i32 1\n  %267 = load i64, i64* %266\n  %268 = load i64, i64* %265\n; # (firstByte (++ L))\n  %269 = call i8 @firstByte(i64 %268)\n; # (== (setq D (firstByte (++ L))) (char \";\"))\n  %270 = icmp eq i8 %269, 59\n  br i1 %270, label %$42, label %$41\n$42:\n  %271 = phi i64 [%256, %$38] ; # Exe\n  %272 = phi i64 [%257, %$38] ; # X\n  %273 = phi i64 [%258, %$38] ; # Lst\n  %274 = phi i1 [%259, %$38] ; # Flg\n  %275 = phi i64 [%260, %$38] ; # C\n  %276 = phi i8 [%261, %$38] ; # B\n  %277 = phi i64 [%267, %$38] ; # L\n  %278 = phi i8 [%269, %$38] ; # D\n  %279 = phi i32 [%264, %$38] ; # N\n; # (mkChar N)\n  %280 = call i64 @mkChar(i32 %279)\n; # (prSym (mkChar N))\n  call void @prSym(i64 %280)\n  br label %$39\n$41:\n  %281 = phi i64 [%256, %$38] ; # Exe\n  %282 = phi i64 [%257, %$38] ; # X\n  %283 = phi i64 [%258, %$38] ; # Lst\n  %284 = phi i1 [%259, %$38] ; # Flg\n  %285 = phi i64 [%260, %$38] ; # C\n  %286 = phi i8 [%261, %$38] ; # B\n  %287 = phi i64 [%267, %$38] ; # L\n  %288 = phi i8 [%269, %$38] ; # D\n  %289 = phi i32 [%264, %$38] ; # N\n; # (* N 10)\n  %290 = mul i32 %289, 10\n; # (- D (char \"0\"))\n  %291 = sub i8 %288, 48\n; # (i32 (- D (char \"0\")))\n  %292 = zext i8 %291 to i32\n; # (+ (* N 10) (i32 (- D (char \"0\"))))\n  %293 = add i32 %290, %292\n  br label %$35\n$39:\n  %294 = phi i64 [%245, %$40], [%271, %$42] ; # Exe\n  %295 = phi i64 [%246, %$40], [%272, %$42] ; # X\n  %296 = phi i64 [%247, %$40], [%277, %$42] ; # Lst\n  %297 = phi i1 [%248, %$40], [%274, %$42] ; # Flg\n  %298 = phi i64 [%249, %$40], [%275, %$42] ; # C\n  %299 = phi i8 [%250, %$40], [%276, %$42] ; # B\n  %300 = phi i64 [%251, %$40], [%277, %$42] ; # L\n  %301 = phi i8 [%252, %$40], [%278, %$42] ; # D\n  %302 = phi i32 [%253, %$40], [%279, %$42] ; # N\n  br label %$15\n$33:\n  %303 = phi i64 [%189, %$31] ; # Exe\n  %304 = phi i64 [%190, %$31] ; # X\n  %305 = phi i64 [%191, %$31] ; # Lst\n  %306 = phi i1 [%192, %$31] ; # Flg\n  %307 = phi i64 [%193, %$31] ; # C\n  %308 = phi i8 [%194, %$31] ; # B\n; # (call $Put (char \"&\"))\n  %309 = load void(i8)*, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n  call void %309(i8 38)\n  br label %$15\n$15:\n  %310 = phi i64 [%93, %$20], [%108, %$22], [%122, %$24], [%137, %$26], [%152, %$28], [%167, %$30], [%182, %$32], [%294, %$39], [%303, %$33] ; # Exe\n  %311 = phi i64 [%94, %$20], [%109, %$22], [%123, %$24], [%138, %$26], [%153, %$28], [%168, %$30], [%183, %$32], [%295, %$39], [%304, %$33] ; # X\n  %312 = phi i64 [%95, %$20], [%110, %$22], [%120, %$24], [%135, %$26], [%150, %$28], [%165, %$30], [%180, %$32], [%296, %$39], [%305, %$33] ; # Lst\n  %313 = phi i1 [%96, %$20], [%111, %$22], [%125, %$24], [%140, %$26], [%155, %$28], [%170, %$30], [%185, %$32], [%297, %$39], [%306, %$33] ; # Flg\n  %314 = phi i64 [%97, %$20], [%112, %$22], [%126, %$24], [%141, %$26], [%156, %$28], [%171, %$30], [%186, %$32], [%298, %$39], [%307, %$33] ; # C\n  %315 = phi i8 [%98, %$20], [%113, %$22], [%127, %$24], [%142, %$26], [%157, %$28], [%172, %$30], [%187, %$32], [%299, %$39], [%308, %$33] ; # B\n  br label %$12\n$14:\n  %316 = phi i64 [%47, %$12] ; # Exe\n  %317 = phi i64 [%48, %$12] ; # X\n  %318 = phi i64 [%49, %$12] ; # Lst\n  %319 = phi i1 [%50, %$12] ; # Flg\n; # (endString)\n  %320 = call i64 @endString()\n; # (drop *Safe)\n  %321 = inttoptr i64 %24 to i64*\n  %322 = getelementptr i64, i64* %321, i32 1\n  %323 = load i64, i64* %322\n  %324 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %323, i64* %324\n  ret i64 %320\n}\n\ndefine i64 @Read(i64) align 8 {\n$1:\n; # (let (N (evCnt Exe (cdr Exe)) C (val $Chr)) (if (or (le0 N) (and ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (evCnt Exe (cdr Exe))\n  %4 = call i64 @evCnt(i64 %0, i64 %3)\n; # (val $Chr)\n  %5 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n; # (if (or (le0 N) (and (=0 C) (lt0 (setq C (call $Get))))) $Nil (le...\n; # (or (le0 N) (and (=0 C) (lt0 (setq C (call $Get)))))\n; # (le0 N)\n  %6 = icmp sle i64 %4, 0\n  br i1 %6, label %$2, label %$3\n$3:\n  %7 = phi i64 [%0, %$1] ; # Exe\n  %8 = phi i64 [%4, %$1] ; # N\n  %9 = phi i32 [%5, %$1] ; # C\n; # (and (=0 C) (lt0 (setq C (call $Get))))\n; # (=0 C)\n  %10 = icmp eq i32 %9, 0\n  br i1 %10, label %$5, label %$4\n$5:\n  %11 = phi i64 [%7, %$3] ; # Exe\n  %12 = phi i64 [%8, %$3] ; # N\n  %13 = phi i32 [%9, %$3] ; # C\n; # (call $Get)\n  %14 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %15 = call i32 %14()\n; # (lt0 (setq C (call $Get)))\n  %16 = icmp slt i32 %15, 0\n  br label %$4\n$4:\n  %17 = phi i64 [%7, %$3], [%11, %$5] ; # Exe\n  %18 = phi i64 [%8, %$3], [%12, %$5] ; # N\n  %19 = phi i32 [%9, %$3], [%15, %$5] ; # C\n  %20 = phi i1 [0, %$3], [%16, %$5] ; # ->\n  br label %$2\n$2:\n  %21 = phi i64 [%0, %$1], [%17, %$4] ; # Exe\n  %22 = phi i64 [%4, %$1], [%18, %$4] ; # N\n  %23 = phi i32 [%5, %$1], [%19, %$4] ; # C\n  %24 = phi i1 [1, %$1], [%20, %$4] ; # ->\n  br i1 %24, label %$6, label %$7\n$6:\n  %25 = phi i64 [%21, %$2] ; # Exe\n  %26 = phi i64 [%22, %$2] ; # N\n  %27 = phi i32 [%23, %$2] ; # C\n  br label %$8\n$7:\n  %28 = phi i64 [%21, %$2] ; # Exe\n  %29 = phi i64 [%22, %$2] ; # N\n  %30 = phi i32 [%23, %$2] ; # C\n; # (let C (getChar C) (when (>= C (hex \"80\")) (dec 'N) (when (>= C (...\n; # (getChar C)\n  %31 = call i32 @getChar(i32 %30)\n; # (when (>= C (hex \"80\")) (dec 'N) (when (>= C (hex \"800\")) (dec 'N...\n; # (>= C (hex \"80\"))\n  %32 = icmp sge i32 %31, 128\n  br i1 %32, label %$9, label %$10\n$9:\n  %33 = phi i64 [%28, %$7] ; # Exe\n  %34 = phi i64 [%29, %$7] ; # N\n  %35 = phi i32 [%31, %$7] ; # C\n; # (dec 'N)\n  %36 = sub i64 %34, 1\n; # (when (>= C (hex \"800\")) (dec 'N) (when (>= C (hex \"10000\")) (dec...\n; # (>= C (hex \"800\"))\n  %37 = icmp sge i32 %35, 2048\n  br i1 %37, label %$11, label %$12\n$11:\n  %38 = phi i64 [%33, %$9] ; # Exe\n  %39 = phi i64 [%36, %$9] ; # N\n  %40 = phi i32 [%35, %$9] ; # C\n; # (dec 'N)\n  %41 = sub i64 %39, 1\n; # (when (>= C (hex \"10000\")) (dec 'N))\n; # (>= C (hex \"10000\"))\n  %42 = icmp sge i32 %40, 65536\n  br i1 %42, label %$13, label %$14\n$13:\n  %43 = phi i64 [%38, %$11] ; # Exe\n  %44 = phi i64 [%41, %$11] ; # N\n  %45 = phi i32 [%40, %$11] ; # C\n; # (dec 'N)\n  %46 = sub i64 %44, 1\n  br label %$14\n$14:\n  %47 = phi i64 [%38, %$11], [%43, %$13] ; # Exe\n  %48 = phi i64 [%41, %$11], [%46, %$13] ; # N\n  %49 = phi i32 [%40, %$11], [%45, %$13] ; # C\n  br label %$12\n$12:\n  %50 = phi i64 [%33, %$9], [%47, %$14] ; # Exe\n  %51 = phi i64 [%36, %$9], [%48, %$14] ; # N\n  %52 = phi i32 [%35, %$9], [%49, %$14] ; # C\n  br label %$10\n$10:\n  %53 = phi i64 [%28, %$7], [%50, %$12] ; # Exe\n  %54 = phi i64 [%29, %$7], [%51, %$12] ; # N\n  %55 = phi i32 [%31, %$7], [%52, %$12] ; # C\n; # (if (lt0 (dec 'N)) $Nil (let (X (cons (mkChar C) $Nil) R (save X)...\n; # (dec 'N)\n  %56 = sub i64 %54, 1\n; # (lt0 (dec 'N))\n  %57 = icmp slt i64 %56, 0\n  br i1 %57, label %$15, label %$16\n$15:\n  %58 = phi i64 [%53, %$10] ; # Exe\n  %59 = phi i64 [%56, %$10] ; # N\n  %60 = phi i32 [%55, %$10] ; # C\n  br label %$17\n$16:\n  %61 = phi i64 [%53, %$10] ; # Exe\n  %62 = phi i64 [%56, %$10] ; # N\n  %63 = phi i32 [%55, %$10] ; # C\n; # (let (X (cons (mkChar C) $Nil) R (save X)) (loop (? (=0 N) (set $...\n; # (mkChar C)\n  %64 = call i64 @mkChar(i32 %63)\n; # (cons (mkChar C) $Nil)\n  %65 = call i64 @cons(i64 %64, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n; # (save X)\n  %66 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  %67 = load i64, i64* %66\n  %68 = alloca i64, i64 2, align 16\n  %69 = ptrtoint i64* %68 to i64\n  %70 = inttoptr i64 %69 to i64*\n  store i64 %65, i64* %70\n  %71 = add i64 %69, 8\n  %72 = inttoptr i64 %71 to i64*\n  store i64 %67, i64* %72\n  %73 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %69, i64* %73\n; # (loop (? (=0 N) (set $Chr 0) R) (? (lt0 (setq C (call $Get))) $Ni...\n  br label %$18\n$18:\n  %74 = phi i64 [%61, %$16], [%147, %$30] ; # Exe\n  %75 = phi i64 [%62, %$16], [%148, %$30] ; # N\n  %76 = phi i32 [%63, %$16], [%149, %$30] ; # C\n  %77 = phi i64 [%65, %$16], [%153, %$30] ; # X\n  %78 = phi i64 [%65, %$16], [%151, %$30] ; # R\n; # (? (=0 N) (set $Chr 0) R)\n; # (=0 N)\n  %79 = icmp eq i64 %75, 0\n  br i1 %79, label %$21, label %$19\n$21:\n  %80 = phi i64 [%74, %$18] ; # Exe\n  %81 = phi i64 [%75, %$18] ; # N\n  %82 = phi i32 [%76, %$18] ; # C\n  %83 = phi i64 [%77, %$18] ; # X\n  %84 = phi i64 [%78, %$18] ; # R\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$20\n$19:\n  %85 = phi i64 [%74, %$18] ; # Exe\n  %86 = phi i64 [%75, %$18] ; # N\n  %87 = phi i32 [%76, %$18] ; # C\n  %88 = phi i64 [%77, %$18] ; # X\n  %89 = phi i64 [%78, %$18] ; # R\n; # (? (lt0 (setq C (call $Get))) $Nil)\n; # (call $Get)\n  %90 = load i32()*, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n  %91 = call i32 %90()\n; # (lt0 (setq C (call $Get)))\n  %92 = icmp slt i32 %91, 0\n  br i1 %92, label %$23, label %$22\n$23:\n  %93 = phi i64 [%85, %$19] ; # Exe\n  %94 = phi i64 [%86, %$19] ; # N\n  %95 = phi i32 [%91, %$19] ; # C\n  %96 = phi i64 [%88, %$19] ; # X\n  %97 = phi i64 [%89, %$19] ; # R\n  br label %$20\n$22:\n  %98 = phi i64 [%85, %$19] ; # Exe\n  %99 = phi i64 [%86, %$19] ; # N\n  %100 = phi i32 [%91, %$19] ; # C\n  %101 = phi i64 [%88, %$19] ; # X\n  %102 = phi i64 [%89, %$19] ; # R\n; # (getChar C)\n  %103 = call i32 @getChar(i32 %100)\n; # (when (>= C (hex \"80\")) (dec 'N) (when (>= C (hex \"800\")) (dec 'N...\n; # (>= C (hex \"80\"))\n  %104 = icmp sge i32 %103, 128\n  br i1 %104, label %$24, label %$25\n$24:\n  %105 = phi i64 [%98, %$22] ; # Exe\n  %106 = phi i64 [%99, %$22] ; # N\n  %107 = phi i32 [%103, %$22] ; # C\n  %108 = phi i64 [%101, %$22] ; # X\n  %109 = phi i64 [%102, %$22] ; # R\n; # (dec 'N)\n  %110 = sub i64 %106, 1\n; # (when (>= C (hex \"800\")) (dec 'N) (when (>= C (hex \"10000\")) (dec...\n; # (>= C (hex \"800\"))\n  %111 = icmp sge i32 %107, 2048\n  br i1 %111, label %$26, label %$27\n$26:\n  %112 = phi i64 [%105, %$24] ; # Exe\n  %113 = phi i64 [%110, %$24] ; # N\n  %114 = phi i32 [%107, %$24] ; # C\n  %115 = phi i64 [%108, %$24] ; # X\n  %116 = phi i64 [%109, %$24] ; # R\n; # (dec 'N)\n  %117 = sub i64 %113, 1\n; # (when (>= C (hex \"10000\")) (dec 'N))\n; # (>= C (hex \"10000\"))\n  %118 = icmp sge i32 %114, 65536\n  br i1 %118, label %$28, label %$29\n$28:\n  %119 = phi i64 [%112, %$26] ; # Exe\n  %120 = phi i64 [%117, %$26] ; # N\n  %121 = phi i32 [%114, %$26] ; # C\n  %122 = phi i64 [%115, %$26] ; # X\n  %123 = phi i64 [%116, %$26] ; # R\n; # (dec 'N)\n  %124 = sub i64 %120, 1\n  br label %$29\n$29:\n  %125 = phi i64 [%112, %$26], [%119, %$28] ; # Exe\n  %126 = phi i64 [%117, %$26], [%124, %$28] ; # N\n  %127 = phi i32 [%114, %$26], [%121, %$28] ; # C\n  %128 = phi i64 [%115, %$26], [%122, %$28] ; # X\n  %129 = phi i64 [%116, %$26], [%123, %$28] ; # R\n  br label %$27\n$27:\n  %130 = phi i64 [%105, %$24], [%125, %$29] ; # Exe\n  %131 = phi i64 [%110, %$24], [%126, %$29] ; # N\n  %132 = phi i32 [%107, %$24], [%127, %$29] ; # C\n  %133 = phi i64 [%108, %$24], [%128, %$29] ; # X\n  %134 = phi i64 [%109, %$24], [%129, %$29] ; # R\n  br label %$25\n$25:\n  %135 = phi i64 [%98, %$22], [%130, %$27] ; # Exe\n  %136 = phi i64 [%99, %$22], [%131, %$27] ; # N\n  %137 = phi i32 [%103, %$22], [%132, %$27] ; # C\n  %138 = phi i64 [%101, %$22], [%133, %$27] ; # X\n  %139 = phi i64 [%102, %$22], [%134, %$27] ; # R\n; # (? (lt0 (dec 'N)) $Nil)\n; # (dec 'N)\n  %140 = sub i64 %136, 1\n; # (lt0 (dec 'N))\n  %141 = icmp slt i64 %140, 0\n  br i1 %141, label %$31, label %$30\n$31:\n  %142 = phi i64 [%135, %$25] ; # Exe\n  %143 = phi i64 [%140, %$25] ; # N\n  %144 = phi i32 [%137, %$25] ; # C\n  %145 = phi i64 [%138, %$25] ; # X\n  %146 = phi i64 [%139, %$25] ; # R\n  br label %$20\n$30:\n  %147 = phi i64 [%135, %$25] ; # Exe\n  %148 = phi i64 [%140, %$25] ; # N\n  %149 = phi i32 [%137, %$25] ; # C\n  %150 = phi i64 [%138, %$25] ; # X\n  %151 = phi i64 [%139, %$25] ; # R\n; # (set 2 X (cons (mkChar C) $Nil))\n; # (mkChar C)\n  %152 = call i64 @mkChar(i32 %149)\n; # (cons (mkChar C) $Nil)\n  %153 = call i64 @cons(i64 %152, i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64))\n  %154 = inttoptr i64 %150 to i64*\n  %155 = getelementptr i64, i64* %154, i32 1\n  store i64 %153, i64* %155\n  br label %$18\n$20:\n  %156 = phi i64 [%80, %$21], [%93, %$23], [%142, %$31] ; # Exe\n  %157 = phi i64 [%81, %$21], [%94, %$23], [%143, %$31] ; # N\n  %158 = phi i32 [%82, %$21], [%95, %$23], [%144, %$31] ; # C\n  %159 = phi i64 [%83, %$21], [%96, %$23], [%145, %$31] ; # X\n  %160 = phi i64 [%84, %$21], [%97, %$23], [%146, %$31] ; # R\n  %161 = phi i64 [%84, %$21], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$23], [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$31] ; # ->\n; # (drop *Safe)\n  %162 = inttoptr i64 %69 to i64*\n  %163 = getelementptr i64, i64* %162, i32 1\n  %164 = load i64, i64* %163\n  %165 = inttoptr i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 0) to i64) to i64*\n  store i64 %164, i64* %165\n  br label %$17\n$17:\n  %166 = phi i64 [%58, %$15], [%156, %$20] ; # Exe\n  %167 = phi i64 [%59, %$15], [%157, %$20] ; # N\n  %168 = phi i32 [%60, %$15], [%158, %$20] ; # C\n  %169 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$15], [%161, %$20] ; # ->\n  br label %$8\n$8:\n  %170 = phi i64 [%25, %$6], [%166, %$17] ; # Exe\n  %171 = phi i64 [%26, %$6], [%167, %$17] ; # N\n  %172 = phi i32 [%27, %$6], [%30, %$17] ; # C\n  %173 = phi i64 [ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64), %$6], [%169, %$17] ; # ->\n  ret i64 %173\n}\n@$CnkCnt = global i32 0\n@$SvGet = global i32()* null\n@$SvPut = global void(i8)* null\n@$CnkBuf = global [4000 x i8] zeroinitializer\n\ndefine i32 @chrHex(i32) align 8 {\n$1:\n; # (cond ((and (>= C (char \"0\")) (>= (char \"9\") C)) (- C 48)) ((and ...\n; # (and (>= C (char \"0\")) (>= (char \"9\") C))\n; # (>= C (char \"0\"))\n  %1 = icmp sge i32 %0, 48\n  br i1 %1, label %$4, label %$3\n$4:\n  %2 = phi i32 [%0, %$1] ; # C\n; # (>= (char \"9\") C)\n  %3 = icmp sge i32 57, %2\n  br label %$3\n$3:\n  %4 = phi i32 [%0, %$1], [%2, %$4] ; # C\n  %5 = phi i1 [0, %$1], [%3, %$4] ; # ->\n  br i1 %5, label %$6, label %$5\n$6:\n  %6 = phi i32 [%4, %$3] ; # C\n; # (- C 48)\n  %7 = sub i32 %6, 48\n  br label %$2\n$5:\n  %8 = phi i32 [%4, %$3] ; # C\n; # (and (>= (setq C (& C (hex \"DF\"))) (char \"A\")) (>= (char \"F\") C))...\n; # (& C (hex \"DF\"))\n  %9 = and i32 %8, 223\n; # (>= (setq C (& C (hex \"DF\"))) (char \"A\"))\n  %10 = icmp sge i32 %9, 65\n  br i1 %10, label %$8, label %$7\n$8:\n  %11 = phi i32 [%9, %$5] ; # C\n; # (>= (char \"F\") C)\n  %12 = icmp sge i32 70, %11\n  br label %$7\n$7:\n  %13 = phi i32 [%9, %$5], [%11, %$8] ; # C\n  %14 = phi i1 [0, %$5], [%12, %$8] ; # ->\n  br i1 %14, label %$10, label %$9\n$10:\n  %15 = phi i32 [%13, %$7] ; # C\n; # (- C 55)\n  %16 = sub i32 %15, 55\n  br label %$2\n$9:\n  %17 = phi i32 [%13, %$7] ; # C\n  br label %$2\n$2:\n  %18 = phi i32 [%6, %$6], [%15, %$10], [%17, %$9] ; # C\n  %19 = phi i32 [%7, %$6], [%16, %$10], [-1, %$9] ; # ->\n  ret i32 %19\n}\n\ndefine void @chunkSize() align 8 {\n$1:\n; # (let C (if (val $Chr) @ (call $SvGet)) (when (ge0 (set $CnkCnt (c...\n; # (if (val $Chr) @ (call $SvGet))\n; # (val $Chr)\n  %0 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  %1 = icmp ne i32 %0, 0\n  br i1 %1, label %$2, label %$3\n$2:\n  br label %$4\n$3:\n; # (call $SvGet)\n  %2 = load i32()*, i32()** @$SvGet\n  %3 = call i32 %2()\n  br label %$4\n$4:\n  %4 = phi i32 [%0, %$2], [%3, %$3] ; # ->\n; # (when (ge0 (set $CnkCnt (chrHex C))) (while (ge0 (chrHex (setq C ...\n; # (set $CnkCnt (chrHex C))\n; # (chrHex C)\n  %5 = call i32 @chrHex(i32 %4)\n  store i32 %5, i32* @$CnkCnt\n; # (ge0 (set $CnkCnt (chrHex C)))\n  %6 = icmp sge i32 %5, 0\n  br i1 %6, label %$5, label %$6\n$5:\n  %7 = phi i32 [%4, %$4] ; # C\n; # (while (ge0 (chrHex (setq C (call $SvGet)))) (set $CnkCnt (| @ (s...\n  br label %$7\n$7:\n  %8 = phi i32 [%7, %$5], [%13, %$8] ; # C\n; # (call $SvGet)\n  %9 = load i32()*, i32()** @$SvGet\n  %10 = call i32 %9()\n; # (chrHex (setq C (call $SvGet)))\n  %11 = call i32 @chrHex(i32 %10)\n; # (ge0 (chrHex (setq C (call $SvGet))))\n  %12 = icmp sge i32 %11, 0\n  br i1 %12, label %$8, label %$9\n$8:\n  %13 = phi i32 [%10, %$7] ; # C\n; # (set $CnkCnt (| @ (shl (val $CnkCnt) 4)))\n; # (val $CnkCnt)\n  %14 = load i32, i32* @$CnkCnt\n; # (shl (val $CnkCnt) 4)\n  %15 = shl i32 %14, 4\n; # (| @ (shl (val $CnkCnt) 4))\n  %16 = or i32 %11, %15\n  store i32 %16, i32* @$CnkCnt\n  br label %$7\n$9:\n  %17 = phi i32 [%10, %$7] ; # C\n; # (loop (? (== C (char \"^J\")) (call $SvGet) (when (=0 (val $CnkCnt)...\n  br label %$10\n$10:\n  %18 = phi i32 [%17, %$9], [%33, %$16] ; # C\n; # (? (== C (char \"^J\")) (call $SvGet) (when (=0 (val $CnkCnt)) (cal...\n; # (== C (char \"^J\"))\n  %19 = icmp eq i32 %18, 10\n  br i1 %19, label %$13, label %$11\n$13:\n  %20 = phi i32 [%18, %$10] ; # C\n; # (call $SvGet)\n  %21 = load i32()*, i32()** @$SvGet\n  %22 = call i32 %21()\n; # (when (=0 (val $CnkCnt)) (call $SvGet) (set $Chr 0))\n; # (val $CnkCnt)\n  %23 = load i32, i32* @$CnkCnt\n; # (=0 (val $CnkCnt))\n  %24 = icmp eq i32 %23, 0\n  br i1 %24, label %$14, label %$15\n$14:\n  %25 = phi i32 [%20, %$13] ; # C\n; # (call $SvGet)\n  %26 = load i32()*, i32()** @$SvGet\n  %27 = call i32 %26()\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$15\n$15:\n  %28 = phi i32 [%20, %$13], [%25, %$14] ; # C\n  br label %$12\n$11:\n  %29 = phi i32 [%18, %$10] ; # C\n; # (? (lt0 C))\n; # (lt0 C)\n  %30 = icmp slt i32 %29, 0\n  br i1 %30, label %$12, label %$16\n$16:\n  %31 = phi i32 [%29, %$11] ; # C\n; # (call $SvGet)\n  %32 = load i32()*, i32()** @$SvGet\n  %33 = call i32 %32()\n  br label %$10\n$12:\n  %34 = phi i32 [%28, %$15], [%29, %$11] ; # C\n  br label %$6\n$6:\n  %35 = phi i32 [%4, %$4], [%34, %$12] ; # C\n  ret void\n}\n\ndefine i32 @getChunked() align 8 {\n$1:\n; # (if (le0 (val $CnkCnt)) (set $Chr -1) (call $SvGet) (when (=0 (se...\n; # (val $CnkCnt)\n  %0 = load i32, i32* @$CnkCnt\n; # (le0 (val $CnkCnt))\n  %1 = icmp sle i32 %0, 0\n  br i1 %1, label %$2, label %$3\n$2:\n; # (set $Chr -1)\n  store i32 -1, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$4\n$3:\n; # (call $SvGet)\n  %2 = load i32()*, i32()** @$SvGet\n  %3 = call i32 %2()\n; # (when (=0 (set $CnkCnt (dec @))) (call $SvGet) (call $SvGet) (chu...\n; # (set $CnkCnt (dec @))\n; # (dec @)\n  %4 = sub i32 %0, 1\n  store i32 %4, i32* @$CnkCnt\n; # (=0 (set $CnkCnt (dec @)))\n  %5 = icmp eq i32 %4, 0\n  br i1 %5, label %$5, label %$6\n$5:\n; # (call $SvGet)\n  %6 = load i32()*, i32()** @$SvGet\n  %7 = call i32 %6()\n; # (call $SvGet)\n  %8 = load i32()*, i32()** @$SvGet\n  %9 = call i32 %8()\n; # (chunkSize)\n  call void @chunkSize()\n  br label %$6\n$6:\n; # (val $Chr)\n  %10 = load i32, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$4\n$4:\n  %11 = phi i32 [-1, %$2], [%10, %$6] ; # ->\n  ret i32 %11\n}\n\ndefine i64 @In(i64) align 8 {\n$1:\n; # (let X (cdr Exe) (if (nil? (eval (++ X))) (run X) (set (i8** $SvG...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (if (nil? (eval (++ X))) (run X) (set (i8** $SvGet) (val (i8** $G...\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (nil? (eval (++ X)))\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n; # (run X)\n  br label %$10\n$10:\n  %24 = phi i64 [%23, %$7], [%54, %$19] ; # Prg\n  %25 = inttoptr i64 %24 to i64*\n  %26 = getelementptr i64, i64* %25, i32 1\n  %27 = load i64, i64* %26\n  %28 = load i64, i64* %25\n  %29 = and i64 %27, 15\n  %30 = icmp ne i64 %29, 0\n  br i1 %30, label %$13, label %$11\n$13:\n  %31 = phi i64 [%27, %$10] ; # Prg\n  %32 = phi i64 [%28, %$10] ; # X\n  %33 = and i64 %32, 6\n  %34 = icmp ne i64 %33, 0\n  br i1 %34, label %$16, label %$15\n$16:\n  %35 = phi i64 [%32, %$13] ; # X\n  br label %$14\n$15:\n  %36 = phi i64 [%32, %$13] ; # X\n  %37 = and i64 %36, 8\n  %38 = icmp ne i64 %37, 0\n  br i1 %38, label %$18, label %$17\n$18:\n  %39 = phi i64 [%36, %$15] ; # X\n  %40 = inttoptr i64 %39 to i64*\n  %41 = load i64, i64* %40\n  br label %$14\n$17:\n  %42 = phi i64 [%36, %$15] ; # X\n  %43 = call i64 @evList(i64 %42)\n  br label %$14\n$14:\n  %44 = phi i64 [%35, %$16], [%39, %$18], [%42, %$17] ; # X\n  %45 = phi i64 [%35, %$16], [%41, %$18], [%43, %$17] ; # ->\n  br label %$12\n$11:\n  %46 = phi i64 [%27, %$10] ; # Prg\n  %47 = phi i64 [%28, %$10] ; # X\n  %48 = and i64 %47, 15\n  %49 = icmp eq i64 %48, 0\n  br i1 %49, label %$20, label %$19\n$20:\n  %50 = phi i64 [%46, %$11] ; # Prg\n  %51 = phi i64 [%47, %$11] ; # X\n  %52 = call i64 @evList(i64 %51)\n  %53 = icmp ne i64 %52, 0\n  br label %$19\n$19:\n  %54 = phi i64 [%46, %$11], [%50, %$20] ; # Prg\n  %55 = phi i64 [%47, %$11], [%51, %$20] ; # X\n  %56 = phi i1 [0, %$11], [%53, %$20] ; # ->\n  br label %$10\n$12:\n  %57 = phi i64 [%31, %$14] ; # Prg\n  %58 = phi i64 [%45, %$14] ; # ->\n  br label %$9\n$8:\n  %59 = phi i64 [%0, %$2] ; # Exe\n  %60 = phi i64 [%6, %$2] ; # X\n; # (set (i8** $SvGet) (val (i8** $Get)) $Get (fun (i32) getChunked))...\n; # (i8** $SvGet)\n  %61 = bitcast i32()** @$SvGet to i8**\n; # (i8** $Get)\n  %62 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n; # (val (i8** $Get))\n  %63 = load i8*, i8** %62\n  store i8* %63, i8** %61\n; # (fun (i32) getChunked)\n  store i32()* @getChunked, i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**)\n; # (chunkSize)\n  call void @chunkSize()\n; # (prog1 (run X) (set (i8** $Get) (val (i8** $SvGet))) (set $Chr 0)...\n; # (run X)\n  br label %$21\n$21:\n  %64 = phi i64 [%60, %$8], [%94, %$30] ; # Prg\n  %65 = inttoptr i64 %64 to i64*\n  %66 = getelementptr i64, i64* %65, i32 1\n  %67 = load i64, i64* %66\n  %68 = load i64, i64* %65\n  %69 = and i64 %67, 15\n  %70 = icmp ne i64 %69, 0\n  br i1 %70, label %$24, label %$22\n$24:\n  %71 = phi i64 [%67, %$21] ; # Prg\n  %72 = phi i64 [%68, %$21] ; # X\n  %73 = and i64 %72, 6\n  %74 = icmp ne i64 %73, 0\n  br i1 %74, label %$27, label %$26\n$27:\n  %75 = phi i64 [%72, %$24] ; # X\n  br label %$25\n$26:\n  %76 = phi i64 [%72, %$24] ; # X\n  %77 = and i64 %76, 8\n  %78 = icmp ne i64 %77, 0\n  br i1 %78, label %$29, label %$28\n$29:\n  %79 = phi i64 [%76, %$26] ; # X\n  %80 = inttoptr i64 %79 to i64*\n  %81 = load i64, i64* %80\n  br label %$25\n$28:\n  %82 = phi i64 [%76, %$26] ; # X\n  %83 = call i64 @evList(i64 %82)\n  br label %$25\n$25:\n  %84 = phi i64 [%75, %$27], [%79, %$29], [%82, %$28] ; # X\n  %85 = phi i64 [%75, %$27], [%81, %$29], [%83, %$28] ; # ->\n  br label %$23\n$22:\n  %86 = phi i64 [%67, %$21] ; # Prg\n  %87 = phi i64 [%68, %$21] ; # X\n  %88 = and i64 %87, 15\n  %89 = icmp eq i64 %88, 0\n  br i1 %89, label %$31, label %$30\n$31:\n  %90 = phi i64 [%86, %$22] ; # Prg\n  %91 = phi i64 [%87, %$22] ; # X\n  %92 = call i64 @evList(i64 %91)\n  %93 = icmp ne i64 %92, 0\n  br label %$30\n$30:\n  %94 = phi i64 [%86, %$22], [%90, %$31] ; # Prg\n  %95 = phi i64 [%87, %$22], [%91, %$31] ; # X\n  %96 = phi i1 [0, %$22], [%93, %$31] ; # ->\n  br label %$21\n$23:\n  %97 = phi i64 [%71, %$25] ; # Prg\n  %98 = phi i64 [%85, %$25] ; # ->\n; # (set (i8** $Get) (val (i8** $SvGet)))\n; # (i8** $Get)\n  %99 = bitcast i32()** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 96) to i32()**) to i8**\n; # (i8** $SvGet)\n  %100 = bitcast i32()** @$SvGet to i8**\n; # (val (i8** $SvGet))\n  %101 = load i8*, i8** %100\n  store i8* %101, i8** %99\n; # (set $Chr 0)\n  store i32 0, i32* bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 168) to i32*)\n  br label %$9\n$9:\n  %102 = phi i64 [%22, %$12], [%59, %$23] ; # Exe\n  %103 = phi i64 [%23, %$12], [%60, %$23] ; # X\n  %104 = phi i64 [%58, %$12], [%98, %$23] ; # ->\n  ret i64 %104\n}\n\ndefine void @outHex(i32) align 8 {\n$1:\n; # (when (> N 15) (outHex (shr N 4)) (setq N (& N 15)))\n; # (> N 15)\n  %1 = icmp sgt i32 %0, 15\n  br i1 %1, label %$2, label %$3\n$2:\n  %2 = phi i32 [%0, %$1] ; # N\n; # (shr N 4)\n  %3 = lshr i32 %2, 4\n; # (outHex (shr N 4))\n  call void @outHex(i32 %3)\n; # (& N 15)\n  %4 = and i32 %2, 15\n  br label %$3\n$3:\n  %5 = phi i32 [%0, %$1], [%4, %$2] ; # N\n; # (when (> N 9) (setq N (+ N 39)))\n; # (> N 9)\n  %6 = icmp sgt i32 %5, 9\n  br i1 %6, label %$4, label %$5\n$4:\n  %7 = phi i32 [%5, %$3] ; # N\n; # (+ N 39)\n  %8 = add i32 %7, 39\n  br label %$5\n$5:\n  %9 = phi i32 [%5, %$3], [%8, %$4] ; # N\n; # (i8 N)\n  %10 = trunc i32 %9 to i8\n; # (+ (i8 N) (char \"0\"))\n  %11 = add i8 %10, 48\n; # (call $SvPut (+ (i8 N) (char \"0\")))\n  %12 = load void(i8)*, void(i8)** @$SvPut\n  call void %12(i8 %11)\n  ret void\n}\n\ndefine void @wrChunk(i32) align 8 {\n$1:\n; # (outHex Cnt)\n  call void @outHex(i32 %0)\n; # (call $SvPut (char \"^M\"))\n  %1 = load void(i8)*, void(i8)** @$SvPut\n  call void %1(i8 13)\n; # (call $SvPut (char \"^J\"))\n  %2 = load void(i8)*, void(i8)** @$SvPut\n  call void %2(i8 10)\n; # (let P $CnkBuf (loop (call $SvPut (val P)) (? (=0 (dec 'Cnt))) (i...\n; # (loop (call $SvPut (val P)) (? (=0 (dec 'Cnt))) (inc 'P))\n  br label %$2\n$2:\n  %3 = phi i32 [%0, %$1], [%9, %$3] ; # Cnt\n  %4 = phi i8* [bitcast ([4000 x i8]* @$CnkBuf to i8*), %$1], [%11, %$3] ; # P\n; # (val P)\n  %5 = load i8, i8* %4\n; # (call $SvPut (val P))\n  %6 = load void(i8)*, void(i8)** @$SvPut\n  call void %6(i8 %5)\n; # (? (=0 (dec 'Cnt)))\n; # (dec 'Cnt)\n  %7 = sub i32 %3, 1\n; # (=0 (dec 'Cnt))\n  %8 = icmp eq i32 %7, 0\n  br i1 %8, label %$4, label %$3\n$3:\n  %9 = phi i32 [%7, %$2] ; # Cnt\n  %10 = phi i8* [%4, %$2] ; # P\n; # (inc 'P)\n  %11 = getelementptr i8, i8* %10, i32 1\n  br label %$2\n$4:\n  %12 = phi i32 [%7, %$2] ; # Cnt\n  %13 = phi i8* [%4, %$2] ; # P\n  %14 = phi i64 [0, %$2] ; # ->\n; # (call $SvPut (char \"^M\"))\n  %15 = load void(i8)*, void(i8)** @$SvPut\n  call void %15(i8 13)\n; # (call $SvPut (char \"^J\"))\n  %16 = load void(i8)*, void(i8)** @$SvPut\n  call void %16(i8 10)\n  ret void\n}\n\ndefine void @putChunked(i8) align 8 {\n$1:\n; # (let I (val $CnkCnt) (set (ofs $CnkBuf I) B) (ifn (== (inc I) CHU...\n; # (val $CnkCnt)\n  %1 = load i32, i32* @$CnkCnt\n; # (set (ofs $CnkBuf I) B)\n; # (ofs $CnkBuf I)\n  %2 = getelementptr i8, i8* bitcast ([4000 x i8]* @$CnkBuf to i8*), i32 %1\n  store i8 %0, i8* %2\n; # (ifn (== (inc I) CHUNK) (set $CnkCnt @) (wrChunk @) (set $CnkCnt ...\n; # (inc I)\n  %3 = add i32 %1, 1\n; # (== (inc I) CHUNK)\n  %4 = icmp eq i32 %3, 4000\n  br i1 %4, label %$3, label %$2\n$2:\n  %5 = phi i8 [%0, %$1] ; # B\n  %6 = phi i32 [%1, %$1] ; # I\n; # (set $CnkCnt @)\n  store i32 %3, i32* @$CnkCnt\n  br label %$4\n$3:\n  %7 = phi i8 [%0, %$1] ; # B\n  %8 = phi i32 [%1, %$1] ; # I\n; # (wrChunk @)\n  call void @wrChunk(i32 %3)\n; # (set $CnkCnt 0)\n  store i32 0, i32* @$CnkCnt\n  br label %$4\n$4:\n  %9 = phi i8 [%5, %$2], [%7, %$3] ; # B\n  %10 = phi i32 [%6, %$2], [%8, %$3] ; # I\n  %11 = phi i32 [%3, %$2], [0, %$3] ; # ->\n  ret void\n}\n\ndefine i64 @Out(i64) align 8 {\n$1:\n; # (let (X (cdr Exe) F (eval (++ X))) (if (nil? F) (setq X (run X)) ...\n; # (cdr Exe)\n  %1 = inttoptr i64 %0 to i64*\n  %2 = getelementptr i64, i64* %1, i32 1\n  %3 = load i64, i64* %2\n; # (++ X)\n  %4 = inttoptr i64 %3 to i64*\n  %5 = getelementptr i64, i64* %4, i32 1\n  %6 = load i64, i64* %5\n  %7 = load i64, i64* %4\n; # (eval (++ X))\n  %8 = and i64 %7, 6\n  %9 = icmp ne i64 %8, 0\n  br i1 %9, label %$4, label %$3\n$4:\n  %10 = phi i64 [%7, %$1] ; # X\n  br label %$2\n$3:\n  %11 = phi i64 [%7, %$1] ; # X\n  %12 = and i64 %11, 8\n  %13 = icmp ne i64 %12, 0\n  br i1 %13, label %$6, label %$5\n$6:\n  %14 = phi i64 [%11, %$3] ; # X\n  %15 = inttoptr i64 %14 to i64*\n  %16 = load i64, i64* %15\n  br label %$2\n$5:\n  %17 = phi i64 [%11, %$3] ; # X\n  %18 = call i64 @evList(i64 %17)\n  br label %$2\n$2:\n  %19 = phi i64 [%10, %$4], [%14, %$6], [%17, %$5] ; # X\n  %20 = phi i64 [%10, %$4], [%16, %$6], [%18, %$5] ; # ->\n; # (if (nil? F) (setq X (run X)) (set $CnkCnt 0 (i8** $SvPut) (val (...\n; # (nil? F)\n  %21 = icmp eq i64 %20, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 8) to i64)\n  br i1 %21, label %$7, label %$8\n$7:\n  %22 = phi i64 [%0, %$2] ; # Exe\n  %23 = phi i64 [%6, %$2] ; # X\n  %24 = phi i64 [%20, %$2] ; # F\n; # (run X)\n  br label %$10\n$10:\n  %25 = phi i64 [%23, %$7], [%55, %$19] ; # Prg\n  %26 = inttoptr i64 %25 to i64*\n  %27 = getelementptr i64, i64* %26, i32 1\n  %28 = load i64, i64* %27\n  %29 = load i64, i64* %26\n  %30 = and i64 %28, 15\n  %31 = icmp ne i64 %30, 0\n  br i1 %31, label %$13, label %$11\n$13:\n  %32 = phi i64 [%28, %$10] ; # Prg\n  %33 = phi i64 [%29, %$10] ; # X\n  %34 = and i64 %33, 6\n  %35 = icmp ne i64 %34, 0\n  br i1 %35, label %$16, label %$15\n$16:\n  %36 = phi i64 [%33, %$13] ; # X\n  br label %$14\n$15:\n  %37 = phi i64 [%33, %$13] ; # X\n  %38 = and i64 %37, 8\n  %39 = icmp ne i64 %38, 0\n  br i1 %39, label %$18, label %$17\n$18:\n  %40 = phi i64 [%37, %$15] ; # X\n  %41 = inttoptr i64 %40 to i64*\n  %42 = load i64, i64* %41\n  br label %$14\n$17:\n  %43 = phi i64 [%37, %$15] ; # X\n  %44 = call i64 @evList(i64 %43)\n  br label %$14\n$14:\n  %45 = phi i64 [%36, %$16], [%40, %$18], [%43, %$17] ; # X\n  %46 = phi i64 [%36, %$16], [%42, %$18], [%44, %$17] ; # ->\n  br label %$12\n$11:\n  %47 = phi i64 [%28, %$10] ; # Prg\n  %48 = phi i64 [%29, %$10] ; # X\n  %49 = and i64 %48, 15\n  %50 = icmp eq i64 %49, 0\n  br i1 %50, label %$20, label %$19\n$20:\n  %51 = phi i64 [%47, %$11] ; # Prg\n  %52 = phi i64 [%48, %$11] ; # X\n  %53 = call i64 @evList(i64 %52)\n  %54 = icmp ne i64 %53, 0\n  br label %$19\n$19:\n  %55 = phi i64 [%47, %$11], [%51, %$20] ; # Prg\n  %56 = phi i64 [%48, %$11], [%52, %$20] ; # X\n  %57 = phi i1 [0, %$11], [%54, %$20] ; # ->\n  br label %$10\n$12:\n  %58 = phi i64 [%32, %$14] ; # Prg\n  %59 = phi i64 [%46, %$14] ; # ->\n  br label %$9\n$8:\n  %60 = phi i64 [%0, %$2] ; # Exe\n  %61 = phi i64 [%6, %$2] ; # X\n  %62 = phi i64 [%20, %$2] ; # F\n; # (set $CnkCnt 0 (i8** $SvPut) (val (i8** $Put)) $Put (fun (void i8...\n  store i32 0, i32* @$CnkCnt\n; # (i8** $SvPut)\n  %63 = bitcast void(i8)** @$SvPut to i8**\n; # (i8** $Put)\n  %64 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (val (i8** $Put))\n  %65 = load i8*, i8** %64\n  store i8* %65, i8** %63\n; # (fun (void i8) putChunked)\n  store void(i8)* @putChunked, void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**)\n; # (run X)\n  br label %$21\n$21:\n  %66 = phi i64 [%61, %$8], [%96, %$30] ; # Prg\n  %67 = inttoptr i64 %66 to i64*\n  %68 = getelementptr i64, i64* %67, i32 1\n  %69 = load i64, i64* %68\n  %70 = load i64, i64* %67\n  %71 = and i64 %69, 15\n  %72 = icmp ne i64 %71, 0\n  br i1 %72, label %$24, label %$22\n$24:\n  %73 = phi i64 [%69, %$21] ; # Prg\n  %74 = phi i64 [%70, %$21] ; # X\n  %75 = and i64 %74, 6\n  %76 = icmp ne i64 %75, 0\n  br i1 %76, label %$27, label %$26\n$27:\n  %77 = phi i64 [%74, %$24] ; # X\n  br label %$25\n$26:\n  %78 = phi i64 [%74, %$24] ; # X\n  %79 = and i64 %78, 8\n  %80 = icmp ne i64 %79, 0\n  br i1 %80, label %$29, label %$28\n$29:\n  %81 = phi i64 [%78, %$26] ; # X\n  %82 = inttoptr i64 %81 to i64*\n  %83 = load i64, i64* %82\n  br label %$25\n$28:\n  %84 = phi i64 [%78, %$26] ; # X\n  %85 = call i64 @evList(i64 %84)\n  br label %$25\n$25:\n  %86 = phi i64 [%77, %$27], [%81, %$29], [%84, %$28] ; # X\n  %87 = phi i64 [%77, %$27], [%83, %$29], [%85, %$28] ; # ->\n  br label %$23\n$22:\n  %88 = phi i64 [%69, %$21] ; # Prg\n  %89 = phi i64 [%70, %$21] ; # X\n  %90 = and i64 %89, 15\n  %91 = icmp eq i64 %90, 0\n  br i1 %91, label %$31, label %$30\n$31:\n  %92 = phi i64 [%88, %$22] ; # Prg\n  %93 = phi i64 [%89, %$22] ; # X\n  %94 = call i64 @evList(i64 %93)\n  %95 = icmp ne i64 %94, 0\n  br label %$30\n$30:\n  %96 = phi i64 [%88, %$22], [%92, %$31] ; # Prg\n  %97 = phi i64 [%89, %$22], [%93, %$31] ; # X\n  %98 = phi i1 [0, %$22], [%95, %$31] ; # ->\n  br label %$21\n$23:\n  %99 = phi i64 [%73, %$25] ; # Prg\n  %100 = phi i64 [%87, %$25] ; # ->\n; # (when (val $CnkCnt) (wrChunk @))\n; # (val $CnkCnt)\n  %101 = load i32, i32* @$CnkCnt\n  %102 = icmp ne i32 %101, 0\n  br i1 %102, label %$32, label %$33\n$32:\n  %103 = phi i64 [%60, %$23] ; # Exe\n  %104 = phi i64 [%100, %$23] ; # X\n  %105 = phi i64 [%62, %$23] ; # F\n; # (wrChunk @)\n  call void @wrChunk(i32 %101)\n  br label %$33\n$33:\n  %106 = phi i64 [%60, %$23], [%103, %$32] ; # Exe\n  %107 = phi i64 [%100, %$23], [%104, %$32] ; # X\n  %108 = phi i64 [%62, %$23], [%105, %$32] ; # F\n; # (set (i8** $Put) (val (i8** $SvPut)))\n; # (i8** $Put)\n  %109 = bitcast void(i8)** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 88) to void(i8)**) to i8**\n; # (i8** $SvPut)\n  %110 = bitcast void(i8)** @$SvPut to i8**\n; # (val (i8** $SvPut))\n  %111 = load i8*, i8** %110\n  store i8* %111, i8** %109\n; # (unless (t? F) (outString ($ \"0^M^J^M^J\")))\n; # (t? F)\n  %112 = icmp eq i64 %108, ptrtoint (i8* getelementptr (i8, i8* bitcast ([898 x i64]* @SymTab to i8*), i32 280) to i64)\n  br i1 %112, label %$35, label %$34\n$34:\n  %113 = phi i64 [%106, %$33] ; # Exe\n  %114 = phi i64 [%107, %$33] ; # X\n  %115 = phi i64 [%108, %$33] ; # F\n; # (outString ($ \"0^M^J^M^J\"))\n  call void @outString(i8* bitcast ([6 x i8]* @$11 to i8*))\n  br label %$35\n$35:\n  %116 = phi i64 [%106, %$33], [%113, %$34] ; # Exe\n  %117 = phi i64 [%107, %$33], [%114, %$34] ; # X\n  %118 = phi i64 [%108, %$33], [%115, %$34] ; # F\n  br label %$9\n$9:\n  %119 = phi i64 [%22, %$12], [%116, %$35] ; # Exe\n  %120 = phi i64 [%59, %$12], [%117, %$35] ; # X\n  %121 = phi i64 [%24, %$12], [%118, %$35] ; # F\n; # (val $OutFile)\n  %122 = load i8*, i8** bitcast (i8* getelementptr (i8, i8* bitcast ([25 x i64]* @env to i8*), i32 80) to i8**)\n; # (flush (val $OutFile))\n  %123 = call i1 @flush(i8* %122)\n  ret i64 %120\n}\n\n@$11 = private constant [6 x i8] c\"0\\0D\\0A\\0D\\0A\\00\"\n@$10 = private constant [6 x i8] c\"nbsp;\\00\"\n@$9 = private constant [6 x i8] c\"quot;\\00\"\n@$8 = private constant [5 x i8] c\"amp;\\00\"\n@$7 = private constant [4 x i8] c\"gt;\\00\"\n@$6 = private constant [4 x i8] c\"lt;\\00\"\n@$5 = private constant [14 x i8] c\" \\22#%&:;<=>?\\_\\00\"\n@$4 = private constant [7 x i8] c\"&quot;\\00\"\n@$3 = private constant [6 x i8] c\"&amp;\\00\"\n@$2 = private constant [5 x i8] c\"&gt;\\00\"\n@$1 = private constant [5 x i8] c\"&lt;\\00\"\n"
  },
  {
    "path": "src/httpGate.c",
    "content": "// 06nov25 Software Lab. Alexander Burger\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <fcntl.h>\n#include <errno.h>\n#include <ctype.h>\n#include <string.h>\n#include <signal.h>\n#include <time.h>\n#include <pwd.h>\n#include <sys/time.h>\n#include <sys/stat.h>\n#include <netdb.h>\n#include <arpa/inet.h>\n#include <netinet/in.h>\n#include <sys/socket.h>\n\n#include <openssl/pem.h>\n#include <openssl/ssl.h>\n#include <openssl/err.h>\n\ntypedef enum {NO,YES} bool;\n\ntypedef struct name {\n   char *key, *ins;\n   struct name *less, *more;\n   int port;\n   uid_t uid;\n   gid_t gid;\n   char *dir, *log, *ev[5], *av[1];\n} name;\n\nstatic bool Hup;\nstatic name *Names;\nstatic char *Config;\nstatic int CliSock, SrvSock;\nstatic char Ciphers[] = \"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\";\n\nstatic char Head_302[] =\n   \"HTTP/1.0 302 Found\\r\\n\"\n   \"Server: PicoLisp\\r\\n\"\n   \"Location: %s\\r\\n\"\n   \"\\r\\n\";\n\nstatic char Head_410[] =\n   \"HTTP/1.0 410 Gone\\r\\n\"\n   \"Server: PicoLisp\\r\\n\"\n   \"Content-Type: text/html; charset=utf-8\\r\\n\"\n   \"\\r\\n\";\n\nstatic void giveup(char *msg) {\n   fprintf(stderr, \"httpGate: %s\\n\", msg);\n   exit(1);\n}\n\nstatic int readNames(void) {\n   FILE *fp;\n   name *np, **t;\n   int port, cnt;\n   struct passwd *pw;\n   char *p, *q, *ps, line[4096];\n   static char delim[] = \" \\n\";\n\n   if (!(fp = fopen(Config, \"r\")))     // Lines ordered by\n      giveup(\"Can't open name file\");  // bin/balance -sort\n   port = 8080;\n   while (p = fgets(line, 4096, fp)) {\n      while (*p == ' ')\n         ++p;\n      if (*p  &&  *p != '\\n'  &&  *p != '#') {\n         np = malloc(sizeof(name));\n         np->less = np->more = NULL;\n         p = strtok(p, delim);\n         np->ins = NULL;\n         if (q = strchr(p, '/')) {\n            *q++ = '\\0';\n            np->ins = strdup(q);\n         }\n         np->key = strdup(p);\n         if ((np->port = atoi(ps = strtok(NULL, delim))) == 0)\n            np->dir = strdup(strtok(NULL, delim));\n         else {\n            if (!(pw = getpwnam(strtok(NULL, delim))) || pw->pw_uid == 0 || pw->pw_gid == 0) {\n               free(np->key);\n               free(np);\n               continue;\n            }\n            np->uid = pw->pw_uid;\n            np->gid = pw->pw_gid;\n            p = np->ev[0] = malloc(5 + strlen(np->key) + 1);\n            strcpy(p, \"NAME=\"), strcpy(p+5, np->key);\n            p = np->ev[1] = malloc(5 + strlen(pw->pw_dir) + 1);\n            strcpy(p, \"HOME=\"), strcpy(p+5, pw->pw_dir);\n            p = np->ev[2] = malloc(5 + strlen(ps) + 1);\n            strcpy(p, \"PORT=\"), strcpy(p+5, ps);\n            p = np->ev[3] = malloc(5 + strlen(q = getenv(\"LANG\")) + 1);\n            strcpy(p, \"LANG=\"), strcpy(p+5, q);\n            np->ev[4] = NULL;\n            np->dir = strdup(strtok(NULL, delim));\n            np->log = *(p = strtok(NULL, delim)) == '^'? NULL : strdup(p);\n            cnt = 0;\n            while (p = strtok(NULL, delim)) {\n               if (*p == '^')\n                  np->av[cnt] = strdup(\"\");\n               else {\n                  p = np->av[cnt] = strdup(p);\n                  while (p = strchr(p, '^'))\n                     *p++ = ' ';\n               }\n               np = realloc(np, sizeof(name) + ++cnt * sizeof(char*));\n            }\n            np->av[cnt] = NULL;\n         }\n         p = np->key;\n         if (!Names  ||  p[0] == '@' && p[1] == '\\0')\n            port = np->port;\n         for (t = &Names;  *t;  t = strcasecmp(p, (*t)->key) >= 0? &(*t)->more : &(*t)->less);\n         *t = np;\n      }\n   }\n   fclose(fp);\n   return port;\n}\n\nstatic void freeNames(name *np) {\n   int i;\n\n   free(np->key);\n   if (np->less)\n      freeNames(np->less);\n   if (np->more)\n      freeNames(np->more);\n   free(np->dir);\n   if (np->port) {\n      free(np->log);\n      for (i = 0; i < 4; ++i)\n         free(np->ev[i]);\n      for (i = 0; np->av[i]; ++i)\n         free(np->av[i]);\n   }\n   free(np);\n}\n\nstatic name *findName(char *p, char *q) {\n   name *np;\n   int n, c;\n\n   if (p == q) {\n      if (Names && !Names->more && !Names->less)\n         return Names;\n      p = \"@\";\n   }\n   c = *q,  *q = '\\0';\n   for (np = Names;  np;  np = n > 0? np->more : np->less)\n      if ((n = strcasecmp(p, np->key)) == 0) {\n         *q = c;\n         return np;\n      }\n   *q = c;\n   return NULL;\n}\n\nstatic int slow(SSL *ssl, int fd, char *p, int cnt) {\n   int n;\n\n   while ((n = ssl? SSL_read(ssl, p, cnt) : read(fd, p, cnt)) < 0)\n      if (errno != EINTR)\n         return 0;\n   return n;\n}\n\nstatic int rdLine(SSL *ssl, int fd, char *p, int cnt) {\n   int n, len;\n\n   for (len = 0;;) {\n      if ((n = ssl? SSL_read(ssl, p, cnt) : read(fd, p, cnt)) <= 0) {\n         if (!n || errno != EINTR)\n            return 0;\n      }\n      else {\n         len += n;\n         if (memchr(p, '\\n', n))\n            return len;\n         p += n;\n         if ((cnt -= n) == 0)\n            return 0;\n      }\n   }\n}\n\nstatic void wrBytes(int fd, char *p, int cnt) {\n   int n;\n\n   do\n      if ((n = write(fd, p, cnt)) >= 0)\n         p += n, cnt -= n;\n      else if (errno != EINTR)\n         exit(1);\n   while (cnt);\n}\n\nstatic void sslWrite(SSL *ssl, void *p, int cnt) {\n   if (SSL_write(ssl, p, cnt) <= 0)\n      exit(1);\n}\n\nstatic bool setDH(SSL_CTX *ctx) {\n   EC_KEY *ecdh;\n\n   if (!(ecdh = EC_KEY_new_by_curve_name(NID_X9_62_prime256v1)))\n      return NO;\n   if (!SSL_CTX_set_tmp_ecdh(ctx, ecdh))\n      return NO;\n   EC_KEY_free(ecdh);\n   SSL_CTX_set_cipher_list(ctx, Ciphers);\n   return YES;\n}\n\nstatic int gatePort(unsigned short port) {\n   int sd, n;\n   struct sockaddr_in6 addr;\n\n   if ((sd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)\n      exit(1);\n   n = 0;\n#ifndef __OpenBSD__\n   if (setsockopt(sd, IPPROTO_IPV6, IPV6_V6ONLY, &n, sizeof(n)) < 0)\n      exit(1);\n#endif\n   memset(&addr, 0, sizeof(addr));\n   addr.sin6_family = AF_INET6;\n   addr.sin6_addr = in6addr_any;\n   n = 1;\n   if (setsockopt(sd, SOL_SOCKET, SO_REUSEADDR, &n, sizeof(n)) < 0)\n      exit(1);\n   addr.sin6_port = htons(port);\n   if (bind(sd, (struct sockaddr*)&addr, sizeof(addr)) < 0)\n      exit(1);\n   if (listen(sd,5) < 0)\n      exit(1);\n   return sd;\n}\n\nstatic int gateConnect(int port, name *np) {\n   int sd;\n   struct sockaddr_in6 addr;\n\n   if ((sd = socket(AF_INET6, SOCK_STREAM, 0)) < 0)\n      exit(1);\n   memset(&addr, 0, sizeof(addr));\n   addr.sin6_family = AF_INET6;\n   addr.sin6_addr = in6addr_loopback;\n   addr.sin6_port = htons((unsigned short)port);\n   if (connect(sd, (struct sockaddr*)&addr, sizeof(addr)) >= 0)\n      return sd;\n   if (np) {\n      int fd;\n      pid_t pid;\n\n      if (np->log) {\n         struct flock fl;\n         char log[strlen(np->dir) + 1 + strlen(np->log) + 1];\n\n         if (np->log[0] == '/')\n            strcat(log, np->log);\n         else\n            sprintf(log, \"%s/%s\", np->dir, np->log);\n         if ((fd = open(log, O_RDWR)) >= 0) {\n            fl.l_type = F_WRLCK;\n            fl.l_whence = SEEK_SET;\n            fl.l_start = 0;\n            fl.l_len = 0;\n            if (fcntl(fd, F_SETLK, &fl) < 0) {\n               if (errno != EACCES  &&  errno != EAGAIN  ||\n                           fcntl(fd, F_SETLKW, &fl) < 0  ||\n                           connect(sd, (struct sockaddr*)&addr, sizeof(addr)) < 0)\n                  return -1;\n               close(fd);\n               return sd;\n            }\n         }\n      }\n      if ((pid = fork()) == 0) {\n         if (setgid(np->gid) == 0 && setuid(np->uid) == 0 && chdir(np->dir) == 0) {\n            setpgid(0,0);\n            if (np->log)\n               freopen(np->log, \"a\", stdout);\n            dup2(STDOUT_FILENO, STDERR_FILENO);\n            execve(np->av[0], np->av, np->ev);\n            exit(1);\n         }\n      }\n      if (pid > 0) {\n         setpgid(pid,0);\n         int i = 200;\n         do {\n            usleep(100000);  // 100 ms\n            if (connect(sd, (struct sockaddr*)&addr, sizeof(addr)) >= 0) {\n               if (np->log  &&  fd >= 0)\n                  close(fd);\n               return sd;\n            }\n         } while (--i);\n      }\n   }\n   return -1;\n}\n\n\nstatic pid_t Buddy;\n\nstatic void doSigAlarm(int n __attribute__((unused))) {\n   kill(Buddy, SIGTERM);\n   shutdown(CliSock, SHUT_RDWR);\n   shutdown(SrvSock, SHUT_RDWR);\n   exit(0);\n}\n\nstatic void doSigUsr1(int n __attribute__((unused))) {\n   alarm(420);\n}\n\nstatic void doSigHup(int n __attribute__((unused))) {\n   Hup = YES;\n}\n\nstatic void iSignal(int n, void (*foo)(int)) {\n   struct sigaction act;\n\n   act.sa_handler = foo;\n   sigemptyset(&act.sa_mask);\n   act.sa_flags = 0;\n   sigaction(n, &act, NULL);\n}\n\nint main(int ac, char *av[]) {\n   int cnt = ac>5? ac-4 : 1, ports[cnt];\n   int lsn = ac>4? atoi(av[4]) : 1;\n   int sd, n;\n   struct sockaddr_in6 addr;\n   char s[INET6_ADDRSTRLEN];\n   char *p, *q, *gate;\n   SSL_CTX *ctx;\n   SSL *ssl;\n\n   if (ac < 3)\n      giveup(\"port dflt [pem [lsn [deny ..]]]\");\n   sd = gatePort(atoi(av[1]));  // e.g. 80 or 443\n   ports[0] = (int)strtol(p = av[2], &q, 10);  // e.g. 8080\n   if (q == p  ||  *q != '\\0')\n      Config = p,  ports[0] = readNames();\n   if (ac == 3 || *av[3] == '\\0')\n      ssl = NULL,  gate = \"X-Pil: *Gate=http\\r\\nX-Pil: *Adr=%s\\r\\n\";\n   else {\n      SSL_library_init();\n      SSL_load_error_strings();\n      if (p = strchr(av[3], ','))\n         *p++ = '\\0';\n      else\n         p = av[3];\n      if (!(ctx = SSL_CTX_new(SSLv23_server_method())) ||\n         !SSL_CTX_use_PrivateKey_file(ctx, av[3], SSL_FILETYPE_PEM) ||\n            !SSL_CTX_use_certificate_chain_file(ctx, p) ||\n               !SSL_CTX_check_private_key(ctx) || !setDH(ctx) ) {\n         ERR_print_errors_fp(stderr);\n         giveup(\"SSL init\");\n      }\n      SSL_CTX_set_options(ctx,\n         SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 | SSL_OP_NO_TLSv1_1 |\n         SSL_OP_ALL | SSL_OP_CIPHER_SERVER_PREFERENCE | SSL_OP_NO_COMPRESSION );\n      ssl = SSL_new(ctx),  gate = \"X-Pil: *Gate=https\\r\\nX-Pil: *Adr=%s\\r\\n\";\n   }\n   for (n = 1; n < cnt; ++n)\n      ports[n] = atoi(av[n+4]);\n   signal(SIGCHLD, SIG_IGN);  /* Prevent zombies */\n   for (n = lsn;;) {\n      pid_t pid;\n\n      if ((pid = fork()) < 0)\n         giveup(\"detach\");\n      if (pid == 0)\n         break;\n      if (--n == 0)\n         return 0;\n   }\n   setsid();\n   if (Config)\n      iSignal(SIGHUP, doSigHup);\n   else\n      signal(SIGHUP, SIG_IGN);\n   for (;;) {\n      if (Hup) {\n         Hup = NO;\n         freeNames(Names);\n         Names = NULL;\n         ports[0] = readNames();\n      }\n      socklen_t len = sizeof(addr);\n      if ((CliSock = accept(sd, (struct sockaddr*)&addr, &len)) >= 0) {\n         if (fork() == 0) {\n            name *np;\n            int fd, port, i;\n            char buf[4096], buf2[64];\n\n            close(sd);\n\n            alarm(420);\n            if (ssl) {\n               SSL_set_fd(ssl, CliSock);\n               if (SSL_accept(ssl) < 0)\n                  return 1;\n            }\n            n = rdLine(ssl, CliSock, buf, sizeof(buf));\n            alarm(0);\n            if (n < 6)\n               return 1;\n\n            /* \"GET /url HTTP/1.x\"\n             * \"GET /8080/url HTTP/1.x\"\n             * \"POST /url HTTP/1.x\"\n             * \"POST /8080/url HTTP/1.x\"\n             */\n            if ((p = strchr(buf, ' ')) && *++p == '/')\n               ++p;\n            else\n               return 1;\n\n            np = NULL;\n            port = (int)strtol(p, &q, 10);\n            if (q == p  ||  *q != ' ' && *q != '/' && *q != '?') {\n               if ((q = strpbrk(p, \" /?\")) && (np = findName(p, q)))\n                  port = np->port;\n               else\n                  q = p,  port = (np = findName(p, q))? np->port : ports[0];  // \"@\"?\n            }\n            else if (port < 1024) {\n               if (np = findName(p, q))\n                  port = np->port;\n               else\n                  return 1;\n            }\n            else\n               for (i = 1; i < cnt; ++i)\n                  if (port == ports[i])\n                     return 1;\n\n            if (np && port == 0) {\n               i = sprintf(buf, Head_302, np->dir);\n               if (ssl)\n                  sslWrite(ssl, buf, i);\n               else\n                  wrBytes(CliSock, buf, i);\n               return 0;\n            }\n            if ((SrvSock = gateConnect(port, np)) < 0) {\n               if (!memchr(q,'~', buf + n - q))\n                  return 1;\n               if ((fd = open(\"void\", O_RDONLY)) < 0)\n                  return 1;\n               alarm(420);\n               if (ssl)\n                  sslWrite(ssl, Head_410, strlen(Head_410));\n               else\n                  wrBytes(CliSock, Head_410, strlen(Head_410));\n               alarm(0);\n               while ((n = read(fd, buf, sizeof(buf))) > 0) {\n                  alarm(420);\n                  if (ssl)\n                     sslWrite(ssl, buf, n);\n                  else\n                     wrBytes(CliSock, buf, n);\n                  alarm(0);\n               }\n               return 0;\n            }\n\n            wrBytes(SrvSock, buf, p - buf);\n            if (np  &&  (p = np->ins))\n               wrBytes(SrvSock, p, strlen(p));\n            else if (*q == '/')\n               ++q;\n            p = q;\n            while (*p++ != '\\n')\n               if (p >= buf + n)\n                  return 1;\n            wrBytes(SrvSock, q, p - q);\n            inet_ntop(AF_INET6, &addr.sin6_addr, s, INET6_ADDRSTRLEN);\n            wrBytes(SrvSock, buf2, sprintf(buf2, gate, s));\n            if (ssl)\n               wrBytes(SrvSock, buf2, sprintf(buf2, \"X-Pil: *Cipher=%s\\r\\n\", SSL_get_cipher(ssl)));\n            wrBytes(SrvSock, p, buf + n - p);\n\n            iSignal(SIGALRM, doSigAlarm);\n            iSignal(SIGUSR1, doSigUsr1);\n            if (Buddy = fork()) {\n               for (;;) {\n                  alarm(420);\n                  n = slow(ssl, CliSock, buf, sizeof(buf));\n                  alarm(0);\n                  if (!n)\n                     break;\n                  wrBytes(SrvSock, buf, n);\n               }\n               shutdown(CliSock, SHUT_RD);\n               shutdown(SrvSock, SHUT_WR);\n            }\n            else {\n               Buddy = getppid();\n               while ((n = read(SrvSock, buf, sizeof(buf))) > 0) {\n                  kill(Buddy, SIGUSR1);\n                  alarm(420);\n                  if (ssl)\n                     sslWrite(ssl, buf, n);\n                  else\n                     wrBytes(CliSock, buf, n);\n                  alarm(0);\n               }\n               shutdown(SrvSock, SHUT_RD);\n               shutdown(CliSock, SHUT_WR);\n            }\n            return 0;\n         }\n         close(CliSock);\n      }\n   }\n}\n"
  },
  {
    "path": "src/io.l",
    "content": "# 17mar26 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (openErr closeErr pipeErr sizeErr eofErr badInput badFd writeErr\nselectErr)\n\n(de NIL openErr (Exe X)\n   (err Exe X ($ \"Open error: %s\") (strErrno)) )\n\n(de NIL closeErr ()\n   (err 0 0 ($ \"Close error: %s\") (strErrno)) )\n\n(de NIL pipeErr (Exe)\n   (err Exe 0 ($ \"Pipe error: %s\") (strErrno)) )\n\n(de NIL sizeErr (Exe)\n   (err Exe 0 ($ \"Size overflow\") null) )\n\n(de NIL eofErr ()\n   (err 0 0 ($ \"EOF Overrun\") null) )\n\n(de NIL badInput ()\n   (let S (b8 2)\n      (set S (i8 (val $Chr)))\n      (set 2 S 0)\n      (err 0 0 ($ \"Bad input '%s'\") S) ) )\n\n(de NIL badFd (Exe Fd)\n   (err Exe Fd ($ \"Bad FD\") null) )\n\n(de NIL writeErr ((i8* . Fmt))\n   (err 0 0 Fmt (strErrno)) )\n\n(de NIL selectErr (Exe)\n   (err Exe 0 ($ \"Select error: %s\") (strErrno)) )\n\n(local) (closeOnExec rdLockWait wrLockWait)\n\n(de void closeOnExec (Exe (i32 . Fd))\n   (when (lt0 (fcntlCloExec Fd))\n      (err Exe 0 ($ \"SETFD %s\") (strErrno)) ) )\n\n(de void rdLockWait ((i32 . Fd) (i64 . Len))\n   (while (lt0 (rdLock Fd 0 Len YES))\n      (unless (== (gErrno) EINTR)\n         (lockErr) ) ) )\n\n(de void wrLockWait ((i32 . Fd) (i64 . Len))\n   (while (lt0 (wrLock Fd 0 Len YES))\n      (unless (== (gErrno) EINTR)\n         (lockErr) ) ) )\n\n(local) (initInFile initOutFile closeInFile closeOutFile)\n\n(de i8* initInFile ((i32 . Fd) (i8* . Nm))\n   (let I (val $InFDs)\n      (when (>= Fd I)\n         (let P\n            (set $InFiles\n               (i8**\n                  (alloc\n                     (i8* (val $InFiles))\n                     (* 8 (i64 (set $InFDs (+ Fd 1)))) ) ) )\n            (loop\n               (set (ofs P I) null)\n               (? (== I Fd))\n               (inc 'I) ) ) ) )\n   (let In:\n      (inFile\n         (let P (ofs (val $InFiles) Fd)\n            (if (val P)\n               @\n               (set P (alloc null (inFile T))) ) ) )\n      (In: name Nm)\n      (In: tty (n0 (isatty (In: fd Fd))))\n      (In: chr 0)\n      (In: line (In: src 1))\n      (In: ix (In: cnt 0))\n      (In:) ) )\n\n(de i8* initOutFile ((i32 . Fd))\n   (let I (val $OutFDs)\n      (when (>= Fd I)\n         (let P\n            (set $OutFiles\n               (i8**\n                  (alloc\n                     (i8* (val $OutFiles))\n                     (* 8 (i64 (set $OutFDs (+ Fd 1)))) ) ) )\n            (loop\n               (set (ofs P I) null)\n               (? (== I Fd))\n               (inc 'I) ) ) ) )\n   (let Out:\n      (outFile\n         (let P (ofs (val $OutFiles) Fd)\n            (if (val P)\n               @\n               (set P (alloc null (outFile T))) ) ) )\n      (Out: tty (n0 (isatty (Out: fd Fd))))\n      (Out: ix 0)\n      (Out:) ) )\n\n(de void closeInFile ((i32 . Fd))\n   (when (> (val $InFDs) Fd)\n      (let P (ofs (val $InFiles) Fd)\n         (when (val P)\n            (let In: (inFile @)\n               (free (In: name))\n               (In: name null)\n               (In: fd -1) ) ) ) ) )\n\n(de void closeOutFile ((i32 . Fd))\n   (when (> (val $OutFDs) Fd)\n      (let P (ofs (val $OutFiles) Fd)\n         (when (val P)\n            ((outFile @) fd -1) ) ) ) )\n\n(local) (slow slowNb rdBytes rdBytesNb wrBytes clsChild wrChild flush flushAll)\n\n(de i32 slow ((i8* . In))\n   (let In: (inFile In)\n      (In: ix 0)\n      (loop\n         (?\n            (ge0\n               (i32 (read (In: fd) (In: (buf)) BUFSIZ)) )\n            (In: cnt @) )\n         (? (<> (gErrno) EINTR)\n            (In: cnt 0) )\n         (sigChk 0) ) ) )\n\n(de i32 slowNb ((i8* . In))\n   (let In: (inFile In)\n      (loop\n         (let\n            (Flg (nonBlocking (In: fd))\n               N (i32 (read (In: fd) (In: (buf)) BUFSIZ)) )\n            (fcntlSetFl (In: fd) Flg)\n            (? (gt0 N)\n               (In: ix 0)\n               (In: cnt N) )\n            (? (=0 N)\n               (In: ix (In: cnt -1))\n               0 ) )\n         (? (== (gErrno) EAGAIN) -1)\n         (? (<> @ EINTR)\n            (In: ix (In: cnt 0)) )\n         (sigChk 0) ) ) )\n\n(de i1 rdBytes ((i32 . Fd) (i8* . P) (i32 . Cnt))\n   (loop\n      (loop\n         (? (gt0 (i32 (read Fd P (i64 Cnt))))\n            (inc 'P @)\n            (dec 'Cnt @) )\n         (unless (and @ (== (gErrno) EINTR))\n            (ret NO) )\n         (sigChk 0) )\n      (? (=0 Cnt) YES) ) )\n\n(de i64 rdBytesNb ((i32 . Fd) (i8* . P) (i32 . Cnt))\n   (loop\n      (let\n         (Flg (nonBlocking Fd)\n            N (i32 (read Fd P (i64 Cnt))) )\n         (fcntlSetFl Fd Flg)\n         (when (gt0 N)\n            (loop\n               (unless (dec 'Cnt N)\n                  (ret 1) )\n               (inc 'P N)\n               (while\n                  (le0\n                     (setq N (i32 (read Fd P (i64 Cnt)))) )\n                  (unless (and N (== (gErrno) EINTR))\n                     (ret 0) )\n                  (sigChk 0) ) ) )\n         (? (=0 N) 0) )\n      (? (== (gErrno) EAGAIN) -1)\n      (? (<> @ EINTR) 0)\n      (sigChk 0) ) )\n\n(de i1 wrBytes ((i32 . Fd) (i8* . P) (i32 . Cnt))\n   (loop\n      (? (lt0 Fd) NO)\n      (let N (i32 (write Fd P (i64 Cnt)))\n         (if (lt0 N)\n            (let E (gErrno)\n               (? (== E EBADF) NO)\n               (? (== E EPIPE) NO)\n               (? (== E ECONNRESET) NO)\n               (unless (== E EINTR)\n                  (when (== Fd 2)  # Stderr\n                     (bye 2) )\n                  (writeErr ($ \"bytes write: %s\")) )\n               (sigChk 0) )\n            (? (=0 (dec 'Cnt N)) YES)\n            (inc 'P N) ) ) ) )\n\n(de void clsChild ((i8* . Cld))\n   (let Cld: (child Cld)\n      (when (== (Cld: pid) (val $Talking))\n         (set $Talking 0) )\n      (Cld: pid 0)\n      (close (Cld: hear))\n      (close (Cld: tell))\n      (free (Cld: buf)) ) )\n\n(de void wrChild ((i8* . Cld)  (i8* . P) (i32 . Cnt))\n   (let (Cld: (child Cld)  C (Cld: cnt))\n      (unless C\n         (loop\n            (let N (i32 (write (Cld: tell) P (i64 Cnt)))\n               (if (lt0 N)\n                  (let E (gErrno)\n                     (? (== E EAGAIN))\n                     (when (or (== E EPIPE) (== E ECONNRESET))\n                        (clsChild Cld)\n                        (ret) )\n                     (unless (== E EINTR)\n                        (writeErr ($ \"child write: %s\")) ) )\n                  (unless (dec 'Cnt N)\n                     (ret) )\n                  (inc 'P N) ) ) ) )\n      (let Siz (+ C Cnt 4)  # New buffer size\n         (when (> Siz (hex \"3FFFFFFF\"))  # Allow max 1 GiB\n            (sizeErr 0) )\n         (let Q (ofs (Cld: buf (alloc (Cld: buf) (i64 Siz))) C)\n            (set (i32* Q) Cnt)\n            (memcpy (ofs Q 4) P (i64 Cnt))\n            (Cld: cnt Siz) ) ) ) )\n\n(de i1 flush ((i8* . Out))\n   (ifn Out\n      YES\n      (let Out: (outFile Out)\n         (ifn (Out: ix)\n            YES\n            (Out: ix 0)\n            (wrBytes (Out: fd) (Out: (buf)) @) ) ) ) )\n\n(de void flushAll ()\n   (let (A (val $OutFiles)  N (val $OutFDs)  I (i32 0))\n      (while (> N I)\n         (flush (val (ofs A I)))\n         (inc 'I) ) ) )\n\n(local) (stdinByte getBinary binRead)\n\n(de i32 stdinByte ()\n   (let In: (inFile (val (val $InFiles)))  # Stdin\n      (cond\n         ((and\n               (ge0 (In: fd))\n               (or\n                  (<> (In: ix) (In: cnt))\n                  (and (ge0 @) (slow (In:))) ) )\n            (let I (In: ix)\n               (In: ix (+ I 1))\n               (i32 (val (ofs (In: (buf)) I))) ) )\n         ((In: tty) (bye 0))\n         (T -1) ) ) )\n\n(de i32 getBinary ()\n   (let (In: (inFile (val $InFile))  I (In: ix))\n      (when (== I (In: cnt))\n         (when (or (lt0 I) (=0 (slow (In:))))  # Closed or EOF\n            (ret -1) )\n         (setq I 0) )\n      (In: ix (+ I 1))\n      (i32 (val (ofs (In: (buf)) I))) ) )\n\n# Read binary PLIO expression\n(de binRead ()\n   (case (call $GetBin)\n      (NIX $Nil)  # NIL\n      (BEG\n         (ifn (binRead)\n            0\n            (let (X (cons @ $Nil)  R (save X))\n               (loop\n                  (? (=0 (binRead)) @)\n                  (? (== @ END) R)\n                  (? (== @ -ZERO)  # DOT\n                     (ifn (binRead)\n                        0\n                        (set 2 X (if (== @ END) R @))\n                        R ) )\n                  (setq X (set 2 X (cons @ $Nil))) ) ) ) )\n      (DOT -ZERO)  # DOT -> -ZERO\n      (END (i64 @))  # END\n      (T\n         (if (lt0 @)\n            0  # EOF\n            (let  # Atom\n               (Tag (& @ 3)\n                  Cnt (shr @ 2)\n                  P (i64* (push NIL NIL ZERO NIL))  # [cnt last name link]\n                  Q (link (ofs P 2)) )\n               (cond\n                  ((== Tag NUMBER)\n                     (set P 3)  # 'cnt' for signed number\n                     (when (== Cnt 63)  # More than one chunk\n                        (loop\n                           (loop\n                              (when (lt0 (call $GetBin))\n                                 (: 1\n                                    (drop Q)\n                                    (ret 0) ) )\n                              (byteNum (i8 @) P)\n                              (? (=0 (dec 'Cnt))) )\n                           (when (lt0 (setq Cnt (call $GetBin)))\n                              (goto 1) )\n                           (? (<> Cnt 255)) )\n                        (unless Cnt\n                           (goto 2) ) )\n                     (loop\n                        (when (lt0 (call $GetBin))\n                           (goto 1) )\n                        (byteNum (i8 @) P)\n                        (? (=0 (dec 'Cnt))) )\n                     (: 2\n                        (drop Q\n                           (if (cnt? (val Q))\n                              @\n                              (let S (& (val (dig @)) 1)\n                                 (| (half @) (shl S 3)) ) ) ) ) )\n                  (T  # Symbol\n                     (set P 4)  # 'cnt' for symbol name\n                     (when (== Cnt 63)  # More than one chunk\n                        (loop\n                           (loop\n                              (when (lt0 (call $GetBin))\n                                 (goto 1) )\n                              (byteSym (i8 @) P)\n                              (? (=0 (dec 'Cnt))) )\n                           (when (lt0 (setq Cnt (call $GetBin)))\n                              (goto 1) )\n                           (? (<> Cnt 255)) )\n                        (unless Cnt\n                           (goto 3) ) )\n                     (loop\n                        (when (lt0 (call $GetBin))\n                           (goto 1) )\n                        (byteSym (i8 @) P)\n                        (? (=0 (dec 'Cnt))) )\n                     (: 3\n                        (drop Q\n                           (let Nm (val Q)\n                              (case Tag\n                                 (TRANSIENT (consStr Nm))\n                                 (INTERN (requestSym Nm))\n                                 (T  # External\n                                    (when (val $Extn)\n                                       (let N\n                                          (shl\n                                             (& (i64 (+ (objFile Nm) @)) (hex \"FFFF\"))\n                                             24 )  # Mask overflow\n                                          (setq Nm\n                                             (|\n                                                (& Nm (hex \"FFF00FFF00FFFFFF\"))  # Mask object ID\n                                                (&\n                                                   (| N (shl N 12))\n                                                   (hex \"000FF000FF000000\") ) ) ) ) )  # Mask file number\n                                    (extern Nm) ) ) ) ) ) ) ) ) ) ) ) )\n\n(local) (prCnt binPrint pr putTell prTell tellBeg tellEnd unsync)\n\n# Binary print short number\n(de void prCnt ((i8 . Tag) Num)\n   (let N Num\n      (while (setq N (shr N 8))\n         (inc 'Tag 4) ) )\n   (call $PutBin Tag)\n   (loop\n      (call $PutBin (i8 Num))\n      (? (=0 (setq Num (shr Num 8)))) ) )\n\n# Binary print expression\n(de void binPrint (X)\n   (cond\n      ((cnt? X)\n         (tailcall (prCnt (+ NUMBER 4) (shr X 3))) )\n      ((big? X)\n         (let (Y (pos X)  Z Y  N 8)\n            (loop\n               (let C (val (dig Z))\n                  (? (cnt? (setq Z (val (big Z))))\n                     (setq\n                        Z (int Z)  # Normalize short\n                        C (add C C)  # Get most significant bit of last digit\n                        Z (add Z Z @@) ) )\n                  (inc 'N 8) ) )\n            (when Z  # Significant bits in short number\n               (loop\n                  (inc 'N)\n                  (? (=0 (setq Z (shr Z 8)))) ) )\n            (let (M (- N 63)  D (val (dig Y)))\n               (when (ge0 M)\n                  (setq N 63) )\n               (setq Y (val (big Y)))\n               (setq X (shr X X 4))  # Sign into highest bit\n               (add X X)  # Keep in carry\n               (setq D (add D D @@))\n               (call $PutBin (i8 (shl N 2)))  # Output tag byte\n               (let (S @@  C 8)\n                  (loop\n                     (loop\n                        (call $PutBin (i8 D))  # Output next byte\n                        (if (dec 'C)\n                           (setq D (shr D 8))\n                           (setq C 8)\n                           (if (cnt? Y)\n                              (setq D (int Y))\n                              (setq\n                                 D (val (dig Y))\n                                 Y (val (big Y)) ) )\n                           (setq\n                              D (add D D S)\n                              S @@ ) )\n                        (? (=0 (dec 'N))) )\n                     (? (lt0 M))\n                     (? (=0 M) (call $PutBin 0))  # Output final zero\n                     (when (ge0 (setq M (- (setq N M) 255)))\n                        (setq N 255) )\n                     (call $PutBin (i8 N)) ) ) ) ) )  # Output next chunk size\n      ((nil? X) (call $PutBin NIX))\n      ((pair X)\n         (call $PutBin BEG)\n         (let (P (circ X)  Z X)\n            (loop\n               (binPrint (car X))\n               (? (nil? (shift X))\n                  (call $PutBin END) )\n               (? (atom X)\n                  (call $PutBin DOT)\n                  (binPrint X) )\n               (? (== Z X)\n                  (call $PutBin DOT)\n                  (call $PutBin END) )\n               (when (== P X)\n                  (call $PutBin DOT)\n                  (call $PutBin BEG)\n                  (setq Z P) ) ) ) )\n      ((sym? (val (tail X)))  # External symbol\n         (let Nm (name (& @ -9))\n            (when (val $Extn)\n               (let N\n                  (shl\n                     (& (i64 (- (objFile Nm) @)) (hex \"FFFF\"))\n                     24 )  # Mask overflow\n                  (setq Nm\n                     (|\n                        (& Nm (hex \"FFF00FFF00FFFFFF\"))  # Mask object ID\n                        (&\n                           (| N (shl N 12))\n                           (hex \"000FF000FF000000\") ) ) ) ) )  # Mask file number\n            (tailcall\n               (prCnt (+ EXTERN 4) (shr (shl Nm 2) 6)) ) ) )  # Strip status bits\n      ((== (name @) ZERO) (call $PutBin NIX))\n      (T\n         (let\n            (Nm @\n               Tag\n               (if (findSym X Nm (val $Intern))\n                  (i8 INTERN)\n                  (i8 TRANSIENT) ) )\n            (if (cnt? Nm)\n               (prCnt (+ Tag 4) (int Nm))\n               (let (Y Nm  N 8)\n                  (while (big? (setq Y (val (big Y))))\n                     (inc 'N 8) )\n                  (setq Y (int Y))\n                  (while Y\n                     (inc 'N)\n                     (setq Y (shr Y 8)) )\n                  (let (P (push 0 Nm)  M (- N 63)  C 8)  # [cnt name]\n                     (when (ge0 M)\n                        (setq N 63) )\n                     (call $PutBin (+ Tag (i8 (shl N 2))))\n                     (loop\n                        (loop\n                           (call $PutBin (symByte P))\n                           (? (=0 (dec 'N))) )\n                        (? (lt0 M))\n                        (? (=0 M) (call $PutBin 0))\n                        (when (ge0 (setq M (- (setq N M) 255)))\n                           (setq N 255) )\n                        (call $PutBin (i8 N)) ) ) ) ) ) ) ) )\n\n(de void pr (X)\n   (set $PutBin (fun (void i8) _putStdout))\n   (tailcall (binPrint X)) )\n\n(de void putTell ((i8 . B))\n   (let P (val $Ptr)\n      (set P B)\n      (when (== (set $Ptr (inc P)) (val $End))\n         (err 0 0 ($ \"Tell PIPE_BUF\") null) ) ) )\n\n(de void prTell (X)\n   (set\n      $PutBin (fun (void i8) putTell)\n      $Extn 0 )\n   (tailcall (binPrint X)) )\n\n(de void tellBeg ((i8* . P))\n   (set\n      $TellBuf P\n      $End (ofs P (dec (val PipeBufSize)))\n      (inc 'P 8) BEG  # 8 bytes space (PID and count)\n      $Ptr (inc P) ) )  # Begin a list\n\n(de void tellEnd ((i32 . Pid))\n   (let (P (val $Ptr)  Q (val $TellBuf))\n      (set P END)  # Close list\n      (inc 'P)\n      (let (D (i32 (- P Q))  N (- D 8))  # Size without PID and count\n         (set\n            (i32* Q) Pid\n            (inc (i32* Q)) N )\n         (when (val $Tell)\n            (let Fd @\n               (unless (wrBytes Fd Q D)\n                  (close Fd)\n                  (set $Tell 0) ) ) )\n         (let\n            (Cld (val $Child)  # Iterate children\n               <Cld (ofs Cld (* (val $Children) (child T))) )\n            (inc 'Q 8)\n            (until (== Cld <Cld)\n               (let Cld: (child Cld)\n                  (when\n                     (and\n                        (Cld: pid)\n                        (or (lt0 Pid) (== Pid (Cld: pid))) )\n                     (wrChild Cld Q N) ) )\n               (setq Cld (ofs Cld (child T))) ) ) ) ) )\n\n(de void unsync ()\n   (when (val $Tell)\n      (let Fd @\n         (unless (wrBytes Fd (i8* (push -1)) 8)\n            (close Fd)\n            (set $Tell 0) ) ) )\n   (set $Sync NO) )\n\n(local) (waitFile currFd)\n\n# Wait for pipe process if necessary\n(de void waitFile ((i32 . Pid))\n   (let Res (b32 1)\n      (while (lt0 (waitpid Pid Res 0))\n         (unless (== (gErrno) EINTR)\n            (closeErr) )\n         (sigChk 0) )\n      (set $At2 (cnt (i64 (val Res)))) ) )\n\n(de i32 currFd (Exe)\n   (let (In: (ioFrame (val $InFrames))  Out: (ioFrame (val $OutFrames)))\n      (nond\n         ((or (In: file) (Out: file))\n            (err Exe 0 ($ \"No current fd\") null) )\n         ((Out: file) ((inFile (In: file)) fd))\n         ((In: file) ((outFile (Out: file)) fd))\n         (NIL\n            (if\n               (if (> (In:) (stack))  # Assume stack is growing downwards\n                  (> (Out:) (In:))\n                  (> (In:) (Out:)) )\n               ((inFile (In: file)) fd)\n               ((outFile (Out: file)) fd) ) ) ) ) )\n\n(local) (getIn put1 putOut)\n\n(de i32 getIn ()\n   (set $Chr\n      (cond\n         ((val $InChar)\n            (set $InChar (shr @ 8))\n            (i32 (i8 @)) )\n         ((nil?\n               (let (Iox: (ioxFrame (val $InFrames))  At (save (val $At)))\n                  (prog2\n                     (set\n                        $Chr (Iox: chr)\n                        (i8** $Get) (Iox: fun)\n                        $InFrames (Iox: link) )\n                     (eval (Iox: exe))\n                     (set\n                        $InFrames (Iox:)\n                        $Get (fun (i32) getIn)\n                        $At At )\n                     (Iox: chr (val $Chr)) ) ) )\n            -1 )\n         ((sym? @)\n            (let (S @  V (val (tail @)))\n               (if\n                  (or\n                     (sym? V)\n                     (not (cnt? (setq V (name V)))) )\n                  (charErr 0 S)\n                  (let C (int V)\n                     (set $InChar (shr C 8))\n                     (i32 (i8 C)) ) ) ) )\n         (T (symErr 0 @)) ) ) )\n\n(de void put1 ((i8* . Iox) (i32 . C) (i32 . D))\n   (let\n      (Iox: (ioxFrame Iox)\n         At (save (val $At))\n         At2 (save (val $At2))\n         At3 (save (val $At3)) )\n      (set\n         (i8** $Put) (Iox: fun)\n         $OutFrames (Iox: link)\n         $At2 (consStr (cnt (i64 C)))\n         $At3 (if D (consStr (cnt (i64 @))) $Nil) )\n      (eval (Iox: exe))\n      (set\n         $OutFrames (Iox:)\n         $Put (fun (void i8) putOut)\n         $At3 At3\n         $At2 At2\n         $At At ) ) )\n\n(de void putOut ((i8 . B))\n   (nond\n      ((& B (hex \"80\"))  # Single byte\n         (set $OutChar (i64 B)) )\n      ((& B (hex \"40\"))  # Following byte\n         (set $OutChar\n            (|\n               (val $OutChar)\n               (shl\n                  (i64 B)\n                  (set $IoIx (+ (val $IoIx) 8)) ) ) )\n         (when (set $IoCnt (dec (val $IoCnt)))\n            (ret) ) )\n      ((& B (hex \"20\"))\n         (set $IoCnt 1  $IoIx 0  $OutChar (i64 B))\n         (ret) )\n      ((& B (hex \"10\"))\n         (set $IoCnt 2  $IoIx 0  $OutChar (i64 B))\n         (ret) )\n      (NIL\n         (set $IoCnt 3  $IoIx 0  $OutChar (i64 B))\n         (ret) ) )\n   (let (Iox: (ioxFrame (val $OutFrames))  C (i32 (val $OutChar)))\n      (when (Iox: chr)\n         (put1 (Iox:) @ C) )\n      (Iox: chr C) ) )\n\n(local) (pushInFile pushOutFile pushErrFile pushCtlFile)\n\n(de void pushInFile ((i8* . Io) (i8* . In) (i32 . Pid))\n   (let Io: (ioFrame Io)\n      (Io: link (val $InFrames))\n      (when (val $InFile)\n         ((inFile @) chr (val $Chr)) )\n      (set $Chr\n         ((inFile (Io: file (set $InFile In))) chr) )\n      (Io: fun (val (i8** $Get)))\n      (Io: pid Pid)\n      (set $InFrames (Io:)  $Get (fun (i32) _getStdin)) ) )\n\n(de void pushOutFile ((i8* . Io) (i8* . Out) (i32 . Pid))\n   (let Io: (ioFrame Io)\n      (Io: link (val $OutFrames))\n      (Io: file (set $OutFile Out))\n      (Io: fun (val (i8** $Put)))\n      (Io: pid Pid)\n      (set $OutFrames (Io:)  $Put (fun (void i8) _putStdout)) ) )\n\n(de void pushErrFile ((i8* . Ct))\n   ((ctFrame Ct) link (val $ErrFrames))\n   (set $ErrFrames Ct) )\n\n(de void pushCtlFile ((i8* . Ct))\n   ((ctFrame Ct) link (val $CtlFrames))\n   (set $CtlFrames Ct) )\n\n(local) (popInFiles popOutFiles popErrFiles popCtlFiles)\n\n(de void popInFiles ()\n   (let Io: (ioFrame (val $InFrames))\n      (when (Io: file)\n         (let In: (inFile @)\n            (when (ge0 (In: fd))\n               (ifn (Io: pid)\n                  (In: chr (val $Chr))\n                  (close (In: fd))\n                  (closeInFile (In: fd))\n                  (when (> (Io: pid) 1)\n                     (waitFile @) ) ) ) ) )\n      (set (i8** $Get) (Io: fun))\n      (setq Io: (ioFrame (set $InFrames (Io: link))))\n      (set $Chr\n         (if (Io: file)\n            ((inFile (set $InFile @)) chr)\n            ((ioxFrame (Io:)) chr) ) ) ) )\n\n(de void popOutFiles ()\n   (let Io: (ioFrame (val $OutFrames))\n      (cond\n         ((Io: file)\n            (let Out: (outFile @)\n               (flush (val $OutFile))\n               (when (ge0 (Out: fd))\n                  (when (Io: pid)\n                     (close (Out: fd))\n                     (closeOutFile (Out: fd))\n                     (when (> (Io: pid) 1)\n                        (waitFile @) ) ) ) ) )\n         (((ioxFrame (Io:)) chr)\n            (put1 (Io:) @ 0) ) )\n      (set (i8** $Put) (Io: fun))\n      (setq Io: (ioFrame (set $OutFrames (Io: link))))\n      (when (Io: file)\n         (set $OutFile @) ) ) )\n\n(de void popErrFiles ()\n   (let Ct: (ctFrame (val $ErrFrames))\n      (dup2 (Ct: fd) 2)  # Restore stderr\n      (close (Ct: fd))\n      (set $ErrFrames (Ct: link)) ) )\n\n(de void popCtlFiles ()\n   (let Ct: (ctFrame (val $CtlFrames))\n      (if (ge0 (Ct: fd))\n         (close @)\n         (unLock (currFd 0) 0 0) )\n      (set $CtlFrames (Ct: link)) ) )\n\n# (path 'any) -> sym\n(de _Path (Exe)\n   (let Nm (xName (evSym (cdr Exe)))\n      (mkStr (pathString Nm (b8 (pathSize Nm)))) ) )\n\n(local) (pollfd hasData inReady getBlk waitFd)\n\n(de i64* pollfd ((i32 . Fd))\n   (let I (val $Nfds)\n      (when (>= Fd I)\n         (let P\n            (set $Poll\n               (i64*\n                  (alloc\n                     (i8* (val $Poll))\n                     (* 8 #{pollfd}# (i64 (set $Nfds (+ Fd 1)))) ) ) )\n            (loop\n               (pollIgn (ofs P I))\n               (? (== I Fd))\n               (inc 'I) ) ) ) )\n   (ofs (val $Poll) Fd) )\n\n(de i1 hasData ((i32 . Fd))\n   (and\n      (> (val $InFDs) Fd)\n      (val (ofs (val $InFiles) Fd))\n      (let In: (inFile @)\n         (and\n            (ge0 (In: fd))\n            (> (In: cnt) (In: ix)) ) ) ) )\n\n(de i1 inReady ((i32 . Fd) (i1 . Flg))\n   (let P (pollfd Fd)\n      (cond\n         ((>= Fd (val $InFDs))\n            (readyIn P) )\n         ((=0 (val (ofs (val $InFiles) Fd)))\n            (readyIn P) )\n         (T\n            (let In: (inFile @)\n               (if (lt0 (In: fd))\n                  (readyIn P)\n                  (or\n                     (> (In: cnt) (In: ix))\n                     (and\n                        (readyIn P)\n                        (or Flg (ge0 (slowNb (In:)))) ) ) ) ) ) ) ) )\n(de i32 getBlk ()\n   (let P (val $BlkPtr)\n      (set $BlkPtr (inc P))\n      (i32 (val P)) ) )\n\n(de i64 waitFd (Exe (i32 . Fd) (i64 . Ms))\n   (let\n      (Run (save (val $Run))\n         At (save (val $At))\n         Buf (b8 (val PipeBufSize))\n         Pn (b32 2)\n         Tim (getMsec) )\n      (stkChk Exe)\n      (loop\n         (let Dly Ms\n            (when (ge0 Fd)\n               (if (hasData Fd)\n                  (setq Dly 0)\n                  (pollIn Fd (pollfd Fd)) ) )\n            (let R Run  # '*Run' elements\n               (while (pair R)\n                  (let X (++ R)\n                     (cond\n                        ((sign? (car X))\n                           (let N (int (cadr X))\n                              (when (> Dly N)\n                                 (setq Dly N) ) ) )\n                        ((<> (i32 (int @)) Fd)\n                           (let N @\n                              (if (hasData N)\n                                 (setq Dly 0)\n                                 (pollIn N (pollfd N)) ) ) ) ) ) ) )\n            (when (and (val $Hear) (<> @ Fd))  # RPC listener\n               (let N @\n                  (if (hasData N)\n                     (setq Dly 0)\n                     (pollIn N (pollfd N)) ) ) )\n            (when (val $Spkr)  # RPC speaker\n               (pollIn @ (pollfd @))\n               (let\n                  (Cld (val $Child)  # Iterate children\n                     <Cld (ofs Cld (* (val $Children) (child T))) )\n                  (until (== Cld <Cld)\n                     (let Cld: (child Cld)\n                        (when (Cld: pid)\n                           (pollIn (Cld: hear) (pollfd (Cld: hear)))\n                           (when (Cld: cnt)\n                              (pollOut (Cld: tell) (pollfd (Cld: tell))) ) ) )\n                     (setq Cld (ofs Cld (child T))) ) ) )\n            (while (lt0 (gPoll (val $Poll) (val $Nfds) Dly))\n               (unless (== (gErrno) EINTR)\n                  (set $Run $Nil)\n                  (selectErr Exe) )\n               (sigChk Exe) ) )\n         (let (Now (getMsec)  Dif (- Now Tim))\n            (when (val $Spkr)  # RPC speaker\n               (set $Protect (inc (val $Protect)))\n               (let\n                  (Cld (val $Child)  # Iterate children\n                     <Cld (ofs Cld (* (val $Children) (child T))) )\n                  (until (== Cld <Cld)\n                     (let Cld: (child Cld)\n                        (when (Cld: pid)\n                           (when (readyIn (pollfd (Cld: hear)))\n                              (cond\n                                 ((=0 (rdBytesNb (Cld: hear) (i8* Pn) (* 2 4)))\n                                    (clsChild Cld)\n                                    (goto 1) )\n                                 ((gt0 @)\n                                    (cond\n                                       ((lt0 (val (i64* Pn)))  # PID and size are -1\n                                          (when (== (Cld: pid) (val $Talking))\n                                             (set $Talking 0) ) )\n                                       ((> (val 2 Pn) (val PipeBufSize))\n                                          (sizeErr Exe) )\n                                       ((rdBytes (Cld: hear) Buf @)\n                                          (ifn (=0 (val Pn))\n                                             (let\n                                                (Cld2 (val $Child)  # Iterate children\n                                                   <Cld2 (ofs Cld2 (* (val $Children) (child T))) )\n                                                (until (== Cld2 <Cld2)\n                                                   (let Cld2: (child Cld2)\n                                                      (when\n                                                         (and\n                                                            (<> Cld Cld2)\n                                                            (Cld2: pid)\n                                                            (or (lt0 (val Pn)) (== @ (Cld2: pid))) )\n                                                         (wrChild Cld2 Buf (val 2 Pn)) ) )\n                                                   (setq Cld2 (ofs Cld2 (child T))) ) )\n                                             (set\n                                                $BlkPtr Buf\n                                                $GetBin (fun (i32) getBlk)\n                                                $Extn 0 )\n                                             (let E (binRead)\n                                                (save E (evList E)) ) ) )\n                                       (T\n                                          (clsChild Cld)\n                                          (goto 1) ) ) ) ) )\n                           (when (readyOut (pollfd (Cld: tell)))\n                              (let\n                                 (P (ofs (Cld: buf) (Cld: ofs))  # Buffer pointer plus offset\n                                    N (val (i32* P)) )  # Size\n                                 (ifn (wrBytes (Cld: tell) (ofs P 4) N)\n                                    (clsChild Cld)\n                                    (setq N (Cld: ofs (+ (Cld: ofs) N 4)))  # Add size plus size of size to buffer offset\n                                    (when (>= (* 2 N) (Cld: cnt))\n                                       (when (Cld: cnt (- (Cld: cnt) N))\n                                          (memcpy\n                                             (Cld: buf)\n                                             (ofs (Cld: buf) N)\n                                             (i64 (Cld: cnt)) )\n                                          (Cld: buf (alloc (Cld: buf) (i64 (Cld: cnt)))) )\n                                       (Cld: ofs 0) ) ) ) ) ) )\n                     (: 1\n                        (setq Cld (ofs Cld (child T))) ) ) )\n               (when\n                  (and\n                     (=0 (val $Talking))\n                     (readyIn (pollfd (val $Spkr)))\n                     (gt0 (rdBytesNb (val $Spkr) (i8* Pn) 4)) )  # Slot\n                  (let Cld (ofs (val $Child) (* (val Pn) (child T)))\n                     (when ((child Cld) pid)\n                        (set $Talking @)\n                        (wrChild Cld $TBuf 2) ) ) )\n               (set $Protect (dec (val $Protect))) )\n            (let N (val $Hear)  # RPC listener\n               (when (and N (<> N Fd) (inReady N NO))\n                  (let In (val $InFile)\n                     (set\n                        $InFile (val (ofs (val $InFiles) (val $Hear)))\n                        $GetBin (fun (i32) getBinary)\n                        $Extn 0 )\n                     (let E (binRead)\n                        (cond\n                           ((=0 E)\n                              (close N)\n                              (closeInFile N)\n                              (closeOutFile N)\n                              (set $Hear 0) )\n                           ((t? E) (set $Sync YES))\n                           (T (save E (evList E))) ) )\n                     (set $InFile In) ) ) )\n            (let R Run\n               (while (pair R)\n                  (let X (++ R)\n                     (cond\n                        ((sign? (car X))\n                           (let Y (cdr X)\n                              (if (gt0 (- (int (car Y)) Dif))  # Not yet timed out\n                                 (set Y (sign (cnt @)))   # Store short negative number\n                                 (let V (car X)  # Timeout value\n                                    (set Y (pos V)  $At V)\n                                    (exec (cdr Y)) ) ) ) )  # Run body\n                        ((<> (i32 (int @)) Fd)\n                           (when (inReady @ NO)\n                              (set $At (car X))  # File descriptor\n                              (exec (cdr X)) ) ) ) ) ) )  # Run body\n            (and\n               (gt0 Ms)\n               (<> Ms 292MY)\n               (lt0 (dec 'Ms Dif))\n               (setq Ms 0) )\n            (setq Tim Now) )\n         (sigChk Exe)\n         (? (or (=0 Ms) (lt0 Fd) (inReady Fd YES)))\n         (setq Run (safe (val $Run))) )\n      (set $At At)\n      Ms ) )\n\n# (wait 'cnt|NIL . prg) -> any\n# (wait 'cnt|NIL T 'fd) -> fd|NIL\n(de _Wait (Exe)\n   (let\n      (X (cdr Exe)\n         N\n         (if (nil? (eval (++ X)))\n            292MY\n            (xCnt Exe @) ) )\n      (if (t? (car X))\n         (let Fd (evCnt Exe (cdr X))  # Wait for file descriptor\n            (if (waitFd Exe (i32 Fd) N)\n               (cnt Fd)\n               $Nil ) )\n         (loop\n            (? (not (nil? (run X))) @)  # 'prg'\n            (? (=0 (waitFd Exe -1 N)) (run X))  # Timeout\n            (setq N @) ) ) ) )\n\n# (sync) -> flg\n(de _Sync (Exe)\n   (cond\n      ((or (=0 (val $Mic)) (=0 (val $Hear)))\n         $Nil )\n      ((val $Sync) $T)\n      (T\n         (let (Mic (val $Mic)  P (i8* $Slot)  Cnt 4)\n            (loop\n               (let N (write Mic P Cnt)\n                  (cond\n                     ((ge0 N)\n                        (? (=0 (dec 'Cnt N)))\n                        (setq P (ofs P N)) )\n                     ((== (gErrno) EINTR) (sigChk Exe))\n                     (T (writeErr ($ \"sync write: %s\"))) ) ) ) )\n         (set $Sync NO)\n         (loop\n            (waitFd Exe -1 292MY)\n            (? (val $Sync)) )\n         $T ) ) )\n\n# (hear 'cnt) -> cnt\n(de _Hear (Exe)\n   (let\n      (X (eval (cadr Exe))\n         Fd (i32 (xCnt Exe X)) )\n      (when\n         (or\n            (lt0 Fd)\n            (>= Fd (val $InFDs))\n            (=0 (val (ofs (val $InFiles) Fd)))\n            (lt0 ((inFile @) fd)) )\n         (badFd Exe X) )\n      (when (val $Hear)\n         (close @)\n         (closeInFile @)\n         (closeOutFile @) )\n      (set $Hear Fd)\n      X ) )\n\n# (tell ['cnt] 'sym ['any ..]) -> any\n(de _Tell (Exe)\n   (cond\n      ((and (=0 (val $Tell)) (=0 (val $Children)))\n         $Nil )\n      ((atom (cdr Exe))\n         (unsync)\n         $Nil )\n      (T\n         (let (X @  Y (eval (car X))  Pid (i32 -1))\n            (when (cnt? Y)\n               (setq\n                  Pid (i32 (int @))\n                  Y (eval (car (shift X))) ) )\n            (let (TellBuf (val $TellBuf)  Ptr (val $Ptr)  End (val $End))\n               (tellBeg (b8 (val PipeBufSize)))\n               (stkChk Exe)\n               (loop\n                  (prTell Y)\n                  (? (atom (shift X)))\n                  (setq Y (eval (car X))) )\n               (tellEnd Pid)\n               (set $TellBuf TellBuf  $Ptr Ptr  $End End)\n               Y ) ) ) ) )\n\n# (poll 'cnt) -> cnt | NIL\n(de _Poll (Exe)\n   (let\n      (C (eval (cadr Exe))\n         Fd (i32 (xCnt Exe C)) )\n      (when (or (lt0 Fd) (>= Fd (val $InFDs)))\n         (badFd Exe C) )\n      (let In: (inFile (val (ofs (val $InFiles) Fd)))\n         (ifn (and (In:) (ge0 (In: fd)))\n            $Nil\n            (let Poll (b64 1)\n               (pollIn Fd Poll)\n               (loop\n                  (? (> (In: cnt) (In: ix)) C)\n                  (while (lt0 (gPoll Poll 1 0))\n                     (unless (== (gErrno) EINTR)\n                        (selectErr Exe) ) )\n                  (? (not (readyIn Poll)) $Nil)\n                  (? (ge0 (slowNb (In:))) C) ) ) ) ) ) )\n\n(local) (rdOpen wrOpen erOpen ctOpen)\n\n(de void rdOpen (Exe X (i8* . Io))\n   (cond\n      ((nil? X)\n         (pushInFile Io (val (val $InFiles)) 0) )  # Stdin\n      ((num? X)\n         (let N (i32 (int X))\n            (pushInFile Io\n               (cond\n                  ((sign? X)\n                     (let In (val $InFrames)\n                        (loop\n                           (unless (setq In ((ioFrame In) link))\n                              (badFd Exe X) )\n                           (? (=0 (dec 'N))) )\n                        ((ioFrame In) file) ) )\n                  ((>= N (val $InFDs))\n                     (badFd Exe X) )\n                  ((=0 (val (ofs (val $InFiles) N)))\n                     (badFd Exe X) )\n                  (T @) )\n               0 ) ) )\n      ((sym? X)\n         (let\n            (Nm (xName X)\n               S (pathString Nm (b8 (pathSize Nm)))\n               Fd T )\n            (while (lt0 (setq Fd (openRd S)))\n               (unless (== (gErrno) EINTR)\n                  (openErr Exe X) )\n               (sigChk Exe) )\n            (closeOnExec Exe Fd)\n            (pushInFile Io (initInFile Fd (strdup S)) 1) ) )\n      (T  # Pipe\n         (let\n            (Pfd (b32 2)\n               Av (b8* (inc (length X)))\n               Cmd (xName (xSym (car X))) )\n            (when (lt0 (pipe Pfd))\n               (pipeErr Exe) )\n            (set Av (pathString Cmd (b8 (pathSize Cmd))))\n            (let A Av\n               (while (pair (shift X))\n                  (let Nm (xName (xSym (car X)))\n                     (set (inc 'A)\n                        (bufString Nm (b8 (bufSize Nm))) ) ) )\n               (set (inc 'A) null) )\n            (cond\n               ((lt0 (fork)) (forkErr Exe))\n               ((=0 @)  # In child\n                  (setpgid 0 0)  # Set process group\n                  (close (val Pfd))  # Close read pipe\n                  (unless (== (val 2 Pfd) 1)\n                     (dup2 @ 1)  # Dup write pipe to STDOUT_FILENO\n                     (close @) )\n                  (signal (val SIGPIPE Sig) (val SigDfl))  # Default SIGPIPE\n                  (execvp (val Av) Av)  # Execute program\n                  (execErr (val Av)) ) )  # Error if failed\n            # In parent\n            (let (Pid @  Fd (val Pfd))\n               (setpgid Pid 0)  # Set process group\n               (close (val 2 Pfd))  # Close write pipe\n               (closeOnExec Exe Fd)\n               (pushInFile Io (initInFile Fd null) Pid) ) ) ) ) )\n\n(de void wrOpen (Exe X (i8* . Io))\n   (cond\n      ((nil? X)\n         (pushOutFile Io (val 2 (val $OutFiles)) 0) )  # Stdout\n      ((num? X)\n         (let N (i32 (int X))\n            (pushOutFile Io\n               (cond\n                  ((sign? X)\n                     (let Out (val $OutFrames)\n                        (loop\n                           (unless (setq Out ((ioFrame Out) link))\n                              (badFd Exe X) )\n                           (? (=0 (dec 'N))) )\n                        ((ioFrame Out) file) ) )\n                  ((>= N (val $OutFDs))\n                     (badFd Exe X) )\n                  ((=0 (val (ofs (val $OutFiles) N)))\n                     (badFd Exe X) )\n                  (T @) )\n               0 ) ) )\n      ((sym? X)\n         (let\n            (Nm (xName X)\n               S (pathString Nm (b8 (pathSize Nm)))\n               Flg (== (val S) (char \"+\"))\n               Fd T )\n            (when Flg\n               (setq S (ofs S 1)) )\n            (while (lt0 (setq Fd (if Flg (openRdWrAppend S) (openWr S))))\n               (unless (== (gErrno) EINTR)\n                  (openErr Exe X) )\n               (sigChk Exe) )\n            (closeOnExec Exe Fd)\n            (pushOutFile Io (initOutFile Fd) 1) ) )\n      (T  # Pipe\n         (let\n            (Pfd (b32 2)\n               Av (b8* (inc (length X)))\n               Cmd (xName (xSym (car X))) )\n            (when (lt0 (pipe Pfd))\n               (pipeErr Exe) )\n            (set Av (pathString Cmd (b8 (pathSize Cmd))))\n            (let A Av\n               (while (pair (shift X))\n                  (let Nm (xName (xSym (car X)))\n                     (set (inc 'A)\n                        (bufString Nm (b8 (bufSize Nm))) ) ) )\n               (set (inc 'A) null) )\n            (cond\n               ((lt0 (fork)) (forkErr Exe))\n               ((=0 @)  # In child\n                  (setpgid 0 0)  # Set process group\n                  (close (val 2 Pfd))  # Close write pipe\n                  (when (val Pfd)  # STDIN_FILENO\n                     (dup2 @ 0)  # Dup read pipe to STDIN_FILENO\n                     (close @) )\n                  (execvp (val Av) Av)  # Execute program\n                  (execErr (val Av)) ) )  # Error if failed\n            # In parent\n            (let (Pid @  Fd (val 2 Pfd))\n               (setpgid Pid 0)  # Set process group\n               (close (val Pfd))  # Close read pipe\n               (closeOnExec Exe Fd)\n               (pushOutFile Io (initOutFile Fd) Pid) ) ) ) ) )\n\n(de void erOpen (Exe X (i8* . Ct))\n   (let Ct: (ctFrame Ct)\n      (Ct: fd (dup 2))  # Stderr\n      (let Fd\n         (if (nil? (needSymb Exe X))\n            (dup ((outFile (val $OutFile)) fd))\n            (let\n               (Nm (xName X)\n                  S (pathString Nm (b8 (pathSize Nm)))\n                  Flg (== (val S) (char \"+\")) )\n               (when Flg\n                  (setq S (ofs S 1)) )\n               (while (lt0 (if Flg (openWrAppend S) (openWr S)))\n                  (unless (== (gErrno) EINTR)\n                     (openErr Exe X) )\n                  (sigChk Exe) )\n               (closeOnExec Exe @)\n               @ ) )\n         (dup2 Fd 2)\n         (close Fd) )\n      (pushErrFile Ct) ) )\n\n(de void ctOpen (Exe X (i8* . Ct))\n   (let Ct: (ctFrame Ct)\n      (cond\n         ((nil? (needSymb Exe X))\n            (Ct: fd -1)\n            (rdLockWait (currFd Exe) 0) )\n         ((t? X)\n            (Ct: fd -1)\n            (wrLockWait (currFd Exe) 0) )\n         (T\n            (let\n               (Nm (xName X)\n                  S (pathString Nm (b8 (pathSize Nm)))\n                  Flg (== (val S) (char \"+\")) )\n               (when Flg\n                  (setq S (ofs S 1)) )\n               (while (lt0 (openRdWrCreate S))\n                  (unless (== (gErrno) EINTR)\n                     (openErr Exe X) )\n                  (sigChk Exe) )\n               (let Fd (Ct: fd @)\n                  (if Flg\n                     (rdLockWait Fd 0)\n                     (wrLockWait Fd 0) )\n                  (closeOnExec Exe Fd) ) ) ) )\n      (pushCtlFile Ct) ) )\n\n(local) (read0 getChar skipc comment skip)\n\n(de read0 (i1))\n\n(de i32 rlGetc ((i8* . F))\n   (if (waitFd 0 0 292MY)\n      (stdinByte)\n      -1 ) )\n\n(de i32 rlAvail ()\n   (i32 (waitFd 0 0 60)) )\n\n(de i32 _getStdin ()\n   (let In: (inFile (val $InFile))\n      (set $Chr\n         (cond\n            ((lt0 (In: fd)) -1)  # EOF\n            ((or (In: fd) (not (In: tty)))  # Not stdin\n               (if\n                  (and\n                     (== (In: ix) (In: cnt))\n                     (or (lt0 (In: ix)) (=0 (slow (In:)))) )\n                  -1\n                  (let I (In: ix)\n                     (prog1\n                        (i32 (val (ofs (In: (buf)) I)))\n                        (when (== @ (char \"\\n\"))\n                           (In: line (+ (In: line) 1)) )\n                        (In: ix (+ I 1)) ) ) ) )\n            (T\n               (let P (val $LinePtr)\n                  (unless P\n                     (when (val $LineBuf)\n                        (free @)\n                        (set $LineBuf null) )\n                     (flushAll)\n                     (unless (setq P (set $LineBuf (gReadline (val $LinePrmt))))\n                        (wrnl)\n                        (when (or (val $Bind) (== (val $LinePrmt) (val $ContPrmt)))\n                           (err 0 0 $Empty null) )  # quit\n                        (bye 0) )\n                     (set $LinePrmt (val $ContPrmt))\n                     (unless\n                        (or\n                           (=0 (val P))\n                           (== @ 32)\n                           (and\n                              (== @ (char \".\"))\n                              (=0 (val (inc P))) )\n                           (and (currentLine) (=0 (strcmp @ P))) )\n                        (add_history P) ) )\n                  (nond\n                     ((val P)\n                        (set $LinePtr null)\n                        (char \"\\n\") )\n                     (NIL\n                        (set $LinePtr (inc P))\n                        (i32 @) ) ) ) ) ) ) ) )\n\n(de i32 getChar ((i32 . C))\n   (cond\n      ((>= 127 C) C)  # Single byte\n      ((== C (hex \"FF\")) (i32 TOP))  # Infinite\n      (T\n         (let B\n            (ifn (& C (hex \"20\"))  # Two bytes\n               (& C (hex \"1F\"))  # First byte 110xxxxx\n               (let A\n                  (ifn (& C (hex \"10\"))  # Three bytes\n                     (& C (hex \"0F\"))  # First byte 1110xxxx\n                     (|  # Four bytes\n                        (shl (& C 7) 6)  # First byte 11110xxx\n                        (& (call $Get) (hex \"3F\")) ) )  # 10xxxxxx\n                  (| (shl A 6) (& (call $Get) (hex \"3F\"))) ) )\n            (| (shl B 6) (& (call $Get) (hex \"3F\"))) ) ) ) )\n\n# Skip White Space and Comments\n(de i32 skipc ((i32 . C))\n   (let Chr (val $Chr)\n      (loop\n         (while (>= 32 Chr)  # White space\n            (when (lt0 (setq Chr (call $Get)))\n               (ret Chr) ) )\n         (unless (== Chr C)\n            (ret Chr) )\n         (until (== (setq Chr (call $Get)) (char \"\\n\"))\n            (when (lt0 Chr)\n               (ret Chr) ) )\n         (setq Chr (call $Get)) ) ) )\n\n(de void comment ()\n   (let Chr (call $Get)\n      (if (== Chr (char \"{\"))\n         (let N 0\n            (loop\n               (? (lt0 (setq Chr (call $Get))))\n               (if\n                  (and\n                     (== Chr (char \"#\"))\n                     (== (setq Chr (call $Get)) (char \"{\")) )\n                  (inc 'N)\n                  (?\n                     (and\n                        (== Chr (char \"}\"))\n                        (== (setq Chr (call $Get)) (char \"#\"))\n                        (lt0 (dec 'N)) ) ) ) ) )\n         (until (== Chr (char \"\\n\"))\n            (? (lt0 Chr))\n            (setq Chr (call $Get)) ) )\n      (call $Get) ) )\n\n(de i32 skip ()\n   (loop\n      (let Chr (val $Chr)\n         (when (lt0 Chr)\n            (ret Chr) )\n         (while (>= (char \" \") Chr)\n            (when (lt0 (setq Chr (call $Get)))\n               (ret Chr) ) )\n         (unless (== Chr (char \"#\"))\n            (ret Chr) )\n         (comment) ) ) )\n\n(local) (uniChr testEsc anonymous rdAtom rdl rdList)\n\n(de i32 uniChr ((i32 . Chr))\n   (when (and (>= Chr (char \"0\")) (>= (char \"9\") Chr))\n      (dec 'Chr (char \"0\"))\n      (until (== (call $Get) (char \"\\\\\"))\n         (unless\n            (and\n               (>= (val $Chr) (char \"0\"))\n               (>= (char \"9\") (val $Chr)) )\n            (badInput) )\n         (setq Chr\n            (+ (* Chr 10) (- (val $Chr) (char \"0\"))) ) ) )\n   Chr )\n\n(de i1 testEsc ((i32 . Chr))\n   (loop\n      (? (lt0 Chr) NO)\n      (? (== Chr (char \"\\^\"))  # Control character\n         (when (== (setq Chr (call $Get)) (char \"@\"))\n            (badInput) )\n         (set $Chr\n            (if (== Chr (char \"?\"))\n               127\n               (& Chr (hex \"1F\")) ) )\n         YES )\n      (? (<> Chr (char \"\\\\\"))  # No Backslash\n         (set $Chr (getChar Chr))\n         YES )\n      (? (<> (char \"\\n\") (setq Chr (call $Get)))  # Backslash: Skip '\\'\n         (case Chr\n            ((char \"b\") (set $Chr (char \"\\b\")))\n            ((char \"e\") (set $Chr (char \"\\e\")))\n            ((char \"n\") (set $Chr (char \"\\n\")))\n            ((char \"r\") (set $Chr (char \"\\r\")))\n            ((char \"t\") (set $Chr (char \"\\t\")))\n            (T (set $Chr (uniChr Chr))) )\n         YES )\n      (loop\n         (setq Chr (call $Get))\n         (?\n            (and\n               (<> Chr (char \" \"))\n               (<> Chr (char \"\\t\")) ) ) ) ) )\n\n(de anonymous (Nm)\n   (let P (push 0 Nm)  # [cnt name]\n      (unless (== (symByte P) (char \"$\"))  # Starting with '$'\n         (ret 0) )\n      (let B (- (symByte P) (char \"0\"))\n         (unless (>= 7 B)  # Octal Digit\n            (ret 0) )\n         (let N (i64 B)\n            (loop\n               (? (=0 (symByte P))\n                  (sym (shl N 4)) )  # Make symbol pointer\n               (? (> (- @ (char \"0\")) 7) 0)\n               (setq N (| (i64 @) (shl N 3))) ) ) ) ) )\n\n(de rdAtom ((i32 . Chr))\n   (let\n      (Int (save (val $Intern))  # Current symbol namespaces\n         P (push 4 NIL ZERO NIL)  # [cnt last name link]\n         C (val $Chr) )\n      (when\n         (and\n            (== Chr (char \"%\"))\n            (== C (char \"~\")) )\n         (when (nil? (cdr Int))\n            (symNspErr 0 $rem) )\n         (set $Intern @)\n         (setq Chr (call $Get)  C (call $Get)) )\n      (link (ofs P 2))\n      (byteSym (i8 Chr) P)  # Pack first byte\n      (setq Chr C)\n      (while (ge0 Chr)\n         (if (== Chr (char \"~\"))  # Namespace\n            (let S (requestSym (val 3 P))  # Find or create symbol\n               (needNsp 0 S)\n               (set (set $Intern (any $Cell)) S)  # Switch symbol namespace\n               (set P 4  3 P ZERO) )  # Build new name\n            (? (strchr $Delim Chr))\n            (when (== Chr (char \"\\\\\"))\n               (setq Chr (uniChr (call $Get))) )\n            (byteSym (i8 Chr) P) )\n         (setq Chr (call $Get)) )\n      (prog1\n         (let (Nm (val 3 P)  L (val $Intern))\n            (cond\n               ((== Nm ZERO) (badInput))\n               ((== L (any $Cell))\n                  (intern 0 $Nil Nm (cdar (car @)) $Nil NO) )\n               ((symToNum Nm (int (val $Scl)) (char \".\") 0) @)\n               ((anonymous Nm) @)\n               ((and (== (car L) $priv) (nil? (cdr L)))\n                  (intern (consSym Nm $Nil) 0 Nm $PrivT $Nil YES) )\n               (T (requestSym Nm)) ) )\n         (set $Intern Int) ) ) )\n\n(de void rdl (R P)\n   (loop\n      (? (== (skip) (char \")\"))\n         (call $Get) )\n      (? (== @ (char \"]\")))\n      (cond\n         ((== @ (char \".\"))\n            (? (strchr $Delim (call $Get))\n               (setq P\n                  (set 2 P\n                     (if\n                        (or\n                           (== (skip) (char \")\"))\n                           (== @ (char \"]\")) )\n                        R\n                        (read0 NO) ) ) )\n               (cond\n                  ((== (skip) (char \")\"))\n                     (call $Get) )\n                  ((<> (val $Chr) (char \"]\"))\n                     (err 0 P ($ \"Bad dotted pair\") null) ) ) )\n            (setq P\n               (set 2 P (cons (rdAtom (char \".\")) $Nil)) ) )\n         ((== @ (char \"~\"))\n            (call $Get)\n            (let (X (save (read0 NO))  R (eval X))\n               (cond\n                  ((nil? R))\n                  ((atom R)\n                     (set 2 P (cons R $Nil))\n                     (shift P) )\n                  (T\n                     (set 2 P R)\n                     (while (pair (cdr P))\n                        (shift P) ) ) ) ) )\n         (T\n            (setq P\n               (set 2 P (cons (read0 NO) $Nil)) ) ) ) ) )\n\n(de rdList ()\n   (stkChk 0)\n   (call $Get)\n   (save -ZERO)\n   (loop\n      (? (== (skip) (char \")\"))  # Empty list\n         (call $Get)\n         $Nil )\n      (? (== @ (char \"]\")) $Nil)  # Empty list\n      (? (<> @ (char \"~\"))  # Read macro\n         (let R (safe (cons (read0 NO) $Nil))\n            (rdl R R)\n            R ) )\n      (call $Get)\n      (let (X (safe (read0 NO))  R (eval X))\n         (? (not (nil? R))\n            (if (atom (safe R))\n               (rdl (safe (setq R (cons R $Nil))) R)\n               (let L R\n                  (while (pair (cdr L))\n                     (setq L @) )\n                  (rdl R L) ) )\n            R ) ) ) )\n\n(de read0 ((i1 . Top))\n   (let C (skip)\n      (when Top\n         (let In: (inFile (val $InFile))\n            (In: src (In: line)) ) )\n      (cond\n         ((lt0 C)\n            (unless Top (eofErr))\n            $Nil )\n         ((== C (char \"(\"))\n            (prog1\n               (rdList)\n               (and\n                  Top\n                  (== (val $Chr) (char \"]\"))\n                  (call $Get) ) ) )\n         ((== C (char \"[\"))\n            (let X (rdList)\n               (unless (== (val $Chr) (char \"]\"))\n                  (err 0 X ($ \"Super parentheses mismatch\") null) )\n               (call $Get)\n               X ) )\n         ((== C (char \"'\"))\n            (call $Get)\n            (cons $Quote (read0 Top)) )\n         ((== C (char \",\"))\n            (call $Get)\n            (let\n               (Tr1 (save (val $Transient))\n                  Tr2 (save (val 2 $Transient)) )\n               (set $Transient (set 2 $Transient $Nil))\n               (prog1\n                  (let X (read0 Top)\n                     (if (t? (val $Uni))\n                        X\n                        (save X\n                           (if (pair (idxPut $Uni X $T))\n                              (car @)\n                              X ) ) ) )\n                  (set 2 $Transient Tr2)\n                  (set $Transient Tr1) ) ) )\n         ((== C (char \"`\"))\n            (call $Get)\n            (let E (read0 Top)\n               (save E\n                  (eval E) ) ) )\n         ((== C (char \"\\\"\"))\n            (if (== (setq C (call $Get)) (char \"\\\"\"))\n               (prog (call $Get) $Nil)  # Empty string\n               (unless (testEsc C) (eofErr))\n               (let\n                  (P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                     Q (link (ofs P 2)) )\n                  (loop\n                     (charSym (val $Chr) P)\n                     (? (== (setq C (call $Get)) (char \"\\\"\")))\n                     (unless (testEsc C) (eofErr)) )\n                  (call $Get)  # Skip \"\\\"\"\n                  (drop Q\n                     (intern 0 0 (val Q) $Transient $Nil NO) ) ) ) )\n         ((== C (char \"{\"))\n            (prog1\n               (if (== (setq C (call $Get)) (char \"}\"))\n                  (consSym ZERO $Nil)  # Empty: New anonymous symbol\n                  (let F (i32 0)  # File number\n                     (while (>= C (char \"@\"))\n                        (when (> C (char \"O\"))  # A-O range\n                           (badInput) )\n                        (setq\n                           F (| (shl F 4) (- C (char \"@\")))\n                           C (call $Get) ) )\n                     (let N 0  # Id\n                        (loop\n                           (unless (and (>= C (char \"0\")) (>= (char \"7\") C))\n                              (badInput) )\n                           (setq N\n                              (|\n                                 (shl N 3)\n                                 (i64 (- C (char \"0\"))) ) )\n                           (? (== (setq C (call $Get)) (char \"}\"))) )\n                        (extern (extNm F N)) ) ) )\n               (call $Get) ) )  # Skip \"}\"\n         ((or (== C (char \")\")) (== C (char \"]\")) (== C (char \"~\")))\n            (badInput) )\n         (T\n            (when (== C (char \"\\\\\"))\n               (call $Get) )\n            (setq C (val $Chr))\n            (call $Get)\n            (rdAtom C) ) ) ) )\n\n(local) (read1 noToken token)\n\n(de read1 ((i32 . End))\n   (unless (val $Chr)\n      (call $Get) )\n   (if (== End (val $Chr))\n      $Nil\n      (read0 YES) ) )\n\n(inline noToken (C Set)\n   (not\n      (or\n         (== C (char \"\\\\\"))\n         (and (>= (char \"z\") C) (>= C (char \"a\")))\n         (and (>= (char \"Z\") C) (>= C (char \"A\")))\n         (strchr Set C) ) ) )\n\n(de token (Set (i32 . Cmt))\n   (let C (if (val $Chr) @ (call $Get))\n      (cond\n         ((lt0 (skipc Cmt)) 0)  # Skip white space and comments\n         ((== (setq C @) (char \"\\\"\"))\n            (cond\n               ((== (setq C (call $Get)) (char \"\\\"\"))  # Empty string\n                  (call $Get)\n                  $Nil )\n               ((not (testEsc C)) $Nil)\n               (T\n                  (let\n                     (Y (cons (mkChar (val $Chr)) $Nil)\n                        R (save Y) )\n                     (loop\n                        (? (== (setq C (call $Get)) (char \"\\\"\"))\n                           (call $Get) )  # Skip \"\\\"\"\n                        (? (not (testEsc C)))\n                        (setq Y\n                           (set 2 Y (cons (mkChar (val $Chr)) $Nil)) ) )\n                     R ) ) ) )\n         ((and (>= (char \"9\") C) (>= C (char \"0\")))\n            (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n               (link (ofs P 2) T)\n               (loop\n                  (byteSym (i8 C) P)\n                  (?\n                     (and\n                        (<> (setq C (call $Get)) (char \".\"))\n                        (or (> (char \"0\") C) (> C (char \"9\"))) ) ) )\n               (symToNum\n                  (val 3 P)\n                  (int (val $Scl))\n                  (char \".\")\n                  0 ) ) )\n         (T\n            (let\n               (Nm (xName Set)\n                  S (bufString Nm (b8 (bufSize Nm))) )\n               (if\n                  (or\n                     (== C (char \"+\"))\n                     (== C (char \"-\"))\n                     (noToken C S) )\n                  (prog1\n                     (mkChar (getChar C))\n                     (call $Get) )\n                  (when (== C (char \"\\\\\"))\n                     (call $Get) )\n                  (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                     (link (ofs P 2) T)\n                     (loop\n                        (byteSym (i8 C) P)\n                        (?\n                           (and\n                              (noToken (setq C (call $Get)) S)\n                              (or (> (char \"0\") C) (> C (char \"9\"))) ) )\n                        (when (== C (char \"\\\\\"))\n                           (call $Get) ) )\n                     (requestSym (val 3 P)) ) ) ) ) ) ) )\n\n# (read ['sym1 ['sym2]]) -> any\n(de _Read (Exe)\n   (let X (cdr Exe)\n      (prog1\n         (if (atom X)\n            (read1 0)\n            (let Y (save (needSymb Exe (eval (++ X))))\n               (if (token Y (firstChar (needSymb Exe (eval (car X)))))\n                  @\n                  $Nil ) ) )\n         (and\n            (== (val $Chr) (char \"\\n\"))\n            (== (val $InFile) (val (val $InFiles)))  # Stdin\n            (set $Chr 0) ) ) ) )\n\n# (key ['cnt ['var]]) -> sym\n(de _Key (Exe)\n   (flushAll)\n   (let\n      (X (cdr Exe)\n         Cnt\n         (if (nil? (eval (++ X)))\n            292MY\n            (xCnt Exe @) )\n         Var\n         (save\n            (if (nil? (eval (car X)))\n               -ZERO\n               (needChkVar Exe @) ) )\n         Raw (val Termio) )\n      (prog2\n         (setRaw)\n         (if (waitFd Exe 0 Cnt)\n            (let (Ms @  C (stdinByte))\n               (unless (== Var -ZERO)\n                  (set Var (cnt Ms)) )\n               (mkChar\n                  (cond\n                     ((>= 127 C) C)  # Single byte\n                     ((== C (hex \"FF\")) (i32 TOP))  # Infinite\n                     (T\n                        (let B\n                           (ifn (& C (hex \"20\"))  # Two bytes\n                              (& C (hex \"1F\"))  # First byte 110xxxxx\n                              (let A\n                                 (ifn (& C (hex \"10\"))  # Three bytes\n                                    (& C (hex \"0F\"))  # First byte 1110xxxx\n                                    (|  # Four bytes\n                                       (shl (& C 7) 6)  # First byte 11110xxx\n                                       (& (stdinByte) (hex \"3F\")) ) )  # 10xxxxxx\n                                 (| (shl A 6) (& (stdinByte) (hex \"3F\"))) ) )\n                           (| (shl B 6) (& (stdinByte) (hex \"3F\"))) ) ) ) ) )\n            $Nil )\n         (unless Raw\n            (setCooked) ) ) ) )\n\n# (peek) -> sym\n(de _Peek (Exe)\n   (let C (if (val $Chr) @ (call $Get))\n      (if (lt0 C) $Nil (mkChar C)) ) )\n\n# (char) -> sym\n# (char 'cnt) -> sym\n# (char T) -> sym\n# (char 'sym) -> cnt\n(de _Char (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((atom X)\n            (let Chr (if (val $Chr) @ (call $Get))\n               (prog1\n                  (if (lt0 Chr)\n                     $Nil\n                     (mkChar (getChar Chr)) )\n                  (call $Get) ) ) )\n         ((cnt? (eval (car X)))\n            (if (int @)\n               (mkChar (i32 @))\n               $Nil ) )\n         ((t? @) (mkChar TOP))\n         ((symb? @) (cnt (i64 (firstChar @))))\n         (T (atomErr Exe @)) ) ) )\n\n# (skip ['any]) -> sym\n(de _Skip (Exe)\n   (if (lt0 (skipc (firstChar (evSym (cdr Exe)))))\n      $Nil\n      (mkChar @) ) )\n\n# (eol) -> flg\n(de _Eol (Exe)\n   (let C (if (val $Chr) @ (call $Get))\n      (if (or (le0 C) (== C (char \"\\n\")))\n         $T\n         $Nil ) ) )\n\n# (eof ['flg]) -> flg\n(de _Eof (Exe)\n   (nond\n      ((nil? (eval (cadr Exe)))\n         (set $Chr -1)\n         $T )\n      ((=0 (val $Chr))\n         (if (lt0 @) $T $Nil) )\n      (NIL\n         (if (lt0 (call $Get)) $T $Nil) ) ) )\n\n# (from 'any ..) -> sym\n(de _From (Exe)\n   (let\n      (X (cdr Exe)\n         N 1\n         Y (evSym X)\n         Nm (xName Y)\n         L\n         (link\n            (push Y NIL 0  # [sym link ix str]\n               (any (bufString Nm (b8 (bufSize Nm)))) ) )\n         P L )\n      (while (pair (shift X))\n         (setq\n            Y (evSym X)\n            Nm (xName Y)\n            L\n            (link\n               (push Y NIL 0  # [sym link ix str]\n                  (any (bufString Nm (b8 (bufSize Nm)))) ) ) )\n         (inc 'N) )\n      (unless (val $Chr)\n         (call $Get) )\n      (while (ge0 (val $Chr))\n         (let (B (i8 @)  Q (i64* L)  I N)\n            (loop\n               (loop\n                  (let S (ofs (i8* (val 4 Q)) (val 3 Q))\n                     (when (== B (val S))  # Bytes match\n                        (set 3 Q (inc (val 3 Q)))  # Increment index\n                        (? (val 2 S))  # Not end of string\n                        (call $Get) # Skip next input byte\n                        (drop P)\n                        (ret (val Q)) ) )  # Return matched symbol\n                  (? (=0 (val 3 Q)))  # Still at beginning of string\n                  (let S (ofs (i8* (val 4 Q)) 1)  # Pointer to second byte\n                     (while (set 3 Q (dec (val 3 Q)))  # Decrement index\n                        (? (=0 (memcmp (i8* (val 4 Q)) S @)))\n                        (inc 'S) ) ) )\n               (? (=0 (dec 'I)))\n               (setq Q (i64* (val 2 Q))) ) )\n         (call $Get) )\n      (drop P)\n      $Nil ) )\n\n# (till 'any ['flg]) -> lst|sym\n(de _Till (Exe)\n   (let\n      (X (cdr Exe)\n         Nm (xName (evSym X))\n         S (bufString Nm (b8 (bufSize Nm))) )\n      (let C (if (val $Chr) @ (call $Get))\n         (cond\n            ((or (lt0 C) (strchr S C))\n               $Nil )\n            ((nil? (eval (cadr X)))\n               (let\n                  (Y (cons (mkChar (getChar C)) $Nil)\n                     R (save Y) )\n                  (until\n                     (or\n                        (le0 (setq C (call $Get)))\n                        (strchr S C) )\n                     (setq Y\n                        (set 2 Y (cons (mkChar (getChar C)) $Nil)) ) )\n                  R ) )\n            (T\n               (let\n                  (P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                     Q (link (ofs P 2)) )\n                  (loop\n                     (charSym (getChar C) P)\n                     (? (le0 (setq C (call $Get))))\n                     (? (strchr S C)) )\n                  (drop Q\n                     (consStr (val 3 P)) ) ) ) ) ) ) )\n\n(local) eol\n\n(de i1 eol ((i32 . C))\n   (cond\n      ((lt0 C) YES)\n      ((== C (char \"\\n\"))\n         (set $Chr 0)\n         YES )\n      ((== C (char \"\\r\"))\n         (when (== (call $Get) (char \"\\n\"))\n            (set $Chr 0) )\n         YES )\n      (T NO) ) )\n\n# (line 'flg ['cnt ..]) -> lst|sym\n(de _Line (Exe)\n   (let C (if (val $Chr) @ (call $Get))\n      (if (eol C)\n         $Nil\n         (let X (cdr Exe)\n            (cond\n               ((nil? (eval (++ X)))\n                  (let  # List of characters\n                     (Y (cons (mkChar (getChar C)) $Nil)\n                        R (save Y) )\n                     (when (pair X)\n                        (let Z (set Y (cons (car Y) $Nil))\n                           (loop\n                              (let N (evCnt Exe X)\n                                 (while (gt0 (dec 'N))\n                                    (when (eol (setq C (call $Get)))\n                                       (ret R) )\n                                    (setq Z\n                                       (set 2 Z (cons (mkChar (getChar C)) $Nil)) ) ) )\n                              (? (atom (shift X)))\n                              (when (eol (setq C (call $Get)))\n                                 (ret R) )\n                              (setq Y\n                                 (set 2 Y\n                                    (cons\n                                       (setq Z (cons (mkChar (getChar C)) $Nil))\n                                       $Nil ) ) ) ) ) )\n                     (until (eol (setq C (call $Get)))\n                        (setq Y\n                           (set 2 Y (cons (mkChar (getChar C)) $Nil)) ) )\n                     R ) )\n               ((atom X)  # Pack single string\n                  (let\n                     (P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                        Q (link (ofs P 2)) )\n                     (loop\n                        (charSym (getChar C) P)\n                        (? (eol (setq C (call $Get)))) )\n                     (drop Q\n                        (consStr (val 3 P)) ) ) )\n               (T\n                  (let\n                     (N (evCnt Exe X)\n                        P (push 4 NIL ZERO NIL)  # [cnt last name link]\n                        Q (link (ofs P 2) T) )\n                     (loop\n                        (charSym (getChar C) P)\n                        (when (eol (setq C (call $Get)))\n                           (ret (cons (consStr (val Q)) $Nil)) )\n                        (? (=0 (dec 'N))) )\n                     (let\n                        (Y (cons (consStr (val Q)) $Nil)\n                           R (save Y) )\n                        (while (pair (shift X))\n                           (setq N (evCnt Exe X))\n                           (set P 4  3 P ZERO)\n                           (loop\n                              (charSym (getChar C) P)\n                              (when (eol (setq C (call $Get)))\n                                 (set 2 Y (cons (consStr (val Q)) $Nil))\n                                 (ret R) )\n                              (? (=0 (dec 'N))) )\n                           (setq Y\n                              (set 2 Y (cons (consStr (val Q)) $Nil)) ) )\n                        (loop\n                           (setq Y\n                              (set 2 Y (cons (mkChar (getChar C)) $Nil)) )\n                           (? (eol (setq C (call $Get)))) )\n                        R ) ) ) ) ) ) ) )\n\n# (in 'any . prg) -> any\n(de _In (Exe)\n   (let X (cdr Exe)\n      (rdOpen Exe (eval (++ X)) (b8+ (ioFrame T)))\n      (prog1\n         (run X)\n         (popInFiles) ) ) )\n\n# (out 'any . prg) -> any\n(de _Out (Exe)\n   (let X (cdr Exe)\n      (wrOpen Exe (eval (++ X)) (b8+ (ioFrame T)))\n      (prog1\n         (run X)\n         (popOutFiles) ) ) )\n\n# (err 'sym . prg) -> any\n(de _Err (Exe)\n   (let X (cdr Exe)\n      (erOpen Exe (eval (++ X)) (b8+ (ctFrame T)))\n      (prog1\n         (run X)\n         (popErrFiles) ) ) )\n\n# (ctl 'sym . prg) -> any\n(de _Ctl (Exe)\n   (let X (cdr Exe)\n      (ctOpen Exe (eval (++ X)) (b8+ (ctFrame T)))\n      (prog1\n         (run X)\n         (popCtlFiles) ) ) )\n\n(local) (pushInput pushOutput)\n\n(de void pushInput ((i8* . Iox) Exe)\n   (let Iox: (ioxFrame Iox)\n      (Iox: link (val $InFrames))\n      (Iox: file null)\n      (Iox: fun (val (i8** $Get)))\n      (Iox: exe Exe)\n      (Iox: chr (val $Chr))\n      (set\n         $InFrames (Iox:)\n         $Get (fun (i32) getIn)\n         $InChar 0\n         $Chr 0 ) ) )\n\n(de void pushOutput ((i8* . Iox) Exe)\n   (let Iox: (ioxFrame Iox)\n      (Iox: link (val $OutFrames))\n      (Iox: file null)\n      (Iox: fun (val (i8** $Put)))\n      (Iox: exe Exe)\n      (Iox: chr 0)\n      (set $OutFrames (Iox:)  $Put (fun (void i8) putOut)) ) )\n\n# (input exe . prg) -> any\n(de _Input (Exe)\n   (let X (cdr Exe)\n      (pushInput (b8+ (ioxFrame T)) (++ X))\n      (prog1\n         (run X)\n         (popInFiles) ) ) )\n\n# (output exe . prg) -> any\n(de _Output (Exe)\n   (let X (cdr Exe)\n      (pushOutput (b8+ (ioxFrame T)) (++ X))\n      (prog1\n         (run X)\n         (popOutFiles) ) ) )\n\n# (fd ['cnt]) -> cnt\n(de _Fd (Exe)\n   (let (X (eval (cadr Exe))  Fd (currFd Exe))\n      (unless (nil? X)\n         (dup2 Fd (i32 (xCnt Exe X))) )\n      (cnt (i64 Fd)) ) )\n\n(local) forkLisp\n\n(de i32 forkLisp (Exe)\n   (flushAll)\n   (unless (val $Spkr)  # Not listening for children yet\n      (when (lt0 (pipe $SpMiPipe))  # Open speaker/microphone pipe\n         (pipeErr Exe) )\n      (closeOnExec Exe (set $Spkr (val $SpMiPipe)))\n      (closeOnExec Exe (val 2 $SpMiPipe)) )\n   (let (Hear (b32 2)  Tell (b32 2))\n      (when (or (lt0 (pipe Hear)) (lt0 (pipe Tell)))\n         (pipeErr Exe) )\n      (closeOnExec Exe (val Hear))  # Read end of 'hear'\n      (closeOnExec Exe (val 2 Hear))  # Write end\n      (closeOnExec Exe (val Tell))  # Read end of 'tell'\n      (closeOnExec Exe (val 2 Tell))  # Write end\n      (let (I (i32 0)  N (val $Children))\n         (let Cld (val $Child)\n            (while (> N I)  # Find a free child slot\n               (? (=0 ((child Cld) pid)))\n               (inc 'I)\n               (setq Cld (ofs Cld (child T))) ) )\n         (cond\n            ((lt0 (fork)) (forkErr Exe))\n            ((=0 @)  # In child\n               (set\n                  $Slot I  # Set child index\n                  $Spkr 0  # No children yet\n                  $Mic (val 2 $SpMiPipe) )  # Set microphone to write end\n               (close (val 2 Hear))  # Close write end of 'hear'\n               (close (val Tell))  # Close read end of 'tell'\n               (close (val $SpMiPipe))  # Close read end\n               (when (val $Hear)\n                  (close @)\n                  (closeInFile @)\n                  (closeOutFile @) )\n               (initInFile (set $Hear (val Hear)) null)  # Read end of 'hear'\n               (when (val $Tell)  # Telling\n                  (close @) )\n               (set $Tell (val 2 Tell))  # Write end of 'tell'\n               (set $Nfds 0)   # Clear poll entries\n               (free (i8* (val $Poll)))\n               (set $Poll (i64* null))\n               (let Cld (val $Child)\n                  (while (ge0 (dec 'N))  # Close children\n                     (let Cld: (child Cld)\n                        (when (Cld: pid)\n                           (free (Cld: buf))\n                           (close (Cld: hear))\n                           (close (Cld: tell)) ) )\n                     (setq Cld (ofs Cld (child T))) ) )\n               (set $Children 0)  # No children\n               (free (val $Child))\n               (set $Child null)\n               (let In (val $InFrames)  # Clear pids in InFrames\n                  (while In\n                     (let In: (ioFrame In)\n                        (when (In: file)\n                           (In: pid 0) )\n                        (setq In (In: link)) ) ) )\n               (let Out (val $OutFrames)  # Clear pids in OutFrames\n                  (while Out\n                     (let Out: (ioFrame Out)\n                        (when (Out: file)\n                           (Out: pid 0) )\n                        (setq Out (Out: link)) ) ) )\n               (let Ca (val $Catch)  # Clear 'finally' expressions in Catch frames\n                  (while Ca\n                     (let Ca: (caFrame Ca)\n                        (Ca: fin ZERO)\n                        (setq Ca (Ca: link)) ) ) )\n               (let R (val $Run)  # Switch off all tasks\n                  (while (pair R)\n                     (let X (++ R)\n                        (unless (sign? (car X))\n                           (let Fd (i32 (int @))\n                              (close Fd)\n                              (closeInFile Fd)\n                              (closeOutFile Fd) ) ) ) ) )\n               (set $Bye $Nil)\n               (set $Run $Nil)\n               (free (val Termio))  # Give up terminal control\n               (set Termio null)\n               (set\n                  $PRepl (val $Repl)  # Set parent REPL flag\n                  $PPid (val $Pid) )  # Set parent process ID\n               (set $Pid (cnt (i64 (getpid))))  # Set new process ID\n               (execAt (val $Fork))  # Run '*Fork'\n               (set $Fork $Nil)\n               0 )\n            (T  # In parent\n               (let Pid @\n                  (when (== I N)  # Children table full\n                     (set $Children (inc 'N 8))  # Eight more slots\n                     (let P\n                        (set $Child\n                           (alloc (val $Child) (i64 (* N (child T)))) )\n                        (let Cld (ofs P (* I (child T)))\n                           (loop\n                              ((child Cld) pid 0)  # Clear 'pid'\n                              (? (== I (dec 'N)))\n                              (setq Cld (ofs Cld (child T))) ) ) ) )\n                  (close (val Hear))  # Close read end of 'hear'\n                  (close (val 2 Tell))  # Close write end of 'tell'\n                  (let Cld: (child (ofs (val $Child) (* I (child T))))  # Free 'child' entry\n                     (Cld: buf null)  # No buffer yet\n                     (Cld: ofs (Cld: cnt 0))  # Init buffer offset and count\n                     (Cld: pid Pid)  # Set 'pid'\n                     (Cld: hear (val Tell))  # Read end of 'tell'\n                     (nonBlocking (Cld: tell (val 2 Hear))) )  # Write end of 'hear'\n                  Pid ) ) ) ) ) )\n\n# (pipe exe) -> cnt\n# (pipe exe . prg) -> any\n(de _Pipe (Exe)\n   (let\n      (X (cdr Exe)\n         E (++ X)\n         Pfd (b32 2)\n         Io: (ioFrame (b8+ (ioFrame T))) )\n      (when (lt0 (if (pair X) (pipe Pfd) (socketPair Pfd)))\n         (pipeErr Exe) )\n      (when (< (val 2 Pfd) 2)  # pfd[1]\n         (pipeErr Exe) )\n      (if (forkLisp Exe)\n         (let Pid @  # In parent\n            (close (val 2 Pfd))  # Close write end\n            (let Fd (val Pfd)  # Read end\n               (closeOnExec Exe Fd)\n               (cond\n                  ((atom X)  # No 'prg'\n                     (initInFile Fd null)\n                     (initOutFile Fd)\n                     (cnt (i64 Fd)) )\n                  (T\n                     (setpgid Pid 0)  # Set process group\n                     (pushInFile (Io:) (initInFile Fd null) Pid)\n                     (prog1\n                        (run X)\n                        (popInFiles) ) ) ) ) )\n         # In child\n         (close (val Pfd))  # Close read end\n         (let Fd (val 2 Pfd)  # Write end\n            (if (pair X)  # 'prg'\n               (setpgid 0 0)  # Set process group\n               (dup2 Fd 0)  # Dup write pipe to STDIN_FILENO\n               ((inFile (val (val $InFiles))) tty NO) )  # Clear 'tty' in stdin\n            (dup2 Fd 1)  # Dup write pipe to STDOUT_FILENO\n            (close Fd) )\n         (signal (val SIGPIPE Sig) (val SigDfl))  # Default SIGPIPE\n         ((outFile (val $OutFile)) tty NO)  # Clear 'tty'\n         (pushOutFile (Io:) (val 2 (val $OutFiles)) 0)  # Stdout\n         (set $LinePtr null)  # Switch off line editor\n         (when (pair E)  # Evaluate 'exe'\n            (evList E) )\n         (bye 0) ) ) )\n\n# (open 'any ['flg]) -> cnt | NIL\n(de _Open (Exe)\n   (let\n      (X (cdr Exe)\n         Nm (xName (evSym X))\n         S (pathString Nm (b8 (pathSize Nm)))\n         Flg (nil? (eval (cadr X))) )\n      (loop\n         (? (ge0 (if Flg (openRdWrCreate S) (openRd S)))\n            (closeOnExec Exe @)\n            (initInFile @ (strdup S))\n            (initOutFile @)\n            (cnt (i64 @)) )\n         (? (<> (gErrno) EINTR) $Nil)\n         (sigChk Exe) ) ) )\n\n# (close 'cnt) -> cnt | NIL\n(de _Close (Exe)\n   (let\n      (X (eval (cadr Exe))\n         Fd (i32 (xCnt Exe X)) )\n      (loop\n         (? (=0 (close Fd))\n            (closeInFile Fd)\n            (closeOutFile Fd)\n            X )\n         (? (<> (gErrno) EINTR) $Nil)\n         (sigChk Exe) ) ) )\n\n# (echo ['cnt ['cnt]] | ['sym ..]) -> sym\n(de _Echo (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((and (nil? Y) (atom X))\n            (let C (if (val $Chr) @ (call $Get))\n               (until (lt0 C)\n                  (call $Put (i8 C))\n                  (setq C (call $Get)) ) )\n            $T )\n         ((num? Y)\n            (let N (xCnt Exe Y)\n               (when (pair X)\n                  (let C (evCnt Exe X)\n                     (while (ge0 (dec 'N))\n                        (when (lt0 (call $Get))\n                           (ret $Nil) ) )\n                     (setq N C) ) )\n               (while (ge0 (dec 'N))\n                  (when (lt0 (call $Get))\n                     (ret $Nil) )\n                  (call $Put (i8 @)) )\n               (set $Chr 0)\n               $T ) )\n         ((pair Y) (argErr Exe Y))\n         (T  # sym\n            (let\n               (M (i64* null)\n                  N 1\n                  Nm (xName Y)\n                  L\n                  (link\n                     (push Y NIL 0  # [sym link ix str]\n                        (any (bufString Nm (b8 (bufSize Nm)))) ) )\n                  P L )\n               (while (pair X)\n                  (setq\n                     Y (evSym (++ X))\n                     Nm (xName Y)\n                     L\n                     (link\n                        (push Y NIL 0  # [sym link ix str]\n                           (any (bufString Nm (b8 (bufSize Nm)))) ) ) )\n                  (inc 'N) )\n               (unless (val $Chr)\n                  (call $Get) )\n               (while (ge0 (val $Chr))\n                  (let\n                     (B (i8 @)\n                        Q (i64* L)\n                        I N\n                        OutM M\n                        OutC (if M (val 3 M) 0) )\n                     (loop\n                        (loop\n                           (let S (ofs (i8* (val 4 Q)) (val 3 Q))\n                              (when (== B (val S))  # Bytes match\n                                 (set 3 Q (inc (val 3 Q)))  # Increment index\n                                 (? (val 2 S)  # Not end of string\n                                    (unless (and M (>= (val 3 M) (val 3 Q)))\n                                       (setq M Q) ) )\n                                 (when OutM\n                                    (setq S (i8* (val 4 OutM)))\n                                    (dec 'OutC (val 3 Q))\n                                    (until (lt0 OutC)\n                                       (call $Put (val S))\n                                       (inc 'S)\n                                       (dec 'OutC) ) )\n                                 (set $Chr 0)  # Clear look ahead\n                                 (drop P)\n                                 (ret (val Q)) ) )  # Return matched symbol\n                           (? (=0 (val 3 Q)))  # Still at beginning of string\n                           (let S (ofs (i8* (val 4 Q)) 1)  # Pointer to second byte\n                              (while (set 3 Q (dec (val 3 Q)))  # Decrement index\n                                 (? (=0 (memcmp (i8* (val 4 Q)) S @)))\n                                 (inc 'S) ) )\n                           (when (== Q M)  # On current max\n                              (setq M (i64* null))\n                              (let (Z (i64* L)  J N)\n                                 (loop\n                                    (when (val 3 Z)\n                                       (unless (and M (>= (val 3 M) (val 3 Z)))\n                                          (setq M Z) ) )\n                                    (? (=0 (dec 'J)))\n                                    (setq Z (i64* (val 2 Z))) ) ) ) )\n                        (? (=0 (dec 'I)))\n                        (setq Q (i64* (val 2 Q))) )\n                     (cond\n                        ((=0 M)\n                           (when OutM\n                              (let (S (i8* (val 4 OutM))  C OutC)\n                                 (loop\n                                    (call $Put (val S))\n                                    (inc 'S)\n                                    (? (=0 (dec 'C))) ) ) )\n                           (call $Put B) )\n                        (OutM\n                           (let S (i8* (val 4 OutM))\n                              (dec 'OutC (val 3 M))\n                              (until (lt0 OutC)\n                                 (call $Put (val S))\n                                 (inc 'S)\n                                 (dec 'OutC) ) ) ) ) )\n                  (call $Get) )\n               (drop P)\n               $Nil ) ) ) ) )\n\n(de void _putStdout ((i8 . B))\n   (let Out: (outFile (val $OutFile))\n      (when (Out:)\n         (let I (Out: ix)\n            (when (== I BUFSIZ)\n               (Out: ix (setq I 0))\n               (wrBytes (Out: fd) (Out: (buf)) BUFSIZ) )\n            (set (ofs (Out: (buf)) I) B)\n            (Out: ix (inc 'I))\n            (when (and (== B (char \"\\n\")) (Out: tty))\n               (Out: ix 0)\n               (wrBytes (Out: fd) (Out: (buf)) I) ) ) ) ) )\n\n(local) (newline space)\n\n(de void newline ()\n   (call $Put (char \"\\n\")) )\n\n(de void space ()\n   (call $Put (char \" \")) )\n\n(local) (outWord outNum outOct outAo bufAo prExt)\n\n# Output decimal number\n(de void outWord ((i64 . N))\n   (when (> N 9)\n      (outWord (/ N 10))\n      (setq N (% N 10)) )\n   (call $Put (+ (i8 N) (char \"0\"))) )\n\n(de void outNum (X)\n   (when (sign? X)\n      (call $Put (char \"-\")) )\n   (outWord (shr (i64 X) 4)) )\n\n# Output octal number\n(de void outOct ((i64 . N))\n   (when (> N 7)\n      (outOct (shr N 3))\n      (setq N (& N 7)) )\n   (call $Put (+ (i8 N) (char \"0\"))) )\n\n# Output A-O encoding\n(de void outAo ((i32 . N))\n   (when (> N 15)\n      (outAo (shr N 4))\n      (setq N (& N 15)) )\n   (call $Put (+ (i8 N) (char \"@\"))) )\n\n# Append A-O encoding to buffer\n(de i8* bufAo ((i8* . P) (i32 . N))\n   (when (> N 15)\n      (setq\n         P (bufAo P (shr N 4))\n         N (& N 15) ) )\n   (set P (+ (i8 N) (char \"@\")))\n   (inc P) )\n\n# Output external symbol name\n(de void prExt (Nm)\n   (when (objFile Nm)\n      (outAo @) )\n   (outOct (objId Nm)) )\n\n(local) (outString prName prSym printName printSym)\n\n# Output string\n(de void outString ((i8* . S))\n   (while (val S)\n      (call $Put @)\n      (inc 'S) ) )\n\n(de void prName (Nm)\n   (let P (push 0 Nm)  # [cnt name]\n      (while (symByte P)\n         (call $Put @) ) ) )\n\n(de void prSym (Sym)\n   (prName (name (val (tail Sym)))) )\n\n(de void printName (Nm)\n   (ifn (== Nm (hex \"2E2\"))  # Dot\n      (let (P (push 0 Nm)  B (symByte P))  # [cnt name]\n         (when (== B (char \"#\"))\n            (call $Put (char \"\\\\\")) )  # Escape leading hash\n         (loop\n            (if (or (== B 127) (> 32 B))  # DEL or Ctrl\n               (prog\n                  (call $Put (char \"\\\\\"))  # Unicode\n                  (outWord (i64 B))\n                  (call $Put (char \"\\\\\")) )\n               (when\n                  (or\n                     (== B (char \"\\\\\"))\n                     (strchr $Delim (i32 B)) )\n                  (call $Put (char \"\\\\\")) )  # Escape backslash and delimiters\n               (call $Put B) )\n            (? (=0 (setq B (symByte P))) ) ) )\n      (call $Put (char \"\\\\\"))\n      (call $Put (char \".\")) ) )\n\n(de void printSym (Sym)\n   (printName (name (val (tail Sym)))) )\n\n(local) (print prin)\n\n(de void print (X)\n   (sigChk 0)\n   (cond\n      ((cnt? X) (outNum X))\n      ((big? X) (fmtNum X 0 0 0 null))\n      ((sym? X)\n         (cond\n            ((sym? (val (tail X)))  # External\n               (call $Put (char \"{\"))\n               (prExt (name (& @ -9)))\n               (call $Put (char \"}\")) )\n            ((== (name @) ZERO)  # Anonymous\n               (call $Put (char \"$\"))\n               (outOct (int X)) )\n            (T\n               (let (Nm @  Prv (isIntern Nm $PrivT))\n                  (ifn (== X Prv)\n                     (let (Lst (val $Intern)  F NO)  # Search namespaces\n                        (loop\n                           (? (atom Lst)  # Transient\n                              (call $Put (char \"\\\"\"))\n                              (let (P (push 0 Nm)  B (symByte P))  # [cnt name]\n                                 (loop\n                                    (cond\n                                       ((or\n                                             (== B (char \"\\\\\"))\n                                             (== B (char \"\\^\"))\n                                             (== B (char \"\\\"\")) )\n                                          (call $Put (char \"\\\\\")) )\n                                       ((== B 127)  # DEL\n                                          (call $Put (char \"\\^\"))  # Print ^?\n                                          (setq B (char \"?\")) )\n                                       ((> 32 B)  # Ctrl\n                                          (call $Put (char \"\\^\"))  # Escape with caret\n                                          (setq B (| B 64)) ) )\n                                    (call $Put B)\n                                    (? (=0 (setq B (symByte P))) ) ) )\n                              (call $Put (char \"\\\"\")) )\n                           (let Nsp (car Lst)\n                              (when (isIntern Nm (cdar Nsp))\n                                 (? (== @ X)  # Internal\n                                    (when (or Prv F)  # Found in other namespace\n                                       (printSym Nsp)\n                                       (call $Put (char \"~\")) )\n                                    (printName Nm) )\n                                 (setq F YES) ) )\n                           (shift Lst) ) )\n                     (outString ($ \"priv~\"))  # Found in 'priv'\n                     (printName Nm) ) ) ) ) )\n      ((and (== (car X) $Quote) (<> X (cdr X)))\n         (call $Put (char \"'\"))\n         (print (cdr X)) )\n      (T\n         (stkChk 0)\n         (call $Put (char \"(\"))\n         (let (P (circ X)  Z X)\n            (loop\n               (print (car X))\n               (? (nil? (shift X)))\n               (? (atom X)\n                  (outString ($ \" . \"))\n                  (print X) )\n               (space)\n               (? (== Z X)\n                  (call $Put (char \".\"))\n                  (unless P\n                     (call $Put (char \")\")) ) )\n               (when (== P X)\n                  (outString ($ \". (\"))\n                  (setq Z P  P 0) ) ) )\n         (call $Put (char \")\")) ) ) )\n\n(de void prin (X)\n   (sigChk 0)\n   (unless (nil? X)\n      (cond\n         ((cnt? X) (outNum X))\n         ((big? X) (fmtNum X 0 0 0 null))\n         ((pair X)\n            (stkChk 0)\n            (loop\n               (prin (car X))\n               (? (nil? (shift X)))\n               (? (atom X) (prin X)) ) )\n         ((sym? (val (tail X)))\n            (call $Put (char \"{\"))\n            (prExt (name (& @ -9)))\n            (call $Put (char \"}\")) )\n         (T (prName (name @))) ) ) )\n\n# (prin 'any ..) -> any\n(de _Prin (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (++ X))\n            (prin Y)\n            (? (atom X) Y) ) ) ) )\n\n# (prinl 'any ..) -> any\n(de _Prinl (Exe)\n   (prog1 (_Prin Exe) (newline)) )\n\n# (space ['cnt]) -> cnt\n(de _Space (Exe)\n   (let X (eval (cadr Exe))\n      (ifn (nil? X)\n         (let N (xCnt Exe X)\n            (while (ge0 (dec 'N))\n               (space) )\n            X )\n         (space)\n         ONE ) ) )\n\n# (print 'any ..) -> any\n(de _Print (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (++ X))\n            (print Y)\n            (? (atom X) Y)\n            (space) ) ) ) )\n\n# (printsp 'any ..) -> any\n(de _Printsp (Exe)\n   (prog1 (_Print Exe) (space)) )\n\n# (println 'any ..) -> any\n(de _Println (Exe)\n   (prog1 (_Print Exe) (newline)) )\n\n# (flush) -> flg\n(de _Flush (Exe)\n   (if (flush (val $OutFile)) $T $Nil) )\n\n# (rewind) -> flg\n(de _Rewind (Exe)\n   (let Out: (outFile (val $OutFile))\n      (if\n         (and\n            (Out:)\n            (let Fd (Out: fd)\n               (Out: ix 0)\n               (and (seek0 Fd) (truncate0 Fd)) ) )\n         $T\n         $Nil ) ) )\n\n# (ext 'cnt . prg) -> any\n(de _Ext (Exe)\n   (let (X (cdr Exe)  N (evCnt Exe X)  Old (val $ExtN))\n      (set $ExtN (i32 N))\n      (prog1\n         (run (cdr X))\n         (set $ExtN Old) ) ) )\n\n(local) (getPlio putPlio)\n\n(de i32 getPlio ()\n   (let P (val $Ptr)\n      (set $Ptr (inc P))\n      (i32 (val P)) ) )\n\n(de void putPlio ((i8 . B))\n   (let P (val $Ptr)\n      (set P B)\n      (when (== (set $Ptr (inc P)) (val $End))\n         (sizeErr 0) ) ) )\n\n# (plio 'num) -> any\n# (plio 'num 'cnt 'any) -> cnt\n(de _Plio (Exe)\n   (let\n      (X (cdr Exe)\n         P (i8* (xCnt64 Exe (eval (++ X)))) )\n      (let (Ptr (val $Ptr)  End (val $End))\n         (set\n            $Extn (val $ExtN)  # Set external symbol offset\n            $Ptr P )\n         (prog1\n            (if (pair X)\n               (let (N (evCnt Exe X)  Y (eval (car (shift X))))\n                  (set\n                     $PutBin (fun (void i8) putPlio)\n                     $End (ofs P N) )\n                  (binPrint Y)\n                  (cnt (- (val $Ptr) P)) )\n               (set $GetBin (fun (i32) getPlio))\n               (if (binRead) @ $Nil) )\n            (set $Ptr Ptr  $End End) ) ) ) )\n\n# (rd ['sym]) -> any\n# (rd 'cnt) -> num | NIL\n(de _Rd (Exe)\n   (let X (save (eval (cadr Exe)))\n      (cond\n         ((lt0 ((inFile (val $InFile)) fd)) $Nil)\n         ((num? X)\n            (let\n               (P (push 3 NIL ZERO NIL)  # [cnt last name link]\n                  Q (link (ofs P 2))\n                  Cnt (int X) )\n               (cond\n                  ((=0 Cnt) $Nil)\n                  ((sign? X)  # Little endian\n                     (loop\n                        (when (lt0 (getBinary))\n                           (: 1 (ret $Nil)) )\n                        (byteNum (i8 @) P)\n                        (? (=0 (dec 'Cnt))) )\n                     (if (cnt? (val Q))\n                        (twice @)\n                        (zapZero @) ) )\n                  (T\n                     (loop\n                        (when (lt0 (getBinary))\n                           (goto 1) )\n                        (set Q\n                           (addu\n                              (cnt (i64 @))\n                              (set Q (mulu (val Q) (hex \"1002\"))) ) )  # Multiply number by 256\n                        (? (=0 (dec 'Cnt))) )\n                     (if (cnt? (val Q))\n                        @\n                        (zapZero @) ) ) ) ) )\n         (T\n            (set\n               $GetBin (fun (i32) getBinary)\n               $Extn (val $ExtN) )\n            (if (binRead) @ X) ) ) ) )\n\n# (pr 'any ..) -> any\n(de _Pr (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (eval (++ X))\n            (set $Extn (val $ExtN))  # Set external symbol offset\n            (pr Y)  # Print binary\n            (? (atom X) Y) ) ) ) )\n\n# (wr 'cnt ..) -> cnt\n(de _Wr (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let N (eval (++ X))\n            (_putStdout (i8 (int N)))\n            (? (atom X) N) ) ) ) )\n\n(local) (getParse parse)\n\n(de i32 getParse ()\n   (let P (val $Parser)\n      (set $Chr\n         (if (i32 (symByte P))\n            @\n            (let C (val 3 P)\n               (set 3 P (shr C 8))\n               (if C (i32 (i8 C)) -1) ) ) ) ) )\n\n(de parse (Nm (i1 . Skip) Eof Set)\n   (let\n      (Chr (val $Chr)\n         Get (val (i8** $Get))\n         Pars (val $Parser) )\n      (set\n         $Chr 0\n         $Get (fun (i32) getParse)\n         $Parser (push 0 (save Nm) Eof) )\n      (when Skip\n         (getParse) )\n      (prog1\n         (cond\n            ((=0 Set) (rdList))\n            ((== 1 Set) (read0 YES))\n            ((=0 (token Set 0)) $Nil)\n            (T\n               (let (R (save (cons @ $Nil))  P R)\n                  (while (token Set 0)\n                     (setq P (set 2 P (cons @ $Nil))) )\n                  R ) ) )\n         (set\n            $Parser Pars\n            (i8** $Get) Get\n            $Chr Chr ) ) ) )\n\n(local) (putString begString tglString endString)\n\n(de void putString ((i8 . B))\n   (byteSym B (val $StrP)) )\n\n(de void begString ((i64* . P))  # [cnt last name link fun ptr]\n   (set 6 P (i64 (val $StrP)))\n   (link (ofs (set $StrP P) 2))\n   (set\n      5 P (val (i64* $Put))\n      $Put (fun (void i8) putString) ) )\n\n(de void tglString ((i64* . P))\n   (xchg (any (ofs P 4)) (any (i64* $Put))) )\n\n(de endString ()\n   (let (P (val $StrP)  Q (ofs P 2))\n      (set\n         (i64* $Put) (val 5 P)\n         $StrP (i64* (val 6 P)) )\n      (drop Q\n         (consStr (val Q)) ) ) )\n\n# (any 'sym) -> any\n(de _Any (Exe)\n   (if (sym? (val (tail (save (evSym (cdr Exe))))))\n      $Nil\n      (parse (name @) YES (hex \"20\") 1) ) )  # Blank, EOF\n\n# (sym 'any) -> sym\n(de _Sym (Exe)\n   (let X (eval (cadr Exe))\n      (begString (push 4 NIL ZERO NIL NIL NIL))  # [cnt last name link fun ptr]\n      (print X)\n      (endString) ) )\n\n# (str 'sym ['sym1]) -> lst\n# (str 'lst) -> sym\n(de _Str (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))\n      (cond\n         ((nil? Y) Y)\n         ((num? Y) (argErr Exe Y))\n         ((pair Y)\n            (begString (push 4 NIL ZERO NIL NIL NIL))  # [cnt last name link fun ptr]\n            (loop\n               (print (++ Y))\n               (? (atom Y))\n               (space) )\n            (endString) )\n         ((sym? (setq Y (val (tail @)))) $Nil)\n         ((atom (shift X))\n            (parse (name Y) NO (hex \"5D0A\") 0) )  # '\\n', ']', EOF\n         (T\n            (save Y\n               (parse (name Y) NO 0 (save (evSym X))) ) ) ) ) )\n\n(local) (stdRead stdEval repl loadAll)\n\n(de stdRead ((i8* . Prmt))\n   (prog2\n      (set\n         $LinePrmt\n         (if\n            (or\n               (nil? (runAt (val $Prompt)))\n               (not (symb? @)) )\n            Prmt\n            (let\n               (Nm (name (val (tail @)))\n                  N (bufSize Nm)\n                  P\n                  (set $ReplPrmt\n                     (alloc (val $ReplPrmt) (+ N (strlen Prmt))) ) )\n               (bufString Nm P)\n               (strcpy (ofs P (dec N)) Prmt)\n               P ) )\n         $ContPrmt ($ \"   \") )\n      (read1\n         (if ((inFile (val $InFile)) tty)\n            (char \"\\n\")\n            (i32 0) ) )\n      (set $LinePrmt (set $ContPrmt null))\n      (while (gt0 (val $Chr))\n         (? (== (val $Chr) (char \"\\n\"))\n            (set $Chr 0) )\n         (if (== (val $Chr) (char \"#\"))\n            (comment)\n            (? (> (val $Chr) (char \" \")))\n            (call $Get) ) ) ) )\n\n(de stdEval (Exe)\n   (flushAll)\n   (let\n      (At (save (val $At))\n         At2 (save (val $At2))\n         X (save (eval Exe)) )\n      (outString ($ \"-> \"))\n      (flushAll)\n      (print X)\n      (unless (nil? (val $Remark))\n         (evExe $Remark X $Nil) )\n      (newline)\n      (set $At3 At2  $At2 At  $At X) ) )\n\n(de repl (Exe (i8* . Prmt) X)\n   (if\n      (and\n         (symb? (save X))\n         (== (firstByte X) (char \"-\")) )\n      (evList (safe (parse (xName X) YES (hex \"5D0A\") 0)))  # '\\n', ']', EOF\n      (let\n         (Lnk (val $NsLink)\n            Tr1 (save (val $Transient))\n            Tr2 (save (val 2 $Transient))\n            Pr1 (save (val $PrivT))\n            Pr2 (save (val 2 $PrivT))\n            V (link (push -ZERO NIL))\n            Raw (val Termio) )\n         (save (val $Intern))\n         (set $NsLink (val $Link))\n         (when (nil? X)\n            (setCooked)\n            (unless (val $Repl)\n               (set $Repl YES)\n               (iSignal (val SIGINT Sig) (fun sig)) ) )\n         (rdOpen Exe X (b8+ (ioFrame T)))\n         (set $PrivT (set 2 $PrivT $Nil))\n         (set $Rule (set $Transient (set 2 $Transient $Nil)))\n         (setq X $Nil)\n         (if (== (val $InFile) (val (val $InFiles)))  # Stdin\n            (until (nil? (stdRead Prmt))\n               (let Y (set V @)\n                  (setq X\n                     (if (and Prmt (=0 (val $Chr)))\n                        (stdEval Y)\n                        (eval Y) ) ) ) )\n            (until (nil? (read1 0))\n               (setq X (eval (set V @))) ) )\n         (popInFiles)\n         (set $Intern (val (val $NsLink)))\n         (when Raw\n            (setRaw) )\n         (set 2 $PrivT Pr2)\n         (set $PrivT Pr1)\n         (set 2 $Transient Tr2)\n         (set $Transient Tr1)\n         (set $NsLink Lnk)\n         X ) ) )\n\n(de loadAll (Exe)\n   (let X $Nil\n      (loop\n         (let (A (val $AV)  P (val A))\n            (?\n               (or\n                  (=0 P)\n                  (and\n                     (== (val P) (char \"-\"))\n                     (=0 (val 2 P)) ) ) )\n            (set $AV (inc A))\n            (setq X (repl Exe null (mkStr P))) ) )\n      X ) )\n\n# (load 'any ..) -> any\n(de _Load (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y\n            (if (t? (eval (++ X)))\n               (loadAll Exe)\n               (repl Exe ($ \"> \") @) )\n            (? (atom X) Y) ) ) ) )\n"
  },
  {
    "path": "src/lib/ex.l",
    "content": "# 10sep25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(exclude\n   picolisp\n   evaluate\n   reflect\n   stoplisp )\n"
  },
  {
    "path": "src/lib/llvm.l",
    "content": "# 05oct25 Software Lab. Alexander Burger\n\n### PicoLisp LLVM frontend ###\n(zap 'llvm) (symbols 'llvm 'pico)\n\n(local) (*Quiche @ @@ @@@ quiche cross void null i1 i1* i1** i8 i8* i8**\ni8*** i16 i16* i16** i32 i32* i32** i64 i64* i64** any YES NO ZERO -ZERO\nONE -ONE SymTab begin end $ ? short equ global var str const globals\narray table symTab inline tailcall define struct $Nil $T $Link drop)\n\n(import pico llvm symbols local T NIL load use setq prog */ ** >> char hex)\n\n(de quiche ()\n   (on *Quiche) )\n\n(export quiche)\n\n### Cross-compiler private ###\n(symbols 'cross 'llvm 'pico)\n\n(import any inc dec ++ shift)\n\n(local) (*Shared *Exclude *Patch *JumpTab *Map *Map2 putMap *Strings\n*Ssa *Lbl *Log *Curr *Exit *Bind *Phi *Call *Ret log asm ssa phi +phi br\nlabel +lbl type func ptr pointee store A B C I L M N P Q V X Y Exe Prg\nTyp Sym Ret Args Ext Table Body Var Val Lst Lbl Flg Skip True False Beg\nEnd Safe *Safe)\n\n(de llvm~exclude Lst\n   (setq *Exclude Lst) )\n\n(de llvm~patch Lst\n   (setq *Patch Lst) )\n\n(off *Map *Map2)\n\n(de *Err\n   (and *Dbg (symbols '(cross llvm pico))) )\n\n(de *Call . \"call\")\n\n(de putMap (Sym N)\n   (let F (file)\n      (idx '*Map\n         (def (name Sym)\n            (cons\n               (+ (cddr F) (or N 0))\n               (pack (car F) (cadr F)) ) )\n         T ) )\n   Sym )\n\n(local) (de DLMAX)\n\n(pico~de de Prg\n   (def (putMap (car Prg)) (cdr Prg)) )\n\n(de DLMAX . 64)  # Max number of 'dlfun's\n\n# Constant primitives\n(de void . void)\n(de null . null)\n\n(de NO . `(def \"0\" 'i1))  # Booleans\n(de YES . `(def \"1\" 'i1))\n(de ZERO . `(def \"2\" 'any))  # Short number '0'\n(de -ZERO . `(def \"10\" 'any))  # Placeholder '-0'\n(de ONE . `(def \"18\" 'any))  # Short number '1'\n(de -ONE . `(def \"26\" 'any))  # Short number '-1'\n\n# Generate LLVM-IR\n(de begin (Name Flg . pico~@)\n   (off *Strings)\n   (prinl \"source_filename = \\\"\" Name \".l\\\"\")\n   (prinl)\n   (prinl \"declare {i64, i1} @llvm.uadd.with.overflow.i64(i64, i64)\")\n   (prinl \"declare {i64, i1} @llvm.usub.with.overflow.i64(i64, i64)\")\n   (prinl \"declare i64 @llvm.fshl.i64(i64, i64, i64)\")\n   (prinl \"declare i64 @llvm.fshr.i64(i64, i64, i64)\")\n   (prinl \"declare void @llvm.memcpy.p0i8.p0i8.i64(i8*, i8*, i64, i1)\")\n   (prinl \"declare void @llvm.memset.p0i8.i64(i8*, i8, i64, i1)\")\n   (prinl \"declare i8* @llvm.stacksave()\")\n   (prinl \"declare void @llvm.stackrestore(i8*)\")\n   (prinl \"declare void @llvm.donothing() nounwind readnone\")\n   (prinl)\n   (let *Shared Flg\n      (pass load) ) )\n\n(de *C-Defs\n   (~(chop \"const \") @A \" \" @Sym \"[\" @Z)\n   (~(chop \"const \") @A \" \" @Sym \" \" @Z)\n   (~(chop \"struct \") @A \" \" \"*\" @Sym \";\" @Z)\n   (~(chop \"struct \") @A \" \" @Sym \";\" @Z)\n   (~(chop \"void *\") @Sym \"(\" @Z)\n   (~(chop \"void \") @Sym \"(\" @Z)\n   (~(chop \"char *\") @Sym \"(\" @Z)\n   (~(chop \"int \") @Sym \";\" @Z)\n   (~(chop \"int \") @Sym \"(\" @Z)\n   (~(chop \"int32_t \") @Sym \"(\" @Z)\n   (~(chop \"int64_t \") @Sym \"(\" @Z)\n   (~(chop \"uint64_t \") @Sym \";\" @Z)\n   (~(chop \"uint64_t \") @Sym \"(\" @Z)\n   (~(chop \"jmp_buf \") @Sym \";\" @Z)\n   (~(chop \"ffi *\") @Sym \"(\" @Z) )\n\n(de end (Map . pico~@)\n   (prinl)\n   (for L *Strings\n      (prinl (caddr L) \" = \" (cdddr L)) )\n   (when Map\n      (out Map\n         (for Sym (idx '*Map)\n            (let X (val Sym)\n               (prinl \"llvm~\" Sym \" (\" (car X) \" \\\"@src/\" (cdr X) \"\\\" llvm pico)\") ) )\n         (while (args)\n            (let (F (next)  N 1)\n               (use (@A @Sym @Z)\n                  (in F\n                     (until (eof)\n                        (let L (circ (line))\n                           (when (find match *C-Defs L)\n                              (prinl \"llvm~\" @Sym \" (\" N \" \\\"@src/\" F \"\\\" llvm pico)\") ) )\n                        (inc 'N) ) ) ) ) )\n         (for Sym (idx '*Map2)\n            (let X (val (car (idx '*Map (val Sym))))\n               (prinl \"pico~\" Sym \" (\" (car X) \" \\\"@src/\" (cdr X) \"\\\" llvm pico)\") ) ) ) ) )\n\n(de log (A)\n   (let? L\n      (chop\n         (or A\n            (and *Log\n               (symbols '(llvm pico cross) (sym (up 2))) ) ) )\n      (and (nth L 65) (con pico~@ \"...\"))\n      (link (cons NIL L)) ) )\n\n(de asm Lst\n   (for L (cddr Lst)\n      (def (putMap (car L))\n         (bind (car Lst)\n            (mapc set (car Lst) (cdr L))\n            (cons (caadr Lst)\n               '(log)\n               (let (@ '@  @@ '@@  @@@ '@@@)\n                  (fill (cdadr Lst)) ) ) ) ) ) )\n\n(de ssa (N . pico~@)\n   (link\n      (cons\n         (pack \"%\" N)\n         (pass pack) ) ) )\n\n(de phi (Lbl Var)\n   (let? Val (val Var)\n      (if (asoq Lbl *Phi)\n         (let L pico~@\n            (if (asoq Var L)\n               (conc pico~@ (list (cons *Curr Val)))\n               (con L\n                  (cons\n                     (list Var NIL (cons *Curr Val))\n                     (cdr L) ) ) ) )\n         (queue '*Phi\n            (list Lbl (list Var NIL (cons *Curr Val))) ) ) ) )\n\n(de +phi (Lbl)\n   (let M NIL\n      (for Var *Bind\n         (unless (memq Var M)\n            (phi Lbl Var)\n            (push 'M Var) ) ) )\n   Lbl )\n\n(de br (A B C)\n   (link\n      (if B\n         (text \"br i1 @1, label %$@2, label %$@3\" A (+phi B) (+phi C))\n         (pack \"br label %$\" (+phi A)) ) ) )\n\n(de label (N)\n   (for L (cdr (asoq (link (setq *Curr N)) *Phi))\n      (when\n         (or\n            (not (name (car L)))\n            (memq (car L) *Bind) )\n         (let Typ\n            (or\n               (pick\n                  '((X)\n                     (and (sym? (cdr X)) (val (cdr X))) )\n                  (cddr L) )\n               'i64 )\n            (cond\n               ((== void Typ) void)\n               ((fully\n                     '((X)\n                        (cond\n                           ((=T (cdr X)))\n                           ((num? (cdr X))\n                              (memq Typ '(i8 i16 i32 i64 any)) )\n                           (T\n                              (== (type Typ) (type (val (cdr X)))) ) ) )\n                     (cddr L) )\n                  (set\n                     (car L)  # Var\n                     (set\n                        (cdr L)  # Ssa\n                        (def (pack \"%\" (inc '*Ssa)) Typ) ) ) )\n               (T void) ) ) ) ) )\n\n(de +lbl ()\n   (inc '*Lbl) )\n\n(de type (Typ)\n   (cond\n      ((== 'any Typ) 'i64)\n      ((== null Typ) 'i8*)\n      ((pair Typ) (func pico~@))\n      (T Typ) ) )\n\n(de func (Lst)\n   (pack\n      (type (car Lst))\n      \"(\"\n      (glue \",\" (mapcar type (cdr Lst)))\n      \")*\" ) )\n\n(de ptr (Typ)\n   (or\n      (pair Typ)\n      (if (== 'any Typ)\n         Typ\n         (intern (pack Typ \"*\")) ) ) )\n\n(de pointee (Typ)\n   (if (== 'any Typ)\n      Typ\n      (intern (head -1 (chop Typ))) ) )\n\n(de store (X P Ofs)\n   (nond\n      ((memq (val P) '(i64 any))\n         (when (num? X)\n            (setq X (def (format X) (pointee (val P)))) )\n         (ifn Ofs\n            (link\n               (text \"store @1 @2, @3@4 @5\"\n                  (type (val X)) X\n                  (type (val P)) (and (pair (val P)) \"*\")\n                  P ) )\n            (ssa (inc '*Ssa) \"getelementptr \"\n               (type (val X)) \", \"\n               (type (val P)) (and (pair (val P)) \"*\")\n               \" \" P \", i32 \" Ofs )\n            (link\n               (text \"store @1 @2, @3@4 %@5\"\n                  (type (val X)) X\n                  (type (val P)) (and (pair (val P)) \"*\")\n                  *Ssa ) ) ) )\n      ((pre? \"@\" P)\n         (ssa (inc '*Ssa) \"inttoptr i64 \" P \" to i64*\")\n         (when Ofs\n            (ssa (inc '*Ssa) \"getelementptr i64, i64* %\" (dec *Ssa) \", i32 \" Ofs) )\n         (link (text \"store i64 @1, i64* %@2\" X *Ssa)) )\n      (NIL\n         (link (text \"store i64 @1, i64* @2\" X P)) ) )\n   X )\n\n(de $ (Str)\n   (if (assoc Str *Strings)\n      (cadr pico~@)\n      (let\n         (Sym (pack \"@$\" (inc (length *Strings)))\n            Arr (text \"[@1 x i8]\" (inc (size Str)))\n            Val (def (text \"bitcast (@1* @2 to i8*)\" Arr Sym) 'i8*) )\n         (push '*Strings\n            (cons Str Val Sym\n               (pack\n                  (make\n                     (link \"private constant \" Arr \" c\\\"\")\n                     (for C (chop Str)\n                        (if (or (> \" \" C) (sub? C \"\\\"\"))\n                           (link \"\\\\\" (pad 2 (hex (char C))))\n                           (link C) ) )\n                     (link \"\\\\00\\\"\") ) ) ) )\n         Val ) ) )\n\n(de short (N)\n   (| 2 (>> -4 N)) )\n\n(de equ Lst\n   (while Lst\n      (set (putMap (++ Lst)) (eval (++ Lst))) ) )\n\n(de global (Sym Typ Val)\n   (unless (memq Sym *Exclude)\n      (prin\n         \"@\" Sym \" = \"\n         (unless (and Val (not *Shared)) \"external \")\n         \"global \" (type Typ) )\n      (and Val (putMap Sym))\n      (cond\n         (*Shared)\n         ((pre? \"_\" Val) (prin \" @\" pico~@))\n         ((pre? \"$\" Val)\n            (if (; Val offset)\n               (prin\n                  \" ptrtoint (i8* getelementptr (i8, i8* bitcast ([\"\n                  (; Val table length)\n                  \" x i64]* @\"\n                  (; Val table)\n                  \" to i8*), i32 \"\n                  pico~@\n                  \") to i64)\" )\n               (prin \" ptrtoint (\"\n                  (if (== 'any Typ) 'i64 Typ)\n                  \"* @\" pico~@ \" to \"\n                  (if (== 'any Typ) 'i64 Typ)\n                  \")\" ) ) )\n         (Val (prin \" \" pico~@)) )\n      (prinl)\n      (def Sym (def (pack \"@\" Sym) (ptr Typ))) ) )\n\n(de var Lst\n   (global\n      (++ Lst)\n      (if (cdr Lst) (++ Lst) 'any)\n      (eval (car Lst)) ) )\n\n(de str Lst\n   (let ((Sym Val) Lst  Arr (text \"[@1 x i8]\" (inc (size Val))))\n      (unless (memq Sym *Exclude)\n         (def (putMap Sym)\n            (def (text \"bitcast (@1* @@@2 to i8*)\" Arr Sym) 'i8*) )\n         (prin \"@\" Sym \" = constant \" Arr \" c\\\"\")\n         (for C (chop Val)\n            (if (or (> \" \" C) (sub? C \"\\\"\\\\\"))\n               (prin \"\\\\\" (pad 2 (hex (char C))))\n               (prin C) ) )\n         (prinl \"\\\\00\\\"\") ) ) )\n\n(de const (Val Var)\n   (cond\n      ((pre? \"_\" Val)\n         (ifn Var\n            (prin\n               \"  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast \"\n               (if (pre? \"__\" Val) \"(i64(i64,i64)*\" \"(i64(i64)*\")\n               \" @\"\n               Val\n               \" to i8*), i32 2) to i64)\" )\n            (prin \"  i64 \" (short (length (val Var))))\n            (push Var\n               (text\n                  \"  i64 ptrtoint (i8* bitcast @1 @@@2 to i8*) to i64)\"\n                  (if (pre? \"__\" Val) \"(i64(i64,i64)*\" \"(i64(i64)*\")\n                  Val ) ) ) )\n      ((pre? \"$\" Val)\n         (if (; Val offset)\n            (prin\n               \"  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([\"\n               (; Val table length)\n               \" x i64]* @\"\n               (; Val table)\n               \" to i8*), i32 \"\n               pico~@\n               \") to i64)\" )\n            (prin Val) ) )\n      (T\n         (prin \"  i64 \" (eval Val)) ) ) )\n\n(de array Lst\n   (let Sym (++ Lst)\n      (unless (memq Sym *Exclude)\n         (let\n            (Typ (++ Lst)\n               Len (if (pair Lst) (length Lst) (eval Lst)) )\n            (def (putMap Sym)\n               (def\n                  (text \"bitcast ([@1 x @2]* @@@3 to @4)\"\n                     Len (setq Typ (type Typ)) Sym (ptr Typ) )\n                  (ptr Typ) ) )\n            (prin\n               \"@\" Sym \" = \" (when *Shared \"external \")\n               \"global [\" Len \" x \" Typ \"]\" )\n            (cond\n               (*Shared (prinl))\n               ((atom Lst) (prinl \" zeroinitializer\"))\n               (T\n                  (prinl *Shared \" [\")\n                  (for (I . X) Lst\n                     (prinl\n                        \"  \" Typ \" \" (eval X)\n                        (unless (== I Len) \",\") ) )\n                  (prinl \"]\") ) ) ) ) ) )\n\n(de table Args\n   (let\n      (Table (++ Args)\n         I 0\n         @N\n         (* 8\n            (put Table 'length\n               (length\n                  (setq Args\n                     (filter\n                        '((L) (not (memq (car L) *Exclude)))\n                        Args ) ) ) ) )\n         @S (caar Args) )\n      (def (putMap Table)\n         (curry (@N @S) A\n            (if A @N (i8* @S)) ) )\n      (prinl\n         \"@\" Table \" = \" (when *Shared \"external \")\n         \"global [\" (; Table length) \" x i64]\" (unless *Shared \" [\") )\n      (for (I . Lst) Args\n         (let Typ (if (caddr Lst) (cadr Lst) 'any)\n            (let? Sym (car Lst)\n               (put (putMap Sym I) 'table Table)\n               (put Sym 'offset (* 8 (dec I)))\n               (def Sym\n                  (def\n                     (pack\n                        (if (== 'any Typ)\n                           \"ptrtoint (i8* getelementptr (i8, i8* bitcast ([\"\n                           \"bitcast (i8* getelementptr (i8, i8* bitcast ([\" )\n                        (; Table length)\n                        \" x i64]* @\"\n                        Table\n                        \" to i8*), i32 \"\n                        (; Sym offset)\n                        \") to \"\n                        (type Typ)\n                        (unless (== 'any Typ) \"*\")\n                        \")\" )\n                     (ptr Typ) ) ) )\n            (unless *Shared\n               (nond\n                  ((caddr Lst) (const (cadr Lst)))\n                  ((pair Typ)\n                     (if (sub? \"*\" Typ)\n                        (prin \"  i64 ptrtoint\" \" (\" (cadr Lst) \" \" (caddr Lst) \" to i64)\")\n                        (prin \"  i64 \" (caddr Lst)) ) )\n                  (NIL\n                     (prin\n                        \"  i64 ptrtoint (\"\n                        (func pico~@)\n                        (if (== null (caddr Lst)) \" \" \" @\")\n                        (caddr Lst)\n                        \" to i64)\" ) ) )\n               (prinl (unless (== Lst (last Args)) \",\")) ) ) ) )\n   (unless *Shared\n      (prinl \"], align 8\") ) )\n\n(de symTab Args\n   (let (Table 'SymTab  I 0)\n      (put Table 'length\n         (sum\n            '((L)\n               (if (> (length (cadr L)) 7) 4 2) )\n            (setq Args\n               (filter\n                  '((L) (not (memq (caddr L) *Exclude)))\n                  Args ) ) ) )\n      (prinl\n         \"@\" Table \" = \" (when *Shared \"external \")\n         \"global [\" (; Table length) \" x i64]\" (unless *Shared \" [\") )\n      (for (J . Lst) Args\n         (let? Sym (car Lst)\n            (put (putMap Sym J) 'table Table)\n            (put Sym 'offset (+ I (or (cadddr Lst) 8)))\n            (def Sym\n               (def\n                  (text \"ptrtoint (i8* getelementptr (i8, i8* bitcast ([@1 x i64]* @@@2 to i8*), i32 @3) to i64)\"\n                     (; Table length) Table (; Sym offset) )\n                  'any ) ) )\n         (unless *Shared\n            (let Name\n               (when (str? (cadr Lst))\n                  (prinl \"  ; # [\" I \"] \" pico~@)\n                  (let L (chop pico~@)\n                     (make\n                        (when (nth L 8)  # Max 15 ASCII characters\n                           (let (D 0  N 0)\n                              (do 8\n                                 (setq\n                                    N (| N (>> D (char (++ L))))\n                                    D (- D 8) ) )\n                              (link N) ) )\n                        (let (D 0  N 0)\n                           (while L\n                              (setq\n                                 N (| N (>> D (char (++ L))))\n                                 D (- D 8) ) )\n                           (link (short N)) ) ) ) )\n               (nond  # Name\n                  (Name\n                     (const (cadr Lst))\n                     (prinl \",\") )\n                  ((cdr Name)\n                     (prinl \"  i64 \" (car Name) \",\") )\n                  (NIL\n                     (prinl\n                        \"  i64 ptrtoint (i8* getelementptr (i8, i8* bitcast ([\" (; Table length) \" x i64]* @\"\n                        Table\n                        \" to i8*), i32 \"\n                        (+ I 16 4)\n                        \") to i64),\" ) ) )\n               (if *Quiche\n                  (const (caddr Lst) '*JumpTab)  # Value\n                  (const (caddr Lst)) )\n               (and\n                  (cadr Lst)\n                  (pre? \"_\" (caddr Lst))\n                  (idx '*Map2 (def (cadr Lst) (caddr Lst)) T) )\n               (when (cdr Name)  # Long name\n                  (prinl \",\")\n                  (inc 'I 16)\n                  (prinl \"  i64 \" (car Name) \",\")\n                  (prin \"  i64 \" (cadr Name)) ) )\n            (prinl (unless (== Lst (last Args)) \",\")) )\n         (inc 'I 16) )\n      (unless *Shared\n         (prinl \"], align 16\")\n         (when *Quiche\n            (prinl \"@$JumpIx = global i64 0\")  # 0 .. 63\n            (prinl \"@$JumpTab = \" \"global [\" (+ (length *JumpTab) DLMAX) \" x i64] [\")\n            (for S (reverse *JumpTab)\n               (prinl S \",\") )\n            (for I DLMAX  # Empty slots for 'dlfun'\n               (prinl\n                  \"  i64 ptrtoint (i8* bitcast (i64(i64)* @_Nil to i8*) to i64)\"\n                  (unless (== I DLMAX) \",\")) )\n            (prinl \"]\") ) ) ) )\n\n(de inline Lst\n   (let Sym (++ Lst)\n      (def (putMap Sym)\n         (if (memq Sym *Exclude)\n            '(() (link \"call void @llvm.donothing()\"))\n            (let ((@Args . @Body) Lst)\n               (bind\n                  (mapcar\n                     '((X) (cons X (name X)))\n                     @Args )\n                  (setq\n                     @Body (fill @Body @Args)\n                     @Args (mapcar val @Args) ) )\n               (fill\n                  '(@Args\n                     (log)\n                     (let (*Bind '@Args  *Log)\n                        . @Body ) ) ) ) ) ) ) )\n\n(de tailcall Prg\n   (let *Call \"tail call\"\n      (run Prg) ) )\n\n(de define (Ext Ret Sym Args Body)\n   (if (memq Sym *Exclude)\n      (def Sym\n         '(() (link \"call void @llvm.donothing()\")) )\n      (when Body\n         (prinl)\n         (let? L (asoq Sym *Patch)\n            (pico~patch Body (cadr L) (caddr L)) ) )\n      (setq *Ssa -1)\n      (off *Bind *Phi *Safe)\n      (bind (and Body (mapcar fin Args))\n         (with Sym\n            (setq *Ret\n               (if Ret\n                  (type Ret)\n                  (=: noreturn T)\n                  void ) )\n            (cond\n               (Ext (prin \"declare \" *Ret \" @\" Sym \"(\"))\n               (Body\n                  (putMap Sym)\n                  (prin \"define \" *Ret \" @\" Sym \"(\") ) )\n            (when\n               (=: args\n                  (replace\n                     (ifn Body\n                        Args\n                        (mapcar\n                           '((A)\n                              (push '*Bind (fin A))\n                              (set\n                                 (set (fin A) (pack \"%\" (inc '*Ssa)))\n                                 (if (atom A) 'any (car A)) ) )\n                           Args ) )\n                     'any 'i64 ) )\n               (=: sign (cons *Ret (: args)))\n               (when (or Ext Body)\n                  (prin (car (: args)))\n                  (for A (cdr (: args))\n                     (prin \", \" A) ) ) )\n            (cond\n               (Ext (prinl \")\"))\n               (Body (prinl \") align 8 {\")) )\n            (def This\n               (list 'pico~@\n                  (make\n                     (link 'let 'A\n                        (list 'mapcar\n                           ''((Typ) (pack Typ \" \" (next)))\n                           (lit (: args)) ) )\n                     (link '(log))\n                     (let L\n                        (list\n                           '*Call \" \" (lit *Ret) \" @\" (lit Sym)\n                           \"(\" '(glue \", \" A) \")\" )\n                        (link\n                           (if (== void *Ret)\n                              (list 'link (cons 'pack L))\n                              (cons 'ssa '(inc '*Ssa) L) ) ) )\n                     (if (: noreturn)\n                        (link '(link \"unreachable\") NIL)\n                        (link\n                           (or\n                              (== void *Ret)\n                              (list 'def '(pack \"%\" *Ssa) (lit Ret)) ) ) ) ) ) ) )\n         (when Body\n            (let (*Lbl 1  *Log T)\n               (for X\n                  (make\n                     (label *Lbl)\n                     (let? R (run Body)\n                        (and *Safe (drop *Safe))\n                        (if (== void *Ret)\n                           (link \"ret void\")\n                           (link (pack \"ret \" *Ret \" \" R)) ) ) )\n                  (cond\n                     ((num? X)\n                        (prinl \"$\" X \":\")\n                        (for L (cdr (asoq X *Phi))\n                           (when (cadr L)\n                              (prin\n                                 \"  \" (cadr L) \" = phi \"\n                                 (type (val (cadr L)))\n                                 \" [\" (cdaddr L) \", %$\" (caaddr L) \"]\" )\n                              (for X (cdddr L)\n                                 (prin \", [\" (cdr X) \", %$\" (car X) \"]\") )\n                              (prinl \" ; # \" (or (name (car L)) \"->\")) ) ) )\n                     ((atom X) (prinl \"  \" X))\n                     ((not (car X)) (prinl \"; # \" (cdr X)))\n                     (T (prinl \"  \" (car X) \" = \" (cdr X))) ) ) )\n            (prinl \"}\") ) ) ) )\n\n(de struct Lst\n   (def (putMap (car Lst))\n      (let\n         (@N 0\n            @L\n            (mapcar\n               '((X)\n                  (prog1\n                     (cons (car X) @N (cddr X))\n                     (inc '@N (eval (cadr X))) ) )\n               (cdr Lst) ) )\n         (curry (@N @L) (@P)\n            (if (=T @P)\n               @N\n               (curry (@P) Args\n                  (log)\n                  (let *Log NIL\n                     (nond\n                        (Args '@P)\n                        ((or\n                              (asoq (car Args) '@L)\n                              (and\n                                 (pair (car Args))\n                                 (asoq (car pico~@) '@L) ) )\n                           (quit \"Bad struct item\" (car Args)) )\n                        (NIL\n                           (let P (llvm~ofs '@P (cadr pico~@))\n                              (let Q ((ptr (caddr pico~@)) P)\n                                 (if (atom (car Args))\n                                    (if (cadr Args)\n                                       (llvm~set Q (eval pico~@ 1 '(*Log)))\n                                       (llvm~val Q) )\n                                    (ifn (cdar Args)\n                                       P\n                                       (let A (cadar Args)\n                                          (setq P\n                                             (llvm~ofs P\n                                                (if (sym? A) (; A offset) (eval A 1 '(*Log))) ) ) )\n                                       (ifn (cddar Args)\n                                          P\n                                          (let Q ((ptr (caddar Args)) P)\n                                             (if (cadr Args)\n                                                (llvm~set Q (eval pico~@ 1 '(*Log)))\n                                                (llvm~val Q) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )\n\n\n### Cross compiler overridden ###\n(symbols '(cross pico llvm))\n\n(de llvm~de Lst\n   (define\n      (or\n         (and (=T (car Lst)) (++ Lst))\n         (and\n            *Shared\n            (not ((if (lst? (cadr Lst)) cddr cdddr) Lst)) ) )\n      (if (lst? (cadr Lst)) 'any (++ Lst))\n      (car Lst)\n      (cadr Lst)\n      (cddr Lst) ) )\n\n(de llvm~evBool (Exe)\n   (let X (eval Exe)\n      (cond\n         ((num? X) (if (=0 X) NO YES))\n         ((== 'i1 (val X)) X)\n         (T\n            (let *Log NIL\n               (llvm~n0 X) ) ) ) ) )\n\n# Quiche checks\n(de okVar (Val . Prg)\n   (ifn *Quiche\n      (run Prg)\n      (let (Var (box)  Beg *Curr  Ok (+lbl)  End (+lbl))\n         (ssa (inc '*Ssa) \"and i64 \" Val \", 6\")  # Not a number\n         (ssa (inc '*Ssa) \"icmp ne i64 %\" (dec *Ssa) \", 0\")\n         (set Var $Nil)\n         (phi End Var)\n         (br (pack \"%\" *Ssa) End Ok)\n         (label Ok)\n         (set Var (run Prg))\n         (phi End Var)\n         (br End)\n         (label End) ) ) )\n\n(de okCell (Val . Prg)\n   (ifn *Quiche\n      (run Prg)\n      (let (Var (box)  Beg *Curr  Ok (+lbl)  End (+lbl))\n         (ssa (inc '*Ssa) \"and i64 \" Val \", 15\")  # Not a number or symbol\n         (ssa (inc '*Ssa) \"icmp ne i64 %\" (dec *Ssa) \", 0\")\n         (set Var $Nil)\n         (phi End Var)\n         (br (pack \"%\" *Ssa) End Ok)\n         (label Ok)\n         (set Var (run Prg))\n         (phi End Var)\n         (br End)\n         (label End) ) ) )\n\n# Type casts\n(asm ()\n   ((X)\n      (if (num? X)\n         (def (format X) 'i8)\n         (let V (type (val X))\n            (casq V\n               ((i16 i32 i64 any) (ssa (inc '*Ssa) \"trunc \" V \" \" X \" to i8\"))\n               (T (quit \"Bad type\" V)) ) )\n         (def (pack \"%\" *Ssa) 'i8) ) )\n   (llvm~i8) )\n\n(asm ()\n   ((X)\n      (if (num? X)\n         (def (format X) 'i16)\n         (let V (type (val X))\n            (casq V\n               ((i1 i8) (ssa (inc '*Ssa) \"zext \" V \" \" X \" to i16\"))\n               ((i64 any) (ssa (inc '*Ssa) \"trunc \" V \" \" X \" to i16\"))\n               (T (quit \"Bad type\" V)) ) )\n         (def (pack \"%\" *Ssa) 'i16) ) )\n   (llvm~i16) )\n\n(asm ()\n   ((X)\n      (if (num? X)\n         (def (format X) 'i32)\n         (let V (type (val X))\n            (casq V\n               ((i1 i8) (ssa (inc '*Ssa) \"zext \" V \" \" X \" to i32\"))\n               ((i64 any) (ssa (inc '*Ssa) \"trunc \" V \" \" X \" to i32\"))\n               (T (quit \"Bad type\" V)) ) )\n         (def (pack \"%\" *Ssa) 'i32) ) )\n   (llvm~i32) )\n\n(asm ()\n   ((X)\n      (let V (val X)\n         (if (== 'any V)\n            (def (name X) 'i64)\n            (casq V\n               ((i1 i8) (ssa (inc '*Ssa) \"zext \" V \" \" X \" to i64\"))\n               ((i16 i32) (ssa (inc '*Ssa) \"sext \" V \" \" X \" to i64\"))\n               ((i1* i8* i8** i16* i16** i32* i32** i64* i64**)\n                  (ssa (inc '*Ssa) \"ptrtoint \" V \" \" X \" to i64\") )\n               (T (quit \"Bad type\" V)) )\n            (def (pack \"%\" *Ssa) 'i64) ) ) )\n   (llvm~i64) )\n\n(asm ()\n   ((X)\n      (let V (val X)\n         (casq V\n            ((i8 i16 i32) (ssa (inc '*Ssa) \"zext \" V \" \" X \" to i64\"))\n            (T (quit \"Bad type\" V)) )\n         (def (pack \"%\" *Ssa) 'i64) ) )\n   (llvm~i64u) )\n\n(asm (@Typ)\n   ((X)\n      (let V (val X)\n         (cond\n            ((pair V)\n               (ssa (inc '*Ssa) \"bitcast \" (func V) \"* \" X \" to \" '@Typ)\n               (def (pack \"%\" *Ssa) '@Typ) )\n            ((memq V '(i64 any))\n               (ssa (inc '*Ssa) \"inttoptr i64 \" X \" to \" '@Typ)\n               (def (pack \"%\" *Ssa) '@Typ) )\n            ((== null V)\n               (ssa (inc '*Ssa) \"inttoptr i64 0 to \" '@Typ)\n               (def (pack \"%\" *Ssa) '@Typ) )\n            ((sub? \"*\" V)\n               (if (== V '@Typ)\n                  X\n                  (ssa (inc '*Ssa) \"bitcast \" V \" \" X \" to \" '@Typ)\n                  (def (pack \"%\" *Ssa) '@Typ) ) )\n            (T (quit \"Bad type\" V)) ) ) )\n   (llvm~i1* llvm~i1*)\n   (llvm~i8* llvm~i8*)\n   (llvm~i8** llvm~i8**)\n   (llvm~i16* llvm~i16*)\n   (llvm~i32* llvm~i32*)\n   (llvm~i64* llvm~i64*) )\n\n(asm ()\n   ((X)\n      (if (num? X)\n         (def (format X) 'any)\n         (let V (val X)\n            (cond\n               ((pre? \"@$\" X)\n                  (ssa (inc '*Ssa) \"ptrtoint i64* \" X \" to i64\") )\n               ((== 'i64 V)\n                  (def (name X) 'any) )\n               ((memq V '(i1* i8* i16* i32* i64*))\n                  (ssa (inc '*Ssa) \"ptrtoint \" V \" \" X \" to i64\") )\n               (T (quit \"Bad type\" V)) )\n            (def (pack \"%\" *Ssa) 'any) ) ) )\n   (llvm~any) )\n\n(asm ()\n   (Args\n      (if (pair (car Args))\n         (def (pack \"@\" (cadr Args)) @)\n         (i8*\n            (def (pack \"@\" (car Args))\n               (func (; Args 1 sign)) ) ) ) )\n   (llvm~fun) )\n\n(asm (@Tag)\n   ((X)\n      (let V (val X)\n         (casq V\n            ((i64 any)\n               (ssa (inc '*Ssa) \"add i64 \" X \", \" @Tag)\n               (def (pack \"%\" *Ssa) 'any) )\n            ((i1* i8* i64*)\n               (ssa (inc '*Ssa) \"ptrtoint \" V \" \" X \" to i64\")\n               (ssa (inc '*Ssa) \"add i64 %\" (dec *Ssa) \", \" @Tag)\n               (ssa (inc '*Ssa) \"inttoptr i64 %\" (dec *Ssa) \" to \" V)\n               (def (pack \"%\" *Ssa) V) )\n            (T (quit \"Bad type\" V)) ) ) )\n   (llvm~big 4)\n   (llvm~dig -4)\n   (llvm~tail -8) )\n\n# Type checks\n(asm (@Tag @Pred)\n   ((X)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"and i64 \" X \", \" @Tag)\n      (ssa (inc '*Ssa) \"icmp \" @Pred \" i64 %\" (dec *Ssa) \", 0\")\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~cnt? 2 \"ne\")\n   (llvm~big? 4 \"ne\")\n   (llvm~num? 6 \"ne\")\n   (llvm~sym? 8 \"ne\")\n   (llvm~sign? 8 \"ne\")\n   (llvm~atom 15 \"ne\")\n   (llvm~pair 15 \"eq\") )\n\n(asm ()\n   ((X)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"xor i64 \" X \", 8\")\n      (ssa (inc '*Ssa) \"and i64 %\" (dec *Ssa) \", 14\")\n      (ssa (inc '*Ssa) \"icmp eq i64 %\" (dec *Ssa) \", 0\")\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~symb?) )\n\n(asm ()\n   ((X)\n      (ssa (inc '*Ssa) \"icmp eq i1 \" X \", 0\")\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~not) )\n\n(asm (@Sym)\n   ((X)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"icmp eq i64 \" X \", \" @Sym)\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~nil? $Nil)\n   (llvm~t? $T) )\n\n# Comparisons\n(asm (@Pred)\n   ((X Y)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"icmp \" @Pred \" \"\n         (type (val (if (sym? X) X Y)))\n         \" \" X \", \" Y )\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~== \"eq\")\n   (llvm~<> \"ne\") )\n\n(asm (@Pred1 @Pred2)\n   ((X Y)\n      (setq llvm~@ X)\n      (let V (type (val (if (sym? X) X Y)))\n         (ssa (inc '*Ssa) \"icmp \"\n            (if (== 'i32 V) @Pred1 @Pred2)\n            \" \" V \" \" X \", \" Y ) )\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~> \"sgt\" \"ugt\")\n   (llvm~>= \"sge\" \"uge\")\n   (llvm~< \"slt\" \"ult\")\n   (llvm~<= \"sle\" \"ule\") )\n\n(asm (@Pred)\n   ((X)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"icmp \" @Pred \" \"\n         (type (val X)) \" \" X \", \"\n         (if (sub? \"*\" (val X)) null 0) )\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~=0 \"eq\")\n   (llvm~n0 \"ne\") )\n\n(asm (@Pred)\n   ((X)\n      (setq llvm~@ X)\n      (ssa (inc '*Ssa) \"icmp \" @Pred\n         \" \" (type (val X)) \" \" X \", 0\" )\n      (def (pack \"%\" *Ssa) 'i1) )\n   (llvm~gt0 \"sgt\")\n   (llvm~ge0 \"sge\")\n   (llvm~le0 \"sle\")\n   (llvm~lt0 \"slt\") )\n\n# Arithmetics\n(asm (@Op1 @Op2 @Sgn)\n   ((X . @)\n      (cond\n         ((num? X) (pass @Op1 X))\n         ((args)\n            (let V (val X)\n               (for (Y (next)  Y  (next))\n                  (casq V\n                     ((i8 i32 i64 any)\n                        (when (and (sym? Y) (== 'i1 (val Y)))\n                           (ssa (inc '*Ssa) \"zext i1 \" Y \" to i64\")\n                           (setq Y (pack \"%\" *Ssa)) )\n                        (ssa (inc '*Ssa) @Op2 \" \" (type V) \" \" X \", \" Y) )\n                     ((i1* i1** i8* i8** i8*** i32* i32** i64* i64**)\n                        (let Typ (pointee V)\n                           (if (num? Y)\n                              (ssa (inc '*Ssa) \"getelementptr \" Typ \", \" V \" \" X \", i32 \" @Sgn Y)\n                              (unless (== 'i64 V)\n                                 (ssa (inc '*Ssa) \"ptrtoint \" V \" \" X \" to i64\") )\n                              (unless (== 'i64 (val Y))\n                                 (ssa (inc '*Ssa) \"ptrtoint \" (val Y) \" \" Y \" to i64\") )\n                              (ssa (inc '*Ssa) @Op2 \" i64 %\" (- *Ssa 2) \", %\" (dec *Ssa))\n                              (setq V 'i64) ) ) )\n                     (T (quit \"Bad type\" V)) )\n                  (setq X (def (pack \"%\" *Ssa) V)) ) ) )\n         (T\n            (ssa (inc '*Ssa) @Op2 \" \" (type (val X)) \" 0, \" X)\n            (def (pack \"%\" *Ssa) (val X)) ) ) )\n   (llvm~+ + \"add\")\n   (llvm~- - \"sub\" \"-\") )\n\n(asm (@Op)\n   ((X Y C)\n      (when (and (sym? Y) (== 'i1 (val Y)))\n         (ssa (inc '*Ssa) \"zext i1 \" Y \" to i64\")\n         (setq Y (pack \"%\" *Ssa)) )\n      (ssa (inc '*Ssa) \"call {i64, i1} @llvm.u\" @Op \".with.overflow.i64(i64 \" X \", i64 \" Y \")\")\n      (ssa (inc '*Ssa) \"extractvalue {i64, i1} %\" (dec *Ssa) \", 1\")\n      (ssa (inc '*Ssa) \"extractvalue {i64, i1} %\" (- *Ssa 2) \", 0\")\n      (when C\n         (ssa (inc '*Ssa) \"zext i1 \" C \" to i64\")\n         (ssa (inc '*Ssa) \"call {i64, i1} @llvm.u\" @Op \".with.overflow.i64(i64 %\" (- *Ssa 2) \", i64 %\" (dec *Ssa) \")\")\n         (ssa (inc '*Ssa) \"extractvalue {i64, i1} %\" (dec *Ssa) \", 1\")\n         (ssa (inc '*Ssa) \"or i1 %\" (- *Ssa 5) \", %\" (dec *Ssa))\n         (ssa (inc '*Ssa) \"extractvalue {i64, i1} %\" (- *Ssa 3) \", 0\") )\n      (setq llvm~@@ (def (pack \"%\" (dec *Ssa)) 'i1))\n      (def (pack \"%\" *Ssa) 'i64) )\n   (llvm~add \"add\")\n   (llvm~sub \"sub\") )\n\n(asm (@Op1 @Op2 @Sgn)\n   ((X Y)\n      (if (num? X)\n         (if Y (@Op1 X @) (@Op1 X))\n         (default Y 1)\n         (let\n            (Typ (if (num? Y) 'i32 (type (val Y)))\n               Z (or (pre? \"%\" X) (val X))\n               V (val Z) )\n            (casq V\n               ((i8 i32 i64 any)\n                  (ssa (inc '*Ssa) @Op2 \" \" (type V) \" \" Z \", \" Y) )\n               ((i1* i1** i8* i8** i8*** i16* i16** i32* i32** i64* i64**)\n                  (ssa (inc '*Ssa) \"getelementptr \" (pointee V) \", \" V \" \" Z \", \" Typ \" \" @Sgn Y) )\n               (T (quit \"Bad type\" V)) )\n            (prog1\n               (def (pack \"%\" *Ssa) V)\n               (unless (pre? \"%\" X)\n                  (set X @) ) ) ) ) )\n   (llvm~inc inc \"add\")\n   (llvm~dec dec \"sub\" \"-\") )\n\n(asm (@Op1 @Op2)\n   ((X Y)\n      (if (and (num? X) (num? Y))\n         (@Op1 X Y)\n         (let V (type (val (if (sym? X) X Y)))\n            (ssa (inc '*Ssa) @Op2 \" \" V \" \" X \", \" Y)\n            (def (pack \"%\" *Ssa) V) ) ) )\n   (llvm~* * \"mul\")\n   (llvm~/ / \"udiv\")\n   (llvm~% % \"urem\")\n   (llvm~& & \"and\")\n   (llvm~| | \"or\")\n   (llvm~x| x| \"xor\") )\n\n(asm ()\n   ((X Y)\n      (unless (num? X)\n         (ssa (inc '*Ssa) \"zext i64 \" X \" to i128\")\n         (setq X (pack \"%\" *Ssa)) )\n      (ssa (inc '*Ssa) \"zext i64 \" Y \" to i128\")\n      (ssa (inc '*Ssa) \"mul i128 \" X \", %\" (dec *Ssa))\n      (ssa (inc '*Ssa) \"lshr i128 %\" (dec *Ssa) \", 64\")\n      (ssa (inc '*Ssa) \"trunc i128 %\" (dec *Ssa) \" to i64\")\n      (setq llvm~@@@ (def (pack \"%\" *Ssa) 'i64))\n      (ssa (inc '*Ssa) \"trunc i128 %\" (- *Ssa 3) \" to i64\")\n      (def (pack \"%\" *Ssa) 'i64) )\n   (llvm~mul) )\n\n(asm ()\n   ((X Y Z)\n      (ssa (inc '*Ssa) \"zext i64 \" X \" to i128\")\n      (ssa (inc '*Ssa) \"shl i128 %\" (dec *Ssa) \", 64\")\n      (ssa (inc '*Ssa) \"zext i64 \" Y \" to i128\")\n      (ssa (setq Y (inc '*Ssa)) \"or i128 %\" (- *Ssa 2) \", %\" (dec *Ssa))\n      (unless (num? Z)\n         (ssa (inc '*Ssa) \"zext i64 \" Z \" to i128\")\n         (setq Z (pack \"%\" *Ssa)) )\n      (ssa (inc '*Ssa) \"urem i128 %\" Y \", \" Z)\n      (ssa (inc '*Ssa) \"trunc i128 %\" (dec *Ssa) \" to i64\")\n      (setq llvm~@@@ (def (pack \"%\" *Ssa) 'i64))\n      (ssa (inc '*Ssa) \"udiv i128 %\" Y \", \" Z)\n      (ssa (inc '*Ssa) \"trunc i128 %\" (dec *Ssa) \" to i64\")\n      (def (pack \"%\" *Ssa) 'i64) )\n   (llvm~div) )\n\n(asm (@Op @Op2)\n   ((X Y Z)\n      (when (num? X)\n         (setq X (def (format X) 'i64)) )\n      (ifn Z\n         (let V (type (val X))\n            (ssa (inc '*Ssa) @Op \" \" V \" \" X \", \" Y)\n            (def (pack \"%\" *Ssa) V) )\n         (ssa (inc '*Ssa) \"call \"\n            \"i64 @llvm.\" @Op2 \".i64(\"\n            \"i64 \" X \", \"\n            \"i64 \" Y \", \"\n            \"i64 \" Z \")\" )\n         (def (pack \"%\" *Ssa) 'i64) ) )\n   (llvm~shl \"shl\" \"fshl\")\n   (llvm~shr \"lshr\" \"fshr\") )\n\n# Memory access\n(asm ()\n   ((X Y)\n      (if (=0 Y)\n         X\n         (casq (val X)\n            ((i64 any)\n               (if (num? Y)\n                  (ssa (inc '*Ssa) \"add i64 \" X \", \" (* 8 Y))\n                  (if (== 'i64 (val Y))\n                     (ssa (inc '*Ssa) \"shl i64 \" Y \", 3\")\n                     (ssa (inc '*Ssa) \"zext \" (val Y) \" \" Y \" to i64\")\n                     (ssa (inc '*Ssa) \"shl i64 %\" (dec *Ssa) \", 3\") )\n                  (ssa (inc '*Ssa) \"add i64 \" X \", %\" (dec *Ssa)) ) )\n            ((i1* i1** i8* i8** i8*** i32* i32** i64* i64**)\n               (ssa (inc '*Ssa) \"getelementptr \" (pointee (val X)) \", \"\n                  (val X) \" \" X \", \"\n                  (if (num? Y) 'i32 (val Y)) \" \" Y ) )\n            (T (quit \"Bad type\" (val X))) )\n         (def (pack \"%\" *Ssa) (val X)) ) )\n   (llvm~ofs) )\n\n(asm ()\n   ((X)\n      (okVar X\n         (ssa (inc '*Ssa) \"inttoptr i64 \" X \" to i64*\")\n         (ssa (inc '*Ssa) \"load i64, i64* %\" (dec *Ssa))\n         (def (pack \"%\" *Ssa) 'any) ) )\n   (llvm~car) )\n\n(asm ()\n   ((X)\n      (okCell X\n         (ssa (inc '*Ssa) \"inttoptr i64 \" X \" to i64*\")\n         (ssa (inc '*Ssa) \"getelementptr i64, i64* %\" (dec *Ssa) \", i32 1\")\n         (ssa (inc '*Ssa) \"load i64, i64* %\" (dec *Ssa))\n         (def (pack \"%\" *Ssa) 'any) ) )\n   (llvm~cdr) )\n\n(asm ()\n   (Args\n      (okCell (val (car Args))\n         (ssa (inc '*Ssa) \"inttoptr i64 \" (val (car Args)) \" to i64*\")\n         (ssa (inc '*Ssa) \"getelementptr i64, i64* %\" (dec *Ssa) \", i32 1\")\n         (ssa (inc '*Ssa) \"load i64, i64* %\" (dec *Ssa))\n         (set (car Args) (def (pack \"%\" *Ssa) 'any))\n         (ssa (inc '*Ssa) \"load i64, i64* %\" (- *Ssa 3))\n         (def (pack \"%\" *Ssa) 'any) ) )\n   (llvm~++) )\n\n(asm ()\n   (Args\n      (set (car Args)\n         (okCell (val (car Args))\n            (ssa (inc '*Ssa) \"inttoptr i64 \" (val (car Args)) \" to i64*\")\n            (ssa (inc '*Ssa) \"getelementptr i64, i64* %\" (dec *Ssa) \", i32 1\")\n            (ssa (inc '*Ssa) \"load i64, i64* %\" (dec *Ssa))\n            (def (pack \"%\" *Ssa) 'any)) ) )\n   (llvm~shift) )\n\n(asm ()\n   (@\n      (let (X (next)  Ofs)\n         (when (num? X)\n            (setq Ofs (dec X)  X (next)) )\n         (casq (val X)\n            ((i64 any)\n               (if (pre? \"@\" X)\n                  (ssa (inc '*Ssa) \"load \" \"i64, i64* \" X)\n                  (ssa (inc '*Ssa) \"inttoptr i64 \" X \" to i64*\")\n                  (when Ofs\n                     (ssa (inc '*Ssa) \"getelementptr i64, i64* %\" (dec *Ssa) \", i32 \" Ofs) )\n                  (ssa (inc '*Ssa) \"load \" \"i64, i64* %\" (dec *Ssa)) )\n               (def (pack \"%\" *Ssa) 'any) )\n            ((i1* i1** i8* i8** i8*** i16* i16** i32* i32** i64* i64**)\n               (let Typ (pointee (val X))\n                  (ifn Ofs\n                     (ssa (inc '*Ssa) \"load \" Typ \", \" (val X) \" \" X)\n                     (ssa (inc '*Ssa) \"getelementptr \" Typ \", \" (val X) \" \" X \", i32 \" Ofs)\n                     (ssa (inc '*Ssa) \"load \" Typ \", \" (val X) \" %\" (dec *Ssa)) )\n                  (def (pack \"%\" *Ssa) Typ) ) )\n            (T (quit \"Bad type\" (val X))) ) ) )\n   (llvm~val) )\n\n(asm ()\n   ((X)\n      (let Typ (pointee (val X))\n         (ssa (inc '*Ssa) \"load volatile \" Typ \", \" (val X) \" \" X)\n         (def (pack \"%\" *Ssa) Typ) ) )\n   (llvm~volatile) )\n\n(asm ()\n   (Args\n      (while Args\n         (let (A (eval (++ Args) 1)  B (eval (++ Args) 1))\n            (ifn (num? A)\n               (store B A)\n               (store (eval (++ Args) 1) B (dec A)) ) ) ) )\n   (llvm~set) )\n\n(asm ()\n   ((X Y)\n      (ifn (pre? \"%\" X)\n         (xchg X Y)\n         (ssa (inc '*Ssa) \"inttoptr i64 \" X \" to i64*\")\n         (ssa (inc '*Ssa) \"load \" \"i64, i64* %\" (dec *Ssa))\n         (ssa (inc '*Ssa) \"inttoptr i64 \" Y \" to i64*\")\n         (ssa (inc '*Ssa) \"load \" \"i64, i64* %\" (dec *Ssa))\n         (link (pack \"store i64 %\" *Ssa \", i64* %\" (- *Ssa 3)))\n         (link (pack \"store i64 %\" (- *Ssa 2) \", i64* %\" (dec *Ssa)))\n         (def (pack \"%\" (- *Ssa 2)) 'any) ) )\n   (llvm~xchg) )\n\n(asm ()\n   ((X Y Z Flg)\n      (link\n         (text \"call void @@llvm.memcpy.p0i8.p0i8.i64(i8* @1@2, i8* @3, i64 @4, i1 0)\"\n            (and Flg \"align 8 \") X Y Z ) ) )\n   (llvm~memcpy) )\n\n(asm ()\n   ((X Y Z Flg)\n      (link\n         (text \"call void @@llvm.memset.p0i8.i64(i8* @1@2, i8 @3, i64 @4, i1 0)\"\n            (and Flg \"align 8 \") X Y Z ) ) )\n   (llvm~memset) )\n\n(asm ()\n   (Lst\n      (use *Bind\n         (let (X (++ Lst)  Safe *Safe)\n            (prog1\n               (if (pair X)\n                  (recur ()\n                     (let (Var (++ X)  Val (eval (++ X)))\n                        (push '*Bind Var)\n                        (bind Var\n                           (set Var Val)\n                           (if X (recurse) (run Lst)) ) ) )\n                  (let Val (eval (++ Lst))\n                     (push '*Bind X)\n                     (bind X\n                        (set X Val)\n                        (run Lst) ) ) )\n               (when (and @ *Safe (not Safe))\n                  (drop *Safe)\n                  (off *Safe) ) ) ) ) )\n   (llvm~let) )\n\n# Stack operations\n(asm ()\n   ((P)\n      (if P\n         (prog\n            (link (text \"call void @@llvm.stackrestore(i8* @1)\" P))\n            P )\n         (ssa (inc '*Ssa) \"call i8* @llvm.stacksave()\")\n         (def (pack \"%\" *Ssa) 'i8*) ) )\n   (llvm~stack) )\n\n(asm (@Typ @Ptr @Flg)\n   ((N)\n      (ssa (inc '*Ssa) \"alloca \" '@Typ \", \"\n         (if (num? N) 'i64 (val N))\n         \" \" N\n         (and @Flg \", align 8\") )\n      (def (pack \"%\" *Ssa) '@Ptr) )\n   (llvm~b8 i8 i8*)\n   (llvm~b8+ i8 i8* T)\n   (llvm~b8* i8* i8**)\n   (llvm~b32 i32 i32*)\n   (llvm~b64 i64 i64*) )\n\n(asm ()\n   (@\n      (let\n         (Lst (rest)\n            Typ\n            (or\n               (pick\n                  '((X)\n                     (cond\n                        ((num? X) 'i64)\n                        (X (val X)) ) )\n                  Lst )\n               'any ) )\n         (ssa (inc '*Ssa) \"alloca \"\n            (type Typ) \", i64 \" (length Lst)\n            (and (cdr Lst) \", align 16\") )\n         (when (== 'any Typ)\n            (ssa (inc '*Ssa) \"ptrtoint i64* %\" (dec *Ssa) \" to i64\") )\n         (let P (def (pack \"%\" *Ssa) (ptr Typ))\n            (for (I . Y) Lst\n               (when Y\n                  (if (=1 I)\n                     (store Y P)\n                     (if (== 'any Typ)\n                        (ssa (inc '*Ssa) \"add i64 \" P \", \" (* 8 (dec I)))\n                        (ssa (inc '*Ssa) \"getelementptr \"\n                           (type Typ) \", \" (val P) \" \" P \", i32 \" (dec I) ) )\n                     (store Y (def (pack \"%\" *Ssa) (val P))) ) ) )\n            P ) ) )\n   (llvm~push) )\n\n# Flow\n(asm ()\n   ((Fun X Y)\n      (cond\n         (*Quiche\n            (let (Var (box)  Ok1 (+lbl)  Ok2 (+lbl)  End (+lbl))\n               (set Var $Nil)\n               (ssa (inc '*Ssa) \"lshr i64 \" Fun \", 4\")\n               (ssa (inc '*Ssa) \"icmp slt i64 %\" (setq Fun (dec *Ssa)) \", 0\")\n               (phi End Var)\n               (br (pack \"%\" *Ssa) End Ok1)\n               (label Ok1)\n               (ssa (inc '*Ssa) \"icmp sgt i64 %\" Fun \", \" (+ (length *JumpTab) DLMAX))\n               (phi End Var)\n               (br (pack \"%\" *Ssa) End Ok2)\n               (label Ok2)\n               (ssa (inc '*Ssa) \"getelementptr i64, i64* bitcast ([\" (+ (length *JumpTab) DLMAX) \" x i64]* @$JumpTab to i64*), i64 %\" Fun)\n               (ssa (inc '*Ssa) \"load i64, i64* %\" (dec *Ssa))\n               (ssa (inc '*Ssa) \"inttoptr i64 %\" (dec *Ssa) \" to i64(i64,i64)*\")\n               (ssa (inc '*Ssa) \"call i64 %\" (dec *Ssa) \"(i64 \" X \",\" \"i64 \" Y \")\")\n               (set Var (def (pack \"%\" *Ssa) 'any))\n               (phi End Var)\n               (br End)\n               (label End) ) )\n         (T\n            (ssa (inc '*Ssa) \"and i64 \" Fun \", -3\")\n            (ssa (inc '*Ssa) \"inttoptr i64 %\" (dec *Ssa) \" to i64(i64,i64)*\")\n            (ssa (inc '*Ssa) \"call i64 %\" (dec *Ssa) \"(i64 \" X \",\" \"i64 \" Y \")\")\n            (def (pack \"%\" *Ssa) 'any) ) ) )\n   (llvm~subr) )\n\n(asm ()\n   ((Fun)\n      (cond\n         (*Quiche\n            (ssa (inc '*Ssa) \"load i64, i64* @$JumpIx\")\n            (ssa (inc '*Ssa) \"add i64 %\" (dec *Ssa) \", 1\")\n            (ssa (inc '*Ssa) \"and i64 %\" (dec *Ssa) \", \" (dec DLMAX))\n            (link (text \"store i64 %@1, i64* @@$JumpIx\" *Ssa))\n            (ssa (inc '*Ssa) \"add i64 %\" (- *Ssa 3) \", \" (length *JumpTab))\n            (ssa (inc '*Ssa) \"getelementptr i64, i64* bitcast ([\" (+ (length *JumpTab) DLMAX) \" x i64]* @$JumpTab to i64*), i64 %\" (dec *Ssa))\n            (link (text \"store i64 @1, i64* %@2\" Fun *Ssa))\n            (ssa (inc '*Ssa) \"shl i64 %\" (- *Ssa 2) \", 4\")\n            (ssa (inc '*Ssa) \"or i64 %\" (dec *Ssa) \", 2\")\n            (def (pack \"%\" *Ssa) 'i64) )\n         (T\n            (ssa (inc '*Ssa) \"or i64 \" Fun \", 2\")\n            (def (pack \"%\" *Ssa) 'i64) ) ) )\n   (llvm~dlfun) )\n\n(asm (@Val1 @Val2 @Lbl1 @Lbl2)\n   (Prg\n      (let (End (+lbl)  Var (box))\n         (for Exe Prg\n            (if (== Exe (last Prg))\n               (when (set Var (evBool (car Prg)))\n                  (phi End Var)\n                  (br End) )\n               (let (Flg (evBool (++ Prg))  Skip (+lbl))\n                  (set Var @Val1)\n                  (phi End Var)\n                  (br Flg @Lbl1 @Lbl2)\n                  (label Skip) ) ) )\n         (label End) ) )\n   (llvm~and NO YES Skip End)\n   (llvm~or YES NO End Skip) )\n\n(asm ()\n   (Prg\n      (prog1\n         (setq llvm~@ (eval (++ Prg)))\n         (run Prg) ) )\n   (llvm~prog1) )\n\n(asm ()\n   (Prg\n      (prog2\n         (eval (++ Prg))\n         (setq llvm~@ (eval (++ Prg)))\n         (run Prg) ) )\n   (llvm~prog2) )\n\n(asm (@Lbl1 @Lbl2)\n   (Prg\n      (let (Flg (evBool (++ Prg))  Var (box)  Body (+lbl)  Skip (+lbl)  End (+lbl))\n         (br Flg @Lbl1 @Lbl2)\n         (label Body)\n         (use llvm~@\n            (when (set Var (eval (++ Prg)))\n               (phi End Var)\n               (br End) )\n            (label Skip) )\n         (use llvm~@\n            (when (set Var (run Prg))\n               (phi End Var)\n               (br End) ) )\n         (label End) ) )\n   (llvm~if Body Skip)\n   (llvm~ifn Skip Body) )\n\n(asm (@Lbl1 @Lbl2)\n   (Prg\n      (let (Flg (evBool (++ Prg))  Body (+lbl)  End (+lbl))\n         (br Flg @Lbl1 @Lbl2)\n         (label Body)\n         (use llvm~@\n            (and (run Prg) (br End)) )\n         (label End) )\n      T )\n   (llvm~when Body End)\n   (llvm~unless End Body) )\n\n(asm (@Flg @Lbl1 @Lbl2 @Lbl3 @Lbl4 @Lbl5 @Lbl6)\n   (Lst\n      (let (Var (box)  End (+lbl)  Flg)\n         (for Prg Lst\n            (if (== @Flg (car Prg))\n               (use llvm~@\n                  (when (set Var (run (cdr Prg)))\n                     (phi End Var)\n                     (br End) ) )\n               (setq Flg (evBool (++ Prg)))\n               (let Skip (+lbl)\n                  (if Prg\n                     (let Body (+lbl)\n                        (br Flg @Lbl1 @Lbl2)\n                        (label Body)\n                        (use llvm~@\n                           (when (set Var (run Prg))\n                              (phi End Var)\n                              (br End) ) ) )\n                     (br Flg @Lbl3 @Lbl4) )\n                  (label Skip) ) ) )\n         (if (== @Flg (car (last Lst)))\n            (label End)\n            (set Var 0)\n            (phi End Var)\n            (br End)\n            (label End)\n            T ) ) )\n   (llvm~cond T Body Skip End Skip Body End)\n   (llvm~nond NIL Skip Body Skip End End Body) )\n\n(asm ()\n   (Lst\n      (let\n         (Var (box)\n            True (+lbl)\n            Flg (asoq T Lst)\n            End (if Flg (+lbl) True)\n            X (setq llvm~@ (eval (++ Lst))) )\n         (link\n            (text \"switch @1 @2, label %$@3 [\"\n               (type (val X)) X (+phi True) ) )\n         (let Lbl\n            (extract\n               '((Prg)\n                  (unless (=T (car Prg))\n                     (let Y (eval (car Prg))\n                        (prog1\n                           (+lbl)\n                           (link\n                              (text \"  @1 @2, label %$@3\"\n                                 (type (val X)) Y (+phi @) ) ) ) ) ) )\n               Lst )\n            (link \"]\")\n            (for Prg Lst\n               (label (if (=T (++ Prg)) True (++ Lbl)))\n               (use llvm~@\n                  (when (set Var (if Prg (run @) 0))\n                     (and Flg (phi End Var))\n                     (br End) ) ) ) )\n         (label End) ) )\n   (llvm~case) )\n\n(asm ()\n   (Prg\n      (let (Flg (evBool (++ Prg))  False (+lbl))\n         (default *Exit (cons (+lbl) (box)))\n         (if Prg\n            (let True (+lbl)\n               (br Flg True False)\n               (label True)\n               (use llvm~@\n                  (let? X (run Prg)\n                     (when (cdr *Exit)\n                        (set @ X)\n                        (phi (car *Exit) @) )\n                     (br (car *Exit)) ) ) )\n            (when (cdr *Exit)\n               (set @ 0)\n               (phi (car *Exit) @) )\n            (br Flg (car *Exit) False) )\n         (label False) )\n      T )\n   (llvm~?) )\n\n(asm (@Lbl1 @Lbl2)\n   (Prg\n      (let Beg (+lbl)\n         (br Beg)\n         (label Beg)\n         (let (Flg (evBool (++ Prg))  Body (+lbl)  *Exit (cons (+lbl)))\n            (br Flg @Lbl1 @Lbl2)\n            (label Body)\n            (use llvm~@\n               (and (run Prg) (br Beg)) )\n            (label (car *Exit)) ) )\n      T )\n   (llvm~while Body (car *Exit))\n   (llvm~until (car *Exit) Body) )\n\n(asm ()\n   (Prg\n      (let (Beg (+lbl)  *Exit)\n         (br Beg)\n         (label Beg)\n         (and (run Prg) (br Beg))\n         (cond\n            (*Exit (label (car *Exit)))\n            ((fish\n                  '((X)\n                     (and\n                        (== 'llvm~goto (car (pair X)))\n                        (not (memq (- (cadr X)) (made))) ) )\n                  Prg )\n               (label (+lbl)) ) ) ) )\n   (llvm~loop) )\n\n(asm ()\n   ((Fun . @)\n      (let\n         (L (val Fun)\n            F (func L)\n            A\n            (mapcar\n               '((Typ) (pack Typ \" \" (next)))\n               (cdr L) ) )\n         (ssa (inc '*Ssa) \"load \" F \", \" F \"* \" Fun)\n         (let S\n            (pack *Call \" \"\n               (car L) \" \" (pack \"%\" *Ssa)\n               \"(\" (glue \", \" A) \")\" )\n            (if (== void (car L))\n               (link S)\n               (ssa (inc '*Ssa) S)\n               (def (pack \"%\" *Ssa) (car L)) ) ) ) )\n   (llvm~call) )\n\n(asm ()\n   ((Lbl . Prg)\n      (br (- Lbl))\n      (label (- Lbl))\n      (run Prg) )\n   (llvm~:) )\n\n(asm ()\n   ((Lbl) (br (- Lbl)) NIL)\n   (llvm~goto) )\n\n(asm ()\n   ((X)\n      (and *Safe (drop *Safe))\n      (if (== void *Ret)\n         (link \"ret void\")\n         (link (pack \"ret \" *Ret \" \" X)) )\n      NIL )\n   (llvm~ret) )\n\n\n### Composite ###\n(symbols '(llvm cross pico))\n\n(local) (link drop pop save save2 safe)\n\n(cross~de link (P Top)\n   (log)\n   (pico~let *Log NIL\n      (pico~when (pico~== 'i64* (pico~val P))\n         (setq P (any P)) )\n      (pico~when Top\n         (default *Safe P) )\n      (set 2 P (val $Link))\n      (set $Link P) ) )\n\n(cross~de drop (P . Prg)\n   (log)\n   (pico~let *Log NIL\n      (pico~when (pico~== 'i64* (pico~val P))\n         (setq P (any P)) )\n      (pico~if Prg\n         (prog1\n            (pico~let *Log T\n               (run pico~@) )\n            (set $Link (val 2 P)) )\n         (set $Link (val 2 P)) ) ) )\n\n(cross~de pop (P)\n   (log)\n   (pico~let *Log NIL\n      (prog1\n         (val P)\n         (set $Link (val 2 P)) ) ) )\n\n(cross~de save (X . Prg)\n   (log)\n   (pico~let (*Log NIL  Safe *Safe  P (push X (val $Link)))\n      (default *Safe P)\n      (set $Link P)\n      (pico~if Prg\n         (prog1\n            (pico~let *Log T\n               (run pico~@) )\n            (pico~when pico~@\n               (log \"drop\")\n               (drop P)\n               (setq *Safe Safe) ) )\n         X ) ) )\n\n(cross~de save2 (X Y . Prg)\n   (log)\n   (pico~let (*Log NIL  Safe *Safe  P (push X (val $Link)))\n      (default *Safe P)\n      (set $Link (push Y P))\n      (pico~if Prg\n         (prog1\n            (pico~let *Log T\n               (run pico~@) )\n            (pico~when pico~@\n               (log \"drop\")\n               (drop P)\n               (setq *Safe Safe) ) )\n         Y ) ) )\n\n(cross~de safe (V)\n   (log)\n   (pico~let *Log NIL\n      (store V *Safe) ) )\n"
  },
  {
    "path": "src/lib/so.l",
    "content": "# 15sep25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n#{\n   For the \"full\" library\n   -- In Makefile\n      * Remove the -quiche option\n      * Use lib.c instead of lib.so.c\n      * Link with -lm -ldl -lreadline -lffi\n   -- Below\n      * Exclude only 'main'\n      * Don't patch '_getStdin'\n   -- In the main C program\n      * evaluate(\"(load)\") is possible\n}#\n\n(exclude\n   # Signals\n   $Signal iSignal sigChk sig sigTerm sighandler signals\n   # Readline\n   initReadline rlHide rlShow _History tabComplete\n   # Native FFI\n   fetchChar natBuf natErr natRetFloat natRetDouble natRetBuf ffi _Nat _Native _Struct\n   # Memory\n   _Byte\n   # Library\n   main )\n\n(patch\n   (_getStdin (T . @X) (T -1)) )\n"
  },
  {
    "path": "src/lib.c",
    "content": "// 10nov25 Software Lab. Alexander Burger\n\n#include \"pico.h\"\n\nconst char TgOS[] = _OS;\nconst char TgCPU[] = _CPU;\n\n// I/O\nconst int32_t PipeBufSize = PIPE_BUF;\n\nchar *stderrMsg(char *fmt, char *s) {\n   fprintf(stderr, fmt, s);\n   return s;\n}\n\nvoid gPrintf(char *buf, int32_t siz, char *fmt, char *arg) {\n   if (snprintf(buf, siz, fmt, arg) >= siz)\n      fprintf(stderr, \"!! gPrintf() truncated !!\\n\");\n}\n\nchar *strErrno(void) {\n   return strerror(errno);\n}\n\nint32_t openRd(char *nm) {\n   return (int32_t)open(nm, O_RDONLY);\n}\n\nint32_t openWr(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_TRUNC|O_WRONLY, 0666);\n}\n\nint32_t openRdWr(char *nm) {\n   return (int32_t)open(nm, O_RDWR);\n}\n\nint32_t openRdWrExcl(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_EXCL|O_RDWR, 0666);\n}\n\nint32_t openRdWrCreate(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_RDWR, 0666);\n}\n\nint32_t openRdWrAppend(char *nm) {\n   return (int32_t)open(nm, O_APPEND|O_CREAT|O_RDWR, 0666);\n}\n\nint32_t openWrAppend(char *nm) {\n   return (int32_t)open(nm, O_APPEND|O_CREAT|O_WRONLY, 0666);\n}\n\nint fseekOfs(FILE *fp, int32_t ofs) {\n   return fseek(fp, (long)ofs, SEEK_CUR) == 0;\n}\n\nint fseek0(FILE *fp) {\n   return fseek(fp, 0L, SEEK_SET) == 0;\n}\n\nint seek0(int32_t fd) {\n   return lseek(fd, 0L, SEEK_SET) == 0;\n}\n\nint truncate0(int32_t fd) {\n   return ftruncate(fd, 0) == 0;\n}\n\nint32_t socketPair(int32_t *sv) {\n   return (int32_t)socketpair(AF_UNIX, SOCK_STREAM, 0, sv);\n}\n\nint32_t fcntlCloExec(int32_t fd) {\n   return (int32_t)fcntl(fd, F_SETFD, FD_CLOEXEC);\n}\n\nvoid fcntlSetFl(int32_t fd, int32_t flg) {\n   fcntl(fd, F_SETFL, flg);\n}\n\nint32_t nonBlocking(int32_t fd) {\n   int flg = fcntl(fd, F_GETFL, 0);\n\n   fcntlSetFl(fd, flg | O_NONBLOCK);\n   return (int32_t)flg;\n}\n\nvoid fcntlSetOwn(int32_t fd, int32_t pid) {\n   fcntl(fd, F_SETOWN, pid);\n   fcntlSetFl(fd, fcntl(fd, F_GETFL, 0) | O_NONBLOCK|O_ASYNC);\n}\n\nchar *getDir(char *nm) {\n   static DIR *dp;\n   struct dirent *p;\n\n   if (nm  &&  (dp = opendir(nm)) == NULL)\n      return NULL;\n   if ((p = readdir(dp)) != NULL)\n      return p->d_name;\n   closedir(dp);\n   return NULL;\n}\n\n// Readline\n#include <readline/readline.h>\n#include <readline/history.h>\n\nstatic char *tabEntry(const char *text, int stat) {\n   extern char *tabComplete(const char*);\n\n   rl_completion_append_character = '\\0';\n   return tabComplete(stat? NULL : text);\n}\n\nvoid initReadline(void) {\n   extern int rlGetc(FILE*);\n   extern int rlAvail(void);\n\n   rl_catch_signals = 0;\n   rl_getc_function = rlGetc;\n   rl_input_available_hook = rlAvail;\n   rl_completion_entry_function = tabEntry;\n   rl_special_prefixes = \"$%&*+-<=>?@\";\n   rl_basic_quote_characters = NULL;\n}\n\nchar *gReadline(const char *prompt) {\n   int e = errno;\n   char *p = readline(prompt);\n\n   errno = e;\n   return p;\n}\n\nvoid rlHide(void) {\n   if (rl_readline_state & RL_STATE_INITIALIZED  &&  !(rl_readline_state & RL_STATE_DONE)) {\n      rl_clear_visible_line();\n      fflush(stdout);\n   }\n}\n\nvoid rlShow(void) {\n   if (rl_readline_state & RL_STATE_INITIALIZED  &&  !(rl_readline_state & RL_STATE_DONE))\n      rl_forced_update_display();\n}\n\nvoid rlSigBeg(void) {\n   if (rl_readline_state & RL_STATE_INITIALIZED) {\n      rl_save_prompt();\n      rl_free_line_state();\n      rl_cleanup_after_signal();\n   }\n}\n\nvoid rlSigEnd(void) {\n   if (rl_readline_state & RL_STATE_SIGHANDLER) {\n      rl_reset_after_signal();\n      rl_restore_prompt();\n   }\n}\n\nchar *currentLine(void) {\n   HIST_ENTRY *h;\n\n   return (h = history_get(history_length))? h->line : NULL;\n}\n\n// Signals\nconst int32_t Sig[] = {\n   SIGHUP, SIGINT, SIGUSR1, SIGUSR2, SIGPIPE, SIGALRM, SIGTERM, SIGCHLD,\n   SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU, SIGWINCH, SIGIO\n};\n\nconst sighandler_t SigDfl = SIG_DFL;\nconst sighandler_t SigIgn = SIG_IGN;\n\n// Sync src/defs.l 'SIGHUP' and src/glob.l '$Signal'\nint32_t gSignal(int32_t n) {\n   switch (n) {\n   case SIGHUP:   return 1;\n   case SIGINT:   return 2;\n   case SIGUSR1:  return 3;\n   case SIGUSR2:  return 4;\n   case SIGPIPE:  return 5;\n   case SIGALRM:  return 6;\n   case SIGTERM:  return 7;\n   case SIGCHLD:  return 8;\n   case SIGCONT:  return 9;\n   case SIGSTOP:  return 10;\n   case SIGTSTP:  return 11;\n   case SIGTTIN:  return 12;\n   case SIGTTOU:  return 13;\n   case SIGWINCH: return 14;\n   case SIGIO:    return 15;\n   }\n   return 0;\n}\n\nvoid iSignal(int32_t n, void (*fun)(int)) {\n   struct sigaction act;\n\n   act.sa_handler = fun;\n   sigemptyset(&act.sa_mask);\n   act.sa_flags = 0;\n   sigaction((int)n, &act, NULL);\n}\n\nvoid sigUnblock(int32_t sig) {\n   sigset_t mask;\n\n   if (sig == 0)\n      sigfillset(&mask);\n   else {\n      sigemptyset(&mask);\n      sigaddset(&mask, (int)sig);\n   }\n   sigprocmask(SIG_UNBLOCK, &mask, NULL);\n}\n\nvoid sigChld(int n __attribute__((unused))) {\n   int e, stat;\n   pid_t pid;\n\n   e = errno;\n   while ((pid = waitpid(0, &stat, WNOHANG)) > 0)\n      if (WIFSIGNALED(stat))\n         fprintf(stderr, \"%d SIG-%d\\n\", (int)pid, WTERMSIG(stat));\n   errno = e;\n}\n\nint32_t waitWuntraced(int32_t pid, int32_t *res) {\n   return waitpid((pid_t)pid, (int*)res, WUNTRACED);\n}\n\nint32_t wifStopped(int32_t *res) {\n   return WIFSTOPPED(*(int*)res);\n}\n\nint32_t nErrno(void) {\n   return errno;\n}\n\n// Sync src/defs.l 'ENOENT'\nint32_t gErrno(void) {\n   switch (errno) {\n   case ENOENT:     return 1;\n   case EINTR:      return 2;\n   case EBADF:      return 3;\n   case EAGAIN:     return 4;\n   case EACCES:     return 5;\n   case EPIPE:      return 6;\n   case ECONNRESET: return 7;\n   }\n   return 0;\n}\n\n// Terminal\nchar Tio;\nstruct termios OrgTermio;\nstruct termios *Termio;\n\nstatic void tcSet(struct termios *p) {\n   while (tcsetattr(STDIN_FILENO, TCSADRAIN, p)  &&  errno == EINTR);\n}\n\nvoid stopTerm(void) {\n   sigset_t mask;\n\n   if (Tio) {\n      sigUnblock(SIGTSTP);\n      signal(SIGTSTP, SIG_DFL),  raise(SIGTSTP);\n      if (Termio)\n         tcSet(Termio);\n      else\n         tcSet(&OrgTermio);\n   }\n}\n\nvoid setRaw(void) {\n   if (Tio && !Termio) {\n      *(Termio = malloc(sizeof(struct termios))) = OrgTermio;\n      tcgetattr(STDIN_FILENO, Termio);\n      Termio->c_iflag = 0;\n      Termio->c_lflag = ISIG;\n      Termio->c_cc[VMIN] = 1;\n      Termio->c_cc[VTIME] = 0;\n      tcSet(Termio);\n   }\n}\n\nvoid setCooked(void) {\n   if (Termio) {\n      tcSet(&OrgTermio);\n      free(Termio),  Termio = NULL;\n   }\n}\n\nint reopenTty(char* tty) {\n   return\n      freopen(tty, \"r\", stdin) != NULL  &&\n      freopen(tty, \"w\", stdout) != NULL  &&\n      freopen(tty, \"w\", stderr) != NULL;\n}\n\n// System\nstatic struct timeval Tv;\nstatic struct tm *Time;\n\nint64_t getUsec(int flg) {\n   if (flg) {\n      struct timeval tim;\n\n      if (gettimeofday(&tim, NULL))\n         return 0;\n      return (int64_t)tim.tv_sec * 1000000 + (int64_t)tim.tv_usec;\n   }\n   return (int64_t)Tv.tv_usec;\n}\n\nint64_t getMsec(void) {\n   struct timeval tim;\n\n   if (gettimeofday(&tim, NULL))\n      return 0;\n   return (int64_t)tim.tv_sec * 1000 + ((int64_t)tim.tv_usec + 500) / 1000;\n}\n\nint64_t getDate(void) {\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   Time = localtime(&Tv.tv_sec);\n   return Time->tm_year+1900 | (Time->tm_mon+1) << 16 | Time->tm_mday << 24;\n}\n\nint64_t getGmDate(void) {\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   Time = gmtime(&Tv.tv_sec);\n   return Time->tm_year+1900 | (Time->tm_mon+1) << 16 | Time->tm_mday << 24;\n}\n\nint64_t getTime(void) {\n   struct tm *p;\n\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   p = localtime(&Tv.tv_sec);\n   return p->tm_hour * 3600 + p->tm_min * 60 + p->tm_sec;\n}\n\nint64_t getGmTime(void) {\n   return Time? (Time->tm_hour * 3600 + Time->tm_min * 60 + Time->tm_sec) : -1;\n}\n\nchar *ulimStk(void) {\n   struct rlimit stk;\n   extern char *$SysStkLimit;\n\n   if (getrlimit(RLIMIT_STACK, &stk) < 0)\n      return NULL;\n   if (stk.rlim_cur == RLIM_INFINITY)\n      return (char*)1;\n   return $SysStkLimit = (char*)&stk - stk.rlim_cur + (stk.rlim_cur >> 6);\n}\n\nint64_t fileInfo(int lnk, int loc, char *nm, int64_t *siz) {\n   int64_t n;\n   struct tm *p;\n   struct stat st;\n\n   if ((lnk? stat(nm, &st) : lstat(nm, &st)) < 0)\n      return -1;\n   p = loc? localtime(&st.st_mtime) : gmtime(&st.st_mtime);\n   n = (p->tm_year+1900 | (p->tm_mon+1) << 16 | p->tm_mday << 24 |\n         (int64_t)(p->tm_hour * 3600 + p->tm_min * 60 + p->tm_sec) << 32 ) << 2;\n   if ((st.st_mode & S_IFMT) == S_IFDIR)\n      return n + 1;\n   if ((st.st_mode & S_IFMT) != S_IFREG)\n      return n + 2;\n   *siz = st.st_size;\n   return n;\n}\n\n// Polling\nvoid pollIn(int32_t fd, struct pollfd *p) {\n   p->fd = fd;\n   p->events = POLLIN;\n}\n\nvoid pollOut(int32_t fd, struct pollfd *p) {\n   p->fd = fd;\n   p->events = POLLOUT;\n}\n\nvoid pollIgn(struct pollfd *p) {\n   p->fd = -1;\n}\n\nint32_t gPoll(struct pollfd *fds, int32_t nfds, int64_t timeout) {\n#ifdef __linux__\n   struct timespec ts, *tp;\n   extern int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmo_p, const sigset_t *sigmask);\n\n   if (timeout == 9223372036854775807) {  // 292MY\n      int i = nfds;\n      do\n         if (--i < 0)\n            return 0;\n      while (fds[i].fd < 0);\n      tp = NULL;\n   }\n   else {\n      ts.tv_sec = timeout / 1000;\n      ts.tv_nsec = timeout % 1000 * 1000000;\n      tp = &ts;\n   }\n   return (int32_t)ppoll(fds, (nfds_t)nfds, tp, NULL);\n#else\n   int to;\n\n   if (timeout > 2147483647) {  // Fit into 32 bits (max 24 days)\n      int i = nfds;\n      do\n         if (--i < 0)\n            return 0;\n      while (fds[i].fd < 0);\n      to = -1;\n   }\n   else\n      to = (int)timeout;\n   return (int32_t)poll(fds, (nfds_t)nfds, to);\n#endif\n}\n\nint readyIn(struct pollfd *p) {\n   if (p->fd < 0)\n      return 0;\n   p->fd = -1;\n   return (p->revents & (POLLIN | POLLHUP | POLLERR | POLLNVAL)) != 0;\n}\n\nint readyOut(struct pollfd *p) {\n   if (p->fd < 0)\n      return 0;\n   p->fd = -1;\n   return (p->revents & POLLOUT | POLLERR | POLLNVAL) != 0;\n}\n\n// Locking\nint32_t rdLock(int32_t fd, off_t n, off_t len, int wait) {\n   struct flock fl;\n\n   fl.l_type = F_RDLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, wait? F_SETLKW : F_SETLK, &fl);\n}\n\nint32_t wrLock(int32_t fd, off_t n, off_t len, int wait) {\n   struct flock fl;\n\n   fl.l_type = F_WRLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, wait? F_SETLKW : F_SETLK, &fl);\n}\n\nint32_t unLock(int32_t fd, off_t n, off_t len) {\n   struct flock fl;\n\n   fl.l_type = F_UNLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, F_SETLK, &fl);\n}\n\nint32_t getLock(int32_t fd, off_t n, off_t len) {\n   struct flock fl;\n\n   fl.l_type = F_WRLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   if (fcntl(fd, F_GETLK, &fl) < 0)\n      return -1;\n   return fl.l_type == F_UNLCK? 0 : fl.l_pid;\n}\n\n// Catch and Throw\nconst int64_t JmpBufSize = sizeof(jmp_buf);\njmp_buf QuitRst;\njmp_buf SoRst;\n\n// Lisp data access from C\nany name(any x) {\n   while (!num(x))\n      x = cdr(x);\n   return x;\n}\n\nany number(any x) {\n   any n = cnt(x)? x >> 4 : val(dig(x));\n   return sign(x)? -n : n;\n}\n\nany length(any x) {\n   int n = 0;\n\n   while (!atom(x))\n      ++n,  x = cdr(x);\n   return (int32_t)n;\n}\n\nany box64(any x) {\n   return x & 0xF000000000000000? boxNum(x) : x << 4 | 2;\n}\n\n// Native library interface\n#define FMAX ((float)UINT64_MAX)\n#define DMAX ((double)UINT64_MAX)\n\nchar Fsign;\nuint64_t Fdigit;\n\nstatic union {\n   float f;\n   double d;\n} Fval;\n\nuint64_t boxFloat(uint32_t value, int64_t scl) {\n   float f = *(float*)&value * (float)scl;\n\n   if (isnan(f) || isinf(f) < 0)\n      return (uint64_t)(SymTab + Nil);\n   if (isinf(f) > 0)\n      return (uint64_t)(SymTab + T);\n   Fsign = 0;\n   if (f < 0.0)\n      Fsign = 1,  f = -f;\n   f += 0.5;\n   if (f < FMAX)\n      return box64((uint64_t)f);\n   Fdigit = (uint64_t)fmod(f, FMAX);\n   Fval.f = f / FMAX;\n   return 0;\n}\n\nuint64_t boxFlt(void) {\n   if (Fval.f < FMAX)\n      return box64((uint64_t)Fval.f);\n   Fdigit = (uint64_t)fmod(Fval.f, FMAX);\n   Fval.f /= FMAX;\n   return 0;\n}\n\nuint64_t boxDouble(uint64_t value, int64_t scl) {\n   double d = *(double*)&value * (double)scl;\n\n   if (isnan(d) || isinf(d) < 0)\n      return (uint64_t)(SymTab + Nil);\n   if (isinf(d) > 0)\n      return (uint64_t)(SymTab + T);\n   Fsign = 0;\n   if (d < 0.0)\n      Fsign = 1,  d = -d;\n   d += 0.5;\n   if (d < DMAX)\n      return box64((uint64_t)d);\n   Fdigit = (uint64_t)fmod(d, DMAX);\n   Fval.d = d / DMAX;\n   return 0;\n}\n\nuint64_t boxDbl(void) {\n   if (Fval.d < DMAX)\n      return box64((uint64_t)Fval.d);\n   Fdigit = (uint64_t)fmod(Fval.d, DMAX);\n   Fval.d /= DMAX;\n   return 0;\n}\n\nvoid bufFloat(uint64_t value, int64_t scl, float *p) {\n   float f, m;\n   uint64_t x;\n\n   if (cnt(value))\n      f = (float)(value >> 4);\n   else {\n      f = (float)val(dig(x = value)),  m = FMAX;\n      while (!cnt(x = val(big(x))))\n         f += m * (float)val(dig(x)),  m *= FMAX;\n      f += m * (float)(x >> 4);\n   }\n   f /= (float)scl;\n   *p = sign(value)? -f : f;\n}\n\nvoid bufDouble(uint64_t value, int64_t scl, double *p) {\n   double d, m;\n   uint64_t x;\n\n   if (cnt(value))\n      d = (double)(value >> 4);\n   else {\n      d = (double)val(dig(x = value)),  m = DMAX;\n      while (!cnt(x = val(big(x))))\n         d += m * (double)val(dig(x)),  m *= DMAX;\n      d += m * (double)(x >> 4);\n   }\n   d /= (double)scl;\n   *p = sign(value)? -d : d;\n}\n\n#define _GNU_SOURCE\n#define __USE_GNU\n#include <dlfcn.h>\n\n#include <ffi.h>\n\ntypedef struct ffi {\n   ffi_cif cif;\n   void (*fun)(void);\n   ffi_type *args[0];\n} ffi;\n\nvoid *dlOpen(char *lib) {\n   return dlopen(lib, RTLD_LAZY | RTLD_GLOBAL);\n}\n\nffi *ffiPrep(char *lib, char *fun, uint64_t lst) {\n   uint64_t x = car(lst);\n   uint64_t y = cdr(lst);\n   int i, nargs = length(y);\n   ffi *p = malloc(sizeof(ffi) + nargs * sizeof(ffi_type*));\n   ffi_type *rtype;\n\n   if (x == (uint64_t)(SymTab + Nil))\n      rtype = &ffi_type_void;\n   else if (x == (uint64_t)(SymTab + T))\n      rtype = &ffi_type_sint64;\n   else if (x == (uint64_t)(SymTab + N))\n      rtype = &ffi_type_sint64;\n   else if (x == (uint64_t)(SymTab + P))\n      rtype = &ffi_type_uint64;\n   else if (x == (uint64_t)(SymTab + I))\n      rtype = &ffi_type_sint32;\n   else if (x == (uint64_t)(SymTab + C))\n      rtype = &ffi_type_uint32;\n   else if (x == (uint64_t)(SymTab + W))\n      rtype = &ffi_type_sint16;\n   else if (x == (uint64_t)(SymTab + B))\n      rtype = &ffi_type_uint8;\n   else if (cnt(x))\n      rtype = (x & 8)? &ffi_type_float : &ffi_type_double;\n   else\n      rtype = &ffi_type_pointer;\n   for (i = 0; i < nargs; ++i, y = cdr(y)) {\n      x  = car(y);\n      if (num(x))\n         p->args[i] = &ffi_type_sint64;\n      else if (sym(x) || car(x) == (uint64_t)(SymTab + T))\n         p->args[i] = &ffi_type_pointer;\n      else if (cnt(cdr(x)))\n         p->args[i] = (cdr(x) & 8)? &ffi_type_float : &ffi_type_double;\n      else\n         p->args[i] = &ffi_type_pointer;\n   }\n   if (ffi_prep_cif(&p->cif, FFI_DEFAULT_ABI, nargs, rtype, p->args) == FFI_OK  &&\n         (p->fun = dlsym(lib ?: RTLD_DEFAULT, fun)) )\n      return p;\n   free(p);\n   return NULL;\n}\n\nuint64_t ffiCall(ffi *p, uint64_t lst) {\n   uint64_t x, y, z;\n   int i, nargs = length(lst);\n   uint64_t value[nargs];\n   void *ptr[nargs];\n   uint64_t rc;\n\n   for (i = 0, z = lst;  i < nargs;  ++i, z = cdr(z)) {\n      x  = car(z);\n      ptr[i] = &value[i];\n      if (num(x))  // Number\n         value[i] = number(x);\n      else if (sym(x)) {  // String\n         if (x == (uint64_t)(SymTab + Nil))\n            value[i] = (uint64_t)\"\";\n         else {\n            uint64_t nm = name(val(tail(x)));\n            bufString(nm, (char*)(value[i] = (uint64_t)alloca(bufSize(nm))));\n         }\n      }\n      else if (car(x) == (uint64_t)(SymTab + T))  // Direct Lisp value\n         value[i] = cdr(x);\n      else if (cnt(y = cdr(x))) {  // Fixpoint\n         if (y & 8)\n            bufFloat(car(x), y >> 4, (float*)&value[i]);\n         else\n            bufDouble(car(x), y >> 4, (double*)&value[i]);\n      }\n      else if (!atom(y)) {  // Structure\n         int64_t d, n = car(car(y)) >> 4;\n         char *q = alloca(n);\n\n         value[i] = (uint64_t)q;\n         for (;;) {\n            if (cnt(y = cdr(y))) {\n               char b = y >> 4;  // Byte value\n\n               while (--n >= 0)\n                  *q++ = b;\n               break;\n            }\n            if (atom(y))\n               break;\n            if (n <= 0)\n               err(0, 0, \"Init oversize\", NULL);\n            d = natBuf(car(y), q);\n            n -= d, q += d;\n         }\n      }\n      else\n         argErr(0, x);\n   }\n   ffi_call(&p->cif, p->fun, &rc, ptr);\n   for (i = 0;  i < nargs;  ++i, lst = cdr(lst)) {\n      x = car(lst);\n      if (!atom(x)  &&  !num(y = cdr(x))  &&  (z = car(x)) != (uint64_t)(SymTab + Nil)  &&  z != (uint64_t)(SymTab + T))\n         set(z, natRetBuf(cdr(car(y)), (char**)&value[i]));\n   }\n   return rc;\n}\n\nvoid *arg(void *p) {\n   return p;\n}\n\n// Util\nint chance(int64_t m) {\n   static uint32_t seed = 1664525;\n\n   return (((seed = seed * 1664525 + 1) >> 16) & (int32_t)m) != 0;\n}\n\n\n// Case mappings from the GNU Kaffe Project\n#define CHAR_UPPERCASE  1\n#define CHAR_LOWERCASE  2\n#define CHAR_LETTER    62\n#define CHAR_DIGIT    512\n\nstatic uint16_t Blocks[] = {\n   0x1C2, 0x1C2, 0x1C1, 0x12C, 0x12B, 0x1A0, 0x1F8, 0x2DC, 0x25F, 0x2EE, 0x215, 0x346, 0x2DC, 0x326, 0x2BC, 0x216,\n   0x15F, 0x2D4, 0x376, 0x376, 0x376, 0x369, 0xFE8F, 0x344, 0xFF85, 0xFF65, 0xFDB5, 0xFDA1, 0x1B, 0x2C4, 0x1C, 0x47,\n   0xFEA8, 0xFF8C, 0x235, 0xFEFF, 0x1A, 0xFEBF, 0x26, 0xFB20, 0xFE28, 0x113, 0x104, 0xFB61, 0xFB5A, 0x10B, 0x109, 0xFE,\n   0xFF08, 0x229, 0x25E, 0x1C7, 0x1FC, 0x1DC, 0xFC46, 0x229, 0xFE27, 0xFB55, 0x169, 0xFBC8, 0xFC, 0x103, 0xFB68, 0xFB48,\n   0xFB28, 0xFB08, 0xFAE8, 0xFAC8, 0xFAA8, 0xFA88, 0xFA68, 0xFA48, 0x65, 0x50, 0xAB, 0x139, 0xFE0E, 0x63, 0x155, 0x1A8,\n   0xF669, 0x129, 0x128, 0xF91F, 0xFE56, 0x108, 0x107, 0xFAC0, 0xFC8E, 0xFEAD, 0xC6, 0xFCA7, 0xFB95, 0xF47D, 0x9F, 0xFB17,\n   0xFE20, 0xFD28, 0xFB2F, 0x3B, 0xF3B9, 0xFE57, 0xFCCE, 0xFFBB, 0xF339, 0xFA98, 0xFF8B, 0xFF3B, 0xFA54, 0xF7E3, 0xFF2B, 0xFAD7,\n   0xFB69, 0xFC3A, 0xFEE5, 0xF4C8, 0xFCB0, 0xFA88, 0xFDBF, 0xF448, 0xFE45, 0xFCC7, 0xFE4F, 0xF7F1, 0xF715, 0xF2E8, 0xFD9F, 0xF348,\n   0xF96A, 0xFC02, 0xFD97, 0xF2C8, 0xF2A8, 0xF4B9, 0xF4B3, 0xEF6B, 0xF86A, 0xF84A, 0xFC58, 0xF80A, 0xF7EA, 0xFC0F, 0xF7AA, 0xEE9C,\n   0xFB90, 0xF74A, 0xF7FA, 0xF70A, 0xF7CA, 0xF792, 0xF471, 0xF4D2, 0xF732, 0xF64A, 0xF401, 0xF64D, 0xEFA8, 0xF5CA, 0xF5AA, 0xECA1,\n   0xF569, 0xF54A, 0xF52A, 0xF50A, 0xF4EA, 0xF4CA, 0xF4AA, 0xF48A, 0xF46A, 0xF44A, 0xF42A, 0xF40A, 0xF3EA, 0xF3CA, 0xF3AA, 0xF38A,\n   0xF36A, 0xF34A, 0xF32A, 0xF289, 0xF777, 0xF2CA, 0xF2AA, 0xF737, 0xEC28, 0xEC08, 0xEBE8, 0xEBC8, 0xF1EA, 0xF4A2, 0xF545, 0xEDC6,\n   0xF2D7, 0xF14A, 0xE8ED, 0xE81E, 0xF0EA, 0xF597, 0xEA68, 0xEA48, 0xEA28, 0xEA08, 0xE9E8, 0xE9C8, 0xE9A8, 0xE988, 0xE968, 0xE948,\n   0xE928, 0xE908, 0xE8E8, 0xE8C8, 0xE8A8, 0xE888, 0xE868, 0xE848, 0xE828, 0xE808, 0xE7E8, 0xE7C8, 0xE7A8, 0xE788, 0xE768, 0xE748,\n   0xE728, 0xE708, 0xE6E8, 0xE6C8, 0xE6A8, 0xE688, 0xE668, 0xE648, 0xE628, 0xE608, 0xE5E8, 0xE5C8, 0xE5A8, 0xE588, 0xE568, 0xE548,\n   0xE55F, 0xE53F, 0xE51F, 0xE4FF, 0xEFD7, 0xE4BF, 0xE49F, 0xE485, 0xEF87, 0xEF57, 0xEF57, 0xEF57, 0xEF57, 0xEF47, 0xE1AD, 0xEF46,\n   0xEF46, 0xEF46, 0xE1E0, 0xE3DD, 0xEF06, 0xE9D9, 0xEBEB, 0xE244, 0xEED4, 0xEF65, 0xE1F5, 0xEF45, 0xEEE9, 0xEF7C, 0xEE74, 0xEF70,\n   0xEF7D, 0xEF78, 0xEE91, 0xEFD3, 0xEE7D, 0xEE25, 0xEE27, 0xEF65, 0xEFDD, 0xEE96, 0xEFD3, 0xEFE1, 0xEF69, 0xDF88, 0xDF68, 0xDF48,\n   0xED2B, 0xED3D, 0xED19, 0xEF1C, 0xEF08, 0xED47, 0xED3D, 0xED33, 0xEC2B, 0xEC0B, 0xEBEB, 0xEBCB, 0xEBCE, 0xEA7C, 0xEB69, 0xEB6C,\n   0xE9B6, 0xEB0B, 0xEAEB, 0xE9E9, 0xDCA8, 0xDC88, 0xDC68, 0xDC48, 0xE910, 0xEA23, 0xEB58, 0xEB4F, 0xEB45, 0xEAE5, 0xDB68, 0xDB48,\n   0xE92B, 0xE90B, 0xE8EB, 0xE8CB, 0xE8AB, 0xE88B, 0xE86B, 0xE84B, 0xDA28, 0xDA08, 0xD9E8, 0xD9C8, 0xD9A8, 0xD988, 0xD968, 0xD948,\n   0xD928, 0xD908, 0xD8E8, 0xD8C8, 0xD8A8, 0xD888, 0xD868, 0xD848, 0xD828, 0xD808, 0xD7E8, 0xD7C8, 0xD7A8, 0xD788, 0xD768, 0xD748,\n   0xD728, 0xD708, 0xD6E8, 0xD6C8, 0xD6A8, 0xD688, 0xD668, 0xD648, 0xD628, 0xD608, 0xD5E8, 0xD5C8, 0xD5A8, 0xD588, 0xD568, 0xD548,\n   0xD528, 0xD508, 0xD4E8, 0xD4C8, 0xE2B1, 0xE28B, 0xE26B, 0xE270, 0xE22B, 0xE20B, 0xE1EB, 0xE1CB, 0xE1AB, 0xE18B, 0xE18E, 0xDD8F,\n   0xE3A8, 0xDFD3, 0xD929, 0xD90A, 0xE348, 0xD8C9, 0xD8AA, 0xDCD7, 0xDCB2, 0xD681, 0xD82A, 0xD80A, 0xE268, 0xCEDE, 0xD168, 0xD148,\n   0xE116, 0xE0E9, 0xE1CB, 0xE0B7, 0xE0B7, 0xE15E, 0xDF17, 0xE034, 0xE013, 0xDFF3, 0xDFD3, 0xDE6C, 0xDF93, 0xDF73, 0xDF55, 0xDF34,\n   0xD56A, 0xD54A, 0xD52A, 0xD50A, 0xD4EA, 0xD4CA, 0xD4AA, 0xD48A, 0xD46A, 0xD44A, 0xD42A, 0xD40A, 0xD3EA, 0xD3CA, 0xD3AA, 0xD38A,\n   0xD36A, 0xD34A, 0xD32A, 0xD30A, 0xD2EA, 0xD2CA, 0xD2AA, 0xD28A, 0xD26A, 0xD24A, 0xD22A, 0xD20A, 0xD1EA, 0xD1CA, 0xD1AA, 0xD18A,\n   0xD16A, 0xD14A, 0xD12A, 0xD10A, 0xD0EA, 0xD0CA, 0xD0AA, 0xD08A, 0xD06A, 0xD04A, 0xD02A, 0xD00A, 0xCFEA, 0xCFCA, 0xCFAA, 0xCF8A,\n   0xCF6A, 0xCF4A, 0xCF2A, 0xCF0A, 0xCEEA, 0xCECA, 0xCEAA, 0xCE8A, 0xCE6A, 0xCE4A, 0xCE2A, 0xCE0A, 0xCDEA, 0xCDCA, 0xCDAA, 0xCD8A,\n   0xCD6A, 0xCD4A, 0xCD2A, 0xCD0A, 0xCCEA, 0xCCCA, 0xCCAA, 0xCC8A, 0xCC6A, 0xCC4A, 0xCC2A, 0xCC0A, 0xCBEA, 0xCBCA, 0xCBAA, 0xCB8A,\n   0xCB6A, 0xCB4A, 0xCB2A, 0xCB0A, 0xCAEA, 0xCACA, 0xCAAA, 0xCA8A, 0xCA6A, 0xCA4A, 0xCA2A, 0xCA0A, 0xC9EA, 0xC9CA, 0xC9AA, 0xC98A,\n   0xC96A, 0xC94A, 0xC92A, 0xC90A, 0xC8EA, 0xC8CA, 0xC8AA, 0xC88A, 0xC86A, 0xC84A, 0xC82A, 0xC80A, 0xC7EA, 0xC7CA, 0xC7AA, 0xC78A,\n   0xC76A, 0xC74A, 0xC72A, 0xC70A, 0xC6EA, 0xC6CA, 0xC6AA, 0xC68A, 0xC66A, 0xC64A, 0xC62A, 0xC60A, 0xC5EA, 0xC5CA, 0xC5AA, 0xC58A,\n   0xC56A, 0xC54A, 0xC52A, 0xC50A, 0xC4EA, 0xC4CA, 0xC4AA, 0xC48A, 0xC46A, 0xC44A, 0xC42A, 0xC40A, 0xC3EA, 0xC3CA, 0xC3AA, 0xC38A,\n   0xC36A, 0xC34A, 0xC32A, 0xC30A, 0xC2EA, 0xC2CA, 0xC2AA, 0xC28A, 0xC26A, 0xC24A, 0xC22A, 0xC20A, 0xC1EA, 0xC1CA, 0xC1AA, 0xC18A,\n   0xC16A, 0xC14A, 0xC12A, 0xC10A, 0xC0EA, 0xC0CA, 0xC0AA, 0xC08A, 0xC06A, 0xC04A, 0xC02A, 0xC00A, 0xBFEA, 0xBFCA, 0xBFAA, 0xBF8A,\n   0xBF6A, 0xBF4A, 0xBF2A, 0xBF0A, 0xBEEA, 0xBECA, 0xBEAA, 0xBE8A, 0xBE6A, 0xBE4A, 0xBE2A, 0xBE0A, 0xBDEA, 0xBDCA, 0xBDAA, 0xBD8A,\n   0xBD6A, 0xBD4A, 0xBD2A, 0xBD0A, 0xBCEA, 0xBCCA, 0xBCAA, 0xBC8A, 0xBC6A, 0xBC4A, 0xBC2A, 0xBC0A, 0xBBEA, 0xB2E0, 0xB568, 0xB548,\n   0xBB6A, 0xBB4A, 0xBB2A, 0xBB0A, 0xBAEA, 0xBACA, 0xBAAA, 0xBA8A, 0xBA6A, 0xBA4A, 0xBA2A, 0xBA0A, 0xB9EA, 0xB9CA, 0xB9AA, 0xB98A,\n   0xB96A, 0xB94A, 0xB92A, 0xB90A, 0xB8EA, 0xB8CA, 0xB8AA, 0xB88A, 0xB86A, 0xB84A, 0xB82A, 0xB80A, 0xB7EA, 0xB7CA, 0xB7AA, 0xB78A,\n   0xB76A, 0xB74A, 0xB72A, 0xB70A, 0xB6EA, 0xB6CA, 0xB6AA, 0xB68A, 0xB66A, 0xB64A, 0xB62A, 0xB60A, 0xB5EA, 0xB5CA, 0xB5AA, 0xB58A,\n   0xB56A, 0xB54A, 0xB52A, 0xB50A, 0xB4EA, 0xB4CA, 0xB4AA, 0xB48A, 0xB46A, 0xB44A, 0xB42A, 0xB40A, 0xB3EA, 0xB3CA, 0xB3AA, 0xB38A,\n   0xB36A, 0xB34A, 0xB32A, 0xB30A, 0xB2EA, 0xB2CA, 0xB2AA, 0xB28A, 0xB26A, 0xB24A, 0xB22A, 0xB20A, 0xB1EA, 0xB1CA, 0xB1AA, 0xB18A,\n   0xB16A, 0xB14A, 0xB12A, 0xB10A, 0xB0EA, 0xB0CA, 0xB0AA, 0xB08A, 0xB06A, 0xB04A, 0xB02A, 0xB00A, 0xAFEA, 0xAFCA, 0xAFAA, 0xAF8A,\n   0xAF6A, 0xAF4A, 0xAF2A, 0xAF0A, 0xAEEA, 0xAECA, 0xAEAA, 0xAE8A, 0xAE6A, 0xAE4A, 0xAE2A, 0xAE0A, 0xADEA, 0xADCA, 0xADAA, 0xAD8A,\n   0xAD6A, 0xAD4A, 0xAD2A, 0xAD0A, 0xACEA, 0xACCA, 0xACAA, 0xAC8A, 0xAC6A, 0xAC4A, 0xAC2A, 0xAC0A, 0xABEA, 0xABCA, 0xABAA, 0xAB8A,\n   0xAB6A, 0xAB4A, 0xAB2A, 0xAB0A, 0xAAEA, 0xAACA, 0xAAAA, 0xAA8A, 0xAA6A, 0xAA4A, 0xAA2A, 0xAA0A, 0xA9EA, 0xA9CA, 0xA9AA, 0xA98A,\n   0xA96A, 0xA94A, 0xA92A, 0xA90A, 0xA8EA, 0xA8CA, 0xA8AA, 0xA88A, 0xA86A, 0xA84A, 0xA82A, 0xA80A, 0xA7EA, 0xA7CA, 0xA7AA, 0xA78A,\n   0xA76A, 0xA74A, 0xA72A, 0xA70A, 0xA6EA, 0xA6CA, 0xA6AA, 0xA68A, 0xA66A, 0xA64A, 0xA62A, 0xA60A, 0xA5EA, 0xA5CA, 0xA5AA, 0xA58A,\n   0xA56A, 0xA54A, 0xA52A, 0xA50A, 0xA4EA, 0xA4CA, 0xA4AA, 0xA48A, 0xA46A, 0xA44A, 0xA42A, 0xA40A, 0xA3EA, 0xA3CA, 0xA3AA, 0xA38A,\n   0xA36A, 0xA34A, 0xA32A, 0xA30A, 0xA2EA, 0xA2CA, 0xA2AA, 0xA28A, 0xA26A, 0xA24A, 0xA22A, 0xA20A, 0xA1EA, 0xA1CA, 0xA1AA, 0xA18A,\n   0xA16A, 0xA14A, 0xA12A, 0xA10A, 0xA0EA, 0xA0CA, 0xA0AA, 0xA08A, 0xA06A, 0xA04A, 0xA02A, 0xA00A, 0x9FEA, 0x9FCA, 0x9FAA, 0x9F8A,\n   0x9F6A, 0x9F4A, 0x9F2A, 0x9F0A, 0x9EEA, 0x9ECA, 0x9EAA, 0x9E8A, 0x9E6A, 0x9E4A, 0x9E2A, 0x9E0A, 0x9DEA, 0x9DCA, 0x9DAA, 0x9D8A,\n   0x9D6A, 0x9D4A, 0x9D2A, 0x9D0A, 0x9CEA, 0x9CCA, 0x9CAA, 0x9C8A, 0x9C6A, 0x9C4A, 0x9C2A, 0x9C0A, 0x9BEA, 0x9BCA, 0x9BAA, 0x9B8A,\n   0x9B6A, 0x9B4A, 0x9B2A, 0x9B0A, 0x9AEA, 0x9ACA, 0x9AAA, 0x9A8A, 0x9A6A, 0x9A4A, 0x9A2A, 0x9A0A, 0x99EA, 0x99CA, 0x99AA, 0x998A,\n   0x996A, 0x994A, 0x992A, 0x990A, 0x98EA, 0x98CA, 0x98AA, 0x988A, 0x986A, 0x984A, 0x982A, 0x980A, 0x97EA, 0x97CA, 0x97AA, 0x978A,\n   0x976A, 0x974A, 0x972A, 0x970A, 0x96EA, 0x96CA, 0x96AA, 0x968A, 0x966A, 0x964A, 0x962A, 0x960A, 0x95EA, 0x95CA, 0x95AA, 0x958A,\n   0x956A, 0x954A, 0x952A, 0x950A, 0x94EA, 0x94CA, 0x94AA, 0x948A, 0x946A, 0x944A, 0x942A, 0x940A, 0x93EA, 0x93CA, 0x93AA, 0x938A,\n   0x936A, 0x934A, 0x932A, 0x930A, 0x92EA, 0x92CA, 0x92AA, 0x928A, 0x926A, 0x924A, 0x922A, 0x920A, 0x91EA, 0x91CA, 0x91AA, 0x918A,\n   0x916A, 0x914A, 0x912A, 0x910A, 0x90EA, 0x90CA, 0x90AA, 0x908A, 0x906A, 0x904A, 0x902A, 0x900A, 0x8FEA, 0x8FCA, 0x8FAA, 0x8F8A,\n   0x8F6A, 0x8F4A, 0x8F2A, 0x8F0A, 0x8EEA, 0x8ECA, 0x8EAA, 0x8E8A, 0x8E6A, 0x8E4A, 0x8E2A, 0x8E0A, 0x8DEA, 0x8DCA, 0x8DAA, 0x8D8A,\n   0x8D6A, 0x8D4A, 0x8D2A, 0x8D0A, 0x8CEA, 0x8CCA, 0x8CAA, 0x8C8A, 0x8C6A, 0x8C4A, 0x8C2A, 0x8C0A, 0x8BEA, 0x8BCA, 0x8BAA, 0x8B8A,\n   0x8B6A, 0x8B4A, 0x8B2A, 0x8B0A, 0x8AEA, 0x8ACA, 0x8AAA, 0x8A8A, 0x8A6A, 0x8A4A, 0x8A2A, 0x8A0A, 0x89EA, 0x89CA, 0x89AA, 0x898A,\n   0x896A, 0x894A, 0x892A, 0x890A, 0x88EA, 0x88CA, 0x88AA, 0x888A, 0x886A, 0x884A, 0x882A, 0x880A, 0x87EA, 0x87CA, 0x87AA, 0x878A,\n   0x876A, 0x874A, 0x872A, 0x870A, 0x86EA, 0x86CA, 0x86AA, 0x868A, 0x866A, 0x864A, 0x862A, 0x860A, 0x85EA, 0x85CA, 0x85AA, 0x858A,\n   0x856A, 0x854A, 0x852A, 0x850A, 0x84EA, 0x84CA, 0x84AA, 0x848A, 0x846A, 0x844A, 0x842A, 0x840A, 0x83EA, 0x83CA, 0x83AA, 0x838A,\n   0x836A, 0x834A, 0x832A, 0x830A, 0x82EA, 0x82CA, 0x82AA, 0x828A, 0x826A, 0x824A, 0x822A, 0x820A, 0x81EA, 0x81CA, 0x81AA, 0x818A,\n   0x816A, 0x814A, 0x812A, 0x810A, 0x80EA, 0x80CA, 0x80AA, 0x808A, 0x806A, 0x804A, 0x802A, 0x800A, 0x7FEA, 0x7FCA, 0x7FAA, 0x7F8A,\n   0x7F6A, 0x7F4A, 0x7F2A, 0x7F0A, 0x7EEA, 0x7ECA, 0x7EAA, 0x7E8A, 0x7E6A, 0x7E4A, 0x7E2A, 0x7E0A, 0x7DEA, 0x7DCA, 0x7DAA, 0x7D8A,\n   0x7D6A, 0x7D4A, 0x7D2A, 0x7D0A, 0x7CEA, 0x7CCA, 0x7CAA, 0x7C8A, 0x7C6A, 0x7C4A, 0x7C2A, 0x7C0A, 0x7BEA, 0x7BCA, 0x7BAA, 0x7B8A,\n   0x7B6A, 0x7B4A, 0x7B2A, 0x7B0A, 0x7AEA, 0x7ACA, 0x7AAA, 0x7A8A, 0x7A6A, 0x7A4A, 0x7A2A, 0x7A0A, 0x79EA, 0x79CA, 0x79AA, 0x798A,\n   0x796A, 0x794A, 0x792A, 0x790A, 0x78EA, 0x78CA, 0x78AA, 0x788A, 0x786A, 0x784A, 0x782A, 0x780A, 0x77EA, 0x77CA, 0x77AA, 0x778A,\n   0x776A, 0x774A, 0x772A, 0x770A, 0x76EA, 0x76CA, 0x76AA, 0x768A, 0x766A, 0x764A, 0x762A, 0x760A, 0x75EA, 0x75CA, 0x75AA, 0x758A,\n   0x756A, 0x754A, 0x752A, 0x750A, 0x74EA, 0x74CA, 0x74AA, 0x748A, 0x746A, 0x744A, 0x742A, 0x740A, 0x73EA, 0x73CA, 0x73AA, 0x738A,\n   0x736A, 0x734A, 0x732A, 0x730A, 0x72EA, 0x72CA, 0x72AA, 0x728A, 0x726A, 0x724A, 0x722A, 0x720A, 0x71EA, 0x71CA, 0x71AA, 0x718A,\n   0x716A, 0x714A, 0x712A, 0x710A, 0x70EA, 0x70CA, 0x70AA, 0x708A, 0x706A, 0x704A, 0x702A, 0x700A, 0x6FEA, 0x6FCA, 0x6FAA, 0x6F8A,\n   0x6F6A, 0x6F4A, 0x6F2A, 0x6F0A, 0x6EEA, 0x6ECA, 0x6EAA, 0x6E8A, 0x6E6A, 0x6E4A, 0x6E2A, 0x6E0A, 0x6DEA, 0x6DCA, 0x6DAA, 0x6D8A,\n   0x6D6A, 0x6D4A, 0x6D2A, 0x6D0A, 0x6CEA, 0x6CCA, 0x6CAA, 0x6C8A, 0x6C6A, 0x6C4A, 0x6C2A, 0x6C0A, 0x6BEA, 0x6BCA, 0x6BAA, 0x6B8A,\n   0x6B6A, 0x6B4A, 0x6B2A, 0x6B0A, 0x6AEA, 0x6ACA, 0x6AAA, 0x6A8A, 0x6A6A, 0x6A4A, 0x6A2A, 0x6A0A, 0x69EA, 0x60F0, 0x6368, 0x6348,\n   0x696A, 0x694A, 0x692A, 0x690A, 0x68EA, 0x68CA, 0x68AA, 0x688A, 0x686A, 0x684A, 0x682A, 0x680A, 0x67EA, 0x67CA, 0x67AA, 0x678A,\n   0x676A, 0x674A, 0x672A, 0x670A, 0x66EA, 0x66CA, 0x66AA, 0x668A, 0x666A, 0x664A, 0x662A, 0x660A, 0x65EA, 0x65CA, 0x65AA, 0x658A,\n   0x656A, 0x654A, 0x652A, 0x650A, 0x6B26, 0x6DE1, 0x6E9C, 0x5E48, 0x5E28, 0x5E08, 0x5DE8, 0x5DC8, 0x5DA8, 0x5D88, 0x5D68, 0x5D48,\n   0x5D28, 0x5D08, 0x5CE8, 0x5CC8, 0x5CA8, 0x5C88, 0x5C68, 0x5C48, 0x5C28, 0x5C08, 0x5BE8, 0x5BC8, 0x5BA8, 0x5B88, 0x5B68, 0x5B48,\n   0x5B28, 0x5B08, 0x5AE8, 0x5AC8, 0x5AA8, 0x5A88, 0x5A68, 0x5A48, 0x5A28, 0x5A08, 0x59E8, 0x59C8, 0x59A8, 0x5988, 0x5968, 0x5948,\n   0x5928, 0x5908, 0x58E8, 0x58C8, 0x58A8, 0x5888, 0x5868, 0x5848, 0x5828, 0x5808, 0x57E8, 0x57C8, 0x57A8, 0x5788, 0x5768, 0x5748,\n   0x5D6A, 0x5D4A, 0x5D2A, 0x5D0A, 0x5CEA, 0x5CCA, 0x5CAA, 0x5C8A, 0x5C6A, 0x5C4A, 0x5C2A, 0x5C0A, 0x5BEA, 0x5BCA, 0x5BAA, 0x5B8A,\n   0x5B6A, 0x5B4A, 0x5B2A, 0x5B0A, 0x5AEA, 0x5ACA, 0x5AAA, 0x5A8A, 0x5A6A, 0x5A4A, 0x5A2A, 0x5A0A, 0x59EA, 0x59CA, 0x59AA, 0x598A,\n   0x596A, 0x594A, 0x592A, 0x590A, 0x58EA, 0x58CA, 0x58AA, 0x588A, 0x586A, 0x584A, 0x582A, 0x580A, 0x57EA, 0x57CA, 0x57AA, 0x578A,\n   0x576A, 0x574A, 0x572A, 0x570A, 0x56EA, 0x56CA, 0x56AA, 0x568A, 0x566A, 0x564A, 0x562A, 0x560A, 0x55EA, 0x55CA, 0x55AA, 0x558A,\n   0x556A, 0x554A, 0x552A, 0x550A, 0x54EA, 0x54CA, 0x54AA, 0x548A, 0x546A, 0x544A, 0x542A, 0x540A, 0x53EA, 0x53CA, 0x53AA, 0x538A,\n   0x536A, 0x534A, 0x532A, 0x530A, 0x52EA, 0x52CA, 0x52AA, 0x528A, 0x526A, 0x524A, 0x522A, 0x520A, 0x51EA, 0x51CA, 0x51AA, 0x518A,\n   0x516A, 0x514A, 0x512A, 0x510A, 0x50EA, 0x50CA, 0x50AA, 0x508A, 0x506A, 0x504A, 0x502A, 0x500A, 0x4FEA, 0x4FCA, 0x4FAA, 0x4F8A,\n   0x4F6A, 0x4F4A, 0x4F2A, 0x4F0A, 0x4EEA, 0x4ECA, 0x4EAA, 0x4E8A, 0x4E6A, 0x4E4A, 0x4E2A, 0x4E0A, 0x4DEA, 0x4DCA, 0x4DAA, 0x4D8A,\n   0x4D6A, 0x4D4A, 0x4D2A, 0x4D0A, 0x4CEA, 0x4CCA, 0x4CAA, 0x4C8A, 0x4C6A, 0x4C4A, 0x4C2A, 0x4C0A, 0x4BEA, 0x4BCA, 0x4BAA, 0x4B8A,\n   0x4B6A, 0x4B4A, 0x4B2A, 0x4B0A, 0x4AEA, 0x4ACA, 0x4AAA, 0x4A8A, 0x4A6A, 0x4A4A, 0x4A2A, 0x4A0A, 0x49EA, 0x49CA, 0x49AA, 0x498A,\n   0x496A, 0x494A, 0x492A, 0x490A, 0x48EA, 0x48CA, 0x48AA, 0x488A, 0x486A, 0x484A, 0x482A, 0x480A, 0x47EA, 0x47CA, 0x47AA, 0x478A,\n   0x476A, 0x474A, 0x472A, 0x470A, 0x46EA, 0x46CA, 0x46AA, 0x468A, 0x466A, 0x464A, 0x462A, 0x460A, 0x45EA, 0x45CA, 0x45AA, 0x458A,\n   0x456A, 0x454A, 0x452A, 0x450A, 0x44EA, 0x44CA, 0x44AA, 0x448A, 0x446A, 0x444A, 0x442A, 0x440A, 0x43EA, 0x43CA, 0x43AA, 0x438A,\n   0x436A, 0x434A, 0x432A, 0x430A, 0x42EA, 0x42CA, 0x42AA, 0x428A, 0x426A, 0x424A, 0x422A, 0x420A, 0x41EA, 0x41CA, 0x41AA, 0x418A,\n   0x416A, 0x414A, 0x412A, 0x410A, 0x40EA, 0x40CA, 0x40AA, 0x408A, 0x406A, 0x404A, 0x402A, 0x400A, 0x3FEA, 0x3FCA, 0x3FAA, 0x3F8A,\n   0x3F6A, 0x3F4A, 0x3F2A, 0x3F0A, 0x3EEA, 0x3ECA, 0x3EAA, 0x3E8A, 0x3E6A, 0x3E4A, 0x3E2A, 0x3E0A, 0x3DEA, 0x3DCA, 0x3DAA, 0x3D8A,\n   0x3D6A, 0x3D4A, 0x3D2A, 0x3D0A, 0x3CEA, 0x3CCA, 0x3CAA, 0x3C8A, 0x3C6A, 0x3C4A, 0x3C2A, 0x3C0A, 0x3BEA, 0x3BCA, 0x3BAA, 0x3B8A,\n   0x3B6A, 0x3B4A, 0x3B2A, 0x3B0A, 0x3AEA, 0x3ACA, 0x3AAA, 0x3A8A, 0x3A6A, 0x3A4A, 0x3A2A, 0x3A0A, 0x39EA, 0x39CA, 0x39AA, 0x398A,\n   0x396A, 0x394A, 0x392A, 0x390A, 0x38EA, 0x38CA, 0x38AA, 0x388A, 0x386A, 0x384A, 0x382A, 0x380A, 0x37EA, 0x37CA, 0x37AA, 0x378A,\n   0x376A, 0x374A, 0x372A, 0x370A, 0x36EA, 0x36CA, 0x36AA, 0x368A, 0x366A, 0x364A, 0x362A, 0x360A, 0x35EA, 0x35CA, 0x35AA, 0x358A,\n   0x356A, 0x354A, 0x352A, 0x350A, 0x34EA, 0x34CA, 0x34AA, 0x348A, 0x346A, 0x344A, 0x342A, 0x340A, 0x33EA, 0x33CA, 0x33AA, 0x338A,\n   0x336A, 0x334A, 0x332A, 0x330A, 0x32EA, 0x32CA, 0x32AA, 0x328A, 0x326A, 0x324A, 0x322A, 0x320A, 0x31EA, 0x28F2, 0x2B68, 0x2B48,\n   0x3C2B, 0x3C0B, 0x3BEB, 0x3BCB, 0x3BAB, 0x3B8B, 0x3B6B, 0x3B4B, 0x3B2B, 0x3B0B, 0x3AEB, 0x3ACB, 0x3AAB, 0x3A8B, 0x3A6B, 0x3A4B,\n   0x3A2B, 0x3A0B, 0x39EB, 0x39CB, 0x39AB, 0x398B, 0x396B, 0x394B, 0x392B, 0x390B, 0x38EB, 0x38CB, 0x38AB, 0x388B, 0x386B, 0x384B,\n   0x382B, 0x380B, 0x37EB, 0x37CB, 0x37AB, 0x378B, 0x376B, 0x374B, 0x372B, 0x370B, 0x36EB, 0x36CB, 0x36AB, 0x368B, 0x366B, 0x364B,\n   0x362B, 0x360B, 0x35EB, 0x35CB, 0x35AB, 0x358B, 0x356B, 0x354B, 0x352B, 0x350B, 0x34EB, 0x34CB, 0x34AB, 0x348B, 0x346B, 0x344B,\n   0x344B, 0x342B, 0x340B, 0x33EB, 0x33CB, 0x33AB, 0x338B, 0x336B, 0x334B, 0x332B, 0x330B, 0x32EB, 0x32CB, 0x32AB, 0x328B, 0x326B,\n   0x324B, 0x322B, 0x320B, 0x31EB, 0x31CB, 0x31AB, 0x318B, 0x316B, 0x314B, 0x312B, 0x310B, 0x30EB, 0x30CB, 0x30AB, 0x308B, 0x306B,\n   0x304B, 0x302B, 0x300B, 0x2FEB, 0x2FCB, 0x2FAB, 0x2F8B, 0x2F6B, 0x2F4B, 0x2F2B, 0x2F0B, 0x2EEB, 0x2ECB, 0x2EAB, 0x2E8B, 0x2E6B,\n   0x2E4B, 0x2E2B, 0x2E0B, 0x2DEB, 0x2DCB, 0x2DAB, 0x2D8B, 0x2D6B, 0x2D4B, 0x2D2B, 0x2D0B, 0x2CEB, 0x2CCB, 0x2CAB, 0x2C8B, 0x2C6B,\n   0x2C4B, 0x2C2B, 0x2C0B, 0x2BEB, 0x2BCB, 0x2BAB, 0x2B8B, 0x2B6B, 0x2B4B, 0x2B2B, 0x2B0B, 0x2AEB, 0x2ACB, 0x2AAB, 0x2A8B, 0x2A6B,\n   0x2A4B, 0x2A2B, 0x2A0B, 0x29EB, 0x29CB, 0x29AB, 0x298B, 0x296B, 0x294B, 0x292B, 0x290B, 0x28EB, 0x28CB, 0x28AB, 0x288B, 0x286B,\n   0x284B, 0x282B, 0x280B, 0x27EB, 0x27CB, 0x27AB, 0x278B, 0x276B, 0x274B, 0x272B, 0x270B, 0x26EB, 0x26CB, 0x26AB, 0x268B, 0x266B,\n   0x264B, 0x262B, 0x260B, 0x25EB, 0x25CB, 0x25AB, 0x258B, 0x256B, 0x254B, 0x252B, 0x250B, 0x24EB, 0x24CB, 0x24AB, 0x248B, 0x246B,\n   0x244B, 0x242B, 0x240B, 0x23EB, 0x23CB, 0x23AB, 0x238B, 0x236B, 0x234B, 0x232B, 0x230B, 0x22EB, 0x22CB, 0x22AB, 0x228B, 0x226B,\n   0x224B, 0x222B, 0x220B, 0x21EB, 0x21CB, 0x21AB, 0x218B, 0x216B, 0x214B, 0x212B, 0x210B, 0x20EB, 0x20CB, 0x20AB, 0x208B, 0x206B,\n   0x204B, 0x202B, 0x200B, 0x1FEB, 0x1FCB, 0x1FAB, 0x1F8B, 0x1F6B, 0x1F4B, 0x1F2B, 0x1F0B, 0x1EEB, 0x1ECB, 0x1EAB, 0x1E8B, 0x1E6B,\n   0x1E4B, 0x1E2B, 0x1E0B, 0x1DEB, 0x1DCB, 0x1DAB, 0x1D8B, 0x1D6B, 0x1D4B, 0x1D2B, 0x1D0B, 0x1CEB, 0x1CCB, 0x1CAB, 0x1C8B, 0x1C6B,\n   0x1C4B, 0x1C2B, 0x1C0B, 0x1BEB, 0x1BCB, 0x1BAB, 0x1B8B, 0x1B6B, 0x106A, 0x104A, 0x102A, 0x100A, 0xFEA, 0xFCA, 0xFAA, 0xF8A,\n   0xF6A, 0x668, 0x8E8, 0x8C8, 0x8A8, 0x888, 0x868, 0x848, 0x7D7, 0x194B, 0x7B6, 0xD1C, 0xCFC, 0xCB2, 0xCA9, 0xC9C,\n   0xC7C, 0xC5C, 0xC3C, 0xC1C, 0xBFC, 0xBDC, 0xBBC, 0xB9C, 0xB7C, 0xB5E, 0xB2C, 0xB1C, 0xAB8, 0xADC, 0xA9C, 0x2C2,\n   0x528, 0x166B, 0x1667, 0x3FF, 0x9FC, 0x9DC, 0x9BC, 0x659, 0xBB8, 0x15A7, 0xFC6, 0x1C0, 0x1B1, 0x9CB, 0x82C, 0x1285,\n};\n\nstatic uint16_t Data[] = {\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202,\n   0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202,\n   0x5202, 0x2E82, 0x3E80, 0x5198, 0x2A14, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4686, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x1A1B, 0x1A1B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4584, 0x3E80, 0x3E80, 0x3E80, 0x298,\n   0x3E80, 0x298, 0x6615, 0x6696, 0x298, 0x1A97, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x4584, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4584,\n   0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x4584,\n   0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x2E82,\n   0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x7481, 0x7481, 0x7481, 0x7481, 0x7383, 0x1A1B, 0x1A1B, 0x1A1B, 0x6D82, 0x6D82, 0x4902,\n   0x4902, 0x3E80, 0x3E80, 0x2E82, 0x4902, 0x6E01, 0x6E01, 0x7501, 0x7501, 0x3E80, 0x1A1B, 0x1A1B, 0x1A1B, 0x1B02, 0x1B82, 0x1C02,\n   0x1C82, 0x1D02, 0x1D82, 0x1E02, 0x1E82, 0x1F02, 0x1F82, 0x2002, 0x2082, 0x2102, 0x2182, 0x2202, 0x2282, 0x2302, 0x2382, 0x2402,\n   0x2482, 0x2502, 0x2582, 0x2602, 0x2682, 0x2702, 0x2782, 0x455, 0xC99, 0x4D6, 0xC99, 0xF, 0xF, 0xF, 0xF, 0xF,\n   0x10F, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF,\n   0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0x8F, 0x10F, 0x8F, 0x18F, 0x10F,\n   0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0x10F, 0x10F,\n   0x10F, 0x8F, 0x20C, 0x298, 0x298, 0x318, 0x39A, 0x318, 0x298, 0x298, 0x455, 0x4D6, 0x298, 0x519, 0x598, 0x614,\n   0x598, 0x698, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09, 0xA89, 0xB09, 0xB89, 0x598, 0x298, 0xC59, 0xC99,\n   0xC59, 0x298, 0xD01, 0xD81, 0xE01, 0xE81, 0xF01, 0xF81, 0x1001, 0x1081, 0x1101, 0x1181, 0x1201, 0x1281, 0x1301, 0x1381,\n   0x1401, 0x1481, 0x1501, 0x1581, 0x1601, 0x1681, 0x1701, 0x1781, 0x1801, 0x1881, 0x1901, 0x1981, 0x455, 0x298, 0x4D6, 0x1A1B,\n   0x1A97, 0x298, 0x298, 0x298, 0xC99, 0x455, 0x4D6, 0x3E80, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x282C, 0x298, 0x39A, 0x39A, 0x39A, 0x39A, 0x289C, 0x289C, 0x1A1B, 0x289C, 0x2902, 0x29DD, 0xC99, 0x2A14, 0x289C, 0x1A1B,\n   0x2A9C, 0x519, 0x2B0B, 0x2B8B, 0x1A1B, 0x2C02, 0x289C, 0x298, 0x1A1B, 0x2C8B, 0x2902, 0x2D5E, 0x2D8B, 0x2D8B, 0x2D8B, 0x298,\n   0x298, 0x519, 0x614, 0xC99, 0xC99, 0xC99, 0x3E80, 0x298, 0x39A, 0x318, 0x298, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5405,\n   0x5405, 0x5405, 0x3E80, 0x5405, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x501C, 0x501C, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81,\n   0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0xC99,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E82, 0x2E82, 0x2E82, 0x4902, 0x4902, 0x2E82, 0x2E82, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2E82, 0x2E82, 0x2E82, 0x2E82, 0x2E82, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x4606, 0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5398, 0x5405, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x5087, 0x5087, 0x4606, 0x5087, 0x5087, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B,\n   0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x840B, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x4606,\n   0x4606, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x1A1B,\n   0x1A1B, 0x4701, 0x298, 0x4781, 0x4781, 0x4781, 0x3E80, 0x4801, 0x3E80, 0x4881, 0x4881, 0x4902, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0xC99, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F82, 0x2F02, 0x2F02, 0x4A82, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x4B02, 0x4B82, 0x4B82, 0x3E80, 0x4C02, 0x4C82, 0x4D01, 0x4D01,\n   0x4D01, 0x4D82, 0x4E02, 0x2902, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x3B81, 0x3C03, 0x3C82, 0x3001, 0x3082, 0x3D81, 0x3E01, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3101, 0x3182,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2902, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x4E82, 0x4F02, 0x3D02, 0x2902, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x7F0B, 0x3E80, 0x3E80,\n   0x3E80, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x519, 0x519, 0xC99, 0x455, 0x4D6, 0x2902, 0x3301, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3381, 0x3001, 0x3082, 0x3401, 0x3401, 0x3001, 0x3082, 0x2902, 0x3481, 0x3501, 0x3581, 0x3001, 0x3082, 0x3401,\n   0x3601, 0x3682, 0x3701, 0x3781, 0x3001, 0x3082, 0x2902, 0x2902, 0x3701, 0x3801, 0x2902, 0x3881, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3B81, 0x3C03, 0x3C82, 0x3B81, 0x3C03, 0x3C82, 0x3B81, 0x3C03, 0x3C82, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3D02, 0x3001, 0x3082, 0x501C, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x3E80, 0x5087, 0x5087, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3201, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3282, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3901, 0x3001, 0x3082, 0x3901,\n   0x2902, 0x2902, 0x3001, 0x3082, 0x3901, 0x3001, 0x3082, 0x3981, 0x3981, 0x3001, 0x3082, 0x3001, 0x3082, 0x3A01, 0x3001, 0x3082,\n   0x2902, 0x3A85, 0x3001, 0x3082, 0x2902, 0x3B02, 0x4D01, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3E80,\n   0x3E80, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x598, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x5398, 0x3E80, 0x3E80, 0x3E80, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398,\n   0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x3E80, 0x5B10, 0x5405, 0x4606, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x5B10, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2902, 0x2902, 0x2902, 0x3F02, 0x3F82, 0x2902, 0x4002, 0x4002, 0x2902, 0x4082,\n   0x2902, 0x4102, 0x2902, 0x2902, 0x2902, 0x2902, 0x4002, 0x2902, 0x2902, 0x4182, 0x2902, 0x2902, 0x2902, 0x2902, 0x4202, 0x4282,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4282, 0x2902, 0x2902, 0x4302, 0x2902, 0x2902, 0x4382, 0x2902, 0x2902, 0x2902, 0x2902,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4402, 0x2902, 0x2902, 0x4402, 0x2902, 0x2902, 0x2902, 0x2902, 0x4402, 0x2902,\n   0x4482, 0x4482, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4502, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x3E80, 0x3E80, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584,\n   0x4584, 0x4584, 0x1A1B, 0x1A1B, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B,\n   0x1A1B, 0x1A1B, 0x4584, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101,\n   0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x3E80, 0x3E80, 0x4584, 0x5198, 0x5198,\n   0x5198, 0x5198, 0x5198, 0x5198, 0x2E01, 0x2E01, 0x3E80, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x4982, 0x4A02, 0x4A02, 0x4A02, 0x4902, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02,\n   0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x4606, 0x4606, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x4606, 0x5298, 0x4606, 0x4606, 0x5298, 0x4606, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x5305,\n   0x5305, 0x5298, 0x5298, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C89, 0x5D09,\n   0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x640B, 0x648B, 0x650B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606,\n   0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09,\n   0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5509, 0x5589, 0x5609, 0x5689, 0x5709, 0x5789, 0x5809, 0x5889, 0x5909,\n   0x5989, 0x318, 0x5A18, 0x5A18, 0x5398, 0x3E80, 0x3E80, 0x4606, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x6615, 0x6696, 0x5484, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5198, 0x5198, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5484, 0x5484,\n   0x4606, 0x4606, 0x289C, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09,\n   0xA89, 0xB09, 0xB89, 0x5405, 0x5405, 0x5405, 0x5A9C, 0x5A9C, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4606, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x5B88,\n   0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x4606, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x5198, 0x5198,\n   0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x640B,\n   0x670B, 0x678B, 0x680B, 0x688B, 0x690B, 0x698B, 0x6A0B, 0x6A8B, 0x648B, 0x6B0B, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606,\n   0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4606, 0x3A85, 0x3A85, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A,\n   0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x5198, 0x5198, 0x5C09,\n   0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x298, 0x298, 0x318, 0x39A, 0x318, 0x298, 0x298,\n   0x6615, 0x6696, 0x298, 0x519, 0x598, 0x614, 0x598, 0x698, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09, 0xA89,\n   0xB09, 0xB89, 0x598, 0x298, 0xC99, 0xC99, 0xC99, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x2A14, 0x298, 0x298,\n   0x298, 0x298, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3E80,\n   0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606,\n   0x4606, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5C09, 0x5C89,\n   0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3A85, 0x3A85, 0x39A, 0x39A, 0x610B, 0x618B, 0x620B, 0x628B,\n   0x630B, 0x638B, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606,\n   0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x501C, 0x4606, 0x501C, 0x4606, 0x501C,\n   0x4606, 0x6615, 0x6696, 0x6615, 0x6696, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80,\n   0x3E80, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x5B88, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x5B88, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x5B88, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x4584, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5C09,\n   0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5087, 0x5087, 0x5087, 0x5B88, 0x4606, 0x4606, 0x4606, 0x3E80,\n   0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606,\n   0x3E80, 0x4606, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x5B88, 0x5B88, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198,\n   0x39A, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4584, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x5198,\n   0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x501C, 0x501C, 0x501C, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198,\n   0x5198, 0x65B8, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x4606, 0x4606, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x4606, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x501C, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x1A97, 0x4584, 0x4584, 0x4584, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5B88, 0x5B88, 0x4606,\n   0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x20C, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x6615, 0x6696, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x5198, 0x5198, 0x5198, 0x6B8B, 0x6C0B, 0x6C8B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x2E82, 0x2E82,\n   0x2E82, 0x2E82, 0x6D02, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x3E80, 0x3E80, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x3E80, 0x3E80, 0x2E82, 0x6D82, 0x4902, 0x6D82, 0x4902, 0x6D82, 0x4902, 0x6D82, 0x3E80,\n   0x6E01, 0x3E80, 0x6E01, 0x3E80, 0x6E01, 0x3E80, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E82, 0x6E82, 0x6F02, 0x6F02, 0x6F02, 0x6F02, 0x6F82, 0x6F82, 0x7002,\n   0x7002, 0x7082, 0x7082, 0x7102, 0x7102, 0x3E80, 0x3E80, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7203,\n   0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7203,\n   0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x6D82, 0x6D82, 0x2E82, 0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x6E01,\n   0x6E01, 0x7301, 0x7301, 0x7383, 0x1A1B, 0x7402, 0x1A1B, 0x1B02, 0x1B82, 0x1C02, 0x1C82, 0x1D02, 0x1D82, 0x1E02, 0x1E82, 0x1F02,\n   0x1F82, 0x2002, 0x2082, 0x2102, 0x2182, 0x2202, 0x2282, 0x2302, 0x2382, 0x2402, 0x2482, 0x2502, 0x2582, 0x2602, 0x2682, 0x2702,\n   0x2782, 0x6615, 0xC99, 0x6696, 0xC99, 0x3E80, 0x6D82, 0x6D82, 0x4902, 0x4902, 0x2E82, 0x7582, 0x2E82, 0x4902, 0x6E01, 0x6E01,\n   0x7601, 0x7601, 0x7681, 0x1A1B, 0x1A1B, 0x1A1B, 0x3E80, 0x3E80, 0x2E82, 0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x7701, 0x7701,\n   0x7781, 0x7781, 0x7383, 0x1A1B, 0x1A1B, 0x3E80, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x782C, 0x20C, 0x20C,\n   0x20C, 0x788C, 0x5B10, 0x5B10, 0x7910, 0x7990, 0x2A14, 0x7A34, 0x2A14, 0x2A14, 0x2A14, 0x2A14, 0x298, 0x298, 0x7A9D, 0x7B1E,\n   0x6615, 0x7A9D, 0x7A9D, 0x7B1E, 0x6615, 0x7A9D, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x7B8D, 0x7C0E,\n   0x7C90, 0x7D10, 0x7D90, 0x7E10, 0x7E90, 0x782C, 0x318, 0x318, 0x318, 0x318, 0x318, 0x298, 0x298, 0x298, 0x298, 0x29DD,\n   0x2D5E, 0x298, 0x298, 0x298, 0x298, 0x1A97, 0x7F0B, 0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B,\n   0x519, 0x519, 0xC99, 0x455, 0x4D6, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x289C, 0x2902, 0x4D01,\n   0x4D01, 0x4D01, 0x2902, 0x2902, 0x4D01, 0x4D01, 0x4D01, 0x2902, 0x289C, 0x4D01, 0x289C, 0x289C, 0x289C, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x289C, 0x289C, 0xA20A, 0xA28A, 0xA30A, 0xA38A, 0xA40A, 0xA48A, 0xA50A, 0xA58A, 0xA60A, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x2A14, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x289C, 0x289C, 0xA68A, 0xA70A, 0xA78A, 0x3E80, 0x3E80,\n   0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0xC99, 0xC99, 0x289C, 0x289C, 0xC99, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x948A, 0x950A, 0x958A, 0x960A, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0xC99, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x8281, 0x289C, 0x4D01, 0x289C, 0x8301,\n   0x8381, 0x4D01, 0x4D01, 0x2A9C, 0x2902, 0x4D01, 0x4D01, 0x289C, 0x4D01, 0x2902, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2902, 0x289C,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x848A, 0x850A, 0x858A, 0x860A, 0x868A, 0x870A, 0x878A, 0x880A, 0x888A, 0x890A, 0x898A,\n   0x8A0A, 0x8A8A, 0x8B0A, 0x8B8A, 0x8C0A, 0x8C8A, 0x8D0A, 0x8D8A, 0x8E0A, 0x8E8A, 0x8F0A, 0x8F8A, 0x900A, 0x908A, 0x910A, 0x918A,\n   0x920A, 0x928A, 0x930A, 0x938A, 0x940A, 0xC99, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99,\n   0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0x289C, 0x289C, 0xC99,\n   0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xC99, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0x519,\n   0x519, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC59, 0xC99, 0xC59, 0xC99,\n   0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99,\n   0xC99, 0xC59, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x455,\n   0x4D6, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x9C1C, 0x9C1C, 0x9C1C,\n   0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C9C, 0x9C9C, 0x9C9C,\n   0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x7F0B, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0xC59, 0xC99, 0xC59, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99,\n   0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x39A, 0x39A, 0xC99, 0x1A1B, 0x289C, 0x39A, 0x39A, 0x3E80, 0x289C, 0xC99, 0xC99,\n   0xC99, 0xC99, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B10, 0x5B10,\n   0x5B10, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x3E80,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x840B, 0x9D0B, 0x9D8B, 0x9E0B, 0x9E8B, 0x9F0B, 0x9F8B, 0xA00B, 0xA08B, 0xA10B, 0x840B,\n   0x9D0B, 0x9D8B, 0x9E0B, 0x9E8B, 0x9F0B, 0x9F8B, 0xA00B, 0xA08B, 0xA10B, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC59, 0xC59, 0xC59, 0xC59, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x501C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B,\n   0x630B, 0x630B, 0x630B, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x501C, 0x610B, 0x618B, 0x620B, 0x628B, 0xA80B, 0xA88B, 0xA90B, 0xA98B, 0xAA0B,\n   0x640B, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x289C, 0x3E80, 0x289C, 0x289C,\n   0x289C, 0x3E80, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B,\n   0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x968B, 0x970B, 0x978B, 0x980B, 0x988B, 0x990B, 0x998B, 0x9A0B, 0x9A8B, 0x9B0B, 0x9B8B,\n   0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x968B, 0x970B, 0x978B, 0x980B, 0x988B, 0x990B, 0x998B,\n   0x9A0B, 0x9A8B, 0x9B0B, 0x9B8B, 0x501C, 0x501C, 0x501C, 0x501C, 0x20C, 0x298, 0x298, 0x298, 0x289C, 0x4584, 0x3A85, 0xA18A,\n   0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x289C, 0x289C, 0x455, 0x4D6, 0x455, 0x4D6,\n   0x455, 0x4D6, 0x455, 0x4D6, 0x2A14, 0x6615, 0x6696, 0x6696, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x4606, 0x4606, 0x1A1B, 0x1A1B, 0x4584, 0x4584, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x501C, 0x501C, 0x630B, 0x630B, 0x630B, 0x630B, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93,\n   0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93,\n   0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12,\n   0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12,\n   0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x519, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x3E80, 0x5305, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x298, 0x2A14, 0x2A14, 0x1A97, 0x1A97,\n   0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x298, 0x298, 0x298, 0x298, 0x1A97, 0x1A97, 0x1A97, 0x598, 0x298, 0x598, 0x3E80, 0x298, 0x598, 0x298, 0x298, 0x2A14,\n   0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x318, 0x298, 0xD01, 0xD81, 0xE01, 0xE81, 0xF01, 0xF81, 0x1001, 0x1081,\n   0x1101, 0x1181, 0x1201, 0x1281, 0x1301, 0x1381, 0x1401, 0x1481, 0x1501, 0x1581, 0x1601, 0x1681, 0x1701, 0x1781, 0x1801, 0x1881,\n   0x1901, 0x1981, 0x6615, 0x298, 0x6696, 0x1A1B, 0x1A97,\n};\n\nstatic int16_t Upper[] = {\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0,\n   0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2E7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE0, 0x79,\n   0x0, 0xFFFF, 0x0, 0xFF18, 0x0, 0xFED4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0xFFFF, 0xFFFE, 0xFFB1, 0x0, 0x0, 0x0, 0xFF2E, 0xFF32,\n   0xFF33, 0xFF36, 0xFF35, 0xFF31, 0xFF2F, 0xFF2D, 0xFF2B, 0xFF2A, 0xFF26, 0xFF27, 0xFF25, 0x0, 0x0, 0x54, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0xFFDA, 0xFFDB, 0xFFE1, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC7, 0x0, 0xFFD1, 0xFFCA, 0xFFAA, 0xFFB0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0xFFD0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFC5, 0x8, 0x0, 0x4A, 0x56, 0x64,\n   0x80, 0x70, 0x7E, 0x8, 0x0, 0x9, 0x0, 0x0, 0xE3DB, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0,\n   0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n};\n\nstatic int16_t Lower[] = {\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n   0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n   0x20, 0x20, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,\n   0x1, 0x0, 0xFF39, 0x0, 0xFF87, 0x0, 0xD2, 0xCE, 0xCD, 0x4F, 0xCA, 0xCB, 0xCF, 0x0, 0xD3, 0xD1,\n   0xD5, 0xD6, 0xDA, 0xD9, 0xDB, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0xFF9F, 0xFFC8, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0x25,\n   0x40, 0x3F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,\n   0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFF8, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0xFFF8, 0x0, 0xFFB6, 0xFFF7, 0x0, 0xFFAA, 0xFF9C, 0x0, 0xFF90, 0xFFF9, 0xFF80, 0xFF82,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0xE2A3, 0xDF41, 0xDFBA, 0x0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,\n   0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n};\n\nstatic inline int32_t charType(int32_t c) {return Data[Blocks[c>>5]+c & 0xFFFF] & 0x1F;}\n\nint isLowc(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return charType(c) == CHAR_LOWERCASE;\n}\n\nint isUppc(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return charType(c) == CHAR_UPPERCASE;\n}\n\nint isLetterOrDigit(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return (1 << charType(c) & (CHAR_DIGIT | CHAR_LETTER)) != 0;\n}\n\nint32_t toUpperCase(int32_t c) {\n   if (c > 0xFFFF)\n      return c;\n   return c + Upper[Data[Blocks[c>>5]+c & 0xFFFF] >> 7];\n}\n\nint32_t toLowerCase(int32_t c) {\n   if (c > 0xFFFF)\n      return c;\n   return c + Lower[Data[Blocks[c>>5]+c & 0xFFFF] >> 7];\n}\n"
  },
  {
    "path": "src/lib.so.c",
    "content": "// 05sep25 Software Lab. Alexander Burger\n\n#include \"pico.h\"\n\nconst char TgOS[] = _OS;\nconst char TgCPU[] = _CPU;\n\n// I/O\nconst int32_t PipeBufSize = PIPE_BUF;\n\nchar *stderrMsg(char *fmt, char *s) {\n   fprintf(stderr, fmt, s);\n   return s;\n}\n\nvoid gPrintf(char *buf, int32_t siz, char *fmt, char *arg) {\n   if (snprintf(buf, siz, fmt, arg) >= siz)\n      fprintf(stderr, \"!! gPrintf() truncated !!\\n\");\n}\n\nchar *strErrno(void) {\n   return strerror(errno);\n}\n\nint32_t openRd(char *nm) {\n   return (int32_t)open(nm, O_RDONLY);\n}\n\nint32_t openWr(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_TRUNC|O_WRONLY, 0666);\n}\n\nint32_t openRdWr(char *nm) {\n   return (int32_t)open(nm, O_RDWR);\n}\n\nint32_t openRdWrExcl(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_EXCL|O_RDWR, 0666);\n}\n\nint32_t openRdWrCreate(char *nm) {\n   return (int32_t)open(nm, O_CREAT|O_RDWR, 0666);\n}\n\nint32_t openRdWrAppend(char *nm) {\n   return (int32_t)open(nm, O_APPEND|O_CREAT|O_RDWR, 0666);\n}\n\nint32_t openWrAppend(char *nm) {\n   return (int32_t)open(nm, O_APPEND|O_CREAT|O_WRONLY, 0666);\n}\n\nint fseekOfs(FILE *fp, int32_t ofs) {\n   return fseek(fp, (long)ofs, SEEK_CUR) == 0;\n}\n\nint fseek0(FILE *fp) {\n   return fseek(fp, 0L, SEEK_SET) == 0;\n}\n\nint seek0(int32_t fd) {\n   return lseek(fd, 0L, SEEK_SET) == 0;\n}\n\nint truncate0(int32_t fd) {\n   return ftruncate(fd, 0) == 0;\n}\n\nint32_t socketPair(int32_t *sv) {\n   return (int32_t)socketpair(AF_UNIX, SOCK_STREAM, 0, sv);\n}\n\nint32_t fcntlCloExec(int32_t fd) {\n   return (int32_t)fcntl(fd, F_SETFD, FD_CLOEXEC);\n}\n\nvoid fcntlSetFl(int32_t fd, int32_t flg) {\n   fcntl(fd, F_SETFL, flg);\n}\n\nint32_t nonBlocking(int32_t fd) {\n   int flg = fcntl(fd, F_GETFL, 0);\n\n   fcntlSetFl(fd, flg | O_NONBLOCK);\n   return (int32_t)flg;\n}\n\nvoid fcntlSetOwn(int32_t fd, int32_t pid) {\n   fcntl(fd, F_SETOWN, pid);\n   fcntlSetFl(fd, fcntl(fd, F_GETFL, 0) | O_NONBLOCK|O_ASYNC);\n}\n\nchar *getDir(char *nm) {\n   static DIR *dp;\n   struct dirent *p;\n\n   if (nm  &&  (dp = opendir(nm)) == NULL)\n      return NULL;\n   if ((p = readdir(dp)) != NULL)\n      return p->d_name;\n   closedir(dp);\n   return NULL;\n}\n\n// Signals\nconst int32_t Sig[] = {\n   SIGHUP, SIGINT, SIGUSR1, SIGUSR2, SIGPIPE, SIGALRM, SIGTERM, SIGCHLD,\n   SIGCONT, SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU, SIGWINCH, SIGIO\n};\n\nconst sighandler_t SigDfl = SIG_DFL;\nconst sighandler_t SigIgn = SIG_IGN;\n\nint32_t waitWuntraced(int32_t pid, int32_t *res) {\n   return waitpid((pid_t)pid, (int*)res, WUNTRACED);\n}\n\nint32_t wifStopped(int32_t *res) {\n   return WIFSTOPPED(*(int*)res);\n}\n\nint32_t nErrno(void) {\n   return errno;\n}\n\n// Sync src/defs.l 'ENOENT'\nint32_t gErrno(void) {\n   switch (errno) {\n   case ENOENT:     return 1;\n   case EINTR:      return 2;\n   case EBADF:      return 3;\n   case EAGAIN:     return 4;\n   case EACCES:     return 5;\n   case EPIPE:      return 6;\n   case ECONNRESET: return 7;\n   }\n   return 0;\n}\n\n// Terminal\nchar Tio;\nstruct termios OrgTermio;\nstruct termios *Termio;\n\nstatic void tcSet(struct termios *p) {\n   while (tcsetattr(STDIN_FILENO, TCSADRAIN, p)  &&  errno == EINTR);\n}\n\nvoid stopTerm(void) {\n   sigset_t mask;\n\n   if (Tio) {\n      if (Termio)\n         tcSet(Termio);\n      else\n         tcSet(&OrgTermio);\n   }\n}\n\nvoid setRaw(void) {\n   if (Tio && !Termio) {\n      *(Termio = malloc(sizeof(struct termios))) = OrgTermio;\n      tcgetattr(STDIN_FILENO, Termio);\n      Termio->c_iflag = 0;\n      Termio->c_lflag = ISIG;\n      Termio->c_cc[VMIN] = 1;\n      Termio->c_cc[VTIME] = 0;\n      tcSet(Termio);\n   }\n}\n\nvoid setCooked(void) {\n   if (Termio) {\n      tcSet(&OrgTermio);\n      free(Termio),  Termio = NULL;\n   }\n}\n\nint reopenTty(char* tty) {\n   return\n      freopen(tty, \"r\", stdin) != NULL  &&\n      freopen(tty, \"w\", stdout) != NULL  &&\n      freopen(tty, \"w\", stderr) != NULL;\n}\n\n// System\nstatic struct timeval Tv;\nstatic struct tm *Time;\n\nint64_t getUsec(int flg) {\n   if (flg) {\n      struct timeval tim;\n\n      if (gettimeofday(&tim, NULL))\n         return 0;\n      return (int64_t)tim.tv_sec * 1000000 + (int64_t)tim.tv_usec;\n   }\n   return (int64_t)Tv.tv_usec;\n}\n\nint64_t getMsec(void) {\n   struct timeval tim;\n\n   if (gettimeofday(&tim, NULL))\n      return 0;\n   return (int64_t)tim.tv_sec * 1000 + ((int64_t)tim.tv_usec + 500) / 1000;\n}\n\nint64_t getDate(void) {\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   Time = localtime(&Tv.tv_sec);\n   return Time->tm_year+1900 | (Time->tm_mon+1) << 16 | Time->tm_mday << 24;\n}\n\nint64_t getGmDate(void) {\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   Time = gmtime(&Tv.tv_sec);\n   return Time->tm_year+1900 | (Time->tm_mon+1) << 16 | Time->tm_mday << 24;\n}\n\nint64_t getTime(void) {\n   struct tm *p;\n\n   if (gettimeofday(&Tv, NULL))\n      return 0;\n   p = localtime(&Tv.tv_sec);\n   return p->tm_hour * 3600 + p->tm_min * 60 + p->tm_sec;\n}\n\nint64_t getGmTime(void) {\n   return Time? (Time->tm_hour * 3600 + Time->tm_min * 60 + Time->tm_sec) : -1;\n}\n\nchar *ulimStk(void) {\n   struct rlimit stk;\n   extern char *$SysStkLimit;\n\n   if (getrlimit(RLIMIT_STACK, &stk) < 0)\n      return NULL;\n   if (stk.rlim_cur == RLIM_INFINITY)\n      return (char*)1;\n   return $SysStkLimit = (char*)&stk - stk.rlim_cur + (stk.rlim_cur >> 6);\n}\n\nint64_t fileInfo(int lnk, int loc, char *nm, int64_t *siz) {\n   int64_t n;\n   struct tm *p;\n   struct stat st;\n\n   if ((lnk? stat(nm, &st) : lstat(nm, &st)) < 0)\n      return -1;\n   p = loc? localtime(&st.st_mtime) : gmtime(&st.st_mtime);\n   n = (p->tm_year+1900 | (p->tm_mon+1) << 16 | p->tm_mday << 24 |\n         (int64_t)(p->tm_hour * 3600 + p->tm_min * 60 + p->tm_sec) << 32 ) << 2;\n   if ((st.st_mode & S_IFMT) == S_IFDIR)\n      return n + 1;\n   if ((st.st_mode & S_IFMT) != S_IFREG)\n      return n + 2;\n   *siz = st.st_size;\n   return n;\n}\n\n// Polling\nvoid pollIn(int32_t fd, struct pollfd *p) {\n   p->fd = fd;\n   p->events = POLLIN;\n}\n\nvoid pollOut(int32_t fd, struct pollfd *p) {\n   p->fd = fd;\n   p->events = POLLOUT;\n}\n\nvoid pollIgn(struct pollfd *p) {\n   p->fd = -1;\n}\n\nint32_t gPoll(struct pollfd *fds, int32_t nfds, int64_t timeout) {\n#ifdef __linux__\n   struct timespec ts, *tp;\n   extern int ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *tmo_p, const sigset_t *sigmask);\n\n   if (timeout == 9223372036854775807) {  // 292MY\n      int i = nfds;\n      do\n         if (--i < 0)\n            return 0;\n      while (fds[i].fd < 0);\n      tp = NULL;\n   }\n   else {\n      ts.tv_sec = timeout / 1000;\n      ts.tv_nsec = timeout % 1000 * 1000000;\n      tp = &ts;\n   }\n   return (int32_t)ppoll(fds, (nfds_t)nfds, tp, NULL);\n#else\n   int to;\n\n   if (timeout > 2147483647) {  // Fit into 32 bits (max 24 days)\n      int i = nfds;\n      do\n         if (--i < 0)\n            return 0;\n      while (fds[i].fd < 0);\n      to = -1;\n   }\n   else\n      to = (int)timeout;\n   return (int32_t)poll(fds, (nfds_t)nfds, to);\n#endif\n}\n\nint readyIn(struct pollfd *p) {\n   if (p->fd < 0)\n      return 0;\n   p->fd = -1;\n   return (p->revents & (POLLIN | POLLHUP | POLLERR | POLLNVAL)) != 0;\n}\n\nint readyOut(struct pollfd *p) {\n   if (p->fd < 0)\n      return 0;\n   p->fd = -1;\n   return (p->revents & POLLOUT | POLLERR | POLLNVAL) != 0;\n}\n\n// Locking\nint32_t rdLock(int32_t fd, off_t n, off_t len, int wait) {\n   struct flock fl;\n\n   fl.l_type = F_RDLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, wait? F_SETLKW : F_SETLK, &fl);\n}\n\nint32_t wrLock(int32_t fd, off_t n, off_t len, int wait) {\n   struct flock fl;\n\n   fl.l_type = F_WRLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, wait? F_SETLKW : F_SETLK, &fl);\n}\n\nint32_t unLock(int32_t fd, off_t n, off_t len) {\n   struct flock fl;\n\n   fl.l_type = F_UNLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   return (int32_t)fcntl(fd, F_SETLK, &fl);\n}\n\nint32_t getLock(int32_t fd, off_t n, off_t len) {\n   struct flock fl;\n\n   fl.l_type = F_WRLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = n;\n   fl.l_len = len;\n   if (fcntl(fd, F_GETLK, &fl) < 0)\n      return -1;\n   return fl.l_type == F_UNLCK? 0 : fl.l_pid;\n}\n\n// Catch and Throw\nconst int64_t JmpBufSize = sizeof(jmp_buf);\njmp_buf QuitRst;\njmp_buf SoRst;\n\n#define _GNU_SOURCE\n#define __USE_GNU\n#include <dlfcn.h>\n\nvoid *dlOpen(char *lib) {\n   return dlopen(lib, RTLD_LAZY | RTLD_GLOBAL);\n}\n\n// Util\nint chance(int64_t m) {\n   static uint32_t seed = 1664525;\n\n   return (((seed = seed * 1664525 + 1) >> 16) & (int32_t)m) != 0;\n}\n\n\n// Case mappings from the GNU Kaffe Project\n#define CHAR_UPPERCASE  1\n#define CHAR_LOWERCASE  2\n#define CHAR_LETTER    62\n#define CHAR_DIGIT    512\n\nstatic uint16_t Blocks[] = {\n   0x1C2, 0x1C2, 0x1C1, 0x12C, 0x12B, 0x1A0, 0x1F8, 0x2DC, 0x25F, 0x2EE, 0x215, 0x346, 0x2DC, 0x326, 0x2BC, 0x216,\n   0x15F, 0x2D4, 0x376, 0x376, 0x376, 0x369, 0xFE8F, 0x344, 0xFF85, 0xFF65, 0xFDB5, 0xFDA1, 0x1B, 0x2C4, 0x1C, 0x47,\n   0xFEA8, 0xFF8C, 0x235, 0xFEFF, 0x1A, 0xFEBF, 0x26, 0xFB20, 0xFE28, 0x113, 0x104, 0xFB61, 0xFB5A, 0x10B, 0x109, 0xFE,\n   0xFF08, 0x229, 0x25E, 0x1C7, 0x1FC, 0x1DC, 0xFC46, 0x229, 0xFE27, 0xFB55, 0x169, 0xFBC8, 0xFC, 0x103, 0xFB68, 0xFB48,\n   0xFB28, 0xFB08, 0xFAE8, 0xFAC8, 0xFAA8, 0xFA88, 0xFA68, 0xFA48, 0x65, 0x50, 0xAB, 0x139, 0xFE0E, 0x63, 0x155, 0x1A8,\n   0xF669, 0x129, 0x128, 0xF91F, 0xFE56, 0x108, 0x107, 0xFAC0, 0xFC8E, 0xFEAD, 0xC6, 0xFCA7, 0xFB95, 0xF47D, 0x9F, 0xFB17,\n   0xFE20, 0xFD28, 0xFB2F, 0x3B, 0xF3B9, 0xFE57, 0xFCCE, 0xFFBB, 0xF339, 0xFA98, 0xFF8B, 0xFF3B, 0xFA54, 0xF7E3, 0xFF2B, 0xFAD7,\n   0xFB69, 0xFC3A, 0xFEE5, 0xF4C8, 0xFCB0, 0xFA88, 0xFDBF, 0xF448, 0xFE45, 0xFCC7, 0xFE4F, 0xF7F1, 0xF715, 0xF2E8, 0xFD9F, 0xF348,\n   0xF96A, 0xFC02, 0xFD97, 0xF2C8, 0xF2A8, 0xF4B9, 0xF4B3, 0xEF6B, 0xF86A, 0xF84A, 0xFC58, 0xF80A, 0xF7EA, 0xFC0F, 0xF7AA, 0xEE9C,\n   0xFB90, 0xF74A, 0xF7FA, 0xF70A, 0xF7CA, 0xF792, 0xF471, 0xF4D2, 0xF732, 0xF64A, 0xF401, 0xF64D, 0xEFA8, 0xF5CA, 0xF5AA, 0xECA1,\n   0xF569, 0xF54A, 0xF52A, 0xF50A, 0xF4EA, 0xF4CA, 0xF4AA, 0xF48A, 0xF46A, 0xF44A, 0xF42A, 0xF40A, 0xF3EA, 0xF3CA, 0xF3AA, 0xF38A,\n   0xF36A, 0xF34A, 0xF32A, 0xF289, 0xF777, 0xF2CA, 0xF2AA, 0xF737, 0xEC28, 0xEC08, 0xEBE8, 0xEBC8, 0xF1EA, 0xF4A2, 0xF545, 0xEDC6,\n   0xF2D7, 0xF14A, 0xE8ED, 0xE81E, 0xF0EA, 0xF597, 0xEA68, 0xEA48, 0xEA28, 0xEA08, 0xE9E8, 0xE9C8, 0xE9A8, 0xE988, 0xE968, 0xE948,\n   0xE928, 0xE908, 0xE8E8, 0xE8C8, 0xE8A8, 0xE888, 0xE868, 0xE848, 0xE828, 0xE808, 0xE7E8, 0xE7C8, 0xE7A8, 0xE788, 0xE768, 0xE748,\n   0xE728, 0xE708, 0xE6E8, 0xE6C8, 0xE6A8, 0xE688, 0xE668, 0xE648, 0xE628, 0xE608, 0xE5E8, 0xE5C8, 0xE5A8, 0xE588, 0xE568, 0xE548,\n   0xE55F, 0xE53F, 0xE51F, 0xE4FF, 0xEFD7, 0xE4BF, 0xE49F, 0xE485, 0xEF87, 0xEF57, 0xEF57, 0xEF57, 0xEF57, 0xEF47, 0xE1AD, 0xEF46,\n   0xEF46, 0xEF46, 0xE1E0, 0xE3DD, 0xEF06, 0xE9D9, 0xEBEB, 0xE244, 0xEED4, 0xEF65, 0xE1F5, 0xEF45, 0xEEE9, 0xEF7C, 0xEE74, 0xEF70,\n   0xEF7D, 0xEF78, 0xEE91, 0xEFD3, 0xEE7D, 0xEE25, 0xEE27, 0xEF65, 0xEFDD, 0xEE96, 0xEFD3, 0xEFE1, 0xEF69, 0xDF88, 0xDF68, 0xDF48,\n   0xED2B, 0xED3D, 0xED19, 0xEF1C, 0xEF08, 0xED47, 0xED3D, 0xED33, 0xEC2B, 0xEC0B, 0xEBEB, 0xEBCB, 0xEBCE, 0xEA7C, 0xEB69, 0xEB6C,\n   0xE9B6, 0xEB0B, 0xEAEB, 0xE9E9, 0xDCA8, 0xDC88, 0xDC68, 0xDC48, 0xE910, 0xEA23, 0xEB58, 0xEB4F, 0xEB45, 0xEAE5, 0xDB68, 0xDB48,\n   0xE92B, 0xE90B, 0xE8EB, 0xE8CB, 0xE8AB, 0xE88B, 0xE86B, 0xE84B, 0xDA28, 0xDA08, 0xD9E8, 0xD9C8, 0xD9A8, 0xD988, 0xD968, 0xD948,\n   0xD928, 0xD908, 0xD8E8, 0xD8C8, 0xD8A8, 0xD888, 0xD868, 0xD848, 0xD828, 0xD808, 0xD7E8, 0xD7C8, 0xD7A8, 0xD788, 0xD768, 0xD748,\n   0xD728, 0xD708, 0xD6E8, 0xD6C8, 0xD6A8, 0xD688, 0xD668, 0xD648, 0xD628, 0xD608, 0xD5E8, 0xD5C8, 0xD5A8, 0xD588, 0xD568, 0xD548,\n   0xD528, 0xD508, 0xD4E8, 0xD4C8, 0xE2B1, 0xE28B, 0xE26B, 0xE270, 0xE22B, 0xE20B, 0xE1EB, 0xE1CB, 0xE1AB, 0xE18B, 0xE18E, 0xDD8F,\n   0xE3A8, 0xDFD3, 0xD929, 0xD90A, 0xE348, 0xD8C9, 0xD8AA, 0xDCD7, 0xDCB2, 0xD681, 0xD82A, 0xD80A, 0xE268, 0xCEDE, 0xD168, 0xD148,\n   0xE116, 0xE0E9, 0xE1CB, 0xE0B7, 0xE0B7, 0xE15E, 0xDF17, 0xE034, 0xE013, 0xDFF3, 0xDFD3, 0xDE6C, 0xDF93, 0xDF73, 0xDF55, 0xDF34,\n   0xD56A, 0xD54A, 0xD52A, 0xD50A, 0xD4EA, 0xD4CA, 0xD4AA, 0xD48A, 0xD46A, 0xD44A, 0xD42A, 0xD40A, 0xD3EA, 0xD3CA, 0xD3AA, 0xD38A,\n   0xD36A, 0xD34A, 0xD32A, 0xD30A, 0xD2EA, 0xD2CA, 0xD2AA, 0xD28A, 0xD26A, 0xD24A, 0xD22A, 0xD20A, 0xD1EA, 0xD1CA, 0xD1AA, 0xD18A,\n   0xD16A, 0xD14A, 0xD12A, 0xD10A, 0xD0EA, 0xD0CA, 0xD0AA, 0xD08A, 0xD06A, 0xD04A, 0xD02A, 0xD00A, 0xCFEA, 0xCFCA, 0xCFAA, 0xCF8A,\n   0xCF6A, 0xCF4A, 0xCF2A, 0xCF0A, 0xCEEA, 0xCECA, 0xCEAA, 0xCE8A, 0xCE6A, 0xCE4A, 0xCE2A, 0xCE0A, 0xCDEA, 0xCDCA, 0xCDAA, 0xCD8A,\n   0xCD6A, 0xCD4A, 0xCD2A, 0xCD0A, 0xCCEA, 0xCCCA, 0xCCAA, 0xCC8A, 0xCC6A, 0xCC4A, 0xCC2A, 0xCC0A, 0xCBEA, 0xCBCA, 0xCBAA, 0xCB8A,\n   0xCB6A, 0xCB4A, 0xCB2A, 0xCB0A, 0xCAEA, 0xCACA, 0xCAAA, 0xCA8A, 0xCA6A, 0xCA4A, 0xCA2A, 0xCA0A, 0xC9EA, 0xC9CA, 0xC9AA, 0xC98A,\n   0xC96A, 0xC94A, 0xC92A, 0xC90A, 0xC8EA, 0xC8CA, 0xC8AA, 0xC88A, 0xC86A, 0xC84A, 0xC82A, 0xC80A, 0xC7EA, 0xC7CA, 0xC7AA, 0xC78A,\n   0xC76A, 0xC74A, 0xC72A, 0xC70A, 0xC6EA, 0xC6CA, 0xC6AA, 0xC68A, 0xC66A, 0xC64A, 0xC62A, 0xC60A, 0xC5EA, 0xC5CA, 0xC5AA, 0xC58A,\n   0xC56A, 0xC54A, 0xC52A, 0xC50A, 0xC4EA, 0xC4CA, 0xC4AA, 0xC48A, 0xC46A, 0xC44A, 0xC42A, 0xC40A, 0xC3EA, 0xC3CA, 0xC3AA, 0xC38A,\n   0xC36A, 0xC34A, 0xC32A, 0xC30A, 0xC2EA, 0xC2CA, 0xC2AA, 0xC28A, 0xC26A, 0xC24A, 0xC22A, 0xC20A, 0xC1EA, 0xC1CA, 0xC1AA, 0xC18A,\n   0xC16A, 0xC14A, 0xC12A, 0xC10A, 0xC0EA, 0xC0CA, 0xC0AA, 0xC08A, 0xC06A, 0xC04A, 0xC02A, 0xC00A, 0xBFEA, 0xBFCA, 0xBFAA, 0xBF8A,\n   0xBF6A, 0xBF4A, 0xBF2A, 0xBF0A, 0xBEEA, 0xBECA, 0xBEAA, 0xBE8A, 0xBE6A, 0xBE4A, 0xBE2A, 0xBE0A, 0xBDEA, 0xBDCA, 0xBDAA, 0xBD8A,\n   0xBD6A, 0xBD4A, 0xBD2A, 0xBD0A, 0xBCEA, 0xBCCA, 0xBCAA, 0xBC8A, 0xBC6A, 0xBC4A, 0xBC2A, 0xBC0A, 0xBBEA, 0xB2E0, 0xB568, 0xB548,\n   0xBB6A, 0xBB4A, 0xBB2A, 0xBB0A, 0xBAEA, 0xBACA, 0xBAAA, 0xBA8A, 0xBA6A, 0xBA4A, 0xBA2A, 0xBA0A, 0xB9EA, 0xB9CA, 0xB9AA, 0xB98A,\n   0xB96A, 0xB94A, 0xB92A, 0xB90A, 0xB8EA, 0xB8CA, 0xB8AA, 0xB88A, 0xB86A, 0xB84A, 0xB82A, 0xB80A, 0xB7EA, 0xB7CA, 0xB7AA, 0xB78A,\n   0xB76A, 0xB74A, 0xB72A, 0xB70A, 0xB6EA, 0xB6CA, 0xB6AA, 0xB68A, 0xB66A, 0xB64A, 0xB62A, 0xB60A, 0xB5EA, 0xB5CA, 0xB5AA, 0xB58A,\n   0xB56A, 0xB54A, 0xB52A, 0xB50A, 0xB4EA, 0xB4CA, 0xB4AA, 0xB48A, 0xB46A, 0xB44A, 0xB42A, 0xB40A, 0xB3EA, 0xB3CA, 0xB3AA, 0xB38A,\n   0xB36A, 0xB34A, 0xB32A, 0xB30A, 0xB2EA, 0xB2CA, 0xB2AA, 0xB28A, 0xB26A, 0xB24A, 0xB22A, 0xB20A, 0xB1EA, 0xB1CA, 0xB1AA, 0xB18A,\n   0xB16A, 0xB14A, 0xB12A, 0xB10A, 0xB0EA, 0xB0CA, 0xB0AA, 0xB08A, 0xB06A, 0xB04A, 0xB02A, 0xB00A, 0xAFEA, 0xAFCA, 0xAFAA, 0xAF8A,\n   0xAF6A, 0xAF4A, 0xAF2A, 0xAF0A, 0xAEEA, 0xAECA, 0xAEAA, 0xAE8A, 0xAE6A, 0xAE4A, 0xAE2A, 0xAE0A, 0xADEA, 0xADCA, 0xADAA, 0xAD8A,\n   0xAD6A, 0xAD4A, 0xAD2A, 0xAD0A, 0xACEA, 0xACCA, 0xACAA, 0xAC8A, 0xAC6A, 0xAC4A, 0xAC2A, 0xAC0A, 0xABEA, 0xABCA, 0xABAA, 0xAB8A,\n   0xAB6A, 0xAB4A, 0xAB2A, 0xAB0A, 0xAAEA, 0xAACA, 0xAAAA, 0xAA8A, 0xAA6A, 0xAA4A, 0xAA2A, 0xAA0A, 0xA9EA, 0xA9CA, 0xA9AA, 0xA98A,\n   0xA96A, 0xA94A, 0xA92A, 0xA90A, 0xA8EA, 0xA8CA, 0xA8AA, 0xA88A, 0xA86A, 0xA84A, 0xA82A, 0xA80A, 0xA7EA, 0xA7CA, 0xA7AA, 0xA78A,\n   0xA76A, 0xA74A, 0xA72A, 0xA70A, 0xA6EA, 0xA6CA, 0xA6AA, 0xA68A, 0xA66A, 0xA64A, 0xA62A, 0xA60A, 0xA5EA, 0xA5CA, 0xA5AA, 0xA58A,\n   0xA56A, 0xA54A, 0xA52A, 0xA50A, 0xA4EA, 0xA4CA, 0xA4AA, 0xA48A, 0xA46A, 0xA44A, 0xA42A, 0xA40A, 0xA3EA, 0xA3CA, 0xA3AA, 0xA38A,\n   0xA36A, 0xA34A, 0xA32A, 0xA30A, 0xA2EA, 0xA2CA, 0xA2AA, 0xA28A, 0xA26A, 0xA24A, 0xA22A, 0xA20A, 0xA1EA, 0xA1CA, 0xA1AA, 0xA18A,\n   0xA16A, 0xA14A, 0xA12A, 0xA10A, 0xA0EA, 0xA0CA, 0xA0AA, 0xA08A, 0xA06A, 0xA04A, 0xA02A, 0xA00A, 0x9FEA, 0x9FCA, 0x9FAA, 0x9F8A,\n   0x9F6A, 0x9F4A, 0x9F2A, 0x9F0A, 0x9EEA, 0x9ECA, 0x9EAA, 0x9E8A, 0x9E6A, 0x9E4A, 0x9E2A, 0x9E0A, 0x9DEA, 0x9DCA, 0x9DAA, 0x9D8A,\n   0x9D6A, 0x9D4A, 0x9D2A, 0x9D0A, 0x9CEA, 0x9CCA, 0x9CAA, 0x9C8A, 0x9C6A, 0x9C4A, 0x9C2A, 0x9C0A, 0x9BEA, 0x9BCA, 0x9BAA, 0x9B8A,\n   0x9B6A, 0x9B4A, 0x9B2A, 0x9B0A, 0x9AEA, 0x9ACA, 0x9AAA, 0x9A8A, 0x9A6A, 0x9A4A, 0x9A2A, 0x9A0A, 0x99EA, 0x99CA, 0x99AA, 0x998A,\n   0x996A, 0x994A, 0x992A, 0x990A, 0x98EA, 0x98CA, 0x98AA, 0x988A, 0x986A, 0x984A, 0x982A, 0x980A, 0x97EA, 0x97CA, 0x97AA, 0x978A,\n   0x976A, 0x974A, 0x972A, 0x970A, 0x96EA, 0x96CA, 0x96AA, 0x968A, 0x966A, 0x964A, 0x962A, 0x960A, 0x95EA, 0x95CA, 0x95AA, 0x958A,\n   0x956A, 0x954A, 0x952A, 0x950A, 0x94EA, 0x94CA, 0x94AA, 0x948A, 0x946A, 0x944A, 0x942A, 0x940A, 0x93EA, 0x93CA, 0x93AA, 0x938A,\n   0x936A, 0x934A, 0x932A, 0x930A, 0x92EA, 0x92CA, 0x92AA, 0x928A, 0x926A, 0x924A, 0x922A, 0x920A, 0x91EA, 0x91CA, 0x91AA, 0x918A,\n   0x916A, 0x914A, 0x912A, 0x910A, 0x90EA, 0x90CA, 0x90AA, 0x908A, 0x906A, 0x904A, 0x902A, 0x900A, 0x8FEA, 0x8FCA, 0x8FAA, 0x8F8A,\n   0x8F6A, 0x8F4A, 0x8F2A, 0x8F0A, 0x8EEA, 0x8ECA, 0x8EAA, 0x8E8A, 0x8E6A, 0x8E4A, 0x8E2A, 0x8E0A, 0x8DEA, 0x8DCA, 0x8DAA, 0x8D8A,\n   0x8D6A, 0x8D4A, 0x8D2A, 0x8D0A, 0x8CEA, 0x8CCA, 0x8CAA, 0x8C8A, 0x8C6A, 0x8C4A, 0x8C2A, 0x8C0A, 0x8BEA, 0x8BCA, 0x8BAA, 0x8B8A,\n   0x8B6A, 0x8B4A, 0x8B2A, 0x8B0A, 0x8AEA, 0x8ACA, 0x8AAA, 0x8A8A, 0x8A6A, 0x8A4A, 0x8A2A, 0x8A0A, 0x89EA, 0x89CA, 0x89AA, 0x898A,\n   0x896A, 0x894A, 0x892A, 0x890A, 0x88EA, 0x88CA, 0x88AA, 0x888A, 0x886A, 0x884A, 0x882A, 0x880A, 0x87EA, 0x87CA, 0x87AA, 0x878A,\n   0x876A, 0x874A, 0x872A, 0x870A, 0x86EA, 0x86CA, 0x86AA, 0x868A, 0x866A, 0x864A, 0x862A, 0x860A, 0x85EA, 0x85CA, 0x85AA, 0x858A,\n   0x856A, 0x854A, 0x852A, 0x850A, 0x84EA, 0x84CA, 0x84AA, 0x848A, 0x846A, 0x844A, 0x842A, 0x840A, 0x83EA, 0x83CA, 0x83AA, 0x838A,\n   0x836A, 0x834A, 0x832A, 0x830A, 0x82EA, 0x82CA, 0x82AA, 0x828A, 0x826A, 0x824A, 0x822A, 0x820A, 0x81EA, 0x81CA, 0x81AA, 0x818A,\n   0x816A, 0x814A, 0x812A, 0x810A, 0x80EA, 0x80CA, 0x80AA, 0x808A, 0x806A, 0x804A, 0x802A, 0x800A, 0x7FEA, 0x7FCA, 0x7FAA, 0x7F8A,\n   0x7F6A, 0x7F4A, 0x7F2A, 0x7F0A, 0x7EEA, 0x7ECA, 0x7EAA, 0x7E8A, 0x7E6A, 0x7E4A, 0x7E2A, 0x7E0A, 0x7DEA, 0x7DCA, 0x7DAA, 0x7D8A,\n   0x7D6A, 0x7D4A, 0x7D2A, 0x7D0A, 0x7CEA, 0x7CCA, 0x7CAA, 0x7C8A, 0x7C6A, 0x7C4A, 0x7C2A, 0x7C0A, 0x7BEA, 0x7BCA, 0x7BAA, 0x7B8A,\n   0x7B6A, 0x7B4A, 0x7B2A, 0x7B0A, 0x7AEA, 0x7ACA, 0x7AAA, 0x7A8A, 0x7A6A, 0x7A4A, 0x7A2A, 0x7A0A, 0x79EA, 0x79CA, 0x79AA, 0x798A,\n   0x796A, 0x794A, 0x792A, 0x790A, 0x78EA, 0x78CA, 0x78AA, 0x788A, 0x786A, 0x784A, 0x782A, 0x780A, 0x77EA, 0x77CA, 0x77AA, 0x778A,\n   0x776A, 0x774A, 0x772A, 0x770A, 0x76EA, 0x76CA, 0x76AA, 0x768A, 0x766A, 0x764A, 0x762A, 0x760A, 0x75EA, 0x75CA, 0x75AA, 0x758A,\n   0x756A, 0x754A, 0x752A, 0x750A, 0x74EA, 0x74CA, 0x74AA, 0x748A, 0x746A, 0x744A, 0x742A, 0x740A, 0x73EA, 0x73CA, 0x73AA, 0x738A,\n   0x736A, 0x734A, 0x732A, 0x730A, 0x72EA, 0x72CA, 0x72AA, 0x728A, 0x726A, 0x724A, 0x722A, 0x720A, 0x71EA, 0x71CA, 0x71AA, 0x718A,\n   0x716A, 0x714A, 0x712A, 0x710A, 0x70EA, 0x70CA, 0x70AA, 0x708A, 0x706A, 0x704A, 0x702A, 0x700A, 0x6FEA, 0x6FCA, 0x6FAA, 0x6F8A,\n   0x6F6A, 0x6F4A, 0x6F2A, 0x6F0A, 0x6EEA, 0x6ECA, 0x6EAA, 0x6E8A, 0x6E6A, 0x6E4A, 0x6E2A, 0x6E0A, 0x6DEA, 0x6DCA, 0x6DAA, 0x6D8A,\n   0x6D6A, 0x6D4A, 0x6D2A, 0x6D0A, 0x6CEA, 0x6CCA, 0x6CAA, 0x6C8A, 0x6C6A, 0x6C4A, 0x6C2A, 0x6C0A, 0x6BEA, 0x6BCA, 0x6BAA, 0x6B8A,\n   0x6B6A, 0x6B4A, 0x6B2A, 0x6B0A, 0x6AEA, 0x6ACA, 0x6AAA, 0x6A8A, 0x6A6A, 0x6A4A, 0x6A2A, 0x6A0A, 0x69EA, 0x60F0, 0x6368, 0x6348,\n   0x696A, 0x694A, 0x692A, 0x690A, 0x68EA, 0x68CA, 0x68AA, 0x688A, 0x686A, 0x684A, 0x682A, 0x680A, 0x67EA, 0x67CA, 0x67AA, 0x678A,\n   0x676A, 0x674A, 0x672A, 0x670A, 0x66EA, 0x66CA, 0x66AA, 0x668A, 0x666A, 0x664A, 0x662A, 0x660A, 0x65EA, 0x65CA, 0x65AA, 0x658A,\n   0x656A, 0x654A, 0x652A, 0x650A, 0x6B26, 0x6DE1, 0x6E9C, 0x5E48, 0x5E28, 0x5E08, 0x5DE8, 0x5DC8, 0x5DA8, 0x5D88, 0x5D68, 0x5D48,\n   0x5D28, 0x5D08, 0x5CE8, 0x5CC8, 0x5CA8, 0x5C88, 0x5C68, 0x5C48, 0x5C28, 0x5C08, 0x5BE8, 0x5BC8, 0x5BA8, 0x5B88, 0x5B68, 0x5B48,\n   0x5B28, 0x5B08, 0x5AE8, 0x5AC8, 0x5AA8, 0x5A88, 0x5A68, 0x5A48, 0x5A28, 0x5A08, 0x59E8, 0x59C8, 0x59A8, 0x5988, 0x5968, 0x5948,\n   0x5928, 0x5908, 0x58E8, 0x58C8, 0x58A8, 0x5888, 0x5868, 0x5848, 0x5828, 0x5808, 0x57E8, 0x57C8, 0x57A8, 0x5788, 0x5768, 0x5748,\n   0x5D6A, 0x5D4A, 0x5D2A, 0x5D0A, 0x5CEA, 0x5CCA, 0x5CAA, 0x5C8A, 0x5C6A, 0x5C4A, 0x5C2A, 0x5C0A, 0x5BEA, 0x5BCA, 0x5BAA, 0x5B8A,\n   0x5B6A, 0x5B4A, 0x5B2A, 0x5B0A, 0x5AEA, 0x5ACA, 0x5AAA, 0x5A8A, 0x5A6A, 0x5A4A, 0x5A2A, 0x5A0A, 0x59EA, 0x59CA, 0x59AA, 0x598A,\n   0x596A, 0x594A, 0x592A, 0x590A, 0x58EA, 0x58CA, 0x58AA, 0x588A, 0x586A, 0x584A, 0x582A, 0x580A, 0x57EA, 0x57CA, 0x57AA, 0x578A,\n   0x576A, 0x574A, 0x572A, 0x570A, 0x56EA, 0x56CA, 0x56AA, 0x568A, 0x566A, 0x564A, 0x562A, 0x560A, 0x55EA, 0x55CA, 0x55AA, 0x558A,\n   0x556A, 0x554A, 0x552A, 0x550A, 0x54EA, 0x54CA, 0x54AA, 0x548A, 0x546A, 0x544A, 0x542A, 0x540A, 0x53EA, 0x53CA, 0x53AA, 0x538A,\n   0x536A, 0x534A, 0x532A, 0x530A, 0x52EA, 0x52CA, 0x52AA, 0x528A, 0x526A, 0x524A, 0x522A, 0x520A, 0x51EA, 0x51CA, 0x51AA, 0x518A,\n   0x516A, 0x514A, 0x512A, 0x510A, 0x50EA, 0x50CA, 0x50AA, 0x508A, 0x506A, 0x504A, 0x502A, 0x500A, 0x4FEA, 0x4FCA, 0x4FAA, 0x4F8A,\n   0x4F6A, 0x4F4A, 0x4F2A, 0x4F0A, 0x4EEA, 0x4ECA, 0x4EAA, 0x4E8A, 0x4E6A, 0x4E4A, 0x4E2A, 0x4E0A, 0x4DEA, 0x4DCA, 0x4DAA, 0x4D8A,\n   0x4D6A, 0x4D4A, 0x4D2A, 0x4D0A, 0x4CEA, 0x4CCA, 0x4CAA, 0x4C8A, 0x4C6A, 0x4C4A, 0x4C2A, 0x4C0A, 0x4BEA, 0x4BCA, 0x4BAA, 0x4B8A,\n   0x4B6A, 0x4B4A, 0x4B2A, 0x4B0A, 0x4AEA, 0x4ACA, 0x4AAA, 0x4A8A, 0x4A6A, 0x4A4A, 0x4A2A, 0x4A0A, 0x49EA, 0x49CA, 0x49AA, 0x498A,\n   0x496A, 0x494A, 0x492A, 0x490A, 0x48EA, 0x48CA, 0x48AA, 0x488A, 0x486A, 0x484A, 0x482A, 0x480A, 0x47EA, 0x47CA, 0x47AA, 0x478A,\n   0x476A, 0x474A, 0x472A, 0x470A, 0x46EA, 0x46CA, 0x46AA, 0x468A, 0x466A, 0x464A, 0x462A, 0x460A, 0x45EA, 0x45CA, 0x45AA, 0x458A,\n   0x456A, 0x454A, 0x452A, 0x450A, 0x44EA, 0x44CA, 0x44AA, 0x448A, 0x446A, 0x444A, 0x442A, 0x440A, 0x43EA, 0x43CA, 0x43AA, 0x438A,\n   0x436A, 0x434A, 0x432A, 0x430A, 0x42EA, 0x42CA, 0x42AA, 0x428A, 0x426A, 0x424A, 0x422A, 0x420A, 0x41EA, 0x41CA, 0x41AA, 0x418A,\n   0x416A, 0x414A, 0x412A, 0x410A, 0x40EA, 0x40CA, 0x40AA, 0x408A, 0x406A, 0x404A, 0x402A, 0x400A, 0x3FEA, 0x3FCA, 0x3FAA, 0x3F8A,\n   0x3F6A, 0x3F4A, 0x3F2A, 0x3F0A, 0x3EEA, 0x3ECA, 0x3EAA, 0x3E8A, 0x3E6A, 0x3E4A, 0x3E2A, 0x3E0A, 0x3DEA, 0x3DCA, 0x3DAA, 0x3D8A,\n   0x3D6A, 0x3D4A, 0x3D2A, 0x3D0A, 0x3CEA, 0x3CCA, 0x3CAA, 0x3C8A, 0x3C6A, 0x3C4A, 0x3C2A, 0x3C0A, 0x3BEA, 0x3BCA, 0x3BAA, 0x3B8A,\n   0x3B6A, 0x3B4A, 0x3B2A, 0x3B0A, 0x3AEA, 0x3ACA, 0x3AAA, 0x3A8A, 0x3A6A, 0x3A4A, 0x3A2A, 0x3A0A, 0x39EA, 0x39CA, 0x39AA, 0x398A,\n   0x396A, 0x394A, 0x392A, 0x390A, 0x38EA, 0x38CA, 0x38AA, 0x388A, 0x386A, 0x384A, 0x382A, 0x380A, 0x37EA, 0x37CA, 0x37AA, 0x378A,\n   0x376A, 0x374A, 0x372A, 0x370A, 0x36EA, 0x36CA, 0x36AA, 0x368A, 0x366A, 0x364A, 0x362A, 0x360A, 0x35EA, 0x35CA, 0x35AA, 0x358A,\n   0x356A, 0x354A, 0x352A, 0x350A, 0x34EA, 0x34CA, 0x34AA, 0x348A, 0x346A, 0x344A, 0x342A, 0x340A, 0x33EA, 0x33CA, 0x33AA, 0x338A,\n   0x336A, 0x334A, 0x332A, 0x330A, 0x32EA, 0x32CA, 0x32AA, 0x328A, 0x326A, 0x324A, 0x322A, 0x320A, 0x31EA, 0x28F2, 0x2B68, 0x2B48,\n   0x3C2B, 0x3C0B, 0x3BEB, 0x3BCB, 0x3BAB, 0x3B8B, 0x3B6B, 0x3B4B, 0x3B2B, 0x3B0B, 0x3AEB, 0x3ACB, 0x3AAB, 0x3A8B, 0x3A6B, 0x3A4B,\n   0x3A2B, 0x3A0B, 0x39EB, 0x39CB, 0x39AB, 0x398B, 0x396B, 0x394B, 0x392B, 0x390B, 0x38EB, 0x38CB, 0x38AB, 0x388B, 0x386B, 0x384B,\n   0x382B, 0x380B, 0x37EB, 0x37CB, 0x37AB, 0x378B, 0x376B, 0x374B, 0x372B, 0x370B, 0x36EB, 0x36CB, 0x36AB, 0x368B, 0x366B, 0x364B,\n   0x362B, 0x360B, 0x35EB, 0x35CB, 0x35AB, 0x358B, 0x356B, 0x354B, 0x352B, 0x350B, 0x34EB, 0x34CB, 0x34AB, 0x348B, 0x346B, 0x344B,\n   0x344B, 0x342B, 0x340B, 0x33EB, 0x33CB, 0x33AB, 0x338B, 0x336B, 0x334B, 0x332B, 0x330B, 0x32EB, 0x32CB, 0x32AB, 0x328B, 0x326B,\n   0x324B, 0x322B, 0x320B, 0x31EB, 0x31CB, 0x31AB, 0x318B, 0x316B, 0x314B, 0x312B, 0x310B, 0x30EB, 0x30CB, 0x30AB, 0x308B, 0x306B,\n   0x304B, 0x302B, 0x300B, 0x2FEB, 0x2FCB, 0x2FAB, 0x2F8B, 0x2F6B, 0x2F4B, 0x2F2B, 0x2F0B, 0x2EEB, 0x2ECB, 0x2EAB, 0x2E8B, 0x2E6B,\n   0x2E4B, 0x2E2B, 0x2E0B, 0x2DEB, 0x2DCB, 0x2DAB, 0x2D8B, 0x2D6B, 0x2D4B, 0x2D2B, 0x2D0B, 0x2CEB, 0x2CCB, 0x2CAB, 0x2C8B, 0x2C6B,\n   0x2C4B, 0x2C2B, 0x2C0B, 0x2BEB, 0x2BCB, 0x2BAB, 0x2B8B, 0x2B6B, 0x2B4B, 0x2B2B, 0x2B0B, 0x2AEB, 0x2ACB, 0x2AAB, 0x2A8B, 0x2A6B,\n   0x2A4B, 0x2A2B, 0x2A0B, 0x29EB, 0x29CB, 0x29AB, 0x298B, 0x296B, 0x294B, 0x292B, 0x290B, 0x28EB, 0x28CB, 0x28AB, 0x288B, 0x286B,\n   0x284B, 0x282B, 0x280B, 0x27EB, 0x27CB, 0x27AB, 0x278B, 0x276B, 0x274B, 0x272B, 0x270B, 0x26EB, 0x26CB, 0x26AB, 0x268B, 0x266B,\n   0x264B, 0x262B, 0x260B, 0x25EB, 0x25CB, 0x25AB, 0x258B, 0x256B, 0x254B, 0x252B, 0x250B, 0x24EB, 0x24CB, 0x24AB, 0x248B, 0x246B,\n   0x244B, 0x242B, 0x240B, 0x23EB, 0x23CB, 0x23AB, 0x238B, 0x236B, 0x234B, 0x232B, 0x230B, 0x22EB, 0x22CB, 0x22AB, 0x228B, 0x226B,\n   0x224B, 0x222B, 0x220B, 0x21EB, 0x21CB, 0x21AB, 0x218B, 0x216B, 0x214B, 0x212B, 0x210B, 0x20EB, 0x20CB, 0x20AB, 0x208B, 0x206B,\n   0x204B, 0x202B, 0x200B, 0x1FEB, 0x1FCB, 0x1FAB, 0x1F8B, 0x1F6B, 0x1F4B, 0x1F2B, 0x1F0B, 0x1EEB, 0x1ECB, 0x1EAB, 0x1E8B, 0x1E6B,\n   0x1E4B, 0x1E2B, 0x1E0B, 0x1DEB, 0x1DCB, 0x1DAB, 0x1D8B, 0x1D6B, 0x1D4B, 0x1D2B, 0x1D0B, 0x1CEB, 0x1CCB, 0x1CAB, 0x1C8B, 0x1C6B,\n   0x1C4B, 0x1C2B, 0x1C0B, 0x1BEB, 0x1BCB, 0x1BAB, 0x1B8B, 0x1B6B, 0x106A, 0x104A, 0x102A, 0x100A, 0xFEA, 0xFCA, 0xFAA, 0xF8A,\n   0xF6A, 0x668, 0x8E8, 0x8C8, 0x8A8, 0x888, 0x868, 0x848, 0x7D7, 0x194B, 0x7B6, 0xD1C, 0xCFC, 0xCB2, 0xCA9, 0xC9C,\n   0xC7C, 0xC5C, 0xC3C, 0xC1C, 0xBFC, 0xBDC, 0xBBC, 0xB9C, 0xB7C, 0xB5E, 0xB2C, 0xB1C, 0xAB8, 0xADC, 0xA9C, 0x2C2,\n   0x528, 0x166B, 0x1667, 0x3FF, 0x9FC, 0x9DC, 0x9BC, 0x659, 0xBB8, 0x15A7, 0xFC6, 0x1C0, 0x1B1, 0x9CB, 0x82C, 0x1285,\n};\n\nstatic uint16_t Data[] = {\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202,\n   0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202, 0x5202,\n   0x5202, 0x2E82, 0x3E80, 0x5198, 0x2A14, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4686, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x1A1B, 0x1A1B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4584, 0x3E80, 0x3E80, 0x3E80, 0x298,\n   0x3E80, 0x298, 0x6615, 0x6696, 0x298, 0x1A97, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x4584, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4584,\n   0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x4584,\n   0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x2E82,\n   0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x7481, 0x7481, 0x7481, 0x7481, 0x7383, 0x1A1B, 0x1A1B, 0x1A1B, 0x6D82, 0x6D82, 0x4902,\n   0x4902, 0x3E80, 0x3E80, 0x2E82, 0x4902, 0x6E01, 0x6E01, 0x7501, 0x7501, 0x3E80, 0x1A1B, 0x1A1B, 0x1A1B, 0x1B02, 0x1B82, 0x1C02,\n   0x1C82, 0x1D02, 0x1D82, 0x1E02, 0x1E82, 0x1F02, 0x1F82, 0x2002, 0x2082, 0x2102, 0x2182, 0x2202, 0x2282, 0x2302, 0x2382, 0x2402,\n   0x2482, 0x2502, 0x2582, 0x2602, 0x2682, 0x2702, 0x2782, 0x455, 0xC99, 0x4D6, 0xC99, 0xF, 0xF, 0xF, 0xF, 0xF,\n   0x10F, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF,\n   0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0x8F, 0x10F, 0x8F, 0x18F, 0x10F,\n   0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0xF, 0x10F, 0x10F,\n   0x10F, 0x8F, 0x20C, 0x298, 0x298, 0x318, 0x39A, 0x318, 0x298, 0x298, 0x455, 0x4D6, 0x298, 0x519, 0x598, 0x614,\n   0x598, 0x698, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09, 0xA89, 0xB09, 0xB89, 0x598, 0x298, 0xC59, 0xC99,\n   0xC59, 0x298, 0xD01, 0xD81, 0xE01, 0xE81, 0xF01, 0xF81, 0x1001, 0x1081, 0x1101, 0x1181, 0x1201, 0x1281, 0x1301, 0x1381,\n   0x1401, 0x1481, 0x1501, 0x1581, 0x1601, 0x1681, 0x1701, 0x1781, 0x1801, 0x1881, 0x1901, 0x1981, 0x455, 0x298, 0x4D6, 0x1A1B,\n   0x1A97, 0x298, 0x298, 0x298, 0xC99, 0x455, 0x4D6, 0x3E80, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x282C, 0x298, 0x39A, 0x39A, 0x39A, 0x39A, 0x289C, 0x289C, 0x1A1B, 0x289C, 0x2902, 0x29DD, 0xC99, 0x2A14, 0x289C, 0x1A1B,\n   0x2A9C, 0x519, 0x2B0B, 0x2B8B, 0x1A1B, 0x2C02, 0x289C, 0x298, 0x1A1B, 0x2C8B, 0x2902, 0x2D5E, 0x2D8B, 0x2D8B, 0x2D8B, 0x298,\n   0x298, 0x519, 0x614, 0xC99, 0xC99, 0xC99, 0x3E80, 0x298, 0x39A, 0x318, 0x298, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5405,\n   0x5405, 0x5405, 0x3E80, 0x5405, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x501C, 0x501C, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81,\n   0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x4F81, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0xC99,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E82, 0x2E82, 0x2E82, 0x4902, 0x4902, 0x2E82, 0x2E82, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2E82, 0x2E82, 0x2E82, 0x2E82, 0x2E82, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x4606, 0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5398, 0x5405, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x5087, 0x5087, 0x4606, 0x5087, 0x5087, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B,\n   0x2D8B, 0x2D8B, 0x2D8B, 0x2D8B, 0x840B, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x4606,\n   0x4606, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x1A1B,\n   0x1A1B, 0x4701, 0x298, 0x4781, 0x4781, 0x4781, 0x3E80, 0x4801, 0x3E80, 0x4881, 0x4881, 0x4902, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0xC99, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F82, 0x2F02, 0x2F02, 0x4A82, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x4B02, 0x4B82, 0x4B82, 0x3E80, 0x4C02, 0x4C82, 0x4D01, 0x4D01,\n   0x4D01, 0x4D82, 0x4E02, 0x2902, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x3B81, 0x3C03, 0x3C82, 0x3001, 0x3082, 0x3D81, 0x3E01, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3101, 0x3182,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2902, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x4E82, 0x4F02, 0x3D02, 0x2902, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x7F0B, 0x3E80, 0x3E80,\n   0x3E80, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x519, 0x519, 0xC99, 0x455, 0x4D6, 0x2902, 0x3301, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3381, 0x3001, 0x3082, 0x3401, 0x3401, 0x3001, 0x3082, 0x2902, 0x3481, 0x3501, 0x3581, 0x3001, 0x3082, 0x3401,\n   0x3601, 0x3682, 0x3701, 0x3781, 0x3001, 0x3082, 0x2902, 0x2902, 0x3701, 0x3801, 0x2902, 0x3881, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3B81, 0x3C03, 0x3C82, 0x3B81, 0x3C03, 0x3C82, 0x3B81, 0x3C03, 0x3C82, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3D02, 0x3001, 0x3082, 0x501C, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x3E80, 0x5087, 0x5087, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3201, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3282, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3901, 0x3001, 0x3082, 0x3901,\n   0x2902, 0x2902, 0x3001, 0x3082, 0x3901, 0x3001, 0x3082, 0x3981, 0x3981, 0x3001, 0x3082, 0x3001, 0x3082, 0x3A01, 0x3001, 0x3082,\n   0x2902, 0x3A85, 0x3001, 0x3082, 0x2902, 0x3B02, 0x4D01, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3E80,\n   0x3E80, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082,\n   0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x598, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x5398, 0x3E80, 0x3E80, 0x3E80, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x5398,\n   0x5398, 0x5398, 0x5398, 0x5398, 0x5398, 0x3E80, 0x5B10, 0x5405, 0x4606, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x5B10, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x4D01, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2902, 0x2902, 0x2902, 0x3F02, 0x3F82, 0x2902, 0x4002, 0x4002, 0x2902, 0x4082,\n   0x2902, 0x4102, 0x2902, 0x2902, 0x2902, 0x2902, 0x4002, 0x2902, 0x2902, 0x4182, 0x2902, 0x2902, 0x2902, 0x2902, 0x4202, 0x4282,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4282, 0x2902, 0x2902, 0x4302, 0x2902, 0x2902, 0x4382, 0x2902, 0x2902, 0x2902, 0x2902,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4402, 0x2902, 0x2902, 0x4402, 0x2902, 0x2902, 0x2902, 0x2902, 0x4402, 0x2902,\n   0x4482, 0x4482, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x4502, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902,\n   0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x2902, 0x3E80, 0x3E80, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584,\n   0x4584, 0x4584, 0x1A1B, 0x1A1B, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B, 0x1A1B,\n   0x1A1B, 0x1A1B, 0x4584, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101,\n   0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x5101, 0x3E80, 0x3E80, 0x4584, 0x5198, 0x5198,\n   0x5198, 0x5198, 0x5198, 0x5198, 0x2E01, 0x2E01, 0x3E80, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01, 0x2E01,\n   0x4982, 0x4A02, 0x4A02, 0x4A02, 0x4902, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02,\n   0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x2F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02,\n   0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4F02, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x4606, 0x4606, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x4606, 0x5298, 0x4606, 0x4606, 0x5298, 0x4606, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5305, 0x5305,\n   0x5305, 0x5298, 0x5298, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C89, 0x5D09,\n   0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x640B, 0x648B, 0x650B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606,\n   0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09,\n   0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5509, 0x5589, 0x5609, 0x5689, 0x5709, 0x5789, 0x5809, 0x5889, 0x5909,\n   0x5989, 0x318, 0x5A18, 0x5A18, 0x5398, 0x3E80, 0x3E80, 0x4606, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x6615, 0x6696, 0x5484, 0x5405,\n   0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x5405, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5198, 0x5198, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5484, 0x5484,\n   0x4606, 0x4606, 0x289C, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09,\n   0xA89, 0xB09, 0xB89, 0x5405, 0x5405, 0x5405, 0x5A9C, 0x5A9C, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4606, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x3E80, 0x4606, 0x4606, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x5B88,\n   0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x4606, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x5198, 0x5198,\n   0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x640B,\n   0x670B, 0x678B, 0x680B, 0x688B, 0x690B, 0x698B, 0x6A0B, 0x6A8B, 0x648B, 0x6B0B, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606,\n   0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4606, 0x3A85, 0x3A85, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A,\n   0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x39A, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x5198, 0x5198, 0x5C09,\n   0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x298, 0x298, 0x318, 0x39A, 0x318, 0x298, 0x298,\n   0x6615, 0x6696, 0x298, 0x519, 0x598, 0x614, 0x598, 0x698, 0x709, 0x789, 0x809, 0x889, 0x909, 0x989, 0xA09, 0xA89,\n   0xB09, 0xB89, 0x598, 0x298, 0xC99, 0xC99, 0xC99, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x2A14, 0x298, 0x298,\n   0x298, 0x298, 0x5B10, 0x5B10, 0x5B10, 0x5B10, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80, 0x3E80,\n   0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85,\n   0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606,\n   0x4606, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5C09, 0x5C89,\n   0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3A85, 0x3A85, 0x39A, 0x39A, 0x610B, 0x618B, 0x620B, 0x628B,\n   0x630B, 0x638B, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x4606, 0x3A85, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x4606, 0x4606,\n   0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x501C, 0x4606, 0x501C, 0x4606, 0x501C,\n   0x4606, 0x6615, 0x6696, 0x6615, 0x6696, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x3E80,\n   0x3E80, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x5B88, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x5B88, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x5B88, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x4584, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80, 0x3E80, 0x5C09,\n   0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5087, 0x5087, 0x5087, 0x5B88, 0x4606, 0x4606, 0x4606, 0x3E80,\n   0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x5B88, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x4606, 0x4606,\n   0x3E80, 0x4606, 0x3E80, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x5B88, 0x4606, 0x5B88, 0x5B88, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198,\n   0x39A, 0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x4584, 0x4606, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x4606, 0x5198, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009, 0x6089, 0x5198,\n   0x5198, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x501C, 0x501C, 0x501C, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198,\n   0x5198, 0x65B8, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x4606, 0x4606, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x4606, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x501C, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x1A97, 0x4584, 0x4584, 0x4584, 0x3E80, 0x5C09, 0x5C89, 0x5D09, 0x5D89, 0x5E09, 0x5E89, 0x5F09, 0x5F89, 0x6009,\n   0x6089, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x5198, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x5B88, 0x5B88, 0x4606,\n   0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x20C, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x6615, 0x6696, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x5198, 0x5198, 0x5198, 0x6B8B, 0x6C0B, 0x6C8B, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x4606, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001,\n   0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x3001, 0x3082, 0x2E82, 0x2E82, 0x2E82,\n   0x2E82, 0x2E82, 0x6D02, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x3E80, 0x3E80, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x3E80, 0x3E80, 0x2E82, 0x6D82, 0x4902, 0x6D82, 0x4902, 0x6D82, 0x4902, 0x6D82, 0x3E80,\n   0x6E01, 0x3E80, 0x6E01, 0x3E80, 0x6E01, 0x3E80, 0x6E01, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6D82, 0x6E01,\n   0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E01, 0x6E82, 0x6E82, 0x6F02, 0x6F02, 0x6F02, 0x6F02, 0x6F82, 0x6F82, 0x7002,\n   0x7002, 0x7082, 0x7082, 0x7102, 0x7102, 0x3E80, 0x3E80, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7203,\n   0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7182, 0x7203,\n   0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x7203, 0x6D82, 0x6D82, 0x2E82, 0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x6E01,\n   0x6E01, 0x7301, 0x7301, 0x7383, 0x1A1B, 0x7402, 0x1A1B, 0x1B02, 0x1B82, 0x1C02, 0x1C82, 0x1D02, 0x1D82, 0x1E02, 0x1E82, 0x1F02,\n   0x1F82, 0x2002, 0x2082, 0x2102, 0x2182, 0x2202, 0x2282, 0x2302, 0x2382, 0x2402, 0x2482, 0x2502, 0x2582, 0x2602, 0x2682, 0x2702,\n   0x2782, 0x6615, 0xC99, 0x6696, 0xC99, 0x3E80, 0x6D82, 0x6D82, 0x4902, 0x4902, 0x2E82, 0x7582, 0x2E82, 0x4902, 0x6E01, 0x6E01,\n   0x7601, 0x7601, 0x7681, 0x1A1B, 0x1A1B, 0x1A1B, 0x3E80, 0x3E80, 0x2E82, 0x7282, 0x2E82, 0x3E80, 0x2E82, 0x4902, 0x7701, 0x7701,\n   0x7781, 0x7781, 0x7383, 0x1A1B, 0x1A1B, 0x3E80, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x20C, 0x782C, 0x20C, 0x20C,\n   0x20C, 0x788C, 0x5B10, 0x5B10, 0x7910, 0x7990, 0x2A14, 0x7A34, 0x2A14, 0x2A14, 0x2A14, 0x2A14, 0x298, 0x298, 0x7A9D, 0x7B1E,\n   0x6615, 0x7A9D, 0x7A9D, 0x7B1E, 0x6615, 0x7A9D, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x298, 0x7B8D, 0x7C0E,\n   0x7C90, 0x7D10, 0x7D90, 0x7E10, 0x7E90, 0x782C, 0x318, 0x318, 0x318, 0x318, 0x318, 0x298, 0x298, 0x298, 0x298, 0x29DD,\n   0x2D5E, 0x298, 0x298, 0x298, 0x298, 0x1A97, 0x7F0B, 0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B,\n   0x519, 0x519, 0xC99, 0x455, 0x4D6, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x289C, 0x2902, 0x4D01,\n   0x4D01, 0x4D01, 0x2902, 0x2902, 0x4D01, 0x4D01, 0x4D01, 0x2902, 0x289C, 0x4D01, 0x289C, 0x289C, 0x289C, 0x4D01, 0x4D01, 0x4D01,\n   0x4D01, 0x4D01, 0x289C, 0x289C, 0xA20A, 0xA28A, 0xA30A, 0xA38A, 0xA40A, 0xA48A, 0xA50A, 0xA58A, 0xA60A, 0x4606, 0x4606, 0x4606,\n   0x4606, 0x4606, 0x4606, 0x2A14, 0x4584, 0x4584, 0x4584, 0x4584, 0x4584, 0x289C, 0x289C, 0xA68A, 0xA70A, 0xA78A, 0x3E80, 0x3E80,\n   0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0xC99, 0xC99, 0x289C, 0x289C, 0xC99, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x948A, 0x950A, 0x958A, 0x960A, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0xC99, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x4D01, 0x289C, 0x8281, 0x289C, 0x4D01, 0x289C, 0x8301,\n   0x8381, 0x4D01, 0x4D01, 0x2A9C, 0x2902, 0x4D01, 0x4D01, 0x289C, 0x4D01, 0x2902, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x2902, 0x289C,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x848A, 0x850A, 0x858A, 0x860A, 0x868A, 0x870A, 0x878A, 0x880A, 0x888A, 0x890A, 0x898A,\n   0x8A0A, 0x8A8A, 0x8B0A, 0x8B8A, 0x8C0A, 0x8C8A, 0x8D0A, 0x8D8A, 0x8E0A, 0x8E8A, 0x8F0A, 0x8F8A, 0x900A, 0x908A, 0x910A, 0x918A,\n   0x920A, 0x928A, 0x930A, 0x938A, 0x940A, 0xC99, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99,\n   0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0xC99, 0x289C, 0x289C, 0xC99,\n   0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC99, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xC99, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0x519,\n   0x519, 0xC99, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC59, 0xC99, 0xC59, 0xC99,\n   0xC99, 0xC99, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC99, 0xC99,\n   0xC99, 0xC59, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x455,\n   0x4D6, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x9C1C, 0x9C1C, 0x9C1C,\n   0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C1C, 0x9C9C, 0x9C9C, 0x9C9C,\n   0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x9C9C, 0x7F0B, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0xC59, 0xC99, 0xC59, 0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC99,\n   0xC99, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59, 0xC59,\n   0xC59, 0xC59, 0xC59, 0xC99, 0xC99, 0xC59, 0xC59, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x39A, 0x39A, 0xC99, 0x1A1B, 0x289C, 0x39A, 0x39A, 0x3E80, 0x289C, 0xC99, 0xC99,\n   0xC99, 0xC99, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x5B10, 0x5B10,\n   0x5B10, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x289C, 0x3E80, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x3E80,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x840B, 0x9D0B, 0x9D8B, 0x9E0B, 0x9E8B, 0x9F0B, 0x9F8B, 0xA00B, 0xA08B, 0xA10B, 0x840B,\n   0x9D0B, 0x9D8B, 0x9E0B, 0x9E8B, 0x9F0B, 0x9F8B, 0xA00B, 0xA08B, 0xA10B, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0xC59, 0xC59, 0xC59, 0xC59, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x289C, 0x501C, 0x289C,\n   0x289C, 0x289C, 0x289C, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B, 0x630B,\n   0x630B, 0x630B, 0x630B, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x3E80, 0x3E80, 0x3E80, 0x501C, 0x610B, 0x618B, 0x620B, 0x628B, 0xA80B, 0xA88B, 0xA90B, 0xA98B, 0xAA0B,\n   0x640B, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x289C, 0x3E80, 0x289C, 0x289C,\n   0x289C, 0x3E80, 0x289C, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B,\n   0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x968B, 0x970B, 0x978B, 0x980B, 0x988B, 0x990B, 0x998B, 0x9A0B, 0x9A8B, 0x9B0B, 0x9B8B,\n   0x2C8B, 0x2B0B, 0x2B8B, 0x7F8B, 0x800B, 0x808B, 0x810B, 0x818B, 0x820B, 0x968B, 0x970B, 0x978B, 0x980B, 0x988B, 0x990B, 0x998B,\n   0x9A0B, 0x9A8B, 0x9B0B, 0x9B8B, 0x501C, 0x501C, 0x501C, 0x501C, 0x20C, 0x298, 0x298, 0x298, 0x289C, 0x4584, 0x3A85, 0xA18A,\n   0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x455, 0x4D6, 0x289C, 0x289C, 0x455, 0x4D6, 0x455, 0x4D6,\n   0x455, 0x4D6, 0x455, 0x4D6, 0x2A14, 0x6615, 0x6696, 0x6696, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x4606, 0x4606, 0x1A1B, 0x1A1B, 0x4584, 0x4584, 0x3E80, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85,\n   0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3A85, 0x3E80, 0x501C, 0x501C, 0x630B, 0x630B, 0x630B, 0x630B, 0x501C, 0x501C,\n   0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x501C, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93,\n   0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93,\n   0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAA93, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12,\n   0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12,\n   0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0xAB12, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x5305, 0x5305, 0x519, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305,\n   0x5305, 0x5305, 0x3E80, 0x5305, 0x5305, 0x5305, 0x5305, 0x5305, 0x3E80, 0x5305, 0x3E80, 0x4606, 0x4606, 0x4606, 0x4606, 0x3E80,\n   0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x3E80, 0x298, 0x2A14, 0x2A14, 0x1A97, 0x1A97,\n   0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x3E80, 0x3E80, 0x3E80, 0x3E80,\n   0x298, 0x298, 0x298, 0x298, 0x1A97, 0x1A97, 0x1A97, 0x598, 0x298, 0x598, 0x3E80, 0x298, 0x598, 0x298, 0x298, 0x2A14,\n   0x6615, 0x6696, 0x6615, 0x6696, 0x6615, 0x6696, 0x318, 0x298, 0xD01, 0xD81, 0xE01, 0xE81, 0xF01, 0xF81, 0x1001, 0x1081,\n   0x1101, 0x1181, 0x1201, 0x1281, 0x1301, 0x1381, 0x1401, 0x1481, 0x1501, 0x1581, 0x1601, 0x1681, 0x1701, 0x1781, 0x1801, 0x1881,\n   0x1901, 0x1981, 0x6615, 0x298, 0x6696, 0x1A1B, 0x1A97,\n};\n\nstatic int16_t Upper[] = {\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0,\n   0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0, 0xFFE0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2E7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE0, 0x79,\n   0x0, 0xFFFF, 0x0, 0xFF18, 0x0, 0xFED4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38, 0x0, 0xFFFF, 0xFFFE, 0xFFB1, 0x0, 0x0, 0x0, 0xFF2E, 0xFF32,\n   0xFF33, 0xFF36, 0xFF35, 0xFF31, 0xFF2F, 0xFF2D, 0xFF2B, 0xFF2A, 0xFF26, 0xFF27, 0xFF25, 0x0, 0x0, 0x54, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0xFFDA, 0xFFDB, 0xFFE1, 0xFFC0, 0xFFC1, 0xFFC2, 0xFFC7, 0x0, 0xFFD1, 0xFFCA, 0xFFAA, 0xFFB0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0xFFD0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFC5, 0x8, 0x0, 0x4A, 0x56, 0x64,\n   0x80, 0x70, 0x7E, 0x8, 0x0, 0x9, 0x0, 0x0, 0xE3DB, 0x0, 0x0, 0x7, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0,\n   0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0xFFF0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFE6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n};\n\nstatic int16_t Lower[] = {\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n   0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,\n   0x20, 0x20, 0x20, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,\n   0x1, 0x0, 0xFF39, 0x0, 0xFF87, 0x0, 0xD2, 0xCE, 0xCD, 0x4F, 0xCA, 0xCB, 0xCF, 0x0, 0xD3, 0xD1,\n   0xD5, 0xD6, 0xDA, 0xD9, 0xDB, 0x0, 0x0, 0x2, 0x1, 0x0, 0x0, 0xFF9F, 0xFFC8, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x26, 0x25,\n   0x40, 0x3F, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50,\n   0x0, 0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xFFF8, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0xFFF8, 0x0, 0xFFB6, 0xFFF7, 0x0, 0xFFAA, 0xFF9C, 0x0, 0xFF90, 0xFFF9, 0xFF80, 0xFF82,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0xE2A3, 0xDF41, 0xDFBA, 0x0, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,\n   0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1A, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,\n};\n\nstatic inline int32_t charType(int32_t c) {return Data[Blocks[c>>5]+c & 0xFFFF] & 0x1F;}\n\nint isLowc(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return charType(c) == CHAR_LOWERCASE;\n}\n\nint isUppc(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return charType(c) == CHAR_UPPERCASE;\n}\n\nint isLetterOrDigit(int32_t c) {\n   if (c > 0xFFFF)\n      return 0;\n   return (1 << charType(c) & (CHAR_DIGIT | CHAR_LETTER)) != 0;\n}\n\nint32_t toUpperCase(int32_t c) {\n   if (c > 0xFFFF)\n      return c;\n   return c + Upper[Data[Blocks[c>>5]+c & 0xFFFF] >> 7];\n}\n\nint32_t toLowerCase(int32_t c) {\n   if (c > 0xFFFF)\n      return c;\n   return c + Lower[Data[Blocks[c>>5]+c & 0xFFFF] >> 7];\n}\n"
  },
  {
    "path": "src/main.l",
    "content": "# 27mar26 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(begin \"base\" NIL\n   \"vers.l\" \"defs.l\" \"glob.l\" \"dec.l\" )\n\n(local) (put get popInFiles popOutFiles popErrFiles popCtlFiles\n_getStdin _putStdout)\n\n(de void put (any any any))\n(de any get (any any))\n(de void popInFiles ())\n(de void popOutFiles ())\n(de void popErrFiles ())\n(de void popCtlFiles ())\n(de i32 _getStdin ())\n(de void _putStdout (i8))\n\n(local) (execAt runAt evExe wrnl dbg)\n\n(de execAt (Prg)\n   (let At (save (val $At))\n      (exec Prg)\n      (set $At At) ) )\n\n(de runAt (Prg)\n   (let At (save (val $At))\n      (prog1\n         (run Prg)\n         (set $At At) ) ) )\n\n(de evExe (Fun Arg1 Arg2)\n   (let\n      (W (push NIL $Nil ZERO NIL NIL)  # [car cdr name arg link]\n         V (push NIL NIL ZERO NIL NIL)  # [car cdr name arg link]\n         E (push Fun V) )  # [fun cdr]\n      (set\n         4 W Arg2\n         W (link (ofs W 3) T)\n         2 V W\n         4 V Arg1\n         V (link (ofs V 3)) )\n      (evList E) ) )\n\n(de wrnl ()\n   (write 1 ($ \"\\n\") 1) )\n\n(de dbg ((i64 . N) X)\n   (let (Out (val $OutFile)  Put (val (i8** $Put)))\n      (set\n         $OutFile (val 3 (val $OutFiles))  # Stderr\n         $Put (fun (void i8) _putStdout) )\n      (outWord N)\n      (when X\n         (space)\n         (print X) )\n      (newline)\n      (set (i8** $Put) Put  $OutFile Out) )\n   X )\n\n(local) (stop unwind)\n\n# Stop coroutine\n(de void stop ((i8* . Crt))\n   (let Crt: (coroutine Crt)\n      (when (symb? (Crt: tag))\n         (put @ ZERO $Nil) )\n      (Crt: tag 0)  # Set unused\n      (Crt: lim (val $CrtFree))  # Link into free list\n      (set $CrtFree Crt) ) )\n\n# Unwind stack\n(de void unwind ((i8* . Catch))\n   (let (Ca (val $Catch)  Bnd (val $Bind))\n      (while Ca\n         (let Ca: (caFrame Ca)\n            (while (and Bnd (<> Bnd (Ca: (env $Bind any))))\n               (set (val 2 Bnd) (val Bnd))  # Restore values\n               (setq Bnd (val 3 Bnd)) )\n            (while\n               (and\n                  (val $CtlFrames)\n                  (<> @ (Ca: (env $CtlFrames i8*))) )\n               (popCtlFiles) )\n            (while\n               (and\n                  (val $ErrFrames)\n                  (<> @ (Ca: (env $ErrFrames i8*))) )\n               (popErrFiles) )\n            (until\n               (or\n                  (== (val $OutFrames) (val $Stdout))\n                  (== (val $OutFrames) (Ca: (env $OutFrames i8*))) )\n               (popOutFiles) )\n            (until\n               (or\n                  (== (val $InFrames) (val $Stdin))\n                  (== (val $InFrames) (Ca: (env $InFrames i8*))) )\n               (popInFiles) )\n            (let (Src (val $Current)  Dst (Ca: co))\n               (unless Dst\n                  (setq Dst (val $Coroutines)) )\n               (unless (== Src Dst)\n                  (stop Src)\n                  (let Crt: (coroutine (set $Current Dst))\n                     (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n                     (set $At (Crt: at))\n                     (Crt: at 0) ) ) )  # Running\n            (getCaEnv (Ca:))\n            (eval (Ca: fin))  # Evaluate 'finally' expression\n            (set $Catch (Ca: link))\n            (when (== Ca Catch)\n               (ret) )\n            (setq Ca (Ca: link)) ) )\n      (while Bnd\n         (set (val 2 Bnd) (val Bnd))  # Restore values\n         (setq Bnd (val 3 Bnd)) )\n      (set $Bind 0)\n      (while (val $CtlFrames)\n         (popCtlFiles) )\n      (while (val $ErrFrames)\n         (popErrFiles) )\n      (until (== (val $OutFrames) (val $Stdout))\n         (popOutFiles) )\n      (until (== (val $InFrames) (val $Stdin))\n         (popInFiles) )\n      (let (Src (val $Current)  Dst (val $Coroutines))\n         (unless (== Src Dst)\n            (stop Src)\n            (let Crt: (coroutine (set $Current Dst))\n               (set $StkLimit (ofs (Crt: lim) (shr (val $StkSize) 6)))\n               (getCrtEnv (Crt:))\n               (set $At (Crt: at))\n               (Crt: at 0) ) ) ) ) )  # Running\n\n# Exit\n(local) (giveup bye execErr)\n\n(de NIL giveup ((i8* . Msg))\n   (stderrMsg ($ \"Give up: %s\\n\") Msg)\n   (setCooked)\n   (exit 1) )\n\n(de NIL bye ((i32 . N))\n   (unless (val $InBye)\n      (set $InBye YES)\n      (unwind null)\n      (exec (val $Bye)) )\n   (when (nil? (val $PPid))\n      (flushAll) )\n   (setCooked)\n   (exit N) )\n\n(de NIL execErr ((i8* . Cmd))\n   (stderrMsg ($ \"%s: Can't exec\\n\") Cmd)\n   (exit 127) )\n\n# Memory\n(local) (alloc heapAlloc)\n\n(de i8* alloc ((i8* . Ptr) (i64 . Siz))\n   (unless (realloc Ptr Siz)   # Reallocate pointer\n      (giveup ($ \"No memory\")) )\n   @ )\n\n(de void heapAlloc ()\n   (let\n      (H (any (alloc null (* 8 (inc HEAP))))\n         P (ofs H HEAP)\n         A (val $Avail) )\n      (set P (val $Heaps)  $Heaps H)\n      (loop\n         (set (setq P (ofs P -2)) A)  # Link avail\n         (? (== (setq A P) H)) )\n      (set $Avail A) ) )\n\n# Signals\n(local) (sig sigTerm sighandler)\n\n(de void sig ((i32 . N))\n   (if (val $TtyPid)\n      (kill @ N)\n      (set $Signal (+ (val $Signal) 1))\n      (let P (ofs $Signal (gSignal N))\n         (set P (+ (val P) 1)) ) ) )\n\n(de void sigTerm ((i32 . N))\n   (if (val $TtyPid)\n      (kill @ N)\n      (set $Signal (+ (val $Signal) 1))\n      (let P (ofs $Signal (gSignal (val SIGTERM Sig)))\n         (set P (+ (val P) 1)) ) ) )\n\n(de void sighandler (Exe)\n   (unless (val $Protect)\n      (set $Protect 1)\n      (let P T\n         (loop\n            (cond\n               ((val (setq P (ofs $Signal SIGIO)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Sigio)) )\n               ((val (setq P (ofs $Signal SIGUSR1)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Sig1)) )\n               ((val (setq P (ofs $Signal SIGUSR2)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Sig2)) )\n               ((val (setq P (ofs $Signal SIGALRM)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Alarm)) )\n               ((val (setq P (ofs $Signal SIGHUP)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Hup)) )\n               ((val (setq P (ofs $Signal SIGINT)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (unless (val $PRepl)  # Not child of REPL process?\n                     (wrnl)\n                     (rlSigBeg)\n                     (brkLoad (if Exe @ $Nil))\n                     (rlSigEnd) ) )\n               ((val (setq P (ofs $Signal SIGWINCH)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (execAt (val $Winch)) )\n               ((val (setq P (ofs $Signal SIGTSTP)))\n                  (set P (dec @))\n                  (set $Signal (dec (val $Signal)))\n                  (rlSigBeg)\n                  (execAt (val $TStp1))  # Run 'TStp1'\n                  (stopTerm)  # Stop\n                  (iSignal (val SIGTSTP Sig) (fun sig))  # Set signal again\n                  (execAt (val $TStp2))  # Run 'TStp2'\n                  (rlSigEnd) )\n               ((val (setq P (ofs $Signal SIGTERM)))\n                  (if (nil? (run (val $Term)))\n                     (let\n                        (Cld (val $Child)  # Iterate children\n                           <Cld (ofs Cld (* (val $Children) (child T)))\n                           Flg NO )\n                        (until (== Cld <Cld)\n                           (let Cld: (child Cld)\n                              (when\n                                 (and\n                                    (Cld: pid)\n                                    (=0 (kill @ (val SIGTERM Sig))) )\n                                 (setq Flg YES) ) )\n                           (setq Cld (ofs Cld (child T))) )\n                        (? Flg)\n                        (set $Signal 0)\n                        (rlSigBeg)\n                        (bye 0) )\n                     (set P (dec (val P)))\n                     (set $Signal (dec (val $Signal))) ) ) )\n            (? (=0 (val $Signal))) ) )\n      (set $Protect 0) ) )\n\n# Error handling\n(local) (pushOutFile err stkErr argErr cntErr numErr symErr charErr extErr\natomErr pairErr lstErr varErr itemErr protErr lockErr forkErr symNspErr)\n\n(de void pushOutFile (i8* i8* i32))\n\n(de NIL err (Exe X (i8* . Fmt) (i8* . Arg))\n   (set $Up (if Exe @ $Nil))\n   (when X\n      (link (push X NIL)) )  # Save\n   (let Msg (b8 240)\n      (gPrintf Msg 240 Fmt Arg)\n      (when (val Msg)\n         (set $Msg (mkStr Msg))\n         (let Ca (val $Catch)\n            (while Ca\n               (let Ca: (caFrame Ca)\n                  (let Tag (Ca: tag)\n                     (when Tag\n                        (while (pair Tag)\n                           (when (ge0 (subStr (car Tag) (val $Msg) 1))\n                              (unless (val $StkLimit)\n                                 (set $StkLimit\n                                    (if (val $Current)\n                                       (ofs ((coroutine @) lim) (shr (val $StkSize) 6))\n                                       (val $SysStkLimit) ) ) )\n                              (unwind (Ca:))\n                              (set $Ret\n                                 (if (nil? (car Tag))\n                                    (val $Msg)\n                                    @ ) )\n                              (longjmp (Ca: (rst)) 1) )\n                           (shift Tag) ) ) )\n                  (setq Ca (Ca: link)) ) ) ) )\n      (flushAll)\n      (set $Chr (set $ExtN 0))\n      (set $Break 0)\n      (set $LinePtr null)\n      (set $Alarm (set $Sigio $Nil))\n      (pushOutFile (b8+ (ioFrame T)) (val 3 (val $OutFiles)) 0)  # Stderr\n      (let In: (inFile (val $InFile))\n         (when (and (In:) (In: name))\n            (call $Put (char \"[\"))\n            (outString (In: name))\n            (call $Put (char \":\"))\n            (outWord (i64 (In: src)))\n            (call $Put (char \"]\"))\n            (space) ) )\n      (when Exe\n         (outString ($ \"!? \"))\n         (print Exe)\n         (newline) )\n      (when X\n         (print X)\n         (outString ($ \" -- \")) )\n      (when (val Msg)\n         (outString Msg)\n         (newline)\n         (unless (or (nil? (val $Err)) (val $Jam))\n            (set $Jam YES)\n            (execAt (val $Err))\n            (set $Jam NO) )\n         (unless\n            (and\n               ((inFile (val (val $InFiles))) tty)\n               ((outFile (val 2 (val $OutFiles))) tty) )\n            (bye 1) )\n         (repl 0 ($ \"? \") $Nil) )\n      (unless (val $StkLimit)\n         (giveup ($ \"No stack\")) )\n      (unwind null)\n      (set\n         $Link 0\n         $Protect 0\n         $Next $Nil\n         $Make 0\n         $Yoke 0\n         $Trace 0\n         $Put (fun (void i8) _putStdout)\n         $Get (fun (i32) _getStdin) )\n      (longjmp QuitRst 1) ) )\n\n(de NIL stkErr (Exe)\n   (set $StkLimit null)\n   (err Exe\n      (if (val $Current)\n         ((coroutine @) tag)\n         0 )\n      ($ \"Stack overflow\")\n      null ) )\n\n(de NIL argErr (Exe X)\n   (err Exe X ($ \"Bad argument\") null) )\n\n(de NIL cntErr (Exe X)\n   (err Exe X ($ \"Small number expected\") null) )\n\n(de NIL numErr (Exe X)\n   (err Exe X ($ \"Number expected\") null) )\n\n(de NIL symErr (Exe X)\n   (err Exe X ($ \"Symbol expected\") null) )\n\n(de NIL charErr (Exe X)\n   (err Exe X ($ \"Char expected\") null) )\n\n(de NIL extErr (Exe X)\n   (err Exe X ($ \"External symbol expected\") null) )\n\n(de NIL atomErr (Exe X)\n   (err Exe X ($ \"Atom expected\") null) )\n\n(de NIL pairErr (Exe X)\n   (err Exe X ($ \"Cons pair expected\") null) )\n\n(de NIL lstErr (Exe X)\n   (err Exe X ($ \"List expected\") null) )\n\n(de NIL varErr (Exe X)\n   (err Exe X ($ \"Variable expected\") null) )\n\n(de NIL itemErr (Exe X)\n   (err Exe X ($ \"Item not found\") null) )\n\n(de NIL protErr (Exe X)\n   (err Exe X ($ \"Protected\") null) )\n\n(de NIL lockErr ()\n   (err 0 0 ($ \"File lock: %s\") (strErrno)) )\n\n(de NIL forkErr (Exe)\n   (err Exe 0 ($ \"Can't fork\") null) )\n\n(de NIL symNspErr (Exe X)\n   (err Exe X ($ \"Bad symbol namespace\") null) )\n\n# Value access\n(local) (xCnt evCnt evLst xSym evSym packExtNm xName)\n\n(de i64 xCnt (Exe X)\n   (let N (int (needCnt Exe X))\n      (if (sign? X) (- N) N) ) )\n\n(de i64 evCnt (Exe X)\n   (xCnt Exe (eval (car X))) )\n\n(de i64 xCnt64 (Exe X)\n   (if (cnt? (needNum Exe X))\n      (int @)\n      (val (dig @)) ) )\n\n(de evLst (Exe)\n   (let X (eval (car Exe))\n      (unless (or (pair X) (nil? X))\n         (lstErr Exe X) )\n      X ) )\n\n(de xSym (X)\n   (if (symb? X)\n      X\n      (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n         (link (ofs P 2) T)\n         (pack X P)\n         (consStr (val 3 P)) ) ) )\n\n(de evSym (Exe)\n   (xSym (eval (car Exe))) )\n\n(de void packExtNm (any i64*))\n\n(de xName (Sym)\n   (cond\n      ((nil? Sym) ZERO)\n      ((sym? (val (tail Sym)))\n         (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n            (link (ofs P 2) T)\n            (packExtNm (name (& @ -9)) P)\n            (val 3 P) ) )\n      (T (name @)) ) )\n\n# Structure checks\n(local) (circ funq)\n\n(de circ (X)\n   (if (atom X)\n      0\n      (let Y X\n         (loop\n            (set Y (| (val Y) 1))  # Mark\n            (? (atom (shift Y))  # No circularity found\n               (loop\n                  (set X (& (val X) -2))  # Unmark\n                  (? (== Y (shift X))) )\n               0 )\n            (? (& (val Y) 1)  # Detected circularity\n               (until (== X Y)  # Skip non-circular part\n                  (set X (& (val X) -2))  # Unmark\n                  (shift X) )\n               (loop\n                  (set X (& (val X) -2))  # Unmark\n                  (? (== Y (shift X))) )\n               Y ) ) ) ) )\n\n(de funq (X)\n   (cond\n      ((cnt? X) X)\n      ((or (big? X) (sym? X)) 0)\n      ((circ X) 0)\n      (T\n         (let Y (cdr X)\n            (loop\n               (? (atom Y)\n                  (cond\n                     ((not (nil? Y)) 0)\n                     ((nil? (setq X (car X))) $T)\n                     ((== X $Tilde) 0)\n                     ((circ (setq Y X)) 0)\n                     (T\n                        (loop\n                           (? (atom Y)\n                              (if (or (num? Y) (t? Y))\n                                 0\n                                 X ) )\n                           (?\n                              (or\n                                 (num? (++ Y))\n                                 (nil? @)\n                                 (t? @)\n                                 (and\n                                    (pair @)\n                                    (let Z @\n                                       (loop\n                                          (? (or (not (symb? (++ Z))) (t? @)) YES)\n                                          (? (atom Z) (or (num? Z) (t? Z))) ) ) ) )\n                              0 ) ) ) ) )\n               (let Z (++ Y)\n                  (if (pair Z)\n                     (if (num? (car Z))\n                        (? (pair Y) 0)\n                        (? (or (nil? (car Z)) (t? (car Z)))\n                           0 ) )\n                     (? (not (nil? Y)) 0) ) ) ) ) ) ) )\n\n# (tty . prg) -> any\n(de _Tty (Exe)\n   (pushOutFile\n      (b8+ (ioFrame T))\n      (val 3 (val $OutFiles))  #  # Stderr\n      0 )\n   (prog2\n      (rlHide)\n      (run (cdr Exe))\n      (rlShow)\n      (popOutFiles) ) )\n\n# (prompt 'any . prg) -> any\n(de _Prompt (Exe)\n   (let (X (cdr Exe)  Nm (xName (evSym X)))\n      (prog2\n         (set $LinePrmt (set $ContPrmt (bufString Nm (b8 (bufSize Nm)))))\n         (run (cdr X))\n         (set $LinePrmt (set $ContPrmt null)) ) ) )\n\n# (raw ['flg]) -> flg\n(de _Raw (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((atom X)\n            (if (val Termio) $T $Nil) )\n         ((nil? (eval (car X))) (setCooked) @)\n         (T (setRaw) @) ) ) )\n\n# (alarm 'cnt . prg) -> cnt\n(de _Alarm (Exe)\n   (let X (cdr Exe)\n      (prog1\n         (cnt (i64 (alarm (i32 (evCnt Exe X)))))\n         (set $Alarm (cdr X)) ) ) )\n\n# (sigio 'cnt . prg) -> cnt\n(de _Sigio (Exe)\n   (let (X (cdr Exe)  Fd (evCnt Exe X))\n      (set $Sigio (cdr X))\n      (fcntlSetOwn (i32 Fd) (i32 (int (val $Pid))))\n      (cnt Fd) ) )\n\n# (kids) -> lst\n(de _Kids (Exe)\n   (let\n      (X $Nil\n         Cld (val $Child)  # Iterate children\n         <Cld (ofs Cld (* (val $Children) (child T))) )\n      (until (== Cld <Cld)\n         (when ((child Cld) pid)\n            (setq X (cons (cnt (i64 @)) X)) )\n         (setq Cld (ofs Cld (child T))) )\n      X ) )\n\n# (protect . prg) -> any\n(de _Protect (Exe)\n   (let X (cdr Exe)\n      (prog2\n         (set $Protect (+ (val $Protect) 1))\n         (run X)\n         (set $Protect (- (val $Protect) 1)) ) ) )\n\n# (heap 'flg) -> cnt\n(de _Heap (Exe)\n   (if (nil? (eval (cadr Exe)))\n      (let (N 1  P (val $Heaps))\n         (while (setq P (val (ofs P HEAP)))\n            (inc 'N) )\n         (cnt N) )\n      (let (N 0  P (val $Avail))\n         (while P\n            (inc 'N)\n            (setq P (car P)) )\n         (cnt (shr N (- 20 4))) ) ) )  # Divide by CELLS (1M/16)\n\n# (stack ['cnt ['cnt]]) -> cnt | (.. (any . cnt) . cnt)\n(de _Stack (Exe)\n   (let (X (cdr Exe)  Crt (val $Coroutines))\n      (if (or (atom X) (and Crt ((coroutine Crt) nxt)))\n         (let R (cnt (shr (val $StkSize) 10))\n            (while Crt\n               (let Crt: (coroutine Crt)\n                  (when (Crt: tag)  # In use\n                     (let P (Crt: lim)\n                        (while (== 7 (val P))\n                           (inc 'P) )\n                        (setq R\n                           (cons2\n                              (Crt: tag)\n                              (cnt (shr (- P (Crt: lim)) 10))\n                              R ) ) ) )\n                  (setq Crt (Crt: nxt)) ) )\n            R )\n         (let N (evCnt Exe X)\n            (set $StkSize (shl N 10))\n            (when (pair (shift X))\n               (set $StkSizeT (shl (evCnt Exe X) 10)) )\n            (when Crt\n               (let (Siz (val $StkSizeT)  Stk (stack))\n                  (memset\n                     ((coroutine Crt) lim (stack (ofs Stk (- Siz))))\n                     7 (- Siz 256) T )\n                  (stack Stk) ) )\n            (cnt N) ) ) ) )\n\n# Date and time\n(local) (tmDate tmTime)\n\n(de tmDate ((i64 . Y) (i64 . M) (i64 . D))\n   (if\n      (and\n         (gt0 Y)\n         (gt0 M)\n         (>= 12 M)\n         (gt0 D)\n         (or\n            (>= (i64 (val (ofs $Month M))) D)\n            (and\n               (== D 29)\n               (== M 2)\n               (=0 (% Y 4))\n               (or (% Y 100) (=0 (% Y 400))) ) ) )\n      (let N (/ (+ (* Y 12) M -3) 12)\n         (cnt\n            (-\n               (+\n                  (/\n                     (+ (* Y 4404) (* M 367) -1094)\n                     12 )\n                  (/ N 4)\n                  (/ N 400)\n                  D )\n               (* 2 N)\n               (/ N 100) ) ) )\n      $Nil ) )\n\n(de tmTime ((i64 . H) (i64 . M) (i64 . S))\n   (if\n      (and\n         (ge0 H)\n         (ge0 M)\n         (> 60 M)\n         (ge0 S)\n         (> 60 S) )\n      (cnt (+ (* H 3600) (* M 60) S))\n      $Nil ) )\n\n# (date ['T]) -> dat\n# (date 'dat) -> (y m d)\n# (date 'y 'm 'd) -> dat | NIL\n# (date '(y m d)) -> dat | NIL\n(de _Date (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((atom X)\n            (let N (getDate)\n               (tmDate\n                  (& N (hex \"FFFF\"))\n                  (& (shr N 16) (hex \"FF\"))\n                  (& (shr N 24) (hex \"FF\")) ) ) )\n         ((t? (eval (car X)))\n            (let N (getGmDate)\n               (tmDate\n                  (& N (hex \"FFFF\"))\n                  (& (shr N 16) (hex \"FF\"))\n                  (& (shr N 24) (hex \"FF\")) ) ) )\n         ((nil? @) @)\n         ((pair @)\n            (let L @\n               (tmDate\n                  (xCnt Exe (++ L))\n                  (xCnt Exe (++ L))\n                  (xCnt Exe (car L)) ) ) )\n         (T\n            (let N @\n               (cond\n                  ((pair (shift X))\n                     (tmDate\n                        (xCnt Exe N)\n                        (evCnt Exe X)\n                        (evCnt Exe (cdr X)) ) )\n                  ((lt0 (setq N (xCnt Exe N))) $Nil)\n                  (T\n                     (let Y (/ (- (* N 100) 20) 3652425)\n                        (setq\n                           N (+ N (- Y (/ Y 4)))\n                           Y (/ (- (* N 100) 20) 36525)\n                           N (* (- N (/ (* Y 36525) 100)) 10) )\n                        (let\n                           (M (/ (- N 5) 306)\n                              D (/ (+ N (* M -306) 5) 10) )\n                           (if (> 10 M)\n                              (inc 'M 3)\n                              (inc 'Y)\n                              (dec 'M 9) )\n                           (cons (cnt Y)\n                              (cons (cnt M)\n                                 (cons (cnt D) $Nil) ) ) ) ) ) ) ) ) ) ) )\n\n# (time ['T]) -> tim\n# (time 'tim) -> (h m s)\n# (time 'h 'm ['s]) -> tim | NIL\n# (time '(h m [s])) -> tim | NIL\n(de _Time (Exe)\n   (let X (cdr Exe)\n      (cond\n         ((atom X) (cnt (getTime)))\n         ((t? (eval (car X)))\n            (if (lt0 (getGmTime)) $Nil (cnt @)) )\n         ((nil? @) @)\n         ((pair @)\n            (let L @\n               (tmTime\n                  (xCnt Exe (++ L))\n                  (xCnt Exe (++ L))\n                  (if (pair L)\n                     (xCnt Exe (car L))\n                     0 ) ) ) )\n         (T\n            (let N @\n               (cond\n                  ((pair (shift X))\n                     (tmTime\n                        (xCnt Exe N)\n                        (evCnt Exe X)\n                        (if (pair (shift X)) (evCnt Exe X) 0) ) )\n                  ((lt0 (setq N (xCnt Exe N))) $Nil)\n                  (T\n                     (cons (cnt (/ N 3600))\n                        (cons (cnt (% (/ N 60) 60))\n                           (cons (cnt (% N 60)) $Nil) ) ) ) ) ) ) ) ) )\n\n# (usec ['flg]) -> num\n(de _Usec (Exe)\n   (cnt\n      (if (nil? (eval (cadr Exe)))\n         (- (getUsec YES) (val $USec))\n         (getUsec NO) ) ) )\n\n# (rt cnt . prg) -> any\n(de _Rt (Exe)\n   (let (X (cdr Exe)  Rt (val $Rt)  U (getUsec YES))\n      (prog1\n         (run (cdr X))\n         (let D (- (- (getUsec YES) U) (- (val $Rt) Rt))\n            (set\n               $Rt (+ D (val $Rt))\n               X (+ (car X) (shl D 4)) ) ) ) ) )\n\n# Try to load dynamic library\n(local) sharedLib\n\n(de i1 sharedLib (Sym)\n   (let\n      (Nm (xName Sym)\n         S (bufString Nm (b8 (bufSize Nm)))\n         P (strchr S (char \":\")) )\n      (and\n         P\n         (<> P S)\n         (val 2 P)\n         (let N (val $PilLen)\n            (set P 0)\n            (let (Len (strlen S)  Q (b8 (+ N Len (+ 4 3 1))))\n               (if (strchr S (char \"/\"))\n                  (strcpy Q S)\n                  (when N\n                     (memcpy Q (val $PilHome) N) )\n                  (strcpy (ofs Q N) ($ \"lib/\"))\n                  (strcpy (ofs Q (+ N 4)) S)\n                  (setq Len (+ Len N 4)) )\n               (strcpy (ofs Q Len) ($ \".so\"))\n               (and\n                  (dlOpen Q)\n                  (dlsym @ (inc P))\n                  (prog\n                     (set Sym (dlfun (i64 @)))\n                     YES ) ) ) ) ) ) )\n\n(load \"gc.l\" \"big.l\" \"sym.l\")\n\n(local) dirString\n\n(de i8* dirString (Nm (i8* . P))\n   (let S (pathString Nm P)\n      (if (val P) P ($ \".\")) ) )\n\n# Comparisons\n(local) (equalBig equal compare)\n\n(inline equalBig (X Y)\n   (loop\n      (? (<> (val (dig X)) (val (dig Y))) NO)\n      (?\n         (==\n            (setq X (val (big X)))\n            (setq Y (val (big Y))) )\n         YES )\n      (? (cnt? X) NO)\n      (? (cnt? Y) NO) ) )\n\n(de i1 equal (X Y)\n   (cond\n      ((== X Y) YES)\n      ((cnt? X) NO)\n      ((big? X)\n         (if (cnt? Y)\n            NO\n            (when (sign? X)\n               (unless (sign? Y)\n                  (ret NO) )\n               (setq X (pos X)  Y (pos Y)) )\n            (equalBig X Y) ) )\n      ((sym? X)\n         (cond\n            ((num? Y) NO)\n            ((pair Y) NO)\n            ((sym? (val (tail X))) NO)\n            ((== ZERO (setq X (name @))) NO)\n            ((sym? (val (tail Y))) NO)\n            ((== ZERO (setq Y (name @))) NO)\n            ((== X Y) YES)\n            ((cnt? X) NO)\n            ((cnt? Y) NO)\n            (T (equalBig X Y)) ) )\n      ((atom Y) NO)\n      (T\n         (stkChk 0)\n         (let (A X  B Y)\n            (prog1\n               (loop\n                  (? (not (equal (car X) (& (car Y) -2)))\n                     NO)\n                  (? (atom (cdr X))\n                     (equal (cdr X) (cdr Y)) )\n                  (? (atom (cdr Y)) NO)\n                  (set X (| (val X) 1))  # Mark\n                  (shift X)\n                  (shift Y)\n                  (? (& (val X) 1)  # Detected circularity\n                     (prog1\n                        (loop\n                           (? (== A X)\n                              (if (== B Y)\n                                 (loop\n                                    (shift A)\n                                    (? (== (shift B) Y) (== A X))\n                                    (? (== A X) YES) )\n                                 NO ) )\n                           (? (== B Y) NO)\n                           (set A (& (val A) -2))  # Unmark\n                           (shift A)\n                           (shift B) )\n                        (set A (& (val A) -2))  # Unmark\n                        (shift A) ) ) )\n               (until (== A X)\n                  (set A (& (val A) -2))  # Unmark\n                  (shift A) ) ) ) ) ) )\n\n(de i64 compare (X Y)\n   (cond\n      ((== X Y) 0)\n      ((nil? X) -1)\n      ((t? X) +1)\n      ((num? X)\n         (cond\n            ((num? Y) (cmpNum X Y))\n            ((nil? Y) +1)\n            (T -1) ) )\n      ((sym? X)\n         (cond\n            ((or (num? Y) (nil? Y)) +1)\n            ((or (pair Y) (t? Y)) -1)\n            (T\n               (let\n                  (NmX (name (& (val (tail X)) -9))\n                     NmY (name (& (val (tail Y)) -9)) )\n                  (cond\n                     ((== ZERO NmX)\n                        (nond\n                           ((== ZERO NmY) -1)\n                           ((> X Y) -1)\n                           (NIL +1) ) )\n                     ((== ZERO NmY) +1)\n                     (T\n                        (loop\n                           (let\n                              (A\n                                 (if (cnt? NmX)\n                                    (prog1\n                                       (shr (shl (name NmX) 2) 6)  # Clear status bits\n                                       (setq NmX 0) )\n                                    (prog1\n                                       (val (dig NmX))  # Next digit\n                                       (setq NmX (val (big NmX))) ) )\n                                 B\n                                 (if (cnt? NmY)\n                                    (prog1\n                                       (shr (shl (name NmY) 2) 6)  # Clear status bits\n                                       (setq NmY 0) )\n                                    (prog1\n                                       (val (dig NmY))  # Next digit\n                                       (setq NmY (val (big NmY))) ) ) )\n                              (loop\n                                 (when (- (& A 255) (& B 255))\n                                    (ret (if (gt0 @) +1 -1)) )\n                                 (? (=0 (setq A (shr A 8)))\n                                    (when (setq B (shr B 8))\n                                       (ret -1) )\n                                    (unless NmX\n                                       (ret (if NmY -1 0)) )\n                                    (unless NmY\n                                       (ret +1) ) )\n                                 (unless (setq B (shr B 8))\n                                    (ret +1) ) ) ) ) ) ) ) ) ) )\n      ((atom Y) (if (t? Y) -1 +1))\n      (T\n         (stkChk 0)\n         (let (A X  B Y)\n            (loop\n               (? (compare (car X) (car Y)) @)\n               (? (atom (shift X))\n                  (compare X (cdr Y)) )\n               (? (atom (shift Y))\n                  (if (t? Y) -1 +1) )\n               (? (== X A)\n                  (if (== Y B) 0 -1) )\n               (? (== Y B) 1)\n               (sigChk 0) ) ) ) ) )\n\n# Evaluation\n(local) (undefined evExpr evList)\n\n(de NIL undefined (Fun Exe)\n   (err Exe Fun ($ \"Undefined\") null) )\n\n# Apply EXPR to CDR of list\n(de evExpr (Exe Lst)\n   (stkChk Exe)\n   (let\n      (X (cdr Lst)  # Arguments\n         Y (car Exe)  # Parameters\n         P (set $Bind (push (val $At) $At (val $Bind) Lst)) )  # [[@] @ LINK Expr]\n      (while (pair Y)\n         (let (V (eval (++ X))  Z (++ Y))  # Evaluate next argument\n            (if (atom Z)\n               (set $Bind\n                  (setq P (push V (needChkVar Exe Z) P)) )  # [val sym LINK]\n               (loop\n                  (set $Bind\n                     (setq P\n                        (push  # [val sym LINK]\n                           (if (pair V) (++ V) $Nil)\n                           (needChkVar Exe (++ Z))\n                           P ) ) )\n                  (? (atom Z)) )\n               (unless (nil? Z)\n                  (set $Bind\n                     (setq P (push V (needChkVar Exe Z) P)) ) ) ) ) )  # [val sym LINK]\n      (prog1\n         (if (== Y $At)  # VarArgs\n            (if (pair X)\n               (let (L (push NIL (eval (car X)) NIL)  Q L)\n                  (link (ofs L 1))\n                  (while (pair (shift X))\n                     (setq L\n                        (set L (push NIL (eval (car X)) NIL)) )\n                     (link (ofs L 1)) )\n                  (let Next (val $Next)\n                     (set L $Nil  $Next Q)\n                     (loop\n                        (let Sym (val 2 P)\n                           (xchg Sym P)  # Exchange symbol value\n                           (? (== $At Sym))\n                           (setq P (val 3 P)) ) )\n                     (prog1\n                        (run (cdr Exe))  # Run body\n                        (set $Next Next)\n                        (drop (ofs Q 1)) ) ) )\n               (let Next (val $Next)\n                  (set $Next $Nil)\n                  (loop\n                     (let Sym (val 2 P)\n                        (xchg Sym P)  # Exchange symbol value\n                        (? (== $At Sym))\n                        (setq P (val 3 P)) ) )\n                  (prog1\n                     (run (cdr Exe))  # Run body\n                     (set $Next Next) ) ) )\n            (unless (nil? Y)\n               (needChkVar Exe Y)\n               (set\n                  $Bind (push (val Y) Y P)  # Last parameter\n                  Y X ) )  # Set to unevaluated argument(s)\n            (loop\n               (let Sym (val 2 P)\n                  (xchg Sym P)  # Exchange symbol value\n                  (? (== $At Sym))\n                  (setq P (val 3 P)) ) )\n            (run (cdr Exe)) )  # Run body\n         (setq P (val $Bind))\n         (loop\n            (let Sym (val 2 P)\n               (set Sym (val P))  # Restore values\n               (? (== $At Sym))\n               (setq P (val 3 P)) ) )\n         (set $Bind (val 3 P)) ) ) )\n\n(de evList (Exe)\n   (let Fun (car Exe)\n      (cond\n         ((num? Fun) Exe)  # Number: Return list\n         ((sym? Fun)  # Symbol: Find function\n            (loop\n               (sigChk Exe)\n               (let V (val Fun)  # Get VAL\n                  (? (num? V) (subr V Exe Fun))\n                  (? (pair V) (evExpr V Exe))\n                  (? (== V (val V))\n                     (if (sharedLib Fun)\n                        (subr (val Fun) Exe Fun)\n                        (undefined Fun Exe) ) )\n                  (setq Fun V) ) ) )\n         (T  # List: Evaluate\n            (stkChk Exe)\n            (let F (save (evList Fun))  # Save computed function\n               (loop\n                  (sigChk Exe)\n                  (? (num? F) (subr F Exe Fun))\n                  (? (pair F) (evExpr F Exe))\n                  (let V (val F)\n                     (? (== V (val V))\n                        (if (sharedLib F)\n                           (subr (val F) Exe F)\n                           (undefined F Exe) ) )\n                     (setq Fun F  F V) ) ) ) ) ) ) )\n\n(load \"io.l\" \"db.l\" \"apply.l\" \"flow.l\" \"subr.l\")\n\n# (quit ['any ['any]])\n(de _Quit (Exe)\n   (let\n      (X (cdr Exe)\n         Nm (xName (evSym X))\n         Msg (bufString Nm (b8 (bufSize Nm))) )\n      (err 0\n         (if (atom (shift X))\n            0\n            (eval (car X)) )\n         ($ \"%s\")\n         Msg ) ) )\n\n# (sys 'any ['any]) -> sym\n(de _Sys (Exe)\n   (let\n      (X (cdr Exe)\n         Nm (xName (evSym X))\n         S (bufString Nm (b8 (bufSize Nm))) )\n      (if (atom (shift X))\n         (mkStr (getenv S))\n         (let (Y (evSym X)  Nm2 (xName Y))\n            (if\n               (setenv S\n                  (bufString Nm2 (b8 (bufSize Nm2)))\n                  1 )\n               $Nil\n               Y ) ) ) ) )\n\n# (pwd) -> sym\n(de _Pwd (Exe)\n   (let P (getcwd null 0)\n      (if P\n         (prog1 (mkStr P) (free P))\n         $Nil ) ) )\n\n# (cd 'any) -> sym\n(de _Cd (Exe)\n   (let\n      (Nm (xName (evSym (cdr Exe)))\n         P (getcwd null 0) )\n      (if P\n         (prog1\n            (if (lt0 (chdir (dirString Nm (b8 (pathSize Nm)))))\n               $Nil\n               (mkStr P) )\n            (free P) )\n         $Nil ) ) )\n\n# (ctty 'pid) -> pid\n# (ctty 'any) -> any | NIL\n(de _Ctty (Exe)\n   (let X (eval (cadr Exe))\n      (cond\n         ((cnt? X)\n            (set $TtyPid (i32 (int @)))\n            X )\n         ((nil? X)\n            (let Pty (b32 2)  # Master + Slave\n               (when (lt0 (openpty Pty (ofs Pty 1) null null null))\n                  (err Exe 0 ($ \"Can't open PTY: %s\") (strErrno)) )\n               (cond\n                  ((lt0 (fork)) (forkErr Exe))\n                  ((=0 @)  # Master in child\n                     (close (val 2 Pty))\n                     (let (Fd (val Pty)  Poll (b64 2)  Buf (b8 BUFSIZ))\n                        (loop\n                           (pollIn 0 Poll)\n                           (pollIn Fd (ofs Poll 1))\n                           (if (lt0 (poll Poll 2 -1))\n                              (? (<> (gErrno) EINTR))\n                              (when (readyIn Poll)\n                                 (let N (read 0 Buf BUFSIZ)\n                                    (? (le0 N))\n                                    (write Fd Buf N) ) )\n                              (when (readyIn (ofs Poll 1))\n                                 (let N (read Fd Buf BUFSIZ)\n                                    (? (le0 N))\n                                    (write 1 Buf N) ) ) ) )\n                        (exit 0) ) ) )\n               # Slave in parent\n               (close (val Pty))\n               (login_tty (val 2 Pty)) )\n            (signal (val SIGINT Sig) (val SigIgn))\n            ((inFile (val (val $InFiles))) tty YES)\n            ((outFile (val 2 (val $OutFiles))) tty YES)\n            ((outFile (val 3 (val $OutFiles))) tty YES)\n            (set Tio (=0 (tcgetattr 0 OrgTermio)))  # Init terminal I/O\n            $T )\n         (T\n            (let Nm (xName (xSym X))\n               (if (reopenTty (bufString Nm (b8 (bufSize Nm))))\n                  (let\n                     (In: (inFile (val (val $InFiles)))  # Stdin\n                        Out: (outFile (val 2 (val $OutFiles))) )  # Stdout\n                     (In: chr 0)\n                     (In: ix (In: cnt 0))\n                     (In: tty YES)\n                     (set Tio (=0 (tcgetattr 0 OrgTermio)))  # Save terminal I/O\n                     (Out: ix 0)\n                     (Out: tty YES)\n                     ((outFile (val 3 (val $OutFiles))) tty YES)  # Stderr\n                     X )\n                  $Nil ) ) ) ) ) )\n\n# (cmd ['any]) -> sym\n(de _Cmd (Exe)\n   (if (nil? (evSym (cdr Exe)))\n      (mkStr (val $AV0))\n      (bufString (xName @) (val $AV0))\n      @ ) )\n\n# (dir ['any] ['flg]) -> lst\n(de _Dir (Exe)\n   (let X (cdr Exe)\n      (if\n         (getDir\n            (let Nm (xName (evSym X))\n               (dirString Nm (b8 (pathSize Nm))) ) )\n         (let (P @  F (eval (car (shift X))))\n            (when (nil? F)\n               (while (== (val P) (char \".\"))\n                  (unless (setq P (getDir null))\n                     (ret $Nil) ) ) )\n            (let (Y (cons (mkStr P) $Nil)  R (save Y))\n               (while (setq P (getDir null))\n                  (unless (and (nil? F) (== (val P) (char \".\")))\n                     (setq Y (set 2 Y (cons (mkStr P) $Nil))) ) )\n               R ) )\n         $Nil ) ) )\n\n# (info 'any ['flg]) -> (cnt|flg dat . tim)\n(de _Info (Exe)\n   (let\n      (X (cdr Exe)\n         Nm (xName (set $At2 (evSym X)))\n         Size (b64 1) )\n      (if\n         (lt0\n            (fileInfo\n               (nil? (eval (car (shift X))))\n               (== ZERO @)\n               (dirString Nm (b8 (pathSize Nm)))\n               Size ) )\n         $Nil\n         (let N @\n            (cons\n               (case (& N 3)\n                  (1 $T)\n                  (2 $Nil)\n                  (T (box64 (val Size))) )\n               (cons\n                  (tmDate\n                     (& (setq N (shr N 2)) (hex \"FFFF\"))\n                     (& (setq N (shr N 16)) (hex \"FF\"))\n                     (& (setq N (shr N 8)) (hex \"FF\")) )\n                  (cnt (shr N 8)) ) ) ) ) ) )\n\n# (file) -> (sym1 sym2 . num) | NIL\n(de _File (Exe)\n   (let In: (inFile (val $InFile))\n      (ifn (and (In:) (In: name))\n         $Nil\n         (let\n            (N (cnt (i64 (In: src)))\n               S (In: name)\n               P (strrchr S (char \"/\")) )\n            (if P\n               (let X (save (mkStrE S (inc 'P)))\n                  (cons X (cons (mkStr P) N)) )\n               (cons $Nil (cons (mkStr S) N)) ) ) ) ) )\n\n# (argv [var ..] [. sym]) -> lst|sym\n(de _Argv (Exe)\n   (let (X (cdr Exe)  A (val $AV)  P (val A))\n      (when\n         (and\n            P\n            (== (val P) (char \"-\"))\n            (=0 (val 2 P)) )  # Single-dash argument\n         (inc 'A) )  # Skip \"-\"\n      (if (nil? X)  # No args\n         (if (setq P (val A))\n            (let (Y (cons (mkStr P) $Nil)  R (save Y))\n               (while (setq P (val (inc 'A)))\n                  (setq Y (set 2 Y (cons (mkStr P) $Nil))) )\n               R )\n            $Nil )\n         (loop\n            (? (atom X)\n               (set (needChkVar Exe X)\n                  (if (setq P (val A))\n                     (let (Y (cons (mkStr P) $Nil)  R Y)\n                        (save R\n                           (while (setq P (val (inc 'A)))\n                              (setq Y (set 2 Y (cons (mkStr P) $Nil))) ) )\n                        R )\n                     $Nil ) ) )\n            (let Y\n               (ifn (setq P (val A))\n                  $Nil\n                  (inc 'A)\n                  (mkStr P) )\n               (set (needChkVar Exe (++ X)) Y)\n               (? (nil? X) Y) ) ) ) ) )\n\n# (opt) -> sym\n(de _Opt (Exe)\n   (let (A (val $AV)  P (val A))\n      (if\n         (or\n            (=0 P)\n            (and\n               (== (val P) (char \"-\"))\n               (=0 (val 2 P)) ) )\n         $Nil\n         (set $AV (inc A))\n         (mkStr P) ) ) )\n\n# (errno) -> cnt\n(de _Errno (Exe)\n   (cnt (i64 (nErrno))) )\n\n# Native calls\n(local) (fetchChar natBuf natErr natRetFloat natRetDouble natRetBuf ffi)\n\n(de i32 fetchChar ((i8** . Ptr))\n   (let (P (val Ptr)  C (i32 (val P)))\n      (prog2\n         (inc 'P)\n         (cond\n            ((>= 127 C) C)  # Single byte\n            ((== C (hex \"FF\")) (i32 TOP))  # Infinite\n            (T\n               (|\n                  (shl\n                     (ifn (& C (hex \"20\"))\n                        (& C (hex \"1F\"))\n                        (|\n                           (shl\n                              (ifn (& C (hex \"10\"))\n                                 (& C (hex \"0F\"))\n                                 (|\n                                    (shl (& C (hex \"7\")) 6)\n                                    (&\n                                       (i32 (prog1 (val P) (inc 'P)))\n                                       (hex \"3F\") ) ) )\n                              6 )\n                           (&\n                              (i32 (prog1 (val P) (inc 'P)))\n                              (hex \"3F\") ) ) )\n                     6 )\n                  (&\n                     (i32 (prog1 (val P) (inc 'P)))\n                     (hex \"3F\") ) ) ) )\n         (set Ptr P) ) ) )\n\n(de i64 natBuf (Val (i8* . Ptr))\n   (if (atom Val)  # Byte or unsigned\n      (if (sign? Val)  # Unsigned 32 bit\n         (let P (i32* Ptr)\n            (set P (i32 (int Val)))\n            4 )\n         (set Ptr (i8 (int Val)))\n         1 )\n      (let X (++ Val)  # 'num', 'sym' or [-]1.0\n         (if (cnt? Val)  # 'cnt' or 'lst'\n            (let Siz (int Val)\n               (cond\n                  ((num? X)  # (num . cnt)\n                     (let N\n                        (if (cnt? X)\n                           (int @)\n                           (val (dig @)) )\n                        (when (sign? X)\n                           (setq N (- N)) )\n                        (case Siz\n                           (1 (set Ptr (i8 N)))\n                           (2 (set (i16* Ptr) (i16 N)))\n                           (4 (set (i32* Ptr) (i32 N)))\n                           (T (set (i64* Ptr) N)) ) ) )\n                  ((nil? X) (set Ptr (i8 0)))\n                  ((sym? X)  # (sym . cnt)\n                     (setq X (name (val (tail X))))\n                     (bufString X Ptr) ) )\n               Siz )\n            (let (N 0  Scl (int X))\n               (if (sign? X)  # ([-]1.0 . lst)\n                  (while (pair Val)\n                     (bufFloat (++ Val) Scl (i32* Ptr))\n                     (inc 'N 4)\n                     (setq Ptr (ofs Ptr 4)) )\n                  (while (pair Val)\n                     (bufDouble (++ Val) Scl (i64* Ptr))\n                     (inc 'N 8)\n                     (setq Ptr (ofs Ptr 8)) ) )\n               N ) ) ) ) )\n\n(de NIL natErr (Spec)\n   (err 0 Spec ($ \"Bad result spec\") null) )\n\n(de natRetFloat ((i32 . Val) (i64 . Scl))\n   (let R (boxFloat Val Scl)\n      (unless R\n         (let X (setq R (save (boxNum (val Fdigit))))\n            (until (boxFlt)\n               (setq X (set (big X) (boxNum (val Fdigit)))) )\n            (set (big X) @) ) )\n      (if (val Fsign) (neg R) R) ) )\n\n(de natRetDouble ((i64 . Val) (i64 . Scl))\n   (let R (boxDouble Val Scl)\n      (unless R\n         (let X (setq R (save (boxNum (val Fdigit))))\n            (until (boxDbl)\n               (setq X (set (big X) (boxNum (val Fdigit)))) )\n            (set (big X) @) ) )\n      (if (val Fsign) (neg R) R) ) )\n\n(de natRetBuf (Spec (i8** . Ptr))\n   (cond\n      ((t? Spec)  # 'T' Direct Lisp value\n         (let P (i64* (val Ptr))\n            (set Ptr (i8* (inc P)))\n            (val P) ) )\n      ((== Spec $N)  # 'N' Number (signed 64 bit)\n         (let P (i64* (val Ptr))\n            (set Ptr (i8* (inc P)))\n            (box (val P)) ) )\n      ((== Spec $P)  # 'P' Pointer (unsigned 64 bit)\n         (let P (i64* (val Ptr))\n            (set Ptr (i8* (inc P)))\n            (box64 (val P)) ) )\n      ((== Spec $I)  # 'I' Integer (signed 32 bit)\n         (if\n            (ge0\n               (let P (i32* (val Ptr))\n                  (set Ptr (i8* (inc P)))\n                  (val P) ) )\n            (cnt (i64 @))\n            (sign (cnt (i64 (- @)))) ) )\n      ((== Spec $U)  # 'U' Unsigned integer (32 bit)\n         (let P (i32* (val Ptr))\n            (set Ptr (i8* (inc P)))\n            (cnt (i64u (val P))) ) )\n      ((== Spec $W)  # 'W' Word (signed 16 bit)\n         (if\n            (ge0\n               (let P (i16* (val Ptr))\n                  (set Ptr (i8* (inc P)))\n                  (val P) ) )\n            (cnt (i64 @))\n            (sign (cnt (i64 (- @)))) ) )\n      ((== Spec $C)  # 'C' Character (UTF-8, 1-4 bytes)\n         (if (fetchChar Ptr) (mkChar @) $Nil) )\n      ((== Spec $B)  # 'B' Byte (unsigned 8 bit)\n         (let P (val Ptr)\n            (set Ptr (inc P))\n            (cnt (i64 (val P))) ) )\n      ((== Spec $S)  # 'S' String (UTF-8)\n         (let P (i8** (val Ptr))\n            (set Ptr (i8* (inc P)))\n            (mkStr (val P)) ) )\n      ((cnt? Spec)  # [+-]1.0 Scaled fixpoint number\n         (if (sign? Spec)\n            (natRetFloat\n               (let P (i32* (val Ptr))\n                  (set Ptr (i8* (inc P)))\n                  (val P) )\n               (int Spec) )\n            (natRetDouble\n               (let P (i64* (val Ptr))\n                  (set Ptr (i8* (inc P)))\n                  (val P) )\n               (int Spec) ) ) )\n      ((pair Spec)  # Arrary or structure\n         (let (S (++ Spec)  R (natRetBuf S Ptr))\n            (unless (and (nil? R) (== S $C))\n               (let X (setq R (save (cons R $Nil)))\n                  (loop\n                     (? (cnt? Spec)  # (sym . cnt)\n                        (let C (int Spec)\n                           (while (dec 'C)\n                              (let Y (natRetBuf S Ptr)\n                                 (? (and (nil? Y) (== S $C)))\n                                 (setq X (set 2 X (cons Y $Nil))) ) ) ) )\n                     (? (atom Spec))\n                     (let Y (natRetBuf (setq S (++ Spec)) Ptr)\n                        (? (and (nil? Y) (== S $C)))\n                        (setq X (set 2 X (cons Y $Nil))) ) ) ) )\n            R ) )\n      (T (natErr Spec)) ) )\n\n(de ffi (Exe (i8* . Lib) Fun Args)\n   (let\n      (Spec (car Args)\n         Val\n         (ffiCall\n            (cond\n               ((cnt? Fun) (i8* (int Fun)))\n               ((big? Fun) (i8* (val (dig Fun))))\n               ((pair Fun) (argErr Exe Fun))\n               (T\n                  (let Nm (xName Fun)\n                     (unless (ffiPrep Lib (bufString Nm (b8 (bufSize Nm))) Args)\n                        (err Exe 0 ($ \"Bad ffi\") null) )\n                     (set Fun (box64 (i64 @)))\n                     @ ) ) )\n            (cdr Args) ) )\n      (cond\n         ((nil? Spec) $Nil)\n         ((== Spec $T) Val)  # 'T' Direct Lisp value\n         ((== Spec $N) (box Val))  # 'N' Number (signed 64 bit)\n         ((== Spec $P) (box64 Val))  # 'P' Pointer (unsigned 64 bit)\n         ((== Spec $I)  # 'I' Integer (signed 32 bit)\n            (if (ge0 (i32 Val))\n               (cnt (i64 @))\n               (sign (cnt (i64 (- @)))) ) )\n         ((== Spec $U) (cnt Val))  # 'U' Unsigned integer (32 bit)\n         ((== Spec $W)  # 'W' Word (signed 16 bit)\n            (if (ge0 (i16 Val))\n               (cnt (i64 @))\n               (sign (cnt (i64 (- @)))) ) )\n         ((== Spec $C)  # 'C' Character (UTF-8, 1-4 bytes)\n            (if (i32 Val) (mkChar @) $Nil) )\n         ((== Spec $B)  # 'B' Byte (unsigned 8 bit)\n            (cnt (i64 (i8 Val))) )\n         ((== Spec $S)  # 'S' String (UTF-8)\n            (mkStr (i8* Val)) )\n         ((cnt? Spec)  # [+-]1.0 Scaled fixpoint number\n            (if (sign? Spec)\n               (natRetFloat (i32 Val) (int Spec))\n               (natRetDouble Val (int Spec)) ) )\n         ((and (pair Spec) Val)  # Arrary or structure\n            (let\n               (Ptr (i8** (push Val))\n                  S (++ Spec)\n                  R (natRetBuf S Ptr) )\n               (unless (and (nil? R) (== S $C))\n                  (let X (setq R (save (cons R $Nil)))\n                     (loop\n                        (? (cnt? Spec)  # (sym . cnt)\n                           (let C (int Spec)\n                              (while (dec 'C)\n                                 (let Y (natRetBuf S Ptr)\n                                    (? (and (nil? Y) (== S $C)))\n                                    (setq X (set 2 X (cons Y $Nil))) ) ) ) )\n                        (? (atom Spec))\n                        (let Y (natRetBuf (setq S (++ Spec)) Ptr)\n                           (? (and (nil? Y) (== S $C)))\n                           (setq X (set 2 X (cons Y $Nil))) ) ) ) )\n               R ) )\n         (T (natErr Spec)) ) ) )\n\n# (%@ 'cnt2|sym2 'any 'any ..) -> any\n(de _Nat (Exe)\n   (let\n      (X (cdr Exe)\n         Fun (save (eval (++ X)))  # Eval function 'cnt2|sym2'\n         Args (save (cons (eval (++ X)) $Nil))\n         L Args )  # [ret args]\n      (while (pair X)\n         (let Z (push (save (eval (++ X))) $Nil)  # [argN next]\n            (set 2 L Z)\n            (setq L Z) ) )\n      (tailcall (ffi Exe null Fun Args)) ) )\n\n# (native 'cnt1|sym1 'cnt2|sym2 'any 'any ..) -> any\n(de _Native (Exe)\n   (let\n      (X (cdr Exe)\n         Y (eval (++ X))  # Eval library 'cnt1|sym1'\n         Lib\n         (cond\n            ((cnt? Y) (i8* (int Y)))\n            ((big? Y) (i8* (val (dig Y))))\n            ((pair Y) (argErr Exe Y))\n            ((== (xName Y) (| 2 (>> -4 (char \"@\"))))\n               (set Y ZERO)\n               null )  # RTLD_DEFAULT\n            (T\n               (unless (dlOpen (pathString @ (b8 (pathSize @))))\n                  (err Exe Y ($ \"[DLL] %s\") (dlerror)) )\n               (set Y (box64 (i64 @)))\n               @ ) )\n         Fun (save (eval (++ X)))  # Eval function 'cnt2|sym2'\n         Args (save (cons (eval (++ X)) $Nil))\n         L Args )  # [ret args]\n      (while (pair X)\n         (let Z (push (save (eval (++ X))) $Nil)  # [argN next]\n            (set 2 L Z)\n            (setq L Z) ) )\n      (tailcall (ffi Exe Lib Fun Args)) ) )\n\n# (struct 'num 'any 'any ..) -> any\n(de _Struct (Exe)\n   (let\n      (X (cdr Exe)\n         N (xCnt64 Exe (eval (++ X)))  # Native value (pointer or scalar)\n         P (i8* N)\n         Y (save (eval (car X))) )  # Result specification\n      (while (pair (shift X))\n         (setq P\n            (ofs P (natBuf (eval (car X)) P)) ) )\n      (cond\n         ((nil? Y) @)\n         ((== Y $S) (mkStr (i8* N)))\n         (T (natRetBuf Y (i8** (push N)))) ) ) )\n\n# Lisp callbacks\n(local) cbl\n\n(de cbl (Fun A B C D E)\n   (let Exe (push NIL NIL ZERO Fun)  # [car cdr name fun]\n      (set Exe (ofs Exe 3))\n      (let P (set 2 Exe (push NIL NIL ZERO (box A)))\n         (set P (ofs P 3))\n         (setq P\n            (set 2 P (push NIL NIL ZERO (box B))) )\n         (set P (ofs P 3))\n         (setq P\n            (set 2 P (push NIL NIL ZERO (box C))) )\n         (set P (ofs P 3))\n         (setq P\n            (set 2 P (push NIL NIL ZERO (box D))) )\n         (set P (ofs P 3))\n         (setq P\n            (set 2 P (push NIL $Nil ZERO (box E))) )\n         (set P (ofs P 3)) )\n      (xCnt 0 (evList Exe)) ) )\n\n(de _Cb1 (A B C D E)\n   (cbl (val 2 $Lisp) A B C D E) )\n\n(de _Cb2 (A B C D E)\n   (cbl (val 4 $Lisp) A B C D E) )\n\n(de _Cb3 (A B C D E)\n   (cbl (val 6 $Lisp) A B C D E) )\n\n(de _Cb4 (A B C D E)\n   (cbl (val 8 $Lisp) A B C D E) )\n\n(de _Cb5 (A B C D E)\n   (cbl (val 10 $Lisp) A B C D E) )\n\n(de _Cb6 (A B C D E)\n   (cbl (val 12 $Lisp) A B C D E) )\n\n(de _Cb7 (A B C D E)\n   (cbl (val 14 $Lisp) A B C D E) )\n\n(de _Cb8 (A B C D E)\n   (cbl (val 16 $Lisp) A B C D E) )\n\n(de _Cb9 (A B C D E)\n   (cbl (val 18 $Lisp) A B C D E) )\n\n(de _Cb10 (A B C D E)\n   (cbl (val 20 $Lisp) A B C D E) )\n\n(de _Cb11 (A B C D E)\n   (cbl (val 22 $Lisp) A B C D E) )\n\n(de _Cb12 (A B C D E)\n   (cbl (val 24 $Lisp) A B C D E) )\n\n(de _Cb13 (A B C D E)\n   (cbl (val 26 $Lisp) A B C D E) )\n\n(de _Cb14 (A B C D E)\n   (cbl (val 28 $Lisp) A B C D E) )\n\n(de _Cb15 (A B C D E)\n   (cbl (val 30 $Lisp) A B C D E) )\n\n(de _Cb16 (A B C D E)\n   (cbl (val 32 $Lisp) A B C D E) )\n\n(de _Cb17 (A B C D E)\n   (cbl (val 34 $Lisp) A B C D E) )\n\n(de _Cb18 (A B C D E)\n   (cbl (val 36 $Lisp) A B C D E) )\n\n(de _Cb19 (A B C D E)\n   (cbl (val 38 $Lisp) A B C D E) )\n\n(de _Cb20 (A B C D E)\n   (cbl (val 40 $Lisp) A B C D E) )\n\n(de _Cb21 (A B C D E)\n   (cbl (val 42 $Lisp) A B C D E) )\n\n(de _Cb22 (A B C D E)\n   (cbl (val 44 $Lisp) A B C D E) )\n\n(de _Cb23 (A B C D E)\n   (cbl (val 46 $Lisp) A B C D E) )\n\n(de _Cb24 (A B C D E)\n   (cbl (val 48 $Lisp) A B C D E) )\n\n# (lisp 'sym ['fun]) -> num\n(de _Lisp (Exe)\n   (let (X (cdr Exe)  Y (evSym X))\n      (let (P $Lisp  Q (i8** (cbFuns)))\n         (loop  # Search for tag 'sym'\n            (? (== Y (val P)))  # Found\n            (setq P (ofs P 2)  Q (ofs Q 1))\n            (? (> P $LispEnd)  # Not found\n               (setq P $Lisp  Q (i8** (cbFuns)))\n               (until (nil? (val 2 P))  # Search for empty slot\n                  (setq P (ofs P 2)  Q (ofs Q 1))\n                  (when (> P $LispEnd)\n                     (err Exe 0 ($ \"Too many callbacks\") null) ) )\n               (set P Y) ) )\n         (set 2 P (eval (cadr X)))  # Eval 'fun'\n         (box64 (i64 (val Q))) ) ) )\n\n# (args) -> flg\n(de _Args (Exe)\n   (if (pair (val $Next)) $T $Nil) )\n\n# (next) -> any\n(de _Next (Exe)\n   (let X (val $Next)\n      (set $Next (car X))\n      (val 2 X) ) )\n\n# (arg 'cnt) -> any\n(de _Arg (Exe)\n   (if (le0 (evCnt Exe (cdr Exe)))\n      $Nil\n      (let (N @  X (val $Next))\n         (while (gt0 (dec 'N))\n            (setq X (car X)) )\n         (val 2 X) ) ) )\n\n# (rest) -> lst\n(de _Rest (Exe)\n   (let X (val $Next)\n      (if (atom X)\n         X\n         (let (Y (cons (val 2 X) $Nil)  R (save Y))\n            (while (pair (setq X (car X)))\n               (setq Y (set 2 Y (cons (val 2 X) $Nil))) )\n            R ) ) ) )\n\n# (adr 'var) -> num\n# (adr 'num) -> var\n(de _Adr (Exe)\n   (cond\n      ((cnt? (eval (cadr Exe))) (int @))  # Make 'var'\n      ((big? @) (val (dig @)))\n      (T (box64 @)) ) )  # Make 'num'\n\n# (byte 'num ['cnt]) -> cnt\n(de _Byte (Exe)\n   (let\n      (X (cdr Exe)\n         P (i8* (xCnt64 Exe (eval (++ X)))) )\n      (if (atom X)\n         (cnt (i64 (val P)))\n         (let\n            (Y (needCnt Exe (eval (car X)))\n               N (int @) )\n            (set P\n               (i8 (if (sign? Y) (- N) N)) )\n            Y ) ) ) )\n\n# (env ['lst] | ['sym 'val] ..) -> lst\n(de _Env (Exe)\n   (let (X (cdr Exe)  R (save $Nil))\n      (if (atom X)\n         (let Bnd (val $Bind)\n            (while Bnd\n               (let (S (val 2 Bnd)  Y R)\n                  (loop\n                     (? (atom Y)\n                        (setq R\n                           (safe (cons (cons S (val S)) R)) ) )  # (sym . val)\n                     (? (== S (caar Y)))\n                     (shift Y) ) )\n               (setq Bnd (val 3 Bnd)) ) )\n         (let Y (link (push $Nil NIL))\n            (loop\n               (let Z (set Y (eval (++ X)))  # Eval 'lst' or 'sym'\n                  (nond\n                     ((atom Z)\n                        (loop\n                           (let V (++ Z)\n                              (setq R\n                                 (safe\n                                    (cons\n                                       (if (pair V)\n                                          (cons (car V) (cdr V))\n                                          (cons V (val V)) )\n                                       R ) ) ) )\n                           (? (atom Z)) ) )\n                     ((nil? Z)\n                        (setq R\n                           (safe (cons (cons Z (eval (++ X))) R)) ) ) ) )\n                  (? (atom X)) ) ) )\n      R ) )\n\n# (trail ['flg]) -> lst\n(de _Trail (Exe)\n   (let\n      (F (not (nil? (eval (cadr Exe))))\n         Bnd (val $Bind)\n         R $Nil )\n      (while Bnd\n         (let S (val 2 Bnd)\n            (cond\n               ((== S $At)\n                  (when (val 4 Bnd)\n                     (setq R (cons @ R)) ) )  # Expr\n               (F\n                  (setq R (cons S (cons (val S) R)))\n                  (set S (val Bnd)) ) ) )\n         (setq Bnd (val 3 Bnd)) )\n      (let X R\n         (until (atom X)\n            (when (atom (++ X))\n               (set @ (++ X)) ) ) )\n      R ) )\n\n# (up [cnt] sym ['val]) -> any\n(de _Up (Exe)\n   (let\n      (X (cdr Exe)\n         Y (car X)\n         N 1\n         Bnd (val $Bind) )\n      (when (num? Y)\n         (setq N (int Y)  Y (car (shift X))) )\n      (if (nil? Y)\n         (if N\n            (loop\n               (? (=0 Bnd) $Nil)\n               (?\n                  (and\n                     (== $At (val 2 Bnd))\n                     (=0 (dec 'N)) )\n                  (if (val 4 Bnd) @ $Nil) )\n               (setq Bnd (val 3 Bnd)) )\n            $Nil )\n         (let Z Y\n            (when N\n               (loop\n                  (? (=0 Bnd))\n                  (?\n                     (and\n                        (== Y (val 2 Bnd))\n                        (prog\n                           (setq Z Bnd)\n                           (=0 (dec 'N)) ) ) )\n                  (setq Bnd (val 3 Bnd)) ) )\n            (if (atom (shift X))\n               (val Z)\n               (set Z (eval (car X))) ) ) ) ) )\n\n# (history ['lst]) -> lst\n(de _History (Exe)\n   (let X (cdr Exe)\n      (if (atom X)\n         (let P (history_list)\n            (if (and P (val P))\n               (let\n                  (Y (cons (mkStr (val (val P))) $Nil)\n                     R (save Y)\n                     I 0 )\n                  (while (val (ofs P (inc 'I)))\n                     (setq Y\n                        (set 2 Y (cons (mkStr (val @)) $Nil)) ) )\n                  R )\n               $Nil ) )\n         (let (Y (needLst Exe (eval (car X)))  Z Y)\n            (clear_history)\n            (while (pair Z)\n               (let (Nm (xName (xSym (++ Z)))  Stk (stack))\n                  (add_history (bufString Nm (b8 (bufSize Nm))) )\n                  (stack Stk) ) )\n            Y ) ) ) )\n\n# Main entry points\n(local) (init signals sigChld main stoplisp picolisp evaluate reflect)\n\n(de void init ((i32 . Ac) (i8** . Av))\n   (set\n      $AV0 (val Av)  # Save command\n      $AV (setq Av (ofs Av 1)) )  # and argument vector\n   # Check debug mode\n   (let P (ofs Av (- Ac 2))\n      (unless (strcmp (val P) ($ \"+\"))\n         (set $Dbg $T  P null) ) )\n   # Locate home directory\n   (let P (val Av)  # First argument\n      (when (and P (<> (val P) (char \"-\")))\n         (let Q (strrchr P (char \"/\"))\n            (unless\n               (or\n                  (=0 Q)\n                  (and\n                     (== Q (+ P 1))\n                     (== (val P) (char \".\")) ) )\n               (let (N (+ (- Q P) 1)  H (malloc (+ N 1)))\n                  (set $PilHome H  $PilLen N)\n                  (memcpy H P N)\n                  (set (ofs H N) 0) ) ) ) ) )\n   (when (getenv ($ \"HOME\"))\n      (set $UsrHome @  $UsrLen (strlen @)) )\n   (heapAlloc)\n   (let P $Nil  # Init internal symbols\n      (loop\n         (let Nm (val (tail P))\n            (when (num? Nm)\n               (intern P 0 @ (cdr $Pico) $Nil NO)\n               (? (== P $LastSym))\n               (when (big? Nm)  # Max 15 chars\n                  (setq P (ofs P 2)) ) ) )\n         (setq P (ofs P 2)) ) )\n   # Initialize globals\n   (set\n      $OS (mkStr TgOS)\n      $CPU (mkStr TgCPU)\n      $Pid (cnt (i64 (getpid)))\n      (tail $Db1) DB1  # Name of external root symbol '{1}'\n      $Extern (cons $Db1 $Nil) )  # External symbol tree root node\n   (set $USec (getUsec YES)) )\n\n(de void signals ()\n   (sigUnblock 0)  # Set all signals to unblocked\n   (iSignal (val SIGHUP Sig) (fun sig))\n   (iSignal (val SIGUSR1 Sig) (fun sig))\n   (iSignal (val SIGUSR2 Sig) (fun sig))\n   (iSignal (val SIGALRM Sig) (fun sig))\n   (iSignal (val SIGTERM Sig) (fun sig))\n   (iSignal (val SIGWINCH Sig) (fun sig))\n   (iSignal (val SIGIO Sig) (fun sig))\n   (when (== (signal (val SIGTSTP Sig) (val SigIgn)) (val SigDfl))\n      (iSignal (val SIGTSTP Sig) (fun sig)) )\n   (iSignal (val SIGINT Sig) (fun sigTerm))\n   (signal (val SIGCHLD Sig) (fun sigChld))\n   (signal (val SIGPIPE Sig) (val SigIgn))\n   (signal (val SIGTTIN Sig) (val SigIgn))\n   (signal (val SIGTTOU Sig) (val SigIgn)) )\n\n(de i32 main ((i32 . Ac) (i8** . Av))\n   (set $StkLimit (ulimStk))\n   (init Ac Av)\n   (pushOutFile (b8+ (ioFrame T)) (initOutFile 2) 0)  # Standard error\n   (pushOutFile\n      (set $Stdout (b8+ (ioFrame T)))\n      (initOutFile 1)  # Standard output\n      0 )\n   (pushInFile\n      (set $Stdin (b8+ (ioFrame T)))\n      (initInFile 0 null)  # Standard input\n      0 )\n   (set Tio (=0 (tcgetattr 0 OrgTermio)))  # Save terminal I/O\n   (signals)\n   (initReadline)\n   (unless (setjmp QuitRst)\n      (loadAll 0) )  # Load arguments\n   (unless (val $Repl)\n      (set $Repl YES)\n      (iSignal (val SIGINT Sig) (fun sig)) )\n   (save -ZERO)\n   (loop\n      (let X (safe (stdRead ($ \": \")))\n         (cond\n            ((lt0 (val $Chr)) (bye 0))\n            ((=0 (val $Chr))\n               (unless (nil? X)\n                  (stdEval X) ) )\n            (T (eval X)) ) ) ) )\n\n(de void stoplisp ()\n   (let P (val $Heaps)\n      (loop\n         (let Q (val (ofs P HEAP))\n            (free (i8* P))\n            (? (=0 (setq P Q)) ) ) ) )\n   (set\n      $Heaps 0\n      $Avail 0\n      $Coroutines null\n      $Current null\n      $CrtLast null\n      $CrtFree null\n      $StkSizeT (* 4 STACK)\n      $StkSize STACK\n      $GcCount CELLS\n      $PicoT $Nil\n      2 $PicoT $Nil\n      $PrivT $Nil\n      2 $PrivT $Nil\n      $At $Nil\n      $At2 $Nil\n      $At3 $Nil\n      $This $Nil\n      $Run $Nil\n      $Hup $Nil\n      $Sig1 $Nil\n      $Sig2 $Nil\n      $Winch $Nil\n      $TStp1 $Nil\n      $TStp2 $Nil\n      $Term $Nil\n      $Err $Nil\n      $Uni $Nil\n      $Fork $Nil\n      $Bye $Nil\n      $Dbg $Nil\n      $Reflect $Nil\n      $Intern $Pico1\n      $Transient $Nil\n      2 $Transient $Nil\n      $Link 0\n      $Bind 0\n      $Break 0\n      $NsLink 0\n      $Catch null\n      $InFrames null\n      $OutFrames null\n      $ErrFrames null\n      $CtlFrames null\n      $InFile null\n      $OutFile null ) )\n\n(de i1 picolisp ((i8* . Stk) (i32 . Siz) (i32 . Ac) (i8** . Av))\n   (if (setjmp SoRst)\n      YES\n      (stack (ofs Stk Siz))\n      (set $StkLimit (set $SysStkLimit (ofs Stk (shr Siz 6))))\n      (init Ac Av)\n      (pushOutFile (b8+ (ioFrame T)) (initOutFile 2) 0)  # Standard error\n      (pushOutFile\n         (set $Stdout (b8+ (ioFrame T)))\n         (initOutFile 1)  # Standard output\n         0 )\n      (pushInFile\n         (set $Stdin (b8+ (ioFrame T)))\n         (initInFile 0 null)  # Standard input\n         0 )\n      (set Tio (=0 (tcgetattr 0 OrgTermio)))  # Save terminal I/O\n      (signals)\n      (initReadline)\n      (ifn (setjmp QuitRst)\n         (loadAll 0)\n         (stoplisp)\n         (ret NO) )\n      (set $Ret\n         (case (setjmp QuitRst)\n            (0 (longjmp SoRst 1))\n            (1 (any (strdup ($ \"-ERR-\"))))\n            (2  # 2: evaluate\n               (let E\n                  (save\n                     (parse\n                        (name (val (tail (mkStr (i8* (val $Ret))))))\n                        YES (hex \"20\") 1 ) )  # Blank, EOF\n                  (setq E (safe (eval E)))\n                  (begString (push 4 NIL ZERO NIL NIL NIL))  # [cnt last name link fun ptr]\n                  (print E)\n                  (let Nm (name (val (tail (endString))))\n                     (any (strdup (bufString Nm (b8 (bufSize Nm))))) ) ) )\n            (T  # 3: reflect\n               (evExe $Reflect (val $Ret) (val $Ret2)) ) ) )\n      (longjmp SoRst 1) ) )\n\n(de i8* evaluate ((i8* . Str))\n   (if (setjmp SoRst)\n      (i8* (val $Ret))\n      (set $Ret (any Str))\n      (longjmp QuitRst 2) ) )\n\n(de void reflect ((i8* . Adr) (i8* . Str))\n   (unless (nil? (val $Reflect))\n      (unless (setjmp SoRst)\n         (save (set $Ret (box64 (i64 Adr)))\n            (set $Ret2 (mkStr Str)) )\n         (longjmp QuitRst 3) ) ) )\n\n# (version ['flg]) -> lst\n# (version 'lst) -> lst\n(de _Version (Exe)\n   (let\n      (X (save (eval (cadr Exe)))\n         V\n         (cons (val $Y)\n            (cons (val $M)\n               (cons (val $D) $Nil) ) ) )\n      (cond\n         ((nil? X)\n            (outWord (int (val $Y)))\n            (call $Put (char \".\"))\n            (outWord (int (val $M)))\n            (call $Put (char \".\"))\n            (outWord (int (val $D)))\n            (newline) )\n         ((== ZERO X) (prName 11985897847159960594))\n         ((pair X)\n            (unless (ge0 (compare V X))\n               (err Exe V ($ \"Inadequate PicoLisp version\") null) ) ) )\n      V ) )\n\n(end \"base.map\" \"lib.c\")\n"
  },
  {
    "path": "src/pico.h",
    "content": "// 27sep25 Software Lab. Alexander Burger\n\n#include <stdint.h>\n#include <string.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <limits.h>\n#include <stdio.h>\n#include <errno.h>\n#include <fcntl.h>\n#include <poll.h>\n#include <math.h>\n#include <time.h>\n#include <signal.h>\n#include <setjmp.h>\n#include <dirent.h>\n#include <termios.h>\n#include <sys/types.h>\n#include <sys/wait.h>\n#include <sys/time.h>\n#include <sys/stat.h>\n#include <sys/socket.h>\n#include <sys/resource.h>\n\ntypedef void (*sighandler_t)(int);\n\n// Lisp data access\ntypedef uint64_t any;\n\n#define cnt(x) ((x) & 2)\n#define num(x) ((x) & 6)\n#define sym(x) ((x) & 8)\n#define sign(x) ((x) & 8)\n#define atom(x) ((x) & 15)\n\n#define car(x) (*(uint64_t*)(x))\n#define cdr(x) (*(uint64_t*)((x) + 8))\n#define set(p,x) (*(uint64_t*)(p) = (x))\n#define val(x) (*(uint64_t*)(x))\n#define dig(x) ((x) - 4)\n#define big(x) ((x) + 4)\n#define tail(x) ((x) - 8)\n\nany name(any);\nany number(any);\nany length(any);\nany box64(any);\n\nextern uint64_t SymTab[];\n#define Nil (0+1)\n// Sync src/glob.l 'T'\n#define T (17*2+1)\n#define S (18*2+1)\n#define P (19*2+1)\n#define N (20*2+1)\n#define U (21*2+1)\n#define I (22*2+1)\n#define W (23*2+1)\n#define C (24*2+1)\n#define B (25*2+1)\n\nuint64_t boxNum(uint64_t);\nint32_t bufSize(uint64_t);\nchar *bufString(uint64_t, char*);\nuint64_t natBuf(uint64_t, char*);\nuint64_t natRetBuf(uint64_t, char**);\n\nvoid argErr(uint64_t, uint64_t) __attribute__ ((noreturn));\nvoid err(uint64_t, uint64_t, char*, char*) __attribute__ ((noreturn));\n"
  },
  {
    "path": "src/ssl.c",
    "content": "// 09nov22 Software Lab. Alexander Burger\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <errno.h>\n#include <string.h>\n#include <signal.h>\n#include <sys/stat.h>\n#include <netdb.h>\n#include <arpa/inet.h>\n#include <netinet/in.h>\n#include <sys/socket.h>\n\n#include <openssl/pem.h>\n#include <openssl/ssl.h>\n#include <openssl/err.h>\n#include <openssl/x509v3.h>\n\ntypedef enum {NO,YES} bool;\n\nstatic bool Safe, Hold, Done;\n\nstatic char Node[40];  // 0000:0000:0000:0000:0000:0000:0000:0000\n\nstatic char Ciphers[] = \"EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH\";\n\nstatic char Get[] =\n   \"GET /%s HTTP/1.0\\r\\n\"\n   \"User-Agent: PicoLisp\\r\\n\"\n   \"Host: %s:%s\\r\\n\"\n   \"Accept-Charset: utf-8\\r\\n\\r\\n\";\n\nstatic void giveup(char *msg) {\n   fprintf(stderr, \"ssl: %s\", msg);\n   putc('\\n',stderr);\n   exit(1);\n}\n\nstatic int sslConnect(SSL *ssl, char *node, char *service) {\n   struct addrinfo hints, *lst, *p;\n   int n, fd, sd;\n   char *q;\n\n   if (strchr(node, '/')  &&  (fd = open(node, O_RDONLY)) >= 0) {\n      if ((n = read(fd, Node, sizeof(Node))) > 0) {\n         if ((q = strchr(Node, '\\n')) && q < Node+n)\n            *q = '\\0';\n         node = Node;\n      }\n      close(fd);\n   }\n   memset(&hints, 0, sizeof(hints));\n   hints.ai_family = AF_UNSPEC;\n   hints.ai_socktype = SOCK_STREAM;\n   if (getaddrinfo(node, service, &hints, &lst) == 0) {\n      for (p = lst; p; p = p->ai_next) {\n         if ((sd = socket(p->ai_family, p->ai_socktype, 0)) >= 0) {\n            if (connect(sd, p->ai_addr, p->ai_addrlen) == 0) {\n               SSL_set_fd(ssl, sd);\n               if (SSL_connect(ssl) == 1) {\n                  X509 *cert;\n\n                  freeaddrinfo(lst);\n                  if (Safe)\n                     return sd;\n                  if (cert = SSL_get_peer_certificate(ssl)) {\n                     X509_free(cert);\n                     if (SSL_get_verify_result(ssl) == X509_V_OK)\n                        return sd;\n                  }\n                  return -1;\n               }\n            }\n            close(sd);\n         }\n      }\n      freeaddrinfo(lst);\n   }\n   return -1;\n}\n\nstatic void sslClose(SSL *ssl, int sd) {\n   SSL_shutdown(ssl);\n   SSL_clear(ssl);\n   close(sd);\n}\n\nstatic bool sslFile(SSL *ssl, char *file) {\n   int fd, n;\n   char buf[BUFSIZ];\n\n   if (file[0] == '-') {\n      if (file[1] != '\\0')\n         return SSL_write(ssl, file+1, strlen(file)-1) >= 0;\n      fd = STDIN_FILENO;\n   }\n   else if ((fd = open(file, O_RDONLY)) < 0)\n      return NO;\n   while ((n = read(fd, buf, sizeof(buf))) > 0)\n      if (SSL_write(ssl, buf, n) < 0) {\n         close(fd);\n         return NO;\n      }\n   close(fd);\n   return n == 0;\n}\n\nstatic off_t lockFile(int fd) {\n   struct flock fl;\n   struct stat st;\n\n   fl.l_type = F_WRLCK;\n   fl.l_whence = SEEK_SET;\n   fl.l_start = 0;\n   fl.l_len = 0;\n   if (fcntl(fd, F_SETLKW, &fl) < 0)\n      giveup(\"Can't lock\");\n   if (fstat(fd, &st) < 0)\n      giveup(\"Can't access\");\n   if (st.st_size == 0)\n      giveup(\"Size error\");\n   return st.st_size;\n}\n\nstatic void doSigTerm(int n __attribute__((unused))) {\n   if (Hold)\n      Done = YES;\n   else\n      exit(0);\n}\n\nstatic void iSigTerm(int n) {\n   struct sigaction act;\n\n   act.sa_handler = doSigTerm;\n   sigemptyset(&act.sa_mask);\n   act.sa_flags = 0;\n   sigaction(n, &act, NULL);\n}\n\n// ssl host port [url key file]\n// ssl host port url key file dir sec [min] [dir ..]\nint main(int ac, char *av[]) {\n   bool dbg;\n   SSL_CTX *ctx;\n   SSL *ssl;\n   int i, n, sec, lim, getLen, lenLen, fd, sd;\n   char *file, *dir, *data;\n   DIR *dp;\n   struct dirent *p;\n   struct stat st;\n   off_t size, size2;\n   char get[1024], buf[4096], nm[4096], len[64];\n\n   if (dbg = strcmp(av[ac-1], \"+\") == 0)\n      --ac;\n   if (!(ac >= 3 && ac <= 6  ||  ac >= 8))\n      giveup(\"host port [url key file] | host port url key file dir sec [min] [dir ..]\");\n   if (*av[2] == '-')\n      ++av[2],  Safe = YES;\n   if (ac <= 3)\n      getLen = 0;\n   else {\n      if (strlen(Get)+strlen(av[1])+strlen(av[2])+strlen(av[3]) >= sizeof(get))\n         giveup(\"Names too long\");\n      getLen = sprintf(get, Get, av[3], av[1], av[2]);\n   }\n\n   SSL_library_init();\n   SSL_load_error_strings();\n   if (!(ctx = SSL_CTX_new(SSLv23_client_method())) || !SSL_CTX_set_default_verify_paths(ctx)) {\n      ERR_print_errors_fp(stderr);\n      giveup(\"SSL init\");\n   }\n   SSL_CTX_set_options(ctx,\n      SSL_OP_NO_SSLv2 | SSL_OP_NO_SSLv3 | SSL_OP_NO_TLSv1 |\n      SSL_OP_NO_TLSv1_1 | SSL_OP_ALL | SSL_OP_NO_COMPRESSION );\n   SSL_CTX_set_cipher_list(ctx, Ciphers);\n   ssl = SSL_new(ctx);\n   SSL_set_tlsext_host_name(ssl, av[1]);\n   if (!Safe) {\n      X509_VERIFY_PARAM *par = SSL_get0_param(ssl);\n      X509_VERIFY_PARAM_set_hostflags(par, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS);\n      X509_VERIFY_PARAM_set1_host(par, av[1], 0);\n      SSL_set_verify(ssl, SSL_VERIFY_PEER, NULL);\n   }\n\n   signal(SIGCHLD,SIG_IGN);  /* Prevent zombies */\n   signal(SIGPIPE, SIG_IGN);\n   if (ac <= 6) {\n      if (sslConnect(ssl, av[1], av[2]) < 0) {\n         ERR_print_errors_fp(stderr);\n         exit(1);\n      }\n      if (getLen  &&  SSL_write(ssl, get, getLen) < 0) {\n         ERR_print_errors_fp(stderr);\n         giveup(\"SSL GET\");\n      }\n      if (ac > 4) {\n         if (*av[4]  &&  !sslFile(ssl,av[4]))\n            giveup(\"Can't send\");\n         if (ac > 5  &&  *av[5]  &&  !sslFile(ssl,av[5]))\n            giveup(\"Can't send\");\n      }\n      if (!getLen  &&  !fork()) {\n         while ((n = read(STDIN_FILENO, buf, sizeof(buf))) > 0)\n            SSL_write(ssl, buf, n);\n         return 0;\n      }\n      while ((n = SSL_read(ssl, buf, sizeof(buf))) > 0)\n         write(STDOUT_FILENO, buf, n);\n      if (dbg)\n         ERR_print_errors_fp(stderr);\n      return 0;\n   }\n   if (!dbg) {\n      if ((n = fork()) < 0)\n         giveup(\"Can't detach\");\n      if (n)\n         return 0;\n      setsid();\n   }\n   file = av[5];\n   dir = av[6];\n   sec = atoi(av[7]);\n   iSigTerm(SIGINT);\n   iSigTerm(SIGTERM);\n   lim = 0;\n   if (ac >= 9 && *av[8]) {\n      if ((lim = atoi(av[8])) == 0) {\n         printf(\"%d\\n\", getpid());\n         fflush(stdout);\n      }\n      else {\n         iSigTerm(SIGALRM);\n         alarm(lim *= 60);\n      }\n   }\n   for (;;) {\n      if (*file && (fd = open(file, O_RDWR)) >= 0) {\n         if (fstat(fd,&st) < 0  ||  st.st_size == 0)\n            close(fd);\n         else {\n            lenLen = sprintf(len, \"%ld\\n\", size = lockFile(fd));\n            if ((data = malloc(size)) == NULL)\n               giveup(\"Can't alloc\");\n            if (read(fd, data, size) != size)\n               giveup(\"Can't read\");\n            close(fd);\n            alarm(0);\n            for (nm[0] = '\\0', i = 9;  i < ac;  ++i) {\n               if (dp = opendir(av[i])) {\n                  int max = 0;\n                  char *q;\n\n                  while (p = readdir(dp))\n                     if ((n = (int)strtol(p->d_name, &q, 10)) > max  &&  !*q)\n                        max = n;\n                  if (nm[0]) {\n                     snprintf(buf, sizeof(buf), \"%s%d\", av[i], max + 1);\n                     link(nm, buf);\n                  }\n                  else {\n                     snprintf(nm, sizeof(nm), \"%s%d\", av[i], max + 1);\n                     if ((fd = open(nm, O_CREAT|O_EXCL|O_WRONLY, 0666)) < 0)\n                        nm[0] = '\\0';\n                     else {\n                        write(fd, data, size);\n                        close(fd);\n                     }\n                  }\n                  closedir(dp);\n               }\n            }\n            if (!*av[4])\n               goto truncate;\n            for (;;) {\n               if ((sd = sslConnect(ssl, av[1], av[2])) >= 0) {\n                  if (SSL_write(ssl, get, getLen) == getLen  &&\n                        sslFile(ssl,av[4])  &&                    // key\n                        SSL_write(ssl, len, lenLen) == lenLen  && // length\n                        SSL_write(ssl, data, size) == size  &&    // data\n                        SSL_write(ssl, \"T\", 1) == 1  &&           // ack\n                        SSL_read(ssl, buf, 1) == 1  &&  buf[0] == 'T' ) {\n                     sslClose(ssl,sd);\n                  truncate:\n                     if ((fd = open(file, O_RDWR)) < 0)\n                        giveup(\"Can't re-open\");\n                     if (size2 = lockFile(fd) - size) {\n                        if ((data = realloc(data, size2)) == NULL)\n                           giveup(\"Can't re-alloc\");\n                        if (pread(fd, data, size2, size) != size2)\n                           giveup(\"Can't re-read\");\n                        Hold = YES;\n                        if (pwrite(fd, data, size2, 0) != size2)\n                           giveup(\"Can't re-write\");\n                     }\n                     if (ftruncate(fd, size2) < 0)\n                        giveup(\"Can't truncate\");\n                     close(fd);\n                     Hold = NO;\n                     if (Done)\n                        exit(0);\n                     break;\n                  }\n                  sslClose(ssl,sd);\n               }\n               if (dbg)\n                  ERR_print_errors_fp(stderr);\n               sleep(sec);\n            }\n            alarm(lim);\n            free(data);\n         }\n      }\n      if (*av[4] && *dir && (dp = opendir(dir))) {\n         char *pwd = getcwd(NULL, 0);\n\n         while (p = readdir(dp)) {\n            if (p->d_name[0] == '=') {\n               snprintf(nm, sizeof(nm), \"%s%s\", dir, p->d_name);\n               if ((n = readlink(nm, buf, sizeof(buf))) > 0)\n                  if (stat(nm, &st) < 0)\n                     unlink(nm);\n                  else {\n                     buf[n] = '\\0';\n                     for (i = 9;  i < ac;  ++i) {\n                        if (chdir(av[i]) == 0) {\n                           char *q = av[i];\n                           char nm2[4096];\n\n                           nm2[0] = '\\0';\n                           do\n                              if (*q == '/')\n                                 strcat(nm2, \"../\");\n                           while (*++q);\n                           strcat(nm2, dir);\n                           strcat(nm2, buf);\n                           symlink(nm2, p->d_name);\n                           chdir(pwd);\n                        }\n                     }\n                     lenLen = sprintf(len, \"%ld\\n\", st.st_size);\n                     buf[n++] = '\\n';\n                     alarm(lim);\n                     if ((sd = sslConnect(ssl, av[1], av[2])) >= 0) {\n                        if (SSL_write(ssl, get, getLen) == getLen  &&\n                              sslFile(ssl,av[4])  &&                    // key\n                              SSL_write(ssl, buf, n) == n  &&           // path\n                              SSL_write(ssl, len, lenLen) == lenLen  && // length\n                              sslFile(ssl, nm)  &&                      // file\n                              SSL_write(ssl, \"T\", 1) == 1  &&           // ack\n                              SSL_read(ssl, buf, 1) == 1  &&  buf[0] == 'T' )\n                           unlink(nm);\n                        sslClose(ssl,sd);\n                     }\n                     if (dbg)\n                        ERR_print_errors_fp(stderr);\n                  }\n            }\n         }\n         free(pwd);\n         closedir(dp);\n      }\n      sleep(sec);\n   }\n}\n"
  },
  {
    "path": "src/subr.l",
    "content": "# 31mar26 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (chkA chkD makeErr)\n\n(inline chkA (X)\n   (car (needVar Exe X)) )\n\n(inline chkD (X)\n   (cdr (needLst Exe X)) )\n\n(de NIL makeErr (Exe)\n   (err Exe 0 ($ \"Not making\") null) )\n\n# (car 'var) -> any\n(de _Car (Exe)\n   (chkA (eval (cadr Exe))) )\n\n# (cdr 'lst) -> any\n(de _Cdr (Exe)\n   (chkD (eval (cadr Exe))) )\n\n(de _Caar (Exe)\n   (chkA (chkA (eval (cadr Exe)))) )\n\n(de _Cadr (Exe)\n   (chkA (chkD (eval (cadr Exe)))) )\n\n(de _Cdar (Exe)\n   (chkD (chkA (eval (cadr Exe)))) )\n\n(de _Cddr (Exe)\n   (chkD (chkD (eval (cadr Exe)))) )\n\n(de _Caaar (Exe)\n   (chkA (chkA (chkA (eval (cadr Exe))))) )\n\n(de _Caadr (Exe)\n   (chkA (chkA (chkD (eval (cadr Exe))))) )\n\n(de _Cadar (Exe)\n   (chkA (chkD (chkA (eval (cadr Exe))))) )\n\n(de _Caddr (Exe)\n   (chkA (chkD (chkD (eval (cadr Exe))))) )\n\n(de _Cdaar (Exe)\n   (chkD (chkA (chkA (eval (cadr Exe))))) )\n\n(de _Cdadr (Exe)\n   (chkD (chkA (chkD (eval (cadr Exe))))) )\n\n(de _Cddar (Exe)\n   (chkD (chkD (chkA (eval (cadr Exe))))) )\n\n(de _Cdddr (Exe)\n   (chkD (chkD (chkD (eval (cadr Exe))))) )\n\n(de _Caaaar (Exe)\n   (chkA (chkA (chkA (chkA (eval (cadr Exe)))))) )\n\n(de _Caaadr (Exe)\n   (chkA (chkA (chkA (chkD (eval (cadr Exe)))))) )\n\n(de _Caadar (Exe)\n   (chkA (chkA (chkD (chkA (eval (cadr Exe)))))) )\n\n(de _Caaddr (Exe)\n   (chkA (chkA (chkD (chkD (eval (cadr Exe)))))) )\n\n(de _Cadaar (Exe)\n   (chkA (chkD (chkA (chkA (eval (cadr Exe)))))) )\n\n(de _Cadadr (Exe)\n   (chkA (chkD (chkA (chkD (eval (cadr Exe)))))) )\n\n(de _Caddar (Exe)\n   (chkA (chkD (chkD (chkA (eval (cadr Exe)))))) )\n\n(de _Cadddr (Exe)\n   (chkA (chkD (chkD (chkD (eval (cadr Exe)))))) )\n\n(de _Cdaaar (Exe)\n   (chkD (chkA (chkA (chkA (eval (cadr Exe)))))) )\n\n(de _Cdaadr (Exe)\n   (chkD (chkA (chkA (chkD (eval (cadr Exe)))))) )\n\n(de _Cdadar (Exe)\n   (chkD (chkA (chkD (chkA (eval (cadr Exe)))))) )\n\n(de _Cdaddr (Exe)\n   (chkD (chkA (chkD (chkD (eval (cadr Exe)))))) )\n\n(de _Cddaar (Exe)\n   (chkD (chkD (chkA (chkA (eval (cadr Exe)))))) )\n\n(de _Cddadr (Exe)\n   (chkD (chkD (chkA (chkD (eval (cadr Exe)))))) )\n\n(de _Cdddar (Exe)\n   (chkD (chkD (chkD (chkA (eval (cadr Exe)))))) )\n\n(de _Cddddr (Exe)\n   (chkD (chkD (chkD (chkD (eval (cadr Exe)))))) )\n\n# (nth 'lst 'cnt ..) -> lst\n(de _Nth (Exe)\n   (let (X (cdr Exe)  Y (save (eval (++ X))))\n      (loop\n         (? (atom Y) Y)\n         (let C (evCnt Exe X)\n            (? (lt0 (dec 'C)) $Nil)\n            (while (ge0 (dec 'C))\n               (shift Y) ) )\n         (? (atom (shift X)) Y)\n         (setq Y (car Y)) ) ) )\n\n# (con 'lst 'any) -> any\n(de _Con (Exe)\n   (let X (cdr Exe)\n      (set 2\n         (save (needPair Exe (eval (++ X))))\n         (eval (car X)) ) ) )\n\n# (cons 'any ['any ..]) -> lst\n(de _Cons (Exe)\n   (let\n      (X (cdr Exe)\n         Y (cons (eval (car X)) $Nil)\n         R (save Y) )\n      (while (pair (cdr (shift X)))\n         (setq Y\n            (set 2 Y (cons (eval (car X)) $Nil)) ) )\n      (set 2 Y (eval (car X)))\n      R ) )\n\n# (conc 'lst ..) -> lst\n(de _Conc (Exe)\n   (let\n      (X (cdr Exe)\n         Y (eval (car X))\n         R (save Y) )\n      (while (pair (shift X))\n         (let Z (eval (car X))\n            (if (atom Y)\n               (setq Y (setq R (safe Z)))\n               (while (pair (cdr Y))\n                  (setq Y @) )\n               (set 2 Y Z) ) ) )\n      R ) )\n\n# (circ 'any ..) -> lst\n(de _Circ (Exe)\n   (let\n      (X (cdr Exe)\n         Y (cons (eval (car X)) $Nil)\n         R (save Y) )\n      (while (pair (shift X))\n         (setq Y\n            (set 2 Y (cons (eval (car X)) $Nil)) ) )\n      (set 2 Y R) ) )\n\n# (rot 'lst ['cnt]) -> lst\n(de _Rot (Exe)\n   (let (X (cdr Exe)  R (eval (car X)))\n      (when (pair R)\n         (let (Y R  A (++ Y))\n            (if (pair (shift X))\n               (let N (save R (evCnt Exe X))\n                  (while (and (pair Y) (gt0 (dec 'N)))\n                     (let B (car Y)\n                        (set Y A)\n                        (setq A B) )\n                     (? (== R (shift Y))) )\n                  (set R A) )\n               (while (pair Y)\n                  (let B (car Y)\n                     (set Y A)\n                     (setq A B) )\n                  (? (== R (shift Y))) )\n               (set R A) ) ) )\n         R ) )\n\n# (list 'any ['any ..]) -> lst\n(de _List (Exe)\n   (let\n      (X (cdr Exe)\n         Y (cons (eval (car X)) $Nil)\n         R (save Y) )\n      (while (pair (shift X))\n         (setq Y\n            (set 2 Y (cons (eval (car X)) $Nil)) ) )\n      R ) )\n\n# (need 'cnt ['lst ['any]]) -> lst\n# (need 'cnt ['num|sym]) -> lst\n(de _Need (Exe)\n   (let\n      (X (cdr Exe)\n         C (evCnt Exe X)\n         R (save (eval (car (shift X))))\n         Y\n         (save\n            (if (or (pair R) (nil? R))\n               (eval (cadr X))\n               (prog1\n                  R\n                  (setq R $Nil) ) ) )\n         Z R )\n      (when C\n         (cond\n            ((gt0 C)\n               (while (pair Z)\n                  (dec 'C)\n                  (shift Z) )\n               (while (ge0 (dec 'C))\n                  (setq R (safe (cons Y R))) ) )\n            (T\n               (if (atom R)\n                  (setq Z (setq R (safe (cons Y $Nil))))\n                  (while (pair (cdr Z))\n                     (inc 'C)\n                     (shift Z) ) )\n               (while (lt0 (inc 'C))\n                  (setq Z (set 2 Z (cons Y $Nil))) ) ) ) )\n      R ) )\n\n# (range 'num1 'num2 ['num3]) -> lst\n(de _Range (Exe)\n   (let\n      (X (cdr Exe)\n         N (needNum Exe (eval (++ X)))\n         R (save (cons N $Nil))\n         Lim (save (needNum Exe (eval (++ X))))\n         Inc\n         (if (nil? (eval (car X)))\n            ONE\n            (save (needNum Exe @)) ) )\n      (when (or (== Inc ZERO) (sign? Inc))\n         (argErr Exe Inc) )\n      (let P R\n         (if (le0 (cmpNum N Lim))\n            (while (le0 (cmpNum (setq N (adds N Inc)) Lim))\n               (setq P (set 2 P (cons N $Nil))) )\n            (while (ge0 (cmpNum (setq N (subs N Inc)) Lim))\n               (setq P (set 2 P (cons N $Nil))) ) ) )\n      R ) )\n\n# (full 'any) -> bool\n(de _Full (Exe)\n   (let X (eval (cadr Exe))\n      (loop\n         (? (atom X) $T)\n         (? (nil? (car X)) $Nil)\n         (shift X) ) ) )\n\n# (make .. [(made 'lst ..)] .. [(link 'any ..)] ..) -> any\n(de _Make (Exe)\n   (let\n      (Make (val $Make)\n         Yoke (val $Yoke)\n         R (link (push $Nil NIL)) )\n      (set $Make (set $Yoke R))\n      (exec (cdr Exe))\n      (set $At2\n         (if (pair (val R))\n            (ofs (val $Make) -1)\n            $Nil ) )\n      (set $Make Make  $Yoke Yoke)\n      (pop R) ) )\n\n# (made ['lst1 ['lst2]]) -> lst\n(de _Made (Exe)\n   (let X (cdr Exe)\n      (unless (val $Make)\n         (makeErr Exe) )\n      (when (pair X)\n         (if (atom (set (val $Yoke) (eval (++ X))))\n            (set $Make (val $Yoke))\n            (let Y (eval (car X))\n               (when (atom Y)\n                  (setq Y (val (val $Yoke)))\n                  (while (pair (cdr Y))\n                     (setq Y @) ) )\n               (set $Make (ofs Y 1)) ) ) )\n      (val (val $Yoke)) ) )\n\n# (chain 'any ..) -> any\n(de _Chain (Exe)\n   (let X (cdr Exe)\n      (unless (val $Make)\n         (makeErr Exe) )\n      (loop\n         (let Y (set (val $Make) (eval (++ X)))\n            (when (pair Y)\n               (let Z Y\n                  (while (pair (cdr Z))\n                     (setq Z @) )\n                  (set $Make (ofs Z 1)) ) )\n            (? (atom X) Y) ) ) ) )\n\n# (link 'any ..) -> any\n(de _Link (Exe)\n   (let X (cdr Exe)\n      (unless (val $Make)\n         (makeErr Exe) )\n      (loop\n         (let Y (eval (++ X))\n            (set $Make\n               (ofs\n                  (set (val $Make) (cons Y $Nil))\n                  1 ) )\n            (? (atom X) Y) ) ) ) )\n\n# (yoke 'any ..) -> any\n(de _Yoke (Exe)\n   (let X (cdr Exe)\n      (unless (val $Make)\n         (makeErr Exe) )\n      (loop\n         (let Y (eval (++ X))\n            (let P (val $Yoke)\n               (set P (cons Y (val P))) )\n            (? (atom X)\n               (let Z (val $Make)\n                  (while (pair (val Z))\n                     (setq Z (ofs @ 1)) )\n                  (set $Make Z) )\n               Y ) ) ) ) )\n\n# (copy 'any) -> any\n(de _Copy (Exe)\n   (let X (cdr Exe)\n      (if (atom (setq X (eval (car X))))\n         X\n         (let\n            (Y (cons (car X) (cdr X))\n               R (save Y)\n               Z X )\n            (while (pair (setq X (cdr Y)))\n               (? (== X Z) (set 2 Y R))\n               (setq Y\n                  (set 2 Y (cons (car X) (cdr X))) ) )\n            R ) ) ) )\n\n# (mix 'lst cnt|'any ..) -> lst\n(de _Mix (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))\n      (nond\n         ((or (pair Y) (nil? Y)) Y)\n         ((pair (shift X)) $Nil)\n         (NIL\n            (save Y\n               (let\n                  (Z\n                     (cons\n                        (if (cnt? (car X))\n                           (nth @ Y)\n                           (eval @) )\n                        $Nil )\n                     R (save Z) )\n                  (while (pair (shift X))\n                     (setq Z\n                        (set 2 Z\n                           (cons\n                              (if (cnt? (car X))\n                                 (nth @ Y)\n                                 (eval @) )\n                              $Nil ) ) ) )\n                  R ) ) ) ) ) )\n\n# (append 'lst ..) -> lst\n(de _Append (Exe)\n   (let X Exe\n      (loop\n         (? (atom (cdr (shift X)))\n            (eval (car X)) )\n         (? (pair (eval (car X)))\n            (let\n               (Y @\n                  R (save (cons (++ Y) Y))\n                  Z R )\n               (while (pair Y)\n                  (setq Z (set 2 Z (cons (++ Y) Y))) )\n               (while (pair (cdr (shift X)))\n                  (save (setq Y (eval (car X)))\n                     (while (pair Y)\n                        (setq Z (set 2 Z (cons (++ Y) Y))) ) ) )\n               (set 2 Z (eval (car X)))\n               R ) ) ) ) )\n\n# (delete 'any 'lst ['flg]) -> lst\n(de _Delete (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         L (save (eval (++ X)))\n         F (nil? (eval (car X))) )\n      (loop\n         (? (atom L) L)\n         (? (not (equal Y (car L)))\n            (let R (save (setq X (cons (car L) $Nil)))\n               (loop\n                  (? (atom (shift L))\n                     (set 2 X L) )\n                  (ifn (equal Y (car L))\n                     (setq X (set 2 X (cons (car L) $Nil)))\n                     (? F (set 2 X (cdr L))) ) )\n               R ) )\n         (shift L)\n         (? F L) ) ) )\n\n# (delq 'any 'lst ['flg]) -> lst\n(de _Delq (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         L (save (eval (++ X)))\n         F (nil? (eval (car X))) )\n      (loop\n         (? (atom L) L)\n         (? (<> Y (car L))\n            (let R (save (setq X (cons (car L) $Nil)))\n               (loop\n                  (? (atom (shift L))\n                     (set 2 X L) )\n                  (if (<> Y (car L))\n                     (setq X (set 2 X (cons (car L) $Nil)))\n                     (? F (set 2 X (cdr L))) ) )\n               R ) )\n         (shift L)\n         (? F L) ) ) )\n\n# (replace 'lst 'any1 'any2 ..) -> lst\n(de _Replace (Exe)\n   (let (X (cdr Exe)  L (save (eval (car X))))\n      (if (atom L)\n         @\n         (let (A $Nil  N 0  R (push NIL NIL))\n            (while (pair (shift X))\n               (link (push (eval (++ X)) NIL))\n               (setq A (link (push (eval (car X)) NIL)))\n               (inc 'N) )\n            (let (Y (++ L)  Z A  I N)\n               (until (lt0 (dec 'I))\n                  (let (V (++ Z)  K (++ Z))\n                     (? (equal Y K)\n                        (setq Y V) ) ) )\n               (let P (set (link R) (cons Y $Nil))\n                  (while (pair L)\n                     (setq Y (++ L)  Z A  I N)\n                     (until (lt0 (dec 'I))\n                        (let (V (++ Z)  K (++ Z))\n                           (? (equal Y K)\n                              (setq Y V) ) ) )\n                     (setq P (set 2 P (cons Y $Nil))) ) ) )\n            (val R) ) ) ) )\n\n# (insert 'cnt 'lst 'any) -> lst\n(de _Insert (Exe)\n   (let\n      (X (cdr Exe)\n         N (evCnt Exe X)\n         L (save (eval (car (shift X)))) )\n      (setq X (eval (car (shift X))))\n      (if (or (atom L) (le0 (dec 'N)))\n         (cons X L)\n         (let (Y (cons (car L) $Nil)  R (save Y))\n            (while (and (pair (shift L)) (dec 'N))\n               (setq Y (set 2 Y (cons (car L) $Nil))) )\n            (set 2 Y (cons X L))\n            R ) ) ) )\n\n# (remove 'cnt 'lst) -> lst\n(de _Remove (Exe)\n   (let\n      (X (cdr Exe)\n         N (evCnt Exe X)\n         L (save (eval (car (shift X)))) )\n      (cond\n         ((or (atom L) (lt0 (dec 'N))) L)\n         ((=0 N) (cdr L))\n         (T\n            (let (Y (cons (car L) $Nil)  R (save Y))\n               (loop\n                  (? (atom (shift L))\n                     (set 2 Y L) )\n                  (? (=0 (dec 'N))\n                     (set 2 Y (cdr L)) )\n                  (setq Y (set 2 Y (cons (car L) $Nil))) )\n               R ) ) ) ) )\n\n# (place 'cnt 'lst 'any) -> lst\n(de _Place (Exe)\n   (let\n      (X (cdr Exe)\n         N (evCnt Exe X)\n         L (save (eval (car (shift X))))\n         Y (save (eval (car (shift X)))) )\n      (cond\n         ((atom L) (cons Y $Nil))\n         ((le0 (dec 'N)) (cons Y (cdr L)))\n         (T\n            (let (Z (cons (car L) $Nil)  R (save Z))\n               (loop\n                  (? (atom (shift L))\n                     (set 2 Z (cons Y L)) )\n                  (? (=0 (dec 'N))\n                     (set 2 Z (cons Y (cdr L))) )\n                  (setq Z (set 2 Z (cons (car L) $Nil))) )\n               R ) ) ) ) )\n\n# (strip 'any) -> any\n(de _Strip (Exe)\n   (let X (eval (cadr Exe))\n      (while (and (pair X) (== $Quote (car X)))\n         (? (== (cdr X) X))  # Circular\n         (setq X @) )\n      X ) )\n\n# (split 'lst 'any ..) -> lst\n(de _Split (Exe)\n   (let (X (cdr Exe)  L (save (eval (car X))))\n      (if (atom L)\n         @\n         (let (A $Nil  N 0)\n            (while (pair (shift X))\n               (setq A (link (push (eval (car X)) NIL)))\n               (inc 'N) )\n            (let\n               (P $Nil\n                  R (link (push P NIL))\n                  Q $Nil\n                  S (link (push Q NIL)) )\n               (loop\n                  (let (Y (++ L)  Z A  I N)\n                     (loop\n                        (? (lt0 (dec 'I))  # Not a delimiter\n                           (let C (cons Y $Nil)\n                              (setq Q\n                                 (if (nil? Q)\n                                    (set S C)\n                                    (set 2 Q C) ) ) ) )\n                        (? (equal Y (++ Z))  # Delimiter\n                           (let C (cons (val S) $Nil)\n                              (setq P\n                                 (if (nil? P)\n                                    (set R C)\n                                    (set 2 P C) ) ) )\n                           (setq Q (set S $Nil)) ) ) )\n                  (? (atom L)) )\n               (let C (cons (val S) $Nil)\n                  (if (nil? P)\n                     C\n                     (set 2 P C)\n                     (val R) ) ) ) ) ) ) )\n\n# (reverse 'lst) -> lst\n(de _Reverse (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (car X)))\n         Z $Nil )\n      (while (pair Y)\n         (setq Z (cons (++ Y) Z)) )\n      Z ) )\n\n# (flip 'lst ['cnt]) -> lst\n(de _Flip (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))\n      (if (atom Y)\n         Y\n         (let Z (cdr Y)\n            (cond\n               ((atom Z) Y)\n               ((atom (shift X))\n                  (set 2 Y $Nil)\n                  (loop\n                     (setq X (cdr Z))\n                     (set 2 Z Y)\n                     (? (atom X) Z)\n                     (setq Y Z  Z X) ) )\n               (T\n                  (let N (save Y (evCnt Exe X))\n                     (if (le0 (dec 'N))\n                        Y\n                        (set 2 Y (cdr Z)  2 Z Y)\n                        (until\n                           (or\n                              (=0 (dec 'N))\n                              (atom (setq X (cdr Y))) )\n                           (set 2 Y (cdr X)  2 X Z)\n                           (setq Z X) )\n                        Z ) ) ) ) ) ) ) )\n\n(local) trim\n\n(de trim (X)\n   (if (atom X)\n      X\n      (stkChk 0)\n      (let Y (trim (cdr X))\n         (if (and (nil? Y) (isBlank (car X)))\n            $Nil\n            (cons (car X) Y) ) ) ) )\n\n# (trim 'lst) -> lst\n(de _Trim (Exe)\n   (trim (save (eval (cadr Exe)))) )\n\n# (clip 'lst) -> lst\n(de _Clip (Exe)\n   (let (X (cdr Exe)  Y (eval (car X)))\n      (while (and (pair Y) (isBlank (car Y)))\n         (shift Y) )\n      (trim (save Y)) ) )\n\n# (head 'cnt|lst 'lst) -> lst\n(de _Head (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((nil? Y) Y)\n         ((pair Y)\n            (save Y\n               (let (Z Y  L (eval (car X)))\n                  (loop\n                     (?\n                        (or\n                           (atom L)\n                           (not (equal (car Z) (car L))) )\n                        $Nil )\n                     (? (atom (shift Z)) Y)\n                     (shift L) ) ) ) )\n         ((=0 (xCnt Exe Y)) $Nil)\n         (T\n            (let (N @  L (eval (car X)))\n               (cond\n                  ((atom L) L)\n                  ((and\n                        (lt0 N)\n                        (le0 (inc 'N (length L))) )\n                     $Nil )\n                  (T\n                     (save L\n                        (let (Z (cons (car L) $Nil)  R (save Z))\n                           (while (and (dec 'N) (pair (shift L)))\n                              (setq Z\n                                 (set 2 Z (cons (car L) $Nil)) ) )\n                           R ) ) ) ) ) ) ) ) )\n\n# (tail 'cnt|lst 'lst) -> lst\n(de _Tail (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((nil? Y) Y)\n         ((pair Y)\n            (save Y\n               (let L (eval (car X))\n                  (loop\n                     (? (atom L) $Nil)\n                     (? (equal L Y) Y)\n                     (? (atom (shift L)) $Nil) ) ) ) )\n         ((=0 (xCnt Exe Y)) $Nil)\n         (T\n            (let (N @  L (eval (car X)))\n               (cond\n                  ((atom L) L)\n                  ((lt0 N)\n                     (loop\n                        (shift L)\n                        (? (=0 (inc 'N)) L) ) )\n                  (T\n                     (let Z L\n                        (loop\n                           (? (=0 (dec 'N)))\n                           (? (atom (shift Z))) )\n                        (while (pair (shift Z))\n                           (shift L) )\n                        L ) ) ) ) ) ) ) )\n\n# (stem 'lst 'any ..) -> lst\n(de _Stem (Exe)\n   (let (X (cdr Exe)  L (save (eval (++ X))))\n      (if (atom X)\n         L\n         (let (R L  N 1  A T)\n            (loop\n               (setq A (link (push (eval (car X)) NIL)))\n               (? (atom (shift X)))\n               (inc 'N) )\n            (loop\n               (let (P A  I N)\n                  (loop\n                     (? (equal (car L) (car P))\n                        (setq R (cdr L)) )\n                     (? (=0 (dec 'I)))\n                     (shift P) ) )\n               (? (atom (shift L))) )\n            R ) ) ) )\n\n# (fin 'any) -> num|sym\n(de _Fin (Exe)\n   (let X (eval (cadr Exe))\n      (while (pair X)\n         (shift X) )\n      X ) )\n\n# (last 'lst) -> any\n(de _Last (Exe)\n   (let X (eval (cadr Exe))\n      (if (atom X)\n         X\n         (while (pair (cdr X))\n            (setq X @) )\n         (car X) ) ) )\n\n# (== 'any ..) -> flg\n(de _Eq (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (? (<> Y (eval (car X))) $Nil) ) ) )\n\n# (n== 'any ..) -> flg\n(de _Neq (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $Nil)\n         (? (<> Y (eval (car X))) $T) ) ) )\n\n# (= 'any ..) -> flg\n(de _Equal (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (? (not (equal Y (eval (car X)))) $Nil) ) ) )\n\n# (<> 'any ..) -> flg\n(de _Nequal (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $Nil)\n         (? (not (equal Y (eval (car X)))) $T) ) ) )\n\n# (=0 'any) -> 0 | NIL\n(de _Eq0 (Exe)\n   (if (== (eval (cadr Exe)) ZERO) @ $Nil) )\n\n# (=1 'any) -> 1 | NIL\n(de _Eq1 (Exe)\n   (if (== (eval (cadr Exe)) ONE) @ $Nil) )\n\n# (=T 'any) -> flg\n(de _EqT (Exe)\n   (if (t? (eval (cadr Exe))) @ $Nil) )\n\n# (n0 'any) -> flg\n(de _Neq0 (Exe)\n   (if (== (eval (cadr Exe)) ZERO) $Nil $T) )\n\n# (nT 'any) -> flg\n(de _NeqT (Exe)\n   (if (t? (eval (cadr Exe))) $Nil $T) )\n\n# (< 'any ..) -> flg\n(de _Lt (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (let Z (eval (car X))\n            (? (ge0 (compare Y Z)) $Nil)\n            (setq Y (safe Z)) ) ) ) )\n\n# (<= 'any ..) -> flg\n(de _Le (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (let Z (eval (car X))\n            (? (gt0 (compare Y Z)) $Nil)\n            (setq Y (safe Z)) ) ) ) )\n\n# (> 'any ..) -> flg\n(de _Gt (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (let Z (eval (car X))\n            (? (le0 (compare Y Z)) $Nil)\n            (setq Y (safe Z)) ) ) ) )\n\n# (>= 'any ..) -> flg\n(de _Ge (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (loop\n         (? (atom (shift X)) $T)\n         (let Z (eval (car X))\n            (? (lt0 (compare Y Z)) $Nil)\n            (setq Y (safe Z)) ) ) ) )\n\n# (max 'any1 'any2 ..) -> any\n# (max 'lst) -> any\n(de _Max (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((pair X)\n            (let R (save Y)\n               (loop\n                  (let Z (eval (car X))\n                     (when (gt0 (compare Z R))\n                        (setq R (safe Z)) ) )\n                  (? (atom (shift X)) R) ) ) )\n         ((pair Y)\n            (let R (car Y)\n               (while (pair (shift Y))\n                  (when (gt0 (compare (car Y) R))\n                     (setq R (car Y)) ) )\n               R ) )\n         (T Y) ) ) )\n\n# (min 'any1 'any2 ..) -> any\n# (min 'lst) -> any\n(de _Min (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((pair X)\n            (let R (save Y)\n               (loop\n                  (let Z (eval (car X))\n                     (when (lt0 (compare Z R))\n                        (setq R (safe Z)) ) )\n                  (? (atom (shift X)) R) ) ) )\n         ((pair Y)\n            (let R (car Y)\n               (while (pair (shift Y))\n                  (when (lt0 (compare (car Y) R))\n                     (setq R (car Y)) ) )\n               R ) )\n         (T Y) ) ) )\n\n# (atom 'any) -> flg\n(de _Atom (Exe)\n   (if (atom (eval (cadr Exe))) $T $Nil) )\n\n# (pair 'any) -> any\n(de _Pair (Exe)\n   (if (pair (eval (cadr Exe))) @ $Nil) )\n\n# (circ? 'any) -> any\n(de _CircQ (Exe)\n   (if (circ (eval (cadr Exe))) @ $Nil) )\n\n# (lst? 'any) -> flg\n(de _LstQ (Exe)\n   (if (or (pair (eval (cadr Exe))) (nil? @))\n      $T\n      $Nil ) )\n\n# (num? 'any) -> num | NIL\n(de _NumQ (Exe)\n   (if (num? (eval (cadr Exe))) @ $Nil) )\n\n# (sym? 'any) -> flg\n(de _SymQ (Exe)\n   (if (symb? (eval (cadr Exe)))\n      $T\n      $Nil ) )\n\n# (flg? 'any) -> flg\n(de _FlgQ (Exe)\n   (if (or (t? (eval (cadr Exe))) (nil? @))\n      $T\n      $Nil ) )\n\n# (member 'any 'lst) -> any\n(de _Member (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z)\n            (if (equal Y Z) Z $Nil) )\n         (? (equal Y (car Z)) Z)\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (memq 'any 'lst) -> any\n(de _Memq (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z)\n            (if (== Y Z) Z $Nil) )\n         (? (== Y (car Z)) Z)\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (mmeq 'lst 'lst) -> any\n(de _Mmeq (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X)) )\n      (while (pair Y)\n         (let (U (++ Y)  V Z)\n            (while (pair V)\n               (when (== U (car V))\n                  (ret V) )\n               (when (== Z (shift V))  # Hit head\n                  (ret $Nil) ) )\n            (? (== U V) V) ) )\n      $Nil ) )\n\n# (sect 'lst 'lst) -> lst\n(de _Sect (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (save (eval (car X)))\n         P 0\n         R (link (push $Nil NIL)) )\n      (while (pair Y)\n         (let U (++ Y)\n            (when (member U Z)\n               (let V (cons U $Nil)\n                  (setq P\n                     (if P\n                        (set 2 P V)\n                        (set R V) ) ) ) ) ) )\n      (val R) ) )\n\n# (diff 'lst 'lst) -> lst\n(de _Diff (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (save (eval (car X)))\n         P 0\n         R (link (push $Nil NIL)) )\n      (while (pair Y)\n         (let U (++ Y)\n            (unless (member U Z)\n               (let V (cons U $Nil)\n                  (setq P\n                     (if P\n                        (set 2 P V)\n                        (set R V) ) ) ) ) ) )\n      (val R) ) )\n\n# (index 'any 'lst) -> cnt | NIL\n(de _Index (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         Cnt 1\n         U Z )\n      (loop\n         (? (atom Z) $Nil)\n         (? (equal Y (car Z)) (cnt Cnt))\n         (inc 'Cnt)\n         (? (== U (shift Z)) $Nil) ) ) )\n\n# (offset 'lst1 'lst2) -> cnt | NIL\n(de _Offset (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         Cnt 1 )\n      (loop\n         (? (atom Z) $Nil)\n         (? (equal Y Z) (cnt Cnt))\n         (inc 'Cnt)\n         (shift Z) ) ) )\n\n# (prior 'lst1 'lst2) -> lst | NIL\n(de _Prior (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X)) )\n      (when (and (pair Y) (<> Y Z))\n         (while (pair Z)\n            (when (== (cdr Z) Y)\n               (ret Z) )\n            (setq Z @) ) )\n      $Nil ) )\n\n# (length 'any) -> cnt | T\n(de _Length (Exe)\n   (let X (eval (cadr Exe))\n      (cond\n         ((num? X) (fmtNum X -1 0 0 null))\n         ((pair X)\n            (let (C ONE  Y X)\n               (loop\n                  (set X (| (car X) 1))\n                  (? (atom (shift X))  # Normal list\n                     (loop\n                        (set Y (& (car Y) -2))\n                        (? (== X (shift Y))) )\n                     C )\n                  (? (& (car X) 1)\n                     (until (== X Y)\n                        (set Y (& (car Y) -2))\n                        (shift Y) )\n                     (loop\n                        (set Y (& (car Y) -2))\n                        (? (== X (shift Y))) )\n                     $T )  # Infinite\n                  (inc 'C (hex \"10\")) ) ) )\n         ((nil? X) ZERO)\n         ((sym? (val (tail X))) ZERO)\n         (T\n            (let (C ZERO  P (push 0 (name @)))\n               (while (symChar P)\n                  (inc 'C (hex \"10\")) )\n               C ) ) ) ) )\n\n(local) (size binSize)\n\n(de size (L)\n   (let (C 1  X L  Y (car X))\n      (loop\n         (when (pair Y)\n            (stkChk 0)\n            (inc 'C (size Y)) )\n         (set X (| Y 1))\n         (? (atom (shift X))\n            (loop\n               (set L (& (car L) -2))\n               (? (== X (shift L))) )\n            C )\n         (? (& (setq Y (car X)) 1)\n            (until (== X L)\n               (set L (& (car L) -2))\n               (shift L) )\n            (loop\n               (set L (& (car L) -2))\n               (? (== X (shift L))) )\n            C )\n         (inc 'C) ) ) )\n\n(de binSize (X)\n   (cond\n      ((cnt? X)\n         (setq X (shr X 3))  # Normalize short, keep sign bit\n         (: 1\n            (let C 2  # Count significant bytes plus 1\n               (while (setq X (shr X 8))\n                  (inc 'C) )\n               C ) ) )\n      ((big? X)\n         (setq X (pos X))\n         (let C 9  # Count 8 significant bytes plus 1\n            (loop\n               (setq D (val (dig X)))\n               (? (cnt? (setq X (val (big X)))))\n               (inc 'C 8) )  # Increment count by 8\n            (setq X (int X))\n            (add D D)  # Get most significant bit of last digit\n            (setq X (+ X X @@))\n            (: 2\n               (when X\n                  (loop\n                     (inc 'C)\n                     (? (=0 (setq X (shr X 8)))) ) )\n               (if (>= C (+ 63 1))  # More than one chunk\n                  (+ C (/ (- C 64) 255) 1)\n                  C ) ) ) )\n      ((sym? X)\n         (cond\n            ((nil? X) 1)\n            ((== (name (& (val (tail X)) -9)) ZERO) 1)\n            ((cnt? (setq X @))\n               (setq X (shr (shl X 2) 6))  # Strip status bits\n               (goto 1) )\n            (T\n               (let C 9  # Count 8 significant bytes plus 1\n                  (until (cnt? (setq X (val (big X))))\n                     (inc 'C 8) )  # Increment count by 8\n                  (setq X (int X))\n                  (goto 2) ) ) ) )\n      (T\n         (let (C 2  Y X)\n            (loop\n               (inc 'C (binSize (++ X)))\n               (? (nil? X) C)\n               (? (== Y X) (inc C))  # Circular\n               (? (atom X) (+ C (binSize X))) ) ) ) ) )\n\n# (size 'any) -> cnt\n(de _Size (Exe)\n   (let X (eval (cadr Exe))\n      (cond\n         ((cnt? X)\n            (setq X (shr X 3))  # Normalize short, keep sign bit\n            (let C ONE\n               (while (setq X (shr X 8))\n                  (inc 'C (hex \"10\")) )\n               C ) )\n         ((big? X)\n            (setq X (pos X))\n            (let (C (hex \"82\")  D T)  # Count '8' significant bytes\n               (loop\n                  (setq D (val (dig X)))\n                  (? (cnt? (setq X (val (big X)))))\n                  (inc 'C (hex \"80\")) )  # Increment count by '8'\n               (setq X (int X))\n               (add D D)  # Get most significant bit of last digit\n               (when (setq X (+ X X @@))\n                  (loop\n                     (inc 'C (hex \"10\"))\n                     (? (=0 (setq X (shr X 8)))) ) )\n               C ) )\n         ((pair X) (cnt (size X)))\n         ((nil? X) ZERO)\n         ((sym? (val (tail X)))\n            (dbFetch Exe X)\n            (let\n               (C (+ (binSize (val X)) (inc BLK))  # Value\n                  Y (& (val (tail X)) -9) )\n               (while (pair Y)  # Properties\n                  (let Z (++ Y)\n                     (setq C\n                        (+ C\n                           (if (atom Z)\n                              (+ (binSize Z) 2)\n                              (+\n                                 (binSize (car Z))\n                                 (binSize (cdr Z)) ) ) ) ) ) )\n               (cnt C) ) )\n         ((== (name @) ZERO) @)\n         ((cnt? @)\n            (let (C ONE  Z (int @))\n               (while (setq Z (shr Z 8))\n                  (inc 'C (hex \"10\")) )\n               C ) )\n         (T\n            (let (C (hex \"82\")  Z @)  # Count '8' significant bytes\n               (until (cnt? (setq Z (val (big Z))))\n                  (inc 'C (hex \"80\")) )  # Increment count by '8'\n               (when (setq Z (int Z))\n                  (loop\n                     (inc 'C (hex \"10\"))\n                     (? (=0 (setq Z (shr Z 8)))) ) )\n               C ) ) ) ) )\n\n# (bytes 'any) -> cnt\n(de _Bytes (Exe)\n   (cnt (binSize (eval (cadr Exe)))) )\n\n# (assoc 'any 'lst) -> lst\n(de _Assoc (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z) $Nil)\n         (let C (car Z)\n            (? (and (pair C) (equal Y (car C))) C) )\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (rassoc 'any 'lst) -> lst\n(de _Rassoc (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z) $Nil)\n         (let C (car Z)\n            (? (and (pair C) (equal Y (cdr C))) C) )\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (asoq 'any 'lst) -> lst\n(de _Asoq (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z) $Nil)\n         (let C (car Z)\n            (? (and (pair C) (== Y (car C))) C) )\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (rasoq 'any 'lst) -> lst\n(de _Rasoq (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (eval (car X))\n         H Z )\n      (loop\n         (? (atom Z) $Nil)\n         (let C (car Z)\n            (? (and (pair C) (== Y (cdr C))) C) )\n         (? (== H (shift Z)) $Nil) ) ) )\n\n# (rank 'any 'lst ['flg]) -> lst\n(de _Rank (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (save (eval (++ X)))\n         R $Nil )\n      (if (nil? (eval (car X)))\n         (until (gt0 (compare (caar Z) Y))\n            (setq R Z)\n            (? (atom (shift Z))) )\n         (until (lt0 (compare (caar Z) Y))\n            (setq R Z)\n            (? (atom (shift Z))) ) )\n      (car R) ) )\n\n(local) match\n\n(de i1 match (Pat Dat)\n   (loop\n      (? (atom Pat)\n         (if (or (num? Pat) (<> (firstByte Pat) (char \"@\")))\n            (equal Pat Dat)\n            (set Pat Dat)\n            YES ) )\n      (stkChk 0)\n      (let X (car Pat)\n         (when (and (symb? X) (== (firstByte X) (char \"@\")))\n            (? (atom Dat)\n               (and\n                  (equal (cdr Pat) Dat)\n                  (prog (set X $Nil) YES) ) )\n            (? (match (cdr Pat) (cdr Dat))\n               (set X (cons (car Dat) $Nil))\n               YES )\n            (? (match (cdr Pat) Dat)\n               (set X $Nil)\n               YES )\n            (? (match Pat (cdr Dat))\n               (set X (cons (car Dat) (val X)))\n               YES ) )\n         (? (or (atom Dat) (not (match X (car Dat))))\n            NO ) )\n      (shift Pat)\n      (shift Dat) ) )\n\n# (match 'lst1 'lst2) -> flg\n(de _Match (Exe)\n   (let X (cdr Exe)\n      (if\n         (match\n            (save (eval (++ X)))\n            (save (eval (car X))) )\n         $T\n         $Nil ) ) )\n\n(local) (fill2 fill3)\n\n(de fill2 (X Y)\n   (cond\n      ((num? X) 0)\n      ((sym? X)\n         (let V (val X)\n            (cond\n               ((== X V) 0)  # Auto-quoting\n               ((nil? Y)\n                  (cond\n                     ((== X $At) 0)\n                     ((== (firstByte X) (char \"@\")) V)\n                     (T 0) ) )\n               ((or (== X Y) (memq X Y)) V)\n               (T 0) ) ) )\n      (T\n         (stkChk 0)\n         (let Z (++ X)\n            (if (== Z $Up)  # Expand expression\n               (let V (eval (++ X))\n                  (if (nil? V)\n                     (if (fill2 X Y) @ X)\n                     (save (setq Z V)\n                        (if (atom V)\n                           (safe (setq Z (setq V (cons V $Nil))))\n                           (while (pair (cdr V))\n                              (setq V @) ) )\n                        (set 2 V\n                           (if (fill2 X Y) @ X) )\n                        Z ) ) )\n               (cond\n                  ((fill2 Z Y)\n                     (save @\n                        (cons @ (if (fill2 X Y) @ X)) ) )\n                  ((fill2 X Y) (cons Z @))\n                  (T 0) ) ) ) ) ) )\n\n(de fill3 (X Y Z)\n   (if (atom X)\n      (if (== X Y) Z 0)\n      (stkChk 0)\n      (let A (++ X)\n         (cond\n            ((fill3 A Y Z)\n               (save @\n                  (cons @ (if (fill3 X Y Z) @ X)) ) )\n            ((fill3 X Y Z) (cons A @))\n            (T 0) ) ) ) )\n\n# (fill 'any ['sym|lst]) -> any\n# (fill 'any ['cnt|sym] 'any2) -> any\n(de _Fill (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z (save (eval (++ X))) )\n      (if\n         (if (pair X)\n            (fill3 Y Z (save (eval (car X))))\n            (fill2 Y Z) )\n         @\n         Y ) ) )\n\n(local) ($Penv $Pnl unify lup lookup uniFill uniRun)\n\n(var $Penv 0)\n(var $Pnl 0)\n\n(de i1 unify (N1 X1 N2 X2)\n   (let Penv (val $Penv)\n      (: 1\n         (when (and (symb? X1) (== (firstByte X1) (char \"@\")))\n            (let X (val Penv)\n               (while (pair (car X))\n                  (let (Y @  Z (car Y))\n                     (when (and (== N1 (car Z)) (== X1 (cdr Z)))\n                        (setq\n                           Z (cdr Y)\n                           N1 (car Z)\n                           X1 (cdr Z) )\n                        (goto 1) ) )\n                  (shift X) ) ) ) )\n      (: 2\n         (when (and (symb? X2) (== (firstByte X2) (char \"@\")))\n            (let X (val Penv)\n               (while (pair (car X))\n                  (let (Y @  Z (car Y))\n                     (when (and (== N2 (car Z)) (== X2 (cdr Z)))\n                        (setq\n                           Z (cdr Y)\n                           N2 (car Z)\n                           X2 (cdr Z) )\n                        (goto 2) ) )\n                  (shift X) ) ) ) )\n      (cond\n         ((and (== N1 N2) (equal X1 X2)) YES)\n         ((and (symb? X1) (== (firstByte X1) (char \"@\")))\n            (unless (== X1 $At)\n               (set Penv  # (((n1 . x1) . (n2 . x2)) . Penv)\n                  (cons (cons3 N1 X1 N2 X2) (val Penv)) ) )\n            YES )\n         ((and (symb? X2) (== (firstByte X2) (char \"@\")))\n            (unless (== X2 $At)\n               (set Penv  # (((n2 . x2) . (n1 . x1)) . Penv)\n                  (cons (cons3 N2 X2 N1 X1) (val Penv)) ) )\n            YES )\n         ((or (atom X1) (atom X2)) (equal X1 X2))\n         (T\n            (stkChk 0)\n            (let Env (val Penv)\n               (or\n                  (and\n                     (unify N1 (car X1) N2 (car X2))\n                     (unify N1 (cdr X1) N2 (cdr X2)) )\n                  (prog (set Penv Env) NO) ) ) ) ) ) )\n\n(de lup (N X)\n   (let Penv (val $Penv)\n      (: 1\n         (when (and (symb? X) (== (firstByte X) (char \"@\")))\n            (let V (val Penv)\n               (while (pair (car V))\n                  (let (Y @  Z (car Y))\n                     (when\n                        (and\n                           (== N (car Z))\n                           (== X (cdr Z)) )\n                        (setq\n                           Z (cdr Y)\n                           N (car Z)\n                           X (cdr Z) )\n                        (goto 1) ) )\n                  (shift V) ) ) ) ) )\n   (if\n      (or\n         (atom X)\n         (cnt? (car X))\n         (== @ $Up) )\n      X\n      (stkChk 0)\n      (let Z (save (lup N (car X)))\n         (cons Z (lup N (cdr X))) ) ) )\n\n(de lookup (N X)\n   (if\n      (and\n         (symb? (setq X (lup N X)))\n         (== (firstByte X) (char \"@\")) )\n      $Nil\n      X ) )\n\n(de uniFill (X)\n   (cond\n      ((num? X) X)\n      ((sym? X)\n         (lup (car (val (val $Pnl))) X) )\n      (T\n         (stkChk 0)\n         (let Y (save (uniFill (car X)))\n            (cons Y (uniFill (cdr X))) ) ) ) )\n\n(de uniRun (Prg)\n   (let (P (val $Bind)  Q P  Z Prg  Tos 0)\n      (loop\n         (until (atom (car Z))\n            (let U Z  # Go left\n               (setq Z @)  # Invert tree\n               (set U Tos)\n               (setq Tos U) ) )\n         (let Y (car Z)\n            (when\n               (and\n                  (symb? Y)\n                  (<> -ZERO (val Y))\n                  (== (firstByte Y) (char \"@\")) )\n               (set $Bind (setq P (push (val Y) Y P)))\n               (set Y -ZERO) ) )\n         (loop\n            (? (pair (cdr Z))  # Right subtree\n               (let U Z  # Go right\n                  (setq Z @)  # Invert tree\n                  (set 2 U Tos)\n                  (setq Tos (| U 8)) ) )\n            (let Y @  # Dotted structure symbol?\n               (when\n                  (and\n                     (symb? Y)\n                     (<> -ZERO (val Y))\n                     (== (firstByte Y) (char \"@\")) )\n                  (set $Bind (setq P (push (val Y) Y P)))\n                  (set Y -ZERO) ) )\n            (loop\n               (unless Tos\n                  (let (X P  N (car (val (val $Pnl))))\n                     (until (== Q X)\n                        (let Y (val 2 X)\n                           (set Y (lookup N Y)) )\n                        (setq X (val 3 X)) ) )\n                  (loop\n                     (let X (++ Prg)\n                        (when (atom Prg)\n                           (setq X (eval X))\n                           (until (== Q P)\n                              (set (val 2 P) (val P))  # Restore values\n                              (setq P (val 3 P)) )\n                           (set $Bind P)\n                           (ret X) )\n                        (and (pair X) (evList X)) ) ) )\n               (? (=0 (& Tos 8))  # Second visit\n                  (let U Tos\n                     (setq Tos (car U))  # TOS on up link\n                     (set U Z)\n                     (setq Z U) ) )\n               (let U (& Tos -9)  # Set second visit\n                  (setq Tos (cdr U))\n                  (set 2 U Z)\n                  (setq Z U) ) ) ) ) ) )\n\n# (prove 'lst ['lst]) -> lst\n(de _Prove (Exe)\n   (let X (cdr Exe)\n      (if (atom (eval (car X)))\n         $Nil\n         (let\n            (Q (save @)\n               Dbg (if (nil? (eval (cadr X))) 0 (save @))\n               P (prog1 (caar Q) (set Q (cdar Q)))\n               N (++ P)\n               Nl (link (push (++ P) NIL))\n               Alt (link (push (++ P) NIL))\n               Tp1 (link (push (++ P) NIL))\n               Tp2 (link (push (++ P) NIL))\n               Env (link (push P NIL))\n               E (link (push $Nil NIL))\n               At (save (val $At))\n               Penv (val $Penv)\n               Pnl (val $Pnl) )\n            (set $Penv Env  $Pnl Nl)\n            (while (or (pair (val Tp1)) (pair (val Tp2)))\n               (sigChk Exe)\n               (cond\n                  ((pair (val Alt))\n                     (set E (val Env))\n                     (ifn\n                        (unify\n                           (car (val Nl))\n                           (cdar (val Tp1))\n                           N\n                           (caar (val Alt)) )\n                        (when (atom (set Alt (cdr (val Alt))))\n                           (setq P (caar Q))\n                           (set Q (cdar Q))\n                           (setq N (++ P))\n                           (set\n                              Nl (++ P)\n                              Alt (++ P)\n                              Tp1 (++ P)\n                              Tp2 (++ P)\n                              Env P ) )\n                        (when Dbg\n                           (let Y (car (val Tp1))\n                              (when (memq (car Y) Dbg)\n                                 (let (L (get (car Y) $T)  I 1)\n                                    (until (equal (car (val Alt)) (car L))\n                                       (inc 'I)\n                                       (shift L) )\n                                    (outWord I) )\n                                 (space)\n                                 (print (uniFill Y))\n                                 (newline) ) ) )\n                        (when (pair (cdr (val Alt)))\n                           (set Q\n                              (cons\n                                 (cons N\n                                    (cons (val Nl)\n                                       (cons @\n                                          (cons (val Tp1) (cons (val Tp2) (val E))) ) ) )\n                                 (car Q) ) ) )\n                        (set\n                           Nl (cons N (val Nl))\n                           Tp2 (cons (cdr (val Tp1)) (val Tp2))\n                           Tp1 (cdar (val Alt))\n                           Alt $Nil )\n                        (inc 'N (hex \"10\")) ) )  # Increment\n                  ((atom (setq X (val Tp1)))\n                     (set\n                        Tp1 (car (val Tp2))\n                        Tp2 (cdr (val Tp2))\n                        Nl (cdr (val Nl)) ) )\n                  ((atom (car X))  # Cut operator\n                     (while\n                        (and\n                           (pair (car Q))\n                           (>= (caar @) (car (val Nl))) )\n                        (set Q (cdar Q)) )\n                     (set Tp1 (cdr X)) )\n                  ((cnt? (car @))\n                     (set E (uniRun (cdar X)))\n                     (let (I (int (caar X))  Y (val Nl))\n                        (while (gt0 (dec 'I))\n                           (shift Y) )\n                        (set\n                           Nl (cons (car Y) (val Nl))\n                           Tp2 (cons (cdr X) (val Tp2))\n                           Tp1 (val E) ) ) )\n                  ((== @ $Up)\n                     (if\n                        (and\n                           (not\n                              (nil? (set E (uniRun (cddr (car X))))) )\n                           (unify\n                              (car (val Nl))\n                              (cadr (car X))\n                              (car (val Nl))\n                              (val E) ) )\n                        (set Tp1 (cdr X))\n                        (setq P (caar Q))\n                        (set Q (cdar Q))\n                        (setq N (++ P))\n                        (set\n                           Nl (++ P)\n                           Alt (++ P)\n                           Tp1 (++ P)\n                           Tp2 (++ P)\n                           Env P ) ) )\n                  (T\n                     (let S (caar X)\n                        (when (sym? (val (tail S)))\n                           (dbFetch Exe S) )\n                        (when (atom (set Alt (get S $T)))\n                           (setq P (caar Q))\n                           (set Q (cdar Q))\n                           (setq N (++ P))\n                           (set\n                              Nl (++ P)\n                              Alt (++ P)\n                              Tp1 (++ P)\n                              Tp2 (++ P)\n                              Env P ) ) ) ) ) )\n            (set E $Nil)\n            (let Y (val Env)\n               (while (pair (cdr Y))\n                  (let Z (caar Y)\n                     (when (== (car Z) ZERO)\n                        (set E\n                           (cons\n                              (cons (shift Z) (lookup ZERO Z))\n                              (val E) ) ) ) )\n                  (shift Y) ) )\n            (set $Pnl Pnl  $Penv Penv  $At At)\n            (cond\n               ((pair (val E)) @)\n               ((pair (val Env)) $T)\n               (T $Nil) ) ) ) ) )\n\n# (-> any [cnt]) -> any\n(de _Arrow (Exe)\n   (let (X (cdr Exe)  L (val (val $Pnl)))\n      (when (cnt? (cadr X))\n         (let I (int @)\n            (while (gt0 (dec 'I))\n               (shift L) ) ) )\n      (lookup (car L) (car X)) ) )\n\n# (unify 'any) -> lst\n# (unify 'cnt) -> cnt\n(de _Unify (Exe)\n   (let\n      (X (eval (cadr Exe))\n         Pnl (val (val $Pnl))\n         N (car Pnl) )\n      (ifn (cnt? X)\n         (save X\n            (if (unify (cadr Pnl) X N X)\n               (val (val $Penv))\n               $Nil ) )\n         (let (I (int @)  Penv (val (val $Penv)))\n            (while (gt0 (dec 'I))\n               (shift Pnl) )\n            (let M (car Pnl)\n               (while (pair (car Penv))\n                  (let Y (car @)\n                     (when (== (car Y) M)\n                        (let S (cdr Y)\n                           (unify M S N S) ) ) )\n                  (shift Penv) ) )\n            X ) ) ) )\n\n# (group 'lst ['flg]) -> lst\n(de _Group (Exe)\n   (let (X (cdr Exe)  L (save (eval (++ X))))\n      (if (atom L)\n         $Nil\n         (let Y (cons (cdar L) $Nil)\n            (setq Y\n               (cons (cons (caar L) (cons Y Y)) $Nil) )\n            (let R (save Y)\n               (if (nil? (eval (car X)))\n                  (while (pair (shift L))\n                     (let K (caar L)\n                        (setq Y (cons (cdar L) $Nil))\n                        (let Z R\n                           (loop\n                              (let V (car Z)\n                                 (? (equal K (car V))\n                                    (set\n                                       (shift V)\n                                       (set 2 (car V) Y) ) )\n                                 (? (atom (cdr Z))\n                                    (set 2 Z\n                                       (cons (cons K (cons Y Y)) $Nil) ) )\n                                 (setq Z @) ) ) ) ) )\n                  (let Z R\n                     (while (pair (shift L))\n                        (let (K (caar L)  V (car Z))\n                           (setq Y (cons (cdar L) $Nil))\n                           (if (equal K (car V))\n                              (set\n                                 (shift V)\n                                 (set 2 (car V) Y) )\n                              (set 2 Z\n                                 (cons (cons K (cons Y Y)) $Nil) )\n                              (shift Z) ) ) ) ) )\n               (let Z R\n                  (loop\n                     (let V (car Z)\n                        (set 2 V (cddr V)) )\n                     (? (atom (shift Z))) ) )\n               R ) ) ) ) )\n\n(local) cmpSort\n\n(inline cmpSort (X Y)\n   (set 4 A X  4 B Y)\n   (if (nil? (evList E)) 0 -1) )\n\n# (sort 'lst ['fun]) -> lst\n(de _Sort (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (cond\n         ((atom Y) @)\n         ((atom X)\n            (let (Out0 Y  Out1 $Nil)\n               (loop\n                  (let (In0 Out0  In1 Out1  P)\n                     (if\n                        (and\n                           (pair In1)\n                           (ge0 (compare (car In0) (car In1))) )\n                        (setq In1 (cdr (setq P In1)))\n                        (setq In0 (cdr (setq P In0))) )\n                     (let (Tail0 (ofs P 1)  Tail1 0  Last (car P))\n                        (setq Out0 P  Out1 $Nil)\n                        (set 2 P $Nil)\n                        (while (or (pair In0) (pair In1))\n                           (cond\n                              ((atom In1)\n                                 (setq In0 (cdr (setq P In0)))\n                                 (when (lt0 (compare (car P) Last))\n                                    (xchg 'Tail0 'Tail1) ) )\n                              ((atom In0)\n                                 (setq In1 (cdr (setq P In1)))\n                                 (when (lt0 (compare (car P) Last))\n                                    (xchg 'Tail0 'Tail1) ) )\n                              ((lt0 (compare (car In0) Last))\n                                 (if (ge0 (compare (car In1) Last))\n                                    (setq In1 (cdr (setq P In1)))\n                                    (if (lt0 (compare (car In0) (car In1)))\n                                       (setq In0 (cdr (setq P In0)))\n                                       (setq In1 (cdr (setq P In1))) )\n                                    (xchg 'Tail0 'Tail1) ) )\n                              ((lt0 (compare (car In1) Last))\n                                 (setq In0 (cdr (setq P In0))) )\n                              ((lt0 (compare (car In0) (car In1)))\n                                 (setq In0 (cdr (setq P In0))) )\n                              (T (setq In1 (cdr (setq P In1)))) )\n                           (setq Tail0\n                              (ofs\n                                 (if Tail0\n                                    (set Tail0 P)\n                                    (setq Out1 P) )\n                                 1 ) )\n                           (set 2 P $Nil)\n                           (setq Last (car P)) ) ) )\n                  (? (atom Out1) Out0) ) ) )\n         (T\n            (let\n               (Out0 (link (push Y NIL) T)\n                  Out1 (link (push $Nil NIL))\n                  In0 (link (push -ZERO NIL))\n                  In1 (link (push -ZERO NIL))\n                  P (link (push -ZERO NIL))\n                  B (push NIL $Nil ZERO NIL NIL)  # [car cdr name arg2 link]\n                  A (push NIL B ZERO NIL NIL)  # [car cdr name arg1 link]\n                  E (push NIL A ZERO (eval (car X)) NIL) )  # [car cdr name fun link]\n               (set\n                  B (link (ofs B 3))\n                  A (link (ofs A 3))\n                  E (link (ofs E 3)) )\n               (loop\n                  (set In0 (val Out0)  In1 (val Out1))\n                  (if\n                     (and\n                        (pair (val In1))\n                        (ge0 (cmpSort (caar In0) (caar In1))) )\n                     (set In1 (cdr (set P (val In1))))\n                     (set In0 (cdr (set P (val In0)))) )\n                  (let (Tail0 (ofs (val P) 1)  Tail1 0  Last (caar P))\n                     (set Out0 (val P)  Out1 $Nil)\n                     (set 2 (val P) $Nil)\n                     (while (or (pair (val In0)) (pair (val In1)))\n                        (cond\n                           ((atom (val In1))\n                              (set In0 (cdr (set P (val In0))))\n                              (when (lt0 (cmpSort (caar P) Last))\n                                 (xchg 'Tail0 'Tail1) ) )\n                           ((atom (val In0))\n                              (set In1 (cdr (set P (val In1))))\n                              (when (lt0 (cmpSort (caar P) Last))\n                                 (xchg 'Tail0 'Tail1) ) )\n                           ((lt0 (cmpSort (caar In0) Last))\n                              (if (ge0 (cmpSort (caar In1) Last))\n                                 (set In1 (cdr (set P (val In1))))\n                                 (if (lt0 (cmpSort (caar In0) (caar In1)))\n                                    (set In0 (cdr (set P (val In0))))\n                                    (set In1 (cdr (set P (val In1)))) )\n                                 (xchg 'Tail0 'Tail1) ) )\n                           ((lt0 (cmpSort (caar In1) Last))\n                              (set In0 (cdr (set P (val In0)))) )\n                           ((lt0 (cmpSort (caar In0) (caar In1)))\n                              (set In0 (cdr (set P (val In0)))) )\n                           (T (set In1 (cdr (set P (val In1))))) )\n                        (setq Tail0\n                           (ofs\n                              (if Tail0\n                                 (set Tail0 (val P))\n                                 (set Out1 (val P)) )\n                              1 ) )\n                        (set 2 (val P) $Nil)\n                        (setq Last (caar P)) ) )\n                  (? (atom (val Out1)) (val Out0)) ) ) ) ) ) )\n"
  },
  {
    "path": "src/sym.l",
    "content": "# 27aug25 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) (bufSize pathSize bufString pathString)\n\n(de i64 bufSize (Nm)\n   (let N 1\n      (while (big? Nm)\n         (inc 'N 8)\n         (setq Nm (val (big Nm))) )\n      (setq Nm (int Nm))\n      (while Nm\n         (inc 'N)\n         (setq Nm (shr Nm 8)) )\n      N ) )\n\n(de i64 pathSize (Nm)\n   (let\n      (Len (bufSize Nm)\n         N (if (cnt? Nm) (int @) (val (dig @)))\n         B (i8 N) )\n      (cond\n         ((or\n               (== B (char \"@\"))\n               (and\n                  (== B (char \"+\"))\n                  (== (i8 (shr N 8)) (char \"@\")) ) )\n            (+ (val $PilLen) (dec Len)) )\n         ((or\n               (== B (char \"~\"))\n               (and\n                  (== B (char \"+\"))\n                  (== (i8 (shr N 8)) (char \"~\")) ) )\n            (+ (val $UsrLen) (dec Len)) )\n         (T Len) ) ) )\n\n(de i8* bufString (Nm (i8* . P))\n   (let Q (push 0 Nm)  # [cnt name]\n      (prog1 P\n         (while (set P (symByte Q))\n            (inc 'P) ) ) ) )\n\n(de i8* pathString (Nm (i8* . P))\n   (let (Q (push 0 Nm)  B (symByte Q))  # [cnt name]\n      (prog1 P\n         (when (== B (char \"+\"))\n            (set P B)\n            (inc 'P)\n            (setq B (symByte Q)) )\n         (case B\n            ((char \"@\")\n               (when (val $PilLen)\n                  (memcpy P (val $PilHome) @)\n                  (inc 'P @) ) )\n            ((char \"~\")\n               (when (val $UsrLen)\n                  (memcpy P (val $UsrHome) @)\n                  (inc 'P @) ) )\n            (T\n               (set P B)\n               (inc 'P) ) )\n         (while (set P (symByte Q))\n            (inc 'P) ) ) ) )\n\n(local) (mkChar mkStr firstByte firstChar isBlank)\n\n(de mkChar ((i32 . C))\n   (consStr\n      (cnt\n         (cond\n            ((>= 127 C) (i64 C))  # Single byte\n            ((== TOP C) (hex \"FF\"))  # Infinite\n            ((> (hex \"800\") C)  # Double-byte\n               (i64\n                  (|\n                     (| (hex \"C0\") (& (shr C 6) (hex \"1F\")))  # 10xxxxx 10xxxxxx\n                     (shl (| (hex \"80\") (& C (hex \"3F\"))) 8) ) ) )\n            ((> (hex \"10000\") C)  # Three bytes\n               (i64\n                  (|\n                     (|\n                        (| (hex \"E0\") (& (shr C 12) (hex \"0F\")))  # 1110xxxx 10xxxxxx 10xxxxxx\n                        (shl (| (hex \"80\") (& (shr C 6) (hex \"3F\"))) 8) )\n                     (shl (| (hex \"80\") (& C (hex \"3F\"))) 16) ) ) )\n            (T\n               (|\n                  (i64\n                     (|\n                        (|\n                           (| (hex \"F0\") (& (shr C 18) (hex \"07\")))  # 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx\n                           (shl (| (hex \"80\") (& (shr C 12) (hex \"3F\"))) 8) )\n                        (shl (| (hex \"80\") (& (shr C 6) (hex \"3F\"))) 16) ) )\n                  (shl\n                     (| (hex \"80\") (& (i64 C) (hex \"3F\")))\n                     24 ) ) ) ) ) ) )\n\n(de mkStr ((i8* . Str))\n   (if Str\n      (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n         (link (ofs P 2) T)\n         (while (val Str)\n            (byteSym @ P)\n            (inc 'Str) )\n         (consStr (val 3 P)) )\n      $Nil ) )\n\n(de mkStrE ((i8* . Str) (i8* . End))\n   (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n      (link (ofs P 2) T)\n      (loop\n         (? (== Str End))\n         (? (=0 (val Str)))\n         (byteSym @ P)\n         (inc 'Str) )\n      (consStr (val 3 P)) ) )\n\n(de i8 firstByte (Sym)\n   (i8\n      (cond\n         ((nil? Sym) 0)\n         ((sym? (val (tail Sym))) 0)\n         ((cnt? (name @)) (int @))\n         (T (val (dig @))) ) ) )\n\n(de i32 firstChar (Sym)\n   (cond\n      ((nil? Sym) 0)\n      ((sym? (val (tail Sym))) 0)  # External symbol\n      (T (symChar (push 0 (name @)))) ) )  # Else get name\n\n(de i1 isBlank (X)\n   (or\n      (nil? X)\n      (and\n         (symb? X)\n         (not (sym? (val (tail X))))\n         (let P (push 0 (name @))  # [cnt name]\n            (loop\n               (? (=0 (symByte P)) YES)\n               (? (> @ 32) NO) ) ) ) ) )\n\n# Build external symbol name\n(local) extNm\n\n(de extNm ((i32 . File) (i64 . Obj))\n   (cnt\n      (|\n         (& Obj (hex \"FFFFF\"))  # Lowest 20 bits\n         (|\n            (shl (i64 (& File (hex \"FF\"))) 20)  # Lower 8 bits\n            (|\n               (shl\n                  (& (setq Obj (shr Obj 20)) (hex \"FFF\"))  # Middle 12 bits\n                  28 )\n               (|\n                  (shl (i64 (shr File 8)) 40)  # Upper 8 bits\n                  (shl (shr Obj 12) 48) ) ) ) ) ) )  # Highest 10 bits\n\n(local) (objFile objId packAO packOct packExtNm pack chopExtNm)\n\n# Get file number from external symbol name\n(de i32 objFile (Name)\n   (|\n      (& (i32 (setq Name (shr Name 24))) (hex \"FF\"))  # Low 8 bits\n      (& (i32 (shr Name 12)) (hex \"FF00\")) ) )  # High 8 bits\n\n# Get object ID from external symbol name\n(de i64 objId (Name)\n   (|\n      (|\n         (& (setq Name (shr Name 4)) (hex \"FFFFF\"))  # Lowest 20 bits\n         (& (setq Name (shr Name 8)) (hex \"FFF00000\")) )  # Middle 12 bits\n      (& (shr Name 8) (hex \"3FF00000000\")) ) )  # Highest 10 bits\n\n# Pack external symbol name\n(de void packAO ((i32 . File) (i64* . P))\n   (when (> File 15)\n      (packAO (shr File 4) P) )  # Divide by 16\n   (byteSym (+ (& (i8 File) 15) (char \"@\")) P) )  # Make ASCII letter\n\n(de void packOct ((i64 . Obj) (i64* . P))\n   (when (> Obj 7)\n      (packOct (shr Obj 3) P) )  # Divide by 8\n   (byteSym (+ (& (i8 Obj) 7) (char \"0\")) P) )  # Make ASCII digit\n\n(de void packExtNm (Name (i64* . P))\n   (when (objFile Name)\n      (packAO @ P) )\n   (packOct (objId Name) P) )\n\n# General pack\n(de void pack (X (i64* . P))\n   (when (pair X)\n      (stkChk 0)\n      (loop\n         (pack (++ X) P)\n         (? (atom X)) ) )\n   (cond\n      ((nil? X))\n      ((num? X) (fmtNum X 0 0 0 P))\n      ((sym? (val (tail X)))\n         (byteSym (char \"{\") P)\n         (packExtNm (name (& @ -9)) P)\n         (byteSym (char \"}\") P) )\n      (T\n         (let Q (push 0 (name @))  # [cnt name]\n            (while (symByte Q)\n               (byteSym @ P) ) ) ) ) )\n\n# Chop external symbol name\n(de chopExtNm (Name)\n   (let (R (link (push $Nil NIL))  N (objId Name))\n      (loop\n         (let A (+ (& N 7) (char \"0\"))  # Make ASCII digit\n            (when (setq N (shr N 3))\n               (setq A\n                  (|\n                     (shl A 8)\n                     (+ (& N 7) (char \"0\")) ) )  # Second octal digit\n               (when (setq N (shr N 3))\n                  (setq A\n                     (|\n                        (shl A 8)\n                        (+ (& N 7) (char \"0\")) ) ) ) )  # Third octal digit\n            (set R\n               (cons (consSym (cnt A) 0) (val R)) ) )\n         (? (=0 (setq N (shr N 3)))) )\n      (when (setq N (objFile Name))\n         (let F (i32 0)\n            (loop\n               (setq F\n                  (| F (+ (& N 15) (char \"@\"))) )  # Make ASCII letter\n               (? (=0 (setq N (shr N 4))))\n               (setq F (shl F 8)) )\n            (set R\n               (cons (consStr (cnt (i64 F))) (val R)) ) ) )\n      (pop R) ) )\n\n### Interning ###\n(local) (cmpLong isIntern isLstIntern findSym)\n\n# Compare long names\n(de i64 cmpLong (X Y)\n   (loop\n      (? (sub (val (dig X)) (val (dig Y)))\n         (if @@ -1 +1) )\n      (setq X (val (big X))  Y (val (big Y)))\n      (? (cnt? X)\n         (cond\n            ((big? Y) -1)\n            ((== Y X) 0)\n            ((> Y X) -1)\n            (T +1) ) )\n      (? (cnt? Y) +1) ) )\n\n# Is name interned?\n(de isIntern (Name Tree)\n   (if (cnt? Name)  # Short name\n      (let X (val Tree)  # First tree\n         (loop\n            (? (atom X) 0)  # Empty\n            (let (S (car X)  Nm (name (val (tail S))))\n               (? (== Name Nm) S)\n               (setq X\n                  (if (> Name Nm)  # Symbol is smaller\n                     (cddr X)\n                     (cadr X) ) ) ) ) )\n      # Long name\n      (let X (val 2 Tree)  # Second tree\n         (loop\n            (? (atom X) 0)  # Empty\n            (let (S (car X)  Nm (name (val (tail S))))\n               (? (=0 (cmpLong Nm Name)) S)\n               (setq X\n                  (if (lt0 @)  # Symbol is smaller\n                     (cddr X)\n                     (cadr X) ) ) ) ) ) ) )\n\n(de isLstIntern (Name Lst)\n   (loop\n      (? (atom Lst) 0)\n      (? (isIntern Name (cdar (car Lst))) @)\n      (shift Lst) ) )\n\n(de i1 findSym (Sym Name Lst)\n   (loop\n      (? (atom Lst) NO)\n      (? (== Sym (isIntern Name (cdar (car Lst)))) YES)\n      (shift Lst) ) )\n\n(local) (intern1 intern2 internRight internLeft)\n\n(inline intern1 (Sym Val Name Node More)\n   (if (isLstIntern Name More)\n      @\n      (unless Sym  # New symbol\n         (setq Sym (consSym Name Val)) )\n      (set Node (cons Sym $Nil))\n      Sym ) )\n\n(inline intern2 (Sym Val Name Node More)\n   (if (isLstIntern Name More)\n      @\n      (unless Sym  # New symbol\n         (setq Sym (consSym Name Val)) )\n      (set 2 Node (cons Sym $Nil))\n      Sym ) )\n\n(inline internRight (Sym Val Name Node More)\n   (if (isLstIntern Name More)\n      @\n      (unless Sym  # New symbol\n         (setq Sym (consSym Name Val)) )\n      (set 2 Node (cons $Nil (cons Sym $Nil)))\n      Sym ) )\n\n(inline internLeft (Sym Val Name Node More)\n   (if (isLstIntern Name More)\n      @\n      (unless Sym  # New symbol\n         (setq Sym (consSym Name Val)) )\n      (set 2 Node (cons (cons Sym $Nil) $Nil))\n      Sym ) )\n\n(local) (intern requestSym extern delNode unintern)\n\n# Intern a symbol/name\n(de intern (Sym Val Name Tree More (i1 . Rpl))\n   (if (cnt? Name)  # Short name\n      (let X (val Tree)  # First tree\n         (if (pair X)  # Not empty\n            (loop\n               (let (S (car X)  Nm (name (val (tail S))))\n                  (? (== Name Nm)  # Found name\n                     (if Rpl\n                        (set X Sym)  # Replace with argument symbol\n                        S ) )  # Return found symbol\n                  (let Y (cdr X)  # Get link cell\n                     (cond\n                        ((> Name Nm)  # Symbol is smaller\n                           (? (atom Y) (internRight Sym Val Name X More))  # No link yet\n                           (? (atom (setq Y (cdr (setq X Y))))\n                              (intern2 Sym Val Name X More) ) )\n                        (T  # Symbol is greater\n                           (? (atom Y) (internLeft Sym Val Name X More))  # No link yet\n                           (? (atom (setq Y (car (setq X Y))))\n                              (intern1 Sym Val Name X More) ) ) )\n                     (setq X Y) ) ) )\n            # Empty\n            (intern1 Sym Val Name Tree More) ) )\n      # Long name\n      (let X (val 2 Tree)  # Second tree\n         (if (pair X)  # Not empty\n            (loop\n               (let (S (car X)  Nm (name (val (tail S))))\n                  (? (=0 (cmpLong Nm Name))  # Found name\n                     (if Rpl\n                        (set X Sym)  # Replace with argument symbol\n                        S ) )  # Return found symbol\n                  (let Y (cdr X)  # Get link cell\n                     (cond\n                        ((lt0 @)  # Symbol is smaller\n                           (? (atom Y) (internRight Sym Val Name X More))  # No link yet\n                           (? (atom (setq Y (cdr (setq X Y))))\n                              (intern2 Sym Val Name X More) ) )\n                        (T  # Symbol is greater\n                           (? (atom Y) (internLeft Sym Val Name X More))  # No link yet\n                           (? (atom (setq Y (car (setq X Y))))\n                              (intern1 Sym Val Name X More) ) ) )\n                     (setq X Y) ) ) )\n            # Empty\n            (intern2 Sym Val Name Tree More) ) ) ) )\n\n(de requestSym (Name)\n   (if (isIntern Name $PrivT)\n      @\n      (let L (val $Intern)\n         (intern 0 $Nil Name\n            (cdar (car L))\n            (cdr L)\n            NO ) ) ) )\n\n# Intern an external symbol\n(de extern (Name)\n   (need3)  # Reserve 3 cells\n   (let (X (val $Extern)  C 0  Sym T)\n      (loop\n         (inc 'C)  # Next level\n         (setq Sym (car X))  # Next symbol\n         (let Nm\n            (&\n               (name (& (val (tail Sym)) -9))\n               (hex \"3FFFFFFFFFFFFFF7\") )  # Mask status and extern bits\n            (? (== Nm Name))  # Found\n            (let Y (cdr X)  # Get link cell\n               (cond\n                  ((> Name Nm)  # Symbol is smaller\n                     (? (atom Y)  # No link yet\n                        (set 2 X\n                           (cons $Nil (cons (setq Sym (consExt Name)) $Nil)) ) )\n                     (? (atom (setq Y (cdr (setq X Y))))\n                        (set 2 X\n                           (cons (setq Sym (consExt Name)) $Nil) ) ) )\n                  (T  # Symbol is greater\n                     (? (atom Y)  # No link yet\n                        (set 2 X\n                           (cons (cons (setq Sym (consExt Name)) $Nil) $Nil) ) )\n                     (? (atom (setq Y (car (setq X Y))))\n                        (set X\n                           (cons (setq Sym (consExt Name)) $Nil) ) ) ) )\n               (setq X Y) ) ) )\n      (setq C (shr C 1))  # Half depth\n      (when (> (shl 1 C) (val $ExtCnt))  # 2 ** (C/2)\n         (setq X (val $Extern))\n         (let N (val $ExtSkip)  # Levels to skip\n            (if (> (inc 'N) C)  # Beyond half depth\n               (set $ExtSkip 0)  # Don't skip\n               (set $ExtSkip N)\n               (loop  # Skip\n                  (setq X\n                     (if\n                        (>\n                           Name\n                           (&\n                              (name (& (val (tail (++ X))) -9))\n                              (hex \"3FFFFFFFFFFFFFF7\") ) )\n                        (cdr X)\n                        (car X) ) )\n                  (? (=0 (dec 'C))) ) ) )\n         (loop  # Pivot\n            (let\n               (Nm\n                  (&\n                     (name (& (val (tail (car X))) -9))\n                     (hex \"3FFFFFFFFFFFFFF7\") )\n                  Y (cdr X) )\n               (? (== Nm Name))  # Done\n               (if (> Name Nm)  # Symbol is smaller\n                  (let Z (cdr Y)  # Get right node\n                     (? (atom (cdr Z)))\n                     (xchg Z X)  # Pivot left\n                     (setq Z (cdr Z)  X (cdr Z))\n                     (set  # Rotate pointers\n                        2 Z (val Z)\n                        Z (val Y)\n                        Y (cdr Y)\n                        2 Y X) )\n                  (let Z (car Y)  # Get left node\n                     (? (atom (cdr Z)))\n                     (xchg Z X)  # Pivot right\n                     (setq Z (cdr Z)  X (val Z))\n                     (set  # Rotate pointers\n                        Z (cdr Z)\n                        2 Z (cdr Y)\n                        2 Y (val Y)\n                        Y X) ) ) ) ) )\n      Sym ) )\n\n(de void delNode (X P)\n   (let Y (cdr X)  # Subtrees\n      (cond\n         ((atom (car Y))  # No left branch\n            (set P (cdr Y)) )  # Use right branch\n         ((atom (cdr Y))  # No right branch\n            (set P (car Y)) )  # Use left branch\n         ((atom (car (setq P (cdr (shift Y)))))  # Y on right branch, P on sub-branches\n            (set  # No left sub-branch\n               X (car Y)  # Insert right sub-branch\n               2 (cdr X) (cdr P) ) )\n         (T\n            (setq P (car P))  # Left sub-branch\n            (loop\n               (let Z (cdr P)  # More left branches\n                  (? (atom (car Z))\n                     (set\n                        X (car P)  # Insert left sub-branch\n                        (cdr Y) (cdr Z) ) )\n                  (setq Y P  P (car Z)) ) ) ) ) ) )  # Go down left\n\n(de void unintern (Sym Name P)\n   (if (cnt? Name)  # Short name\n      (loop  # First tree\n         (let X (car P)  # Next node\n            (? (atom X))  # Empty\n            (let (S (car X)  Nm (name (val (tail S))))\n               (? (== Name Nm)\n                  (when (== S Sym)  # Correct symbol\n                     (delNode X P) ) )\n               (? (atom (shift X)))\n               (setq P\n                  (if (> Name Nm) (ofs X 1) X) ) ) ) )\n      # Long name\n      (setq P (ofs P 1))  # Second tree\n      (loop\n         (let X (car P)  # Next node\n            (? (atom X))  # Empty\n            (let\n               (S (car X)\n                  Nm (name (val (tail S)))\n                  I (cmpLong Nm Name) )\n               (? (=0 I)\n                  (when (== S Sym)  # Correct symbol\n                     (delNode X P) ) )\n               (? (atom (shift X)))\n               (setq P\n                  (if (lt0 I) (ofs X 1) X) ) ) ) ) ) )\n\n# (name 'sym) -> sym\n(de _Name (Exe)\n   (let Tail (val (tail (needSymb Exe (eval (cadr Exe)))))\n      (if (sym? Tail)  # External\n         (let P (push 4 NIL ZERO NIL)  # [cnt last name link]\n            (link (ofs P 2) T)\n            (packExtNm (name (& Tail -9)) P)\n            (consStr (val 3 P)) )\n         (consStr (name Tail)) ) ) )\n\n# (nsp 'sym) -> sym\n(de _Nsp (Exe)\n   (let Sym (needSymb Exe (eval (cadr Exe)))\n      (if (sym? (val (tail Sym)))\n         $Nil\n         (let Nm (name @)\n            (if (== Sym (isIntern Nm $PrivT))  # Private?\n               $priv\n               (let Lst (val $Intern)  # Search namespaces\n                  (loop\n                     (? (atom Lst) $Nil)\n                     (let Nsp (car Lst)\n                        (? (== Sym (isIntern Nm (cdar Nsp))) Nsp) )\n                     (shift Lst) ) ) ) ) ) ) )\n\n# (sp? 'any) -> flg\n(de _SpQ (Exe)\n   (if (isBlank (eval (cadr Exe)))\n      $T\n      $Nil ) )\n\n# (pat? 'any) -> sym | NIL\n(de _PatQ (Exe)\n   (let X (eval (cadr Exe))\n      (if (and (symb? X) (== (firstChar X) (char \"@\")))\n         X\n         $Nil ) ) )\n\n# (fun? 'any) -> any\n(de _FunQ (Exe)\n   (if (funq (eval (cadr Exe)))\n      @\n      $Nil ) )\n\n# (getd 'any) -> fun | NIL\n(de _Getd (Exe)\n   (let (X (eval (cadr Exe))  V T)\n      (cond\n         ((not (symb? X)) $Nil)\n         ((funq (setq V (val X))) V)\n         ((and (nil? V) (sharedLib X)) (val X))\n         (T $Nil) ) ) )\n\n### Namespaces ###\n(local) consTree\n\n# Build sorted list from tree\n(de consTree (P Lst)\n   (if (atom P)\n      Lst\n      (let\n         (Q (link (push NIL NIL))\n            Tos (link (push -ZERO NIL)))\n         (loop\n            (loop\n               (let X (cdr P)  # Get subtrees\n                  (? (atom (cdr X)))  # Right subtree\n                  (let Y P  # Go right\n                     (setq P @)  # Invert tree\n                     (set 2 X (val Tos))\n                     (set Tos Y) ) ) )\n            (set Q P)  # Save tree\n            (loop\n               (setq Lst (cons (car P) Lst))  # Cons symbol\n               (let X (cdr P)\n                  (? (pair (car X))  # Left subtree\n                     (let Y P  # Go left\n                        (setq P @)  # Invert tree\n                        (set X (val Tos))\n                        (set Tos (| Y 8))  # First visit\n                        (set Q P) ) ) )  # Save tree\n               (loop\n                  (let X (val Tos)\n                     (when (== -ZERO X)\n                        (drop Q)\n                        (ret Lst) )\n                     (? (=0 (& X 8))  # Second visit\n                        (let Y (cdr X)  # Nodes\n                           (set Tos (cdr Y))  # TOS on up link\n                           (set 2 Y P)\n                           (setq P X)\n                           (set Q P) ) )  # Save tree\n                     (setq X (& X -9))  # Clear visit bit\n                     (let Y (cdr X)  # Nodes\n                        (set Tos (car Y))\n                        (set Y P)\n                        (setq P X)\n                        (set Q P) ) ) ) ) ) ) ) )  # Save tree\n\n# (all ['NIL | 'T | '0 | 'sym | '(NIL . flg) | '(T . flg) | '(0)]) -> lst\n(de _All (Exe)\n   (let X (eval (cadr Exe))\n      (cond\n         ((nil? X)  # Internal symbols\n            (let Y (val $Intern)\n               (loop\n                  (let Z (cdar (++ Y))\n                     (setq X\n                        (consTree (val Z) (consTree (val 2 Z) X)) ) )\n                  (? (atom Y) X) ) ) )\n         ((t? X)  # Transient symbols\n            (consTree (val $Transient) (consTree (val 2 $Transient) $Nil)) )\n         ((num? X)  # External symbols\n            (consTree (val $Extern) $Nil) )\n         ((sym? X)  # Given namespace\n            (let Y (cdar X)\n               (if (pair Y)\n                  (consTree (val Y) (consTree (val 2 Y) $Nil))\n                  $Nil ) ) )\n         ((nil? (car X))  # Direct internal tree\n            (let Y (val (car (val $Intern)))\n               (if (nil? (cdr X))\n                  (val Y)\n                  (val 2 Y) ) ) )\n         ((t? (car X))  # Direct transient trees\n            (if (nil? (val 2 X))\n               (val $Transient)\n               (val 2 $Transient) ) )\n         (T (val $Extern)) ) ) ) # Direct external tree\n\n# (symbols) -> lst\n# (symbols 'lst) -> lst\n# (symbols 'lst . prg) -> any\n# (symbols ['T] 'sym1 'sym2 ..) -> lst\n(de _Symbols (Exe)\n   (let X (cdr Exe)\n      (if (atom X)  # No args\n         (val $Intern)\n         (let Y (eval (++ X))\n            (if (pair Y)  # List argument\n               (let L Y\n                  (loop\n                     (needNsp Exe (needSymb Exe (++ L)))\n                     (? (atom L)) )\n                  (if (atom X)  # No 'prg'\n                     (prog1\n                        (val $Intern)\n                        (set $Intern Y) )\n                     (let Z (save (val $Intern))\n                        (set $Intern Y)\n                        (prog1\n                           (run X)  # Run 'prg'\n                           (set $Intern Z) ) ) ) )\n               (let F (t? Y)\n                  (when F\n                     (setq Y (eval (++ X))) )\n                  (if\n                     (or  # New namespace\n                        (nil? (val (needSymb Exe Y)))\n                        (== @ Y) )\n                     (set\n                        (chkVar Exe Y)\n                        (cons $Tilde (cons $Nil $Nil)) )\n                     (needNsp Exe Y) )\n                  (let R (setq Y (save (cons Y $Nil)))\n                     (while (pair X)\n                        (setq Y\n                           (set 2 Y\n                              (cons\n                                 (needNsp Exe (needSymb Exe (eval (++ X))))\n                                 $Nil ) ) ) )\n                     (prog1\n                        (val $Intern)\n                        (set $Intern R)\n                        (when F\n                           (set (val $NsLink) R) )\n                        (putSrc (car R) 0) ) ) ) ) ) ) ) )\n\n# (intern 'any ['nsp]) -> sym\n(de _Intern (Exe)\n   (let (X (cdr Exe)  Sym (save (evSym X)))\n      (cond\n         ((sym? (val (tail Sym))) $Nil)  # External symbol\n         ((== (name @) ZERO) $Nil)  # Anonymous symbol\n         (T\n            (let Nm @\n               (if (nil? (eval (cadr X)))\n                  (let L (val $Intern)\n                     (intern Sym 0 Nm\n                        (cdar (car L))\n                        (cdr L)\n                        NO ) )\n                  (intern Sym 0 Nm\n                     (if (t? @)\n                        (cdar (car (val $Intern)))\n                        (cdar @) )\n                     $Nil\n                     NO ) ) ) ) ) ) )\n\n# (====) -> NIL\n(de _Hide (Exe)\n   (set $Transient (set 2 $Transient $Nil)) )\n\n# (box? 'any) -> sym | NIL\n(de _BoxQ (Exe)\n   (let X (eval (cadr Exe))\n      (if\n         (and\n            (symb? X)\n            (not (sym? (val (tail X))))\n            (== ZERO (name @)) )\n         X\n         $Nil ) ) )\n\n# (str? 'any) -> sym | NIL\n(de _StrQ (Exe)\n   (let X (eval (cadr Exe))\n      (cond\n         ((not (symb? X)) $Nil)\n         ((or\n               (sym? (val (tail X)))  # External\n               (findSym X (name @) (val $Intern)) )\n            $Nil )\n         (T X) ) ) )\n\n# (zap 'sym) -> sym\n(de _Zap (Exe)\n   (let Sym (needSymb Exe (eval (cadr Exe)))\n      (if (sym? (val (tail Sym)))  # External\n         (dbZap Sym)\n         (unintern Sym (name @) (cdar (car (val $Intern)))) )\n      Sym ) )\n\n# (chop 'any) -> lst\n(de _Chop (Exe)\n   (let X (eval (cadr Exe))\n      (if (or (pair X) (nil? X))\n         X\n         (let Tail (val (tail (xSym X)))\n            (if (sym? Tail)  # External\n               (chopExtNm (name (& Tail -9)))\n               (let (P (push 0 (name Tail))  C (symChar P))\n                  (if C\n                     (save Tail\n                        (let (Y (cons (mkChar C) $Nil)  R (save Y))\n                           (while (setq C (symChar P))\n                              (setq Y\n                                 (set 2 Y (cons (mkChar C) $Nil)) ) )\n                           R ) )\n                     $Nil ) ) ) ) ) ) )\n\n# (pack 'any ..) -> sym\n(de _Pack (Exe)\n   (save -ZERO\n      (let\n         (X (cdr Exe)\n            P (push 4 NIL ZERO NIL) )  # [cnt last name link]\n         (link (ofs P 2))\n         (while (pair X)\n            (pack (safe (eval (++ X))) P) )\n         (consStr (val 3 P)) ) ) )\n\n# (glue 'any 'lst) -> sym\n(de _Glue (Exe)\n   (let (X (cdr Exe)  Y (save (eval (++ X))))  # 'any'\n      (if (atom (eval (++ X)))  # 'lst'\n         @\n         (let (Z (save @)  P (push 4 NIL ZERO NIL))  # [cnt last name link]\n            (link (ofs P 2))\n            (loop\n               (pack (++ Z) P)\n               (? (atom Z))\n               (pack Y P) )\n            (consStr (val 3 P)) ) ) ) )\n\n# (text 'any1 'any ..) -> sym\n(de _Text (Exe)\n   (let (X (cdr Exe)  Y (evSym X))\n      (if (nil? Y)\n         Y\n         (let\n            (P (push 0 (xName Y) NIL)  # [cnt name link]\n               Q (link (ofs P 1) T)\n               R (push 4 NIL ZERO NIL)  # [cnt last name link]\n               A (link (ofs R 2))\n               N 0\n               C T )\n            (while (pair (shift X))\n               (setq A (link (push (eval (car X)) NIL)))\n               (inc 'N) )\n            (while (setq C (symByte P))\n               (cond\n                  ((<> C (char \"@\")) (byteSym C R))\n                  ((== (setq C (symByte P)) (char \"@\"))\n                     (byteSym C R) )  # \"@@\"\n                  ((gt0 (dec 'C (char \"0\")))\n                     (when (> C 9)\n                        (dec 'C 7) )  # Adjust for letter\n                     (when (ge0 (setq C (- N (i64 C))))\n                        (let I A\n                           (while (ge0 (dec 'C))\n                              (shift I) )\n                           (pack (val I) R) ) ) ) ) )\n            (consStr (val 3 R)) ) ) ) )\n\n### Matching ###\n(local) (preStr subStr)\n\n(de i1 preStr (Nm (i8 . B) (i64* . P))\n   (let (Q (push 0 (i64 Nm))  C (symByte Q))\n      (loop\n         (? (<> B C) NO)\n         (? (=0 (setq C (symByte Q))) YES)\n         (? (=0 (setq B (symByte P))) NO) ) ) )\n\n(de i64 subStr (X Y (i64 . N))\n   (cond\n      ((nil? X) 0)\n      ((== ZERO (setq X (xName X))) 0)\n      (T\n         (let (P (push 0 (xName Y))  B T  R 1)\n            (while (gt0 (dec 'N))\n               (when (=0 (symByte P))\n                  (ret -1) )\n               (inc 'R) )\n            (loop\n               (? (=0 (setq B (symByte P))) -1)\n               (let (Cnt (val P)  Nm (val 2 P))\n                  (? (preStr X B P) R)\n                  (set P Cnt  2 P Nm) )\n               (inc 'R) ) ) ) ) )\n\n# (pre? 'any1 'any2) -> any2 | NIL\n(de _PreQ (Exe)\n   (let (X (cdr Exe)  Y (save (evSym X))  Z (evSym (shift X)))\n      (cond\n         ((nil? Y) Z)\n         ((== ZERO (setq Y (xName Y)))\n            Z )\n         (T\n            (let P (push 0 (xName Z))\n               (cond\n                  ((=0 (symByte P)) $Nil)\n                  ((preStr Y @ P) Z)\n                  (T $Nil) ) ) ) ) ) )\n\n# (sub? 'any1 'any2 ['cnt]) -> any2 | NIL\n(de _SubQ (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (evSym X))\n         Z (evSym (shift X)) )\n      (if\n         (lt0\n            (subStr Y Z\n               (if (pair (shift X)) (evCnt Exe X) 1) ) )\n         $Nil\n         (set $At2 (cnt @))\n         Z ) ) )\n\n# (val 'var) -> any\n(de _Val (Exe)\n   (let V (needVar Exe (eval (cadr Exe)))\n      (when (and (sym? V) (sym? (val (tail V))))\n         (dbFetch Exe V) )\n      (val V) ) )\n\n# (set 'var 'any ..) -> any\n(de _Set (Exe)\n   (save -ZERO\n      (let X (cdr Exe)\n         (loop\n            (let Y (safe (needChkVar Exe (eval (++ X))))\n               (when (and (sym? Y) (sym? (val (tail Y))))\n                  (dbTouch Exe Y) )\n               (let Z (eval (++ X))\n                  (set Y Z)\n                  (? (atom X) Z) ) ) ) ) ) )\n\n# (setq var 'any ..) -> any\n(de _Setq (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (set (needChkVar Exe (++ X)) (eval (++ X)))\n            (? (atom X) Y) ) ) ) )\n\n# (swap 'var 'any) -> any\n(de _Swap (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )\n      (let (Z (eval (car X))  V (val Y))\n         (set Y Z)\n         V ) ) )\n\n# (xchg 'var 'var ..) -> any\n(de _Xchg (Exe)\n   (save -ZERO\n      (let X (cdr Exe)\n         (loop\n            (let Y (safe (needChkVar Exe (eval (++ X))))\n               (when (and (sym? Y) (sym? (val (tail Y))))\n                  (dbTouch Exe Y) )\n               (let Z (needChkVar Exe (eval (++ X)))\n                  (when (and (sym? Z) (sym? (val (tail Z))))\n                     (dbTouch Exe Z) )\n                  (setq Z (xchg Y Z))\n                  (? (atom X) Z) ) ) ) ) ) )\n\n# (on var ..) -> T\n(de _On (Exe)\n   (let X (cdr Exe)\n      (loop\n         (set (needChkVar Exe (++ X)) $T)\n         (? (atom X) $T) ) ) )\n\n# (off var ..) -> NIL\n(de _Off (Exe)\n   (let X (cdr Exe)\n      (loop\n         (set (needChkVar Exe (++ X)) $Nil)\n         (? (atom X) $Nil) ) ) )\n\n# (onOff var ..) -> flg\n(de _OnOff (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let\n            (Y (needChkVar Exe (++ X))\n               Z (if (nil? (val Y)) $T $Nil) )\n            (set Y Z)\n            (? (atom X) Z) ) ) ) )\n\n# (zero var ..) -> 0\n(de _Zero (Exe)\n   (let X (cdr Exe)\n      (loop\n         (set (needChkVar Exe (++ X)) ZERO)\n         (? (atom X) ZERO) ) ) )\n\n# (one var ..) -> 1\n(de _One (Exe)\n   (let X (cdr Exe)\n      (loop\n         (set (needChkVar Exe (++ X)) ONE)\n         (? (atom X) ONE) ) ) )\n\n# (default sym 'any ..) -> any\n(de _Default (Exe)\n   (let X (cdr Exe)\n      (loop\n         (let Y (needChkVar Exe (++ X))\n            (when (nil? (val Y))\n               (set Y (eval (car X))) )\n            (? (atom (shift X)) (val Y)) ) ) ) )\n\n# (push 'var 'any ..) -> any\n(de _Push (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )\n      (loop\n         (let Z (eval (++ X))\n            (set Y (cons Z (val Y)))\n            (? (atom X) Z) ) ) ) )\n\n# (push1 'var 'any ..) -> any\n(de _Push1 (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )\n      (loop\n         (let (Z (eval (++ X))  V (val Y))\n            (unless (member Z V)\n               (set Y (cons Z V)) )\n            (? (atom X) Z) ) ) ) )\n\n# (push1q 'var 'any ..) -> any\n(de _Push1q (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )\n      (loop\n         (let (Z (eval (++ X))  V (val Y))\n            (unless (memq Z V)\n               (set Y (cons Z V)) )\n            (? (atom X) Z) ) ) ) )\n\n# (pop 'var) -> any\n(de _Pop (Exe)\n   (let X (needChkVar Exe (eval (cadr Exe)))\n      (when (and (sym? X) (sym? (val (tail X))))\n         (dbTouch Exe X) )\n      (if (atom (val X))\n         @\n         (set X (cdr @))\n         (car @) ) ) )\n\n# (++ var) -> any\n(de _Popq (Exe)\n   (let X (needChkVar Exe (cadr Exe))\n      (if (atom (val X))\n         @\n         (set X (cdr @))\n         (car @) ) ) )\n\n# (shift 'var) -> any\n(de _Shift (Exe)\n   (let X (needChkVar Exe (eval (cadr Exe)))\n      (when (and (sym? X) (sym? (val (tail X))))\n         (dbTouch Exe X) )\n      (set X (cdr (needLst Exe (val X)))) ) )\n\n# (cut 'cnt 'var) -> lst\n(de _Cut (Exe)\n   (let (X (cdr Exe)  N (evCnt Exe X))\n      (if (le0 N)\n         $Nil\n         (let Y (needChkVar Exe (eval (cadr X)))\n            (when (and (sym? Y) (sym? (val (tail Y))))\n               (dbTouch Exe Y) )\n            (if (atom (val Y))\n               @\n               (let\n                  (V (save @)\n                     Z (cons (++ V) $Nil)\n                     R (save Z) )\n                  (while (and (pair V) (dec 'N))\n                     (setq Z (set 2 Z (cons (++ V) $Nil))) )\n                  (set Y V)  # Set new value\n                  R ) ) ) ) ) )\n\n# (del 'any 'var ['flg]) -> lst\n(de _Del (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Var (save (needChkVar Exe (eval (++ X))))\n         Flg (nil? (eval (car X))) )\n      (when (and (sym? Var) (sym? (val (tail Var))))\n         (dbTouch Exe Var) )\n      (let V (val Var)\n         (loop\n            (? (atom V) V)\n            (let Z (++ V)\n               (? (not (equal Y Z))\n                  (let (P (cons Z $Nil)  R P)\n                     (save R\n                        (loop\n                           (? (atom V))\n                           (if (equal Y (setq Z (++ V)))\n                              (? Flg)\n                              (setq P (set 2 P (cons Z $Nil))) ) ) )\n                     (set 2 P V  Var R) ) ) )\n            (set Var V)\n            (? Flg V) ) ) ) )\n\n# (queue 'var 'any) -> any\n(de _Queue (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )\n      (let\n         (Z (eval (car X))\n            L (cons Z $Nil)\n            V (val Y) )\n         (if (atom V)\n            (set Y L)\n            (while (pair (cdr V))\n               (shift V) )\n            (set 2 V L) )\n         Z ) ) )\n\n# (fifo 'var ['any ..]) -> any\n(de _Fifo (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )  # External symbol\n      (let V (val Y)\n         (cond\n            ((pair X)  # Add to fifo\n               (let E (eval (car X))\n                  (if (pair V)\n                     (setq V (set 2 V (cons E (cdr V))))  # Concat into value\n                     (setq V (cons E -ZERO))  # Circular cell\n                     (set 2 V V) )\n                  (while (pair (shift X))\n                     (setq V\n                        (set 2 V\n                           (cons\n                              (setq E (eval (car X)))\n                              (cdr V) ) ) ) )\n                  (set Y V)\n                  E ) )\n            ((atom V) $Nil)  # Empty\n            ((== (cdr V) V)  # Single cell\n               (set Y $Nil)  # Clear value\n               (car V) )\n            (T\n               (set 2 V (cdr @))  # Remove\n               (car @) ) ) ) ) )  # and return\n\n# (rid 'var 'any) -> any\n(de _Rid (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (needChkVar Exe (eval (++ X)))) )\n      (when (and (sym? Y) (sym? (val (tail Y))))\n         (dbTouch Exe Y) )  # External symbol\n      (setq X (eval (car X)))\n      (let V (val Y)\n         (cond\n            ((pair V)\n               (let (Z V  L (cdr Z))\n                  (loop\n                     (? (atom L)  # Non-circular\n                        (when (equal L X)\n                           (set 2 Z $Nil) )\n                        (if (equal (car V) X)\n                           (set Y (cdr V))\n                           V ) )\n                     (? (== L V)  # Circular\n                        (nond\n                           ((equal (car L) X) V)\n                           ((== L Z)\n                              (set 2 Z (cdr L))\n                              (set Y Z) )\n                           (NIL (set Y $Nil)) ) )\n                     (if (equal (car L) X)\n                        (set 2 Z (shift L))\n                        (setq L (cdr (shift Z))) ) ) ) )\n            ((equal V X) (set Y $Nil))\n            (T V) ) ) ) )\n\n# (enum 'var 'cnt ['cnt ..]) -> lst\n# (enum 'var ['flg]) -> lst\n(de _Enum (Exe)\n   (let\n      (X (cdr Exe)\n         Var (save (needChkVar Exe (eval (++ X))))\n         Arg (eval (car X))\n         Cnt 0 )\n      (if (num? Arg)\n         (loop\n            (? (le0 (setq Cnt (xCnt Exe Arg))) $Nil)\n            (let P (val Var)\n               (loop\n                  (let N (shr Cnt 1)\n                     (? (=0 N)\n                        (setq Var\n                           (if (pair P)\n                              @\n                              (set Var (cons $Nil $Nil)) ) ) )\n                     (if (& Cnt 1)\n                        (cond\n                           ((atom P)\n                              (let Y (cons $Nil (setq P $Nil))\n                                 (set Var (cons $Nil Y))\n                                 (setq Var (ofs Y 1)) ) )\n                           ((atom (cdr P))\n                              (setq Var\n                                 (ofs\n                                    (set 2 P (cons $Nil (setq P $Nil)))\n                                    1 ) ) )\n                           (T\n                              (setq P (val (setq Var (ofs @ 1)))) ) )\n                        (cond\n                           ((atom P)\n                              (let Y (cons (setq P $Nil) $Nil)\n                                 (set Var (cons $Nil Y))\n                                 (setq Var Y) ) )\n                           ((atom (cdr P))\n                              (setq Var\n                                 (set 2 P (cons (setq P $Nil) $Nil)) ) )\n                           (T (setq P (val (setq Var @)))) ) )\n                     (setq Cnt N) ) ) )\n            (? (atom (shift X)) Var)\n            (setq Arg (eval (car X)) ) )\n         (let\n            (Q (link (push NIL NIL))\n               Tos (link (push -ZERO NIL))\n               R (link (push $Nil NIL))\n               P (val Var)\n               M 1 )\n            (loop\n               (loop\n                  (let Y (cdr P)  # Get subtrees\n                     (? (atom (cdr Y)))  # Right subtree\n                     (let Z P  # Go right\n                        (setq P @)  # Invert tree\n                        (set 2 Y (val Tos))\n                        (set Tos Z) )\n                     (setq\n                        Cnt (| Cnt M)\n                        M (shl M 1) ) ) )\n               (set Q P)  # Save tree\n               (loop\n                  (unless (nil? (car P))\n                     (set R\n                        (cons\n                           (if (nil? Arg)\n                              (cons (cnt (| Cnt M)) (car P))  # (cnt . any)\n                              (cons (car P) (cnt (| Cnt M))) )  # (any . cnt)\n                           (val R) ) ) )\n                  (let Y (cdr P)\n                     (? (pair (car Y))  # Left subtree\n                        (let Z P  # Go left\n                           (setq P @)  # Invert tree\n                           (set Y (val Tos))\n                           (set Tos (| Z 8))  # First visit\n                           (set Q P) )  # Save tree\n                        (setq M (shl M 1)) ) )\n                  (loop\n                     (let Y (val Tos)\n                        (when (== -ZERO Y)\n                           (ret (val R)) )\n                        (? (=0 (& Y 8))  # Second visit\n                           (setq\n                              M (shr M 1)\n                              Cnt (& Cnt (x| M -1)) )\n                           (let Z (cdr Y)  # Nodes\n                              (set Tos (cdr Z))  # TOS on up link\n                              (set 2 Z P)\n                              (setq P Y)\n                              (set Q P) ) )  # Save tree\n                        (setq\n                           Y (& Y -9)  # Clear visit bit\n                           M (shr M 1)\n                           Cnt (& Cnt (x| M -1)) )\n                        (let Z (cdr Y)  # Nodes\n                           (set Tos (car Z))\n                           (set Z P)\n                           (setq P Y)\n                           (set Q P) ) ) ) ) ) ) ) ) )  # Save tree\n\n# (enum? 'lst 'cnt ['cnt ..]) -> lst | NIL\n(de _EnumQ (Exe)\n   (let\n      (X (cdr Exe)\n         P (save (eval (++ X)))\n         Cnt T )\n      (loop\n         (? (le0 (setq Cnt (evCnt Exe X))) $Nil)\n         (loop\n            (let N (shr Cnt 1)\n               (? (=0 N))\n               (setq P\n                  (if (& Cnt 1) (cddr P) (cadr P)) )\n               (? (atom P) (ret $Nil))\n               (setq Cnt N) ) )\n         (? (atom (shift X)) P)\n         (setq P (car P)) ) ) )\n\n(local) (idxPut idxGet idxDel)\n\n(de idxPut (Var Key Flg)\n   (let X (val Var)\n      (if (pair X)\n         (loop\n            (? (=0 (compare (car X) Key)) X)  # Found key\n            (let Y (cdr X)  # Get link cell\n               (cond\n                  ((lt0 @)  # Entry is smaller\n                     (? (atom Y)  # No link yet\n                        (if (or (t? Flg) (chance 1))\n                           (set 2 X (cons $Nil (cons Key $Nil)))\n                           (set 2 X (cons (cons (car X) $Nil) $Nil))\n                           (set X Key) )\n                        $Nil )\n                     (? (atom (setq Y (cdr Y)))\n                        (if (or (t? Flg) (chance 1))\n                           (set 2 (cdr X) (cons Key $Nil))\n                           (set (cdr X)\n                              (cons (car X) (cons (cadr X) $Nil)) )\n                           (set X Key) )\n                        $Nil )\n                     (if\n                        (or\n                           (t? Flg)\n                           (atom (cdr Y))\n                           (gt0 (compare (car Y) Key))\n                           (chance (hex \"FFF\")) )\n                        (setq X Y)\n                        (xchg X Y)\n                        (set\n                           2 (cdr X) (cddr Y)\n                           2 (cdr Y) (cadr Y)\n                           (cdr Y) (cadr X)\n                           (cdr X) Y ) ) )\n                  (T  # Entry is greater\n                     (? (atom Y)  # No link yet\n                        (if (or (t? Flg) (chance 1))\n                           (set 2 X (cons (cons Key $Nil) $Nil))\n                           (set 2 X (cons $Nil (cons (car X) $Nil)))\n                           (set X Key) )\n                        $Nil )\n                     (? (atom (setq Y (car Y)))\n                        (if (or (t? Flg) (chance 1))\n                           (set (cdr X) (cons Key $Nil))\n                           (set 2 (cdr X)\n                              (cons (car X) (cons $Nil (cddr X))) )\n                           (set X Key) )\n                        $Nil )\n                     (if\n                        (or\n                           (t? Flg)\n                           (atom (cdr Y))\n                           (lt0 (compare (car Y) Key))\n                           (chance (hex \"FFF\")) )\n                        (setq X Y)\n                        (xchg X Y)\n                        (set\n                           (cdr X) (cadr Y)\n                           (cdr Y) (cddr Y)\n                           2 (cdr Y) (cddr X)\n                           2 (cdr X) Y ) ) ) ) ) )\n         (set Var (cons Key $Nil))\n         $Nil ) ) )\n\n(de idxGet (Var Key)\n   (let X (val Var)\n      (cond\n         ((nil? Key)\n            (while (pair (cadr X))\n               (setq X @) )\n            X )\n         ((t? Key)\n            (while (pair (cddr X))\n               (setq X @) )\n            X )\n         (T\n            (loop\n               (? (atom X) $Nil)\n               (? (=0 (compare (car X) Key)) X)  # Found key\n               (let Y (cdr X)  # Get link cell\n                  (setq X\n                     (if (lt0 @) (cdr Y) (car Y)) ) ) ) ) ) ) )\n\n(de idxDel (Var Key)\n   (loop\n      (let X (val Var)\n         (? (atom X) $Nil)\n         (let Y (cdr X)  # Subtrees\n            (let I (compare (car X) Key)\n               (? (=0 I)  # Found key\n                  (cond\n                     ((atom (car Y))  # No left branch\n                        (set Var (cdr Y)) )  # Use right branch\n                     ((atom (cdr Y))  # No right branch\n                        (set Var (car Y)) )  # Use left branch\n                     (T\n                        (let Z (cdr (setq Y (cdr Y)))  # Sub-branches\n                           (if (atom (car Z))  # No left sub-branch\n                              (set   # Insert right sub-branch\n                                 X (car Y)\n                                 2 (cdr X) (cdr Z) )\n                              (let L (cdr (setq Z (car Z)))  # Left sub-branch\n                                 (loop\n                                    (? (atom (car L)))\n                                    (setq Y Z  Z (car L)  L (cdr Z)) )\n                                 (set\n                                    X (car Z)\n                                    (cdr Y) (cdr L) ) ) ) ) ) )\n                  X )\n               (? (atom Y) $Nil)  # No link cell\n               (setq Var Y)  # Default point to left subtree\n               (and (lt0 I) (setq Var (ofs Var 1))) ) ) ) ) )  # Point to right\n\n# (idx 'var 'any 'flg) -> lst\n# (idx 'var 'any) -> lst\n# (idx 'var) -> lst\n(de _Idx (Exe)\n   (let\n      (X (cdr Exe)\n         Var (needChkVar Exe (eval (++ X))) )\n      (if (atom X)\n         (consTree (val Var) $Nil)  # Single arg\n         (save Var\n            (let Key (save (eval (++ X)))\n               (cond\n                  ((atom X) (idxGet Var Key))  # Two args\n                  ((nil? (eval (car X))) (idxDel Var Key))  # Delete\n                  (T (idxPut Var Key @)) ) ) ) ) ) )\n\n# (lup 'lst 'any) -> lst\n# (lup 'lst 'any 'any2) -> lst\n(de _Lup (Exe)\n   (let (X (cdr Exe)  P (save (eval (++ X))))\n      (if (atom P)\n         P\n         (let Key (eval (++ X))\n            (if (atom X)\n               (loop\n                  (let Y (car P)\n                     (cond\n                        ((t? Y) (setq P (cadr P)))\n                        ((atom Y) (setq P (cddr P)))\n                        (T\n                           (? (=0 (compare (car Y) Key)) (car P))\n                           (setq\n                              P (cdr P)\n                              P (if (lt0 @) (cdr P) (car P)) ) ) ) )\n                  (? (atom P) $Nil) )\n               (save Key)\n               (let\n                  (Key2 (save (eval (car X)))\n                     Q (link (push NIL NIL))\n                     Tos (link (push -ZERO NIL))\n                     R $Nil )\n                  (loop\n                     (loop\n                        (let Y (cdr (setq X (cdr P)))  # Right subtree\n                           (? (atom Y))\n                           (let Z (car P)\n                              (? (t? Z))\n                              (? (and (pair Z) (gt0 (compare (car Z) Key2)))) )\n                           (let Z P  # Go right\n                              (setq P Y)  # Invert tree\n                              (set 2 X (val Tos))\n                              (set Tos Z) ) ) )\n                     (set Q P)  # Save tree\n                     (loop\n                        (when\n                           (and\n                              (pair (setq X (car P)))\n                              (ge0 (compare (car X) Key)) )\n                           (when (le0 (compare (car X) Key2))\n                              (setq R (cons X R)) )  # Cons symbol\n                           (? (pair (car (setq X (cdr P))))  # Left subtree\n                              (let Z P  # Go left\n                                 (setq P @)  # Invert tree\n                                 (set X (val Tos))\n                                 (set Tos (| Z 8))  # First visit\n                                 (set Q P) ) ) )  # Save tree\n                        (loop\n                           (when (== -ZERO (setq X (val Tos)))\n                              (ret R) )\n                           (? (=0 (& X 8))  # Second visit\n                              (let Y (cdr X)  # Nodes\n                                 (set Tos (cdr Y))  # TOS on up link\n                                 (set 2 Y P)\n                                 (setq P X)\n                                 (set Q P) ) )  # Save tree\n                           (setq X (& X -9))  # Clear visit bit\n                           (let Y (cdr X)  # Nodes\n                              (set Tos (car Y))\n                              (set Y P)\n                              (setq P X)\n                              (set Q P) ) ) ) ) ) ) ) ) ) )  # Save tree\n\n### Property access ###\n(local) (put putn get getn prop)\n\n(de void put (Sym Key Val)\n   (let Tail (val (tail Sym))\n      (unless (num? Tail)  # Property list\n         (let (L (any (& Tail -9))  X (car L))\n            (if (atom X)\n               (when (== Key X)\n                  (cond\n                     ((nil? Val)\n                        (shift L)  # Remove first property\n                        (set (tail Sym)\n                           (if (sym? Tail) (sym L) L) ) )\n                     ((<> Val $T)  # Change to cell\n                        (set L (cons Val Key)) ) )\n                  (ret) )\n               (when (== Key (cdr X))\n                  (cond\n                     ((nil? Val)\n                        (shift L)  # Remove first property\n                        (set (tail Sym)\n                           (if (sym? Tail) (sym L) L) ) )\n                     ((t? Val) (set L Key))  # Change to flag\n                     (T (set X Val)) )  # Set new value\n                  (ret) ) )\n            (while (pair (setq X (cdr L)))\n               (let Y (car X)\n                  (if (atom Y)\n                     (when (== Key Y)\n                        (if (nil? Val)\n                           (set 2 L (cdr X))  # Remove cell\n                           (unless (t? Val)\n                              (set X (cons Val Key)) )\n                           (set 2 L (cdr X))  # Unlink cell\n                           (ifn (sym? Tail)\n                              (set 2 X Tail)\n                              (set 2 X (& Tail -9))\n                              (setq X (sym X)) )\n                           (set (tail Sym) X) )\n                        (ret) )\n                     (when (== Key (cdr Y))\n                        (if (nil? Val)\n                           (set 2 L (cdr X))  # Remove cell\n                           (if (t? Val)\n                              (set X Key)  # Change to flag\n                              (set Y Val) )  # Set new value\n                           (set 2 L (cdr X))  # Unlink cell\n                           (ifn (sym? Tail)\n                              (set 2 X Tail)\n                              (set 2 X (& Tail -9))\n                              (setq X (sym X)) )\n                           (set (tail Sym) X) )\n                        (ret) ) ) )\n                  (setq L X) ) ) )\n      (unless (nil? Val)  # Non-NIL value\n         (setq Val\n            (if (t? Val) Key (cons Val Key)) )\n         (set (tail Sym)\n            (if (sym? Tail)\n               (sym (cons Val (& Tail -9)))\n               (cons Val Tail) ) ) ) ) )\n\n(de void putn (Exe Lst Key Val)\n   (nond\n      ((num? Key)\n         (loop  # asoq\n            (let X (car Lst)\n               (? (and (pair X) (== Key (car X)))\n                  (set 2 X Val) ) )\n            (when (atom (shift Lst))\n               (itemErr Exe Key) ) ) )\n      ((== ZERO Key)\n         (let Cnt (int Key)  # index\n            (while (dec 'Cnt)\n               (when (atom (shift Lst))\n                  (itemErr Exe Key) ) ) )\n         (if (sign? Key)\n            (set 2 Lst Val)\n            (set Lst Val) ) )\n      (NIL (argErr Exe Key)) ) )\n\n(de get (Sym Key)\n   (let Tail (val (tail Sym))\n      (unless (num? Tail)\n         (let (L (any (& Tail -9))  X (car L))\n            (if (atom X)\n               (when (== Key X)\n                  (ret $T) )\n               (when (== Key (cdr X))\n                  (ret (car X)) ) )\n            (while (pair (setq X (cdr L)))\n               (let Y (car X)\n                  (if (atom Y)\n                     (when (== Key Y)\n                        (set 2 L (cdr X))  # Unlink cell\n                        (ifn (sym? Tail)\n                           (set 2 X Tail)\n                           (set 2 X (& Tail -9))\n                           (setq X (sym X)) )\n                        (set (tail Sym) X)\n                        (ret $T) )\n                     (when (== Key (cdr Y))\n                        (set 2 L (cdr X))  # Unlink cell\n                        (ifn (sym? Tail)\n                           (set 2 X Tail)\n                           (set 2 X (& Tail -9))\n                           (setq X (sym X)) )\n                        (set (tail Sym) X)\n                        (ret (car Y)) ) )\n                  (setq L X) ) ) ) )\n      $Nil ) )\n\n(de getn (Exe X Key)\n   (when (num? X)  # Need symbol or pair\n      (argErr Exe X) )\n   (if (pair X)\n      (nond\n         ((num? Key)\n            (loop  # asoq\n               (let Y (car X)\n                  (? (and (pair Y) (== Key (car Y)))\n                     (cdr Y) ) )\n               (? (atom (shift X)) $Nil) ) )\n         ((== ZERO Key) (nth Key X))\n         (NIL $Nil) )\n      (when (sym? (val (tail X)))\n         (dbFetch Exe X) )\n      (if (== Key ZERO)\n         (val X)\n         (tailcall (get X Key)) ) ) )\n\n(de prop (Sym Key)\n   (let Tail (val (tail Sym))\n      (unless (num? Tail)\n         (let (L (any (& Tail -9))  X (car L))\n            (if (atom X)\n               (when (== Key X)\n                  (ret Key) )\n               (when (== Key (cdr X))\n                  (ret X) ) )\n            (while (pair (setq X (cdr L)))\n               (let Y (car X)\n                  (if (atom Y)\n                     (when (== Key Y)\n                        (set 2 L (cdr X))  # Unlink cell\n                        (ifn (sym? Tail)\n                           (set 2 X Tail)\n                           (set 2 X (& Tail -9))\n                           (setq X (sym X)) )\n                        (set (tail Sym) X)\n                        (ret Key) )\n                     (when (== Key (cdr Y))\n                        (set 2 L (cdr X))  # Unlink cell\n                        (ifn (sym? Tail)\n                           (set 2 X Tail)\n                           (set 2 X (& Tail -9))\n                           (setq X (sym X)) )\n                        (set (tail Sym) X)\n                        (ret Y) ) ) )\n               (setq L X) ) ) )\n      (let R (cons $Nil Key)\n         (set (tail Sym)\n            (if (sym? Tail)\n               (sym (cons R (& Tail -9)))\n               (cons R Tail) ) )\n         R ) ) )\n\n# (put 'sym1|lst ['sym2|cnt ..] 'any) -> any\n(de _Put (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Key T )\n      (loop\n         (setq Key (eval (++ X)))\n         (? (atom (cdr X)))\n         (setq Y (safe (getn Exe Y Key))) )\n      (when (num? Y)  # Need symbol or pair\n         (argErr Exe Y) )\n      (link (push Key NIL))\n      (let Val (eval (car X))\n         (if (pair Y)\n            (putn Exe Y Key Val)\n            (when (sym? (val (tail Y)))\n               (if (nil? Key)\n                  (dbFetch Exe Y)  # Volatile property\n                  (dbTouch Exe Y) ) )\n            (if (== ZERO Key)\n               (set (chkVar Exe Y) Val)\n               (put Y Key Val) ) )\n         Val ) ) )\n\n# (get 'sym1|lst ['sym2|cnt ..]) -> any\n(de _Get (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (when (pair X)\n         (save Y\n            (loop\n               (setq Y (getn Exe Y (eval (++ X))))\n               (? (atom X))\n               (safe Y) ) ) )\n      Y ) )\n\n# (prop 'sym1|lst ['sym2|cnt ..] 'sym) -> var\n(de _Prop (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Key T )\n      (loop\n         (setq Key (eval (++ X)))\n         (? (atom X))\n         (setq Y (safe (getn Exe Y Key))) )\n      (needSymb Exe Y)\n      (link (push Key NIL))\n      (when (sym? (val (tail Y)))\n         (if (nil? Key)\n            (dbFetch Exe Y)  # Volatile property\n            (dbTouch Exe Y) ) )\n      (prop Y Key) ) )\n\n# (; 'sym1|lst [sym2|cnt ..]) -> any\n(de _Semicol (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (when (pair X)\n         (save Y\n            (loop\n               (setq Y (getn Exe Y (++ X)))\n               (? (atom X))\n               (safe Y) ) ) )\n      Y ) )\n\n# (=: sym|0 [sym1|cnt ..] 'any) -> any\n(de _SetCol (Exe)\n   (let (X (cdr Exe)  Y (val $This)  Key T)\n      (loop\n         (setq Key (++ X))\n         (? (atom (cdr X)))\n         (setq Y (getn Exe Y Key)) )\n      (when (num? Y)  # Need symbol or pair\n         (argErr Exe Y) )\n      (let Val (eval (car X))\n         (if (pair Y)\n            (putn Exe Y Key Val)\n            (when (sym? (val (tail Y)))\n               (if (nil? Key)\n                  (dbFetch Exe Y)  # Volatile property\n                  (dbTouch Exe Y) ) )\n            (if (== ZERO Key)\n               (set (chkVar Exe Y) Val)\n               (put Y Key Val) ) )\n         Val ) ) )\n\n# (: sym|0 [sym1|cnt ..]) -> any\n(de _Col (Exe)\n   (let (X (cdr Exe)  Y (val $This))\n      (loop\n         (setq Y (getn Exe Y (++ X)))\n         (? (atom X) Y) ) ) )\n\n# (:: sym|0 [sym1|cnt .. sym2]) -> var\n(de _PropCol (Exe)\n   (let (X (cdr Exe)  Y (val $This)  Key T)\n      (loop\n         (setq Key (++ X))\n         (? (atom X))\n         (setq Y (getn Exe Y Key)) )\n      (needSymb Exe Y)\n      (when (sym? (val (tail Y)))\n         (if (nil? Key)\n            (dbFetch Exe Y)  # Volatile property\n            (dbTouch Exe Y) ) )\n      (prop Y Key) ) )\n\n# (putl 'sym1|lst1 ['sym2|cnt ..] 'lst) -> lst\n(de _Putl (Exe)\n   (let\n      (X (cdr Exe)\n         Y (save (eval (++ X)))\n         Z T )\n      (loop\n         (setq Z (eval (++ X)))\n         (? (atom X))\n         (setq Y (safe (getn Exe Y Z))) )\n      (let\n         (R (save Z)\n            Tail (val (tail (needSymb Exe Y))) )\n         (when (sym? (setq X Tail))\n            (dbTouch Exe Y)\n            (setq X (& (val (tail Y)) -9)) )\n         (until (num? X)  # Skip old properties\n            (shift X) )\n         (while (pair Z)  # New property list\n            (let P (++ Z)\n               (if (atom P)\n                  (setq X (cons P X))\n                  (unless (nil? (car P))\n                     (when (t? (car P))\n                        (setq P (cdr P)) )\n                     (setq X (cons P X)) ) ) ) )\n         (set (tail Y)\n            (if (sym? Tail) (sym X) X) )\n         R ) ) )\n\n# (getl 'sym1|lst1 ['sym2|cnt ..]) -> lst\n(de _Getl (Exe)\n   (let (X (cdr Exe)  Y (save (eval (car X))))\n      (while (pair (shift X))\n         (setq Y\n            (safe (getn Exe Y (eval (car X)))) ) )\n      (when (sym? (setq X (val (tail (needSymb Exe Y)))))\n         (dbFetch Exe Y)\n         (setq X (& (val (tail Y)) -9)) )\n      (if (num? X)\n         $Nil\n         (let R (setq Y (cons (car X) $Nil))\n            (link (push R NIL))\n            (while (pair (shift X))\n               (setq Y\n                  (set 2 Y (cons (car X) $Nil)) ) )\n            R ) ) ) )\n\n(local) wipe\n\n(de void wipe (Exe X)\n   (let\n      (Tail (val (tail (needSymb Exe X)))\n         Nm (name (& Tail -9)) )\n      (ifn (sym? Tail)  # External symbol\n         (set\n            X $Nil  # Clear value\n            (tail X) Nm )  # and properties\n         (setq Nm (add Nm Nm))  # Get carry\n         (unless @@  # Not dirty\n            (setq Nm (add Nm Nm))\n            (when @@  # and loaded\n               (set\n                  X $Nil\n                  (tail X) (sym (shr Nm 2)) ) ) ) ) ) )  # Set \"not loaded\"\n\n# (wipe 'sym|lst) -> sym|lst\n(de _Wipe (Exe)\n   (let X (eval (cadr Exe))\n      (unless (nil? X)\n         (if (atom X)\n            (wipe Exe X)\n            (let Y X\n               (loop\n                  (wipe Exe (++ Y))\n                  (? (atom Y)) ) ) ) )\n      X ) )\n\n(local) meta\n\n(de meta (X Key)\n   (loop\n      (? (atom X) $Nil)\n      (let Y (car X)\n         (when (symb? Y)\n            (?\n               (not\n                  (nil?\n                     (if (== Key ZERO) (val Y) (get Y Key)) ) )\n               @ )\n            (stkChk 0)\n            (? (not (nil? (meta (car Y) Key))) @) ) )\n      (shift X) ) )\n\n# (meta 'obj|typ 'sym ['sym2|cnt ..]) -> any\n(de _Meta (Exe)\n   (let (X (cdr Exe)  Y (save (eval (++ X))))\n      (when (num? Y)  # Need symbol or pair\n         (argErr Exe Y) )\n      (when (sym? Y)\n         (when (sym? (val (tail Y)))\n            (dbFetch Exe Y) )\n         (setq Y (val Y)) )\n      (setq Y (meta Y (eval (car X))))\n      (while (pair (shift X))\n         (safe Y)\n         (setq Y (getn Exe Y (eval (car X)))) )\n      Y ) )\n\n# (low? 'any) -> sym | NIL\n(de _LowQ (Exe)\n   (let X (eval (cadr Exe))\n      (if (and (symb? X) (isLowc (firstChar X)))\n         X\n         $Nil ) ) )\n\n# (upp? 'any) -> sym | NIL\n(de _UppQ (Exe)\n   (let X (eval (cadr Exe))\n      (if (and (symb? X) (isUppc (firstChar X)))\n         X\n         $Nil ) ) )\n\n# (lowc 'any) -> any\n(de _Lowc (Exe)\n   (let X (eval (cadr Exe))\n      (if (or (not (symb? X)) (nil? X))\n         X\n         (let\n            (P (push 0 (xName X) NIL)  # [cnt name link]\n               Q (link (ofs P 1) T)\n               R (push 4 NIL ZERO NIL)  # [cnt last name link]\n               C T )\n            (link (ofs R 2))\n            (while (setq C (symChar P))\n               (charSym (toLowerCase C) R) )\n            (consStr (val 3 R)) ) ) ) )\n\n# (uppc 'any) -> any\n(de _Uppc (Exe)\n   (let X (eval (cadr Exe))\n      (if (or (not (symb? X)) (nil? X))\n         X\n         (let\n            (P (push 0 (xName X) NIL)  # [cnt name link]\n               Q (link (ofs P 1) T)\n               R (push 4 NIL ZERO NIL)  # [cnt last name link]\n               C T )\n            (link (ofs R 2))\n            (while (setq C (symChar P))\n               (ifn (== C (char \"ß\"))\n                  (charSym (toUpperCase C) R)\n                  (charSym (char \"S\") R)\n                  (charSym (char \"S\") R) ) )\n            (consStr (val 3 R)) ) ) ) )\n\n# (fold 'any ['cnt]) -> sym\n(de _Fold (Exe)\n   (let (X (cdr Exe)  Y (eval (++ X)))\n      (if (or (not (symb? Y)) (nil? Y))\n         Y\n         (let\n            (N (if (atom X) 0 (evCnt Exe X))\n               P (push 0 (xName Y) NIL)  # [cnt name link]\n               Q (link (ofs P 1) T)\n               R (push 4 NIL ZERO NIL)  # [cnt last name link]\n               C T )\n            (link (ofs R 2))\n            (while (setq C (symChar P))\n               (when (isLetterOrDigit C)\n                  (charSym (toLowerCase C) R)\n                  (? (=0 (dec 'N))) ) )\n            (consStr (val 3 R)) ) ) ) )\n"
  },
  {
    "path": "src/sysdefs.c",
    "content": "// 12jan26 Software Lab. Alexander Burger\n\n#include <stdio.h>\n#include <stdint.h>\n#include <stdlib.h>\n#include <unistd.h>\n#include <limits.h>\n#include <errno.h>\n#include <fcntl.h>\n#include <dirent.h>\n#include <signal.h>\n#include <dlfcn.h>\n#include <time.h>\n#include <poll.h>\n#include <termios.h>\n#include <sys/ioctl.h>\n#include <sys/types.h>\n#include <sys/wait.h>\n#include <sys/stat.h>\n#include <sys/time.h>\n#include <sys/times.h>\n#include <sys/resource.h>\n#include <sys/mman.h>\n#include <netdb.h>\n#include <sys/socket.h>\n#include <sys/un.h>\n#include <netinet/in.h>\n\nstatic void ttl(char *nm) {\n   printf(\"\\n[%s]\\n\", nm);\n}\n\nstatic void num(char *sym, long val) {\n   printf(\"%s\\t%ld\\n\", sym, val);\n}\n\nstatic void lit(char *sym, char *val) {\n   printf(\"%s\\t%s\\n\", sym, val);\n}\n\nstatic void str(char *sym, char *val) {\n   printf(\"%s\\t\\\"%s\\\"\\n\", sym, val);\n}\n\nint main(void) {\n   struct winsize term;\n   struct sockaddr_in6 addr;\n   struct addrinfo ai;\n   struct sockaddr_un un;\n   struct msghdr msg;\n   struct cmsghdr cmsg;\n\n   printf(\"# %s\\n\", __VERSION__);\n   printf(\"# %s\\n\", _OS);\n   printf(\"# %s\\n\", _CPU);\n\n   ttl(\"errno\");\n   num(\"EINTR\", EINTR);\n   num(\"EAGAIN\", EAGAIN);\n   num(\"EACCES\", EACCES);\n\n   ttl(\"stdio\");\n   num(\"BUFSIZ\", BUFSIZ);\n\n   ttl(\"ulimit\");\n   num(\"RLIMIT_STACK\", RLIMIT_STACK);\n   num(\"RLIMIT_NOFILE\", RLIMIT_NOFILE);\n   num(\"RLIMIT_NPROC\", RLIMIT_NPROC);\n\n   ttl(\"unistd\");\n   num(\"PIPE_BUF\", PIPE_BUF);\n   num(\"PATH_MAX\", PATH_MAX);\n\n   ttl(\"terminal\");\n   num(\"TIOCGWINSZ\", TIOCGWINSZ);\n   num(\"TIOCSWINSZ\", TIOCSWINSZ);\n   num(\"winsize\", sizeof(struct winsize));\n   num(\"ws_row\", (char*)&term.ws_row - (char*)&term);\n   num(\"ws_col\", (char*)&term.ws_col - (char*)&term);\n\n   ttl(\"mmap\");\n   num(\"PROT_READ\", PROT_READ);\n   num(\"PROT_WRITE\", PROT_WRITE);\n   num(\"MAP_SHARED\", MAP_SHARED);\n   lit(\"MAP_FAILED\", \"18446744073709551615\");\n\n   ttl(\"networking\");\n   num(\"SOCK_STREAM\", SOCK_STREAM);\n   num(\"SOCK_DGRAM\", SOCK_DGRAM);\n   num(\"AF_INET6\", AF_INET6);\n   num(\"SOL_SOCKET\", SOL_SOCKET);\n   num(\"SO_REUSEADDR\", SO_REUSEADDR);\n   num(\"IPPROTO_IPV6\", IPPROTO_IPV6);\n   num(\"IPV6_V6ONLY\", IPV6_V6ONLY);\n   num(\"INET6_ADDRSTRLEN\", INET6_ADDRSTRLEN);\n   num(\"sockaddr_in6\", sizeof(struct sockaddr_in6));\n   num(\"sin6_family\",  (char*)&addr.sin6_family - (char*)&addr);\n   num(\"sin6_addr\", (char*)&addr.sin6_addr - (char*)&addr);\n   num(\"sin6_port\", (char*)&addr.sin6_port - (char*)&addr);\n   num(\"NI_MAXHOST\", NI_MAXHOST);\n   num(\"NI_NAMEREQD\", NI_NAMEREQD);\n   num(\"addrinfo\", sizeof(struct addrinfo));\n   num(\"ai_family\", (char*)&ai.ai_family - (char*)&ai);\n   num(\"ai_socktype\", (char*)&ai.ai_socktype - (char*)&ai);\n   num(\"socklen_t\", sizeof(socklen_t));\n   num(\"ai_addrlen\", (char*)&ai.ai_addrlen - (char*)&ai);\n   num(\"ai_addr\", (char*)&ai.ai_addr - (char*)&ai);\n   num(\"ai_next\", (char*)&ai.ai_next - (char*)&ai);\n   num(\"AF_UNSPEC\", AF_UNSPEC);\n\n   ttl(\"domainSock\");\n   num(\"AF_UNIX\", AF_UNIX);\n   num(\"iovec\", sizeof(struct iovec));\n   num(\"sockaddr_un\", sizeof(struct sockaddr_un));\n   num(\"sun_family\",  (char*)&un.sun_family - (char*)&un);\n   num(\"sun_path\",  (char*)&un.sun_path - (char*)&un);\n   num(\"cmsghdr\", sizeof(struct cmsghdr));\n   num(\"cmsg_len\", (char*)&cmsg.cmsg_len - (char*)&cmsg);\n   num(\"cmsg_level\", (char*)&cmsg.cmsg_level - (char*)&cmsg);\n   num(\"cmsg_type\", (char*)&cmsg.cmsg_type - (char*)&cmsg);\n   num(\"cmsg_data\", CMSG_DATA(&cmsg) - (unsigned char*)&cmsg);\n   num(\"CMSG_SPACE\", CMSG_SPACE(0));\n   num(\"CMSG_SPACE_int\", CMSG_SPACE(sizeof(int)));\n   num(\"SCM_RIGHTS\", SCM_RIGHTS);\n   num(\"msghdr\", sizeof(struct msghdr));\n   num(\"msg_name\", (char*)&msg.msg_name - (char*)&msg);\n   num(\"msg_namelen\", (char*)&msg.msg_namelen - (char*)&msg);\n   num(\"msg_iov\", (char*)&msg.msg_iov - (char*)&msg);\n   num(\"msg_iovlen\", (char*)&msg.msg_iovlen - (char*)&msg);\n   num(\"msg_control\", (char*)&msg.msg_control - (char*)&msg);\n   num(\"msg_controllen\", (char*)&msg.msg_controllen - (char*)&msg);\n   num(\"msg_flags\", (char*)&msg.msg_flags - (char*)&msg);\n\n   return 0;\n}\n"
  },
  {
    "path": "src/vers.l",
    "content": "# 30apr26 Software Lab. Alexander Burger\n\n(symbols '(llvm))\n\n(local) *Version\n\n(pico~de *Version 26 4 30)\n"
  },
  {
    "path": "test/lib/db.l",
    "content": "# 21aug22 Software Lab. Alexander Burger\n\n### +Joint ###\n(test T (pool (tmp \"db\")))\n\n(class +A +Entity)\n(rel k (+Key +String))\n(rel b (+List +Bag)\n   ((+Joint) a (+B))\n   ((+Number)) )\n\n(class +B +Entity)\n(rel k (+Key +String))\n(rel a (+Joint) b (+A) list asoq)\n\n(let\n   (A (new T '(+A) 'k \"a\")\n      B (new T '(+B) 'k \"b\")\n      C (new T '(+B) 'k \"c\") )\n\n   (test T (bool (has> A 'k \"a\")))\n   (test T (bool (has> B 'k \"b\")))\n   (test A (db 'k '+A \"a\"))\n   (test B (db 'k '+B \"b\"))\n   (test C (db 'k '+B \"c\"))\n\n   (put> B 'a A)\n   (test (list (list B)) (; A b))\n   (test A (; B a))\n\n   (test T (bool (has> A 'b B)))\n   (test T (bool (has> A 'b (list B))))\n   (test T (bool (has> A 'b (list (list B)))))\n\n   (test T (bool (has> B 'a A)))\n\n   (put> B 'a NIL)\n   (test NIL (; A b))\n   (test NIL (; B a))\n\n   (put> A 'b (list (list B 123)))\n   (test (list (list B 123)) (; A b))\n   (test A (; B a))\n\n   (put> A 'b (list (list C 7)))\n   (test (list (list C 7)) (; A b))\n   (test NIL (; B a))\n   (test A (; C a))\n\n   (put> A 'b NIL)\n   (test NIL (; A b))\n   (test NIL (; B a)) )\n\n(rollback)\n\n### +Swap ###\n(class +C +Entity)\n(rel s (+Swap +String))\n(rel l (+Swap +List +String))\n(rel b (+List +Bag)\n   ((+Number))\n   ((+Swap +String)) )\n(rel c (+Swap +List +Bag)\n   ((+Number))\n   ((+String)) )\n\n(let A\n   (new T '(+C)\n      's \"a\"\n      'l '(\"b\" \"c\")\n      'b '((123 \"def\"))\n      'c '((123 \"def\")) )\n\n   (test T (bool (has> A 's \"a\")))\n   (test NIL (has> A 's \"x\"))\n   (test T (bool (has> A 'l '(\"b\" \"c\"))))\n   (test NIL (has> A 'l '(\"b\")))\n   (test NIL (has> A 'l '(\"c\")))\n   (test NIL (has> A 'l '(\"x\")))\n   (test T (bool (has> A 'b '((123 \"def\")))))\n   (test NIL (has> A 'b '((123))))\n   (test NIL (has> A 'b '((\"def\"))))\n   (test T (bool (has> A 'c '((123 \"def\")))))\n   (test NIL (has> A 'c '((123))))\n   (test NIL (has> A 'c '((\"def\"))))\n\n   (let S (; A l)\n      (put> A 'l '(\"x\"))\n      (test S (; A l))\n      (test '(\"x\") (; A l 0)) )\n\n   (let S (; A b 1 2)\n      (put> A 'b (list (list 4 S)))\n      (test S (; A b 1 2))\n      (test \"def\" (; A b 1 2 0))\n      (test 4 (; A b 1 1))\n      (put> A 'b '((7 \"y\")))\n      (test S (; A b 1 2))\n      (test 7 (; A b 1 1))\n      (test \"y\" (; A b 1 2 0)) ) )\n\n(rollback)\n"
  },
  {
    "path": "test/lib/lint.l",
    "content": "# 06oct20 Software Lab. Alexander Burger\n\n### noLint ###\n(let foo '(() (bar FreeVariable))\n   (use *NoLint\n      (noLint 'bar)\n      (noLint 'foo 'FreeVariable)\n      (test NIL (lint 'foo)) ) )\n\n\n### lint ###\n(let foo '((R S T R) (let N 7 (bar X Y)))\n    (test '((var T) (dup R) (def bar) (bnd Y X) (use N))\n       (lint 'foo) ) )\n\n(let foo '(() (task -6000 0 X 7 (println N)))\n   (test '((bnd N) (use X))\n       (lint 'foo) ) )\n"
  },
  {
    "path": "test/lib/math.l",
    "content": "# 06oct20 Software Lab. Alexander Burger\n\n(scl 6)\n(load \"@lib/math.l\")\n\n### pow ###\n(test 8.0 (pow 2.0 3.0))\n(test 8.0 (pow 64.0 0.5))\n\n### exp ###\n(test 2.718282 (exp 1.0))\n\n### log ###\n(test 0.693147 (log 2.0))\n\n### sin ###\n(test 0.0 (sin 0.0))\n(test 1.0 (sin (/ pi 2)))\n\n### cos ###\n(test 1.0 (cos 0.0))\n(test -1.0 (cos pi))\n\n### tan ###\n(test 0.0 (tan 0.0))\n(test 0.0 (tan pi))\n\n### asin ###\n(test 0.0 (asin 0.0))\n(test (/ pi 2) (asin 1.0))\n\n### acos ###\n(test 0.0 (acos 1.0))\n(test pi (acos -1.0))\n\n### atan ###\n(test 0.0 (atan 0.0))\n\n### atan2 ###\n(test 0.0 (atan2 0.0 1.0))\n(test (/ pi 2) (atan2 1.0 0.0))\n"
  },
  {
    "path": "test/lib/misc.l",
    "content": "# 01jan26 Software Lab. Alexander Burger\n\n### locale ###\n(locale \"DE\" \"de\")\n(test \"Ja\" (val ,\"Yes\"))\n(locale)\n\n\n### align ###\n(test \"   a\" (align 4 'a))\n(test \"   a\" (align 4 \"a\"))\n(test \"12  \" (align -4 12))\n(test \"   a  12   b\" (align (4 4 4) \"a\" 12 \"b\"))\n\n\n### center ###\n(test \" 12\" (center 4 12))\n(test \" a\" (center 4 \"a\"))\n(test \"   a\" (center 7 'a))\n(test \" a  b  c\" (center (3 3 3) \"a\" \"b\" \"c\"))\n\n\n### wrap ###\n(test \"The quick brown fox\\njumps over the lazy\\ndog\"\n   (wrap 20 (chop \"The quick brown fox jumps over the lazy dog\")) )\n(test \"The\\nquick\\nbrown\\nfox\\njumps\\nover the\\nlazy dog\"\n   (wrap 8 (chop \"The quick brown fox jumps over the lazy dog\")) )\n(test \"The\\nquick\\nbrown\\nfox\\njumps\\nover\\nthe\\nlazy\\ndog\"\n   (wrap 2 (chop \"The quick brown fox jumps over the lazy dog\")) )\n(test '(\"The\" \"quick\" \"brown\" \"fox\" \"jumps\" \"over the\" \"lazy dog\")\n   (wrap 8 \"The quick brown fox jumps over the lazy dog\") )\n\n\n### pad ###\n(test \"00001\" (pad 5 1))\n(test \"123456789\" (pad 5 123456789))\n\n\n### bin ###\n(test \"1001001\" (bin (+ 64 8 1)))\n(test (+ 64 8 1) (bin \"1001001\"))\n(test \"-110110\" (bin -54))\n(test -54 (bin \"-110110\"))\n\n\n### oct ###\n(test \"111\" (oct (+ 64 8 1)))\n(test (+ 64 8 1) (oct \"111\"))\n(test \"-66\" (oct -54))\n(test -54 (oct \"-66\"))\n\n\n### hex ###\n(test \"111\" (hex (+ 256 16 1)))\n(test (+ 256 16 1) (hex \"111\"))\n(test \"-FFFF\" (hex -65535))\n\n\n### money ###\n(test \"1,234,567.89\" (money 123456789))\n(test \"1,234,567.89 EUR\" (money 123456789 \"EUR\"))\n\n(locale \"DE\" \"de\")\n(test \"1.234.567,89 EUR\" (money 123456789 \"EUR\"))\n(locale)\n\n\n### round ###\n(scl 4)\n(test \"12.35\" (round 123456 2))\n(test \"12.3456\" (round 123456 6))\n(test \"12.346\" (round 123456))\n\n\n### balance ###\n(test (5 (2 (1) 3 NIL 4) 7 (6) 8 NIL 9)\n   (let I NIL (balance 'I (sort (1 4 2 5 3 6 7 9 8))) I) )\n\n\n### *Allow allowed allow ###\n(allowed (\"app/\")\n   \"start\" \"stop\" \"lib.css\" \"psh\" )\n(allow \"myFoo\")\n(allow \"myDir/\" T)\n\n(test '((\"psh\" (\"lib.css\" NIL \"myFoo\") \"start\" NIL \"stop\") \"app/\" \"myDir/\")\n   *Allow )\n\n(test '(\"lib.css\" \"myFoo\" \"psh\" \"start\" \"stop\")\n   (idx *Allow) )\n\n(test '(\"app/\" \"myDir/\")\n   (cdr *Allow) )\n\n\n### telStr ###\n(test \"+49 1234 5678-0\" (telStr \"49 1234 5678-0\"))\n\n(locale \"DE\" \"de\")\n(test \"01234 5678-0\" (telStr \"49 1234 5678-0\"))\n(locale)\n\n\n### expTel ###\n(test \"49 1234 5678-0\" (expTel \"+49 1234 5678-0\"))\n(test \"49 1234 5678-0\" (expTel \"0049 1234 5678-0\"))\n(test NIL (expTel \"01234 5678-0\"))\n\n(locale \"DE\" \"de\")\n(test \"49 1234 5678-0\" (expTel \"01234 5678-0\"))\n(locale)\n\n\n### dat$ ###\n(test \"20070601\" (dat$ (date 2007 6 1)))\n(test \"2007-06-01\" (dat$ (date 2007 6 1) \"-\"))\n\n\n### $dat ###\n(test 733134 ($dat \"20070601\"))\n(test 733134 ($dat \"2007-06-01\" \"-\"))\n\n\n### datSym ###\n(test \"01jun07\" (datSym (date 2007 6 1)))\n\n\n### datStr ###\n(test \"2007-06-01\" (datStr (date 2007 6 1)))\n\n(locale \"DE\" \"de\")\n(test \"01.06.2007\" (datStr (date 2007 6 1)))\n(test \"01.06.07\" (datStr (date 2007 6 1) T))\n(locale)\n\n\n### strDat ###\n(test 733134 (strDat \"2007-06-01\"))\n(test NIL (strDat \"01.06.2007\"))\n\n(locale \"DE\" \"de\")\n(test 733134 (strDat \"01.06.2007\"))\n(test 733134 (strDat \"1.6.2007\"))\n(locale)\n\n\n### expDat ###\n(test 733133 (date 2007 5 31))\n(test 733133 (expDat \"31057\"))\n(test 733133 (expDat \"310507\"))\n(test 733133 (expDat \"2007-05-31\"))\n(test 733133 (expDat \"7-5-31\"))\n\n(let D (date)\n   (test D (expDat \".\"))\n   (test (inc D) (expDat \"+1\"))\n   (test (dec D) (expDat \"-1\")) )\n\n(locale \"DE\" \"de\")\n(test 733133 (expDat \"31.5.7\"))\n(locale)\n\n\n### day ###\n(test \"Friday\" (day (date 2007 6 1)))\n\n(locale \"DE\" \"de\")\n(test \"Freitag\" (day (date 2007 6 1)))\n(test \"Fr\"\n   (day (date 2007 6 1) '(\"Mo\" \"Tu\" \"We\" \"Th\" \"Fr\" \"Sa\" \"Su\")) )\n(locale)\n\n\n### week ###\n(test 22 (week (date 2007 6 1)))\n\n\n### ultimo ###\n(test (2007 1 31) (date (ultimo 2007 1)))\n(test (2007 2 28) (date (ultimo 2007 2)))\n(test (2004 2 29) (date (ultimo 2004 2)))\n(test (2000 2 29) (date (ultimo 2000 2)))\n(test (1900 2 28) (date (ultimo 1900 2)))\n\n\n### tim$ ###\n(test \"10:57\" (tim$ (time 10 57 56)))\n(test \"10:57:56\" (tim$ (time 10 57 56) T))\n\n\n### $tim ###\n(test (10 57 56) (time ($tim \"10:57:56\")))\n(test (10 57 0) (time ($tim \"10:57\")))\n(test (10 0 0) (time ($tim \"10\")))\n\n\n### stamp ###\n(test \"2007-06-01 10:57:56\"\n   (stamp (date 2007 6 1) (time 10 57 56)) )\n\n\n### chdir ###\n(let P (pwd)\n   (chdir \"/\"\n      (test \"/\" (pwd)) )\n   (test P *PWD) )\n\n\n### dirname basename ###\n(test \"a/b/c/\" (dirname \"a/b/c/d\"))\n(test \"a/b/c/\" (dirname \"a/b/c/d/\"))\n(test \"d\" (basename \"a/b/c/d\"))\n(test \"d\" (basename \"a/b/c/d/\"))\n(test NIL (dirname \"/\"))\n(test NIL (basename \"/\"))\n"
  },
  {
    "path": "test/lib.l",
    "content": "# 23may25 Software Lab. Alexander Burger\n\n### task ###\n(test (3 . 4)\n   (let (*Run NIL  *A NIL  *B NIL)\n      (task -10 0 (setq *A 3))\n      (task (port T 0 \"TaskPort\") (eval (udp @)))\n      (udp \"localhost\" \"TaskPort\" '(setq *B 4))\n      (wait NIL (and *A *B))\n      (cons *A *B) ) )\n\n\n### timeout ###\n(test '((-1 3600000 (bye)))\n   (let *Run NIL\n      (timeout 3600000)\n      *Run ) )\n\n\n### abort ###\n(test 6 (abort 2 (+ 1 2 3)))\n(test NIL (abort 2 (wait 4000)))\n\n\n### macro ###\n(test 6\n   (let (@A 1  @B 2  @C 3)\n      (macro (* @A @B @C)) ) )\n\n\n### later ###\n(test '((@ . 1) (@ . 4) (@ . 9) (@ . 16) (@ . 25) (@ . 36))\n   (prog1\n      (mapcan\n         '((N) (later (cons) (cons *Pid (* N N))))\n         (1 2 3 4 5 6) )\n      (wait NIL (full @)) ) )\n\n\n### recur recurse ###\n(test 720\n   (let N 6\n      (recur (N)\n         (if (=0 N)\n            1\n            (* N (recurse (dec N))) ) ) ) )\n\n\n### curry ###\n(test '((N) (* 7 N))\n   ((quote (@X) (curry (@X) (N) (* @X N))) 7) )\n(test 21\n   (((quote (@X) (curry (@X) (N) (* @X N))) 7) 3) )\n(test '((N) (job '((A . 1)) (+ A 7 N)))\n   (let (A 1 @X 7) (curry (A @X) (N) (+ A @X N))) )\n\n\n### cache ###\n(let C NIL\n   (test 0 (cache 'C 1234 0))\n   (test 7 (cache 'C 4321 7))\n   (test 7 (cache 'C 4321 8))\n   (inc (cache 'C 4321))\n   (test 8 (val (cache 'C 4321))) )\n\n\n### expr subr undef ###\n(let foo car\n   (test 7 (foo (7)))\n   (test T (== 'pass (caadr (expr 'foo))))\n   (test car (subr 'foo))\n   (test car (undef 'foo))\n   (test NIL (val 'foo)) )\n\n\n### redef ###\n(let foo inc\n   (redef foo (N) (inc (foo N)))\n   (test 3 (foo 1)) )\n\n\n### daemon patch ###\n(let foo car\n   (daemon 'foo (msg 'daemon))\n   (test T (= '(msg 'daemon) (cadr (getd 'foo))))\n   (patch foo 'daemon 'patch)\n   (test T (= '(msg 'patch) (cadr (getd 'foo)))) )\n\n\n### scl ###\n(scl 0)\n(test 123 (any \"123.45\"))\n(scl 1)\n(test (1235) (scl 1 (str \"123.45\")))\n(test 1235 (any \"123.45\"))\n(scl 3)\n(test 123450 (any \"123.45\"))\n\n\n### ** ###\n(test 32768 (** 2 15))\n(test 1 (** 123 0))\n(test 0 (** 3 -1))\n\n\n### accu ###\n(off Sum)\n\n(test '((a . 1)) (accu 'Sum 'a 1) Sum)\n(test '((a . 6)) (accu 'Sum 'a 5) Sum)\n(test '((22 . 100) (a . 6)) (accu 'Sum 22 100) Sum)\n\n(test '((b . 2) (a . 3))\n   (let L NIL (accu 'L 'a 2) (accu 'L 'b 2) (accu 'L 'a 1) L) )\n\n\n### script ###\n(out (tmp \"script\")\n   (println '(pass * 7)) )\n(test 42 (script (tmp \"script\") 2 3))\n\n\n### once ###\n(let N 0\n   (test 1\n      (once (inc 'N))\n      (once (inc 'N))\n      N ) )\n\n\n### rc ###\n(let F (tmp \"rc\")\n   (rc F 'a 123)\n   (rc F 'b \"test\"  'c (1 2 3))\n   (test '((c 1 2 3) (b . \"test\") (a . 123))\n      (in F (read)) )\n   (test 123 (rc F 'a))\n   (test \"test\" (rc F 'b))\n   (test (1 2 3) (rc F 'c)) )\n\n\n### acquire release ###\n(let F (tmp \"sema\")\n   (test *Pid (acquire F))\n   (test T (acquire F))\n   (test *Pid (in F (rd)))\n   (test NIL (release F))\n   (test NIL (in F (rd))) )\n\n\n### uniq ###\n(test (2 4 6 1 3 5) (uniq (2 4 6 1 2 3 4 5 6 1 3 5)))\n\n\n### qsym ###\n(let \"A\" 1234\n   (put '\"A\" 'a 1)\n   (put '\"A\" 'b 2)\n   (put '\"A\" 'f T)\n   (test (1234 f (2 . b) (1 . a))\n      (qsym . \"A\") ) )\n\n### loc ###\n(let (X 'foo  bar '((A B) (foo B A)))\n   (test \"foo\" (zap 'foo))\n   (test \"foo\" (str? \"foo\"))\n   (test T (== X (loc \"foo\" bar))) )\n\n\n### class ###\n(off \"+A\" \"+B\" \"+C\")\n(test '\"+A\" (class \"+A\" \"+B\" \"+C\"))\n(test '\"+A\" *Class)\n(test '(\"+B\" \"+C\") \"+A\")\n\n\n### object ###\n(off \"Obj\")\n(test '\"Obj\"\n   (object '\"Obj\" '(\"+A\" \"+B\" \"+C\")  'a 1 'b 2 'c 3) )\n(test '((3 . c) (2 . b) (1 . a) (@X . *Dbg))\n   (getl '\"Obj\") )\n\n\n### extend var var: ###\n(test '\"+B\" (extend \"+B\"))\n(test T (== *Class '\"+B\"))\n\n(test 1 (var a . 1))\n(test 2 (var (b . \"+B\") . 2))\n(test '((2 . b) (1 . a)) (cdr (getl '\"+B\")))\n\n(with '\"Obj\"\n   (test 1 (var: a))\n   (test 2 (var: b)) )\n"
  },
  {
    "path": "test/src/apply.l",
    "content": "# 01may22 Software Lab. Alexander Burger\n\n### apply ###\n(test 6 (apply + (1 2 3)))\n(test 360 (apply * (5 6) 3 4))\n(test 27 (apply '((X Y Z) (* X (+ Y Z))) (3 4 5)))\n(test (5 7 9) (apply mapcar '((1 2 3) (4 5 6)) +))\n\n\n### pass ###\n(test 24 ((quote (N . @) (* N (pass + 6))) 2 1 2 3))\n\n\n### fun ###\n(test '(NIL NIL NIL)\n   (mapcar fun\n      '(gt0 ((N) (bit? 1 N)) ((N) (> N 4)))\n      -2 ) )\n(test (2 NIL NIL)\n   (mapcar fun\n      '(gt0 ((N) (bit? 1 N)) ((N) (> N 4)))\n      2 ) )\n(test (3 1 NIL)\n   (mapcar fun\n      '(gt0 ((N) (bit? 1 N)) ((N) (> N 4)))\n      3 ) )\n(test (7 1 T)\n   (mapcar fun\n      '(gt0 ((N) (bit? 1 N)) ((N) (> N 4)))\n      7 ) )\n\n\n### maps ###\n(let L '((1 . a) (2 . b) flg)\n   (test L (let X (box) (putl X (reverse L)) (make (maps link X)))) )\n\n\n### map ###\n(test '((1 2 3) (2 3) (3)) (make (map link (1 2 3))))\n\n\n### mapc ###\n(test (1 2 3) (make (mapc link (1 2 3))))\n\n\n### maplist ###\n(test '(((1 2 3) A B C) ((2 3) B C) ((3) C)) (maplist cons (1 2 3) '(A B C)))\n\n\n### mapcar ###\n(test (5 7 9) (mapcar + (1 2 3) (4 5 6)))\n(test (26 38 52 68) (mapcar '((X Y) (+ X (* Y Y))) (1 2 3 4) (5 6 7 8)))\n\n\n### mapcon ###\n(test (1 2 3 4 5 2 3 4 5 3 4 5 4 5 5) (mapcon copy (1 2 3 4 5)))\n\n\n### mapcan ###\n(test '(c b a f e d i h g) (mapcan reverse '((a b c) (d e f) (g h i))))\n\n\n### filter ###\n(test (1 2 3) (filter num? (1 A 2 (B) 3 CDE)))\n\n\n### extract ###\n(let (A NIL  B 1  C NIL  D 2  E NIL  F 3)\n   (test (1 2 3)\n      (extract val '(A B C D E F)) )\n   (test (1 2 3)\n      (extract val '(B D E F)) ) )\n\n\n### seek ###\n(test (12 19 22) (seek '((X) (> (car X) 9)) (1 5 8 12 19 22)))\n(let (A -1  B 2  C 3)\n   (test '(B C) (seek '((L) (gt0 (val (car L)))) '(A B C)))\n   (test 2 @@) )\n\n\n### find ###\n(test '(B) (find pair (1 A 2 (B) 3 CDE)))\n(test 4 (find > (1 2 3 4 5 6) (6 5 4 3 2 1)))\n(test 4 (find '((A B) (> A B)) (1 2 3 4 5 6) (6 5 4 3 2 1)))\n(let (A -1  B 2  C 3)\n   (test 'B (find '((X) (gt0 (val X))) '(A B C)))\n   (test 2 @@) )\n\n\n### pick ###\n(test \"Hello\"\n   (pick '((X) (get X 'str))\n      (list (box) (prog1 (box) (put @ 'str \"Hello\")) (box)) ) )\n\n\n### fully ###\n(test T (fully gt0 (1 2 3)))\n(test NIL (fully gt0 (1 -2 3)))\n\n### cnt ###\n(test 2 (cnt cdr '((1 . T) (2) (3 4) (5))))\n\n\n### sum ###\n(test 6 (sum val (list (box 1) (box) (box 2) (box 'a) (box 3))))\n\n\n### maxi mini ###\n(let (A 1 B 2 C 3)\n   (test 'C (maxi val '(A B C)))\n   (test 3 @@)\n   (test 'A (mini val '(A B C)))\n   (test 1 @@)\n   (test '(A B C) (by val sort '(C A B))) )\n\n\n### fish ###\n(test (1 2 3)\n   (fish gt0 '(a -2 (1 b (-3 c 2)) 3 d -1)) )\n(test (-2 1 -3 -1)\n   (fish < '(a -2 (1 b (-3 c 2)) 3 d -1) NIL 2) )\n(test '(a b c d)\n   (fish sym? '(a -2 (1 b (-3 c 2)) 3 d -1)) )\n(test (3 7)\n   (fish\n      '((X)\n         (if (and (pair X) (=1 (car X)))\n            \"skip\"\n            (gt0 X) ) )\n      '(a -2 (1 b (-3 c 2)) 3 d -1 7)\n      \"skip\" ) )\n(test '(b b)\n   (fish == '(a 1 (b (3 b)) 3) NIL 'b) )\n\n\n### by ###\n(test '(A B C)\n   (let (A 1 B 2 C 3)\n      (by val sort '(C A B)) ) )\n(test '((3 11 9 5 7 1) (6 2 4 10 12 8))\n   (by '((N) (bit? 1 N))\n      group\n      (3 11 6 2 9 5 4 10 12 7 8 1) ) )\n(test '((\"x\" \"x\" \"x\") (\"y\") (\"z\" \"z\"))\n   (by name group '(\"x\" \"x\" \"y\" \"z\" \"x\" \"z\")) )\n(test '((123 \"xyz\") ((1 2) \"XY\") (\"abcd\" (1 2 3 4)))\n   (by length group '(123 (1 2) \"abcd\" \"xyz\" (1 2 3 4) \"XY\")) )\n"
  },
  {
    "path": "test/src/big.l",
    "content": "# 27jul25 Software Lab. Alexander Burger\n\n### format ###\n(scl 0)\n(test \"123456789\" (format 123456789))\n(test \"12346\" (format 12345.6789))\n(test \"1234567.89\" (format 123456789 2))\n(test \"1234567,89\" (format 123456789 2 \",\"))\n(test \"1.234.567,89\" (format 123456789 2 \",\" \".\"))\n(test 123456789 (format \"123456789\"))\n(test 12345678900 (format \"1234567.89\" 4))\n(test NIL (format \"1.234.567,89\"))\n(test 12345678900 (format \"1234567,89\" 4 \",\"))\n(test NIL (format \"1.234.567,89\" 4 \",\"))\n(test 12345678900 (format \"1.234.567,89\" 4 \",\" \".\"))\n(test 123456 (format (1 \"23\" (4 5 6))))\n\n\n### + ###\n(test 6 (+ 1 2 3))\n(test 0 (+ 1 2 -3))\n(test NIL (+ NIL 7))\n\n\n### - ###\n(test -7 (- 7))\n(test 7 (- -7))\n(test 6 (- 7 2 -1))\n(test NIL (- NIL 7))\n\n\n### inc ###\n(test 8 (inc 7))\n(test -6 (inc -7))\n(test 0 (inc -1))\n(test 1 (inc 0))\n(test (8 -6 0 1) (let L (7 -7 -1 0) (map inc L) L))\n(test NIL (inc NIL))\n(let N 0\n   (test 1 (inc 'N))\n   (test 1 N)\n   (test 8 (inc 'N 7))\n   (test 8 N) )\n(let L (1 2 3 4)\n   (test 3 (inc (cdr L)))\n   (test (1 3 3 4) L) )\n\n\n### dec ###\n(test 7 (dec 8))\n(test -8 (dec -7))\n(test -1 (dec 0))\n(test (7 -8 -1) (let L (8 -7 0) (map dec L) L))\n(test NIL (dec NIL))\n(let N 7\n   (test 6 (dec 'N))\n   (test 6 N)\n   (test 3 (dec 'N 3))\n   (test 3 N) )\n\n\n### * ###\n(test 6 (* 1 2 3))\n(test -60 (* -5 3 2 2))\n(test NIL (* NIL 7))\n\n\n### */ ###\n(test 6 (*/ 3 4 2))\n(test -247 (*/ 1234 -2 10))\n(test 17 (*/ 100 6))\n(test NIL (*/ 3 4 NIL))\n\n\n### / ###\n(test 4 (/ 12 3))\n(test -5 (/ 60 -3 2 2))\n(test NIL (/ 10 NIL))\n\n\n### % ###\n(test 2 (% 17 5))\n(test -2 (% -17 5))\n(test 1 (% 5 2))\n(test 5 (% 15 10))\n(test 1 (% 15 10 2))\n(test NIL (% NIL 7))\n\n\n### >> ###\n(test 4 (>> 1 8))\n(test 2 (>> 3 16))\n(test 128 (>> -3 16))\n(test -32 (>> -1 -16))\n(test 0 (>> 1 -1))\n\n\n### lt0 ###\n(test -2 (lt0 -2))\n(test NIL (lt0 7))\n(test NIL (lt0 0))\n\n\n### le0 ###\n(test -7 (le0 -7))\n(test NIL (le0 2))\n(test 0 (le0 0))\n\n\n### ge0 ###\n(test 7 (ge0 7))\n(test NIL (ge0 -2))\n(test 0 (ge0 0))\n\n\n### gt0 ###\n(test 7 (gt0 7))\n(test NIL (gt0 -2))\n(test NIL (gt0 0))\n\n\n### abs ###\n(test 7 (abs -7))\n(test 7 (abs 7))\n(test NIL (abs NIL))\n\n\n### bit? ###\n(test 7 (bit? 7 15 255))\n(test NIL (bit? 1 2))\n(test 1 (bit? 1 3))\n(test 1 (bit? 1 -3))\n(test 1 (bit? -1 3))\n(test 1 (bit? -1 -3))\n(test (hex \"100000000000000000000\")\n   (bit? (hex \"100000000000000000000\") (hex \"300000000000000000000\")) )\n\n\n### & ###\n(test 2 (& 6 3))\n(test 1 (& 7 3 1))\n(test NIL (& 7 NIL))\n(test 1 (& 1 3))\n(test 1 (& 1 -3))\n(test 1 (& -1 3))\n(test 1 (& -1 -3))\n(test (hex \"100000000000000000000\")\n   (& (hex \"100000000000000000000\") (hex \"300000000000000000000\")) )\n\n\n### | ###\n(test 15 (| 1 2 4 8))\n(test NIL (| NIL 1))\n(test 3 (| 1 2))\n(test 3 (| 1 -2))\n(test 3 (| -1 2))\n(test 3 (| -1 -2))\n(test (hex \"300000000000000000000\")\n   (| (hex \"100000000000000000000\") (hex \"200000000000000000000\")) )\n\n\n### x| ###\n(test 5 (x| 2 7))\n(test 4 (x| 2 7 1))\n(test NIL (x| NIL 1))\n(test 3 (x| 1 2))\n(test 3 (x| 1 -2))\n(test 3 (x| -1 2))\n(test 3 (x| -1 -2))\n(test (hex \"300000000000000000000\")\n   (x| (hex \"100000000000000000000\") (hex \"200000000000000000000\")) )\n\n\n### sq ###\n(test 36 (sq 6))\n(test 4 (sq -6 10))\n\n### sqrt ###\n(test 8 (sqrt 64))\n(test 4 (sqrt 21))\n(test 5 (sqrt 21 T))\n(test 31 (sqrt 1000))\n(test 32 (sqrt 1000 T))\n(test 458 (sqrt 2100 100))\n(test 479 (sqrt 230000))\n(test 480 (sqrt 2300 100))\n(test 800 (sqrt 6400 100))\n(test 100000000000000000000\n   (sqrt 10000000000000000000000000000000000000000) )\n(test NIL (sqrt NIL))\n\n\n### seed rand hash ###\n(test -417605464 (seed \"init string\"))\n(test -1061886707 (rand))\n(test 822065436 (rand))\n(test 5 (rand 3 9))\n(test 3 (rand 3 9))\n(test 1 (hash 0))\n(test 723519 (hash 1))\n(test 870326 (hash 7))\n(test 528545 (hash 1234567))\n(test 987436 (hash (1 \"abc\" X)))\n"
  },
  {
    "path": "test/src/db.l",
    "content": "# 21aug22 Software Lab. Alexander Burger\n\n(test T (pool (tmp \"db\") (2 3)))\n\n### extern ###\n(test NIL (extern (box)))\n(test *DB (extern \"1\"))\n\n\n### ext? ###\n(test *DB (ext? *DB))\n(test NIL (ext? 'abc))\n(test NIL (ext? \"abc\"))\n(test NIL (ext? 123))\n\n\n### touch ###\n(test *DB (touch *DB))\n(rollback)\n\n\n### id ###\n(test *DB (id 1))\n(test 1 (id *DB))\n(let I (id 3 4)\n   (test (3 . 4) (id I T)) )\n\n\n### wipe ###\n(set *DB (1 2 3 4))\n(put *DB 'a 1)\n(put *DB 'b 2)\n(test (1 2 3 4) (val *DB))\n(test '((2 . b) (1 . a)) (getl *DB))\n(wipe *DB)\n(test (1 2 3 4) (val *DB))\n(test '((2 . b) (1 . a)) (getl *DB))\n(rollback)\n\n\n### lieu ###\n(test NIL (lieu *DB))\n(test *DB (val *DB) (lieu *DB))\n(rollback)\n\n\n### commit rollback ###\n(let (X (new 1)  Y (new 2))\n   (set X 1  Y 2)\n   (commit)\n   (test 1 (val X))\n   (test 2 (val Y))\n   (set X 111)\n   (set Y 222)\n   (test 111 (val X))\n   (test 222 (val Y))\n   (rollback)\n   (test 1 (val X))\n   (test 2 (val Y)) )\n\n\n### mark ###\n(test NIL (mark *DB))\n(test NIL (mark *DB T))\n(test T (mark *DB))\n(test T (mark *DB 0))\n(test NIL (mark *DB))\n\n\n### dbck ###\n(test NIL (dbck))\n\n(rollback)\n"
  },
  {
    "path": "test/src/ext.l",
    "content": "# 03apr23 Software Lab. Alexander Burger\n\n### ext:Snx ###\n(test \"PSLSFSNTSNNLSF\"\n   (ext:Snx \"PicoLisp is not Common Lisp\") )\n(test \"PSLSFSNT\"\n   (ext:Snx \"PicoLisp is not Common Lisp\" 8) )\n\n\n### ext:Base64 ###\n(test \"TQ==\"\n   (pipe (ext:Base64 77) (line T)) )\n(test \"AQID\"\n   (pipe (ext:Base64 1 2 3) (line T)) )\n(test '(\"A\" \"Q\" \"I\" \"D\" \"B\" \"A\" \"U\" \"G\" \"B\" \"w\" \"=\" \"=\")\n   (make\n      (let L (1 2 3 4 5 6 7)\n         (output (link @@)\n            (while L\n               (ext:Base64 (++ L) (++ L) (++ L)) ) ) ) ) )\n\n(test (77)\n   (pipe\n      (prinl \"TQ==\")\n      (make (while (ext:Base64) (link @))) ) )\n(test (1 2 3)\n   (pipe\n      (prinl \"AQID\")\n      (make (while (ext:Base64) (link @))) ) )\n(test (1 2 3 4 5 6 7)\n   (let L '(\"A\" \"Q\" \"I\" \"D\" \"B\" \"A\" \"U\" \"G\" \"B\" \"w\" \"=\" \"=\")\n      (make\n         (input (++ L)\n            (while (ext:Base64) (link @)) ) ) ) )\n\n(let F (tmp \"base64\")\n   (out F\n      (pipe\n         (prin \"Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark\")\n         (while (ext:Base64 (rd 1) (rd 1) (rd 1))) ) )\n\n   (test \"UG9seWZvbiB6d2l0c2NoZXJuZCBhw59lbiBNw6R4Y2hlbnMgVsO2Z2VsIFLDvGJlbiwgSm9naHVydCB1bmQgUXVhcms=\"\n      (in F (line T)) )\n\n   (test \"Polyfon zwitschernd aßen Mäxchens Vögel Rüben, Joghurt und Quark\"\n      (pipe\n         (in F (while (ext:Base64) (wr @)))\n         (line T) ) ) )\n"
  },
  {
    "path": "test/src/flow.l",
    "content": "# 09feb25 Software Lab. Alexander Burger\n\n### quote ###\n(test (1 2 3) (quote 1 2 3))\n\n\n### as ###\n(test NIL (as (= 3 4) A B C))\n(test '(A B C) (as (= 3 3) A B C))\n\n\n### lit ###\n(test 123 (lit 123))\n(test NIL (lit NIL))\n(test T (lit T))\n(test (1) (lit '(1)))\n(test ''\"abc\" (lit \"abc\"))\n(test ''a (lit 'a))\n(test (1 2 3) (lit '(1 2 3)))\n(test ''(a b c) (lit '(a b c)))\n\n\n### eval ###\n(test 6 (eval (list '+ 1 2 3)))\n(let (X 'Y  Y 7)\n   (test 7 (eval X)) )\n(when 3\n   ((quote (N)\n         (when 2\n            (test 1 N)\n            (test 2 (eval '@ 1))\n            (test 3 (eval '@ 2)) ) )\n      1 ) )\n\n\n### run ###\n(test 6 (run (list (list '+ 1 2 3))))\n(test 5\n   (when 2\n      ((quote (N)\n            (and 1 (run '((+ N @)) 1)) )\n         3 ) ) )\n\n\n### def ###\n(test '\"a\"\n   (def '\"a\" '((X Y) (* X (+ X Y)))) )\n(test '((X Y) (* X (+ X Y)))\n   \"a\" )\n\n\n### de ###\n(test '\"b\"\n   (de \"b\" (X Y) (* X (+ X Y))) )\n(test '((X Y) (* X (+ X Y)))\n   \"b\" )\n\n\n### dm ###\n(off \"+Cls\" \"+A\")\n(class \"+Cls\" \"+A\")\n\n(test '\"foo>\"\n   (dm \"foo>\" (X Y)\n      (* X (+ X Y)) ) )\n(test '\"foo>\"\n   (dm (\"foo>\" . \"+Cls\") (X Y)\n      (* X (+ X Y)) ) )\n(test '((\"foo>\" (X Y) (* X (+ X Y))) \"+A\")\n   \"+Cls\" )\n\n\n### box ###\n(let X (box '(A B C))\n   (test X (box? X))\n   (test '(A B C) (val X)) )\n\n\n### new type isa method meth send try ###\n(let X (new '(\"+Cls\"))\n   (test X (box? X))\n   (test 21 (\"foo>\" X 3 4))\n   (test '(\"+Cls\") (type X))\n   (test X (isa '\"+Cls\" X))\n   (test NIL (isa '(A B C) X))\n   (test '((X Y) (* X (+ X Y)))\n      (method '\"foo>\" X) )\n   (test meth \"foo>\")\n   (test 21 (send '\"foo>\" X 3 4))\n   (test NIL (try '\"bar>\" X))\n   (test 21 (try '\"foo>\" X 3 4)) )\n\n\n### super ###\n(off \"+Sub\")\n(class \"+Sub\" \"+Cls\")\n\n(dm (\"foo>\" . \"+Sub\") (X Y)\n   (super X Y) )\n(let X (new '(\"+Sub\"))\n   (test 21 (\"foo>\" X 3 4)) )\n\n\n### super ###\n(off \"+Pref\")\n(class \"+Pref\")\n\n(dm (\"foo>\" . \"+Pref\") (X Y)\n   (extra X Y) )\n(let X (new '(\"+Pref\" \"+Sub\"))\n   (test 21 (\"foo>\" X 3 4)) )\n\n\n### with ###\n(let X (box)\n   (put X 'a 1)\n   (put X 'b 2)\n   (test (1 2)\n      (with X (list (: a) (: b))) ) )\n\n\n### bind ###\n(let X 123\n   (test \"Hello\"\n      (bind 'X\n         (setq X \"Hello\")\n         X ) )\n   (test (3 4 12)\n      (bind '((X . 3) (Y . 4))\n         (list X Y (* X Y)) ) ) )\n\n\n### job ###\n(off \"tst\")\n\n(de \"tst\" ()\n   (job '((A . 0) (B . 0))\n      (cons (inc 'A) (inc 'B 2)) ) )\n\n(test (1 . 2) (\"tst\"))\n(test (2 . 4) (\"tst\"))\n(test (3 . 6) (\"tst\"))\n\n\n### let let? use ###\n(let N 1\n   (test NIL (let? N NIL N))\n   (test 7 (let? N 7 N))\n   (use N\n      (setq N 2)\n      (let N 3\n         (test 3 N) )\n      (test 2 N) )\n   (test 1 N) )\n(let N 1\n   (use (N)\n      (setq N 2)\n      (let (N 3)\n         (test 3 N) )\n      (test 2 N) )\n   (test 1 N) )\n\n(test (1 2 (3) 4)\n   (let (A 1  (B . C) (2 3)  D 4)\n      (list A B C D) ) )\n(test (1 (2 3) 4 (7 8 9))\n   (let (((A . B) (C) . D) '((1 2 3) (4 5 6) 7 8 9))\n      (list A B C D) ) )\n(test (1 8)\n   (let (((A . NIL) NIL NIL D) '((1 2 3) (4 5 6) 7 8 9))\n      (list A D) ) )\n\n### and ###\n(test 7 (and T 123 7))\n(test NIL (and NIL 123))\n\n\n### or ###\n(test NIL (or NIL))\n(test 7 (or NIL 7 123))\n\n\n### nand ###\n(test NIL (nand T 123 7))\n(test T (nand NIL 123))\n\n\n### nor ###\n(test T (nor NIL))\n(test NIL (nor NIL 7 123))\n\n\n### xor ###\n(test T (xor T NIL))\n(test T (xor NIL T))\n(test NIL (xor NIL NIL))\n(test NIL (xor T T))\n\n\n### bool ###\n(test T (bool 'a))\n(test T (bool 123))\n(test NIL (bool NIL))\n\n\n### not ###\n(test T (not NIL))\n(test NIL (not T))\n(test NIL (not 'a))\n\n\n### nil ###\n(test NIL (nil (+ 1 2 3)))\n\n\n### t ###\n(test T (t (+ 1 2 3)))\n\n\n### prog ###\n(let N 7\n   (test 3\n      (prog (dec 'N) (dec 'N) (dec 'N) (dec 'N) N) ) )\n\n\n### prog1 prog2 ###\n(test 1 (prog1 1 2 3))\n(test 2 (prog2 1 2 3))\n\n\n### if ###\n(test 1 (if (= 3 3) 1 2))\n(test 2 (if (= 3 4) 1 2))\n\n\n### ifn ###\n(test 2 (ifn (= 3 3) 1 2))\n(test 1 (ifn (= 3 4) 1 2))\n\n\n### if2 ###\n(test 'both\n   (if2 T T 'both 'first 'second 'none) )\n(test 'first\n   (if2 T NIL 'both 'first 'second 'none) )\n(test 'second\n   (if2 NIL T 'both 'first 'second 'none) )\n(test 'none\n   (if2 NIL NIL 'both 'first 'second 'none) )\n(test 4 (if2 3 4 @))\n(test 7 (and 7 (if2 @ @ @)))\n(test 7 (and 7 (if2 @ NIL 1 @)))\n(test 7 (and 7 (if2 NIL @ 1 2 @)))\n\n\n### if@@ ###\n(test (1 3 . 4)\n   (if@@ (inc (setq @@ 3))\n      (cons 1 @@ @)\n      (cons 2 @@ @) ) )\n(test (2 NIL)\n   (if@@ (off @@)\n      (cons 1 @@ @)\n      (cons 2 @@ @) ) )\n\n### when ###\n(test 7 (when (= 3 3) 7))\n(test NIL (when (= 3 4) 7))\n\n\n### unless ###\n(test NIL (unless (= 3 3) 7))\n(test 7 (unless (= 3 4) 7))\n\n\n### cond ###\n(test 1 (cond ((= 3 3) 1) (T 2)))\n(test 2 (cond ((= 3 4) 1) (T 2)))\n\n\n### nond ###\n(test 2 (nond ((= 3 3) 1) (NIL 2)))\n(test 1 (nond ((= 3 4) 1) (NIL 2)))\n(test (1 . a)\n   (nond ((num? 'a) (cons 1 'a)) (NIL (cons 2 @))) )\n(test (2 . 7)\n   (nond ((num? 7) (cons 1 7)) (NIL (cons 2 @))) )\n\n\n### case ###\n(test 1 (case 'a (a 1) ((b c) 2) (T 3)))\n(test 2 (case 'b (a 1) ((b c) 2) (T 3)))\n(test 2 (case '\"b\" (a 1) ((b c) 2) (T 3)))\n(test 2 (case 'c (a 1) ((b c) 2) (T 3)))\n(test 2 (case \"c\" (a 1) ((b c) 2) (T 3)))\n(test 3 (case 'd (a 1) ((b c) 2) (T 3)))\n\n(test 3 (casq 'a (\"a\" 1) ((\"b\" \"c\") 2) (T 3)))\n(test 3 (casq 'b (\"a\" 1) ((\"b\" \"c\") 2) (T 3)))\n(test 2 (casq '\"b\" (\"a\" 1) ((\"b\" \"c\") 2) (T 3)))\n(test 2 (casq '\"c\" (\"a\" 1) ((\"b\" \"c\") 2) (T 3)))\n(test 3 (casq 'b (a 1) (\"b\" 2) ((a b c) 3) (c 4)))\n\n\n### state ###\n(off \"tst\")\n\n(de \"tst\" ()\n   (job '((Cnt . 4))\n      (state '(start)\n         (start 'run\n            (link 'start) )\n         (run (and (gt0 (dec 'Cnt)) 'run)\n            (link 'run) )\n         (run 'stop\n            (link 'run) )\n         (stop 'start\n            (setq Cnt 4)\n            (link 'stop) ) ) ) )\n\n(test '(start run run run run stop  start run run run run stop)\n   (make (do 12 (\"tst\"))) )\n(test '(start run run)\n   (make (do 3 (\"tst\"))) )\n\n\n### while ###\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 0\n         (while (>= 7 (inc 'N))\n            (link N) ) ) ) )\n\n\n### until ###\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 0\n         (until (> (inc 'N) 7)\n            (link N) ) ) ) )\n\n\n### loop ###\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 1\n         (loop\n            (link N)\n            (T (> (inc 'N) 7)) ) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 1\n         (loop\n            (link N)\n            (NIL (>= 7 (inc 'N))) ) ) ) )\n\n(test\n   '(a . 3)\n   (loop (T NIL (cons @ 1)) (NIL 'a (cons @ 2)) (NIL NIL (cons @ 3))) )\n\n\n### do ###\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 0\n         (do 7\n            (link (inc 'N)) ) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (let N 1\n         (do T\n            (link N)\n            (T (> (inc 'N) 7)) ) ) ) )\n\n\n### at ###\n(test (1 2 3 - 4 5 6 - 7 8 9 -)\n   (make\n      (let N 0\n         (do 9\n            (link (inc 'N))\n            (at (0 . 3) (link '-)) ) ) ) )\n\n\n### for ###\n(test (1 2 3 4 5 6 7)\n   (make\n      (for N (1 2 3 4 5 6 7)\n         (link N) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (for (N . X) '(a b c d e f g)\n         (link N) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (for N 7\n         (link N) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (for (N 1 (>= 7 N) (inc N))\n         (link N) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (for ((N . X) 7 (gt0 X) (dec X))\n         (link N) ) ) )\n(test (1 2 3 4 5 6 7)\n   (make\n      (for (N 1 T)\n         (link N)\n         (T (> (inc 'N) 7)) ) ) )\n\n\n### tco tc ###\n(test (8 7 6 5 4 3 2 1 OK)\n   (make\n      (let N 8\n         (tco (N)\n            (if (=0 N)\n               (link 'OK)\n               (link N)\n               (tc (dec N)) ) ) ) ) )\n\n(use Idx\n   (balance 'Idx (range 1 7))\n   (test (4 2 1 3 6 5 7)\n      (make\n         (recur (Idx)\n            (tco (Idx)\n               (when Idx\n                  (link (car Idx))\n                  (recurse (cadr Idx))\n                  (tc (cddr Idx)) ) ) ) ) ) )\n\n\n### catch throw ###\n(test NIL (catch NIL (throw)))\n(test 'b (catch 'a 'b))\n(test NIL @@)\n(test 'b (catch 'a (throw 'a 'b)))\n(test T @@)\n(test 123 (catch T (throw 'a 123)))\n(test \"Undefined\"\n   (catch '(\"Undefined\") (mist)) )\n(test T @@)\n(test \"No such file\"\n   (catch '(\"No such file\")\n      (in \"doesntExist\" (foo)) ) )\n(test 6\n   (casq\n      (catch '(\"No such file\" \"Undefined\" \"expected\")\n         (+ 1 2 3) )\n      (\"No such file\" (shouldNotComeHere))\n      (\"Undefined\" (shouldNotComeHere))\n      (\"expected\" (shouldNotComeHere))\n      (T @) ) )\n\n\n### finally ###\n(test 'B\n   (let X 'A\n      (catch NIL\n         (finally (setq X 'B)\n            (setq X 'C)\n            (throw)\n            (setq X 'D) ) )\n      X ) )\n\n\n### co yield ###\n(test (1 2 3 (1 2 3))\n   (make\n      (do 4\n         (link\n            (co \"co123\"\n               (make\n                  (yield (link 1))\n                  (yield (link 2))\n                  (yield (link 3)) ) ) ) ) ) )\n\n\n### exec ###\n(test\n   (123 abc)\n   (pipe (exec 'echo 123 \"abc\")\n      (list (read) (read)) ) )\n\n### call ###\n(test T (call \"test\" \"-d\" (path \"@test\")))\n(test NIL (call \"test\" \"-f\" (path \"@test\")))\n\n\n### kill ###\n(test T (kill *Pid 0))\n"
  },
  {
    "path": "test/src/ht.l",
    "content": "# 06oct20 Software Lab. Alexander Burger\n\n### ht:Prin ###\n(test \"1&lt;2&gt;3&amp;äöü&lt;i&gt;ÄÖÜß\"\n   (pipe (ht:Prin \"1<2>3&äöü<i>ÄÖÜß\") (line T)) )\n\n\n### ht:Fmt ###\n(test \"+123&abc&$def&-123&_+1_xyz_+7\"\n   (ht:Fmt 123 \"abc\" 'def '{123} (1 \"xyz\" 7)) )\n\n\n### ht:Pack ###\n(test \"A+B%20C\"\n   (ht:Pack '(\"A\" \"+\" \"B\" \"%\" \"2\" \"0\" \"C\")) )\n(test \"A+B C\"\n   (ht:Pack '(\"A\" \"+\" \"B\" \"%\" \"2\" \"0\" \"C\") T) )\n(test \"a b>c\"\n   (ht:Pack '(\"a\" \"%\" \"2\" \"0\" \"b\" \"&\" \"g\" \"t\" \";\" \"c\") T) )\n(test \"a€z\"\n   (ht:Pack '(\"a\" \"&\" \"#\" \"8\" \"3\" \"6\" \"4\" \";\" \"z\")) )\n(test \"äöü\"\n   (ht:Pack '(\"%\" \"C\" \"3\" \"%\" \"A\" \"4\" \"%\" \"C\" \"3\" \"%\" \"B\" \"6\" \"%\" \"C\" \"3\" \"%\" \"B\" \"C\") T) )\n\n\n### ht:Read ###\n(test NIL\n   (pipe (prin \"abcde\") (ht:Read 0)) )\n(test NIL\n   (pipe (prin \"abcde\") (ht:Read 6)) )\n(test NIL\n   (pipe NIL (ht:Read 3)) )\n(test NIL\n   (pipe (prin \"äö\") (ht:Read 3)) )\n(test '(\"ä\" \"ö\")\n   (pipe (prin \"äö\") (ht:Read 4)) )\n(test '(\"a\" \"b\" \"c\")\n   (pipe (prin \"abcde\") (ht:Read 3)) )\n(test '(\"ä\" \"ö\" \"ü\")\n   (pipe (prin \"äöüxyz\") (ht:Read 6)) )\n\n\n### ht:In ht:Out ###\n(test \"Hello world\"\n   (pipe (ht:Out T (prinl \"Hello world\")) (ht:In T (line T))) )\n"
  },
  {
    "path": "test/src/io.l",
    "content": "# 26may22 Software Lab. Alexander Burger\n\n### path ###\n(test 'task (cadr (in (path \"@lib.l\") (read))))\n(test (char \"+\") (char (path \"+@\")))\n\n\n### read ###\n(test (1 2 3) (~(1 2) 3))\n(test (1 3) (~(1 . 2) 3))\n(test (1 2 3 4) (1 ~(2 3) 4))\n(test (1 2 4) (1 ~(2 . 3) 4))\n(test (1 2 3) [1 2 3])\n(test (1 2 3) (1 2 3]\n(test (1 2 3) (1 2 3)]\n(test (1 (2 3)) (1 (2 3]\n(test (quote 1 (2 (3))) '(1 (2 (3]\n(test (quote 1 (2 (3))) '[1 (2 (3])\n(test (1 abc (d e f))\n   (pipe (prinl \"(1 abc (d e f))\")\n      (read) ) )\n(test '(abc \"=\" def_ghi \"(\" (\"x\" \"y\" \"z\") \"+\" \"-\" 123 \")\")\n   (pipe (prinl \"abc = def_ghi(\\\"xyz\\\"+-123) # Comment\")\n      (make\n         (while (read \"_\" \"#\")\n            (link @) ) ) ) )\n\n\n### wait ###\n(let (*Run NIL  *Cnt 0)\n   (test (1 2 3 4 5 6 7)\n      (make\n         (task -10 0  (link (inc '*Cnt)))\n         (wait NIL (>= *Cnt 7)) ) ) )\n\n\n### peek char ###\n(pipe (prin \"ab\")\n   (test \"a\" (peek))\n   (test \"a\" (char))\n   (test \"b\" (peek))\n   (test \"b\" (char))\n   (test NIL (peek))\n   (test NIL (char)) )\n(test \"A\" (char 65))\n(test 65 (char \"A\"))\n\n\n### skip ###\n(test \"a\"\n   (pipe (prinl \"# Comment\\na\")\n      (skip \"#\") ) )\n(test \"#\"\n   (pipe (prinl \"# Comment\\na\")\n      (skip) ) )\n\n\n### eof ###\n(test T (pipe NIL (eof)))\n(test NIL (pipe (prin \"a\") (eof)))\n(test T (pipe (prin \"a\") (eof T) (eof)))\n\n\n### from till ###\n(test \"cd\"\n   (pipe (prin \"ab.cd:ef\")\n      (from \".\")\n      (till \":\" T) ) )\n\n\n### line ###\n(test '(\"a\" \"b\" \"c\")\n   (pipe (prin \"abc\\n\") (line)) )\n(test \"abc\"\n   (pipe (prin \"abc\") (line T)) )\n(test '(\"abc\" \"def\")\n   (pipe (prin \"abc\\ndef\")\n      (list (line T) (line T)) ) )\n(test '(\"abc\" \"def\")\n   (pipe (prin \"abc\\rdef\")\n      (list (line T) (line T)) ) )\n(test '(\"abc\" \"def\")\n   (pipe (prin \"abc\\r\\ndef\")\n      (list (line T) (line T)) ) )\n(test '(\"a\" \"bc\" \"def\")\n   (pipe (prin \"abcdef\")\n      (line T 1 2 3) ) )\n\n\n### any ###\n(test '(a b c d) (any \"(a b # Comment\\nc d)\"))\n(test \"A String\" (any \"\\\"A String\\\"\"))\n\n\n### sym ###\n(test \"(abc \\\"Hello\\\" 123)\"\n   (sym '(abc \"Hello\" 123)) )\n\n\n### str ###\n(test '(a (1 2) b)\n   (str \"a (1 2) b\") )\n(test '(a (1 2))\n   (str \"a (1 2) # b\") )\n(test \"a \\\"Hello\\\" DEF\"\n   (str '(a \"Hello\" DEF)) )\n\n\n### load ###\n(test 6 (load \"-* 1 2 3\"))\n\n\n### in out err ###\n(out (tmp \"file\")\n   (println 123)\n   (println 'abc)\n   (println '(d e f)) )\n(in (tmp \"file\")\n   (test 123 (read))\n   (in (tmp \"file\")\n      (test 123 (read))\n      (test 'abc (in -1 (read))) )\n   (test '(d e f) (read)) )\n\n(let Err (tmp \"err\")\n   (test 1 (err Err (msg 1)))\n   (test 2 (err (pack \"+\" Err) (msg 2)))\n   (test \"1\\n2\\n\" (in Err (till NIL T))) )\n\n\n### input output ###\n(test \"A\" (input \"A\" (char)))\n(test '(+ 2 (* 3 4))\n   (let S (chop \"(+ 2 (* 3 4))\") (input (++ S) (read))) )\n\n(test \"(+ 2 (* 3 4))\"\n   (pack (make (output (link @@) (print '(+ 2 (* 3 4)))))) )\n\n\n### pipe ###\n(test 123 (pipe (println 123) (read)))\n(test \"ABC DEF GHI\"\n   (pipe\n      (out '(tr \"[a-z]\" \"[A-Z]\") (prinl \"abc def ghi\"))\n      (line T) ) )\n\n\n### open close ###\n(let F (open (tmp \"file\"))\n   (test 123 (in F (read)))\n   (test 'abc (in F (read)))\n   (test '(d e f) (in F (read)))\n   (test F (close F)) )\n\n\n### echo ###\n(out (tmp \"echo\")\n   (in (tmp \"file\")\n      (echo) ) )\n(in (tmp \"echo\")\n   (test 123 (read))\n   (test 'abc (read))\n   (test '(d e f) (read)) )\n(let F (tmp \"file\")\n   (test \"12\"\n      (pipe (in F (echo 2))\n         (line T) ) )\n   (test \"23\"\n      (pipe (in F (echo 1 2))\n         (line T) ) ) )\n\n\n### prin prinl space print printsp println ###\n(out (tmp \"prin\")\n   (prin 1)\n   (prinl 2)\n   (space)\n   (print 3)\n   (printsp 4)\n   (println 5) )\n(test (12 \"\\n\" \" \" 34 5)\n   (in (tmp \"prin\")\n      (list (read) (char) (char) (read) (read)) ) )\n\n\n### flush rewind ###\n(out (tmp \"prin\")\n   (prinl \"abc\")\n   (flush)\n   (test \"abc\" (in (tmp \"prin\") (line T)))\n   (rewind) )\n(out (tmp \"prin\") (prinl \"def\"))\n(test \"def\" (in (tmp \"prin\") (line T)))\n\n\n### ext rd pr ###\n(let L (list (id 1 2) (cons (id 3 9) 'a) (cons (id 2 7) 'b))\n   (let L5 (list (id 6 2) (cons (id 8 9) 'a) (cons (id 7 7) 'b))\n      (out (tmp \"ext\")\n         (ext 5 (pr L5)) )\n      (test L\n         (in (tmp \"ext\") (rd)) )\n      (test L5\n         (in (tmp \"ext\") (ext 5 (rd))) ) ) )\n\n(pipe\n   (for N 4096\n      (pr N) )\n   (for N 4096\n      (test N (rd)) ) )\n(pipe\n   (for C 4096\n      (pr (char C)) )\n   (for C 4096\n      (test C (char (rd))) ) )\n(pipe\n   (pr (7 \"abc\" (1 2 3) 'a))\n   (test (7 \"abc\" (1 2 3) 'a) (rd)) )\n(test \"def\"\n   (out (tmp \"pr\")\n      (pr 'abc \"EOF\" 123 \"def\") ) )\n(test '(abc \"EOF\" 123 \"def\")\n   (in (tmp \"pr\")\n      (make\n         (use X\n            (until (== \"EOF\" (setq X (rd \"EOF\")))\n               (link X) ) ) ) ) )\n\n(let N 1\n   (do 200\n      (test N\n         (pipe (pr N) (rd)) )\n      (test (- N)\n         (pipe (pr (- N)) (rd)) )\n      (setq N (* 2 N))\n      (wait 10) ) )\n\n### wr ###\n(test 3\n   (out (tmp \"wr\")\n      (wr 1 2 3) ) )\n(test (hex \"010203\")\n   (in (tmp \"wr\")\n      (rd 3) ) )\n\n(for I 100\n   (let (L (need I \"01\")  N (hex (pack L)))\n      (test N\n         (pipe (apply wr (mapcar format L)) (rd I)) )\n      (wait 10) ) )\n"
  },
  {
    "path": "test/src/main.l",
    "content": "# 13dec23 Software Lab. Alexander Burger\n\n### Evaluation ###\n(test 2\n   (when 1\n      ('((N) N) (and 2))\n      @ ) )\n\n### alarm ###\n(let N 6\n   (alarm 1 (inc 'N))\n   (test 6 N)\n   (wait 2000)\n   (test 7 N)\n   (alarm 0) )\n\n\n### sigio ###\n(unless (member *OS '(\"SunOS\" \"OpenBSD\" \"Cygwin\" \"AIX\" \"HP-UX\" \"IRIX64\"))\n   (sigio (setq \"SigSock\" (port T 0 \"SigPort\"))\n      (setq \"SigVal\" (udp \"SigSock\")) )\n   (udp \"localhost\" \"SigPort\" '(a b c))\n   (wait 200)\n   (test '(a b c) \"SigVal\")\n   (close \"SigSock\") )\n\n\n### kids ###\n(test\n   (make\n      (do 7\n         (link (or (fork) (wait 2000) (bye))) ) )\n   (flip (kids)) )\n\n### protect ###\n(test NIL (pipe (prog (kill *Pid) (pr 7)) (rd)))\n(test 7 (pipe (protect (kill *Pid) (pr 7)) (rd)))\n\n\n### quit ###\n(test \"Quit\" (catch '(\"Quit\") (quit \"Quit\")))\n\n\n### byte ###\n(test (18 18)\n   (let A (adr (81064793292668929))  # cnt 1200000000000012\n      (list (byte A) (byte (+ A 7))) ) )\n\n(test \"ABC\"\n   (let P (native \"@\" \"malloc\" 'P 8)\n      (byte P (char \"A\"))\n      (byte (inc P) (char \"B\"))\n      (byte (+ P 2) (char \"C\"))\n      (byte (+ P 3) 0)\n      (prog1\n         (native \"@\" \"strdup\" 'S P)\n         (native \"@\" \"free\" NIL P) ) ) )\n\n\n### adr ###\n(let (X (box 7)  L (123))\n   (test 7 (val (adr (adr X))))\n   (test 123 (car (adr (adr L)))) )\n\n### env ###\n(setq *E (env))\n(test NIL *E)\n\n(let (A 1 B 2)\n   (setq *E (env)) )\n(test '((A . 1) (B . 2)) *E)\n\n(let (A 1 B 2)\n   (setq *E (env '(A B))) )\n(test '((B . 2) (A . 1)) *E)\n\n(let (A 1 B 2)\n   (setq *E (env 'X 7 '(A B (C . 3)) 'Y 8)) )\n(test '((Y . 8) (C . 3) (B . 2) (A . 1) (X . 7)) *E)\n\n\n### trail ###\n(when trail\n   (let\n      (F '((A B) (G (inc A) (dec B)))\n         G '((X Y) (trail T)) )\n      (test '(@X (F 3 4) A 3 B 4 (G (inc A) (dec B)) X 4 Y 3)\n         (F 3 4) ) ) )\n\n### up ###\n(test 1\n   (let N 1\n      ((quote (N) (up N)) 2) ) )\n(test 7\n   (let N 1\n      ((quote (N) (up N 7)) 2)\n      N ) )\n\n\n### sys ###\n(test \"PicoLisp\" (sys \"TEST\" \"PicoLisp\"))\n(test \"PicoLisp\" (sys \"TEST\"))\n\n\n### args next arg rest ####\n(test '(T 1 3 (2 3 4))\n   (let foo '(@ (list (args) (next) (arg 2) (rest)))\n      (foo 1 2 3 4) ) )\n\n(test (7 NIL)\n   ((quote @ (list (next) (next))) 7) )\n\n\n### usec ###\n(let U (usec)\n   (wait 400)\n   (test 4 (*/ (- (usec) U) 100000)) )\n\n\n### pwd ###\n(test *PWD (pwd))\n\n\n### cd ###\n(chdir \"/\"\n   (test \"/\" (pwd)) )\n\n\n### info ###\n(test '(T . @) (info \"@test\"))\n(test (5 . @)\n   (out (tmp \"info\") (prinl \"info\"))\n   (info (tmp \"info\")) )\n\n\n### file ###\n(test (cons (tmp) \"file\" 1)\n   (out (tmp \"file\") (println '(file)))\n   (load (tmp \"file\")) )\n\n\n### dir ###\n(call \"mkdir\" \"-p\" (tmp \"dir\"))\n(out (tmp \"dir/.abc\"))\n(out (tmp \"dir/a\"))\n(out (tmp \"dir/b\"))\n(out (tmp \"dir/c\"))\n\n(test '(\"a\" \"b\" \"c\") (sort (dir (tmp \"dir\"))))\n(test '(\".\" \"..\" \".abc\" \"a\" \"b\" \"c\") (sort (dir (tmp \"dir\") T)))\n\n\n### cmd ###\n(cmd \"test\")\n(test \"test\" (cmd))\n\n\n### argv ###\n(test '(\"abc\" \"123\")\n   (pipe\n      (call *CMD \"-prog (println (argv)) (bye)\" \"abc\" 123)\n      (read) ) )\n(test '(\"abc\" \"123\")\n   (pipe\n      (call *CMD \"-prog (argv A B) (println (list A B)) (bye)\" \"abc\" 123)\n      (read) ) )\n\n\n### opt ###\n(test '(\"abc\" \"123\")\n   (pipe\n      (call *CMD \"-prog (println (list (opt) (opt))) (bye)\" \"abc\" 123)\n      (read) ) )\n(test \"abc\"\n   (pipe\n      (call *CMD \"-de f () (println (opt))\" \"-f\" \"abc\" \"-bye\")\n      (read) ) )\n\n\n### date time ###\n(use (Dat1 Tim1 Dat2 Tim2 D1 T1 D2 T2)\n   (until\n      (=\n         (setq Dat1 (date)  Tim1 (time T))\n         (prog\n            (setq\n               Dat2 (date T)\n               Tim2 (time T)\n               D1 (in '(date \"+%Y %m %d\") (list (read) (read) (read)))\n               T1 (in '(date \"+%H %M %S\") (list (read) (read) (read)))\n               D2 (in '(date \"-u\" \"+%Y %m %d\") (list (read) (read) (read)))\n               T2 (in '(date \"-u\" \"+%H %M %S\") (list (read) (read) (read))) )\n            (time) ) ) )\n   (test Tim1 (time T1))\n   (test Tim1 (apply time T1))\n   (test Tim2 (time T2))\n   (test Dat1 (date D1))\n   (test Dat1 (apply date D1))\n   (test Dat2 (date D2)) )\n\n(test (2000 7 15) (date 730622))\n(test 730622 (date 2000 7 15))\n(test 730622 (date (2000 7 15)))\n(test NIL (date NIL))\n\n(test (11 17 23) (time 40643))\n(test 40643 (time 11 17 23))\n(test 40643 (time (11 17 23)))\n(test NIL (time NIL))\n"
  },
  {
    "path": "test/src/net.l",
    "content": "# 06oct20 Software Lab. Alexander Burger\n\n### port listen connect ###\n(test '(a b c)\n   (let P (port 0 \"ListenPort\")\n      (unless (fork)\n         (close P)\n         (until (connect \"localhost\" \"ListenPort\")\n            (wait 80) )\n         (out @ (pr '(a b c)))\n         (bye) )\n      (prog1\n         (in (listen P) (rd))\n         (close P) ) ) )\n\n\n### udp ###\n(test '(a b c)\n   (let P (port T 0 \"UdpPort\")\n      (if (fork)\n         (udp P)\n         (close P)\n         (wait 400)\n         (udp \"localhost\" \"UdpPort\" '(a b c))\n         (bye) ) ) )\n"
  },
  {
    "path": "test/src/subr.l",
    "content": "# 21may25 Software Lab. Alexander Burger\n\n### c[ad]*r ###\n(let L '(1 2 3 4 5)\n   (test 1 (car L))\n   (test (2 3 4 5) (cdr L))\n   (test 2 (cadr L))\n   (test (3 4 5) (cddr L))\n   (test 3 (caddr L))\n   (test (4 5) (cdddr L))\n   (test 4 (cadddr L))\n   (test (5) (cddddr L)) )\n(let L '((1 2 3) (4 5))\n   (test 1 (caar L))\n   (test (2 3) (cdar L))\n   (test 2 (cadar L))\n   (test (3) (cddar L))\n   (test 4 (caadr L))\n   (test (5) (cdadr L)) )\n(let L '(((1 2)))\n   (test 1 (caaar L))\n   (test (2) (cdaar L)) )\n\n\n### nth ###\n(test '(b c d) (nth '(a b c d) 2))\n(test '(c) (nth '(a (b c) d) 2 2))\n\n\n### con ###\n(let C (1 . a)\n   (test '(b c d) (con C '(b c d)))\n   (test (1 b c d) C) )\n\n\n### cons ###\n(test (1 . 2) (cons 1 2))\n(test '(a b c d) (cons 'a '(b c d)))\n(test '((a b) c d) (cons '(a b) '(c d)))\n(test '(a b c . d) (cons 'a 'b 'c 'd))\n\n\n### conc ###\n(let (A (1 2 3)  B '(a b c))\n   (test (1 2 3 a b c) (conc A B))\n   (test (1 2 3 a b c) A) )\n\n(test (1 2 3 4 5 6)\n   (conc (1 2 3) NIL (4 5 6)) )\n\n\n### circ ###\n(let C (circ 'a 'b 'c)\n   (test '(a b c . @) C)\n   (test T (== C (cdddr C))) )\n\n\n### rot ###\n(test (4 1 2 3) (rot (1 2 3 4)))\n(test (3 1 2 4 5 6) (rot (1 2 3 4 5 6) 3))\n(test (3 1 2 . @Z) (rot (1 2 3 .)))\n\n\n### list ###\n(test (1 2 3 4) (list 1 2 3 4))\n(test '(a (2 3) \"OK\") (list 'a (2 3) \"OK\"))\n\n\n### need ###\n(test '(NIL NIL NIL NIL NIL) (need 5))\n(test '(NIL NIL a b c) (need 5 '(a b c)))\n(test '(a b c NIL NIL) (need -5 '(a b c)))\n(test '(\" \" \" \" a b c) (need 5 '(a b c) \" \"))\n(test (0 0 0) (need 3 0))\n\n\n### range ###\n(test (1 2 3 4 5 6) (range 1 6))\n(test (6 5 4 3 2 1) (range 6 1))\n(test (-3 -2 -1 0 1 2 3) (range -3 3))\n(test (3 1 -1 -3) (range 3 -3 2))\n(test (-3 -2 -1) (range -3 -1))\n\n\n### full ###\n(test T (full (1 2 3)))\n(test NIL (full (1 NIL 3)))\n(test T (full 123))\n\n\n### make made chain link yoke ###\n(let (A 'a I 'i)\n   (test '(x y z z a)\n      (make\n         (link (for A '(x y z) (link A)))\n         (link A) ) )\n   (test (-1 0 1 x 2 y 3 z i a)\n      (make\n         (made (cons 0 (box)))\n         (for (I . A) '(x y z) (link I A))\n         (test (0 1 x 2 y 3 z) (made))\n         (made (cons -1 (made)))\n         (link I A) ) )\n   (test (1 2 3 4 5 6 7 8 9)\n      (make (chain (1 2 3)) (chain (4 5 6) (7 8 9))) )\n   (test '(a b c)\n      (make (yoke 'b) (link 'c) (yoke 'a)) )\n   (test '((x y z) (y z) (z) (z) a)\n      (make (link (for (A '(x y z) A (cdr A)) (link A))) (link A)) )\n   (test (1 (x y z) 2 (y z) 3 (z) (z) i a)\n      (make (link (for ((I . A) '(x y z) A (cdr A)) (link I A))) (link I A)) ) )\n\n\n### copy ###\n(test T (=T (copy T)))\n(let L (1 2 3)\n   (test T (== L L))\n   (test NIL (== L (copy L)))\n   (test T (= L (copy L)))\n   (test T (= (1 2 3) (copy L))) )\n\n\n### mix ###\n(test '(c d a b) (mix '(a b c d) 3 4 1 2))\n(test '(a A d D) (mix '(a b c d) 1 'A 4 'D))\n\n\n### append ###\n(test '(a b c 1 2 3) (append '(a b c) (1 2 3)))\n(test (1 2 3 . 4) (append (1) (2) (3) 4))\n\n\n### delete ###\n(test (1 3)\n   (delete 2 (1 2 3)) )\n(test '((1 2) (5 6) (3 4))\n   (delete (3 4) '((1 2) (3 4) (5 6) (3 4))) )\n(test (1 2 3 1 2 3)\n   (delete 1 (1 1 2 3 1 2 3)) )\n(test (2 3 2 3)\n   (delete 1 (1 1 2 3 1 2 3) T) )\n\n\n### delq ###\n(test '(a c)\n   (delq 'b '(a b c)) )\n(test (1 (2) 3)\n   (delq (2) (1 (2) 3)) )\n(test '(a b c a b c)\n   (delq 'a '(a a b c a b c)) )\n(test '(b c b c)\n   (delq 'a '(a a b c a b c) T) )\n\n\n### replace ###\n(test '(A b b A) (replace '(a b b a) 'a 'A))\n(test '(a B B a) (replace '(a b b a) 'b 'B))\n(test '(B A A B) (replace '(a b b a) 'a 'B 'b 'A))\n\n\n### insert ###\n(test '(a b 777 c d e) (insert 3 '(a b c d e) 777))\n(test (777 a b c d e) (insert 1 '(a b c d e) 777))\n(test '(a b c d e 777) (insert 9 '(a b c d e) 777))\n\n\n### remove ###\n(test '(a b d e) (remove 3 '(a b c d e)))\n(test '(b c d e) (remove 1 '(a b c d e)))\n(test '(a b c d e) (remove 9 '(a b c d e)))\n\n\n### place ###\n(test (7) (place 1 NIL 7))\n(test (7 2 3) (place -1 (1 2 3) 7))\n(test '(a b 777 d e) (place 3 '(a b c d e) 777))\n(test (777 b c d e) (place 1 '(a b c d e) 777))\n(test '(a b c d e 777) (place 9 '(a b c d e) 777))\n\n\n### strip ###\n(test 123 (strip 123))\n(test '(a) (strip '''(a)))\n(test '(a b c) (strip (quote quote a b c)))\n\n\n### split ###\n(test '((1) (2 b) (c 4 d 5) (6))\n   (split (1 a 2 b 3 c 4 d 5 e 6) 'e 3 'a) )\n(test '(\"The\" \"quick\" \"brown\" \"fox\")\n   (mapcar pack (split (chop \"The quick brown fox\") \" \")) )\n\n\n### reverse ###\n(test (4 3 2 1) (reverse (1 2 3 4)))\n(test NIL (reverse NIL))\n\n\n### flip ###\n(test (4 3 2 1) (flip (1 2 3 4)))\n(test (3 2 1 4 5 6) (flip (1 2 3 4 5 6) 3))\n(test NIL (flip NIL))\n\n\n### trim ###\n(test (1 NIL 2) (trim (1 NIL 2 NIL NIL)))\n(test '(a b) (trim '(a b \" \" \" \")))\n\n\n### clip ###\n(test (1 NIL 2) (clip '(NIL 1 NIL 2 NIL)))\n(test '(a \" \" b) (clip '(\" \" a \" \" b \" \")))\n\n\n### head ###\n(test '(a b c) (head 3 '(a b c d e f)))\n(test NIL (head NIL '(a b c d e f)))\n(test NIL (head 0 '(a b c d e f)))\n(test '(a b c d e f) (head 10 '(a b c d e f)))\n(test '(a b c d) (head -2 '(a b c d e f)))\n(test '(a b c) (head '(a b c) '(a b c d e f)))\n\n\n### tail ###\n(test '(d e f) (tail 3 '(a b c d e f)))\n(test '(c d e f) (tail -2 '(a b c d e f)))\n(test NIL (tail NIL '(a b c d e f)))\n(test NIL (tail 0 '(a b c d e f)))\n(test '(a b c d e f) (tail 10 '(a b c d e f)))\n(test '(d e f) (tail '(d e f) '(a b c d e f)))\n\n\n### stem ###\n(test '(\"g\" \"h\" \"i\") (stem (chop \"abc/def\\\\ghi\") \"/\" \"\\\\\"))\n(test '(\"g\" \"h\" \"i\") (stem (chop \"abc/def\\\\ghi\") \"\\\\\" \"/\"))\n\n\n### fin ###\n(test 'a (fin 'a))\n(test 'b (fin '(a . b)))\n(test 'c (fin '(a b . c)))\n(test NIL (fin '(a b c)))\n\n\n### last ###\n(test 4 (last (1 2 3 4)))\n(test '(d e f) (last '((a b) c (d e f))))\n\n\n### == ###\n(test T (== 'a 'a))\n(test T (== 'NIL NIL (val NIL) (car NIL) (cdr NIL)))\n(test NIL (== (1 2 3) (1 2 3)))\n\n\n### n== ###\n(test NIL (n== 'a 'a))\n(test T (n== (1) (1)))\n\n\n### = ###\n(test T (= 6 (* 1 2 3)))\n(test T (= \"a\" \"a\"))\n(test T (== \"a\" \"a\"))\n(test T (= (1 (2) 3) (1 (2) 3)))\n(test T (= (1 . (2 3 .)) (1 . (2 3 .))))\n(test T (= (1 .) (1 .)))\n\n\n### <> ###\n(test T (<> 'a 'b))\n(test T (<> 'a 'b 'b))\n(test NIL (<> 'a 'a 'a))\n\n\n### =0 ###\n(test 0 (=0 (- 6 3 2 1)))\n(test NIL (=0 'a))\n\n\n### =1 ###\n(test 1 (=1 (- 6 3 2)))\n(test NIL (=0 'a))\n\n\n### =T ###\n(test NIL (=T 0))\n(test NIL (=T \"T\"))\n(test T (=T T))\n\n\n### n0 ###\n(test NIL (n0 (- 6 3 2 1)))\n(test T (n0 'a))\n\n\n### nT ###\n(test T (nT 0))\n(test T (nT \"T\"))\n(test NIL (nT T))\n\n\n### < ###\n(test T (< 3 4))\n(test T (< 'a 'b 'c))\n(test T (< 999 'a))\n(test T (< NIL 7 'x (1) T))\n\n\n### <= ###\n(test T (<= 3 3))\n(test T (<= 1 2 3))\n(test T (<= \"abc\" \"abc\" \"def\"))\n\n\n### > ###\n(test T (> 4 3))\n(test T (> 'A 999))\n(test T (> T (1) 'x 7 NIL))\n(test T (> (1 1 .) (1 .)))\n\n\n### >= ###\n(test T (>= 'A 999))\n(test T (>= 3 2 2 1))\n\n\n### max ###\n(test 'z (max 2 'a 'z 9))\n(test (5) (max (5) (2 3) 'X))\n(test 4 (max (2 4 1 3)))\n\n\n### min ###\n(test 2 (min 2 'a 'z 9))\n(test 'X (min (5) (2 3) 'X))\n(test 1 (min (2 4 1 3)))\n\n\n### atom ###\n(test T (atom 123))\n(test T (atom 'a))\n(test T (atom NIL))\n(test NIL (atom (123)))\n\n\n### pair ###\n(test NIL (pair NIL))\n(test (1 . 2) (pair (1 . 2)))\n(test (1 2 3) (pair (1 2 3)))\n\n\n### circ? ###\n(test NIL (circ? 'a))\n(test NIL (circ? (1 2 3)))\n(test (2 3 . @) (circ? (1 . (2 3 .))))\n\n\n### lst? ###\n(test T (lst? NIL))\n(test NIL (lst? T))\n(test T (lst? (1 . 2)))\n(test T (lst? (1 2 3)))\n\n\n### num? ###\n(test 123 (num? 123))\n(test NIL (num? 'abc))\n(test NIL (num? (1 2 3)))\n\n\n### sym? ###\n(test T (sym? 'a))\n(test T (sym? NIL))\n(test NIL (sym? 123))\n(test NIL (sym? '(a b)))\n\n\n### flg? ###\n(test T (flg? T))\n(test T (flg? NIL))\n(test NIL (flg? 0))\n(test T (flg? (= 3 3)))\n(test T (flg? (= 3 4)))\n(test NIL (flg? (+ 3 4)))\n\n\n### member ###\n(test (3 4 5 6) (member 3 (1 2 3 4 5 6)))\n(test (3 . @) (member 3 (1 2 3 4 5 6 .)))\n(test NIL (member 9 (1 2 3 4 5 6)))\n(test NIL (member 9 (1 2 3 4 5 6 .)))\n(test '((d e f) (g h i))\n   (member '(d e f) '((a b c) (d e f) (g h i))) )\n\n\n### memq ###\n(test '(c d e f) (memq 'c '(a b c d e f)))\n(test '(c . @) (memq 'c '(a b c d e f .)))\n(test NIL (memq (2) '((1) (2) (3))))\n(test NIL (memq (2) '((1) (2) (3) .)))\n(test 'c (memq 'c '(a b . c)))\n(test '(b c a . @Z) (memq 'b '(a b c .)))\n(test NIL (memq 'd '(a b c .)))\n\n\n### mmeq ###\n(test NIL (mmeq '(a b c) '(d e f)))\n(test '(b x) (mmeq '(a b c) '(d b x)))\n\n\n### sect ###\n(test (3 4) (sect (1 2 3 4) (3 4 5 6)))\n(test (1 2 3) (sect (1 2 3) (1 2 3)))\n(test NIL (sect (1 2 3) (4 5 6)))\n\n\n### diff ###\n(test (1 3 5) (diff (1 2 3 4 5) (2 4)))\n(test (1 2 3) (diff (1 2 3) NIL))\n(test NIL (diff (1 2 3) (1 2 3)))\n\n\n### index ###\n(test 3 (index 'c '(a b c d e f)))\n(test NIL (index 'z '(a b c d e f)))\n(test 3 (index '(5 6) '((1 2) (3 4) (5 6) (7 8))))\n\n\n### offset ###\n(test 3 (offset '(c d e f) '(a b c d e f)))\n(test NIL (offset '(c d e) '(a b c d e f)))\n\n\n### prior ###\n(let (L (1 2 3 4 5 6)  X (cdddr L))\n   (test NIL (prior L L))\n   (test NIL (prior NIL L))\n   (test (3 4 5 6) (prior X L)) )\n\n\n### length ###\n(test 3 (length \"abc\"))\n(test 3 (length \"äbc\"))\n(test 3 (length 123))\n(test 3 (length (1 (2) 3)))\n(test T (length (1 2 3 .)))\n(test T (length (1 . (2 3 .))))\n\n\n### size ###\n(test 3 (size \"abc\"))\n(test 4 (size \"äbc\"))\n(test 1 (size 127))\n(test 2 (size 128))\n(test 4 (size (1 (2) 3)))\n(test 3 (size (1 2 3 .)))\n(test 8 (size '((1 2 3) (4 5 6))))\n(test 6 (size '((1 2 .) (4 5 .))))\n(test 3 (size (1 . (2 3 .))))\n\n\n### bytes ###\n(test 4 (bytes \"abc\"))\n(test 5 (bytes \"äbc\"))\n(test 9 (bytes \"abcdefgh\"))\n(test 2 (bytes 127))\n(test 3 (bytes 128))\n(test 10 (bytes (101 (102) 103)))\n(test 9 (bytes (101 102 103 .)))\n(let (L (7 \"abc\" (1 2 3) 'a)  F (tmp \"bytes\"))\n   (out F (pr L))\n   (test (bytes L) (car (info F))) )\n\n\n### assoc ###\n(test '(\"b\" . 7)\n   (assoc \"b\" '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test '(\"b\" . 7)\n   (assoc \"b\" '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\") .)) )\n(test (999 1 2 3)\n   (assoc 999 '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test NIL\n   (assoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test NIL\n   (assoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\") .)) )\n\n\n### rassoc ###\n(test '(\"b\" . 7)\n   (rassoc 7 '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test '(\"b\" . 7)\n   (rassoc 7 '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\") .)) )\n(test (999 1 2 3)\n   (rassoc (1 2 3) '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test NIL\n   (rassoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\"))) )\n(test NIL\n   (rassoc 'u '((999 1 2 3) (\"b\" . 7) (\"ok\" \"Hello\") .)) )\n\n\n### asoq ###\n(test NIL\n   (asoq (9) '(((9) 1 2 3) (b . 7) (\"ok\" \"Hello\"))) )\n(test NIL\n   (asoq (9) '(((9) 1 2 3) (b . 7) (\"ok\" \"Hello\") .)) )\n(test '(b . 7)\n   (asoq 'b '(((9) 1 2 3) (b . 7) (\"ok\" \"Hello\"))) )\n(test '(b . 7)\n   (asoq 'b '(((9) 1 2 3) (b . 7) (\"ok\" \"Hello\") .)) )\n\n\n### rasoq ###\n(test '(2 . b)\n   (rasoq 'b '((1 . a) (2 . b) (3 . c))) )\n(test '(2 . b)\n   (rasoq 'b '((1 . a) (2 . b) (3 . c) .)) )\n(test NIL\n   (rasoq \"b\" '((1 . a) (2 . b) (3 . c))) )\n(test NIL\n   (rasoq \"b\" '((1 . a) (2 . b) (3 . c) .)) )\n\n\n### rank ###\n(test NIL\n   (rank 0 '((1 . a) (100 . b) (1000 . c))) )\n(test (1 . a)\n   (rank 50 '((1 . a) (100 . b) (1000 . c))) )\n(test (100 . b)\n   (rank 100 '((1 . a) (100 . b) (1000 . c))) )\n(test (100 . b)\n   (rank 300 '((1 . a) (100 . b) (1000 . c))) )\n(test (1000 . c)\n   (rank 9999 '((1 . a) (100 . b) (1000 . c))) )\n(test (100 . b)\n   (rank 50 '((1000 . a) (100 . b) (1 . c)) T) )\n\n\n### match ###\n(use (@A @B @X @Y @Z)\n   (test T\n      (match '(@A is @B) '(This is a test)) )\n   (test '(This) @A)\n   (test '(a test) @B)\n   (test T\n      (match '(@X (d @Y) @Z) '((a b c) (d (e f) g) h i)) )\n   (test '((a b c)) @X)\n   (test '((e f) g) @Y)\n   (test '(h i) @Z) )\n\n\n### fill ###\n(let (@X 1234  @Y (1 2 3 4))\n   (test 1234 (fill '@X))\n   (test '(a b (c 1234) (((1 2 3 4) . d) e))\n      (fill '(a b (c @X) ((@Y . d) e))) ) )\n(test (1 a b c 9)\n   (fill (1 ^(list 'a 'b 'c) 9)) )\n(test (1 5 7)\n   (fill (1 ^(+ 2 3) 7)) )\n(let X 2 (test (1 2 3) (fill (1 X 3) 'X)))\n(let X 2 (test (1 2 3) (fill (1 X 3) '(X))))\n(test (1 (a (7 . 2) c) 3)\n   (fill (1 (a (b . 2) c) 3) 'b 7) )\n(test (1 (a (b . 123) c) 3)\n   (fill (1 (a (b . 2) c) 3) 2 123) )\n\n\n### prove ###\n(test T\n   (prove (goal '((equal 3 3)))) )\n(test '((@X . 3))\n   (prove (goal '((equal 3 @X)))) )\n(test NIL\n   (prove (goal '((equal 3 4)))) )\n\n\n### -> ###\n(test '((@A . 3) (@B . 7))\n   (prove (goal '(@A 3 (^ @B (+ 4 (-> @A)))))) )\n(test '((@A . 3) (@B . 7))\n   (prove (goal '(@A 3 (^ @B (+ 4 @A))))) )\n(test '((@A . 3) (@B . 4) (@N . 12))\n   (prove (goal '(@A 3 @B 4 (^ @N (* @A @B))))) )\n\n\n### unify ###\n(test '((@A ((NIL . @C) 0 . @C) ((NIL . @B) 0 . @B) T))\n   (prove (goal '((^ @A (unify '(@B @C)))))) )\n\n\n### not/1 call/1 or/2 nil/1 uniq/2 ###\n(test NIL\n   (prove (goal '(@A 3 @B 3 (not (equal @A @B))))) )\n(test '((@A . 3) (@B . 4))\n   (prove (goal '(@A 3 @B 4 (not (equal @A @B))))) )\n(test '((@A 1 2 3) (@X 4 5 6))\n   (prove (goal '(@A (1 2 3) (call append @A @X (1 2 3 4 5 6))))) )\n(test '((@X . 7))\n   (prove (goal '((or ((equal 3 @X) (equal @X 4)) ((equal 7 @X) (equal @X 7)))))) )\n(test '((@X)) (prove (goal '(@X NIL (nil @X)))))\n(test '(a b c d)\n   (solve '((^ @B (box)) (lst @X (a b c b c d)) (uniq @B @X)) @X) )\n\n\n### asserta/1 assertz/1 retract/1 ###\n(test T\n   (prove\n      (goal\n         (quote\n            (asserta (a (2)))\n            (assertz (a (3)))\n            (asserta (a (1))) ) ) ) )\n(test '(((1)) ((2)) ((3)))\n   (get 'a T) )\n(test T\n   (prove (goal '((retract (a 2))))) )\n(test '(((1)) ((3)))\n   (get 'a T) )\n\n\n### clause/2 ###\n(test T\n   (prove (goal '((clause append ((NIL @X @X)))))) )\n(test '((@C (NIL @X @X)))\n   (prove (goal '((clause append @C)))) )\n\n\n### for/2 for/3 for/4 ###\n(test '(((@I . 1)) ((@I . 2)) ((@I . 3)))\n   (solve '((for @I 3))) )\n(test '(((@I . 3)) ((@I . 4)) ((@I . 5)) ((@I . 6)) ((@I . 7)))\n   (solve '((for @I 3 7))) )\n(test '(((@I . 7)) ((@I . 5)) ((@I . 3)))\n   (solve '((for @I 7 3 2))) )\n\n\n### group ###\n(test '((1 a b c) (2 d e f))\n   (group '((1 . a) (1 . b) (1 . c) (2 . d) (2 . e) (2 . f))) )\n\n\n### sort ###\n(test '(NIL 1 2 3 4 a b c d (1 2 3) (a b c) (x y z) T)\n   (sort '(a 3 1 (1 2 3) d b 4 T NIL (a b c) (x y z) c 2)) )\n(test '(T (x y z) (a b c) (1 2 3) d c b a 4 3 2 1 NIL)\n   (sort '(a 3 1 (1 2 3) d b 4 T NIL (a b c) (x y z) c 2) >) )\n"
  },
  {
    "path": "test/src/sym.l",
    "content": "# 04jun25 Software Lab. Alexander Burger\n\n### name ###\n(test \"abc\" (name 'abc))\n(test \"A123\" (name '{A123}))\n(let X (box)\n   (test NIL (name X)) )\n\n\n### sp? ###\n(test T (sp? \" \\t\\n\"))\n(test NIL (sp? \" abc\"))\n(test NIL (sp? 123))\n\n\n### pat? ###\n(test `(char '@) (char (pat? '@)))\n(test NIL (pat? \"ABC\"))\n(test NIL (pat? 123))\n\n\n### fun? ###\n(test 1000000000 (fun? 1000000000))\n(test NIL (fun? 12345678901234567890))\n(test '(A B) (fun? '((A B) (* A B))))\n(test NIL (fun? '((A B) (* A B) . C)))\n(test NIL (fun? (1 2 3 4)))\n(test NIL (fun? '((A 2 B) (* A B))))\n(test T (fun? '(NIL (* 3 4))))\n\n\n### getd ###\n(test car (getd 'car))\n(test '((File . @) (load File))\n   (getd 'script) )\n(test NIL (getd 1))\n\n\n### all ###\n(test '(test)\n   (filter '((S) (= S \"test\")) (all)) )\n\n\n### symbols nsp ###\n(when symbols\n   (test T (bool (pair pico)))\n   (test '(pico) (symbols 'myLib 'pico)) )\n\n(when symbols\n   (one Foo)\n   (test 'pico (nsp 'symbols))\n   (test 'myLib (nsp 'Foo))\n   (test '(myLib pico) (symbols 'pico)) )\n\n(when symbols\n   (test 1 myLib~Foo)\n   (test NIL (nsp 'myLib~Foo)) )\n\n### intern ###\n(test car (val (intern (pack \"c\" \"a\" \"r\"))))\n(test car (val (intern '(\"c\" \"a\" \"r\"))))\n\n\n### ==== ###\n(setq *Sym \"abc\")\n(test T (== *Sym \"abc\"))\n(====)\n(test NIL (== *Sym \"abc\"))\n\n\n### box? ###\n(let X (box)\n   (test X (box? X)) )\n(test NIL (box? 123))\n(test NIL (box? 'a))\n(test NIL (box? NIL))\n\n\n### str? ###\n(test NIL (str? 123))\n(test NIL (str? '{A123}))\n(test NIL (str? 'abc))\n(test \"abc\" (str? \"abc\"))\n\n\n### zap ###\n(test \"abc\" (str? (zap 'abc)))\n\n\n### chop ###\n(test '(\"c\" \"a\" \"r\") (chop 'car))\n(test '(\"H\" \"e\" \"l\" \"l\" \"o\") (chop \"Hello\"))\n(test '(\"1\" \"2\" \"3\") (chop 123))\n(test (1 2 3) (chop (1 2 3)))\n(test NIL (chop NIL))\n\n\n### pack ###\n(test \"car is 1 symbol name\"\n   (pack 'car \" is \" 1 '(\" symbol \" name)) )\n\n\n### glue ###\n(test 1 (glue NIL 1))\n(test \"a\" (glue NIL '(a)))\n(test \"ab\" (glue NIL '(a b)))\n(test \"a,b\" (glue \",\" '(a b)))\n(test \"a8b\" (glue 8 '(a b)))\n(test \"a123b123c\" (glue (1 2 3) '(a b c)))\n\n\n### text ###\n(test \"abc XYZ def 123\" (text \"abc @1 def @2\" 'XYZ 123))\n(test \"aXYZz\" (text \"a@3z\" 1 2 '(X Y Z)))\n(test \"a@bc.de\" (text \"a@@bc.@1\" \"de\"))\n(test \"10.11.12\" (text \"@A.@B.@C\" 1 2 3 4 5 6 7 8 9 10 11 12))\n(test \"1 2 3 4 5 6 7 8 9 10 11 12\"\n   (text \"@1 @2 @3 @4 @5 @6 @7 @8 @9 @A @B @C\" 1 2 3 4 5 6 7 8 9 10 11 12) )\n\n\n### pre? ###\n(test \"abcdefg\" (pre? \"\" \"abcdefg\"))\n(test NIL (pre? \"abc\" \"\"))\n(test \"abcdefg\" (pre? \"abc\" \"abcdefg\"))\n(test NIL (pre? \"def\" \"abcdefg\"))\n(test \"abcdefg\" (pre? \"\" \"abcdefg\"))\n(test \"7fach\" (pre? (+ 3 4) \"7fach\"))\n\n\n### sub? ###\n(test \"abcdefg\" (sub? \"\" \"abcdefg\"))\n(test NIL (sub? \"abc\" \"\"))\n(test \"abcdefg\" (sub? \"cde\" \"abcdefg\"))\n(test \"abcdefg\" (sub? \"def\" \"abcdefg\"))\n(test NIL (sub? \"abb\" \"abcdefg\"))\n(test \"abcdefg\" (sub? \"\" \"abcdefg\"))\n(test 0 (sub? \"\" \"abc\") @@)\n(test 1 (sub? \"a\" \"abc\") @@)\n(test 2 (sub? \"b\" \"abc\") @@)\n(test 2 (sub? \"bc\" \"abcXabc\") @@)\n(test 2 (sub? \"bc\" \"abcXabc\" 2) @@)\n(test 6 (sub? \"bc\" \"abcXabc\" 3) @@)\n\n\n### val ###\n(let L '(a b c)\n   (test '(a b c) (val 'L))\n   (test 'b (val (cdr L))) )\n\n\n### set ###\n(use L\n   (test '(a b c) (set 'L '(a b c)))\n   (test 999 (set (cdr L) 999))\n   (test '(a 999 c) L) )\n\n\n### setq ###\n(use (A B)\n   (test (123 123)\n      (setq  A 123  B (list A A)) )\n   (test 123 A)\n   (test (123 123) B) )\n\n\n### swap ###\n(let (A 1  L (1 2 3))\n   (test 1 (swap 'A 7))\n   (test 7 (swap 'A 'xyz))\n   (test 3 (swap (cddr L) A))\n   (test (1 2 xyz) L) )\n\n\n### xchg ###\n(let (A 1  B 2  C '(a b c))\n   (test 2 (xchg 'A C  'B (cdr C)))\n   (test 'a A)\n   (test 'b B)\n   (test (1 2 c) C) )\n\n\n### on off onOff zero one ###\n(use (A B)\n   (test T (on A B))\n   (test T A)\n   (test T B)\n   (test NIL (off A))\n   (test NIL A)\n   (test NIL (onOff B))\n   (test NIL B)\n   (test T (onOff A B))\n   (test T A)\n   (test T B)\n   (test 0 (zero A B))\n   (test 0 A)\n   (test 0 B)\n   (test 1 (one A B))\n   (test 1 A)\n   (test 1 B) )\n\n\n### default ###\n(let (A NIL  B NIL)\n   (test 2 (default A 1  B 2))\n   (test A 1)\n   (test B 2)\n   (test 2 (default A 7  B 8))\n   (test A 1)\n   (test B 2) )\n\n\n### push push1 pop ++ shift cut ###\n(let L NIL\n   (test 0 (push 'L 4 3 2 1 0))\n   (test L (0 1 2 3 4))\n   (test (1 2 3 4) (shift 'L))\n   (test 0 (push1 'L 0))\n   (test 1 (push1 'L 1))\n   (test L (0 1 2 3 4))\n   (test 0 (pop 'L))\n   (test 1 (++ L))\n   (test (2 3) (cut 2 'L))\n   (test (4) L) )\n\n### push1q ###\n(let L NIL\n   (test (2) (push1q 'L 'a (1) 'b (2)))\n   (test (1) (push1q 'L 'b (1)))\n   (test '((1) (2) b (1) a) L) )\n\n### del ###\n(let (L '((a b c) (d e f))  S (new))\n   (put S 'lst L)\n   (test '((a b c)) (del '(d e f) 'L))\n   (test '(a b c) (del 'x L))\n   (test '(a c) (del 'b L))\n   (with S\n      (test '((a b c)) (del '(d e f) (:: lst)))\n      (test NIL (del '(a b c) (:: lst)))\n      (test NIL (: lst)) ) )\n(let L (1 1 2 3 1 2 3)\n   (test (2 3 2 3) (del 1 'L T)) )\n\n\n### queue ###\n(let A NIL\n   (test 1 (queue 'A 1))\n   (test 2 (queue 'A 2))\n   (test 3 (queue 'A 3))\n   (test (1 2 3) A) )\n\n\n### fifo ###\n(let X NIL\n   (test 1 (fifo 'X 1))\n   (test 3 (fifo 'X 2 3))\n   (test 1 (fifo 'X))\n   (test 2 (fifo 'X))\n   (test 3 (fifo 'X)) )\n\n\n### rid ###\n(let E (1 . 2)\n   (test 2 (rid 'E 1)) )\n(let E (1 2 3 2 4 . 2)\n   (test (1 3 4) (rid 'E 2))\n   (test (3 4) (rid 'E 1))\n   (test (3) (rid 'E 4))\n   (test (3) (rid 'E 7))\n   (test NIL (rid 'E 3)) )\n(let E NIL\n   (fifo 'E 1 2 3 2 4 2)\n   (test (2 1 2 3 2 4 . @Z) E)\n   (test (4 1 3 . @Z) (rid 'E 2)) )\n\n\n### idx lup ###\n(let X NIL\n   (test NIL (idx 'X 'd T))\n   (test NIL (idx 'X (2 . f) T))\n   (test NIL (idx 'X (3 . g) T))\n   (test NIL (idx 'X '(a b c) T))\n   (test NIL (idx 'X 17 T))\n   (test NIL (idx 'X 'A T))\n   (test '(d . @) (idx 'X 'd T))\n   (test NIL (idx 'X T T))\n   (test '(A) (idx 'X 'A))\n   (test '(17 A d (2 . f) (3 . g) (a b c) T)\n      (idx 'X) )\n   (test (2 . f) (lup X 2))\n   (test '((2 . f) (3 . g)) (lup X 1 4))\n   (test '(17 . @) (idx 'X 17 NIL))\n   (test '(A d (2 . f) (3 . g) (a b c) T)\n      (idx 'X) )\n   (off X)\n   (for N '((4 . D) 3 (2 . B) Y (3 . C) Z (6 . F) 7 (7 . G) X (1 . A) T (5 . E) 5)\n      (idx 'X N T) )\n   (test '(3 5 7 X Y Z (1 . A) (2 . B) (3 . C) (4 . D) (5 . E) (6 . F) (7 . G) T)\n      (idx 'X) )\n   (test '((3 . C) (4 . D) (5 . E))\n      (lup X 3 5) )\n   (test '((1 . A) (2 . B) (3 . C) (4 . D) (5 . E) (6 . F) (7 . G))\n         (lup X 0 9) ) )\n\n\n### enum enum? ###\n(let E NIL\n   (for (I . S) '(a b c d e f g h i j k l m n o)\n      (set (enum 'E I) S) )\n   (test '(a (b (d (h) l) f (j) n) c (e (i) m) g (k) o)\n      E )\n   (test '(a b c d e f g h i j k l m n o)\n      (make (for I 15 (link (val (enum 'E I))))) )\n   (test NIL\n      (enum 'E 0) )\n   (test '((8 . h) (4 . d) (12 . l) (2 . b) (10 . j) (6 . f) (14 . n) (1 . a) (9 . i) (5 . e) (13 . m) (3 . c) (11 . k) (7 . g) (15 . o))\n      (enum 'E) )\n   (test '((h . 8) (d . 4) (l . 12) (b . 2) (j . 10) (f . 6) (n . 14) (a . 1) (i . 9) (e . 5) (m . 13) (c . 3) (k . 11) (g . 7) (o . 15))\n      (enum 'E T) )\n   (test '(g . @) (enum? E 7))\n   (test NIL (enum? E 16)) )\n\n(let G NIL\n   (for I 4\n      (for J 4\n         (set (enum 'G I J) (* I J)) ) )\n   (test (1 . @) (enum? G 1 1))\n   (test (6 . @) (enum? G 2 3))\n   (test (12 . @) (enum? G 3 4))\n   (test NIL (enum? G 5))\n   (test NIL (enum? G 1 5)) )\n\n### put get prop ; =: : :: putl getl ###\n(let (A (box)  B (box A)  C (box (cons A B)))\n   (put B 'a A)\n   (put C 'b B)\n   (put A 'x 1)\n   (put B 'a 'y 2)\n   (put C 0 -1 'a 'z 3)\n   (test '(NIL . p) (prop 'A 'p))\n   (test 1 (get A 'x))\n   (test 1 (; A x))\n   (test 2 (with A (: y)))\n   (test 2 (get A 'y))\n   (test 2 (; A y))\n   (test 2 (with B (: 0 y)))\n   (test 2 (get B 0 'y))\n   (test 2 (; B 0 y))\n   (test 3 (with C (: b a z)))\n   (test 3 (with C (: 0 1 z)))\n   (test 3 (with C (: 0 -1 a z)))\n   (test 3 (get C 0 1 'z))\n   (test 3 (get C 0 -1 'a 'z))\n   (test 3 (; C 0 -1 a z))\n   (test 1 (push (prop 'A 'p) 1))\n   (test 1 (with 'A (pop (:: p))))\n   (test NIL (get 'A 'p))\n   (test (3 . z) (prop C 0 -1 'a 'z))\n   (test 9 (with C (=: 0 -1 a z (* 3 3))))\n   (test (9 . z) (with C (:: 0 -1 a z)))\n   (test (putl C 0 -1 'a '((1 . x) (2 . y))) (flip (getl C 'b 0))) )\n\n(test NIL (get (1 2 3) 0))\n(test 1 (get (1 2 3) 1))\n(test 3 (get (1 2 3) 3))\n(test NIL (get (1 2 3) 4))\n(test (3) (get (1 2 3) -2))\n(test 1 (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'a 'b))\n(test 4 (get '((a (b . 1) (c . 2)) (d (e . 3) (f . 4))) 'd 'f))\n\n\n### wipe ###\n(let X (box (1 2 3 4))\n   (put X 'a 1)\n   (put X 'b 2)\n   (test (1 2 3 4) (val X))\n   (test '((2 . b) (1 . a)) (getl X))\n   (wipe X)\n   (test NIL (val X))\n   (test NIL (getl X)) )\n\n(setq \"W\" (1 2 3 4))\n(put '\"W\" 'a 1)\n(put '\"W\" 'b 2)\n(test (1 2 3 4) \"W\")\n(test '((2 . b) (1 . a)) (getl '\"W\"))\n(wipe '\"W\")\n(test NIL \"W\")\n(test NIL (getl '\"W\"))\n\n\n### meta ###\n(let A '(\"B\")\n   (put '\"B\" 'a 123)\n   (test 123 (meta 'A 'a)) )\n\n\n### low? ###\n(test \"a\" (low? \"a\"))\n(test NIL (low? \"A\"))\n(test NIL (low? 123))\n(test NIL (low? \".\"))\n\n\n### upp? ###\n(test \"A\" (upp? \"A\"))\n(test NIL (upp? \"a\"))\n(test NIL (upp? 123))\n(test NIL (upp? \".\"))\n\n\n### lowc ###\n(test \"abc\" (lowc \"ABC\"))\n(test \"äöü\" (lowc \"ÄÖÜ\"))\n(test \"äöü\" (lowc \"äöü\"))\n(test 123 (lowc 123))\n\n\n### uppc ###\n(test \"ABC\" (uppc \"abc\"))\n(test \"ÄÖÜ\" (uppc \"äöü\"))\n(test \"ÄÖÜ\" (uppc \"ÄÖÜ\"))\n(test 123 (lowc 123))\n\n\n### fold ###\n(test \"1a2b3\" (fold \" 1A 2-b/3\"))\n(test \"1a2\" (fold \" 1A 2-B/3\" 3))\n"
  },
  {
    "path": "vip",
    "content": "#!/bin/sh\nexec ${0%/*}/bin/picolisp ${0%/*}/lib.l @bin/vip \"$@\"\n"
  }
]